Every guarantee is enforced at one Gate, and pinned to a named test.
Seven capabilities, enforced below the model and exercised by tests that ship with the code.
Capabilities
Model the work
Your process is written once and enforced everywhere; changing a step never means rewriting an agent.
- Declare states, authority, tools and human sign-off.
- Version and validate the declaration before work begins.
ShippedCoverage validation refuses incomplete declarations.
@tasktype( "VendorInvoice", fields=VendorInvoiceFields, initial="INTAKE", sub_types=[LineItem, Payment], ) class VendorInvoice: edges = ( edge("REVIEW", "APPROVED", by=["finance-lead"]), )Listing 1The workflow in Python. Selected lines from the invoice declaration; not a complete runnable definition. SDK names may change before release.
Read the full task type declarationSwap the workflow. Keep the system.
Workflows are portable, versioned TaskType declarations.
- Change the workflow by loading a new version and restarting Choreograph.
- The runtime and dashboard reconfigure automatically.
ShippedCoverage validation refuses incomplete declarations.
Figure 1Load. Restart. Reconfigure. Open full diagramIllustrative architecture; not a product screenshot.
Bound the authority
No agent, and no administrator, can act outside what the process allows.
- Authority and tool scope are checked on every submit.
- Single-writer leases and tenant isolation constrain every write.
ShippedA refused attempt is a commit in the same history.
Figure 2Authority belongs to the step. Open full diagramProve what happened
Your audit is a query you run, not a report you commission.
- Hash-linked commits preserve byte-exact model turns.
- Replay, reconstruct and seal evidence for an independent auditor.
ShippedOne edited byte is named by commit.
Figure 3A history you can verify. Open full diagramTouch the world safely
Money moves once, after a human, or not at all.
- Declared amounts and payees must match the committed record.
- After a restore, effects stay off until bank reconciliation catches up.
ShippedZoho Books live-verified; Revolut Business sandbox-integrated.
Figure 4Review precedes execution. Open full diagramRun any AI on it
Swap the model tomorrow; keep every guarantee.
- Bring your model and key; Pydantic AI is the reference harness.
- A conformance bench checks replacement harnesses against the contract.
ShippedReal model and human turns use the same Gate.
Agent edgeHuman edge GuardDashed: effect after commitDotted: reopen
Figure 5People and agents. Open full diagramKeep humans in command. Operate it simply.
One database your team already runs; humans and agents queue at the same Gate.
- Claim, review and hand off work on the same task.
- A dead runner’s lease expires on the database clock.
ShippedProven on Wanakam, cut-over with the release.
Figure 6The handoff keeps the work. Open full diagram
Enforce the rule with the right evidence.
Three ways to evaluate guards and invariants. Check the task’s own data, query the system that owns the fact, or use a separate model to evaluate judgement.
Guards decide whether an action may proceed; invariants check the resulting state before it is committed. Choreograph runs invariants after mutation and before commit, on every transition. What evaluates them is a design choice.
Pure-function
Enforce exact limits with a deterministic check. A Python predicate reads the task’s fields and the current world. It is fast and the default for most invariants.
For example, total_wired <= amount checks that the amount wired stays within the declared amount.
Connector-backed
Check against the system that owns the fact. The predicate queries an external system through a connector before returning its result.
For example: does this bill’s external_ref exist in Zoho, and is the bill still unpaid? The check uses a real query, not an assumption.
Model-backed
Keep the evaluator separate from the acting agent. A narrow, versioned classifier evaluates a question such as whether a synthesis cites the sources it claims.
Its verdict is a structured boolean recorded in TimeGraph. The judging model is a separate check, not the acting agent certifying its own work.
A model-backed check can be wrong. It is probabilistic; separation, versioning and a recorded verdict make it auditable, not infallible.
What is true today, September 2026.
- automated tests
1,900+ · including concurrency property tests - replay
replay == world · verified per tenant - injection
hostile instruction refused in‑chain on the live read path
- connectors
Zoho Books · live‑verified with a real model. Revolut Business · sandbox‑integrated - operator verbs
verify · replay · world-at · fork · evidence · score · reconcile - evidence
evidence bundle + insurability score · third‑party re‑runnable - not yet
real‑money effects · hosted beta · public docs (≈30 days)
Bank effects are sandbox drafts. Real money is behind an engineering gate we chose not to cross yet, and every demonstration says so.
