Solon v3.10.7

subagent(子代理)使用与定义说明

</> markdown
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 要写清楚,主代理会依据它判断是否委派。
  • 给探索类代理去掉写权限,降低误操作风险。
  • 给开发类代理保留 readeditbashcodetodo
  • 如果某个代理只做规划,不要给 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,提示词要求使用这个团队文件即可):