Commit 95ef7825c79baf694765ace9033ba0d6da7d19d3
1 parent
63115154
docs(27-P3C): 补毕业闸门的三个权威判据,标注一个已被踩过的取值域坑
并行的 agent 重构那条线同步来的,已核实三个函数都在: - agent-locator.js missingBodyDefinition() 判什么算没填完 - graph-service.js promoteDraftIfComplete() 转正动作 - graph-service.js isUngraduatedStatus() hire() 挡人的判据 关键是最后一个只挡 draft / training 两个状态,不是「≠ active 就挡」。 库里有 36 个本体的 status 是 enabled/idle/ready/trained,按「不等于 active」判会被全部误判成没填完 —— 这个坑已经被踩过一次。 取值域的唯一持有者是 graph-service,不要在别处复述 —— 与本文档 §六.3 记的 canDispatch 教训(前端复述了一份取值域还多写一个 blocked,导致公司失败一次后再也下不了任务)是同一个病。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Showing
1 changed file
with
5 additions
and
1 deletions
docs/todo/system-design/27-p3c-goal-task-model.md
| ... | ... | @@ -313,7 +313,11 @@ AgentManager è°ƒ task-planning(输入:goal.description + å…¬å¸ org graph æ‘ |
| 313 | 313 | 2. **失败必须é™çº§ï¼Œä¸èƒ½æŠŠ goal å¡åœ¨ `planning`**:3 è½®éƒ½æ²¡äº§å‡ºåˆæ³• DAG → **é€€åŒ–æˆ 1 æ¡åŒæè¿°çš„ task**(`created_by='human'`ã€`seq=1`ã€`depends_on=[]`),goal 转 `active`ï¼Œå¹¶åœ¨ç•Œé¢æ ‡æ³¨ã€Œè‡ªåŠ¨æ‹†åˆ†å¤±è´¥ï¼Œå·²æŒ‰å•任务下达ã€ã€‚ç»ä¸èƒ½ç•™ä¸€ä¸ªæ°¸è¿œè½¬åœˆçš„ `planning` goal —— é‚£æ£æ˜¯è¿™æ¬¡è¦æ¶ˆç的那类é™é»˜çжæ€ã€‚ |
| 314 | 314 | 3. **本体è½ç‚¹æ˜¯ `system/agents/task-planning/`**(`system/templates/` 已在 2026-08-18 çš„ agent ç›®å½•é‡æž„里**å½»åº•å–æ¶ˆ**,50 个本体全部 `git mv` è¿› `system/agents/`,`base` → `_base`)。形æ€ç…§ `workgraph-planning`:`agent.md` / `config.json` / `identity.md` / `soul.md` / `tools.md`。**ä¸è¦ç”¨ `_` 开头命å** —— `_` 是ä¿ç•™å‰ç¼€ï¼Œæ‰«ææ—¶ä¼šè¢«è·³è¿‡ã€‚ |
| 315 | 315 | |
| 316 | -4. **`agent.md` + `soul.md` 必须一次写完,ä¸èƒ½å…ˆå»ºéª¨æž¶åŽå¡«**。本体现在有**毕业闸门**:`agent.md` 与 `soul.md` éžç©ºã€ä¸”ä¸å¸¦ `_base` 的骨架哨兵,æ‰ä¼šä»Ž `system_agents.status='draft'` 毕业;å¦åˆ™ `hire()` 直接拒ç»å¹¶è¿”回 `body_not_ready`。「从 `_base` å¤åˆ¶éª¨æž¶ → 以åŽå†å¡«ã€çš„ä¸é—´æ€**雇ä¸è¿›å…¬å¸**。(`.claude/skills/main_skill/SKILL.md` 是å¯é€‰çš„,57 个本体里 54 个没有。) | |
| 316 | +4. **`agent.md` + `soul.md` 必须一次写完,ä¸èƒ½å…ˆå»ºéª¨æž¶åŽå¡«**。本体现在有**毕业闸门**:`agent.md` 与 `soul.md` éžç©ºã€ä¸”ä¸å¸¦ `_base` 的骨架哨兵,æ‰ä¼šä»Ž `system_agents.status='draft'` 毕业;å¦åˆ™ `hire()` æ‹’ç»å¹¶è¿”回 `body_not_ready`。「从 `_base` å¤åˆ¶éª¨æž¶ → 以åŽå†å¡«ã€çš„ä¸é—´æ€**雇ä¸è¿›å…¬å¸**。(`.claude/skills/main_skill/SKILL.md` 是å¯é€‰çš„,57 个本体里 54 个没有。) | |
| 317 | + | |
| 318 | + 三个æƒå¨åˆ¤æ®ï¼ˆçœŸåˆ°å»ºæœ¬ä½“时以它们为准,别照文档å¤è¿°ï¼‰ï¼š`agent-locator.js` çš„ **`missingBodyDefinition()`**(判什么算没填完)ã€`graph-service.js` çš„ **`promoteDraftIfComplete()`**(转æ£åŠ¨ä½œï¼‰ã€ä»¥åŠ `hire()` 用的 **`isUngraduatedStatus()`**。 | |
| 319 | + | |
| 320 | + > âš ï¸ **`isUngraduatedStatus()` åªæŒ¡ `draft` / `training` 两个状æ€ï¼Œä¸æ˜¯ã€Œâ‰ active 就挡ã€ã€‚** 这个å‘å·²ç»è¢«è¸©è¿‡ä¸€æ¬¡ï¼šåº“里有 36 个本体的 status 是 `enabled` / `idle` / `ready` / `trained`,按「ä¸ç‰äºŽ activeã€åˆ¤ä¼šè¢«å…¨éƒ¨è¯¯åˆ¤æˆã€Œæ²¡å¡«å®Œã€ã€‚å–å€¼åŸŸçš„å”¯ä¸€æŒæœ‰è€…是 `graph-service`,**ä¸è¦åœ¨åˆ«å¤„å¤è¿°å®ƒ** —— 本文档 §å….3 å·²ç»å› 为 `canDispatch` 被å‰ç«¯å¤è¿°è¿‡ä¸€æ¬¡å–值域而记过åŒç±»æ•™è®ã€‚ | |
| 317 | 321 | |
| 318 | 322 | 5. **`_registry.json` 登记是å¯é€‰çš„ï¼Œå»ºç›®å½•æ‰æ˜¯å…³é”®åŠ¨ä½œ** —— è¿™æ¡ä¸Žåˆç¨¿å†™åäº†ï¼Œç•™æ¡£çº æ£ï¼š`graph-seed-service.seedAgents()` 现在直接 `readdirSync(system/agents/)` 把**目录当真相**,`_registry.json`(已éšé‡æž„挪到 `system/agents/_registry.json`ï¼Œæ•°ç»„æ ¼å¼ä¸å˜ï¼‰åªç”¨äºŽæŒ‰ id è¡¥ `benchmark_score`,registry 缺æ¡ç›®ç…§æ · seed。åˆç¨¿å†™çš„「ä¸ç™»è®°ä¼šæŠŠ CI 跑红ã€å¼•的是 27-P3/P4 §八.21 çš„å‰ç§‘,那æ¡å‰ç§‘属于 `template-refs.test.js` 硬编ç `system/templates` 路径的时代,**该测试æ£éšé‡æž„一起改**。ä»å»ºè®®é¡ºæ‰‹ç™»è®°ï¼ˆ`benchmark_score` è¦ç”¨ï¼‰ï¼Œä½†å®ƒä¸æ˜¯é—¸é—¨ã€‚ |
| 319 | 323 | ... | ... |