2.5 KiB
@deepseek-ai/dsh-subagent-spawn
The in-process spawn subagent backend: a SubagentProvider that runs each child as a fresh child Agent on the same cordis context (ctx.agents) — its own session, its own (or the parent's) model, zero inherited conversation. The cheapest transport, reusing the agent factory's quiescent AgentHandle teardown.
The run mechanics live in the shared @deepseek-ai/dsh-subagent-inprocess driver (startInProcessRun); this backend just passes no seed (a fresh child). The fork backend is an independent peer over the same driver — neither knows about the other.
Model Experience
| Context surface | What the model sees | Token effect |
|---|---|---|
| Child-agent request | The fresh child receives the standalone task, inherits the parent model and workspace by default, and sees the globally composed prompt and tools after its scoped persona and tool filter. It receives zero parent conversation messages. | The child pays for a new independent context and history; no parent-history tokens are duplicated. |
| Parent tool result, indirectly | Through dsh-tool-subagent, the parent receives only the child's final output or stop-reason error. |
Parent input grows by one data-dependent result retained until compaction. |
What it does
start(request) delegates to startInProcessRun(ctx, request, {}) with no seed: a fresh child agent with the parent's cwd/parentSession lineage and (by default) the parent's model. The driver creates one run-owner fiber under parent.ctx; parent teardown, this provider's teardown, and manual disposal all converge there before child publication. Its run.started boundary resolves only after the fresh child is published, so subagent/start observers see a live registry entry. See the driver README for the full lifecycle (depth check, one-shot drive, result read, dispose).
Capabilities
{ outputSchema: true, depthLimit: true, toolFilter: true, persona: true }. It constructs the child, so it enforces a recursion cap and composes the child's persona, global-tool restriction, and structured runtime inside the agent-creation setup window. At apply it registers this one named provider on ctx.subagents; per-run contributions belong to each child's scope.
Config
| Key | Meaning |
|---|---|
providerName |
Registry name on ctx.subagents (default spawn). |