memU 安装路由技能解析:SKILL.md 如何指挥 AI Agent 三步接入长期记忆 📅 发布时间:2026/9/14 2:07:21 👁 浏览次数: memU 安装路由技能解析SKILL.md 如何指挥 AI Agent 三步接入长期记忆【免费下载链接】memUPersonal memory across agents项目地址: https://gitcode.com/GitHub_Trending/mem/memUmemU 仓库根目录下的 SKILL.md 是一份面向 AI Agent 的元安装指南它本身不写安装步骤而是规定 Agent 如何识别自己的宿主、选择对应的适配二进制、打印并执行随包发行的安装文档。阅读本文后你可以理解 memU 两条缝record/inject 的集成模型、九个宿主适配二进制的路由规则、memu-cli的安装与配置命令细节以及安装完成后如何按固定模板向用户汇报结果。SKILL.md 的定位路由而非步骤memU 的官方安装文档写在每个宿主适配包的内部如 INSTALL.md随包发行、永远与已安装的代码同步。因此 SKILL.md 的设计目标是把 Agent 路由到正确的指南上frontmatter 中name: install-memu与 description 明确触发条件——当用户要求安装、配置、集成、移除或卸载 memU 时使用文档反复强调不要凭记忆或博客文章安装打印指南并逐字遵循因为指南里的子命令、验证门verify gate与已安装版本严格匹配。memU 通过两条缝与宿主 Agent 集成这也是 SKILL.md 全程的组织主线缝作用实现形式record记录定时桥接任务挖掘会话日志沉淀为持久记忆调度任务运行prepare→ 处理 job 文件 →commitinject注入指令文件中写入常设指令让 Agent 回答前先检索install-instruction打补丁到宿主的指令文件每条缝都有对应的宿主二进制与验证门SKILL.md 的三步流程就是围绕这两条缝展开的。Step 1 — 安装 memu-cli 包SKILL.md 的第一步只有一条命令但它附带了几条不容省略的约束pip install --upgrade memu-cli关键细节原文全部保留必须保留--upgrade。旧版memu-cli会缺少下文出现的子命令症状是invalid choice遇到该错误即说明版本过旧应升级后重跑失败的命令。安装后memu与所有宿主适配二进制都会进入PATH。如果pip不是本机合适的工具托管 Python、纯 uv 环境应使用等价手段且必须满足在无交互 shell 中可解析。uv 用户必须用uv tool install --upgrade memu-cli而不是uv pip install——memu-cli是跨会话的桥接工具必须全局可调用不能只存在于某个项目 venv 里。从 pyproject.toml 可以确认包暴露的入口点核心是memu memu.cli:main以及九个宿主适配二进制memu-codex、memu-claude-code、memu-cursor、memu-openclaw、memu-hermes、memu-workbuddy、memu-cola、memu-pi以及兜底的memu-agent通用适配器。宿主适配器之所以是独立二进制而非memu的子命令注释里写得很直白memu是算法面这些是桌面 Agent 的 sidecarADR 0008/0009/0010。Step 2 — 识别你是哪个 Agent选定宿主二进制SKILL.md 的核心路由表要求 Agent 识别正在执行本技能的那个 Agent而不是机器上装了哪些 Agent你是你的二进制Codexmemu-codexClaude Codememu-claude-codeCursor (Agent/CLI)memu-cursorOpenClawmemu-openclawHermes Agentmemu-hermesWorkBuddymemu-workbuddyColamemu-colapimemu-pi其他任何 Agentmemu-agent拿不准或不在表中时一律用memu-agent并运行memu-agent detectdetect会探测本机对每个候选宿主回答两个问题memorization 是否可行存在可识别的会话日志与retrieval 是否可行存在可打补丁的指令文件——如果宿主有专用二进制则直接重定向过去。其实现位于 detect.pyprobe()对目录做只读探测按修改时间取最多 3 个.jsonl文件、各采样 200 条记录用GenericTranscriptSource.classify嗅探约五种已知 JSONL 方言Codex 血统的 payload 包装、OpenClaw/pi 血统的类型化消息树、Claude Code 血统的类型化块记录、Cursor 血统的 rolemessage 块、OpenAI 风格的扁平聊天行指令文件则匹配AGENTS.md、CLAUDE.md、SOUL.md、GEMINI.md、QWEN.md、.cursorrules等生态常见名且只认目录顶层或一层以内的文件。SQLite 容器里的会话会被如实报告为需要一个专用适配器而不是静默跳过。这套先探测、再绑定可用部分的设计出自 ADR 0011其关键结论是两条缝可以独立降级——只有会话日志的宿主也能得到 record 缝只有指令文件的宿主也能得到 inject 缝部分集成也是集成前提是明确告知用户拿到的是哪一半。选定二进制后SKILL.md 要求拿着这个二进制完成配置文件的创建your-binary init --cloud-api-key 用户的 memU key如果用户没有提到 API key或希望把记忆留在本设备则运行裸的your-binary initStep 3 的指南会引导设置本地记忆。init的行为语义在 config_cmd.py 中实现值得理解几点它写入唯一的配置文件~/.memu/config.env路径定义在 env.py并自动为文件生成MEMU_CLIENT_IDuuid4保证机器在第一次上报事件前就有稳定身份不带 key 的裸init永远不拒绝已声明的 mode 原样保留只有完全未声明 mode 的文件才写入local——重安装时绝不能把 cloud 悄悄降成 local带 key 的init即选择 cloud即使本机已有本地存储也会执行切换本地存储不会被删除只是不再被读取init会打印明确的警告并给出回退命令your-binary config --local --force与之相对的config子命令则带单一后端守卫若机器上已有现存记忆云端 key 或MEMU_DBconfig --cloud/--local会拒绝切换退出码 2 而非抛异常必须显式加--force。理由是record 与 retrieval 必须同意一个后端否则检索会静默找不到任何东西。这解释了 SKILL.md 里一个后端One backend规则的存在意义同一台机器上多个 Agent 共享同一个~/.memu/config.env第二套 mode 或本地存储会让两次安装不再共享记忆。Step 3 — 打印并逐字遵循安装指南your-binary docs installdocs install打印的是随包发行并可被服务端刷新的宿主指南。从 _cmd_docs 可以看到其解析顺序服务端 → 最后一次成功缓存 → 包内嵌底稿与 ADR 0013 的指令模板自更新机制同构再经render_doc用受控 token{{task_name}}等渲染出宿主专属的任务名保证注册代码与文档散文不会各自漂移。所有指南形状相同先用your-binary config一次性敲定本地或云端后端然后注册定时桥接任务record 缝、再打补丁指令文件inject 缝每个部分都以 verify 门收尾未通过不得前进。SKILL.md 为所有宿主规定了同一组执行纪律一次装完不停下来要确认。用户期望一次调用内静默完成完整安装有默认值的选项一律取默认每小时调度、cron 优先于 launchd、官方安装脚本只有真正的阻断致命错误或无默认值的必填输入——后端选择及其 API key、缺失凭据才停下来。单一后端。若your-binary config show报告已有 mode 且其后端可用说明本机另一个 Agent 已集成原样复用。按固定模板汇报结果。安装后先运行一次检索冒烟your-binary retrieve When did the user register for memU?然后逐字复现以下模板不得改写、重排、总结或翻译只替换...占位符memU is ready for host with mode memory. Welcome to memU. memU says the user registered on registration time. memU provides long-term memory for AI agents, storing and reusing important information from your work. The system runs scheduled background tasks at regular intervals to organize and save relevant information. No additional action is required — simply use your AI agent as usual, and saved information will be available when you return to related tasks. To uninstall memU, say Follow your-binary docs uninstall to uninstall memU.占位符填写规则host是你所在的 Agent如Claude Codemode是你实际写入~/.memu/config.env的MEMU_MEMORY_MODE值local或cloudregistration time是上面retrieve调用的返回值——如果调用失败或未返回注册时间local 模式下常见整行 Welcome to memU… 必须整行删除绝不编造时间your-binary是 Step 2 选定的二进制。最后一行外层引号要保留让用户看到的是建议回复——用户把引号内那句原样发回即可触发卸载流程。若只有一条缝生效要如实说明安装是部分完成并指出缺失的那条缝memu-agent则依据detect报告判断哪些缝生效。以 Claude Code 指南 INSTALL.md 为例它把上述形状展开为三个部分、每个部分一个验证门Part 1 装包 init/config配置后端并以doctor验证Part 2 注册每小时的 cron/launchd/Task Scheduler 桥接任务先确认claude可 headless 认证验证门是手动跑一次memu-claude-code preparePart 3 用install-instruction把检索指令打进~/.claude/CLAUDE.mdClaude Code 有 skills 机制正文装进~/.claude/skills/memu-retrieve/SKILL.mdCLAUDE.md里只留两句话指针验证门是确认块恰好出现一次、原内容完整、retrieve冒烟通过。文末还有独立的 Report the outcome to memU 段全程走通则report install中途停下则report error --stage install --detail …且明确要求详细但不贴 traceback绝不包含凭据、绝对路径、DSN、端点 URL 或记忆内容。卸载同一套路由反向执行SKILL.md 的 Uninstall 一节规定识别二进制的方式与 Step 2 完全相同然后打印并遵循卸载指南——your-binary docs uninstall指南依次反注册桥接任务 → 用your-binary remove-instruction移除指令块绝不手工编辑指令文件因为文本由 memU 所有、带标记块可安全原地替换→ 应用数据默认值用户的记忆共享存储与~/.memu/config.env默认保留除非用户明确要求擦除而本宿主的残留物以及若没有别的宿主还在用memu-cli包本身被移除。最后必须准确汇报两件事保留了什么、移除了什么。Claude Code 的 UNINSTALL.md 展示了多宿主、单存储的边界处理~/.memu/hosts/下其他宿主的工作树、指令文件一律不碰会话游标记录哪些轮次已挖掘随存储的存亡而存亡——保留存储则保留游标否则下次安装会白白重挖所有旧会话删除存储则连游标一起删事件 spool~/.memu/events.jsonl及其 sidecar只在确实移除了memu-cli时才可一并清除因为它与所有宿主共享。源码层视角为什么一个命令面多个宿主二进制host_cli.py 是整个宿主适配体系的核心其模块 docstring 概括了架构要点每个宿主暴露完全相同的动词retrieve、install-instruction、remove-instruction、prepare、commit、verify-resources、doctor、docs等因为背后的管线与宿主无关各宿主之间不同是数据而非代码——二进制名、会话日志位置、指令文件路径、打包指南。因此解析器只从HostSpec构建一次每个宿主的 cli.py 都瘦成一份声明加main。以 Claude Code 适配器为例HostSpec声明了task_namememu-bridging-claude-code、指令文件~/.claude/CLAUDE.md、skills 目录~/.claude/skills、session_id_envCLAUDE_CODE_SESSION_ID让定时运行识别它自己的会话从而不挖掘自己即 issue #606 的解法以及 Windows 任务计划程序所需的schedule_commandclaude -p {prompt}。工作目录按宿主隔离Codex 沿用最初的~/.memu其余宿主默认~/.memu/hosts/host避免两个宿主的桥接运行争抢同一个jobs/目录ADR 0010而持久后端始终共享——所有宿主读同一个~/.memu/config.env这正是 memU 的产品语义一个宿主会话教给 memU 的另一个宿主可以检索到。与 SKILL.md 直接相关的事件语义也藏在源码注释里init记录安装漏斗的开始config_cmd.py 的_report_install_started特意在写完文件、重新加载环境之后才上报以免生成第二个 client iddocs install记录更窄的打开指南事件——两者都立即 flush因为一个死在半途的安装永远不会到达prepare/commit这两个常规 flush 点而它恰恰是漏斗最想暴露的那类运行。小结SKILL.md 把 memU 的安装问题拆成三个可验证的动作装包pip install --upgrade memu-cli、路由识别宿主 → 选定二进制 →init写配置、执行docs install打印的宿主指南 逐门验证 固定汇报模板。它把步骤永远与代码同步外包给了随包发行的 INSTALL.md把该走哪条路固化成一张九行路由表把装没装成功固化成doctor、prepare、retrieve三个可执行判据。对集成方而言理解这套机制的实际收益是无论接入哪种 Agent安装路径、失败症状invalid choice、invalid choice、502 代理问题与卸载边界记忆保留、宿主残留、共享 spool都有明确出处可循。【免费下载链接】memUPersonal memory across agents项目地址: https://gitcode.com/GitHub_Trending/mem/memU创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考