Перейти до основного вмісту

Керування сесіями

OpenClaw організовує розмови в сесії. Кожне повідомлення маршрутизується до сесії залежно від того, звідки воно надійшло — DM, групові чати, cron-завдання тощо.

Як маршрутизуються повідомлення

ДжерелоПоведінка
Прямі повідомленняСпільна сесія за замовчуванням
Групові чатиІзольовано для кожної групи
Кімнати/каналиІзольовано для кожної кімнати
Cron-завданняНова сесія для кожного запуску
ВебхукиІзольовано для кожного hook

Ізоляція DM

За замовчуванням усі DM використовують одну спільну сесію для безперервності. Це підходить для конфігурацій з одним користувачем.
Якщо кілька людей можуть надсилати повідомлення вашому агенту, увімкніть ізоляцію DM. Без цього всі користувачі ділять той самий контекст розмови — приватні повідомлення Alice будуть видимі Bob.
Виправлення:
{
  session: {
    dmScope: "per-channel-peer", // ізоляція за каналом + відправником
  },
}
Інші варіанти:
  • main (за замовчуванням) — усі DM ділять одну сесію.
  • per-peer — ізоляція за відправником (між каналами).
  • per-channel-peer — ізоляція за каналом + відправником (рекомендовано).
  • per-account-channel-peer — ізоляція за обліковим записом + каналом + відправником.
Якщо та сама людина звертається до вас із кількох каналів, використовуйте session.identityLinks, щоб пов’язати її ідентичності, і тоді вони ділитимуть одну сесію.
Перевірте своє налаштування за допомогою openclaw security audit.

Життєвий цикл сесії

Сесії повторно використовуються, доки не спливе їхній термін дії:
  • Щоденне скидання (за замовчуванням) — нова сесія о 4:00 ранку за місцевим часом на хості gateway.
  • Скидання за неактивністю (необов’язково) — нова сесія після періоду бездіяльності. Установіть session.reset.idleMinutes.
  • Ручне скидання — введіть /new або /reset у чаті. /new <model> також перемикає модель.
Коли налаштовано і щоденне скидання, і скидання за неактивністю, спрацьовує те, що настає раніше.

Де зберігається стан

Увесь стан сесії належить gateway. UI-клієнти запитують у gateway дані сесії.
  • Сховище: ~/.openclaw/agents/<agentId>/sessions/sessions.json
  • Транскрипти: ~/.openclaw/agents/<agentId>/sessions/<sessionId>.jsonl

Обслуговування сесій

OpenClaw автоматично обмежує обсяг сховища сесій із часом. За замовчуванням він працює в режимі warn (повідомляє, що було б очищено). Установіть session.maintenance.mode в "enforce" для автоматичного очищення:
{
  session: {
    maintenance: {
      mode: "enforce",
      pruneAfter: "30d",
      maxEntries: 500,
    },
  },
}
Попередній перегляд: openclaw sessions cleanup --dry-run.

Перегляд сесій

  • openclaw status — шлях до сховища сесій і нещодавня активність.
  • openclaw sessions --json — усі сесії (фільтруйте за допомогою --active <minutes>).
  • /status у чаті — використання контексту, модель і перемикачі.
  • /context list — що входить до system prompt.

Додаткові матеріали