OCP has three kinds of participant and one artifact between them.
  • A producer writes documents. It is the orchestrator itself, an exporter attached to a harness (through its hooks, logs or telemetry), or a converter that reads a native log after the fact. The producer block names it.
  • A document is one JSON file per run. Documents are self-contained: a reader needs no other file to understand one. The exceptions are slates, which link runs on one task, and workflows given by reference, which a reader resolves through its catalog.
  • A consumer reads documents: to recommend a workflow for the next task, to price runs, to compare configurations, or to show what happened.
  • A checker validates a document against the schema and the numbered rules. The reference checker is loopmath ocp validate.

Layers inside a document

Each version added a layer. A producer fills the layers it can. The first four layers describe what happened. The observation layer describes the run as a data point: which task, which configuration, and whether it succeeded under the user’s own rule. That is what a learner needs to compare runs across tools.

Where OCP sits

OCP records a run after the fact. It does not carry calls between models, tools, editors or agents while they run, and it does not start anything. An orchestrator that uses other protocols to run its agents can still write one OCP document per run. OpenTelemetry’s GenAI conventions describe spans as they happen. A span stream can be turned into an OCP document, and OCP adds what spans do not hold: attempts and their causes, the workflow that ran, per-attempt cost with its basis, and outcomes with evidence. See Implementations.

Privacy