Skip to main content
驻留意图是一种基于事件条件的指令,例如“当提到发布候选版本时,提醒我确认回滚负责人”。OpenClaw 将其存储在所属代理的 SQLite 数据库中,并在符合条件的交互式回复之前进行检查。 驻留意图是一种前瞻性记忆。它们记住当触发条件出现时该做什么;它们不是为某个时钟时间安排工作。

选择合适的意图层级

将目标愿望放在 MEMORY.md、项目笔记或其他受维护的 Markdown 文件中,并明确写明复查日期。它们既不是定时任务,也不是事件触发器。

创建基于事件的意图

常驻意图是面向所有者的记忆。只有 commands.ownerAllowFrom 认可的命令所有者才能看到或使用 intent 工具来创建、列出或取消它们;其他发送者不会收到该工具。 让代理创建该意图,并清楚地命名事件:
代理使用带有描述和触发关键词的 intent 工具。它还可以将该意图限定为某个对话频道标识符或发送者标识符,设置过期时间,减少或增加触发预算,或者更改冷却时间。 默认值是刻意设置得较为保守的:
  • 冷却时间:24 小时
  • 最大触发次数:3
  • 过期时间:90 天
对于具体的时钟时间,代理应使用现有的计划任务路径,而不是创建常驻意图。

匹配工作原理

在一个符合条件的用户轮次中,OpenClaw 会对已武装的意图执行确定性的 FTS 关键词预筛选。只有当至少一个已配置触发项中的每个词项都出现在该轮次中时,候选项才会触发。OpenClaw 还会在一个同步事务中,针对权威 SQLite 行重新检查频道范围、发送者范围、过期时间、冷却时间以及触发预算。匹配过程每轮最多扫描 256 个带作用域的 FTS 候选项,因此,嘈杂的触发集合不会阻塞回复路径。 匹配路径中不会发生模型调用。命中后,主回复会接收到一个有界的隐藏上下文块:
匹配器会递增 fire_count,记录 last_fired_at,并推动该意图经过其显式生命周期。一个已触发的意图只有在冷却期结束后才会再次进入武装状态。当其触发预算耗尽时会变为 done,当其过期时间到达时会变为 expired。过期和冷却维护也会借用现有的 heartbeat 和 cron 回复钩子;OpenClaw 不会额外添加另一套定时器子系统。 TriggerBench 发现,随着上下文增长,预期召回会衰减,并可能漂移为一种始终提醒的启发式方法(arXiv:2606.23459)。结构化匹配和触发预算使召回与对话上下文无关,同时限制误报。

列出和取消

当你想检查待处理意图的状态、范围、过期时间或触发次数时,请让代理列出这些意图。 取消始终是显式的。请让代理取消某个特定意图;存储的行会移动到 cancelled,并且不再能够触发。OpenClaw 绝不会从普通对话中推断取消。ProEvent 报告称,主动系统经常过度反应,并且难以处理事件取消(arXiv:2607.17701),因此取消是持久状态,而不是模型判断。

生命周期状态

持续意图存储在 agents/<agentId>/agent/openclaw-agent.sqlite 中。它们不会添加配置键,也不会创建旁路文件。

相关