01 · Human approval
Risky actions wait for a person.
Approval is part of the protocol, not a sentence in a prompt. A run can stop before it pays, sends or deletes, route the question to the named people, and resume exactly where it left off.
v2.45.14 Open source: CC BY 4.0 spec, Apache 2.0 code
AI agents now pay invoices, change code and email customers. OpenWOP is the open protocol that runs them as workflows you can watch, pause for a person's approval, and rewind. Any host that implements it runs them the same way, so no single vendor owns your agents.
The questions people ask first, answered plainly.
Six multi-agent workflows the protocol is built for. They are scenarios, not customer stories, and each links to the part of the spec that makes it work.
An agent checks a supplier invoice and has to pay it. The same workflow runs on a TypeScript host and a Python host. Both stop to ask a person before any money moves, and both record every step in the same event vocabulary.
The invoice
Acme Supply, INV-2291
$12,400 for 40 sensor kits, billed against purchase order 4471.
What the agent checked
Not checked yet.
The outcome
Paid
A person in finance approved it. Receipt RC-8812 is attached to the run.
The event log, as each host recorded it
run.started invoice-review@3run.started invoice-review@3node.started read-invoicenode.started read-invoiceagent.decided Matches PO 4471, amount within 2%agent.decided Matches PO 4471, amount within 2%agent.handoff to the payments agentagent.handoff to the payments agentinterrupt.requested Pay Acme Supply $12,400? Approver: financeinterrupt.requested Pay Acme Supply $12,400? Approver: financeinterrupt.resolved Approved by a personinterrupt.resolved Approved by a personrun.resumed from the saved staterun.resumed from the saved statenode.started pay-suppliernode.started pay-supplierrun.completed Paid. Receipt attached.run.completed Paid. Receipt attached.Pay Acme Supply $12,400?
The invoice matches purchase order 4471, the amount is within 2% of it, and Acme Supply is an approved supplier. Both runs are paused and saved. Nothing is paid until someone in finance decides.
9 of 9 events in the same order. Same final state on both hosts.
The illustration is scripted, but the result behind it is real: the OpenWOP paper reports that the same workflow definition, run on a TypeScript host and a Python host, produces identical final state and event-log structure for core workflows.
The launch showcase in the OpenWOP app runs a real multi-agent workflow. One product brief becomes a strategy, a landing page, three emails and a social campaign; an editor agent reviews them; then the run stops for your approval. It uses your own model key, and nothing is published or sent.
Software used to do exactly what someone wrote. Agents decide while they run. That moves the important part of an AI system out of the model and into the run: the loop where an agent reasons, calls a tool, hands off to another agent, and waits for a person. It's where the decisions happen, where small errors compound, and where someone has to be able to say stop.
Today every platform builds that loop its own way. LangGraph, Temporal, Step Functions, vendor agent frameworks and in-house runtimes each have their own idea of what a run is, so none of them can read each other's runs. Pick one and you inherit its lifecycle, its debugger and its exit costs. The work your agents do belongs to whoever hosts them.
OpenWOP puts that loop on an open contract, the way HTTP did for pages and MCP did for tools, so the run belongs to you whichever host executes it.
Each is pinned down by the protocol, so it holds on every compatible host, not just in one product. Under each is the part of the spec that makes it true.
01 · Human approval
Approval is part of the protocol, not a sentence in a prompt. A run can stop before it pays, sends or deletes, route the question to the named people, and resume exactly where it left off.
02 · Replay
Fork any run from any past step. In replay mode, recorded outcomes are reused and side effects are suppressed, so a replay never pays the invoice twice.
03 · Portability
Hosts advertise what they support, so clients negotiate instead of guessing. Move agents, packs, schedules and workflows to another compatible host. Secrets are never exported. You reconnect them at the destination.
04 · Accountability
Every decision, tool call and handoff is an event in one shared vocabulary, traced with OpenTelemetry, so a debugger written for one host can read another's runs. Runs carry caps on steps and time, and a budget that reserves spend up front. Whatever a tool or a search returns is marked untrusted, so poisoned input can't approve itself.
agent.decided, the run event log · security defaults · tool calling
OpenWOP doesn't replace MCP or A2A. It runs the workflow they take part in.
| Property | OpenWOP | MCP | LangGraph | Temporal | Step Functions |
|---|---|---|---|---|---|
| Published API or wire specification | Yes: OpenAPI and AsyncAPI | Yes | No: a library (its hosted platform has its own API) | Yes: protobuf API, MIT-licensed | Workflow language is public (Amazon States Language); the service API is AWS's |
| Implementations of that specification | 7 hosts, none independent yet | Many | One library | One open-source server, plus Temporal Cloud | AWS only |
| Replay and fork of a past run | Replay and fork | Not its layer | Replay and fork | Replay and reset | Redrive, no fork |
| Multi-agent orchestration | Yes | Not its layer | Yes | General workflows | General workflows |
| Public conformance suite for other implementations | Yes | Inspector tool | No | No | No |
| Where a client can run its work | Any compliant host | Any MCP server | The LangGraph runtime | Any Temporal server | AWS |
A property check, not a verdict: Temporal and Step Functions are mature engines, and each project picks a different point in the design space. The difference OpenWOP is betting on is a contract many independent hosts implement and a suite that checks them. MCP’s Tasks extension gives it durable handles and resumption, but not replay or fork of a past execution. Sources: Temporal API, Amazon States Language, WS-BPEL 2.0. Last reviewed 2026-09-27. Compare OpenWOP with LangGraph, CrewAI, AutoGen, Temporal and n8n, or read how it fits with A2A and MCP.
The OpenWOP app is the reference host, running in production. Build agents and workflows on a visual canvas or in chat, run them against 44 published packs, and watch every event stream in. No sign-up needed to try it.
No cloud account, vendor SDK or managed service required. Start the v2 reference host, create a run over HTTP, and read its events. The quickstart goes from there to approvals, forks and webhooks.
npm install -g @openwop/cli, then openwop doctor.
Optional features beyond the core, already in the spec. A host turns on the ones it supports, and apps that don’t use them keep working.
Every number links to its evidence.
v2.45.x, the current release line
The current release line is v2.45.x. New capabilities arrive as optional, capability-gated extensions (226 of 231 RFCs Accepted to date), so an existing host keeps working.
REST · SSE
OpenAPI 3.1 for requests, AsyncAPI 3.1 for event streams. In v2, REST and SSE are the whole wire.
/.well-known/openwop
Hosts advertise protocol version, profiles, limits and capabilities, so clients negotiate instead of guessing.
W3C trace context
Canonical OpenTelemetry names for runs, nodes, interrupts, provider calls and cost.
JSON Schema 2020-12
Machine-readable workflow, run, event, capability and pack shapes, served at their canonical $id.
stable within a major
Wire shapes and package names stay stable through a major. A run in flight keeps the workflow revision it started with, so a deploy never changes its behavior.
CC BY 4.0 spec · Apache 2.0 code
The specification, schemas and API definitions are CC BY 4.0: use and adapt them with attribution. The SDKs, conformance harness, CLI and tooling are Apache 2.0: patent-granting, with no field-of-use restrictions.
Try it in your browser with no sign-up, or run the reference host on your laptop in a few minutes.
No results.
↑↓ navigate · ↵ open · esc close