Files
boss/docs/superpowers/specs/2026-04-16-master-agent-evolution-engine-design.md

199 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 主Agent 自动进化引擎设计
更新时间:`2026-04-16`
## 1. 背景
当前 Boss 主Agent 已经具备:
- 长期记忆:`masterAgentMemories`
- 提示词策略:`masterAgentPromptPolicy``userMasterPrompts`
- 对话控制:`userProjectAgentControls`
- 运行时自适应Master Node / Hermes / Claw / API fallback
但它还不具备真正的自动进化闭环。现状只能“记住”与“回退”,不能持续发现问题、形成提案、沉淀规则并在后续回复中生效。
## 2. 目标
- 给主Agent增加统一的 `Evolution Engine`
- 支持两种能力范围:
- `controlled`:受控自动进化,只生成提案,等待用户批准后落地
- `autonomous`:完全自我进化,对高置信度提案自动落地
- 进化逻辑对现有主链最小侵入,不重写现有回复链、任务链、记忆链
- 所有进化行为可追踪、可审计、可回滚
## 3. 核心概念
### 3.1 Evolution Signal
进化信号,记录“为什么应该考虑进化”。
第一批信号来源:
- 高频重复问句
- 慢回复问题
- 用户纠正主Agent
- 模型/后端频繁手动切换
- 后端回退或执行失败
- Fast Path 未命中但属于确定性状态问题
### 3.2 Evolution Proposal
进化提案,记录“建议怎么改”。
第一批提案类型:
- `fast_path_rule`
- `prompt_policy_patch`
- `memory_patch`
- `agent_control_patch`
- `routing_preference_patch`
### 3.3 Evolution Rule
已生效规则,表示被批准或自动采纳后真正进入系统长期状态的变更。
### 3.4 Evolution Run Log
进化执行日志,记录某次信号分析、提案生成、采纳、拒绝、自动落地的全过程。
## 4. 运行模式
### 4.1 Controlled
受控自动进化:
- 主Agent可以自动记录 signal
- 可以自动生成 proposal
- 不允许自动改长期状态
- 只能在用户批准后写入 memory / prompt / controls / fast-path rules
适合生产稳态与审计要求更高的环境。
### 4.2 Autonomous
完全自我进化:
- 主Agent可以自动记录 signal
- 自动生成 proposal
- 对满足阈值的 proposal 直接自动采纳
- 自动把结果写入长期状态
- 仍保留完整日志,允许后续回滚
适合开发期快速迭代,用更高风险换更快自优化速度。
## 5. 架构
### 5.1 新增状态模型
`BossState` 中新增:
- `masterAgentEvolutionConfig`
- `masterAgentEvolutionSignals`
- `masterAgentEvolutionProposals`
- `masterAgentEvolutionRules`
- `masterAgentEvolutionRunLogs`
### 5.2 新增引擎文件
- `src/lib/master-agent-evolution.ts`
- 统一入口
- signal 归一化
- proposal 生成
- 自动采纳判断
- 规则落地
- `src/lib/master-agent-evolution-rules.ts`
- Fast Path 规则、路由偏好规则解析
- `src/lib/master-agent-evolution-projections.ts`
- 给 Web/API 返回 evolution 状态摘要
### 5.3 挂载点
第一批最小侵入挂载点:
- `replyToMasterAgentUserMessage()`
- 记录用户问题、Fast Path 命中/未命中、慢路径耗时、模型/后端实际选择
- `appendMasterAgentSystemReply()`
- 记录主Agent输出结果
- `completeMasterAgentTask()`
- 记录异步任务成功/失败、fallback、超时
- `updateProjectAgentControls()` / `updateMasterAgentPromptPolicy()` / `createUserMasterMemory()`
- 记录用户主动纠偏行为,作为 evolution signal 输入
## 6. 第一批自动进化能力
### Controlled 与 Autonomous 共用
- 记录重复问句
- 记录低价值慢路径
- 记录用户纠正模型/后端/接管设置
- 自动生成三类提案:
- 新增 Fast Path 规则
- 调整默认快模型/强模型/后端偏好
- 追加 workflow_rule / user_preference 记忆
### Controlled 专属行为
- 所有提案状态默认为 `pending_review`
- 需要用户批准后才能落地
### Autonomous 专属行为
- 当 proposal 满足“高置信度 + 低破坏性”时自动落地
- 第一批只允许自动落地:
- `memory_patch`
- `routing_preference_patch`
- `fast_path_rule`
- 不允许自动改管理员全局主提示词
## 7. 前台入口
第一批只做最小 Web 能力:
- `GET /api/v1/master-agent/evolution`
- 返回 config / pending proposals / recent run logs / effective rules
- `POST /api/v1/master-agent/evolution/config`
- 切换 `controlled` / `autonomous`
- `POST /api/v1/master-agent/evolution/proposals/[proposalId]/approve`
- `POST /api/v1/master-agent/evolution/proposals/[proposalId]/reject`
先不做复杂 UI先把数据和接口打通必要时从 `我的 > 主Agent` 进入。
## 8. 双分支策略
统一内核先落在共享提交里:
- evolution state
- evolution engine
- proposal / rule / run-log 结构
- API 与测试
然后从共享基线分两条分支:
- `codex/master-agent-controlled-evolution`
- 默认 `mode=controlled`
- 关闭自动采纳
- `codex/master-agent-autonomous-evolution`
- 默认 `mode=autonomous`
- 开启自动采纳阈值逻辑
用户先使用 autonomous 分支验证真实开发效率;一旦发现策略漂移或错误写入,可直接回退 controlled 分支。
## 9. 风险控制
- 管理员全局主提示词永远不允许 autonomous 自动改写
- 自动落地范围先限制在低风险对象
- 每次自动采纳都必须写 run log
- 所有 rule 都要带 `sourceProposalId`
- 所有 proposal 都要可拒绝、可归档、可回滚
## 10. 验证基线
- `npx tsx --test tests/master-agent-evolution*.test.ts`
- `npx tsx --test tests/master-agent-message-queue.test.ts tests/master-agent-chat-controls.test.ts`
- `npm run build`
- 线上切到 `autonomous` 后:
- 主Agent可记录进化信号
- 可自动生成并落地低风险规则
- `controlled` 分支同一套信号与提案只记录、不自动采纳