> ## Documentation Index
> Fetch the complete documentation index at: https://openclaw.zhcndoc.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 驻留意图

驻留意图是一种基于事件条件的指令，例如“当提到发布候选版本时，提醒我确认回滚负责人”。OpenClaw 将其存储在所属代理的 SQLite 数据库中，并在符合条件的交互式回复之前进行检查。

驻留意图是一种前瞻性记忆。它们记住当触发条件出现时该做什么；它们不是为某个时钟时间安排工作。

## 选择合适的意图层级

| 意图   | 用途                            | 示例                     |
| ---- | ----------------------------- | ---------------------- |
| 基于时间 | [计划任务](/automation/cron-jobs) | “提醒我周五上午 9 点”          |
| 基于事件 | 持续意图                          | “当 Alice 提到发布时，询问回滚事宜” |
| 目标愿望 | 带有复查日期的 Markdown              | “在本季度改进发布检查清单”         |

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

## 创建基于事件的意图

常驻意图是面向所有者的记忆。只有 `commands.ownerAllowFrom` 认可的命令所有者才能看到或使用 `intent` 工具来创建、列出或取消它们；其他发送者不会收到该工具。

让代理创建该意图，并清楚地命名事件：

```text theme={"theme":{"light":"min-light","dark":"min-dark"}}
当有人提到发布检查清单时，提醒我确认回滚负责人。
```

代理使用带有描述和触发关键词的 `intent` 工具。它还可以将该意图限定为某个对话频道标识符或发送者标识符，设置过期时间，减少或增加触发预算，或者更改冷却时间。

默认值是刻意设置得较为保守的：

* 冷却时间：24 小时
* 最大触发次数：3
* 过期时间：90 天

对于具体的时钟时间，代理应使用现有的计划任务路径，而不是创建常驻意图。

## 匹配工作原理

在一个符合条件的用户轮次中，OpenClaw 会对已武装的意图执行确定性的 FTS 关键词预筛选。只有当至少一个已配置触发项中的每个词项都出现在该轮次中时，候选项才会触发。OpenClaw 还会在一个同步事务中，针对权威 SQLite 行重新检查频道范围、发送者范围、过期时间、冷却时间以及触发预算。匹配过程每轮最多扫描 256 个带作用域的 FTS 候选项，因此，嘈杂的触发集合不会阻塞回复路径。

匹配路径中不会发生模型调用。命中后，主回复会接收到一个有界的隐藏上下文块：

```text theme={"theme":{"light":"min-light","dark":"min-dark"}}
待处理意图（创建于 2026-07-27）：确认回滚负责人。
```

匹配器会递增 `fire_count`，记录 `last_fired_at`，并推动该意图经过其显式生命周期。一个已触发的意图只有在冷却期结束后才会再次进入武装状态。当其触发预算耗尽时会变为 `done`，当其过期时间到达时会变为 `expired`。过期和冷却维护也会借用现有的 heartbeat 和 cron 回复钩子；OpenClaw 不会额外添加另一套定时器子系统。

TriggerBench 发现，随着上下文增长，预期召回会衰减，并可能漂移为一种始终提醒的启发式方法（[arXiv:2606.23459](https://arxiv.org/abs/2606.23459)）。结构化匹配和触发预算使召回与对话上下文无关，同时限制误报。

## 列出和取消

当你想检查待处理意图的状态、范围、过期时间或触发次数时，请让代理列出这些意图。

取消始终是显式的。请让代理取消某个特定意图；存储的行会移动到 `cancelled`，并且不再能够触发。OpenClaw 绝不会从普通对话中推断取消。ProEvent 报告称，主动系统经常过度反应，并且难以处理事件取消（[arXiv:2607.17701](https://arxiv.org/abs/2607.17701)），因此取消是持久状态，而不是模型判断。

## 生命周期状态

| 状态          | 含义         |
| ----------- | ---------- |
| `pending`   | 已存储但尚未激活   |
| `armed`     | 符合匹配条件     |
| `fired`     | 已匹配，正在等待冷却 |
| `done`      | 触发预算已耗尽    |
| `cancelled` | 已明确取消      |
| `expired`   | 已达到过期时间    |

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

## 相关

* [内存概览](/concepts/memory)
* [用户模型](/concepts/user-model)
* [计划任务](/automation/cron-jobs)
