From 57356283d35d3d51097fb7b1daaba482ed59fc17 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Sun, 3 May 2026 04:09:21 +0000 Subject: [PATCH] chore(i18n): refresh uk translations --- docs/uk/reference/transcript-hygiene.md | 198 ++++++++++++------------ 1 file changed, 98 insertions(+), 100 deletions(-) diff --git a/docs/uk/reference/transcript-hygiene.md b/docs/uk/reference/transcript-hygiene.md index 94b64628d..26e217e4a 100644 --- a/docs/uk/reference/transcript-hygiene.md +++ b/docs/uk/reference/transcript-hygiene.md @@ -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 також виконував очищення для конкретних провайдерів, що дублювало роботу. -- Додаткові мутації відбувалися поза політикою провайдера, включно з: - - Вилученням тегів `` з тексту assistant перед збереженням. - - Видаленням порожніх assistant error turns. - - Обрізанням вмісту assistant після викликів інструментів. +- **transcript-sanitize extension** запускався під час кожної побудови контексту та міг: + - Ремонтувати парність tool use/result. + - Очищувати ідентифікатори викликів інструментів (включно з несуворим режимом, який зберігав `_`/`-`). +- Runner також виконував очищення, специфічне для провайдера, що дублювало роботу. +- Додаткові мутації відбувалися поза політикою провайдера, зокрема: + - Вилучення тегів `` із тексту assistant перед збереженням. + - Відкидання порожніх ходів помилок assistant. + - Обрізання вмісту assistant після викликів інструментів. Ця складність спричиняла регресії між провайдерами (зокрема парність `openai-responses` `call_id|fc_id`). Очищення 2026.1.22 прибрало extension, централізувало -логіку в runner і зробило OpenAI **недоторканним** за межами очищення зображень. +логіку в runner і зробило OpenAI **no-touch** поза очищенням зображень. ## Пов’язане