chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-05-03 04:09:21 +00:00
parent b80b69dc48
commit 57356283d3

View File

@ -1,54 +1,52 @@
---
read_when:
- Ви діагностуєте відхилення запитів провайдера, пов’язані зі структурою транскрипту
- Ви змінюєте санітизацію транскрипта або логіку виправлення викликів інструментів
- Ви досліджуєте невідповідності ідентифікаторів викликів інструментів між провайдерами
summary: 'Довідка: правила санітизації та виправлення транскриптів, специфічні для провайдерів'
- Ви налагоджуєте відхилення запитів провайдера, пов’язані зі структурою транскрипту
- Ви змінюєте логіку очищення транскриптів або виправлення викликів інструментів
- Ви досліджуєте невідповідності ідентифікаторів викликів інструментів у різних провайдерів
summary: 'Довідка: правила санітизації та виправлення транскриптів, специфічні для провайдера'
title: Гігієна транскрипту
x-i18n:
generated_at: "2026-05-02T05:53:07Z"
generated_at: "2026-05-03T04:08:39Z"
model: gpt-5.5
provider: openai
source_hash: 6976d4349e47954f49c9dbf300822013851b604ed665f4ab647c62025760a96c
source_hash: ff3a364a4c4d1c0d1e03b2860396c2d7e32c554d7acd0791ed2eaadae06d35ab
source_path: reference/transcript-hygiene.md
workflow: 16
---
OpenClaw застосовує **виправлення для конкретних провайдерів** до транскриптів перед запуском (побудовою контексту моделі). Більшість із них — це коригування **в пам’яті**, які потрібні для відповідності суворим вимогам провайдерів. Окремий прохід відновлення файлу сесії також може переписувати збережений JSONL перед завантаженням сесії: або видаляючи некоректні рядки JSONL, або відновлюючи збережені turns, які синтаксично валідні, але відомо, що вони відхиляються
провайдером під час повторного відтворення. Коли відбувається відновлення, оригінальний файл резервується поруч
із файлом сесії.
OpenClaw застосовує **виправлення, специфічні для провайдера**, до транскриптів перед запуском (під час побудови контексту моделі). Більшість із них є коригуваннями **в пам’яті**, потрібними для виконання суворих вимог провайдера. Окремий прохід ремонту файлу сесії також може переписати збережений JSONL до завантаження сесії, але лише для некоректно сформованих рядків або збережених ходів, які є недійсними довготривалими записами. Доставлені відповіді assistant зберігаються на диску; специфічне для провайдера вилучення assistant-prefill відбувається лише під час формування вихідних payload. Коли відбувається ремонт, початковий файл резервно копіюється поряд із файлом сесії.
Обсяг охоплює:
Область охоплює:
- Контекст запиту лише для часу виконання, який не потрапляє до видимих користувачу turns транскрипту
- Runtime-контекст промпта, який не потрапляє до видимих користувачу ходів транскрипту
- Очищення ідентифікаторів викликів інструментів
- Валідацію вхідних даних викликів інструментів
- Відновлення парності результатів інструментів
- Валідацію / впорядкування turns
- Очищення сигнатур думок
- Очищення thinking-сигнатур
- Очищення корисного навантаження зображень
- Очищення порожніх текстових блоків перед повторним відтворенням у провайдера
- Позначення походження введення користувача (для запитів, маршрутизованих між сесіями)
- Відновлення порожніх assistant error-turns для повторного відтворення Bedrock Converse
- Ремонт парності результатів інструментів
- Валідацію / впорядкування ходів
- Очищення сигнатур thought
- Очищення сигнатур thinking
- Очищення payload зображень
- Очищення порожніх текстових блоків перед повторним відтворенням для провайдера
- Позначення походження користувацького введення (для промптів, маршрутизованих між сесіями)
- Ремонт порожнього ходу помилки assistant для повторного відтворення Bedrock Converse
Якщо вам потрібні деталі зберігання транскриптів, див.:
Якщо вам потрібні деталі зберігання транскриптів, дивіться:
- [Поглиблений огляд керування сесіями](/uk/reference/session-management-compaction)
---
## Глобальне правило: контекст часу виконання не є користувацьким транскриптом
## Глобальне правило: runtime-контекст не є транскриптом користувача
Контекст часу виконання/системний контекст може додаватися до запиту моделі для turn, але він
не є вмістом, створеним кінцевим користувачем. OpenClaw зберігає окреме тіло запиту,
призначене для транскрипту, для відповідей Gateway, чергових followups, ACP, CLI та вбудованих запусків Pi.
Збережені видимі користувацькі turns використовують це тіло транскрипту замість
запиту, збагаченого контекстом часу виконання.
Runtime/system-контекст може бути додано до промпта моделі для ходу, але це
не вміст, створений кінцевим користувачем. OpenClaw зберігає окреме тіло
промпта, орієнтоване на транскрипт, для відповідей Gateway, поставлених у чергу подальших дій, ACP, CLI та вбудованих запусків Pi.
Збережені видимі користувацькі ходи використовують це тіло транскрипту замість
промпта, збагаченого runtime-контекстом.
Для застарілих сесій, у яких уже збережено runtime-обгортки, поверхні історії Gateway
застосовують проєкцію відображення перед поверненням повідомлень клієнтам WebChat,
TUI, REST або SSE.
Для застарілих сесій, у яких уже було збережено runtime-обгортки, поверхні історії Gateway
застосовують проєкцію відображення перед поверненням повідомлень клієнтам
WebChat, TUI, REST або SSE.
---
@ -57,11 +55,11 @@ TUI, REST або SSE.
Уся гігієна транскриптів централізована у вбудованому runner:
- Вибір політики: `src/agents/transcript-policy.ts`
- Застосування очищення/відновлення: `sanitizeSessionHistory` у `src/agents/pi-embedded-runner/replay-history.ts`
- Застосування очищення/ремонту: `sanitizeSessionHistory` у `src/agents/pi-embedded-runner/replay-history.ts`
Політика використовує `provider`, `modelApi` і `modelId`, щоб вирішити, що застосовувати.
Політика використовує `provider`, `modelApi` і `modelId`, щоб визначити, що застосовувати.
Окремо від гігієни транскриптів, файли сесій відновлюються (за потреби) перед завантаженням:
Окремо від гігієни транскриптів файли сесій ремонтуються (за потреби) перед завантаженням:
- `repairSessionFileIfNeeded` у `src/agents/session-file-repair.ts`
- Викликається з `run/attempt.ts` і `compact.ts` (вбудований runner)
@ -70,10 +68,10 @@ TUI, REST або SSE.
## Глобальне правило: очищення зображень
Корисні навантаження зображень завжди очищуються, щоб запобігти відхиленню на боці провайдера через обмеження
розміру (зменшення масштабу/повторне стиснення надто великих base64-зображень).
Payload зображень завжди очищується, щоб запобігти відхиленню на боці провайдера через обмеження
розміру (зменшення масштабу/повторне стиснення завеликих base64-зображень).
Це також допомагає контролювати тиск на токени, спричинений зображеннями, для моделей із підтримкою бачення.
Це також допомагає контролювати токенне навантаження від зображень для моделей із підтримкою vision.
Менші максимальні розміри зазвичай зменшують використання токенів; більші розміри зберігають деталізацію.
Реалізація:
@ -81,17 +79,17 @@ TUI, REST або SSE.
- `sanitizeSessionMessagesImages` у `src/agents/pi-embedded-helpers/images.ts`
- `sanitizeContentBlocksImages` у `src/agents/tool-images.ts`
- Максимальна сторона зображення налаштовується через `agents.defaults.imageMaxDimensionPx` (типово: `1200`).
- Порожні текстові блоки видаляються, поки цей прохід обходить вміст повторного відтворення. Assistant
turns, які стають порожніми, вилучаються з копії повторного відтворення; user і tool-result
turns, які стають порожніми, отримують непорожній placeholder для пропущеного вмісту.
- Порожні текстові блоки видаляються, поки цей прохід обходить вміст повторного відтворення. Ходи assistant,
які стають порожніми, вилучаються з копії повторного відтворення; користувацькі ходи та ходи результатів інструментів,
які стають порожніми, отримують непорожній placeholder пропущеного вмісту.
---
## Глобальне правило: некоректні виклики інструментів
## Глобальне правило: некоректно сформовані виклики інструментів
Блоки assistant tool-call, у яких відсутні і `input`, і `arguments`, видаляються
до побудови контексту моделі. Це запобігає відхиленням провайдерами через частково
збережені виклики інструментів (наприклад, після збою через ліміт частоти).
Блоки викликів інструментів assistant, у яких відсутні і `input`, і `arguments`, вилучаються
до побудови контексту моделі. Це запобігає відхиленням провайдера через частково
збережені виклики інструментів (наприклад, після збою через обмеження швидкості).
Реалізація:
@ -102,20 +100,20 @@ TUI, REST або SSE.
## Глобальне правило: походження міжсесійного введення
Коли агент надсилає запит в іншу сесію через `sessions_send` (включно з
кроками reply/announce між агентами), OpenClaw зберігає створений user turn з:
Коли агент надсилає промпт в іншу сесію через `sessions_send` (включно з кроками
відповіді/оголошення від агента до агента), OpenClaw зберігає створений користувацький хід із:
- `message.provenance.kind = "inter_session"`
OpenClaw також додає на початок того самого turn маркер `[Inter-session message ... isUser=false]`
перед текстом маршрутизованого запиту, щоб активний виклик моделі міг відрізнити
вивід чужої сесії від зовнішніх інструкцій кінцевого користувача. Цей маркер включає
джерельну сесію, канал та інструмент, коли вони доступні. Транскрипт усе одно використовує
`role: "user"` для сумісності з провайдерами, але і видимий текст, і метадані
походження позначають turn як міжсесійні дані.
OpenClaw також додає перед текстом маршрутизованого промпта в тому самому ході маркер
`[Inter-session message ... isUser=false]`, щоб активний виклик моделі міг відрізнити
вивід сторонньої сесії від зовнішніх інструкцій кінцевого користувача. Цей маркер містить
джерельну сесію, канал та інструмент, коли вони доступні. Транскрипт усе ще використовує
`role: "user"` для сумісності з провайдерами, але видимий текст і метадані походження
позначають цей хід як міжсесійні дані.
Під час перебудови контексту OpenClaw застосовує такий самий маркер до старіших збережених
міжсесійних user turns, які мають лише метадані походження.
Під час повторної побудови контексту OpenClaw застосовує той самий маркер до старіших збережених
міжсесійних користувацьких ходів, які мають лише метадані походження.
---
@ -124,71 +122,71 @@ OpenClaw також додає на початок того самого turn м
**OpenAI / OpenAI Codex**
- Лише очищення зображень.
- Видаляє осиротілі reasoning-сигнатури (окремі reasoning-елементи без наступного content-блоку) для транскриптів OpenAI Responses/Codex і видаляє придатний до повторного відтворення OpenAI reasoning після перемикання маршруту моделі.
- Зберігає корисні навантаження reasoning-елементів OpenAI Responses, придатні до повторного відтворення, включно із зашифрованими елементами з порожнім summary, щоб ручне/WebSocket повторне відтворення зберігало потрібний стан `rs_*` у парі з елементами виводу assistant.
- Вилучення осиротілих reasoning-сигнатур (окремих reasoning-елементів без наступного content-блоку) для транскриптів OpenAI Responses/Codex, а також вилучення придатного до повторного відтворення reasoning OpenAI після перемикання маршруту моделі.
- Збереження payload reasoning-елементів OpenAI Responses, придатних до повторного відтворення, включно із зашифрованими елементами з порожнім summary, щоб ручне/WebSocket-відтворення зберігало потрібний стан `rs_*` у парі з елементами виводу assistant.
- Без очищення ідентифікаторів викликів інструментів.
- Відновлення парності результатів інструментів може переміщувати реальні зіставлені outputs і синтезувати outputs у стилі Codex зі станом `aborted` для відсутніх викликів інструментів.
- Без валідації або перевпорядкування turns.
- Відсутні outputs інструментів сімейства OpenAI Responses синтезуються як `aborted`, щоб відповідати нормалізації повторного відтворення Codex.
- Без вилучення сигнатур думок.
- Ремонт парності результатів інструментів може переміщувати справжні зіставлені виводи та синтезувати Codex-style виводи `aborted` для відсутніх викликів інструментів.
- Без валідації чи перевпорядкування ходів.
- Відсутні виводи інструментів сімейства OpenAI Responses синтезуються як `aborted`, щоб відповідати нормалізації повторного відтворення Codex.
- Без вилучення сигнатур thought.
**OpenAI-сумісна Gemma 4**
- Історичні блоки thinking/reasoning assistant вилучаються перед повторним відтворенням, щоб локальні
OpenAI-сумісні сервери Gemma 4 не отримували reasoning-вміст із попередніх turns.
- Поточні продовження tool-call у тому самому turn зберігають reasoning-блок assistant,
- Історичні thinking/reasoning-блоки assistant вилучаються перед повторним відтворенням, щоб локальні
OpenAI-сумісні сервери Gemma 4 не отримували reasoning-вміст із попередніх ходів.
- Поточні продовження викликів інструментів у межах того самого ходу зберігають reasoning-блок assistant,
прикріплений до виклику інструмента, доки результат інструмента не буде повторно відтворено.
**Google (Generative AI / Gemini CLI / Antigravity)**
- Очищення ідентифікаторів викликів інструментів: суворо буквено-цифрові.
- Відновлення парності результатів інструментів і синтетичні результати інструментів.
- Валідація turns (чергування turns у стилі Gemini).
- Виправлення порядку turns для Google (додає на початок крихітний користувацький bootstrap, якщо історія починається з assistant).
- Antigravity Claude: нормалізує thinking-сигнатури; видаляє непідписані thinking-блоки.
- Очищення ідентифікаторів викликів інструментів: суворо літерно-цифрові.
- Ремонт парності результатів інструментів і синтетичні результати інструментів.
- Валідація ходів (чергування ходів у стилі Gemini).
- Виправлення порядку ходів Google (додавання крихітного користувацького bootstrap на початок, якщо історія починається з assistant).
- Antigravity Claude: нормалізація thinking-сигнатур; вилучення непідписаних thinking-блоків.
**Anthropic / Minimax (Anthropic-сумісний)**
- Відновлення парності результатів інструментів і синтетичні результати інструментів.
- Валідація turns (об’єднує послідовні user turns, щоб задовольнити суворе чергування).
- Кінцеві assistant prefill turns вилучаються з вихідних корисних навантажень Anthropic Messages,
- Ремонт парності результатів інструментів і синтетичні результати інструментів.
- Валідація ходів (об’єднання послідовних користувацьких ходів для дотримання суворого чергування).
- Кінцеві ходи assistant prefill вилучаються з вихідних payload Anthropic Messages,
коли thinking увімкнено, включно з маршрутами Cloudflare AI Gateway.
- Thinking-блоки з відсутніми, порожніми або blank replay-сигнатурами вилучаються
перед конвертацією для провайдера. Якщо через це assistant turn стає порожнім, OpenClaw зберігає
форму turn з непорожнім текстом omitted-reasoning.
- Старіші thinking-only assistant turns, які потрібно вилучити, замінюються
непорожнім текстом omitted-reasoning, щоб адаптери провайдерів не відкидали replay
turn.
перед перетворенням для провайдера. Якщо це спорожнює хід assistant, OpenClaw зберігає
форму ходу з непорожнім текстом omitted-reasoning.
- Старіші ходи assistant лише з thinking, які потрібно вилучити, замінюються
непорожнім текстом omitted-reasoning, щоб адаптери провайдера не відкидали хід
повторного відтворення.
**Amazon Bedrock (Converse API)**
- Порожні assistant stream-error turns відновлюються до непорожнього fallback-текстового блоку
перед повторним відтворенням. Bedrock Converse відхиляє повідомлення assistant з `content: []`, тому
збережені assistant turns з `stopReason: "error"` і порожнім вмістом також
відновлюються на диску перед завантаженням.
- Assistant stream-error turns, які містять лише порожні текстові блоки, вилучаються
з копії повторного відтворення в пам’яті замість відтворення некоректного порожнього блоку.
- Порожні ходи помилки потоку assistant ремонтуються до непорожнього fallback-текстового блоку
перед повторним відтворенням. Bedrock Converse відхиляє повідомлення assistant із `content: []`, тому
збережені ходи assistant із `stopReason: "error"` і порожнім вмістом також
ремонтуються на диску перед завантаженням.
- Ходи помилки потоку assistant, які містять лише порожні текстові блоки, вилучаються
з копії повторного відтворення в пам’яті замість відтворення недійсного порожнього блоку.
- Claude thinking-блоки з відсутніми, порожніми або blank replay-сигнатурами
вилучаються перед повторним відтворенням Converse. Якщо через це assistant turn стає порожнім, OpenClaw
зберігає форму turn з непорожнім текстом omitted-reasoning.
- Старіші thinking-only assistant turns, які потрібно вилучити, замінюються
непорожнім текстом omitted-reasoning, щоб replay Converse зберігав сувору форму turns.
- Replay фільтрує delivery-mirror OpenClaw і gateway-injected assistant turns.
вилучаються перед повторним відтворенням Converse. Якщо це спорожнює хід assistant, OpenClaw
зберігає форму ходу з непорожнім текстом omitted-reasoning.
- Старіші ходи assistant лише з thinking, які потрібно вилучити, замінюються
непорожнім текстом omitted-reasoning, щоб повторне відтворення Converse зберігало сувору форму ходів.
- Повторне відтворення фільтрує delivery-mirror OpenClaw і gateway-injected ходи assistant.
- Очищення зображень застосовується через глобальне правило.
**Mistral (включно з виявленням на основі model-id)**
- Очищення ідентифікаторів викликів інструментів: strict9 (буквено-цифрові, довжина 9).
- Очищення ідентифікаторів викликів інструментів: strict9 (літерно-цифрові довжиною 9).
**OpenRouter Gemini**
- Очищення сигнатур думок: вилучає не-base64 значення `thought_signature` (залишає base64).
- Очищення сигнатур thought: вилучення не-base64 значень `thought_signature` (base64 зберігається).
**OpenRouter Anthropic**
- Кінцеві assistant prefill turns вилучаються з перевірених корисних навантажень OpenRouter
OpenAI-сумісних моделей Anthropic, коли reasoning увімкнено, відповідно до
поведінки повторного відтворення прямого Anthropic і Cloudflare Anthropic.
- Кінцеві ходи assistant prefill вилучаються з перевірених OpenRouter
OpenAI-сумісних payload моделей Anthropic, коли reasoning увімкнено, відповідно до
поведінки повторного відтворення direct Anthropic і Cloudflare Anthropic.
**Усе інше**
@ -198,20 +196,20 @@ OpenClaw також додає на початок того самого turn м
## Історична поведінка (до 2026.1.22)
До випуску 2026.1.22 OpenClaw застосовував кілька шарів гігієни транскриптів:
До релізу 2026.1.22 OpenClaw застосовував кілька шарів гігієни транскриптів:
- **transcript-sanitize extension** виконувався під час кожної побудови контексту і міг:
- Відновлювати парність tool use/result.
- Очищати ідентифікатори викликів інструментів (включно з несуворим режимом, який зберігав `_`/`-`).
- Runner також виконував очищення для конкретних провайдерів, що дублювало роботу.
- Додаткові мутації відбувалися поза політикою провайдера, включно з:
- Вилученням тегів `<final>` з тексту assistant перед збереженням.
- Видаленням порожніх assistant error turns.
- Обрізанням вмісту assistant після викликів інструментів.
- **transcript-sanitize extension** запускався під час кожної побудови контексту та міг:
- Ремонтувати парність tool use/result.
- Очищувати ідентифікатори викликів інструментів (включно з несуворим режимом, який зберігав `_`/`-`).
- Runner також виконував очищення, специфічне для провайдера, що дублювало роботу.
- Додаткові мутації відбувалися поза політикою провайдера, зокрема:
- Вилучення тегів `<final>` із тексту assistant перед збереженням.
- Відкидання порожніх ходів помилок assistant.
- Обрізання вмісту assistant після викликів інструментів.
Ця складність спричиняла регресії між провайдерами (зокрема парність `openai-responses`
`call_id|fc_id`). Очищення 2026.1.22 прибрало extension, централізувало
логіку в runner і зробило OpenAI **недоторканним** за межами очищення зображень.
логіку в runner і зробило OpenAI **no-touch** поза очищенням зображень.
## Пов’язане