Architecture
How does DaemonCore work?
One idea runs underneath everything else: an agent's output is checked against a governance layer that is defined before the agent runs and cannot be altered from above. Governance is foundational here, not a setting bolted on afterwards. The rest of this page follows that idea from structure to a real, recorded execution.
Authority is separate from execution
The central decision in DaemonCore is that the component doing the work is never the component that decides what work is permitted.
The kernel defines what is allowed
Declarative, with no execution logic: lineage and integrity, safety invariants, the capability envelope, the identity framework, governance limits and the rules for deterministic execution.
The runtime performs how it is done
Implementation: the message bus handlers, the scheduler, inter-process communication and tool execution. It obeys the kernel's ceilings and cannot modify lineage or safety invariants.
Agents are a third tier. They receive structured instructions over the message bus and return plans, code, patches or analyses — but never touch kernel state or queues directly. An agent cannot grant itself a capability, because the authority to grant one does not live where the agent runs. The diagram below shows that separation.
Figure 1 — DaemonCore architecture
The diagram shows two tiers. The upper tier is the governance layer, containing three components: safety boundaries (what agents cannot do), capability envelopes (what agents are allowed to do), and vendor isolation (multiple providers, unified rules).
The lower tier holds four governed agents, each pairing a provider with a role: Claude as developer, GPT as reviewer, Gemini as analyst, and a local model as assistant. Every agent sits beneath the governance layer without exception.
The diagram makes two claims: multiple AI providers operate under unified governance, and boundaries are architectural rather than advisory.
How an agent is assembled
Every agent is assembled from three structural inputs before it operates: a rulebook (behavioural constraints), a scope boundary (operational range) and a context focus (current workload). Assembly is not a suggestion — it happens through an ordered, mandatory boot sequence.
Figure 2 — Agent boot sequence
The diagram shows three numbered phases running in order, ending in a ready state.
- Phase 1 — Environment. Detect host context; load configuration.
- Phase 2 — Identity. Establish agent identity; apply role profile.
- Phase 3 — Boundaries. Set capability limits; enforce safety rules.
- Ready — Operational. The agent is active, within bounds.
It states three key principles: boot is deterministic (the same configuration produces the same behaviour), boundaries come first (limits are set before operation), and state is persistent (it survives restarts).
Its closing statement is that agents cannot skip boot phases or self-modify boundaries.
The order is the point. Boundaries are set in phase 3, before the agent becomes operational, so there is no window in which an agent is running but ungoverned — it starts running only once its limits are in place. And because the same configuration produces the same initial state, an execution can later be reasoned about from the conditions it started from.
What an agent may do
Capabilities are an envelope with defined ceilings, and one asymmetric rule does most of the work:
Capabilities may be reduced at runtime. They may never be increased after boot.
Identity overlays follow the same asymmetry — an identity changes behaviour and tone and may narrow what an agent does, never widen it. So the maximum reach of a session is fixed at boot; nothing afterwards can extend it. Extension points exist too — custom role profiles, environment-specific boundary configurations, external tooling hooks — but each runs inside that ceiling and can only narrow it.
Policy is decided within the envelope, but governance is itself constrained: it cannot add capabilities outside lineage, permit safety-invariant violations, grant capabilities beyond the envelope, or introduce nondeterministic overrides.
Where policy conflicts with these limits, policy loses. A setting that can be overridden by the thing it governs is only advice.
Execution modes and approval gates
Boundaries are not uniform across environments. Autonomy — and the approval gates with it — scales by the declared execution mode:
| Execution mode | Autonomy | Approval gates |
|---|---|---|
| Sandbox | Low | All operations require approval |
| Controlled | Medium | Destructive operations require approval |
| Dangerous | High | Audit-only, no blocking gates |
How work flows — and becomes evidence
Agents never call one another. They exchange typed messages over the MAX bus, which routes by role — developer, reviewer, orchestrator, system — not by agent or vendor. Two properties make the bus a governance mechanism rather than plumbing: a message that does not match its schema is rejected before it routes, and the message type decides which role may receive it.
Messages move through an explicit lifecycle in role-scoped queues, so the record of what was requested, by whom, and what became of it is a property of the transport itself. That is what makes an execution reviewable — and what lets a real run be recorded and replayed rather than merely described.
recorded · RUN-001 · MAX bus → governance gate
[INFO] [MAX Bus] Published: reviewer/EVID-e9b58172-reviewer.json
[INFO] [MAX Bus] Claimed: reviewer/EVID-e9b58172-reviewer.json
[WARN] [EnforcementGate] Advisory: No skill match: No candidates found in any registry
[INFO] [Execution] Created exec-a41c2c95cbc8 | intent=code_review_request | trigger=queue_message:EVID-e9b58172 | participant=reviewer Routing by role is also what allows vendor isolation: a reviewer is a reviewer whether it is served by Claude, GPT, Gemini or a local model, because the bus addresses the role and the governance layer applies the same rules beneath all of them. Replay the full recording to watch this lifecycle line by line.
You have read the layers in order. The same architecture can also be read by its relationships — start from any concept and follow what depends on it.
Architecture Explorer
How does this fit into everything else?
The same architecture described above, organised around its relationships. Start from a perspective, then follow the links between concepts. Every relationship is named, so you can explore the whole system without relying on a diagram.
This view is composed from the architecture described on this page and the kernel documents it summarises. It organises that material; it does not add to it.
Start from a perspective
- Subsystem Entry perspective
Kernel
What decides what is allowed?
The declarative authority. It holds no execution logic; it defines lineage and integrity, safety invariants, the capability envelope, the identity framework, governance limits, and the rules for deterministic execution.
Responsibilities
- Declare the safety invariants that execution must respect.
- Define the capability envelope as ceilings that may be reduced but never raised.
- State what governance may restrict and what it can never override.
- Remain read-only to the runtime and to agents.
Leads to
- The invariants it declares Non-negotiable rules that every execution must respect.
- The ceilings it defines The maximum reach available to any session.
- The limits it places on governance What policy is never allowed to override.
- How it is extended without being weakened Extensions run inside the envelope; they cannot widen it.
Reached from
- Runtime Entry perspective
Runtime
What actually performs the work?
The implementation tier. It carries the message-bus handlers, the scheduler and tool execution. It must obey the kernel’s rules and capability ceilings, and cannot modify lineage or safety invariants.
Responsibilities
- Perform how work is done, within the envelope the kernel defines.
- Operate the MAX bus and route work to roles.
- Coordinate multi-agent operation and keep an audit trail.
- Never grant a capability the kernel did not permit.
Leads to
- Obeys the rules and ceilings the kernel defines The component doing the work is never the one that decides what is permitted.
- Performs how the kernel’s declarations are carried out
- The bus it operates Agents exchange typed messages rather than calling one another.
- How it coordinates agents and records history
- How an agent reaches a governed state
Reached from
- Agent
Governed agents
What produces the outputs?
The third tier. Agents receive structured instructions over the message bus and produce outputs — plans, code, patches, analyses. They never directly access kernel state or queues.
Responsibilities
- Receive typed instructions and produce structured outputs.
- Operate strictly within the capability envelope fixed at boot.
- Reach the governance gate with every output before it becomes an Execution.
Leads to
Reached from
- Workflow
Deterministic boot
How does an agent reach a governed state?
An ordered, mandatory sequence. Boundaries are established before the agent becomes operational, so there is no window in which an agent is running but ungoverned. The same configuration produces the same initial state.
Responsibilities
- Establish structure, then boundaries, before operation.
- Fix the capability ceiling for the session at boot.
- Make behaviour reconstructable, and therefore reviewable.
Reached from
Evidence
A genuine execution captured after boot (RUN-001)Partial — recorded, unsealed and not independently verified.
- Policy
Capability envelope
What limits what an agent can do?
Capabilities expressed as an envelope with defined ceilings. One asymmetric rule does most of the work: capabilities may be reduced at runtime, but never increased after boot.
Responsibilities
- Fix the maximum reach of a session at boot.
- Allow narrowing at runtime; forbid any widening.
- Bound governance, identity overlays and extensions alike.
Reached from
- Policy
Governance limits
What constrains governance itself?
Governance decides policy within the envelope, but is itself constrained: it cannot add capabilities outside lineage, permit safety-invariant violations, grant capabilities beyond the envelope, or introduce nondeterministic overrides. Where policy conflicts with these limits, policy loses.
Responsibilities
- Decide policy strictly within the capability envelope.
- Yield to the safety invariants whenever they conflict.
- Separate governance from mere configuration — a setting the governed can override is only advice.
Reached from
- Policy
Safety invariants
What can never be overridden?
The non-negotiable rules all execution must respect. They are declared by the kernel and are not reachable from the layers above them.
Responsibilities
- Hold the rules that no policy, identity or extension may override.
- Remain foundational rather than retrofitted from above.
Reached from
- Component
Identity overlay
How do persona and role shape behaviour without expanding power?
An identity modifies behaviour and tone. It cannot alter lineage, capabilities or module activation. It may further restrict what an agent does — never expand it — inheriting the envelope’s asymmetry.
Responsibilities
- Shape how an agent behaves, not what it is permitted to do.
- Narrow behaviour where appropriate; never widen capability.
Reached from
- Protocol
MAX bus
How do agents communicate and stay auditable?
Agents do not call one another; they exchange typed messages over the MAX bus, which routes by role rather than by agent or vendor. Schema validation rejects malformed messages at the bus, and typed routing sends work to the role permitted to perform it.
Responsibilities
- Route messages by role — developer, reviewer, orchestrator, system.
- Reject messages that do not match the expected schema.
- Move messages through an explicit, auditable queue lifecycle.
- Enable vendor isolation: a role is the same role whichever model serves it.
Reached from
Evidence
See this exercised in a genuine recorded execution (RUN-001)Partial — recorded, unsealed and not independently verified.
- Subsystem
Coordination and audit
How is multi-agent work coordinated and recorded?
The coordination layer manages multi-agent operation through context handoff, scope isolation and audit trails. Because messages move through an explicit lifecycle rather than being consumed invisibly, the record of what was requested, by whom, and what became of it is a property of the transport.
Responsibilities
- Coordinate agents as components of one system, not isolated instances.
- Prevent conflict through scope isolation.
- Keep an audit trail of operational history.
Leads to
Reached from
- Component
Governance gate
Where is an output allowed to become an execution?
The admission point every execution passes through. It decides what an agent’s output is allowed to become, is defined before agents run, and cannot be altered from above.
Responsibilities
- Admit or reject an output before it becomes an Execution.
- Apply governance policy within the limits the kernel fixes.
- Stand between every agent output and its effect, without exception.
Reached from
Evidence
Watch a real request pass this gate (RUN-001)Partial — a genuine recorded admission through the gate, unsealed and not independently verified. The gate was advisory in this capture.
- Component
Extension model
How is DaemonCore extended without weakening it?
Extension happens through defined interfaces — custom role profiles, environment-specific boundary configurations, integration hooks. Extensions inherit the envelope’s asymmetry: an extension runs inside the ceiling and may narrow it, but nothing added later can widen what the kernel permitted at boot.
Responsibilities
- Allow domain-specific extension through defined interfaces.
- Run inside core constraints; never override safety or coordination.
Leads to
Reached from
Where this goes next
This page is the conceptual level. Each destination below takes it somewhere concrete.