惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Proofpoint News Feed
G
Google Developers Blog
B
Blog
Engineering at Meta
Engineering at Meta
阮一峰的网络日志
阮一峰的网络日志
The Register - Security
The Register - Security
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 叶小钗
The Cloudflare Blog
The Hacker News
The Hacker News
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
雷峰网
雷峰网
F
Fortinet All Blogs
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
H
Hackread – Cybersecurity News, Data Breaches, AI and More
酷 壳 – CoolShell
酷 壳 – CoolShell
Last Week in AI
Last Week in AI
T
Threat Research - Cisco Blogs
A
About on SuperTechFans
量子位
Recorded Future
Recorded Future
博客园 - 三生石上(FineUI控件)
H
Help Net Security
Help Net Security
Help Net Security
P
Palo Alto Networks Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
T
Troy Hunt's Blog
W
WeLiveSecurity
V
Vulnerabilities – Threatpost
T
The Exploit Database - CXSecurity.com
Know Your Adversary
Know Your Adversary
Apple Machine Learning Research
Apple Machine Learning Research
Scott Helme
Scott Helme
N
News | PayPal Newsroom
AWS News Blog
AWS News Blog
D
DataBreaches.Net
Blog — PlanetScale
Blog — PlanetScale
MongoDB | Blog
MongoDB | Blog
B
Blog RSS Feed
腾讯CDC
J
Java Code Geeks
Microsoft Azure Blog
Microsoft Azure Blog
TaoSecurity Blog
TaoSecurity Blog
GbyAI
GbyAI
Y
Y Combinator Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
D
Docker

🕵️‍♂️匿名运维栈

Uv 完全指南 - 🕵️‍♂️匿名运维栈 Python typing类型注解完全指南 - 🕵️‍♂️匿名运维栈 2025:大语言模型(LLM)之年 - 🕵️‍♂️匿名运维栈 AI 代码指南 [转载] - 🕵️‍♂️匿名运维栈 Lsky Pro + Typora 图床搭建 Docker构建多架构镜像 - 🕵️‍♂️匿名运维栈 DNS 域名解析工具 - 🕵️‍♂️匿名运维栈 Ubuntu DNS解析失败排查记录:EasyConnect VPN劫持问题完全解析 - 🕵️‍♂️匿名运维栈 高效休息法:学习效率提升的科学指南 - 🕵️‍♂️匿名运维栈
Claude Code 子代理(Subagents)完全学习指南 - 🕵️‍♂️匿名运维栈
nwnusun · 2025-12-23 · via 🕵️‍♂️匿名运维栈

共计 7891 个字符,预计需要花费 20 分钟才能阅读完成。

  1. 核心概念
  2. 为什么需要子代理
  3. 快速上手
  4. 配置详解
  5. 实战示例
  6. 内置子代理
  7. 最佳实践
  8. 高级技巧
  9. 常见问题

子代理(Subagents) 是 Claude Code 中预配置的专业 AI 助手,它们可以被主对话委派去处理特定类型的任务。

核心特点:

                                ┌─────────────────────────────────────────┐
                                │         主对话(Main Agent)│
                                │  • 保持高层对话                           │
                                │  • 协调任务分配                           │
                                │  • 整合结果                               │
                                └───────────┬─────────────────────────────┘
                                            │
                                            │ 委派任务
                                            │
                                    ┌───────┴────────┬──────────────┐
                                    │                │              │
                                ┌───▼────┐     ┌────▼─────┐   ┌───▼────┐
                                │代码审查 │     │  调试器   │   │数据分析 │
                                │子代理   │     │  子代理   │   │子代理   │
                                │        │     │          │   │        │
                                │独立上下文│     │独立上下文 │   │独立上下文│
                                │专用工具 │     │专用工具   │   │专用工具 │
                                └────────┘     └──────────┘   └────────┘
特性 说明 好处
独立上下文 每个子代理有自己的对话窗口 防止主对话被细节污染
专业化 针对特定领域定制系统提示 提高任务成功率
工具限制 可为每个子代理指定可用工具 增强安全性和专注度
可重用 跨项目使用,团队共享 标准化工作流程
模型选择 可为不同子代理选择不同模型 优化性能和成本

场景 1:上下文污染

 用户: 帮我审查代码
Claude: [执行 30 次文件搜索和读取操作]
       [主对话被大量代码细节填满]
用户: 现在帮我写文档
Claude: [因为上下文充满代码审查细节而困惑]

场景 2:专业化不足

 用户: 调试这个复杂的并发问题
Claude: [使用通用方法,效果不佳]
# 缺少专门的调试策略和检查清单 

解决方案 1:保持上下文清晰

 用户: 帮我审查代码
Claude: [委派给 code-reviewer 子代理]
        [子代理在独立上下文中工作]
        [返回简洁的审查结果]
用户: 现在帮我写文档
Claude: [主对话保持清晰,轻松切换任务]

解决方案 2:专业化处理

 用户: 调试这个并发问题
Claude: [委派给 debugger 子代理]
        [子代理使用专门的调试清单]
        [系统化地分析和解决问题]

方式 A:使用交互式命令(推荐)

# 启动子代理管理界面
/agents

# 界面操作流程:# 1. 选择 "Create New Agent"
# 2. 选择范围(项目级或用户级)# 3. 让 Claude 帮你生成,然后自定义
# 4. 保存 

方式 B:手动创建文件

# 创建项目级子代理
mkdir -p .claude/agents
cat > .claude/agents/test-runner.md << 'EOF'
---
name: test-runner
description: 测试自动化专家。在代码更改后主动运行测试。发现测试失败时,分析并修复。tools: Read, Edit, Bash, Grep
model: sonnet
---

你是测试自动化专家。当看到代码更改时:1. 立即识别相关测试
2. 运行适当的测试套件
3. 如果测试失败:- 分析失败原因
   - 保持原始测试意图
   - 修复代码或测试
   - 验证修复

关注点:- 测试覆盖率
- 边界情况
- 回归预防
EOF

手动创建的子代理配置文件 claudecode 没有热加载机制,需要重启

claude --continue  # 这会继续之前的会话,不会丢失上下文 

自动委派(推荐)

# Claude 会自动识别需要使用哪个子代理
claude
>  添加分类功能模块然后帮我测试下代码 

# Claude 自动委派给 test-runner 子代理
# 子代理运行测试并报告结果 

显式调用

使用中发现,显示调用命中率比较高,如果你的输入或者子代里描述不明确,则不会触发代理运行。

claude
> 使用 test-runner 子代理来运行所有单元测试
> 让 code-reviewer 子代理审查我的最新提交 

方式 优先级 适用场景 持久性
CLI --agents 临时测试、脚本自动化 会话级
项目 .claude/agents/ 项目特定需求 永久
用户 ~/.claude/agents/ 个人跨项目使用 永久
插件提供 复用第三方功能 取决于插件
---
# ============ 必需字段 ============
name: my-agent                    # 唯一标识符(小写字母和连字符)description: 何时使用这个代理的描述  # 影响自动委派

# ============ 可选字段 ============
tools: Read, Edit, Bash           # 可用工具(省略则继承所有工具)model: sonnet                     # 模型选择:sonnet/opus/haiku/inherit
permissionMode: default           # 权限模式:default/acceptEdits/bypassPermissions/plan/ignore
skills: skill1, skill2            # 自动加载的技能
---

<!-- 系统提示:定义代理的行为 -->
你是一个专业的代码审查员...

## 审查流程
1. 检查代码质量
2. 验证安全性
3. 提供反馈

## 关注点
- 可读性
- 性能
- 安全性 
# ✅ 正确
name: code-reviewer
name: test-runner
name: api-debugger

# ❌ 错误
name: Code Reviewer  # 不要用空格
name: test_runner    # 用连字符而不是下划线
name: API-Debugger   # 不要用大写 
# 🎯 好的描述(明确且可执行)description: 代码审查专家。在代码修改后主动使用。检查质量、安全性和最佳实践。# 💡 触发词提示
description: 调试专家。遇到错误或测试失败时必须使用。分析根因并提供修复。# ❌ 差的描述(模糊)description: 帮助处理代码问题 

关键词建议:

  • 使用 "主动使用"(Use proactively)
  • 使用 "必须使用"(MUST BE USED)
  • 明确触发场景
# 完全访问(默认)# tools: [省略此字段]

# 只读访问
tools: Read, Grep, Glob, Bash

# 开发相关
tools: Read, Edit, Write, Bash

# 数据分析
tools: Bash, Read, Write

# 包含 MCP 工具
tools: Read, mcp_search, mcp_analyze

可用工具列表:

  • Read - 读取文件
  • Edit - 编辑文件
  • Write - 创建新文件
  • Bash - 执行命令
  • Grep - 内容搜索
  • Glob - 文件模式匹配
  • MCP 服务器工具(如果已配置)
# 使用别名
model: sonnet   # Claude Sonnet(平衡性能)model: opus     # Claude Opus(最强能力)model: haiku    # Claude Haiku(最快速度)# 继承主对话模型
model: inherit  # 与主对话保持一致

# 省略则使用默认子代理模型
# [未设置] -> 使用配置的默认值(通常是 sonnet)
选择指南: 任务类型 推荐模型 原因
代码审查 sonnetinherit 需要理解力和一致性
快速搜索 haiku 速度优先
复杂调试 sonnet 需要深度分析
数据分析 sonnet 需要处理复杂查询
# 默认模式(询问权限)permissionMode: default

# 自动接受编辑
permissionMode: acceptEdits

# 跳过所有权限(危险!)permissionMode: bypassPermissions

# 仅规划模式
permissionMode: plan

# 忽略权限提示
permissionMode: ignore
skills: skill1, skill2

功能 :自动加载 .claude/skills/ 下的可复用指令片段

.claude/
├── agents/
│   └── code-reviewer.md
└── skills/
    ├── python-best-practices.md  # ← skill1
    └── security-checklist.md     # ← skill2

技能文件示例:

<!-- .claude/skills/python-best-practices.md -->
---
name: python-best-practices
---

检查 Python 代码时,必须验证:- 类型注解完整性
- 异常处理覆盖
- 文档字符串规范
- 单元测试覆盖率 > 80%

Agent 引用:

# .claude/agents/python-reviewer.md
---
name: python-reviewer
tools: Read, Search
skills: python-best-practices, security-checklist  # 自动加载
---

审查 Python 代码的安全性和代码质量 

效果 :Agent 启动时会自动将这些技能的内容注入到系统提示词中

# 单个子代理
claude --agents '{"reviewer": {"description":" 代码审查专家 ","prompt":" 你是资深审查员...","tools": ["Read","Grep"],"model":"sonnet"
  }
}'

# 多个子代理
claude --agents '{"reviewer": {...},"debugger": {...},"optimizer": {...}
}'

# 与查询结合
claude --agents '{...}' -p "审查最近的更改"
  • 立即可用
  • 不写入文件
  • 只存在内存中
  • 会话结束就消失
---
name: code-reviewer
description: 专家级代码审查员。代码修改后主动使用。检查质量、安全性和可维护性。tools: Read, Grep, Glob, Bash
model: inherit
---

你是一位资深代码审查员,确保高标准的代码质量和安全性。## 被调用时的流程

1. 运行 `git diff` 查看最近的更改
2. 聚焦于修改的文件
3. 立即开始审查

## 审查清单

### 🔴 关键问题(必须修复)- [ ] 暴露的密钥或 API 凭证
- [ ] SQL 注入或 XSS 漏洞
- [ ] 未处理的错误可能导致崩溃
- [ ] 内存泄漏或资源泄漏

### 🟡 警告(应该修复)- [ ] 重复的代码
- [ ] 缺少输入验证
- [ ] 不当的错误处理
- [ ] 性能问题

### 🟢 建议(考虑改进)- [ ] 命名可以更清晰
- [ ] 可以添加注释
- [ ] 可以简化逻辑
- [ ] 可以改进测试覆盖率

## 输出格式

```markdown
## 代码审查结果

### 关键问题 🔴
1. **[文件: 行号]** 问题描述
   - 影响:...
   - 修复建议:```language
     // 修复代码
### 警告 🟡

...

### 建议 🟢

...

### 总体评估

- 代码质量:⭐⭐⭐⭐
- 安全性:⭐⭐⭐⭐⭐
- 可维护性:⭐⭐⭐

## 审查原则

1. ** 安全第一 **:任何安全问题都是关键问题
2. ** 可读性优于简洁性 **:清晰比聪明更重要
3. ** 具体反馈 **:提供可执行的建议和代码示例
4. ** 优先级明确 **:区分必须修复和可选改进 

特性:

  • 模型:Sonnet
  • 工具:完全访问
  • 能力:读写文件、执行命令、多步骤操作

使用场景:

# 复杂的多步骤任务
> 找到所有处理认证的地方,并更新为新的 token 格式

# 需要探索和修改的任务
> 重构数据库查询层,提高性能 

工作流程:

1. 搜索相关代码 → 2. 分析多个文件
      ↓                    ↓
3. 制定策略    ← 4. 执行修改
      ↓
5. 返回详细报告 

特性:

  • 模型:Sonnet
  • 工具:Read, Glob, Grep, Bash(只读)
  • 模式:仅在计划模式下使用

使用场景:

# 在计划模式下研究代码库
[计划模式] > 帮我重构认证模块

# Claude 自动使用计划子代理研究代码库
# 然后提供详细的重构计划 

为什么需要:

  • 防止代理无限嵌套
  • 在计划模式下仍能研究代码库
  • 收集上下文后返回计划

特性:

  • 模型:Haiku(最快)
  • 工具:Glob, Grep, Read, Bash(只读命令)
  • 模式:严格只读
彻底程度级别: 级别 搜索范围 使用场景
Quick 基本搜索 简单查找
Medium 适度探索 一般分析
Very thorough 全面分析 复杂查找

使用场景:

# 快速查找
> 错误处理在哪里?[Explore: Quick]

# 结构分析
> 代码库结构是什么样的?[Explore: Quick]

# 深度搜索
> 找到所有使用旧 API 的地方
[Explore: Very thorough]

优势:

  • 🚀 快速响应(Haiku 模型)
  • 🧹 不污染主对话
  • 📍 返回绝对文件路径
  • 🔍 高效的代码库探索

# 好的设计
name: test-runner        # 只负责测试
name: code-reviewer      # 只负责审查
name: performance-analyzer # 只负责性能

# 差的设计
name: do-everything      # 试图做所有事情 
# 好的提示
---
你是测试自动化专家。## 工作流程
1. 识别被修改的模块
2. 运行相关测试套件
3. 分析失败原因
4. 修复代码或测试

## 关注点
- 测试覆盖率 > 80%
- 边界情况处理
- 错误消息清晰

## 输出格式
[具体的格式说明]
---

# 差的提示
你是测试专家。帮助运行测试。
# 代码审查(只读)tools: Read, Grep, Glob, Bash

# 调试器(读写)tools: Read, Edit, Bash

# 测试运行器(完全访问)tools: Read, Edit, Write, Bash
# ✅ 好的命名
code-reviewer
test-runner
api-debugger
sql-optimizer
security-scanner

# ❌ 差的命名
reviewer          # 太泛化
test_runner       # 使用下划线
Code-Reviewer     # 使用大写
review-code       # 动词 - 名词顺序 
# 项目级子代理应该进入版本控制
.claude/
  agents/
    code-reviewer.md     # ✅ 提交到 git
    test-runner.md       # ✅ 提交到 git
    team-standards.md    # ✅ 提交到 git

# .gitignore 配置
# ❌ 不要忽略 .claude/agents/

共享配置:

# 1. 创建团队标准子代理
.claude/agents/company-code-review.md
.claude/agents/company-test-standards.md

# 2. 文档化使用方法
docs/claude-subagents.md

# 3. 在 PR 模板中提及
## 检查清单
- [ ] 使用 code-reviewer 子代理审查
- [] 使用 test-runner 子代理验证 
## 改进循环

1. ** 创建初始版本 **
   - 让 Claude 生成基础版本
   - 测试基本功能

2. ** 收集反馈 **
   - 哪些工作良好?- 哪些需要改进?- 缺少什么功能?3. ** 优化提示 **
   - 添加具体示例
   - 明确输出格式
   - 改进指令清晰度

4. ** 调整工具集 **
   - 添加必需工具
   - 移除不用的工具

5. ** 重复测试 **
   - 在真实场景中使用
   - 持续改进 

# 串行工作流
> 首先使用 code-analyzer 子代理找出性能问题,然后使用 optimizer 子代理修复它们

# 流程:代码分析 → 性能问题列表 → 优化修复 → 验证结果 
# 初次调用
> 使用 code-analyzer 子代理开始审查认证模块
[代理完成初始分析,返回 agentId: "abc123"]

# 恢复继续
> 恢复代理 abc123,现在分析授权逻辑
[代理继续,保持完整上下文]

使用场景:

  • 长期研究任务
  • 迭代优化工作
  • 多步骤工作流

编程用法:

{
  "description": "继续分析",
  "prompt": "现在检查错误处理模式",
  "subagent_type": "code-analyzer",
  "resume": "abc123"
}

优化描述字段:

# 🎯 高度特定的触发
description: |
  安全审查专家。必须用于:- 认证 / 授权代码
  - 密码处理
  - API 密钥管理
  - 数据加密
  主动在这些场景使用!# 📋 清单式触发
description: |
  前端性能专家。使用当:✓ 页面加载缓慢
  ✓ 渲染性能问题
  ✓ 需要优化打包大小
  ✓ 需要分析 Core Web Vitals
# 根据安全级别配置工具
---
name: production-deployer
description: 生产部署专家
tools: Read, Bash  # 不允许 Edit(生产环境)permissionMode: plan  # 只能计划,不能执行
---
---
name: fullstack-reviewer
description: 全栈代码审查
tools: Read, Grep, Glob, Bash
skills: frontend-patterns, backend-security, database-best-practices
---

# 技能会自动加载到子代理上下文中 

A: 是的,子代理从干净的上下文开始,需要时间收集必要的上下文。

权衡:

  • ➕ 保持主对话清晰
  • ➕ 专业化处理提高质量
  • ➖ 初始启动有延迟

优化策略:

  • 为快速任务使用 haiku 模型
  • 预先提供必要的文件路径
  • 使用可恢复子代理继续长任务
使用子代理 使用主对话
需要专业化处理 简单快速的任务
会产生大量输出 对话式交互
需要独立上下文 需要记住之前的对话
可重复的工作流 一次性的探索

A: 不可以。子代理不能调用其他子代理,这是为了防止无限嵌套。

设计意图:

 主对话
  ├─ 子代理 A(✅ 可以)├─ 子代理 B(✅ 可以)└─ 子代理 C
       └─ 子代理 D(❌ 不允许)
# 1. 启用详细模式
claude --verbose

# 2. 检查子代理文件
cat .claude/agents/my-agent.md

# 3. 使用 /agents 命令检查
/agents
# 选择 "View Agent Details"

# 4. 显式调用测试
> 使用 my-agent 子代理处理这个简单任务 

A: 可以!

# 方式 1:继承所有工具(包括 MCP)# tools: [省略字段]

# 方式 2:显式指定 MCP 工具
tools: Read, mcp_search, mcp_analyze

方式 1:版本控制

# 提交到 git
git add .claude/agents/
git commit -m "添加团队子代理"
git push

方式 2:导出配置

# 复制文件
cp ~/.claude/agents/my-agent.md ./shared/

# 或使用 CLI 格式分享
claude --agents '{"name": {...}}'  # 复制此命令 

成本因素:

  • 使用的模型(Haiku < Sonnet < Opus)
  • 上下文长度
  • 执行时长

优化成本:

# 对于简单任务使用 Haiku
model: haiku

# 限制工具访问
tools: Read, Grep  # 只读,减少操作

# 使用 inherit 与主对话保持一致
model: inherit

  1. 子代理 = 专业化 AI 助手
    • 独立上下文
    • 定制化行为
    • 工具限制
  2. 何时使用
    • 任务需要专业化
    • 会产生大量输出
    • 需要可重复工作流
  3. 最佳实践
    • 单一职责
    • 详细提示
    • 最小权限
    • 版本控制
  4. 高级特性
    • 链式调用
    • 可恢复执行
    • 动态选择
    • MCP 集成