diff --git a/docs/design/v2.8-direction-notes.md b/docs/design/v2.8-direction-notes.md index a06c619..725fe63 100644 --- a/docs/design/v2.8-direction-notes.md +++ b/docs/design/v2.8-direction-notes.md @@ -2,8 +2,8 @@ **日期**: 2026-05-27 **作者**: 庞统 -**状态**: 方向确认,记录备忘 -**最后更新**: 2026-05-27 00:54(完整讨论结论) +**状态**: 持续讨论中,逐步完善 +**最后更新**: 2026-05-27 08:00(第二轮讨论结论更新) --- @@ -53,6 +53,10 @@ PipelineRouter / SingleStepPipeline / MultiStepPipeline / ParallelPipeline — 当前 curl + API 方式已经能用。工具封装是优化项(省 token、降出错率),不是必须项。 +### 4. 不做 Skill 集群模板(和 Agent 自主决策矛盾) + +知识管理体系 v1 设计里的 Skill 集群模板(feature-development / data-acquisition 等预设流程),和"Agent 自主决策"方向矛盾。Agent 应该自己根据黑板信息决定执行策略,不按预设模板走。 + --- ## 三、要做的事 @@ -67,7 +71,7 @@ Mail 是机械投递,不需要智能。当前 46 处 if/_mail 散落在三个 - 不新建 Pipeline 框架,不搞 PipelineRouter - 改动量:~100 行新建 + ~30 行调用替换 -### v2.9+:Prompt 进化(从固定步骤 → 自主决策) +### v2.9:Prompt 进化(从固定步骤 → 自主决策) **当前 prompt 的问题**:把 Agent 限制在固定步骤(标 working → 干活 → 写产出 → 标 review)。 @@ -102,6 +106,40 @@ Mail 是机械投递,不需要智能。当前 46 处 if/_mail 散落在三个 **不告诉它具体步骤,只告诉它目标、工具、约束。Agent 自己决定怎么干。** +### v2.9 的一部分:知识注入(复用 LLM Wiki) + +**不需要新建知识库。** LLM Wiki 已有 273 页 wiki-vault + 118 个 practices 页面,就是现成的 L3 知识层。 + +**做法**:Daemon spawn 前用 wiki-query 的检索原语(第 1 级:grep index.md),把匹配到的 summary 注入 prompt。 + +```python +def _inject_wiki_knowledge(self, task, prompt): + """spawn 前从 wiki-vault 检索相关知识,注入 summary""" + vault_path = Path(self.config.get("wiki_vault_path", "")) + if not vault_path.exists(): + return prompt + + keywords = self._extract_keywords(task.title + " " + (task.description or "")) + related = [] + for kw in keywords[:3]: + result = subprocess.run( + ["rg", "-i", kw, str(vault_path / "index.md")], + capture_output=True, text=True, timeout=3 + ) + for line in result.stdout.strip().split("\n")[:2]: + if not line or "[[" not in line: + continue + if "—" in line: + summary = line.split("—", 1)[1].strip()[:100] + page_name = line.split("[[")[1].split("]]")[0].split("|")[0] + related.append(f"- [[{page_name}]] — {summary}") + + if related: + prompt += "\n\n## 相关知识(来自 LLM Wiki)\n" + "\n".join(related[:5]) + prompt += "\n(如需详细信息,用 exec rg 读取完整页面)" + return prompt +``` + ### v2.10+:Agent 进化 - Agent 自主 claim(从 Daemon 分配 → Agent 领活) @@ -119,7 +157,7 @@ Mail 是机械投递,不需要智能。当前 46 处 if/_mail 散落在三个 | **业务类型**(task_type) | 用户视角的"做什么" | 用户创建任务时选 | 无限扩展 | coding, review, data, deploy, research... | | **执行模式** | 系统视角的"怎么跑" | Agent 自己决定 | 不需要预定义 | Agent 根据黑板信息自主判断 | -**业务类型无限扩展,执行模式不需要预定义。** Agent 自己根据黑板信息决定是单步还是多步、要不要循环、要不要补偿。 +**业务类型无限扩展,执行模式不需要预定义。** ### 2. Agent 已经有黑板操作能力 @@ -142,37 +180,67 @@ API 已覆盖:读任务、写状态、写产出、写评论、写决策、写 | Hermes | kanban_* 工具集(环境变量激活) | kanban_show() 自己读 | 中 | | 我们当前 | prompt 里写 curl 命令模板 | 不给全局 | 低 | ---- +### 5. LLM Wiki 和知识管理的关系 -## 五、28 个场景在未来系统里怎么跑 - -**不需要为每种场景设计 Pipeline。Agent 自己根据黑板信息决定。** - -| 场景 | 谁 decides 怎么做 | Daemon 做什么 | -|------|------------------|--------------| -| B1 定时数据采集 | 赵云读黑板,自己决定下载什么、怎么验证 | cron 触发 → 创建任务 → spawn 赵云 | -| B3 批量回测 | 张飞读黑板,看到多组参数,自己决定怎么拆 | 创建任务 → spawn 张飞 | -| C2 Saga 链 | Agent 自己决定步骤链和补偿 | 创建任务 → spawn Agent | -| E1 审议循环 | 司马懿自己决定是否通过,不通过写驳回 | spawn 司马懿 | -| E4 自愈 | Agent 读黑板,自己诊断修复 | 事件触发 → spawn Agent | +| 知识管理体系 | 和本设计关系 | 说明 | +|------------|-------------|------| +| **LLM Wiki 三层架构** | ✅ 直接用 | 就是 L3 知识层,不需要另建 | +| **wiki-query skill** | ✅ 直接用 | 检索分级原语直接复用 | +| **wiki-ingest skill** | ✅ 后续用 | 新调研结果可以 ingest 进 wiki | +| **记忆分区(memory/ 四区)** | ⚠️ 正交 | Agent 自身记忆管理,和 prompt 进化独立 | +| **Skill 三级约束** | ⚠️ 正交 | 产出格式约束,和执行自主度独立 | +| **Skill 集群模板** | ❌ 不做 | 和 Agent 自主决策方向矛盾 | +| **四层加载机制** | ✅ 对齐 | ①固化=SOUL.md ②注册=SKILL.md ③注入=BootstrapBuilder ④检索=wiki-query | --- -## 六、参考文件 +## 五、具体改动清单 + +| # | 事项 | 改动文件 | 改动量 | 依赖 | +|---|------|---------|--------|------| +| 1 | Mail 独立 | 新建 `mail_handler.py`,标注废弃 ticker/dispatcher/spawner | ~130 行 | 无 | +| 2 | Prompt 进化 | `spawner.py` SPAWN_PROMPT_TEMPLATE 重写 | ~50 行 | 无 | +| 3 | 知识注入 | `spawner.py` 新增 `_inject_wiki_knowledge()` | ~30 行 | NAS 挂载路径修正 | +| 4 | Bootstrap 增强 | `bootstrap.py` 支持 wiki knowledge 层 | ~20 行 | #3 | + +### NAS 挂载路径问题 + +当前 `~/.obsidian-wiki/config` 配的是 `/Volumes/KnowledgeBase/wiki-vault/`,实际挂载在 `/Volumes/KnowledgeBase-1/wiki-vault/`。需要修正。 + +--- + +## 六、调研产出归档 + +本次讨论过程中产出的调研报告(不再作为设计依据,但保留参考价值): + +| 文件 | 说明 | +|------|------| +| `docs/research/pipeline-architecture-research.md` | 28场景 + 8业界实践 + 6设计模式调研 | +| `docs/design/v2.8-pipeline-architecture.md` | Pipeline 架构设计 v1.0~v2.0(已废弃) | +| `docs/design/v2.8-task-type-pipeline.md` | Task Type Pipeline 设计(已废弃) | +| `docs/design/v2.7.2-pipeline-refactor.md` | v2.7.2 Pipeline 分离设计(部分已完成) | + +--- + +## 七、参考文件 | 文件 | 说明 | |------|------| | PRD v3.0 | `docs/PRD-v3.0.md` | | architecture-v2.6 | `docs/design/architecture-v2.6.md` | -| 方向备忘(本文件) | `docs/design/v2.8-direction-notes.md` | -| Pipeline 调研报告(归档) | `docs/research/pipeline-architecture-research.md` | -| Pipeline 设计 v2.0(归档) | `docs/design/v2.8-pipeline-architecture.md` | +| 知识管理方案简述 | `~/.openclaw/sanguo_projects/sanguo_moziplus/docs/research/knowledge-management-brief.md` | +| 知识管理完整设计 | `~/.openclaw/sanguo_projects/sanguo_moziplus/docs/research/knowledge-management-v2.2.md` | +| LLM Wiki Skill | `~/.sanguo_projects/sanguo_mozi/skills/wiki/llm-wiki/SKILL.md` | +| wiki-query Skill | `~/.sanguo_projects/sanguo_mozi/skills/wiki/wiki-query/SKILL.md` | +| Wiki Vault | `/Volumes/KnowledgeBase-1/wiki-vault/`(273 页,118 practices) | --- -## 七、下一步 +## 八、下一步 -1. ✅ Mail 独立(mail_handler.py) -2. ✅ Prompt 进化(改 SPAWN_PROMPT_TEMPLATE) -3. 🔜 Agent 进化(自主 claim + 间感知) -4. 🔜 Daemon 简化(退化为投递员) +1. 🔜 Mail 独立(mail_handler.py) +2. 🔜 Prompt 进化(改 SPAWN_PROMPT_TEMPLATE) +3. 🔜 NAS 挂载路径修正 +4. 🔜 知识注入(复用 LLM Wiki index.md 检索) +5. 🔜 Agent 进化(自主 claim + 间感知) +6. 🔜 Daemon 简化(退化为投递员)