惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
H
Help Net Security
N
Netflix TechBlog - Medium
Apple Machine Learning Research
Apple Machine Learning Research
P
Proofpoint News Feed
A
About on SuperTechFans
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
宝玉的分享
宝玉的分享
aimingoo的专栏
aimingoo的专栏
F
Fortinet All Blogs
博客园 - 【当耐特】
Microsoft Security Blog
Microsoft Security Blog
Martin Fowler
Martin Fowler
I
InfoQ
Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
Engineering at Meta
Engineering at Meta
腾讯CDC
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog RSS Feed
U
Unit 42
The Cloudflare Blog
Y
Y Combinator Blog

Recent Commits to openclaw:main

test: merge chat side-result checks · openclaw/openclaw@ddd2c2a test: merge cron history checks · openclaw/openclaw@f7eb746 test: merge responsive navigation shell checks · openclaw/openclaw@c2e4b47 docs(changelog): add codex oauth fixes · openclaw/openclaw@628e6cd test: merge navigation routing cases · openclaw/openclaw@5d8cecb Tests: mock channel registry bundled fallback · openclaw/openclaw@2b08233 Secrets: avoid broad web search discovery for single plugin config · openclaw/openclaw@a464f59 test: merge config view browser checks · openclaw/openclaw@20cf511 fix(status): align oauth health with runtime · openclaw/openclaw@eed7116 feat: add macOS screen snapshots for monitor preview (#67954) thanks … · openclaw/openclaw@f377db1 fix: report shared auth scopes in hello-ok (#67810) thanks @BunsDev · openclaw/openclaw@0b6c39b Auto-reply: avoid eager bundled route fallback · openclaw/openclaw@3ea1bf4 Tests: narrow session binding contract setup · openclaw/openclaw@54e4e16 fix(macOS): enable undo/redo in webchat composer text input (#34962) · openclaw/openclaw@00951dc Tests: speed up channel setup promotion · openclaw/openclaw@82b529a Docs: refresh agent instructions · openclaw/openclaw@5775fe2 fix(auth): serialize OAuth refresh across agents to fix #26322 (#67876) · openclaw/openclaw@8e79080 test: allow ollama public surface boundary test · openclaw/openclaw@7d4f1a6 Docs: add test performance guardrails · openclaw/openclaw@89706d3 Tests: restore context-engine usage proof · openclaw/openclaw@e4c4f95 Tests: slim context engine runtime coverage · openclaw/openclaw@74c198f ci: retry failed custom checkouts · openclaw/openclaw@0ee5baf test: trim duplicate provider auth onboarding cases · openclaw/openclaw@1ffc02e matrix: fix sessions_spawn --thread subagent session spawning (#67643) · openclaw/openclaw@1ce2596 test: reduce auth choice fixture churn · openclaw/openclaw@857b9cd test: mock health status config boundaries · openclaw/openclaw@9d5ab4a test: mock onboard config io boundary · openclaw/openclaw@299694d test: mock legacy state plugin boundaries · openclaw/openclaw@2713089 test: mock channel install boundaries · openclaw/openclaw@b945248 test: mock doctor preview channel boundaries · openclaw/openclaw@b1a3ad4
Docs: document inferred commitments · openclaw/openclaw@d...
vignesh07 · 2026-04-30 · via Recent Commits to openclaw:main

@@ -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)