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.
- Нативні ходи Codex не вставляють необроблений вміст
- Час (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.
Оцінювання вартості (коли відображається)
Вартість оцінюється на основі вашої конфігурації цін моделі:
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
agents: defaults: model: primary: "anthropic/claude-opus-4-6" models: "anthropic/claude-opus-4-6": params: cacheRetention: "long" heartbeat: every: "55m"Приклад: змішаний трафік зі стратегією кешування для кожного агента
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.
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.