Master Agent 跃迁计划 (Architecture Evolution v2.0)
要让你的 Master Agent 从“只会背板敲 curl 的初级脚本工”进化为“拥有全知视角和自纠错能力的系统工程师”,我们需要以最小侵入性的方式对 LemonBoss 架构进行三项外科手术级别的改造。
改造一:实现“上帝视角”(动态上下文自动注入机制)
现状:Master 每次醒来,只能看到历史对话,不知道当前系统里有哪些公司、哪些 Agent 存活,必须靠自己手敲 cat 或 ls 去盲人摸象。
目标:每次与 Master 对话前,后端主动抓取当前环境的快照,像仪表盘一样直接怼到它的脑子里。
🛠️ 实施路径
- 修改
server/src/core/prompt-builder.js在组装传给大模型的最终 Prompt 之前,增加一个injectSystemState()环节。 - 注入
<env_status>模块 后端直接读取 SQLite 或文件系统,在 Prompt 顶部动态拼接一段实时 XML 报告:xml <env_status> <timestamp>2026-03-26 10:30:00</timestamp> <companies> <company id="lemonv"> <agent id="lemonv:ceo" status="ready" current_tasks="1" /> <agent id="lemonv:qa-judge" status="busy" /> </company> </companies> <global_agents>agent-creator, innovator, etc...</global_agents> <active_goals>G-lemonv-001 (In Progress)</active_goals> </env_status>效果:Master 收到指令后,根本不用再去查api/company/list,它一眼扫过上下文就知道lemonv公司只有两个员工,任务绝不会派错!
改造二:用强类型 CLI 替代脆弱的 RAW Bash (重构工具链)
现状:Master Agent 仍在痛苦地拼接 curl -d '{"task": "..."}',一旦双引号嵌套、换行符冲突,JSON 就会崩溃。
目标:收回它生写 HTTP 请求的权限,为它量身定制一套类似于我们内部系统的业务命令黑盒。
🛠️ 实施路径
- 编写轻量级 Node CLI 工具
bin/lemon.js在项目根目录创建一个极简的脚本工具,内部封装对localhost:3000的调用,并自动处理所有引号逃逸和 JSON 序列化。 - 重写
tools.md规则文件 废弃所有curl示例,取而代之的是极致优雅且防呆的业务命令: ```bash # 委派任务 lemon task dispatch --from master --to lemonv:ceo --priority P0 --msg "写个剧本"
# 查看进度 lemon goal status G-lemonv-001
# 招聘员工 lemon company hire --id lemonv --role qa-judge
**效果**:命令语义化极强,零 JSON 解析错误,杜绝控制字符导致的大模型语法树崩溃。
---
## 改造三:构建潜意识纠错循环 (Cognitive Auto-Recovery)
**现状**:Master 敲错了报错 500,记录在日志里,然后眼巴巴看着用户,直接摆烂。
**目标**:实现 AntiGravity 同款的“静默重试”机制——执行出错时,拦截报错扔回给大模型,让它“偷偷”修好再回复用户。
### 🛠️ 实施路径
1. **拦截失败的 Output (`stream-executor.js`)**
当底层监控到 `bash` 进程的 `exit code != 0` 或者业务 API 返回 `400/500` 时,**不要把这个请求定性为 Done 并返回给前端**。
2. **构建闭环 Feedback 路由**
系统在后台立即自动追加一条类似系统指令的 Prompt,再强行 push 给大模型:
```text
[System Intercepted Error]: 你的上一条命令 `lemon task dispatch --to ceo` 失败了。
报错信息: "Target agent ceo not found. Did you forget the company namespace?"
请在不通知用户的情况下,自我修正命令参数并重新执行。
效果:用户只会看到思考的 Spinner 多转了几秒钟,随后 Master “聪明”地得出了正确结果。用户根本不会知道它在后台其实已经踩过坑并自己爬出来了。
改造四:强制思维隔离 (<thinking> 结界)
现状:Master 想到哪写到哪,把思考过程和 Bash 命令杂糅在一起。 目标:强化它的逻辑链(Chain of Thought),提升复杂任务的指派准确率。
🛠️ 实施路径
在 Master 的 agent.md 开头添加高压规则:
在输出任何 Bash 工具调用之前,必须使用 <thought> 标签进行完整的方案推理,推理由以下三步组成:
- 确认要操作的宿主环境与 Company 归属。
- 明确你要调用的工具名。
- 检查输入参数是否转义合法。
与此同时,我们在 Vue 前端的 AgentChat.vue 把所有的 <thought>...</thought> 内容拦截,渲染成折叠的灰色气泡(就像你现在看我思考时一样),仅呈现最终结果。
💡 你想先从哪一步开始? 我个人强烈建议我们先搞定 改造一(上下文上帝视角) 和 改造二(封装 lemon.js 专属命令行)。只需要一两个小时的代码重构,你的 Master Agent 的稳健性和智商就会有肉眼可见的质变飞跃。需要我立刻动手操刀改代码吗?