Multi-Agent Sessions
Link parent and child agents into a unified session tree.
The tree model
In many real-world systems, agents delegate work to other agents. AOP models this as a tree of sessions. Every session has an optional parent_session_id field. When set, it declares that this session was spawned by the parent.
The collector and dashboard use this tree to show the full execution graph — you can see which agent spawned which, what goals were delegated, and how the work flowed.
Setting parent_session_id
Pass parentSessionId when constructing the child agent's AOPClient:
// Parent agent
const parent = new AOPClient({ agentId: 'orchestrator' })
await parent.sessionStarted({ goal: 'Write a report' })
// Spawn a child agent
const childSessionId = await parent.agentSpawn('researcher', {
goal: 'Gather sources'
})
// In the child agent process
const child = new AOPClient({
agentId: 'researcher',
sessionId: childSessionId,
parentSessionId: parent.sessionId
})
await child.sessionStarted({ goal: 'Gather sources' })operation.agent_spawn
The parent emits an operation.agent_spawn event when it creates a child. This event links the two sessions in the tree and records the delegation intent.
{
"type": "operation.agent_spawn",
"payload": {
"child_session_id": "sess_researcher",
"child_agent_id": "researcher",
"goal": "Gather sources"
}
}AOPClient.agentSpawn()
The SDK provides a convenience method that emits the spawn event and returns a fresh session ID for the child:
const childSessionId = await aop.agentSpawn(
'child-agent-id', // agentId of the child
{ goal: 'Sub-task' } // optional metadata
)
// childSessionId is a new UUID you pass to the child's AOPClientThis method:
- Generates a new session ID for the child
- Emits
operation.agent_spawnwith the child's session ID and agent ID - Returns the child session ID so you can pass it to the child process
Dashboard visualization
The dashboard renders multi-agent sessions as a collapsible tree. Each node shows the agent ID, session status, and goal. Clicking a child session navigates into its event feed while maintaining the tree context in the sidebar.
Related
- Event types — the
operation.agent_spawnpayload - Operation methods — the
agentSpawn()API - Dashboard views — how multi-agent sessions appear in the UI