From 5c510eb61fe3266b681ebbfcc99864feca5e79c8 Mon Sep 17 00:00:00 2001 From: yibo Date: Wed, 25 Mar 2026 10:01:01 +0800 Subject: [PATCH] docs: add FDE pipeline architecture doc + update v5 architecture progress --- docs/architecture-v5.md | 38 ++++++++++++++++++++++++++++++-------- docs/system-design/21-fde-pipeline-architecture.md | 284 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 314 insertions(+), 8 deletions(-) create mode 100644 docs/system-design/21-fde-pipeline-architecture.md diff --git a/docs/architecture-v5.md b/docs/architecture-v5.md index 73c5977..ec55e6c 100644 --- a/docs/architecture-v5.md +++ b/docs/architecture-v5.md @@ -5,13 +5,16 @@ > **状态**: Phase 1-2 已完成,Phase 3 进行中 > [!IMPORTANT] -> **已确认决策**(2026-03-24) +> **已确认决策**(2026-03-24/25) > - 海马体:先关键词匹配 MVP,后加向量检索 > - 小脑:简单用 .md 步骤,复杂用 .js 脚本 > - Hunter/Digester/Evolver:由 agent-creator 创建后,成为其上级的 todo 任务 > - 运行时继承:共享基类 `packages/agent-core/base/`,修改基类所有子类立即生效 > - 定时调度:使用 Claude Code 原生 CronCreate + cron.json 持久化 > - **OKR 目标系统**:`data/goals/` 集中管理,点分层级 ID,全局可追溯 +> - **FDE 流水线**:Hunt→Digest→Evolving 三层训练架构,已经端到端验证通过 +> - **双路径产出**:元 Agent 产出同时写入 workspace/ + agents/ 两个位置 +> - **Skills 扫描注入**:buildSystemPrompt 扫描所有 .claude/skills/ 子目录 --- @@ -433,11 +436,22 @@ Task 进入 → 海马体检索 → 命中? → 小脑快速执行 ### 🔄 Phase 3: OKR 目标系统 (进行中) - [x] 设计完成: 点分层级 ID + goal.json 结构 -- [ ] Goals CRUD API (4+ 端点) -- [ ] dispatch/report 集成 goalId/nodeId -- [ ] progress 自动计算 +- [x] Goals CRUD API (GoalsService + routes) +- [x] dispatch/report 集成 goalId/nodeId +- [x] progress 自动计算 - [ ] system prompt 注入 Goal 上下文 -- [ ] 前端 OKR 看板 (可选) +- [ ] 前端 OKR 看板 + +### ✅ Phase 3.5: FDE 训练流水线 (已完成 ⭐) + +- [x] 创建元 Agent: Hunter (l3-hunt), Digester (l2-digest), Evolver (evolving) +- [x] 每个元 Agent 的 SKILL.md 泛化定义 (不硬编码领域知识) +- [x] L1/L2 依赖技能复制到各元 Agent 的 `.claude/skills/` +- [x] buildSystemPrompt 扫描所有 skills 子目录 (关键修复) +- [x] 双路径产出 (workspace/ + agents/) +- [x] CEO Agent 端到端训练: Hunt(1461行) → Digest(1593行) → Evolve(92/100) +- [x] retrain-pipeline.js 对齐新 agent 名 +- 详见: `docs/system-design/21-fde-pipeline-architecture.md` ### ⬚ Phase 4: 认知架构 (待开始) @@ -461,6 +475,9 @@ Task 进入 → 海马体检索 → 命中? → 小脑快速执行 | 7 | OKR 数据结构 | 扁平 nodes Map (O(1) 查找) | 03-24 | | 8 | OKR 进度算法 | 叶子节点完成率 | 03-24 | | 9 | plan.md 更新 | 行级匹配 + 列拆分 (兼容粗体等格式) | 03-24 | +| 10 | FDE 双路径产出 | workspace/(共享) + agents/(资产) 同时写入 | 03-24 | +| 11 | 元 Agent 依赖技能加载 | buildSystemPrompt 扫描所有 .claude/skills/ 子目录 | 03-24 | +| 12 | retrain-pipeline 对齐 | l3-hunt→hunter, l2-digest→digester, innovator-evolver→evolver | 03-25 | --- @@ -471,8 +488,13 @@ Task 进入 → 海马体检索 → 命中? → 小脑快速执行 | `packages/agent-core/AgentScaffold.js` | Agent 脚手架 (创建时模板) | | `packages/agent-core/base/` | 共享基类 (运行时继承) | | `server/routes/agent-chat.js` | 核心 API (chat, dispatch, report, CRUD) | +| `server/routes/goals.js` | OKR Goals API | +| `server/services/retrain-pipeline.js` | 旧版训练流水线 (已对齐 agent 名) | | `web/src/views/AgentChat.vue` | 统一前端 (四列布局) | -| `web/src/composables/useTheme.js` | 主题切换 | -| `data/agents/` | 所有 Agent 实例 | -| `data/goals/` | OKR 目标数据 (待实现) | +| `data/agents/hunter/` | Hunter 元 Agent (l3-hunt) | +| `data/agents/digester/` | Digester 元 Agent (l2-digest) | +| `data/agents/evolver/` | Evolver 元 Agent (evolving) | +| `data/agents/innovator/` | Innovator 编排 Agent | +| `data/goals/` | OKR 目标数据 | +| `docs/system-design/21-fde-pipeline-architecture.md` | FDE 流水线架构文档 | | `docs/claude-code-cron.md` | Claude Code 定时调度文档 | diff --git a/docs/system-design/21-fde-pipeline-architecture.md b/docs/system-design/21-fde-pipeline-architecture.md new file mode 100644 index 0000000..f62b8a9 --- /dev/null +++ b/docs/system-design/21-fde-pipeline-architecture.md @@ -0,0 +1,284 @@ +# 21. FDE Pipeline Architecture — Hunt→Digest→Evolving 训练流水线 + +> **版本**: v1.0 +> **日期**: 2026-03-24 +> **状态**: ✅ 端到端验证通过(CEO Agent 训练 92/100) + +--- + +## 一、总览 + +FDE (Hunt→Digest→Evolving) 是 LemonBoss 的 **Agent 技能训练流水线**。 +通过三个独立的元 Agent 依次执行知识猎取、数据消化、迭代进化, +最终为目标 Agent 生成达到行业标杆水平的 SKILL.md。 + +``` +[训练目标: 训练 CEO 的领导力技能] + │ + ▼ Innovator 编排 + │ + ├─ Layer 1: HUNT ──→ Hunter Agent + │ 输入: domain + keywords + │ 输出: knowhow.md + toplist.md + crawl/ + │ + ├─ Layer 2: DIGEST ──→ Digester Agent + │ 输入: hunt/ 产出 + │ 输出: benchmark_v1.md + good/bad testdata + feature_analysis.md + │ + └─ Layer 3: EVOLVE ──→ Evolver Agent + 输入: digest/ 产出 + 输出: 达标 SKILL.md (score ≥ 90) + evolve_log.md +``` + +--- + +## 二、元 Agent 职责矩阵 + +| 元 Agent | Skill | 角色 | 核心能力 | +|----------|-------|------|---------| +| **Innovator** | innovator-skill | 编排者 | FDE 流水线调度、OKR 管理 | +| **Hunter** | l3-hunt | 知识猎手 | 6-Phase 研究流程 (搜索→标杆→爬取→洞察) | +| **Digester** | l2-digest | 数据消化 | Benchmark 设计 + 数据标注 + 特征提取 | +| **Evolver** | evolving | RL 训练 | 执行→评分→分析→改写→重复 循环 | + +### 依赖技能拓扑 + +``` +Evolver ─────────────────────── (无额外依赖, 纯推理循环) +Digester ──→ l1-data-extract, l1-text-transform, l1-file-read, l1-diff-checker +Hunter ────→ l1-search-engine, l1-web-fetch, l2-web-research, + l1-data-extract, l1-text-transform, l1-file-read, l1-kv-store +``` + +所有依赖技能的 SKILL.md 必须放在元 Agent 的 `.claude/skills/` 目录下, +由 `buildSystemPrompt()` 自动扫描并注入 system prompt。 + +--- + +## 三、双路径产出规范 ⭐ + +每个元 Agent 的产出 **同时写入两个位置**: + +| 路径 | 用途 | 示例 | +|------|------|------| +| `data/workspace/{targetAgentId}/{phase}/` | 共享工作区,元 Agent 间共享 | `workspace/ceo/hunt/` | +| `data/agents/{targetAgentId}/{phase}/` | Agent 资产,归属目标 Agent | `agents/ceo/hunt/` | + +``` +data/ +├── workspace/ceo/ ← 共享 (元 Agent 读写) +│ ├── hunt/ +│ ├── digest/ +│ └── evolve/ +└── agents/ceo/ ← CEO 的资产 + ├── hunt/ ← Hunter 写入 + ├── digest/ ← Digester 写入 + ├── evolve/ ← Evolver 写入 + └── .claude/skills/main_skill/SKILL.md ← Evolver 安装最终版 +``` + +**原则**: 先写到 workspace/,再用 `cp -r` 复制到 agents/。 + +--- + +## 四、各 Layer 产出规范 + +### Layer 1: Hunt 产出 + +``` +{targetAgentId}/hunt/ +├── knowhow.md ← 方法论 + 最佳实践 + 原创洞察 +├── toplist.md ← 排行榜 + 标杆案例 + 推荐资源 +└── crawl/ ← 爬取的标杆数据 + ├── elite_01_{title}.md ← 分级: elite (score ≥ 70) + ├── elite_02_{title}.md + └── avg_01_{title}.md ← 分级: average (score < 70) +``` + +**质量标准**: +- ≥80% 核心子问题覆盖 +- ≥10 独立信源,关键数据 ≥2 交叉验证 +- ≥3 条原创洞察 +- ≥1500 字 + +### Layer 2: Digest 产出 + +``` +{targetAgentId}/digest/ +├── benchmark_v1.md ← 评分标准 (5-8 维度 + Rubric) +├── knowhow.md ← 从 hunt 继承 (可补充) +├── feature_analysis.md ← Good/Bad 特征分析 +├── industry_baseline.md ← 行业基线 +├── dataset.json ← 结构化数据集 +├── good_testdata/ +│ ├── good_01_{title}.md ← score ≥ 70 +│ └── ... +└── bad_testdata/ + ├── bad_01_{title}.md ← score < 70 + └── ... +``` + +**Benchmark 必须包含**: +- 5-8 个评分维度 (权重和 = 100%) +- 每维度 Detailed Rubric (5 级) +- pass_score / industry_avg_score / elite_avg_score + +### Layer 3: Evolve 产出 + +``` +{targetAgentId}/evolve/ +├── evolve_log.md ← 完整训练日志 +├── v1/ +│ ├── skill.md ← 版本快照 +│ ├── result.md ← 执行输出 +│ └── score.json ← 维度评分 +├── v2/ +│ └── ... +└── v{N}/ ← 达标版本 +``` + +**停止条件**: +- score ≥ 90 → 达标 ✅ +- iterations ≥ maxIterations → 超时 ⚠️ +- 连续 3 次分数变化 < 2 → 停滞 ⚠️ + +--- + +## 五、Dispatch 协议 + +### Innovator → Hunter + +```bash +curl -s -X POST http://localhost:3000/api/agent/task/dispatch \ + -H "Content-Type: application/json" \ + -d '{ + "from": "innovator", + "to": "hunter", + "task": "对 CEO 核心能力进行知识猎取。skillName: ceo_leadership, targetAgentId: ceo, domain: CEO战略管理与领导力, keywords: [CEO战略规划, OKR目标管理]。按 l3-hunt skill 执行。产出同时写入 ../../workspace/ceo/hunt/ 和 ../ceo/hunt/。", + "priority": "P0", + "autoExecute": true + }' +``` + +### Innovator → Digester + +```bash +curl -s -X POST http://localhost:3000/api/agent/task/dispatch \ + -H "Content-Type: application/json" \ + -d '{ + "from": "innovator", + "to": "digester", + "task": "消化 CEO 调研数据。skillName: ceo_leadership, targetAgentId: ceo。输入: ../../workspace/ceo/hunt/。按 l2-digest skill 执行。产出同时写入 ../../workspace/ceo/digest/ 和 ../ceo/digest/。", + "priority": "P0", + "autoExecute": true + }' +``` + +### Innovator → Evolver + +```bash +curl -s -X POST http://localhost:3000/api/agent/task/dispatch \ + -H "Content-Type: application/json" \ + -d '{ + "from": "innovator", + "to": "evolver", + "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。", + "priority": "P0", + "autoExecute": true + }' +``` + +--- + +## 六、关键代码修复 + +### buildSystemPrompt 扫描所有 skills 子目录 + +**问题**: `server/routes/agent-chat.js` 的 `buildSystemPrompt()` 函数只加载了 +`main_skill/SKILL.md`,没有扫描其他 skill 子目录。导致 Hunter 等元 Agent +看不到依赖技能 (l1-search-engine 等) 的定义。 + +**修复** (line 302+): +```javascript +// ── 扫描所有 skill 子目录的 SKILL.md ── +const skillsDir = path.join(agentDir, '.claude', 'skills'); +if (fs.existsSync(skillsDir)) { + const entries = fs.readdirSync(skillsDir, { withFileTypes: true }); + for (const entry of entries) { + if (!entry.isDirectory() || entry.name === 'main_skill') continue; + const skillMdPath = path.join(skillsDir, entry.name, 'SKILL.md'); + if (fs.existsSync(skillMdPath)) { + const skillContent = fs.readFileSync(skillMdPath, 'utf-8').trim(); + if (skillContent) { + parts.push(`---\n\n## 依赖技能: ${entry.name}\n\n${skillContent}`); + } + } + } +} +``` + +**效果**: Hunter prompt 从 9290 chars → 22263 chars(注入了所有 L1/L2 技能定义)。 + +--- + +## 七、验证结果 — CEO Agent 训练记录 + +### 7.1 训练时间线 + +| 时间 | 阶段 | Task ID | 耗时 | +|------|------|---------|------| +| 17:49 | Hunt | T-mn4fnkum | ~10 min | +| 23:25 | Digest | T-mn4rocqy | ~20 min | +| 23:49 | Evolve | T-mn4sin8i | ~15 min | + +### 7.2 产出统计 + +| Layer | 文件数 | 总行数 | 关键产出 | +|-------|--------|--------|---------| +| **Hunt** | 8 | 1,461 | knowhow 420行、toplist 231行、6 crawl 样本 | +| **Digest** | 11 | 1,593 | benchmark 255行、5 good/1 bad testdata | +| **Evolve** | 3 | — | v2 (87分) → v3 (92分) | + +### 7.3 Evolve 迭代记录 + +| 版本 | 总分 | 战略(20%) | OKR(20%) | 可操作(15%) | 案例(15%) | 理论(15%) | 适用(15%) | +|------|------|-----------|----------|-------------|-----------|-----------|-----------| +| v1 | **40** ❌ | 35 | 45 | 60 | 20 | 30 | 50 | +| v2 | **87** ❌ | 90 | 90 | 85 | 85 | 85 | 85 | +| v3 | **92** ✅ | 95 | 95 | 92 | 90 | 90 | 88 | + +### 7.4 最终 CEO SKILL.md + +```yaml +name: ceo_leadership +version: 2.3.0 +benchmark_score: 92 +``` + +--- + +## 八、架构决策记录 + +| # | 决策 | 原因 | 日期 | +|---|------|------|------| +| 1 | 双路径产出 (workspace + agents) | 元 Agent 间共享 + 目标 Agent 资产归属 | 03-24 | +| 2 | 依赖技能放 `.claude/skills/` | Claude CLI 自动发现,buildSystemPrompt 自动注入 | 03-24 | +| 3 | 先写 workspace 再 cp agents | workspace 为主源,agents 为副本 | 03-24 | +| 4 | Evolver 安装最终 SKILL.md | 训练完成后直接更新目标 Agent 的核心技能 | 03-24 | +| 5 | retrain-pipeline 对齐 agent 名 | `l3-hunt`→`hunter`, `l2-digest`→`digester`, `innovator-evolver`→`evolver` | 03-25 | + +--- + +## 九、文件路径索引 + +| 文件 | 用途 | +|------|------| +| `data/agents/hunter/.claude/skills/main_skill/SKILL.md` | Hunter 主技能 (l3-hunt) | +| `data/agents/digester/.claude/skills/main_skill/SKILL.md` | Digester 主技能 (l2-digest) | +| `data/agents/evolver/.claude/skills/main_skill/SKILL.md` | Evolver 主技能 (evolving) | +| `data/agents/innovator/.claude/skills/main_skill/SKILL.md` | Innovator 编排技能 | +| `data/agents/hunter/.claude/skills/l1-*/SKILL.md` | Hunter 依赖的 L1 技能 | +| `data/agents/hunter/.claude/skills/l2-*/SKILL.md` | Hunter 依赖的 L2 技能 | +| `server/routes/agent-chat.js:buildSystemPrompt()` | System Prompt 构建 (含 skills 扫描) | +| `server/services/retrain-pipeline.js` | 旧版训练流水线 (已对齐 agent 名) | +| `data/agents/innovator/docs/` | 所有 L1/L2/meta skill 范本 | -- libgit2 0.21.4