子代理
在华为云码道(CodeArts)代码智能体中,子代理是主代理的AI助手,用于处理特定类型的工作,并将结果返回给主代理。
子代理主要用于以下场景:
- 长链路复杂任务:适用于流程冗长、逻辑复杂的任务,由子代理自主拆解任务、规划执行步骤并分布落地,例如全链路代码开发。
- 上下文隔离:通过子代理隔离子任务上下文,避免主代理上下文冗余、Token膨胀及上下文溢出问题,例如批量数据解析。
- 垂直领域专业能力:各子代理可配置专属角色提示词与私有知识库,形成领域专家能力,提升专业推理精度与任务准确率,例如安全审计专家子代理。
- 权限隔离:为不同子代理独立配置访问权限,实现敏感数据、私有知识库、高低危接口、文件资源及项目数据的权限隔离,保障数据与系统安全,例如数据删除、系统指令等高风险操作权限隔离。
内置子代理
华为云码道已内置多款子代理,无需您配置,由智能体决定何时使用。
| 名称 | 说明 |
|---|---|
| general | 通用代理,用于研究复杂问题和执行多步骤任务。 |
| explore | 快速代码库探索代理,专用于按模式查找文件、搜索代码关键字、回答代码库问题。 |
| spec-task-agent | 根据需求和设计生成实现任务。 |
| spec-requirement-agent | 基于项目描述和上下文生成EARS格式需求。 |
| spec-design-agent | 生成综合技术设计,将需求(做什么)转化为架构(如何做)。 |
| developer-test-agent | 专门用于单元测试生成、修复、覆盖率优化和审查的子代理。 使用示例请参见单元测试。 仅JetBrains系列的开发工具(PyCharm、IntelliJ IDEA、WebStorm及CLion)包含该子代理。 |
子代理分类
华为云码道支持项目级和个人级两种子代理。用户可根据具体开发场景与协作需求,选择最适合的子代理层级进行设置,实现灵活高效的代码管理。存在同名的项目级和个人级子代理时,项目级子代理优先级高于个人级子代理。
| 类型 | 作用域 | 说明 |
|---|---|---|
| 项目级 | 当前项目 | 仅针对当前项目的子代理,随代码库分发,存于本地。 存储位置:项目根目录的“./.codeartsdoer/agents” |
| 个人级 | 当前用户下的所有项目 | 个人习惯或特定偏好的子代理,仅对本人生效。 存储位置:本地的“~/.codeartsdoer/agents” |
子代理文件格式
子代理采用Markdown文件格式编写,文件头部配置YAML Frontmatter元信息,主体承载Prompt角色指令。
--- name: agent-name # 子代理名称 mode: subagent # 固定为子代理模式 description: Agent desc # 代理功能描述 tools: # 工具权限配置 tool1: allow # 允许使用tool1 tool2: deny # 禁止使用tool2 --- # 提示词 这里是子代理的系统提示词内容
上述子代理各参数填写规范如下表所示:
| 参数 | 是否必选 | 参数类型 | 默认值 | 描述 |
|---|---|---|---|---|
| name | 是 | String | 不涉及 | 子代理的名称。 |
| mode | 否 | String | subagent | 设置代理的角色。
|
| description | 是 | String | 不涉及 | 子代理的描述。 |
| tools | 否 | 不涉及 | 控制代理可使用的工具权限,华为云码道支持的工具如表5,您也可以使用“*”匹配所有工具。 示例: tools: "*": deny #默认禁止所有工具 | |
| 提示词 | 是 | String | - | 子代理的系统提示词。 |
创建子代理
华为云码道支持添加项目级与个人级两种类型的子代理。除了直接创建子代理外,您还可以通过导入的方式,快速添加自定义子代理,灵活高效,轻松扩展能力。
为当前项目定制的子代理,随代码库一并分发。项目级子代理添加后即生效,何时使用由智能体决定。
通过以下任一方法添加项目级子代理。
- 新建一个项目级子代理。
- 参考快速启动操作,登录华为云码道。
- 打开华为云码道聊天窗口。
- 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标
,打开华为云码道聊天窗口。 - Visual Studio Code:单击Visual Studio Code侧边栏图标
,打开华为云码道聊天窗口。 - JetBrains:以IntelliJ IDEA为例,单击IntelliJ IDEA侧边栏图标
,打开华为云码道聊天窗口。
不同工具中华为云码道的界面风格有所差异,本章以其在IDE工具中的界面为例进行介绍,实际操作请以所用工具的显示为准。
- 华为云码道IDE:单击IDE顶部菜单栏中的展开AI侧栏图标
- 在“资源管理器”的“./.codeartsdoer/agents”文件夹上,单击鼠标右键选择“新建文件”,新建一个Markdown格式的文件。
子代理名称由小写字母、数字和连字符(-)组成,开头和结尾不能是连字符,且连字符不可连续使用,长度1~64字符。例如code-reviewer。
- 在code-reviewer.md文件中编写子代理,完成后按快捷键(Windows/Linux:“Ctrl+S”;macOS:“Command(⌘)+S”)保存。
- 将已存在的子代理放置到指定路径。
将本地已存在的子代理放置到项目根目录的“./.codeartsdoer/agents”路径中。
个人级子代理添加后即生效,何时使用由智能体决定。
通过以下任一方法添加个人级子代理。
子代理示例
以创建一个项目级子代理为例,向您介绍如何使用子代理。
- 在“资源管理器”的“./.codeartsdoer/agents”文件夹上,单击鼠标右键选择“新建文件”,新建一个Markdown格式的文件,文件名为code-analyzer.md。
- 在创建的code-analyzer.md文件中,添加如下内容并保存。
--- name: code-analyzer mode: subagent description: 代码分析专家,只读取不修改 tools: read: allow glob: allow grep: allow list: allow --- 你是一个代码分析专家。你的任务是: 1. 分析代码结构和质量 2. 识别潜在问题和改进点 3. 提供优化建议 请仔细分析代码,但不要修改任何文件。
- 添加待检查的代码文件。
在华为云码道聊天窗口的输入框中,输入“#”,选择“File”并从列表中选择您需要的文件(如LoginSystem.java)。如果需要添加多个文件,只需在输入框中再次输入“#”,即可打开上下文窗口继续添加。
图1 添加代码文件
- 调用子代理检查代码质量。


