199 lines
5.6 KiB
Markdown
199 lines
5.6 KiB
Markdown
# 主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` 分支同一套信号与提案只记录、不自动采纳
|