Architecture
One event bus. Six faculties.
A queryable record of every decision.
Sonder is built around a single thesis: every agent action should emit a typed event carrying structured context from six independent faculties at once. That event — the SonderEvent — is the substrate of the audit log. Ginnung is the cockpit you watch it through.
The thesis
Compliance is not a feature.
Most agent systems treat the audit log as something to construct after the fact: scrape transcripts, infer state, retrofit justification. The result is fragile, expensive, and unreadable by anyone who didn't write the agent.
Sonder inverts this. The audit trail is not derived — it is the substrate. Every action an agent takes produces a structured event that already carries the answers to the questions a regulator, auditor, or operator will ask.
Six faculties, one event, one bus. Everything else is downstream.
The diagram
Sonder, with six faculties orbiting.
The hub at the center is Sonder — the event bus, the routing fabric, the audit record. The six faculties emit; the bus aggregates; the record is the deliverable. Pulses inbound show SonderEvents arriving from each faculty.
The schema
The SonderEvent.
Every action emits one. Every field is required. The faculties contribute their own block; nothing is optional, nothing is implicit.
{
"event_id": "evt_01HX5R...",
"agent_id": "agent_research_v2",
"timestamp": "2026-05-11T18:22:04.118Z",
"action": {
"type": "tool_invocation",
"tool": "search.web",
"args": { "query": "EU AI Act Article 12" }
},
"memory": { "recalled": ["engram-7c2a", "engram-9d11"], "confidence": 0.82 },
"reasoning": { "verdict": "proceed", "minority": [], "rounds": 1 },
"governance": { "tier": "L2", "verdict": "pass", "policy": "pii-v3" },
"capability": { "tool": "search.web", "receipt": "rcpt-91f0", "cost_usd": 0.004 },
"intent": { "goal": "draft_summary", "planned": ["read", "summarize"] },
"prediction": { "outcome_p": 0.71, "confidence_interval": [0.62, 0.79] },
"signature": "ed25519:0x9f2a..."
}Signed by the runtime, append-only, queryable by event ID, agent ID, time range, faculty field, or policy verdict. Full SonderEvent spec →
The faculties
Each one answers one question.
The faculties are independent runtimes. Each can be used alone. Their value compounds when bound to the same event bus.
| Faculty | Question | Field | Product |
|---|---|---|---|
| Memory | What does it know? | memory | Engram → |
| Reasoning | What is it concluding? | reasoning | Parliament → |
| Governance | Was the action valid? | governance | Lattice → |
| Capability | What can it do? | capability | ACR → |
| Intent | What's the plan? | intent | AWM → |
| Prediction | What outcome is expected? | prediction | Le-WM (coming) |
The audit log
Five questions, answered structurally.
The faculties are designed so that the five questions regulated industries always ask have a structured home, not a narrative one.
What did the agent know at the time of the action?
memory.recalled is the exact set of engrams loaded into context. Audit is a query, not an inference.
What was the agent authorized to do?
capability.tool + governance.policy + governance.verdict together answer this for every action.
Why did the agent decide this?
reasoning.verdict + reasoning.minority surface the decision and the structured dissent — not a single hidden chain.
Was the handoff between systems valid?
governance.tier records which of L1/L2/L3 validators ran, and governance.verdict is the gate signal.
What outcome did the agent predict?
prediction.outcome_p + confidence_interval are emitted before execution, not reconstructed after the fact.
The regulatory hooks
Why this maps to the EU AI Act.
The faculties are not theoretical. They map to specific articles regulators are about to enforce.
Article 12 — Logging
Engram + Sonder
High-risk AI systems must produce automatic, technically robust logs. Sonder emits them; Engram makes them queryable for the lifetime the operator chooses.
Articles 14 & 15 — Oversight + Robustness
Lattice
Required: meaningful human oversight, robustness, fallback behavior. Lattice provides tiered policy gates with explicit shadow-mode rollouts and human escalation paths.
Get started
Start with one faculty.
Each faculty runs independently. You don't need to adopt the whole runtime to feel the shape of the system.
Built by
Ginnung is built by heybeaux, a one-person studio in Powell River, BC. The stack is open-source, the spec is public, and the audit log is the product.