diff --git a/docs/uk/help/gpt54-codex-agentic-parity-maintainers.md b/docs/uk/help/gpt54-codex-agentic-parity-maintainers.md index 159cb8fe7..62d2d9427 100644 --- a/docs/uk/help/gpt54-codex-agentic-parity-maintainers.md +++ b/docs/uk/help/gpt54-codex-agentic-parity-maintainers.md @@ -1,121 +1,126 @@ --- +read_when: + - Перегляд серії PR для паритету GPT-5.4 / Codex + - Підтримка шести-контрактної агентної архітектури, що лежить в основі програми паритету +summary: Як переглянути програму паритету GPT-5.4 / Codex як чотири одиниці злиття +title: Примітки для мейнтейнерів щодо паритету GPT-5.4 / Codex x-i18n: - generated_at: "2026-04-11T13:24:07Z" + generated_at: "2026-04-21T21:37:37Z" model: gpt-5.4 provider: openai - source_hash: 910bcf7668becf182ef48185b43728bf2fa69629d6d50189d47d47b06f807a9e + source_hash: b872d6a33b269c01b44537bfa8646329063298fdfcd3671a17d0eadbc9da5427 source_path: help/gpt54-codex-agentic-parity-maintainers.md workflow: 15 --- -# Нотатки для супроводжувачів щодо паритету GPT-5.4 / Codex +# Примітки для мейнтейнерів щодо паритету GPT-5.4 / Codex -У цій нотатці пояснюється, як розглядати програму паритету GPT-5.4 / Codex як чотири одиниці злиття, не втрачаючи при цьому початкову архітектуру з шести контрактів. +У цій примітці пояснюється, як переглядати програму паритету GPT-5.4 / Codex як чотири одиниці злиття, не втрачаючи початкову архітектуру з шістьма контрактами. ## Одиниці злиття -### PR A: суворе agentic-виконання +### PR A: суворо агентне виконання -Володіє: +Охоплює: - `executionContract` -- GPT-5-first same-turn follow-through -- `update_plan` як нетермінальне відстеження прогресу -- явні заблоковані стани замість тихих зупинок лише через план +- GPT-5-first доведення в межах того самого ходу +- `update_plan` як невихідне відстеження прогресу +- явні заблоковані стани замість тихих зупинок лише на плані -Не володіє: +Не охоплює: -- класифікацією збоїв автентифікації/середовища виконання -- правдивістю щодо дозволів -- переробкою повтору/продовження -- бенчмаркінгом паритету +- класифікацію збоїв auth/runtime +- правдивість дозволів +- переробку replay/continuation +- бенчмаркінг паритету -### PR B: правдивість середовища виконання +### PR B: правдивість runtime -Володіє: +Охоплює: -- коректністю Codex OAuth scope -- типізованою класифікацією збоїв провайдера/середовища виконання -- правдивою доступністю `/elevated full` і причинами блокування +- коректність області дії Codex OAuth +- типізовану класифікацію збоїв provider/runtime +- правдиву доступність `/elevated full` і причини блокування -Не володіє: +Не охоплює: -- нормалізацією схем інструментів -- станом повтору/живучості -- керуванням бенчмарком +- нормалізацію схеми інструментів +- стан replay/liveness +- керування бенчмарками ### PR C: коректність виконання -Володіє: +Охоплює: -- сумісністю інструментів OpenAI/Codex, що належить провайдеру -- суворою обробкою схем без параметрів -- відображенням replay-invalid -- видимістю станів paused, blocked і abandoned для довготривалих завдань +- сумісність інструментів OpenAI/Codex, якою володіє provider +- обробку суворої схеми без параметрів +- відображення replay-invalid +- видимість станів paused, blocked і abandoned для довгих завдань -Не володіє: +Не охоплює: -- самостійно обраним продовженням -- загальною поведінкою діалекту Codex поза хуками провайдера -- керуванням бенчмарком +- continuation, самостійно обрану системою +- загальну поведінку діалекту Codex поза хуками provider +- керування бенчмарками -### PR D: harness паритету +### PR D: каркас паритету -Володіє: +Охоплює: -- першим пакетом сценаріїв GPT-5.4 vs Opus 4.6 -- документацією щодо паритету -- механікою звіту про паритет і release-gate +- першу хвилю набору сценаріїв GPT-5.4 vs Opus 4.6 +- документацію паритету +- механіку звіту про паритет і gate для релізу -Не володіє: +Не охоплює: -- змінами поведінки середовища виконання поза QA-lab -- симуляцією auth/proxy/DNS усередині harness +- зміни поведінки runtime поза QA-lab +- симуляцію auth/proxy/DNS усередині каркаса -## Відображення назад до початкових шести контрактів +## Відображення назад на початкові шість контрактів | Початковий контракт | Одиниця злиття | | --------------------------------------- | -------------- | -| Коректність транспорту/автентифікації провайдера | PR B | +| Коректність transport/auth provider | PR B | | Сумісність контракту/схеми інструментів | PR C | -| Виконання в тому ж ході | PR A | -| Правдивість щодо дозволів | PR B | -| Коректність повтору/продовження/живучості | PR C | -| Бенчмарк/release gate | PR D | +| Виконання в межах того самого ходу | PR A | +| Правдивість дозволів | PR B | +| Коректність replay/continuation/liveness | PR C | +| Бенчмарк/gate релізу | PR D | -## Порядок рев’ю +## Порядок перегляду 1. PR A 2. PR B 3. PR C 4. PR D -PR D — це доказовий шар. Він не повинен бути причиною, через яку затримуються PR з коректністю середовища виконання. +PR D — це рівень доказів. Він не повинен бути причиною затримки PR-ів із коректністю runtime. ## На що звертати увагу ### PR A -- GPT-5 runs виконують дію або завершуються з fail closed, а не зупиняються на коментарі +- запуски GPT-5 або виконують дію, або завершуються в закритий спосіб, замість зупинки на коментарі - `update_plan` більше не виглядає як прогрес сам по собі -- поведінка лишається GPT-5-first і scoped для embedded-Pi +- поведінка лишається GPT-5-first і обмеженою сферою embedded-Pi ### PR B -- збої auth/proxy/runtime більше не зводяться до загальної обробки “model failed” +- збої auth/proxy/runtime більше не згортаються до загальної обробки “model failed” - `/elevated full` описується як доступний лише тоді, коли він справді доступний -- причини блокування видимі як моделі, так і user-facing runtime +- причини блокування видимі і для моделі, і для user-facing runtime ### PR C - сувора реєстрація інструментів OpenAI/Codex поводиться передбачувано -- інструменти без параметрів не провалюють перевірки strict schema -- результати replay і compaction зберігають правдивий стан живучості +- інструменти без параметрів не провалюють перевірки суворої схеми +- результати replay і Compaction зберігають правдивий стан liveness ### PR D -- пакет сценаріїв зрозумілий і відтворюваний -- пакет включає mutating replay-safety lane, а не лише read-only flows +- набір сценаріїв зрозумілий і відтворюваний +- набір містить смугу mutating replay-safety, а не лише read-only потоки - звіти читабельні для людей і автоматизації - твердження про паритет підкріплені доказами, а не анекдотичні @@ -123,15 +128,15 @@ PR D — це доказовий шар. Він не повинен бути п - `qa-suite-report.md` / `qa-suite-summary.json` для кожного запуску моделі - `qa-agentic-parity-report.md` з агрегованим порівнянням і порівнянням на рівні сценаріїв -- `qa-agentic-parity-summary.json` з машиночитним вердиктом +- `qa-agentic-parity-summary.json` із машиночитаним вердиктом -## Release gate +## Gate релізу -Не стверджуйте про паритет GPT-5.4 або його перевагу над Opus 4.6, доки: +Не стверджуйте паритет або перевагу GPT-5.4 над Opus 4.6, доки: - PR A, PR B і PR C не злиті -- PR D не запускає перший пакет сценаріїв паритету без помилок -- регресійні набори runtime-truthfulness лишаються зеленими +- PR D не запускає чисто набір паритету першої хвилі +- набори регресійних тестів правдивості runtime залишаються зеленими - звіт про паритет не показує випадків fake-success і регресій у поведінці зупинки ```mermaid @@ -148,27 +153,27 @@ flowchart LR H -- "no" --> J["Keep runtime fixes / review loop open"] ``` -harness паритету — не єдине джерело доказів. Під час рев’ю чітко зберігайте цей поділ: +Каркас паритету — не єдине джерело доказів. Під час перегляду явно зберігайте цей поділ: -- PR D володіє порівнянням GPT-5.4 vs Opus 4.6 на основі сценаріїв -- детерміновані набори PR B і далі володіють доказами щодо auth/proxy/DNS і правдивості full-access +- PR D відповідає за порівняння GPT-5.4 vs Opus 4.6 на основі сценаріїв +- детерміновані набори PR B як і раніше відповідають за докази щодо auth/proxy/DNS і правдивості повного доступу -## Відображення цілі до доказів +## Відображення цілей на докази -| Елемент completion gate | Основний власник | Артефакт рев’ю | +| Пункт gate завершення | Основний власник | Артефакт перегляду | | ---------------------------------------- | ---------------- | ------------------------------------------------------------------- | -| Жодних зупинок лише на плані | PR A | strict-agentic runtime tests і `approval-turn-tool-followthrough` | -| Жодного фальшивого прогресу чи фальшивого завершення інструменту | PR A + PR D | кількість fake-success у паритеті плюс деталі звіту на рівні сценаріїв | -| Жодних хибних підказок `/elevated full` | PR B | детерміновані набори runtime-truthfulness | -| Збої replay/liveness лишаються явними | PR C + PR D | набори lifecycle/replay плюс `compaction-retry-mutating-tool` | +| Немає зависань лише на плані | PR A | тести runtime strict-agentic і `approval-turn-tool-followthrough` | +| Немає фальшивого прогресу чи фальшивого завершення інструменту | PR A + PR D | кількість fake-success у паритеті плюс деталі звіту на рівні сценаріїв | +| Немає хибних підказок `/elevated full` | PR B | детерміновані набори правдивості runtime | +| Збої replay/liveness залишаються явними | PR C + PR D | набори lifecycle/replay плюс `compaction-retry-mutating-tool` | | GPT-5.4 відповідає Opus 4.6 або перевершує його | PR D | `qa-agentic-parity-report.md` і `qa-agentic-parity-summary.json` | -## Скорочення для рев’ю: до vs після +## Коротка пам’ятка для рев’юера: до vs після -| Видима користувачу проблема до змін | Сигнал під час рев’ю після змін | -| ------------------------------------------------------- | --------------------------------------------------------------------------------------- | -| GPT-5.4 зупинявся після планування | PR A показує поведінку act-or-block замість завершення лише на коментарі | -| Використання інструментів здавалося крихким із суворими схемами OpenAI/Codex | PR C зберігає передбачуваність реєстрації інструментів і викликів без параметрів | -| Підказки `/elevated full` іноді вводили в оману | PR B прив’язує підказки до реальних можливостей runtime і причин блокування | -| Довгі завдання могли зникати в неоднозначності replay/compaction | PR C видає явний стан paused, blocked, abandoned і replay-invalid | -| Твердження про паритет були анекдотичними | PR D створює звіт і JSON verdict з однаковим покриттям сценаріїв для обох моделей | +| Видима для користувача проблема до | Сигнал під час перегляду після | +| ----------------------------------------------------------- | ------------------------------------------------------------------------------------- | +| GPT-5.4 зупинявся після планування | PR A показує поведінку act-or-block замість завершення лише на коментарі | +| Використання інструментів здавалося крихким із суворими схемами OpenAI/Codex | PR C зберігає передбачуваність реєстрації інструментів і виклику без параметрів | +| Підказки `/elevated full` інколи вводили в оману | PR B прив’язує підказки до фактичної можливості runtime і причин блокування | +| Довгі завдання могли зникати в неоднозначності replay/Compaction | PR C видає явний стан paused, blocked, abandoned і replay-invalid | +| Твердження про паритет були анекдотичними | PR D формує звіт плюс JSON-вердикт з однаковим покриттям сценаріїв на обох моделях | diff --git a/docs/uk/help/gpt54-codex-agentic-parity.md b/docs/uk/help/gpt54-codex-agentic-parity.md index c7d32b301..618d3ce25 100644 --- a/docs/uk/help/gpt54-codex-agentic-parity.md +++ b/docs/uk/help/gpt54-codex-agentic-parity.md @@ -1,64 +1,70 @@ --- +read_when: + - Налагодження поведінки агента GPT-5.4 або Codex + - Порівняння агентної поведінки OpenClaw у різних передових моделях + - Огляд виправлень strict-agentic, tool-schema, elevation і replay +summary: Як OpenClaw усуває прогалини в агентному виконанні для GPT-5.4 і моделей у стилі Codex +title: GPT-5.4 / Агентний паритет Codex x-i18n: - generated_at: "2026-04-11T13:24:07Z" + generated_at: "2026-04-21T21:37:37Z" model: gpt-5.4 provider: openai - source_hash: 7ee6b925b8a0f8843693cea9d50b40544657b5fb8a9e0860e2ff5badb273acb6 + source_hash: 77bc9b8fab289bd35185fa246113503b3f5c94a22bd44739be07d39ae6779056 source_path: help/gpt54-codex-agentic-parity.md workflow: 15 --- -# Паритет агентної поведінки GPT-5.4 / Codex в OpenClaw +# Агентний паритет GPT-5.4 / Codex в OpenClaw -OpenClaw уже добре працював із frontier-моделями, що використовують інструменти, але моделі у стилі GPT-5.4 і Codex все ще поступалися в кількох практичних аспектах: +OpenClaw уже добре працював із передовими моделями, що використовують інструменти, але GPT-5.4 і моделі у стилі Codex усе ще недопрацьовували в кількох практичних аспектах: - вони могли зупинятися після планування замість виконання роботи - вони могли неправильно використовувати суворі схеми інструментів OpenAI/Codex -- вони могли просити `/elevated full`, навіть коли повний доступ був неможливий -- вони могли втрачати стан довготривалих завдань під час replay або compaction +- вони могли запитувати `/elevated full`, навіть коли повний доступ був неможливий +- вони могли втрачати стан довготривалого завдання під час replay або Compaction - твердження про паритет із Claude Opus 4.6 ґрунтувалися на анекдотичних випадках, а не на відтворюваних сценаріях -Ця програма паритету усуває ці прогалини у чотирьох окремих частинах, придатних для рев'ю. +Ця програма паритету усуває ці прогалини в чотирьох придатних для рев’ю зрізах. ## Що змінилося ### PR A: суворе агентне виконання -Ця частина додає контракт виконання `strict-agentic` з можливістю opt-in для вбудованих запусків Pi GPT-5. +Цей зріз додає контракт виконання `strict-agentic` з увімкненням за вибором для вбудованих запусків Pi GPT-5. -Коли його ввімкнено, OpenClaw більше не приймає ходи лише з планом як «достатньо хороше» завершення. Якщо модель лише каже, що вона збирається зробити, але фактично не використовує інструменти й не просувається вперед, OpenClaw повторює спробу з вказівкою діяти негайно, а потім завершує з явним blocked-станом замість того, щоб тихо завершити завдання. +Коли його ввімкнено, OpenClaw перестає вважати ходи лише з планом «достатньо хорошим» завершенням. Якщо модель лише каже, що вона збирається зробити, але фактично не використовує інструменти і не просувається вперед, OpenClaw повторює спробу зі спрямуванням діяти негайно, а потім завершує з явним заблокованим станом замість того, щоб мовчки завершити завдання. -Це найбільше покращує досвід GPT-5.4 у таких випадках: +Це найбільше покращує досвід із GPT-5.4 у таких випадках: -- короткі підтвердження на кшталт «ок, зроби це» +- короткі уточнення на кшталт «гаразд, зроби це» - завдання з кодом, де перший крок очевидний -- потоки, де `update_plan` має бути відстеженням прогресу, а не текстом-заповнювачем +- потоки, де `update_plan` має відстежувати прогрес, а не бути заповнювальним текстом -### PR B: правдивість runtime +### PR B: правдивість середовища виконання -Ця частина змушує OpenClaw говорити правду про дві речі: +Цей зріз змушує OpenClaw говорити правду про дві речі: -- чому виклик provider/runtime завершився помилкою +- чому виклик провайдера/середовища виконання завершився помилкою - чи справді доступний `/elevated full` -Це означає, що GPT-5.4 отримує кращі сигнали runtime щодо відсутнього scope, помилок оновлення auth, HTML 403 auth failures, проблем із proxy, DNS або timeout, а також заблокованих режимів повного доступу. Модель менше схильна вигадувати неправильний спосіб усунення проблеми або продовжувати просити режим дозволів, який runtime не може надати. +Це означає, що GPT-5.4 отримує кращі сигнали від середовища виконання щодо відсутньої області доступу, збоїв оновлення автентифікації, помилок автентифікації HTML 403, проблем із проксі, помилок DNS або тайм-аутів, а також заблокованих режимів повного доступу. Модель менш схильна вигадувати неправильний спосіб усунення проблеми або й надалі запитувати режим дозволів, який середовище виконання не може надати. ### PR C: коректність виконання -Ця частина покращує два види коректності: +Цей зріз покращує два види коректності: -- сумісність схем інструментів OpenAI/Codex, що належать provider -- видимість replay і життєвого циклу довгих завдань +- сумісність схем інструментів OpenAI/Codex, якими володіє провайдер +- відображення replay і життєздатності довгих завдань -Робота над сумісністю інструментів зменшує тертя зі схемами для суворої реєстрації інструментів OpenAI/Codex, особливо навколо інструментів без параметрів і очікувань суворого object-root. Робота над replay/liveness робить довготривалі завдання більш спостережуваними, тож paused, blocked і abandoned-стани стають видимими замість того, щоб зникати у загальному тексті помилки. +Робота над сумісністю інструментів зменшує тертя зі схемами для суворої реєстрації інструментів OpenAI/Codex, особливо навколо інструментів без параметрів і суворих очікувань щодо кореня-об’єкта. Робота над replay/життєздатністю робить довготривалі завдання більш спостережуваними, тож призупинені, заблоковані та покинуті стани видно, а не приховано за загальним текстом про помилку. -### PR D: harness паритету +### PR D: обв’язка паритету -Ця частина додає перший набір parity pack для QA-lab, щоб GPT-5.4 і Opus 4.6 можна було проганяти через ті самі сценарії й порівнювати за спільними доказами. +Цей зріз додає перший пакет паритету QA-lab, щоб GPT-5.4 і Opus 4.6 можна було проганяти через однакові сценарії та порівнювати за спільними доказами. -Parity pack — це рівень доказів. Сам по собі він не змінює поведінку runtime. +Пакет паритету — це рівень доказів. Сам по собі він не змінює поведінку середовища виконання. -Після того як у вас є два артефакти `qa-suite-summary.json`, згенеруйте порівняння release gate командою: +Після того як у вас є два артефакти `qa-suite-summary.json`, згенеруйте порівняння для релізного gate за допомогою: ```bash pnpm openclaw qa parity-report \ @@ -70,160 +76,160 @@ pnpm openclaw qa parity-report \ Ця команда записує: -- Markdown-звіт, читабельний для людини -- JSON-вердикт, читабельний для машини +- Markdown-звіт, придатний для читання людиною +- JSON-вердикт, придатний для читання машиною - явний результат gate `pass` / `fail` ## Чому це практично покращує GPT-5.4 -До цієї роботи GPT-5.4 в OpenClaw міг здаватися менш агентним, ніж Opus, у реальних сесіях кодування, тому що runtime допускав поведінки, які особливо шкідливі для моделей у стилі GPT-5: +До цієї роботи GPT-5.4 в OpenClaw міг здаватися менш агентним, ніж Opus, у реальних сесіях кодування, тому що середовище виконання допускало поведінку, яка особливо шкідлива для моделей у стилі GPT-5: - ходи лише з коментарями - тертя схем навколо інструментів -- нечіткий зворотний зв'язок щодо дозволів -- тихі збої replay або compaction +- нечіткий зворотний зв’язок щодо дозволів +- тихі збої replay або Compaction -Мета не в тому, щоб змусити GPT-5.4 імітувати Opus. Мета в тому, щоб дати GPT-5.4 контракт runtime, який винагороджує реальний прогрес, надає чистішу семантику інструментів і дозволів та перетворює режими збоїв на явні стани, читабельні і для машини, і для людини. +Мета не в тому, щоб змусити GPT-5.4 імітувати Opus. Мета в тому, щоб дати GPT-5.4 контракт середовища виконання, який винагороджує реальний прогрес, надає чистішу семантику інструментів і дозволів та перетворює режими збоїв на явні машино- і людиночитані стани. -Це змінює користувацький досвід із такого: +Це змінює користувацький досвід із: - «модель мала хороший план, але зупинилася» -на такий: +на: -- «модель або подіяла, або OpenClaw показав точну причину, чому вона не змогла» +- «модель або виконала дію, або OpenClaw показав точну причину, чому вона не змогла цього зробити» ## До і після для користувачів GPT-5.4 -| До цієї програми | Після PR A-D | -| --------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -| GPT-5.4 міг зупинитися після розумного плану, не зробивши наступний крок з інструментом | PR A перетворює «лише план» на «дій зараз або покажи blocked-стан» | -| Суворі схеми інструментів могли відхиляти інструменти без параметрів або у форматі OpenAI/Codex у заплутаний спосіб | PR C робить реєстрацію та виклик інструментів, що належать provider, більш передбачуваними | -| Підказки щодо `/elevated full` могли бути нечіткими або хибними в заблокованих runtime | PR B дає GPT-5.4 і користувачу правдиві підказки runtime та дозволів | -| Збої replay або compaction могли виглядати так, ніби завдання тихо зникло | PR C явно показує paused, blocked, abandoned і replay-invalid результати | -| «GPT-5.4 відчувається гірше за Opus» було здебільшого анекдотичним | PR D перетворює це на той самий набір сценаріїв, ті самі метрики й жорсткий gate pass/fail | +| До цієї програми | Після PR A-D | +| ------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------- | +| GPT-5.4 міг зупинитися після розумного плану, не переходячи до наступного кроку з інструментом | PR A перетворює «лише план» на «дій зараз або покажи заблокований стан» | +| Суворі схеми інструментів могли заплутано відхиляти інструменти без параметрів або інструменти у форматі OpenAI/Codex | PR C робить реєстрацію та виклик інструментів, якими володіє провайдер, більш передбачуваними | +| Підказки щодо `/elevated full` могли бути нечіткими або неправильними в заблокованих середовищах виконання | PR B дає GPT-5.4 і користувачу правдиві підказки від середовища виконання та щодо дозволів | +| Збої replay або Compaction могли виглядати так, ніби завдання просто тихо зникло | PR C явно показує результати paused, blocked, abandoned і replay-invalid | +| «GPT-5.4 відчувається гіршим за Opus» було здебільшого анекдотичним твердженням | PR D перетворює це на той самий пакет сценаріїв, ті самі метрики та жорсткий gate pass/fail | ## Архітектура ```mermaid flowchart TD - A["Запит користувача"] --> B["Вбудований runtime Pi"] + A["Запит користувача"] --> B["Вбудоване середовище виконання Pi"] B --> C["Контракт суворого агентного виконання"] - B --> D["Сумісність інструментів, що належать provider"] - B --> E["Правдивість runtime"] - B --> F["Replay і стан життєвого циклу"] - C --> G["Виклик інструмента або явний blocked-стан"] + B --> D["Сумісність інструментів, якими володіє провайдер"] + B --> E["Правдивість середовища виконання"] + B --> F["Стан replay і життєздатності"] + C --> G["Виклик інструмента або явний заблокований стан"] D --> G E --> G F --> G - G --> H["Parity pack QA-lab"] - H --> I["Звіт за сценаріями та parity gate"] + G --> H["Пакет паритету QA-lab"] + H --> I["Звіт за сценарієм і gate паритету"] ``` ## Потік релізу ```mermaid flowchart LR - A["Об'єднані runtime-частини (PR A-C)"] --> B["Запустити parity pack GPT-5.4"] - A --> C["Запустити parity pack Opus 4.6"] + A["Об’єднані зрізи середовища виконання (PR A-C)"] --> B["Запустити пакет паритету GPT-5.4"] + A --> C["Запустити пакет паритету Opus 4.6"] B --> D["qa-suite-summary.json"] C --> E["qa-suite-summary.json"] D --> F["openclaw qa parity-report"] E --> F F --> G["qa-agentic-parity-report.md"] F --> H["qa-agentic-parity-summary.json"] - H --> I{"Gate pass?"} - I -- "так" --> J["Твердження про паритет, підкріплене доказами"] - I -- "ні" --> K["Залишити цикл runtime/review відкритим"] + H --> I{"Gate пройдено?"} + I -- "так" --> J["Твердження про паритет, підтверджене доказами"] + I -- "ні" --> K["Залишити цикл середовища виконання/рев’ю відкритим"] ``` -## Набір сценаріїв +## Пакет сценаріїв -Поточний parity pack першої хвилі охоплює п'ять сценаріїв: +Наразі пакет паритету першої хвилі охоплює п’ять сценаріїв: ### `approval-turn-tool-followthrough` -Перевіряє, що модель не зупиняється на «Я це зроблю» після короткого підтвердження. Вона має виконати першу конкретну дію в тому ж самому ході. +Перевіряє, що модель не зупиняється на «Я це зроблю» після короткого схвалення. Вона має виконати першу конкретну дію в тому ж ході. ### `model-switch-tool-continuity` -Перевіряє, що робота з інструментами залишається узгодженою через межі перемикання моделі/runtime, а не скидається до коментарів чи не втрачає контекст виконання. +Перевіряє, що робота з використанням інструментів залишається зв’язною через межі перемикання моделі/середовища виконання, а не скидається до коментарів або не втрачає контекст виконання. ### `source-docs-discovery-report` -Перевіряє, що модель може читати вихідний код і документацію, синтезувати висновки й продовжувати завдання агентно, а не видавати коротке резюме й рано зупинятися. +Перевіряє, що модель може читати вихідний код і документацію, синтезувати висновки та продовжувати завдання агентно, а не видавати поверхневий підсумок і зупинятися надто рано. ### `image-understanding-attachment` -Перевіряє, що змішані завдання з вкладеннями залишаються виконуваними й не зводяться до розмитого опису. +Перевіряє, що задачі змішаного режиму з вкладеннями залишаються придатними до виконання та не зводяться до нечіткої оповіді. ### `compaction-retry-mutating-tool` -Перевіряє, що завдання з реальним mutating write зберігає явну ознаку небезпеки replay замість того, щоб тихо виглядати безпечним для replay, якщо виконання зазнає compaction, retry або втрачає стан відповіді під навантаженням. +Перевіряє, що завдання з реальною мутаційною операцією запису зберігає явну небезпеку replay, замість того щоб тихо виглядати replay-safe, якщо запуск зазнає Compaction, повторної спроби або втрати стану відповіді під тиском. ## Матриця сценаріїв -| Сценарій | Що він перевіряє | Хороша поведінка GPT-5.4 | Сигнал збою | -| ---------------------------------- | ---------------------------------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | -| `approval-turn-tool-followthrough` | Короткі підтвердження після плану | Одразу починає першу конкретну дію з інструментом замість повторення наміру | підтвердження лише з планом, без активності інструментів або blocked-хід без реального блокера | -| `model-switch-tool-continuity` | Перемикання runtime/моделі під час роботи з інструментами | Зберігає контекст завдання й продовжує діяти узгоджено | скидається до коментарів, втрачає контекст інструментів або зупиняється після перемикання | -| `source-docs-discovery-report` | Читання коду + синтез + дія | Знаходить джерела, використовує інструменти й створює корисний звіт без зависання | коротке резюме, відсутня робота з інструментами або зупинка на незавершеному ході | -| `image-understanding-attachment` | Агентна робота на основі вкладень | Інтерпретує вкладення, пов'язує його з інструментами й продовжує завдання | розмитий опис, вкладення проігноровано або немає конкретної наступної дії | -| `compaction-retry-mutating-tool` | Змінювальна робота під тиском compaction | Виконує реальний запис і зберігає явну ознаку небезпеки replay після побічного ефекту | mutating write відбувається, але безпечність replay мається на увазі, відсутня або суперечлива | +| Сценарій | Що він перевіряє | Хороша поведінка GPT-5.4 | Сигнал збою | +| ---------------------------------- | ----------------------------------------- | ---------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| `approval-turn-tool-followthrough` | Короткі ходи схвалення після плану | Одразу починає першу конкретну дію з інструментом замість повторення наміру | подальший хід лише з планом, відсутність активності інструментів або заблокований хід без реального блокера | +| `model-switch-tool-continuity` | Перемикання середовища виконання/моделі під час використання інструментів | Зберігає контекст завдання і продовжує діяти зв’язно | скидається до коментарів, втрачає контекст інструментів або зупиняється після перемикання | +| `source-docs-discovery-report` | Читання джерел + синтез + дія | Знаходить джерела, використовує інструменти та створює корисний звіт без зависання | поверхневий підсумок, відсутня робота з інструментами або зупинка на незавершеному ході | +| `image-understanding-attachment` | Агентна робота на основі вкладення | Інтерпретує вкладення, пов’язує його з інструментами й продовжує завдання | нечітка оповідь, вкладення проігноровано або відсутня конкретна наступна дія | +| `compaction-retry-mutating-tool` | Мутаційна робота під тиском Compaction | Виконує реальний запис і зберігає явну небезпеку replay після побічного ефекту | відбувається мутаційний запис, але безпечність replay мається на увазі, відсутня або суперечлива | ## Release gate -GPT-5.4 можна вважати таким, що досяг паритету або перевершив його, лише коли об'єднаний runtime одночасно проходить parity pack і регресійні перевірки правдивості runtime. +GPT-5.4 можна вважати таким, що досяг паритету або перевершив його, лише тоді, коли об’єднане середовище виконання одночасно проходить пакет паритету та регресії правдивості середовища виконання. Необхідні результати: -- відсутність зупинки на плані, коли наступна дія з інструментом очевидна -- відсутність фальшивого завершення без реального виконання -- відсутність неправильних підказок щодо `/elevated full` -- відсутність тихого abandon через replay або compaction -- метрики parity pack щонайменше такі самі сильні, як у погодженого baseline Opus 4.6 +- жодного зависання на рівні лише плану, коли наступна дія з інструментом очевидна +- жодного фальшивого завершення без реального виконання +- жодних неправильних підказок щодо `/elevated full` +- жодного тихого покидання через replay або Compaction +- метрики пакета паритету не слабші за погоджений базовий рівень Opus 4.6 -Для harness першої хвилі gate порівнює: +Для обв’язки першої хвилі gate порівнює: -- completion rate -- unintended-stop rate -- valid-tool-call rate -- fake-success count +- рівень завершення +- рівень ненавмисних зупинок +- рівень коректних викликів інструментів +- кількість фальшивих успіхів Докази паритету навмисно розділено на два рівні: -- PR D доводить поведінку GPT-5.4 vs Opus 4.6 на тих самих сценаріях за допомогою QA-lab -- детерміновані набори PR B доводять правдивість auth, proxy, DNS і `/elevated full` поза межами harness +- PR D доводить поведінку GPT-5.4 проти Opus 4.6 в однакових сценаріях через QA-lab +- детерміновані набори PR B доводять правдивість auth, proxy, DNS і `/elevated full` поза межами обв’язки ## Матриця «ціль → доказ» -| Елемент completion gate | Власник PR | Джерело доказів | Сигнал проходження | -| ------------------------------------------------------ | ----------- | ------------------------------------------------------------------ | --------------------------------------------------------------------------------------- | -| GPT-5.4 більше не зависає після планування | PR A | `approval-turn-tool-followthrough` плюс runtime-набори PR A | ходи з підтвердженням запускають реальну роботу або явний blocked-стан | -| GPT-5.4 більше не імітує прогрес або фальшиве завершення інструментів | PR A + PR D | результати сценаріїв у parity report і fake-success count | немає підозрілих pass-результатів і немає завершення лише з коментарями | -| GPT-5.4 більше не дає хибних підказок щодо `/elevated full` | PR B | детерміновані набори перевірки правдивості | причини блокування й підказки повного доступу залишаються точними щодо runtime | -| Збої replay/liveness залишаються явними | PR C + PR D | lifecycle/replay-набори PR C плюс `compaction-retry-mutating-tool` | змінювальна робота зберігає явну ознаку небезпеки replay замість того, щоб тихо зникати | -| GPT-5.4 відповідає або перевершує Opus 4.6 за погодженими метриками | PR D | `qa-agentic-parity-report.md` і `qa-agentic-parity-summary.json` | те саме покриття сценаріїв і відсутність регресу в completion, stop-behavior або коректному використанні інструментів | +| Пункт gate завершення | Відповідальний PR | Джерело доказу | Сигнал проходження | +| ------------------------------------------------------- | ----------------- | ------------------------------------------------------------------ | --------------------------------------------------------------------------------------- | +| GPT-5.4 більше не зависає після планування | PR A | `approval-turn-tool-followthrough` плюс набори середовища виконання PR A | ходи схвалення запускають реальну роботу або явний заблокований стан | +| GPT-5.4 більше не імітує прогрес або фальшиве завершення інструмента | PR A + PR D | результати сценаріїв у звіті паритету та кількість фальшивих успіхів | немає підозрілих результатів проходження і немає завершення лише коментарями | +| GPT-5.4 більше не дає хибних підказок щодо `/elevated full` | PR B | детерміновані набори правдивості | причини блокування та підказки щодо повного доступу залишаються точними відносно середовища виконання | +| Збої replay/життєздатності залишаються явними | PR C + PR D | набори життєвого циклу/replay PR C плюс `compaction-retry-mutating-tool` | мутаційна робота зберігає явну небезпеку replay замість того, щоб тихо зникати | +| GPT-5.4 відповідає або перевершує Opus 4.6 за погодженими метриками | PR D | `qa-agentic-parity-report.md` і `qa-agentic-parity-summary.json` | однакове покриття сценаріїв і відсутність регресії в завершенні, поведінці зупинки або коректному використанні інструментів | -## Як читати parity verdict +## Як читати вердикт паритету -Використовуйте verdict у `qa-agentic-parity-summary.json` як фінальне машиночитне рішення для parity pack першої хвилі. +Використовуйте вердикт у `qa-agentic-parity-summary.json` як остаточне машиночитане рішення для пакета паритету першої хвилі. -- `pass` означає, що GPT-5.4 покрив ті самі сценарії, що й Opus 4.6, і не погіршив погоджені агреговані метрики. -- `fail` означає, що спрацював принаймні один жорсткий gate: слабше completion, гірші unintended stops, слабше коректне використання інструментів, будь-який випадок fake-success або невідповідне покриття сценаріїв. -- «shared/base CI issue» саме по собі не є результатом паритету. Якщо шум CI поза межами PR D блокує прогін, verdict має чекати на чисте виконання merged-runtime, а не виводитися з логів епохи гілки. -- Правдивість auth, proxy, DNS і `/elevated full` як і раніше підтверджується детермінованими наборами PR B, тож фінальне твердження для релізу потребує обох умов: verdict паритету PR D із результатом pass і зелений статус покриття правдивості PR B. +- `pass` означає, що GPT-5.4 охопив ті самі сценарії, що й Opus 4.6, і не дав регресії за погодженими агрегованими метриками. +- `fail` означає, що спрацював принаймні один жорсткий gate: слабше завершення, гірші ненавмисні зупинки, слабше коректне використання інструментів, будь-який випадок фальшивого успіху або невідповідне покриття сценаріїв. +- «shared/base CI issue» сам по собі не є результатом паритету. Якщо шум CI поза межами PR D блокує прогін, вердикт має чекати на чисте виконання в об’єднаному середовищі виконання, а не виводитися з логів епохи гілки. +- Правдивість auth, proxy, DNS і `/elevated full` як і раніше походить із детермінованих наборів PR B, тому для фінального твердження про реліз потрібні обидва пункти: успішний вердикт паритету PR D і зелена правдивісна перевірка PR B. ## Кому слід вмикати `strict-agentic` Використовуйте `strict-agentic`, коли: -- очікується, що агент діятиме негайно, якщо наступний крок очевидний -- GPT-5.4 або моделі сімейства Codex є основним runtime -- ви віддаєте перевагу явним blocked-станам замість «корисних» відповідей лише з підсумком +- очікується, що агент діятиме негайно, коли наступний крок очевидний +- GPT-5.4 або моделі сімейства Codex є основним середовищем виконання +- ви надаєте перевагу явним заблокованим станам замість «корисних» відповідей лише з підсумком Залишайте контракт за замовчуванням, коли: -- вам потрібна наявна, менш сувора поведінка +- вам потрібна наявна м’якша поведінка - ви не використовуєте моделі сімейства GPT-5 -- ви тестуєте prompt, а не enforcement на рівні runtime +- ви тестуєте prompts, а не примусове дотримання на рівні середовища виконання diff --git a/docs/uk/nodes/media-understanding.md b/docs/uk/nodes/media-understanding.md index 7ea6a3d6c..3958f3871 100644 --- a/docs/uk/nodes/media-understanding.md +++ b/docs/uk/nodes/media-understanding.md @@ -1,61 +1,58 @@ --- read_when: - Проєктування або рефакторинг розуміння медіа - - Налаштування попередньої обробки вхідного аудіо/відео/зображень -summary: Розуміння вхідних зображень/аудіо/відео (необов’язково) з резервними варіантами через провайдера та CLI + - Налаштування попередньої обробки вхідних аудіо/відео/зображень +summary: Вхідне розуміння зображень/аудіо/відео (необов’язково) із запасними варіантами для провайдера та CLI title: Розуміння медіа x-i18n: - generated_at: "2026-04-05T18:09:57Z" + generated_at: "2026-04-21T21:37:36Z" model: gpt-5.4 provider: openai - source_hash: fe36bd42250d48d12f4ff549e8644afa7be8e42ee51f8aff4f21f81b7ff060f4 + source_hash: 0d80c9bcd965b521c3c782a76b9dd31eb6e6c635d8a1cc6895b6ccfaf5f9492e source_path: nodes/media-understanding.md workflow: 15 --- -# Розуміння медіа - вхідні дані (2026-01-17) +# Розуміння медіа — вхідне (2026-01-17) -OpenClaw може **підсумовувати вхідні медіа** (зображення/аудіо/відео) до запуску конвеєра відповіді. Він автоматично визначає, коли доступні локальні інструменти або ключі провайдерів, і може бути вимкнений або налаштований. Якщо розуміння вимкнено, моделі, як і раніше, отримують оригінальні файли/URL. +OpenClaw може **узагальнювати вхідні медіа** (зображення/аудіо/відео) до запуску конвеєра відповіді. Він автоматично визначає, коли доступні локальні інструменти або ключі провайдера, і може бути вимкнений або налаштований. Якщо розуміння вимкнене, моделі все одно отримують вихідні файли/URL-адреси як зазвичай. -Поведінку медіа, специфічну для постачальника, реєструють плагіни постачальників, тоді як -core OpenClaw відповідає за спільну конфігурацію `tools.media`, порядок fallback і -інтеграцію з конвеєром відповідей. +Поведінка медіа, специфічна для постачальника, реєструється через плагіни постачальників, тоді як ядро OpenClaw володіє спільною конфігурацією `tools.media`, порядком запасних варіантів і інтеграцією з конвеєром відповіді. ## Цілі -- Необов’язково: попередньо стисло обробляти вхідні медіа в короткий текст для швидшої маршрутизації та кращого розбору команд. -- Завжди зберігати доставку оригінальних медіа до моделі. -- Підтримувати **API провайдерів** і **CLI fallback**. -- Дозволяти кілька моделей із впорядкованим fallback (помилка/розмір/тайм-аут). +- Необов’язково: попередньо зводити вхідні медіа до короткого тексту для швидшої маршрутизації та кращого розбору команд. +- Завжди зберігати передавання оригінальних медіа до моделі. +- Підтримувати **API провайдерів** і **запасні варіанти через CLI**. +- Дозволяти кілька моделей з упорядкованим запасним переходом (помилка/розмір/тайм-аут). ## Поведінка на високому рівні 1. Зібрати вхідні вкладення (`MediaPaths`, `MediaUrls`, `MediaTypes`). -2. Для кожної ввімкненої можливості (image/audio/video) вибрати вкладення згідно з політикою (типово: **перше**). -3. Вибрати перший придатний запис моделі (розмір + можливість + auth). -4. Якщо модель завершується помилкою або медіа надто велике, **перейти до наступного запису**. +2. Для кожної ввімкненої можливості (зображення/аудіо/відео) вибрати вкладення згідно з політикою (типово: **перше**). +3. Вибрати перший придатний запис моделі (розмір + можливість + автентифікація). +4. Якщо модель завершується помилкою або медіа завелике, **перейти до наступного запису**. 5. У разі успіху: - `Body` стає блоком `[Image]`, `[Audio]` або `[Video]`. - - Для аудіо задається `{{Transcript}}`; під час розбору команди використовується текст підпису, якщо він є, - інакше — транскрипт. - - Підписи зберігаються як `User text:` усередині блока. + - Для аудіо встановлюється `{{Transcript}}`; розбір команд використовує текст підпису, якщо він є, інакше — транскрипт. + - Підписи зберігаються як `User text:` усередині блоку. -Якщо розуміння завершується помилкою або вимкнено, **потік відповіді продовжується** з оригінальним body + вкладеннями. +Якщо розуміння не вдається або вимкнене, **потік відповіді продовжується** з оригінальним тілом і вкладеннями. ## Огляд конфігурації -`tools.media` підтримує **спільні моделі** плюс перевизначення для кожної можливості: +`tools.media` підтримує **спільні моделі** та перевизначення для кожної можливості окремо: - `tools.media.models`: спільний список моделей (використовуйте `capabilities` для обмеження). - `tools.media.image` / `tools.media.audio` / `tools.media.video`: - типові значення (`prompt`, `maxChars`, `maxBytes`, `timeoutSeconds`, `language`) - перевизначення провайдера (`baseUrl`, `headers`, `providerOptions`) - - параметри аудіо Deepgram через `tools.media.audio.providerOptions.deepgram` - - керування echo для транскриптів аудіо (`echoTranscript`, типово `false`; `echoFormat`) - - необов’язковий **список `models` для конкретної можливості** (має пріоритет перед спільними моделями) + - параметри Deepgram для аудіо через `tools.media.audio.providerOptions.deepgram` + - параметри повторного виведення транскрипту аудіо (`echoTranscript`, типово `false`; `echoFormat`) + - необов’язковий **список `models` для окремої можливості** (має пріоритет над спільними моделями) - політика `attachments` (`mode`, `maxAttachments`, `prefer`) - - `scope` (необов’язкове gating за channel/chatType/session key) -- `tools.media.concurrency`: максимальна кількість паралельних запусків можливостей (типово **2**). + - `scope` (необов’язкове обмеження за channel/chatType/session key) +- `tools.media.concurrency`: максимальна кількість одночасних запусків можливостей (типово **2**). ```json5 { @@ -82,7 +79,7 @@ core OpenClaw відповідає за спільну конфігурацію ### Записи моделей -Кожен запис `models[]` може бути **provider** або **CLI**: +Кожен запис у `models[]` може бути **provider** або **CLI**: ```json5 { @@ -121,55 +118,50 @@ core OpenClaw відповідає за спільну конфігурацію - `{{MediaDir}}` (каталог, що містить медіафайл) - `{{OutputDir}}` (тимчасовий каталог, створений для цього запуску) -- `{{OutputBase}}` (базовий шлях до тимчасового файла без розширення) +- `{{OutputBase}}` (базовий шлях тимчасового файла, без розширення) ## Типові значення та обмеження Рекомендовані типові значення: -- `maxChars`: **500** для image/video (коротко, зручно для команд) +- `maxChars`: **500** для зображень/відео (коротко, зручно для команд) - `maxChars`: **не задано** для аудіо (повний транскрипт, якщо ви не встановите обмеження) - `maxBytes`: - - image: **10MB** - - audio: **20MB** - - video: **50MB** + - зображення: **10MB** + - аудіо: **20MB** + - відео: **50MB** Правила: -- Якщо медіа перевищує `maxBytes`, ця модель пропускається, і **пробується наступна модель**. -- Аудіофайли, менші за **1024 bytes**, вважаються порожніми/пошкодженими і пропускаються до транскрибування через provider/CLI. -- Якщо модель повертає більше ніж `maxChars`, результат обрізається. -- Для `prompt` типовим є просте “Describe the {media}.” плюс вказівка щодо `maxChars` (лише для image/video). -- Якщо активна основна image model уже нативно підтримує vision, OpenClaw - пропускає блок підсумку `[Image]` і натомість передає - оригінальне зображення в модель. -- Якщо `.enabled: true`, але моделі не налаштовано, OpenClaw пробує - **активну модель відповіді**, якщо її провайдер підтримує цю можливість. +- Якщо медіа перевищує `maxBytes`, цю модель пропускають і **пробують наступну модель**. +- Аудіофайли менші за **1024 байти** вважаються порожніми/пошкодженими та пропускаються до транскрибування через provider/CLI. +- Якщо модель повертає більше ніж `maxChars`, вивід обрізається. +- Типове значення `prompt` — просте «Describe the {media}.» плюс вказівка щодо `maxChars` (лише для зображень/відео). +- Якщо активна основна модель для зображень уже нативно підтримує vision, OpenClaw пропускає блок зведення `[Image]` і натомість передає оригінальне зображення до моделі. +- Явні запити `openclaw infer image describe --model ` відрізняються: вони напряму запускають цей provider/model із підтримкою зображень, зокрема посилання Ollama, як-от `ollama/qwen2.5vl:7b`. +- Якщо `.enabled: true`, але моделі не налаштовані, OpenClaw намагається використати **активну модель відповіді**, якщо її провайдер підтримує цю можливість. ### Автовизначення розуміння медіа (типово) -Якщо `tools.media..enabled` **не** встановлено в `false` і ви не -налаштували моделі, OpenClaw виконує автовизначення в такому порядку і **зупиняється на першому -працюючому варіанті**: +Якщо `tools.media..enabled` **не** встановлено в `false` і ви не налаштували моделі, OpenClaw автоматично визначає варіант у такому порядку і **зупиняється на першому робочому варіанті**: 1. **Активна модель відповіді**, якщо її провайдер підтримує цю можливість. -2. **`agents.defaults.imageModel`** primary/fallback refs (лише для image). -3. **Локальні CLI** (лише для audio; якщо встановлено) +2. Основні/запасні посилання **`agents.defaults.imageModel`** (лише для зображень). +3. **Локальні CLI** (лише для аудіо; якщо встановлені) - `sherpa-onnx-offline` (потребує `SHERPA_ONNX_MODEL_DIR` з encoder/decoder/joiner/tokens) - - `whisper-cli` (`whisper-cpp`; використовує `WHISPER_CPP_MODEL` або вбудовану tiny model) - - `whisper` (CLI Python; автоматично завантажує моделі) + - `whisper-cli` (`whisper-cpp`; використовує `WHISPER_CPP_MODEL` або вбудовану tiny-модель) + - `whisper` (Python CLI; автоматично завантажує моделі) 4. **Gemini CLI** (`gemini`) з використанням `read_many_files` 5. **Автентифікація провайдера** - - Налаштовані записи `models.providers.*`, що підтримують цю можливість, - пробуються до вбудованого порядку fallback. - - Провайдери конфігурації лише для image з image-capable model автоматично реєструються для - розуміння медіа, навіть якщо вони не є вбудованим vendor plugin. - - Вбудований порядок fallback: - - Audio: OpenAI → Groq → Deepgram → Google → Mistral - - Image: OpenAI → Anthropic → Google → MiniMax → MiniMax Portal → Z.AI - - Video: Google → Qwen → Moonshot + - Налаштовані записи `models.providers.*`, що підтримують цю можливість, перевіряються раніше за вбудований порядок запасних варіантів. + - Провайдери з конфігурації лише для зображень із моделлю, що підтримує зображення, автоматично реєструються для розуміння медіа, навіть якщо вони не є вбудованим плагіном постачальника. + - Розуміння зображень Ollama доступне за явного вибору, наприклад через `agents.defaults.imageModel` або `openclaw infer image describe --model ollama/`. + - Вбудований порядок запасних варіантів: + - Аудіо: OpenAI → Groq → Deepgram → Google → Mistral + - Зображення: OpenAI → Anthropic → Google → MiniMax → MiniMax Portal → Z.AI + - Відео: Google → Qwen → Moonshot -Щоб вимкнути автовизначення, задайте: +Щоб вимкнути автовизначення, встановіть: ```json5 { @@ -183,26 +175,23 @@ core OpenClaw відповідає за спільну конфігурацію } ``` -Примітка: визначення бінарників виконується best-effort у macOS/Linux/Windows; переконайтеся, що CLI є в `PATH` (ми розгортаємо `~`), або задайте явну CLI model з повним шляхом до команди. +Примітка: виявлення бінарних файлів виконується за принципом best-effort у macOS/Linux/Windows; переконайтеся, що CLI є в `PATH` (ми розгортаємо `~`), або задайте явну CLI-модель із повним шляхом до команди. -### Підтримка proxy environment (моделі провайдерів) +### Підтримка проксі-середовища (provider-моделі) -Коли ввімкнено розуміння медіа через провайдера для **audio** та **video**, OpenClaw -враховує стандартні змінні середовища вихідного проксі для HTTP-викликів провайдера: +Коли ввімкнене розуміння медіа **audio** і **video** на основі провайдера, OpenClaw враховує стандартні змінні середовища вихідного проксі для HTTP-викликів до провайдера: - `HTTPS_PROXY` - `HTTP_PROXY` - `https_proxy` - `http_proxy` -Якщо змінні середовища проксі не задано, розуміння медіа використовує прямий вихід. -Якщо значення проксі некоректне, OpenClaw записує попередження в журнал і повертається до прямого -отримання. +Якщо змінні середовища проксі не встановлені, розуміння медіа використовує прямий вихід у мережу. +Якщо значення проксі некоректно сформоване, OpenClaw записує попередження в журнал і повертається до прямого отримання. ## Можливості (необов’язково) -Якщо ви задаєте `capabilities`, запис виконується лише для цих типів медіа. Для спільних -списків OpenClaw може вивести типові значення: +Якщо ви задаєте `capabilities`, запис запускається лише для цих типів медіа. Для спільних списків OpenClaw може виводити типові значення: - `openai`, `anthropic`, `minimax`: **image** - `minimax-portal`: **image** @@ -214,60 +203,49 @@ core OpenClaw відповідає за спільну конфігурацію - `zai`: **image** - `groq`: **audio** - `deepgram`: **audio** -- Будь-який каталог `models.providers..models[]` з image-capable model: - **image** +- Будь-який каталог `models.providers..models[]` із моделлю, що підтримує зображення: **image** -Для CLI-записів **задавайте `capabilities` явно**, щоб уникнути несподіваних збігів. -Якщо `capabilities` пропущено, запис придатний для списку, в якому він розміщений. +Для записів CLI **явно задавайте `capabilities`**, щоб уникнути неочікуваних збігів. +Якщо `capabilities` не вказано, запис придатний для списку, у якому він з’являється. ## Матриця підтримки провайдерів (інтеграції OpenClaw) -| Можливість | Інтеграція провайдера | Примітки | -| ---------- | ------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | -| Image | OpenAI, OpenRouter, Anthropic, Google, MiniMax, Moonshot, Qwen, Z.AI, config providers | Vendor plugins реєструють підтримку image; MiniMax і MiniMax OAuth обидва використовують `MiniMax-VL-01`; image-capable config providers реєструються автоматично. | -| Audio | OpenAI, Groq, Deepgram, Google, Mistral | Транскрибування через провайдера (Whisper/Deepgram/Gemini/Voxtral). | -| Video | Google, Qwen, Moonshot | Розуміння video через vendor plugins; розуміння video у Qwen використовує стандартні ендпоїнти DashScope. | +| Можливість | Інтеграція провайдера | Примітки | +| ---------- | ---------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| Зображення | OpenAI, OpenRouter, Anthropic, Google, MiniMax, Moonshot, Qwen, Z.AI, config providers | Плагіни постачальників реєструють підтримку зображень; MiniMax і MiniMax OAuth обидва використовують `MiniMax-VL-01`; config providers із підтримкою зображень реєструються автоматично. | +| Аудіо | OpenAI, Groq, Deepgram, Google, Mistral | Транскрибування провайдера (Whisper/Deepgram/Gemini/Voxtral). | +| Відео | Google, Qwen, Moonshot | Розуміння відео провайдером через плагіни постачальників; розуміння відео Qwen використовує стандартні кінцеві точки DashScope. | Примітка щодо MiniMax: -- Розуміння image у `minimax` і `minimax-portal` походить із plugin-owned - медіапровайдера `MiniMax-VL-01`. -- Вбудований текстовий каталог MiniMax як і раніше починається лише з тексту; явні - записи `models.providers.minimax` матеріалізують image-capable M2.7 chat refs. +- Розуміння зображень `minimax` і `minimax-portal` походить із медіапровайдера `MiniMax-VL-01`, що належить плагіну. +- Вбудований текстовий каталог MiniMax усе ще починається лише з тексту; явні записи `models.providers.minimax` матеріалізують M2.7 chat refs із підтримкою зображень. ## Рекомендації щодо вибору моделі -- Надавайте перевагу найсильнішій доступній моделі останнього покоління для кожної медіаможливості, коли важливі якість і безпека. -- Для агентів з увімкненими інструментами, які працюють із недовіреним вводом, уникайте старіших/слабших медіамоделей. -- Тримайте принаймні один fallback для кожної можливості для доступності (якісна модель + швидша/дешевша модель). -- CLI fallback (`whisper-cli`, `whisper`, `gemini`) корисні, коли API провайдерів недоступні. -- Примітка щодо `parakeet-mlx`: із `--output-dir` OpenClaw читає `/.txt`, коли формат виводу — `txt` (або не задано); формати, відмінні від `txt`, резервно використовують stdout. +- Віддавайте перевагу найсильнішій моделі останнього покоління, доступній для кожної медіаможливості, коли важливі якість і безпека. +- Для агентів з увімкненими інструментами, які обробляють недовірені вхідні дані, уникайте старіших/слабших медіамоделей. +- Тримайте принаймні один запасний варіант для кожної можливості задля доступності (якісна модель + швидша/дешевша модель). +- Запасні варіанти CLI (`whisper-cli`, `whisper`, `gemini`) корисні, коли API провайдерів недоступні. +- Примітка про `parakeet-mlx`: з `--output-dir` OpenClaw читає `/.txt`, коли формат виводу — `txt` (або не вказаний); формати, відмінні від `txt`, повертаються до stdout. ## Політика вкладень -Параметр `attachments` для кожної можливості керує тим, які вкладення обробляються: +`attachments` для кожної можливості визначає, які вкладення обробляються: - `mode`: `first` (типово) або `all` -- `maxAttachments`: обмеження кількості оброблюваних вкладень (типово **1**) +- `maxAttachments`: обмежує кількість оброблюваних елементів (типово **1**) - `prefer`: `first`, `last`, `path`, `url` -Коли `mode: "all"`, результати мають мітки `[Image 1/2]`, `[Audio 2/2]` тощо. +Коли `mode: "all"`, результати позначаються як `[Image 1/2]`, `[Audio 2/2]` тощо. -Поведінка витягування файлових вкладень: +Поведінка вилучення з файлових вкладень: -- Витягнутий текст файлу обгортається як **недовірений зовнішній вміст** перед тим, як - додається до медіапромпта. -- Вставлений блок використовує явні маркери меж на кшталт - `<<>>` / - `<<>>` і містить рядок метаданих - `Source: External`. -- Цей шлях витягування вкладень навмисно не містить довгого банера - `SECURITY NOTICE:`, щоб не роздувати медіапромпт; маркери меж - і метадані все одно зберігаються. -- Якщо файл не містить тексту, який можна витягти, OpenClaw вставляє `[No extractable text]`. -- Якщо PDF у цьому шляху резервно переходить до рендерингу сторінок у зображення, медіапромпт зберігає - заповнювач `[PDF content rendered to images; images not forwarded to model]`, - оскільки цей крок витягування вкладень передає текстові блоки, а не відрендерені зображення PDF. +- Вилучений текст файла обгортається як **недовірений зовнішній вміст**, перш ніж його буде додано до запиту медіа. +- Впроваджений блок використовує явні маркери меж, такі як `<<>>` / `<<>>`, і містить рядок метаданих `Source: External`. +- Цей шлях вилучення вкладень навмисно не включає довгий банер `SECURITY NOTICE:`, щоб не роздувати запит медіа; маркери меж і метадані все одно зберігаються. +- Якщо файл не має тексту, придатного до вилучення, OpenClaw вставляє `[No extractable text]`. +- Якщо PDF на цьому шляху повертається до зображень відрендерених сторінок, запит медіа зберігає заповнювач `[PDF content rendered to images; images not forwarded to model]`, оскільки цей крок вилучення вкладень передає текстові блоки, а не відрендерені зображення PDF. ## Приклади конфігурації @@ -308,7 +286,7 @@ core OpenClaw відповідає за спільну конфігурацію } ``` -### 2) Лише Audio + Video (image вимкнено) +### 2) Лише аудіо + відео (зображення вимкнено) ```json5 { @@ -348,7 +326,7 @@ core OpenClaw відповідає за спільну конфігурацію } ``` -### 3) Необов’язкове розуміння image +### 3) Необов’язкове розуміння зображень ```json5 { @@ -379,7 +357,7 @@ core OpenClaw відповідає за спільну конфігурацію } ``` -### 4) Єдиний мультимодальний запис (явні capabilities) +### 4) Один мультимодальний запис (явні можливості) ```json5 { @@ -419,21 +397,21 @@ core OpenClaw відповідає за спільну конфігурацію ## Вивід статусу -Коли виконується розуміння медіа, `/status` містить короткий підсумковий рядок: +Коли виконується розуміння медіа, `/status` містить короткий рядок зведення: ``` 📎 Media: image ok (openai/gpt-5.4-mini) · audio skipped (maxBytes) ``` -Він показує результат для кожної можливості та вибраний provider/model, якщо це застосовно. +Тут показано результат для кожної можливості та вибраний provider/model, якщо застосовно. ## Примітки -- Розуміння — **best-effort**. Помилки не блокують відповіді. -- Вкладення все одно передаються моделям, навіть коли розуміння вимкнено. -- Використовуйте `scope`, щоб обмежити, де запускається розуміння (наприклад, лише в DM). +- Розуміння виконується **за принципом best-effort**. Помилки не блокують відповіді. +- Вкладення все одно передаються моделям, навіть коли розуміння вимкнене. +- Використовуйте `scope`, щоб обмежити, де запускається розуміння (наприклад, лише в особистих повідомленнях). ## Пов’язані документи -- [Конфігурація](/gateway/configuration) -- [Підтримка зображень і медіа](/nodes/images) +- [Конфігурація](/uk/gateway/configuration) +- [Підтримка зображень і медіа](/uk/nodes/images) diff --git a/docs/uk/providers/ollama.md b/docs/uk/providers/ollama.md index 5d49ec8c4..b889bf350 100644 --- a/docs/uk/providers/ollama.md +++ b/docs/uk/providers/ollama.md @@ -2,23 +2,24 @@ read_when: - Ви хочете запустити OpenClaw з хмарними або локальними моделями через Ollama - Вам потрібні вказівки з налаштування та конфігурації Ollama + - Ви хочете використовувати моделі бачення Ollama для розуміння зображень summary: Запустіть OpenClaw з Ollama (хмарні та локальні моделі) title: Ollama x-i18n: - generated_at: "2026-04-21T20:52:29Z" + generated_at: "2026-04-21T21:37:37Z" model: gpt-5.4 provider: openai - source_hash: 197612f2173409d186b915b838e5fdba2f594912672f3c450accb4877e732c9c + source_hash: 32623b6523f22930a5987fb22d2074f1e9bb274cc01ae1ad1837825cc04ec179 source_path: providers/ollama.md workflow: 15 --- # Ollama -OpenClaw інтегрується з нативним API Ollama (`/api/chat`) для розміщених хмарних моделей і локальних/самостійно розміщених серверів Ollama. Ви можете використовувати Ollama у трьох режимах: `Cloud + Local` через доступний хост Ollama, `Cloud only` проти `https://ollama.com` або `Local only` проти доступного хоста Ollama. +OpenClaw інтегрується з нативним API Ollama (`/api/chat`) для розміщених хмарних моделей і локальних/самостійно розміщених серверів Ollama. Ви можете використовувати Ollama у трьох режимах: `Cloud + Local` через доступний хост Ollama, `Cloud only` з `https://ollama.com` або `Local only` через доступний хост Ollama. -**Користувачі віддаленого Ollama**: Не використовуйте OpenAI-сумісну URL-адресу `/v1` (`http://host:11434/v1`) з OpenClaw. Це порушує виклик інструментів, і моделі можуть виводити сирий JSON інструментів як звичайний текст. Натомість використовуйте URL нативного API Ollama: `baseUrl: "http://host:11434"` (без `/v1`). +**Користувачі віддаленого Ollama**: Не використовуйте OpenAI-сумісний URL `/v1` (`http://host:11434/v1`) з OpenClaw. Це ламає виклики інструментів, і моделі можуть виводити сирий JSON інструментів як звичайний текст. Натомість використовуйте URL нативного API Ollama: `baseUrl: "http://host:11434"` (без `/v1`). ## Початок роботи @@ -26,26 +27,26 @@ OpenClaw інтегрується з нативним API Ollama (`/api/chat`) Виберіть бажаний спосіб налаштування та режим. - - **Найкраще для:** найшвидшого шляху до робочого хмарного або локального налаштування Ollama. + + **Найкраще для:** найшвидшого шляху до працездатного хмарного або локального налаштування Ollama. - + ```bash openclaw onboard ``` - Виберіть **Ollama** зі списку провайдерів. + Виберіть **Ollama** зі списку постачальників. - + - **Cloud + Local** — локальний хост Ollama плюс хмарні моделі, спрямовані через цей хост - **Cloud only** — розміщені моделі Ollama через `https://ollama.com` - **Local only** — лише локальні моделі - - `Cloud only` запитує `OLLAMA_API_KEY` і пропонує типові хмарні налаштування за замовчуванням. `Cloud + Local` і `Local only` запитують базову URL-адресу Ollama, виявляють доступні моделі та автоматично завантажують вибрану локальну модель, якщо вона ще недоступна. `Cloud + Local` також перевіряє, чи виконано вхід на цьому хості Ollama для доступу до хмари. + + `Cloud only` запитує `OLLAMA_API_KEY` і пропонує типові розміщені хмарні значення. `Cloud + Local` і `Local only` запитують базовий URL Ollama, виявляють доступні моделі та автоматично завантажують вибрану локальну модель, якщо вона ще недоступна. `Cloud + Local` також перевіряє, чи виконано вхід на цьому хості Ollama для доступу до хмари. - + ```bash openclaw models list --provider ollama ``` @@ -60,7 +61,7 @@ OpenClaw інтегрується з нативним API Ollama (`/api/chat`) --accept-risk ``` - За бажанням укажіть власну базову URL-адресу або модель: + За бажанням вкажіть власний базовий URL або модель: ```bash openclaw onboard --non-interactive \ @@ -72,45 +73,45 @@ OpenClaw інтегрується з нативним API Ollama (`/api/chat`) - + **Найкраще для:** повного контролю над хмарним або локальним налаштуванням. - - - **Cloud + Local**: встановіть Ollama, увійдіть через `ollama signin` і спрямовуйте хмарні запити через цей хост + + - **Cloud + Local**: установіть Ollama, увійдіть через `ollama signin` і спрямовуйте хмарні запити через цей хост - **Cloud only**: використовуйте `https://ollama.com` з `OLLAMA_API_KEY` - **Local only**: установіть Ollama з [ollama.com/download](https://ollama.com/download) - + ```bash ollama pull gemma4 - # or + # або ollama pull gpt-oss:20b - # or + # або ollama pull llama3.3 ``` - - Для `Cloud only` використовуйте свій справжній `OLLAMA_API_KEY`. Для конфігурацій на основі хоста підійде будь-яке заповнювальне значення: + + Для `Cloud only` використовуйте свій справжній `OLLAMA_API_KEY`. Для конфігурацій на основі хоста підійде будь-яке значення-заповнювач: ```bash - # Cloud + # Хмара export OLLAMA_API_KEY="your-ollama-api-key" - # Local-only + # Лише локально export OLLAMA_API_KEY="ollama-local" - # Or configure in your config file + # Або налаштуйте у своєму файлі конфігурації openclaw config set models.providers.ollama.apiKey "OLLAMA_API_KEY" ``` - + ```bash openclaw models list openclaw models set ollama/gemma4 ``` - Або встановіть модель за замовчуванням у конфігурації: + Або встановіть типову модель у конфігурації: ```json5 { @@ -131,11 +132,11 @@ OpenClaw інтегрується з нативним API Ollama (`/api/chat`) - `Cloud + Local` використовує доступний хост Ollama як точку керування і для локальних, і для хмарних моделей. Це бажаний гібридний сценарій Ollama. + `Cloud + Local` використовує доступний хост Ollama як точку керування і для локальних, і для хмарних моделей. Це рекомендований Ollama гібридний сценарій. - Під час налаштування використовуйте **Cloud + Local**. OpenClaw запитує базову URL-адресу Ollama, виявляє локальні моделі з цього хоста та перевіряє, чи виконано вхід на хості для доступу до хмари через `ollama signin`. Якщо вхід на хості виконано, OpenClaw також пропонує типові розміщені хмарні моделі, як-от `kimi-k2.5:cloud`, `minimax-m2.7:cloud` і `glm-5.1:cloud`. + Під час налаштування використовуйте **Cloud + Local**. OpenClaw запитує базовий URL Ollama, виявляє локальні моделі з цього хоста та перевіряє, чи виконано вхід на хості для хмарного доступу через `ollama signin`. Якщо вхід на хості виконано, OpenClaw також пропонує типові розміщені хмарні варіанти, такі як `kimi-k2.5:cloud`, `minimax-m2.7:cloud` і `glm-5.1:cloud`. - Якщо вхід на хості ще не виконано, OpenClaw зберігає налаштування лише локальним, доки ви не виконаєте `ollama signin`. + Якщо вхід на хості ще не виконано, OpenClaw залишає налаштування лише локальним, доки ви не запустите `ollama signin`. @@ -144,35 +145,35 @@ OpenClaw інтегрується з нативним API Ollama (`/api/chat`) Під час налаштування використовуйте **Cloud only**. OpenClaw запитує `OLLAMA_API_KEY`, встановлює `baseUrl: "https://ollama.com"` і заповнює список розміщених хмарних моделей. Цей шлях **не** потребує локального сервера Ollama або `ollama signin`. - Список хмарних моделей, показаний під час `openclaw onboard`, заповнюється в реальному часі з `https://ollama.com/api/tags`, обмежується 500 записами, тому засіб вибору відображає поточний розміщений каталог, а не статичний набір. Якщо `ollama.com` недоступний або не повертає моделей під час налаштування, OpenClaw повертається до попередніх жорстко закодованих пропозицій, щоб onboarding усе одно завершився. + Список хмарних моделей, показаний під час `openclaw onboard`, заповнюється в реальному часі з `https://ollama.com/api/tags`, обмежується 500 записами, тому засіб вибору відображає поточний розміщений каталог, а не статичний початковий список. Якщо `ollama.com` недоступний або не повертає моделі під час налаштування, OpenClaw повертається до попередніх жорстко закодованих пропозицій, щоб початкове налаштування все одно завершилося. - У режимі лише локального використання OpenClaw виявляє моделі з налаштованого екземпляра Ollama. Цей шлях призначений для локальних або самостійно розміщених серверів Ollama. + У режимі лише локально OpenClaw виявляє моделі з налаштованого екземпляра Ollama. Цей шлях призначений для локальних або самостійно розміщених серверів Ollama. - Наразі OpenClaw пропонує `gemma4` як локальну модель за замовчуванням. + Наразі OpenClaw пропонує `gemma4` як типову локальну модель. -## Виявлення моделей (неявний провайдер) +## Виявлення моделей (неявний постачальник) Коли ви встановлюєте `OLLAMA_API_KEY` (або профіль автентифікації) і **не** визначаєте `models.providers.ollama`, OpenClaw виявляє моделі з локального екземпляра Ollama за адресою `http://127.0.0.1:11434`. -| Поведінка | Докладно | -| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Запит до каталогу | Виконує запит до `/api/tags` | -| Виявлення можливостей | Використовує найкращі спроби пошуку `/api/show`, щоб прочитати `contextWindow` і виявити можливості (зокрема vision) | -| Vision-моделі | Моделі з можливістю `vision`, про яку повідомляє `/api/show`, позначаються як здатні працювати із зображеннями (`input: ["text", "image"]`), тому OpenClaw автоматично додає зображення до запиту | -| Виявлення міркування | Позначає `reasoning` за евристикою назви моделі (`r1`, `reasoning`, `think`) | -| Обмеження токенів | Встановлює `maxTokens` на типове максимальне обмеження токенів Ollama, яке використовує OpenClaw | -| Вартість | Встановлює всі значення вартості в `0` | +| Поведінка | Докладно | +| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Запит каталогу | Виконує запит до `/api/tags` | +| Виявлення можливостей | Використовує найкращі наявні пошуки `/api/show`, щоб зчитати `contextWindow` і виявити можливості (зокрема vision) | +| Vision-моделі | Моделі з можливістю `vision`, про яку повідомляє `/api/show`, позначаються як такі, що підтримують зображення (`input: ["text", "image"]`), тому OpenClaw автоматично додає зображення в запит | +| Виявлення reasoning | Позначає `reasoning` за евристикою назви моделі (`r1`, `reasoning`, `think`) | +| Обмеження токенів | Встановлює `maxTokens` на типове максимальне обмеження токенів Ollama, яке використовує OpenClaw | +| Вартість | Встановлює всі вартості в `0` | Це дає змогу уникнути ручного додавання моделей і водночас зберігати каталог узгодженим із локальним екземпляром Ollama. ```bash -# See what models are available +# Подивитися, які моделі доступні ollama list openclaw models list ``` @@ -186,27 +187,77 @@ ollama pull mistral Нова модель буде автоматично виявлена й доступна для використання. -Якщо ви явно задаєте `models.providers.ollama`, автовиявлення пропускається, і вам потрібно визначити моделі вручну. Див. розділ про явну конфігурацію нижче. +Якщо ви явно задаєте `models.providers.ollama`, автоматичне виявлення пропускається, і вам потрібно визначати моделі вручну. Див. розділ явної конфігурації нижче. +## Vision і опис зображень + +Вбудований Plugin Ollama реєструє Ollama як постачальника розуміння медіа, що підтримує зображення. Це дає OpenClaw змогу спрямовувати явні запити на опис зображень і налаштовані типові моделі для зображень через локальні або розміщені vision-моделі Ollama. + +Для локального vision завантажте модель, яка підтримує зображення: + +```bash +ollama pull qwen2.5vl:7b +export OLLAMA_API_KEY="ollama-local" +``` + +Потім перевірте через CLI infer: + +```bash +openclaw infer image describe \ + --file ./photo.jpg \ + --model ollama/qwen2.5vl:7b \ + --json +``` + +`--model` має бути повним посиланням ``. Якщо його задано, `openclaw infer image describe` запускає цю модель безпосередньо замість того, щоб пропускати опис, оскільки модель підтримує нативний vision. + +Щоб зробити Ollama типовою моделлю розуміння зображень для вхідних медіа, налаштуйте `agents.defaults.imageModel`: + +```json5 +{ + agents: { + defaults: { + imageModel: { + primary: "ollama/qwen2.5vl:7b", + }, + }, + }, +} +``` + +Якщо ви визначаєте `models.providers.ollama.models` вручну, позначайте vision-моделі як такі, що підтримують введення зображень: + +```json5 +{ + id: "qwen2.5vl:7b", + name: "qwen2.5vl:7b", + input: ["text", "image"], + contextWindow: 128000, + maxTokens: 8192, +} +``` + +OpenClaw відхиляє запити на опис зображень для моделей, які не позначені як такі, що підтримують зображення. За неявного виявлення OpenClaw зчитує це з Ollama, коли `/api/show` повідомляє про можливість vision. + ## Конфігурація - - Найпростіший спосіб увімкнення режиму лише локального використання — через змінну середовища: + + Найпростіший шлях увімкнення режиму лише локально — через змінну середовища: ```bash export OLLAMA_API_KEY="ollama-local" ``` - Якщо встановлено `OLLAMA_API_KEY`, ви можете не вказувати `apiKey` у записі провайдера, і OpenClaw підставить його для перевірок доступності. + Якщо задано `OLLAMA_API_KEY`, ви можете не вказувати `apiKey` у записі постачальника, і OpenClaw підставить його для перевірок доступності. - - Використовуйте явну конфігурацію, коли вам потрібне розміщене хмарне налаштування, Ollama працює на іншому хості/порту, ви хочете примусово задати певні контекстні вікна або списки моделей, або вам потрібні повністю ручні визначення моделей. + + Використовуйте явну конфігурацію, коли вам потрібне розміщене хмарне налаштування, Ollama працює на іншому хості/порту, ви хочете примусово задати конкретні контекстні вікна або списки моделей, або вам потрібні повністю ручні визначення моделей. ```json5 { @@ -235,8 +286,8 @@ ollama pull mistral - - Якщо Ollama працює на іншому хості або порту (явна конфігурація вимикає автовиявлення, тому визначайте моделі вручну): + + Якщо Ollama працює на іншому хості або порту (явна конфігурація вимикає автоматичне виявлення, тому визначайте моделі вручну): ```json5 { @@ -244,8 +295,8 @@ ollama pull mistral providers: { ollama: { apiKey: "ollama-local", - baseUrl: "http://ollama-host:11434", // No /v1 - use native Ollama API URL - api: "ollama", // Set explicitly to guarantee native tool-calling behavior + baseUrl: "http://ollama-host:11434", // Без /v1 - використовуйте URL нативного API Ollama + api: "ollama", // Явно задайте, щоб гарантувати нативну поведінку викликів інструментів }, }, }, @@ -253,7 +304,7 @@ ollama pull mistral ``` - Не додавайте `/v1` до URL-адреси. Шлях `/v1` використовує OpenAI-сумісний режим, у якому виклик інструментів ненадійний. Використовуйте базову URL-адресу Ollama без суфікса шляху. + Не додавайте `/v1` до URL. Шлях `/v1` використовує OpenAI-сумісний режим, у якому виклики інструментів працюють ненадійно. Використовуйте базовий URL Ollama без суфікса шляху. @@ -278,13 +329,13 @@ ollama pull mistral ## Ollama Web Search -OpenClaw підтримує **Ollama Web Search** як вбудований провайдер `web_search`. +OpenClaw підтримує **Ollama Web Search** як вбудованого постачальника `web_search`. -| Властивість | Докладно | -| ----------- | --------------------------------------------------------------------------------------------------------------------- | -| Хост | Використовує ваш налаштований хост Ollama (`models.providers.ollama.baseUrl`, якщо задано, інакше `http://127.0.0.1:11434`) | -| Автентифікація | Без ключа | -| Вимога | Ollama має працювати, і в ньому має бути виконано вхід через `ollama signin` | +| Властивість | Докладно | +| ----------- | -------------------------------------------------------------------------------------------------------------------- | +| Хост | Використовує налаштований вами хост Ollama (`models.providers.ollama.baseUrl`, якщо задано, інакше `http://127.0.0.1:11434`) | +| Автентифікація | Без ключа | +| Вимога | Ollama має бути запущений, і в ньому має бути виконано вхід через `ollama signin` | Виберіть **Ollama Web Search** під час `openclaw onboard` або `openclaw configure --section web`, або задайте: @@ -301,18 +352,18 @@ OpenClaw підтримує **Ollama Web Search** як вбудований пр ``` -Повні відомості про налаштування та поведінку див. в [Ollama Web Search](/uk/tools/ollama-search). +Повні відомості про налаштування й поведінку див. у [Ollama Web Search](/uk/tools/ollama-search). ## Розширена конфігурація - + - **Виклик інструментів у OpenAI-сумісному режимі ненадійний.** Використовуйте цей режим лише тоді, коли вам потрібен формат OpenAI для проксі й ви не залежите від нативної поведінки виклику інструментів. + **Виклик інструментів в OpenAI-сумісному режимі працює ненадійно.** Використовуйте цей режим лише якщо вам потрібен формат OpenAI для проксі й ви не залежите від нативної поведінки виклику інструментів. - Якщо вам потрібно використовувати натомість OpenAI-сумісну кінцеву точку (наприклад, за проксі, який підтримує лише формат OpenAI), явно задайте `api: "openai-completions"`: + Якщо вам потрібно натомість використовувати OpenAI-сумісну кінцеву точку (наприклад, за проксі, який підтримує лише формат OpenAI), явно задайте `api: "openai-completions"`: ```json5 { @@ -321,7 +372,7 @@ OpenClaw підтримує **Ollama Web Search** як вбудований пр ollama: { baseUrl: "http://ollama-host:11434/v1", api: "openai-completions", - injectNumCtxForOpenAICompat: true, // default: true + injectNumCtxForOpenAICompat: true, // типово: true apiKey: "ollama-local", models: [...] } @@ -330,9 +381,9 @@ OpenClaw підтримує **Ollama Web Search** як вбудований пр } ``` - Цей режим може не підтримувати одночасно потокову передачу й виклик інструментів. Може знадобитися вимкнути потокову передачу за допомогою `params: { streaming: false }` у конфігурації моделі. + Цей режим може не підтримувати одночасно потокову передачу та виклик інструментів. Можливо, вам доведеться вимкнути потокову передачу за допомогою `params: { streaming: false }` у конфігурації моделі. - Коли `api: "openai-completions"` використовується з Ollama, OpenClaw за замовчуванням додає `options.num_ctx`, щоб Ollama не переходив непомітно до контекстного вікна 4096. Якщо ваш проксі/вищий рівень відхиляє невідомі поля `options`, вимкніть цю поведінку: + Коли з Ollama використовується `api: "openai-completions"`, OpenClaw типово додає `options.num_ctx`, щоб Ollama не переходив непомітно на контекстне вікно 4096. Якщо ваш проксі/вищий рівень не приймає невідомі поля `options`, вимкніть цю поведінку: ```json5 { @@ -353,9 +404,9 @@ OpenClaw підтримує **Ollama Web Search** як вбудований пр - Для автоматично виявлених моделей OpenClaw використовує контекстне вікно, про яке повідомляє Ollama, коли воно доступне, інакше повертається до типового контекстного вікна Ollama, яке використовує OpenClaw. + Для автоматично виявлених моделей OpenClaw використовує контекстне вікно, про яке повідомляє Ollama, коли воно доступне; інакше використовується типове контекстне вікно Ollama, яке використовує OpenClaw. - Ви можете перевизначити `contextWindow` і `maxTokens` у явній конфігурації провайдера: + Ви можете перевизначити `contextWindow` і `maxTokens` в явній конфігурації постачальника: ```json5 { @@ -377,32 +428,32 @@ OpenClaw підтримує **Ollama Web Search** як вбудований пр - - OpenClaw типово вважає моделі з назвами на кшталт `deepseek-r1`, `reasoning` або `think` здатними до міркування. + + OpenClaw типово вважає моделі з назвами на кшталт `deepseek-r1`, `reasoning` або `think` такими, що підтримують reasoning. ```bash ollama pull deepseek-r1:32b ``` - Жодна додаткова конфігурація не потрібна -- OpenClaw позначає їх автоматично. + Додаткова конфігурація не потрібна — OpenClaw позначає їх автоматично. - Ollama є безкоштовним і працює локально, тому вартість усіх моделей установлено на $0. Це стосується як автоматично виявлених, так і вручну визначених моделей. + Ollama безкоштовний і працює локально, тому вартість усіх моделей встановлено на рівні $0. Це стосується як автоматично виявлених, так і вручну визначених моделей. - Вбудований Plugin Ollama реєструє провайдера вбудовування пам’яті для - [пошуку в пам’яті](/uk/concepts/memory). Він використовує налаштовану базову URL-адресу Ollama + Вбудований Plugin Ollama реєструє постачальника вбудовувань пам’яті для + [пошуку в пам’яті](/uk/concepts/memory). Він використовує налаштовані базовий URL Ollama та API-ключ. - | Властивість | Значення | - | -------------- | -------------------- | - | Типова модель | `nomic-embed-text` | - | Автозавантаження | Так — модель вбудовування автоматично завантажується, якщо її немає локально | + | Властивість | Значення | + | --------------- | ------------------- | + | Типова модель | `nomic-embed-text` | + | Автозавантаження | Так — модель вбудовувань автоматично завантажується, якщо її немає локально | - Щоб вибрати Ollama як провайдера вбудовування для пошуку в пам’яті: + Щоб вибрати Ollama як постачальника вбудовувань для пошуку в пам’яті: ```json5 { @@ -417,20 +468,20 @@ OpenClaw підтримує **Ollama Web Search** як вбудований пр - Інтеграція Ollama в OpenClaw за замовчуванням використовує **нативний API Ollama** (`/api/chat`), який повністю підтримує одночасно потокову передачу та виклик інструментів. Жодна спеціальна конфігурація не потрібна. + Інтеграція Ollama в OpenClaw типово використовує **нативний API Ollama** (`/api/chat`), який повністю підтримує одночасно потокову передачу та виклик інструментів. Жодна спеціальна конфігурація не потрібна. - Якщо вам потрібно використовувати OpenAI-сумісну кінцеву точку, див. розділ "Legacy OpenAI-compatible mode" вище. У цьому режимі потокова передача та виклик інструментів можуть не працювати одночасно. + Якщо вам потрібно використовувати OpenAI-сумісну кінцеву точку, див. розділ «Застарілий OpenAI-сумісний режим» вище. У цьому режимі потокова передача та виклик інструментів можуть не працювати одночасно. -## Усунення неполадок +## Усунення несправностей - Переконайтеся, що Ollama запущено, що ви встановили `OLLAMA_API_KEY` (або профіль автентифікації), і що ви **не** визначили явний запис `models.providers.ollama`: + Переконайтеся, що Ollama запущено, що ви задали `OLLAMA_API_KEY` (або профіль автентифікації), і що ви **не** визначили явний запис `models.providers.ollama`: ```bash ollama serve @@ -445,25 +496,25 @@ OpenClaw підтримує **Ollama Web Search** як вбудований пр - Якщо вашої моделі немає у списку, або завантажте модель локально, або визначте її явно в `models.providers.ollama`. + Якщо вашу модель не вказано в списку, або завантажте її локально, або визначте її явно в `models.providers.ollama`. ```bash - ollama list # See what's installed + ollama list # Подивитися, що встановлено ollama pull gemma4 ollama pull gpt-oss:20b - ollama pull llama3.3 # Or another model + ollama pull llama3.3 # Або іншу модель ``` - - Переконайтеся, що Ollama працює на правильному порту: + + Перевірте, що Ollama запущено на правильному порту: ```bash - # Check if Ollama is running + # Перевірити, чи запущено Ollama ps aux | grep ollama - # Or restart Ollama + # Або перезапустити Ollama ollama serve ``` @@ -471,22 +522,22 @@ OpenClaw підтримує **Ollama Web Search** як вбудований пр -Більше довідки: [Усунення неполадок](/uk/help/troubleshooting) і [FAQ](/uk/help/faq). +Більше допомоги: [Усунення несправностей](/uk/help/troubleshooting) і [FAQ](/uk/help/faq). ## Пов’язане - - Огляд усіх провайдерів, посилань на моделі та поведінки перемикання при відмові. + + Огляд усіх постачальників, посилань на моделі та поведінки перемикання на резервні варіанти. - Як вибирати та налаштовувати моделі. + Як вибирати й налаштовувати моделі. - Повні відомості про налаштування та поведінку для вебпошуку на базі Ollama. + Повні відомості про налаштування й поведінку вебпошуку на основі Ollama. - Повний довідник із конфігурації. + Повна довідка з конфігурації.