subagent(子代理)使用与定义说明
2026年6月7日 上午10:56:43
Subagent(子代理)是 SolonCode 的核心能力,支持将复杂任务委派给具备特定专业技能的专家代理(可以串行,或并行),实现"让专业的人做专业的事"或者“同时多人干活”。
1、核心架构
┌─────────────────────────────────────────────────────────┐
│ 用户交互入口 │
│ ↓ │
│ 主代理 (ReActAgent) │
│ - 接收指令、分析任务 │
│ - 任务分解、委派调度 │
│ - 结果汇总、响应输出 │
└─────────────────────────────────────────────────────────┘
│
┌─────────────┼───────────────────┐
↓ ↓ ↓
┌────────────┐ ┌─────────────────┐ ┌──────────┐
│ Architect │ │ Development │ │ Tester │
└────────────┘ └─────────────────┘ └──────────┘
工作流程:
用户指令 → 主代理分析 → 任务分解 → 子代理执行 → 结果汇总 → 响应用户
2、预置子代理
| 名称 | 职责 | 特点 |
|---|---|---|
general | 通用执行专家 | 其他代理不合适时使用 |
explore | 本地与网络信息探索 | 无写权限,适合调研 |
bash | 命令行执行 | 无写权限,适合 git、构建、诊断 |
plan | 规划专家 | 无写权限,适合复杂方案设计 |
CLI 与 Web 都支持用 @agentName 指定代理:
@explore 分析一下这个项目的模块结构
@plan 给我设计一个迁移方案
@bash 运行 git status 和 mvn test,提取关键结果
CLI 中可用 @(tab) 查看可选子代理。
3、配置位置
| 位置 | 作用 |
|---|---|
~/.soloncode/agents/ | 全局子代理 |
.soloncode/agents/ | 工作区子代理 |
同名子代理可用于覆盖默认定义。工作区代理更适合项目专属角色,例如“后端开发”“前端开发”“测试工程师”。
4、子代理文件格式
示例 .soloncode/agents/backend-dev.md:
---
name: "backend-dev"
description: "Solon 后端开发专家,负责接口、服务、测试。"
model: "coder-model"
tools: ["read", "grep", "glob", "edit", "bash", "code", "todo"]
disallowedTools: []
maxTurns: 30
---
你是 Solon 后端开发专家。
工作要求:
1. 修改前先阅读相关文件。
2. 修改后运行测试。
3. 输出变更清单与验证结果。
常用元数据:
| 字段 | 说明 |
|---|---|
name | 子代理名称,必填 |
description | 能力描述,必填,会影响主代理选择 |
model | 指定模型,可选 |
tools | 允许工具列表 |
disallowedTools | 禁止工具列表 |
sessionWindowSize | 会话窗口 |
summaryWindowSize | 摘要窗口 |
summaryWindowToken | 摘要 token 阈值 |
maxTurns | 最大执行回合 |
autoRethink | 是否允许自我反思继续 |
5、工具权限建议
description要写清楚,主代理会依据它判断是否委派。- 给探索类代理去掉写权限,降低误操作风险。
- 给开发类代理保留
read、edit、bash、code、todo。 - 如果某个代理只做规划,不要给
write/edit/bash。 - 不要为了省事给所有代理
tools: ["*"]。
6、验证是否生效
启动 CLI 后输入:
@(tab)
或直接指定:
@explore 说明你的职责和可用工具
7、团队编排建议
可以先让主代理生成团队方案,再保存为项目文档:
请为这个权限系统设计 agent team,至少包含 architect、backend-dev、frontend-dev、tester。先输出分工和阶段计划,保存到 .soloncode/agents 需要的代理定义中,然后按阶段执行。
建议把团队协作过程写清楚:谁先做设计、谁并行开发、谁负责验证、失败时如何回退。
示例:
我想开发一个经典的权限管理系统(项目名为 demo1-web,里面再建两个目录分为前端与后端),后端基于 solon v3.10.1,java8,前端基于 vue3 开发,界面要清爽好看。先帮我设计一个 agent team (至少要有架构师,前端开发,后端开发,测试员四个角色,架构师先做好设计,然后并行开发,之后测试)分工去做这个事,团队设计案保存为 demo1-team.md(经常要看下,避免忘记)。子代理生成时要保存为文件(万一任务中断,也可以复用)。然后驱动团队去完成开发,单元测试,界面测试(用无头浏览器去测试)。全好了后,运行起来,让我检查效果。
或者自己编写团队配置文件(例:demo-team.md,提示词要求使用这个团队文件即可):