OpenClaw × Nowledge Mem
5 分钟配置指南,让 OpenClaw 拥有跨会话的持久记忆。
配置完成后,你的 OpenClaw 会记住你在上一次会话说的话,记住你上周做的决定,记住你三个月前写入文档的知识。
开始之前
需要准备:
- Nowledge Mem 已在本地运行(安装)
- OpenClaw 已安装(OpenClaw 入门)
nmemCLI 在你的 PATH 中。在 Nowledge Mem 中,打开 设置 > 偏好设置 > 开发者工具,点击 安装 CLI。或独立安装:pip install nmem-cli
nmem status # 应显示 Nowledge Mem 正在运行
openclaw --version配置步骤
安装插件
openclaw plugins install @nowledge/openclaw-nowledge-mem更新到最新版本:
openclaw plugins update openclaw-nowledge-mem在 OpenClaw 配置中启用插件
打开 ~/.openclaw/openclaw.json,加入以下内容:
{
"plugins": {
"slots": {
"memory": "openclaw-nowledge-mem"
},
"entries": {
"openclaw-nowledge-mem": {
"enabled": true
}
}
}
}设置在 OpenClaw 的 Config > Plugins > Plugin Entries 中管理。详见下方配置。
重启 OpenClaw,验证生效
openclaw nowledge-mem status看到 Nowledge Mem 可访问即配置成功。
验证配置(1 分钟)
在 OpenClaw 聊天中依次执行:
/remember 我们为任务事件选择了 PostgreSQL/recall PostgreSQL- 应立即找到/new- 开启新会话- 问:
任务事件的数据库我们选的什么?- 跨会话记住了 - 问:
这周我都做了什么?- 按周浏览 - 问:
2月17日我在忙什么?- 精确到某一天 /forget PostgreSQL 任务事件- 删除干净
如果以上七步都顺利,记忆系统已完整运作。
你能做什么
记住任何事情
告诉 AI /remember 我们决定不用微服务,原因是团队太小,下周换一个会话,直接问"微服务那个决定是怎么说的",它能找到。
按日期找回工作内容
问"上周二我在做什么",AI 会列出那天你保存的内容、添加的文档、生成的洞察。支持指定具体日期,不只是"最近 N 天"。
追溯一个决策的来龙去脉
问 AI "这条记忆是怎么来的、和什么有关",它会展示:这条知识的原始来源文档、哪些相关记忆被合成为了更高层的洞察、这个认识随时间怎么变化过。
每天自动带着上下文开始
每天早上,Nowledge Mem 的知识智能体生成一份今日简报:你在关注什么、有什么未解决的问题、最近有什么新进展。会话开始时 AI 自动读取,不需要你每次重新介绍背景。
保存时带上类型和时间
你不只是在保存文字,你在记录结构化的知识。告诉 AI "记住这是一个决策,发生在 2026 年 2 月",它会以正确的类型和时间存进知识图谱。支持 8 种类型:事实、偏好、决策、计划、流程、学习、背景、事件。
追溯记忆的来源对话
当一条记忆是从对话中提炼出来的,它会包含 sourceThreadId。AI 可以用 nowledge_mem_thread_fetch 获取完整对话,查看当时说了什么、做了什么决定、结论是怎么得出的。
直接搜索过去的对话
问"找一下我们讨论 Redis 缓存的那次对话",AI 会用 nowledge_mem_thread_search 找到匹配的对话线程和消息片段。然后用 nowledge_mem_thread_fetch 逐页获取完整消息。
斜杠命令快捷方式:/remember、/recall、/forget
工作原理
每轮对话的工作流
每次你发送消息,插件会在 AI 处理之前注入行为引导。AI 随后决定调用哪些工具。
行为引导提示 AI 回答前先搜索、做完决定后保存。每个工具的触发时机:
| 场景 | 工具 | 做什么 |
|---|---|---|
| 用户提问 | memory_search | 回答前搜索知识库,返回 sourceThreadId |
| 做了决策、学到新东西 | nowledge_mem_save | 结构化保存:类型 + 标签 + 时间 |
| "上周我在做什么?" | nowledge_mem_timeline | 按天分组的活动流,支持精确日期 |
| "X 和 Y 有什么关联?" | nowledge_mem_connections | 图谱遍历:边、实体、演化链、来源 |
| 需要今日重点/优先事项 | nowledge_mem_context | 读取工作记忆每日简报 |
记忆有 sourceThreadId | nowledge_mem_thread_fetch | 获取完整来源对话,支持分页 |
| "找一下我们讨论 X 的对话" | nowledge_mem_thread_search | 按关键词搜索过去的对话 |
| "忘掉 X" | nowledge_mem_forget | 按 ID 或搜索词删除 |
| "我的配置对吗?" | nowledge_mem_status | 显示配置、连接状态和版本 |
会话生命周期(自动捕获)
会话结束时,对话自动被捕获并可选地提炼为结构化记忆。无需用户操作。
要点:
- 线程捕获是无条件的,每段对话都会保存,可通过
nowledge_mem_thread_search搜索 - LLM 提炼仅在
agent_end时运行,检查点期间不执行 - 提炼出的记忆携带
sourceThreadId,可追溯到来源对话
渐进式检索(记忆 -> 线程 -> 消息)
从对话中提炼的记忆携带 sourceThreadId,形成检索链:搜索记忆 -> 追溯来源对话 -> 分页读取完整消息。
两个进入过去对话的入口:
- 从记忆出发:
memory_search或memory_get返回sourceThreadId,然后获取来源对话 - 直接搜索:
nowledge_mem_thread_search按关键词查找对话,然后获取任意结果
三种模式
插件支持三种运行模式。根据你想要多少保障、愿意花多少 token 预算来选择。
| 模式 | 配置 | 行为 | Token 开销 |
|---|---|---|---|
| 默认(推荐) | sessionContext: false | AI 按需调用 10 个工具。会话结束时自动捕获 + 提炼。 | 约 50 token/轮(引导)+ 每次会话一次轻量筛选 |
| 会话上下文 | sessionContext: true | 每次提示时自动注入工作记忆和相关记忆,同时仍可使用全部 10 个工具。 | 约 1-2KB/次 |
| 最小模式 | sessionDigest: false | 仅工具调用,不自动捕获。 | 约 50 token/轮(仅引导) |
选哪个模式?
- 大多数用户:从默认模式开始。AI 每轮收到行为引导,提示它回答前先搜索、做完决定后保存。大多数对话场景下效果良好。
- 短会话或需要高准确性:开启
sessionContext。这确保从第一轮开始就有相关记忆在上下文中,AI 不需要自行判断是否搜索。代价是每轮多约 1-2 KB 上下文。 - 完全手动控制:设置
sessionDigest: false。你自己决定什么该保存(通过/remember或nowledge_mem_save),不会自动捕获任何内容。
sessionContext - 会话上下文注入
开启后,插件在每次提示时自动注入上下文:
- 读取工作记忆,即 Knowledge Agent 每天早上生成的今日简报
- 根据当前消息在知识图谱中搜索相关记忆
- 将两者以隐式上下文的形式插入系统提示
开启 sessionContext 后,行为引导会自动调整,告诉 AI 上下文已经注入,memory_search 仅用于特定的后续查询,而非广泛的回忆。这样可以避免重复搜索相同的上下文。
适用于短会话和关键工作流,确保从第一轮开始就有完整的记忆上下文。
sessionDigest - 对话线程 + LLM 智能提炼(默认开启)
在会话生命周期事件(agent_end、after_compaction、before_reset)时执行两步操作:
1. 对话线程保存(始终执行)。 完整对话被追加到 Nowledge Mem 的持久化线程中。无条件执行,每条消息都会被保存,可通过 nowledge_mem_thread_search 搜索浏览。
2. LLM 智能提炼(有价值时才执行)。 保存线程后,先用一次轻量级 LLM 筛选判断对话中是否有值得保存的内容(决策、洞察、偏好、事实)。如果有,执行完整的提炼流程,提取带有正确类型、标签和时间信息的结构化记忆。支持任何语言。
上下文压缩:当 OpenClaw 压缩长对话时,插件会先捕获对话记录,不会丢失任何内容。
消息去重:线程追加按消息 ID 幂等,不会出现重复内容。
常见问题
AI 每次回答前都会搜索记忆吗?
行为引导会提示 AI 搜索,但不会强制。这是有意为之的设计:在每轮对话都强制搜索会增加延迟和成本,很多消息(比如「你好」「谢谢」)并不需要历史上下文。实际使用中,现代 LLM 在涉及知识的问题上会可靠地遵循行为引导。如果你需要确保每次都有完整的记忆上下文,开启 sessionContext: true,它会在 AI 处理消息之前就注入相关记忆。
怎么防止 AI 重复保存同一件事?
两层防护。第一,插件在每次保存前都会检查是否已有高度相似的记忆,如果相似度极高,保存会被跳过,返回已有记忆的信息。第二,Nowledge Mem 的 Knowledge Agent 在后台运行更深层的去重,它识别记忆之间的语义重叠,并通过 EVOLVES 链(替代、丰富、确认或挑战)建立关联。插件处理明显的重复;Knowledge Agent 处理微妙的重复。
没有主动保存的对话会怎样?
如果 sessionDigest 开启(默认就是开启的),每段对话都会保存为可搜索的线程,之后可以通过 nowledge_mem_thread_search 找到。同时,一次轻量级 LLM 筛选会检查对话中是否包含值得保存的决策、洞察或偏好。如果有,会提取为带有正确类型、标签和时间信息的结构化记忆。如果对话只是日常交流,不会额外保存任何内容。
记忆会过时吗?
会,这是设计的一部分。Nowledge Mem 的 EVOLVES 链追踪认知如何变化:新的记忆可以替代、丰富或挑战旧的记忆。Knowledge Agent 自动识别这些关系。搜索时,相关性评分会考虑时间因素,更新的记忆默认排名更高。
配置
开箱即用,无需任何配置。默认即本地模式。
修改设置:打开 OpenClaw Config > Plugins > Plugin Entries > Nowledge Mem Config。你会看到开关、数字输入框和文本框,可以直接调整。

修改后重启 OpenClaw 生效。
| 设置 | 默认值 | 说明 |
|---|---|---|
| Session context injection | 关 | 每次提示时注入工作记忆和相关记忆 |
| Session digest at end | 开 | 会话结束时捕获对话 + 提炼关键记忆 |
| Minimum digest interval | 300s | 会话提炼最短间隔秒数(0 = 无限制) |
| Max context results | 5 | 注入的记忆数量(1-20) |
| Server URL | 空 | 远程服务器 URL(留空 = 本地) |
| API key | 空 | 远程模式 API 密钥 |
远程访问
连接另一台机器上的 Nowledge Mem 服务器:在插件设置中填写 Server URL 和 API key。API 密钥仅通过进程环境传递,不会出现在日志或命令行历史中。详见:随处访问 Mem。
遇到问题?
插件装了,但 OpenClaw 好像没在用它
检查 plugins.slots.memory 的值是否正好是 openclaw-nowledge-mem,确认修改配置后重启了 OpenClaw。
"Duplicate plugin id detected" 警告
如果你之前本地安装过插件(例如使用 --link),之后又从 npm 安装, OpenClaw 会同时从两处加载。解决方法:删除配置中指向本地插件目录的 plugins.load.paths 条目。
打开 ~/.openclaw/openclaw.json,删除指向本地插件目录的 plugins.load.paths 条目:
"load": {
"paths": []
}然后重启 OpenClaw。警告会消失,只会加载 npm 安装的版本。
status 显示无法连接
nmem status
curl -sS http://127.0.0.1:14242/health搜索只找到一两条结果
把 maxContextResults 调高到 8 或 12。
为什么用 Nowledge Mem 而不是其他方案?
其他记忆工具把你说过的话存成一段段文字,靠语义相似度找回来。Nowledge Mem 不一样。
知识是有结构的。 你保存的每条记忆都知道自己是什么类型(决策、学习、计划还是偏好),知道它什么时候发生、指向哪些来源文档、和哪些其他记忆有关联。这让搜索更准、推理更靠谱。
知识会演化。 你今天写的理解,和三个月后更新过的认识,在系统里是连在一起的。你可以看到自己的想法怎么变化的,不会丢掉中间的过程。
知识来自哪里是透明的。 从 PDF、文档或网页提取的每条知识,都保留着指向原始文件的链接。AI 告诉你"根据你三月份的设计文档",你能直接验证。
跨工具共享。 在 Cursor 里学到的,在 Claude 里记下的,在 OpenClaw 里一样能用。你的知识不属于任何一个工具,它属于你。
本地优先,无需云账户。 你的知识存在本地。远程访问是可选的,不是必须的。
搜索怎么工作的?参见搜索与相关性。
给进阶用户
OpenClaw 的 MEMORY.md 工作区文件仍然有效,但记忆工具的实际调用全部由 Nowledge Mem 处理。两者可以共存。
插件通过 nmem CLI 子进程与 Nowledge Mem 通信。这意味着本地和远程模式的行为完全一致,配置好地址后不需要其他改动。
相关
- 集成概览 - 原生集成、复用包、MCP 与浏览器捕获
- Claude Code · Claude Desktop · Codex CLI · Alma · Raycast · 内置 Web 聊天
参考
- 插件源码:nowledge-mem-openclaw-plugin
- OpenClaw 文档:插件系统
- 更新日志:CHANGELOG.md