本页内容
本页内容
会话和内存
内存来源和删除
OpenClaw 记录通过自动会话摄取和历史会话回填暂存的内存的源会话沿袭。 openclaw memory forget 使用该谱系来删除跟踪的条目和相关工件,并将所选会话记录为已忘记的会话,以便以后的摄取不会恢复它们。
两个控件有不同的用途: 准入策略 从未来的梦想摄取和会话回填中排除匹配会话; forget 从选定的会话中删除可识别的工件。也不是全面删除特工所看到或写过的所有内容。
这些控件属于捆绑的 memory-core 插件。其他内存插件可能会公开不同的命令和删除行为。
预览并忘记会话
使用明确的代理,以便您知道要更换哪家商店。列出其会话以查找完整的会话密钥或 ID。会话 ID 准确且区分大小写;缩写不选择更长的ID:
检查 sessionResolutions 的预期会话、entryKeys 和 mixedLineageEntryKeys 的整个条目删除以及 artifacts 的受影响商店。分别查看curatedWrites和untargetableEntryKeys;也没有留下完整的数据清单。
当选择正确后,重复相同的命令,不带 --dry-run:
没有额外的确认提示或 --apply 标志。预览是根据当前状态计算的,而不是保存为删除计划。在敏感清理期间暂停直接代理编辑和外部编写器;他们不共享内存插件的突变锁。之后再次运行预览以检查剩余的可归因工件。
如果删除失败,请解决报告的存储或文件系统错误,重新运行相同的命令,然后使用 --dry-run 重复该命令。失败可能导致部分清理。清除会保留语料库和起源证据,直到相关工件被清理为止;不要手动删除该证据来清除错误。
完整的标志、选择器语义和报告字段位于 memory forget 中。
记录了什么谱系
三个记录有不同的用途:
| 记录 | 粒度 | 编写者 | 用于 |
|---|---|---|---|
| 块来源 | 索引块 | 索引时的分类代码 | 信任门控和召回框架 |
| 参赛起源 | 跟踪条目 | 会话摄取、回填和整合 | 查找源自选定会话的条目 |
| 策划写入记录 | 内存文件 | 内存写观察者 | 识别清除期间要查看的文件 |
策划写入查找仅读取请求的物理工作空间。另一个工作区记录中损坏的 JSON 不会阻止该查找;所选工作区中实时记录中损坏的 JSON 仍报告存储错误。
Chunk originance 描述源类和会话类型。相反,条目源将条目密钥与 SQLite 中的代理和源会话相关联。 MEMORY.md 中的提升标记将可见条目连接到这些原始行。
当 dreaming 合并或取代跟踪的条目时,协调会将父项的起源转移到幸存的条目。它在模型调用周围的代码中运行,包括共享工作空间的参与代理;该模型不拥有原始行。
在报告稍后的文件错误之前,文件替换可能会成功。在这种情况下,或者当发布不确定时,合并会保留替代品的来源,以便以后的 memory forget 仍然可以瞄准它。它不会自动重试不确定的替换作为附加。
被替换条目的起源仍然存在,而保留的重写原像仍然引用其升级标记。仅当实时条目、保留的原像、日记摘录和索引快照不再引用这些源时,备份轮换才会修剪这些源。
新的合并历史摘录保留了替换条目的谱系,包括其合并或取代的父条目。即使在备份轮换之后,它们的原始行仍然保留,而这些摘录仍然保留。日记历史记录不会自动过期;较长的修订历史可以保留不断增长的原始集。
当回填合并多个会话中的相同声明时,它会保留每个来源,而不将重复的声明视为额外证据。会话回填日记行还带有在出版前与来源来源相关的标记。这包括 REM 事实、反思和组合声明,即使显示的引文被缩短或稍后的应用步骤失败也是如此。忘记任何贡献会话会删除整个标记行,而不是不相关的日记行。早期未标记的回填日记不会追溯获得血统。
覆盖范围并不普遍。手写笔记、直接代理编辑以及在谱系追踪之前上演的条目可能缺乏条目起源。该报告的 untargetableEntryKeys 列出了 促销标记,这些标记在所选代理的商店中没有来源,并非所有未跟踪的散文。尽管明确的会话引用或确切的语料库引用可能仍与文件清理相匹配,但此类条目不能仅按谱系进行选择。
Admission:将源保留在内存之外
要使 Gmail 挂钩会话远离 dreaming 摄取和会话回填:
IMAP 使用精确的钩子源 email; Gmail 挂钩使用 gmail。包含两个值以排除两个来源。通用 Webhook 使用 webhook。
您还可以排除 channel/plugin 标识符(不是房间 ID)或聊天类型。空或省略的列表不会添加任何策略排除。任何列表中的匹配都会排除整个会话;值与记录的会话元数据匹配,而不是对话中的单词。
两条路径都在阅读记录之前检查策略。自动摄取还会在其摄取检查点中记录排除原因。删除匹配规则会使会话有资格进行以后的扫描,但须遵守其他信任和摄取门。记录为已忘记的会话仍被排除。
政策是前瞻性的:它不会删除现有的语料库、暂存的候选人或晋升的条目。对现有归因数据使用 memory forget。有关精确匹配规则和排除原因,请参阅 内存配置。
入场边界
| 路径 | 配置的准入排除 |
|---|---|
| 自动做梦摄取 | 在读取成绩单之前应用 |
说明书 session-backfill |
在预览、REM 和应用模式中应用 |
| 原始转录本索引 | 未应用 |
| 直接写入和会话挂钩 | 未应用 |
匹配需要保留会话元数据;缺失字段与规则不匹配。两个控件都遵循配置的 session.store,包括自定义和共享存储,同时保持选择范围为所选代理。较旧的保留记录可能仅具有粗略的 webhook 分类;如果没有原始的确切来源,OpenClaw 不会推断 email 或 webhook 进行匹配。通过完整的 ID 显式选择这些会话。
自动做梦会单独跳过保留的档案。要从回填和转录索引中排除存档会话,请显式忘记其完整会话 ID。即使以前的频道、聊天类型或挂钩源元数据不再可用,这些路径也会检查遗忘的会话记录。
排除的会话仍然可以编辑 MEMORY.md、USER.md 或其他工作区文件(如果其工具允许)。当您需要阻止这些写入时,限制相关文件、shell 和外部harness功能,并检查启用的内存写入挂钩。准入策略不是文件系统权限。报告观察到的写入以供审查,而不给出每个条目的沿袭。
Deletion:清除会话产生的内容
选择器识别 sessions,而不是关于一个人的个人事实。 --participant 选择与录制的演员 ID 的会话;它不会在内存文本中搜索名称。 --hook-source 选择与所记录的外部内容源的会话。两者都需要保留元数据。显式 ID 和密钥还可以解析保留的档案。
具有任何选定来源的跟踪条目将被整个删除,即使它也具有未选择的来源。这些删除出现在 mixedLineageEntryKeys 中。清洗并不要求模型从合并的散文中减去一个人的贡献。幸存的源稍后可能支持新条目,但不能保证自动重建。
清理涵盖匹配升级条目、会话语料库行、内存索引块及其完整 text/vector 行、短期状态、摄取重复数据删除状态和梦想重写原像。非空会话选择还会清除所选代理的整个嵌入缓存,包括尚未链接到已发布块的未完成重建的结果。不相关的已发布索引条目仍然可用;稍后的索引可能需要重新生成缓存的嵌入。试运行报告此删除但不应用它。
清除还会从扫描的内存文件和梦想日记中删除包含精确选择的语料库片段的整行。 命令参考 描述了计数器和选择限制。
Purged 会话保持清除状态
真正的清除会将每个选定的会话记录为在选定代理的 SQLite 数据库中被遗忘,然后再删除其工件。自动摄取、历史会话回填和转录索引,包括memory index --force,检查这些记录。自动摄取记录原因forgotten。
成绩单更新仅检查所选会话的遗忘会话成员资格。初创公司追赶、梦想和回填以有限批次检查其候选者,在整个选择中保留排除项。
内存插件通过其暂存和文件突变来协调清除。如果在发布之前删除了跟踪的源条目或先前的日记上下文,则将跳过待处理的梦境叙述。这不会追溯识别旧日记条目中未跟踪的释义。带有引用标记的历史合并亮点也缺乏可靠的删除边界。当报告识别出该格式的剩余亮点时,会以 refusals 发出警告;手动查看它们。该警告并不是所有未追踪历史的清单,并且丢失的历史谱系也不会被重建。
在发布块或缓存的嵌入之前再次进行索引检查,因此在清除之前准备的结果无法恢复被遗忘的会话数据或过时的内存文件快照。受影响的索引运行报告其源已更改;重新运行 openclaw memory index --agent <agent-id> 以索引当前数据。
重复清除不会解除该排除。它适用于该代理存储中的那些会话 ID,而不适用于与同一个人或挂钩源的未来对话。在 准入边界 内保留未来匹配会话的准入规则。
删除不涵盖的内容
- 原始成绩单和档案。 内存清理将它们留在会话存储中。 会话删除是一个单独的生命周期操作,通常保留已删除的转录本存档。请勿将任一命令视为所有对话副本已被删除的证据。
- 未跟踪的旧记忆。 没有原始行意味着没有基于谱系的删除。新的会话回填保留了起源,但它不会追溯地为候选者提供沿袭,也不会重写其起源在旧版本中丢失的备份。分别检查;先前的清除不会自动修复。
- 自由形式编辑。
curatedWrites报告使用relativePath和observedAt识别的写入或写入尝试。该记录本身不会删除文件或识别起作用的行。支持的 write/edit/patch 转录记录补充了最新的文件级观察者记录,但可以包括不成功的尝试。未完全跟踪任意 shell 写入和外部编辑。 - 释义和其他副本。 准确的语料库引用可以被删除,但未跟踪的释义、导出、外部备份、其他插件的存储和独立复制的文件不在此清理范围内。报告的整理文件仍然可能会丢失与跟踪条目或确切引用匹配的行。
- 其他座席。 选择和遗忘会话记录针对每个座席。对每个相关座席重复审核,包括共享工作空间的座席;一位智能体的报告并未证明每个索引都是干净的。
空预览意味着这些选择器和匹配规则找不到更多工件。没有留下任何相关信息的不是证书。
端到端地清除人或源
对于参与者,从每个相关代理中的预览开始:
在删除之前验证已解析的会话 ID--dry-run。这将删除源自的跟踪条目这些会话中的任何内容,不仅仅是该参与者创作的消息。如果存档中缺少参与者元数据,请添加其显式元数据--session <id-or-key>选择器。
对于源,使用其记录的钩子标识符:
应用审核的选择后,检查保留的文件和未跟踪的内存,分别处理转录和存档保留,然后重新运行预览。如果来自该源的未来会话也应该远离梦想摄取和会话回填,则添加准入规则。