docs/docs/uk/tools/thinking.md
2026-05-04 18:20:02 +00:00

23 KiB
Raw Blame History

read_when summary title x-i18n
Налаштування парсингу або стандартних значень для мислення, швидкого режиму чи докладної директиви
Синтаксис директив для /think, /fast, /verbose, /trace і видимості міркувань Рівні мислення
generated_at model provider source_hash source_path workflow
2026-05-04T18:18:28Z gpt-5.5 openai fcd1cd76ca5d0b08656e0629df656ad8aa037201d8de68093b3e46eb0708f811 tools/thinking.md 16

Що це робить

  • Вбудована директива в будь-якому вхідному тілі: /t <level>, /think:<level> або /thinking <level>.
  • Рівні (псевдоніми): off | minimal | low | medium | high | xhigh | adaptive | max
    • minimal → “think”
    • low → “think hard”
    • medium → “think harder”
    • high → “ultrathink” (максимальний бюджет)
    • xhigh → “ultrathink+” (моделі GPT-5.2+ і Codex, а також Anthropic Claude Opus 4.7 effort)
    • adaptive → адаптивне мислення, кероване провайдером (підтримується для Claude 4.6 в Anthropic/Bedrock, Anthropic Claude Opus 4.7 і Google Gemini dynamic thinking)
    • max → максимальне міркування провайдера (Anthropic Claude Opus 4.7; Ollama зіставляє це зі своїм найвищим нативним рівнем think)
    • x-high, x_high, extra-high, extra high і extra_high зіставляються з xhigh.
    • highest зіставляється з high.
  • Нотатки щодо провайдерів:
    • Меню та вибір мислення керуються профілем провайдера. Provider plugins оголошують точний набір рівнів для вибраної моделі, зокрема мітки на кшталт бінарного on.
    • adaptive, xhigh і max рекламуються лише для профілів провайдера/моделі, які їх підтримують. Типізовані директиви для непідтримуваних рівнів відхиляються з коректними параметрами для цієї моделі.
    • Наявні збережені непідтримувані рівні перепризначаються за рангом профілю провайдера. adaptive повертається до medium на неадаптивних моделях, а xhigh і max повертаються до найбільшого підтримуваного не-off рівня для вибраної моделі.
    • Моделі Anthropic Claude 4.6 за замовчуванням використовують adaptive, коли явний рівень мислення не задано.
    • Anthropic Claude Opus 4.7 не використовує адаптивне мислення за замовчуванням. Його типовий API effort лишається під контролем провайдера, якщо ви явно не задасте рівень мислення.
    • Anthropic Claude Opus 4.7 зіставляє /think xhigh з адаптивним мисленням плюс output_config.effort: "xhigh", тому що /think є директивою мислення, а xhigh є налаштуванням effort для Opus 4.7.
    • Anthropic Claude Opus 4.7 також надає /think max; це зіставляється з тим самим шляхом максимального effort, керованим провайдером.
    • Моделі DeepSeek V4 надають /think xhigh|max; обидва зіставляються з DeepSeek reasoning_effort: "max", тоді як нижчі не-off рівні зіставляються з high.
    • Моделі Ollama з підтримкою мислення надають /think low|medium|high|max; max зіставляється з нативним think: "high", тому що нативний API Ollama приймає рядки effort low, medium і high.
    • Моделі OpenAI GPT зіставляють /think через підтримку effort у Responses API, специфічну для моделі. /think off надсилає reasoning.effort: "none" лише тоді, коли цільова модель це підтримує; інакше OpenClaw пропускає вимкнене корисне навантаження міркування замість надсилання непідтримуваного значення.
    • Користувацькі сумісні з OpenAI записи каталогу можуть увімкнути підтримку /think xhigh, задавши models.providers.<provider>.models[].compat.supportedReasoningEfforts так, щоб він містив "xhigh". Це використовує ті самі метадані сумісності, які зіставляють вихідні корисні навантаження OpenAI reasoning effort, тож меню, валідація сеансу, agent CLI і llm-task узгоджуються з поведінкою транспорту.
    • Застарілі налаштовані посилання OpenRouter Hunter Alpha пропускають інʼєкцію проксі-міркування, тому що цей вилучений маршрут міг повертати текст фінальної відповіді через поля міркування.
    • Google Gemini зіставляє /think adaptive з керованим провайдером dynamic thinking Gemini. Запити Gemini 3 пропускають фіксований thinkingLevel, тоді як запити Gemini 2.5 надсилають thinkingBudget: -1; фіксовані рівні й далі зіставляються з найближчим Gemini thinkingLevel або бюджетом для цієї сімʼї моделей.
    • MiniMax (minimax/*) на Anthropic-сумісному потоковому шляху за замовчуванням використовує thinking: { type: "disabled" }, якщо ви явно не задасте мислення в параметрах моделі або параметрах запиту. Це запобігає витоку дельт reasoning_content із ненативного потокового формату Anthropic від MiniMax.
    • Z.AI (zai/*) підтримує лише бінарне мислення (on/off). Будь-який не-off рівень вважається on (зіставляється з low).
    • Moonshot (moonshot/*) зіставляє /think off з thinking: { type: "disabled" }, а будь-який не-off рівень з thinking: { type: "enabled" }. Коли мислення увімкнене, Moonshot приймає лише tool_choice auto|none; OpenClaw нормалізує несумісні значення до auto.

Порядок визначення

  1. Вбудована директива в повідомленні (застосовується лише до цього повідомлення).
  2. Перевизначення сеансу (задається надсиланням повідомлення лише з директивою).
  3. Типове значення для агента (agents.list[].thinkingDefault у конфігурації).
  4. Глобальне типове значення (agents.defaults.thinkingDefault у конфігурації).
  5. Резервний варіант: оголошене провайдером типове значення, якщо доступне; інакше моделі з підтримкою міркування визначаються як medium або найближчий підтримуваний не-off рівень для цієї моделі, а моделі без міркування лишаються off.

Налаштування типового значення сеансу

  • Надішліть повідомлення, яке містить лише директиву (пробіли дозволені), наприклад /think:medium або /t high.
  • Це закріплюється для поточного сеансу (типово для кожного відправника); очищується через /think:off або скидання після простою сеансу.
  • Надсилається відповідь-підтвердження (Thinking level set to high. / Thinking disabled.). Якщо рівень некоректний (наприклад, /thinking big), команда відхиляється з підказкою, а стан сеансу лишається незмінним.
  • Надішліть /think (або /think:) без аргументу, щоб побачити поточний рівень мислення.

Застосування за агентом

  • Вбудований Pi: визначений рівень передається в рантайм агента Pi в межах процесу.
  • Бекенд Claude CLI: не-off рівні передаються в Claude Code як --effort під час використання claude-cli; див. CLI-бекенди.

Швидкий режим (/fast)

  • Рівні: on|off.
  • Повідомлення лише з директивою перемикає перевизначення швидкого режиму сеансу й відповідає Fast mode enabled. / Fast mode disabled..
  • Надішліть /fast (або /fast status) без режиму, щоб побачити поточний ефективний стан швидкого режиму.
  • OpenClaw визначає швидкий режим у такому порядку:
    1. Вбудована директива або повідомлення лише з директивою /fast on|off
    2. Перевизначення сеансу
    3. Типове значення для агента (agents.list[].fastModeDefault)
    4. Конфігурація для моделі: agents.defaults.models["<provider>/<model>"].params.fastMode
    5. Резервний варіант: off
  • Для openai/* швидкий режим зіставляється з пріоритетною обробкою OpenAI через надсилання service_tier=priority у підтримуваних запитах Responses.
  • Для openai-codex/* швидкий режим надсилає той самий прапорець service_tier=priority у Codex Responses. OpenClaw зберігає один спільний перемикач /fast для обох шляхів автентифікації.
  • Для прямих публічних запитів anthropic/*, зокрема OAuth-автентифікованого трафіку, надісланого до api.anthropic.com, швидкий режим зіставляється з рівнями сервісу Anthropic: /fast on задає service_tier=auto, /fast off задає service_tier=standard_only.
  • Для minimax/* на Anthropic-сумісному шляху /fast on (або params.fastMode: true) переписує MiniMax-M2.7 на MiniMax-M2.7-highspeed.
  • Явні параметри моделі Anthropic serviceTier / service_tier перевизначають типове значення швидкого режиму, коли задано обидва. OpenClaw і далі пропускає інʼєкцію рівня сервісу Anthropic для базових URL проксі, які не є Anthropic.
  • /status показує Fast лише тоді, коли швидкий режим увімкнено.

Директиви докладності (/verbose або /v)

  • Рівні: on (мінімальний) | full | off (типово).
  • Повідомлення лише з директивою перемикає докладність сеансу й відповідає Verbose logging enabled. / Verbose logging disabled.; некоректні рівні повертають підказку без зміни стану.
  • /verbose off зберігає явне перевизначення сеансу; очистьте його через UI сеансів, вибравши inherit.
  • Вбудована директива впливає лише на це повідомлення; інакше застосовуються типові значення сеансу/глобальні типові значення.
  • Надішліть /verbose (або /verbose:) без аргументу, щоб побачити поточний рівень докладності.
  • Коли докладність увімкнена, агенти, що виводять структуровані результати інструментів (Pi, інші JSON-агенти), надсилають кожен виклик інструмента назад як окреме повідомлення лише з метаданими, з префіксом <emoji> <tool-name>: <arg>, коли доступно. Ці підсумки інструментів надсилаються одразу після запуску кожного інструмента (окремі бульбашки), а не як потокові дельти.
  • Підсумки помилок інструментів лишаються видимими у звичайному режимі, але суфікси з необробленими деталями помилок приховані, якщо докладність не on або full.
  • Коли докладність дорівнює full, результати інструментів також пересилаються після завершення (окрема бульбашка, обрізана до безпечної довжини). Якщо перемкнути /verbose on|full|off, поки виконання триває, наступні бульбашки інструментів врахують нове налаштування.
  • agents.defaults.toolProgressDetail керує формою підсумків інструментів /verbose і рядків інструментів у чернетках прогресу. Використовуйте "explain" (типово) для компактних зрозумілих міток на кшталт 🛠️ Exec: checking JS syntax; використовуйте "raw", коли також потрібно додавати необроблену команду/деталі для налагодження. agents.list[].toolProgressDetail для окремого агента перевизначає типове значення.
    • explain: 🛠️ Exec: check JS syntax for /tmp/app.js
    • raw: 🛠️ Exec: check JS syntax for /tmp/app.js, node --check /tmp/app.js

Директиви трасування Plugin (/trace)

  • Рівні: on | off (типово).
  • Повідомлення лише з директивою перемикає вивід трасування Plugin у сеансі й відповідає Plugin trace enabled. / Plugin trace disabled..
  • Вбудована директива впливає лише на це повідомлення; інакше застосовуються типові значення сеансу/глобальні типові значення.
  • Надішліть /trace (або /trace:) без аргументу, щоб побачити поточний рівень трасування.
  • /trace вужчий за /verbose: він показує лише рядки трасування/налагодження, що належать Plugin, наприклад підсумки налагодження Active Memory.
  • Рядки трасування можуть зʼявлятися в /status і як подальше діагностичне повідомлення після звичайної відповіді асистента.

Видимість міркування (/reasoning)

  • Рівні: on|off|stream.
  • Повідомлення лише з директивою перемикає, чи показуються блоки мислення у відповідях.
  • Коли увімкнено, міркування надсилається як окреме повідомлення з префіксом Reasoning:.
  • stream (лише Telegram): транслює міркування в чернеткову бульбашку Telegram, поки генерується відповідь, а потім надсилає фінальну відповідь без міркування.
  • Псевдонім: /reason.
  • Надішліть /reasoning (або /reasoning:) без аргументу, щоб побачити поточний рівень міркування.
  • Порядок визначення: вбудована директива, потім перевизначення сеансу, потім типове значення для агента (agents.list[].reasoningDefault), потім резервний варіант (off).

Некоректні теги міркування локальних моделей обробляються консервативно. Закриті блоки <think>...</think> лишаються прихованими у звичайних відповідях, а незакрите міркування після вже видимого тексту також приховується. Якщо відповідь повністю обгорнута в один незакритий початковий тег і інакше була б доставлена як порожній текст, OpenClaw видаляє некоректний початковий тег і доставляє решту тексту.

Повʼязане

Heartbeat

  • Тіло зонду Heartbeat є налаштованим запитом heartbeat (типово: Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.). Вбудовані директиви в повідомленні heartbeat застосовуються як зазвичай (але уникайте зміни типових значень сеансу з heartbeat).
  • Доставка Heartbeat за замовчуванням обмежується лише фінальним корисним навантаженням. Щоб також надсилати окреме повідомлення Reasoning: (коли доступно), задайте agents.defaults.heartbeat.includeReasoning: true або для окремого агента agents.list[].heartbeat.includeReasoning: true.

UI вебчату

  • Селектор мислення вебчату віддзеркалює збережений рівень сеансу зі сховища/конфігурації вхідного сеансу під час завантаження сторінки.
  • Вибір іншого рівня негайно записує перевизначення сеансу через sessions.patch; він не чекає наступного надсилання й не є одноразовим перевизначенням thinkingOnce.
  • Перший параметр завжди Default (<resolved level>), де визначене типове значення береться з профілю мислення провайдера активної моделі сеансу плюс та сама резервна логіка, яку використовують /status і session_status.
  • Селектор використовує thinkingLevels, повернені рядком/типовими значеннями сеансу Gateway, а thinkingOptions збережено як застарілий список міток. UI браузера не зберігає власний список регулярних виразів провайдерів; plugins володіють наборами рівнів, специфічними для моделей.
  • /think:<level> і далі працює та оновлює той самий збережений рівень сеансу, тож директиви чату й селектор лишаються синхронізованими.

Профілі провайдерів

  • Plugin провайдерів можуть надавати resolveThinkingProfile(ctx), щоб визначати підтримувані моделлю рівні та значення за замовчуванням.
  • Plugin провайдерів, які проксіюють моделі Claude, мають повторно використовувати resolveClaudeThinkingProfile(modelId) з openclaw/plugin-sdk/provider-model-shared, щоб прямі каталоги Anthropic і проксі-каталоги залишалися узгодженими.
  • Кожен рівень профілю має збережений канонічний id (off, minimal, low, medium, high, xhigh, adaptive або max) і може містити відображуваний label. Бінарні провайдери використовують { id: "low", label: "on" }.
  • Tool Plugin, яким потрібно перевіряти явне перевизначення мислення, мають використовувати api.runtime.agent.resolveThinkingPolicy({ provider, model }) разом із api.runtime.agent.normalizeThinkingLevel(...); вони не повинні зберігати власні списки рівнів провайдера/моделі.
  • Tool Plugin із доступом до налаштованих метаданих користувацької моделі можуть передавати catalog у resolveThinkingPolicy, щоб opt-in compat.supportedReasoningEfforts відображалися у валідації на боці Plugin.
  • Опубліковані застарілі хуки (supportsXHighThinking, isBinaryThinking і resolveDefaultThinkingLevel) залишаються адаптерами сумісності, але нові користувацькі набори рівнів мають використовувати resolveThinkingProfile.
  • Рядки/значення за замовчуванням Gateway надають thinkingLevels, thinkingOptions і thinkingDefault, щоб клієнти ACP/чату відображали ті самі ідентифікатори й мітки профілю, які використовує валідація під час виконання.