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

Контекст

«Контекст» — це все, що OpenClaw надсилає моделі для запуску. Він обмежений вікном контексту моделі (лімітом токенів). Проста ментальна модель для початківців:
  • Системний prompt (збудований OpenClaw): правила, інструменти, список Skills, час/середовище виконання та вбудовані файли робочого простору.
  • Історія розмови: ваші повідомлення + повідомлення асистента для цієї сесії.
  • Виклики/результати інструментів + вкладення: вивід команд, читання файлів, зображення/аудіо тощо.
Контекст це не те саме, що «пам’ять»: пам’ять може зберігатися на диску та повторно завантажуватися пізніше; контекст — це те, що знаходиться всередині поточного вікна моделі.

Швидкий старт (перевірка контексту)

  • /status → швидкий перегляд «наскільки заповнене моє вікно?» + налаштування сесії.
  • /context list → що вбудовано + приблизні розміри (для кожного файла + загалом).
  • /context detail → детальніший розподіл: пофайлово, розміри схем кожного інструмента, розміри записів кожного skill та розмір системного prompt.
  • /usage tokens → додає нижній колонтитул із використанням до звичайних відповідей.
  • /compact → підсумовує старішу історію в компактний запис, щоб звільнити місце у вікні.
Див. також: Slash commands, Використання токенів і витрати, Стиснення.

Приклад виводу

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

/context list

🧠 Розподіл контексту
Робочий простір: <workspaceDir>
Максимум bootstrap на файл: 20,000 символів
Пісочниця: mode=non-main sandboxed=false
Системний prompt (запуск): 38,412 символів (~9,603 ток) (Контекст проєкту 23,901 символів (~5,976 ток))

Вбудовані файли робочого простору:
- AGENTS.md: OK | raw 1,742 символів (~436 ток) | injected 1,742 символів (~436 ток)
- SOUL.md: OK | raw 912 символів (~228 ток) | injected 912 символів (~228 ток)
- TOOLS.md: TRUNCATED | raw 54,210 символів (~13,553 ток) | injected 20,962 символів (~5,241 ток)
- IDENTITY.md: OK | raw 211 символів (~53 ток) | injected 211 символів (~53 ток)
- USER.md: OK | raw 388 символів (~97 ток) | injected 388 символів (~97 ток)
- HEARTBEAT.md: MISSING | raw 0 | injected 0
- BOOTSTRAP.md: OK | raw 0 символів (~0 ток) | injected 0 символів (~0 ток)

Список Skills (текст системного prompt): 2,184 символів (~546 ток) (12 skills)
Інструменти: read, edit, write, exec, process, browser, message, sessions_send, …
Список інструментів (текст системного prompt): 1,032 символів (~258 ток)
Схеми інструментів (JSON): 31,988 символів (~7,997 ток) (враховуються в контексті; не показані як текст)
Інструменти: (ті самі, що вище)

Токени сесії (кешовані): 14,250 усього / ctx=32,000

/context detail

🧠 Розподіл контексту (детально)

Найбільші skills (розмір запису в prompt):
- frontend-design: 412 символів (~103 ток)
- oracle: 401 символ (~101 ток)
… (+10 more skills)

Найбільші інструменти (розмір схеми):
- browser: 9,812 символів (~2,453 ток)
- exec: 6,240 символів (~1,560 ток)
… (+N more tools)

Що враховується у вікні контексту

Усе, що отримує модель, враховується, зокрема:
  • Системний prompt (усі розділи).
  • Історія розмови.
  • Виклики інструментів + результати інструментів.
  • Вкладення/транскрипти (зображення/аудіо/файли).
  • Підсумки стиснення та артефакти обрізання.
  • «Обгортки» провайдера або приховані заголовки (не видимі, але все одно враховуються).

Як OpenClaw будує системний prompt

Системний prompt належить OpenClaw і перебудовується для кожного запуску. Він містить:
  • Список інструментів + короткі описи.
  • Список Skills (лише метадані; див. нижче).
  • Розташування робочого простору.
  • Час (UTC + перетворений час користувача, якщо налаштовано).
  • Метадані середовища виконання (хост/ОС/модель/thinking).
  • Вбудовані bootstrap-файли робочого простору в розділі Контекст проєкту.
Повний розбір: System Prompt.

Вбудовані файли робочого простору (Контекст проєкту)

Типово OpenClaw вбудовує фіксований набір файлів робочого простору (якщо вони є):
  • AGENTS.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.md (лише під час першого запуску)
Великі файли обрізаються для кожного файла окремо за допомогою agents.defaults.bootstrapMaxChars (типове значення 20000 символів). OpenClaw також застосовує загальне обмеження на вбудовування bootstrap для всіх файлів через agents.defaults.bootstrapTotalMaxChars (типове значення 150000 символів). /context показує розміри raw vs injected і те, чи відбулося обрізання. Коли відбувається обрізання, середовище виконання може вставити в prompt блок попередження в розділі Контекст проєкту. Це налаштовується через agents.defaults.bootstrapPromptTruncationWarning (off, once, always; типове значення once).

Skills: вбудовані чи завантажувані на вимогу

Системний prompt містить компактний список Skills (назва + опис + розташування). Цей список має реальні накладні витрати. Інструкції skill не включаються типово. Очікується, що модель прочитає SKILL.md відповідного skill через read лише за потреби.

Інструменти: є дві складові витрат

Інструменти впливають на контекст двома способами:
  1. Текст списку інструментів у системному prompt (те, що ви бачите як «Інструменти»).
  2. Схеми інструментів (JSON). Вони надсилаються моделі, щоб вона могла викликати інструменти. Вони враховуються в контексті, хоча ви не бачите їх як звичайний текст.
/context detail розбиває найбільші схеми інструментів, щоб ви могли побачити, що домінує.

Команди, директиви та “вбудовані скорочення”

Slash-команди обробляються Gateway. Є кілька різних варіантів поведінки:
  • Окремі команди: повідомлення, що складається лише з /..., виконується як команда.
  • Директиви: /think, /verbose, /reasoning, /elevated, /model, /queue видаляються до того, як модель побачить повідомлення.
    • Повідомлення, що містять лише директиви, зберігають налаштування сесії.
    • Вбудовані директиви у звичайному повідомленні діють як підказки для конкретного повідомлення.
  • Вбудовані скорочення (лише для відправників із allowlist): певні токени /... всередині звичайного повідомлення можуть виконуватися негайно (наприклад: «hey /status»), і видаляються до того, як модель побачить решту тексту.
Докладніше: Slash commands.

Сесії, стиснення та обрізання (що зберігається)

Що саме зберігається між повідомленнями, залежить від механізму:
  • Звичайна історія зберігається в транскрипті сесії, доки не буде стиснена/обрізана згідно з політикою.
  • Стиснення зберігає підсумок у транскрипті та залишає недоторканими нещодавні повідомлення.
  • Обрізання видаляє старі результати інструментів із prompt у пам’яті для запуску, але не переписує транскрипт.
Документація: Сесія, Стиснення, Обрізання сесії. Типово OpenClaw використовує вбудований рушій контексту legacy для складання та стиснення. Якщо ви встановите plugin, який надає kind: "context-engine", і виберете його через plugins.slots.contextEngine, OpenClaw натомість делегує складання контексту, /compact і пов’язані гачки життєвого циклу контексту підлеглого агента цьому рушію. ownsCompaction: false не викликає автоматичного повернення до рушія legacy; активний рушій усе одно має коректно реалізовувати compact(). Див. Context Engine, щоб ознайомитися з повним підключуваним інтерфейсом, гачками життєвого циклу та конфігурацією.

Що насправді показує /context

/context за можливості віддає перевагу найновішому звіту про системний prompt, побудований під час запуску:
  • System prompt (run) = захоплений з останнього вбудованого запуску (із підтримкою інструментів) і збережений у сховищі сесії.
  • System prompt (estimate) = обчислений на льоту, коли звіт про запуск відсутній (або під час роботи через бекенд CLI, який не генерує цей звіт).
У будь-якому разі він повідомляє розміри та найбільші складові; він не виводить повний системний prompt або схеми інструментів.

Пов’язане

  • Context Engine — користувацьке вбудовування контексту через plugins
  • Стиснення — підсумовування довгих розмов
  • System Prompt — як будується системний prompt
  • Цикл агента — повний цикл виконання агента