
Memori OpenClaw SKILL.md 深度解析为 OpenClaw Agent 构建可检索、可续跑的结构化记忆系统【免费下载链接】MemoriMemori is agent-native memory infrastructure. A LLM-agnostic layer that turns agent execution and conversation into structured, persistent state for production systems. Built for enterprise, Memori works with the data infrastructure you already run, no rip-and-replace, and deploys across managed cloud, single-tenant cloud, VPC, and on-premises.项目地址: https://gitcode.com/GitHub_Trending/me/MemoriMemori 是一套 agent-native面向 Agent 原生的记忆基础设施它把自然语言对话与 Agent 执行轨迹工具调用、结果、决策与产出统一结构化为持久化状态。本文以仓库中的 SKILL.md 为核心骨架结合 OpenClaw 集成插件 的源码与测试完整讲解六个 Memori 工具recall / recall_summary / compaction / feedback / signup / quota的调用规范、参数约束与默认行为并给出会话启动、任务执行、上下文压缩恢复与配额降级四段式工作流帮助你在 OpenClaw 中落地一套自动采集、主动召回、按需续跑的持久记忆体系。Memori 是什么从对话记忆到执行轨迹记忆Memori 的定位不是简单的对话历史缓存而是 agent-native memory infrastructure一个与具体 LLM 无关LLM-agnostic的中间层负责把记忆从两类来源中提炼出来自然语言用户与 Agent 的对话内容Agent 执行轨迹agent traceAgent 实际执行的动作、工具调用结果、决策过程与最终产出。正如 SKILL.md 开头所述Memori 会自动捕获并结构化对话与执行轨迹中的记忆——包括 Agent 的动作、工具结果、决策和产出并允许按需检索。它的核心价值在于让 Agent 跨会话保持连续性、保存决策与约束并让 Agent 真正理解自己实际做了什么从而在下次执行任务时更准确、更高效。在 OpenClaw 集成 的实现中这套系统由两条并行的子系统构成高级增强Advanced Augmentation每次交互结束后插件异步把原始会话数据转换为结构化的、可复用的记忆单元——采集动作、推理、工具使用、回复、纠正与失败组织成便于检索的类别生成向量嵌入以支持语义检索并同步更新结构化记忆与知识图谱。它运行在 Agent 响应之后不增加响应延迟。Agent 自主智能召回Agent-Controlled Intelligent Recall记忆的写入是自动的而读取是刻意的——由 Agent 自行决定何时召回、从什么范围召回、包含多少历史Memori 不会自动把记忆注入提示词从而保持 token 开销高效。SKILL.md 的角色会话启动时的第一份能力清单SKILL.md 是一份写给 Agent 自己看的指令文件。在 skills-loader.ts 中可以看到该文件在插件注册时即被读取读取失败时返回空字符串保证插件优雅降级而非注册失败随后在插件入口 src/index.ts 中通过before_prompt_build钩子把 skills 内容追加到系统上下文appendSystemContext与插件配置一起注入每次提示词构建。这意味着 Agent 在每个会话开始时都应检查 SKILL.md用它来理解可用能力六个工具工具与集成方式期望的行为与约束SKILL.md 被定位为 Agent 行动之前的事实来源source of truth。下表是六个工具的速查与 tools/index.ts 中注册的工具一一对应工具用途认证要求memori_recall按查询、项目、会话、时间范围或允许的 source/signal 组合精确检索记忆需要 API Keymemori_recall_summary获取会话开始时的状态摘要、每日简报或整体状态概览需要 API Keymemori_compaction上下文压缩后获取结构化的续跑简报无中断地继续任务需要 API Keymemori_feedback上报无关、缺失、过时或特别有用的记忆行为需要 API Keymemori_signup在用户明确要求时创建 Memori 账户或申请 API Key无需memori_quota在用户询问或接近限额时检查用量、配额、存储与记忆容量需要 API Key何时该用 Memori、何时不该用SKILL.md 给出了清晰的判据核心原则是按需召回避免无谓检索Avoid unnecessary recall。应该使用 Memori 的场景任务依赖之前的上下文用户提及之前的会话或决策需要已知的约束、偏好或模式会话开始需要了解当前状态想弄清楚此前已经完成了什么。不应使用 Memori 的场景任务完全自包含答案只依赖当前提示词不需要任何历史上下文查询是简单或一次性的。这一判据在 OpenClaw 插件的工具描述里被进一步强化。例如 memori-recall.ts 的工具描述写明在声称你不了解用户、其偏好或过去事件之前必须使用本工具搜索过往上下文而memori_recall_summary的描述则要求在回答任何摘要、状态更新、每日简报或项目/历史会话的高层概览请求之前必须先使用本工具。精确召回memori_recall参数、约束与最佳实践召回是Agent 控制且刻意的行为SKILL.md 明确召回是agent-controlled and intentionalAgent 控制且刻意应优先做**定向召回targeted recall**而非宽泛查询。支持的参数仅召回支持参数含义entityId用户、Agent 或系统上下文projectId项目或工作区上下文sessionId特定会话dateStart/dateEnd时间范围限定source记忆类型必须与signal成对使用signal记忆的派生方式必须与source成对使用两条硬性约束SKILL.md 中明确标注提供了sessionId则必须同时提供projectId。所有时间戳统一按UTC存储。这两条约束在源码层面都有对应校验。在 memori-recall.ts 中sessionId存在而projectId为空时工具直接返回sessionId cannot be provided without projectId错误而projectId的默认值处理在 L82const finalParams { projectId: config.projectId, ...params }——未传projectId时回退到插件配置的默认项目LLM 显式传入时则覆盖配置。这一点在测试 memori-recall.test.ts 中有两组用例分别验证默认回退与显式覆盖。允许的 source signal 组合source与signal不是相互独立的参数它们必须成对出现或同时省略且只允许以下九种组合sourcesignal语义constraintdiscovery约束的发现decisioncommit决策的确认/承诺factverification事实的验证executionfailure执行失败instructiondiscovery指令的发现insightinference洞见的推断statusupdate状态的更新strategypattern策略的模式taskresult任务的结果不在该列表中的任意组合都是非法的禁止发送给memori_recall。SKILL.md 强调只要可能就使用允许的(source, signal)组合来优先检索高信号high-signal记忆绝不要单独设置source或signal。这份约束表在源码中是硬编码校验的memori-recall.ts 定义了VALID_PAIRS映射并依次执行三重校验source/signal缺一即拒绝、非法组合返回带期望 signal提示的错误信息。对应的测试 memori-recall.test.ts 用it.each参数化用例逐一验证了全部九组合法组合并在 L221-L261 覆盖了单传 source单传 signal非法组合fact, commit三类拒绝路径。召回默认行为不提供时间范围 →全时记忆all-time memory需要收窄结果时再使用时间边界。召回最佳实践SKILL.md从窄范围开始entity project仅在必要时添加时间边界用允许的(source, signal)组合细化结果绝不单独设置确有必要再扩大范围不要每一轮都召回。摘要召回memori_recall_summary状态感知而非精确检索摘要的定位与精确召回截然不同它用于状态感知state awareness而非精确检索。支持的参数摘要projectIdsessionIddateStartdateEnd摘要不支持source或signal。在 memori-recall-summary.ts 的实现中工具参数表里确实只定义了dateStart、dateEnd、projectId、sessionId四个字段并同样实现了sessionId依赖projectId的校验L49-L56底层调用client.agentRecallSummary(finalParams)。摘要默认行为不提供时间范围 →最近 24 小时last 24 hours。每日简报Daily Brief在重要会话开始时应通过memori_recall_summary获取结构化摘要用于理解当前状态、既往决策、约束、未完成工作。预期每日简报结构SKILL.md 列出的完整清单今日概览Today at a glance前 3 项下一步行动Top 3 next actions前 3 项风险Top 3 risks行动前核验Verify before acting近期决策Recent decisions使命堆栈Mission stack硬性约束Hard constraints当前状态Current status未闭合回路Open loops已知失败与反模式Known failures and anti-patterns过时警告Staleness warningsSKILL.md 要求把这份简报当作系统的工作状态working state of the system来对待。压缩后续跑memori_compaction上下文压缩后的恢复机制长会话被上下文压缩context compaction后对话细节会丢失。memori_compaction正是为此设计的检索一份结构化的压缩后简报post-compaction brief让 Agent 无需重放整个历史会话即可继续执行。适用场景Agent 在压缩后恢复执行长运行工作流丢失了对话细节需要在不重放完整历史会话的情况下继续操作性工作需要持久状态、常驻指令、环境细节、未闭合回路或下一个预期动作。SKILL.md 同时强调压缩后简报不能替代精确记忆检索。支持的参数压缩后简报projectId必填sessionId可选压缩后简报不支持source或signal。源码 memori-compaction.ts 的参数表中projectId被标记为required并额外提供numMessages参数返回结果中包含的近期对话消息条数默认 5仅当用户明确要求更多对话上下文时才建议提高到约 20。工具描述中明确列出不要每轮调用因为每次执行消耗 100 个记忆积分memory credits且压缩不可替代memori_recall的定向检索。压缩后简报的返回结构meta元信息environment环境standing_orders常驻指令state状态active_tasks活动任务open_loops未闭合回路pending_results待处理结果timeline时间线workspace_changes工作区变更continuation续跑指引last_action最后动作next_expected_action下一个预期动作在 memori-compaction.ts 的工具描述中这些字段被进一步展开environment是先前会话中捕获的环境变量上下文standing_orders是必须继续遵守的持久指令state包含active_tasks进行中的工作、open_loops未解决的线程、pending_resultstimeline是 Agent 活动的按时间叙事如有workspace_changes是 Agent 近期对文件或系统的改动continuation给出最后动作与下一预期动作messages则提供近期对话消息的尾部以保证连续性。如何使用压缩后简报把压缩后简报当作 Agent 的恢复状态resume state用它理解Agent 之前运行在什么环境中哪些常驻指令必须继续遵守哪些任务处于活动状态哪些问题仍未解决上一个会话窗口内发生了什么哪些文件、工作区状态或外部系统可能已变化Agent 最后做了什么Agent 接下来应该做什么。重要行为约束压缩后简报用于指导续跑而不是覆盖用户的显式指令在依据操作细节行动之前核验压缩后可能已变化的状态特别关注常驻指令、硬性约束、告警规则、期望的响应格式、未闭合回路、过时警告、下一个预期动作如果简报中包含要求的输出格式除非用户给出更新的指令否则应严格遵循该格式。配额相关的容错在源码中有专门处理memori-compaction.ts 捕获QuotaExceededError返回配额已超限压缩消耗 100 个记忆积分且组织已耗尽召回执行配额的明确错误。典型工作流把四类行为串起来SKILL.md 给出了一段四步的典型工作流也是 Agent 跨会话运转的基线循环会话开始→ 检索摘要memori_recall_summary默认最近 24 小时获取每日简报任务进行中→ 使用定向召回memori_recall窄范围 合法 source/signal 组合记忆缺失或错误→ 发送反馈memori_feedback达到限额→ 优雅降级收窄召回范围、优先高信号记忆、减少重复召回。在 OpenClaw 插件中写入侧是自动闭环的插件在agent_end钩子触发 handleAugmentation提取最近一轮的用户消息、助手回复与工具调用轨迹构建增强载荷后调用memoriClient.augmentation(payload)异步写入后端——因此工作流第 4 步会话结束记忆自动被采集是系统行为无需 Agent 干预。值得注意的是该钩子的挂载前提是配置了allowConversationAccess见 src/index.ts未启用时插件会在启动日志与每轮提示前给出配置指引。记忆质量闭环反馈memori_feedback与系统更新反馈机制memori_feedback用于随时间改进记忆质量Agent 可在任何时刻发送反馈且应在合适的会话结束时发送。SKILL.md 给出的发送时机召回结果无关或缺失关键上下文重要的决策或约束未被捕获记忆质量跨会话退化某些行为效果特别好值得强化。示例指令Agent 收到后应调用工具Send feedback that recall missed a pricing constraint.Tell Memori the daily brief was accurate.Submit a bug report: you didnt remember my preferred language.反馈旨在改进三个维度记忆提取质量extraction、召回相关性recall relevance、摘要准确性summary accuracy。在实现上memori-feedback.ts 的工具描述要求只要用户要求发送反馈、报告 bug、建议功能或抱怨 Memori就必须立即使用本工具参数仅一个必填的content字符串底层调用client.agentFeedback(params.content)成功返回{ success: true, message: Feedback sent successfully. }。系统更新Memori 会持续演进新特性、改进的召回、更好的摘要。SKILL.md 要求 Agent 在更新被暴露时通过系统消息或工具检查更新调整行为以使用新能力有可用的新召回模式时优先采用使用改进后的摘要或分类输出若无需变更则继续正常运行。账户开通与配额治理memori_signup 与 memori_quota账户与 API Keymemori_signupmemori_signup通过 Memori CLI 为用户安全地创建账户并配发 API Key。使用时机用户明确要求注册、创建账户或获取 Memori 的 API Key遇到缺失MEMORI_API_KEY的错误且用户提供了用于获取 Key 的邮箱。行为规范SKILL.md 明确要求必须提供邮箱用户请求注册但未提供邮箱时必须先询问邮箱不得猜测或臆造执行拿到邮箱后运行memori_signup跟进工具会触发底层 CLI 并返回成功/错误消息需转达用户提醒其查收收件箱中的 API Key并指导写入配置~/.openclaw/openclaw.json或.env文件排障若工具以Permission denied、EACCES或command not found失败不要征求用户许可去排查而应立即告知其 CLI 安装损坏或缺失并明确指导在终端执行npm install -g memorilabs/memori修复。实现细节上memori-signup.ts 先用正则校验邮箱格式然后临时目录中执行npm install --prefix ${tmpDir} --no-save memorilabs/memori0.1.12-beta并在.bin下调用memori sign-up email完成注册。配额感知与升级memori_quotamemori_quota用于通过 Memori CLI 检查用户当前的记忆用量与限额。使用时机用户明确询问配额、用量、存储或剩余记忆条数遇到疑似达到记忆上限的错误需在降级行为前确认。行为规范无需参数直接调用memori_quota即可执行工具运行底层 CLI 并返回当前用量与配额跟进清晰转达结果若接近或达到上限说明影响并建议升级排障与 signup 相同的Permission denied/EACCES/command not found处理方式提示运行npm install -g memorilabs/memori。实现上memori-quota.ts 通过require.resolve(memorilabs/memori)定位 SDK 的bin/cli.js用 Node 进程执行quota子命令并注入MEMORI_API_KEY环境变量。配额达到或接近上限时的三级处理a. 优雅降级Degrade gracefully缩小召回范围更短的时间窗口优先高信号记忆决策、约束、关键事实避免不必要或重复的召回调用。b. 告知人工/操作者Inform the human/operator清晰沟通限额对性能的影响SKILL.md 给出的示例话术Memory limits have been reached. I can continue with limited recall, or you can upgrade to restore full functionality.c. 恰当地建议升级Suggest upgrades appropriately仅在性能受影响时提示避免重复或打扰性的消息保持中立、有帮助的措辞。安全与正确性原则SKILL.md 最后给出了四条不可妥协的安全准则这也是 Agent 使用记忆类能力时的通用红线不要编造记忆Do not invent memory记忆与用户冲突时不要假定记忆是对的必要时在行动前核验Verify before acting近期指令的优先级高于召回的记忆Treat recent instructions as higher priority than recalled memory。结合压缩后简报一节简报指导续跑、但不覆盖用户显式指令正是第 4 条在长会话恢复场景的具体化——记忆系统再完备也始终以用户当前意图为最高权威。小结把 SKILL.md 变成 Agent 的记忆操作手册Memori 的设计哲学可以浓缩为一句话写入自动、读取刻意、续跑结构化、质量可反馈。SKILL.md 的价值不在于罗列工具而在于把何时、以何种参数、用哪个工具的决策规则写成了 Agent 可直接遵守的操作手册——精确召回靠(source, signal)组合卡高信号状态感知靠摘要与每日简报长会话恢复靠压缩后简报质量演进靠反馈闭环资源治理靠配额感知与优雅降级。如果你在 OpenClaw 中部署了 memorilabs/openclaw-memori这份文件就是你的 Agent 在每个会话开始时、动手之前的记忆行为宪法。延伸阅读仓库内插件级行为说明见 integrations/openclaw/README.md工具注册与认证分组见 tools/index.ts上下文提取entity/session/provider 归一化见 utils/context.ts召回参数校验的测试证据见 tests/tools/memori-recall.test.ts。【免费下载链接】MemoriMemori is agent-native memory infrastructure. A LLM-agnostic layer that turns agent execution and conversation into structured, persistent state for production systems. Built for enterprise, Memori works with the data infrastructure you already run, no rip-and-replace, and deploys across managed cloud, single-tenant cloud, VPC, and on-premises.项目地址: https://gitcode.com/GitHub_Trending/me/Memori创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考