Runtime Model

Holon treats agent execution as a runtime system. A single model turn is important, but it's not the whole picture. The runtime tracks durable identity, active work, supervised tasks, wake conditions, and final delivery as separate concerns — each with its own lifecycle.

Core Concepts

Agents

An agent is an addressable runtime actor with:

Agent profiles:

Work Items

A work item is a durable objective record that outlives individual model turns. It contains:

Work items let Holon resume work across turns, inspect progress, or hand off incomplete work to another agent. They are not chat history — they're a project management primitive built into the runtime.

Work item lifecycle:

[Created] -> [Draft plan] -> [Ready] -> [In progress] -> [Completed]
                ^                            |
                +--- [Needs input] <-- [Blocked]

When a work item is completed, the runtime promotes the agent's completion
text as a **completion report**. The pattern is:

1. Agent writes the operator-facing summary as assistant text
2. Agent calls `CompleteWorkItem` in the same turn
3. Runtime promotes the preceding text as the canonical completion report

Completion reports are stored as part of the work item record. They are
visible through `GetWorkItem` and `ListWorkItems`, and indexed by
`MemorySearch` for future recall. This makes it possible to ask "what did we
conclude on that issue?" without re-reading the full transcript.

Completion reports replace free-form manual summaries. They are tied to the
work item lifecycle, not to individual model turns. Once a completion report is
promoted, it is the terminal user-facing delivery for that turn; the scheduler
resumes any other runnable work in a later work-queue tick.

Tasks

A task is a supervised execution handle. Tasks include:

Task lifecycle is independent of the agent's user-facing answer. You can:

Queues and Wakeups

Holon's scheduling primitives manage when an agent acts and when it rests:

These state transitions are visible — integrations don't need to infer hidden background behavior.

External Triggers

External triggers let an agent wait for events from outside the runtime:

Agent waits ──► External ingress provisioned ──► Event arrives ──► Agent wakes

Holon provisions a default external ingress capability for each agent. The agent uses this capability to receive wake hints and contentful external events without creating or cancelling triggers on every wait cycle.

Delivery modes:

ModeBehavior
wake_hintWakes the agent so it can inspect external state (e.g., check a CI run). The hint payload is not enqueued as a message.
enqueue_messageWakes the agent and delivers the event payload as a message in the agent's queue.

Choose wake_hint when the external system already has a query API (GitHub API, CI status endpoints). Choose enqueue_message when the callback payload itself contains the actionable information.

External ingress capabilities are agent-scoped. The same agent ingress can be reused across PRs, CI runs, issues, and WorkItems; WorkItems record their waiting state separately through blocked_by, plan_status, and todo state.

Delivery

Holon separates internal execution traces from user-facing delivery:

Workspaces

Every agent has exactly one active workspace. Workspaces define:

Workspaces can be attached, detached, or isolated for safe experimentation.

The Operating Loop

Each agent turn follows this pattern:

  1. Ingress arrives with origin, trust, and priority metadata.
  2. Anchor — Non-trivial work gets a work item with a stable objective.
  3. Load context — Agent reads only what's needed for the current decision.
  4. Mutate — Changes happen through explicit workspace tools (ApplyPatch, ExecCommand).
  5. Verify — Run real project checks (cargo test, cargo check) when available.
  6. Deliver — Concise user-facing result, then sleep or enqueue follow-up.

See Also