Technical reference

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • /statusстатусна картка з багатьма емодзі з моделлю сесії, використанням контексту, токенами введення/виведення останньої відповіді та орієнтовною вартістю (лише API-ключ).
  • /usage off|tokens|full → додає футер використання для кожної відповіді до кожної відповіді.
    • Зберігається для сесії (зберігається як responseUsage).
    • Авторизація OAuth приховує вартість (лише токени).
  • /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 або підсумки сесій. Використання JSON Gemini CLI також нормалізується: текст відповіді береться з response, а stats.cached відображається на cacheRead, причому stats.input_tokens - stats.cached використовується, коли CLI не надає явного поля stats.input. Для нативного трафіку Responses сімейства OpenAI псевдоніми використання WebSocket/SSE нормалізуються так само, а підсумки повертаються до нормалізованого введення + виведення, коли total_tokens відсутній або дорівнює 0. Коли поточний знімок сесії розріджений, /status і session_status також можуть відновити лічильники токенів/кешу та мітку активної моделі виконання з найновішого журналу використання транскрипта. Наявні ненульові живі значення все одно мають перевагу над резервними значеннями з транскрипта, а більші підсумки транскрипта, орієнтовані на промпт, можуть перемогти, коли збережені підсумки відсутні або менші. Авторизація використання для вікон квот провайдера надходить із провайдер-специфічних хуків, коли доступна; інакше OpenClaw повертається до відповідних облікових даних OAuth/API-ключа з профілів авторизації, env або конфігурації. Записи транскрипта асистента зберігають ту саму нормалізовану форму використання, включно з usage.cost, коли активна модель має налаштоване ціноутворення, а провайдер повертає метадані використання. Це дає /usage cost і статусу сесії на основі транскрипта стабільне джерело навіть після зникнення живого стану виконання.

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

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

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

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

Це USD за 1M токенів для input, output, cacheRead і cacheWrite. Якщо ціноутворення відсутнє, OpenClaw показує лише токени. Токени OAuth ніколи не показують доларову вартість.

Після того як сайдкари й канали доходять до готового шляху 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 читання кешу значно дешевші за вхідні токени, тоді як записи кешу тарифікуються з вищим множником. Актуальні ставки та множники TTL див. у ціноутворенні кешування промптів Anthropic: https://docs.anthropic.com/docs/build-with-claude/prompt-caching

Приклад: підтримувати 1h кеш теплим за допомогою 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" # 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

Вікно контексту Anthropic 1M наразі доступне через бета-обмеження. OpenClaw може ін’єктувати потрібне значення anthropic-beta, коли ви вмикаєте context1m на підтримуваних моделях Opus або Sonnet.

agents:
  defaults:
    models:
      "anthropic/claude-opus-4-6":
        params:
          context1m: true

Це відображається на бета-заголовок Anthropic context-1m-2025-08-07.

Це застосовується лише тоді, коли context1m: true встановлено в записі цієї моделі.

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

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

Поради для зменшення тиску токенів

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

Точну формулу накладних витрат списку Skills див. у Skills.

Пов’язане