没有专属适配器的 agent 如何接入 memU:用 memu-agent detect 判定 memorization 与 retrieval 支持
2026/9/15 17:34:24 网站建设 项目流程

没有专属适配器的 agent 如何接入 memU:用 memu-agent detect 判定 memorization 与 retrieval 支持

【免费下载链接】memUPersonal memory across agents项目地址: https://gitcode.com/GitHub_Trending/mem/memU

如果你的 agent 不在 memU 的专属适配器名单里(Codex、Claude Code、Cursor、OpenClaw、Hermes 等各有各的二进制),就需要走通用适配器memu-agent。接入的第一步不是配置,而是判定:memu-agent detect会探测你的机器,逐个报告每个 agent 的两条接缝是否可用——memorization(记录接缝,要求存在可识别的 JSONL 会话日志)和retrieval(注入接缝,要求存在可打补丁的指令文件)。判定结果决定后面做哪些步骤,两条都不可用则直接终止。

memU 的集成包是memu-cli,通用适配器的完整安装指南打包在 src/memu/hosts/generic/INSTALL.md 中,路由入口在 SKILL.md。

准备:安装 memu-cli 并保留--upgrade

pip install --upgrade memu-cli

--upgrade不能省:已经装过旧版memu-cli的机器会一直保留旧版,而旧版对initconfigdetect等子命令只会回答invalid choice。安装过程中或之后任何位置遇到这个错误,说明你停在旧构建上——升级后重跑失败的那条命令即可。这个包把memu和所有 host 适配器二进制放进PATH,之后所有 memU 侧操作都是裸命令,不需要写脚本绝对路径。如果机器用uv管理 Python,对应的是uv tool install --upgrade memu-cli(不是uv pip install),关键是这些二进制必须在非交互 shell 里也能解析到。

运行 detect:扫描全部或只探测一个目录

memu-agent detect

不带参数时,detect扫描~下的 agent 安装目录(跳过.git.cache等非 agent 目录),逐个输出判定。只想知道某个 agent 的情况,直接给它一个目录:

memu-agent detect ~/.someagent

整个探测是只读的,不写任何文件。detect对每个候选目录按顺序回答两个问题:会话日志的记录是否嗅探出已知 JSONL 方言(memorization),以及是否存在AGENTS.mdCLAUDE.mdSOL.md一类可打补丁的指令文件(retrieval)。没有扫描到 agent 时输出no agent installations found under ~;扫描成功时结尾会附上下一步命令提示,形如:

next steps: for a dedicated adapter, run its install guide; otherwise memorization → memu-agent prepare --session-dir <dir> (schedule via `memu-agent docs task`) retrieval → memu-agent install-instruction --path <file>

一个探测到会话日志和指令文件的目录,输出类似(以下数值为文档示例,实际以你机器上的探测结果为准):

~/.someagent memorization: works — 12 session file(s), 200/200 sampled record(s) recognized (154 conversation, 46 tool) retrieval: works — instruction file ~/.someagent/AGENTS.md (install with `memu-agent install-instruction --path ~/.someagent/AGENTS.md`)

如何读判定结果

对每个 agent,detect给出四种结局之一,处理方式各不相同:

  • memorization: works— 找到了.jsonl会话文件,且抽样记录的对话/工具条数被识别出来。记下报告中的目录路径,Part 2(注册定时 bridging 任务)要用它作为--session-dir。注意:如果会话存在 SQLite 等嗅探器读不了的容器里,memorization 会明确报不可用并指向具体文件——这种情况下通用适配器挖不到它的会话,需要专属适配器(如memu-hermes的做法),不是配置问题。
  • retrieval: works— 找到了指令文件。记下路径,Part 3 的install-instruction --path要用它。如果全局文件没找到,但该 agent 会读项目根目录的AGENTS.md,retrieval 仍然按项目可用:在各自项目内运行memu-agent install-instruction(不带--path)即可,这属于文档明确的替代路径。
  • dedicated adapter— 该 agent 其实有自己的二进制(memu-codexmemu-claude-codememu-cursormemu-openclawmemu-hermes)。停下来改用专属适配器:<binary> docs install,不要继续走通用流程。
  • 两条都不 work— 到此为止。文档的判定很直接:memU 目前无法与该 agent 集成,"no amount of setup changes that",继续配置只会得到静默失败。

判定结果要如实告知使用者——"memorization works"、"retrieval works"、两者兼有还是都没有,以及为什么(找到了什么、在哪里)。部分集成(比如只有 retrieval)本身是合法结局,但必须把缺的那一半讲清楚,而不是当成安装失败。

判定通过后的连续操作路径

以下各步都带有 verify 门槛,当前门槛不过就不进入下一步(完整命令与约束见 src/memu/hosts/generic/INSTALL.md)。

Part 1 — 配置记忆后端(必做)。不要手写~/.memu/config.env,所有 memU host 共享这一个文件,且必须保证记录与检索落在同一后端、同一嵌入空间,否则检索一直成功却查不到任何东西。直接配置的话运行:

memu-agent init --cloud-api-key <the user's memU key>

没有云端 key 或想把记忆留在本机,就用裸memu-agent initinit幂等,重跑无害。查看已有状态用只读的memu-agent config show:如果报告已有一个带后端的模式,说明这台机器上别的 memU host 先接入了,直接复用,不要改身份三件套(--db--embed-provider--embed-model)——config会拒绝修改已设置的这三项,因为它们绑定了既有向量所在的嵌入空间。

验证门槛:

memu-agent doctor

它打印解析出的模式及其端点或本地存储/嵌入提供方,必须干净退出。新后端上冒烟检索零命中是预期结果,不算失败。

Part 2 — Memorization(仅当 detect 判定可用)。按打包流程注册定时任务:

memu-agent docs task

摘要就是:与使用者敲定调度(默认每小时),注册一个周期性运行,其 prompt 执行memu-agent prepare --session-dir <detected dir>,按顺序处理~/.memu/hosts/agent/jobs/*.txt,然后memu-agent commit<detected dir>换成 detect 报告中 memorization 那条给出的目录路径。同一台机器接入多个通用 agent 时,每个任务加--base-dir ~/.memu/hosts/<name>隔离工作树。

验证门槛:手动跑一次 prepare,

memu-agent prepare --session-dir <detected dir>

它应报告准备了多少个会话;没有新会话时报告零是正确的。

Part 3 — Retrieval(仅当 detect 判定可用)。把 memU 的常驻检索指令打进 detect 找到的指令文件:

memu-agent install-instruction --path <detected file>

<detected file>替换为 detect 报告中 retrieval 那条的文件路径。命令是追加而非覆盖(原内容备份到<file>.bak),幂等,重跑或后续 memU 版本会就地替换标记块。

验证门槛:

cat <detected file> memu-agent retrieve "smoke test"

memU 块必须恰好出现一次、原有内容完好,retrieve干净退出(空列表也没关系)。agent 新开一个 session 后就会读到这份指令文件。

收尾:向 memU 报告结果

memU 对安装是否成功是盲的——装死在 Part 2 的安装和根本没尝试过的外观看起来一样。所以无论这一轮以哪种方式结束,都用一条命令收尾(尽力而为,失败可忽略):全部门槛通过时

memu-agent report install

中途停下的话

memu-agent report error --stage install --detail "<完整说明发生了什么>"

--detail要写足:停在哪个门槛、跑了什么、和文档预期相比发生了什么、已试过什么、你认为的原因——不要粘贴 traceback 或原始输出,也不要写入 API key、绝对路径、DSN 或记忆内容。

最后向使用者汇报三件事:哪些接缝生效(memorization 来自哪个会话目录,retrieval 打进了哪个指令文件,或都没有)、选定的模式及其端点/本地存储、定时任务和指令文件的落点。两条接缝读同一个~/.memu/config.env,因此天然共享同一后端——这个 agent 的会话教会 memU 的内容,机器上其他已接入的 agent 也能检索到。

相关文档

  • 通用适配器安装指南(含全部 verify 门槛与排障,如本地嵌入服务器经代理返回 502 的处理):src/memu/hosts/generic/INSTALL.md
  • detect 机制的设计决策与局限(嗅探是启发式的,未识别方言归为OTHER,宁可少挖不误挖):docs/adr/0011-generic-host-adapter.md
  • 判定与渲染逻辑源码:src/memu/hosts/generic/detect.py
  • 定时 bridging 任务的注册细节(cron 的 PATH 行、prompt 落盘避免 1 KB 截断):src/memu/hosts/generic/BRIDGING_TASK.md
  • 安装路由入口:SKILL.md

【免费下载链接】memUPersonal memory across agents项目地址: https://gitcode.com/GitHub_Trending/mem/memU

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询