2026-08-01T13:20:16.023Z
OpenClaw 内存:验证写,索引,搜索和重启
审计可持续的写作,索引新鲜度,定检索和新会议决策,而不会出口内存内容.
只有四种不同的说法是正确的时,OpenClaw内存才是健康的:预期的记录是写入持久存储,当前的索引覆盖写入,检索返回正确的源,并且一个新的会议仍然正确地应用了决定. 在磁盘上的Markdown文件只证明了第一个要求. 一个成功的搜索只证明了一些索引的部分匹配. 使用内容最小化的审计,将文字存储在主机上. 记录不透明的ID,本地比较结果,时间标签和源;不要出口提示,注释内容,绝对路径或原始搜索摘录. 操作员应该能够区分一个缺失的写字,陈旧的索引,错误的检索和丢失的决定,而不是将四个都崩成 记忆被打破. 将OpenClaw内存视为四个独立的证明 目前的OpenClaw内存概述将内存描述为代理工作空间中的简单的Markdown. MEMORY.md 是选定的长期层,而在 memory/ 下的日期文件包含了详细的日常文本. 模型记得到达磁盘的内容;没有隐藏的持久状态可以挽救遗漏的写字. 这种设计创造了有用的检查点: 1. 写证据: 预期的文件存在,其本地内容与原本的版本匹配. 2. 索引证明: 内存后端已经索引了当前源快照而不是之前的快照. 3. 检索证明: 一个查询返回预期的文件和行范围,而不是来自其他地方的合理句子. 4. 决策证明: 经过一个实际的会议界限,代理遵循保存的决策及其行动界限. 这些证据独立失败. 在指数仍然脏的时候,一个笔记可以存在. 索引可能是当前的,而查询低于配置的分数. 检索可以找到正确的通道,而新的会议忽略了其过期状态或所有者. 相反,一个会话可能会正确地回答,因为同样的事实仍然存在于其对话环境中, 因此,合理的违规行为是个阶段性的判决. 停止在第一个失败的层,只修复那层. 如果索引已过时,不要重写内存,如果记录从未持续,不要重建索引. 证明没有输出内存的写法 给每个对行动敏感的记录一个不透明的ID,如 decision 7f3b ,加上需要以后采取安全行动的字段:所有者,有效状态,过期或解锁状态,以及禁止行动. 身份证不是秘密,也不透露决定. 在源头,计算当前记录是否与预期的本地版本相匹配. 仅出口比较: 不要向远程医疗机构发送短短或敏感的短短信. 低气的文字可以猜测和哈希. 在主机上保持消化,在稳定的指纹必须离开过程边界时使用键式HMAC,或者只报告布鲁式比较和不透明的记录ID. 一个文件系统写回复成功不够. 然后比较实际存储的字节. 如果预计写作将在主机重新启动中存活,请确认存储位置为该部署持续;即使写作调用成功,也可以消失的容器本地工作空间. 同样的规则适用于 MEMORY.md 切割. OpenClaw保持一个超大文件的完整性,而注入启动链接的副本可能会被缩小. 文件存在仍然存在,但决定证明可能失败,因为所需的输入未到达新的会议. 记忆概述建议在涉及启动带限制时检查文本细节或医生输出. 在信任检索之前证明索引新鲜性 OpenClaws 存储器搜索文档解释说,内置后端可以结合向量相似性和BM25关键字匹配. 它还记录了会议启动,搜索和通过文件监视器的自动同步. 这些机制减少了老旧的窗户;它们不会使新鲜度无法观察到. 从状态开始: 其他国家 deep 探测器检查嵌入提供商和语义搜索路径, 检查至少: 商店是否脏; 索引文件和零件数量; 选择的供应商和模型; 提供FTS的可用性; 矢量存储和语义搜索可用性; 扫描问题和索引身份. 在OpenClaw 2026.7.1 2 上,在本调查期间的一项现场仅读探测器报告了有效的内置索引身份和可用的词汇和语义路径,同时也报告了 dirty: true . 这种组合很重要:一个工作的嵌入探测器不能证明最新的音符是索引的. 如果源是正确的,但商店是脏的, 保留强制重建一个无效的身份,改变的分块或嵌入配置,腐败,或不能融合的增量同步: 记忆 OpenClaw 记忆 CLI 参考区分了这些操作: status index 在污染时重新索引,而 index force 则执行完整的重建. 处理供应商中断为 search unavailable ,而不是空格内存. 如果配置嵌入提供商失败时,记录的行为是故意明确的;它不应该默默证明没有相关记录的存在. 通过决定探测器重新启动边界 搜索一个不透明的检索密钥,是测试记录唯一的,然后需要一个固定的结果: 通过检索证明包含预期的源类型,文件引用和行范围. 不要通过,因为结果的文字听起来是正确的. 混合搜索可能会返回语义相关的注释,重复的每日输入可能会将旧版本置于当前决定之上. 现在要跨越一个真正的会议界限. 在同一个对话中第二次提示不是重新启动测试,因为原始指令可能仍然在文本中. 通过运行时间的正常会议机制启动一个新的会议,要求一个有限的决策调查,并与保存的合同进行比较. 例如,如果持久的说明说,直到批准 A 42 ,迁移只需设计,调查应该询问是否可以现在开始实施. 预期的结果是 WAIT FOR A 42 等决策代码,而不是私票的字面上报价. 记录: 这样测试了有用的连续性,而不是回忆影院. 一个模型可以转换一个笔记,同时放下了安全的权威界限. 它也会偶然做出正确的决定. 保持探测器窄,在相关配置变化后重复,并包括未达到解锁条件的负值. 再播放无内容的9例审计 附带的 memory health cases.json 装置没有内存文本. 它为 evaluate openclaw memory health.mjs 提供了9个合成观测,每个终端状态都有一个: 复制的总结是: 分类器使用严格的顺序. 它在索引状态之前检查持久存在和本地平等;搜索可用性之前检查索引状态;搜索可用性之前检查;新会议决定之前检查. 这可以防止误导性修复. 重新索引不能创建缺失记录. 重写记录不能恢复一个失败的嵌入提供商. 一个高得分的击球不能证明连续重启. 通过真实的不透明ID和本地布鲁尔语来调整装置. 添加一个只能阅读的工作空间,一个从旧版本中构建的索引,错误日期的注释的结果,一个缩短的启动链文件,一个不可用的嵌入服务提供商,一个只使用关键字的倒退以及已过期批准的决定. 保持原始笔记和原始搜索结果在共享的远程测量中. 使用明确未知的状态 紧的操作规则是: 标记 OpenClaw 记忆只有当耐用记录在本地匹配时,当前指数覆盖它,检索对预期来源进行结,并且一个新的会议产生预期的局限决定时才会验证. 其他一切都应该保持一个非绿色的状态. search unavailable 是不是 retrieval miss . restart unverified 是不是 continuity failed . 显而易见的未知比一般红色状态更有用,因为它可以识别下一个安全测试,而不会让代理发明缺失的文本. 这项审计仍有限制. 局部比较只能验证在测试组中包含的记录. 一个被泄露的宿主可以伪造这张信和证据. 检索探测器测量一个查询和一个排名配置. 一个相匹配的决策代码并不能证明每一个细微细节都存活下来, 使用存储和索引的确定性检查,然后只花费模型调用来验证不能从文件和数据库状态的行为. Sidewisp 目前处于私密预览阶段。 它旨在在在现有代理运行时间周围提供健康层,但生产OpenClaw适配器,现场代理健康收集和自动恢复都没有在当前的网站存储库中运送. 现在可以实现的四个证据审计模式,而不是说Sidewisp目前监控或修复OpenClaw内存. 如果存储,检索和决策健康之间的分离符合您想要运行代理的方式,请加入Sidewisp私人预览. 在此之前,请把比较放在本地,让重新启动是真实的,