尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

MemPalace Antigravity Recall Skill:「先搜索再回答」回忆协议的完整实现解析

MemPalace Antigravity Recall Skill:「先搜索再回答」回忆协议的完整实现解析 MemPalace Antigravity Recall Skill:「先搜索再回答」回忆协议的完整实现解析【免费下载链接】mempalaceThe best-benchmarked open-source AI memory system. And its free.项目地址: https://gitcode.com/GitHub_Trending/me/mempalace本文围绕 MemPalace 的 Antigravity 插件中的召回技能文件 .antigravity-plugin/skills/mempalace-recall/SKILL.md 展开完整解读「Search-before-answer先搜索、再回答」回忆协议的触发时机、六步流程、MCP 工具选择表与失败处理策略并结合插件安装结构、PreInvocation 唤醒钩子脚本与 MCP 服务器源码说明该协议在 IDE Agent 集成中的落地机制。读完后你将掌握如何在 Agent 集成中定义回忆协议、如何通过钩子在会话首轮注入记忆、以及如何在召回、时间知识与日记续写之间正确选择 MCP 工具。技能定位一个只做「召回」的 Agent SkillMemPalace 是一个面向 AI 的本地优先、逐字verbatim存储的记忆宫殿系统。它的 Antigravity 插件目录 .antigravity-plugin/ 在仓库中即安装到~/.gemini/config/plugins/mempalace/时的内容源头目录结构如下.antigravity-plugin/ ├── plugin.json # marker manifest最小 schemaname: mempalace ├── mcp_config.json # 自动注册 mempalace-mcp stdio 服务器 ├── hooks.json.tmpl # 钩子模板安装器渲染为 hooks.json ├── skills/ │ ├── mempalace/ │ │ └── SKILL.md # 运维技能安装 / mine / status / CLI 委托 │ └── mempalace-recall/ │ └── SKILL.md # 召回技能search-before-answer 协议本文主角 ├── rules/ │ └── mempalace-recall.md # 可选召回规则与技能互补 └── README.md其中 plugin.json 仅包含{name: mempalace}这一最小清单mcp_config.json 则以 stdio 方式注册mempalace-mcp二进制{ mcpServers: { mempalace: { command: mempalace-mcp } } }mempalace-recall技能文件的 YAML frontmatter 定义了技能的触发语义——name: mempalace-recall描述中明确指出当用户询问「当时决定了什么、之前发生过什么、某人是谁、上次讨论过什么」或任何可能已归档进记忆宫殿的内容时应应用该技能它补充覆盖mempalace技能后者负责安装 / mine / status自身只覆盖召回recall这一件事。插件 README 总结了 MemPalace 的「三层召回」设计从急切到按需递进本文的技能是第二层唤醒钩子Wake hookhooks/antigravity/mempal_wake_hook_antigravity.sh挂在PreInvocation事件上、门禁为invocationNum 1。会话第一次模型调用时运行mempalace wake-up通过 Antigravity 的injectSteps[].ephemeralMessage输出逐字注入宫殿内容——与 Cursor 的sessionStartadditional_context语义相当区别在于它交付的是记忆本身而非「去取记忆」的指令。召回技能即本文主角skills/mempalace-recall/SKILL.md定义 Agent 在某个回合具备召回相关性时遵循的搜索协议——工具选择、失败路径、反模式。可选召回规则rules/mempalace-recall.md一个轻量 markdown 规则在 Antigravity 的匹配器判定回合具有召回相关性时「轻推」Agent 先搜索。它刻意只做召回作用域而非全局常开规则避免给无记忆相关性的绿色场greenfield工作增加延迟遵守 MemPalace「记忆应当感觉瞬时」的预算约束。三层都指向同一份规范协议integrations/shared/recall-protocol.md保证技能与规则永不漂移。Step 0 — 先验证 MemPalace 可用技能的第一条规则是在依赖召回之前确认 MemPalace 已安装且可达。原文档给出的检查命令是mempalace --version这里有一条重要的原则性约束不要假设版本——当前构建的 MCP 工具集才是该安装版本支持什么的事实来源source of truth。这一设计与 mempalace 技能 中的「动态、版本正确的指令」思路一致CLI 提供mempalace instructions command按操作返回与安装版本匹配的完整指引技能文档明确要求「当 CLI 输出与技能文本不一致时以 CLI 为准」。失败路径同样被写死如果mempalace_*MCP 工具不可用必须明确告诉用户服务器未连接并指引其使用mempalace技能完成配置——绝不允许悄悄退化为用模型记忆作答。Identity — 角色设定资深 AI 记忆系统工程师技能文档中用一段「Identity」为 Agent 设定行为人格扮演一名拥有数十年经验的资深 AI 记忆系统工程师精通逐字召回、语义检索与时序知识图谱。来自宫殿的逐字召回永远胜过来自模型记忆的自信猜测——错误比慢更糟Wrong is worse than slow。这句「Wrong is worse than slow」是整个协议的价值底座宁可多花一次工具调用的延迟去查宫殿也不要用可能过时的模型记忆生成一个自信的错误答案。何时召回、何时不召回这是协议中最容易被忽视但最影响体验的部分。技能文档规定只要用户问到的内容可能已归档就在回答前搜索过往工作或先前决策——「我们当时决定 / 尝试 / 做了什么」某个人的、项目的、实体的——「谁是谁」「这是什么」更早的会话——「记得我们……」「上次……」「我们讨论过的那个」可能随时间变化的偏好、事实或关系反过来纯绿色场工作不做召回如「重命名这个变量」「修这个错别字」。原文档的表述很关键Recall is question-driven, not reflexive — a search on every turn wastes latency and violates MemPalaces memory should feel instant budget.召回是问题驱动的不是反射性的——每一轮都搜索会浪费延迟并违反 MemPalace「记忆应当感觉瞬时」的预算。这与可选规则文件 rules/mempalace-recall.md 的结尾呼应「Skip recall for pure greenfield work with no memory relevance... Recall is question-driven, not reflexive.」两者共享同一条 规范协议该协议同样声明自己是跨所有 MemPalace 集成Cursor、Antigravity、Claude Code、Codex、OpenClaw的单一事实来源服务于「100% recall, verbatim, never guess」的基础承诺。六步召回协议Protocol技能文档的核心是六步协议规范协议中逐条对应唤醒注入On wake-upMemPalace 的 PreInvocation 钩子在会话第一次模型调用时通过injectSteps[].ephemeralMessage注入逐字的宫殿内容。如果记忆已被注入先从它出发再决定是否进一步搜索。回答前搜索Before responding在回答任何关于人物、项目、历史事件或先前决策的问题之前先调用mempalace_search。对于关系型或时间型事实「三月时谁向谁汇报」「当时什么状态是真的」改用mempalace_kg_query或同时使用。不确定时If unsure对事实姓名、年龄、关系、偏好拿不准时说出「let me check the palace」然后查询。错误比慢更糟。逐字返回Return verbatim引用抽屉drawer存储的原始文字。绝不总结、改写或有损压缩宫殿返回的内容——这正是整个系统的意义所在。实质性会话之后用mempalace_diary_write记录会话连续性。注意括号里的告诫后台钩子可能已经做了这件事——不要重复归档do not double-file。事实变化时选择能保留时间历史的写操作mempalace_kg_supersede—— 单值事实替换型号、雇主、所有者、地址、当前状态mempalace_kg_invalidate—— 无替代地结束的事实mempalace_kg_add—— 相互独立 / 共存的事实。唤醒注入的源码级实现第 1 步并非纸面协议。hooks/antigravity/mempal_wake_hook_antigravity.sh 展示了完整实现其中有几个值得注意的工程细节门禁PreInvocation事件在每次模型调用前触发脚本通过invocationNum 1判定「会话第一次模型调用」并用原子mkdir标记antigravity_woke_${CONVERSATION_ID}保证每个会话只注入一次避免逐轮注入带来的开销与视觉噪音逐字保证脚本以内嵌 Python 以subprocess.run([sys.executable, -m, mempalace, wake-up, --wing, wing], timeout0.5)调用 CLI把 stdout原样包进{injectSteps: [{ephemeralMessage: body}]}输出——json.dumps负责正确转义不做任何改写500ms 硬超时与 fail-open超时、非零退出、解析失败一律输出{}并放行——错过注入预算严格优于阻塞用户脚本注释中说明比 100ms 的启动注入预算更宽松因为冷 ChromaDB 连接可能占大头Wing 推断从 stdin 的workspacePaths[0]第一个绝对工作区路径推断 wing 作用域多工作区会话以第一个为准防护脚本刻意不启用set -efail-open 是强制要求并有一条防御性检查——PreInvocation 钩子绝不输出 Stop 事件专用的decision字段防止未来编辑引入 Stop 形状的 JSON 导致 Agent 陷入死循环。该钩子与 Stop 钩子在 hooks.json.tmpl 中注册安装器把__PLUGIN_DIR__占位符渲染为绝对安装路径{ mempalace-save: { Stop: [ { type: command, command: __PLUGIN_DIR__/hooks/mempal_save_hook_antigravity.sh, timeout: 30 } ] }, mempalace-wake: { PreInvocation: [ { type: command, command: __PLUGIN_DIR__/hooks/mempal_wake_hook_antigravity.sh, timeout: 5 } ] } }其中 Stop 钩子mempalace-save负责后台挖掘会话记录——这解释了协议第 5 步「不要 double-file」保存钩子可能已经替你归档了。MCP 工具选择表Tool Selection技能文档给出了一张明确的「需求 → 工具」映射表这是 Agent 选工具的唯一依据你需要工具按语义找任意记忆mempalace_search从这里开始关于实体的关系型 / 时间约束事实mempalace_kg_query替换单值事实mempalace_kg_supersede一个实体的时间线故事mempalace_kg_timeline近期会话连续性mempalace_diary_read有哪些 wings / rooms作用域未知时mempalace_list_wings,mempalace_list_rooms记录本次会话mempalace_diary_write关于mempalace_search的入参技能文档特别强调了query的写法短小的自然语言关键词或一个问句——不是系统提示词、不是粘贴的整段对话外加可选的wing/room过滤器和limit默认 5。从 mempalace/mcp_server.py 源码看工具面比这张表更大除召回技能列出的工具外服务器还提供只读的mempalace_status总抽屉数与 wing/room 分布、mempalace_get_taxonomy完整 wing → room → count 树、mempalace_check_duplicate归档前查重以及写工具mempalace_add_drawer、mempalace_delete_drawer、mempalace_delete_by_source和维护工具mempalace_reconnect。召回技能刻意只暴露「回忆路径」上需要的子集写路径则由技能/规则与钩子分工承担。另外从源码结构看MCP 服务器在导入重依赖chromadb → onnxruntime 等前会把 stdout 重定向到 stderr——因为 MCP 协议在 stdio 上多路复用 JSON-RPC任何第三方库打印到 stdout 的横幅都会破坏解析器这一细节解释了「工具报错时应原样上报而不是猜测」背后服务器可能存在的 stdio 健壮性设计。失败路径Unhappy Paths技能文档把三类失败情形显式写成协议的一部分每条都给出「不该做什么」空结果Empty results如实说宫殿里没有这条记忆不要编造答案来填空。可以建议放宽搜索去掉 wing 过滤或把新信息归档进去。MCP 不可用 / 工具报错MCP unavailable / tool error把错误原样呈现建议用户检查服务器状态mempalace status或重跑安装器hooks/antigravity/install.sh。不要悄悄退化为模型记忆猜测。过时或冲突事实Stale or conflicting facts优先采用知识图谱的时间有效答案按事实类型选择mempalace_kg_supersede单值替换、mempalace_kg_invalidate无替代地结束、mempalace_kg_add独立共存。共享的 规范协议文档 在此基础上还多覆盖了一类失败宫殿索引损坏 / 压缩器错误。当服务器返回涉及 HNSW segment writer、ChromaDB 压缩失败或写后卡死在「Not connected」状态的错误时磁盘向量索引已与chroma.sqlite3失同步——但抽屉行完好保存在 SQLite 中。恢复方式是引导用户走 CLI 重建停掉 MCP 服务器 → 可选备份宫殿目录 →mempalace repair --mode from-sqlite --archive-existing --yes→mempalace repair-status确认 divergence 为 0 → 重启服务器而不是重新挖掘re-mining 会丢掉经 MCP 服务器和日记写入、没有源文件的抽屉也不要在 Agent 进程内自行修复可能破坏其他活跃客户端。这一节说明失败处理是分层设计的技能层保持简洁深层恢复流程由规范协议统一承载。反模式清单Anti-patterns — never do these技能文档末尾给出四条「绝不做」清单与规范协议及规则文件逐条一致宫殿可能知道时用模型记忆回答过往工作、人物或决策——应该先搜索对存储内容做改写或总结而不是逐字引用每一轮都反射性搜索包括无记忆相关性的纯绿色场编码把整段对话或系统提示词粘进query参数——保持查询短小、关键词驱动。这四条与前文的协议步骤互为镜像第 2 条对应第 4 步的 verbatim 要求第 3 条对应「何时不召回」一节第 4 条对应mempalace_search入参约束。安装、验证与延伸阅读技能文件本身不携带安装逻辑——它属于 mempalace 技能 的职责uv tool install mempalace或pip install mempalacemempalace --version验证。但召回协议的生效依赖插件整体安装用户侧入口为bash hooks/antigravity/install.sh # 安装幂等 bash hooks/antigravity/install.sh --dry-run # 预演 bash hooks/antigravity/install.sh --uninstall安装器幂等cmp门控的复制跳过内容一致的文件可安全用于 CI卸载器按 basename 匹配并有双重防护目录名必须恰为mempalace且plugin.json的name为mempalace防止误删无关目录。完整用户文档见 website/guide/antigravity.md其中还涵盖钩子如何解析mempalace安装所用的 Python 解释器MEMPAL_PYTHON→ console 脚本 shebang →python3的解析顺序、kill switch 开关表MEMPAL_DISABLE_HOOK、MEMPALACE_HOOKS_AUTO_SAVE、~/.mempalace/config.json的hooks.auto_save等、性能预算kill switch 触发或门禁失败时钩子应 100ms 返回wake 钩子 500ms 硬上限以及安装后的验证命令mempalace-mcp --version、检查~/.mempalace/hook_state/antigravity_hook.log中[eventpreInvocation]日志行。进一步深入时建议按以下路径阅读integrations/shared/recall-protocol.md —— 全部集成共享的规范召回协议本文技能的上位文档hooks/antigravity/README.md 与 hooks/antigravity/STDIN_SHAPE.md —— Antigravity 钩子的文档与两个事件的确切 stdin 线格式mempalace/mcp_server.py —— MCP 服务器实现与完整工具面integrations/openclaw/SKILL.md —— 规范协议蒸馏来源的完整协议技能integrations/shared/coordination-protocol.md —— 共享大脑伴生协议Agent 之间委派工作时走 logstreammempalace_event_append/mempalace_event_wait而非抽屉——「Recall 回答问题logstream 推动工作」。【免费下载链接】mempalaceThe best-benchmarked open-source AI memory system. And its free.项目地址: https://gitcode.com/GitHub_Trending/me/mempalace创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表