选择合适的意图层级
将目标愿望放在
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 中。它们不会添加配置键,也不会创建旁路文件。