Commit 5c510eb61fe3266b681ebbfcc99864feca5e79c8
1 parent
63a96bf3
docs: add FDE pipeline architecture doc + update v5 architecture progress
- New: docs/system-design/21-fde-pipeline-architecture.md Complete FDE training pipeline documentation with: - Triple-layer architecture (Hunt→Digest→Evolve) - Dual-path output convention (workspace + agents) - Dispatch protocol examples - buildSystemPrompt skills scanning fix details - CEO training verification results (92/100) - Update: architecture-v5.md - Phase 3 OKR checkboxes updated (Goals API done) - Phase 3.5 FDE added as completed milestone - 3 new architecture decisions (#10-12) - File path index expanded with meta agents
Showing
2 changed files
with
314 additions
and
8 deletions
docs/architecture-v5.md
| ... | ... | @@ -5,13 +5,16 @@ |
| 5 | 5 | > **状态**: Phase 1-2 已完成,Phase 3 进行中 |
| 6 | 6 | |
| 7 | 7 | > [!IMPORTANT] |
| 8 | -> **已确认决策**(2026-03-24) | |
| 8 | +> **已确认决策**(2026-03-24/25) | |
| 9 | 9 | > - 海马体:先关键词匹配 MVP,后加向量检索 |
| 10 | 10 | > - 小脑:简单用 .md 步骤,复杂用 .js 脚本 |
| 11 | 11 | > - Hunter/Digester/Evolver:由 agent-creator 创建后,成为其上级的 todo 任务 |
| 12 | 12 | > - 运行时继承:共享基类 `packages/agent-core/base/`,修改基类所有子类立即生效 |
| 13 | 13 | > - 定时调度:使用 Claude Code 原生 CronCreate + cron.json 持久化 |
| 14 | 14 | > - **OKR 目标系统**:`data/goals/` 集中管理,点分层级 ID,全局可追溯 |
| 15 | +> - **FDE 流水线**:Hunt→Digest→Evolving 三层训练架构,已经端到端验证通过 | |
| 16 | +> - **双路径产出**:元 Agent 产出同时写入 workspace/ + agents/ 两个位置 | |
| 17 | +> - **Skills 扫描注入**:buildSystemPrompt 扫描所有 .claude/skills/ 子目录 | |
| 15 | 18 | |
| 16 | 19 | --- |
| 17 | 20 | |
| ... | ... | @@ -433,11 +436,22 @@ Task 进入 → 海马体检索 → 命中? → 小脑快速执行 |
| 433 | 436 | ### 🔄 Phase 3: OKR 目标系统 (进行中) |
| 434 | 437 | |
| 435 | 438 | - [x] 设计完成: 点分层级 ID + goal.json 结构 |
| 436 | -- [ ] Goals CRUD API (4+ 端点) | |
| 437 | -- [ ] dispatch/report 集成 goalId/nodeId | |
| 438 | -- [ ] progress 自动计算 | |
| 439 | +- [x] Goals CRUD API (GoalsService + routes) | |
| 440 | +- [x] dispatch/report 集成 goalId/nodeId | |
| 441 | +- [x] progress 自动计算 | |
| 439 | 442 | - [ ] system prompt 注入 Goal 上下文 |
| 440 | -- [ ] 前端 OKR 看板 (可选) | |
| 443 | +- [ ] 前端 OKR 看板 | |
| 444 | + | |
| 445 | +### ✅ Phase 3.5: FDE 训练流水线 (已完成 ⭐) | |
| 446 | + | |
| 447 | +- [x] 创建元 Agent: Hunter (l3-hunt), Digester (l2-digest), Evolver (evolving) | |
| 448 | +- [x] 每个元 Agent 的 SKILL.md 泛化定义 (不硬编码领域知识) | |
| 449 | +- [x] L1/L2 依赖技能复制到各元 Agent 的 `.claude/skills/` | |
| 450 | +- [x] buildSystemPrompt 扫描所有 skills 子目录 (关键修复) | |
| 451 | +- [x] 双路径产出 (workspace/ + agents/) | |
| 452 | +- [x] CEO Agent 端到端训练: Hunt(1461行) → Digest(1593行) → Evolve(92/100) | |
| 453 | +- [x] retrain-pipeline.js 对齐新 agent 名 | |
| 454 | +- 详见: `docs/system-design/21-fde-pipeline-architecture.md` | |
| 441 | 455 | |
| 442 | 456 | ### ⬚ Phase 4: 认知架构 (待开始) |
| 443 | 457 | |
| ... | ... | @@ -461,6 +475,9 @@ Task 进入 → 海马体检索 → 命中? → 小脑快速执行 |
| 461 | 475 | | 7 | OKR 数据结构 | 扁平 nodes Map (O(1) 查找) | 03-24 | |
| 462 | 476 | | 8 | OKR 进度算法 | 叶子节点完成率 | 03-24 | |
| 463 | 477 | | 9 | plan.md 更新 | 行级匹配 + 列拆分 (兼容粗体等格式) | 03-24 | |
| 478 | +| 10 | FDE 双路径产出 | workspace/(共享) + agents/(资产) 同时写入 | 03-24 | | |
| 479 | +| 11 | 元 Agent 依赖技能加载 | buildSystemPrompt 扫描所有 .claude/skills/ 子目录 | 03-24 | | |
| 480 | +| 12 | retrain-pipeline 对齐 | l3-hunt→hunter, l2-digest→digester, innovator-evolver→evolver | 03-25 | | |
| 464 | 481 | |
| 465 | 482 | --- |
| 466 | 483 | |
| ... | ... | @@ -471,8 +488,13 @@ Task 进入 → 海马体检索 → 命中? → 小脑快速执行 |
| 471 | 488 | | `packages/agent-core/AgentScaffold.js` | Agent 脚手架 (创建时模板) | |
| 472 | 489 | | `packages/agent-core/base/` | 共享基类 (运行时继承) | |
| 473 | 490 | | `server/routes/agent-chat.js` | 核心 API (chat, dispatch, report, CRUD) | |
| 491 | +| `server/routes/goals.js` | OKR Goals API | | |
| 492 | +| `server/services/retrain-pipeline.js` | 旧版训练流水线 (已对齐 agent 名) | | |
| 474 | 493 | | `web/src/views/AgentChat.vue` | 统一前端 (四列布局) | |
| 475 | -| `web/src/composables/useTheme.js` | 主题切换 | | |
| 476 | -| `data/agents/` | 所有 Agent 实例 | | |
| 477 | -| `data/goals/` | OKR 目标数据 (待实现) | | |
| 494 | +| `data/agents/hunter/` | Hunter 元 Agent (l3-hunt) | | |
| 495 | +| `data/agents/digester/` | Digester 元 Agent (l2-digest) | | |
| 496 | +| `data/agents/evolver/` | Evolver 元 Agent (evolving) | | |
| 497 | +| `data/agents/innovator/` | Innovator 编排 Agent | | |
| 498 | +| `data/goals/` | OKR 目标数据 | | |
| 499 | +| `docs/system-design/21-fde-pipeline-architecture.md` | FDE 流水线架构文档 | | |
| 478 | 500 | | `docs/claude-code-cron.md` | Claude Code 定时调度文档 | | ... | ... |
docs/system-design/21-fde-pipeline-architecture.md
0 → 100644
| 1 | +# 21. FDE Pipeline Architecture — Hunt→Digest→Evolving 训练流水线 | |
| 2 | + | |
| 3 | +> **版本**: v1.0 | |
| 4 | +> **日期**: 2026-03-24 | |
| 5 | +> **状态**: ✅ 端到端验证通过(CEO Agent 训练 92/100) | |
| 6 | + | |
| 7 | +--- | |
| 8 | + | |
| 9 | +## 一、总览 | |
| 10 | + | |
| 11 | +FDE (Hunt→Digest→Evolving) 是 LemonBoss 的 **Agent 技能训练流水线**。 | |
| 12 | +通过三个独立的元 Agent 依次执行知识猎取、数据消化、迭代进化, | |
| 13 | +最终为目标 Agent 生成达到行业标杆水平的 SKILL.md。 | |
| 14 | + | |
| 15 | +``` | |
| 16 | +[训练目标: 训练 CEO 的领导力技能] | |
| 17 | + │ | |
| 18 | + ▼ Innovator 编排 | |
| 19 | + │ | |
| 20 | + ├─ Layer 1: HUNT ──→ Hunter Agent | |
| 21 | + │ 输入: domain + keywords | |
| 22 | + │ 输出: knowhow.md + toplist.md + crawl/ | |
| 23 | + │ | |
| 24 | + ├─ Layer 2: DIGEST ──→ Digester Agent | |
| 25 | + │ 输入: hunt/ 产出 | |
| 26 | + │ 输出: benchmark_v1.md + good/bad testdata + feature_analysis.md | |
| 27 | + │ | |
| 28 | + └─ Layer 3: EVOLVE ──→ Evolver Agent | |
| 29 | + 输入: digest/ 产出 | |
| 30 | + 输出: 达标 SKILL.md (score ≥ 90) + evolve_log.md | |
| 31 | +``` | |
| 32 | + | |
| 33 | +--- | |
| 34 | + | |
| 35 | +## 二、元 Agent 职责矩阵 | |
| 36 | + | |
| 37 | +| 元 Agent | Skill | 角色 | 核心能力 | | |
| 38 | +|----------|-------|------|---------| | |
| 39 | +| **Innovator** | innovator-skill | 编排者 | FDE 流水线调度、OKR 管理 | | |
| 40 | +| **Hunter** | l3-hunt | 知识猎手 | 6-Phase 研究流程 (搜索→标杆→爬取→洞察) | | |
| 41 | +| **Digester** | l2-digest | 数据消化 | Benchmark 设计 + 数据标注 + 特征提取 | | |
| 42 | +| **Evolver** | evolving | RL 训练 | 执行→评分→分析→改写→重复 循环 | | |
| 43 | + | |
| 44 | +### 依赖技能拓扑 | |
| 45 | + | |
| 46 | +``` | |
| 47 | +Evolver ─────────────────────── (无额外依赖, 纯推理循环) | |
| 48 | +Digester ──→ l1-data-extract, l1-text-transform, l1-file-read, l1-diff-checker | |
| 49 | +Hunter ────→ l1-search-engine, l1-web-fetch, l2-web-research, | |
| 50 | + l1-data-extract, l1-text-transform, l1-file-read, l1-kv-store | |
| 51 | +``` | |
| 52 | + | |
| 53 | +所有依赖技能的 SKILL.md 必须放在元 Agent 的 `.claude/skills/` 目录下, | |
| 54 | +由 `buildSystemPrompt()` 自动扫描并注入 system prompt。 | |
| 55 | + | |
| 56 | +--- | |
| 57 | + | |
| 58 | +## 三、双路径产出规范 ⭐ | |
| 59 | + | |
| 60 | +每个元 Agent 的产出 **同时写入两个位置**: | |
| 61 | + | |
| 62 | +| 路径 | 用途 | 示例 | | |
| 63 | +|------|------|------| | |
| 64 | +| `data/workspace/{targetAgentId}/{phase}/` | 共享工作区,元 Agent 间共享 | `workspace/ceo/hunt/` | | |
| 65 | +| `data/agents/{targetAgentId}/{phase}/` | Agent 资产,归属目标 Agent | `agents/ceo/hunt/` | | |
| 66 | + | |
| 67 | +``` | |
| 68 | +data/ | |
| 69 | +├── workspace/ceo/ ← 共享 (元 Agent 读写) | |
| 70 | +│ ├── hunt/ | |
| 71 | +│ ├── digest/ | |
| 72 | +│ └── evolve/ | |
| 73 | +└── agents/ceo/ ← CEO 的资产 | |
| 74 | + ├── hunt/ ← Hunter 写入 | |
| 75 | + ├── digest/ ← Digester 写入 | |
| 76 | + ├── evolve/ ← Evolver 写入 | |
| 77 | + └── .claude/skills/main_skill/SKILL.md ← Evolver 安装最终版 | |
| 78 | +``` | |
| 79 | + | |
| 80 | +**原则**: 先写到 workspace/,再用 `cp -r` 复制到 agents/。 | |
| 81 | + | |
| 82 | +--- | |
| 83 | + | |
| 84 | +## 四、各 Layer 产出规范 | |
| 85 | + | |
| 86 | +### Layer 1: Hunt 产出 | |
| 87 | + | |
| 88 | +``` | |
| 89 | +{targetAgentId}/hunt/ | |
| 90 | +├── knowhow.md ← 方法论 + 最佳实践 + 原创洞察 | |
| 91 | +├── toplist.md ← 排行榜 + 标杆案例 + 推荐资源 | |
| 92 | +└── crawl/ ← 爬取的标杆数据 | |
| 93 | + ├── elite_01_{title}.md ← 分级: elite (score ≥ 70) | |
| 94 | + ├── elite_02_{title}.md | |
| 95 | + └── avg_01_{title}.md ← 分级: average (score < 70) | |
| 96 | +``` | |
| 97 | + | |
| 98 | +**质量标准**: | |
| 99 | +- ≥80% 核心子问题覆盖 | |
| 100 | +- ≥10 独立信源,关键数据 ≥2 交叉验证 | |
| 101 | +- ≥3 条原创洞察 | |
| 102 | +- ≥1500 字 | |
| 103 | + | |
| 104 | +### Layer 2: Digest 产出 | |
| 105 | + | |
| 106 | +``` | |
| 107 | +{targetAgentId}/digest/ | |
| 108 | +├── benchmark_v1.md ← 评分标准 (5-8 维度 + Rubric) | |
| 109 | +├── knowhow.md ← 从 hunt 继承 (可补充) | |
| 110 | +├── feature_analysis.md ← Good/Bad 特征分析 | |
| 111 | +├── industry_baseline.md ← 行业基线 | |
| 112 | +├── dataset.json ← 结构化数据集 | |
| 113 | +├── good_testdata/ | |
| 114 | +│ ├── good_01_{title}.md ← score ≥ 70 | |
| 115 | +│ └── ... | |
| 116 | +└── bad_testdata/ | |
| 117 | + ├── bad_01_{title}.md ← score < 70 | |
| 118 | + └── ... | |
| 119 | +``` | |
| 120 | + | |
| 121 | +**Benchmark 必须包含**: | |
| 122 | +- 5-8 个评分维度 (权重和 = 100%) | |
| 123 | +- 每维度 Detailed Rubric (5 级) | |
| 124 | +- pass_score / industry_avg_score / elite_avg_score | |
| 125 | + | |
| 126 | +### Layer 3: Evolve 产出 | |
| 127 | + | |
| 128 | +``` | |
| 129 | +{targetAgentId}/evolve/ | |
| 130 | +├── evolve_log.md ← 完整训练日志 | |
| 131 | +├── v1/ | |
| 132 | +│ ├── skill.md ← 版本快照 | |
| 133 | +│ ├── result.md ← 执行输出 | |
| 134 | +│ └── score.json ← 维度评分 | |
| 135 | +├── v2/ | |
| 136 | +│ └── ... | |
| 137 | +└── v{N}/ ← 达标版本 | |
| 138 | +``` | |
| 139 | + | |
| 140 | +**停止条件**: | |
| 141 | +- score ≥ 90 → 达标 ✅ | |
| 142 | +- iterations ≥ maxIterations → 超时 ⚠️ | |
| 143 | +- 连续 3 次分数变化 < 2 → 停滞 ⚠️ | |
| 144 | + | |
| 145 | +--- | |
| 146 | + | |
| 147 | +## 五、Dispatch 协议 | |
| 148 | + | |
| 149 | +### Innovator → Hunter | |
| 150 | + | |
| 151 | +```bash | |
| 152 | +curl -s -X POST http://localhost:3000/api/agent/task/dispatch \ | |
| 153 | + -H "Content-Type: application/json" \ | |
| 154 | + -d '{ | |
| 155 | + "from": "innovator", | |
| 156 | + "to": "hunter", | |
| 157 | + "task": "对 CEO 核心能力进行知识猎取。skillName: ceo_leadership, targetAgentId: ceo, domain: CEO战略管理与领导力, keywords: [CEO战略规划, OKR目标管理]。按 l3-hunt skill 执行。产出同时写入 ../../workspace/ceo/hunt/ 和 ../ceo/hunt/。", | |
| 158 | + "priority": "P0", | |
| 159 | + "autoExecute": true | |
| 160 | + }' | |
| 161 | +``` | |
| 162 | + | |
| 163 | +### Innovator → Digester | |
| 164 | + | |
| 165 | +```bash | |
| 166 | +curl -s -X POST http://localhost:3000/api/agent/task/dispatch \ | |
| 167 | + -H "Content-Type: application/json" \ | |
| 168 | + -d '{ | |
| 169 | + "from": "innovator", | |
| 170 | + "to": "digester", | |
| 171 | + "task": "消化 CEO 调研数据。skillName: ceo_leadership, targetAgentId: ceo。输入: ../../workspace/ceo/hunt/。按 l2-digest skill 执行。产出同时写入 ../../workspace/ceo/digest/ 和 ../ceo/digest/。", | |
| 172 | + "priority": "P0", | |
| 173 | + "autoExecute": true | |
| 174 | + }' | |
| 175 | +``` | |
| 176 | + | |
| 177 | +### Innovator → Evolver | |
| 178 | + | |
| 179 | +```bash | |
| 180 | +curl -s -X POST http://localhost:3000/api/agent/task/dispatch \ | |
| 181 | + -H "Content-Type: application/json" \ | |
| 182 | + -d '{ | |
| 183 | + "from": "innovator", | |
| 184 | + "to": "evolver", | |
| 185 | + "task": "训练 CEO 的 ceo_leadership 技能。targetAgentId: ceo。输入: ../../workspace/ceo/digest/。按 evolving skill 执行 Small Loop。passThreshold: 90, maxIterations: 5。产出同时写入 ../../workspace/ceo/evolve/ 和 ../ceo/evolve/。训练完成后安装到 ../ceo/.claude/skills/main_skill/SKILL.md。", | |
| 186 | + "priority": "P0", | |
| 187 | + "autoExecute": true | |
| 188 | + }' | |
| 189 | +``` | |
| 190 | + | |
| 191 | +--- | |
| 192 | + | |
| 193 | +## 六、关键代码修复 | |
| 194 | + | |
| 195 | +### buildSystemPrompt 扫描所有 skills 子目录 | |
| 196 | + | |
| 197 | +**问题**: `server/routes/agent-chat.js` 的 `buildSystemPrompt()` 函数只加载了 | |
| 198 | +`main_skill/SKILL.md`,没有扫描其他 skill 子目录。导致 Hunter 等元 Agent | |
| 199 | +看不到依赖技能 (l1-search-engine 等) 的定义。 | |
| 200 | + | |
| 201 | +**修复** (line 302+): | |
| 202 | +```javascript | |
| 203 | +// ── 扫描所有 skill 子目录的 SKILL.md ── | |
| 204 | +const skillsDir = path.join(agentDir, '.claude', 'skills'); | |
| 205 | +if (fs.existsSync(skillsDir)) { | |
| 206 | + const entries = fs.readdirSync(skillsDir, { withFileTypes: true }); | |
| 207 | + for (const entry of entries) { | |
| 208 | + if (!entry.isDirectory() || entry.name === 'main_skill') continue; | |
| 209 | + const skillMdPath = path.join(skillsDir, entry.name, 'SKILL.md'); | |
| 210 | + if (fs.existsSync(skillMdPath)) { | |
| 211 | + const skillContent = fs.readFileSync(skillMdPath, 'utf-8').trim(); | |
| 212 | + if (skillContent) { | |
| 213 | + parts.push(`---\n\n## 依赖技能: ${entry.name}\n\n${skillContent}`); | |
| 214 | + } | |
| 215 | + } | |
| 216 | + } | |
| 217 | +} | |
| 218 | +``` | |
| 219 | + | |
| 220 | +**效果**: Hunter prompt 从 9290 chars → 22263 chars(注入了所有 L1/L2 技能定义)。 | |
| 221 | + | |
| 222 | +--- | |
| 223 | + | |
| 224 | +## 七、验证结果 — CEO Agent 训练记录 | |
| 225 | + | |
| 226 | +### 7.1 训练时间线 | |
| 227 | + | |
| 228 | +| 时间 | 阶段 | Task ID | 耗时 | | |
| 229 | +|------|------|---------|------| | |
| 230 | +| 17:49 | Hunt | T-mn4fnkum | ~10 min | | |
| 231 | +| 23:25 | Digest | T-mn4rocqy | ~20 min | | |
| 232 | +| 23:49 | Evolve | T-mn4sin8i | ~15 min | | |
| 233 | + | |
| 234 | +### 7.2 产出统计 | |
| 235 | + | |
| 236 | +| Layer | 文件数 | 总行数 | 关键产出 | | |
| 237 | +|-------|--------|--------|---------| | |
| 238 | +| **Hunt** | 8 | 1,461 | knowhow 420行、toplist 231行、6 crawl 样本 | | |
| 239 | +| **Digest** | 11 | 1,593 | benchmark 255行、5 good/1 bad testdata | | |
| 240 | +| **Evolve** | 3 | — | v2 (87分) → v3 (92分) | | |
| 241 | + | |
| 242 | +### 7.3 Evolve 迭代记录 | |
| 243 | + | |
| 244 | +| 版本 | 总分 | 战略(20%) | OKR(20%) | 可操作(15%) | 案例(15%) | 理论(15%) | 适用(15%) | | |
| 245 | +|------|------|-----------|----------|-------------|-----------|-----------|-----------| | |
| 246 | +| v1 | **40** ❌ | 35 | 45 | 60 | 20 | 30 | 50 | | |
| 247 | +| v2 | **87** ❌ | 90 | 90 | 85 | 85 | 85 | 85 | | |
| 248 | +| v3 | **92** ✅ | 95 | 95 | 92 | 90 | 90 | 88 | | |
| 249 | + | |
| 250 | +### 7.4 最终 CEO SKILL.md | |
| 251 | + | |
| 252 | +```yaml | |
| 253 | +name: ceo_leadership | |
| 254 | +version: 2.3.0 | |
| 255 | +benchmark_score: 92 | |
| 256 | +``` | |
| 257 | + | |
| 258 | +--- | |
| 259 | + | |
| 260 | +## 八、架构决策记录 | |
| 261 | + | |
| 262 | +| # | 决策 | 原因 | 日期 | | |
| 263 | +|---|------|------|------| | |
| 264 | +| 1 | 双路径产出 (workspace + agents) | 元 Agent 间共享 + 目标 Agent 资产归属 | 03-24 | | |
| 265 | +| 2 | 依赖技能放 `.claude/skills/` | Claude CLI 自动发现,buildSystemPrompt 自动注入 | 03-24 | | |
| 266 | +| 3 | 先写 workspace 再 cp agents | workspace 为主源,agents 为副本 | 03-24 | | |
| 267 | +| 4 | Evolver 安装最终 SKILL.md | 训练完成后直接更新目标 Agent 的核心技能 | 03-24 | | |
| 268 | +| 5 | retrain-pipeline 对齐 agent 名 | `l3-hunt`→`hunter`, `l2-digest`→`digester`, `innovator-evolver`→`evolver` | 03-25 | | |
| 269 | + | |
| 270 | +--- | |
| 271 | + | |
| 272 | +## 九、文件路径索引 | |
| 273 | + | |
| 274 | +| 文件 | 用途 | | |
| 275 | +|------|------| | |
| 276 | +| `data/agents/hunter/.claude/skills/main_skill/SKILL.md` | Hunter 主技能 (l3-hunt) | | |
| 277 | +| `data/agents/digester/.claude/skills/main_skill/SKILL.md` | Digester 主技能 (l2-digest) | | |
| 278 | +| `data/agents/evolver/.claude/skills/main_skill/SKILL.md` | Evolver 主技能 (evolving) | | |
| 279 | +| `data/agents/innovator/.claude/skills/main_skill/SKILL.md` | Innovator 编排技能 | | |
| 280 | +| `data/agents/hunter/.claude/skills/l1-*/SKILL.md` | Hunter 依赖的 L1 技能 | | |
| 281 | +| `data/agents/hunter/.claude/skills/l2-*/SKILL.md` | Hunter 依赖的 L2 技能 | | |
| 282 | +| `server/routes/agent-chat.js:buildSystemPrompt()` | System Prompt 构建 (含 skills 扫描) | | |
| 283 | +| `server/services/retrain-pipeline.js` | 旧版训练流水线 (已对齐 agent 名) | | |
| 284 | +| `data/agents/innovator/docs/` | 所有 L1/L2/meta skill 范本 | | ... | ... |