「开源」Memory Palace 🦞版 一 致力于打造更适合openclaw的记忆系统,让你的小虾更懂你,帮助你科学养虾,已更新v1.1.2版本

2026-04-29 10:145阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:

  • 我的帖子已经打上 开源推广 标签:
  • 我的开源项目完整开源,无未开源部分:
  • 我的开源项目已链接认可 LINUX DO 社区:
  • 我帖子内的项目介绍,AI生成、润色内容部分已截图发出:
  • 以上选择我承诺是永久有效的,接受社区和佬友监督:

以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出


TL;DR — 给赶时间的佬友

极简版:这个项目给你的 OpenClaw​ 加一层真正能用的长期记忆。不是无脑往 MEMORY.md 里添加文本,而是一个有写入守卫、有检索引擎、有自动回忆、有自动捕获、有可视化 Dashboard 的完整记忆系统。

agi-is-going-to-arrive.github.io

Memory Palace for OpenClaw

OpenClaw memory plugin + bundled skills. Install path, configuration, benchmark results, architecture, ACL isolation, MCP tools, and dashboard.

见相关介绍页

CleanShot 2026-04-23 at 08.50.38@2x1920×1147 207 KB


它解决什么问题

你告诉 OpenClaw「我喜欢用 claude进行任务编排方案设计、codex 进行代码实现。gemini实现前端方案设计」,新开一个 session 它就忘了。Memory Palace 让它跨 session 记住你

用起来是什么体验

  • 装好之后不用管。Auto-Recall 自动回忆,Auto-Capture 自动存储,基本无感

  • 慢慢你会发现 越来越「懂你」

  • 偶尔想手动干预(10%的场景下)?直接说「记住这个」「搜一下我的研究方向」就行,不需要记任何命令

怎么装

推荐方式:直接和 OpenClaw 对话完成安装。

  1. 先把插件克隆下来并运行安装脚本:

git clone https://github.com/AGI-is-going-to-arrive/Memory-Palace-Openclaw.git cd Memory-Palace-Openclaw python scripts/openclaw_memory_palace.py setup --profile b

  1. 装好后在 OpenClaw 里开始对话,把这个链接丢给它:对话式 Onboarding 文档,和它说「参照这个帮我完成 Memory Palace 的安装配置」

  2. Onboarding Skill 会自动接管:帮你检查环境、探测 Provider 连通性、推荐合适的 Profile,你跟着它的提示选就行

整个过程一步步和 OpenClaw 对话就能搞定,不需要手动编辑配置文件。

关于 Profile 档位选择

上面安装命令用的是 --profile b,这是零配置基础档位,装完就能跑,但检索能力有限(用的是 hash embedding)。

条件允许的话,强烈建议上到 Profile C 或 D:

  • Profile C:需要 embedding + reranker API → 获得真正的语义检索

  • Profile D:再加一个 LLM API → 火力全开,Write Guard / 摘要 / 意图识别全部 LLM 加持

embedding 和 reranker 没有自备的? 站内热心佬提供了公益站:https://linux.do/t/1914577
用量大的话还可以白嫖见下列帖子。
https://linux.do/t/topic/1993351/4

LLM 不用选择特别好的,我测试使用的是 gpt-5.4-mini,低档位的比如 qwen3.5-27b、gemma4-31b 这种智商以上的都行。

核心亮点速览

特性 说明
自动记 + 自动想 对话结束会自动存储,新开的对话自动搜索,后台运行无感知
Write Guard 写入守卫 阻止重复、低质量、矛盾的记忆写入,Precision 1.000
4 个档位 Profile A->D 零配置就能跑(B档),有 API 直接拉满(D档)
可视化 Dashboard 5 个页面:记忆浏览、审查回滚、搜索诊断,中英双语
plugin + skills 架构 即插即用,不修改 OpenClaw 任何东西
多 Agent 记忆隔离 ACL 实验特性,你配置的不同 Agent 各自的记忆互不干扰

支持 macOS / Windows / Linux,经过完整 benchmark 测试。
项目地址:觉得有用的话欢迎点个
AGI-is-going-to-arrive/Memory-Palace-Openclaw


以下是完整的项目介绍,感兴趣的佬友可以继续往下看

先上竞品对比,我先不猜,按事实告诉你(玩梗,非aigc )

相关竞品

image1538×1107 134 KB

功能对比

功能 Memory Palace memory-core Hindsight lancedb-pro ClawMem hierarchical Remnic 12-Layer Supermemory Mem0 OpenViking
混合检索 YES Partial YES YES YES NO(自动注入) YES(6后端) YES YES(云端) YES(云端) YES(目录递归+向量)
Write Guard 最强 NO NO 衰减模型 hash+语义+LLM 防冗余规则 治理队列 去重 云端去重 云端去重 URI去重
自动回忆 YES YES YES YES YES YES YES YES YES YES YES(before_prompt_build)
自动捕获 YES 靠 Agent YES YES(6类) YES(13类) YES(5分钟) YES YES(代谢) YES(云端) YES(云端) YES(afterTurn+阈值commit)
视觉记忆 自动捕获 NO NO NO NO NO NO NO NO NO YES(VLM+ov-import)
意图识别 YES(4类) NO NO 分类提取 YES(MAGMA) NO NO NO NO NO YES(意图分析检索)
Profile 档位 A/B/C/D NO NO NO speed/bal/deep NO NO NO NO NO Local/Remote两模式
Web Dashboard 5页 NO NO NO NO NO NO NO NO NO Web Console+TUI
ACL 多智能体 URI前缀 NO NO 多范围隔离 身份映射 多会话 NO NO 容器标签 长短期 Header路由(Agent/Account/User)
反思/元认知 反思车道 NO Reflect API Weibull衰减 A-MEM+睡眠 3层压缩 NO 12层最深 NO NO L0/L1/L2分层压缩
注入防御 4语言 NO NO NO 5层 NO 信任区域 NO NO NO 路径安全(不传本地路径)
宿主桥接 安全加固 原生 替换原生 双车道 NO NO 10+连接器 NO NO NO 资源导入(URL/Git/文件/目录/zip)
版本+回滚 Dashboard NO NO 导出/备份 CLI历史 NO NO NO 仅wipe NO 归档+expand
Onboarding 对话式 无需 配置 一键脚本 init+doctor 最小 安装器 重量级 交互setup 配置 npm+ov-install
Benchmark Memory-Native NO NO NO 130+测试 NO 672测试+CI NO NO NO LoCoMo10(52.08%)
知识图谱 NO(URI树) NO 实体/关系 NO Kuzu图谱 NO NO 3K+事实 NO NO viking://文件系统范式
Token效率 未测 未测 未测 未测 未测 未测 未测 未测 未测 未测 83-91%压缩(LoCoMo10)
会话生命周期 NO NO NO NO NO 自传式压缩 NO NO NO NO assemble/afterTurn/compact
媒体类型 图片 NO NO NO NO NO NO NO NO NO 图片/音频/视频/文档
许可证 AGPLv3 MIT(内置) MIT MIT Apache 2.0 - MIT - - MIT AGPLv3(主项目;examples/下Apache2.0)

该项目优势

image1432×1986 424 KB

image1408×1657 419 KB

之前发过两篇 Memory Palace cli/ide的帖子,但是openclaw的版本一直没有开发完,现在经过详细测试和功能升级现在才正式发帖。

本次带来的是 Memory Palace 的 OpenClaw 版本。和之前的 cli/ide 版不太一样,做出了全面升级,并且构建了更适合openclaw测试场景的benchmark,进行了全面测试
该项目做成了适配 OpenClaw 的原生 plugin + skills模式,即插即用,不会对于openclaw有任何修改。

当前项目针对openclaw做了什么适配工作?
总的来说就是给你的 OpenClaw 加一层真正可用的长期记忆。 不是简单存储为 JSON 或者直接往 MEMORY.md 里新增记忆,而是配备了一套完整的具备写入守卫、有检索引擎、有意图识别、有自动回忆、有自动捕获、有视觉记忆、有可视化 Dashboard功能特性的记忆系统。

叠甲:这个项目依然是 vibe coding 产物,一个人开发的,可能有各种各样的 bug。但是经过一个多月的迭代,和详细的测试,功能已经相对完整,我能测试的bug也尽量测试出来进行修改了。
该项目的文档写得比较详细,如果遇到相关问题可以先查阅github中的文档,实在搞不定的可以发帖/私信/github提issue。

项目地址:

github.com

GitHub - AGI-is-going-to-arrive/Memory-Palace-Openclaw

通过在 GitHub 上创建帐户来为 AGI-is-going-to-arrive/Memory-Palace-Openclaw 开发做出贡献。

支持 macOS / Windows / Linux 三个平台。

建议继续阅读,跳转至GitHub对应链接:中文 README | 英文 README


首先不说废话,直接上和openclaw相关记忆系统的竞品对比

一、这个项目到底是什么

解决什么问题

用过 OpenClaw的人可能有相关感受:openclaw自带的记忆功能能用,但是不够好。
比如:你上一次对话告诉它你的编程喜好,例如喜欢使用gemini对于前端出具设计方案,使用claude 编排代码的实现方案,codex完成整体代码的编写,假设你新开一个session时你的openclaw忘记了这个需要记忆的偏好事实,进行回答时完全没有相关的记忆。OpenClaw 自带的 MEMORY.md 虽然能够存一些东西,但本质上就是一个文本文件,没有检索能力、没有去重、没有优先级、没有自动管理,这些功能统统在当前项目上进行了补齐。

Memory Palace 要做的就是,给你的openclaw 加一个真正能用的外部长期记忆系统,并且不破坏原有openclaw的memory system。

项目设计架构为 plugin + skills

  • Plugin(插件)是 负责和后端 MCP 进行服务通信、处理生命周期 Hook、注册工具、管理自动回忆/自动捕获。它挂载在 OpenClaw 的 memory 插槽上,不破坏原有openclaw的memory system。
  • Skills(技能)是 专为openclaw写的行为准则,教你的openclaw如何使用这个记忆插件,来做到更好的为你的openclaw提供相关记忆功能,让你的AI更懂你

在 OpenClaw 里的定位

Memory Palace 通过接入 OpenClaw 的 memory 类型插槽,不替换 OpenClaw 自带的 USER.md / MEMORY.md。它是在宿主记忆之上加一层持久化、可检索、可审计的记忆存储。两者可以共存,Memory Palace同时通过 Host Bridge 功能可以把 USER.md / MEMORY.md 里的内容自动导入到自己的记忆系统中。

这个记忆插件适合那些人群

  • OpenClaw 用户,多session切换频繁,希望 AI 记住你的相关偏好和工作流以及各类需要进行持久化存储的内容
  • 需要多 Agent 协作的场景,需要实现Agent之间的记忆隔离(ACL)
  • 希望能够通过可视化dashboard界面来管理记忆
  • 对记忆质量有要求的用户

当前项目能做到什么?

用一句话概括:自动记、自动想、能守卫、能搜索、能看见。

  • 自动记:对话结束后自动提取有价值的信息存入
  • 自动想:开始新对话时自动搜索相关记忆注入上下文
  • 能守卫:Write Guard 阻止重复和低质量的记忆写入
  • 能搜索:支持关键词 + 语义 + 混合三种检索模式
  • 能看见:Dashboard中具备记忆浏览、审查回滚、清理维护、搜索诊断这四种功能,将其提供给用户进行可视化的操作

建议继续阅读,跳转至GitHub对应链接:已实现能力完整清单

系统架构图1024×1024 278 KB
系统整体架构:后端 MCP 服务 + 插件层 + Skills,三层协同


二、最快上手方式

推荐方式:对话式安装

最推荐的方式是用 Onboarding Skill 通过和 OpenClaw 对话来完成安装。

Memory Palace 自带一个 memory-palace-openclaw-onboarding Skill,它专门负责引导你完成相关安装和配置操作大致流程如下:

  1. 先把插件装到 OpenClaw
  2. 在 OpenClaw 里开始对话将这个链接交给openclaw并和openclaw说参照这个link 帮我安装这个Memory-Palace-Openclaw,Memory-Palace-Openclaw/docs/openclaw-doc/18-CONVERSATIONAL_ONBOARDING.md at main · AGI-is-going-to-arrive/Memory-Palace-Openclaw,Onboarding Skill 会自动识别当前状态
  3. 它会帮你检查环境、探测 Provider 连通性、推荐合适的 Profile
  4. 跟着它的提示选择配置,它自动帮你应用

这个方式通过和openclaw一步步对话就能完成安装流程

第一步到底该干什么

第一步:安装插件到 OpenClaw。

git clone https://github.com/AGI-is-going-to-arrive/Memory-Palace-Openclaw.git cd Memory-Palace-Openclaw python scripts/openclaw_memory_palace.py setup --profile b

第二步:在 OpenClaw 里开始对话。 Onboarding Skill 会接管引导你完成整个安装流程。
一步步的和openclaw进行对话就能完成安装流程,顺利使用上当前项目

相关内容建议继续阅读,跳转至GitHub对应链接:用户安装与使用完整指南 | Skills 快速上手

对话式安装流程1024×1024 273 KB
通过 OpenClaw 对话完成安装配置,不需要手动编辑文件

Onboarding 截图 - 已安装状态1440×900 83.9 KB
Onboarding Skill 检测到已安装状态,引导你进入配置流程

Onboarding 截图 - 未安装状态1440×900 72.6 KB
如果还没装安装plugin,Onboarding Skill 会先引导你完成安装,再进入配置

Onboarding 对话路径流程图705×1094 39.2 KB
对话式 Onboarding 完整路径:从检测状态到完成配置的每一步


三、安装方式(分平台说明)

安装环境(三平台通用)

  • Python 3.10 - 3.14
  • Node.js ^20.19.0 或 >=22.12.0 <23
  • OpenClaw >= 2026.3.2
  • Git(如果从源码安装)

macOS

# 1. 确认 Python 和 Node 版本 python3 --version # 需要 3.10-3.14 node --version # 需要 20.19+ 或 22.12+ # 2. 克隆仓库 git clone https://github.com/AGI-is-going-to-arrive/Memory-Palace-Openclaw.git cd Memory-Palace-Openclaw # 3. 运行安装 python3 scripts/openclaw_memory_palace.py setup --profile b # 4. 应用 Profile(可选,如果安装脚本没自动做) bash scripts/apply_profile.sh macos b

数据库默认路径:/Users/<你的用户名>/memory_palace/agent_memory.db

macOS 上运行 MCP 服务时会通过 zsh -lc 'bash run_memory_palace_mcp_stdio.sh' 启动。

Windows

# 1. 确认版本 python --version # 需要 3.10-3.14 node --version # 需要 20.19+ 或 22.12+ # 2. 克隆仓库 git clone https://github.com/AGI-is-going-to-arrive/Memory-Palace-Openclaw.git cd Memory-Palace-Openclaw # 3. 运行安装 python scripts/openclaw_memory_palace.py setup --profile b # 4. 应用 Profile(可选) .\scripts\apply_profile.ps1 -Platform windows -Profile b

数据库默认路径:C:\memory_palace\agent_memory.db

Windows 上 MCP 服务直接通过 python.exe mcp_wrapper.py 启动,使用 venv 的 Scripts\python.exe

Windows 注意事项

  • install_skill.py 安装 Skill 时,symlink 模式需要管理员权限。如果你对此介意的话建议使用 copy 模式python scripts/install_skill.py --mode copy

Linux

# 1. 确认版本 python3 --version node --version # 2. 克隆仓库 git clone https://github.com/AGI-is-going-to-arrive/Memory-Palace-Openclaw.git cd Memory-Palace-Openclaw # 3. 运行安装 python3 scripts/openclaw_memory_palace.py setup --profile b # 4. 应用 Profile bash scripts/apply_profile.sh linux b

数据库默认路径:/home/<你的用户名>/memory_palace/agent_memory.db

Linux 上的行为和 macOS 基本一致(都归类为 posix),主要区别在 DB 路径。如果你跑在网络文件系统(NFS、CIFS、SSHFS)上,后端会检测并发出文件锁可靠性警告 ------ 建议用本地磁盘。

Docker 一键部署(未全面测试,建议使用上述三种方式)

# macOS / Linux bash scripts/docker_one_click.sh # Windows powershell -File scripts/docker_one_click.ps1

如何验证安装是否成功

安装完成后,可以跑诊断命令,用于确认一切正常:

openclaw memory-palace verify --json openclaw memory-palace doctor --json

或者直接在 OpenClaw 对话中问 Agent**「检查一下 Memory Palace 的安装状态」,它会调用 memory_onboarding_status 帮你检查。
image1809×467 41.8 KB

相关内容建议继续阅读,跳转至GitHub对应链接:安装与使用指南 | 故障排查

还可使用以下高级路径进行安装

image1920×1080 324 KB

安装涉及的相关边界:哪些是自动安装的,哪些需要手动配

插件与宿主边界645×1172 26.3 KB
Plugin 与 OpenClaw 宿主的分层关系:哪些归插件管,哪些归宿主管


四、档位说明 — Profile A / B / C / D

Memory Palace 有四个 Profile(档位),相关能力逐级递增,但是要求提供相关的配置才能进行升级需要根据你的实际情况选则不同的档位。此外如果你拥有embedding+reranker+llm对应api的情况下强烈使用Rrofile D,拥有最完整的体验。

Profile A — 「关键词兜底」

  • 检索模式:纯关键词(keyword)
  • 不需要任何外部 embedding / reranker / LLM
  • 不启用索引 worker
  • 适合极低配置环境,或者你只是想先体验一下最基本的功能

总结:最简单的全文搜索,能用但效果一般。适合「先跑起来」的场景。注意 Profile A 默认关闭 index worker 和 Assistant-Derived Capture。

Profile B — 「零配置启动」(推荐起步)

  • 检索模式:混合(hybrid = 关键词 + embedding)
  • Embedding 后端:hash(dim=64)------ 本地计算,不需要任何外部 API
  • 不需要 reranker,不需要 LLM
  • 启用索引 worker 和延迟索引

总结:不需要配任何 API key,装完就能用。hash embedding 是一种轻量级的向量化方式,精度不如真正的语义 embedding,但相对于纯关键词检索强得多。如果你没有任何embedding+reranker相关配置,选择该档位。

Profile C — 「真语义检索」

  • 检索模式:混合(hybrid)
  • Embedding 后端:API(默认配置 Qwen/Qwen3-Embedding-8B,dim=1024)
  • Reranker:启用(默认配置 Qwen/Qwen3-Reranker-8B,weight=0.30)
  • LLM 辅助功能:可选 opt-in(不是默认开启)
  • 索引队列扩大到 512,保留最近 100 个 job

总结:这是真正的语义检索。比如,你搜「我的编程喜好」能找到「我喜欢vibe coding」这种语义相关但关键词不匹配的内容。需要一个 embedding API 和一个 reranker API。推荐用 Qwen3 系列模型 ------ embedding 和reranker模型。本人测试使用的为Qwen3 embedding 8B和Qwen3 reranker 8B模型。请用户根据自己实际的embedding和reranker模型配置对应的model name,以及对应的embedding dimension。

Profile C 需要你额外提供

  • Embedding API 地址 + API Key +Model name
  • Reranker API 地址 + API Key +Model name
  • LLM API 地址 + API Key +Model name(如果你想开启LLM各种选配设置

Profile D — 「全功能旗舰」

  • 在 Profile C 的基础上,增加三个 LLM 辅助功能
    • Write Guard LLM:用 LLM 判断写入是否重复/矛盾
    • Compact Gist LLM:用 LLM 生成会话摘要
    • Intent LLM:用 LLM 识别搜索意图
  • Reranker weight 提升到 0.35

总结:在当前最终档位你能够获得当前项目的完整体验。三个辅助功能共享同一组 API 配置LLM_API_BASE / LLM_API_KEY / LLM_MODEL),提供一个配置然后系统会自动分发给 write_guard、compact_gist、intent 三个子功能。

Profile D 需要你额外提供(在 Profile C 基础上)

  • LLM API 地址 + API Key + 模型名

Profile D 会进行相关测试,确保可用性:所有 LLM 相关字段都不能是占位符,WRITE_GUARD_LLM_ENABLEDCOMPACT_GIST_LLM_ENABLEDINTENT_LLM_ENABLED 都要是 true 且 API 配置完整。此外,目标环境里的 probe / verify / doctor / smoke 验证也需要真实通过,Profile D 才算 ready。

image1968×413 33.9 KB

Profile B → C 是体验上的最大提升(从 hash embedding 到真正的semantic embedding + reranker),Profile C → D 是质量上的进一步提升(LLM 辅助能够让我们的 guard/gist/intent 更精确)。
如果你有的 embeddin+reranker API,强烈建议至少上到 C。更进一步添加LLM API,直接上到火力全开档,使用Profile D,享受最完整的体验。

相关内容建议建议继续阅读,跳转至GitHub对应链接:Profile 能力边界详解 | Profile 能力总览(HTML)

Profile 能力阶梯图3840×2160 875 KB
四个 Profile 的能力阶梯:从 A 到 D 逐级增强

Profile 语义矩阵3840×2160 832 KB
各 Profile 在不同维度上的详细能力对比


五、在 OpenClaw 里怎么用

装好 plugin 并完成 setup 后,该plugin会自动运行,基本不需要手动干预

支持相关 hooks 的 OpenClaw 宿主里需要 >= 2026.3.2,最新测试使用的是2026.4.14版本),大部分 recall / capture 可以自动运行,不需要你和openclaw对话才能对于memory进行操作。

安装并通过 verify / doctor 验证后,Agent 每次开始新对话时:

  • Auto-Recall(自动回忆)自动搜索相关记忆,注入到对话上下文中
  • 你不需要说「搜索一下我之前说过的…」,它自己会搜

Agent 每次对话结束时:

  • Auto-Capture(自动捕获)自动分析对话内容,把有价值的信息存入记忆
  • 你不需要说「记住这个」,它自己会判断什么值得记

当你在对话中发送图片时

  • Visual Context(视觉上下文)自动从图片中提取信息

注意:自动回忆/捕获依赖 OpenClaw 宿主的 hook 支持before_prompt_buildagent_end 等)。如果宿主版本过旧或 hook 未触发,Plugin 会尝试 fallback,但自动化效果可能打折。
image1917×738 95.2 KB

OpenClaw相关使用场景

日常使用(90% 的时候):正常和 OpenClaw 对话就行。Auto-Recall 会在对话开始时自动搜索相关记忆并注入上下文,Auto-Capture 会在对话结束时自动存储有价值的信息。你完全意识不到当前记忆系统的存在,无感使用。慢慢的,你会发现 AI 越来越「懂你」。

偶尔需要干预(10% 的时候)

  • 主动存一条重要信息:对 Agent 说「记住:我喜欢使用codex进行vibe coding」
  • 搜索之前的记忆:对 Agent 说「搜一下我的编程喜好」
  • 如果Write Guard 挡住了一次写入(Agent 会告诉你原因):再你确认需要存入长期记忆,能够让 Agent 强制写入我们的记忆系统
  • 想把当前对话的要点长期保存:对 Agent 说「把当前对话的关键决定存到记忆里」

你不需要记住任何 tool 名称。 Agent 已经通过 Skill 知道什么时候该调用什么工具。你只需要用自然语言表达意图就行。

Onboarding Skill 和日常 Skill 的区别

项目内置两个 Skill:

  • memory-palace-openclaw-onboarding:主要是用于初次安装引导用的,完成配置后就不会再使用
  • memory-palace-openclaw:交付给openclaw的日常行为准则,告诉openclaw 什么时候使用我们这个plugin

Skill 的核心原则是:默认信任自动行为,只在用户明确要求时才手动干预。 这意味着 Agent 不会每次对话都「命令式」地使用记忆系统,而是自然地在后台运作

相关内容建议继续阅读,跳转至GitHub对应链接:Skills 设计说明 | MCP 工作流参考

OpenClaw 中的记忆回忆确认1440×900 96.9 KB
实际运行截图:Agent 自动回忆相关记忆并在对话中使用

OpenClaw 中的 Skills 面板1600×1000 89.4 KB
OpenClaw 控制面板中的 Memory Palace Skill 详情

Write Guard 拦截后的强制确认1440×900 92.2 KB
实际运行截图:Write Guard 拦住了一次写入,用户确认后 Agent 强制写入成功

Memory Chat 对话1600×1000 72.2 KB
在 OpenClaw 中与记忆系统交互的实际对话过程

Skills 总览页面1600×1000 85.5 KB
OpenClaw Skills 面板总览:memory-palace-openclaw 和 onboarding 两个 Skill 都可见


六、Benchmark — 针对openclaw的真实场景测试

Memory Palace 的 benchmark 分两层:检索管线质量(能不能搜到)和产品决策质量(设置的高级feature,Write Guard 拦不拦得住、Intent 识别准不准、Gist 摘要好不好)。后者才是这个项目真正不一样的地方。

所有数据来自 docs/EVALUATION.md,仓库里有完整的 gold set、复跑脚本和原始报告。

先看检索能力:Memory-Native Benchmark

使用通用学术数据集(SQuAD v2、BEIR NFCorpus)也进行了测试,但它们测的是通用段落召回能力,和「记忆系统里找历史决策/偏好/时间线」这种真实场景差距很大。所以项目专门做了一套 Memory-Native Benchmark:用真实记忆文本风格(6 个领域 x 8 种文本风格,70 条 synthetic corpus),覆盖 factual / temporal / causal / exploratory 四类记忆查询,以及 scope/path/ancestor 约束、alias 召回、近重复、版本漂移、冲突记忆等 Memory Palace 特有场景。

image1923×393 26.8 KB

核心亮点:产品质量门禁(Quality Gates)

Memory Palace 不只做检索,并且专门为openclaw设计了三个高级feature它的 Write Guard、Intent 识别、Compact Gist 都在独立的 benchmark 和 gold set进行了测试。

Write Guard — 写入守卫到底拦得准不准

用 200 条 gold set(覆盖 ADD / UPDATE / NOOP 三种情况,比例 35% / 35% / 30%)测试 Write Guard 的判断准确率。
image1909×322 16.5 KB

总结:Precision 1.000 意味着 Write Guard 不会错误拦截你想写入的新内容。Recall 0.839 意味着有 16% 的重复/更新内容没被拦住。

开启 LLM(Profile D)后:
image1787×274 19.4 KB

对于C/D 配置设计benchmarkd时 — Score Normalization设计思路:

最初 Profile C/D 的 Write Guard Exact Match 只有 0.460------分数非常低,原因不是代码有 bug,而是 Qwen3-Embedding(1024 维)的 cosine similarity 分数压缩在 0.85-1.00 其中(最小值 0.846,均值 0.941),导致原来为 hash embedding(64 维)校准的固定阈值完全失效

做了 63 点网格扫描后进行修正:单纯调阈值解决不了这个问题。所以最终设计了 Score Normalization 方案:对 NOOP 判定使用归一化分数(floor=0.85),只有真正的近重复(raw ~1.0)才触发 NOOP;同时新增 keyword cross-check,全局关键词分数极低时降级为 ADD。
image1837×499 32.1 KB

B 不受影响,C/D 从 0.46 直接跳到 0.845。Score Normalization 对 api embedding backend 默认开启,不需要手动配置。

矛盾检测:Write Guard 开启 LLM 后还支持 contradiction 检测(判断新内容是否和已有记忆矛盾),40 条 gold set 实测 accuracy=0.950、precision=0.950、recall=0.950。

Intent 识别 — 搜索意图分得准不准

用 200 条 gold set(80 条中文 + 120 条英文,基于 OpenClaw 真实场景模板生成)测试四种意图分类:factual / exploratory / temporal / causal。
image1861×392 19.6 KB

基础 gold set 上达到 1.000关键词表从 15 个扩充到 53 个

Product gold set(更复杂的场景,200 条): keyword 准确率 0.910。
image1831×379 22.9 KB

规则分类器在原有gold set上相关指标已经有 0.910了,开启LLM后指标 提升到 0.940 虽然有并不算高。对大部分用户来说,这个feature可以选择关闭。

Compact Gist — 摘要质量怎么样

用 90 条测试评估摘要质量:

模式 ROUGE-L
extractive(提取式) 0.720
LLM gist 0.678

为什么看起来 LLM 反而不如 extractive?这其实是 ROUGE-L 指标本身的偏差------extractive 直接从原文复制文本片段,天然和 reference 词面重合度高。项目里做了独立的 pairwise judge 和 factual coverage 测试,LLM gist 在连贯性和概括能力上通常更好。

默认 LLM 超时已从 8s 提升到 45s(COMPACT_GIST_TIMEOUT_SEC),避免推理型模型超时降级,可以采用non-thinking model,或者关闭LLM的thinking。

Replacement Acceptance实验

除了检索和质量指标,项目还跑了一套完整的 Replacement Acceptance E2E,验证 Memory Palace 能否在 OpenClaw 里承担默认 memory system 的职责。
image1907×369 62.3 KB
image1496×676 87.2 KB

相关内容建议继续阅读,跳转至GitHub对应链接:完整评测文档(EVALUATION.md) | Benchmark 脚本目录 | Memory-Native Benchmark 报告


七、技术架构

三层结构

Memory Palace 是三层架构:

┌─────────────────────────────────────────────────┐ │ Skills 层(交给Agent的行为准则) │ │ 教 Agent 什么时候用、怎么用 │ ├─────────────────────────────────────────────────┤ │ Plugin 层(TypeScript插件) │ │ Hook 注册、工具注册、自动回忆/捕获、ACL、配置管理 │ ├─────────────────────────────────────────────────┤ │ Backend 层(MCP 服务) │ │ SQLite 存储、检索引擎、Write Guard、索引管理 │ └─────────────────────────────────────────────────┘

Backend:Python FastAPI 应用,通过 MCP 协议暴露工具接口。所有记忆的增删改查、检索、索引、Write Guard 都在这一层。数据存在 SQLite 中,支持关键词 FTS(全文搜索)+ 向量检索。6 次数据库 migration,数据模型包括 Memory、Path、MemoryChunk、MemoryChunkVec、EmbeddingCache、MemoryGist、FlushQuarantine 等。

Plugin:TOpenClaw 扩展,用于添加到 OpenClaw 的 memory 插槽。负责和 Backend 通信(支持 stdioSSE 两种传输协议,默认 auto 优先 stdio)、注册生命周期 Hook、实现自动回忆/捕获逻辑、ACL 校验

Skills:用于定义 Agent 的行为准则。不包含代码,只包含对于openclaw「什么时候该调什么工具」的相关指导。

生命周期 Hook

image1835×405 46.2 KB

数据模型

记忆以 URI 地址 进行组织,格式为 domain://path,例如:

  • core://agents/default/captured/preference/sha256-abc123
  • system://bootsystem://indexsystem://audit
  • notes://project-setup

有效域名:core、writer、game、notes、system(system 为只读域)。

关键设计:

  • 版本化:更新记忆时创建新版本,旧版本标记为 deprecated 但不删除,可以回滚
  • 内容与路径分离:一份内容可以通过多个 URI 路径访问**(alias 机制)**
  • URI 安全校验:禁止路径穿越、禁止 Windows 绝对路径、最大深度 128、最大路径长度 2048

一次openclaw对话的完整数据流是什么样的

image1246×821 94 KB

相关内容建议继续阅读,跳转至GitHub对应链接:技术架构总览 | MCP 工作流参考

运行时架构图3840×2160 793 KB
运行时架构:Plugin 如何和 Backend 协同工作

image1920×1080 256 KB

记忆引擎内部:检索管道、索引 worker、Write Guard、活力衰减

image1920×1080 273 KB

一次完整的写入-回忆数据流

image1920×1080 339 KB

记忆数据模型:URI 地址、版本化存储、内容与路径分离

默认记忆链3840×2160 900 KB
默认记忆链:从用户输入到记忆存储/检索的完整处理链路


八、ACL 多智能体记忆隔离(实验特性)

为什么需要记忆隔离

如果你在 OpenClaw 中设置了多个 Agent(比如一个负责前端、一个负责后端、一个负责编排),它们默认共享同一个记忆库。这会导致:

  • 后端 Agent 看到前端 Agent 存的「这个项目用 html+css」
  • 编排 Agent混入开发 Agent 关于代码风格的偏好
  • 或者是项目 A 的 Agent 读到了项目 B 的配置细节

单人单项目场景下这可能无所谓,但在多 Agent 协作或多项目并行的场景下就需要解决相关问题。

工作原理

ACL 基于 URI 前缀 进行隔离。每个 Agent 有三个关键配置:

  • allowedUriPrefixes:这个 Agent 能读取的记忆范围
  • writeRoots:这个 Agent 能写入的记忆范围
  • 私有根模板:默认 core://agents/{agentId},每个 Agent 自动获得独立的记忆空间

还可以配置共享区域

  • sharedUriPrefixes:所有 Agent 都能读取的公共记忆
  • sharedWriteUriPrefixes:所有 Agent 都能写入的公共区域

一个具体例子

假设你在openclaw设置了两个 Agent:alpha(负责后端)和 beta(负责前端)

{ "acl": { "enabled": true, "sharedUriPrefixes": ["notes://team/"], "sharedWriteUriPrefixes": ["notes://team/"], "agents": { "alpha": { "allowedUriPrefixes": ["core://agents/alpha"], "writeRoots": ["core://agents/alpha"] }, "beta": { "allowedUriPrefixes": ["core://agents/beta"], "writeRoots": ["core://agents/beta"] } } } }

效果:

  • alpha 存了「我喜欢吃」到自己的记忆空间 → alpha 能读,beta 读不到(返回 UNKNOWN)
  • beta 存了「我喜欢吃」到自己的空间 → beta 能读,alpha 读不到
  • 任何 Agent 写到 notes://team/architecture-decisions → 双方都能读

对于 alias 机制设置了相关保护机制 ------ 通过 alias 索引检查,防止 Agent A 通过间接路径读到 Agent B 的记忆。

仓库中有真实的 ACL 演示截图(alpha 存入记忆后,beta 确实读不到),还有视频演示,具体见下列阅读指南。

怎么开启

ACL 默认关闭。开启方式是在 Plugin 配置中设置 acl.enabled: true,然后配置各 Agent 的权限。Onboarding 流程目前不会自动配置 ACL ------ 这是一个需要手动设置的进阶功能

适用边界

需要明确:ACL 当前是实验性功能。它的定位是协作隔离(防止不同角色的 Agent 互相干扰)如果你只有一个 Agent,不需要开这个功能。

相关内容建议继续阅读,跳转至GitHub对应链接:ACL 隔离完整指南

image1161×646 157 KB
ACL 记忆隔离原理:每个 Agent 有自己的记忆空间,共享区域可进行配置

ACL Agents 页面1600×1200 101 KB
OpenClaw Agents 页面:可以看到多个 Agent(alpha / beta)及其各自的记忆隔离配置

ACL alpha Agent 记忆确认1600×1200 99.9 KB
Alpha Agent 成功存入记忆

ACL beta Agent 被隔离1600×1200 99.3 KB
Beta Agent 无法读取 Alpha 的记忆 — 隔离生效


九、核心 Feature 与技术亮点

Write Guard(写入守卫)

解决的问题:防止 AI 往记忆里塞垃圾、存重复内容、或者写入和已有记忆矛盾的信息。

工作方式:每次通过 memory_learn 写入时,Write Guard 做预检判断:

  • ADD:新内容,允许写入
  • NOOP:和已有记忆重复,阻止写入并说明原因
  • UPDATE:和已有记忆相似但有新信息,引导更新而非新建
  • BYPASS:仅元数据变更

Profile A/B/C 下用规则匹配(关键词 + 语义相似度判断),Profile D 下升级为 LLM 判断,能理解语义层面的重复和矛盾 ------ 比如「部署在 3 个 node 上」和「k8s 集群用了三台机器」这种不同表述但含义相同的情况

安全设计:Fail-closed ------ Guard 如果出现问题或返回异常时,默认阻止写入。有 8 种 force override 路径用于不同场景(visual、namespace、host bridge、explicit 等),但用户手动存储时需要确认后才能 force。

之前的bencmark中使用了专门的 gold set 用于测试该feature的性能,包括正常写入、重复检测、矛盾检测等场景。确保真实好用。

image1186×665 129 KB

Write Guard 审查循环:写入 → 预检 → 允许/阻止 → 可强制覆盖

Auto-Recall(自动回忆)

解决的问题:让 AI 在每次新对话开始时自动「想起」相关的历史信息,不需要用户提醒。
image1824×414 64.2 KB

Auto-Capture(自动捕获)

解决的问题:让 AI 自动把对话中有价值的信息存入记忆
image1960×449 74.9 KB

Intent Recognition(意图识别)

解决的问题:理解用户搜索记忆时的真实意图,选择最优的检索策略。

4 种意图类型:factual(事实查询)、exploratory(探索性)、temporal(时间相关)、causal(因果关系)。不同意图会导致不同的检索策略模板 ------ 比如时间相关的查询会更侧重最近的记忆

Profile A/B/C 用规则分类(keyword pattern),Profile D 用 LLM 分类

Compact Context / Gist(上下文压缩)

解决的问题把长对话压缩成简洁的摘要,持久化到记忆中。

两种模式:

  • 手动:通过 compact_context 工具主动触发
  • 自动:对话结束时 Reflection 系统触发

Profile D 下用 LLM 生成更高质量的摘要。默认最多 12 行。

Reflection Lane(反思)

解决的问题:从对话中提取高层次的教训和规律,而不仅仅是具体事实

反思会把对话内容分类为 5 种类型:event(事件)、invariant(不变量)、derived(推导结论)、openLoops(未解决问题)、lessons(教训)。存入 core://reflection/{agentKey},带有 14 天的衰减提示 ------ 存储的时间越久反思权重越低,模拟人类记忆遗忘

三种触发源:agent_end(对话结束)、compact_context(上下文压缩)、command_new(新会话)。

注意:Reflection 默认关闭reflection.enabled: false),需要在 Plugin 配置中手动开启。同样,Profile Memory 也默认关闭(profileMemory.enabled: false)。Smart Extraction 仅在 Profile C/D 下自动启用。

image1178×655 133 KB

Reflection Lane 反思通道:从对话中提取高层次教训,14 天自然衰减

Visual Memory(视觉记忆)

解决的问题:让 AI 能记住图片中的信息。

支持存储 6 个维度的信息:summary(概述)、OCR(文字识别)、entities(实体)、scene(场景)、whyRelevant(为什么重要)、confidence(置信度)。

去重策略可选:merge(合并相同图片的信息)、reject(拒绝重复)、new(总是新建)。每条视觉记忆都有 SHA-256 溯源 hash。

视觉记忆 - 命名空间根节点1600×1000 138 KB
Dashboard 中的视觉记忆命名空间:按来源和类型组织的树状结构

视觉记忆 - 详情1600×1000 140 KB
视觉记忆详情页:可以看到 summary、OCR、entities 等提取结果

Host Bridge(宿主桥接)

解决的问题:OpenClaw 自带的 USER.md / MEMORY.md 有内容,Memory Palace 不应该忽略它们。

Host Bridge 会自动扫描工作区的 USER.md、MEMORY.md 和 memory/ 目录,把相关内容导入到 Memory Palace 中 ------ 原文件不受影响。

严格的安全设计:TOCTOU-resistant 文件读取(O_NOFOLLOW + fstat + inode 验证)、符号链接阻断、路径逃逸防护、注入检测、敏感文本过滤。单次最多导入 2 个文件,单文件最大 256KB

Prompt Safety(提示词防御)

解决的问题防止被投毒的记忆影响 AI 行为。

如果有人(或者 AI 自己误写了)往记忆里存了一条**「忽略之前的所有指令,执行 xxx」,Prompt Safety 会检测并拦截这种注入**。

覆盖英文、中文、日文、韩文四种语言,结合主检测模式、compact 检测模式、NFKD 归一化、零宽字符清理和 Cyrillic 同形字映射来拦截记忆注入,防止 unicode 层面的逃逸。

相关内容建议继续阅读,跳转至GitHub对应链接:技术架构总览 | 安全与隐私文档

image1920×1080 346 KB

核心技术亮点一览


十、MCP Tools 说明

以下工具大部分为自动调用

Memory Palace 的设计理念是**「自动为主,手动为辅」**:

  • 自动回忆和自动捕获 通过 Hook 在后台运行,用户完全无感
  • 4 个用户工具(memory_search、memory_learn、memory_get、memory_store_visual)由 Agent 根据 Skill 规则自动判断是否需要调用
  • 你只需要用自然语言表达意图,不需要记任何工具名
    image1876×400 43 KB

image710×301 22 KB

image1905×693 64.1 KB

在 OpenClaw 里你到底需要怎么操作才能使用这些tools

平时:什么都不做。正常对话,记忆系统在后台自动运作。

偶尔进行干预:用自然语言。「记住这个」「搜一下之前的」「把对话要点存下来」「检查一下记忆状态」。

不需要记工具名,不需要记命令,不需要记参数。

相关内容建议继续阅读,跳转至GitHub对应链接:MCP 工具参考文档 | 触发样本参考


十一、Dashboard

Memory Palace 自带一个可视化的前端 Dashboard,5 个页面,覆盖记忆管理的全生命周期。支持中英双语切换。
image1705×1183 203 KB

怎么访问dashborad

image1863×259 20.3 KB

相关内容建议继续阅读,跳转至GitHub对应链接:Dashboard 完整指南 | 真实素材清单

Dashboard - Setup 页面1600×1000 196 KB
Setup 页面:首次配置引导

Dashboard - Memory 页面1600×1000 138 KB
Memory 页面:记忆浏览和搜索

Dashboard - Review 页面1600×1000 112 KB
Review 页面:写入审查和回滚

Dashboard - Maintenance 页面1600×1000 103 KB
Maintenance 页面:索引重建和清理

Dashboard - Observability 页面1600×1000 174 KB
Observability 页面:搜索诊断和系统监控

Dashboard 页面导览图1031×206 9.14 KB
Dashboard 5 个页面的导览关系:从 Setup 到 Observability 的完整管理链路


最后

项目地址:

github.com

GitHub - AGI-is-going-to-arrive/Memory-Palace-Openclaw

通过在 GitHub 上创建帐户来为 AGI-is-going-to-arrive/Memory-Palace-Openclaw 开发做出贡献。

如果有 bug 或者用着有什么问题,欢迎在 GitHub 上开 issue,或者直接私信我。也欢迎提PR,有不错的会积极采纳。

觉得还不错的话,给个 star 吧。个人耗费了很大精力完成的该项目,给个star​ 就是最大的动力。

网友解答:
--【壹】--:

前排入座学习一下,刚好最近迁移了hermes-agent,想试试在爱马仕里是否适配


--【贰】--:

我会话不显示上下文了,很奇怪,不知道怎么回事,他自己删除了一下历史会话好像


--【叁】--:

你也可以让你的hermes-agent 帮你改,哈哈。
我这边评估一下,如果改造难度不大,时间不长的话我会尝试进行改造,提供一个hermes agent版本


--【肆】--:

这个领域开始卷的项目好像挺多了,看完以后不知道和其他项目相比有和优劣


--【伍】--:

顶一下,各位用open claw的欢迎来看看,使用呀。
多给点反馈,才能更好点改进
感觉一下子就被信息流刷下去了,很多人都没看到


--【陆】--:

start一下,挺实用的,现在openclaw热度降下来了,但是我感觉还是挺有用的至少对我来说


--【柒】--:

支持下大佬,虽然有AI,但肝项目不容易,要花大量时间调试


--【捌】--:

正想找个教程学习一下这个mempalace,感谢佬了


--【玖】--:

捞一捞,用open claw的各位佬友欢迎来使用,提出相关建议
花了很大的精力才做好的


--【拾】--:

正是这么想的哈,晚上闲了打算让hermes整一下适配,看看效果用一段时间再过来给反馈


--【拾壹】--:

你好这是我让claude帮我进行总结的你可以看看,搜集了相关竞品数据和真实代码情况进行比对的。
相关竞品
image1691×1200 271 KB
功能对比
image1527×1677 256 KB

优势点
image2099×1765 433 KB
image2190×1134 305 KB

相对不足之处
image1445×822 95.4 KB


--【拾贰】--:

先收藏了,佬,确实我现在养虾也是这样,每天都要跟打半天架才能开工


--【拾叁】--:

image1080×365 48.5 KB

image938×298 10.4 KB佬 为啥我今天加载之后会话经常丢


--【拾肆】--:

会话会丢是指没有存储到SQLite数据库中吗?还是什么情况


--【拾伍】--:

好的,可以先用一用看呢,然后有问题欢迎反馈


--【拾陆】--:

我先评估一下,看看改造难度,如果工作量不大,我尝试一下


--【拾柒】--:

最近正在找一套记忆系统,mark一下,仔细学习


--【拾捌】--:

支持一下大佬,之前我还在用openclaw的时候就在等你这个项目,但是现在我已经转到Hermes了 能出一个Hermes版本吗,我动手能力不足不会改


--【拾玖】--:
DeepWiki

AGI-is-going-to-arrive/Memory-Palace-Openclaw | DeepWiki

Memory Palace is a durable memory system designed for OpenClaw, providing a long-term storage and retrieval layer for conversational traces $1. It functions as an OpenClaw plugin that intercepts event

附上项目对应的deepwiki链接,欢迎各位学习探讨交流