






















@@ -0,0 +1,146 @@
1+---
2+summary: "Inferred follow-up memory for check-ins that are not exact reminders"
3+title: "Inferred commitments"
4+sidebarTitle: "Commitments"
5+read_when:
6+ - You want OpenClaw to remember natural follow-ups
7+ - You want to understand how inferred check-ins differ from reminders
8+ - You want to review or dismiss follow-up commitments
9+---
10+11+Commitments are short-lived follow-up memories. When enabled, OpenClaw can
12+notice that a conversation created a future check-in opportunity and remember
13+to bring it back later.
14+15+Examples:
16+17+- You mention an interview tomorrow. OpenClaw may check in afterward.
18+- You say you are exhausted. OpenClaw may ask later whether you slept.
19+- The agent says it will follow up after something changes. OpenClaw may track
20+ that open loop.
21+22+Commitments are not durable facts like `MEMORY.md`, and they are not exact
23+reminders. They sit between memory and automation: OpenClaw remembers a
24+conversation-bound obligation, then heartbeat delivers it when it is due.
25+26+## Enable commitments
27+28+Commitments are off by default. Enable them in config:
29+30+```bash
31+openclaw config set commitments.enabled true
32+openclaw config set commitments.maxPerDay 3
33+```
34+35+Equivalent `openclaw.json`:
36+37+```json
38+{
39+"commitments": {
40+"enabled": true,
41+"maxPerDay": 3
42+ }
43+}
44+```
45+46+`commitments.maxPerDay` limits how many inferred follow-ups can be delivered
47+per agent session in a rolling day. The default is `3`.
48+49+## How it works
50+51+After an agent reply, OpenClaw may run a hidden background extraction pass in a
52+separate context. That pass looks only for inferred follow-up commitments. It
53+does not write into the visible conversation and it does not ask the main agent
54+to reason about the extraction.
55+56+When it finds a high-confidence candidate, OpenClaw stores a commitment with:
57+58+- the agent id
59+- the session key
60+- the original channel and delivery target
61+- a due window
62+- a short suggested check-in
63+- enough source context for heartbeat to decide whether to send it
64+65+Delivery happens through heartbeat. When a commitment becomes due, heartbeat
66+adds the commitment to the heartbeat turn for the same agent and channel scope.
67+The model can send one natural check-in or reply `HEARTBEAT_OK` to dismiss it.
68+69+OpenClaw never delivers an inferred commitment immediately after writing it.
70+The due time is clamped to at least one heartbeat interval after the commitment
71+is created, so the follow-up cannot echo back in the same moment it was
72+inferred.
73+74+## Scope
75+76+Commitments are scoped to the exact agent and channel context where they were
77+created. A follow-up inferred while talking to one agent in Discord is not
78+delivered by another agent, another channel, or an unrelated session.
79+80+This scope is part of the feature. Natural check-ins should feel like the same
81+conversation continuing, not like a global reminder system.
82+83+## Commitments vs reminders
84+85+| Need | Use |
86+| ----------------------------------------------- | ---------------------------------------- |
87+| "Remind me at 3 PM" | [Scheduled tasks](/automation/cron-jobs) |
88+| "Ping me in 20 minutes" | [Scheduled tasks](/automation/cron-jobs) |
89+| "Run this report every weekday" | [Scheduled tasks](/automation/cron-jobs) |
90+| "I have an interview tomorrow" | Commitments |
91+| "I was up all night" | Commitments |
92+| "Follow up if I do not answer this open thread" | Commitments |
93+94+Exact user requests already belong to the scheduler path. Commitments are only
95+for inferred follow-ups: the moments where the user did not ask for a reminder,
96+but the conversation clearly created a useful future check-in.
97+98+## Manage commitments
99+100+Use the CLI to inspect and clear stored commitments:
101+102+```bash
103+openclaw commitments
104+openclaw commitments --all
105+openclaw commitments --agent main
106+openclaw commitments --status snoozed
107+openclaw commitments dismiss cm_abc123
108+```
109+110+See [`openclaw commitments`](/cli/commitments) for the command reference.
111+112+## Privacy and cost
113+114+Commitment extraction uses an LLM pass, so enabling it adds background model
115+usage after eligible turns. The pass is hidden from the user-visible
116+conversation, but it can read the recent exchange needed to decide whether a
117+follow-up exists.
118+119+Stored commitments are local OpenClaw state. They are operational memory, not
120+long-term memory. Disable the feature with:
121+122+```bash
123+openclaw config set commitments.enabled false
124+```
125+126+## Troubleshooting
127+128+If expected follow-ups are not appearing:
129+130+- Confirm `commitments.enabled` is `true`.
131+- Check `openclaw commitments --all` for pending, dismissed, snoozed, or expired
132+ records.
133+- Make sure heartbeat is running for the agent.
134+- Check whether `commitments.maxPerDay` has already been reached for that
135+ agent session.
136+- Remember that exact reminders are skipped by commitment extraction and should
137+ appear under [scheduled tasks](/automation/cron-jobs) instead.
138+139+## Related
140+141+- [Memory overview](/concepts/memory)
142+- [Active memory](/concepts/active-memory)
143+- [Heartbeat](/gateway/heartbeat)
144+- [Scheduled tasks](/automation/cron-jobs)
145+- [`openclaw commitments`](/cli/commitments)
146+- [Configuration reference](/gateway/configuration-reference#commitments)
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。