Commitments

When the agent says "I'll check this in an hour", that's a commitment. OpenVesper tracks them so the agent doesn't forget its own promises across sessions.

Two kinds

  • explicit โ€” user explicitly asked agent to remember ("remind me to check $XYZ in 2 hours")
  • inferred โ€” pattern-matched from agent's reply ("I'll let you know when..." โ†’ automatic commitment record)

Inferred patterns

The system auto-detects these phrases as commitments:

  • "I'll let you know..."
  • "I'll get back to you..."
  • "I'll check..."
  • "I'll remind..."
  • "I'll follow up..."
  • "I'll update you..."
  • "Give me N minutes/hours and I'll..."
  • "Check back in N hours..."

It also extracts time mentions ("in 2 hours", "tomorrow", "next week") to populate dueAt.

Auto-inclusion in context

Open commitments are auto-injected into the system prompt at priority 30, so the agent sees its own outstanding promises on every turn:

## Your open commitments to this user

You previously made these promises. Stay aware of them:
- "I'll check the BAGS price in an hour" (due 14:30:00)
- "I'll remind you about the airdrop deadline" (due 2026-05-25)

API

GET    /commitments?sessionKey=user-123&status=open
POST   /commitments                  (manual create)
POST   /commitments/:id/fulfill
POST   /commitments/:id/cancel

Storage

~/.openvesper/commitments.json (mode 0600).

Source

Implementation: apps/gateway/src/commitments.ts