Objective
Add durable subagents without creating a second agent runtime. A subagent is another Junior conversation with its own mailbox, lease, session log, execution profile, continuation slices, and result history.
Subagents run in independent queue/serverless invocations through the same continuation endpoint as root agents. Their main differences are lineage, execution profile, and final delivery back to a parent conversation.
Architecture intent
conversationId remains the durable execution and history identity.
- Named agents reuse their own conversation; each delegated task has a separate invocation/result record.
- Model and reasoning configuration survive every continuation slice.
- Completion is pushed into the parent mailbox through automatic conversation-event subscription; status remains pullable for recovery.
- Parent lineage must not create a separate run path or broaden credentials, tools, or destination authority.
Delivery slices
Completion gates
- Root and child agents use the same run, resume, mailbox, lease, and session-log abstractions.
- Child work survives timeout, worker loss, queue redelivery, and parent completion.
- One invocation produces one durable result and one deduplicated parent notification.
- Named agents preserve isolated conversation history and stable profiles.
- Integration tests cover persistence and recovery; evals cover delegation and result consumption.
Objective
Add durable subagents without creating a second agent runtime. A subagent is another Junior conversation with its own mailbox, lease, session log, execution profile, continuation slices, and result history.
Subagents run in independent queue/serverless invocations through the same continuation endpoint as root agents. Their main differences are lineage, execution profile, and final delivery back to a parent conversation.
Architecture intent
conversationIdremains the durable execution and history identity.Delivery slices
spawnAgent,getAgentResult, and named continuityCompletion gates