让 Agent 不再从头开始:用 Nowledge Mem 搭建统一记忆中枢
先聊聊:为什么我需要 Nowledge Mem
我经常在几种工作环境间切换。MacBook 上开着 Claude Code 写功能,Linux 服务器跑 Codex 和自动化任务,手机里则记着临时冒出来的想法。真正麻烦的不是某一次会话结束,而是那些已经确认过的东西反复消失:项目约定、做过的取舍、踩过的坑、还没做完的判断。换一台电脑、换一个模型、换一种 Agent,Agent 又会问一遍相同的问题。我知道答案在哪,却要重新把它讲给另一个工具听。
Nowledge Mem 适合放在这个位置。它不是替代笔记软件,而是为接入它的工具留下一份能持续使用的工作记忆:决策、资料、对话沉淀和关联关系都回到同一个地方。Agent 可以检索已有上下文,再继续当前的任务,而不是把每次对话当作一座孤岛。我把数据放在自己控制的主机上,再让其他设备和工具连接它。这样安排以后,记忆不跟着某个客户端走,也不会因为合盖或重启而散在不同角落。
Mem 上手很简单,只需要安装、连接,它几乎支持市面上所有的 Agent 和大模型聊天工具,可以通过 MCP、Agent 插件、浏览器拓展工具,找你所有的 AI 使用记录,之后你就可以在 Mem 中看到你的会话记录(当然产生记忆还需要一段的时间)。
不过这不是本文的重点。真正要讨论的是多设备场景:当多台设备同时运行大模型对话和 AI Agent,怎样把所有设备的 Agent 记忆集中存储。让本地 Codex 知道我上周在远端 OpenClaw 的决策,也能直接用手机 ChatGPT Voice,查询我昨天改动过哪些项目。
一台中枢,多端访问
选一台长期在线的设备作为中枢,所有客户端都连接到这一个实例。记忆、对话、文库和知识图谱保存在中枢上,各端读写同一份后端数据,因此没有“哪台机器是最新版本”的问题。
这也划出了使用边界:
- 迁移设备或保留离线副本时,使用导出、导入和备份。
- 希望设备与 Agent 持续使用同一份上下文时,运行一台常驻 Mem,并开启“随处访问 Mem”。
我的中枢是 Mac mini。它始终通电,适合保存数据,也适合承载需要连续上下文的任务。MacBook、Linux 服务器和手机则按需要连接进来。
flowchart LR core["Mac mini\nNowledge Mem 主实例\n记忆、线程、文库、知识图谱"] link["安全访问入口\nURL + API Key"] mac["MacBook\n日常开发与写作"] server["Linux 服务器\n自动化与 Agent"] mobile["手机\n检索与记录"] core --> link link --> mac link --> server link --> mobile
三种接入方式,按需选择
远程访问需要一个可访问的 URL 和 API Key。官方提供三种方式,区别主要在于地址是否稳定,以及你愿意投入多少配置工作。
| 接入方式 | 适合的场景 | 地址特点 |
|---|---|---|
| Nowledge Link | 已订阅 Plus 或 Max,希望少做网络配置 | 稳定的 *.nowledge-mem.com 地址 |
| Quick link | 第一次验证流程,或短期访问 | 随机的 *.trycloudflare.com 地址 |
| Cloudflare 账号模式 | 已有 Cloudflare 托管域名,计划长期使用 | 自己域名下的固定地址 |
我使用的是 Cloudflare 模式,但我建议先用 Quick link 把 MacBook、Linux 和手机全部接通。确认它们能正常连接实例后,再决定要不要换成 Nowledge Link 或自己的域名。这样排查问题时,网络、客户端配置和 Agent 集成不会同时成为变量。
先使用 CLI 验证
拿到中枢 URL 和 API Key 后,在另一台 Mac 或 Linux 机器上配置 nmem:
| |
nmem status 返回正常状态后,当前机器的 CLI 会读取本地客户端配置。官方文档说明,OpenClaw、Bub、Claude Code 等集成也可以复用这份连接配置。对脚本或 CI 来说,则可以使用 NMEM_API_URL 与 NMEM_API_KEY 环境变量,把凭据交给系统密钥管理或 CI Secret。
配置时几个容易忽略的细节
- Cloudflare 自定义域名模式中,主机服务地址填写
http://127.0.0.1:14242,不要追加路径。 - 桌面版、主机安装和 Docker 镜像均由 Mem 管理内置的
cloudflared,不需要再维护额外的 sidecar。 - 某些公司网络、校园网或 VPS 会拦截 UDP/QUIC。Mem 遇到这种情况会改用 HTTP/2 重试;无头服务器也可以通过
TUNNEL_TRANSPORT_PROTOCOL=http2强制使用 TCP。 - 局域网和远程访问共用 API Key。轮换 key 后,旧 key 不再可用。
- Cloudflare account-mode hostname 不能启用 browser-only challenge,例如 I’m Under Attack mode,见 Github Issue。
- 切换到远程实例后,请检查你 Agent 的 MCP host 是否已经修改为远程地址,而不是默认的
http://127.0.0.1:14242。
远程访问之后,安全要跟上
把知识库放到可远程访问的地址,便利和权限管理必须一起处理。我会遵守几条简单的规则:
- Quick link 用于测试,长期入口使用 Nowledge Link 或受控的 Cloudflare 域名。
- 设备遗失、临时授权结束或怀疑密钥泄露时,立即轮换 API Key。
- 不把 key 写进仓库、Shell 历史或任务日志;脚本与 CI 从受限环境变量或密钥管理服务读取它。
- 隧道、URL 和 key 的管理只在中枢本机进行。官方将 Access Anywhere 的管理接口限制为本机调用。
- 暂时不需要远程访问时,关闭 tunnel,缩小暴露面。
- 有些时候,直接断网或断电要比让 Agent 检查到底哪里泄露了 Key 要快的多。
让记忆留在工作流里

在我看来,Nowledge Mem 真正的核心价值,从来不是多了一个可检索的记忆仓库,而是彻底消解了跨设备工作时反复同步背景的冗余。无论是 MacBook 上的一次方案判断、Codex 产出的一次任务结果,还是手机端随手补充的一条记录,都会汇入同一条持续生长的记忆脉络之中。
不必急于一时,它的价值会在持续使用中逐步释放,最终带来的体验往往会超出你的预期。
记忆也是需要积累的。