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, якщо він наявний). Великі вставлені файли обрізаються відповідно до agents.defaults.bootstrapMaxChars (типове значення: 20000); загальний обсяг початкової вставки обмежується agents.defaults.bootstrapTotalMaxChars (типове значення: 60000).
    • Нативні ходи Codex не вставляють необроблений вміст MEMORY.md, коли для цього робочого простору доступні інструменти пам’яті; натомість вони отримують невеликий покажчик на пам’ять в інструкціях розробника щодо співпраці, обмежених поточним ходом, і використовують інструменти пам’яті за потреби. Якщо інструменти вимкнено, пошук у пам’яті недоступний або активний робочий простір відрізняється від робочого простору пам’яті агента, MEMORY.md повертається до звичайного обмеженого шляху контексту ходу.
    • Кореневий файл memory.md у нижньому регістрі ніколи не вставляється. Це застарілі вхідні дані для виправлення через openclaw doctor --fix, який переносить їх у MEMORY.md.
    • Щоденні файли memory/*.md не входять до звичайної підказки початкового завантаження; у звичайних ходах вони залишаються доступними за потреби через інструменти пам’яті. Запуски моделі після скидання або під час запуску можуть додати на початок одноразовий блок контексту запуску з нещодавньою щоденною пам’яттю для першого ходу, керований параметром agents.defaults.startupContext. Команди звичайного чату /new і /reset підтверджуються без виклику моделі.
    • Фрагменти AGENTS.md після Compaction обробляються окремо й потребують явного ввімкнення через agents.defaults.compaction.postCompactionSections.
  • Час (UTC і часовий пояс користувача)
  • Теги відповіді та поведінка Heartbeat
  • Метадані середовища виконання (хост/ОС/модель/міркування)

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

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

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

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

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

Поверхні з інтенсивним використанням середовища виконання мають власні явні обмеження в agents.defaults.contextLimits (перевизначення для кожного агента — у agents.list[].contextLimits):

Ключ Призначення
memoryGetMaxChars Максимальна кількість символів, яку повертає memory_get до обрізання.
memoryGetDefaultLines Типове вікно рядків memory_get, якщо в запиті не вказано lines.
toolResultMaxChars Розширена верхня межа одного поточного результату інструмента (до 1000000 символів).
postCompactionMaxChars Максимальна кількість символів з AGENTS.md, що зберігається під час оновлення після Compaction.

Це обмежені фрагменти середовища виконання та вставлені блоки, що належать середовищу виконання, окремі від обмежень початкового завантаження, контексту запуску та підказки Skills.

toolResultMaxChars типово не задано, тому OpenClaw визначає обмеження поточного результату інструмента з ефективного вікна контексту моделі: 16000 символів для менш ніж 100 тис. токенів, 32000 символів для 100 тис. і більше токенів, 64000 символів для 200 тис. і більше токенів. Захисне обмеження частки контексту середовища виконання все одно обмежує один результат інструмента 30% від вікна контексту, навіть якщо налаштовано більшу явну верхню межу.

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

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

Для практичного розподілу (за кожним вставленим файлом, інструментами, 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/веб-TUI: підтримуються /status і /usage.
  • CLI: openclaw status --usage і openclaw channels list показують нормалізовані вікна квот провайдерів (X% left, а не вартість окремої відповіді). Поточні провайдери вікон використання: Claude (Anthropic), ClawRouter, Copilot (GitHub), DeepSeek, Gemini (Google Gemini CLI), MiniMax, OpenAI, Xiaomi, Xiaomi Token Plan і z.ai.

Перед відображенням поверхні використання нормалізують поширені власні псевдоніми полів провайдера. Для трафіку Responses сімейства OpenAI це охоплює як input_tokens/output_tokens, так і prompt_tokens/completion_tokens, тому назви полів, специфічні для транспорту, не змінюють /status, /usage або підсумки сеансу. Використання Gemini CLI також нормалізується: типовий аналізатор stream-json читає події message асистента, а stats.cached зіставляється з cacheRead; коли CLI не містить явного поля stats.input, використовується stats.input_tokens - stats.cached. Застарілі перевизначення JSON усе ще читають текст відповіді з response.

Для нативного трафіку Responses сімейства OpenAI псевдоніми використання WebSocket/SSE нормалізуються так само, а загальні значення, якщо total_tokens відсутнє або дорівнює 0, визначаються як сума нормалізованих вхідних і вихідних значень.

Коли поточний знімок сеансу містить мало даних, /status і session_status можуть відновити лічильники токенів/кешу та мітку активної моделі середовища виконання з найновішого журналу використання транскрипту. Наявні ненульові поточні значення все одно мають пріоритет над резервними значеннями з транскрипту, а більші орієнтовані на підказку підсумкові значення транскрипту можуть мати пріоритет, коли збережені підсумки відсутні або менші.

Дані автентифікації використання для вікон квот провайдера спочатку надходять зі специфічних для провайдера обробників; якщо провайдер не має обробника (або обробник не повертає токен), OpenClaw використовує як резерв відповідні облікові дані OAuth/ключа API з профілів автентифікації, змінних середовища або конфігурації.

Записи асистента в транскрипті зберігають ту саму нормалізовану структуру використання, включно з usage.cost, коли для активної моделі налаштовано ціни, а провайдер повертає метадані використання. Це надає /usage cost і стану сеансу на основі транскрипту стабільне джерело навіть після зникнення поточного стану середовища виконання.

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

Оцінювання вартості (коли відображається)

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

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

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

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

Вплив TTL кешу та очищення

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

Налаштуйте це в Конфігурації Gateway, а докладний опис поведінки див. в Очищенні сеансів.

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

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

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

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

Приклад: підтримання активності кешу тривалістю 1 год за допомогою 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" # типова базова конфігурація для більшості агентів  list:    - id: "research"      default: true      heartbeat:        every: "55m" # підтримувати активність тривалого кешу для глибоких сеансів    - id: "alerts"      params:        cacheRetention: "none" # уникати записів до кешу для нерегулярних сповіщень

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

Контекст Anthropic на 1 млн токенів

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

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

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

Вимога: облікові дані мають підтримувати використання довгого контексту. Інакше 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