Commit 5c510eb61fe3266b681ebbfcc99864feca5e79c8

Authored by yibo
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
docs/architecture-v5.md
@@ -5,13 +5,16 @@ @@ -5,13 +5,16 @@
5 > **状态**: Phase 1-2 已完成,Phase 3 进行中 5 > **状态**: Phase 1-2 已完成,Phase 3 进行中
6 6
7 > [!IMPORTANT] 7 > [!IMPORTANT]
8 -> **已确认决策**(2026-03-24) 8 +> **已确认决策**(2026-03-24/25)
9 > - 海马体:先关键词匹配 MVP,后加向量检索 9 > - 海马体:先关键词匹配 MVP,后加向量检索
10 > - 小脑:简单用 .md 步骤,复杂用 .js 脚本 10 > - 小脑:简单用 .md 步骤,复杂用 .js 脚本
11 > - Hunter/Digester/Evolver:由 agent-creator 创建后,成为其上级的 todo 任务 11 > - Hunter/Digester/Evolver:由 agent-creator 创建后,成为其上级的 todo 任务
12 > - 运行时继承:共享基类 `packages/agent-core/base/`,修改基类所有子类立即生效 12 > - 运行时继承:共享基类 `packages/agent-core/base/`,修改基类所有子类立即生效
13 > - 定时调度:使用 Claude Code 原生 CronCreate + cron.json 持久化 13 > - 定时调度:使用 Claude Code 原生 CronCreate + cron.json 持久化
14 > - **OKR 目标系统**:`data/goals/` 集中管理,点分层级 ID,全局可追溯 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,11 +436,22 @@ Task 进入 → 海马体检索 → 命中? → 小脑快速执行
433 ### 🔄 Phase 3: OKR 目标系统 (进行中) 436 ### 🔄 Phase 3: OKR 目标系统 (进行中)
434 437
435 - [x] 设计完成: 点分层级 ID + goal.json 结构 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 - [ ] system prompt 注入 Goal 上下文 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 ### ⬚ Phase 4: 认知架构 (待开始) 456 ### ⬚ Phase 4: 认知架构 (待开始)
443 457
@@ -461,6 +475,9 @@ Task 进入 → 海马体检索 → 命中? → 小脑快速执行 @@ -461,6 +475,9 @@ Task 进入 → 海马体检索 → 命中? → 小脑快速执行
461 | 7 | OKR 数据结构 | 扁平 nodes Map (O(1) 查找) | 03-24 | 475 | 7 | OKR 数据结构 | 扁平 nodes Map (O(1) 查找) | 03-24 |
462 | 8 | OKR 进度算法 | 叶子节点完成率 | 03-24 | 476 | 8 | OKR 进度算法 | 叶子节点完成率 | 03-24 |
463 | 9 | plan.md 更新 | 行级匹配 + 列拆分 (兼容粗体等格式) | 03-24 | 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,8 +488,13 @@ Task 进入 → 海马体检索 → 命中? → 小脑快速执行
471 | `packages/agent-core/AgentScaffold.js` | Agent 脚手架 (创建时模板) | 488 | `packages/agent-core/AgentScaffold.js` | Agent 脚手架 (创建时模板) |
472 | `packages/agent-core/base/` | 共享基类 (运行时继承) | 489 | `packages/agent-core/base/` | 共享基类 (运行时继承) |
473 | `server/routes/agent-chat.js` | 核心 API (chat, dispatch, report, CRUD) | 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 | `web/src/views/AgentChat.vue` | 统一前端 (四列布局) | 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 | `docs/claude-code-cron.md` | Claude Code 定时调度文档 | 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 范本 |