Commit cd6f294016eb6e25c437406100b4a3f00f8bac10
1 parent
5f1e1efd
docs: 已完成阶段文档归档到 done/,README 索引补全
按 docs/README.md 既有约定(done/ 放「已实现/当前有效」),把两份已落地的 阶段设计文档移入 done/system-design/: - 27-p1-virtual-reference.md P1 虚拟引用寻址,commit 226489d - 27-p2-org-graph.md P2 Org Graph,70a4727 + f20d0d8,真实建公司端到端验证过 用 git mv 保留历史(R098 / R087)。移动断掉的 33 处相对链接已全部修复: moved 文件内的出向链接改 ../../todo/system-design/,todo/ 下 6 个文件的入向链接 改 ../../done/system-design/。全 docs/ 扫描无断链。 README 此前严重过时——只列了 2 份 27 文档,实际已有 11 份。本次补全 todo/ 表格, 每份标注状态与作用(总纲 / 需求源头 / 命名规范 / 端到端 / 参考场景 / P3+P4 已实现 / 验收契约 / P4 设计中),并在 done/ 表格补上 P1、P2 两行。 ■ 刻意没有移动 27-p3-p4-work-graph-console.md 它虽然已实现(c3abf4a),但文档正被另一进程持续修改(工作区 M 状态)。 移动会打断它的编辑路径,等它收尾后再归档。 ■ 三份文件的链接修复留在工作区未提交 27-naming-conventions.md / 27-p3-p4-work-graph-console.md / 27-requirement.md 里,我的链接修复与另一进程的在途编辑混在同一文件中,单独拆分风险大于收益。 工作区内容是正确的(链接已指向新路径),会随它下次提交一并带上。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Showing
6 changed files
with
47 additions
and
37 deletions
docs/README.md
| @@ -8,7 +8,7 @@ | @@ -8,7 +8,7 @@ | ||
| 8 | 8 | ||
| 9 | 判断依据:文档正文的显式「状态」标记(✅ 已完成 / 已实现 vs 📝 设计中 / 未实现)、未勾选的 checklist,以及与代码库实际实现的交叉核对(见各条目备注)。 | 9 | 判断依据:文档正文的显式「状态」标记(✅ 已完成 / 已实现 vs 📝 设计中 / 未实现)、未勾选的 checklist,以及与代码库实际实现的交叉核对(见各条目备注)。 |
| 10 | 10 | ||
| 11 | -> **当前主线**:Graph Agent 架构重构([27-graph-agent-architecture.md](./todo/system-design/27-graph-agent-architecture.md))。`todo/` 下只保留这一份,其余待办已移入 `todo/future/`,避免和主线抢注意力。 | 11 | +> **当前主线**:Graph Agent 架构重构([27-graph-agent-architecture.md](./todo/system-design/27-graph-agent-architecture.md))。该系列已完成的阶段文档(P1/P2)移入 `done/`,其余非主线待办在 `todo/future/`。 |
| 12 | 12 | ||
| 13 | ## done/ | 13 | ## done/ |
| 14 | 14 | ||
| @@ -21,14 +21,24 @@ | @@ -21,14 +21,24 @@ | ||
| 21 | | [qa_judge_req.md](./done/qa_judge_req.md) | QA Judge Agent 需求文档 — 已在 `system/templates/qa-judge/` 落地 | | 21 | | [qa_judge_req.md](./done/qa_judge_req.md) | QA Judge Agent 需求文档 — 已在 `system/templates/qa-judge/` 落地 | |
| 22 | | [task_timeline_design.md](./done/task_timeline_design.md) | Task Timeline View 设计文档 — 已实现(`server/routes/tasks.js`、`server/services/task-service.js`、`web/src/views/TaskTimeline.vue`) | | 22 | | [task_timeline_design.md](./done/task_timeline_design.md) | Task Timeline View 设计文档 — 已实现(`server/routes/tasks.js`、`server/services/task-service.js`、`web/src/views/TaskTimeline.vue`) | |
| 23 | | [user-guides/08-base-agent-4-phase-guide.md](./done/user-guides/08-base-agent-4-phase-guide.md) | Base Agent 四阶段使用指南 | | 23 | | [user-guides/08-base-agent-4-phase-guide.md](./done/user-guides/08-base-agent-4-phase-guide.md) | Base Agent 四阶段使用指南 | |
| 24 | +| [system-design/27-p1-virtual-reference.md](./done/system-design/27-p1-virtual-reference.md) | P1 虚拟引用寻址 — ✅ 已实现(commit `226489d`,`server/services/graph-service.js`):`agent.md` 不再逐公司拷贝,改为 `config.json.systemAgentRef` 引用 + `company-context.md` 承载公司语境 | | ||
| 25 | +| [system-design/27-p2-org-graph.md](./done/system-design/27-p2-org-graph.md) | P2 Org Graph — ✅ 已实现(`70a4727` + `f20d0d8`):org graph 定位为 company 级 workflow(执行流边),`orggraph-planning` agent 建公司时自动规划并招聘。真实建公司端到端验证通过 | | ||
| 24 | | [system-design/01-26](./done/system-design/) | 系统设计正文 01~26 章(14、25-harness-engineering-improvements 例外,见 todo/future/;27 例外,见 todo/),各章节状态见文内「状态」标记 | | 26 | | [system-design/01-26](./done/system-design/) | 系统设计正文 01~26 章(14、25-harness-engineering-improvements 例外,见 todo/future/;27 例外,见 todo/),各章节状态见文内「状态」标记 | |
| 25 | 27 | ||
| 26 | ## todo/(当前主线) | 28 | ## todo/(当前主线) |
| 27 | 29 | ||
| 30 | +Graph Agent 架构重构(27 系列)。**已完成的阶段文档已移入 `done/`**(P1、P2),下面是仍在推进或长期有效的部分。 | ||
| 31 | + | ||
| 28 | | 文件 | 说明 | | 32 | | 文件 | 说明 | |
| 29 | |------|------| | 33 | |------|------| |
| 30 | -| [system-design/27-graph-agent-architecture.md](./todo/system-design/27-graph-agent-architecture.md) | Graph Agent 架构,状态:📝 设计中,未实现。P0-P6 分阶段路线图,当前唯一在推进的重构 | | ||
| 31 | -| [system-design/27-p1-virtual-reference.md](./todo/system-design/27-p1-virtual-reference.md) | P1(虚拟引用)细化需求与设计文档:`getAgentConfig()`/`PromptBuilder.build()`/`hire()` 的具体改法、验收标准、blast radius、未决问题 | | 34 | +| [27-graph-agent-architecture.md](./todo/system-design/27-graph-agent-architecture.md) | **总纲**。P0-P6 分阶段路线图与整体架构。P0-P3+P4 已实现,P4(新)/P5/P6 待做 | |
| 35 | +| [27-requirement.md](./todo/system-design/27-requirement.md) | **需求源头**。用户原话照搬(R-1..R-16)+ 需求→设计落点速查。其余文档都是对它的转述,出现分歧以此为准 | | ||
| 36 | +| [27-naming-conventions.md](./todo/system-design/27-naming-conventions.md) | **命名规范**。`{作用域}-{职能}`;图节点按层级轴命名;节点名 ≠ 本体名;三种 benchmark 消歧;OKR 正名。新增 agent id / 表名 / 字段名前必读 | | ||
| 37 | +| [27-e2e-task-execution-flow.md](./todo/system-design/27-e2e-task-execution-flow.md) | 端到端流程总览:建公司 → 下达任务 → org graph 逐节点执行 → work graph 规划与循环 → 验收收敛。含与 DevLoop 既有实现的对应关系分析 | | ||
| 38 | +| [27-example-dev-company-walkthrough.md](./todo/system-design/27-example-dev-company-walkthrough.md) | 参考场景走查(虚构的「配图工厂」),把架构跑一遍具体的数:各阶段 JSON 形态、成本估算、断点清单 | | ||
| 39 | +| [27-p3-p4-work-graph-console.md](./todo/system-design/27-p3-p4-work-graph-console.md) | P3+P4(原 P4 回退+Loop-Validator 已并入)图执行引擎与执行控制台 — ✅ 已实现(`c3abf4a`),文档仍在补充中 | | ||
| 40 | +| [27-goal-contract-format.md](./todo/system-design/27-goal-contract-format.md) | 验收契约格式(`goal-benchmark` / `goal-test-data` / `goal-test-script` 的产物形态与跨节点传递) | | ||
| 41 | +| [27-p4-parallel-and-artifacts.md](./todo/system-design/27-p4-parallel-and-artifacts.md) | **P4(回收编号)并行执行与产物索引** — 📝 设计中。fan-out 真并发 + 同 agent 多实例隔离 + `files.json` 产物索引。三个 Phase,C 可插队 | | ||
| 32 | 42 | ||
| 33 | ## todo/future/(暂缓,非当前重心) | 43 | ## todo/future/(暂缓,非当前重心) |
| 34 | 44 |
docs/todo/system-design/27-p1-virtual-reference.md renamed to docs/done/system-design/27-p1-virtual-reference.md
| 1 | # 27-P1. 虚拟引用寻址 — 需求与设计文档 | 1 | # 27-P1. 虚拟引用寻址 — 需求与设计文档 |
| 2 | 2 | ||
| 3 | -> **所属**: [27 Graph Agent 架构](./27-graph-agent-architecture.md) 的 Phase P1("虚拟引用") | 3 | +> **所属**: [27 Graph Agent 架构](../../todo/system-design/27-graph-agent-architecture.md) 的 Phase P1("虚拟引用") |
| 4 | > **版本**: v0.2(设计阶段,未实现;因 P0 完工同步更新) | 4 | > **版本**: v0.2(设计阶段,未实现;因 P0 完工同步更新) |
| 5 | > **日期**: 2026-08-15 | 5 | > **日期**: 2026-08-15 |
| 6 | -> **前置**: P0 地基已**全部完工**并提交(commit `8421f55`)——`seedGlobalAgents()`/`seedTemplates()`/`seedCompanyAgents()`/`verifyCounts()` 四步全部实现,`system_agents.legacy_path` 可用,`org_graph_nodes` 已经把**现有全部公司雇佣关系**回填完毕(不再是空表)。P0 实施过程中发现一个直接影响 P1 设计的问题:**`system/agents/` 与 `system/templates/` 存在 6 个同名但内容可能不同步的 id**,详见 [27 号文档 §7](./27-graph-agent-architecture.md#七p0-实施发现2026-08-15) 与下文 §4.6——本版本已针对这个问题修正了查表逻辑。 | 6 | +> **前置**: P0 地基已**全部完工**并提交(commit `8421f55`)——`seedGlobalAgents()`/`seedTemplates()`/`seedCompanyAgents()`/`verifyCounts()` 四步全部实现,`system_agents.legacy_path` 可用,`org_graph_nodes` 已经把**现有全部公司雇佣关系**回填完毕(不再是空表)。P0 实施过程中发现一个直接影响 P1 设计的问题:**`system/agents/` 与 `system/templates/` 存在 6 个同名但内容可能不同步的 id**,详见 [27 号文档 §7](../../todo/system-design/27-graph-agent-architecture.md#七p0-实施发现2026-08-15) 与下文 §4.6——本版本已针对这个问题修正了查表逻辑。 |
| 7 | 7 | ||
| 8 | --- | 8 | --- |
| 9 | 9 |
docs/todo/system-design/27-p2-org-graph.md renamed to docs/done/system-design/27-p2-org-graph.md
| 1 | # 27-P2. Org Graph — å…¬å¸çº§ Workflow 的生æˆä¸Žè½åœ° | 1 | # 27-P2. Org Graph — å…¬å¸çº§ Workflow 的生æˆä¸Žè½åœ° |
| 2 | 2 | ||
| 3 | -> **所属**: [27 Graph Agent 架构](./27-graph-agent-architecture.md) 的 Phase P2 | 3 | +> **所属**: [27 Graph Agent 架构](../../todo/system-design/27-graph-agent-architecture.md) 的 Phase P2 |
| 4 | > **版本**: v0.4(**按执行æµè¾¹æ¨¡åž‹é‡å†™**ï¼›v0.1-v0.3 把 Org Graph å»ºæ¨¡ä¸ºé™æ€æ±‡æŠ¥ç»“æž„ï¼Œè¯¥æ¨¡åž‹å·²ä½œåºŸï¼Œè§ Â§ä¸€ï¼‰ | 4 | > **版本**: v0.4(**按执行æµè¾¹æ¨¡åž‹é‡å†™**ï¼›v0.1-v0.3 把 Org Graph å»ºæ¨¡ä¸ºé™æ€æ±‡æŠ¥ç»“æž„ï¼Œè¯¥æ¨¡åž‹å·²ä½œåºŸï¼Œè§ Â§ä¸€ï¼‰ |
| 5 | > **日期**: 2026-08-15 | 5 | > **日期**: 2026-08-15 |
| 6 | > **å‰ç½®**: P0 地基已完工(commit `8421f55`)ã€**P1 虚拟引用寻å€å·²å®žçް**(commit `226489d`,`server/services/graph-service.js`) | 6 | > **å‰ç½®**: P0 地基已完工(commit `8421f55`)ã€**P1 虚拟引用寻å€å·²å®žçް**(commit `226489d`,`server/services/graph-service.js`) |
| 7 | -> **命å**: 全文éµå¾ª [27-NAMING 命å规范](./27-naming-conventions.md)。v0.3 çš„ `org-graph-creator` 在本版本统一改å为 **`orggraph-planning`**。 | ||
| 8 | -> **é…套**: [27-E2E 端到端æµç¨‹](./27-e2e-task-execution-flow.md)(本文档在整æ¡é“¾è·¯é‡Œçš„ä½ç½®ï¼‰ã€[27-EXAMPLE å‚考场景](./27-example-dev-company-walkthrough.md)(跑一é具体的数) | 7 | +> **命å**: 全文éµå¾ª [27-NAMING 命å规范](../../todo/system-design/27-naming-conventions.md)。v0.3 çš„ `org-graph-creator` 在本版本统一改å为 **`orggraph-planning`**。 |
| 8 | +> **é…套**: [27-E2E 端到端æµç¨‹](../../todo/system-design/27-e2e-task-execution-flow.md)(本文档在整æ¡é“¾è·¯é‡Œçš„ä½ç½®ï¼‰ã€[27-EXAMPLE å‚考场景](../../todo/system-design/27-example-dev-company-walkthrough.md)(跑一é具体的数) | ||
| 9 | 9 | ||
| 10 | --- | 10 | --- |
| 11 | 11 | ||
| @@ -25,7 +25,7 @@ v0.1-v0.3 把 Org Graph 建模为**陿€æ±‡æŠ¥ç»“æž„**:节点是角色引用ï | @@ -25,7 +25,7 @@ v0.1-v0.3 把 Org Graph 建模为**陿€æ±‡æŠ¥ç»“æž„**:节点是角色引用ï | ||
| 25 | | ç”Ÿæˆæ—¶æœº | å»ºå…¬å¸æ—¶ï¼Œä¸€æ¬¡ | æ¯ä¸ª org node 接到任务时 | | 25 | | ç”Ÿæˆæ—¶æœº | å»ºå…¬å¸æ—¶ï¼Œä¸€æ¬¡ | æ¯ä¸ª org node 接到任务时 | |
| 26 | | èŠ‚ç‚¹æŒ‡å‘ | org node agent(`org-planner` ç‰ï¼‰ | system agent 引用 | | 26 | | èŠ‚ç‚¹æŒ‡å‘ | org node agent(`org-planner` ç‰ï¼‰ | system agent 引用 | |
| 27 | | 边的è¯ä¹‰ | **执行æµ**:`condition ∈ {success, fail}` | **执行æµ**:åŒå·¦ | | 27 | | 边的è¯ä¹‰ | **执行æµ**:`condition ∈ {success, fail}` | **执行æµ**:åŒå·¦ | |
| 28 | -| 执行引擎 | [27-P3/P4](./27-p3-p4-work-graph-console.md) çš„åŒä¸€å¥— | åŒå·¦ | | 28 | +| 执行引擎 | [27-P3/P4](../../todo/system-design/27-p3-p4-work-graph-console.md) çš„åŒä¸€å¥— | åŒå·¦ | |
| 29 | 29 | ||
| 30 | **ç”±æ¤å¸¦æ¥çš„四处结构性改动**(这也是本次é‡å†™çš„主è¦å†…容): | 30 | **ç”±æ¤å¸¦æ¥çš„四处结构性改动**(这也是本次é‡å†™çš„主è¦å†…容): |
| 31 | 31 | ||
| @@ -47,7 +47,7 @@ v0.1-v0.3 把 Org Graph 建模为**陿€æ±‡æŠ¥ç»“æž„**:节点是角色引用ï | @@ -47,7 +47,7 @@ v0.1-v0.3 把 Org Graph 建模为**陿€æ±‡æŠ¥ç»“æž„**:节点是角色引用ï | ||
| 47 | 47 | ||
| 48 | ### éžç›®æ ‡ | 48 | ### éžç›®æ ‡ |
| 49 | 49 | ||
| 50 | -- **ä¸åš**图的执行 —— 执行引擎ã€å¯åЍ/æš‚åœ/啿¥/é‡è¯•ã€SSE 全部属于 [27-P3/P4](./27-p3-p4-work-graph-console.md)。P2 åªè´Ÿè´£"把图建出æ¥ã€å˜å¥½ã€èƒ½è¯»èƒ½ç”»"。 | 50 | +- **ä¸åš**图的执行 —— 执行引擎ã€å¯åЍ/æš‚åœ/啿¥/é‡è¯•ã€SSE 全部属于 [27-P3/P4](../../todo/system-design/27-p3-p4-work-graph-console.md)。P2 åªè´Ÿè´£"把图建出æ¥ã€å˜å¥½ã€èƒ½è¯»èƒ½ç”»"。 |
| 51 | - **ä¸åš** `company.json.agents[]` 的废弃 —— å®ƒä»æ˜¯"这家公å¸é›‡äº†è°"的真相æºï¼›org graph 回ç”的是"任务怎么æµè¿‡è¿™äº›äºº",两者并å˜ã€‚ | 51 | - **ä¸åš** `company.json.agents[]` 的废弃 —— å®ƒä»æ˜¯"这家公å¸é›‡äº†è°"的真相æºï¼›org graph 回ç”的是"任务怎么æµè¿‡è¿™äº›äºº",两者并å˜ã€‚ |
| 52 | - **ä¸åš**å˜é‡å…¬å¸çš„补图 —— è§ Â§å…。 | 52 | - **ä¸åš**å˜é‡å…¬å¸çš„补图 —— è§ Â§å…。 |
| 53 | - **ä¸åš** `workgraph-planning` agent 本身的设计 —— 属于 P3。 | 53 | - **ä¸åš** `workgraph-planning` agent 本身的设计 —— 属于 P3。 |
| @@ -95,10 +95,10 @@ CREATE UNIQUE INDEX IF NOT EXISTS idx_org_graph_edges_dedupe_active | @@ -95,10 +95,10 @@ CREATE UNIQUE INDEX IF NOT EXISTS idx_org_graph_edges_dedupe_active | ||
| 95 | 95 | ||
| 96 | ### 3.3 å›¾çš„åˆæ³•性约æŸï¼ˆå†™å…¥å‰æ ¡éªŒï¼‰ | 96 | ### 3.3 å›¾çš„åˆæ³•性约æŸï¼ˆå†™å…¥å‰æ ¡éªŒï¼‰ |
| 97 | 97 | ||
| 98 | -与 work graph çš„æ‰§è¡Œå‰æ ¡éªŒåŒä¸€å¥—规则([27-P3/P4](./27-p3-p4-work-graph-console.md) §四.A): | 98 | +与 work graph çš„æ‰§è¡Œå‰æ ¡éªŒåŒä¸€å¥—规则([27-P3/P4](../../todo/system-design/27-p3-p4-work-graph-console.md) §四.A): |
| 99 | 99 | ||
| 100 | 1. **æ— çŽ¯**(仅针对 `edge_kind='forward'`)—— 三色 DFS,å¤ç”¨ DevLoop `doc-store.js:167` çš„ `hasCycle()` 实现。 | 100 | 1. **æ— çŽ¯**(仅针对 `edge_kind='forward'`)—— 三色 DFS,å¤ç”¨ DevLoop `doc-store.js:167` çš„ `hasCycle()` 实现。 |
| 101 | -2. **å•一入å£**(✅ å·²å®šæ¡ˆï¼Œè§ [27-REQ](./27-requirement.md) R-13)—— å¿…é¡»æ°å¥½æœ‰ä¸€ä¸ªå…¥åº¦ä¸º 0 çš„ forward 节点,任务从这里进入。多入å£ä¼šè®©"任务从哪开始"æ— æ³•ç¡®å®šï¼Œä¸”éœ€è¦ä»»åС入å£å¤šå¸¦ä¸€ä¸ªå‚数。 | 101 | +2. **å•一入å£**(✅ å·²å®šæ¡ˆï¼Œè§ [27-REQ](../../todo/system-design/27-requirement.md) R-13)—— å¿…é¡»æ°å¥½æœ‰ä¸€ä¸ªå…¥åº¦ä¸º 0 çš„ forward 节点,任务从这里进入。多入å£ä¼šè®©"任务从哪开始"æ— æ³•ç¡®å®šï¼Œä¸”éœ€è¦ä»»åС入å£å¤šå¸¦ä¸€ä¸ªå‚数。 |
| 102 | 3. **å¯è¾¾æ€§** —— æ¯ä¸ªèŠ‚ç‚¹éƒ½å¿…é¡»ä»Žå…¥å£å¯è¾¾ï¼Œå¤ç«‹èŠ‚ç‚¹ç›´æŽ¥æ‹’ç»ã€‚ | 102 | 3. **å¯è¾¾æ€§** —— æ¯ä¸ªèŠ‚ç‚¹éƒ½å¿…é¡»ä»Žå…¥å£å¯è¾¾ï¼Œå¤ç«‹èŠ‚ç‚¹ç›´æŽ¥æ‹’ç»ã€‚ |
| 103 | 4. **å›žé€€è¾¹å¿…é¡»æ˜¾å¼æ ‡æ³¨** —— 任何指å‘"æ‹“æ‰‘åºæ›´æ—©èŠ‚ç‚¹"的边,`edge_kind` 必须是 `backward`ï¼›å¼•æ“Žç‹¬ç«‹å¤æ ¸ï¼Œä¸ä¿¡ä»»æ ‡æ³¨ï¼ˆ27 å·æ–‡æ¡£ §3.4 第 5 ç‚¹çš„åŒæ¬¾å…œåº•)。 | 103 | 4. **å›žé€€è¾¹å¿…é¡»æ˜¾å¼æ ‡æ³¨** —— 任何指å‘"æ‹“æ‰‘åºæ›´æ—©èŠ‚ç‚¹"的边,`edge_kind` 必须是 `backward`ï¼›å¼•æ“Žç‹¬ç«‹å¤æ ¸ï¼Œä¸ä¿¡ä»»æ ‡æ³¨ï¼ˆ27 å·æ–‡æ¡£ §3.4 第 5 ç‚¹çš„åŒæ¬¾å…œåº•)。 |
| 104 | 104 | ||
| @@ -111,7 +111,7 @@ CREATE UNIQUE INDEX IF NOT EXISTS idx_org_graph_edges_dedupe_active | @@ -111,7 +111,7 @@ CREATE UNIQUE INDEX IF NOT EXISTS idx_org_graph_edges_dedupe_active | ||
| 111 | 新增 system agent æ¨¡æ¿ `system/templates/orggraph-planning/`(`config.json.type` å– `meta-bootstrap`,与业务角色区分)。工作æµï¼š | 111 | 新增 system agent æ¨¡æ¿ `system/templates/orggraph-planning/`(`config.json.type` å– `meta-bootstrap`,与业务角色区分)。工作æµï¼š |
| 112 | 112 | ||
| 113 | 1. **读输入**ï¼šå…¬å¸ `id` / `name` / **`goal`(company-goal)** / `description`(由 §4.4 的首轮消æ¯å¸¦å…¥ï¼‰ã€‚ | 113 | 1. **读输入**ï¼šå…¬å¸ `id` / `name` / **`goal`(company-goal)** / `description`(由 §4.4 的首轮消æ¯å¸¦å…¥ï¼‰ã€‚ |
| 114 | - `company-goal` 是「这家公å¸è¦è¾¾æˆä»€ä¹ˆã€ï¼Œ`description` æ˜¯ã€Œè¿™å®¶å…¬å¸æ˜¯å¹²ä»€ä¹ˆçš„ã€â€”—å‰è€…æ˜¯è§„åˆ’æµæ°´çº¿çš„䏻便®ï¼ŒåŽè€…æ˜¯èƒŒæ™¯ã€‚è§ [27-NAMING](./27-naming-conventions.md) §四。 | 114 | + `company-goal` 是「这家公å¸è¦è¾¾æˆä»€ä¹ˆã€ï¼Œ`description` æ˜¯ã€Œè¿™å®¶å…¬å¸æ˜¯å¹²ä»€ä¹ˆçš„ã€â€”—å‰è€…æ˜¯è§„åˆ’æµæ°´çº¿çš„䏻便®ï¼ŒåŽè€…æ˜¯èƒŒæ™¯ã€‚è§ [27-NAMING](../../todo/system-design/27-naming-conventions.md) §四。 |
| 115 | 2. **读候选骨架**:`ls system/org-graph-templates/`,é€ä¸ªè¯»å–,ç†è§£å„自的 `whenToUse`。 | 115 | 2. **读候选骨架**:`ls system/org-graph-templates/`,é€ä¸ªè¯»å–,ç†è§£å„自的 `whenToUse`。 |
| 116 | 3. **è¯»å¯æ‹›è§’色**:`node bin/lemon.js company templates`(å¤ç”¨çŽ°æˆ CLI,`listTemplates()` 返回 id/name/type/description)。 | 116 | 3. **è¯»å¯æ‹›è§’色**:`node bin/lemon.js company templates`(å¤ç”¨çŽ°æˆ CLI,`listTemplates()` 返回 id/name/type/description)。 |
| 117 | 4. **规划**:综åˆä¸‰è€…ï¼Œäº§å‡ºä¸€å¼ workflow —— 节点列表 + 执行æµè¾¹ã€‚å…许è£å‰ªã€æ›¿æ¢ã€ç»„åˆå¤šä¸ªæ¨¡æ¿ï¼Œä¹Ÿå…许判æ–需è¦ä¸€ä¸ªæ¨¡æ¿åº“里没有的新角色。 | 117 | 4. **规划**:综åˆä¸‰è€…ï¼Œäº§å‡ºä¸€å¼ workflow —— 节点列表 + 执行æµè¾¹ã€‚å…许è£å‰ªã€æ›¿æ¢ã€ç»„åˆå¤šä¸ªæ¨¡æ¿ï¼Œä¹Ÿå…许判æ–需è¦ä¸€ä¸ªæ¨¡æ¿åº“里没有的新角色。 |
| @@ -119,7 +119,7 @@ CREATE UNIQUE INDEX IF NOT EXISTS idx_org_graph_edges_dedupe_active | @@ -119,7 +119,7 @@ CREATE UNIQUE INDEX IF NOT EXISTS idx_org_graph_edges_dedupe_active | ||
| 119 | 6. **æäº¤å›¾**:调用 §4.3 的整体写入 API,图通过 §3.3 æ ¡éªŒåŽè½åº“。 | 119 | 6. **æäº¤å›¾**:调用 §4.3 的整体写入 API,图通过 §3.3 æ ¡éªŒåŽè½åº“。 |
| 120 | 7. **执行招è˜**:按拓扑åºå¯¹æ¯ä¸ªèŠ‚ç‚¹è°ƒ `hire()`。 | 120 | 7. **执行招è˜**:按拓扑åºå¯¹æ¯ä¸ªèŠ‚ç‚¹è°ƒ `hire()`。 |
| 121 | - **模æ¿å·²å˜åœ¨** → èµ° P1 虚拟引用寻å€ï¼Œä¸æ‹·è´ `agent.md`。 | 121 | - **模æ¿å·²å˜åœ¨** → èµ° P1 虚拟引用寻å€ï¼Œä¸æ‹·è´ `agent.md`。 |
| 122 | - - **模æ¿ä¸å˜åœ¨** → **从 `system/templates/base/` å…ƒ agent 继承出骨架**(自动带上 base çš„ `RESEARCH → PLAN → EXECUTE → VERIFY` 四段å¼ç”Ÿå‘½å‘¨æœŸï¼‰ï¼Œå†ç”± `agent-creator` 填充该角色特有的定义。这是 [27-E2E](./27-e2e-task-execution-flow.md) §八bis「所有 node agent 由元 agent 继承生æˆã€åœ¨ P2 çš„è½åœ°ç‚¹â€”—**䏿˜¯**直接走现有的 `needs_training` å…¨é‡åŸ¹å…»åˆ†æ”¯ã€‚ | 122 | + - **模æ¿ä¸å˜åœ¨** → **从 `system/templates/base/` å…ƒ agent 继承出骨架**(自动带上 base çš„ `RESEARCH → PLAN → EXECUTE → VERIFY` 四段å¼ç”Ÿå‘½å‘¨æœŸï¼‰ï¼Œå†ç”± `agent-creator` 填充该角色特有的定义。这是 [27-E2E](../../todo/system-design/27-e2e-task-execution-flow.md) §八bis「所有 node agent 由元 agent 继承生æˆã€åœ¨ P2 çš„è½åœ°ç‚¹â€”—**䏿˜¯**直接走现有的 `needs_training` å…¨é‡åŸ¹å…»åˆ†æ”¯ã€‚ |
| 123 | - **新建 agent çš„ `scope`**:一律默认 `scope='company'`ã€`owner_company_id` 为本公å¸ï¼ˆ27 å·æ–‡æ¡£ §3.2)。å‡çº§ä¸º `public` 走既有的 benchmark ≥95 门槛,ä¸åœ¨ P2 范围内。 | 123 | - **新建 agent çš„ `scope`**:一律默认 `scope='company'`ã€`owner_company_id` 为本公å¸ï¼ˆ27 å·æ–‡æ¡£ §3.2)。å‡çº§ä¸º `public` 走既有的 benchmark ≥95 门槛,ä¸åœ¨ P2 范围内。 |
| 124 | - **è®ç»ƒæ˜¯å¯é€‰çš„åŽç½®æ¥éª¤**:建æˆåŽå¯æ‰‹åŠ¨è§¦å‘ `innovator` åŸ¹å…»ï¼Œä¹Ÿå¯æŒ‰å…¬å¸éœ€æ±‚é…置为自动触å‘。P2 åªä¿è¯ã€Œè§’色能被建出æ¥ä¸”带四段å¼éª¨æž¶ã€ï¼Œä¸å¼ºåˆ¶ç‰è®ç»ƒå®Œæˆã€‚ | 124 | - **è®ç»ƒæ˜¯å¯é€‰çš„åŽç½®æ¥éª¤**:建æˆåŽå¯æ‰‹åŠ¨è§¦å‘ `innovator` åŸ¹å…»ï¼Œä¹Ÿå¯æŒ‰å…¬å¸éœ€æ±‚é…置为自动触å‘。P2 åªä¿è¯ã€Œè§’色能被建出æ¥ä¸”带四段å¼éª¨æž¶ã€ï¼Œä¸å¼ºåˆ¶ç‰è®ç»ƒå®Œæˆã€‚ |
| 125 | 8. **æ”¶å°¾**:关é—è‡ªå·±çš„å¿ƒè·³è½¬å…¥ä¼‘çœ ã€‚åŽç»å¢žé‡è°ƒæ•´å½’ HR。 | 125 | 8. **æ”¶å°¾**:关é—è‡ªå·±çš„å¿ƒè·³è½¬å…¥ä¼‘çœ ã€‚åŽç»å¢žé‡è°ƒæ•´å½’ HR。 |
| @@ -183,7 +183,7 @@ if (bootstrap.status === 'hired_from_template') { | @@ -183,7 +183,7 @@ if (bootstrap.status === 'hired_from_template') { | ||
| 183 | 183 | ||
| 184 | ### 4.5 å‰ç«¯ | 184 | ### 4.5 å‰ç«¯ |
| 185 | 185 | ||
| 186 | -**ä¸è‡ªå·±å†™æ¸²æŸ“逻辑** —— org graph 与 work graph åŒæž„,直接å¤ç”¨ [27-P3/P4](./27-p3-p4-work-graph-console.md) T3 çš„ç”»å¸ƒç»„ä»¶ï¼ˆå…¶æœ¬èº«åˆæ˜¯æ‰©å±•自既有的 `web/src/components/devloop/UnitsDAG.vue`,已实现 SVG + Kahn 分波布局 + 状æ€ç€è‰² + 点击下钻)。 | 186 | +**ä¸è‡ªå·±å†™æ¸²æŸ“逻辑** —— org graph 与 work graph åŒæž„,直接å¤ç”¨ [27-P3/P4](../../todo/system-design/27-p3-p4-work-graph-console.md) T3 çš„ç”»å¸ƒç»„ä»¶ï¼ˆå…¶æœ¬èº«åˆæ˜¯æ‰©å±•自既有的 `web/src/components/devloop/UnitsDAG.vue`,已实现 SVG + Kahn 分波布局 + 状æ€ç€è‰² + 点击下钻)。 |
| 187 | 187 | ||
| 188 | 这也æ„å‘³ç€ **P2 çš„å‰ç«¯å·¥ä½œä¾èµ– P3 的画布组件先åšå‡ºæ¥**。若想让 P2 独立上线,å¯ä»¥å…ˆåœ¨ Company Dashboard 用一个纯文本的拓扑åºåˆ—表å ä½ï¼ˆ`org-planner → org-coder → org-validator`ï¼‰ï¼Œç‰ P3 ç”»å¸ƒå°±ç»ªå†æ›¿æ¢ã€‚ | 188 | 这也æ„å‘³ç€ **P2 çš„å‰ç«¯å·¥ä½œä¾èµ– P3 的画布组件先åšå‡ºæ¥**。若想让 P2 独立上线,å¯ä»¥å…ˆåœ¨ Company Dashboard 用一个纯文本的拓扑åºåˆ—表å ä½ï¼ˆ`org-planner → org-coder → org-validator`ï¼‰ï¼Œç‰ P3 ç”»å¸ƒå°±ç»ªå†æ›¿æ¢ã€‚ |
| 189 | 189 | ||
| @@ -209,9 +209,9 @@ if (bootstrap.status === 'hired_from_template') { | @@ -209,9 +209,9 @@ if (bootstrap.status === 'hired_from_template') { | ||
| 209 | ``` | 209 | ``` |
| 210 | 210 | ||
| 211 | åŒç†æä¾› `content.json`(`org-planner → org-writer → org-validator`)ã€`ops.json`ã€‚ä¸‰å¼ å›¾**首尾节点åŒå**, | 211 | åŒç†æä¾› `content.json`(`org-planner → org-writer → org-validator`)ã€`ops.json`ã€‚ä¸‰å¼ å›¾**首尾节点åŒå**, |
| 212 | -åªæœ‰ä¸æ®µæ‰§è¡ŒèŠ‚ç‚¹ä¸åŒâ€”—命åè½´æ˜¯èŠ‚ç‚¹æ‰€åœ¨å›¾çš„å±‚çº§ï¼Œä¸æ˜¯ä¸šåŠ¡é¢†åŸŸï¼ˆ[27-NAMING](./27-naming-conventions.md) §3.1)。 | 212 | +åªæœ‰ä¸æ®µæ‰§è¡ŒèŠ‚ç‚¹ä¸åŒâ€”—命åè½´æ˜¯èŠ‚ç‚¹æ‰€åœ¨å›¾çš„å±‚çº§ï¼Œä¸æ˜¯ä¸šåŠ¡é¢†åŸŸï¼ˆ[27-NAMING](../../todo/system-design/27-naming-conventions.md) §3.1)。 |
| 213 | 213 | ||
| 214 | -`dev.json` é‚£ä¸¤æ¡ `fail` 边是 P3 çš„ `fail_reason` 细分路由([27-P3/P4](./27-p3-p4-work-graph-console.md) §四.D.2.2): | 214 | +`dev.json` é‚£ä¸¤æ¡ `fail` 边是 P3 çš„ `fail_reason` 细分路由([27-P3/P4](../../todo/system-design/27-p3-p4-work-graph-console.md) §四.D.2.2): |
| 215 | 带 `failReason` çš„è¾¹æŒ‰å½’å› ç»“æžœç²¾ç¡®åŒ¹é…,ä¸å¸¦ `failReason` çš„é‚£æ¡æ˜¯**兜底边**, | 215 | 带 `failReason` çš„è¾¹æŒ‰å½’å› ç»“æžœç²¾ç¡®åŒ¹é…,ä¸å¸¦ `failReason` çš„é‚£æ¡æ˜¯**兜底边**, |
| 216 | 任何有 `fail` 出边的节点都必须留一æ¡ï¼Œå¦åˆ™å½’å› äº§å‡ºå›¾ä¸Šæ²¡æœ‰çš„å–值时会è½åˆ°æ»è·¯ã€‚ | 216 | 任何有 `fail` 出边的节点都必须留一æ¡ï¼Œå¦åˆ™å½’å› äº§å‡ºå›¾ä¸Šæ²¡æœ‰çš„å–值时会è½åˆ°æ»è·¯ã€‚ |
| 217 | `content.json` / `ops.json` ç›®å‰åªæœ‰å…œåº•边。 | 217 | `content.json` / `ops.json` ç›®å‰åªæœ‰å…œåº•边。 |
| @@ -220,7 +220,7 @@ if (bootstrap.status === 'hired_from_template') { | @@ -220,7 +220,7 @@ if (bootstrap.status === 'hired_from_template') { | ||
| 220 | 220 | ||
| 221 | - **是起点集åˆï¼Œä¸æ˜¯ç©·ä¸¾æžšä¸¾** —— åŠ ä¸€ç§å…¬å¸ç±»åž‹åªéœ€åŠ ä¸€ä¸ª JSON æ–‡ä»¶ï¼Œä¸æ”¹ä»»ä½•代ç 。`orggraph-planning` 读全部模æ¿åŽè‡ªè¡Œé€‰åž‹/è£å‰ª/组åˆï¼Œä¸æ˜¯ä»£ç 里的 `switch(type)`。 | 221 | - **是起点集åˆï¼Œä¸æ˜¯ç©·ä¸¾æžšä¸¾** —— åŠ ä¸€ç§å…¬å¸ç±»åž‹åªéœ€åŠ ä¸€ä¸ª JSON æ–‡ä»¶ï¼Œä¸æ”¹ä»»ä½•代ç 。`orggraph-planning` 读全部模æ¿åŽè‡ªè¡Œé€‰åž‹/è£å‰ª/组åˆï¼Œä¸æ˜¯ä»£ç 里的 `switch(type)`。 |
| 222 | - **`nodes` é‡Œçš„è§’è‰²åæ˜¯å»ºè®®**,`orggraph-planning` 必须对照 `company templates` æ ¸å®žæ˜¯å¦çœŸæœ‰å¯æ‹›æ¨¡æ¿ï¼›æ²¡æœ‰åˆ™èµ° `needs_training` 培养分支。 | 222 | - **`nodes` é‡Œçš„è§’è‰²åæ˜¯å»ºè®®**,`orggraph-planning` 必须对照 `company templates` æ ¸å®žæ˜¯å¦çœŸæœ‰å¯æ‹›æ¨¡æ¿ï¼›æ²¡æœ‰åˆ™èµ° `needs_training` 培养分支。 |
| 223 | -- **模æ¿é‡Œçš„角色åå¿…é¡»éµå¾ª [27-NAMING](./27-naming-conventions.md) §3.1 çš„ `org-{èŒèƒ½}` 规则**,ä¸å…许裸用 `planner` / `validator`,也ä¸å†æŒ‰ä¸šåŠ¡é¢†åŸŸèµ· `code-` / `content-` 这类å‰ç¼€ï¼ˆv0.2 的写法,已作废)。 | 223 | +- **模æ¿é‡Œçš„角色åå¿…é¡»éµå¾ª [27-NAMING](../../todo/system-design/27-naming-conventions.md) §3.1 çš„ `org-{èŒèƒ½}` 规则**,ä¸å…许裸用 `planner` / `validator`,也ä¸å†æŒ‰ä¸šåŠ¡é¢†åŸŸèµ· `code-` / `content-` 这类å‰ç¼€ï¼ˆv0.2 的写法,已作废)。 |
| 224 | - âš ï¸ **é¿å¼€å‘½åå†²çª id**:`agent-creator` / `digester` / `evolver` / `evolver-youtube-crawler` / `hunter` / `innovator` è¿™ 6 个 id 在 `system/agents/` 与 `system/templates/` ä¸‹åŒæ—¶å˜åœ¨ä¸”内容å¯èƒ½ä¸åŒæ¥ï¼ˆ27 å·æ–‡æ¡£ §七),模æ¿é‡Œä¸è¦å¼•用它们。 | 224 | - âš ï¸ **é¿å¼€å‘½åå†²çª id**:`agent-creator` / `digester` / `evolver` / `evolver-youtube-crawler` / `hunter` / `innovator` è¿™ 6 个 id 在 `system/agents/` 与 `system/templates/` ä¸‹åŒæ—¶å˜åœ¨ä¸”内容å¯èƒ½ä¸åŒæ¥ï¼ˆ27 å·æ–‡æ¡£ §七),模æ¿é‡Œä¸è¦å¼•用它们。 |
| 225 | 225 | ||
| 226 | --- | 226 | --- |
| @@ -292,7 +292,7 @@ P0 çš„ `seedCompanyAgents()` 已把所有å˜é‡å…¬å¸çš„è§’è‰²å›žå¡«æˆ `org_gra | @@ -292,7 +292,7 @@ P0 çš„ `seedCompanyAgents()` 已把所有å˜é‡å…¬å¸çš„è§’è‰²å›žå¡«æˆ `org_gra | ||
| 292 | 292 | ||
| 293 | ## å…«ã€é£Žé™© / Open Questions | 293 | ## å…«ã€é£Žé™© / Open Questions |
| 294 | 294 | ||
| 295 | -1. ~~**å•一入å£çº¦æŸæ˜¯å¦è¿‡ä¸¥**~~ ✅ **已定案**([27-REQ](./27-requirement.md) R-13.4):强制å•å…¥å£ã€‚ä¿ç•™åŽŸå§‹è®ºè¯ï¼šå¦‚果将æ¥å‡ºçް"两类任务从ä¸åŒèŠ‚ç‚¹è¿›å…¥åŒä¸€å®¶å…¬å¸"的需求(如 bugfix 直接从 coder 进入),需放宽为"å…è®¸å¤šå…¥å£ + 任务æºå¸¦æŒ‡å®šå…¥å£",届时任务入å£è¦å¤šå¸¦ä¸€ä¸ªå‚数。 | 295 | +1. ~~**å•一入å£çº¦æŸæ˜¯å¦è¿‡ä¸¥**~~ ✅ **已定案**([27-REQ](../../todo/system-design/27-requirement.md) R-13.4):强制å•å…¥å£ã€‚ä¿ç•™åŽŸå§‹è®ºè¯ï¼šå¦‚果将æ¥å‡ºçް"两类任务从ä¸åŒèŠ‚ç‚¹è¿›å…¥åŒä¸€å®¶å…¬å¸"的需求(如 bugfix 直接从 coder 进入),需放宽为"å…è®¸å¤šå…¥å£ + 任务æºå¸¦æŒ‡å®šå…¥å£",届时任务入å£è¦å¤šå¸¦ä¸€ä¸ªå‚数。 |
| 296 | 2. **`orggraph-planning` çš„è§„åˆ’è´¨é‡æ²¡æœ‰ç¡¬æ ¡éªŒ**:§3.3 åªä¿è¯å›¾**ç»“æž„åˆæ³•**,ä¸ä¿è¯å®ƒ**适åˆè¿™å®¶å…¬å¸**。缓解:`workspace/orggraph-plan.md` 留下决ç–è®°å½•ä¾›äººå·¥å¤æ ¸ï¼›å‘现ä¸åˆç†æ—¶èµ° §4.3 çš„ PATCH 增é‡ä¿®æ£ã€‚ | 296 | 2. **`orggraph-planning` çš„è§„åˆ’è´¨é‡æ²¡æœ‰ç¡¬æ ¡éªŒ**:§3.3 åªä¿è¯å›¾**ç»“æž„åˆæ³•**,ä¸ä¿è¯å®ƒ**适åˆè¿™å®¶å…¬å¸**。缓解:`workspace/orggraph-plan.md` 留下决ç–è®°å½•ä¾›äººå·¥å¤æ ¸ï¼›å‘现ä¸åˆç†æ—¶èµ° §4.3 çš„ PATCH 增é‡ä¿®æ£ã€‚ |
| 297 | 3. **一次建公å¸å¤šä¸€è½® LLM 对è¯**:✅ 实测约 30 秒(`p2-verify` 验è¯å…¬å¸ï¼Œ4 节点 5 è¾¹ + 4 个角色招è˜ï¼‰ã€‚`POST /create` ä¿æŒåŒæ¥è¿”回(fire-and-forgetï¼‰ã€‚âš ï¸ å‰ç«¯ç©ºæ€æ–‡æ¡ˆå·²æåŠ"å˜é‡å…¬å¸æˆ–规划ä»åœ¨è¿›è¡Œä¸",但**没有真æ£åŒºåˆ†è¿™ä¸¤ç§çжæ€**——è¦åŒºåˆ†éœ€è¦è½®è¯¢ `/org-graph` 或给公å¸åŠ ä¸€ä¸ª `orgGraphStatus` å—æ®µã€‚当剿˜¯åˆ»æ„的简化。 | 297 | 3. **一次建公å¸å¤šä¸€è½® LLM 对è¯**:✅ 实测约 30 秒(`p2-verify` 验è¯å…¬å¸ï¼Œ4 节点 5 è¾¹ + 4 个角色招è˜ï¼‰ã€‚`POST /create` ä¿æŒåŒæ¥è¿”回(fire-and-forgetï¼‰ã€‚âš ï¸ å‰ç«¯ç©ºæ€æ–‡æ¡ˆå·²æåŠ"å˜é‡å…¬å¸æˆ–规划ä»åœ¨è¿›è¡Œä¸",但**没有真æ£åŒºåˆ†è¿™ä¸¤ç§çжæ€**——è¦åŒºåˆ†éœ€è¦è½®è¯¢ `/org-graph` 或给公å¸åŠ ä¸€ä¸ª `orgGraphStatus` å—æ®µã€‚当剿˜¯åˆ»æ„的简化。 |
| 298 | 4. **6 个命åå†²çª id**(27 å·æ–‡æ¡£ §七):本文档 §4.6 å·²è¦æ±‚模æ¿é¿å¼€å®ƒä»¬ï¼Œä½†å¦‚æžœ `orggraph-planning` 自主判æ–需è¦å…¶ä¸æŸä¸ªè§’色,ä»ä¼šæ’žä¸Š"该读哪份 `agent.md`"çš„æ§ä¹‰ã€‚建议在 P2 ä¸Šçº¿å‰æŠŠè¿™ä¸ªäº§å“决ç–åšæŽ‰ã€‚ | 298 | 4. **6 个命åå†²çª id**(27 å·æ–‡æ¡£ §七):本文档 §4.6 å·²è¦æ±‚模æ¿é¿å¼€å®ƒä»¬ï¼Œä½†å¦‚æžœ `orggraph-planning` 自主判æ–需è¦å…¶ä¸æŸä¸ªè§’色,ä»ä¼šæ’žä¸Š"该读哪份 `agent.md`"çš„æ§ä¹‰ã€‚建议在 P2 ä¸Šçº¿å‰æŠŠè¿™ä¸ªäº§å“决ç–åšæŽ‰ã€‚ |
| @@ -304,4 +304,4 @@ P0 çš„ `seedCompanyAgents()` 已把所有å˜é‡å…¬å¸çš„è§’è‰²å›žå¡«æˆ `org_gra | @@ -304,4 +304,4 @@ P0 çš„ `seedCompanyAgents()` 已把所有å˜é‡å…¬å¸çš„è§’è‰²å›žå¡«æˆ `org_gra | ||
| 304 | 304 | ||
| 305 | - **P0/P1**:å‡å·²å®žçŽ°ã€‚P2 唯一需è¦åЍ P1 代ç 的地方是 DROP 它建的全é‡å”¯ä¸€ç´¢å¼•(T1)。 | 305 | - **P0/P1**:å‡å·²å®žçŽ°ã€‚P2 唯一需è¦åЍ P1 代ç 的地方是 DROP 它建的全é‡å”¯ä¸€ç´¢å¼•(T1)。 |
| 306 | - **P3/P4**:P2 产出图,P3/P4 执行图。**两者共用åŒä¸€å¥— schema å½¢æ€ã€æ‰§è¡Œå¼•擎和画布组件** —— 这是 v0.4 新模型最大的收益。P2 ä¸å«ä»»ä½•执行逻辑。 | 306 | - **P3/P4**:P2 产出图,P3/P4 执行图。**两者共用åŒä¸€å¥— schema å½¢æ€ã€æ‰§è¡Œå¼•擎和画布组件** —— 这是 v0.4 新模型最大的收益。P2 ä¸å«ä»»ä½•执行逻辑。 |
| 307 | -- **端到端**:本文档在整æ¡é“¾è·¯é‡Œçš„ä½ç½®è§ [27-E2E](./27-e2e-task-execution-flow.md) §三 阶段 2,具体跑一éçš„æ ·åè§ [27-EXAMPLE](./27-example-dev-company-walkthrough.md) 阶段 2。 | 307 | +- **端到端**:本文档在整æ¡é“¾è·¯é‡Œçš„ä½ç½®è§ [27-E2E](../../todo/system-design/27-e2e-task-execution-flow.md) §三 阶段 2,具体跑一éçš„æ ·åè§ [27-EXAMPLE](../../todo/system-design/27-example-dev-company-walkthrough.md) 阶段 2。 |
docs/todo/system-design/27-e2e-task-execution-flow.md
| @@ -3,7 +3,7 @@ | @@ -3,7 +3,7 @@ | ||
| 3 | > **所属**: [27 Graph Agent æž¶æž„](./27-graph-agent-architecture.md) 的跨阶段总览文档,串起 P2(Org Graph)ã€P3/P4(Work Graph 执行)ã€P5(自我进化)。 | 3 | > **所属**: [27 Graph Agent æž¶æž„](./27-graph-agent-architecture.md) 的跨阶段总览文档,串起 P2(Org Graph)ã€P3/P4(Work Graph 执行)ã€P5(自我进化)。 |
| 4 | > **版本**: v0.1 | 4 | > **版本**: v0.1 |
| 5 | > **日期**: 2026-08-15 | 5 | > **日期**: 2026-08-15 |
| 6 | -> **å‰ç½®**: [27-P2 Org Graph è½åœ°](./27-p2-org-graph.md)ã€[27-P3/P4 Work Graph 执行控制å°](./27-p3-p4-work-graph-console.md)ã€**ä»¥åŠæœ¬æ–‡æ¡£æœ€é‡è¦çš„å‚考æº** `docs/prd/newfunction/_spec/`(DevLoop 的完整 MVCP è§„æ ¼ï¼Œå°¤å…¶ `loops-overview.md` / `loops-l1.md` / `loops-l2.md` / `loops-l3.md` / `sdd-process.md` / `plan-cost-concurrency.md`)。 | 6 | +> **å‰ç½®**: [27-P2 Org Graph è½åœ°](../../done/system-design/27-p2-org-graph.md)ã€[27-P3/P4 Work Graph 执行控制å°](./27-p3-p4-work-graph-console.md)ã€**ä»¥åŠæœ¬æ–‡æ¡£æœ€é‡è¦çš„å‚考æº** `docs/prd/newfunction/_spec/`(DevLoop 的完整 MVCP è§„æ ¼ï¼Œå°¤å…¶ `loops-overview.md` / `loops-l1.md` / `loops-l2.md` / `loops-l3.md` / `sdd-process.md` / `plan-cost-concurrency.md`)。 |
| 7 | > **需求æºå¤´**: [27-REQ 原始需求](./27-requirement.md) —— 本文档是对那些原è¯çš„结构化转述,原文以那份为准。 | 7 | > **需求æºå¤´**: [27-REQ 原始需求](./27-requirement.md) —— 本文档是对那些原è¯çš„结构化转述,原文以那份为准。 |
| 8 | > **é…套**: [27-EXAMPLE å‚考场景走查](./27-example-dev-company-walkthrough.md) —— 本文档讲机制,那份文档把机制在一家具体公å¸ä¸Šè·‘䏀鿕°ã€‚两份对照ç€è¯»ã€‚ | 8 | > **é…套**: [27-EXAMPLE å‚考场景走查](./27-example-dev-company-walkthrough.md) —— 本文档讲机制,那份文档把机制在一家具体公å¸ä¸Šè·‘䏀鿕°ã€‚两份对照ç€è¯»ã€‚ |
| 9 | 9 | ||
| @@ -67,7 +67,7 @@ | @@ -67,7 +67,7 @@ | ||
| 67 | 67 | ||
| 68 | ### 阶段 2 · orggraph-planning æ ¹æ®æè¿°ç”ŸæˆåŸºç¡€ org graph | 68 | ### 阶段 2 · orggraph-planning æ ¹æ®æè¿°ç”ŸæˆåŸºç¡€ org graph |
| 69 | 69 | ||
| 70 | -**状æ€**:📠已设计未实现([27-P2](./27-p2-org-graph.md) §4.8/§4.9/§4.10) | 70 | +**状æ€**:📠已设计未实现([27-P2](../../done/system-design/27-p2-org-graph.md) §4.8/§4.9/§4.10) |
| 71 | 71 | ||
| 72 | P2 å·²ç»è®¾è®¡äº†ï¼š`system/org-graph-templates/{dev,content,ops}.json` 模æ¿åº“ + `orggraph-planning` agent + 创建时自动招è˜å¹¶ fire-and-forget 触å‘首轮对è¯ã€‚ | 72 | P2 å·²ç»è®¾è®¡äº†ï¼š`system/org-graph-templates/{dev,content,ops}.json` 模æ¿åº“ + `orggraph-planning` agent + 创建时自动招è˜å¹¶ fire-and-forget 触å‘首轮对è¯ã€‚ |
| 73 | 73 | ||
| @@ -177,7 +177,7 @@ P2 å·²ç»è®¾è®¡äº†ï¼š`system/org-graph-templates/{dev,content,ops}.json` 模æ¿å | @@ -177,7 +177,7 @@ P2 å·²ç»è®¾è®¡äº†ï¼š`system/org-graph-templates/{dev,content,ops}.json` 模æ¿å | ||
| 177 | > | **Org Graph** | orggraph-planning | å»ºå…¬å¸æ—¶ï¼Œä¸€æ¬¡ | org node agent | 执行æµï¼ˆsuccess/fail æ¡ä»¶ï¼‰ | | 177 | > | **Org Graph** | orggraph-planning | å»ºå…¬å¸æ—¶ï¼Œä¸€æ¬¡ | org node agent | 执行æµï¼ˆsuccess/fail æ¡ä»¶ï¼‰ | |
| 178 | > | **Work Graph** | workgraph-planning agent | æ¯ä¸ª org node 接到任务时 | system agent 引用 | 执行æµï¼ˆsuccess/fail æ¡ä»¶ï¼‰ | | 178 | > | **Work Graph** | workgraph-planning agent | æ¯ä¸ª org node 接到任务时 | system agent 引用 | 执行æµï¼ˆsuccess/fail æ¡ä»¶ï¼‰ | |
| 179 | > | 179 | > |
| 180 | -> **è¿™æ„å‘³ç€ [27-P2](./27-p2-org-graph.md) 现在的 org graph æ¨¡åž‹éœ€è¦æ”¹**ï¼šå®ƒæŠŠè¾¹å®šä¹‰æˆ `reports_to` / `collaborates_with`ï¼ˆé™æ€æ±‡æŠ¥ç»“构),而实际需è¦çš„æ˜¯**带 success/fail æ¡ä»¶çš„æ‰§è¡Œæµè¾¹**,与 work graph çš„è¾¹åŒæž„。汇报关系如果还需è¦ï¼Œåº”é™çº§ä¸ºèŠ‚ç‚¹ä¸Šçš„å…ƒæ•°æ®å±žæ€§ï¼Œè€Œä¸æ˜¯ org graph 的主干è¯ä¹‰ã€‚ | 180 | +> **è¿™æ„å‘³ç€ [27-P2](../../done/system-design/27-p2-org-graph.md) 现在的 org graph æ¨¡åž‹éœ€è¦æ”¹**ï¼šå®ƒæŠŠè¾¹å®šä¹‰æˆ `reports_to` / `collaborates_with`ï¼ˆé™æ€æ±‡æŠ¥ç»“构),而实际需è¦çš„æ˜¯**带 success/fail æ¡ä»¶çš„æ‰§è¡Œæµè¾¹**,与 work graph çš„è¾¹åŒæž„。汇报关系如果还需è¦ï¼Œåº”é™çº§ä¸ºèŠ‚ç‚¹ä¸Šçš„å…ƒæ•°æ®å±žæ€§ï¼Œè€Œä¸æ˜¯ org graph 的主干è¯ä¹‰ã€‚ |
| 181 | > | 181 | > |
| 182 | > **好处**:一套 schemaã€ä¸€å¥—执行引擎ã€ä¸€å¥—æŽ§åˆ¶å° UIï¼Œåœ¨ä¸¤ä¸ªå±‚çº§ä¸ŠåŽŸæ ·å¤ç”¨ï¼›ä¸‰å±‚下钻(org graph → work graph → 并行å图)天然递归;"å¯åЍ/下一æ¥/æš‚åœ/åœæ¢/é‡è¯•"五个æ“作在æ¯ä¸€å±‚è¯ä¹‰å®Œå…¨ä¸€è‡´ã€‚ | 182 | > **好处**:一套 schemaã€ä¸€å¥—执行引擎ã€ä¸€å¥—æŽ§åˆ¶å° UIï¼Œåœ¨ä¸¤ä¸ªå±‚çº§ä¸ŠåŽŸæ ·å¤ç”¨ï¼›ä¸‰å±‚下钻(org graph → work graph → 并行å图)天然递归;"å¯åЍ/下一æ¥/æš‚åœ/åœæ¢/é‡è¯•"五个æ“作在æ¯ä¸€å±‚è¯ä¹‰å®Œå…¨ä¸€è‡´ã€‚ |
| 183 | > | 183 | > |
| @@ -356,7 +356,7 @@ DevLoop 就这个问题åšè¿‡æ˜¾å¼å†³ç–(`loops-l2.md` 方案 A/B/C),选æ | @@ -356,7 +356,7 @@ DevLoop 就这个问题åšè¿‡æ˜¾å¼å†³ç–(`loops-l2.md` 方案 A/B/C),选æ | ||
| 356 | 356 | ||
| 357 | **所有 org graph / work graph çš„ node agent,都由一个元 agent 架构继承生æˆï¼Œç»Ÿä¸€æ˜¯ã€Œå…¨å±€é€šç”¨æœ¬ä½“ + å…¬å¸/角色记忆分区ã€çš„结构。** | 357 | **所有 org graph / work graph çš„ node agent,都由一个元 agent 架构继承生æˆï¼Œç»Ÿä¸€æ˜¯ã€Œå…¨å±€é€šç”¨æœ¬ä½“ + å…¬å¸/角色记忆分区ã€çš„结构。** |
| 358 | 358 | ||
| 359 | -è¿™æ¡å®šæ¡ˆå–代了 v0.1 §四 里"三个验收 agent è¦ä¸è¦æŒ‰çˆ¶èŠ‚ç‚¹ç‰¹åŒ–"è¿™ä¸ªé—®é¢˜â€”â€”ç”æ¡ˆæ˜¯**ä¸ç‰¹åŒ–**:ä¸å˜åœ¨ `goal-benchmark` / `test-planner-benchmark` å„自独立的 agentï¼Œåªæœ‰é€šç”¨çš„ benchmark 设计能力,é 记忆分区区分它在ä¸åŒ org node / ä¸åŒå…¬å¸ä¸‹çš„ç»éªŒç§¯ç´¯ã€‚agent æ± ä¸éš org node æ•°é‡è†¨èƒ€ï¼Œä¹Ÿä¸Ž [27-P1](./27-p1-virtual-reference.md) 虚拟引用寻å€çš„åˆè¡·ä¸€è‡´ï¼ˆåŒä¸€ä»½æœ¬ä½“,多处引用,å„è‡ªç§æœ‰è¯å¢ƒï¼‰ã€‚ | 359 | +è¿™æ¡å®šæ¡ˆå–代了 v0.1 §四 里"三个验收 agent è¦ä¸è¦æŒ‰çˆ¶èŠ‚ç‚¹ç‰¹åŒ–"è¿™ä¸ªé—®é¢˜â€”â€”ç”æ¡ˆæ˜¯**ä¸ç‰¹åŒ–**:ä¸å˜åœ¨ `goal-benchmark` / `test-planner-benchmark` å„自独立的 agentï¼Œåªæœ‰é€šç”¨çš„ benchmark 设计能力,é 记忆分区区分它在ä¸åŒ org node / ä¸åŒå…¬å¸ä¸‹çš„ç»éªŒç§¯ç´¯ã€‚agent æ± ä¸éš org node æ•°é‡è†¨èƒ€ï¼Œä¹Ÿä¸Ž [27-P1](../../done/system-design/27-p1-virtual-reference.md) 虚拟引用寻å€çš„åˆè¡·ä¸€è‡´ï¼ˆåŒä¸€ä»½æœ¬ä½“,多处引用,å„è‡ªç§æœ‰è¯å¢ƒï¼‰ã€‚ |
| 360 | 360 | ||
| 361 | ✅ **å…ƒ agent 在仓库里已ç»å˜åœ¨**:`system/templates/base/`("æ ‡å‡†åŸºåº§å‘˜å·¥ Base Agent")。它已ç»å¼ºåˆ¶äº†ä¸€å¥—四段å¼ç”Ÿå‘½å‘¨æœŸï¼š | 361 | ✅ **å…ƒ agent 在仓库里已ç»å˜åœ¨**:`system/templates/base/`("æ ‡å‡†åŸºåº§å‘˜å·¥ Base Agent")。它已ç»å¼ºåˆ¶äº†ä¸€å¥—四段å¼ç”Ÿå‘½å‘¨æœŸï¼š |
| 362 | 362 | ||
| @@ -376,9 +376,9 @@ RESEARCH → PLAN → EXECUTE → VERIFY | @@ -376,9 +376,9 @@ RESEARCH → PLAN → EXECUTE → VERIFY | ||
| 376 | 376 | ||
| 377 | | # | 文档 | 原错误陈述 | 事实 | 修订结果 | | 377 | | # | 文档 | 原错误陈述 | 事实 | 修订结果 | |
| 378 | |---|---|---|---|---| | 378 | |---|---|---|---|---| |
| 379 | -| 1 | [27-P2](./27-p2-org-graph.md) §ä¹ã€[27-P3/P4](./27-p3-p4-work-graph-console.md) Â§ä¹ | "P1 ç›®å‰ä»æ˜¯è®¾è®¡ç¨¿ï¼Œæœªå®žçŽ°ï¼Œ`graph-service.js` å°šä¸å˜åœ¨" | **P1 已实现并æäº¤**(commit `226489d`),`server/services/graph-service.js` å·²å˜åœ¨ï¼Œé…套测试 `graph-service.test.js` / `agent-manager-p1.test.js` å‡åœ¨ | **✅ 已改**。27-P2 文件头「å‰ç½®ã€å·²å†™æ˜Žã€ŒP1 虚拟引用寻å€å·²å®žçŽ°ï¼ˆcommit `226489d`)ã€ï¼›27-P3/P4 §ä¹ã€Œä¸Ž P1ã€æ¡å†™æ˜Žã€Œæ— 直接ä¾èµ–,已实现(commit `226489d`)〠| | 379 | +| 1 | [27-P2](../../done/system-design/27-p2-org-graph.md) §ä¹ã€[27-P3/P4](./27-p3-p4-work-graph-console.md) Â§ä¹ | "P1 ç›®å‰ä»æ˜¯è®¾è®¡ç¨¿ï¼Œæœªå®žçŽ°ï¼Œ`graph-service.js` å°šä¸å˜åœ¨" | **P1 已实现并æäº¤**(commit `226489d`),`server/services/graph-service.js` å·²å˜åœ¨ï¼Œé…套测试 `graph-service.test.js` / `agent-manager-p1.test.js` å‡åœ¨ | **✅ 已改**。27-P2 文件头「å‰ç½®ã€å·²å†™æ˜Žã€ŒP1 虚拟引用寻å€å·²å®žçŽ°ï¼ˆcommit `226489d`)ã€ï¼›27-P3/P4 §ä¹ã€Œä¸Ž P1ã€æ¡å†™æ˜Žã€Œæ— 直接ä¾èµ–,已实现(commit `226489d`)〠| |
| 380 | | 2 | [27-P3/P4](./27-p3-p4-work-graph-console.md) §三.1 | "`runProject` ç›®å‰ç›´æŽ¥ 501" | **已完整实现**(`loop-controller.js:576`ï¼‰ï¼Œå« Kahn 分波ã€L2 闸门ã€Triager 四分支ã€é¢„ç®—ç†”æ– | **✅ 已改**。27-P3/P4 §三.1 现为「`runProject()`(行 576,**已完整实现**…)ã€ï¼Œå¹¶è¿½åŠ äº†ã€Œæ³¢å†…å®žé™…æ˜¯ä¸²è¡Œã€çš„补充观察 | | 380 | | 2 | [27-P3/P4](./27-p3-p4-work-graph-console.md) §三.1 | "`runProject` ç›®å‰ç›´æŽ¥ 501" | **已完整实现**(`loop-controller.js:576`ï¼‰ï¼Œå« Kahn 分波ã€L2 闸门ã€Triager 四分支ã€é¢„ç®—ç†”æ– | **✅ 已改**。27-P3/P4 §三.1 现为「`runProject()`(行 576,**已完整实现**…)ã€ï¼Œå¹¶è¿½åŠ äº†ã€Œæ³¢å†…å®žé™…æ˜¯ä¸²è¡Œã€çš„补充观察 | |
| 381 | -| 3 | [27-P2](./27-p2-org-graph.md) §4.1 | æè®®å»ºéƒ¨åˆ†å”¯ä¸€ç´¢å¼• `idx_org_graph_nodes_company_role_active`(带 `WHERE status='active'`),但没说è¦å…ˆ DROP 旧索引 | **`graph-service.js` å·²ç»å»ºäº†å…¨é‡å”¯ä¸€ç´¢å¼• `idx_org_graph_nodes_company_role`**ï¼ˆæ— WHERE),必须先 DROP | **✅ 已改且已è½åœ°ä»£ç **。27-P2 §4.1 çš„ SQL 现以 `DROP INDEX IF EXISTS idx_org_graph_nodes_company_role;` 开头;`graph-db.js:59-60` å·²å®žçŽ°è¿™æ¡ DROP + é‡å»º | | 381 | +| 3 | [27-P2](../../done/system-design/27-p2-org-graph.md) §4.1 | æè®®å»ºéƒ¨åˆ†å”¯ä¸€ç´¢å¼• `idx_org_graph_nodes_company_role_active`(带 `WHERE status='active'`),但没说è¦å…ˆ DROP 旧索引 | **`graph-service.js` å·²ç»å»ºäº†å…¨é‡å”¯ä¸€ç´¢å¼• `idx_org_graph_nodes_company_role`**ï¼ˆæ— WHERE),必须先 DROP | **✅ 已改且已è½åœ°ä»£ç **。27-P2 §4.1 çš„ SQL 现以 `DROP INDEX IF EXISTS idx_org_graph_nodes_company_role;` 开头;`graph-db.js:59-60` å·²å®žçŽ°è¿™æ¡ DROP + é‡å»º | |
| 382 | | 4 | [27-P3/P4](./27-p3-p4-work-graph-console.md) §四.B.2ã€Â§äº” T3 | 把"手写分层布局算法,ä¸å¼•入图形库"当作**æ–°**å·¥ä½œé‡ | `web/src/components/devloop/UnitsDAG.vue` **已实现** SVG + Kahn 分波布局 | **✅ 已改**。27-P3/P4 §三.5 新增「å‰ç«¯ DAG 已实现,扩展而éžé‡å†™ã€ä¸€èŠ‚ï¼›Â§å››.B.2 与 §五 T3 凿”¹ä¸ºã€Œ**扩展 `UnitsDAG.vue`**ã€ï¼Œå¹¶æŠŠæ–°å¢žå·¥ä½œé‡æ”¶çª„到「subgraph è§’æ ‡ + backward 曲线路由 + å¾ªçŽ¯å¾½æ ‡ã€ä¸‰å— | | 382 | | 4 | [27-P3/P4](./27-p3-p4-work-graph-console.md) §四.B.2ã€Â§äº” T3 | 把"手写分层布局算法,ä¸å¼•入图形库"当作**æ–°**å·¥ä½œé‡ | `web/src/components/devloop/UnitsDAG.vue` **已实现** SVG + Kahn 分波布局 | **✅ 已改**。27-P3/P4 §三.5 新增「å‰ç«¯ DAG 已实现,扩展而éžé‡å†™ã€ä¸€èŠ‚ï¼›Â§å››.B.2 与 §五 T3 凿”¹ä¸ºã€Œ**扩展 `UnitsDAG.vue`**ã€ï¼Œå¹¶æŠŠæ–°å¢žå·¥ä½œé‡æ”¶çª„到「subgraph è§’æ ‡ + backward 曲线路由 + å¾ªçŽ¯å¾½æ ‡ã€ä¸‰å— | |
| 383 | 383 | ||
| 384 | ### æ¤å¤–å»ºè®®ï¼ˆå¤æ ¸ç»“论) | 384 | ### æ¤å¤–å»ºè®®ï¼ˆå¤æ ¸ç»“论) |
docs/todo/system-design/27-example-dev-company-walkthrough.md
| @@ -33,7 +33,7 @@ | @@ -33,7 +33,7 @@ | ||
| 33 | } | 33 | } |
| 34 | ``` | 34 | ``` |
| 35 | 35 | ||
| 36 | -**系统动作**([27-P2](./27-p2-org-graph.md) §4.10): | 36 | +**系统动作**([27-P2](../../done/system-design/27-p2-org-graph.md) §4.10): |
| 37 | 37 | ||
| 38 | 1. `companyService.create()` 建目录 + `company.json`(`agents: []`) | 38 | 1. `companyService.create()` 建目录 + `company.json`(`agents: []`) |
| 39 | 2. 🔴 自动 `hire(id, 'orggraph-planning', {})` | 39 | 2. 🔴 自动 `hire(id, 'orggraph-planning', {})` |
| @@ -48,7 +48,7 @@ | @@ -48,7 +48,7 @@ | ||
| 48 | **它读三样东西**: | 48 | **它读三样东西**: |
| 49 | 49 | ||
| 50 | 1. 公司 description(上面那段) | 50 | 1. 公司 description(上面那段) |
| 51 | -2. `system/org-graph-templates/*.json`(候选骨架,[27-P2](./27-p2-org-graph.md) §4.8) | 51 | +2. `system/org-graph-templates/*.json`(候选骨架,[27-P2](../../done/system-design/27-p2-org-graph.md) §4.8) |
| 52 | 3. `node bin/lemon.js company templates`(现实里能招到的角色,`listTemplates()` 返回 id/name/type/description) | 52 | 3. `node bin/lemon.js company templates`(现实里能招到的角色,`listTemplates()` 返回 id/name/type/description) |
| 53 | 53 | ||
| 54 | **它的判断**:description 里有"做一个工具""跑在本地""CLI 版本"→ 匹配 `dev.json`。 | 54 | **它的判断**:description 里有"做一个工具""跑在本地""CLI 版本"→ 匹配 `dev.json`。 |
| @@ -76,7 +76,7 @@ | @@ -76,7 +76,7 @@ | ||
| 76 | 76 | ||
| 77 | `ceo` / `hr` 这类不参与任务执行的角色仍然可以被招聘进公司(存在于 `company.json.agents[]`),但**不出现在 org graph 这张 workflow 里**——org graph 只画"任务怎么流过这家公司"。 | 77 | `ceo` / `hr` 这类不参与任务执行的角色仍然可以被招聘进公司(存在于 `company.json.agents[]`),但**不出现在 org graph 这张 workflow 里**——org graph 只画"任务怎么流过这家公司"。 |
| 78 | 78 | ||
| 79 | -**它提交图 + 执行招聘**(两步,[27-P2](./27-p2-org-graph.md) §4.1 第 6-7 步): | 79 | +**它提交图 + 执行招聘**(两步,[27-P2](../../done/system-design/27-p2-org-graph.md) §4.1 第 6-7 步): |
| 80 | 80 | ||
| 81 | ```bash | 81 | ```bash |
| 82 | # 1. 整体提交图定义,过四项校验(无环 / 单一入口 / 可达性 / 回退边标注)后事务性落库 | 82 | # 1. 整体提交图定义,过四项校验(无环 / 单一入口 / 可达性 / 回退边标注)后事务性落库 |
| @@ -255,10 +255,10 @@ brd-planning → prd-planning → sdd-planning ─┬→ goal-test-data ── | @@ -255,10 +255,10 @@ brd-planning → prd-planning → sdd-planning ─┬→ goal-test-data ── | ||
| 255 | | 1 | `qa-judge` 没有程序化调用入口(判决无法驱动任何自动动作) | 5, 6, 7 | [27-E2E](./27-e2e-task-execution-flow.md) §11.3 | | 255 | | 1 | `qa-judge` 没有程序化调用入口(判决无法驱动任何自动动作) | 5, 6, 7 | [27-E2E](./27-e2e-task-execution-flow.md) §11.3 | |
| 256 | | 2 | org-validator 节点的验收执行能力(跑 test_script / 喂 test_data)未实现 | 5, 7 | §11.3 | | 256 | | 2 | org-validator 节点的验收执行能力(跑 test_script / 喂 test_data)未实现 | 5, 7 | §11.3 | |
| 257 | | 3 | 「用户 → 公司」任务入口不存在 | 3 | §三 阶段 3 | | 257 | | 3 | 「用户 → 公司」任务入口不存在 | 3 | §三 阶段 3 | |
| 258 | -| 4 | **P2 的 org graph 边模型需从 `reports_to` 改为 `success`/`fail` 执行流边** | 2, 4 | §五定案 + [27-P2](./27-p2-org-graph.md) v0.4 修正 | | 258 | +| 4 | **P2 的 org graph 边模型需从 `reports_to` 改为 `success`/`fail` 执行流边** | 2, 4 | §五定案 + [27-P2](../../done/system-design/27-p2-org-graph.md) v0.4 修正 | |
| 259 | | 5 | fan-out 并行撞 CONVENTIONS §12 不变量 + SessionPool key 复用 | 5, 6 | §7.4 | | 259 | | 5 | fan-out 并行撞 CONVENTIONS §12 不变量 + SessionPool key 复用 | 5, 6 | §7.4 | |
| 260 | | 6 | 任务级总预算不存在 | 7 | §7.1 | | 260 | | 6 | 任务级总预算不存在 | 7 | §7.1 | |
| 261 | | 7 | L4-general 的 agent dream 流程不存在(跨公司批量蒸馏层缺失,单点接口已齐) | 7 之后(离线) | §8.1 | | 261 | | 7 | L4-general 的 agent dream 流程不存在(跨公司批量蒸馏层缺失,单点接口已齐) | 7 之后(离线) | §8.1 | |
| 262 | -| 8 | orggraph-planning / workgraph-planning agent 均未实现 | 2, 5, 6 | [27-P2](./27-p2-org-graph.md) §4.9 | | 262 | +| 8 | orggraph-planning / workgraph-planning agent 均未实现 | 2, 5, 6 | [27-P2](../../done/system-design/27-p2-org-graph.md) §4.9 | |
| 263 | 263 | ||
| 264 | 第 4 项是**架构前提**,必须先改;改完之后做 1-3 项,这个场景就能在"串行、无 L4"的模式下端到端跑通一遍。 | 264 | 第 4 项是**架构前提**,必须先改;改完之后做 1-3 项,这个场景就能在"串行、无 L4"的模式下端到端跑通一遍。 |
docs/todo/system-design/27-graph-agent-architecture.md
| @@ -35,7 +35,7 @@ | @@ -35,7 +35,7 @@ | ||
| 35 | |------|------| | 35 | |------|------| |
| 36 | | **System Agent** | 全局唯一的可执行 Agent 实体。自带 prompt 定义、公共记忆(`memory.md`)、按公司分区的私有历史。是 24 号文档里"System Agent"与"Agent Template"两个概念的合并——不再区分"模板"和"实例",只有"这个 agent,被谁调用过"。 | | 36 | | **System Agent** | 全局唯一的可执行 Agent 实体。自带 prompt 定义、公共记忆(`memory.md`)、按公司分区的私有历史。是 24 号文档里"System Agent"与"Agent Template"两个概念的合并——不再区分"模板"和"实例",只有"这个 agent,被谁调用过"。 | |
| 37 | | **scope** | System Agent 的可见性:`public`(跨公司共享,记忆公共累积)或 `company`(私有,只属于 `owner_company_id` 指定的一家公司)。 | | 37 | | **scope** | System Agent 的可见性:`public`(跨公司共享,记忆公共累积)或 `company`(私有,只属于 `owner_company_id` 指定的一家公司)。 | |
| 38 | -| **Org Graph** | **company 级别生成的 workflow**。由 `orggraph-planning` agent 在建公司时根据公司目标/描述生成一次。节点 = 对某个 org node agent 的引用;边 = **执行流**(`condition ∈ {success, fail}` + `edge_kind ∈ {forward, backward}`)。⚠️ v0.3 修正:本文档 v0.2 曾把它定义为"静态汇报结构、边是汇报/协作关系",该建模已作废,详见 [27-P2 v0.4](./27-p2-org-graph.md) §一。 | | 38 | +| **Org Graph** | **company 级别生成的 workflow**。由 `orggraph-planning` agent 在建公司时根据公司目标/描述生成一次。节点 = 对某个 org node agent 的引用;边 = **执行流**(`condition ∈ {success, fail}` + `edge_kind ∈ {forward, backward}`)。⚠️ v0.3 修正:本文档 v0.2 曾把它定义为"静态汇报结构、边是汇报/协作关系",该建模已作废,详见 [27-P2 v0.4](../../done/system-design/27-p2-org-graph.md) §一。 | |
| 39 | | **Work Graph** | **org graph node 级别生成的 workflow**。某个 org node 收到任务后,现场调用 `workgraph-planning` agent 针对这一具体任务规划出。节点 = 对某个 system agent 的一次调用;边的语义与 Org Graph **完全同构**。执行完归档,不复用到下一个任务。 | | 39 | | **Work Graph** | **org graph node 级别生成的 workflow**。某个 org node 收到任务后,现场调用 `workgraph-planning` agent 针对这一具体任务规划出。节点 = 对某个 system agent 的一次调用;边的语义与 Org Graph **完全同构**。执行完归档,不复用到下一个任务。 | |
| 40 | | **两者关系** | Org Graph 与 Work Graph 是**同一种东西在不同层级上的递归**——同一套 schema 形态、同一个执行引擎、同一套控制台 UI,区别只在生成者、生成时机、节点指向。 | | 40 | | **两者关系** | Org Graph 与 Work Graph 是**同一种东西在不同层级上的递归**——同一套 schema 形态、同一个执行引擎、同一套控制台 UI,区别只在生成者、生成时机、节点指向。 | |
| 41 | | **Loop-Validator** | 一个专职的 system agent,内置带硬编码熔断逻辑的 skill。所有"回退到历史节点"的边必须先经过它:备案 → 审计上次修复是否生效 → 判断修复方案是否被正确传递 → 循环数 > 3 强制终止。 | | 41 | | **Loop-Validator** | 一个专职的 system agent,内置带硬编码熔断逻辑的 skill。所有"回退到历史节点"的边必须先经过它:备案 → 审计上次修复是否生效 → 判断修复方案是否被正确传递 → 循环数 > 3 强制终止。 | |
| @@ -101,7 +101,7 @@ system/agents/{agentId}/ | @@ -101,7 +101,7 @@ system/agents/{agentId}/ | ||
| 101 | 101 | ||
| 102 | ### 3.3 Org Graph:company 级 workflow | 102 | ### 3.3 Org Graph:company 级 workflow |
| 103 | 103 | ||
| 104 | -> ⚠️ **v0.3 修正**:本节 v0.2 的内容("公司静态结构、边是汇报/协作关系、招聘时由 CEO 或 HR 维护")已作废。完整设计见 [27-P2 v0.4](./27-p2-org-graph.md)。 | 104 | +> ⚠️ **v0.3 修正**:本节 v0.2 的内容("公司静态结构、边是汇报/协作关系、招聘时由 CEO 或 HR 维护")已作废。完整设计见 [27-P2 v0.4](../../done/system-design/27-p2-org-graph.md)。 |
| 105 | 105 | ||
| 106 | - **节点**:对某个 org node agent 的引用(`org_graph_nodes`)。 | 106 | - **节点**:对某个 org node agent 的引用(`org_graph_nodes`)。 |
| 107 | - **边**:**执行流**(`org_graph_edges`:`condition ∈ {success, fail}`、`edge_kind ∈ {forward, backward}`),与 `work_graph_edges` 同构。 | 107 | - **边**:**执行流**(`org_graph_edges`:`condition ∈ {success, fail}`、`edge_kind ∈ {forward, backward}`),与 `work_graph_edges` 同构。 |
| @@ -225,8 +225,8 @@ CREATE TABLE work_graph_edges ( | @@ -225,8 +225,8 @@ CREATE TABLE work_graph_edges ( | ||
| 225 | | Phase | 目标 | 交付物 | 验收标准 | | 225 | | Phase | 目标 | 交付物 | 验收标准 | |
| 226 | |-------|------|--------|----------| | 226 | |-------|------|--------|----------| |
| 227 | | **P0 地基** ✅ | 建表 + 现有数据迁移,不改变任何现有执行路径 | `system_agents`/`org_graph_*` 表;把现有 `system/agents/` + `system/templates/` 目录扫描导入为种子数据(`system_agents` 行,`scope` 按当前所属推断) | 迁移脚本跑完,`system_agents` 表行数与现有 agent+模板目录数一致(**实际行数与本文档最初估计不同,见第七节**);现有 `company-service.js` 行为不变(并行只读验证,已确认零改动) | | 227 | | **P0 地基** ✅ | 建表 + 现有数据迁移,不改变任何现有执行路径 | `system_agents`/`org_graph_*` 表;把现有 `system/agents/` + `system/templates/` 目录扫描导入为种子数据(`system_agents` 行,`scope` 按当前所属推断) | 迁移脚本跑完,`system_agents` 表行数与现有 agent+模板目录数一致(**实际行数与本文档最初估计不同,见第七节**);现有 `company-service.js` 行为不变(并行只读验证,已确认零改动) | |
| 228 | -| **P1 虚拟引用** | 停止文件拷贝,改为引用 | 改造 `AgentManager.getAgentConfig()` + `PromptBuilder.build()` 支持 `(agentId, companyId)` 寻址;`company-service.hire()` 改为创建 org_graph 引用节点而非 `_copyTemplate()`。细化需求与设计见 [27-P1 虚拟引用寻址](./27-p1-virtual-reference.md) | 新雇佣的 agent 不再产生文件拷贝,调用时能正确拼装公共+私有上下文;旧公司(仍是拷贝模式)继续可跑,不强制迁移存量数据 | | ||
| 229 | -| **P2 Org Graph** | `company.json.agents[]` 迁移为图结构 | `org_graph_nodes`/`edges` 落地;HR/CEO 招聘走新表。细化需求与设计见 [27-P2 Org Graph 落地](./27-p2-org-graph.md) | 现有 Company Dashboard 前端能正确读出 org graph 并渲染(哪怕暂时按列表展示) | | 228 | +| **P1 虚拟引用** | 停止文件拷贝,改为引用 | 改造 `AgentManager.getAgentConfig()` + `PromptBuilder.build()` 支持 `(agentId, companyId)` 寻址;`company-service.hire()` 改为创建 org_graph 引用节点而非 `_copyTemplate()`。细化需求与设计见 [27-P1 虚拟引用寻址](../../done/system-design/27-p1-virtual-reference.md) | 新雇佣的 agent 不再产生文件拷贝,调用时能正确拼装公共+私有上下文;旧公司(仍是拷贝模式)继续可跑,不强制迁移存量数据 | |
| 229 | +| **P2 Org Graph** | `company.json.agents[]` 迁移为图结构 | `org_graph_nodes`/`edges` 落地;HR/CEO 招聘走新表。细化需求与设计见 [27-P2 Org Graph 落地](../../done/system-design/27-p2-org-graph.md) | 现有 Company Dashboard 前端能正确读出 org graph 并渲染(哪怕暂时按列表展示) | | ||
| 230 | | **P3+P4 图执行引擎与执行控制台**(**两个 Phase 已合并**) | **一套引擎同时驱动 org graph 与 work graph**(R-15.4 引擎泛化),带回退与熔断 | 定义层 `work_graphs`/`work_graph_nodes`/`work_graph_edges` + **两层共用的运行时层** `graph_runs`/`graph_run_nodes`/`graph_run_loop_records`(共五张新表);`graph-engine.js` 的 `advanceOne(runId)` 幂等推进原语 + 两种 node executor(`agent_call` / `subgraph`);五个控制操作(启动 / 下一步 / 暂停 / 停止 / 重试)× 手动·自动两种模式;`GraphConsole.vue` 执行控制台页面;`workgraph-planning` agent + 用户→公司任务入口。细化需求与设计见 [27-P3/P4 Work Graph 执行控制台](./27-p3-p4-work-graph-console.md) **v0.3**,落地切成**五个可独立验收的阶段**(0 验收契约 / A 引擎地基 / B 回退熔断 / C 控制台 / D 规划闭环) | 见该文档 §六 的 17 条。**核心验收点是第 6 条**:一张 `graph_kind='org'` 的图与一张 work graph 用**同一套端点、同一条代码路径**跑通「手动逐步 / 自动跑完 / 暂停恢复 / 停止」;外加第 8 条「总是失败的节点第 4 次 `force_terminated` 收敛到 `blocked`」、第 17 条「一句自然语言任务两层跑到 `completed`」 | | 230 | | **P3+P4 图执行引擎与执行控制台**(**两个 Phase 已合并**) | **一套引擎同时驱动 org graph 与 work graph**(R-15.4 引擎泛化),带回退与熔断 | 定义层 `work_graphs`/`work_graph_nodes`/`work_graph_edges` + **两层共用的运行时层** `graph_runs`/`graph_run_nodes`/`graph_run_loop_records`(共五张新表);`graph-engine.js` 的 `advanceOne(runId)` 幂等推进原语 + 两种 node executor(`agent_call` / `subgraph`);五个控制操作(启动 / 下一步 / 暂停 / 停止 / 重试)× 手动·自动两种模式;`GraphConsole.vue` 执行控制台页面;`workgraph-planning` agent + 用户→公司任务入口。细化需求与设计见 [27-P3/P4 Work Graph 执行控制台](./27-p3-p4-work-graph-console.md) **v0.3**,落地切成**五个可独立验收的阶段**(0 验收契约 / A 引擎地基 / B 回退熔断 / C 控制台 / D 规划闭环) | 见该文档 §六 的 17 条。**核心验收点是第 6 条**:一张 `graph_kind='org'` 的图与一张 work graph 用**同一套端点、同一条代码路径**跑通「手动逐步 / 自动跑完 / 暂停恢复 / 停止」;外加第 8 条「总是失败的节点第 4 次 `force_terminated` 收敛到 `blocked`」、第 17 条「一句自然语言任务两层跑到 `completed`」 | |
| 231 | | ~~**P4 回退 + Loop-Validator**~~ | **已并入上一行**,不再单列 | 合并理由见 [27-P3/P4](./27-p3-p4-work-graph-console.md) §二:执行引擎一旦要支持「暂停/单步/停止/重试」这种可被外部随时打断的控制语义,「先做单向、再加回退」会让第一版状态机设计得过窄,P4 加回退时必然回来重改数据模型和主循环。**两处定案变更**:① 熔断改为**引擎无条件做的整数计数**(单边 `loop_count > 3` + run 级 `backward_count > 5` 双层硬顶),不依赖 LLM,`loop_validator` 节点由「强制」降级为**可选增强**;② 结构校验从四项扩到**五项**,新增 `fail-fallback-edge`(有 `fail` 出边的节点必须留一条 `fail_reason IS NULL` 兜底边),org / work 两层都加 | 同上 | | 231 | | ~~**P4 回退 + Loop-Validator**~~ | **已并入上一行**,不再单列 | 合并理由见 [27-P3/P4](./27-p3-p4-work-graph-console.md) §二:执行引擎一旦要支持「暂停/单步/停止/重试」这种可被外部随时打断的控制语义,「先做单向、再加回退」会让第一版状态机设计得过窄,P4 加回退时必然回来重改数据模型和主循环。**两处定案变更**:① 熔断改为**引擎无条件做的整数计数**(单边 `loop_count > 3` + run 级 `backward_count > 5` 双层硬顶),不依赖 LLM,`loop_validator` 节点由「强制」降级为**可选增强**;② 结构校验从四项扩到**五项**,新增 `fail-fallback-edge`(有 `fail` 出边的节点必须留一条 `fail_reason IS NULL` 兜底边),org / work 两层都加 | 同上 | |
| 232 | | **P4 并行执行与产物索引**(**回收编号**) | fan-out 真并发 + 产物统一索引 | `advanceBatch` 批量拾取(手动模式退化为 `maxConcurrency=1`,行为与 P3 一致);同 agent 多实例隔离(启用 `SessionPool.getKey` 已预留但从未使用的 `scope` 参数);解除「一家公司一个 active root run」;`data/companies/{cid}/tasks/{taskId}/` 产物目录 + `files.json` 检索索引。细化设计见 [27-P4 并行执行与产物索引](./27-p4-parallel-and-artifacts.md) | 3 个并行分支同时 running 且总墙钟明显短于串行;部分失败时 fan-in 停等且可视化「在等谁」;`files.json` 可从节点行 rebuild | | 232 | | **P4 并行执行与产物索引**(**回收编号**) | fan-out 真并发 + 产物统一索引 | `advanceBatch` 批量拾取(手动模式退化为 `maxConcurrency=1`,行为与 P3 一致);同 agent 多实例隔离(启用 `SessionPool.getKey` 已预留但从未使用的 `scope` 参数);解除「一家公司一个 active root run」;`data/companies/{cid}/tasks/{taskId}/` 产物目录 + `files.json` 检索索引。细化设计见 [27-P4 并行执行与产物索引](./27-p4-parallel-and-artifacts.md) | 3 个并行分支同时 running 且总墙钟明显短于串行;部分失败时 fan-in 停等且可视化「在等谁」;`files.json` 可从节点行 rebuild | |
| @@ -263,7 +263,7 @@ P0 阶段的处理方式是**迁移脚本层面的临时保护**:`system_agent | @@ -263,7 +263,7 @@ P0 阶段的处理方式是**迁移脚本层面的临时保护**:`system_agent | ||
| 263 | - **[27-E2E 端到端任务执行流程](./27-e2e-task-execution-flow.md)** — 跨阶段总览:从建公司 → 下达任务 → org graph 逐节点执行 → work graph 规划与循环 → 验收收敛。**建议先读这一份**,它指出了本文档体系与已有 DevLoop 实现之间的对应关系、三处语义冲突和若干空白。 | 263 | - **[27-E2E 端到端任务执行流程](./27-e2e-task-execution-flow.md)** — 跨阶段总览:从建公司 → 下达任务 → org graph 逐节点执行 → work graph 规划与循环 → 验收收敛。**建议先读这一份**,它指出了本文档体系与已有 DevLoop 实现之间的对应关系、三处语义冲突和若干空白。 |
| 264 | - **[27-NAMING 命名规范](./27-naming-conventions.md)** — 跨文档命名约定(`{作用域}-{职能}`)。新增 agent id / 表名 / 字段名前必读,避免与既有的 `benchmark` / `goal` 等命名撞车。 | 264 | - **[27-NAMING 命名规范](./27-naming-conventions.md)** — 跨文档命名约定(`{作用域}-{职能}`)。新增 agent id / 表名 / 字段名前必读,避免与既有的 `benchmark` / `goal` 等命名撞车。 |
| 265 | - **[27-EXAMPLE 参考场景走查](./27-example-dev-company-walkthrough.md)** — 把上面那套架构在一家具体公司上跑一遍数(含各阶段真实形态的 JSON / 图 / 成本估算 / 断点清单)。实现时的靶子与端到端验收场景。 | 265 | - **[27-EXAMPLE 参考场景走查](./27-example-dev-company-walkthrough.md)** — 把上面那套架构在一家具体公司上跑一遍数(含各阶段真实形态的 JSON / 图 / 成本估算 / 断点清单)。实现时的靶子与端到端验收场景。 |
| 266 | -- [27-P1 虚拟引用寻址](./27-p1-virtual-reference.md) — 已实现(commit `226489d`) | ||
| 267 | -- [27-P2 Org Graph 落地](./27-p2-org-graph.md) — 设计稿 | 266 | +- [27-P1 虚拟引用寻址](../../done/system-design/27-p1-virtual-reference.md) — 已实现(commit `226489d`) |
| 267 | +- [27-P2 Org Graph 落地](../../done/system-design/27-p2-org-graph.md) — 设计稿 | ||
| 268 | - [27-P3/P4 Work Graph 执行控制台](./27-p3-p4-work-graph-console.md) — 已实现(commit `c3abf4a`) | 268 | - [27-P3/P4 Work Graph 执行控制台](./27-p3-p4-work-graph-console.md) — 已实现(commit `c3abf4a`) |
| 269 | - [27-P4 并行执行与产物索引](./27-p4-parallel-and-artifacts.md) — 设计稿 | 269 | - [27-P4 并行执行与产物索引](./27-p4-parallel-and-artifacts.md) — 设计稿 |