Claude中SubAgents和Skills的区别

7 阅读2分钟

根据文档,我来为你总结**子代理(Sub-agents)技能(Skills)**的主要区别:

核心区别对比

方面子代理 (Sub-agents)技能 (Skills)
本质专门化的 AI 代理专业功能/知识包
定义方式✅ 编程方式(推荐)或文件系统❌ 只能通过文件系统定义
位置.claude/agents/*.md.claude/skills/*/SKILL.md
上下文独立上下文,与主代理隔离在主代理上下文中执行
并行执行✅ 支持多个子代理并发运行❌ 不支持
编程 API✅ 通过 agents 参数定义❌ SDK 不提供编程 API

子代理 = 另一个 AI

子代理本质上是另一个具有推理能力的 AI 代理

  • 有自己的系统提示定义角色和行为
  • 独立的上下文,不会污染主对话
  • 可以限制工具访问
  • 适合:代码审查、测试执行、安全扫描等需要独立推理的任务
agents: {
  'code-reviewer': {
    description: '代码审查专家',
    prompt: '您是代码审查专家...',  // 独立的系统提示
    tools: ['Read', 'Grep'],         // 工具限制
    model: 'sonnet'                  // 可指定不同模型
  }
}

技能 = 知识 + 指令 + 资源

技能是打包的专业功能

  • 包含指令、脚本和支持资源
  • 代码执行环境中运行
  • 更像是"说明书 + 工具包"
  • 适合:处理 PDF、Excel、特定领域的操作流程
.claude/skills/processing-pdfs/
└── SKILL.md   # 包含 YAML 前置内容和 Markdown 指令

简单类比

概念类比
子代理请一个专家同事帮你做某件事(他有自己的思考)
技能给 Claude 一本操作手册让他按步骤执行

何时使用哪个?

  • 用子代理:需要独立推理、上下文隔离、并行处理的场景
  • 用技能:需要特定领域知识、固定操作流程、可复用的专业功能