Sessions and memory

Виведені з контексту зобов’язання

Зобов’язання — це короткочасні спогади про подальші дії. Коли цю функцію ввімкнено, OpenClaw може помітити, що під час розмови виникла нагода повернутися до певного питання в майбутньому, і запам’ятати, що до нього варто повернутися пізніше.

Приклади:

  • Ви згадуєте, що завтра маєте співбесіду. OpenClaw може згодом поцікавитися, як вона минула.
  • Ви кажете, що виснажені. OpenClaw може пізніше запитати, чи вдалося вам поспати.
  • Агент каже, що повернеться до питання після певної зміни. OpenClaw може відстежувати цю незавершену справу.

Зобов’язання — це не довготривалі факти на кшталт MEMORY.md і не точні нагадування. Вони займають проміжне місце між пам’яттю та автоматизацією: OpenClaw запам’ятовує пов’язане з розмовою зобов’язання, а потім Heartbeat доставляє його, коли настає відповідний час.

Увімкнення зобов’язань

Зобов’язання типово вимкнено (commitments.enabled: false). Увімкніть їх у конфігурації:

bash
openclaw config set commitments.enabled trueopenclaw config set commitments.maxPerDay 3

Еквівалент у openclaw.json:

json
{  "commitments": {    "enabled": true,    "maxPerDay": 3  }}

commitments.maxPerDay обмежує кількість автоматично визначених подальших звернень, які можна доставити за сеанс агента протягом рухомого добового періоду. Типове значення — 3.

Принцип роботи

Після відповіді агента OpenClaw може виконати прихований фоновий прохід вилучення в окремому контексті з вимкненими інструментами. Цей прохід шукає лише автоматично визначені зобов’язання щодо подальших дій. Він не записує нічого у видиму розмову й не просить основного агента аналізувати процес вилучення.

Коли OpenClaw знаходить кандидата з високим рівнем достовірності, він зберігає зобов’язання з такими даними:

  • ідентифікатор агента
  • ключ сеансу
  • початковий канал і ціль доставки
  • часовий проміжок виконання
  • коротка запропонована репліка для подальшого звернення
  • метадані без інструкцій, за якими Heartbeat вирішує, чи потрібно його надсилати

Доставка відбувається через Heartbeat. Коли настає час виконання зобов’язання, Heartbeat додає його до циклу Heartbeat для того самого агента й області каналу. У запиті явно зазначено, що метаданим зобов’язання не можна довіряти, а модель не повинна виконувати їхні інструкції або використовувати через них інструменти. Модель може надіслати одне природне подальше звернення або відповісти HEARTBEAT_OK, щоб відхилити його. Якщо Heartbeat налаштовано з target: "none", зобов’язання, час яких настав, залишаються внутрішніми й не спричиняють зовнішніх подальших звернень. Запити доставки зобов’язань не відтворюють текст початкової розмови, а містять лише запропоноване подальше звернення та метадані; цикли Heartbeat для зобов’язань, час яких настав, виконуються без інструментів OpenClaw.

OpenClaw ніколи не доставляє автоматично визначене зобов’язання одразу після його запису. Час виконання обмежується так, щоб настати щонайменше через один інтервал Heartbeat після створення зобов’язання, тому подальше звернення не може повторитися в ту саму мить, коли його було визначено.

Область дії

Зобов’язання прив’язуються до точного контексту агента й каналу, у якому їх було створено. Подальше звернення, визначене під час розмови з одним агентом у Discord, не доставляється іншим агентом, через інший канал або в непов’язаному сеансі.

Ця область дії є частиною функції. Природні подальші звернення мають сприйматися як продовження тієї самої розмови, а не як глобальна система нагадувань.

Зобов’язання та нагадування

Потреба Використовуйте
«Нагадай мені о 15:00» Заплановані завдання
«Напиши мені через 20 хвилин» Заплановані завдання
«Запускай цей звіт кожного буднього дня» Заплановані завдання
«У мене завтра співбесіда» Зобов’язання
«Я не спав усю ніч» Зобов’язання
«Повернися до питання, якщо я не відповім у цій відкритій темі» Зобов’язання

Точні запити користувача вже належать до механізму планувальника. Зобов’язання призначені лише для автоматично визначених подальших звернень — ситуацій, коли користувач не просив про нагадування, але під час розмови явно виникла потреба в корисному майбутньому зверненні.

Керування зобов’язаннями

Використовуйте CLI, щоб переглядати й очищати збережені зобов’язання:

bash
openclaw commitmentsopenclaw commitments --allopenclaw commitments --agent mainopenclaw commitments --status snoozedopenclaw commitments dismiss cm_abc123

Повний опис команд див. у розділі openclaw commitments.

Конфіденційність і вартість

Для вилучення зобов’язань використовується прохід LLM, тому ввімкнення цієї функції додає фонове використання моделі після придатних для обробки реплік. Цей прохід приховано від видимої користувачеві розмови, але він може читати останній обмін повідомленнями, необхідний для визначення наявності потреби в подальшому зверненні.

Збережені зобов’язання є локальним станом OpenClaw. Це оперативна, а не довготривала пам’ять. Вимкніть функцію такою командою:

bash
openclaw config set commitments.enabled false

Усунення несправностей

Якщо очікувані подальші звернення не з’являються:

  • Переконайтеся, що commitments.enabled має значення true.
  • Перевірте за допомогою openclaw commitments --all записи, що очікують виконання, відхилені, відкладені або прострочені.
  • Переконайтеся, що Heartbeat працює для агента.
  • Перевірте, чи не досягнуто вже обмеження commitments.maxPerDay для цього сеансу агента.
  • Пам’ятайте, що точні нагадування пропускаються під час вилучення зобов’язань і натомість мають з’являтися в розділі запланованих завдань.

Пов’язані матеріали

Was this useful?
On this page

On this page