chore(i18n): refresh uk translations
This commit is contained in:
parent
5bb8dff807
commit
adb862c9d2
@ -3,60 +3,60 @@ read_when:
|
||||
- Вам потрібен довідник із налаштування моделей для кожного провайдера
|
||||
- Вам потрібні приклади конфігурацій або команди CLI для початкового налаштування постачальників моделей
|
||||
sidebarTitle: Model providers
|
||||
summary: Огляд постачальників моделей із прикладами конфігурацій і сценаріїв CLI
|
||||
summary: Огляд провайдера моделей із прикладами конфігурацій + CLI-сценаріями
|
||||
title: Постачальники моделей
|
||||
x-i18n:
|
||||
generated_at: "2026-04-29T04:06:12Z"
|
||||
generated_at: "2026-04-29T16:29:15Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: ee6c7fc1a87ec8db7df291ac87281e13b43b0b4e2076e1084698932b9a3bf1b9
|
||||
source_hash: 3902194674d6d4e17a8477c28addb39b8e04c3b498eb6a0305e82c2f1b5d737e
|
||||
source_path: concepts/model-providers.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
Довідка для **провайдерів LLM/моделей** (не каналів чату, як-от WhatsApp/Telegram). Правила вибору моделей див. у [Моделі](/uk/concepts/models).
|
||||
Довідник для **провайдерів LLM/моделей** (не каналів чату, як-от WhatsApp/Telegram). Правила вибору моделей див. у [Моделі](/uk/concepts/models).
|
||||
|
||||
## Короткі правила
|
||||
## Швидкі правила
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Посилання на моделі та допоміжні засоби CLI">
|
||||
<Accordion title="Посилання на моделі та помічники CLI">
|
||||
- Посилання на моделі використовують `provider/model` (приклад: `opencode/claude-opus-4-6`).
|
||||
- `agents.defaults.models` працює як список дозволених, коли його задано.
|
||||
- Допоміжні засоби CLI: `openclaw onboard`, `openclaw models list`, `openclaw models set <provider/model>`.
|
||||
- `agents.defaults.models` діє як список дозволених значень, коли його задано.
|
||||
- Помічники CLI: `openclaw onboard`, `openclaw models list`, `openclaw models set <provider/model>`.
|
||||
- `models.providers.*.contextWindow` / `contextTokens` / `maxTokens` задають типові значення на рівні провайдера; `models.providers.*.models[].contextWindow` / `contextTokens` / `maxTokens` перевизначають їх для окремої моделі.
|
||||
- Правила резервного перемикання, зонди охолодження та збереження перевизначень сеансу: [Резервне перемикання моделей](/uk/concepts/model-failover).
|
||||
- Правила резервного перемикання, проби після періоду охолодження та збереження перевизначень сеансу: [Резервне перемикання моделей](/uk/concepts/model-failover).
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Розділення провайдера й runtime OpenAI">
|
||||
Маршрути сімейства OpenAI залежать від префікса:
|
||||
|
||||
- `openai/<model>` використовує прямого провайдера OpenAI API-ключа в PI.
|
||||
- `openai-codex/<model>` використовує Codex OAuth в PI.
|
||||
- `openai/<model>` разом із `agents.defaults.agentRuntime.id: "codex"` використовує нативний каркас сервера застосунку Codex.
|
||||
- `openai/<model>` використовує прямого провайдера OpenAI з API-ключем у PI.
|
||||
- `openai-codex/<model>` використовує Codex OAuth у PI.
|
||||
- `openai/<model>` разом із `agents.defaults.agentRuntime.id: "codex"` використовує нативний harness сервера застосунку Codex.
|
||||
|
||||
Див. [OpenAI](/uk/providers/openai) і [каркас Codex](/uk/plugins/codex-harness). Якщо розділення провайдера й runtime незрозуміле, спочатку прочитайте [Runtime агентів](/uk/concepts/agent-runtimes).
|
||||
Див. [OpenAI](/uk/providers/openai) і [harness Codex](/uk/plugins/codex-harness). Якщо розділення провайдера й runtime незрозуміле, спершу прочитайте [Runtime агентів](/uk/concepts/agent-runtimes).
|
||||
|
||||
Автоматичне ввімкнення Plugin дотримується тієї самої межі: `openai-codex/<model>` належить до OpenAI Plugin, тоді як Codex Plugin вмикається через `agentRuntime.id: "codex"` або застарілі посилання `codex/<model>`.
|
||||
Автоматичне ввімкнення Plugin дотримується тієї самої межі: `openai-codex/<model>` належить до Plugin OpenAI, тоді як Plugin Codex вмикається через `agentRuntime.id: "codex"` або застарілі посилання `codex/<model>`.
|
||||
|
||||
GPT-5.5 доступна через `openai/gpt-5.5` для прямого трафіку API-ключа, `openai-codex/gpt-5.5` в PI для Codex OAuth, а також через нативний каркас сервера застосунку Codex, коли задано `agentRuntime.id: "codex"`.
|
||||
GPT-5.5 доступний через `openai/gpt-5.5` для прямого трафіку з API-ключем, `openai-codex/gpt-5.5` у PI для Codex OAuth, а також через нативний harness сервера застосунку Codex, коли задано `agentRuntime.id: "codex"`.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Runtime CLI">
|
||||
Runtime CLI використовують те саме розділення: виберіть канонічні посилання на моделі, як-от `anthropic/claude-*`, `google/gemini-*` або `openai/gpt-*`, а потім задайте `agents.defaults.agentRuntime.id` як `claude-cli`, `google-gemini-cli` або `codex-cli`, коли потрібен локальний backend CLI.
|
||||
<Accordion title="CLI runtime">
|
||||
CLI runtime використовують те саме розділення: виберіть канонічні посилання на моделі, як-от `anthropic/claude-*`, `google/gemini-*` або `openai/gpt-*`, а потім задайте `agents.defaults.agentRuntime.id` як `claude-cli`, `google-gemini-cli` або `codex-cli`, коли потрібен локальний CLI бекенд.
|
||||
|
||||
Застарілі посилання `claude-cli/*`, `google-gemini-cli/*` і `codex-cli/*` мігрують назад до канонічних посилань провайдерів, а runtime записується окремо.
|
||||
Застарілі посилання `claude-cli/*`, `google-gemini-cli/*` і `codex-cli/*` мігрують назад до канонічних посилань провайдера, а runtime записується окремо.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Поведінка провайдера, що належить Plugin
|
||||
## Поведінка провайдера, якою володіє Plugin
|
||||
|
||||
Більшість логіки, специфічної для провайдера, живе в provider plugins (`registerProvider(...)`), тоді як OpenClaw зберігає загальний цикл виведення. Plugins відповідають за onboarding, каталоги моделей, зіставлення змінних середовища автентифікації, нормалізацію транспорту/конфігурації, очищення схем інструментів, класифікацію резервного перемикання, оновлення OAuth, звітування про використання, профілі thinking/reasoning тощо.
|
||||
Більшість специфічної для провайдерів логіки міститься в Plugin провайдерів (`registerProvider(...)`), тоді як OpenClaw зберігає загальний цикл inference. Plugin відповідають за onboarding, каталоги моделей, зіставлення змінних середовища для автентифікації, нормалізацію транспорту/конфігурації, очищення схем інструментів, класифікацію резервного перемикання, оновлення OAuth, звітування про використання, профілі мислення/reasoning тощо.
|
||||
|
||||
Повний список хуків provider-SDK і прикладів bundled-plugin наведено в [Provider plugins](/uk/plugins/sdk-provider-plugins). Провайдер, якому потрібен повністю власний виконавець запитів, є окремою, глибшою поверхнею розширення.
|
||||
Повний список хуків provider-SDK і прикладів вбудованих Plugin наведено в [Plugin провайдерів](/uk/plugins/sdk-provider-plugins). Провайдер, якому потрібен повністю власний виконавець запитів, є окремою, глибшою поверхнею розширення.
|
||||
|
||||
<Note>
|
||||
Поведінка runner, що належить провайдеру, живе в явних хуках провайдера, як-от політика повторного відтворення, нормалізація схем інструментів, обгортання stream і допоміжні засоби транспорту/запитів. Застарілий статичний контейнер `ProviderPlugin.capabilities` призначений лише для сумісності й більше не читається спільною логікою runner.
|
||||
Поведінка runner, якою володіє провайдер, живе в явних хуках провайдера, як-от політика replay, нормалізація схем інструментів, обгортання stream і помічники транспорту/запитів. Застарілий статичний пакет `ProviderPlugin.capabilities` призначений лише для сумісності й більше не читається спільною логікою runner.
|
||||
</Note>
|
||||
|
||||
## Ротація API-ключів
|
||||
@ -70,13 +70,13 @@ x-i18n:
|
||||
- `<PROVIDER>_API_KEY` (основний ключ)
|
||||
- `<PROVIDER>_API_KEY_*` (нумерований список, напр. `<PROVIDER>_API_KEY_1`)
|
||||
|
||||
Для провайдерів Google `GOOGLE_API_KEY` також додається як fallback. Порядок вибору ключів зберігає пріоритет і усуває дублікати значень.
|
||||
Для провайдерів Google `GOOGLE_API_KEY` також включено як fallback. Порядок вибору ключів зберігає пріоритет і усуває дублікати значень.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Коли вмикається ротація">
|
||||
- Запити повторюються з наступним ключем лише для відповідей про перевищення ліміту швидкості (наприклад, `429`, `rate_limit`, `quota`, `resource exhausted`, `Too many concurrent requests`, `ThrottlingException`, `concurrency limit reached`, `workers_ai ... quota limit exceeded` або періодичних повідомлень про ліміт використання).
|
||||
- Збої, не пов’язані з лімітом швидкості, завершуються негайно; ротація ключів не виконується.
|
||||
- Коли всі кандидатні ключі зазнають збою, фінальна помилка повертається з останньої спроби.
|
||||
<Accordion title="Коли запускається ротація">
|
||||
- Запити повторюються з наступним ключем лише для відповідей про обмеження швидкості (наприклад, `429`, `rate_limit`, `quota`, `resource exhausted`, `Too many concurrent requests`, `ThrottlingException`, `concurrency limit reached`, `workers_ai ... quota limit exceeded` або періодичні повідомлення про ліміт використання).
|
||||
- Збої, не пов’язані з обмеженням швидкості, одразу завершуються помилкою; ротація ключів не виконується.
|
||||
- Коли всі кандидатні ключі зазнають невдачі, повертається фінальна помилка з останньої спроби.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
@ -87,21 +87,21 @@ OpenClaw постачається з каталогом pi‑ai. Ці прова
|
||||
|
||||
### OpenAI
|
||||
|
||||
- Провайдер: `openai`
|
||||
- Постачальник: `openai`
|
||||
- Автентифікація: `OPENAI_API_KEY`
|
||||
- Необов'язкова ротація: `OPENAI_API_KEYS`, `OPENAI_API_KEY_1`, `OPENAI_API_KEY_2`, плюс `OPENCLAW_LIVE_OPENAI_KEY` (єдине перевизначення)
|
||||
- Необов’язкова ротація: `OPENAI_API_KEYS`, `OPENAI_API_KEY_1`, `OPENAI_API_KEY_2`, плюс `OPENCLAW_LIVE_OPENAI_KEY` (одноразове перевизначення)
|
||||
- Приклади моделей: `openai/gpt-5.5`, `openai/gpt-5.4-mini`
|
||||
- Перевірте доступність облікового запису/моделі за допомогою `openclaw models list --provider openai`, якщо конкретна інсталяція або API-ключ поводиться інакше.
|
||||
- Перевірте доступність облікового запису/моделі за допомогою `openclaw models list --provider openai`, якщо конкретне встановлення або API-ключ поводиться інакше.
|
||||
- CLI: `openclaw onboard --auth-choice openai-api-key`
|
||||
- Транспорт за замовчуванням — `auto` (спочатку WebSocket, резервно SSE)
|
||||
- Перевизначення для окремої моделі через `agents.defaults.models["openai/<model>"].params.transport` (`"sse"`, `"websocket"` або `"auto"`)
|
||||
- Прогрівання OpenAI Responses WebSocket за замовчуванням увімкнене через `params.openaiWsWarmup` (`true`/`false`)
|
||||
- Типовий транспорт — `auto` (спочатку WebSocket, резервно SSE)
|
||||
- Перевизначення для кожної моделі через `agents.defaults.models["openai/<model>"].params.transport` (`"sse"`, `"websocket"` або `"auto"`)
|
||||
- Прогрівання WebSocket для OpenAI Responses типово ввімкнене через `params.openaiWsWarmup` (`true`/`false`)
|
||||
- Пріоритетну обробку OpenAI можна ввімкнути через `agents.defaults.models["openai/<model>"].params.serviceTier`
|
||||
- `/fast` і `params.fastMode` зіставляють прямі запити `openai/*` Responses із `service_tier=priority` на `api.openai.com`
|
||||
- `/fast` і `params.fastMode` зіставляють прямі запити Responses `openai/*` із `service_tier=priority` на `api.openai.com`
|
||||
- Використовуйте `params.serviceTier`, коли потрібен явний рівень замість спільного перемикача `/fast`
|
||||
- Приховані заголовки атрибуції OpenClaw (`originator`, `version`, `User-Agent`) застосовуються лише до нативного трафіку OpenAI до `api.openai.com`, а не до загальних OpenAI-сумісних проксі
|
||||
- Нативні маршрути OpenAI також зберігають Responses `store`, підказки кешу промптів і формування payload для сумісності з міркуванням OpenAI; маршрути проксі — ні
|
||||
- `openai/gpt-5.3-codex-spark` навмисно приглушено в OpenClaw, оскільки живі запити OpenAI API його відхиляють, а поточний каталог Codex його не надає
|
||||
- Приховані заголовки атрибуції OpenClaw (`originator`, `version`, `User-Agent`) застосовуються лише до нативного трафіку OpenAI на `api.openai.com`, а не до загальних OpenAI-сумісних проксі
|
||||
- Нативні маршрути OpenAI також зберігають Responses `store`, підказки prompt-cache і формування payload для сумісності з reasoning OpenAI; проксі-маршрути цього не роблять
|
||||
- `openai/gpt-5.3-codex-spark` навмисно приховано в OpenClaw, оскільки live-запити OpenAI API його відхиляють, а поточний каталог Codex його не надає
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -111,19 +111,16 @@ OpenClaw постачається з каталогом pi‑ai. Ці прова
|
||||
|
||||
### Anthropic
|
||||
|
||||
- Провайдер: `anthropic`
|
||||
- Постачальник: `anthropic`
|
||||
- Автентифікація: `ANTHROPIC_API_KEY`
|
||||
- Необов'язкова ротація: `ANTHROPIC_API_KEYS`, `ANTHROPIC_API_KEY_1`, `ANTHROPIC_API_KEY_2`, плюс `OPENCLAW_LIVE_ANTHROPIC_KEY` (єдине перевизначення)
|
||||
- Необов’язкова ротація: `ANTHROPIC_API_KEYS`, `ANTHROPIC_API_KEY_1`, `ANTHROPIC_API_KEY_2`, плюс `OPENCLAW_LIVE_ANTHROPIC_KEY` (одноразове перевизначення)
|
||||
- Приклад моделі: `anthropic/claude-opus-4-6`
|
||||
- CLI: `openclaw onboard --auth-choice apiKey`
|
||||
- Прямі публічні запити Anthropic підтримують спільний перемикач `/fast` і `params.fastMode`, зокрема трафік з API-ключем і автентифікацією OAuth, надісланий до `api.anthropic.com`; OpenClaw зіставляє це з Anthropic `service_tier` (`auto` проти `standard_only`)
|
||||
- Бажана конфігурація Claude CLI зберігає канонічне посилання на модель і вибирає CLI
|
||||
бекенд окремо: `anthropic/claude-opus-4-7` з
|
||||
`agents.defaults.agentRuntime.id: "claude-cli"`. Застарілі посилання
|
||||
`claude-cli/claude-opus-4-7` досі працюють для сумісності.
|
||||
- Прямі публічні запити Anthropic підтримують спільний перемикач `/fast` і `params.fastMode`, включно з трафіком з API-ключем та OAuth-автентифікацією, надісланим до `api.anthropic.com`; OpenClaw зіставляє це з Anthropic `service_tier` (`auto` проти `standard_only`)
|
||||
- Бажана конфігурація Claude CLI зберігає посилання на модель канонічним і вибирає бекенд CLI окремо: `anthropic/claude-opus-4-7` з `agents.defaults.agentRuntime.id: "claude-cli"`. Застарілі посилання `claude-cli/claude-opus-4-7` і далі працюють для сумісності.
|
||||
|
||||
<Note>
|
||||
Співробітники Anthropic повідомили нам, що використання Claude CLI у стилі OpenClaw знову дозволене, тому OpenClaw вважає повторне використання Claude CLI і використання `claude -p` санкціонованими для цієї інтеграції, якщо Anthropic не опублікує нову політику. setup-token Anthropic залишається доступним як підтримуваний шлях токена OpenClaw, але тепер OpenClaw надає перевагу повторному використанню Claude CLI і `claude -p`, коли вони доступні.
|
||||
Працівники Anthropic повідомили нам, що використання Claude CLI у стилі OpenClaw знову дозволене, тому OpenClaw розглядає повторне використання Claude CLI і використання `claude -p` як санкціоновані для цієї інтеграції, доки Anthropic не опублікує нову політику. Токен налаштування Anthropic залишається доступним як підтримуваний шлях токена OpenClaw, але тепер OpenClaw віддає перевагу повторному використанню Claude CLI і `claude -p`, коли вони доступні.
|
||||
</Note>
|
||||
|
||||
```json5
|
||||
@ -134,20 +131,20 @@ OpenClaw постачається з каталогом pi‑ai. Ці прова
|
||||
|
||||
### OpenAI Codex OAuth
|
||||
|
||||
- Провайдер: `openai-codex`
|
||||
- Постачальник: `openai-codex`
|
||||
- Автентифікація: OAuth (ChatGPT)
|
||||
- Посилання на модель PI: `openai-codex/gpt-5.5`
|
||||
- Посилання на нативний harness сервера застосунку Codex: `openai/gpt-5.5` з `agents.defaults.agentRuntime.id: "codex"`
|
||||
- Документація нативного harness сервера застосунку Codex: [harness Codex](/uk/plugins/codex-harness)
|
||||
- Посилання на нативний harness app-server Codex: `openai/gpt-5.5` з `agents.defaults.agentRuntime.id: "codex"`
|
||||
- Документація нативного harness app-server Codex: [harness Codex](/uk/plugins/codex-harness)
|
||||
- Застарілі посилання на моделі: `codex/gpt-*`
|
||||
- Межа Plugin: `openai-codex/*` завантажує Plugin OpenAI; нативний Plugin сервера застосунку Codex вибирається лише середовищем виконання harness Codex або застарілими посиланнями `codex/*`.
|
||||
- Межа Plugin: `openai-codex/*` завантажує Plugin OpenAI; нативний Plugin app-server Codex вибирається лише runtime harness Codex або застарілими посиланнями `codex/*`.
|
||||
- CLI: `openclaw onboard --auth-choice openai-codex` або `openclaw models auth login --provider openai-codex`
|
||||
- Транспорт за замовчуванням — `auto` (спочатку WebSocket, резервно SSE)
|
||||
- Перевизначення для окремої PI-моделі через `agents.defaults.models["openai-codex/<model>"].params.transport` (`"sse"`, `"websocket"` або `"auto"`)
|
||||
- `params.serviceTier` також передається в нативних запитах Codex Responses (`chatgpt.com/backend-api`)
|
||||
- Приховані заголовки атрибуції OpenClaw (`originator`, `version`, `User-Agent`) додаються лише до нативного трафіку Codex до `chatgpt.com/backend-api`, а не до загальних OpenAI-сумісних проксі
|
||||
- Використовує ту саму конфігурацію перемикача `/fast` і `params.fastMode`, що й прямі `openai/*`; OpenClaw зіставляє це з `service_tier=priority`
|
||||
- `openai-codex/gpt-5.5` використовує нативні значення каталогу Codex `contextWindow = 400000` і стандартне значення runtime `contextTokens = 272000`; перевизначте обмеження runtime за допомогою `models.providers.openai-codex.models[].contextTokens`
|
||||
- Типовий транспорт — `auto` (спочатку WebSocket, резервно SSE)
|
||||
- Перевизначення для кожної моделі PI через `agents.defaults.models["openai-codex/<model>"].params.transport` (`"sse"`, `"websocket"` або `"auto"`)
|
||||
- `params.serviceTier` також пересилається в нативних запитах Codex Responses (`chatgpt.com/backend-api`)
|
||||
- Приховані заголовки атрибуції OpenClaw (`originator`, `version`, `User-Agent`) додаються лише до нативного трафіку Codex на `chatgpt.com/backend-api`, а не до загальних OpenAI-сумісних проксі
|
||||
- Має ту саму конфігурацію спільного перемикача `/fast` і `params.fastMode`, що й прямі `openai/*`; OpenClaw зіставляє це з `service_tier=priority`
|
||||
- `openai-codex/gpt-5.5` використовує нативні для каталогу Codex `contextWindow = 400000` і типовий runtime `contextTokens = 272000`; перевизначте обмеження runtime за допомогою `models.providers.openai-codex.models[].contextTokens`
|
||||
- Примітка щодо політики: OpenAI Codex OAuth явно підтримується для зовнішніх інструментів/робочих процесів на кшталт OpenClaw.
|
||||
- Використовуйте `openai-codex/gpt-5.5`, коли потрібен маршрут Codex OAuth/підписки; використовуйте `openai/gpt-5.5`, коли ваше налаштування API-ключа і локальний каталог надають публічний маршрут API.
|
||||
|
||||
@ -169,25 +166,25 @@ OpenClaw постачається з каталогом pi‑ai. Ці прова
|
||||
}
|
||||
```
|
||||
|
||||
### Інші розміщені варіанти у стилі підписки
|
||||
### Інші розміщені варіанти в стилі підписки
|
||||
|
||||
<CardGroup cols={3}>
|
||||
<Card title="Моделі GLM" href="/uk/providers/glm">
|
||||
Z.AI Coding Plan або загальні API endpoints.
|
||||
Coding Plan Z.AI або загальні кінцеві точки API.
|
||||
</Card>
|
||||
<Card title="MiniMax" href="/uk/providers/minimax">
|
||||
MiniMax Coding Plan OAuth або доступ за API-ключем.
|
||||
Доступ через OAuth MiniMax Coding Plan або API-ключ.
|
||||
</Card>
|
||||
<Card title="Qwen Cloud" href="/uk/providers/qwen">
|
||||
Поверхня провайдера Qwen Cloud плюс зіставлення Alibaba DashScope і endpoint Coding Plan.
|
||||
Поверхня постачальника Qwen Cloud плюс зіставлення кінцевих точок Alibaba DashScope і Coding Plan.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
### OpenCode
|
||||
|
||||
- Автентифікація: `OPENCODE_API_KEY` (або `OPENCODE_ZEN_API_KEY`)
|
||||
- Провайдер Zen runtime: `opencode`
|
||||
- Провайдер Go runtime: `opencode-go`
|
||||
- Постачальник runtime Zen: `opencode`
|
||||
- Постачальник runtime Go: `opencode-go`
|
||||
- Приклади моделей: `opencode/claude-opus-4-6`, `opencode-go/kimi-k2.6`
|
||||
- CLI: `openclaw onboard --auth-choice opencode-zen` або `openclaw onboard --auth-choice opencode-go`
|
||||
|
||||
@ -199,26 +196,26 @@ OpenClaw постачається з каталогом pi‑ai. Ці прова
|
||||
|
||||
### Google Gemini (API-ключ)
|
||||
|
||||
- Провайдер: `google`
|
||||
- Постачальник: `google`
|
||||
- Автентифікація: `GEMINI_API_KEY`
|
||||
- Необов'язкова ротація: `GEMINI_API_KEYS`, `GEMINI_API_KEY_1`, `GEMINI_API_KEY_2`, резервний `GOOGLE_API_KEY` і `OPENCLAW_LIVE_GEMINI_KEY` (єдине перевизначення)
|
||||
- Необов’язкова ротація: `GEMINI_API_KEYS`, `GEMINI_API_KEY_1`, `GEMINI_API_KEY_2`, резервний `GOOGLE_API_KEY` і `OPENCLAW_LIVE_GEMINI_KEY` (одноразове перевизначення)
|
||||
- Приклади моделей: `google/gemini-3.1-pro-preview`, `google/gemini-3-flash-preview`
|
||||
- Сумісність: застаріла конфігурація OpenClaw, що використовує `google/gemini-3.1-flash-preview`, нормалізується до `google/gemini-3-flash-preview`
|
||||
- Псевдонім: `google/gemini-3.1-pro` приймається і нормалізується до живого ідентифікатора Gemini API від Google, `google/gemini-3.1-pro-preview`
|
||||
- Псевдонім: `google/gemini-3.1-pro` приймається і нормалізується до live-ідентифікатора Gemini API від Google, `google/gemini-3.1-pro-preview`
|
||||
- CLI: `openclaw onboard --auth-choice gemini-api-key`
|
||||
- Мислення: `/think adaptive` використовує динамічне мислення Google. Gemini 3/3.1 не додають фіксований `thinkingLevel`; Gemini 2.5 надсилає `thinkingBudget: -1`.
|
||||
- Прямі запуски Gemini також приймають `agents.defaults.models["google/<model>"].params.cachedContent` (або застарілий `cached_content`), щоб передати нативний для провайдера handle `cachedContents/...`; влучання кешу Gemini відображаються як OpenClaw `cacheRead`
|
||||
- Мислення: `/think adaptive` використовує динамічне мислення Google. Gemini 3/3.1 пропускають фіксований `thinkingLevel`; Gemini 2.5 надсилає `thinkingBudget: -1`.
|
||||
- Прямі запуски Gemini також приймають `agents.defaults.models["google/<model>"].params.cachedContent` (або застаріле `cached_content`) для пересилання нативного для постачальника дескриптора `cachedContents/...`; влучання кешу Gemini відображаються як OpenClaw `cacheRead`
|
||||
|
||||
### Google Vertex і Gemini CLI
|
||||
|
||||
- Провайдери: `google-vertex`, `google-gemini-cli`
|
||||
- Автентифікація: Vertex використовує gcloud ADC; Gemini CLI використовує свій потік OAuth
|
||||
- Постачальники: `google-vertex`, `google-gemini-cli`
|
||||
- Автентифікація: Vertex використовує gcloud ADC; Gemini CLI використовує свій OAuth-потік
|
||||
|
||||
<Warning>
|
||||
Gemini CLI OAuth в OpenClaw є неофіційною інтеграцією. Деякі користувачі повідомляли про обмеження облікового запису Google після використання сторонніх клієнтів. Ознайомтеся з умовами Google і використовуйте некритичний обліковий запис, якщо вирішите продовжити.
|
||||
Gemini CLI OAuth в OpenClaw є неофіційною інтеграцією. Деякі користувачі повідомляли про обмеження облікових записів Google після використання сторонніх клієнтів. Ознайомтеся з умовами Google і використовуйте некритичний обліковий запис, якщо вирішите продовжити.
|
||||
</Warning>
|
||||
|
||||
Gemini CLI OAuth постачається як частина вбудованого Plugin `google`.
|
||||
Gemini CLI OAuth постачається як частина пакетного Plugin `google`.
|
||||
|
||||
<Steps>
|
||||
<Step title="Установіть Gemini CLI">
|
||||
@ -245,106 +242,109 @@ Gemini CLI OAuth постачається як частина вбудовано
|
||||
openclaw models auth login --provider google-gemini-cli --set-default
|
||||
```
|
||||
|
||||
Стандартна модель: `google-gemini-cli/gemini-3-flash-preview`. Ви **не** вставляєте ідентифікатор клієнта чи секрет у `openclaw.json`. Потік входу CLI зберігає токени в профілях автентифікації на хості Gateway.
|
||||
Модель за замовчуванням: `google-gemini-cli/gemini-3-flash-preview`. Ви **не** вставляєте client id або secret у `openclaw.json`. Потік входу CLI зберігає токени в профілях автентифікації на хості gateway.
|
||||
|
||||
</Step>
|
||||
<Step title="Set project (if needed)">
|
||||
Якщо запити не вдаються після входу, задайте `GOOGLE_CLOUD_PROJECT` або `GOOGLE_CLOUD_PROJECT_ID` на хості Gateway.
|
||||
<Step title="Налаштувати проєкт (за потреби)">
|
||||
Якщо запити не проходять після входу, задайте `GOOGLE_CLOUD_PROJECT` або `GOOGLE_CLOUD_PROJECT_ID` на хості gateway.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
JSON-відповіді Gemini CLI розбираються з `response`; використання береться з `stats` як резервний варіант, а `stats.cached` нормалізується в OpenClaw `cacheRead`.
|
||||
JSON-відповіді Gemini CLI аналізуються з `response`; використання має fallback до `stats`, а `stats.cached` нормалізується в OpenClaw `cacheRead`.
|
||||
|
||||
### Z.AI (GLM)
|
||||
|
||||
- Провайдер: `zai`
|
||||
- Постачальник: `zai`
|
||||
- Автентифікація: `ZAI_API_KEY`
|
||||
- Приклад моделі: `zai/glm-5.1`
|
||||
- CLI: `openclaw onboard --auth-choice zai-api-key`
|
||||
- Псевдоніми: `z.ai/*` і `z-ai/*` нормалізуються до `zai/*`
|
||||
- `zai-api-key` автоматично визначає відповідну кінцеву точку Z.AI; `zai-coding-global`, `zai-coding-cn`, `zai-global` і `zai-cn` примусово вибирають конкретну поверхню
|
||||
- `zai-api-key` автоматично визначає відповідний endpoint Z.AI; `zai-coding-global`, `zai-coding-cn`, `zai-global` і `zai-cn` примусово вибирають конкретну поверхню
|
||||
|
||||
### Vercel AI Gateway
|
||||
|
||||
- Провайдер: `vercel-ai-gateway`
|
||||
- Постачальник: `vercel-ai-gateway`
|
||||
- Автентифікація: `AI_GATEWAY_API_KEY`
|
||||
- Приклади моделей: `vercel-ai-gateway/anthropic/claude-opus-4.6`, `vercel-ai-gateway/moonshotai/kimi-k2.6`
|
||||
- CLI: `openclaw onboard --auth-choice ai-gateway-api-key`
|
||||
|
||||
### Kilo Gateway
|
||||
|
||||
- Провайдер: `kilocode`
|
||||
- Постачальник: `kilocode`
|
||||
- Автентифікація: `KILOCODE_API_KEY`
|
||||
- Приклад моделі: `kilocode/kilo/auto`
|
||||
- CLI: `openclaw onboard --auth-choice kilocode-api-key`
|
||||
- Базова URL-адреса: `https://api.kilo.ai/api/gateway/`
|
||||
- Статичний резервний каталог постачається з `kilocode/kilo/auto`; live-виявлення `https://api.kilo.ai/api/gateway/models` може додатково розширити каталог часу виконання.
|
||||
- Точна маршрутизація вище за потоком за `kilocode/kilo/auto` належить Kilo Gateway, а не жорстко закодована в OpenClaw.
|
||||
- Статичний fallback-каталог постачається з `kilocode/kilo/auto`; live-виявлення `https://api.kilo.ai/api/gateway/models` може додатково розширити runtime-каталог.
|
||||
- Точна upstream-маршрутизація за `kilocode/kilo/auto` належить Kilo Gateway, а не жорстко закодована в OpenClaw.
|
||||
|
||||
Дивіться [/providers/kilocode](/uk/providers/kilocode), щоб дізнатися подробиці налаштування.
|
||||
Див. [/providers/kilocode](/uk/providers/kilocode) для деталей налаштування.
|
||||
|
||||
### Інші вбудовані Plugin провайдерів
|
||||
### Інші вбудовані плагіни постачальників
|
||||
|
||||
| Провайдер | Id | Env автентифікації | Приклад моделі |
|
||||
| ----------------------- | -------------------------------- | ------------------------------------------------------------ | ----------------------------------------------- |
|
||||
| BytePlus | `byteplus` / `byteplus-plan` | `BYTEPLUS_API_KEY` | `byteplus-plan/ark-code-latest` |
|
||||
| Cerebras | `cerebras` | `CEREBRAS_API_KEY` | `cerebras/zai-glm-4.7` |
|
||||
| Cloudflare AI Gateway | `cloudflare-ai-gateway` | `CLOUDFLARE_AI_GATEWAY_API_KEY` | — |
|
||||
| DeepInfra | `deepinfra` | `DEEPINFRA_API_KEY` | `deepinfra/deepseek-ai/DeepSeek-V3.2` |
|
||||
| DeepSeek | `deepseek` | `DEEPSEEK_API_KEY` | `deepseek/deepseek-v4-flash` |
|
||||
| GitHub Copilot | `github-copilot` | `COPILOT_GITHUB_TOKEN` / `GH_TOKEN` / `GITHUB_TOKEN` | — |
|
||||
| Groq | `groq` | `GROQ_API_KEY` | — |
|
||||
| Hugging Face Inference | `huggingface` | `HUGGINGFACE_HUB_TOKEN` або `HF_TOKEN` | `huggingface/deepseek-ai/DeepSeek-R1` |
|
||||
| Kilo Gateway | `kilocode` | `KILOCODE_API_KEY` | `kilocode/kilo/auto` |
|
||||
| Kimi Coding | `kimi` | `KIMI_API_KEY` або `KIMICODE_API_KEY` | `kimi/kimi-code` |
|
||||
| MiniMax | `minimax` / `minimax-portal` | `MINIMAX_API_KEY` / `MINIMAX_OAUTH_TOKEN` | `minimax/MiniMax-M2.7` |
|
||||
| Mistral | `mistral` | `MISTRAL_API_KEY` | `mistral/mistral-large-latest` |
|
||||
| Moonshot | `moonshot` | `MOONSHOT_API_KEY` | `moonshot/kimi-k2.6` |
|
||||
| NVIDIA | `nvidia` | `NVIDIA_API_KEY` | `nvidia/nvidia/llama-3.1-nemotron-70b-instruct` |
|
||||
| OpenRouter | `openrouter` | `OPENROUTER_API_KEY` | `openrouter/auto` |
|
||||
| Qianfan | `qianfan` | `QIANFAN_API_KEY` | `qianfan/deepseek-v3.2` |
|
||||
| Qwen Cloud | `qwen` | `QWEN_API_KEY` / `MODELSTUDIO_API_KEY` / `DASHSCOPE_API_KEY` | `qwen/qwen3.5-plus` |
|
||||
| StepFun | `stepfun` / `stepfun-plan` | `STEPFUN_API_KEY` | `stepfun/step-3.5-flash` |
|
||||
| Together | `together` | `TOGETHER_API_KEY` | `together/moonshotai/Kimi-K2.5` |
|
||||
| Venice | `venice` | `VENICE_API_KEY` | — |
|
||||
| Vercel AI Gateway | `vercel-ai-gateway` | `AI_GATEWAY_API_KEY` | `vercel-ai-gateway/anthropic/claude-opus-4.6` |
|
||||
| Volcano Engine (Doubao) | `volcengine` / `volcengine-plan` | `VOLCANO_ENGINE_API_KEY` | `volcengine-plan/ark-code-latest` |
|
||||
| xAI | `xai` | `XAI_API_KEY` | `xai/grok-4` |
|
||||
| Xiaomi | `xiaomi` | `XIAOMI_API_KEY` | `xiaomi/mimo-v2-flash` |
|
||||
| Постачальник | Id | Env автентифікації | Приклад моделі |
|
||||
| ---------------------- | -------------------------------- | ------------------------------------------------------------ | --------------------------------------------- |
|
||||
| BytePlus | `byteplus` / `byteplus-plan` | `BYTEPLUS_API_KEY` | `byteplus-plan/ark-code-latest` |
|
||||
| Cerebras | `cerebras` | `CEREBRAS_API_KEY` | `cerebras/zai-glm-4.7` |
|
||||
| Cloudflare AI Gateway | `cloudflare-ai-gateway` | `CLOUDFLARE_AI_GATEWAY_API_KEY` | — |
|
||||
| DeepInfra | `deepinfra` | `DEEPINFRA_API_KEY` | `deepinfra/deepseek-ai/DeepSeek-V3.2` |
|
||||
| DeepSeek | `deepseek` | `DEEPSEEK_API_KEY` | `deepseek/deepseek-v4-flash` |
|
||||
| GitHub Copilot | `github-copilot` | `COPILOT_GITHUB_TOKEN` / `GH_TOKEN` / `GITHUB_TOKEN` | — |
|
||||
| Groq | `groq` | `GROQ_API_KEY` | — |
|
||||
| Hugging Face Inference | `huggingface` | `HUGGINGFACE_HUB_TOKEN` або `HF_TOKEN` | `huggingface/deepseek-ai/DeepSeek-R1` |
|
||||
| Kilo Gateway | `kilocode` | `KILOCODE_API_KEY` | `kilocode/kilo/auto` |
|
||||
| Kimi Coding | `kimi` | `KIMI_API_KEY` або `KIMICODE_API_KEY` | `kimi/kimi-code` |
|
||||
| MiniMax | `minimax` / `minimax-portal` | `MINIMAX_API_KEY` / `MINIMAX_OAUTH_TOKEN` | `minimax/MiniMax-M2.7` |
|
||||
| Mistral | `mistral` | `MISTRAL_API_KEY` | `mistral/mistral-large-latest` |
|
||||
| Moonshot | `moonshot` | `MOONSHOT_API_KEY` | `moonshot/kimi-k2.6` |
|
||||
| NVIDIA | `nvidia` | `NVIDIA_API_KEY` | `nvidia/nvidia/nemotron-3-super-120b-a12b` |
|
||||
| OpenRouter | `openrouter` | `OPENROUTER_API_KEY` | `openrouter/auto` |
|
||||
| Qianfan | `qianfan` | `QIANFAN_API_KEY` | `qianfan/deepseek-v3.2` |
|
||||
| Qwen Cloud | `qwen` | `QWEN_API_KEY` / `MODELSTUDIO_API_KEY` / `DASHSCOPE_API_KEY` | `qwen/qwen3.5-plus` |
|
||||
| StepFun | `stepfun` / `stepfun-plan` | `STEPFUN_API_KEY` | `stepfun/step-3.5-flash` |
|
||||
| Together | `together` | `TOGETHER_API_KEY` | `together/moonshotai/Kimi-K2.5` |
|
||||
| Venice | `venice` | `VENICE_API_KEY` | — |
|
||||
| Vercel AI Gateway | `vercel-ai-gateway` | `AI_GATEWAY_API_KEY` | `vercel-ai-gateway/anthropic/claude-opus-4.6` |
|
||||
| Volcano Engine (Doubao) | `volcengine` / `volcengine-plan` | `VOLCANO_ENGINE_API_KEY` | `volcengine-plan/ark-code-latest` |
|
||||
| xAI | `xai` | `XAI_API_KEY` | `xai/grok-4` |
|
||||
| Xiaomi | `xiaomi` | `XIAOMI_API_KEY` | `xiaomi/mimo-v2-flash` |
|
||||
|
||||
#### Особливості, які варто знати
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="OpenRouter">
|
||||
Застосовує свої заголовки атрибуції застосунку та маркери Anthropic `cache_control` лише на перевірених маршрутах `openrouter.ai`. Посилання DeepSeek, Moonshot і ZAI придатні для cache-TTL для керованого OpenRouter кешування промптів, але не отримують маркери кешу Anthropic. Як проксі-стильовий OpenAI-сумісний шлях, він пропускає формування лише для native-OpenAI (`serviceTier`, Responses `store`, підказки кешу промптів, сумісність reasoning OpenAI). Посилання на базі Gemini зберігають лише proxy-Gemini очищення thought-signature.
|
||||
Застосовує свої заголовки атрибуції застосунку та маркери Anthropic `cache_control` лише на перевірених маршрутах `openrouter.ai`. Посилання DeepSeek, Moonshot і ZAI придатні для cache-TTL у керованому OpenRouter кешуванні prompt, але не отримують кеш-маркерів Anthropic. Як proxy-style OpenAI-сумісний шлях, він пропускає формування лише для native-OpenAI (`serviceTier`, Responses `store`, підказки prompt-cache, OpenAI reasoning-compat). Посилання на базі Gemini зберігають лише proxy-Gemini очищення thought-signature.
|
||||
</Accordion>
|
||||
<Accordion title="Kilo Gateway">
|
||||
Посилання на базі Gemini проходять тим самим шляхом proxy-Gemini очищення; `kilocode/kilo/auto` та інші посилання proxy-reasoning-unsupported пропускають ін’єкцію proxy reasoning.
|
||||
Посилання на базі Gemini проходять той самий шлях очищення proxy-Gemini; `kilocode/kilo/auto` та інші посилання proxy-reasoning-unsupported пропускають інʼєкцію proxy reasoning.
|
||||
</Accordion>
|
||||
<Accordion title="MiniMax">
|
||||
Підключення через API-ключ записує явні визначення текстових моделей чату M2.7; розуміння зображень лишається на медіапровайдері `MiniMax-VL-01`, яким володіє Plugin.
|
||||
Onboarding через API-ключ записує явні text-only визначення chat-моделей M2.7; розуміння зображень залишається на media provider `MiniMax-VL-01`, яким володіє плагін.
|
||||
</Accordion>
|
||||
<Accordion title="NVIDIA">
|
||||
Ідентифікатори моделей використовують простір імен `nvidia/<vendor>/<model>` (наприклад, `nvidia/nvidia/nemotron-...` поряд із `nvidia/moonshotai/kimi-k2.5`); засоби вибору зберігають буквальну композицію `<provider>/<model-id>`, тоді як канонічний ключ, що надсилається до API, залишається з одним префіксом.
|
||||
</Accordion>
|
||||
<Accordion title="xAI">
|
||||
Використовує шлях xAI Responses. `/fast` або `params.fastMode: true` переписує `grok-3`, `grok-3-mini`, `grok-4` і `grok-4-0709` на їхні варіанти `*-fast`. `tool_stream` увімкнено за замовчуванням; вимкніть через `agents.defaults.models["xai/<model>"].params.tool_stream=false`.
|
||||
</Accordion>
|
||||
<Accordion title="Cerebras">
|
||||
Постачається як вбудований Plugin провайдера `cerebras`. GLM використовує `zai-glm-4.7`; OpenAI-сумісна базова URL-адреса — `https://api.cerebras.ai/v1`.
|
||||
Постачається як вбудований плагін постачальника `cerebras`. GLM використовує `zai-glm-4.7`; OpenAI-сумісна базова URL-адреса — `https://api.cerebras.ai/v1`.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Провайдери через `models.providers` (власна/базова URL-адреса)
|
||||
## Постачальники через `models.providers` (власна/базова URL-адреса)
|
||||
|
||||
Використовуйте `models.providers` (або `models.json`), щоб додати **власних** провайдерів або OpenAI/Anthropic‑сумісні проксі.
|
||||
Використовуйте `models.providers` (або `models.json`), щоб додати **власних** постачальників або OpenAI/Anthropic‑сумісні проксі.
|
||||
|
||||
Багато з наведених нижче вбудованих Plugin провайдерів уже публікують стандартний каталог. Використовуйте явні записи `models.providers.<id>` лише тоді, коли хочете перевизначити стандартну базову URL-адресу, заголовки або список моделей.
|
||||
Багато вбудованих плагінів постачальників нижче вже публікують стандартний каталог. Використовуйте явні записи `models.providers.<id>` лише тоді, коли потрібно перевизначити стандартну базову URL-адресу, заголовки або список моделей.
|
||||
|
||||
Перевірки можливостей моделей Gateway також читають явні метадані `models.providers.<id>.models[]`. Якщо власна або проксі-модель приймає зображення, встановіть `input: ["text", "image"]` для цієї моделі, щоб WebChat і шляхи вкладень із node-origin передавали зображення як нативні входи моделі замість текстових медіапосилань.
|
||||
Перевірки можливостей моделей Gateway також читають явні метадані `models.providers.<id>.models[]`. Якщо власна або проксі-модель приймає зображення, задайте `input: ["text", "image"]` для цієї моделі, щоб шляхи WebChat і вкладень з node-origin передавали зображення як native model inputs, а не як text-only media refs.
|
||||
|
||||
### Moonshot AI (Kimi)
|
||||
|
||||
Moonshot постачається як вбудований Plugin провайдера. За замовчуванням використовуйте вбудованого провайдера та додавайте явний запис `models.providers.moonshot` лише тоді, коли потрібно перевизначити базову URL-адресу або метадані моделі:
|
||||
Moonshot постачається як вбудований плагін постачальника. За замовчуванням використовуйте вбудованого постачальника й додавайте явний запис `models.providers.moonshot` лише тоді, коли потрібно перевизначити базову URL-адресу або метадані моделі:
|
||||
|
||||
- Провайдер: `moonshot`
|
||||
- Постачальник: `moonshot`
|
||||
- Автентифікація: `MOONSHOT_API_KEY`
|
||||
- Приклад моделі: `moonshot/kimi-k2.6`
|
||||
- CLI: `openclaw onboard --auth-choice moonshot-api-key` або `openclaw onboard --auth-choice moonshot-api-key-cn`
|
||||
@ -380,11 +380,11 @@ Moonshot постачається як вбудований Plugin провай
|
||||
}
|
||||
```
|
||||
|
||||
### Кодування Kimi
|
||||
### Програмування з Kimi
|
||||
|
||||
Kimi Coding використовує сумісну з Anthropic кінцеву точку Moonshot AI:
|
||||
Kimi Coding використовує Anthropic-сумісну кінцеву точку Moonshot AI:
|
||||
|
||||
- Постачальник: `kimi`
|
||||
- Провайдер: `kimi`
|
||||
- Автентифікація: `KIMI_API_KEY`
|
||||
- Приклад моделі: `kimi/kimi-code`
|
||||
|
||||
@ -403,7 +403,7 @@ Kimi Coding використовує сумісну з Anthropic кінцеву
|
||||
|
||||
Volcano Engine (火山引擎) надає доступ до Doubao та інших моделей у Китаї.
|
||||
|
||||
- Постачальник: `volcengine` (кодування: `volcengine-plan`)
|
||||
- Провайдер: `volcengine` (для програмування: `volcengine-plan`)
|
||||
- Автентифікація: `VOLCANO_ENGINE_API_KEY`
|
||||
- Приклад моделі: `volcengine-plan/ark-code-latest`
|
||||
- CLI: `openclaw onboard --auth-choice volcengine-api-key`
|
||||
@ -416,9 +416,9 @@ Volcano Engine (火山引擎) надає доступ до Doubao та інши
|
||||
}
|
||||
```
|
||||
|
||||
Під час початкового налаштування за замовчуванням використовується поверхня кодування, але загальний каталог `volcengine/*` реєструється одночасно.
|
||||
Onboarding за замовчуванням використовує поверхню для програмування, але загальний каталог `volcengine/*` реєструється одночасно.
|
||||
|
||||
У засобах вибору моделей під час початкового налаштування/конфігурування варіант автентифікації Volcengine надає перевагу рядкам `volcengine/*` і `volcengine-plan/*`. Якщо ці моделі ще не завантажено, OpenClaw повертається до нефільтрованого каталогу замість показу порожнього засобу вибору, обмеженого постачальником.
|
||||
У засобах вибору моделі під час onboarding/configure варіант автентифікації Volcengine віддає перевагу рядкам як `volcengine/*`, так і `volcengine-plan/*`. Якщо ці моделі ще не завантажено, OpenClaw повертається до нефільтрованого каталогу замість показу порожнього засобу вибору, обмеженого провайдером.
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Стандартні моделі">
|
||||
@ -429,7 +429,7 @@ Volcano Engine (火山引擎) надає доступ до Doubao та інши
|
||||
- `volcengine/deepseek-v3-2-251201` (DeepSeek V3.2 128K)
|
||||
|
||||
</Tab>
|
||||
<Tab title="Моделі для кодування (volcengine-plan)">
|
||||
<Tab title="Моделі для програмування (volcengine-plan)">
|
||||
- `volcengine-plan/ark-code-latest`
|
||||
- `volcengine-plan/doubao-seed-code`
|
||||
- `volcengine-plan/kimi-k2.5`
|
||||
@ -439,11 +439,11 @@ Volcano Engine (火山引擎) надає доступ до Doubao та інши
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
### BytePlus (International)
|
||||
### BytePlus (міжнародний)
|
||||
|
||||
BytePlus ARK надає міжнародним користувачам доступ до тих самих моделей, що й Volcano Engine.
|
||||
|
||||
- Постачальник: `byteplus` (кодування: `byteplus-plan`)
|
||||
- Провайдер: `byteplus` (для програмування: `byteplus-plan`)
|
||||
- Автентифікація: `BYTEPLUS_API_KEY`
|
||||
- Приклад моделі: `byteplus-plan/ark-code-latest`
|
||||
- CLI: `openclaw onboard --auth-choice byteplus-api-key`
|
||||
@ -456,9 +456,9 @@ BytePlus ARK надає міжнародним користувачам дост
|
||||
}
|
||||
```
|
||||
|
||||
Під час початкового налаштування за замовчуванням використовується поверхня кодування, але загальний каталог `byteplus/*` реєструється одночасно.
|
||||
Onboarding за замовчуванням використовує поверхню для програмування, але загальний каталог `byteplus/*` реєструється одночасно.
|
||||
|
||||
У засобах вибору моделей під час початкового налаштування/конфігурування варіант автентифікації BytePlus надає перевагу рядкам `byteplus/*` і `byteplus-plan/*`. Якщо ці моделі ще не завантажено, OpenClaw повертається до нефільтрованого каталогу замість показу порожнього засобу вибору, обмеженого постачальником.
|
||||
У засобах вибору моделі під час onboarding/configure вибір автентифікації BytePlus надає перевагу рядкам і `byteplus/*`, і `byteplus-plan/*`. Якщо ці моделі ще не завантажені, OpenClaw повертається до нефільтрованого каталогу замість показу порожнього засобу вибору, обмеженого провайдером.
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Стандартні моделі">
|
||||
@ -515,18 +515,18 @@ MiniMax налаштовується через `models.providers`, оскіль
|
||||
- MiniMax API key (CN): `--auth-choice minimax-cn-api`
|
||||
- Автентифікація: `MINIMAX_API_KEY` для `minimax`; `MINIMAX_OAUTH_TOKEN` або `MINIMAX_API_KEY` для `minimax-portal`
|
||||
|
||||
Див. [/providers/minimax](/uk/providers/minimax), щоб дізнатися про налаштування, параметри моделей і фрагменти конфігурації.
|
||||
Докладні відомості про налаштування, варіанти моделей і фрагменти конфігурації див. у [/providers/minimax](/uk/providers/minimax).
|
||||
|
||||
<Note>
|
||||
На Anthropic-сумісному шляху потокового передавання MiniMax OpenClaw типово вимикає мислення, якщо ви явно його не налаштували, а `/fast on` переписує `MiniMax-M2.7` на `MiniMax-M2.7-highspeed`.
|
||||
На Anthropic-сумісному потоковому шляху MiniMax OpenClaw типово вимикає мислення, якщо ви явно його не задасте, а `/fast on` переписує `MiniMax-M2.7` на `MiniMax-M2.7-highspeed`.
|
||||
</Note>
|
||||
|
||||
Розділення можливостей, що належать Plugin:
|
||||
Поділ можливостей, що належать Plugin:
|
||||
|
||||
- Типові налаштування тексту/чату залишаються на `minimax/MiniMax-M2.7`
|
||||
- Типові значення для тексту/чату залишаються на `minimax/MiniMax-M2.7`
|
||||
- Генерація зображень — це `minimax/image-01` або `minimax-portal/image-01`
|
||||
- Розуміння зображень — це належна Plugin `MiniMax-VL-01` на обох шляхах автентифікації MiniMax
|
||||
- Вебпошук залишається на ідентифікаторі провайдера `minimax`
|
||||
- Розуміння зображень належить Plugin `MiniMax-VL-01` на обох шляхах автентифікації MiniMax
|
||||
- Вебпошук залишається на id провайдера `minimax`
|
||||
|
||||
### LM Studio
|
||||
|
||||
@ -534,7 +534,7 @@ LM Studio постачається як вбудований Plugin провай
|
||||
|
||||
- Провайдер: `lmstudio`
|
||||
- Автентифікація: `LM_API_TOKEN`
|
||||
- Типова базова URL-адреса для інференсу: `http://localhost:1234/v1`
|
||||
- Типова базова URL-адреса для inference: `http://localhost:1234/v1`
|
||||
|
||||
Потім задайте модель (замініть на один з ідентифікаторів, повернених `http://localhost:1234/api/v1/models`):
|
||||
|
||||
@ -546,11 +546,11 @@ LM Studio постачається як вбудований Plugin провай
|
||||
}
|
||||
```
|
||||
|
||||
OpenClaw використовує нативні `/api/v1/models` і `/api/v1/models/load` LM Studio для виявлення та автозавантаження, а `/v1/chat/completions` типово для інференсу. Див. [/providers/lmstudio](/uk/providers/lmstudio) для налаштування й усунення несправностей.
|
||||
OpenClaw використовує нативні `/api/v1/models` і `/api/v1/models/load` LM Studio для виявлення й автоматичного завантаження, а `/v1/chat/completions` типово для inference. Налаштування й усунення неполадок див. у [/providers/lmstudio](/uk/providers/lmstudio).
|
||||
|
||||
### Ollama
|
||||
|
||||
Ollama постачається як вбудований Plugin провайдера й використовує нативний API Ollama:
|
||||
Ollama постачається як вбудований Plugin провайдера та використовує нативний API Ollama:
|
||||
|
||||
- Провайдер: `ollama`
|
||||
- Автентифікація: не потрібна (локальний сервер)
|
||||
@ -570,17 +570,17 @@ ollama pull llama3.3
|
||||
}
|
||||
```
|
||||
|
||||
Ollama локально виявляється за адресою `http://127.0.0.1:11434`, коли ви вмикаєте її через `OLLAMA_API_KEY`, а вбудований Plugin провайдера додає Ollama безпосередньо до `openclaw onboard` і засобу вибору моделей. Див. [/providers/ollama](/uk/providers/ollama) для onboarding, хмарного/локального режиму та власної конфігурації.
|
||||
Ollama виявляється локально на `http://127.0.0.1:11434`, коли ви погоджуєтеся через `OLLAMA_API_KEY`, а вбудований Plugin провайдера додає Ollama безпосередньо до `openclaw onboard` і засобу вибору моделі. Onboarding, хмарний/локальний режим і власне налаштування див. у [/providers/ollama](/uk/providers/ollama).
|
||||
|
||||
### vLLM
|
||||
|
||||
vLLM постачається як вбудований Plugin провайдера для локальних/самостійно розміщених OpenAI-сумісних серверів:
|
||||
vLLM постачається як вбудований Plugin провайдера для локальних або самостійно розміщених OpenAI-сумісних серверів:
|
||||
|
||||
- Провайдер: `vllm`
|
||||
- Автентифікація: необов'язкова (залежить від вашого сервера)
|
||||
- Автентифікація: необов’язкова (залежить від вашого сервера)
|
||||
- Типова базова URL-адреса: `http://127.0.0.1:8000/v1`
|
||||
|
||||
Щоб увімкнути локальне автовиявлення (будь-яке значення працює, якщо ваш сервер не вимагає автентифікації):
|
||||
Щоб увімкнути локальне автовиявлення (підійде будь-яке значення, якщо ваш сервер не застосовує автентифікацію):
|
||||
|
||||
```bash
|
||||
export VLLM_API_KEY="vllm-local"
|
||||
@ -596,17 +596,17 @@ export VLLM_API_KEY="vllm-local"
|
||||
}
|
||||
```
|
||||
|
||||
Див. [/providers/vllm](/uk/providers/vllm) для подробиць.
|
||||
Докладніше див. у [/providers/vllm](/uk/providers/vllm).
|
||||
|
||||
### SGLang
|
||||
|
||||
SGLang постачається як вбудований Plugin провайдера для швидких самостійно розміщених OpenAI-сумісних серверів:
|
||||
|
||||
- Провайдер: `sglang`
|
||||
- Автентифікація: необов'язкова (залежить від вашого сервера)
|
||||
- Автентифікація: необов’язкова (залежить від вашого сервера)
|
||||
- Типова базова URL-адреса: `http://127.0.0.1:30000/v1`
|
||||
|
||||
Щоб увімкнути локальне автовиявлення (будь-яке значення працює, якщо ваш сервер не вимагає автентифікації):
|
||||
Щоб увімкнути локальне автовиявлення (підійде будь-яке значення, якщо ваш сервер не застосовує автентифікацію):
|
||||
|
||||
```bash
|
||||
export SGLANG_API_KEY="sglang-local"
|
||||
@ -622,11 +622,11 @@ export SGLANG_API_KEY="sglang-local"
|
||||
}
|
||||
```
|
||||
|
||||
Див. [/providers/sglang](/uk/providers/sglang) для подробиць.
|
||||
Докладніше див. у [/providers/sglang](/uk/providers/sglang).
|
||||
|
||||
### Локальні проксі (LM Studio, vLLM, LiteLLM тощо)
|
||||
|
||||
Приклад (OpenAI-сумісний):
|
||||
Приклад (OpenAI‑сумісний):
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -661,8 +661,8 @@ export SGLANG_API_KEY="sglang-local"
|
||||
```
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Типові необов'язкові поля">
|
||||
Для користувацьких провайдерів `reasoning`, `input`, `cost`, `contextWindow` і `maxTokens` є необов'язковими. Якщо їх пропущено, OpenClaw типово використовує:
|
||||
<Accordion title="Типові необов’язкові поля">
|
||||
Для власних провайдерів `reasoning`, `input`, `cost`, `contextWindow` і `maxTokens` є необов’язковими. Якщо їх пропущено, OpenClaw типово використовує:
|
||||
|
||||
- `reasoning: false`
|
||||
- `input: ["text"]`
|
||||
@ -673,15 +673,15 @@ export SGLANG_API_KEY="sglang-local"
|
||||
Рекомендовано: задайте явні значення, що відповідають обмеженням вашого проксі/моделі.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Правила формування proxy-маршрутів">
|
||||
- Для `api: "openai-completions"` на ненативних кінцевих точках (будь-яка непорожня `baseUrl`, хост якої не є `api.openai.com`) OpenClaw примусово задає `compat.supportsDeveloperRole: false`, щоб уникнути помилок провайдера 400 для непідтримуваних ролей `developer`.
|
||||
- Proxy-стилізовані OpenAI-сумісні маршрути також пропускають нативне формування запитів, властиве лише OpenAI: без `service_tier`, без Responses `store`, без Completions `store`, без підказок prompt-cache, без формування payload для сумісності мислення OpenAI і без прихованих заголовків атрибуції OpenClaw.
|
||||
- Для OpenAI-сумісних проксі Completions, яким потрібні специфічні для постачальника поля, задайте `agents.defaults.models["provider/model"].params.extra_body` (або `extraBody`), щоб об'єднати додатковий JSON із тілом вихідного запиту.
|
||||
- Для керування chat-template vLLM задайте `agents.defaults.models["provider/model"].params.chat_template_kwargs`. Вбудований Plugin vLLM автоматично надсилає `enable_thinking: false` і `force_nonempty_content: true` для `vllm/nemotron-3-*`, коли рівень мислення сесії вимкнено.
|
||||
- Для повільних локальних моделей або віддалених хостів LAN/tailnet задайте `models.providers.<id>.timeoutSeconds`. Це розширює обробку HTTP-запитів до моделі провайдера, включно з підключенням, заголовками, потоковим передаванням тіла та загальним перериванням guarded-fetch, не збільшуючи тайм-аут усього runtime агента.
|
||||
- Якщо `baseUrl` порожній/пропущений, OpenClaw зберігає типову поведінку OpenAI (яка зводиться до `api.openai.com`).
|
||||
- Для безпеки явне `compat.supportsDeveloperRole: true` усе одно перевизначається на ненативних кінцевих точках `openai-completions`.
|
||||
- Для `api: "anthropic-messages"` на непрямих кінцевих точках (будь-який провайдер, крім канонічного `anthropic`, або користувацький `models.providers.anthropic.baseUrl`, хост якого не є публічною кінцевою точкою `api.anthropic.com`) OpenClaw пригнічує неявні бета-заголовки Anthropic, як-от `claude-code-20250219`, `interleaved-thinking-2025-05-14` і маркери OAuth, щоб користувацькі Anthropic-сумісні проксі не відхиляли непідтримувані бета-прапорці. Явно задайте `models.providers.<id>.headers["anthropic-beta"]`, якщо вашому проксі потрібні певні бета-функції.
|
||||
<Accordion title="Правила формування маршруту проксі">
|
||||
- Для `api: "openai-completions"` на ненативних кінцевих точках (будь-який непорожній `baseUrl`, хост якого не є `api.openai.com`) OpenClaw примусово задає `compat.supportsDeveloperRole: false`, щоб уникнути помилок 400 від провайдера для непідтримуваних ролей `developer`.
|
||||
- Проксі-маршрути у стилі OpenAI-сумісності також пропускають нативне формування запитів, призначене лише для OpenAI: без `service_tier`, без Responses `store`, без Completions `store`, без підказок кешу prompt, без формування OpenAI reasoning-compat payload і без прихованих заголовків атрибуції OpenClaw.
|
||||
- Для OpenAI-сумісних проксі Completions, яким потрібні специфічні для постачальника поля, задайте `agents.defaults.models["provider/model"].params.extra_body` (або `extraBody`), щоб об’єднати додатковий JSON з тілом вихідного запиту.
|
||||
- Для керування chat-template vLLM задайте `agents.defaults.models["provider/model"].params.chat_template_kwargs`. Вбудований Plugin vLLM автоматично надсилає `enable_thinking: false` і `force_nonempty_content: true` для `vllm/nemotron-3-*`, коли рівень мислення сеансу вимкнено.
|
||||
- Для повільних локальних моделей або віддалених хостів LAN/tailnet задайте `models.providers.<id>.timeoutSeconds`. Це розширює обробку HTTP-запитів моделі провайдера, зокрема connect, headers, потокове передавання body і загальне переривання guarded-fetch, не збільшуючи загальний timeout runtime агента.
|
||||
- Якщо `baseUrl` порожній або пропущений, OpenClaw зберігає типову поведінку OpenAI (яка розв’язується до `api.openai.com`).
|
||||
- З міркувань безпеки явне `compat.supportsDeveloperRole: true` все одно перевизначається на ненативних кінцевих точках `openai-completions`.
|
||||
- Для `api: "anthropic-messages"` на непрямих кінцевих точках (будь-який провайдер, крім канонічного `anthropic`, або власний `models.providers.anthropic.baseUrl`, хост якого не є публічною кінцевою точкою `api.anthropic.com`) OpenClaw пригнічує неявні бета-заголовки Anthropic, як-от `claude-code-20250219`, `interleaved-thinking-2025-05-14` і маркери OAuth, щоб власні Anthropic-сумісні проксі не відхиляли непідтримувані бета-прапорці. Явно задайте `models.providers.<id>.headers["anthropic-beta"]`, якщо вашому проксі потрібні певні бета-функції.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
@ -694,11 +694,11 @@ openclaw models set opencode/claude-opus-4-6
|
||||
openclaw models list
|
||||
```
|
||||
|
||||
Див. також: [Конфігурація](/uk/gateway/configuration) для повних прикладів конфігурації.
|
||||
Також див.: [Конфігурація](/uk/gateway/configuration) для повних прикладів конфігурації.
|
||||
|
||||
## Пов'язане
|
||||
## Пов’язане
|
||||
|
||||
- [Довідник конфігурації](/uk/gateway/config-agents#agent-defaults) — ключі конфігурації моделей
|
||||
- [Failover моделей](/uk/concepts/model-failover) — резервні ланцюжки й поведінка повторних спроб
|
||||
- [Довідник конфігурації](/uk/gateway/config-agents#agent-defaults) — ключі конфігурації моделі
|
||||
- [Відпрацювання відмови моделі](/uk/concepts/model-failover) — ланцюги fallback і поведінка повторних спроб
|
||||
- [Моделі](/uk/concepts/models) — конфігурація моделей і псевдоніми
|
||||
- [Провайдери](/uk/providers) — посібники з налаштування для кожного провайдера
|
||||
|
||||
@ -1,35 +1,35 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете безкоштовно використовувати відкриті моделі в OpenClaw
|
||||
- Вам потрібно налаштувати `NVIDIA_API_KEY`
|
||||
summary: Використання OpenAI-compatible API від NVIDIA в OpenClaw
|
||||
- Потрібно налаштувати NVIDIA_API_KEY
|
||||
summary: Використовуйте API NVIDIA, сумісний з OpenAI, в OpenClaw
|
||||
title: NVIDIA
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T21:07:02Z"
|
||||
model: gpt-5.4
|
||||
generated_at: "2026-04-29T16:29:09Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 2d056be5be012be537ba5c4d5812ea15ec440e5a552b235854e2078064376192
|
||||
source_hash: 297cc25cf5235bb51f3962c2a1b8799ca6544d57e701c42e9b1e1c7d881ad32b
|
||||
source_path: providers/nvidia.md
|
||||
workflow: 15
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
NVIDIA надає OpenAI-compatible API за адресою `https://integrate.api.nvidia.com/v1` для
|
||||
безкоштовного використання відкритих моделей. Автентифікація здійснюється через API key з
|
||||
NVIDIA надає API, сумісний з OpenAI, за адресою `https://integrate.api.nvidia.com/v1` для
|
||||
безкоштовного використання відкритих моделей. Автентифікуйтеся за допомогою API-ключа з
|
||||
[build.nvidia.com](https://build.nvidia.com/settings/api-keys).
|
||||
|
||||
## Початок роботи
|
||||
|
||||
<Steps>
|
||||
<Step title="Отримайте свій API key">
|
||||
Створіть API key на [build.nvidia.com](https://build.nvidia.com/settings/api-keys).
|
||||
<Step title="Отримайте свій API-ключ">
|
||||
Створіть API-ключ на [build.nvidia.com](https://build.nvidia.com/settings/api-keys).
|
||||
</Step>
|
||||
<Step title="Експортуйте ключ і запустіть onboarding">
|
||||
<Step title="Експортуйте ключ і запустіть онбординг">
|
||||
```bash
|
||||
export NVIDIA_API_KEY="nvapi-..."
|
||||
openclaw onboard --auth-choice skip
|
||||
openclaw onboard --auth-choice nvidia-api-key
|
||||
```
|
||||
</Step>
|
||||
<Step title="Встановіть модель NVIDIA">
|
||||
<Step title="Установіть модель NVIDIA">
|
||||
```bash
|
||||
openclaw models set nvidia/nvidia/nemotron-3-super-120b-a12b
|
||||
```
|
||||
@ -37,10 +37,17 @@ NVIDIA надає OpenAI-compatible API за адресою `https://integrate.a
|
||||
</Steps>
|
||||
|
||||
<Warning>
|
||||
Якщо ви передасте `--token` замість env var, значення потрапить в історію shell і
|
||||
у вивід `ps`. Якщо можливо, віддавайте перевагу змінній середовища `NVIDIA_API_KEY`.
|
||||
Якщо передати `--nvidia-api-key` замість змінної середовища, значення потрапить в історію
|
||||
оболонки та вивід `ps`. За можливості віддавайте перевагу змінній середовища
|
||||
`NVIDIA_API_KEY`.
|
||||
</Warning>
|
||||
|
||||
Для неінтерактивного налаштування також можна передати ключ напряму:
|
||||
|
||||
```bash
|
||||
openclaw onboard --auth-choice nvidia-api-key --nvidia-api-key "nvapi-..."
|
||||
```
|
||||
|
||||
## Приклад конфігурації
|
||||
|
||||
```json5
|
||||
@ -64,45 +71,45 @@ NVIDIA надає OpenAI-compatible API за адресою `https://integrate.a
|
||||
|
||||
## Вбудований каталог
|
||||
|
||||
| Model ref | Name | Context | Max output |
|
||||
| ------------------------------------------ | ---------------------------- | ------- | ---------- |
|
||||
| `nvidia/nvidia/nemotron-3-super-120b-a12b` | NVIDIA Nemotron 3 Super 120B | 262,144 | 8,192 |
|
||||
| `nvidia/moonshotai/kimi-k2.5` | Kimi K2.5 | 262,144 | 8,192 |
|
||||
| `nvidia/minimaxai/minimax-m2.5` | Minimax M2.5 | 196,608 | 8,192 |
|
||||
| `nvidia/z-ai/glm5` | GLM 5 | 202,752 | 8,192 |
|
||||
| Посилання на модель | Назва | Контекст | Максимальний вивід |
|
||||
| ------------------------------------------ | ---------------------------- | -------- | ------------------ |
|
||||
| `nvidia/nvidia/nemotron-3-super-120b-a12b` | NVIDIA Nemotron 3 Super 120B | 262,144 | 8,192 |
|
||||
| `nvidia/moonshotai/kimi-k2.5` | Kimi K2.5 | 262,144 | 8,192 |
|
||||
| `nvidia/minimaxai/minimax-m2.5` | Minimax M2.5 | 196,608 | 8,192 |
|
||||
| `nvidia/z-ai/glm5` | GLM 5 | 202,752 | 8,192 |
|
||||
|
||||
## Розширене налаштування
|
||||
## Розширена конфігурація
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Поведінка auto-enable">
|
||||
Провайдер автоматично вмикається, коли задано змінну середовища `NVIDIA_API_KEY`.
|
||||
Окрім самого ключа, явна конфігурація провайдера не потрібна.
|
||||
<Accordion title="Поведінка автоматичного ввімкнення">
|
||||
Провайдер автоматично вмикається, коли встановлено змінну середовища `NVIDIA_API_KEY`.
|
||||
Окрім ключа, явна конфігурація провайдера не потрібна.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Каталог і тарифікація">
|
||||
Вбудований каталог є статичним. Вартість у source типово дорівнює `0`, оскільки NVIDIA
|
||||
наразі надає безкоштовний доступ до API для перелічених моделей.
|
||||
<Accordion title="Каталог і ціни">
|
||||
Вбудований каталог статичний. У вихідному коді вартість за замовчуванням дорівнює `0`, оскільки NVIDIA
|
||||
наразі пропонує безкоштовний доступ до API для перелічених моделей.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="OpenAI-compatible endpoint">
|
||||
NVIDIA використовує стандартний endpoint completions `/v1`. Будь-який OpenAI-compatible
|
||||
інструментарій має працювати одразу з base URL NVIDIA.
|
||||
<Accordion title="Сумісний з OpenAI кінцевий пункт">
|
||||
NVIDIA використовує стандартний кінцевий пункт completions `/v1`. Будь-які інструменти, сумісні з OpenAI,
|
||||
мають працювати з базовою URL-адресою NVIDIA без додаткових налаштувань.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
<Tip>
|
||||
Моделі NVIDIA наразі безкоштовні у використанні. Перевіряйте
|
||||
[build.nvidia.com](https://build.nvidia.com/) для актуальної інформації про доступність і
|
||||
ліміти rate-limit.
|
||||
Моделі NVIDIA наразі можна використовувати безкоштовно. Перевіряйте
|
||||
[build.nvidia.com](https://build.nvidia.com/) для отримання найновіших відомостей про доступність і
|
||||
ліміти швидкості.
|
||||
</Tip>
|
||||
|
||||
## Пов’язане
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Вибір моделі" href="/uk/concepts/model-providers" icon="layers">
|
||||
Вибір провайдерів, model ref і поведінки failover.
|
||||
Вибір провайдерів, посилань на моделі та поведінки відмовостійкого перемикання.
|
||||
</Card>
|
||||
<Card title="Довідник конфігурації" href="/uk/gateway/configuration-reference" icon="gear">
|
||||
Повний довідник конфігурації для агентів, моделей і провайдерів.
|
||||
<Card title="Довідник із конфігурації" href="/uk/gateway/configuration-reference" icon="gear">
|
||||
Повний довідник із конфігурації для агентів, моделей і провайдерів.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
@ -3,24 +3,24 @@ read_when:
|
||||
- Використання або змінення інструмента exec
|
||||
- Налагодження поведінки stdin або TTY
|
||||
summary: Використання інструмента Exec, режими stdin і підтримка TTY
|
||||
title: Інструмент Exec
|
||||
title: Інструмент виконання
|
||||
x-i18n:
|
||||
generated_at: "2026-04-28T11:27:04Z"
|
||||
generated_at: "2026-04-29T16:29:15Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: d951a4e73cc854d767c1084de9054d1c07857599c6f6c5e3f6a00b718b768c51
|
||||
source_hash: 7949cfde9f141202a3bc36c2be72ecdf6d43305b5f16fb02835a69bcaa46067b
|
||||
source_path: tools/exec.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
Запускайте shell-команди в робочому просторі. Підтримує виконання на передньому плані + у фоні через `process`.
|
||||
Якщо `process` заборонено, `exec` виконується синхронно та ігнорує `yieldMs`/`background`.
|
||||
Фонові сеанси мають область дії в межах агента; `process` бачить лише сеанси того самого агента.
|
||||
Виконуйте shell-команди в робочій області. Підтримує виконання на передньому плані та у фоні через `process`.
|
||||
Якщо `process` заборонено, `exec` виконується синхронно й ігнорує `yieldMs`/`background`.
|
||||
Фонові сеанси обмежені кожним агентом; `process` бачить лише сеанси того самого агента.
|
||||
|
||||
## Параметри
|
||||
|
||||
<ParamField path="command" type="string" required>
|
||||
Shell-команда для запуску.
|
||||
Shell-команда для виконання.
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="workdir" type="string" default="cwd">
|
||||
@ -28,31 +28,31 @@ Shell-команда для запуску.
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="env" type="object">
|
||||
Перевизначення середовища у форматі ключ/значення, об’єднані поверх успадкованого середовища.
|
||||
Перевизначення середовища у вигляді ключ/значення, об’єднані поверх успадкованого середовища.
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="yieldMs" type="number" default="10000">
|
||||
Автоматично перевести команду у фон після цієї затримки (мс).
|
||||
Автоматично перевести команду у фоновий режим після цієї затримки (мс).
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="background" type="boolean" default="false">
|
||||
Перевести команду у фон негайно замість очікування `yieldMs`.
|
||||
Негайно перевести команду у фоновий режим замість очікування `yieldMs`.
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="timeout" type="number" default="tools.exec.timeoutSec">
|
||||
Перевизначити налаштований тайм-аут exec для цього виклику. Задавайте `timeout: 0` лише тоді, коли команда має виконуватися без тайм-ауту процесу exec.
|
||||
Перевизначити налаштований час очікування exec для цього виклику. Установлюйте `timeout: 0` лише тоді, коли команда має виконуватися без часу очікування процесу exec.
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="pty" type="boolean" default="false">
|
||||
Запускати у псевдотерміналі, коли він доступний. Використовуйте для CLI, що потребують TTY, агентів кодування та термінальних UI.
|
||||
Запускати в псевдотерміналі, коли він доступний. Використовуйте для CLI, що потребують TTY, агентів кодування та термінальних UI.
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="host" type="'auto' | 'sandbox' | 'gateway' | 'node'" default="auto">
|
||||
Де виконувати. `auto` перетворюється на `sandbox`, коли активне середовище виконання пісочниці, і на `gateway` в інших випадках.
|
||||
Де виконувати. `auto` перетворюється на `sandbox`, коли активне середовище виконання пісочниці, і на `gateway` в іншому разі.
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="security" type="'deny' | 'allowlist' | 'full'">
|
||||
Режим примусового застосування для виконання `gateway` / `node`.
|
||||
Режим застосування для виконання `gateway` / `node`.
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="ask" type="'off' | 'on-miss' | 'always'">
|
||||
@ -64,58 +64,59 @@ Shell-команда для запуску.
|
||||
</ParamField>
|
||||
|
||||
<ParamField path="elevated" type="boolean" default="false">
|
||||
Запросити підвищений режим — вийти з пісочниці на налаштований шлях хоста. `security=full` примусово застосовується лише тоді, коли elevated перетворюється на `full`.
|
||||
Запитати підвищений режим — вийти з пісочниці до налаштованого шляху хоста. `security=full` примусово застосовується лише тоді, коли підвищення перетворюється на `full`.
|
||||
</ParamField>
|
||||
|
||||
Примітки:
|
||||
|
||||
- `host` за замовчуванням має значення `auto`: пісочниця, коли середовище виконання пісочниці активне для сеансу, інакше gateway.
|
||||
- `auto` — це стандартна стратегія маршрутизації, а не wildcard. `host=node` для окремого виклику дозволено з `auto`; `host=gateway` для окремого виклику дозволено лише тоді, коли середовище виконання пісочниці не активне.
|
||||
- Без додаткової конфігурації `host=auto` усе одно «просто працює»: якщо пісочниці немає, він перетворюється на `gateway`; якщо пісочниця активна, він залишається в пісочниці.
|
||||
- `elevated` виходить із пісочниці на налаштований шлях хоста: за замовчуванням `gateway`, або `node`, коли `tools.exec.host=node` (або стандарт сеансу — `host=node`). Доступно лише тоді, коли підвищений доступ увімкнено для поточного сеансу/провайдера.
|
||||
- `host` за замовчуванням дорівнює `auto`: пісочниця, коли середовище виконання пісочниці активне для сеансу, інакше gateway.
|
||||
- `host` приймає лише `auto`, `sandbox`, `gateway` або `node`. Це не селектор імені хоста; значення, схожі на імена хостів, відхиляються до запуску команди.
|
||||
- `auto` — це стандартна стратегія маршрутизації, а не wildcard. `host=node` для окремого виклику дозволено з `auto`; `host=gateway` для окремого виклику дозволено лише тоді, коли немає активного середовища виконання пісочниці.
|
||||
- Без додаткової конфігурації `host=auto` усе одно «просто працює»: немає пісочниці — перетворюється на `gateway`; активна пісочниця — залишається в пісочниці.
|
||||
- `elevated` виходить із пісочниці до налаштованого шляху хоста: за замовчуванням `gateway`, або `node`, коли `tools.exec.host=node` (або стандарт сеансу — `host=node`). Доступно лише тоді, коли підвищений доступ увімкнено для поточного сеансу/провайдера.
|
||||
- Схвалення `gateway`/`node` контролюються через `~/.openclaw/exec-approvals.json`.
|
||||
- `node` потребує спареного Node (супровідного застосунку або headless-хоста Node).
|
||||
- Якщо доступно кілька Node, задайте `exec.node` або `tools.exec.node`, щоб вибрати один.
|
||||
- `node` потребує спареного Node (companion app або headless node host).
|
||||
- Якщо доступно кілька Node, установіть `exec.node` або `tools.exec.node`, щоб вибрати один.
|
||||
- `exec host=node` — єдиний шлях shell-виконання для Node; застарілу обгортку `nodes.run` видалено.
|
||||
- `timeout` застосовується до виконання на передньому плані, у фоні, `yieldMs`, Gateway, пісочниці та Node `system.run`. Якщо його пропущено, OpenClaw використовує `tools.exec.timeoutSec`; явне `timeout: 0` вимикає тайм-аут процесу exec для цього виклику.
|
||||
- На хостах не Windows exec використовує `SHELL`, коли його задано; якщо `SHELL` — це `fish`, він віддає перевагу `bash` (або `sh`)
|
||||
з `PATH`, щоб уникнути несумісних із fish скриптів, а потім повертається до `SHELL`, якщо жодного з них немає.
|
||||
- `timeout` застосовується до виконання на передньому плані, у фоні, `yieldMs`, gateway, пісочниці та `system.run` на Node. Якщо пропущено, OpenClaw використовує `tools.exec.timeoutSec`; явне `timeout: 0` вимикає час очікування процесу exec для цього виклику.
|
||||
- На хостах не Windows exec використовує `SHELL`, коли задано; якщо `SHELL` — `fish`, він віддає перевагу `bash` (або `sh`)
|
||||
з `PATH`, щоб уникнути скриптів, несумісних із fish, а потім повертається до `SHELL`, якщо жодного з них не існує.
|
||||
- На хостах Windows exec віддає перевагу виявленню PowerShell 7 (`pwsh`) (Program Files, ProgramW6432, потім PATH),
|
||||
а потім повертається до Windows PowerShell 5.1.
|
||||
- Виконання на хості (`gateway`/`node`) відхиляє `env.PATH` і перевизначення завантажувача (`LD_*`/`DYLD_*`), щоб
|
||||
запобігти підміні бінарних файлів або ін’єкції коду.
|
||||
- OpenClaw задає `OPENCLAW_SHELL=exec` у середовищі породженої команди (включно з виконанням у PTY і пісочниці), щоб правила shell/профілю могли виявляти контекст exec-інструмента.
|
||||
- `openclaw channels login` заблоковано з `exec`, бо це інтерактивний потік автентифікації каналу; запустіть його в терміналі на хості Gateway або використайте нативний для каналу інструмент входу з чату, коли він існує.
|
||||
- Важливо: пісочницю **вимкнено за замовчуванням**. Якщо пісочницю вимкнено, неявне `host=auto`
|
||||
перетворюється на `gateway`. Явне `host=sandbox` усе одно завершується закритою відмовою, а не тихо
|
||||
запускається на хості Gateway. Увімкніть пісочницю або використовуйте `host=gateway` зі схваленнями.
|
||||
- Попередні перевірки скриптів (для поширених помилок shell-синтаксису Python/Node) перевіряють лише файли всередині
|
||||
ефективної межі `workdir`. Якщо шлях скрипта перетворюється на шлях поза `workdir`, попередню перевірку для
|
||||
цього файлу пропущено.
|
||||
- Для тривалої роботи, яка починається зараз, запустіть її один раз і покладайтеся на автоматичне
|
||||
пробудження після завершення, коли його увімкнено і команда виводить дані або завершується з помилкою.
|
||||
Використовуйте `process` для журналів, статусу, вводу або втручання; не імітуйте
|
||||
запобігти підміні бінарного файла або ін’єкції коду.
|
||||
- OpenClaw встановлює `OPENCLAW_SHELL=exec` у середовищі породженої команди (включно з PTY і виконанням у пісочниці), щоб правила shell/profile могли виявляти контекст інструмента exec.
|
||||
- `openclaw channels login` блокується з `exec`, бо це інтерактивний потік автентифікації каналу; запустіть його в терміналі на хості gateway або використайте нативний для каналу інструмент входу з чату, якщо він існує.
|
||||
- Важливо: пісочниця **вимкнена за замовчуванням**. Якщо пісочниця вимкнена, неявний `host=auto`
|
||||
перетворюється на `gateway`. Явний `host=sandbox` усе одно закривається з помилкою, а не непомітно
|
||||
запускається на хості gateway. Увімкніть пісочницю або використайте `host=gateway` зі схваленнями.
|
||||
- Попередні перевірки скриптів (для поширених помилок синтаксису shell у Python/Node) перевіряють лише файли всередині
|
||||
ефективної межі `workdir`. Якщо шлях скрипта перетворюється на місце поза `workdir`, попередню перевірку для
|
||||
цього файла пропущено.
|
||||
- Для довготривалої роботи, яка починається зараз, запустіть її один раз і покладайтеся на автоматичне
|
||||
пробудження після завершення, коли воно ввімкнене й команда виводить дані або завершується помилкою.
|
||||
Використовуйте `process` для журналів, статусу, введення або втручання; не імітуйте
|
||||
планування циклами sleep, циклами timeout або повторним опитуванням.
|
||||
- Для роботи, яка має відбутися пізніше або за розкладом, використовуйте Cron замість
|
||||
шаблонів sleep/delay у `exec`.
|
||||
- Для роботи, яка має відбутися пізніше або за розкладом, використовуйте cron замість
|
||||
шаблонів sleep/delay з `exec`.
|
||||
|
||||
## Конфігурація
|
||||
|
||||
- `tools.exec.notifyOnExit` (за замовчуванням: true): коли true, переведені у фон сеанси exec додають системну подію до черги та запитують Heartbeat під час виходу.
|
||||
- `tools.exec.approvalRunningNoticeMs` (за замовчуванням: 10000): надіслати одне сповіщення «running», коли exec, обмежений схваленням, виконується довше за це значення (0 вимикає).
|
||||
- `tools.exec.timeoutSec` (за замовчуванням: 1800): стандартний тайм-аут exec для кожної команди в секундах. `timeout` для окремого виклику перевизначає його; `timeout: 0` для окремого виклику вимикає тайм-аут процесу exec.
|
||||
- `tools.exec.host` (за замовчуванням: `auto`; перетворюється на `sandbox`, коли активне середовище виконання пісочниці, інакше на `gateway`)
|
||||
- `tools.exec.security` (за замовчуванням: `deny` для пісочниці, `full` для Gateway + Node, коли не задано)
|
||||
- `tools.exec.notifyOnExit` (за замовчуванням: true): коли true, фонові сеанси exec ставлять системну подію в чергу та запитують heartbeat під час виходу.
|
||||
- `tools.exec.approvalRunningNoticeMs` (за замовчуванням: 10000): надіслати одне сповіщення «виконується», коли exec із вимогою схвалення виконується довше за це значення (0 вимикає).
|
||||
- `tools.exec.timeoutSec` (за замовчуванням: 1800): стандартний час очікування exec для кожної команди в секундах. `timeout` для окремого виклику перевизначає його; `timeout: 0` для окремого виклику вимикає час очікування процесу exec.
|
||||
- `tools.exec.host` (за замовчуванням: `auto`; перетворюється на `sandbox`, коли активне середовище виконання пісочниці, і на `gateway` в іншому разі)
|
||||
- `tools.exec.security` (за замовчуванням: `deny` для пісочниці, `full` для gateway + node, коли не задано)
|
||||
- `tools.exec.ask` (за замовчуванням: `off`)
|
||||
- Exec на хості без схвалення є стандартом для Gateway + Node. Якщо потрібна поведінка зі схваленнями/allowlist, посильте і `tools.exec.*`, і хостовий `~/.openclaw/exec-approvals.json`; див. [Exec approvals](/uk/tools/exec-approvals#no-approval-yolo-mode).
|
||||
- YOLO походить від стандартів політики хоста (`security=full`, `ask=off`), а не від `host=auto`. Якщо потрібно примусово маршрутизувати через Gateway або Node, задайте `tools.exec.host` або використайте `/exec host=...`.
|
||||
- У режимі `security=full` плюс `ask=off` host exec напряму дотримується налаштованої політики; немає додаткового евристичного префільтра приховування команд або шару відхилення попередньої перевірки скриптів.
|
||||
- Виконання на хості без схвалення є стандартом для gateway + node. Якщо вам потрібна поведінка зі схваленнями/allowlist, посильте і `tools.exec.*`, і хостовий `~/.openclaw/exec-approvals.json`; див. [схвалення Exec](/uk/tools/exec-approvals#no-approval-yolo-mode).
|
||||
- YOLO походить зі стандартів політики хоста (`security=full`, `ask=off`), а не з `host=auto`. Якщо потрібно примусово задати маршрутизацію gateway або node, установіть `tools.exec.host` або використайте `/exec host=...`.
|
||||
- У режимі `security=full` плюс `ask=off` exec на хості безпосередньо дотримується налаштованої політики; немає додаткового евристичного попереднього фільтра обфускації команд або шару відхилення попередньої перевірки скриптів.
|
||||
- `tools.exec.node` (за замовчуванням: не задано)
|
||||
- `tools.exec.strictInlineEval` (за замовчуванням: false): коли true, форми inline eval інтерпретатора, як-от `python -c`, `node -e`, `ruby -e`, `perl -e`, `php -r`, `lua -e` і `osascript -e`, завжди потребують явного схвалення. `allow-always` усе ще може зберігати безпечні виклики інтерпретатора/скрипта, але форми inline-eval усе одно щоразу показують запит.
|
||||
- `tools.exec.pathPrepend`: список каталогів, які потрібно додати на початок `PATH` для запусків exec (лише Gateway + пісочниця).
|
||||
- `tools.exec.safeBins`: безпечні бінарні файли лише для stdin, які можуть запускатися без явних записів allowlist. Подробиці поведінки див. у [Safe bins](/uk/tools/exec-approvals-advanced#safe-bins-stdin-only).
|
||||
- `tools.exec.safeBinTrustedDirs`: додаткові явні каталоги, яким довіряють для перевірок шляхів `safeBins`. Записи `PATH` ніколи не стають довіреними автоматично. Вбудовані стандартні значення — `/bin` і `/usr/bin`.
|
||||
- `tools.exec.safeBinProfiles`: необов’язкова власна політика argv для кожного безпечного бінарного файла (`minPositional`, `maxPositional`, `allowedValueFlags`, `deniedFlags`).
|
||||
- `tools.exec.strictInlineEval` (за замовчуванням: false): коли true, форми inline eval інтерпретатора, як-от `python -c`, `node -e`, `ruby -e`, `perl -e`, `php -r`, `lua -e` і `osascript -e`, завжди потребують явного схвалення. `allow-always` усе ще може зберігати безпечні виклики інтерпретатора/скрипта, але форми inline-eval усе одно запитують щоразу.
|
||||
- `tools.exec.pathPrepend`: список каталогів, які додаються на початок `PATH` для запусків exec (лише gateway + пісочниця).
|
||||
- `tools.exec.safeBins`: безпечні бінарні файли лише для stdin, які можуть виконуватися без явних записів allowlist. Подробиці поведінки див. у [безпечних bins](/uk/tools/exec-approvals-advanced#safe-bins-stdin-only).
|
||||
- `tools.exec.safeBinTrustedDirs`: додаткові явні каталоги, яким довіряють для перевірок шляхів `safeBins`. Записи `PATH` ніколи не отримують автоматичної довіри. Вбудовані значення за замовчуванням: `/bin` і `/usr/bin`.
|
||||
- `tools.exec.safeBinProfiles`: необов’язкова користувацька політика argv для кожного безпечного bin (`minPositional`, `maxPositional`, `allowedValueFlags`, `deniedFlags`).
|
||||
|
||||
Приклад:
|
||||
|
||||
@ -131,29 +132,29 @@ Shell-команда для запуску.
|
||||
|
||||
### Обробка PATH
|
||||
|
||||
- `host=gateway`: об’єднує `PATH` вашої оболонки входу із середовищем виконання. Перевизначення `env.PATH`
|
||||
відхиляються для виконання на хості. Сам демон усе ще працює з мінімальним `PATH`:
|
||||
- `host=gateway`: об’єднує `PATH` вашого login-shell із середовищем exec. Перевизначення `env.PATH`
|
||||
відхиляються для виконання на хості. Сам daemon усе ще працює з мінімальним `PATH`:
|
||||
- macOS: `/opt/homebrew/bin`, `/usr/local/bin`, `/usr/bin`, `/bin`
|
||||
- Linux: `/usr/local/bin`, `/usr/bin`, `/bin`
|
||||
- `host=sandbox`: запускає `sh -lc` (оболонку входу) всередині контейнера, тому `/etc/profile` може скинути `PATH`.
|
||||
OpenClaw додає `env.PATH` на початок після завантаження профілю через внутрішню змінну середовища (без інтерполяції оболонки);
|
||||
`tools.exec.pathPrepend` також застосовується тут.
|
||||
- `host=node`: на вузол надсилаються лише неблоковані перевизначення середовища, які ви передаєте. Перевизначення `env.PATH`
|
||||
відхиляються для виконання на хості та ігноруються хостами вузлів. Якщо вам потрібні додаткові записи PATH на вузлі,
|
||||
налаштуйте середовище служби хоста вузла (systemd/launchd) або встановіть інструменти у стандартні розташування.
|
||||
- `host=sandbox`: запускає `sh -lc` (login shell) усередині контейнера, тому `/etc/profile` може скидати `PATH`.
|
||||
OpenClaw додає `env.PATH` на початок після завантаження профілю через внутрішню змінну середовища (без shell-інтерполяції);
|
||||
`tools.exec.pathPrepend` застосовується тут також.
|
||||
- `host=node`: до Node надсилаються лише незаблоковані перевизначення середовища, які ви передаєте. Перевизначення `env.PATH`
|
||||
відхиляються для виконання на хості й ігноруються хостами Node. Якщо вам потрібні додаткові записи PATH на Node,
|
||||
налаштуйте середовище служби хоста Node (systemd/launchd) або встановіть інструменти у стандартні розташування.
|
||||
|
||||
Прив’язка вузла для окремого агента (використовуйте індекс списку агентів у конфігурації):
|
||||
Прив’язка Node для кожного агента (використовуйте індекс списку агентів у конфігурації):
|
||||
|
||||
```bash
|
||||
openclaw config get agents.list
|
||||
openclaw config set agents.list[0].tools.exec.node "node-id-or-name"
|
||||
```
|
||||
|
||||
Інтерфейс керування: вкладка Nodes містить невелику панель “Прив’язка вузла виконання” для тих самих налаштувань.
|
||||
Control UI: вкладка Nodes містить невелику панель «Прив’язка Node для exec» для тих самих налаштувань.
|
||||
|
||||
## Перевизначення сеансу (`/exec`)
|
||||
|
||||
Використовуйте `/exec`, щоб задати типові значення **для окремого сеансу** для `host`, `security`, `ask` і `node`.
|
||||
Використовуйте `/exec`, щоб задати **для кожного сеансу** стандартні значення для `host`, `security`, `ask` і `node`.
|
||||
Надішліть `/exec` без аргументів, щоб показати поточні значення.
|
||||
|
||||
Приклад:
|
||||
@ -164,53 +165,53 @@ openclaw config set agents.list[0].tools.exec.node "node-id-or-name"
|
||||
|
||||
## Модель авторизації
|
||||
|
||||
`/exec` виконується лише для **авторизованих відправників** (списки дозволених/сполучення каналу плюс `commands.useAccessGroups`).
|
||||
Він оновлює **лише стан сесії** і не записує конфігурацію. Щоб жорстко вимкнути exec, забороніть його через
|
||||
політику інструментів (`tools.deny: ["exec"]` або для окремого агента). Підтвердження хоста все одно застосовуються, якщо ви явно не встановите
|
||||
`/exec` враховується лише для **авторизованих відправників** (allowlist/спарення каналів плюс `commands.useAccessGroups`).
|
||||
Він оновлює **лише стан сеансу** й не записує конфігурацію. Щоб жорстко вимкнути exec, забороніть його через політику інструментів
|
||||
(`tools.deny: ["exec"]` або для окремого агента). Схвалення хоста все одно застосовуються, якщо ви явно не встановите
|
||||
`security=full` і `ask=off`.
|
||||
|
||||
## Підтвердження Exec (додаток-компаньйон / хост Node)
|
||||
## Схвалення Exec (companion app / node host)
|
||||
|
||||
Ізольовані агенти можуть вимагати підтвердження для кожного запиту перед запуском `exec` на Gateway або хості Node.
|
||||
Див. [Підтвердження Exec](/uk/tools/exec-approvals) щодо політики, списку дозволених і UI-процесу.
|
||||
Агенти в пісочниці можуть вимагати схвалення для кожного запиту перед запуском `exec` на хості gateway або node.
|
||||
Див. [схвалення Exec](/uk/tools/exec-approvals) щодо політики, allowlist і потоку UI.
|
||||
|
||||
Коли підтвердження потрібні, інструмент exec негайно повертає
|
||||
`status: "approval-pending"` та id підтвердження. Після підтвердження (або відхилення / завершення часу очікування)
|
||||
Коли потрібні схвалення, інструмент exec негайно повертає
|
||||
`status: "approval-pending"` та ідентифікатор схвалення. Після схвалення (або відхилення / спливу часу очікування)
|
||||
Gateway надсилає системні події (`Exec finished` / `Exec denied`). Якщо команда все ще
|
||||
виконується після `tools.exec.approvalRunningNoticeMs`, надсилається одне сповіщення `Exec running`.
|
||||
У каналах із нативними картками/кнопками підтвердження агент має насамперед покладатися на цей
|
||||
нативний UI і додавати ручну команду `/approve` лише тоді, коли результат
|
||||
інструмента явно повідомляє, що підтвердження в чаті недоступні або ручне підтвердження є
|
||||
У каналах із нативними картками/кнопками схвалення агент має спершу покладатися на цей
|
||||
нативний UI і включати ручну команду `/approve` лише тоді, коли результат
|
||||
інструмента явно каже, що схвалення через чат недоступні або ручне схвалення є
|
||||
єдиним шляхом.
|
||||
|
||||
## Список дозволених + безпечні виконувані файли
|
||||
## Allowlist + безпечні bins
|
||||
|
||||
Ручне застосування списку дозволених зіставляє розв’язані globs шляхів до виконуваних файлів і globs простих
|
||||
імен команд. Прості імена зіставляються лише з командами, викликаними через PATH, тому `rg` може відповідати
|
||||
Ручне застосування allowlist зіставляє glob-шаблони перетворених шляхів бінарних файлів і
|
||||
glob-шаблони голих назв команд. Голі назви збігаються лише з командами, викликаними через PATH, тому `rg` може збігтися з
|
||||
`/opt/homebrew/bin/rg`, коли команда — `rg`, але не `./rg` або `/tmp/rg`.
|
||||
Коли `security=allowlist`, команди оболонки автоматично дозволяються лише якщо кожен сегмент конвеєра
|
||||
є в списку дозволених або є безпечним виконуваним файлом. Ланцюжки (`;`, `&&`, `||`) і перенаправлення
|
||||
відхиляються в режимі списку дозволених, якщо кожен сегмент верхнього рівня не задовольняє
|
||||
список дозволених (включно з безпечними виконуваними файлами). Перенаправлення залишаються непідтримуваними.
|
||||
Стійка довіра `allow-always` не обходить це правило: ланцюжкова команда все одно вимагає, щоб кожен
|
||||
Коли `security=allowlist`, shell-команди автоматично дозволяються лише якщо кожен сегмент pipeline
|
||||
є в allowlist або є безпечним bin. Ланцюжки (`;`, `&&`, `||`) і перенаправлення
|
||||
відхиляються в режимі allowlist, якщо кожен сегмент верхнього рівня не задовольняє
|
||||
allowlist (включно з безпечними bins). Перенаправлення залишаються непідтримуваними.
|
||||
Стійка довіра `allow-always` не обходить це правило: команда в ланцюжку все одно потребує, щоб кожен
|
||||
сегмент верхнього рівня збігався.
|
||||
|
||||
`autoAllowSkills` — це окремий зручний шлях у підтвердженнях exec. Це не те саме, що
|
||||
ручні записи списку дозволених шляхів. Для суворої явної довіри залишайте `autoAllowSkills` вимкненим.
|
||||
`autoAllowSkills` — це окремий зручний шлях у схваленнях exec. Це не те саме, що
|
||||
ручні записи allowlist для шляхів. Для строгої явної довіри залишайте `autoAllowSkills` вимкненим.
|
||||
|
||||
Використовуйте ці два елементи керування для різних завдань:
|
||||
Використовуйте два елементи керування для різних завдань:
|
||||
|
||||
- `tools.exec.safeBins`: невеликі потокові фільтри лише для stdin.
|
||||
- `tools.exec.safeBinTrustedDirs`: явні додаткові довірені каталоги для шляхів безпечних виконуваних файлів.
|
||||
- `tools.exec.safeBinProfiles`: явна політика argv для власних безпечних виконуваних файлів.
|
||||
- список дозволених: явна довіра до шляхів виконуваних файлів.
|
||||
- `tools.exec.safeBins`: малі потокові фільтри лише для stdin.
|
||||
- `tools.exec.safeBinTrustedDirs`: явні додаткові довірені каталоги для шляхів виконуваних файлів safe-bin.
|
||||
- `tools.exec.safeBinProfiles`: явна політика argv для користувацьких безпечних bins.
|
||||
- allowlist: явна довіра до шляхів виконуваних файлів.
|
||||
|
||||
Не розглядайте `safeBins` як універсальний список дозволених і не додавайте бінарні файли інтерпретаторів/середовищ виконання (наприклад, `python3`, `node`, `ruby`, `bash`). Якщо вони вам потрібні, використовуйте явні записи списку дозволених і залишайте запити на схвалення увімкненими.
|
||||
Не трактуйте `safeBins` як універсальний список дозволених і не додавайте бінарні файли інтерпретаторів/середовищ виконання (наприклад, `python3`, `node`, `ruby`, `bash`). Якщо вони потрібні, використовуйте явні записи списку дозволених і залишайте запити на схвалення ввімкненими.
|
||||
`openclaw security audit` попереджає, коли записи інтерпретаторів/середовищ виконання в `safeBins` не мають явних профілів, а `openclaw doctor --fix` може створити каркас відсутніх користувацьких записів `safeBinProfiles`.
|
||||
`openclaw security audit` і `openclaw doctor` також попереджають, коли ви явно додаєте назад у `safeBins` бінарні файли з широкою поведінкою, як-от `jq`.
|
||||
Якщо ви явно додаєте інтерпретатори до списку дозволених, увімкніть `tools.exec.strictInlineEval`, щоб форми inline code-eval усе одно вимагали нового схвалення.
|
||||
`openclaw security audit` і `openclaw doctor` також попереджають, коли ви явно додаєте до `safeBins` бінарні файли з широкою поведінкою, як-от `jq`.
|
||||
Якщо ви явно додаєте інтерпретатори до списку дозволених, увімкніть `tools.exec.strictInlineEval`, щоб форми вбудованого виконання коду й надалі вимагали нового схвалення.
|
||||
|
||||
Повні відомості про політику та приклади див. у розділах [Схвалення Exec](/uk/tools/exec-approvals-advanced#safe-bins-stdin-only) і [Safe bins проти списку дозволених](/uk/tools/exec-approvals-advanced#safe-bins-versus-allowlist).
|
||||
Повні відомості про політику й приклади див. у [Схваленнях Exec](/uk/tools/exec-approvals-advanced#safe-bins-stdin-only) і [Безпечні бінарні файли проти списку дозволених](/uk/tools/exec-approvals-advanced#safe-bins-versus-allowlist).
|
||||
|
||||
## Приклади
|
||||
|
||||
@ -220,16 +221,16 @@ Gateway надсилає системні події (`Exec finished` / `Exec de
|
||||
{ "tool": "exec", "command": "ls -la" }
|
||||
```
|
||||
|
||||
Фон + опитування:
|
||||
Фоновий режим + опитування:
|
||||
|
||||
```json
|
||||
{"tool":"exec","command":"npm run build","yieldMs":1000}
|
||||
{"tool":"process","action":"poll","sessionId":"<id>"}
|
||||
```
|
||||
|
||||
Опитування призначене для статусу на вимогу, а не для циклів очікування. Якщо ввімкнене автоматичне пробудження після завершення, команда може розбудити сеанс, коли вона виведе дані або завершиться з помилкою.
|
||||
Опитування призначене для статусу за запитом, а не для циклів очікування. Якщо ввімкнено автоматичне пробудження після завершення, команда може пробудити сесію, коли вона виводить дані або завершується помилкою.
|
||||
|
||||
Надіслати клавіші (у стилі tmux):
|
||||
Надсилання клавіш (у стилі tmux):
|
||||
|
||||
```json
|
||||
{"tool":"process","action":"send-keys","sessionId":"<id>","keys":["Enter"]}
|
||||
@ -237,13 +238,13 @@ Gateway надсилає системні події (`Exec finished` / `Exec de
|
||||
{"tool":"process","action":"send-keys","sessionId":"<id>","keys":["Up","Up","Enter"]}
|
||||
```
|
||||
|
||||
Надіслати (лише CR):
|
||||
Надсилання (лише CR):
|
||||
|
||||
```json
|
||||
{ "tool": "process", "action": "submit", "sessionId": "<id>" }
|
||||
```
|
||||
|
||||
Вставити (за замовчуванням у bracketed-режимі):
|
||||
Вставлення (типово в режимі bracketed paste):
|
||||
|
||||
```json
|
||||
{ "tool": "process", "action": "paste", "sessionId": "<id>", "text": "line1\nline2\n" }
|
||||
@ -251,8 +252,8 @@ Gateway надсилає системні події (`Exec finished` / `Exec de
|
||||
|
||||
## apply_patch
|
||||
|
||||
`apply_patch` — це підінструмент `exec` для структурованих редагувань кількох файлів.
|
||||
Він увімкнений за замовчуванням для моделей OpenAI та OpenAI Codex. Використовуйте конфігурацію лише тоді, коли хочете вимкнути його або обмежити конкретними моделями:
|
||||
`apply_patch` — це підінструмент `exec` для структурованих багатофайлових редагувань.
|
||||
Він типово ввімкнений для моделей OpenAI та OpenAI Codex. Використовуйте конфігурацію лише тоді, коли хочете вимкнути його або обмежити конкретними моделями:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -267,14 +268,14 @@ Gateway надсилає системні події (`Exec finished` / `Exec de
|
||||
Примітки:
|
||||
|
||||
- Доступно лише для моделей OpenAI/OpenAI Codex.
|
||||
- Політика інструментів усе одно застосовується; `allow: ["write"]` неявно дозволяє `apply_patch`.
|
||||
- Політика інструментів усе ще застосовується; `allow: ["write"]` неявно дозволяє `apply_patch`.
|
||||
- Конфігурація розміщується в `tools.exec.applyPatch`.
|
||||
- `tools.exec.applyPatch.enabled` за замовчуванням має значення `true`; установіть його в `false`, щоб вимкнути інструмент для моделей OpenAI.
|
||||
- `tools.exec.applyPatch.workspaceOnly` за замовчуванням має значення `true` (обмежено робочою областю). Установлюйте його в `false` лише тоді, коли ви навмисно хочете, щоб `apply_patch` записував/видаляв файли за межами каталогу робочої області.
|
||||
- `tools.exec.applyPatch.enabled` типово має значення `true`; установіть `false`, щоб вимкнути інструмент для моделей OpenAI.
|
||||
- `tools.exec.applyPatch.workspaceOnly` типово має значення `true` (обмежено робочою областю). Установлюйте `false` лише якщо ви навмисно хочете, щоб `apply_patch` записував/видаляв за межами каталогу робочої області.
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Схвалення Exec](/uk/tools/exec-approvals) — шлюзи схвалення для команд оболонки
|
||||
- [Пісочниця](/uk/gateway/sandboxing) — виконання команд у ізольованих середовищах
|
||||
- [Фоновий процес](/uk/gateway/background-process) — довготривалий exec та інструмент process
|
||||
- [Ізоляція в пісочниці](/uk/gateway/sandboxing) — запуск команд в ізольованих середовищах
|
||||
- [Фоновий процес](/uk/gateway/background-process) — довготривале виконання exec та інструмент process
|
||||
- [Безпека](/uk/gateway/security) — політика інструментів і підвищений доступ
|
||||
|
||||
Loading…
Reference in New Issue
Block a user