chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-08 06:34:59 +00:00
parent 82c4def9e2
commit 99bc4a49a7
6 changed files with 1378 additions and 1366 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,44 +1,44 @@
---
read_when:
- Ви хочете, щоб підвищення пам’яті виконувалося автоматично
- Ви хочете, щоб просування пам’яті виконувалося автоматично
- Ви хочете зрозуміти, що робить кожна фаза dreaming
- Ви хочете налаштувати консолідацію, не засмічуючи MEMORY.md
summary: Фонове консолідування пам’яті з фазами light, deep і REM, а також Dream Diary
- Ви хочете налаштувати консолідацію, не засмічуючи `MEMORY.md`
summary: Фонова консолідація пам’яті з легкими, глибокими та REM-фазами, а також Dream Diary
title: Dreaming (експериментально)
x-i18n:
generated_at: "2026-04-06T04:29:13Z"
generated_at: "2026-04-08T06:28:53Z"
model: gpt-5.4
provider: openai
source_hash: 36c4b1e70801d662090dc8ce20608c2f141c23cd7ce53c54e3dcf332c801fd4e
source_hash: 0254f3b0949158264e583c12f36f2b1a83d1b44dc4da01a1b272422d38e8655d
source_path: concepts/dreaming.md
workflow: 15
---
# Dreaming (експериментально)
Dreaming — це система фонового консолідування пам’яті в `memory-core`.
Вона допомагає OpenClaw переносити сильні короткострокові сигнали до сталої пам’яті,
зберігаючи процес зрозумілим і придатним для перегляду.
Dreaming — це система фонової консолідації пам’яті в `memory-core`.
Вона допомагає OpenClaw переносити сильні короткострокові сигнали до тривалої пам’яті, зберігаючи
процес зрозумілим і придатним для перевірки.
Dreaming є **опційною** функцією і за замовчуванням вимкнена.
Dreaming є **опціональним** і за замовчуванням вимкнений.
## Що записує dreaming
Dreaming зберігає два види виводу:
Dreaming зберігає два типи результатів:
- **Стан машини** у `memory/.dreams/` (сховище recall, сигнали фаз, контрольні точки ingestion, блокування).
- **Зрозумілий для людини вивід** у `DREAMS.md` (або наявному `dreams.md`) і необов’язкових файлах звітів фаз у `memory/dreaming/<phase>/YYYY-MM-DD.md`.
- **Стан машини** у `memory/.dreams/` (сховище recall, сигнали фаз, контрольні точки поглинання, блокування).
- **Людинозрозумілий вивід** у `DREAMS.md` (або наявному `dreams.md`) і необов’язкових файлах звітів фаз у `memory/dreaming/<phase>/YYYY-MM-DD.md`.
Підвищення до довгострокової пам’яті, як і раніше, записується лише в `MEMORY.md`.
Просування до довготривалої пам’яті, як і раніше, записується лише в `MEMORY.md`.
## Модель фаз
Dreaming використовує три взаємодоповнювальні фази:
| Фаза | Призначення | Стійкий запис |
| ----- | ----------- | ------------- |
| Light | Сортує та готує недавній короткостроковий матеріал | Ні |
| Deep | Оцінює та просуває стійких кандидатів | Так (`MEMORY.md`) |
| Фаза | Призначення | Постійний запис |
| ----- | ----------- | --------------- |
| Light | Сортує та готує нещодавній короткостроковий матеріал | Ні |
| Deep | Оцінює та просуває стійкі кандидати | Так (`MEMORY.md`) |
| REM | Осмислює теми та повторювані ідеї | Ні |
Ці фази є внутрішніми деталями реалізації, а не окремими
@ -46,72 +46,78 @@ Dreaming використовує три взаємодоповнювальні
### Фаза Light
Фаза Light поглинає недавні щоденні сигнали пам’яті та сліди recall, усуває дублікати
Фаза Light поглинає нещодавні щоденні сигнали пам’яті та сліди recall, усуває дублікати
й готує рядки-кандидати.
- Читає короткостроковий стан recall і недавні щоденні файли пам’яті.
- Читає зі стану короткострокового recall, нещодавніх щоденних файлів пам’яті та відредагованих транскриптів сесій, якщо вони доступні.
- Записує керований блок `## Light Sleep`, якщо сховище містить вбудований вивід.
- Фіксує сигнали підкріплення для подальшого ранжування у deep.
- Фіксує сигнали підкріплення для подальшого ранжування у фазі Deep.
- Ніколи не записує в `MEMORY.md`.
### Фаза Deep
Фаза Deep вирішує, що стане довгостроковою пам’яттю.
Фаза Deep визначає, що стане довготривалою пам’яттю.
- Ранжує кандидатів за допомогою зваженого оцінювання та порогових перевірок.
- Ранжує кандидатів за допомогою зваженої оцінки та порогових фільтрів.
- Вимагає проходження `minScore`, `minRecallCount` і `minUniqueQueries`.
- Перед записом повторно гідратує фрагменти з актуальних щоденних файлів, тому застарілі або видалені фрагменти пропускаються.
- Перед записом повторно завантажує фрагменти з актуальних щоденних файлів, тому застарілі або видалені фрагменти пропускаються.
- Додає просунуті записи до `MEMORY.md`.
- Записує підсумок `## Deep Sleep` у `DREAMS.md` та за бажанням у `memory/dreaming/deep/YYYY-MM-DD.md`.
- Записує підсумок `## Deep Sleep` у `DREAMS.md` і за потреби записує `memory/dreaming/deep/YYYY-MM-DD.md`.
### Фаза REM
Фаза REM витягує шаблони та рефлексивні сигнали.
- Будує підсумки тем і рефлексій на основі недавніх короткострокових слідів.
- Створює підсумки тем і рефлексій на основі нещодавніх короткострокових слідів.
- Записує керований блок `## REM Sleep`, якщо сховище містить вбудований вивід.
- Фіксує сигнали підкріплення REM, які використовуються для ранжування у deep.
- Фіксує сигнали підкріплення REM, які використовуються під час ранжування у фазі Deep.
- Ніколи не записує в `MEMORY.md`.
## Поглинання транскриптів сесій
Dreaming може поглинати відредаговані транскрипти сесій до корпусу dreaming. Якщо
транскрипти доступні, вони подаються до фази Light разом із щоденними
сигналами пам’яті та слідами recall. Особистий і чутливий контент редагується
перед поглинанням.
## Dream Diary
Dreaming також веде наративний **Dream Diary** у `DREAMS.md`.
Після того як кожна фаза накопичує достатньо матеріалу, `memory-core` виконує
найкращу можливу фонову сесію subagent (використовуючи типову модель рантайму)
і додає короткий запис щоденника.
Після того як у кожної фази накопичується достатньо матеріалу, `memory-core` запускає фоновий
підлеглий агент у режимі best-effort (з використанням типової моделі середовища виконання) і додає короткий запис щоденника.
Цей щоденник призначений для читання людиною в інтерфейсі Dreams, а не є джерелом підвищення.
Цей щоденник призначений для читання людьми в інтерфейсі Dreams, а не є джерелом для просування.
## Сигнали ранжування Deep
Ранжування Deep використовує шість зважених базових сигналів плюс підкріплення фаз:
| Сигнал | Вага | Опис |
| ------------------- | ------ | ------------------------------------------------- |
| ------ | ---- | ---- |
| Частота | 0.24 | Скільки короткострокових сигналів накопичив запис |
| Релевантність | 0.30 | Середня якість отримання для запису |
| Різноманітність запитів | 0.15 | Окремі контексти запитів/днів, у яких він з’являвся |
| Давність | 0.15 | Оцінка свіжості зі згасанням у часі |
| Консолідація | 0.10 | Сила повторення впродовж кількох днів |
| Концептуальна насиченість | 0.06 | Щільність тегів понять із фрагмента/шляху |
| Різноманітність запитів | 0.15 | Відмінні контексти запитів/днів, у яких він з’являвся |
| Актуальність | 0.15 | Оцінка свіжості зі спаданням у часі |
| Консолідація | 0.10 | Сила повторення протягом кількох днів |
| Концептуальна насиченість | 0.06 | Щільність тегів концепцій із фрагмента/шляху |
Збіги у фазах Light і REM додають невелике підсилення зі згасанням у часі з
Спрацьовування фаз Light і REM додають невелике підсилення зі спаданням за часом із
`memory/.dreams/phase-signals.json`.
## Планування
Коли dreaming увімкнено, `memory-core` автоматично керує одним cron-завданням для повного
циклу dreaming. Кожен цикл запускає фази в такому порядку: light -> REM -> deep.
Коли dreaming увімкнений, `memory-core` автоматично керує одним cron-завданням для повного
циклу dreaming. Кожен цикл запускає фази по порядку: light -> REM -> deep.
Типова поведінка розкладу:
Поведінка типової періодичності:
| Налаштування | Типове значення |
| -------------------- | ----------- |
| ------------ | --------------- |
| `dreaming.frequency` | `0 3 * * *` |
## Швидкий початок
Увімкніть dreaming:
Увімкнути dreaming:
```json
{
@ -129,7 +135,7 @@ Dreaming також веде наративний **Dream Diary** у `DREAMS.md`
}
```
Увімкніть dreaming із власною частотою циклів:
Увімкнути dreaming із власною періодичністю циклу:
```json
{
@ -149,7 +155,7 @@ Dreaming також веде наративний **Dream Diary** у `DREAMS.md`
}
```
## Slash-команда
## Команда зі скісною рискою
```
/dreaming status
@ -160,7 +166,7 @@ Dreaming також веде наративний **Dream Diary** у `DREAMS.md`
## Робочий процес CLI
Використовуйте підвищення через CLI для попереднього перегляду або ручного застосування:
Використовуйте просування через CLI для попереднього перегляду або ручного застосування:
```bash
openclaw memory promote
@ -169,17 +175,17 @@ openclaw memory promote --limit 5
openclaw memory status --deep
```
Ручний `memory promote` за замовчуванням використовує пороги фази deep, якщо їх не перевизначено
Ручна команда `memory promote` за замовчуванням використовує пороги фази Deep, якщо їх не перевизначено
прапорцями CLI.
Поясніть, чому конкретний кандидат буде або не буде просунутий:
Пояснити, чому конкретний кандидат буде або не буде просунутий:
```bash
openclaw memory promote-explain "router vlan"
openclaw memory promote-explain "router vlan" --json
```
Попередньо перегляньте рефлексії REM, істини кандидатів і вивід просування deep без
Попередньо переглянути рефлексії REM, кандидатні істини та результат просування Deep без
будь-якого запису:
```bash
@ -192,29 +198,28 @@ openclaw memory rem-harness --json
Усі налаштування розміщені в `plugins.entries.memory-core.config.dreaming`.
| Ключ | Типове значення |
| ----------- | ----------- |
| `enabled` | `false` |
| ---- | --------------- |
| `enabled` | `false` |
| `frequency` | `0 3 * * *` |
Політика фаз, порогові значення та поведінка сховища є внутрішніми деталями реалізації
Політика фаз, пороги та поведінка сховища є внутрішніми деталями реалізації
(не користувацькою конфігурацією).
Перегляньте [довідник конфігурації Memory](/uk/reference/memory-config#dreaming-experimental),
щоб побачити повний список ключів.
Повний список ключів див. у [довіднику з конфігурації Memory](/uk/reference/memory-config#dreaming-experimental).
## Інтерфейс Dreams
Коли dreaming увімкнено, вкладка **Dreams** у Gateway показує:
Коли dreaming увімкнений, вкладка **Dreams** у Gateway показує:
- поточний стан увімкнення dreaming
- статус на рівні фаз і наявність керованого циклу
- кількість короткострокових, довгострокових і просунутих сьогодні записів
- час наступного запланованого запуску
- розгортаний читач Dream Diary на основі `doctor.memory.dreamDiary`
- розгортаний читач Dream Diary, що працює через `doctor.memory.dreamDiary`
## Пов’язане
- [Memory](/uk/concepts/memory)
- [Memory Search](/uk/concepts/memory-search)
- [memory CLI](/cli/memory)
- [довідник конфігурації Memory](/uk/reference/memory-config)
- [Пошук у Memory](/uk/concepts/memory-search)
- [CLI memory](/cli/memory)
- [довідник з конфігурації Memory](/uk/reference/memory-config)

File diff suppressed because it is too large Load Diff

View File

@ -1,33 +1,33 @@
---
read_when:
- Потрібно знати, з якого підшляху SDK імпортувати
- Потрібен довідник для всіх методів реєстрації в OpenClawPluginApi
- Вам потрібно знати, з якого підшляху SDK імпортувати
- Вам потрібен довідник для всіх методів реєстрації в OpenClawPluginApi
- Ви шукаєте конкретний експорт SDK
sidebarTitle: SDK Overview
summary: Карта імпорту, довідник API реєстрації та архітектура SDK
title: Огляд Plugin SDK
x-i18n:
generated_at: "2026-04-07T20:09:50Z"
generated_at: "2026-04-08T06:30:42Z"
model: gpt-5.4
provider: openai
source_hash: c5a41bd82d165dfbb7fbd6e4528cf322e9133a51efe55fa8518a7a0a626d9d30
source_hash: a9141dc0303c91974fe693ce48ad9f7dc4179418ae262a96011ad565aae87d21
source_path: plugins/sdk-overview.md
workflow: 15
---
# Огляд Plugin SDK
Plugin SDK — це типізований контракт між plugins і core. Ця сторінка є
довідником щодо **що імпортувати** і **що можна реєструвати**.
Plugin SDK — це типізований контракт між плагінами та ядром. Ця сторінка є
довідником про **що імпортувати** і **що можна реєструвати**.
<Tip>
**Шукаєте практичний посібник?**
- Перший plugin? Почніть із [Getting Started](/uk/plugins/building-plugins)
- Channel plugin? Див. [Channel Plugins](/uk/plugins/sdk-channel-plugins)
- Provider plugin? Див. [Provider Plugins](/uk/plugins/sdk-provider-plugins)
- Перший плагін? Почніть із [Getting Started](/uk/plugins/building-plugins)
- Плагін каналу? Див. [Channel Plugins](/uk/plugins/sdk-channel-plugins)
- Плагін провайдера? Див. [Provider Plugins](/uk/plugins/sdk-provider-plugins)
</Tip>
## Угода щодо імпорту
## Угода про імпорт
Завжди імпортуйте з конкретного підшляху:
@ -36,327 +36,330 @@ import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
```
Кожен підшлях — це невеликий самодостатній модуль. Це зберігає швидкий запуск і
запобігає проблемам із циклічними залежностями. Для специфічних для channel
допоміжних засобів entry/build віддавайте перевагу `openclaw/plugin-sdk/channel-core`; `openclaw/plugin-sdk/core`
залишайте для ширшої узагальненої поверхні та спільних допоміжних засобів, таких як
Кожен підшлях — це невеликий самодостатній модуль. Це забезпечує швидкий
запуск і запобігає проблемам із циклічними залежностями. Для специфічних для
каналів допоміжних функцій entry/build надавайте перевагу
`openclaw/plugin-sdk/channel-core`; `openclaw/plugin-sdk/core` залишайте для
ширшої узагальненої поверхні та спільних допоміжних функцій, таких як
`buildChannelConfigSchema`.
Не додавайте і не використовуйте зручні шви з назвами provider, такі як
Не додавайте й не використовуйте зручні шари з іменами провайдерів, такі як
`openclaw/plugin-sdk/slack`, `openclaw/plugin-sdk/discord`,
`openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp`, або
допоміжні шви з брендингом channel. Bundled plugins мають компонувати загальні
підшляхи SDK у власних barrel-файлах `api.ts` або `runtime-api.ts`, а core
має або використовувати ці локальні barrel-файли plugin, або додавати вузький загальний SDK
контракт, коли потреба справді є міжchannel-ною.
`openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp`, або допоміжні
шари з брендуванням каналів. Вбудовані плагіни мають поєднувати узагальнені
підшляхи SDK у власних barrel-файлах `api.ts` або `runtime-api.ts`, а ядро
має або використовувати ці локальні для плагіна barrel-файли, або додавати
вузький узагальнений контракт SDK, коли потреба справді є міжканальною.
Згенерована карта експортів усе ще містить невеликий набір допоміжних
швів bundled-plugin, таких як `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`,
`plugin-sdk/zalo`, `plugin-sdk/zalo-setup` і `plugin-sdk/matrix*`. Ці
підшляхи існують лише для підтримки та сумісності bundled-plugin; вони
навмисно не включені до загальної таблиці нижче і не є рекомендованим
шляхом імпорту для нових сторонніх plugins.
Згенерована карта експортів усе ще містить невеликий набір допоміжних шарів
для вбудованих плагінів, таких як `plugin-sdk/feishu`,
`plugin-sdk/feishu-setup`, `plugin-sdk/zalo`, `plugin-sdk/zalo-setup` і
`plugin-sdk/matrix*`. Ці підшляхи існують лише для підтримки вбудованих
плагінів і сумісності; їх навмисно не включено до загальної таблиці нижче, і
вони не є рекомендованим шляхом імпорту для нових сторонніх плагінів.
## Довідник підшляхів
Найуживаніші підшляхи, згруповані за призначенням. Згенерований повний список із
понад 200 підшляхів міститься в `scripts/lib/plugin-sdk-entrypoints.json`.
понад 200 підшляхів міститься у `scripts/lib/plugin-sdk-entrypoints.json`.
Зарезервовані допоміжні підшляхи bundled-plugin усе ще з’являються в цьому
згенерованому списку. Розглядайте їх як поверхні деталей реалізації/сумісності, якщо лише сторінка документації
явно не просуває одну з них як публічну.
Зарезервовані допоміжні підшляхи для вбудованих плагінів усе ще з’являються в
цьому згенерованому списку. Вважайте їх деталями реалізації/поверхнями
сумісності, якщо лише якась сторінка документації явно не проголошує одну з
них публічною.
### Plugin entry
### Точка входу плагіна
| Subpath | Ключові експорти |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `plugin-sdk/plugin-entry` | `definePluginEntry` |
| Subpath | Ключові експорти |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `plugin-sdk/plugin-entry` | `definePluginEntry` |
| `plugin-sdk/core` | `defineChannelPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase`, `defineSetupPluginEntry`, `buildChannelConfigSchema` |
| `plugin-sdk/config-schema` | `OpenClawSchema` |
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
| `plugin-sdk/config-schema` | `OpenClawSchema` |
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
<AccordionGroup>
<Accordion title="Підшляхи channel">
<Accordion title="Підшляхи каналів">
| Subpath | Ключові експорти |
| --- | --- |
| `plugin-sdk/channel-core` | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
| `plugin-sdk/config-schema` | Експорт кореневої Zod-схеми `openclaw.json` (`OpenClawSchema`) |
| `plugin-sdk/config-schema` | Експорт кореневої схеми Zod для `openclaw.json` (`OpenClawSchema`) |
| `plugin-sdk/channel-setup` | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, а також `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` |
| `plugin-sdk/setup` | Спільні допоміжні засоби майстра налаштування, підказки allowlist, побудовники стану налаштування |
| `plugin-sdk/setup` | Спільні допоміжні функції майстра налаштування, запити списку дозволених, побудовники статусу налаштування |
| `plugin-sdk/setup-runtime` | `createPatchedAccountSetupAdapter`, `createEnvPatchedAccountSetupAdapter`, `createSetupInputPresenceValidator`, `noteChannelLookupFailure`, `noteChannelLookupSummary`, `promptResolvedAllowFrom`, `splitSetupEntries`, `createAllowlistSetupWizardProxy`, `createDelegatedSetupWizardProxy` |
| `plugin-sdk/setup-adapter-runtime` | `createEnvPatchedAccountSetupAdapter` |
| `plugin-sdk/setup-tools` | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
| `plugin-sdk/account-core` | Допоміжні засоби для конфігурації/гейтів дій з кількома акаунтами та резервного використання акаунта за замовчуванням |
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, допоміжні засоби нормалізації account-id |
| `plugin-sdk/account-resolution` | Пошук акаунта + допоміжні засоби резервного використання акаунта за замовчуванням |
| `plugin-sdk/account-helpers` | Вузькі допоміжні засоби для списків акаунтів/дій з акаунтами |
| `plugin-sdk/account-core` | Допоміжні функції багатoакаунтної конфігурації/контролю дій, допоміжні функції резервного вибору акаунта за замовчуванням |
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, допоміжні функції нормалізації ID акаунта |
| `plugin-sdk/account-resolution` | Пошук акаунта + допоміжні функції резервного вибору за замовчуванням |
| `plugin-sdk/account-helpers` | Вузькі допоміжні функції для списку акаунтів/дій з акаунтами |
| `plugin-sdk/channel-pairing` | `createChannelPairingController` |
| `plugin-sdk/channel-reply-pipeline` | `createChannelReplyPipeline` |
| `plugin-sdk/channel-config-helpers` | `createHybridChannelConfigAdapter` |
| `plugin-sdk/channel-config-schema` | Типи схеми конфігурації channel |
| `plugin-sdk/telegram-command-config` | Допоміжні засоби нормалізації/валідації користувацьких команд Telegram з резервною bundled-contract підтримкою |
| `plugin-sdk/channel-config-schema` | Типи схеми конфігурації каналу |
| `plugin-sdk/telegram-command-config` | Допоміжні функції нормалізації/валідації кастомних команд Telegram з резервною підтримкою вбудованого контракту |
| `plugin-sdk/channel-policy` | `resolveChannelGroupRequireMention` |
| `plugin-sdk/channel-lifecycle` | `createAccountStatusSink` |
| `plugin-sdk/inbound-envelope` | Спільні допоміжні засоби маршрутизації вхідних повідомлень + побудови envelope |
| `plugin-sdk/inbound-reply-dispatch` | Спільні допоміжні засоби запису та диспетчеризації вхідних повідомлень |
| `plugin-sdk/messaging-targets` | Допоміжні засоби розбору/зіставлення target |
| `plugin-sdk/outbound-media` | Спільні допоміжні засоби завантаження вихідних медіа |
| `plugin-sdk/outbound-runtime` | Допоміжні засоби вихідної ідентичності/делегування надсилання |
| `plugin-sdk/thread-bindings-runtime` | Життєвий цикл thread-binding і допоміжні засоби adapter |
| `plugin-sdk/agent-media-payload` | Legacy побудовник agent media payload |
| `plugin-sdk/conversation-runtime` | Допоміжні засоби binding розмов/thread, pairing і configured-binding |
| `plugin-sdk/runtime-config-snapshot` | Допоміжний засіб snapshot конфігурації runtime |
| `plugin-sdk/runtime-group-policy` | Допоміжні засоби визначення group-policy під час runtime |
| `plugin-sdk/channel-status` | Спільні допоміжні засоби snapshot/summary статусу channel |
| `plugin-sdk/channel-config-primitives` | Вузькі примітиви схеми конфігурації channel |
| `plugin-sdk/channel-config-writes` | Допоміжні засоби авторизації запису конфігурації channel |
| `plugin-sdk/channel-plugin-common` | Спільні експорти prelude plugin channel |
| `plugin-sdk/allowlist-config-edit` | Допоміжні засоби редагування/читання конфігурації allowlist |
| `plugin-sdk/group-access` | Спільні допоміжні засоби прийняття рішень щодо group-access |
| `plugin-sdk/direct-dm` | Спільні допоміжні засоби auth/guard для прямих DM |
| `plugin-sdk/interactive-runtime` | Допоміжні засоби нормалізації/скорочення payload інтерактивних відповідей |
| `plugin-sdk/channel-inbound` | Допоміжні засоби debounce вхідних повідомлень, зіставлення mention, політики mention і envelope |
| `plugin-sdk/inbound-envelope` | Спільні допоміжні функції побудови вхідних маршрутів та envelope |
| `plugin-sdk/inbound-reply-dispatch` | Спільні допоміжні функції запису та диспетчеризації вхідних даних |
| `plugin-sdk/messaging-targets` | Допоміжні функції парсингу/зіставлення цілей |
| `plugin-sdk/outbound-media` | Спільні допоміжні функції завантаження вихідних медіа |
| `plugin-sdk/outbound-runtime` | Допоміжні функції для вихідної ідентичності/делегування надсилання |
| `plugin-sdk/thread-bindings-runtime` | Життєвий цикл прив’язок потоків та допоміжні функції адаптерів |
| `plugin-sdk/agent-media-payload` | Застарілий побудовник медіапейлоадів агента |
| `plugin-sdk/conversation-runtime` | Допоміжні функції прив’язки розмов/потоків, pairing і налаштованих прив’язок |
| `plugin-sdk/runtime-config-snapshot` | Допоміжна функція знімка конфігурації runtime |
| `plugin-sdk/runtime-group-policy` | Допоміжні функції визначення політики груп у runtime |
| `plugin-sdk/channel-status` | Спільні допоміжні функції знімка/зведення статусу каналу |
| `plugin-sdk/channel-config-primitives` | Вузькі примітиви схеми конфігурації каналу |
| `plugin-sdk/channel-config-writes` | Допоміжні функції авторизації запису конфігурації каналу |
| `plugin-sdk/channel-plugin-common` | Спільні prelude-експорти плагінів каналів |
| `plugin-sdk/allowlist-config-edit` | Допоміжні функції редагування/читання конфігурації списку дозволених |
| `plugin-sdk/group-access` | Спільні допоміжні функції рішень щодо доступу до груп |
| `plugin-sdk/direct-dm` | Спільні допоміжні функції авторизації/захисту прямих DM |
| `plugin-sdk/interactive-runtime` | Допоміжні функції нормалізації/зведення інтерактивних пейлоадів відповідей |
| `plugin-sdk/channel-inbound` | Допоміжні функції debounce для вхідних повідомлень, зіставлення згадок, політики згадок і допоміжні функції envelope |
| `plugin-sdk/channel-send-result` | Типи результатів відповіді |
| `plugin-sdk/channel-actions` | `createMessageToolButtonsSchema`, `createMessageToolCardSchema` |
| `plugin-sdk/channel-targets` | Допоміжні засоби розбору/зіставлення target |
| `plugin-sdk/channel-contract` | Типи контракту channel |
| `plugin-sdk/channel-feedback` | Підключення feedback/reaction |
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби secret-contract, такі як `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, і типи secret target |
| `plugin-sdk/channel-targets` | Допоміжні функції парсингу/зіставлення цілей |
| `plugin-sdk/channel-contract` | Типи контракту каналу |
| `plugin-sdk/channel-feedback` | Підключення зворотного зв’язку/реакцій |
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні функції secret-контракту, такі як `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment`, і типи secret-цілей |
</Accordion>
<Accordion title="Підшляхи provider">
<Accordion title="Підшляхи провайдерів">
| Subpath | Ключові експорти |
| --- | --- |
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
| `plugin-sdk/provider-setup` | Кураторські допоміжні засоби налаштування локального/self-hosted provider |
| `plugin-sdk/self-hosted-provider-setup` | Сфокусовані допоміжні засоби налаштування self-hosted provider, сумісного з OpenAI |
| `plugin-sdk/cli-backend` | Стандарти конфігурації backend CLI + константи watchdog |
| `plugin-sdk/provider-auth-runtime` | Допоміжні засоби визначення API key під час runtime для provider plugins |
| `plugin-sdk/provider-auth-api-key` | Допоміжні засоби онбордингу/запису профілю API key, такі як `upsertApiKeyProfile` |
| `plugin-sdk/provider-auth-result` | Стандартний побудовник результату OAuth auth |
| `plugin-sdk/provider-auth-login` | Спільні допоміжні засоби інтерактивного входу для provider plugins |
| `plugin-sdk/provider-env-vars` | Допоміжні засоби пошуку env vars для auth provider |
| `plugin-sdk/provider-setup` | Кураторські допоміжні функції налаштування локальних/self-hosted провайдерів |
| `plugin-sdk/self-hosted-provider-setup` | Сфокусовані допоміжні функції налаштування self-hosted провайдерів, сумісних з OpenAI |
| `plugin-sdk/cli-backend` | Значення за замовчуванням для CLI backend + константи watchdog |
| `plugin-sdk/provider-auth-runtime` | Допоміжні функції визначення API-ключів у runtime для плагінів провайдерів |
| `plugin-sdk/provider-auth-api-key` | Допоміжні функції онбордингу/запису профілю API-ключів, такі як `upsertApiKeyProfile` |
| `plugin-sdk/provider-auth-result` | Стандартний побудовник результатів OAuth-автентифікації |
| `plugin-sdk/provider-auth-login` | Спільні інтерактивні допоміжні функції входу для плагінів провайдерів |
| `plugin-sdk/provider-env-vars` | Допоміжні функції пошуку env var для автентифікації провайдерів |
| `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile`, `upsertApiKeyProfile`, `writeOAuthCredentials` |
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні побудовники replay-policy, допоміжні засоби endpoint provider і допоміжні засоби нормалізації model-id, такі як `normalizeNativeXaiModelId` |
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, спільні побудовники політик replay, допоміжні функції endpoint провайдера та нормалізації ID моделей, такі як `normalizeNativeXaiModelId` |
| `plugin-sdk/provider-catalog-shared` | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
| `plugin-sdk/provider-http` | Загальні допоміжні засоби HTTP/endpoint capability для provider |
| `plugin-sdk/provider-web-fetch-contract` | Вузькі допоміжні засоби contract для конфігурації/вибору web-fetch, такі як `enablePluginInConfig` і `WebFetchProviderPlugin` |
| `plugin-sdk/provider-web-fetch` | Допоміжні засоби реєстрації/кешування web-fetch provider |
| `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні засоби contract для конфігурації/облікових даних web-search, такі як `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped setter/getter для облікових даних |
| `plugin-sdk/provider-web-search` | Допоміжні засоби реєстрації/кешування/runtime web-search provider |
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика і допоміжні засоби сумісності xAI, такі як `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
| `plugin-sdk/provider-http` | Узагальнені допоміжні функції для HTTP/можливостей endpoint провайдера |
| `plugin-sdk/provider-web-fetch-contract` | Вузькі допоміжні функції контракту конфігурації/вибору web-fetch, такі як `enablePluginInConfig` і `WebFetchProviderPlugin` |
| `plugin-sdk/provider-web-fetch` | Допоміжні функції реєстрації/кешування провайдерів web-fetch |
| `plugin-sdk/provider-web-search-contract` | Вузькі допоміжні функції контракту конфігурації/облікових даних web-search, такі як `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` і scoped setter/getter для облікових даних |
| `plugin-sdk/provider-web-search` | Допоміжні функції реєстрації/кешування/runtime для провайдерів web-search |
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, очищення схеми Gemini + діагностика, а також допоміжні функції сумісності xAI, такі як `resolveXaiModelCompatPatch` / `applyXaiModelCompat` |
| `plugin-sdk/provider-usage` | `fetchClaudeUsage` та подібні |
| `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи stream wrapper і спільні допоміжні засоби wrapper для Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
| `plugin-sdk/provider-onboard` | Допоміжні засоби patch конфігурації онбордингу |
| `plugin-sdk/global-singleton` | Допоміжні засоби process-local singleton/map/cache |
| `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, типи stream wrapper і спільні допоміжні wrapper-функції для Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot |
| `plugin-sdk/provider-onboard` | Допоміжні функції внесення патчів у конфігурацію онбордингу |
| `plugin-sdk/global-singleton` | Допоміжні функції process-local singleton/map/cache |
</Accordion>
<Accordion title="Підшляхи auth і безпеки">
<Accordion title="Підшляхи автентифікації та безпеки">
| Subpath | Ключові експорти |
| --- | --- |
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, допоміжні засоби реєстру команд, допоміжні засоби авторизації відправника |
| `plugin-sdk/approval-auth-runtime` | Допоміжні засоби визначення approver і auth дій у тому самому chat |
| `plugin-sdk/approval-client-runtime` | Допоміжні засоби профілю/фільтра native exec approval |
| `plugin-sdk/approval-delivery-runtime` | Adapter-и можливостей/доставки native approval |
| `plugin-sdk/approval-gateway-runtime` | Спільний допоміжний засіб визначення gateway approval |
| `plugin-sdk/approval-handler-adapter-runtime` | Легкі допоміжні засоби завантаження adapter native approval для гарячих entrypoint-ів channel |
| `plugin-sdk/approval-handler-runtime` | Ширші допоміжні засоби runtime для handler approval; віддавайте перевагу вужчим швам adapter/gateway, коли їх достатньо |
| `plugin-sdk/approval-native-runtime` | Допоміжні засоби native approval target + account-binding |
| `plugin-sdk/approval-reply-runtime` | Допоміжні засоби payload відповідей для exec/plugin approval |
| `plugin-sdk/command-auth-native` | Native auth команд + допоміжні засоби native session-target |
| `plugin-sdk/command-detection` | Спільні допоміжні засоби виявлення команд |
| `plugin-sdk/command-surface` | Нормалізація тіла команд і допоміжні засоби поверхні команд |
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, допоміжні функції реєстру команд, допоміжні функції авторизації відправника |
| `plugin-sdk/approval-auth-runtime` | Допоміжні функції визначення approver і авторизації дій у тому самому чаті |
| `plugin-sdk/approval-client-runtime` | Допоміжні функції профілів/фільтрів підтвердження native exec |
| `plugin-sdk/approval-delivery-runtime` | Адаптери можливостей/доставки native confirmation |
| `plugin-sdk/approval-gateway-runtime` | Спільна допоміжна функція визначення approval gateway |
| `plugin-sdk/approval-handler-adapter-runtime` | Полегшені допоміжні функції завантаження native approval adapter для гарячих точок входу каналів |
| `plugin-sdk/approval-handler-runtime` | Ширші допоміжні функції runtime для approval handler; віддавайте перевагу вужчим adapter/gateway seams, якщо їх достатньо |
| `plugin-sdk/approval-native-runtime` | Допоміжні функції цілей native approval + прив’язки акаунтів |
| `plugin-sdk/approval-reply-runtime` | Допоміжні функції пейлоадів відповідей exec/plugin approval |
| `plugin-sdk/command-auth-native` | Допоміжні функції native command auth + native session-target |
| `plugin-sdk/command-detection` | Спільні допоміжні функції виявлення команд |
| `plugin-sdk/command-surface` | Допоміжні функції нормалізації тіла команди та command-surface |
| `plugin-sdk/allow-from` | `formatAllowFromLowercase` |
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні засоби збирання secret-contract для поверхонь secret channel/plugin |
| `plugin-sdk/secret-ref-runtime` | Вузькі допоміжні засоби `coerceSecretRef` і типізації SecretRef для розбору secret-contract/config |
| `plugin-sdk/security-runtime` | Спільні допоміжні засоби довіри, DM gating, зовнішнього контенту та збирання secret |
| `plugin-sdk/ssrf-policy` | Допоміжні засоби allowlist хостів і SSRF policy приватних мереж |
| `plugin-sdk/ssrf-runtime` | Допоміжні засоби pinned-dispatcher, fetch із SSRF-захистом і SSRF policy |
| `plugin-sdk/secret-input` | Допоміжні засоби розбору secret input |
| `plugin-sdk/webhook-ingress` | Допоміжні засоби webhook request/target |
| `plugin-sdk/webhook-request-guards` | Допоміжні засоби для розміру body request/timeout |
| `plugin-sdk/channel-secret-runtime` | Вузькі допоміжні функції збирання secret-контрактів для secret-surface каналів/плагінів |
| `plugin-sdk/secret-ref-runtime` | Вузькі допоміжні функції `coerceSecretRef` і типізації SecretRef для парсингу secret-контрактів/конфігурації |
| `plugin-sdk/security-runtime` | Спільні допоміжні функції довіри, DM-gating, зовнішнього вмісту та збирання секретів |
| `plugin-sdk/ssrf-policy` | Допоміжні функції політики SSRF для host allowlist і приватних мереж |
| `plugin-sdk/ssrf-runtime` | Допоміжні функції pinned-dispatcher, fetch із захистом SSRF і політики SSRF |
| `plugin-sdk/secret-input` | Допоміжні функції парсингу secret input |
| `plugin-sdk/webhook-ingress` | Допоміжні функції запитів/цілей webhook |
| `plugin-sdk/webhook-request-guards` | Допоміжні функції розміру тіла запиту/тайм-ауту |
</Accordion>
<Accordion title="Підшляхи runtime і сховища">
<Accordion title="Підшляхи runtime та сховища">
| Subpath | Ключові експорти |
| --- | --- |
| `plugin-sdk/runtime` | Широкі допоміжні засоби runtime/logging/backup/встановлення plugin |
| `plugin-sdk/runtime-env` | Вузькі допоміжні засоби env runtime, logger, timeout, retry і backoff |
| `plugin-sdk/channel-runtime-context` | Загальні допоміжні засоби реєстрації та пошуку runtime-context channel |
| `plugin-sdk/runtime` | Широкі допоміжні функції runtime/логування/резервного копіювання/встановлення плагінів |
| `plugin-sdk/runtime-env` | Вузькі допоміжні функції runtime env, logger, timeout, retry і backoff |
| `plugin-sdk/channel-runtime-context` | Узагальнені допоміжні функції реєстрації та пошуку channel runtime-context |
| `plugin-sdk/runtime-store` | `createPluginRuntimeStore` |
| `plugin-sdk/plugin-runtime` | Спільні допоміжні засоби для команд/hook/http/interactive plugin |
| `plugin-sdk/hook-runtime` | Спільні допоміжні засоби pipeline для webhook/internal hook |
| `plugin-sdk/lazy-runtime` | Допоміжні засоби lazy імпорту/binding runtime, такі як `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` |
| `plugin-sdk/process-runtime` | Допоміжні засоби exec процесів |
| `plugin-sdk/cli-runtime` | Допоміжні засоби форматування CLI, очікування та версій |
| `plugin-sdk/gateway-runtime` | Допоміжні засоби client gateway і patch статусу channel |
| `plugin-sdk/config-runtime` | Допоміжні засоби завантаження/запису конфігурації |
| `plugin-sdk/telegram-command-config` | Нормалізація name/description команд Telegram і перевірки дублікатів/конфліктів, навіть коли bundled Telegram contract surface недоступна |
| `plugin-sdk/approval-runtime` | Допоміжні засоби exec/plugin approval, побудовники approval-capability, допоміжні засоби auth/profile, native routing/runtime |
| `plugin-sdk/reply-runtime` | Спільні допоміжні засоби inbound/reply runtime, chunking, dispatch, heartbeat, планувальник reply |
| `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні засоби dispatch/finalize для reply |
| `plugin-sdk/reply-history` | Спільні допоміжні засоби short-window reply-history, такі як `buildHistoryContext`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` |
| `plugin-sdk/plugin-runtime` | Спільні допоміжні функції для команд/хуків/http/interactive плагінів |
| `plugin-sdk/hook-runtime` | Спільні допоміжні функції pipeline для webhook/internal hook |
| `plugin-sdk/lazy-runtime` | Допоміжні функції lazy-імпорту та прив’язки runtime, такі як `createLazyRuntimeModule`, `createLazyRuntimeMethod` і `createLazyRuntimeSurface` |
| `plugin-sdk/process-runtime` | Допоміжні функції виконання процесів |
| `plugin-sdk/cli-runtime` | Допоміжні функції форматування, очікування та версій для CLI |
| `plugin-sdk/gateway-runtime` | Допоміжні функції клієнта gateway і patch статусу каналу |
| `plugin-sdk/config-runtime` | Допоміжні функції завантаження/запису конфігурації |
| `plugin-sdk/telegram-command-config` | Допоміжні функції нормалізації назв/описів команд Telegram і перевірки дублікатів/конфліктів, навіть коли поверхня вбудованого контракту Telegram недоступна |
| `plugin-sdk/approval-runtime` | Допоміжні функції exec/plugin approval, побудовники approval-capability, допоміжні функції auth/profile, native routing/runtime |
| `plugin-sdk/reply-runtime` | Спільні допоміжні функції runtime для вхідних повідомлень/відповідей, chunking, dispatch, heartbeat, planner відповідей |
| `plugin-sdk/reply-dispatch-runtime` | Вузькі допоміжні функції dispatch/finalize відповіді |
| `plugin-sdk/reply-history` | Спільні допоміжні функції коротковіконної історії відповідей, такі як `buildHistoryContext`, `recordPendingHistoryEntry` і `clearHistoryEntriesIfEnabled` |
| `plugin-sdk/reply-reference` | `createReplyReferencePlanner` |
| `plugin-sdk/reply-chunking` | Вузькі допоміжні засоби chunking тексту/markdown |
| `plugin-sdk/session-store-runtime` | Допоміжні засоби path сховища сесій + updated-at |
| `plugin-sdk/state-paths` | Допоміжні засоби path для state/OAuth директорій |
| `plugin-sdk/routing` | Допоміжні засоби для route/session-key/account binding, такі як `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` |
| `plugin-sdk/status-helpers` | Спільні допоміжні засоби summary статусу channel/account, стандарти runtime-state і допоміжні засоби метаданих issues |
| `plugin-sdk/target-resolver-runtime` | Спільні допоміжні засоби resolver target |
| `plugin-sdk/string-normalization-runtime` | Допоміжні засоби нормалізації slug/string |
| `plugin-sdk/reply-chunking` | Вузькі допоміжні функції chunking для тексту/markdown |
| `plugin-sdk/session-store-runtime` | Допоміжні функції шляху сховища сесій + updated-at |
| `plugin-sdk/state-paths` | Допоміжні функції шляхів до каталогів state/OAuth |
| `plugin-sdk/routing` | Допоміжні функції маршруту/ключа сесії/прив’язки акаунта, такі як `resolveAgentRoute`, `buildAgentSessionKey` і `resolveDefaultAgentBoundAccountId` |
| `plugin-sdk/status-helpers` | Спільні допоміжні функції зведення статусу каналу/акаунта, значення runtime-state за замовчуванням і допоміжні функції метаданих проблем |
| `plugin-sdk/target-resolver-runtime` | Спільні допоміжні функції визначення цілей |
| `plugin-sdk/string-normalization-runtime` | Допоміжні функції нормалізації slug/рядків |
| `plugin-sdk/request-url` | Витягування рядкових URL із fetch/request-подібних вхідних даних |
| `plugin-sdk/run-command` | Запуск команд із таймером і нормалізованими результатами stdout/stderr |
| `plugin-sdk/param-readers` | Загальні рідери параметрів tool/CLI |
| `plugin-sdk/tool-send` | Витягування канонічних полів target надсилання з аргументів tool |
| `plugin-sdk/temp-path` | Спільні допоміжні засоби path тимчасових завантажень |
| `plugin-sdk/logging-core` | Допоміжні засоби logger підсистеми та редагування чутливих даних |
| `plugin-sdk/markdown-table-runtime` | Допоміжні засоби режиму markdown-таблиць |
| `plugin-sdk/json-store` | Невеликі допоміжні засоби читання/запису JSON state |
| `plugin-sdk/file-lock` | Допоміжні засоби повторно вхідних file-lock |
| `plugin-sdk/persistent-dedupe` | Допоміжні засоби disk-backed dedupe cache |
| `plugin-sdk/acp-runtime` | Допоміжні засоби ACP runtime/session і reply-dispatch |
| `plugin-sdk/agent-config-primitives` | Вузькі примітиви схеми конфігурації runtime agent |
| `plugin-sdk/boolean-param` | Рідер вільних boolean-параметрів |
| `plugin-sdk/dangerous-name-runtime` | Допоміжні засоби визначення відповідності небезпечних імен |
| `plugin-sdk/device-bootstrap` | Допоміжні засоби bootstrap пристрою та pairing token |
| `plugin-sdk/run-command` | Runner команд із таймуванням і нормалізованими результатами stdout/stderr |
| `plugin-sdk/param-readers` | Загальні читачі параметрів tool/CLI |
| `plugin-sdk/tool-send` | Витягування канонічних полів цілей надсилання з аргументів tool |
| `plugin-sdk/temp-path` | Спільні допоміжні функції шляхів до тимчасових завантажень |
| `plugin-sdk/logging-core` | Допоміжні функції subsystem logger і redaction |
| `plugin-sdk/markdown-table-runtime` | Допоміжні функції режиму таблиць Markdown |
| `plugin-sdk/json-store` | Невеликі допоміжні функції читання/запису стану JSON |
| `plugin-sdk/file-lock` | Допоміжні функції реентерабельного file-lock |
| `plugin-sdk/persistent-dedupe` | Допоміжні функції дискового кешу дедуплікації |
| `plugin-sdk/acp-runtime` | Допоміжні функції ACP runtime/session і reply-dispatch |
| `plugin-sdk/agent-config-primitives` | Вузькі примітиви схеми конфігурації runtime агента |
| `plugin-sdk/boolean-param` | Гнучкий читач булевих параметрів |
| `plugin-sdk/dangerous-name-runtime` | Допоміжні функції визначення збігів небезпечних назв |
| `plugin-sdk/device-bootstrap` | Допоміжні функції bootstrap пристрою та токенів pairing |
| `plugin-sdk/extension-shared` | Спільні примітиви для passive-channel, status і ambient proxy helper |
| `plugin-sdk/models-provider-runtime` | Допоміжні засоби відповіді `/models` command/provider |
| `plugin-sdk/skill-commands-runtime` | Допоміжні засоби для переліку Skills command |
| `plugin-sdk/native-command-registry` | Допоміжні засоби реєстру/build/serialize native команд |
| `plugin-sdk/provider-zai-endpoint` | Допоміжні засоби виявлення endpoint Z.AI |
| `plugin-sdk/infra-runtime` | Допоміжні засоби системних подій/heartbeat |
| `plugin-sdk/collection-runtime` | Невеликі допоміжні засоби bounded cache |
| `plugin-sdk/diagnostic-runtime` | Допоміжні засоби діагностичних прапорців і подій |
| `plugin-sdk/error-runtime` | Граф помилок, форматування, спільні допоміжні засоби класифікації помилок, `isApprovalNotFoundError` |
| `plugin-sdk/fetch-runtime` | Обгорнутий fetch, proxy і допоміжні засоби pinned lookup |
| `plugin-sdk/host-runtime` | Допоміжні засоби нормалізації hostname і SCP host |
| `plugin-sdk/retry-runtime` | Допоміжні засоби конфігурації retry і виконання retry |
| `plugin-sdk/agent-runtime` | Допоміжні засоби директорії/ідентичності/workspace agent |
| `plugin-sdk/directory-runtime` | Запит/усунення дублікатів директорій на основі конфігурації |
| `plugin-sdk/models-provider-runtime` | Допоміжні функції відповіді провайдера/команди `/models` |
| `plugin-sdk/skill-commands-runtime` | Допоміжні функції перелічення команд Skills |
| `plugin-sdk/native-command-registry` | Допоміжні функції реєстру/build/serialize native command |
| `plugin-sdk/provider-zai-endpoint` | Допоміжні функції виявлення endpoint Z.AI |
| `plugin-sdk/infra-runtime` | Допоміжні функції системних подій/heartbeat |
| `plugin-sdk/collection-runtime` | Невеликі допоміжні функції обмеженого кешу |
| `plugin-sdk/diagnostic-runtime` | Допоміжні функції діагностичних прапорців і подій |
| `plugin-sdk/error-runtime` | Допоміжні функції графа помилок, форматування, спільної класифікації помилок, `isApprovalNotFoundError` |
| `plugin-sdk/fetch-runtime` | Допоміжні функції обгорнутого fetch, proxy і pinned lookup |
| `plugin-sdk/host-runtime` | Допоміжні функції нормалізації hostname і SCP host |
| `plugin-sdk/retry-runtime` | Допоміжні функції конфігурації retry і виконання retry |
| `plugin-sdk/agent-runtime` | Допоміжні функції каталогу/ідентичності/workspace агента |
| `plugin-sdk/directory-runtime` | Запит/дедуплікація каталогів на основі конфігурації |
| `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` |
</Accordion>
<Accordion title="Підшляхи можливостей і тестування">
| Subpath | Ключові експорти |
| --- | --- |
| `plugin-sdk/media-runtime` | Спільні допоміжні засоби fetch/transform/store для медіа, а також побудовники media payload |
| `plugin-sdk/media-generation-runtime` | Спільні допоміжні засоби failover для генерації медіа, вибір кандидатів і повідомлення про відсутню модель |
| `plugin-sdk/media-understanding` | Типи provider для розуміння медіа, а також provider-oriented експорти допоміжних засобів для зображень/аудіо |
| `plugin-sdk/text-runtime` | Спільні допоміжні засоби тексту/markdown/logging, такі як видалення тексту, видимого помічнику, допоміжні засоби render/chunking/table для markdown, редагування чутливих даних, допоміжні засоби тегів директив і утиліти safe-text |
| `plugin-sdk/text-chunking` | Допоміжний засіб chunking вихідного тексту |
| `plugin-sdk/speech` | Типи speech provider, а також provider-oriented допоміжні засоби для директив, реєстру й валідації |
| `plugin-sdk/speech-core` | Спільні типи speech provider, а також допоміжні засоби реєстру, директив і нормалізації |
| `plugin-sdk/realtime-transcription` | Типи provider для realtime transcription і допоміжні засоби реєстру |
| `plugin-sdk/realtime-voice` | Типи provider для realtime voice і допоміжні засоби реєстру |
| `plugin-sdk/image-generation` | Типи provider для генерації зображень |
| `plugin-sdk/image-generation-core` | Спільні типи image-generation, а також допоміжні засоби failover, auth і реєстру |
| `plugin-sdk/music-generation` | Типи provider/request/result для генерації музики |
| `plugin-sdk/music-generation-core` | Спільні типи music-generation, допоміжні засоби failover, пошук provider і розбір model-ref |
| `plugin-sdk/video-generation` | Типи provider/request/result для генерації відео |
| `plugin-sdk/video-generation-core` | Спільні типи video-generation, допоміжні засоби failover, пошук provider і розбір model-ref |
| `plugin-sdk/webhook-targets` | Реєстр webhook target і допоміжні засоби встановлення route |
| `plugin-sdk/webhook-path` | Допоміжні засоби нормалізації webhook path |
| `plugin-sdk/web-media` | Спільні допоміжні засоби завантаження віддалених/локальних медіа |
| `plugin-sdk/media-runtime` | Спільні допоміжні функції fetch/transform/store для медіа, а також побудовники медіапейлоадів |
| `plugin-sdk/media-generation-runtime` | Спільні допоміжні функції failover для генерації медіа, вибору кандидатів і повідомлень про відсутні моделі |
| `plugin-sdk/media-understanding` | Типи провайдерів media understanding, а також provider-facing експорти допоміжних функцій для зображень/аудіо |
| `plugin-sdk/text-runtime` | Спільні допоміжні функції тексту/markdown/логування, такі як видалення видимого для асистента тексту, допоміжні функції render/chunking/table для markdown, redaction helpers, directive-tag helpers і safe-text utilities |
| `plugin-sdk/text-chunking` | Допоміжна функція chunking вихідного тексту |
| `plugin-sdk/speech` | Типи провайдерів мовлення, а також provider-facing допоміжні функції directive, registry і validation |
| `plugin-sdk/speech-core` | Спільні типи провайдерів мовлення, допоміжні функції registry, directive і normalization |
| `plugin-sdk/realtime-transcription` | Типи провайдерів realtime transcription і допоміжні функції registry |
| `plugin-sdk/realtime-voice` | Типи провайдерів realtime voice і допоміжні функції registry |
| `plugin-sdk/image-generation` | Типи провайдерів генерації зображень |
| `plugin-sdk/image-generation-core` | Спільні типи генерації зображень, допоміжні функції failover, auth і registry |
| `plugin-sdk/music-generation` | Типи провайдерів/запитів/результатів генерації музики |
| `plugin-sdk/music-generation-core` | Спільні типи генерації музики, допоміжні функції failover, пошуку провайдера і парсингу model-ref |
| `plugin-sdk/video-generation` | Типи провайдерів/запитів/результатів генерації відео |
| `plugin-sdk/video-generation-core` | Спільні типи генерації відео, допоміжні функції failover, пошуку провайдера і парсингу model-ref |
| `plugin-sdk/webhook-targets` | Допоміжні функції реєстру webhook targets і встановлення маршрутів |
| `plugin-sdk/webhook-path` | Допоміжні функції нормалізації шляху webhook |
| `plugin-sdk/web-media` | Спільні допоміжні функції завантаження віддалених/локальних медіа |
| `plugin-sdk/zod` | Повторний експорт `zod` для споживачів plugin SDK |
| `plugin-sdk/testing` | `installCommonResolveTargetErrorCases`, `shouldAckReaction` |
</Accordion>
<Accordion title="Підшляхи memory">
<Accordion title="Підшляхи пам’яті">
| Subpath | Ключові експорти |
| --- | --- |
| `plugin-sdk/memory-core` | Поверхня допоміжних засобів bundled memory-core для manager/config/file/CLI helper-ів |
| `plugin-sdk/memory-core-engine-runtime` | Runtime facade індексації/пошуку memory |
| `plugin-sdk/memory-core-host-engine-foundation` | Експорти foundation engine для host memory |
| `plugin-sdk/memory-core-host-engine-embeddings` | Експорти embedding engine для host memory |
| `plugin-sdk/memory-core-host-engine-qmd` | Експорти QMD engine для host memory |
| `plugin-sdk/memory-core-host-engine-storage` | Експорти storage engine для host memory |
| `plugin-sdk/memory-core-host-multimodal` | Мультимодальні допоміжні засоби для host memory |
| `plugin-sdk/memory-core-host-query` | Допоміжні засоби запитів для host memory |
| `plugin-sdk/memory-core-host-secret` | Допоміжні засоби secret для host memory |
| `plugin-sdk/memory-core-host-events` | Допоміжні засоби журналу подій для host memory |
| `plugin-sdk/memory-core-host-status` | Допоміжні засоби статусу для host memory |
| `plugin-sdk/memory-core-host-runtime-cli` | Допоміжні засоби runtime CLI для host memory |
| `plugin-sdk/memory-core-host-runtime-core` | Допоміжні засоби core runtime для host memory |
| `plugin-sdk/memory-core-host-runtime-files` | Допоміжні засоби file/runtime для host memory |
| `plugin-sdk/memory-host-core` | Vendor-neutral псевдонім для допоміжних засобів core runtime host memory |
| `plugin-sdk/memory-host-events` | Vendor-neutral псевдонім для допоміжних засобів журналу подій host memory |
| `plugin-sdk/memory-host-files` | Vendor-neutral псевдонім для допоміжних засобів file/runtime host memory |
| `plugin-sdk/memory-host-markdown` | Спільні допоміжні засоби managed-markdown для plugins, суміжних із memory |
| `plugin-sdk/memory-host-search` | Active memory runtime facade для доступу до search-manager |
| `plugin-sdk/memory-host-status` | Vendor-neutral псевдонім для допоміжних засобів статусу host memory |
| `plugin-sdk/memory-lancedb` | Поверхня допоміжних засобів bundled memory-lancedb |
| `plugin-sdk/memory-core` | Поверхня допоміжних функцій вбудованого memory-core для manager/config/file/CLI helpers |
| `plugin-sdk/memory-core-engine-runtime` | Фасад runtime для memory index/search |
| `plugin-sdk/memory-core-host-engine-foundation` | Експорти foundation engine для memory host |
| `plugin-sdk/memory-core-host-engine-embeddings` | Експорти embedding engine для memory host |
| `plugin-sdk/memory-core-host-engine-qmd` | Експорти QMD engine для memory host |
| `plugin-sdk/memory-core-host-engine-storage` | Експорти storage engine для memory host |
| `plugin-sdk/memory-core-host-multimodal` | Допоміжні функції multimodal для memory host |
| `plugin-sdk/memory-core-host-query` | Допоміжні функції query для memory host |
| `plugin-sdk/memory-core-host-secret` | Допоміжні функції secret для memory host |
| `plugin-sdk/memory-core-host-events` | Допоміжні функції журналу подій для memory host |
| `plugin-sdk/memory-core-host-status` | Допоміжні функції статусу для memory host |
| `plugin-sdk/memory-core-host-runtime-cli` | Допоміжні функції runtime CLI для memory host |
| `plugin-sdk/memory-core-host-runtime-core` | Допоміжні функції core runtime для memory host |
| `plugin-sdk/memory-core-host-runtime-files` | Допоміжні функції файлів/runtime для memory host |
| `plugin-sdk/memory-host-core` | Вендорно-нейтральний псевдонім для допоміжних функцій core runtime memory host |
| `plugin-sdk/memory-host-events` | Вендорно-нейтральний псевдонім для допоміжних функцій журналу подій memory host |
| `plugin-sdk/memory-host-files` | Вендорно-нейтральний псевдонім для допоміжних функцій файлів/runtime memory host |
| `plugin-sdk/memory-host-markdown` | Спільні допоміжні функції managed-markdown для плагінів, суміжних із пам’яттю |
| `plugin-sdk/memory-host-search` | Активний фасад runtime пам’яті для доступу до search-manager |
| `plugin-sdk/memory-host-status` | Вендорно-нейтральний псевдонім для допоміжних функцій статусу memory host |
| `plugin-sdk/memory-lancedb` | Поверхня допоміжних функцій вбудованого memory-lancedb |
</Accordion>
<Accordion title="Зарезервовані підшляхи bundled-helper">
| Family | Current subpaths | Intended use |
<Accordion title="Зарезервовані допоміжні підшляхи вбудованих компонентів">
| Family | Поточні підшляхи | Призначення |
| --- | --- | --- |
| Browser | `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support` | Допоміжні засоби підтримки bundled browser plugin (`browser-support` залишається barrel-файлом сумісності) |
| Matrix | `plugin-sdk/matrix`, `plugin-sdk/matrix-helper`, `plugin-sdk/matrix-runtime-heavy`, `plugin-sdk/matrix-runtime-shared`, `plugin-sdk/matrix-runtime-surface`, `plugin-sdk/matrix-surface`, `plugin-sdk/matrix-thread-bindings` | Поверхня допоміжних засобів/runtime bundled Matrix |
| Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Поверхня допоміжних засобів/runtime bundled LINE |
| IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Поверхня допоміжних засобів bundled IRC |
| Допоміжні засоби, специфічні для channel | `plugin-sdk/googlechat`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu-conversation`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`, `plugin-sdk/twitch` | Шви сумісності/допоміжні засоби bundled channel |
| Допоміжні засоби, специфічні для auth/plugin | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Шви допоміжних засобів bundled feature/plugin; `plugin-sdk/github-copilot-token` наразі експортує `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken` |
| Browser | `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support` | Допоміжні функції підтримки вбудованого browser plugin (`browser-support` залишається barrel-файлом сумісності) |
| Matrix | `plugin-sdk/matrix`, `plugin-sdk/matrix-helper`, `plugin-sdk/matrix-runtime-heavy`, `plugin-sdk/matrix-runtime-shared`, `plugin-sdk/matrix-runtime-surface`, `plugin-sdk/matrix-surface`, `plugin-sdk/matrix-thread-bindings` | Поверхня допоміжних функцій/runtime для вбудованого Matrix |
| Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Поверхня допоміжних функцій/runtime для вбудованого LINE |
| IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Поверхня допоміжних функцій для вбудованого IRC |
| Допоміжні функції, специфічні для каналів | `plugin-sdk/googlechat`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu-conversation`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`, `plugin-sdk/twitch` | Поверхні сумісності/допоміжних функцій для вбудованих каналів |
| Допоміжні функції, специфічні для auth/плагінів | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Допоміжні шари для вбудованих можливостей/плагінів; `plugin-sdk/github-copilot-token` наразі експортує `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` і `resolveCopilotApiToken` |
</Accordion>
</AccordionGroup>
## API реєстрації
Колбек `register(api)` отримує об’єкт `OpenClawPluginApi` із такими
Зворотний виклик `register(api)` отримує об’єкт `OpenClawPluginApi` з такими
методами:
### Реєстрація можливостей
| Method | Що реєструє |
| ------------------------------------------------ | ------------------------------- |
| `api.registerProvider(...)` | Текстовий inference (LLM) |
| `api.registerCliBackend(...)` | Локальний CLI backend inference |
| `api.registerChannel(...)` | Канал обміну повідомленнями |
| `api.registerSpeechProvider(...)` | Синтез text-to-speech / STT |
| `api.registerRealtimeTranscriptionProvider(...)` | Потокова transcription realtime |
| `api.registerRealtimeVoiceProvider(...)` | Дуплексні сеанси voice realtime |
| `api.registerMediaUnderstandingProvider(...)` | Аналіз зображень/аудіо/відео |
| `api.registerImageGenerationProvider(...)` | Генерація зображень |
| `api.registerMusicGenerationProvider(...)` | Генерація музики |
| `api.registerVideoGenerationProvider(...)` | Генерація відео |
| `api.registerWebFetchProvider(...)` | Provider web fetch / scrape |
| `api.registerWebSearchProvider(...)` | Web search |
| Method | Що реєструє |
| ------------------------------------------------ | ------------------------------ |
| `api.registerProvider(...)` | Текстовий inference (LLM) |
| `api.registerCliBackend(...)` | Локальний backend inference CLI |
| `api.registerChannel(...)` | Канал обміну повідомленнями |
| `api.registerSpeechProvider(...)` | Синтез text-to-speech / STT |
| `api.registerRealtimeTranscriptionProvider(...)` | Потокова realtime transcription |
| `api.registerRealtimeVoiceProvider(...)` | Двосторонні realtime voice sessions |
| `api.registerMediaUnderstandingProvider(...)` | Аналіз зображень/аудіо/відео |
| `api.registerImageGenerationProvider(...)` | Генерація зображень |
| `api.registerMusicGenerationProvider(...)` | Генерація музики |
| `api.registerVideoGenerationProvider(...)` | Генерація відео |
| `api.registerWebFetchProvider(...)` | Провайдер web fetch / scrape |
| `api.registerWebSearchProvider(...)` | Вебпошук |
### Інструменти та команди
### Інструменти й команди
| Method | Що реєструє |
| ------------------------------- | -------------------------------------------- |
| `api.registerTool(tool, opts?)` | Інструмент agent (обов’язковий або `{ optional: true }`) |
| `api.registerCommand(def)` | Користувацька команда (обходить LLM) |
| Method | Що реєструє |
| ------------------------------- | --------------------------------------------- |
| `api.registerTool(tool, opts?)` | Інструмент агента (обов’язковий або `{ optional: true }`) |
| `api.registerCommand(def)` | Користувацьку команду (оминає LLM) |
### Інфраструктура
| Method | Що реєструє |
| ---------------------------------------------- | ------------------------------------ |
| `api.registerHook(events, handler, opts?)` | Event hook |
| `api.registerHttpRoute(params)` | Gateway HTTP endpoint |
| `api.registerGatewayMethod(name, handler)` | Gateway RPC method |
| `api.registerCli(registrar, opts?)` | Підкоманда CLI |
| `api.registerService(service)` | Фонова служба |
| `api.registerInteractiveHandler(registration)` | Інтерактивний handler |
| `api.registerMemoryPromptSupplement(builder)` | Адитивний розділ prompt, суміжний із memory |
| `api.registerMemoryCorpusSupplement(adapter)` | Адитивний корпус пошуку/читання memory |
| Method | Що реєструє |
| ---------------------------------------------- | -------------------------------------- |
| `api.registerHook(events, handler, opts?)` | Хук подій |
| `api.registerHttpRoute(params)` | HTTP endpoint gateway |
| `api.registerGatewayMethod(name, handler)` | RPC-метод gateway |
| `api.registerCli(registrar, opts?)` | Підкоманду CLI |
| `api.registerService(service)` | Фоновий сервіс |
| `api.registerInteractiveHandler(registration)` | Інтерактивний handler |
| `api.registerMemoryPromptSupplement(builder)` | Додатковий розділ prompt, суміжний із пам’яттю |
| `api.registerMemoryCorpusSupplement(adapter)` | Додатковий корпус пошуку/читання пам’яті |
Зарезервовані простори імен core admin (`config.*`, `exec.approvals.*`, `wizard.*`,
`update.*`) завжди залишаються `operator.admin`, навіть якщо plugin намагається призначити
вужчу область gateway method. Для методів, що належать plugin,
віддавайте перевагу префіксам, специфічним для plugin.
Зарезервовані простори імен адміністратора ядра (`config.*`, `exec.approvals.*`,
`wizard.*`, `update.*`) завжди залишаються `operator.admin`, навіть якщо
плагін намагається призначити вужчу область видимості для методу gateway.
Для методів, що належать плагіну, надавайте перевагу префіксам, специфічним
для цього плагіна.
### Метадані реєстрації CLI
`api.registerCli(registrar, opts?)` приймає два типи метаданих верхнього рівня:
- `commands`: явні корені команд, якими володіє registrar
- `descriptors`: дескриптори команд на етапі парсингу, що використовуються для кореневої довідки CLI,
маршрутизації та лінивої реєстрації CLI plugin
- `descriptors`: дескриптори команд часу парсингу, що використовуються для
довідки кореневого CLI, маршрутизації та лінивої реєстрації CLI плагінів
Якщо ви хочете, щоб команда plugin залишалася ліниво завантажуваною у звичайному кореневому шляху CLI,
надайте `descriptors`, які охоплюють кожен корінь команди верхнього рівня, який відкриває цей
registrar.
Якщо ви хочете, щоб команда плагіна залишалася ліниво завантажуваною у
звичайному шляху кореневого CLI, надайте `descriptors`, які охоплюють кожен
корінь команди верхнього рівня, що експонується цим registrar.
```typescript
api.registerCli(
@ -368,7 +371,7 @@ api.registerCli(
descriptors: [
{
name: "matrix",
description: "Керуйте акаунтами Matrix, верифікацією, пристроями та станом профілю",
description: "Керування акаунтами Matrix, верифікацією, пристроями та станом профілю",
hasSubcommands: true,
},
],
@ -376,128 +379,131 @@ api.registerCli(
);
```
Використовуйте лише `commands`, коли вам не потрібна лінива реєстрація кореневого CLI.
Цей eager шлях сумісності залишається підтримуваним, але він не встановлює
placeholder-и на основі descriptors для лінивого завантаження під час парсингу.
Використовуйте лише `commands`, якщо вам не потрібна лінива реєстрація
кореневого CLI. Цей eager-шлях сумісності все ще підтримується, але він не
встановлює placeholder-елементи з підтримкою descriptor для лінивого
завантаження під час парсингу.
### Реєстрація backend CLI
### Реєстрація CLI backend
`api.registerCliBackend(...)` дає plugin змогу володіти стандартною конфігурацією для локального
backend AI CLI, такого як `codex-cli`.
`api.registerCliBackend(...)` дає змогу плагіну володіти конфігурацією за
замовчуванням для локального AI CLI backend, такого як `codex-cli`.
- `id` backend стає префіксом provider у model ref, наприклад `codex-cli/gpt-5`.
- `id` backend стає префіксом провайдера в model ref, таких як `codex-cli/gpt-5`.
- `config` backend використовує ту саму форму, що й `agents.defaults.cliBackends.<id>`.
- Конфігурація користувача все одно має пріоритет. OpenClaw об’єднує `agents.defaults.cliBackends.<id>` поверх
стандартів plugin перед запуском CLI.
- Використовуйте `normalizeConfig`, коли backend потребує переписування для сумісності після злиття
(наприклад, нормалізації старих форм прапорців).
значення плагіна за замовчуванням перед запуском CLI.
- Використовуйте `normalizeConfig`, коли backend потребує перезаписів сумісності після об’єднання
(наприклад, для нормалізації старих форм прапорців).
### Ексклюзивні слоти
| Method | Що реєструє |
| ------------------------------------------ | ------------------------------------ |
| `api.registerContextEngine(id, factory)` | Context engine (одночасно активний лише один) |
| `api.registerMemoryCapability(capability)` | Єдину можливість memory |
| `api.registerMemoryPromptSection(builder)` | Побудовник розділу prompt memory |
| `api.registerMemoryFlushPlan(resolver)` | Resolver плану flush memory |
| `api.registerMemoryRuntime(runtime)` | Adapter runtime memory |
| Method | Що реєструє |
| ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `api.registerContextEngine(id, factory)` | Механізм контексту (одночасно активний лише один). Зворотний виклик `assemble()` отримує `availableTools` і `citationsMode`, щоб механізм міг адаптувати додавання до prompt. |
| `api.registerMemoryCapability(capability)` | Уніфіковану можливість пам’яті |
| `api.registerMemoryPromptSection(builder)` | Побудовник розділу prompt для пам’яті |
| `api.registerMemoryFlushPlan(resolver)` | Визначник плану очищення пам’яті |
| `api.registerMemoryRuntime(runtime)` | Адаптер runtime пам’яті |
### Адаптери embedding для memory
### Адаптери вбудовування пам’яті
| Method | Що реєструє |
| ---------------------------------------------- | ----------------------------------------------- |
| `api.registerMemoryEmbeddingProvider(adapter)` | Adapter embedding для memory активного plugin |
| Method | Що реєструє |
| ---------------------------------------------- | ------------------------------------------------ |
| `api.registerMemoryEmbeddingProvider(adapter)` | Адаптер вбудовування пам’яті для активного плагіна |
- `registerMemoryCapability` — це рекомендований API ексклюзивного memory-plugin.
- `registerMemoryCapability` також може надавати `publicArtifacts.listArtifacts(...)`,
щоб companion plugins могли споживати експортовані memory artifacts через
`openclaw/plugin-sdk/memory-host-core` замість звернення до приватного
layout конкретного memory plugin.
- `registerMemoryCapability` — це рекомендований API ексклюзивного плагіна пам’яті.
- `registerMemoryCapability` також може експонувати `publicArtifacts.listArtifacts(...)`,
щоб допоміжні плагіни могли споживати експортовані артефакти пам’яті через
`openclaw/plugin-sdk/memory-host-core` замість доступу до приватного
макета конкретного плагіна пам’яті.
- `registerMemoryPromptSection`, `registerMemoryFlushPlan` і
`registerMemoryRuntime` — це legacy-сумісні API ексклюзивного memory-plugin.
- `registerMemoryEmbeddingProvider` дає активному memory plugin змогу зареєструвати один
або більше id adapter embedding (наприклад, `openai`, `gemini` або власний id,
визначений plugin).
`registerMemoryRuntime` — це застарілі, але сумісні API ексклюзивних
плагінів пам’яті.
- `registerMemoryEmbeddingProvider` дозволяє активному плагіну пам’яті
реєструвати один або кілька ID адаптерів вбудовування (наприклад `openai`,
`gemini` або власний ID, визначений плагіном).
- Конфігурація користувача, така як `agents.defaults.memorySearch.provider` і
`agents.defaults.memorySearch.fallback`, визначається відносно зареєстрованих id
цих adapter.
`agents.defaults.memorySearch.fallback`, визначається відносно цих
зареєстрованих ID адаптерів.
### Події та життєвий цикл
| Method | Що робить |
| -------------------------------------------- | ---------------------------- |
| `api.on(hookName, handler, opts?)` | Типізований lifecycle hook |
| `api.onConversationBindingResolved(handler)` | Колбек binding розмови |
| `api.on(hookName, handler, opts?)` | Типізований хук життєвого циклу |
| `api.onConversationBindingResolved(handler)` | Зворотний виклик прив’язки розмови |
### Семантика рішень hook
### Семантика рішень хуків
- `before_tool_call`: повернення `{ block: true }` є фінальним. Щойно будь-який handler встановлює це значення, handler-и з нижчим пріоритетом пропускаються.
- `before_tool_call`: повернення `{ block: false }` трактується як відсутність рішення (так само, як пропуск `block`), а не як перевизначення.
- `before_install`: повернення `{ block: true }` є фінальним. Щойно будь-який handler встановлює це значення, handler-и з нижчим пріоритетом пропускаються.
- `before_install`: повернення `{ block: false }` трактується як відсутність рішення (так само, як пропуск `block`), а не як перевизначення.
- `reply_dispatch`: повернення `{ handled: true, ... }` є фінальним. Щойно будь-який handler заявляє про диспетчеризацію, handler-и з нижчим пріоритетом і стандартний шлях диспетчеризації моделі пропускаються.
- `message_sending`: повернення `{ cancel: true }` є фінальним. Щойно будь-який handler встановлює це значення, handler-и з нижчим пріоритетом пропускаються.
- `message_sending`: повернення `{ cancel: false }` трактується як відсутність рішення (так само, як пропуск `cancel`), а не як перевизначення.
- `before_tool_call`: повернення `{ block: true }` є термінальним. Щойно будь-який handler встановлює його, handlers із нижчим пріоритетом пропускаються.
- `before_tool_call`: повернення `{ block: false }` вважається відсутністю рішення (так само, як пропуск `block`), а не перевизначенням.
- `before_install`: повернення `{ block: true }` є термінальним. Щойно будь-який handler встановлює його, handlers із нижчим пріоритетом пропускаються.
- `before_install`: повернення `{ block: false }` вважається відсутністю рішення (так само, як пропуск `block`), а не перевизначенням.
- `reply_dispatch`: повернення `{ handled: true, ... }` є термінальним. Щойно будь-який handler заявляє диспетчеризацію, handlers із нижчим пріоритетом і типовий шлях диспетчеризації моделі пропускаються.
- `message_sending`: повернення `{ cancel: true }` є термінальним. Щойно будь-який handler встановлює його, handlers із нижчим пріоритетом пропускаються.
- `message_sending`: повернення `{ cancel: false }` вважається відсутністю рішення (так само, як пропуск `cancel`), а не перевизначенням.
### Поля об’єкта API
| Field | Type | Опис |
| ------------------------ | ------------------------- | ------------------------------------------------------------------------------------------ |
| `api.id` | `string` | ID plugin |
| `api.name` | `string` | Назва для відображення |
| `api.version` | `string?` | Версія plugin (необов’язково) |
| `api.description` | `string?` | Опис plugin (необов’язково) |
| `api.source` | `string` | Шлях до джерела plugin |
| `api.rootDir` | `string?` | Коренева директорія plugin (необов’язково) |
| `api.config` | `OpenClawConfig` | Поточний snapshot конфігурації (активний snapshot runtime в пам’яті, коли доступний) |
| `api.pluginConfig` | `Record<string, unknown>` | Конфігурація plugin із `plugins.entries.<id>.config` |
| `api.runtime` | `PluginRuntime` | [Допоміжні засоби runtime](/uk/plugins/sdk-runtime) |
| `api.logger` | `PluginLogger` | Logger з областю видимості (`debug`, `info`, `warn`, `error`) |
| `api.registrationMode` | `PluginRegistrationMode` | Поточний режим завантаження; `"setup-runtime"` — це легковагове вікно запуску/налаштування до повного entry |
| `api.resolvePath(input)` | `(string) => string` | Визначення path відносно кореня plugin |
| Field | Type | Description |
| ------------------------ | ------------------------- | ------------------------------------------------------------------------------------------- |
| `api.id` | `string` | ID плагіна |
| `api.name` | `string` | Відображувана назва |
| `api.version` | `string?` | Версія плагіна (необов’язково) |
| `api.description` | `string?` | Опис плагіна (необов’язково) |
| `api.source` | `string` | Шлях до джерела плагіна |
| `api.rootDir` | `string?` | Кореневий каталог плагіна (необов’язково) |
| `api.config` | `OpenClawConfig` | Поточний знімок конфігурації (активний знімок runtime у пам’яті, якщо доступний) |
| `api.pluginConfig` | `Record<string, unknown>` | Специфічна для плагіна конфігурація з `plugins.entries.<id>.config` |
| `api.runtime` | `PluginRuntime` | [Допоміжні функції runtime](/uk/plugins/sdk-runtime) |
| `api.logger` | `PluginLogger` | Локалізований logger (`debug`, `info`, `warn`, `error`) |
| `api.registrationMode` | `PluginRegistrationMode` | Поточний режим завантаження; `"setup-runtime"` — це полегшене вікно запуску/налаштування до повного entry |
| `api.resolvePath(input)` | `(string) => string` | Визначити шлях відносно кореня плагіна |
## Угода щодо внутрішніх модулів
## Угода про внутрішні модулі
Усередині вашого plugin використовуйте локальні barrel-файли для внутрішніх імпортів:
Усередині вашого плагіна використовуйте локальні barrel-файли для внутрішніх імпортів:
```
my-plugin/
api.ts # Публічні експорти для зовнішніх споживачів
runtime-api.ts # Внутрішні експорти лише для runtime
index.ts # Entry point plugin
setup-entry.ts # Легковаговий entry лише для налаштування (необов’язково)
runtime-api.ts # Лише внутрішні runtime-експорти
index.ts # Точка входу плагіна
setup-entry.ts # Полегшена точка входу лише для налаштування (необов’язково)
```
<Warning>
Ніколи не імпортуйте власний plugin через `openclaw/plugin-sdk/<your-plugin>`
з production-коду. Спрямовуйте внутрішні імпорти через `./api.ts` або
Ніколи не імпортуйте власний плагін через `openclaw/plugin-sdk/<your-plugin>`
у production-коді. Спрямовуйте внутрішні імпорти через `./api.ts` або
`./runtime-api.ts`. Шлях SDK — це лише зовнішній контракт.
</Warning>
Facade-loaded публічні поверхні bundled plugin (`api.ts`, `runtime-api.ts`,
`index.ts`, `setup-entry.ts` та подібні публічні entry-файли) тепер віддають перевагу
активному snapshot конфігурації runtime, якщо OpenClaw уже запущено. Якщо snapshot runtime
ще не існує, вони повертаються до визначеного файлу конфігурації на диску.
Публічні поверхні вбудованих плагінів, що завантажуються через фасад (`api.ts`, `runtime-api.ts`,
`index.ts`, `setup-entry.ts` та подібні публічні entry-файли), тепер віддають перевагу
активному знімку конфігурації runtime, якщо OpenClaw уже запущено. Якщо
знімок runtime ще не існує, вони повертаються до визначеного файлу конфігурації на диску.
Provider plugins також можуть надавати вузький barrel локального контракту plugin, коли допоміжний засіб
навмисно є специфічним для provider і ще не належить до загального
підшляху SDK. Поточний bundled приклад: provider Anthropic зберігає свої
допоміжні засоби Claude stream у власному публічному шві `api.ts` / `contract-api.ts` замість
просування логіки Anthropic beta-header і `service_tier` до загального
контракту `plugin-sdk/*`.
Плагіни провайдерів також можуть експонувати вузький локальний barrel-контракт
плагіна, якщо допоміжна функція навмисно є специфічною для провайдера й поки що
не належить до узагальненого підшляху SDK. Поточний вбудований приклад:
провайдер Anthropic зберігає свої допоміжні функції потоків Claude у власному
публічному шарі `api.ts` / `contract-api.ts`, замість того щоб просувати логіку
Anthropic beta-header і `service_tier` в узагальнений контракт `plugin-sdk/*`.
Інші поточні bundled приклади:
Інші поточні вбудовані приклади:
- `@openclaw/openai-provider`: `api.ts` експортує побудовники provider,
допоміжні засоби стандартних моделей і побудовники realtime provider
- `@openclaw/openrouter-provider`: `api.ts` експортує побудовник provider, а також
допоміжні засоби онбордингу/конфігурації
- `@openclaw/openai-provider`: `api.ts` експортує побудовники провайдерів,
допоміжні функції моделей за замовчуванням і побудовники realtime-провайдерів
- `@openclaw/openrouter-provider`: `api.ts` експортує побудовник провайдера та
допоміжні функції онбордингу/конфігурації
<Warning>
Production-код extension також має уникати імпортів `openclaw/plugin-sdk/<other-plugin>`.
Якщо допоміжний засіб справді є спільним, перемістіть його до нейтрального підшляху SDK,
такого як `openclaw/plugin-sdk/speech`, `.../provider-model-shared` або іншої
поверхні, орієнтованої на можливості, замість жорсткого зв’язування двох plugins.
Production-код розширень також має уникати імпортів
`openclaw/plugin-sdk/<other-plugin>`. Якщо допоміжна функція справді є
спільною, перенесіть її до нейтрального підшляху SDK, такого як
`openclaw/plugin-sdk/speech`, `.../provider-model-shared` або іншої
поверхні, орієнтованої на можливості, замість зв’язування двох плагінів між собою.
</Warning>
## Пов’язане
@ -505,6 +511,6 @@ Provider plugins також можуть надавати вузький barrel
- [Entry Points](/uk/plugins/sdk-entrypoints) — параметри `definePluginEntry` і `defineChannelPluginEntry`
- [Runtime Helpers](/uk/plugins/sdk-runtime) — повний довідник простору імен `api.runtime`
- [Setup and Config](/uk/plugins/sdk-setup) — пакування, маніфести, схеми конфігурації
- [Testing](/uk/plugins/sdk-testing) — утиліти тестування та правила lint
- [Testing](/uk/plugins/sdk-testing) — тестові утиліти та правила lint
- [SDK Migration](/uk/plugins/sdk-migration) — міграція із застарілих поверхонь
- [Plugin Internals](/uk/plugins/architecture) — детальна архітектура та модель можливостей
- [Plugin Internals](/uk/plugins/architecture) — поглиблена архітектура та модель можливостей

View File

@ -1,14 +1,14 @@
---
read_when:
- Ви хочете використовувати моделі Google Gemini з OpenClaw
- Вам потрібен API-ключ або потік автентифікації OAuth
summary: Налаштування Google Gemini (API-ключ + OAuth, генерація зображень, розуміння медіа, вебпошук)
- Вам потрібен потік автентифікації API key або OAuth
summary: Налаштування Google Gemini (API key + OAuth, генерація зображень, розуміння медіа, вебпошук)
title: Google (Gemini)
x-i18n:
generated_at: "2026-04-07T09:37:43Z"
generated_at: "2026-04-08T06:28:55Z"
model: gpt-5.4
provider: openai
source_hash: e9e558f5ce35c853e0240350be9a1890460c5f7f7fd30b05813a656497dee516
source_hash: fad2ff68987301bd86145fa6e10de8c7b38d5bd5dbcd13db9c883f7f5b9a4e01
source_path: providers/google.md
workflow: 15
---
@ -26,7 +26,7 @@ Gemini Grounding.
## Швидкий старт
1. Установіть API-ключ:
1. Установіть API key:
```bash
openclaw onboard --auth-choice gemini-api-key
@ -55,13 +55,13 @@ openclaw onboard --non-interactive \
## OAuth (Gemini CLI)
Альтернативний провайдер `google-gemini-cli` використовує PKCE OAuth замість API-ключа.
Це неофіційна інтеграція; деякі користувачі повідомляють про обмеження
облікового запису. Використовуйте на власний ризик.
Альтернативний провайдер `google-gemini-cli` використовує PKCE OAuth замість API
key. Це неофіційна інтеграція; деякі користувачі повідомляють про обмеження
облікових записів. Використовуйте на власний ризик.
- Модель за замовчуванням: `google-gemini-cli/gemini-3-flash-preview`
- Аліас: `gemini-cli`
- Необхідна умова для встановлення: локальний Gemini CLI доступний як `gemini`
- Псевдонім: `gemini-cli`
- Обов’язкова умова для встановлення: локальний Gemini CLI, доступний як `gemini`
- Homebrew: `brew install gemini-cli`
- npm: `npm install -g @google/gemini-cli`
- Вхід:
@ -77,20 +77,21 @@ openclaw models auth login --provider google-gemini-cli --set-default
(Або варіанти `GEMINI_CLI_*`.)
Якщо запити Gemini CLI OAuth не вдаються після входу, установіть
`GOOGLE_CLOUD_PROJECT` або `GOOGLE_CLOUD_PROJECT_ID` на хості шлюзу й
Якщо OAuth-запити Gemini CLI не вдаються після входу, установіть
`GOOGLE_CLOUD_PROJECT` або `GOOGLE_CLOUD_PROJECT_ID` на хості gateway і
повторіть спробу.
Якщо вхід не вдається до запуску потоку в браузері, переконайтеся, що локальна команда `gemini`
установлена та доступна в `PATH`. OpenClaw підтримує як установлення через Homebrew,
так і глобальні встановлення через npm, включно з поширеними макетами Windows/npm.
Якщо вхід не вдається ще до запуску потоку в браузері, переконайтеся, що
локальну команду `gemini` встановлено й вона доступна в `PATH`. OpenClaw
підтримує як встановлення через Homebrew, так і глобальні встановлення npm,
зокрема поширені схеми Windows/npm.
Нотатки щодо використання JSON у Gemini CLI:
- Текст відповіді береться з поля CLI JSON `response`.
- Використання повертається до `stats`, якщо CLI залишає `usage` порожнім.
- `stats.cached` нормалізується в OpenClaw `cacheRead`.
- Якщо `stats.input` відсутній, OpenClaw виводить кількість вхідних токенів із
- Показники використання беруться з резервного поля `stats`, якщо CLI залишає `usage` порожнім.
- `stats.cached` нормалізується в `cacheRead` OpenClaw.
- Якщо `stats.input` відсутній, OpenClaw обчислює вхідні токени з
`stats.input_tokens - stats.cached`.
## Можливості
@ -104,19 +105,22 @@ openclaw models auth login --provider google-gemini-cli --set-default
| Транскрибування аудіо | Так |
| Розуміння відео | Так |
| Вебпошук (Grounding) | Так |
| Thinking/reasoning | Так (Gemini 3.1+) |
| Мислення/міркування | Так (Gemini 3.1+) |
| Моделі Gemma 4 | Так |
Моделі Gemma 4 (наприклад, `gemma-4-26b-a4b-it`) підтримують режим thinking. OpenClaw переписує `thinkingBudget` у підтримуваний Google `thinkingLevel` для Gemma 4. Установлення thinking в `off` зберігає його вимкненим замість зіставлення з `MINIMAL`.
## Пряме повторне використання кешу Gemini
Для прямих запусків Gemini API (`api: "google-generative-ai"`) OpenClaw тепер
передає налаштований дескриптор `cachedContent` у запити Gemini.
- Налаштовуйте параметри для моделі або глобальні параметри через
- Налаштовуйте параметри для моделі або глобально через
`cachedContent` або застарілий `cached_content`
- Якщо присутні обидва, пріоритет має `cachedContent`
- Приклад значення: `cachedContents/prebuilt-context`
- Використання при влучанні в кеш Gemini нормалізується в OpenClaw `cacheRead` із
висхідного `cachedContentTokenCount`
- Використання cache-hit у Gemini нормалізується в `cacheRead` OpenClaw з
вихідного `cachedContentTokenCount`
Приклад:
@ -146,11 +150,11 @@ openclaw models auth login --provider google-gemini-cli --set-default
- Режим редагування: увімкнено, до 5 вхідних зображень
- Керування геометрією: `size`, `aspectRatio` і `resolution`
Провайдер `google-gemini-cli`, що працює лише через OAuth, є окремою поверхнею
текстового виведення. Генерація зображень, розуміння медіа та Gemini Grounding залишаються на
ідентифікаторі провайдера `google`.
Провайдер `google-gemini-cli`, який працює лише через OAuth, є окремою
поверхнею для текстового inference. Генерація зображень, розуміння медіа та
Gemini Grounding залишаються на ідентифікаторі провайдера `google`.
Щоб використовувати Google як провайдер зображень за замовчуванням:
Щоб використовувати Google як провайдера зображень за замовчуванням:
```json5
{
@ -164,8 +168,8 @@ openclaw models auth login --provider google-gemini-cli --set-default
}
```
Див. [Генерація зображень](/uk/tools/image-generation), щоб дізнатися про спільні
параметри інструмента, вибір провайдера та поведінку перемикання при збої.
Перегляньте [Генерація зображень](/uk/tools/image-generation), щоб дізнатися про
спільні параметри інструмента, вибір провайдера та поведінку failover.
## Генерація відео
@ -173,11 +177,11 @@ openclaw models auth login --provider google-gemini-cli --set-default
інструмент `video_generate`.
- Модель відео за замовчуванням: `google/veo-3.1-fast-generate-preview`
- Режими: text-to-video, image-to-video та потоки з одним референсним відео
- Режими: text-to-video, image-to-video і потоки з посиланням на одне відео
- Підтримує `aspectRatio`, `resolution` і `audio`
- Поточне обмеження тривалості: **від 4 до 8 секунд**
Щоб використовувати Google як провайдер відео за замовчуванням:
Щоб використовувати Google як провайдера відео за замовчуванням:
```json5
{
@ -191,8 +195,8 @@ openclaw models auth login --provider google-gemini-cli --set-default
}
```
Див. [Генерація відео](/uk/tools/video-generation), щоб дізнатися про спільні
параметри інструмента, вибір провайдера та поведінку перемикання при збої.
Перегляньте [Генерація відео](/uk/tools/video-generation), щоб дізнатися про
спільні параметри інструмента, вибір провайдера та поведінку failover.
## Генерація музики
@ -203,10 +207,10 @@ openclaw models auth login --provider google-gemini-cli --set-default
- Також підтримує `google/lyria-3-pro-preview`
- Керування підказкою: `lyrics` і `instrumental`
- Формат виводу: `mp3` за замовчуванням, а також `wav` у `google/lyria-3-pro-preview`
- Референсні входи: до 10 зображень
- Запуски з підтримкою сесій від'єднуються через спільний потік завдань/статусу, включно з `action: "status"`
- Вхідні дані-посилання: до 10 зображень
- Запуски з підтримкою сесій відєднуються через спільний потік завдань/статусу, зокрема `action: "status"`
Щоб використовувати Google як музичний провайдер за замовчуванням:
Щоб використовувати Google як провайдера музики за замовчуванням:
```json5
{
@ -220,8 +224,8 @@ openclaw models auth login --provider google-gemini-cli --set-default
}
```
Див. [Генерація музики](/uk/tools/music-generation), щоб дізнатися про спільні
параметри інструмента, вибір провайдера та поведінку перемикання при збої.
Перегляньте [Генерація музики](/uk/tools/music-generation), щоб дізнатися про
спільні параметри інструмента, вибір провайдера та поведінку failover.
## Примітка щодо середовища

View File

@ -1,27 +1,27 @@
---
read_when:
- Ви хочете запускати OpenClaw із хмарними або локальними моделями через Ollama
- Вам потрібні вказівки щодо налаштування та конфігурації Ollama
- Вам потрібні вказівки з налаштування та конфігурації Ollama
summary: Запуск OpenClaw з Ollama (хмарні та локальні моделі)
title: Ollama
x-i18n:
generated_at: "2026-04-07T18:55:15Z"
generated_at: "2026-04-08T06:29:09Z"
model: gpt-5.4
provider: openai
source_hash: 222ec68f7d4bb29cc7796559ddef1d5059f5159e7a51e2baa3a271ddb3abb716
source_hash: d3295a7c879d3636a2ffdec05aea6e670e54a990ef52bd9b0cae253bc24aa3f7
source_path: providers/ollama.md
workflow: 15
---
# Ollama
Ollama — це локальне середовище виконання LLM, яке спрощує запуск моделей з відкритим кодом на вашому комп’ютері. OpenClaw інтегрується з нативним API Ollama (`/api/chat`), підтримує потокову передачу та виклик інструментів, а також може автоматично виявляти локальні моделі Ollama, якщо ви ввімкнете це за допомогою `OLLAMA_API_KEY` (або профілю автентифікації) і не визначите явний запис `models.providers.ollama`.
Ollama — це локальне середовище виконання LLM, яке полегшує запуск моделей з відкритим кодом на вашому комп’ютері. OpenClaw інтегрується з нативним API Ollama (`/api/chat`), підтримує потокове передавання та виклик інструментів, а також може автоматично виявляти локальні моделі Ollama, якщо ви вкажете `OLLAMA_API_KEY` (або профіль автентифікації) і не визначите явний запис `models.providers.ollama`.
<Warning>
**Користувачі віддаленої Ollama**: не використовуйте OpenAI-сумісну URL-адресу `/v1` (`http://host:11434/v1`) з OpenClaw. Це порушує виклик інструментів, і моделі можуть виводити необроблений JSON інструментів як звичайний текст. Натомість використовуйте нативну URL-адресу API Ollama: `baseUrl: "http://host:11434"` (без `/v1`).
**Користувачі віддаленої Ollama**: не використовуйте URL OpenAI-сумісного `/v1` (`http://host:11434/v1`) з OpenClaw. Це ламає виклик інструментів, і моделі можуть виводити сирий JSON інструментів як звичайний текст. Натомість використовуйте URL нативного API Ollama: `baseUrl: "http://host:11434"` (без `/v1`).
</Warning>
## Швидкий старт
## Швидкий початок
### Онбординг (рекомендовано)
@ -31,13 +31,13 @@ Ollama — це локальне середовище виконання LLM, я
openclaw onboard
```
Виберіть **Ollama** зі списку провайдерів. Онбординг:
Виберіть **Ollama** зі списку провайдерів. Під час онбордингу буде зроблено таке:
1. Запитає базову URL-адресу Ollama, за якою доступний ваш інстанс (типово `http://127.0.0.1:11434`).
2. Дозволить вибрати **Cloud + Local** (хмарні й локальні моделі) або **Local** (лише локальні моделі).
3. Відкриє потік входу через браузер, якщо ви виберете **Cloud + Local** і не ввійшли в ollama.com.
4. Виявить доступні моделі та запропонує типові значення.
5. Автоматично виконає завантаження вибраної моделі, якщо вона недоступна локально.
1. Запитано базовий URL Ollama, за яким можна звернутися до вашого екземпляра (типово `http://127.0.0.1:11434`).
2. Запропоновано вибрати **Cloud + Local** (хмарні та локальні моделі) або **Local** (лише локальні моделі).
3. Відкрито в браузері потік входу, якщо ви виберете **Cloud + Local** і не ввійшли в ollama.com.
4. Виявлено доступні моделі та запропоновано типові варіанти.
5. Автоматично завантажено вибрану модель, якщо вона недоступна локально.
Також підтримується неінтерактивний режим:
@ -47,7 +47,7 @@ openclaw onboard --non-interactive \
--accept-risk
```
За потреби вкажіть власну базову URL-адресу або модель:
За потреби можна вказати власний базовий URL або модель:
```bash
openclaw onboard --non-interactive \
@ -61,7 +61,7 @@ openclaw onboard --non-interactive \
1. Установіть Ollama: [https://ollama.com/download](https://ollama.com/download)
2. Завантажте локальну модель, якщо хочете локальний інференс:
2. Завантажте локальну модель, якщо хочете використовувати локальний інференс:
```bash
ollama pull gemma4
@ -71,7 +71,7 @@ ollama pull gpt-oss:20b
ollama pull llama3.3
```
3. Якщо вам також потрібні хмарні моделі, увійдіть:
3. Якщо ви також хочете використовувати хмарні моделі, увійдіть:
```bash
ollama signin
@ -84,25 +84,25 @@ openclaw onboard
```
- `Local`: лише локальні моделі
- `Cloud + Local`: локальні моделі плюс хмарні моделі
- `Cloud + Local`: локальні моделі та хмарні моделі
- Хмарні моделі, як-от `kimi-k2.5:cloud`, `minimax-m2.7:cloud` і `glm-5.1:cloud`, **не** потребують локального `ollama pull`
Наразі OpenClaw пропонує:
- локальне типове значення: `gemma4`
- хмарні типові значення: `kimi-k2.5:cloud`, `minimax-m2.7:cloud`, `glm-5.1:cloud`
- типовий локальний варіант: `gemma4`
- типові хмарні варіанти: `kimi-k2.5:cloud`, `minimax-m2.7:cloud`, `glm-5.1:cloud`
5. Якщо ви віддаєте перевагу ручному налаштуванню, увімкніть Ollama для OpenClaw напряму (підійде будь-яке значення; Ollama не потребує справжнього ключа):
```bash
# Set environment variable
# Встановіть змінну середовища
export OLLAMA_API_KEY="ollama-local"
# Or configure in your config file
# Або налаштуйте у вашому файлі конфігурації
openclaw config set models.providers.ollama.apiKey "ollama-local"
```
6. Перегляньте або змініть моделі:
6. Перегляньте або перемкніть моделі:
```bash
openclaw models list
@ -123,15 +123,16 @@ openclaw models set ollama/gemma4
## Виявлення моделей (неявний провайдер)
Коли ви задаєте `OLLAMA_API_KEY` (або профіль автентифікації) і **не** визначаєте `models.providers.ollama`, OpenClaw виявляє моделі з локального інстансу Ollama за адресою `http://127.0.0.1:11434`:
Коли ви задаєте `OLLAMA_API_KEY` (або профіль автентифікації) і **не** визначаєте `models.providers.ollama`, OpenClaw виявляє моделі з локального екземпляра Ollama за адресою `http://127.0.0.1:11434`:
- Виконує запити до `/api/tags`
- Використовує best-effort-запити до `/api/show`, щоб читати `contextWindow`, якщо він доступний
- Позначає `reasoning` за допомогою евристики назви моделі (`r1`, `reasoning`, `think`)
- Установлює `maxTokens` на типове максимальне обмеження токенів Ollama, яке використовує OpenClaw
- Установлює всі вартості в `0`
- Використовує best-effort запити до `/api/show`, щоб зчитати `contextWindow` і визначити можливості (зокрема vision), коли це доступно
- Моделі з можливістю `vision`, про яку повідомляє `/api/show`, позначаються як здатні працювати із зображеннями (`input: ["text", "image"]`), тож OpenClaw автоматично додає зображення до підказки для таких моделей
- Позначає `reasoning` за евристикою назви моделі (`r1`, `reasoning`, `think`)
- Встановлює `maxTokens` на типове максимальне обмеження токенів Ollama, яке використовує OpenClaw
- Встановлює всі вартості в `0`
Це дозволяє уникнути ручного додавання моделей і водночас зберігати каталог узгодженим із локальним інстансом Ollama.
Це дає змогу уникнути ручного додавання моделей, зберігаючи каталог узгодженим із локальним екземпляром Ollama.
Щоб побачити, які моделі доступні:
@ -148,7 +149,7 @@ ollama pull mistral
Нова модель буде автоматично виявлена та стане доступною для використання.
Якщо ви явно задасте `models.providers.ollama`, автоматичне виявлення буде пропущено, і вам доведеться визначати моделі вручну (див. нижче).
Якщо ви явно задаєте `models.providers.ollama`, автоматичне виявлення вимикається, і вам потрібно визначати моделі вручну (див. нижче).
## Конфігурація
@ -160,13 +161,13 @@ ollama pull mistral
export OLLAMA_API_KEY="ollama-local"
```
### Явне налаштування (ручне визначення моделей)
### Явне налаштування (ручні моделі)
Використовуйте явну конфігурацію, якщо:
- Ollama працює на іншому хості або порту.
- Ви хочете примусово задати конкретні вікна контексту або списки моделей.
- Ви хочете повністю вручну визначати моделі.
- Ви хочете примусово задати конкретні контекстні вікна або списки моделей.
- Ви хочете повністю ручні визначення моделей.
```json5
{
@ -195,9 +196,9 @@ export OLLAMA_API_KEY="ollama-local"
Якщо задано `OLLAMA_API_KEY`, ви можете не вказувати `apiKey` у записі провайдера, і OpenClaw підставить його для перевірок доступності.
### Власна базова URL-адреса (явна конфігурація)
### Власний базовий URL (явна конфігурація)
Якщо Ollama працює на іншому хості або порту (явна конфігурація вимикає автоматичне виявлення, тому моделі потрібно визначати вручну):
Якщо Ollama працює на іншому хості або порту (явна конфігурація вимикає автоматичне виявлення, тож визначте моделі вручну):
```json5
{
@ -205,8 +206,8 @@ export OLLAMA_API_KEY="ollama-local"
providers: {
ollama: {
apiKey: "ollama-local",
baseUrl: "http://ollama-host:11434", // Без /v1 - використовуйте нативну URL-адресу API Ollama
api: "ollama", // Задайте явно, щоб гарантувати нативну поведінку виклику інструментів
baseUrl: "http://ollama-host:11434", // Без /v1 - використовуйте URL нативного API Ollama
api: "ollama", // Вкажіть явно, щоб гарантувати нативну поведінку виклику інструментів
},
},
},
@ -214,7 +215,7 @@ export OLLAMA_API_KEY="ollama-local"
```
<Warning>
Не додавайте `/v1` до URL-адреси. Шлях `/v1` використовує OpenAI-сумісний режим, у якому виклик інструментів ненадійний. Використовуйте базову URL-адресу Ollama без суфікса шляху.
Не додавайте `/v1` до URL. Шлях `/v1` використовує OpenAI-сумісний режим, у якому виклик інструментів працює ненадійно. Використовуйте базовий URL Ollama без суфікса шляху.
</Warning>
### Вибір моделі
@ -236,9 +237,9 @@ export OLLAMA_API_KEY="ollama-local"
## Хмарні моделі
Хмарні моделі дають змогу використовувати розміщені в хмарі моделі (наприклад, `kimi-k2.5:cloud`, `minimax-m2.7:cloud`, `glm-5.1:cloud`) разом із вашими локальними моделями.
Хмарні моделі дають змогу запускати розміщені в хмарі моделі (наприклад, `kimi-k2.5:cloud`, `minimax-m2.7:cloud`, `glm-5.1:cloud`) разом із вашими локальними моделями.
Щоб використовувати хмарні моделі, виберіть режим **Cloud + Local** під час налаштування. Майстер перевіряє, чи ви ввійшли в систему, і за потреби відкриває потік входу через браузер. Якщо автентифікацію не вдається перевірити, майстер повертається до типових локальних моделей.
Щоб використовувати хмарні моделі, виберіть режим **Cloud + Local** під час налаштування. Майстер перевіряє, чи ви ввійшли, і за потреби відкриває в браузері потік входу. Якщо автентифікацію неможливо перевірити, майстер повертається до типових локальних моделей.
Ви також можете ввійти безпосередньо на [ollama.com/signin](https://ollama.com/signin).
@ -247,10 +248,11 @@ export OLLAMA_API_KEY="ollama-local"
OpenClaw також підтримує **Ollama Web Search** як вбудований провайдер `web_search`.
- Він використовує налаштований вами хост Ollama (`models.providers.ollama.baseUrl`, якщо задано, інакше `http://127.0.0.1:11434`).
- Він не потребує ключа.
- Для нього потрібно, щоб Ollama працювала і ви були авторизовані через `ollama signin`.
- Для нього не потрібен ключ.
- Потрібно, щоб Ollama була запущена і щоб ви ввійшли через `ollama signin`.
Виберіть **Ollama Web Search** під час `openclaw onboard` або `openclaw configure --section web`, або задайте:
Виберіть **Ollama Web Search** під час `openclaw onboard` або
`openclaw configure --section web`, або задайте:
```json5
{
@ -264,13 +266,13 @@ OpenClaw також підтримує **Ollama Web Search** як вбудова
}
```
Повні відомості про налаштування та поведінку див. у [Ollama Web Search](/uk/tools/ollama-search).
Повні відомості про налаштування та поведінку дивіться в [Ollama Web Search](/uk/tools/ollama-search).
## Додатково
### Моделі міркування
### Моделі з reasoning
OpenClaw типово вважає моделі з назвами на кшталт `deepseek-r1`, `reasoning` або `think` такими, що підтримують міркування:
OpenClaw за замовчуванням вважає моделі з назвами на кшталт `deepseek-r1`, `reasoning` або `think` здатними до reasoning:
```bash
ollama pull deepseek-r1:32b
@ -278,19 +280,19 @@ ollama pull deepseek-r1:32b
### Вартість моделей
Ollama є безкоштовною і працює локально, тому вартість усіх моделей встановлена на рівні $0.
Ollama є безкоштовною та працює локально, тому вартість усіх моделей встановлено в $0.
### Конфігурація потокової передачі
### Налаштування потокового передавання
Інтеграція OpenClaw з Ollama типово використовує **нативний API Ollama** (`/api/chat`), який повністю підтримує одночасно потокову передачу та виклик інструментів. Жодного спеціального налаштування не потрібно.
Інтеграція Ollama в OpenClaw типово використовує **нативний API Ollama** (`/api/chat`), який повністю підтримує одночасно потокове передавання та виклик інструментів. Додаткового налаштування не потрібно.
#### Застарілий OpenAI-сумісний режим
<Warning>
**Виклик інструментів у OpenAI-сумісному режимі ненадійний.** Використовуйте цей режим лише якщо вам потрібен формат OpenAI для проксі й ви не залежите від нативної поведінки виклику інструментів.
**Виклик інструментів в OpenAI-сумісному режимі працює ненадійно.** Використовуйте цей режим лише якщо вам потрібен формат OpenAI для проксі й ви не покладаєтеся на нативну поведінку виклику інструментів.
</Warning>
Якщо вам потрібно використовувати натомість OpenAI-сумісну кінцеву точку (наприклад, за проксі, який підтримує лише формат OpenAI), явно задайте `api: "openai-completions"`:
Якщо замість цього вам потрібно використовувати OpenAI-сумісну кінцеву точку (наприклад, за проксі, який підтримує лише формат OpenAI), явно задайте `api: "openai-completions"`:
```json5
{
@ -308,9 +310,9 @@ Ollama є безкоштовною і працює локально, тому в
}
```
Цей режим може не підтримувати одночасно потокову передачу й виклик інструментів. Може знадобитися вимкнути потокову передачу за допомогою `params: { streaming: false }` у конфігурації моделі.
У цьому режимі може не підтримуватися одночасне потокове передавання та виклик інструментів. Можливо, вам доведеться вимкнути потокове передавання за допомогою `params: { streaming: false }` у конфігурації моделі.
Коли з Ollama використовується `api: "openai-completions"`, OpenClaw типово додає `options.num_ctx`, щоб Ollama не переходила непомітно на вікно контексту 4096. Якщо ваш проксі або upstream відхиляє невідомі поля `options`, вимкніть цю поведінку:
Коли з Ollama використовується `api: "openai-completions"`, OpenClaw типово додає `options.num_ctx`, щоб Ollama не переходила мовчки до контекстного вікна 4096. Якщо ваш проксі або upstream відхиляє невідомі поля `options`, вимкніть цю поведінку:
```json5
{
@ -328,9 +330,9 @@ Ollama є безкоштовною і працює локально, тому в
}
```
### Вікна контексту
### Контекстні вікна
Для автоматично виявлених моделей OpenClaw використовує вікно контексту, яке повідомляє Ollama, якщо воно доступне; інакше використовується типове вікно контексту Ollama, яке застосовує OpenClaw. Ви можете перевизначити `contextWindow` і `maxTokens` у явній конфігурації провайдера.
Для автоматично виявлених моделей OpenClaw використовує контекстне вікно, про яке повідомляє Ollama, коли воно доступне; інакше використовується типове контекстне вікно Ollama, яке застосовує OpenClaw. Ви можете перевизначити `contextWindow` і `maxTokens` в явній конфігурації провайдера.
## Усунення несправностей
@ -342,7 +344,7 @@ Ollama є безкоштовною і працює локально, тому в
ollama serve
```
І що API доступний:
А також що API доступне:
```bash
curl http://localhost:11434/api/tags
@ -350,7 +352,7 @@ curl http://localhost:11434/api/tags
### Немає доступних моделей
Якщо вашої моделі немає у списку, виконайте одну з дій:
Якщо вашу модель не показано в списку, зробіть одне з такого:
- Завантажте модель локально, або
- Явно визначте модель у `models.providers.ollama`.
@ -358,7 +360,7 @@ curl http://localhost:11434/api/tags
Щоб додати моделі:
```bash
ollama list # Переглянути, що встановлено
ollama list # Подивіться, що встановлено
ollama pull gemma4
ollama pull gpt-oss:20b
ollama pull llama3.3 # Або іншу модель
@ -366,18 +368,18 @@ ollama pull llama3.3 # Або іншу модель
### У з’єднанні відмовлено
Переконайтеся, що Ollama працює на правильному порту:
Перевірте, що Ollama працює на правильному порту:
```bash
# Перевірити, чи запущена Ollama
# Перевірте, чи запущена Ollama
ps aux | grep ollama
# Або перезапустити Ollama
# Або перезапустіть Ollama
ollama serve
```
## Див. також
## Дивіться також
- [Провайдери моделей](/uk/concepts/model-providers) - Огляд усіх провайдерів
- [Вибір моделі](/uk/concepts/models) - Як вибирати моделі
- [Конфігурація](/uk/gateway/configuration) - Повний довідник з конфігурації
- [Конфігурація](/uk/gateway/configuration) - Повний довідник із конфігурації