20 lines
32 KiB
JSON
20 lines
32 KiB
JSON
{
|
||
"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+僵尸检测:升级ReportWatcher(Hermes 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 → SubTask,Card 既不是 Task 也不是 SubTask\n- **新模型**:Project(仓库) → Task(用户需求/意图) → SubTask(Agent 执行的原子任务/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 是一个 Task,must_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-26:polling 不刷新 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 还没 approved(graph 为空,无节点),execute_graph 立即返回(0层0节点),deliverable 生成 → COMPLETED。根因:`_execute_task` 不检查\"是否有节点真的完成了\",空图也被视为成功。第二次同理:control.flag 让节点 failed,但 deliverable 不检查 failed_nodes。\n- **用户指示**:先记录不改\n\n### 2026-05-08 状态机守卫实施\n\n- **方案**:新建 state_machine.py(ACTION_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 lock(Gateway 持有锁时 poller 无法投递)+ lancedb hook 超时\n- **P3 遗留**:不存在任务返回 200 而非 404;error 返回 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(生产前端)、8081(mozi 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 Center(Webchat 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- [ ] Phase2:Skill集群模板设计\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 Mail(2026-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 工具总线 — 让 LLM(Claude/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 OS,Skill + MCP 混合架构\n- 5 个 Interview Perspectives(Researcher/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.9(npm 最新)\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 功能路径 bug(warn,不影响)\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"
|
||
}
|
||
} |