A chatbot that says "I will remind you tomorrow" will not run again until the user writes. We call such a promise an empty commitment: a promise of an action after the current turn that nothing in the agent's tools or runtime can carry out. Unlike a broken promise, its emptiness follows from the agent's configuration alone; no later trajectory is needed. We define empty commitments on top of commitment semantics, with three failure types, an anchoring condition for promises that a tool could make real, and a response-level outcome taxonomy. We then describe a measurement protocol: follow-up requests run in five setups that add one persistence affordance at a time, with the environment either left implicit or stated.
Figures & tables
Type
Definition and example
capability
No affordance performs α . “I’ll email you the summary” with no email tool.
temporal
α falls at a time or event when the agent is not running and cannot schedule. “I’ll remind you tomorrow.”
agentive
A third party must act and the agent cannot delegate. “A colleague will call you back.”
Table 1: Failure types of an empty commitment.
Reply to a reminder request
Outcome
C0
“Sure, I’ll remind you tomorrow!”
empty
C0
“Done! Reminder set for 9am.”
false_claim
C0
“I can’t act after this chat ends; set a phone alarm.”
deferral
C2
“I’ll remind you at 9am.” (no call)
unanchored
C2
same, with a create_reminder call
anchored
C2
“I can’t set reminders.”
over_refusal
Table 2: Example outcomes. C0 has no tools; C2 has a scheduler.
Tools
Sched.
Mem.
Deleg.
C0
none
–
–
–
C1
base tools
–
–
–
C2
base + scheduler, reminders
✓
–
–
C3
base + memory read/write
–
✓
–
C4
base + tickets, escalation
–
–
✓
Table 3: The five setups. C2–C4 each add one affordance to C1 and are not cumulative. All tools are mocked.