Claude Code Subagents

Subagents 让 Claude Code 把聚焦工作委派给带独立指令和上下文的代理。它们适合可拆分的调研、审查、测试或实现任务。

最近核验
适用版本
Claude Code 2.1.x。本机使用 2.1.198 核对 CLI 拼写;官方文档可能描述更新的 2.1.x 行为。
核验方式
依据官方文档和本地 agent flags 核对 subagent definition、tool allowlist、nesting 和 permission behavior;未启动 subagent 或模型任务。
官方来源
SubagentsPermissionsChangelog

可复现实践

设计 Read-only Reviewer Subagent 并证明工具边界

委派独立审查,但不授予编辑、秘密访问或无限 child-agent spawning。

准备

  • 唯一临时仓库。
  • 有预期 evidence 的有界 review question。
  • 除 reviewer 必须读取内容外不放 confidential fixture。

执行步骤

  1. 创建 scoped agent definition

    只允许 inspection tools,并要求 prompt 输出 evidence。

    步骤 1
    AGENT_LAB=$(mktemp -d "${TMPDIR:-/tmp}/claude-agent.XXXXXX")
    printf '%s\n' "$AGENT_LAB"
    cd "$AGENT_LAB" && git init -q
    mkdir -p .claude/agents
    printf '%s\n' '---' 'name: read-only-reviewer' 'description: Review a bounded diff and cite file evidence.' 'tools: Read, Grep, Glob' '---' '' 'Report findings by severity. Do not propose edits without cited evidence.' > .claude/agents/read-only-reviewer.md
  2. 检查 allowlist

    启动前确认 Edit、Write、Bash、MCP 和 Agent 均不存在。

    步骤 2
    sed -n '1,12p' .claude/agents/read-only-reviewer.md
  3. 在无害 fixture 上运行

    要求 main session 用指定 agent 检查一个 text file;本次未执行模型。

  4. 独立挑战结果

    自行验证引用行,拒绝没有文件证据的结论。

预期结果

Reviewer 给出 file-grounded finding,且不编辑、不运行 command、不调用 MCP、不生成新 agent。

验证

  • 检查 tool usage,不信任 final prose。
  • 确认 `git status --short` 未改变。
  • 用请求编辑的 negative prompt 验证边界。

失败处理

Agent 无法启动

检查 tool name 和 definition scope;未解析 tool 现在会显式失败。

Review 缺少 evidence

收窄任务并要求 file/line citation 后再行动。

清理或回退

  • 返回原目录,只删除打印出的 AGENT_LAB 路径。
  • 通过 reviewed version control 禁用真实 project agent,不编辑 user-level agent。

边界与不适用场景

  • Subagent 默认继承可用 tools,least privilege 必须显式配置。
  • Delegation 分离 context,不转移责任;main reviewer 仍需验证 finding 和数据暴露。

为什么隔离任务

隔离可以减少上下文混杂。审查代理专注缺陷,调研代理检查文档,实现代理限制在更窄文件范围内。

并行工作

当子任务相互独立时,并行代理有价值。如果每一步都依赖同一个文件或同一个未定方案,并行通常只会增加协调成本。

指令设计

Subagent 需要明确范围、期望输出和边界。涉及代码改动时,应指定文件或模块归属,避免多个代理互相覆盖。

审查结果

Subagent 输出是输入,不是最终事实。合并前仍要检查证据、冲突、测试结果以及是否符合用户目标。

CommandDescription
/tasks查看运行中和已完成的后台 Subagents
/background分离主会话,让工作继续在后台运行。
/branch尝试不同方向,同时保留当前线程。
claude agents --json以脚本方式读取活跃后台会话

Subagent 设计模式

范围清晰的 Subagents 能降低协调成本,并让并行工作更安全。

Subagent 检查

相关主题