Agent layer.
The current runtime is no longer activation-first.
It is a session-first scalable runtime centered on:
AgentDefinitionEnvironmentSessionSessionEventResourceAttachmentwake(sessionId)HarnessSandboxToolDefinition
Why This Shape
openboa wants anAgent layer that can scale without being rewritten every time a new upper-layer product surface appears.
That means:
Chatmust not define the agent coreWorkmust not define the agent core- provider backends must remain swappable
- orchestration must stay simple
- durable state must live on the session, not in a transient loop payload
Session the primary runtime object and treating everything else as a seam around it.
Core Objects
AgentDefinition
The durable definition of one agent’s brain identity.
It answers:
- which provider does this agent use
- which model does it default to
- which runner path executes it
AgentDefinition is stable across many sessions.
Environment
A reusable execution substrate definition.
It answers:
- what kind of sandbox exists
- what network posture applies
- what workspace mount defaults should be used
kind: "local"
Session
The primary runtime object.
A session is:
- durable
- stateful
- isolated from other sessions
- attached to exactly one agent and one environment
statususage- attached
resources - pending custom-tool state
- event history
- session-local runtime memory
SessionEvent
The append-only event stream for one session.
The current event families are:
user.messageuser.tool_confirmationuser.custom_tool_resultsession.status_changedsession.status_idleagent.messageagent.tool_useagent.custom_tool_use
processedAt == null
ResourceAttachment
Durable resources attached to a session.
Current local resource kinds:
workspace_directorylocal_filelearnings_memory_storesession_runtime_memory
vaultremote_file_storerepo_mount
Harness
The bounded brain loop.
The harness is responsible for:
- loading the session and its pending events
- assembling context from session state and attached resources
- calling the provider backend
- appending new
agent.*andsession.*events - updating runtime memory and session status
Sandbox
The execution hand.
The public shape is:
ToolDefinition
The stable callable contract for tools.
Current ownership kinds:
managedmcpcustom
always_allowalways_ask
Runtime Flow
The runtime should be read in this order: The practical meaning is:- a user or upper layer appends a session event
- orchestration wakes the session
- the harness processes one bounded run
- the session receives new events and updated runtime memory
- orchestration may schedule another bounded revisit internally
wake(sessionId)
The official orchestration seam is intentionally small:
wake(sessionId) does not need to know:
- full prompt payload
- tool list details
- provider-specific session bindings
- upper-layer semantics such as
chat.mention
- which session should be reconsidered now
Storage Layout
Agent-local data lives under:Workspace substrate
Session store
Agent-level learnings
Reusable environments
CLI Surface
The public Agent CLI is now session-first.Create a session
Send a message into a session
Wake the session once
Inspect state and events
Run the bounded orchestrator loop
What Changed From The Earlier MVP
The old Agent MVP exposed:- activation-first commands
- scheduler/daemon-heavy public language
- per-agent runtime files as the main public mental model
- sessions as the main running object
- environments and resource attachments as first-class state
wake(sessionId)as the public orchestration seam- the harness as the bounded brain loop
- sandbox and tool ownership as explicit runtime contracts
Relationship To Chat
Chat is not the Agent runtime.
Chat may:
- append messages to shared company truth
- resolve routing
- decide which session should receive an event
- session id
- session state
- pending events
- attached resources
Current Boundary
Inside the current frontier, the runtime guarantees:- durable sessions
- append-only session events
- local reusable environments
- session-local runtime memory
- agent-level shared learnings
- provider-swappable brains behind the harness seam
- local sandbox provision/execute semantics
- remote environments and cloud containers
- richer vault and remote resource attachment
- broad approval UX for custom tools
- upper-layer capability-aware session ingress from Chat and Work