Files
deepseek-harness/packages/subagent
Tianyi Cui 8590ba00a4 Merge remote-tracking branch 'origin/master' into codex/trim-ai-prose
# Conflicts:
#	docs/AGENTS.md
#	docs/config-catalog.md
#	packages/bash/bash-sandbox/src/index.ts
#	packages/bash/bash/src/session-mode.ts
#	packages/bash/tool-bash/README.md
#	packages/code-runtime/code-runtime-worker/README.md
#	packages/compact/compact/src/index.ts
#	packages/core/agent-core/README.md
#	packages/hooks/hooks-claude/src/config.ts
#	packages/hooks/hooks-claude/src/index.ts
#	packages/hooks/hooks-codex/src/config.ts
#	packages/hooks/hooks-codex/src/index.ts
#	packages/llm/llm/README.md
#	packages/session-persistence/session-persistence-jsonl/README.md
#	packages/session-persistence/session-persistence/README.md
#	packages/skill/skill-local/README.md
#	packages/support/acp-snapshot/README.md
#	packages/support/invariants/src/index.ts
#	packages/ui/acp/README.md
#	packages/ui/jsonrpc-agent/README.md
#	packages/ui/jsonrpc/README.md
#	packages/ui/permission/README.md
#	packages/ui/user-approval/README.md
#	packages/ui/user-interaction/README.md
#	packages/web/web-search-deepseek/README.md
2026-07-14 14:37:16 +08:00
..

subagent/ — subagent capability family

The subagent seam: an agent delegating work to a child agent. Like the bash and llm families this is a capability seam (see capability seams) — but with one defining difference: multiple provider implementations coexist in one context, registered by name, rather than the single-implementation bash shape. The registry mirrors the LLM adapter registry.

Package Role ctx key
subagent/ Abstract subagent seam: named-provider registry + vocabulary ctx.subagents
subagent-inprocess/ Shared in-process run driver (no provider; one cleanup effect per run)
subagent-spawn/ In-process backend: a fresh child agent (registers on ctx.subagents)
subagent-fork/ In-process backend: a child seeded with the parent's completed-turn prefix (registers on ctx.subagents)
subagent-subprocess/ Shared out-of-process machinery: env scrub, dispose ladder, isolated config dirs (pure lib; registers nothing)
subagent-acp/ Out-of-process backend: a child agent in a spawned subprocess, driven over ACP (registers on ctx.subagents)
tool-subagent/ Model-facing subagent delegation tool over ctx.subagents (registers on ctx.tools)

The interface lives at subagent/subagent/. The in-process subagent-spawn / subagent-fork backends share the subagent-inprocess driver (a library with no provider of its own — both depend on it, neither on the other), the out-of-process subagent-acp backend builds on the subagent-subprocess library (the credential env scrub, the dispose ladder, isolated config dirs) and ships alongside them here; the test-only dsh-subagent-mock (in support) is separate. All product packages except the mock.

The proposal and design rationale: docs/rfc/implemented/feature/2026-06-21-subagent-capability-seam.md.