Claude Code 学习站

子代理 Agent

子代理是一个独立上下文的 Claude 会话,适合做研究、审查、并行任务,既加速又保护主上下文。

为什么用 agent

主上下文是有上限的。如果让 Claude 直接读 50 个文件来找一个东西,它会塞满上下文 —— 后续会话变慢、贵、还容易遗忘。

子代理(subagent / Task)解决三件事:

  1. 保护主上下文:子代理在独立上下文里读 50 个文件,最后只返回一段总结给主会话。
  2. 并行加速:可以同时跑多个子代理,各做各的。
  3. 专项能力:不同子代理可以预置不同的工具集和指令,比如"代码审查员"、"测试编写员"。

怎么调用

最简单的方式 —— 直接告诉 Claude:

> 用一个子代理去搜索整个 codebase,看看哪些地方调用了 fetchUser,
> 然后告诉我每个调用方传的参数有什么差异

Claude 会用 Agent 工具启动一个子代理,子代理跑完返回总结。你看到的只是结论,不是中间过程。

显式指定 agent 类型:

> 用 general-purpose agent 调研一下我们用 zod 做了哪些 schema 验证,
> 给我一份 markdown 列表

常见内置 agent:

  • general-purpose —— 通用,适合大多数研究任务
  • Explore —— 只读,专门做代码定位和 grep
  • Plan —— 软件架构师,出实施方案
  • code-reviewer —— 代码审查

实战示例

示例 1:并行做三件互相独立的研究

> 同时启动三个 agent:
> 1. 调研我们用的所有第三方 API,列出 endpoint 和频率
> 2. 找出所有未被引用的导出函数
> 3. 统计测试覆盖率最低的 5 个文件
> 三个 agent 并行跑,最后汇总报告给我

Claude 会在一条消息里发起三个 Agent 调用,并行执行。比串行快 2-3 倍。

示例 2:用 Plan agent 出方案再实现

> 用 Plan agent 设计一下「把当前的 REST 接口迁到 GraphQL」的方案
> 等方案出来我看完再决定怎么改

Plan agent 会给你一份完整的迁移计划:数据库改动、API 兼容、回滚方案。你确认后再让主 Claude 按计划改。

示例 3:用 Explore 找东西

> Explore: 哪里定义了 useFeatureFlag 这个 hook?

比直接让主 Claude grep 快,而且不污染上下文。


自定义 agent

~/.claude/agents/ 或项目的 .claude/agents/ 下创建 markdown 文件,例如 code-reviewer.md:

---
name: code-reviewer
description: 严格的代码审查员,只看不改
tools: Read, Grep, Glob
---
 
你是一个严格但建设性的代码审查员。
 
审查时检查:
1. 安全性(SQL 注入、XSS、密钥泄漏)
2. 性能(N+1、不必要的循环、大对象拷贝)
3. 可读性(命名、复杂度、注释)
4. 项目约定(参考根目录 CLAUDE.md)
 
输出格式:按文件分组,每条 issue 标 severity(critical/warning/nit)。

之后:

> 用 code-reviewer agent 审查一下我刚提交的 commit

提示:tools: 字段可以白名单工具。比如审查员只给 Read/Grep/Glob,确保它不会真去改代码。


下一篇:Skills →