子智能体
码道CLI支持项目级和个人级两种子智能体。用户可根据具体开发场景与协作需求,选择最适合的子智能体层级进行设置,实现灵活高效的代码管理。
子智能体是主智能体可调用的专项任务助手,也可在消息内@指定,手动触发调用。
配置目录
存在同名的项目级和个人级子智能体时,项目级子智能体优先级高于个人级子智能体。
| 类型 | 作用域 | 说明 |
|---|---|---|
| 项目级 | 当前项目 | 仅针对当前项目的子智能体,随代码库分发,存于本地。 存储位置:项目根目录/.codeartsdoer/agents |
| 个人级 | 当前用户下的所有项目 | 个人习惯或特定偏好的子智能体,仅对本用户下的所有项目生效。 存储位置:~/.codeartsdoer/agents “~”表示当前用户的主目录,Windows下等同于“C:\Users\用户名\”,macOS下等同于“/Users/用户名/” |
子智能体文件格式
子智能体采用Markdown文件格式编写,文件头部配置YAML Frontmatter元信息,主体承载提示词角色指令。
--- description: Agent desc # 代理功能描述 mode: subagent # 固定为子智能体模式 model: provider/model #如果参照此格式配置模型,将覆盖默认模型 tools: # 工具权限配置 tool1: true # 允许使用tool1 tool2: false # 禁止使用tool2 --- # 提示词 这里是子智能体的系统提示词内容
上述子智能体各参数填写规范如下表所示:
| 参数 | 是否必选 | 参数类型 | 默认值 | 描述 |
|---|---|---|---|---|
| description | 是 | 字符串 | 不涉及 | 子智能体的描述。 |
| mode | 是 | 字符串 | subagent | 设置代理的角色。
|
| model | 否 | 字符串 | 不涉及 | 格式为:provider/model 码道CLI支持的全部模型可查看查看所有模型 |
| tools | 否 | 不涉及 | 控制代理可使用的工具权限,码道CLI支持的工具如表4,您也可以使用“*”匹配所有工具。 示例: tools: "*":false #表示禁止所有工具 | |
| permission | 否 | 对象 | allow | 管理操作审批流程。
|
| hidden | 否 | 布尔值 | 不涉及 | 可见性控制。 设为“true”时,从@自动补全菜单中隐藏。适用于仅供编程调用的内部代理 |
| disable | 否 | 布尔值 | 不涉及 | 开关控制。
|
| 提示词 | 是 | 字符串 | 不涉及 | 子智能体的系统提示词。 |
配置示例
本示例以Windows系统下配置个人级子智能体为例。
- 进入“~/.codeartsdoer/agents”目录下,创建“test.md”文件,写入如下内容。 “~”表示当前用户的主目录,Windows下等同于“C:\Users\用户名\”,macOS下等同于“/Users/用户名/”
--- # ========== 必填项 ========== description: 代理的功能及使用场景描述(必填,主代理据此判断调用时机) mode: subagent # 枚举值:subagent子智能体 / primary主代理 / all两者通用 # ========== 模型配置 ========== model: provider/model-id # 自定义模型,格式规范:provider/model-id,执行“/models”可查看支持的模型 # ========== 行为控制 ========== hidden: false # true:隐藏@联想菜单,仅程序内部调用 disable: false # true:停用当前代理 # ========== 工具权限 ========== tools: write: false # 文件写入权限 edit: false # 文件编辑权限 bash: false # 系统命令执行权限 read: false # 文件读取权限 # ========== 操作审批权限 ========== permission: edit: ask # ask需审批 / allow直接放行 / deny禁止执行 bash: "*": ask # 通配兜底规则,优先级最低 "git status *": allow "git log*": allow "grep *": allow --- # 系统提示词(支持多行Markdown格式) 你是一名资深代码审查专家。请重点关注: -代码质量与最佳实践 -潜在Bug和边界情况 -性能影响 -安全隐患 提供建设性反馈,不要直接修改代码。 - 配置后,进入任意代码项目下,执行如下命令。
@test 分析代码
如下图所示,指定自定义子智能体进行代码分析。
图1 调用test子智能体分析代码