安全地自定义连接行为
让你的 Nowledge Mem 行为调整在插件或扩展升级后仍然保留。
如果你调整了连接行为,这个改动不应该在下次插件升级时消失。
最稳妥的规则很简单:优先使用宿主自己提供的指令文件或设置入口,不要直接去改安装目录里的插件文件。
第一步该做什么
先找到你正在使用的工具,把一条小规则写进下面对应的位置。之后正常升级一次插件,确认这条规则还在生效。
改在哪里最合适
| 工具 | 建议放在这里 | 适合什么场景 |
|---|---|---|
| Codex | 项目里的 AGENTS.md | 桌面端和 CLI 共用的仓库级记忆行为 |
| Claude Code | 个人规则放 CLAUDE.local.md,共享规则放 CLAUDE.md | 个人偏好或团队共享规则 |
| Copilot CLI | 仓库共享规则放 .github/copilot-instructions.md 或 .github/instructions/*.instructions.md,个人规则放 ~/.copilot/copilot-instructions.md | Copilot 的共享或个人行为 |
| Cursor | .cursor/rules/*.mdc 或 .cursorrules | 项目级 Cursor 规则 |
| Gemini CLI | 项目 GEMINI.md,可选 ~/.gemini/GEMINI.md | 仓库规则或个人默认规则 |
| Hermes Agent | 仓库规则放 HERMES.md,个人规则放 ~/.hermes/SOUL.md | 项目级或全局 Hermes 行为 |
| OpenCode | 项目 AGENTS.md、~/.config/opencode/AGENTS.md,或 opencode.json 里的 instructions 文件 | OpenCode 的共享或个人行为 |
| Pi | 项目 AGENTS.md | 项目级 Pi 行为 |
| OpenClaw | OpenClaw 插件设置,以及 OpenClaw 自己的提示词或 Agent 配置 | 行为开关和额外提示 |
| Alma | Alma 插件设置,以及可选的原生 nowledge-mem Skill | 回忆、捕获策略和补充指令 |
| Bub | Bub 自己的运行提示或配置,再配合共享的 nmem 配置 | Bub 的行为和连接方式 |
| Droid | Droid 自己的提示词或指令入口,再配合共享的 nmem 配置 | Droid 的行为和连接方式 |
| Raycast | Raycast 偏好设置 | 启动器层面的固定行为,比如服务器地址、密钥、space |
不要这样做
- 不要直接修改安装目录里的插件文件,比如
~/.codex/...、~/.copilot/installed-plugins/...、~/.cursor/plugins/...这些缓存路径。 - 不要在原地修改插件自带的 skills,然后期待升级后还能保留。
- 如果宿主根本不会读取某个文件名,就不要自己发明一个新的“覆盖文件”名字。
什么才算真正配好了
满足下面三点,就说明这条路径是稳的:
- 你的自定义规则放在宿主真正会读取的位置。
- 插件或扩展正常升级后,连接本身还能工作。
- 升级后不需要再去改安装目录,你的行为调整依然生效。
很适合先加的一条小规则
- “遇到回归问题时,先搜索以前的发布或修复记录。”
- “用户用中文工作时,更倾向保存中文记忆。”
- “当用户问‘我们之前怎么决定的’时,更主动地搜索历史对话。”
规则越短越好。目标是轻轻地调整行为,而不是重写整套连接说明。
多智能体编排工具
如果另一个应用负责启动你的 Agent,请给每个长期运行的 worker 一个稳定的 Mem 身份,而不是让所有子进程共用默认身份。
nmem agents upsert cindy \
--name "Cindy" \
--default-space onboarding \
--instructions "帮助用户完成 onboarding。一次只解释一个步骤。"这会创建名为 Cindy 的 Mem AI Identity。命令和环境变量里使用的 ID 是 cindy。这个命令只是创建身份记录;它不会让所有 Codex 会话都变成 Cindy。
然后在这个 worker 的环境变量里只需要配置:
NMEM_AGENT_ID="cindy"这个身份是可迁移的。你可以把 Cindy 从 Raft 换到其他编排工具,或者把子运行时从 Codex 换成 Pi;只要新的运行时已经连接 Mem,并继续收到同一个 NMEM_AGENT_ID。
如果这个身份已经有默认 Space,就不需要再设置 NMEM_SPACE。只有当这个运行时需要整体覆盖默认 Space 时,再加 NMEM_SPACE="onboarding"。source_app 仍然代表子运行时本身。比如由编排工具启动的 Codex worker,读取 Context Bundle 时仍然是 Codex。NMEM_HOST_AGENT_ID 是高级外部别名,不是第二个必填身份字段。
如果你想要同一个 persona 的变体,创建一个新身份,例如 cindy-reviewer,而不是在每个启动器里改来改去。这个新身份可以从 Cindy 的规则开始,再独立演化。
带截图的 Raft 设置步骤见 Raft。