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

Інструменти сесії

OpenClaw надає агентам інструменти для роботи між сесіями, перевірки статусу та оркестрації субагентів.

Доступні інструменти

ІнструментЩо він робить
sessions_listПерелічує сесії з необов’язковими фільтрами (kind, recency)
sessions_historyЧитає транскрипт конкретної сесії
sessions_sendНадсилає повідомлення в іншу сесію й за потреби очікує
sessions_spawnСтворює ізольовану сесію субагента для фонової роботи
sessions_yieldЗавершує поточний хід і очікує подальші результати від субагента
subagentsПерелічує, спрямовує або зупиняє запущених субагентів для цієї сесії
session_statusПоказує картку в стилі /status і за потреби задає перевизначення моделі для сесії

Перелік і читання сесій

sessions_list повертає сесії з їхнім ключем, kind, channel, model, кількістю token і часовими позначками. Фільтрація доступна за kind (main, group, cron, hook, node) або за recency (activeMinutes). sessions_history отримує транскрипт розмови для конкретної сесії. Типово результати інструментів виключені — передайте includeTools: true, щоб їх побачити. Повернене представлення навмисно обмежене та відфільтроване з міркувань безпеки:
  • текст помічника нормалізується перед відновленням:
    • теги thinking видаляються
    • службові блоки <relevant-memories> / <relevant_memories> видаляються
    • прості текстові XML-блоки payload викликів інструментів, як-от <tool_call>...</tool_call>, <function_call>...</function_call>, <tool_calls>...</tool_calls> і <function_calls>...</function_calls>, видаляються, включно з обрізаними payload, які так і не закриваються коректно
    • знижені до тексту службові блоки викликів/результатів інструментів, як-от [Tool Call: ...], [Tool Result ...] і [Historical context ...], видаляються
    • витіклі керувальні токени моделі, як-от <|assistant|>, інші ASCII токени <|...|> і повноширинні варіанти <|...|>, видаляються
    • некоректний XML викликів інструментів MiniMax, як-от <invoke ...> / </minimax:tool_call>, видаляється
  • текст, схожий на облікові дані/токени, редагується перед поверненням
  • довгі текстові блоки обрізаються
  • дуже великі історії можуть відкидати старіші рядки або замінювати надто великий рядок на [sessions_history omitted: message too large]
  • інструмент повідомляє зведені прапорці, як-от truncated, droppedMessages, contentTruncated, contentRedacted і bytes
Обидва інструменти приймають або ключ сесії (наприклад "main"), або ID сесії з попереднього виклику переліку. Якщо вам потрібен точний транскрипт байт-у-байт, перевіряйте файл транскрипту на диску, а не сприймайте sessions_history як сирий дамп.

Надсилання міжсесійних повідомлень

sessions_send доставляє повідомлення в іншу сесію й за потреби очікує на відповідь:
  • Надіслати й не чекати: установіть timeoutSeconds: 0, щоб поставити в чергу й відразу повернутися.
  • Очікування відповіді: задайте тайм-аут і отримайте відповідь вбудовано.
Після відповіді цільової сесії OpenClaw може запустити цикл відповіді у відповідь, де агенти по черзі обмінюються повідомленнями (до 5 ходів). Цільовий агент може відповісти REPLY_SKIP, щоб зупинити це раніше.

Допоміжні інструменти статусу та оркестрації

session_status — це легкий еквівалент /status для поточної або іншої видимої сесії. Він повідомляє про використання, час, стан моделі/runtime і пов’язаний контекст фонових завдань, якщо він є. Як і /status, він може заповнювати розріджені лічильники token/cache з останнього запису використання в транскрипті, а model=default скидає перевизначення для окремої сесії. sessions_yield навмисно завершує поточний хід, щоб наступним повідомленням могла бути подія продовження, на яку ви очікуєте. Використовуйте його після запуску субагентів, коли хочете, щоб результати завершення прийшли наступним повідомленням, а не через побудову циклів опитування. subagents — це допоміжний інструмент control-plane для вже запущених субагентів OpenClaw. Він підтримує:
  • action: "list" для перевірки активних/нещодавніх запусків
  • action: "steer" для надсилання подальших вказівок активній дочірній сесії
  • action: "kill" для зупинки однієї дочірньої сесії або all

Запуск субагентів

sessions_spawn створює ізольовану сесію для фонового завдання. Він завжди неблокувальний — відразу повертає runId і childSessionKey. Основні параметри:
  • runtime: "subagent" (типово) або "acp" для агентів зовнішнього harness.
  • Перевизначення model і thinking для дочірньої сесії.
  • thread: true, щоб прив’язати запуск до ланцюжка чату (Discord, Slack тощо).
  • sandbox: "require", щоб примусово ввімкнути пісочницю для дочірньої сесії.
Типові листові субагенти не отримують інструментів сесії. Коли maxSpawnDepth >= 2, субагенти-оркестратори рівня depth-1 додатково отримують sessions_spawn, subagents, sessions_list і sessions_history, щоб вони могли керувати власними дочірніми сесіями. Листові запуски все одно не отримують рекурсивних інструментів оркестрації. Після завершення крок оголошення публікує результат у каналі запитувача. Доставка завершення зберігає прив’язану маршрутизацію ланцюжка/теми, коли вона доступна, а якщо джерело завершення ідентифікує лише канал, OpenClaw усе одно може повторно використати збережений маршрут сесії запитувача (lastChannel / lastTo) для прямої доставки. Про специфічну для ACP поведінку див. ACP Agents.

Видимість

Інструменти сесії мають область видимості, щоб обмежити те, що може бачити агент:
РівеньОбласть
selfЛише поточна сесія
treeПоточна сесія + запущені субагенти
agentУсі сесії цього агента
allУсі сесії (між агентами, якщо налаштовано)
Типове значення — tree. Для сесій у пісочниці значення примусово обмежується до tree незалежно від конфігурації.

Додаткове читання