A specification for environment-mediated coordination between autonomous agents.
Three layers, one substrate: advisory signals shape attention without blocking; enforcement claims gate operations with mandatory mortality; induction generates artifacts when independent signals converge past a threshold. Together they provide the governance layer that multi-agent workspaces need — without centralized orchestration, without permanent locks, and without coupling agents to each other.
Multiple AI agents working in the same workspace need coordination. Today the options are:
- Direct messaging (A2A, MCP tool calls) — works for delegation, but creates coupling
- Centralized orchestrators — single point of failure, doesn't scale to autonomous agents
- Nothing — agents overwrite each other's work
The coordination substrate provides a third path: indirect coordination through the environment. Agents deposit signals and claims into shared zones. Other agents observe the environment and react. No agent needs to know about any other agent. Coordination emerges from the substrate, not from wiring.
This pattern draws from stigmergy — indirect coordination through environmental modification — but uses engineering-native vocabulary and adds an enforcement tier that pure stigmergic systems lack.
| Layer | Contract | Primitives |
|---|---|---|
| Advisory | Shapes attention. Never blocks. | Signals, zones, pressure readouts |
| Enforcement | Gates operations. Always mortal. | Claims, quarantine zones, evidence gates, capacity reservations |
| Induction | Generates artifacts from convergence. Requires advisory. | Saturation specs, manifest proposals, compound synthesis |
All layers share: actor identity, zone addressing, mortality semantics, multi-surface readout.
They differ: advisory primitives never block. Enforcement primitives may block — but always expire, and operators can always override. Induction observes advisory state and produces proposals — but never blocks and never auto-promotes.
| Capability | This spec | SBP v0.2 | MCP | A2A |
|---|---|---|---|---|
| Advisory coordination (signals, zones) | ✓ | ✓ | ✗ | ✗ |
| Enforcement (claims, gates) | ✓ | ✗ | ✗ | ✗ |
| Induction (threshold → manifest) | ✓ (separate layer) | ✗ | ✗ | ✗ |
| Persistence (crash-safe) | ✓ | ✗ (in-memory) | N/A | N/A |
| Governance lifecycle (override, audit) | ✓ | ✗ | ✗ | ✗ |
| Operator cognition readout | ✓ | ✗ | ✗ | ✗ |
See COMPARISON.md for the full breakdown with timeline evidence.
cd reference/conformance-runner
go run ./cmd/conformance-runner ../../
# → 42 passed, 0 failed, 9 skippedFollow the Adoption Guide — start with an advisory signal store (~100 lines), add enforcement when you need workspace claims.
The conformance runner validates any SignalStore + ClaimStore implementation against the spec's expectations.
- docs/design-principles.md — The six properties every primitive must satisfy
- advisory/SPEC.md — Advisory layer normative specification
- enforcement/SPEC.md — Enforcement layer normative specification
- induction/SPEC.md — Induction layer normative specification (depends on advisory)
- transport/HTTP.md — HTTP transport binding (maps all layers to wire protocol)
- docs/theory.md — Intellectual lineage (stigmergy, distributed leases, resilience patterns)
- docs/adoption-guide.md — How to implement in your agent framework
- reference/ — Go reference implementation and conformance runner
├── advisory/
│ ├── SPEC.md # Normative specification
│ ├── schemas/ # JSON Schema (Draft 2020-12)
│ ├── conformance/ # Test expectations (YAML)
│ └── examples/ # Example payloads
├── enforcement/
│ ├── SPEC.md # Normative specification
│ ├── schemas/ # JSON Schema (Draft 2020-12)
│ ├── conformance/ # Test expectations (YAML)
│ └── examples/ # Example payloads
├── induction/
│ ├── SPEC.md # Normative specification (depends on advisory)
│ ├── schemas/ # JSON Schema (Draft 2020-12)
│ ├── conformance/ # Test expectations (YAML)
│ └── examples/ # Example payloads
├── transport/
│ └── HTTP.md # HTTP transport binding (wire protocol)
├── docs/
│ ├── adoption-guide.md # Implementation walkthrough
│ ├── design-principles.md # Six mandatory properties
│ └── theory.md # Intellectual lineage
├── reference/
│ ├── go/ # Reference implementation (Go, zero deps)
│ └── conformance-runner/ # Executable conformance validator
├── COMPARISON.md # vs. SBP, S-MADRL, MCP, A2A
├── CHANGELOG.md # Dated development history
├── CONTRIBUTING.md # Contribution guidelines
└── LICENSE # Apache 2.0 + CC BY 4.0
The reference implementation is a minimal, standalone Go package that proves the spec is implementable. Zero external dependencies. Extracted from the BMO production runtime — the first and most complete implementation of this specification.
Key files:
interfaces.go—SignalStoreandClaimStore(conformance targets)signal_store.go— In-memory advisory store with mortality GCclaim_store.go— In-memory enforcement store with conflict detectionzone.go— Zone glob matching
v0.1.0 — Initial publication. Advisory layer normative. Enforcement layer normative for claims; other enforcement primitives (quarantine zones, evidence gates, capacity reservations) are informative.
- Specification content: CC BY 4.0
- Reference implementation, schemas, and tooling: Apache 2.0
Contributions welcome. See CONTRIBUTING.md for guidelines.