--agents 标志允许您通过 JSON 动态定义自定义子代理,无需修改配置文件。这为临时或特定任务提供了灵活的代理配置方式。
标志语法#
bash
功能描述#
--agents 标志接受定义一个或多个自定义子代理的 JSON 对象。每个子代理需要一个唯一的名称(作为键)和一个具有以下字段的定义对象:
| 字段 | 必需 | 描述 |
|---|---|---|
description | 是 | 何时应调用子代理的自然语言描述 |
prompt | 是 | 指导子代理行为的系统提示 |
tools | 否 | 子代理可以使用的特定工具数组。如果省略,继承所有工具 |
model | 否 | 要使用的模型别名:sonnet、opus 或 haiku。如果省略,使用默认子代理模型 |
使用示例#
基本用法#
bash
定义一个简单的代码审查子代理。
多个子代理#
bash
定义多个子代理,每个有不同的职责和配置。
指定工具#
bash
定义一个只能使用特定工具的子代理。
指定模型#
bash
定义一个使用特定模型的子代理。
使用场景#
1. 代码审查#
bash
使用专门的代码审查子代理。
2. 调试#
bash
使用专门的调试子代理。
3. 测试#
bash
使用专门的测试子代理。
4. 文档生成#
bash
使用专门的文档生成子代理。
子代理的优势#
1. 专业化#
每个子代理可以专注于特定领域:
- 代码审查
- 调试
- 测试
- 文档生成
2. 灵活性#
可以动态定义子代理,无需修改配置文件:
- 临时任务
- 特定项目
- 实验性功能
3. 工具限制#
可以限制子代理使用的工具:
- 提高安全性
- 减少成本
- 优化性能
4. 模型选择#
可以为每个子代理选择不同的模型:
- 使用更强大的模型处理复杂任务
- 使用更快的模型处理简单任务
- 优化成本和性能
注意事项#
- JSON 格式:确保 JSON 格式正确,使用单引号或转义双引号
- 唯一名称:每个子代理必须有唯一的名称
- 描述清晰:描述应该清晰明确,帮助 Claude 决定何时调用
- 提示有效:系统提示应该清晰具体,指导子代理的行为
- 工具兼容:指定的工具必须存在且可用
- 模型有效:指定的模型必须受支持
最佳实践#
- 明确描述:子代理描述应该明确说明何时应该调用
- 具体提示:系统提示应该具体指导子代理的行为和风格
- 合理工具:只包含子代理实际需要的工具
- 合适模型:根据任务复杂度选择合适的模型
- 测试验证:定义子代理后,测试其行为是否符合预期
- 文档记录:记录每个子代理的用途和配置
与配置文件的对比#
| 特性 | --agents 标志 | 配置文件 |
|---|---|---|
| 持久性 | 临时(仅当前会话) | 持久 |
| 灵活性 | 高(动态定义) | 中(需要修改文件) |
| 适用场景 | 临时任务、实验 | 长期使用、团队共享 |
| 复杂度 | 简单(单次定义) | 复杂(需要编辑文件) |
常见问题#
Q: 可以定义多少个子代理?#
A: 理论上没有限制,但过多的子代理可能影响性能和决策。
Q: 子代理可以嵌套吗?#
A: 不可以,子代理不能调用其他子代理。
Q: 子代理的提示可以多长?#
A: 提示长度有限制,建议保持简洁明确。
Q: 如何调试子代理?#
A: 使用 --verbose 标志可以查看子代理的调用和执行详情。
相关资源#
- 子代理文档:详细的子代理配置和使用指南
--model:设置会话模型--verbose:启用详细日志记录
实际应用示例#
项目特定子代理#
bash
临时调试会话#
bash