首页 › tutorials › Claude Code自定义命令与Subagent实战

Claude Code自定义命令与Subagent开发完全实战

概述:本教程深入讲解Claude Code两大核心扩展机制——自定义Slash命令和自定义Subagent。从.claude/commands/目录的Markdown命令文件编写,到.claude/agents/的YAML frontmatter配置,你将学会构建一套完整的个人开发工具箱。适合已掌握Claude Code基本操作、希望提升日常开发效率的中级用户。

前置条件: - 已安装Claude Code CLI并完成API认证 - 熟悉Markdown和YAML基础语法 - 有至少一个Git项目可供实操 - 了解Claude Code基本交互方式(对话、工具调用)


一、核心概念:命令与智能体的区别

在开始编码之前,必须理解Claude Code扩展体系中三个概念的本质差异:

graph TD
    A[.claude 目录体系] --> B[commands/ 自定义命令]
    A --> C[agents/ 自定义Subagent]
    A --> D[rules/ 模块化规则]
    A --> E[skills/ 技能包]

    B --> B1[用户主动输入 /command-name]
    B --> B2[Markdown纯文本]
    B --> B3[无独立上下文窗口]

    C --> C1[Claude自动委托或 @提及]
    C --> C2[YAML frontmatter + Markdown]
    C --> C3[独立上下文窗口]

    D --> D1[自动加载到系统提示词]
    D --> D2[拆分大CLAUDE.md为小模块]

    E --> E1[条件触发式工作流]
    E --> E2[含SKILL.md的目录结构]

    style B fill:#4A90D9,color:white
    style C fill:#E67E22,color:white
    style D fill:#27AE60,color:white
    style E fill:#8E44AD,color:white
维度 自定义命令 (Commands) Subagent
触发方式 用户手动输入 /xxx Claude自动判断或@提及
上下文 共享主会话上下文 独立上下文窗口
模型选择 跟随主会话模型 可指定haiku/sonnet/opus
工具访问 继承主会话全部工具 可精确控制白名单/黑名单
适用场景 固定步骤的可复用工作流 需要隔离的高噪音任务
文件格式 纯Markdown YAML frontmatter + Markdown
持久记忆 无 支持user/project/local三级

选择原则:如果你的工作流是线性的、需要用户交互的、步骤明确的,用命令。如果你的任务是噪音大的、可以并行跑的、只需要最终结论的,用Subagent。


二、.claude目录完整结构

理解目录结构是一切的基础。Claude Code有两个.claude目录:

your-project/
├── CLAUDE.md                      # 团队指令(提交到Git)
├── CLAUDE.local.md                # 个人覆盖(gitignore)
└── .claude/
    ├── settings.json              # 权限+配置(提交到Git)
    ├── settings.local.json        # 个人权限覆盖(gitignore)
    ├── .mcp.json                  # MCP服务器配置
    ├── rules/                     # 模块化规则文件
    │   ├── code-style.md
    │   ├── testing.md
    │   └── api-conventions.md
    ├── commands/                  # 自定义Slash命令
    │   ├── review.md              # → /project:review
    │   ├── deploy.md              # → /project:deploy
    │   └── gsd/                   # 子目录组织
    │       ├── plan.md            # → /project:gsd:plan
    │       └── execute.md         # → /project:gsd:execute
    ├── skills/                    # 自动触发式技能
    │   └── deploy/
    │       └── SKILL.md
    ├── agents/                    # 自定义Subagent定义
    │   ├── code-reviewer.md
    │   ├── security-auditor.md
    │   └── research/
    │       └── docs-explorer.md
    └── hooks/                     # 事件驱动自动化脚本
        └── validate-bash.sh

~/.claude/                          # 全局个人配置(不提交)
├── CLAUDE.md                      # 全局指令
├── settings.json                  # 全局权限
├── commands/                      # 个人命令 → /user:xxx
│   ├── reflect.md
│   └── status.md
├── skills/                        # 个人技能
├── agents/                        # 个人Subagent
└── projects/                      # 会话历史+自动记忆
    └── <project-hash>/
        └── memory/
            └── MEMORY.md

优先级顺序(从高到低): 1. 管理策略(IT管理员部署的组织级配置) 2. --agents CLI参数(仅当前会话) 3. .claude/agents/(项目级) 4. ~/.claude/agents/(用户级) 5. 插件的agents/目录

Git提交建议:

# .gitignore
CLAUDE.local.md
.claude/settings.local.json
.claude/agent-memory-local/

提交.claude/commands/、.claude/agents/、.claude/rules/到版本控制,团队成员克隆后即可使用。


三、自定义Slash命令开发

3.1 命令的本质:一个Markdown文件

命令的核心理念极其简单:文件系统就是注册表,文件名就是命令名,文件内容就是实现。没有构建步骤,没有注册流程,没有编译环节。

3.2 创建你的第一个命令

步骤1:创建命令目录

# 全局个人命令(所有项目可用)
mkdir -p ~/.claude/commands

# 项目级命令(仅当前项目可用)
mkdir -p .claude/commands

步骤2:编写命令文件

创建文件 ~/.claude/commands/reflect.md:

# 反思最近的工作

审查本会话中的近期工作,提取可操作的教训。

## 步骤
1. 运行 `git log -5 --oneline --stat` 查看最近的提交
2. 如有需要,运行 `git diff HEAD~1` 查看最新变更
3. 识别:错误假设、过度工程、遗漏的边界情况、
   失败的方法、有用的模式
4. 用 `save_observation` 保存每条发现,标题加"LESSON:"前缀
5. 用2-3句话总结捕获的内容

步骤3:使用命令

在Claude Code会话中输入:

/reflect

Claude读取该文件并按步骤执行。没有其他配置。

3.3 命名规则与子目录组织

文件名即命令名,.md扩展名被移除:

文件路径 命令名称 作用域
~/.claude/commands/reflect.md /user:reflect 全局个人
.claude/commands/deploy.md /project:deploy 当前项目
~/.claude/commands/gsd/plan.md /user:gsd:plan 全局个人
.claude/commands/gsd/execute.md /project:gsd:execute 当前项目

子目录用冒号分隔,天然形成命名空间。这种设计让你可以组织大型命令集而不必担心命名冲突。

3.4 命令文件的高级写法

命令文件同时是文档和实现。一个好的命令应该包含:

# 安全审计

对项目代码进行安全审查,检查OWASP Top 10相关漏洞。

## 检查清单
- [ ] SQL注入:搜索所有数据库查询,检查参数化使用
- [ ] XSS:搜索所有用户输入渲染点,检查转义处理
- [ ] 命令注入:搜索所有exec/spawn调用,检查输入验证
- [ ] 敏感数据泄露:搜索硬编码的密钥、token、密码
- [ ] 不安全的依赖:运行 `npm audit` 或 `pip audit`
- [ ] CORS配置:检查跨域策略是否过于宽松
- [ ] 认证缺陷:检查JWT实现、session管理

## 执行步骤
1. 使用 Grep 工具搜索 `eval(`、`innerHTML`、`exec(`、`password`、
   `secret`、`api_key` 等关键词
2. 检查 .env 文件是否在 .gitignore 中
3. 运行依赖审计命令
4. 检查认证中间件实现
5. 按严重程度分类输出报告

## 输出格式
按以下结构输出:
- 🔴 严重:可直接被利用的漏洞
- 🟡 警告:潜在风险,需要评估
- 🟢 建议:安全最佳实践建议

3.5 实战:GSD命令套件

GSD(Get Stuff Done)是一套完整的项目管理命令集。以下是核心命令的实现:

~/.claude/commands/gsd/new-project.md:

# 初始化新项目

深度收集上下文后初始化项目,而非简单地创建目录结构。

## 步骤
1. 研究现有代码库,映射依赖关系
2. 识别集成点和技术约束
3. 在开始实现前,向用户提出澄清问题
4. 创建 PROJECT.md 作为项目唯一真相来源
5. 包含:架构决策、技术栈、模块划分、里程碑

## 关键原则
- 不做假设,先问再做
- 理解现有系统再规划新功能
- 记录每一个架构决策的理由

~/.claude/commands/gsd/debug.md:

# 系统化调试

用科学方法替代随机试错。

## 调试流程
1. **观察**:精确描述异常行为,收集错误日志
2. **假设**:基于证据提出1-3个可能原因
3. **测试**:设计最小实验验证每个假设
4. **结论**:记录哪些假设被证实/推翻
5. **修复**:基于验证结果实施最小化修复

## 输出要求
- 每次只测试一个变量
- 记录每个实验的输入、预期、实际结果
- 如果3轮假设未解决,暂停并重新审视问题定义

3.6 常见问题与解决方案

问题 原因 解决方案
输入/xxx后无反应 文件路径或命名错误 检查.claude/commands/xxx.md是否存在
命令执行偏离预期 指令过于宽泛 添加具体的步骤和输出格式要求
项目命令不可见 在错误目录启动 确保在项目根目录启动Claude Code
子目录命令无法识别 子目录嵌套过深 Claude Code递归扫描,确认文件名无空格
命令结果不一致 Markdown指令歧义 使用编号步骤代替散文描述

四、自定义Subagent开发

4.1 Subagent的核心价值

Subagent的关键优势是上下文隔离。当主会话变成一堆日志、grep输出和死胡同研究的垃圾场时,Subagent把噪音工作移到独立窗口,只返回干净的结论。

graph LR
    subgraph 主会话
        A[用户指令] --> B[Claude主线程]
    end

    B -->|委托| C[Subagent A<br/>代码审查]
    B -->|委托| D[Subagent B<br/>文档研究]
    B -->|委托| E[Subagent C<br/>测试运行]

    C -->|返回摘要| B
    D -->|返回摘要| B
    E -->|返回摘要| B

    style C fill:#E67E22,color:white
    style D fill:#3498DB,color:white
    style E fill:#2ECC71,color:white

4.2 方法一:使用/agents命令(推荐新手)

这是最简单的创建方式:

步骤1:在Claude Code中运行:

/agents

步骤2:切换到"Library"标签,选择"Create new agent"

步骤3:选择作用域: - Personal:保存到~/.claude/agents/,所有项目可用 - Project:保存到.claude/agents/,仅当前项目

步骤4:选择"Generate with Claude",描述你的Subagent:

一个代码改进Agent,扫描文件并建议可读性、
性能和最佳实践方面的改进。它应该解释每个
问题,展示当前代码,并提供改进版本。

步骤5:选择工具(只读审查取消选择写入工具)

步骤6:选择模型(代码审查推荐Sonnet,快速探索推荐Haiku)

步骤7:选择颜色(UI中区分不同Agent)

步骤8:配置记忆(选择User scope启用跨会话学习)

步骤9:保存并测试:

用code-improver Agent来建议改进这个项目

4.3 方法二:手动编写Subagent文件

创建文件 .claude/agents/code-reviewer.md:

---
name: code-reviewer
description: Reviews code for quality, security, and best practices. Use after code changes or before commits.
tools: [Read, Glob, Grep, Bash]
disallowedTools: [Edit, Write]
model: sonnet
permissionMode: plan
memory: project
color: "#E67E22"
---

你是一位高级代码审查专家。分析代码时遵循以下原则:

## 审查维度

### 代码质量
- 命名是否清晰表达意图
- 函数是否保持单一职责(<30行)
- 嵌套层级是否超过3层
- 是否存在重复代码可以抽取

### 安全性
- 输入验证是否充分
- 是否存在注入风险
- 敏感数据处理是否安全
- 认证授权是否正确实现

### 可维护性
- 错误处理是否完善
- 日志是否足够但不冗余
- 类型定义是否精确
- 依赖关系是否合理

## 输出格式

对每个发现的问题:
1. **位置**:文件路径:行号
2. **类别**:质量/安全/性能/可维护性
3. **严重程度**:🔴严重 🟡警告 🟢建议
4. **当前代码**:问题代码片段
5. **改进建议**:修改后的代码和理由

最后给出总体评分(1-10)和最重要的3个改进建议。

4.4 Frontmatter字段全解

字段 必填 说明 示例
name 是 唯一标识符,小写+连字符 code-reviewer
description 是 何时委托给此Agent "Reviews code for quality issues"
tools 否 可用工具白名单 [Read, Grep, Glob]
disallowedTools 否 工具黑名单 [Edit, Write, Bash]
model 否 使用的模型 haiku/sonnet/opus/inherit
permissionMode 否 权限模式 default/plan/auto
maxTurns 否 最大交互轮数 10
skills 否 预加载的技能 [security-review]
mcpServers 否 可用的MCP服务器 ["slack", "github"]
hooks 否 生命周期钩子 参见Hooks文档
memory 否 持久记忆范围 user/project/local
background 否 后台运行 true/false
isolation 否 隔离模式 worktree
color 否 UI显示颜色 "#E67E22"

4.5 模型选择策略

graph TD
    A[任务类型判断] --> B{需要深度推理?}
    B -->|是| C[opus]
    B -->|否| D{需要代码修改?}
    D -->|是| E[sonnet]
    D -->|否| F{响应速度关键?}
    F -->|是| G[haiku]
    F -->|否| E

    H[示例场景] --> I[代码审查 → sonnet]
    H --> J[快速搜索 → haiku]
    H --> K[架构设计 → opus]
    H --> L[文档研究 → haiku]
    H --> M[安全审计 → sonnet]

关键原则: - haiku:只读探索、快速搜索、简单分析(成本最低,速度最快) - sonnet:代码审查、测试运行、中等复杂度任务(平衡性价比) - opus:架构设计、复杂重构、高难度问题(最高能力,最贵) - inherit:继承主会话模型(默认值)


五、实战案例:构建完整开发工具箱

以下是一个完整的、可直接使用的开发工具箱配置。

5.1 项目结构

my-project/
├── CLAUDE.md
├── .claude/
│   ├── commands/
│   │   ├── review.md           # 代码审查命令
│   │   ├── security-check.md   # 安全检查命令
│   │   ├── test-coverage.md    # 测试覆盖率命令
│   │   └── deploy/
│   │       ├── staging.md      # 部署到staging
│   │       └── production.md   # 部署到production
│   ├── agents/
│   │   ├── code-reviewer.md    # 代码审查Agent
│   │   ├── security-auditor.md # 安全审计Agent
│   │   └── test-runner.md      # 测试运行Agent
│   └── rules/
│       ├── code-style.md       # 代码风格规则
│       └── testing.md          # 测试规则

5.2 CLAUDE.md配置

# My Project

## 常用命令
- `npm run dev` — 启动开发服务器 (端口3000)
- `npm test` — 运行测试套件 (Vitest)
- `npm run lint` — 代码检查 (ESLint + Prettier)
- `npm run build` — TypeScript编译

## 架构
- Next.js 15 App Router + TypeScript
- 数据层:Prisma ORM + PostgreSQL
- API路由在 `src/app/api/`
- 组件在 `src/components/`
- 测试镜像 `src/` 结构在 `tests/`

## 约定
- 所有API响应格式:`{ data, error, meta }`
- 组件使用函数式 + hooks
- 禁止使用 `any` 类型
- 提交前必须通过lint和测试

5.3 审查命令 .claude/commands/review.md

# 代码审查

对当前Git暂存区的变更进行完整审查。

## 步骤
1. 运行 `git diff --cached` 查看暂存变更
2. 运行 `git diff` 查看未暂存变更
3. 运行 `npm run lint` 检查代码规范
4. 运行 `npm test` 执行相关测试
5. 基于以下维度评估变更:
   - 代码质量和可读性
   - 潜在Bug和边界情况
   - 安全漏洞
   - 性能影响
   - 测试覆盖是否充分

## 输出格式
- 🟢 可以合并
- 🟡 需要小幅修改(列出具体建议)
- 🔴 需要重大修改(列出阻塞问题)

如果需要深度审查,建议使用 @code-reviewer Agent。

5.4 安全审计Agent .claude/agents/security-auditor.md

---
name: security-auditor
description: Scans code for security vulnerabilities following OWASP Top 10. Use proactively before releases and after auth-related changes.
tools: [Read, Glob, Grep, Bash]
disallowedTools: [Edit, Write]
model: sonnet
permissionMode: plan
memory: project
color: "#E74C3C"
---

你是一位应用安全专家。对代码进行系统化安全审计。

## 扫描范围

### 注入攻击
- 搜索所有数据库查询,检查参数化使用
- 搜索 `eval(`、`exec(`、`spawn(`、`child_process`
- 检查用户输入是否直接拼接到命令中

### 身份认证
- JWT实现是否正确(算法、密钥管理、过期处理)
- Session管理是否安全
- 密码存储是否使用bcrypt/argon2

### 敏感数据
- 搜索硬编码的密钥:`password`、`secret`、`api_key`、`token`
- 检查 `.env` 文件是否在 `.gitignore` 中
- 验证HTTPS在传输层的强制使用

### CORS与CSRF
- 跨域策略是否限制来源
- CSRF Token是否正确实现

### 依赖安全
- 运行 `npm audit`(Node.js)或 `pip audit`(Python)
- 检查是否使用了已知有漏洞的版本

## 输出格式

安全审计报告

执行摘要

严重问题

  1. [文件:行号] 问题描述 + 修复方案

警告

  1. [文件:行号] 问题描述 + 建议方案

改进建议

  1. 建议内容

整体评分:X/10


5.5 测试运行Agent .claude/agents/test-runner.md

---
name: test-runner
description: Runs tests, analyzes failures, and suggests fixes. Use when tests fail or before committing changes.
tools: [Read, Glob, Grep, Bash]
disallowedTools: [Edit, Write]
model: haiku
maxTurns: 15
color: "#2ECC71"
---

你是一位测试工程师。专注于运行测试和分析失败原因。

## 工作流程
1. 识别最近的代码变更(git diff)
2. 确定需要运行的测试范围
3. 执行相关测试套件
4. 如果测试通过,报告成功
5. 如果测试失败:
   a. 读取失败的测试文件
   b. 读取被测试的源文件
   c. 分析失败原因(断言错误、异常、超时)
   d. 建议具体的修复方案

## 输出格式
- 测试结果摘要:通过/失败/跳过数量
- 失败测试的根因分析
- 建议的修复步骤(按优先级排列)

5.6 使用流程

sequenceDiagram
    participant U as 开发者
    participant CC as Claude Code
    participant CR as code-reviewer
    participant SA as security-auditor
    participant TR as test-runner

    U->>CC: /review
    CC->>CC: 读取 .claude/commands/review.md
    CC->>TR: 委托运行测试
    TR-->>CC: 测试通过,覆盖率92%
    CC->>CR: 委托代码审查
    CR-->>CC: 发现2个警告,3个建议
    CC->>SA: 委托安全审计
    SA-->>CC: 无严重问题,1个建议
    CC-->>U: 综合报告:🟡 需要小幅修改

    Note over U,CC: 开发者也可以直接@指定Agent
    U->>CC: @security-auditor 检查新的认证模块
    CC->>SA: 直接委托
    SA-->>CC: 审计结果
    CC-->>U: 安全审计报告

六、Rules模块化规则

当CLAUDE.md超过200行时,Claude的指令遵循度会下降。Rules系统解决了这个问题——将大CLAUDE.md拆分为小模块。

6.1 规则文件结构

创建 .claude/rules/code-style.md:

# 代码风格规则

## TypeScript
- 严格模式:always
- 优先使用 `interface` 而非 `type` 定义对象
- 使用 `unknown` 而非 `any` 处理未知类型
- 枚举使用 `const enum` 或字符串联合类型

## React
- 函数式组件,禁止class组件
- Props使用interface定义
- 使用 `useCallback` 包装事件处理器
- 自定义Hook以 `use` 开头

## 命名约定
- 文件:kebab-case(`user-profile.tsx`)
- 组件:PascalCase(`UserProfile`)
- 函数/变量:camelCase
- 常量:UPPER_SNAKE_CASE
- CSS类:使用CSS Modules或Tailwind

创建 .claude/rules/testing.md:

# 测试规则

## Vitest配置
- 测试文件与源文件同目录,命名为 `*.test.ts`
- 使用 `describe`/`it` 组织测试
- Mock外部依赖,不Mock内部模块

## 覆盖率要求
- 核心业务逻辑:≥90%
- API路由:≥80%
- UI组件:≥60%(侧重交互逻辑)

## 测试结构
遵循 AAA 模式:
1. Arrange:设置测试数据和前置条件
2. Act:执行被测试的操作
3. Assert:验证结果符合预期

6.2 规则加载机制

Rules文件在每次会话启动时自动加载到系统提示词中。它们与CLAUDE.md的内容合并,Claude看到的是一份统一的指令集。不需要手动引用——放在.claude/rules/目录下就自动生效。


七、命令与Subagent协同模式

7.1 命令作为入口,Subagent作为执行者

最佳实践是让命令充当"指挥官",在需要时委托给专门的Subagent:

<!-- .claude/commands/full-review.md -->
# 全面审查

执行完整的代码审查流程。

## 步骤
1. 运行 `npm run lint` 检查代码规范
2. 如果lint通过,使用 @test-runner 运行测试
3. 如果测试通过,使用 @code-reviewer 审查代码质量
4. 使用 @security-auditor 进行安全扫描
5. 汇总所有Agent的报告,给出综合评分

## 注意
- 如果任何步骤失败,报告失败原因并建议修复
- 不要在主线程中做大量文件搜索,委托给Agent

7.2 后台并行执行

对于可以并行跑的Agent,设置background: true:

---
name: parallel-research
description: Research multiple topics in parallel using background agents.
background: true
model: haiku
tools: [Read, Glob, Grep, Bash]
---

研究以下主题并返回摘要:
- 项目使用的框架版本和已知问题
- 类似项目中的常见模式
- 性能优化的最佳实践

7.3 Worktree隔离执行

当并行修改可能冲突时,使用isolation: worktree:

---
name: refactor-worker
description: Performs code refactoring in an isolated worktree to avoid conflicts.
isolation: worktree
model: sonnet
tools: [Read, Edit, Write, Glob, Grep, Bash]
permissionMode: auto
---

八、调试与排错

8.1 Subagent不被触发

症状:你创建了Agent但Claude从不自动委托给它。

原因:description字段不够明确。

修复:使用动作导向的语言描述。对比:

# ❌ 弱描述——Claude不知道何时使用
description: A code review agent.

# ✅ 强描述——触发条件明确
description: Reviews code for quality, security, and best practices. Use proactively after code changes or before commits.

8.2 Subagent使用了不该用的工具

症状:只读Agent尝试编辑文件。

修复:同时使用tools白名单和disallowedTools黑名单:

tools: [Read, Glob, Grep]        # 只允许这三个
disallowedTools: [Edit, Write, Bash]  # 明确禁止写入

8.3 Agent上下文溢出

症状:Agent运行一段时间后开始"压缩"或丢失信息。

修复: 1. 设置maxTurns限制交互轮数(如maxTurns: 10) 2. 使用model: haiku降低成本和上下文消耗 3. 在提示词中要求"只返回摘要,不返回原始数据"

8.4 新创建的Agent不生效

原因:磁盘上的Agent文件在会话启动时加载。

修复: - 通过/agents界面创建的Agent立即生效 - 手动创建的文件需要重启会话 - 或者在会话中使用/agents刷新Agent列表


九、团队协作最佳实践

9.1 项目级配置提交策略

# 提交到Git的文件(团队共享)
git add .claude/commands/
git add .claude/agents/
git add .claude/rules/
git add .claude/settings.json
git add CLAUDE.md

# 不提交的文件(个人配置)
echo "CLAUDE.local.md" >> .gitignore
echo ".claude/settings.local.json" >> .gitignore
echo ".claude/agent-memory-local/" >> .gitignore

9.2 命令与Agent的命名规范

团队应统一命名规范以避免混乱:

类型 命名规范 示例
命令 动词或动词短语 /review、/deploy、/test-coverage
Agent 名词,描述角色 code-reviewer、security-auditor
命名空间 子目录组织 /gsd:plan、/deploy:staging

9.3 文档化你的Agent

在项目的README或CONTRIBUTING中记录:

## Claude Code配置

本项目包含以下自定义配置:

### 命令
- `/review` — 审查暂存区变更
- `/deploy:staging` — 部署到staging环境

### Subagents
- `code-reviewer` — 代码质量和最佳实践审查
- `security-auditor` — OWASP安全审计
- `test-runner` — 测试执行和失败分析

### 使用建议
提交前运行 `/review` 获取完整审查报告。

十、性能与成本优化

10.1 模型路由策略

graph TD
    A[任务到达] --> B{需要修改代码?}
    B -->|否,只读| C{复杂分析?}
    B -->|是| D{高难度重构?}
    C -->|否| E[haiku 成本$0.25/M token]
    C -->|是| F[sonnet 成本$3/M token]
    D -->|否| F
    D -->|是| G[opus 成本$15/M token]

    style E fill:#2ECC71,color:white
    style F fill:#F39C12,color:white
    style G fill:#E74C3C,color:white

10.2 成本对比实例

以"审查一个50文件的项目"为例:

方案 模型 预估Token 预估成本
主会话直接审查 opus ~200K ~$3.00
Subagent(sonnet)审查 sonnet ~150K ~$0.45
Subagent(haiku)快速扫描 haiku ~100K ~$0.025

结论:将审查工作委托给haiku模型的Subagent,成本降低120倍,同时保护主会话上下文不被审查日志污染。

10.3 上下文节省

Subagent最大的隐性价值不是模型成本,而是主会话上下文空间的节省。一个长会话中,大量文件读取、grep结果、测试输出会迅速填满上下文窗口。一旦触发压缩(compaction),之前的对话质量会下降。Subagent把噪音工作隔离到独立窗口,主会话只保留结论和决策。


延伸阅读

训练营适用性评估

维度 评估
适合训练营类型 AI编程工具实战营、团队工程化训练营、Claude Code深度用户训练营
预计教学时长 4-6小时(含实操练习)
难度等级 中级(需具备Claude Code基础使用经验)
实操占比 70%(大量动手创建命令和Agent)
最佳分组方式 2-3人一组,每组一个真实项目
结业产出 每人拥有一套可复用的个人命令+Agent工具箱

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入