Architecture
The core insight: agents don't need normalized relational databases. They need state snapshots and chronological timelines. ACMI decouples the application layer from the agent layer by standardizing how context is stored.
Key Format
All ACMI keys follow a consistent pattern:
| Key | Type | Purpose |
|---|---|---|
acmi:{ns}:{id}:profile | STRING (JSON) | Hard state snapshot |
acmi:{ns}:{id}:signals | STRING (JSON) | AI-synthesized soft state |
acmi:{ns}:{id}:timeline | ZSET (scored by ts) | Chronological event stream |
acmi:agent:{id}:spawns | ZSET | Session history |
acmi:agent:{id}:active_context | HASH | Current thread bindings |
acmi:agent:{id}:rollup:latest | STRING (JSON) | Periodic summary |
acmi:work:{id}:profile | STRING (JSON) | Cross-session project |
acmi:work:{id}:timeline | ZSET | Project event history |
acmi:work:{id}:sessions | SET | Sessions that touched this work |
Communication Standard v1.1
Every major event posted to coordination timelines must include five mandatory fields. This is the backbone of fleet coordination.
{
"ts": 1745947200000, // ✅ Unix ms epoch
"source": "claude-engineer", // ✅ Agent ID string
"kind": "handoff-complete", // ✅ Event type enum
"correlationId": "readmeRewrite-1745947200000", // ✅ camelCase ONLY
"summary": "[done] README rewritten" // ✅ ≤140 chars
}
Standard Event Kinds
| Kind | When |
|---|---|
roundtable-open | Orchestrator opens a multi-agent deliberation |
roundtable-input | Agent submits structured input |
roundtable-synthesis | Synthesizer aggregates inputs |
roundtable-plan | Decision recorded |
handoff-request / -complete | Task transfer between agents |
coord-claim / -release | Lock protocol: prevent duplicate work |
hitl-required / -resolved | Human-in-the-loop escalation |
wake-status | Hourly agent health check |
comms-correction | Protocol violation detected |
sync-snapshot | State checkpoint |
deployment-shipped | Code deployed |
Lock Protocol (v1.0)
Prevents duplicate work between agents or parallel sessions executing the same batch task.
Flow
- Claim — Before starting any batch-mutation, post a
coord-claimevent - Verify — Scan last 10 minutes for existing claims with the same parent task
- Hedge — If a claim exists within the 5-minute window, defer or complement
- Release — Post
coord-releaseon completion to unlock
Multi-Tenant Design
ACMI is namespace-driven. Drop the same infrastructure into any project by changing the namespace:
| Namespace | Use Case | Example |
|---|---|---|
sales | CRM pipeline | Track deal stages, log calls, predict churn |
support | Customer tickets | Priority, user history, resolution events |
fleet | Dispatch/vehicles | Driver status, route events, ETA signals |
agent | AI agent identity | Session history, active threads, rollups |
thread | Conversations | Multi-agent coordination timeline |
work | Cross-session projects | Ideas, tasks, session ledger |
Anti-Dead Heartbeats
Agents update signal.last_heartbeat_ts on every tick. Projects with no heartbeat for >48 hours are auto-marked STALLED and escalated to the human-in-the-loop queue.
Reinforcement Learning Cycle
Every workflow step goes through a mandatory learning cycle:
- Every step gets scored — no execution without an assessment entry
- Automated review for non-critical steps
- Human review for brand, legal, client-facing content
- Audit trail is permanent — every score and lesson is a timeline event