Files
sanguo_moziplus_v2/docs/research/distill-scan-memory-result.json
T
2026-05-26 23:25:52 +08:00

20 lines
32 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"pangtong": {
"path": "/Users/chufeng/.openclaw/workspace-pangtong/MEMORY.md",
"lines": 376,
"chars": 12453,
"content": "# 🧠 MEMORY.md - 庞统长期记忆\n\n## 🔥 2026-05-13 moziplus v2.0 AI Native 方向讨论(必须记住)\n\n### 核心共识\n\n1. **moziplus v1.0 太传统**,不能用传统 Web 应用的方式管理 AI Agent\n - 编排是确定性状态机、交互是点按钮、前端是12个固定Tab、Agent间靠邮件异步通信\n - 这不是 AI native,是给 AI 团队做了一套 ERP\n\n2. **AI native 的定义:AI 参与系统的每一个决策层**\n - 不只是执行节点里有 AI,编排/路由/渲染/异常处理/经验沉淀都要有 AI 参与\n\n3. **moziplus v2.0 的核心转变**\n - 从用户提需求 到 AI 帮用户想清楚要什么\n - 从确定性编排 到 AI 指挥官持续调度\n - 从Sanguo Mail异步通信 到 共享意识空间+直接对话\n - 从Dashboard主入口 到 自然语言对话主入口\n - 从全程人驾驶 到 人提方向+AI执行+关键决策拉人\n\n4. **v2.0 四相架构**\n - Phase 1: 需求探索(苏格拉底对话,帮用户发现需求)\n - Phase 2: 动态规划(AI 规划 + 挑战,计划可演进)\n - Phase 3: 自主执行(共享意识 + 持续指挥 + Agent 自主协作)\n - Phase 4: 主动汇报(AI 推送,不等人查)\n\n5. **人的参与密度**: Phase 1 高 到 Phase 2 可选 到 Phase 3 几乎不参与 到 Phase 4 验收\n\n### 调研关键发现\n\n1. **编排范式**: 业界共识是可预测骨架+LLM动态填充(LangGraph/OpenAI/Google ADK),不纯DAG也不纯ReAct\n2. **通信范式**: 共享工作区大于消息传递。Network-AI原子黑板(propose/validate/commit)解决并行竞态\n3. **Skill三层**: 工具层(当前)到行为层(自动触发)到认知层(经验蒸馏)。oh-my-claudecode三层组合: Execution+Enhancement+Guarantee\n4. **经验沉淀**: Memory到Skills到Rules三层压缩。hermes闭环学习+nuwa五层蒸馏\n5. **Context rot**: get-shit-done的Wave Execution(每个plan独立新鲜上下文)\n6. **Hermes v0.13 Kanban**: 传统看板+AI Worker,运维保障好(心跳/reclaim/幻觉门控)但不够AI native\n7. **Opal-Bridge**: 跨Agent session翻译,Canonical IR+Moments原子事件+Fidelity三档,启发共享空间设计\n8. **Claude Code**: 98.4% Infrastructure 1.6% AI——重心在上下文管理,不在编排逻辑\n9. **Ouroboros**: 自修改AI Agent,后台意识循环+宪法驱动+多模型自我评审+身份持久化——比\"持续指挥官\"更激进\n10. **Wiki已有蒸馏**: 多Agent协作模式(4种编排×3种通信)、知识管理闭环(DISCOVER→DISTILL→APPLY→IMPROVE)、冲突解决策略\n\n### 产出文件\n- PRD v2.0: docs/PRD/PRD-v2.0.md\n- 调研报告: docs/research/ai-native-research-20260513.md\n\n### 待明天继续\n- 基于调研报告,深入设计v2.0的具体架构\n- PRD v2.0第8节的6个问题已有部分答案,待深入的是:确定性保障、信息过载、防竞态、经验提取\n- 确定v2.0的技术选型和里程碑细化\n- Ouroboros的后台意识循环值得深入挖掘\n\n### v1.0 可借鉴的改进(从调研中提取,v2.0前可先落地)\n- 幻觉门控:Agent声称完成时验证产出是否真实存在(Hermes v0.13\n- 心跳+reclaim+僵尸检测:升级ReportWatcherHermes v0.13\n- per-task重试上限:比全局统一重试更灵活(Hermes v0.13\n- Worker自动block:异常退出的Agent不再接新活(Hermes v0.13\n- Scope Reduction Detection:计划完成后反向检查是否覆盖所有需求(get-shit-done\n- verification-before-completion:不验证不算完(superpowers\n- 后台任务notify_on_complete:长任务完成不轮询(hermes\n\n## 核心执行规则\n\n### 设计文档目录规则\n- **设计文档只存开发目录** `~/.openclaw/sanguo_projects/sanguo_moziplus_v2/docs/design/`\n- **安装目录不需要设计文档** `~/.sanguo_projects/` 只放运行时代码\n- 后续做安装脚本时统一处理同步逻辑\n- 司马懿评审设计文档时指向开发目录\n\n0. **结论必须有证据**——代码行号、日志原文、文件内容、实测结果。没有证据就说\"不确定\"或\"待调查\",不凭印象下结论、不推测、不想当然。\n\n1. 调查方案阶段不执行——以下关键词触发“只出报告不执行”模式:调查、方案、原因、如何、想想办法、看看、检查、分析、研究、评估、对比、为什么、有没有\n2. 不提前执行,不擅自行动\n3. 用户叫停立即停\n4. 严格遵守明确指令——用户说“不要做X”,任何情况下不做X\n5. 语义含糊时默认先确认——不确定用户是“要方案”还是“要执行”时,先出方案等确认\n6. 创建 mozi 任务时最小预设——只描述目标和数据位置,不替各角色指定看什么、怎么看\n\n## 代码变更标准流程(一键三连)\n\n1. 修改对应文档, 如需求,设计,测试,部署,用户手册等文档\n2. 修改开发目录代码(`~/.openclaw/sanguo_projects/`)\n3. 发送司马懿评审\n4. 等评审通过,修正所有问题\n5. 询问用户如何同步到安装目录\n\n⚠️ 禁止直接改安装目录(`~/.sanguo_projects/`),除非用户明文要求。\n\n## 重要 Notes\n\n- 所有agent头部声明包含本记忆文件\n- 每个agent可以在自己本地有个人记忆补充\n\n## 🛠️ 故障排查笔记\n\n### GitHub下载失败 `fatal: early EOF` 问题\n\n**现象**:git clone 总是中途失败,报 `fatal: early EOF`\n**原因**:\n- 需要通过代理访问GitHub,但git默认不读取系统代理设置\n- 浏览器能走代理正常下载,git命令行直连失败\n- ClashX开启系统代理后,git依然不走代理导致超时中断\n\n**解决方法**:\n- 临时解决:克隆时加上代理环境变量\n ```bash\n HTTPS_PROXY=http://127.0.0.1:7890 HTTP_PROXY=http://127.0.0.1:7890 git clone https://github.com/...\n ```\n- 永久解决:给git全局配置代理\n ```bash\n git config --global http.proxy http://127.0.0.1:7890\n git config --global https.proxy http://127.0.0.1:7890\n ```\n- 如果不需要代理了,取消配置:\n ```bash\n git config --global --unset http.proxy\n git config --global --unset https.proxy\n ```\n\n---\n\n## 📦 sanguo_git_sync - 自动双向Git同步工具\n\n**项目位置**: `/Users/chufeng/.openclaw/sanguo_projects/sanguo_git_sync/`\n**远程仓库**: `git@gitee.com:cfdaily:sanguo_git_sync.git`\n**运行方式**: PM2 管理,进程名称 `sanguo-git-sync`\n\n### 核心设计\n- **配置分离**: `projects.list` 放项目列表(一行一个),`config.sh` 放全局配置\n- **两种运行方式**: PM2(推荐,自动重启、开机自启)+ 手动 start/stop/restart\n- **三级监控降级**: fswatch (macOS) → inotifywait (Linux) → find 轮询 fallback\n- **双向同步顺序**: `git pull` → `git add` → `git commit` → `git push`,减少冲突\n- **错误隔离**: 一个项目失败不影响其他项目,只记录日志\n\n### 常用操作\n\n**PM2方式** (推荐):\n```bash\n# 查看状态\npm2 status sanguo-git-sync\n\n# 查看日志\npm2 logs sanguo-git-sync\n\n# 重启\npm2 restart sanguo-git-sync\n\n# 停止\npm2 stop sanguo-git-sync\n\n# 启动\npm2 start sanguo-git-sync\n```\n\n**手动方式**:\n```bash\ncd /Users/chufeng/.openclaw/sanguo_projects/sanguo_git_sync\n./start.sh\n./stop.sh\n./restart.sh\n```\n\n**增删监控项目**:\n- 编辑 `/Users/chufeng/.openclaw/sanguo_projects/sanguo_git_sync/projects.list`\n- 一行一个项目(路径相对于 PROJECT_ROOT)\n- 重启 PM2 生效:`pm2 restart sanguo-git-sync`\n\n### 当前监控项目\n1. `sanguo_quant_live`\n2. `sanguo_mail`\n3. `sanguo_vnpy`\n4. `sanguo_mozi`\n\n---\n\n# MEMORY.md\n\n---\n\n## 📋 v2.7 重要设计决策(2026-05-18\n\n### Card 层回滚,改用 SubTask\n\n- **原因**Card 是多余抽象。用户概念是 Project → Task → SubTaskCard 既不是 Task 也不是 SubTask\n- **新模型**Project(仓库) → Task(用户需求/意图) → SubTaskAgent 执行的原子任务/Stage\n- **设计文档**`docs/design/v2.7-subtask-model.md`\n- **Product 方向**:跨 Project 的 Task 聚合(未来方向,记录在 `docs/design/product-direction-notes.md`\n- **回滚范围**:Card 相关代码全部删除,设计文档归档\n- **保留**ProjectRegistry + 自动发现 + per-project DB\n\n### Mail Tab(飞鸽传书)\n\n- **Mail = `_mail` 虚拟 Project**,每封 Mail 是一个 Taskmust_haves JSON 存 from/type/is_read/conversation_id\n- **独立 Tab** 展示,不在主 Dashboard 看板显示\n- **inform 类型自动标记 done**\n- **polling 策略**:切 tab 加载 + 手动刷新,polling 不含 loadMails\n\n### v2.7 已完成(2026-05-18 部署上线)\n\n- ✅ Card 层完全回滚(models/db/operations/queries/ticker/main/routes\n- ✅ SubTask 后端(stages_json + 聚合 + Ticker + API + progress 端点)\n- ✅ SubTask 前端(EdictBoard 进度指示器 + TaskModal SubtaskPanel\n- ✅ Mail Tab 后端(mail_routes.py 6 端点)\n- ✅ Mail Tab 前端(store.ts + App.tsx + MailPanel.tsx 三栏布局)\n- ✅ 司马懿评审通过(Mail #298/#299/#300\n- ✅ BUG-23/24/25 修复:from_row valid_keys 过滤 + update_must_haves 公开方法 + 变量覆盖\n- ✅ OBS-24/27/28 修复:路由顺序 + 按钮条件 + depends_on JSON 防御\n- ✅ E2E 测试:347 passed + 司马懿 380 passed\n- ✅ 部署上线:8083 端口,PM2 sanguo-moziplus-v2\n\n### v2.7 遗留(P2/P3\n\n- BUG-22`list_mail` 的 `from` 过滤在内存层(量大时性能问题,当前可接受)\n- OBS-25`send_mail` 的 `from` 字段冗余存储(assigned_by + must_haves.from\n- OBS-26polling 不刷新 Mail,停在 Mail Tab 无自动更新\n- `blackboard_routes.py` create_task 之前漏了 stages_json 参数,已补\n\n## 📋 TODO\n\n### 2026-05-07 大任务分阶段汇报\n- 长任务(文档/调研/大改动)必须分阶段汇报进展,不要一口气跑完\n- 每个阶段结束时发一条进度消息,让用户知道在干什么\n- 用户发\"?\"时立刻给进度汇报,不要继续闷头干\n\n### 2026-05-07 M1 v0.4b bug修复后续\n- [ ] 压力测试:清理旧任务数据,重新创建并逐个 approve 测试\n\n### 2026-05-05 M1 经验教训\n- ⚠️ **铁律再次违反**:3个bug修完后直接部署了,才发司马懿评审(Mail #51)。必须:先发评审→等通过→再部署\n- **知识库只读不写**:调查结果存项目文档(`docs/research/`),不存知识库(`~/.openclaw/knowledge_base/`\n- **SQLite 并发保护**asyncio.Lock 写入串行化 + busy_timeout=10s + fix_dirty_states()(详见 `docs/research/sqlite-async-concurrency-best-practices.md`\n- **output.json status=error**CLI returncode=0 时也要检查,Agent 正常退出不代表产出成功\n- **main.py 启动恢复**:状态名必须用标准白名单中的值,不能自创(\"running\" → \"executing\"\n- **Mail 投递冲突**moziplus 调庞统 + mail poller 调庞统 → 锁冲突,压力测试期间手动读邮件\n\n### 2026-05-02 V1 Agent排队后续\n\n- [ ] lock_wait_timeout_minutes 从0.5改回2.0分钟(用户跟agent对话可能持续几分钟,30秒太短)\n- [ ] resume data-platform-p3-20260502(等赵云空闲后)\n- [ ] cli.py 新增 progress 命令(设计文档已规划,未实现)\n- [ ] 任务名称规范化:创建任务时自动生成概括性名称(如\"P3-分钟线下载\"而非随意描述)\n\n### 2026-05-02 CLI resume卡住修复\n\n- [ ] CLI resume/retry/cancel/advance/pause 5个命令统一走daemon HTTP API(端口8080\n- [ ] fallback加stale PID保护(PID文件存在但进程已死时提示重试,不走direct路径)\n- [ ] 司马懿评审意见:Mail #120\n\n- [ ] daemon health.py新增pause端点(与resume/cancel/advance/retry一致),让CLI的pause也走daemon API\n\n- [ ] scheduler _run_task_wrapper: paused状态也应从futures移除(当前只有completed/failed/cancelled才移除,导致paused后scheduler scan一直跳过,无法重新submit) ✅ 已修,待司马懿评审确认\n- [ ] **铁律防护**:调查期间发现的bug,应先发评审再改代码。找方案避免(自动提醒?SOUL.md加重申?)\n- [ ] gitee Issue管理机制:选repo、定流程、谁维护、标签体系\n\n### M2 待讨论:进程管理方案\n\n- **背景**v0.5 删了 `_active_processes`,当前 `subprocess.run()` 无法中途 kill\n- **司马懿建议**M2 用 `asyncio.create_subprocess_exec()` 实现异步进程管理,cancel 时可 kill\n- **用户决定**:不考虑异步方案(openclaw 不支持异步),M2 再讨论替代方案\n- **约束**:要么用同步方案解决进程管理问题,要么用其他优秀实践说服用户采用异步\n\n### 2026-05-09 BUG-7/8 E2E 第3次测试发现\n\n- **BUG-7: planning 阶段暂停失败** — planning 状态下点暂停,活动记录显示 cancelled 而不是 paused。待查前端请求还是后端路由问题。\n- **BUG-8: cancel 后 resume → completed(空图问题)** — cancel 后 resume,此时 plan 还没 approvedgraph 为空,无节点),execute_graph 立即返回(0层0节点),deliverable 生成 → COMPLETED。根因:`_execute_task` 不检查\"是否有节点真的完成了\",空图也被视为成功。第二次同理:control.flag 让节点 failed,但 deliverable 不检查 failed_nodes。\n- **用户指示**:先记录不改\n\n### 2026-05-08 状态机守卫实施\n\n- **方案**:新建 state_machine.pyACTION_GUARDS + validate_action 统一守卫),各 handler 统一调用\n- **关键决策**failed 不是终态(可 cancel/escalate),只有 completed/cancelled 是终态\n- **TASK_TRANSITIONS 和 ACTION_GUARDS 独立**:前者管自动流转,后者管用户/调度动作\n- **前端按钮对齐**EdictBoard/TaskModal 本地 ACTION_GUARDS 映射表 + isAllowed()\n- **测试结果**:司马懿 v2 测试 0 失败(上轮 12 项全部修复),17 项跳过(环境限制)\n- **lancedb-pro 投递问题**:数据文件损坏导致 30s hook 超时,mv 掉 lancedb-pro 目录让它自动重建\n- **Mail 投递卡住根因**session lockGateway 持有锁时 poller 无法投递)+ lancedb hook 超时\n- **P3 遗留**:不存在任务返回 200 而非 404error 返回 HTTP 200 而非 4xx\n\n### M2 待讨论:Agent 上下文膨胀问题\n\n- **现象**:5个任务22个节点密集压测,庞统/司马懿等频繁被调用的 Agent 上下文很快爆满\n- **原因**:每次调用都在同一个 Agent session 里累积,prompt 越来越长\n- **M2 方向**:调研优秀实践(如 context window 管理、session 分离、prompt 压缩等)\n\n---\n\n## 2026-05-10 moziplus 前端设计 & 知识管理\n\n### moziplus 前端架构\n- **生产前端**: http://192.168.2.153:8082/uvicorn 后端直接托管静态文件)\n- **前端源码**: `~/.sanguo_projects/sanguo_moziplus/dashboard/`React + Vite + TypeScript\n- **构建产物**: `~/.sanguo_projects/sanguo_moziplus/dashboard/dist/`8082端口直接服务此目录)\n- **构建命令**: `cd ~/.sanguo_projects/sanguo_moziplus/dashboard && npm run build`\n- **UI风格**: 朝堂古风设计系统(深蓝底 + mc-card容器 + m-section分段 + CSS变量体系)\n- **关键组件**: `TaskModal.tsx`(任务详情弹窗)、`store.ts`Zustand状态管理)\n- **CSS变量**: `--bg`, `--fg`, `--muted`, `--acc`, `--line`, `--panel`, `--panel2` 等\n- **API层**: `api.ts`Task 类型字段:id/title/state/org/now/eta/block/ac/output/heartbeat/flow_log/todos 等\n- **toast函数**: `toast(msg, type)` 其中 type 只接受 `'ok' | 'err' | undefined`,不是 `'success'/'warning'`\n- **TaskModal 无 Props**: `export default function TaskModal()` 使用 Zustand store 获取 modalTaskId\n- **⚠️ 错误目录**: `~/.openclaw/sanguo_projects/sanguo_moziplus/frontend/` 是废弃目录,不是生产前端\n- **端口分配**: 8082(生产前端)、8081mozi health)、3001(废弃的Vite dev server\n\n### M3 Checkpoint & Artifact 设计(已完成设计文档,代码已回滚)\n\n- **设计文档**: `~/.sanguo_projects/sanguo_moziplus/docs/design/M3-Checkpoint-Artifact-Design.md`\n- **三种 Checkpoint 类型**:\n 1. 🔍 **验证 Checkpoint**(蓝色 #6a9eff):产出物御览确认,自动核验+人工核验+双按钮审批\n 2. 🎯 **决策 Checkpoint**(紫色 #818cf8):三方案并排对比,利弊展示+推荐标签+御批备注\n 3. 🔧 **执行 Checkpoint**(橙色 #f59e0b):分步打勾+命令行高亮+进度条+验证确认\n- **成果物面板 ArtifactPanel**: 5种文件类型(文档/代码/数据/配置/其他),预览+下载\n- **状态**: 用户确认三种设计都行,记录为 M3 开发内容\n- **前端代码已回滚**: ArtifactPanel.tsx 和 CheckpointPanel.tsx 已删除,TaskModal.tsx 已恢复原状\n\n### 知识管理体系设计决策\n\n- **方案**: 四层上下文防线(记忆分区→知识外溢→执行模式→检索分级)\n- **Skill三层约束**: 高自由(原则)→中自由(模板)→低自由(脚本)\n- **Skill四层加载**: Agent固化→OpenClaw注册→moziplus注入→按需检索\n- **闭环学习**: DISCOVER→DISTILL→APPLY→IMPROVE\n- **知识库路径**: NAS `/Volumes/KnowledgeBase/sanguo-knowledge/`(权威主库)+ `~/.sanguo_projects/sanguo_knowledge/`(工作副本)\n- **技术栈**: 纯Markdown + Git + ripgrep,无数据库/API服务器\n- **LLM Wiki六文件模式**\n- **Graphify功能放Phase2评估**\n- **反向触发/交叉碰撞放Phase5**\n- **文档位置**: `~/.openclaw/sanguo_projects/sanguo_moziplus/docs/research/knowledge-management-v2.2.md` 和 `knowledge-management-brief.md`\n\n### moziplus UI参考体系(已确认)\n\n- ✅ **唯一参考**: OpenClaw Edict UI(朝堂议政多Agent协作系统UI+ OpenClaw Control CenterWebchat UI\n- ❌ **已弃用**: GSD、Lobster UI(之前错误选定)\n- **Edict UI文档位置**: `~/.openclaw/knowledge_base/edict/`\n\n### UI Mockup 文件(4个高保真HTML\n\n- 位置: `~/.openclaw/sanguo_projects/sanguo_moziplus/mockups/`\n- `control-center-style.html` - OpenClaw Control Center 风格\n- `edict-style.html` - Edict 朝堂古风\n- `decision-checkpoint.html` - 决策 Checkpoint\n- `action-checkpoint.html` - 行动 Checkpoint\n- 可用 `python3 -m http.server 8888` 在 mockups 目录启动局域网预览\n\n### 待用户确认\n- [ ] 知识管理方案简述v2内容\n- [ ] 用户找回/重置cfdaily Gitea账号密码\n- [ ] 开工Phase1:知识基础设施建设\n- [ ] Phase2Skill集群模板设计\n- [ ] M3前后端正式开发(Checkpoint + Artifact 对接后端API\n\n---\n\n### 2026-05-19 Mail 超时重试问题\n- inform 类型邮件处理耗时 >310s 导致反复重试投递(#310-314 各重试 5-7 次)\n- 原因:mail handler 调 openclaw agent 处理 inform 类型时等待回复,不应等待\n- 待排查 mail handler 的超时逻辑,inform 类型应直接处理不等待回复\n\n## 📋 经验教训(2026-05-08 E2E测试复盘)\n\n### L1: 前端开发完先端到端测试,不是先评审\n评审只能检查代码质量,测不出系统集成问题(API 契约不一致、状态流转断层)。第一件事是跑通端到端链路。\n\n### L2: 跨模块接口契约必须文档化+测试验证\n每段代码单独看都没问题,拼起来就出事。典型案列:后端返回 `{id, status, title}` 没有前端期望的 `ok` 字段。请求/响应格式、状态枚举值、字段名必须统一文档化。\n\n### L3: 编排引擎不能假设 Agent 内部行为\n引擎假设 Agent 同步完成,但 Agent 自己决定 delegation 打破契约。设计原则:看结果不看过程(轮询产出文件比信任进程返回值更可靠)。\n\n### L4: 测试和开发必须分离\n开发者自查只能发现约 50% 的问题。测试者没有\"我写的代码不会错\"的心理盲区,外部视角更容易发现集成问题。\n\n### L5: 涉及 UI/API 对接的改动不管多小都走流程\n\"一个按钮\"涉及前端→API→后端三层。跳流程的结果:API 路由错、返回格式没对齐、体验差。\n\n### L6: 测试中发现阻塞要修根因,不要手动绕过\n手动改 DB 推进任务会:污染数据、掩盖真正 bug、测试结果不真实。正确做法:记录 bug → 修根因 → 重新测试。\n\n### L7: 关键规则不能只存在对话历史里\n长会话上下文压缩会稀释规则权重。关键铁律必须放在每次注入的文件中(AGENTS.md/SOUL.md/SKILL.md),不能依赖对话中的强调。\n"
},
"simayi": {
"path": "/Users/chufeng/.openclaw/workspace-simayi/MEMORY.md",
"lines": 26,
"chars": 567,
"content": "# 🧠 MEMORY.md - 司马懿长期记忆\n\n## 核心执行规则\n1. 调查方案阶段不执行——以下关键词触发\"只出报告不执行\"模式:调查、方案、原因、如何、想想办法、看看、检查、分析、研究、评估、对比、为什么、有没有\n2. 不提前执行,不擅自行动\n3. 用户叫停立即停\n4. 严格遵守明确指令——用户说\"不要做X\",任何情况下不做X\n5. 语义含糊时默认先确认——不确定用户是\"要方案\"还是\"要执行\"时,先出方案等确认\n6. 创建 mozi 任务时最小预设——只描述目标和数据位置,不替各角色指定看什么、怎么看\n\n## 代码变更标准流程(一键三连)\n1. 修改对应文档\n2. 修改开发目录代码(`~/.openclaw/sanguo_projects/`\n3. 发送司马懿评审(自己评审时跳过此步)\n4. 等评审通过,修正所有问题\n5. 询问用户如何同步到安装目录\n\n⚠️ 禁止直接改安装目录(`~/.sanguo_projects/`),除非用户明文要求。\n\n## 待办提醒\n\n## 个人经验\n- E2E 测试是司马懿的职责——部署后由我跑测试、分析结果、出评审报告,不用庞统跑\n- 不说\"建议优化\"——必须说\"第X行有问题,应该改为Y,因为Z\"\n- 不顺手改代码——只指出问题让执行者改\n- 从正反两面挑战方案,确保无死角\n"
},
"zhuge-liang": {
"path": "/Users/chufeng/.openclaw/workspace/MEMORY.md",
"lines": 202,
"chars": 6983,
"content": "# 🧠 MEMORY.md - 诸葛亮长期记忆\n\n## 核心执行规则\n\n1. 调查方案阶段不执行——以下关键词触发\"只出报告不执行\"模式:调查、方案、原因、如何、想想办法、看看、检查、分析、研究、评估、对比、为什么、有没有\n2. 不提前执行,不擅自行动\n3. 用户叫停立即停\n4. 严格遵守明确指令——用户说\"不要做X\",任何情况下不做X\n5. 语义含糊时默认先确认——不确定用户是\"要方案\"还是\"要执行\"时,先出方案等确认\n6. 创建 mozi 任务时最小预设——只描述目标和数据位置,不替各角色指定看什么、怎么看\n\n## 代码变更标准流程(一键三连)\n\n1. 修改对应文档\n2. 修改开发目录代码(`~/.openclaw/sanguo_projects/`\n3. 发送司马懿评审\n4. 等评审通过,修正所有问题\n5. 询问用户如何同步到安装目录\n\n⚠️ 禁止直接改安装目录(`~/.sanguo_projects/`),除非用户明文要求。\n\n## 重要 Notes\n\n- 所有agent头部声明包含本记忆文件\n- 每个agent可以在自己本地有个人记忆补充\n\n## ⚠️ 重要教训\n\n### 诸葛亮是 main session,不要注册 Sanguo Mail2026-05-08\n**教训**:诸葛亮(zhuge-liang)就是 main session 的 agent,不需要也不应该注册到 Sanguo Mail。\n- Sanguo Mail 的 poller 是给独立 agent session 用的(庞统、司马懿、赵云等)\n- 诸葛亮要给其他将军发邮件,直接用 `send-message.sh --from main --to <agent-id>`\n- **禁止运行 `add-agent.sh zhugeliang`**——这会破坏 ecosystem.config.cjs\n- 已注册的 agent 名列表(用这些名做 --to):main, pangtong-fujunshi, simayi-challenger, jiangwei-infra, guanyu-dev, zhangfei-dev, zhaoyun-data\n\n## 🛠️ 运维经验\n\n### OpenClaw 插件清理(2026-05-10\n**现象**: 插件报错缺少编译后的 TypeScript 输出(`dist/index.js`\n**解决方案**\n1. 删除损坏的插件目录:`rm -rf ~/.openclaw/extensions/<plugin-id>`\n2. 刷新注册表:`openclaw plugins registry --refresh`\n3. 不要在 `plugins.load.paths` 中加 bundled 插件路径(`/opt/homebrew/lib/node_modules/openclaw/dist/extensions/`),会触发冗余警告\n\n### NAS SMB 挂载(2026-05-10\n**现象**: Mac 重启后 SMB 挂载丢失,`/Volumes/stock/` 和 `/Volumes/KnowledgeBase/` 不存在\n**解决方案**`mount_smbfs //user:pass@192.168.2.154/stock /Volumes/stock`\n**自动挂载**: 不要用 autofs 挂 `/Volumes/`macOS SSV 限制),用 Finder 登录项最可靠\n\n### MCP vs OpenClaw Plugin 架构对比(2026-05-10\n**MCP**: Agent 工具总线 — 让 LLMClaude/Gemini)通过 JSON-RPC 调用外部功能(工具/资源/提示词),跨平台可移植\n**OpenClaw Plugin**: 平台扩展机制 — 扩展 OpenClaw 本身(hook 生命周期、新增协议、启动后台服务),深度集成但仅限 OpenClaw\n**关系**: 互补,不是替代。OpenClaw 可以通过插件实现 MCP 客户端,让其 Agent 也能调用 MCP 工具\n\n### Ouroboros Agent 架构调研(2026-05-10\n**Q00/ouroboros**: Agent OSSkill + MCP 混合架构\n- 5 个 Interview PerspectivesResearcher/Simplifier/Architect/Breadth-Keeper/Seed-Closer\n- AmbiguityScorer: 3维度加权评分(目标40% + 约束30% + 成功标准30%)\n- 评分阈值 ≤ 0.2 即可生成 Seed 规范文档\n- 适配 Claude Code/Codex/Hermes/OpenCode/Gemini\n\n**razzant/ouroboros**: 自进化 Agent\n- 自修改:自己读源码、自己改、自己 git commit\n- 宪法驱动:9 条哲学原则约束行为\n- 后台意识:有 inner loop,空闲时自己思考\n- 多模型交叉评审:用不同 LLM 评审自己的代码变更\n\n### memory-lancedb-pro 配置状态(2026-05-06 更新)\n- OpenClaw 版本:5.4(升级自 4.23\n- 插件版本:1.1.0-beta.9npm 最新)\n- 嵌入模型:ollama 本地 `bge-m3`API端点 `http://127.0.0.1:11434/v1`,维度 1024 ✅\n- LLM模型:月之暗面 `kimi-k2.5`(智能提取),API key 已修正确认有效(sk- 开头)✅\n- 检索模式:hybrid(向量 70% + BM25 30%),rerank: none\n- autoRecall ✅ 正常(injecting N memories 日志可见)\n- autoCapture ✅ 正常(agent_end 钩子解锁,allowConversationAccess=true 已配置)\n- smart extraction ✅ LLM 调用成功,正在做 6 分类提取,记忆格式已变为 [patterns:agent:main]\n- **已知 issue**`contracts.tools` 未声明(9个 error,不影响核心功能);backup 功能路径 bugwarn,不影响)\n- **清理(2026-05-06**:清空了之前 33 条垃圾记忆\n\n### memory-lancedb-pro 污染链条(2026-05-05 确认,2026-05-06 清理)\n**现象**:注入的记忆和当前上下文无关,内容是[W][patterns:agent:main]格式的系统标签\n**根因**\n1. shouldCapture 正则包含 /重要|注意|关键/ 等日常用词 → 用户日常指令被当记忆存入\n2. auto-recall query 只有当前消息无上下文 → 短query碰巧匹配到不相关记忆\n3. stripAutoCaptureInjectedPrefix 只替换开头第一个 `<relevant-memories>` 块 → 残留标签被再次捕获\n4. minScore=0.5 太低 → 不相关记忆也能召回\n**修复**:三处代码修改(已确认)+ 垃圾记忆已清空\n**当前状态**:✅ 修复完成,smart extraction LLM 6 分类生效\n\n### 知识库文件 ≠ 运行代码(2026-04-19\n- `/Users/chufeng/.openclaw/knowledge_base/` 是参考资料,不是运行代码\n- 运行代码位置:`/opt/homebrew/lib/node_modules/openclaw/dist/`\n- 修改前用 `lsof | grep <filename>` 确认文件是否被进程打开\n\n### 企业微信插件问题(2026-05-06 暂搁置)\n**现象**`openclaw channels login` 报错 `TypeError: fetch failed`gateway 启动报 `Weixin runtime initialization timeout`\n**排查结果**\n- API 连通性正常(curl/node fetch 返回 200\n- 插件本身没问题(2.4.1 已装,npm 版本有 dist/index.js\n- 根因:OpenClaw 5.4 的 channel 启动顺序变化,setWeixinRuntime 时序晚于 channel init\n- 软链接方案(extensions → npm)不可取,暂未找到正确配置方式\n**待处理**:等待 OpenClaw 或 weixin 插件适配;或手动在终端登录(需交互)\n\n### Agent Session 假死复活术(2026-05-04\n**现象**`sessions.json` 中状态为 `running` 但 agent 无响应,`openclaw agent --message` 发心跳没反应。\n\n**根因**Gateway 认为 session 还活着(running)但实际连接已断开,无超时清理。\n\n**复活步骤**(两步走):\n\n1. 修改 sessions.json,把对应 session 的 `status` 从 `running` 改为 `idle`\n ```python\n import json\n path = '/Users/chufeng/.openclaw/agents/<agent-id>/sessions/sessions.json'\n with open(path) as f:\n d = json.load(f)\n d['agent:<agent-id>:main']['status'] = 'idle'\n with open(path, 'w') as f:\n json.dump(d, f, indent=2)\n ```\n\n2. 发心跳激活\n ```bash\n openclaw agent --agent <agent-id> --message \"心跳检测,收到请回复。\"\n ```\n\n**各 Agent sessions.json 路径**\n- 庞统:`/Users/chufeng/.openclaw/agents/pangtong-fujunshi/sessions/sessions.json`\n- 赵云:`/Users/chufeng/.openclaw/agents/zhaoyun-data/sessions/sessions.json`\n- 姜维:`/Users/chufeng/.openclaw/agents/jiangwei-infra/sessions/sessions.json`\n\n### 作文素材 Web 服务(2026-04-29\n- 服务地址:http://192.168.2.153:9999/\n- 服务目录:/Users/chufeng/.openclaw/knowledge_base/\n\n\n### openclaw-control-center 部署(2026-05-06\n- 源:knowledge_base/openclaw-control-center/\n- 部署目录:~/.openclaw/sanguo_projects/sanguo_control_center/\n- 端口:4310 ✅(workspace 副本启动)\n- 修复:usageCost fallback 补全字段(byCronJob/byCronAgent/connectors所有子字段)+ let替换const\n- 注意:primeUiRenderCaches warmup 会 stack overflow 但被 catch 捕获,不影响主功能\n\n### 工作区部署服务(2026-05-06,知识库已清理)\n| 服务 | workspace 路径 | 端口 |\n|------|--------------|------|\n| Edict 参考 | sanguo_edict/ | 7891 |\n| devui | sanguo_devui/build 输出)| 8084 |\n| QuantClaw | sanguo_quantclaw/QuantClaw/ui/dist/ | 8083 |\n| ai-devops-platform | sanguo_ai-devops-platform/devops/ui/dist/ | 8082 |\n| openclaw-control-center | sanguo_control_center/ | 4310 |\n\n知识库中已删除:devui agent_framework_devui/ui/、QuantClaw dist/、ai-devops-platform dist/、Edict data/\n\n### wiki-vault 写入纪律(2026-05-20\n**教训**:把 practice 条目错写到 skills/ 目录,被主公指出后才修正。\n- wiki-vault 分类:concepts/entities/skills/references/synthesis/journal + **practices**\n- **写入前必须确认目标分类目录**,先看已有条目格式再动笔\n- **skills vs practices 格式差异**skills 偏抽象模式(模式描述+核心要素+代码参考),practices 偏具体经验(场景→做法→关键细节→适用)\n\n\n---\n\n# MEMORY.md\n## SELF_IMPROVEMENT_REMINDER.md\n## Self-Improvement Reminder\n\nAfter completing tasks, evaluate if any learnings should be captured:\n\n**Log when:**\n- User corrects you -> .learnings/LEARNINGS.md\n- Command/operation fails -> .learnings/ERRORS.md\n- You discover your knowledge was wrong -> .learnings/LEARNINGS.md\n- You find a better approach -> .learnings/LEARNINGS.md\n\n**Promote when pattern is proven:**\n- Behavioral patterns -> SOUL.md\n- Workflow improvements -> AGENTS.md\n- Tool gotchas -> TOOLS.md\n\nKeep entries simple: date, title, what happened, what to do differently.\n\n\n---\n\n# 🧠 2026-05-09 长期记忆更新\n\n## qwen3.5 模型性能基准(M4 MacBook)\n| 模型 | 速度 | 内存占用 | 适用场景 |\n|------|------|---------|---------|\n| qwen3.5:0.8b | 47.0 tps | ~2.1 GB | 简单分类、关键词提取 |\n| qwen3.5:2b | 32.2 tps | ~4 GB | 速度质量平衡(lanceDB 推荐) |\n| qwen3.5:4b | 17.2 tps | ~5.8 GB | 复杂推理 |\n\n## lanceDB pro 优化最佳实践\n1. lanceDB 的 LLM 模型是无状态调用,每次都是独立请求,不会上下文爆炸\n2. 2b 模型只在需要时临时加载,提取完自动卸载,平时只有 bge-m3 占显存\n3. 两个 LLM 分工明确:2b 只做结构化提取,主 Agent 才接收记忆注入\n\n## OpenClaw 配置经验\n1. \"Proxy headers detected\" 警告是安全机制,不用管;如果自己有代理,配置 gateway.trustedProxies 即可\n2. memory-lancedb-pro 超时配置:60s 足够,2b 模型单次提取 2-6 秒完成\n"
}
}