Claude Code 使用笔记(二)- Command 和 SubAgent
指令
在 .claude/commands 中声明指令,指令用于编写我们的可重用 Markdown 功能模板,避免频繁手写 prompt
指令调用和使用 Claude 指令一样,通常都是 /指令名称 这种格式

指令模板
模板编写方式有很多种,比如:
-
Markdown:适合日常用户习惯
-
JSON:有利于工程表达,提高数据密度
-
XML:工具调用常用的模板格式,适合复杂且庞大场合,明确边界有利于编程助手理解
日常开发使用 Markdown 即可,数据格式只是锦上添花,最重要的是如何让编程助手理解你的意图
接口能力描述
关联业务文件,接口实现能力描述.
- 功能
- 输入参数:
- 输出参数
- 参数1:参数内部具体说明
- 数据来源:说明数据获取途径
- 额外操作,相关业务处理
- 检查:保证业务相关性的检查逻辑,比如接口可用
基于测试的错误排查
程序执行异常时,为了定位错误,我们可以提供错误信息,并让 AI 编写测试文件,基于测试来进行排查
这样可以减少 Claude 出现排查异常混乱的问题
我的程序出现了 xxx 错误信息
我需要:
1. 为 xxx 文件 xxx 功能执行编写测试示例
2 ...
将实例保存到 xxx 目录,并运行排障
然后尽可能修复测试错误的代码内容
请多加思考(Think a lot)
最后一句话可以激发 Claude 用更多的算力和思考时间来完成任务,这对困难业务排查是有效果的
功能重构
基于 Markdown 来编写,提供更多详细信息
要重构的功能描述
## 当前情况
按步骤叙述
## 期望的情况
按步骤叙述
## 工作流示例
给一个工作示例
不需要具体的结果,只需要提供大概流程
## 要求
这里编写需要遵守的规则
比如具体规则逻辑
## 提示
这里编写协助 Claude 更规范任务的步骤
比如具体重构文件,需要更新的内容,需要更新的测试文件
Note:编写的测试流程要关注外部行为(业务行为示例),而不是具体的内部细节
指令参数
通常我们编写的 prompt 不是固定的模板输出,而是有时需要改变某些描述
比如上面的错误排查,先分析可能存在修改的部分
- 错误信息名称
- 可以拓展的错误信息列表
- 目录名称
接下来将其提取成携带参数的通用工程模板,参数的表达形式有很多种
Claude 中通常采用 $ 开头作为参数形式
<!-- error-fix.md -->
我的程序出现了 $ERROR_MESSAGE 错误信息
我需要:
1. 你要固定的通用错误处理
$FIX_FEATURE_LIST
将文件保存到 $DIR 目录,并运行排障
然后尽可能修复测试错误的代码内容
请多加思考(Think a lot)
然后采用较为规范化的形式去输入提示词,方便 Claude 理解
# claude cli
/error-fix
- $ERROR_MESSAGE: 错误提示信息
- $FIX_FEATURE_LIST: 额外的处理信息
- $DIR: ./test
如果不太确定 Claude 能否理解提示词,可以在提示词后面补充输出验证
# claude cli
/error-fix
- $ERROR_MESSAGE: 错误提示信息
- $FIX_FEATURE_LIST: 额外的处理信息
- $DIR: ./test
请先输出你得到的提示词结果,然后再开始任务
SubAgent(子代理)
多任务并行
告诉 Claude Code 启用多任务并行功能
注意关键词:
- n 个 Agent(use N SubAgent)
- 并行执行(parallel)
例如:
请使用 3 个并行的 Agent 帮我计划:怎么更快的学习 Claude Code
如果提示词成功的话,CLI 会同时显示 3 个正在执行的任务,这里本质是用到了 SubAgent(子代理)机制,SubAgent 通过主代理启动(即你对话时的 Agent 窗口),基于 SubAgent 实现多任务并行执行
自定义 SubAgent 任务
通过提示词的 SubAgent 表达能力有限,由 Claude 自身能力调度,不太适用于复杂的场景,如果需要自己编写 SubAgent,可以在 ~/.claude/agents 目录下编写基于 Markdown 的 SubAgent 模板
内容包括 Front Matter 和 Content
Front Matter 包括的内容:
- name:SubAgent 在 CLI 中显示的名称
- description:描述信息,方便 Claude 定位工具用途
- tools:支持调用 Claude 内置工具
- model:使用模型,
inhreit则继承父Agent使用的模型 - color:Claude 专属属性,表示 CLI 中 agent 名称的背景色,方便阅读
Content 主要表达对 Agent 的定位和任务描述提示词信息
---
name: secutity-auditor
description: "安全专家,用于检查内容中存在的账户信息、脚本等敏感数据"
tools: Read
model: inherit
color: blue
---
<!-- 提示词 -->
你是一名安全专家
调用时:
1. 识别调用载体内容的中的账户信息、敏感个人数据
2. 识别载体中的密钥、身份认证内容
3. 识别并整理审查清单
根据严重程度报告发现:
- 高敏感: 需要立刻移除
- 中度敏感: 存在泄漏,但是考虑移除
- 低敏感: 可能存在泄漏,但通常无需移除
执行时调用方式,可以让 Claude 自行推断调用,也可以主动声明调用
Agent 调用:
> 请使用 SubAgent 分析并审查 @vitest.config.ts 的代码安全性问题
或者指定并行 Agent 调用:
> 请并行使用 code-analyzer secutity-auditor 分析并审查 @vitest.config.ts 的代码安全性和代码规范问题
执行效果:
SubAgent 和 Command 有什么区别
- SubAgent 本质也是一个 Agent,可以理解成独立的 Agent 工作区,适用于复杂的任务处理场景。
- 独立于父 Agent 的上下文,可以使用自己的模型。
- 支持并行执行。
- 自主完成工作后返回结果给父 Agent。
- 指令本身是可重用的工作模板,通过
/指令名称形式触发。- 和 Agent 共享模型和上下文。
- 用于支持一次性或者快速完成的简单任务。
参考内容
更多推荐


所有评论(0)