16 May 2026
claude code subagent学习
什么是 subagent?
subagent是主 agent 可以调用的独立 ai 实例。与 skill 不同,subagent 拥有独立的对话上下文、独立的工具访问权限,甚至可以运行在不同的隔离环境中。subagent 就像是主 agent 的”助手”或”专家顾问”,可以独立处理复杂任务并返回结果。
何时使用 subagent
适用场景
- 隔离上下文需求
- 需要独立对话历史
- 不想污染主对话的上下文
- 并行处理多个独立任务
- 工具隔离
- 需要不同的工具权限
- 需要在隔离环境中执行操作
- 复杂任务分解
- 主任务可以分解为多个独立的子任务
- 需要不同专业领域的专家协作
- 上下文窗口管理
- 主对话上下文接近窗口上限
- 需要保存子任务的完整历史
不适用场景
- 简单、快速的任务(直接用工具或 skill 更高效)
- 需要与主对话紧密协作的任务
- 对执行速度要求极高的场景
如何创建好的 subagent
1. 清晰的任务描述
subagent 需要一个明确且独立的任务描述。这个描述应该包含:
# 伪代码示例
agent_description = """
分析这个代码库中的性能瓶颈。具体任务:
1. 扫描所有 python 文件
2. 识别常见的性能反模式
3. 提供优化建议
4. 生成报告
"""
关键原则:
- 任务边界清晰
- 输入输出明确
- 避免需要与主 agent 频繁通信
2. 合适的 agent 类型选择
根据任务性质选择正确的 agent 类型:
# 探索代码库结构
Agent(
subagent_type="Explore",
prompt="找出所有 API 端点",
description="探索 API 端点"
)
# 架构设计
Agent(
subagent_type="Plan",
prompt="设计一个新的认证系统",
description="设计认证系统架构"
)
3. 预期结果处理
subagent 完成后,主 agent 需要正确处理结果:
# 获取结果并整合
result = Agent(
prompt="分析 X 模块的依赖关系"
)
# 将结果简洁地报告给用户
# 不要直接堆砌子 agent 的完整输出
4. 并行执行
对于独立的任务,可以并行启动多个 subagent:
# 并行探索多个区域
Agent(
prompt="分析前端代码",
description="分析前端",
run_in_background=True
)
Agent(
prompt="分析后端代码",
description="分析后端",
run_in_background=True
)
subagent 的最佳实践
1. 避免过度使用
subagent 的调用有开销(启动时间、上下文传递)。只有当其带来的价值超过这个开销时才使用。
2. 保持任务独立性
subagent 应该能够独立完成任务,不应该频繁需要与主 agent 交互。
3. 提供足够的上下文
虽然 subagent 有独立上下文,但启动时应该提供足够的初始信息,避免它需要反复询问。
4. 使用适当的超时
为长时间运行的 subagent 设置合理的超时时间。
skill vs subagent 核心对比
架构层面的区别
| 特性 | skill | subagent |
|---|---|---|
| 执行模式 | 在主对话上下文中执行 | 独立上下文执行 |
| 工具访问 | 继承主 agent 的权限 | 可以有独立权限 |
| 状态持久性 | 短暂,执行完即结束 | 持续,有独立记忆 |
| 触发机制 | 基于用户输入自动触发 | 由主 agent 显式调用 |
| 并行能力 | 单一执行 | 可并行多个实例 |
| 上下文隔离 | 无 | 完全隔离 |
LEo
at 00:00