常设意图
常驻意图(standing intent)是一种事件条件指令,例如“当提到发布候选版本时,提醒我确认回滚负责人”。OpenClaw 将其存储在所属代理的 SQLite 数据库中,并在符合条件的交互回复之前进行检查。
常驻意图属于前瞻性记忆。它们记住当触发条件出现时要做什么;它们不会为某个时钟时间排期工作。
选择正确的意图层级¶
| 意图类型 | 用途 | 示例 |
|---|---|---|
| 基于时间 | 计划任务 | “周五早上 9 点提醒我” |
| 基于事件 | 常驻意图 | “当 Alice 提到发布时,询问回滚事宜” |
| 愿景 | 带有审核日期的 Markdown | “本季度改进发布检查清单” |
将愿景放入 MEMORY.md、项目笔记或其他带有明确审核日期的持续维护型 Markdown 文件中。它们既不是定时任务,也不是事件触发器。
创建基于事件的意图¶
常驻意图是所有者主导的记忆。被 commands.ownerAllowFrom 认可的频道所有者可以使用 intent 工具创建、列出或取消它们;其他发送者不会获得该工具。经过身份验证的 Gateway/Control UI 管理员和本地 CLI 可以查看并取消现有意图,但创建意图需要经过身份验证的频道和发送者身份。如果两者中任一项缺失,OpenClaw 会拒绝创建,并要求操作者从经过身份验证的频道对话中重试。
让代理创建意图,并清晰地命名事件:
代理使用 intent 工具,并附带描述和触发关键词。它还可以将意图限定到某个会话频道标识符或发送者标识符,设置过期时间,减少或增加触发预算,或更改冷却时间。
默认范围是当前频道和发送者。显式使用 anywhere 或 anyone 范围仍需要创建者的发送者身份:匹配钩子无法在后续的频道轮次中安全地强制执行无发送者的所有者主体。
默认值刻意保守:
- 冷却时间:24 小时
- 最大触发次数:3
- 过期时间:90 天
如果需要按时钟时间触发,代理应使用现有的计划任务路径,而不是创建常驻意图。
匹配如何工作¶
在符合条件的用户轮次中,OpenClaw 会对待命中的意图执行确定性的 FTS 关键词预过滤。只有当至少一个已配置触发条目中的每个词项都出现在该轮次中,候选意图才会触发。OpenClaw 还会在一个同步事务中,根据权威的 SQLite 行重新检查频道范围、发送者范围、过期时间、冷却时间和触发预算。每轮匹配最多扫描 256 个作用域内的 FTS 候选,因此嘈杂的触发集不会阻塞回复路径。
匹配路径中不会发生模型调用。命中时,主回复会收到一个有界的隐藏上下文块:
匹配器会增加 fire_count,记录 last_fired_at,并推动意图沿其明确的生命周期移动。已触发的意图只有在冷却时间过后才会重新进入待命状态。当触发预算耗尽时,它变为 done;当超过过期时间时,它变为 expired。过期和冷却维护也会借助现有的 heartbeat 和 cron 回复钩子;OpenClaw 不会添加另一个定时器子系统。
如果匹配在等待数据库准入时 prompt 钩子超时,其迟到的完成无法消耗一次触发。Memory Core 要求主机具备逐处理器(per-handler)的 hookInvocation 能力,并在写入常驻意图之前对其进行检查。不支持的主机会跳过匹配,且不消耗意图,并通过现有钩子错误策略记录 prompt hook invocation support is required; intent matching skipped。共享数据库打开操作以及其他活动调用方会继续正常运行。
TriggerBench 发现,前瞻性记忆的召回会随着上下文增长而衰减,并可能漂移为“始终提醒”的启发式策略(arXiv:2606.23459)。结构化匹配和触发预算使召回独立于会话上下文,同时限制误报。
列出与取消¶
当你想查看常驻意图的状态、范围、过期时间或触发次数时,让代理列出这些意图。
取消始终是显式的。让代理取消某个特定意图;存储的行会变为 cancelled,并且不再触发。OpenClaw 绝不会从普通对话中推断取消。ProEvent 报告指出,主动式系统经常反应过度,并且在事件取消上存在困难(arXiv:2607.17701),因此取消是一种持久状态,而非模型判断。
生命周期状态¶
| 状态 | 含义 |
|---|---|
pending |
已存储但尚未待命 |
armed |
有资格进行匹配 |
fired |
已匹配并等待冷却 |
done |
触发预算已耗尽 |
cancelled |
已显式取消 |
expired |
已到达过期时间 |
常驻意图存储在 agents/<agentId>/agent/openclaw-agent.sqlite 中。它们不添加任何配置键,也不会创建任何 sidecar 文件。
相关文档¶
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw