OSP
Spec Examples Why OSP Blog GitHub ↗ Demo ↗
Spec Examples Why OSP Blog GitHub ↗ Demo ↗

Specification

  • Overview
  • Layer 1: Discovery Draft
  • Service Manifest Reference Draft
  • Layer 2: Contracting Planned
  • Layer 3: Delivery Planned
  • Layer 4: Settlement Planned

Resources

  • Examples
  • Why OSP
  • Blog

Specification

The OSP specification defines four layers. Each is independently implementable — you don’t need all four to get value. Start with Layer 1: a single file that makes your services discoverable by AI agents.

Layer 1: Discovery

Status: Draft v0.1

How to create an osp.md file and service manifests that make your business capabilities machine-readable. Defines the file format, placement conventions, and the progressive disclosure model.

Read the Discovery specification →

Service Manifest Reference

Status: Draft v0.1

The complete YAML schema for service manifests — all six sections (identity, evaluation, contract, delivery, governance, lifecycle) with every field, type, and constraint.

Read the Service Manifest Reference →

Layer 2: Contracting

Status: Planned

How agents request quotes, place orders, and configure services. Covers transactional, consultative, and continuous engagement types. Defines the quote-order flow that works identically whether a human or a machine fulfills the service.

Layer 3: Delivery

Status: Planned

How agents track service execution and receive results. Defines the status model, webhook notifications, interactive delivery for multi-step engagements, and human-in-the-loop transparency.

Layer 4: Settlement

Status: Planned

Token-based billing, escrow models, compensation logic for failed or degraded deliveries, and dispute resolution.


Machine-Readable Schemas

JSON Schemas for validating OSP files are available in the GitHub repository:

  • osp-md.schema.json — validates osp.md structure
  • service-manifest.schema.json — validates service manifests

OSP is an open standard under CC-BY-4.0 (spec) and Apache 2.0 (code)

Created by Patrick Püntener · distll.io

GitHub Spec Examples Blog