ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

MemPalace Antigravity recall 规则解析:先搜库再作答,原文引用不转述,及其三层记忆召回体系

MemPalace Antigravity recall 规则解析:先搜库再作答,原文引用不转述,及其三层记忆召回体系 MemPalace Antigravity recall 规则解析先搜库再作答原文引用不转述及其三层记忆召回体系【免费下载链接】mempalaceThe best-benchmarked open-source AI memory system. And its free.项目地址: https://gitcode.com/GitHub_Trending/me/mempalaceMemPalace 在 Antigravity IDE 中通过一条轻量 recall 规则约束 Agent 的行为凡是可能已有记忆答案的问题必须先查记忆宫殿palace再作答且必须逐字引用存储内容。本篇以插件包内的 recall 规则文件 为主体完整拆解其协议条款并结合插件清单、共享协议文档与 MCP 服务端源码说明这条规则在三层召回体系中的位置、参数细节与失败路径处理。读完你可以完整掌握这条规则何时触发、调哪些 MCP 工具、如何按 verbatim 原则作答以及 MCP 服务异常时如何安全恢复。1. 规则文件在 Antigravity 插件中的位置.antigravity-plugin/rules/mempalace-recall.md 是 Antigravity 插件包中唯一的 rule 文件。插件包的整体结构在 插件 README 中有完整定义.antigravity-plugin/ ├── plugin.json # marker manifest ├── mcp_config.json # 自动注册 mempalace-mcp stdio 服务 ├── hooks.json.tmpl # 模板安装时渲染为 hooks.json ├── skills/ │ ├── mempalace/SKILL.md # 运维技能setup / mine / status │ └── mempalace-recall/SKILL.md # 召回技能search-before-answer 协议 ├── rules/ │ └── mempalace-recall.md # 可选召回规则本文章的主体 └── README.md规则文件本身不含 YAML frontmatter是一条纯 Markdown 指令同主题的 Cursor 版本 rules/mempalace-recall.mdc 则带有 frontmatterdescription描述触发条件、alwaysApply: false表示由 Cursor 匹配器按需注入而非每轮常驻正文与 Antigravity 规则完全一致。两者都是按需注入的轻量规则而非全局常驻规则。规则生效的前提是 MCP 服务已注册。mcp_config.json 只有一处配置——把mempalace-mcp命令作为 stdio 服务挂给 Antigravity{ mcpServers: { mempalace: { command: mempalace-mcp } } }配套的 hooks.json.tmpl 声明了两个钩子__PLUGIN_DIR__占位符由安装脚本渲染为绝对安装路径mempalace-wake绑定PreInvocation事件执行mempal_wake_hook_antigravity.sh超时 5 秒mempalace-save绑定Stop事件执行mempal_save_hook_antigravity.sh超时 30 秒。钩子脚本本体位于hooks/antigravity/目录安装器 hooks/antigravity/install.sh 幂等可重复执行bash hooks/antigravity/install.sh规则、技能与钩子最终指向同一份共享协议这是后文第 4 节的重点。2. 规则原文三步协议与跳过条件以下是 recall 规则 的核心条款。原文要求在回答任何可能已经存在于用户记忆宫殿的内容之前——过往工作、先前的决定、某个人、某个项目或上次我们做了什么/决定了什么/讨论了什么——必须先搜索宫殿1. 用短关键词查询调用 mempalace_search。 关系型或时间约束型事实使用 mempalace_kg_query。 2. 逐字verbatim引用抽屉drawer中的文本。 绝不概括或转述已存储的内容。 3. 若结果为空如实说明——不要编造答案。 若 MCP 服务不可用直接暴露错误不要回退到猜测。规则末尾划定了明确的边界原文第 14–15 行跳过条件纯 greenfield绿地工作且与记忆无关时不做召回例如重命名变量、修一个错别字设计原则Recall 是问题驱动question-driven的不是条件反射reflexive的——不能每轮都搜。规则末尾把读者引向两处更深层的资料完整协议integrations/shared/recall-protocol.md见下文第 4 节以及更详尽的 mempalace-recall 技能。3. 为什么规则只是三层召回中的第三层插件 README 指出MemPalace 能存一切但只有当 Agent 真正在作答前读取宫殿时才有用。为此设计了从急切到按需的三层召回本文的规则文件是其中最轻的一层Wake 钩子最急切PreInvocation事件、且限定在对话的第一次模型调用invocationNum 1。钩子脚本 hooks/antigravity/mempal_wake_hook_antigravity.sh 执行mempalace wake-up通过 Antigravity 的injectSteps[].ephemeralMessage输出逐字注入宫殿的实际内容。这相当于 Cursor 的sessionStartadditional_context区别在于它直接递送记忆本身而不只是一句去查的指令。Recall 技能skills/mempalace-recall/SKILL.md 是完整的 search-before-answer 协议覆盖工具选择、失败路径与反模式仓库根目录下的 skills/mempalace-recall/SKILL.md 为通用集成版本。它只覆盖召回mempalace技能负责 setup / mine / status。可选 recall 规则本文件当 Antigravity 的匹配器判定某一轮与召回相关时才注入这条轻量 Markdown 规则。它刻意限定为 recall-scoped 而非常驻全局规则避免给绿地开发增加任何延迟兑现 MemPalace memory should feel instant记忆应当感觉即时的延迟预算。三层共同指向同一份权威协议README 明确说明这是为了防止技能与规则漂移drift。从源码结构看这种单一事实源 多处薄封装的组织方式在仓库内多处复用例如 Cursor 规则、OpenClaw 技能均链接共享协议而非各自重述。4. 完整协议integrations/shared/recall-protocol.md规则原文末尾外链的完整协议在仓库内对应 integrations/shared/recall-protocol.md。它是所有集成Cursor、Antigravity、Claude Code、Codex、OpenClaw共享的先搜后答唯一事实源。其核心承诺是 MemPalace 的基础信条100% recall, verbatim, never guess——当宫殿可能持有答案时Agent 必须先读宫殿而不是靠模型记忆作答。以下按原文脉络完整继承各节内容。4.1 何时召回满足任一情形就要在回答之前先搜宫殿原文第 14–27 行过往工作、先前决定或我们做了什么/决定了什么/试过什么某个人、项目或实体谁是……、……是什么更早会话中发生过的事还记得……、上次……、我们讨论过的那件事可能随时间变化的偏好、事实或关系反之纯绿地工作重命名这个变量、修这个错别字不搜索。4.2 六步协议唤醒时若会话启动钩子注入了上下文additional_context遵循其中的 wing翼范围限定然后继续回答前涉及人、项目、过往事件或先前决定时先调mempalace_search关系型或时间约束型事实三月时谁向谁汇报、当时什么情况成立改用mempalace_kg_query或两者并用不确定时关于事实名字、年龄、关系、偏好没把握就说让我查一下宫殿再查询。原文的原则是Wrong is worse than slow——错比慢更糟逐字返回引用抽屉中精确的存储原文。绝不概括、转述或有损压缩——这正是这套系统的存在意义实质性会话结束后用mempalace_diary_write记录连续性后台钩子可能已完成此事不要重复归档事实变更时选择能保留时间历史的写法——单值替换模型、雇主、所有者、地址、当前状态用mempalace_kg_supersede无替代地终结的事实用mempalace_kg_invalidate独立/并存的事实用mempalace_kg_add。4.3 工具选择表你的需求工具按语义找到任意记忆mempalace_search从这里开始实体的关系型 / 时间约束型事实mempalace_kg_query替换一个单值事实mempalace_kg_supersede实体的时间线故事mempalace_kg_timeline最近会话的连续性mempalace_diary_read范围未知时查看存在哪些翼/房间mempalace_list_wings、mempalace_list_rooms记录本次会话mempalace_diary_write参数细节mempalace_search接收一段短自然语言query关键词或一个问题——不是系统提示词也不是粘贴的整段对话外加可选的wing/room过滤器和limit默认 5。这一约束与规则原文短关键词查询的要求一致也是反模式清单中不要把整个对话粘进 query的由来。另有一条边界值得注意召回协议 与协作协议是两回事。当 Agent 需要向共享 hub 上的另一个 Agent 委派工作、等待其回复或补丁时应使用 logstream 工具mempalace_event_append/mempalace_event_wait而不是抽屉或搜索——召回回答问题logstream 推进工作详见 integrations/shared/coordination-protocol.md。4.4 失败路径unhappy paths协议对每一种异常都有明确处置原文第 66–84 行结果为空如实说宫殿里没有这条记录不要为了填补空白而编造答案。可以建议放宽搜索去掉wing过滤或把新信息归档。MCP 不可用 / 工具报错直接暴露错误建议用户运行mempalace status检查服务或重跑安装绝不静默回退到模型记忆猜测。宫殿索引损坏 / 压缩器错误当服务端报 HNSW segment writer 错误、ChromaDB 压缩失败或一次写入后卡在 Not connected 状态说明磁盘上的向量索引已与chroma.sqlite3不同步——但抽屉行在 SQLite 中完好无损。恢复方式是从 SQLite 重建索引而不是重新挖掘见 4.5。事实陈旧或冲突优先信任知识图谱的时间有效答案替换用mempalace_kg_supersede终结用mempalace_kg_invalidate并存用mempalace_kg_add。4.5 损坏索引的恢复步骤协议专门给出了一节Recovering a corrupt index原文第 86–107 行。场景是ChromaDB 压缩失败可能让抽屉的 HNSW 索引与chroma.sqlite3失同步MCP 服务被卡死每次调用都返回 Not connected。数据本身在 SQLite 中安全正确做法是引导用户执行 CLI 步骤——Agent 不得在进程内自行重建那可能破坏其他存活客户端停掉 MCP 服务杀掉mempalace-mcp进程或重启宿主编辑器可选备份宫殿目录macOS / Linuxcp -a ~/.mempalace/palace ~/.mempalace/palace.bak.$(date %F)Windows PowerShellCopy-Item -Recurse $env:USERPROFILE\.mempalace\palace $env:USERPROFILE\.mempalace\palace.bak--archive-existing参数已会把旧宫殿移开此步属双保险从 SQLite 重建mempalace repair --mode from-sqlite --archive-existing --yes校验mempalace repair-statusdivergence 应读数为 0重启 MCP 服务。协议还特别警告不要为了恢复而重新从源文件挖掘re-mine——重挖会丢掉经由 MCP 服务和日记新增、没有对应源文件的抽屉对应 MemPalace issue #1843。4.6 反模式清单协议最后列出四类绝不要做原文第 109–118 行宫殿可能知道时用模型记忆回答过往工作、人或决定——应先搜索转述或概括存储内容而不是逐字引用每轮条件反射式搜索包括纯绿地编码把整段对话或系统提示词粘进query参数——查询保持短小、关键词驱动。5. 源码佐证从规则到 MCP 工具的落地规则里引用的mempalace_search、mempalace_kg_query等工具并非虚指它们在仓库内有明确的实现与测试对应物mempalace/mcp_server.pystdio 形式的 MCP 服务端即 mcp_config.json 中注册的mempalace-mcp命令入口负责把工具调用分发到业务层mempalace/service.py 与 mempalace/searcher.py包含mempalace_search/mempalace_kg_query等工具名的处理逻辑与检索实现searcher一侧对应混合检索路径知识图谱侧由 mempalace/knowledge_graph.py 承载与协议中mempalace_kg_query/kg_timeline/kg_supersede等工具族对应。测试层面同样可以印证这条链路的完整性tests/test_mcp_server.py 覆盖 MCP 服务端行为tests/test_hybrid_search.py 覆盖检索路径tests/test_antigravity_plugin_manifest.py 与 tests/test_antigravity_hooks_install.py、tests/test_antigravity_hooks_shell.py 则分别验证 Antigravity 插件清单与钩子安装脚本的行为。6. 实操验证路径按规则文件自身的Step 0精神先确认可用性再依赖召回在 Antigravity 中验证这套配置的检查顺序是确认 CLI 已安装mempalace --version——注意不要假设具体版本号MCP 工具集才是本安装构建支持什么的事实源确认 MCP 服务可达mempalace status若mempalace_*工具在编辑器中不可见说明服务未连接应走安装/初始化流程如重跑 install.sh而不是让 Agent 从模型记忆硬答用一条真实问题触发规则例如我们上次讨论了什么观察 Agent 是否先调用mempalace_search、并以逐字引文形式呈现抽屉内容若出现 Not connected 或 HNSW 报错按 4.5 节的五步 CLI 流程恢复恢复后mempalace repair-status的 divergence 应为 0。7. 小结.antigravity-plugin/rules/mempalace-recall.md 用不到二十行文本把 MemPalace 最核心的行为契约固化进了 Antigravity IDE先搜后答、逐字引用、空结果不编造、服务异常不猜测、绿地任务不触发。它本身只是三层召回体系wake 钩子 → recall 技能 → recall 规则中最轻的按需层真正的完整协议集中在 integrations/shared/recall-protocol.md并在 mempalace/mcp_server.py、mempalace/service.py、mempalace/searcher.py 与对应测试中找到实现落地。理解这条规则也就理解了 MemPalace 集成设计的整体思路把永远不猜的纪律拆成可分层的薄封装所有封装共享同一份协议避免行为漂移。【免费下载链接】mempalaceThe best-benchmarked open-source AI memory system. And its free.项目地址: https://gitcode.com/GitHub_Trending/me/mempalace创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表