Fundamentals

Контекст

"Контекст" — це все, що OpenClaw надсилає моделі для запуску. Він обмежений вікном контексту моделі (лімітом токенів).

Ментальна модель для початківців:

  • Системний промпт (створений OpenClaw): правила, інструменти, список skills, час/середовище виконання та інʼєктовані файли робочого простору.
  • Історія розмови: ваші повідомлення + повідомлення асистента в цій сесії.
  • Виклики/результати інструментів + вкладення: вивід команд, читання файлів, зображення/аудіо тощо.

Контекст — це не те саме, що "памʼять": памʼять може зберігатися на диску й повторно завантажуватися пізніше; контекст — це те, що міститься в поточному вікні моделі.

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

  • /status → швидкий перегляд "наскільки заповнене моє вікно?" + налаштування сесії.
  • /context list → що інʼєктовано + приблизні розміри (за файлом + підсумки).
  • /context detail → детальніший розподіл: розміри за файлами, схемами інструментів, записами Skills і розмір системного промпта.
  • /usage tokens → додавати футер використання за токенами до звичайних відповідей.
  • /compact → підсумувати давнішу історію в компактний запис, щоб звільнити місце у вікні.

Див. також: Слеш-команди, Використання токенів і витрати, Compaction.

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

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

/context list

🧠 Context breakdown
Workspace: <workspaceDir>
Bootstrap max/file: 12,000 chars
Sandbox: mode=non-main sandboxed=false
System prompt (run): 38,412 chars (~9,603 tok) (Project Context 23,901 chars (~5,976 tok))

Injected workspace files:
- AGENTS.md: OK | raw 1,742 chars (~436 tok) | injected 1,742 chars (~436 tok)
- SOUL.md: OK | raw 912 chars (~228 tok) | injected 912 chars (~228 tok)
- TOOLS.md: TRUNCATED | raw 54,210 chars (~13,553 tok) | injected 20,962 chars (~5,241 tok)
- IDENTITY.md: OK | raw 211 chars (~53 tok) | injected 211 chars (~53 tok)
- USER.md: OK | raw 388 chars (~97 tok) | injected 388 chars (~97 tok)
- HEARTBEAT.md: MISSING | raw 0 | injected 0
- BOOTSTRAP.md: OK | raw 0 chars (~0 tok) | injected 0 chars (~0 tok)

Skills list (system prompt text): 2,184 chars (~546 tok) (12 skills)
Tools: read, edit, write, exec, process, browser, message, sessions_send, …
Tool list (system prompt text): 1,032 chars (~258 tok)
Tool schemas (JSON): 31,988 chars (~7,997 tok) (counts toward context; not shown as text)
Tools: (same as above)

Session tokens (cached): 14,250 total / ctx=32,000

/context detail

🧠 Context breakdown (detailed)
…
Top skills (prompt entry size):
- frontend-design: 412 chars (~103 tok)
- oracle: 401 chars (~101 tok)
… (+10 more skills)

Top tools (schema size):
- browser: 9,812 chars (~2,453 tok)
- exec: 6,240 chars (~1,560 tok)
… (+N more tools)

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

Враховується все, що отримує модель, зокрема:

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

Як OpenClaw створює системний промпт

Системний промпт належить OpenClaw і перебудовується під час кожного запуску. Він містить:

  • Список інструментів + короткі описи.
  • Список Skills (лише метадані; див. нижче).
  • Розташування робочого простору.
  • Час (UTC + перетворений час користувача, якщо налаштовано).
  • Метадані середовища виконання (хост/OS/модель/мислення).
  • Інʼєктовані bootstrap-файли робочого простору в Контексті проєкту.

Повний розподіл: Системний промпт.

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

За замовчуванням OpenClaw інʼєктує фіксований набір файлів робочого простору (якщо вони наявні):

  • AGENTS.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.md (лише під час першого запуску)

Великі файли обрізаються пофайлово за допомогою agents.defaults.bootstrapMaxChars (за замовчуванням 12000 символів). OpenClaw також застосовує загальний ліміт bootstrap-інʼєкції для всіх файлів через agents.defaults.bootstrapTotalMaxChars (за замовчуванням 60000 символів). /context показує розміри raw vs injected і чи відбулося обрізання.

Коли відбувається обрізання, середовище виконання може інʼєктувати блок попередження в промпті під Контекстом проєкту. Налаштуйте це за допомогою agents.defaults.bootstrapPromptTruncationWarning (off, once, always; за замовчуванням once).

Skills: інʼєктовані та завантажені на вимогу

Системний промпт містить компактний список Skills (назва + опис + розташування). Цей список має реальні накладні витрати.

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

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

Інструменти впливають на контекст двома способами:

  1. Текст списку інструментів у системному промпті (те, що ви бачите як "Інструментарій").
  2. Схеми інструментів (JSON). Їх надсилають моделі, щоб вона могла викликати інструменти. Вони враховуються в контексті, хоча ви не бачите їх як звичайний текст.

/context detail розкладає найбільші схеми інструментів, щоб ви могли побачити, що домінує.

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

Слеш-команди обробляє Gateway. Є кілька різних типів поведінки:

  • Окремі команди: повідомлення, яке містить лише /..., виконується як команда.
  • Директиви: /think, /verbose, /trace, /reasoning, /elevated, /model, /queue вилучаються до того, як модель побачить повідомлення.
    • Повідомлення лише з директивами зберігають налаштування сесії.
    • Вбудовані директиви у звичайному повідомленні діють як підказки для конкретного повідомлення.
  • Вбудовані скорочення (лише для відправників із дозволеного списку): певні токени /... у звичайному повідомленні можуть виконуватися негайно (приклад: "hey /status") і вилучаються до того, як модель побачить решту тексту.

Докладніше: Слеш-команди.

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

Те, що зберігається між повідомленнями, залежить від механізму:

  • Звичайна історія зберігається в транскрипті сесії, доки її не компактовано/обрізано політикою.
  • Compaction зберігає підсумок у транскрипті й залишає останні повідомлення незмінними.
  • Обрізання видаляє старі результати інструментів із промпта в памʼяті, щоб звільнити місце у вікні контексту, але не переписує транскрипт сесії - повна історія все ще доступна для перегляду на диску.

Документація: Сесія, Compaction, Обрізання сесії.

За замовчуванням OpenClaw використовує вбудований рушій контексту legacy для збирання та Compaction. Якщо ви встановите Plugin, який надає kind: "context-engine", і виберете його за допомогою plugins.slots.contextEngine, OpenClaw делегує збирання контексту, /compact і повʼязані хуки життєвого циклу контексту субагента цьому рушію. ownsCompaction: false не виконує автоматичний відкат до застарілого рушія; активний рушій усе одно має коректно реалізовувати compact(). Див. Рушій контексту для повного підʼєднуваного інтерфейсу, хуків життєвого циклу та конфігурації.

Що насправді повідомляє /context

/context віддає перевагу найновішому звіту системного промпта, побудованого під час запуску, коли він доступний:

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

У будь-якому разі він повідомляє розміри та головних вкладників; він не виводить повний системний промпт або схеми інструментів.

Повʼязане