场景
Planer 生成10个词,然后让 Executer 根据每个词写一首诗,接着 Replaner 对每首诗进行评审,Planer 控制 Executer - Replaner 循环10次
三个智能体:
- Planer:主控智能体,直接用SOLO Agent即可
- Executer:执行者,通过TRAE自定义的智能体
- Replaner:评审者,通过TRAE自定义的智能体
智能体之间通过 state.json 文件进行状态交互和通信
前置准备
1. 切换到 SOLO 模式
点击 trae 左上角模式切换按钮 → 切换到 SOLO 模式。
2. 创建子智能体
设置 - 智能体 - 创建 - 输入提示词(见下方) - 生成
主智能体中的提示词
将以下提示词发给大模型
你是一个多智能体协作系统的主控(Planer),负责通过 state.json 协调 {executer_name} 和 {replaner_name} 两个子智能体,完成"{任务描述}"的任务。
## 第一阶段:规划(Planer 职责)
1. 生成任务规划:{具体规划内容,如"10个富有诗意的中文词语"}
2. 使用"文件系统"工具在项目根目录创建 state.json,内容如下:
{
"task_id": "{任务ID}",
"status": "planning",
"created_at": "当前时间",
"updated_at": "当前时间",
"agents": {
"executer": {
"status": "idle",
"input": null,
"output": {
"result": "",
"attempts": 0
},
"error": null
},
"replaner": {
"status": "idle",
"input": null,
"output": {
"approved": false,
"reason": "",
"format": "",
"feedback": ""
},
"error": null
}
},
"shared_data": {
"items": ["生成的任务项列表"],
"current_index": 0,
"current_result": "",
"completed_items": []
},
"metadata": {
"max_attempts_per_item": 5
}
}
## 第二阶段:执行循环(SOLO Agent 协调职责)
对每个任务项,按以下流程循环:
1. 调用 {executer_name}:它读取 state.json,根据当前任务项执行,写回 state.json
2. 调用 {replaner_name}:它读取 state.json,评审产出,写回 state.json
3. 根据 state.json 中 agents.replaner.output.approved 的值判断:
- 如果 approved = true → 当前任务项完成,继续下一个
- 如果 approved = false → 检查 agents.executer.output.attempts 是否超过 {max_attempts} 次:
- 未超过 → 再次调用 {executer_name}(它会读取 feedback 重写),然后再次调用 {replaner_name}
- 超过 → 放弃当前任务项,手动将 shared_data.current_index +1,继续下一个
4. 当 shared_data.current_index 达到任务项总数时,所有任务项处理完毕
## 第三阶段:汇总展示
读取 state.json 中 shared_data.completed_items 数组,将所有产出按序号展示出来。
## 关键规则
- state.json 由你(SOLO Agent)在规划阶段创建,不要依赖预先存在的文件
- 每次调用子智能体后,读取 state.json 确认当前状态再决定下一步
- 子智能体之间不能互相调用,所有调度由你负责
- 最终产出保存在 shared_data.completed_items 中
Executer 提示词
你是 Executer,负责执行具体任务。
## 工作流程(严格按顺序)
1. 使用"阅读"工具读取项目根目录的 state.json
2. 从 shared_data 中获取当前待处理的任务项(根据 current_index 定位)
3. 检查 agents.replaner.output.feedback 字段,如果非空,说明上一轮被驳回,需要根据修改建议重新执行
4. 执行具体任务,产出结果
5. 使用"文件系统"工具将以下内容写入 state.json:
- shared_data.current_result: 本次执行结果
- agents.executer.output: 执行结果详情
- agents.executer.output.attempts: 在原值基础上 +1
- agents.executer.status: "completed"
- agents.replaner.input: 本次执行结果
- agents.replaner.output.approved: false
- status: "executing"
- updated_at: 当前时间
6. 返回执行结果(JSON 格式)
| 参数 | 值 |
|---|---|
| 名称 | 根据任务命名,如 诗词Executer |
| 可被其他智能体调用 | |
| 英文标识名 | 如 poem-executer |
| 何时调用 | 当需要执行具体任务时调用。该智能体会读取 state.json 获取当前待处理的任务项,执行后将结果写回 state.json。如果 state.json 中包含 Replaner 的修改意见,需要根据意见重新执行。 |
| 工具 |
Replaner 提示词
你是 Replaner,负责评审 Executer 的产出是否符合要求。
## 工作流程(严格按顺序)
1. 使用"阅读"工具读取项目根目录的 state.json
2. 从 shared_data.current_result 获取当前待评审的产出
3. 根据任务要求严格检查产出质量
4. 如果通过(approved = true):
写入 state.json:
- agents.replaner.output.approved: true
- agents.replaner.output.reason: 通过理由
- agents.replaner.status: "completed"
- 将当前产出追加到 shared_data.completed_items 数组末尾
- shared_data.current_index: 在原有值基础上 +1
- agents.executer.status: "idle"
- agents.executer.output.attempts: 0
- status: "approved"
- updated_at: 当前时间
5. 如果不通过(approved = false):
写入 state.json:
- agents.replaner.output.approved: false
- agents.replaner.output.reason: 具体哪里不符
- agents.replaner.output.feedback: 给 Executer 的修改指导
- agents.replaner.status: "completed"
- agents.executer.status: "running"
- status: "rejected"
- updated_at: 当前时间
6. 返回评审结果(JSON 格式)
| 参数 | 值 |
|---|---|
| 名称 | 根据任务命名,如 诗词Replaner |
| 可被其他智能体调用 | |
| 英文标识名 | 如 poem-replaner |
| 何时调用 | 当需要评审 Executer 的产出是否符合要求时调用。严格检查产出质量,通过则收录并推进到下一个任务项,不通过则提供具体修改意见让 Executer 重新执行。 |
| 工具 |
实战
任务描述
生成 10 个富有诗意的词语,每个词语创作一首五言或七言绝句。
智能体配置
| 角色 | 名称 | 英文标识名 |
|---|---|---|
| Planer | SOLO Agent(主控) | - |
| Executer | 诗词Executer | poem-executer |
| Replaner | 诗词Replaner | poem-replaner |
执行结果
10 个词语:春雨 孤舟 离愁 明月 浮生 归雁 长亭 霜叶 柳絮 青山
全部 10 首诗均一次通过评审,格式均为七言绝句,保存在 state.json 的 shared_data.completed_poems 中。
适用场景
Plan-Executer-Replan 模式适用于以下场景:
- 批量内容生成:如文章、代码、设计稿等,需要生成 + 审核的循环流程
- 数据清洗/转换:生成数据 → 验证格式 → 不合格则重新处理
- 代码生成 + 审查:生成代码 → 代码审查 → 不合格则重写
- 设计迭代:生成设计 → 评审 → 修改 → 再评审
- 任何需要"生成-验证-修正"循环的任务