Files
deepseek-harness/packages/subagent
Tianyi Cui 3368ddc0ab feat(sdk): launch TypeScript clients through dsh profiles
Replace the TypeScript SDK's public arbitrary command/argv launch surface with the same-version dsh CLI, a named profile, ordered per-launch patches, optional process cwd, and explicit Harness home selection. Installed consumers use the built CLI; clean source checkouts use the package's src/bin.ts through an absolute tsx/esm loader and a source-only patch that omits build-generated Typert loading.

Materialize explicit or inherited environments at spawn time, keep profile-internal patches below caller patches, and resolve every caller-relative path before the child starts. The SDK subagent provider validates its optional CLI and patch files at plugin load and requires an isolated absolute child home.

Treat JSON-RPC initialize as the Loader-owned readiness point: Loader settlement joins entry imports, fiber lifecycle work, and synchronous effect registration, so the server needs no scheduler tick. A delayed profile entry registers a private adapter before initialize resolves, proving caller-supplied plugin routes are visible without fallback.

Update sdk-app ownership, server diagnostics, TypeScript SDK examples, nested-loader coverage, and session-upload replay layering together. The following commit contains only the regenerated SDK transcripts, keeping this API and lifecycle change directly reviewable.
2026-08-23 10:59:00 +08:00
..
2026-08-21 19:48:58 +08:00

subagent/ — subagent capability family

English | 中文

This family lets an agent delegate work to child agents. Multiple named providers may coexist in one context.

Package Role ctx key
subagent/ Defines provider registration, delegation, and continuation ctx.subagents
subagent-inprocess/ Provides the shared in-process run driver
subagent-spawn-in-process/ Starts a fresh in-process child registers on ctx.subagents
subagent-fork-in-process/ Starts an in-process child from the parent's completed history registers on ctx.subagents
subagent-acp/ Starts an out-of-process child over ACP registers on ctx.subagents
subagent-codex/ Starts a real Codex app-server child registers on ctx.subagents
subagent-claude-code/ Starts a real Claude Code child through the official Claude Agent SDK registers on ctx.subagents
subagent-dsh-sdk/ Starts an out-of-process Harness child through the TypeScript SDK registers on ctx.subagents
tool-subagent/ Exposes delegation to the model registers on ctx.tools
tool-subagent-control/ Exposes child messaging and listing to the model registers on ctx.tools
tool-subagent-report/ Provides the child-to-parent report channel registers in child scopes

The Codex and Claude Code packages are independent optional Profile Bundles. Install either or both with dsh plugin --profile <name> add @deepseek-ai/dsh-subagent-codex @deepseek-ai/dsh-subagent-claude-code, then restart that Profile; each package registers only its dormant Host provider. To grant a tool, copy a complete Agent Preset, remove disabled from each matching tool row, and start a new Session. Removing one package withdraws only that provider and its private runtime closure on the next Profile start.

See the decisions for the capability family, continuable children, and control tools.

The subsystem reference — start requests, results, live runs, the provider contract, continuable background children — is docs/subsystems/subagent.md; design rationale in the subagent capability seam, continuable background subagents, and merged subagent control service Agent Notes.