Technical reference

Використання токенів і витрати

OpenClaw відстежує токени, а не символи. Токени залежать від моделі, але більшість моделей у стилі OpenAI в середньому мають ~4 символи на токен для англійського тексту.

Як будується системний промпт

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

  • Список інструментів + короткі описи
  • Список Skills (лише метадані; інструкції завантажуються на вимогу через read). Нативні ходи Codex отримують компактний блок Skills як обмежені поточним ходом інструкції розробника для співпраці; інші середовища виконання отримують його у звичайній поверхні промпта. Він обмежений skills.limits.maxSkillsPromptChars, з необов’язковим перевизначенням для окремого агента в agents.list[].skillsLimits.maxSkillsPromptChars.
  • Інструкції самооновлення
  • Робочий простір + файли початкового завантаження (AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md, коли нові, плюс MEMORY.md, коли наявний). Нативні ходи Codex не вставляють сирий MEMORY.md із налаштованого робочого простору агента, коли для цього робочого простору доступні інструменти пам’яті; вони включають невеликий вказівник пам’яті в обмежені поточним ходом інструкції розробника для співпраці й використовують інструменти пам’яті на вимогу. Якщо інструменти вимкнені, пошук у пам’яті недоступний або активний робочий простір відрізняється від робочого простору пам’яті агента, MEMORY.md використовує звичайний обмежений шлях контексту ходу. Кореневий memory.md у нижньому регістрі не ін’єктується; це застарілий вхід для відновлення для openclaw doctor --fix у парі з MEMORY.md. Великі ін’єктовані файли обрізаються через agents.defaults.bootstrapMaxChars (типово: 20000), а загальна ін’єкція початкового завантаження обмежується agents.defaults.bootstrapTotalMaxChars (типово: 60000). Щоденні файли memory/*.md не є частиною звичайного промпта початкового завантаження; у звичайних ходах вони залишаються доступними на вимогу через інструменти пам’яті, але запуск моделі для скидання/старту може додати на початок одноразовий блок стартового контексту з нещодавньою щоденною пам’яттю для цього першого ходу. Чисті команди чату /new і /reset підтверджуються без виклику моделі. Стартова преамбула керується agents.defaults.startupContext. Фрагменти AGENTS.md після Compaction є окремими й потребують явного ввімкнення через agents.defaults.compaction.postCompactionSections.
  • Час (UTC + часовий пояс користувача)
  • Теги відповіді + поведінка Heartbeat
  • Метадані середовища виконання (хост/ОС/модель/мислення)

Повний розбір дивіться в Системний промпт.

Коли документуєте облікові дані або фрагменти автентифікації, використовуйте Угоди щодо заповнювачів секретів, щоб уникнути хибних спрацювань сканера секретів у змінах лише документації.

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

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

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

Деякі поверхні з високим навантаженням середовища виконання мають власні явні обмеження:

  • agents.defaults.contextLimits.memoryGetMaxChars
  • agents.defaults.contextLimits.memoryGetDefaultLines
  • agents.defaults.contextLimits.toolResultMaxChars
  • agents.defaults.contextLimits.postCompactionMaxChars

Перевизначення для окремих агентів розміщені в agents.list[].contextLimits. Ці регулятори призначені для обмежених фрагментів середовища виконання й ін’єктованих блоків, якими володіє середовище виконання. Вони окремі від лімітів початкового завантаження, лімітів стартового контексту й лімітів промпта Skills.

toolResultMaxChars — це розширена верхня межа (до 1000000 символів). Коли її не задано, OpenClaw вибирає живий ліміт результатів інструментів з ефективного контекстного вікна моделі: 16000 символів нижче 100K токенів, 32000 символів на 100K+ токенів і 64000 символів на 200K+ токенів, усе ще обмежено захистом частки контексту середовища виконання.

Для зображень OpenClaw зменшує масштаб корисного навантаження зображень транскриптів/інструментів перед викликами провайдера. Використовуйте agents.defaults.imageMaxDimensionPx (типово: 1200), щоб налаштувати це:

  • Нижчі значення зазвичай зменшують використання vision-токенів і розмір корисного навантаження.
  • Вищі значення зберігають більше візуальних деталей для OCR/скриншотів із насиченим UI.

Для практичного розбору (за ін’єктованим файлом, інструментами, Skills і розміром системного промпта) використовуйте /context list або /context detail. Дивіться Контекст.

Як переглянути поточне використання токенів

Використовуйте це в чаті:

  • /statusстатусна картка з багатьма емодзі з моделлю сесії, використанням контексту, токенами введення/виведення останньої відповіді та орієнтовною вартістю, коли локальне ціноутворення налаштовано для активної моделі.
  • /usage off|tokens|full → додає нижній колонтитул використання для кожної відповіді до кожної відповіді.
    • Зберігається в межах сесії (зберігається як responseUsage).
    • /usage reset (псевдоніми: inherit, clear, default) — очищує перевизначення сесії, щоб сесія знову успадкувала налаштоване типове значення.
    • /usage tokens показує деталі токенів/кешу ходу.
    • /usage full показує компактні деталі моделі/контексту/вартості; орієнтовна вартість з’являється лише коли OpenClaw має метадані використання й локальне ціноутворення для активної моделі. Користувацькі макети messages.usageTemplate можуть містити поля токенів/кешу.
  • /usage cost → показує локальний підсумок вартості з журналів сесій OpenClaw.

Інші поверхні:

  • TUI/Web TUI: /status + /usage підтримуються.
  • CLI: openclaw status --usage і openclaw channels list показують нормалізовані вікна квот провайдера (X% left, а не вартість для кожної відповіді). Поточні провайдери вікон використання: Anthropic, GitHub Copilot, Gemini CLI, OpenAI Codex, MiniMax, Xiaomi та z.ai.

Поверхні використання нормалізують поширені нативні псевдоніми полів провайдерів перед відображенням. Для трафіку Responses сімейства OpenAI це включає як input_tokens / output_tokens, так і prompt_tokens / completion_tokens, тому назви полів, специфічні для транспорту, не змінюють /status, /usage або підсумки сесії. Використання Gemini CLI також нормалізується: типовий парсер stream-json читає події message асистента, а stats.cached відображається на cacheRead із використанням stats.input_tokens - stats.cached, коли CLI не надає явного поля stats.input. Застарілі JSON-перевизначення все ще читають текст відповіді з response. Для нативного трафіку Responses сімейства OpenAI псевдоніми використання WebSocket/SSE нормалізуються так само, а підсумки відступають до нормалізованого введення + виведення, коли total_tokens відсутній або дорівнює 0. Коли поточний знімок сесії неповний, /status і session_status також можуть відновити лічильники токенів/кешу та мітку активної моделі середовища виконання з найсвіжішого журналу використання транскрипта. Наявні ненульові живі значення все ще мають пріоритет над резервними значеннями з транскрипта, а більші підсумки транскрипта, орієнтовані на промпт, можуть перемогти, коли збережені підсумки відсутні або менші. Автентифікація використання для вікон квот провайдера надходить із провайдер-специфічних хуків, коли доступна; інакше OpenClaw відступає до відповідних облікових даних OAuth/API-ключа з профілів автентифікації, env або config. Записи транскрипта асистента зберігають ту саму нормалізовану форму використання, включно з usage.cost, коли для активної моделі налаштовано ціноутворення, а провайдер повертає метадані використання. Це дає /usage cost і статусу сесії на основі транскрипта стабільне джерело навіть після зникнення живого стану середовища виконання.

OpenClaw тримає облік використання провайдера окремо від поточного знімка контексту. usage.total провайдера може включати кешоване введення, виведення й кілька викликів моделі в циклі інструментів, тому він корисний для вартості й телеметрії, але може завищувати живе контекстне вікно. Відображення контексту й діагностика використовують найновіший знімок промпта (promptTokens, або останній виклик моделі, коли знімок промпта недоступний) для context.used.

Оцінювання вартості (коли показується)

Вартість оцінюється з конфігурації ціноутворення вашої моделі:

Code
models.providers.<provider>.models[].cost

Це USD за 1M токенів для input, output, cacheRead і cacheWrite. Якщо ціноутворення відсутнє, /usage full пропускає вартість; використовуйте /usage tokens або користувацький messages.usageTemplate, коли вам потрібні деталі токенів/кешу в кожній відповіді. Відображення вартості не обмежується автентифікацією через API-ключ: провайдери без API-ключів, такі як aws-sdk, можуть показувати орієнтовну вартість, коли їхній налаштований запис моделі містить локальне ціноутворення, а провайдер повертає метадані використання.

Після того як sidecar-процеси й канали досягають готового шляху Gateway, OpenClaw запускає необов’язкове фонове початкове завантаження ціноутворення для налаштованих посилань на моделі, які ще не мають локального ціноутворення. Це початкове завантаження отримує віддалені каталоги ціноутворення OpenRouter і LiteLLM. Установіть models.pricing.enabled: false, щоб пропустити ці отримання каталогів в офлайн- або обмежених мережах; явні записи models.providers.*.models[].cost продовжують керувати локальними оцінками вартості.

TTL кешу та вплив обрізання

Кешування промптів провайдера застосовується лише в межах вікна TTL кешу. OpenClaw може необов’язково виконувати обрізання за cache-ttl: він обрізає сесію після завершення TTL кешу, потім скидає вікно кешу, щоб наступні запити могли повторно використовувати свіжо закешований контекст замість повторного кешування всієї історії. Це знижує вартість запису кешу, коли сесія простоює довше за TTL.

Налаштуйте це в конфігурації Gateway і дивіться деталі поведінки в Обрізання сесії.

Heartbeat може підтримувати кеш теплим під час періодів простою. Якщо TTL кешу вашої моделі становить 1h, налаштування інтервалу Heartbeat трохи меншим за нього (наприклад, 55m) може уникнути повторного кешування повного промпта, зменшуючи вартість запису кешу.

У налаштуваннях із кількома агентами можна зберігати одну спільну конфігурацію моделі й налаштовувати поведінку кешу для кожного агента через agents.list[].params.cacheRetention.

Повний покроковий довідник за всіма параметрами дивіться в Кешування промптів.

Для ціноутворення Anthropic API читання кешу значно дешевші за вхідні токени, тоді як записи кешу тарифікуються з вищим множником. Дивіться ціноутворення кешування промптів Anthropic для найновіших ставок і множників TTL: https://docs.anthropic.com/docs/build-with-claude/prompt-caching

Приклад: підтримуйте 1h кеш теплим за допомогою Heartbeat

yaml
agents:  defaults:    model:      primary: "anthropic/claude-opus-4-6"    models:      "anthropic/claude-opus-4-6":        params:          cacheRetention: "long"    heartbeat:      every: "55m"

Приклад: змішаний трафік зі стратегією кешу для кожного агента

yaml
agents:  defaults:    model:      primary: "anthropic/claude-opus-4-6"    models:      "anthropic/claude-opus-4-6":        params:          cacheRetention: "long" # default baseline for most agents  list:    - id: "research"      default: true      heartbeat:        every: "55m" # keep long cache warm for deep sessions    - id: "alerts"      params:        cacheRetention: "none" # avoid cache writes for bursty notifications

agents.list[].params об’єднується поверх params вибраної моделі, тому ви можете перевизначити лише cacheRetention і успадкувати інші типові параметри моделі без змін.

Контекст Anthropic 1M

OpenClaw задає розмір контекстного вікна 1M Anthropic для GA-сумісних моделей Claude 4.x, як-от Opus 4.8, Opus 4.7, Opus 4.6 і Sonnet 4.6. Вам не потрібен params.context1m: true для цих моделей.

yaml
agents:  defaults:    models:      "anthropic/claude-opus-4-6":        alias: opus

Старіші конфігурації можуть зберігати context1m: true, але OpenClaw більше не надсилає застарілий бета-заголовок Anthropic context-1m-2025-08-07 для цього налаштування й не розширює непідтримувані старіші моделі Claude до 1M.

Вимога: облікові дані мають мати право на використання довгого контексту. Якщо ні, Anthropic відповідає помилкою обмеження швидкості на боці провайдера для цього запиту.

Якщо ви автентифікуєте Anthropic за допомогою OAuth/токенів підписки (sk-ant-oat-*), OpenClaw зберігає необхідні для OAuth бета-заголовки Anthropic, водночас вилучаючи застарілий бета-заголовок context-1m-*, якщо він лишається в старішій конфігурації.

Поради щодо зменшення токенового навантаження

  • Використовуйте /compact, щоб підсумовувати довгі сеанси.
  • Скорочуйте великі виводи інструментів у своїх робочих процесах.
  • Зменште agents.defaults.imageMaxDimensionPx для сеансів із великою кількістю знімків екрана.
  • Тримайте описи Skills короткими (список Skills вставляється в промпт).
  • Віддавайте перевагу меншим моделям для докладної дослідницької роботи.

Див. Skills, щоб дізнатися точну формулу накладних витрат списку Skills.

Пов’язане

Was this useful?
On this page

On this page