Skip to content

Subagents: shared durable agent runtime and named delegation #883

Description

@dcramer

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions