修复 OpenClaw 默认主会话上的保留和回忆

如果您需要修复 OpenClaw 默认主会话上的保留和回忆,最近的 OpenClaw 集成更新是您需要了解的。它修复了一个微妙的默认不匹配,该不匹配可能会导致 agent:main:main 会话被跳过,即使运行时的默认库粒度已经暗示它们应该被保留。结果看起来像是缺少内存,但根本问题是配置逻辑。在验证修复时,请保持打开 OpenClaw 集成文档、配置指南、回忆 API 指南 和 文档首页。
快速答案
- 较旧的 OpenClaw 会话可能会在默认
agent:main:main路径上静默跳过保留和回忆,因为两个默认路径对代理银行业不一致。 - 修复使默认动态库粒度与跳过逻辑一致,因此未设置的配置现在的行为就像运行时已经打算的那样。
- 该集成还添加了受限制的信息级别跳过日志,这使得查看会话何时被故意跳过变得容易得多。
为什么默认主会话被跳过
bug 是两段逻辑之间的不匹配。库推导路径已经默认为 ['agent', 'channel', 'user'],这意味着代理范围的银行业有效地是开启的。但身份跳过路径将未设置的值视为代理银行业关闭。
这意味着即使库推导路径已准备好路由它们,agent:main:main 会话对于跳过逻辑看起来无效。在实践中,保留和回忆可能会在没有明显错误的情况下消失。
修复改变了什么
集成现在共享一个默认动态库粒度常数,并在两个地方使用它。当设置未设置时,它还将代理银行业检查默认为 true,这与用户在其他地方已经获得的运行时行为相匹配。
实际效果很简单:如果您留下 dynamicBankGranularity 未设置,默认主会话不再会通过矛盾的分支并被静默跳过。
如果您想要明确的行为,配置什么
如果您想使行为明确,请使用与固定默认值相匹配的动态库粒度:
{
"dynamicBankGranularity": ["agent", "channel", "user"]
}
如果您根本不想要动态路由,请改为固定一个静态库:
{
"dynamicBankId": false,
"bankId": "team-memory"
}
这两个设置非常不同,但两者都有效。这个修复之前的问题不是任何模型都错了。问题在于未设置的配置可能被插件的不同部分以不同的方式解释。
如何验证保留再次工作
按顺序检查工作流:
- 更新集成后重新启动 OpenClaw 端
- 使用正常的主会话,而不是具有异常路由的一次性测试表面
- 触发应该保留某些持久内容的转折
- 检查目标库是否接收新内存
- 如果仍然没有,查看新的信息级别跳过日志
这些日志很重要,因为它们最终使跳过行为可被发现,而无需强制调试模式。如果插件仍然跳过一个会话,原因现在应该足够明显可以采取行动。
其他缺少回忆的原因仍然重要
这个修复涵盖了一类特定的静默跳过。它不能消除内存看起来不存在的所有其他原因。
您仍然应该检查排除的提供程序、无状态会话模式、缺少的发送者身份或与您正在检查的会话不匹配的库作用域。一旦 OpenClaw 集成文档、回忆 API 指南 和 保留 API 指南 都在讨论相同的会话和库边界时,周围的行为就更容易理解了。
常见问题
我现在需要手动设置 dynamicBankGranularity 吗?
不一定。修复使未设置的默认值正确表现。只有当您想让路由策略在配置中明确时,才明确设置它。
为什么新的跳过日志受到限制?
因为一个破碎的路由规则可能会导致每个转折都泛滥。受限制的信息日志在每个会话中一次性表面问题,而不会淹没操作员。
这只影响保留吗?
不。相同的不匹配可能会影响保留和回忆行为,这就是为什么指南一起讨论两者。
