chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-29 13:07:48 +00:00
parent 554ee57efa
commit 7fff5d0e6e

View File

@ -1,28 +1,28 @@
---
read_when:
- Потрібно викликати допоміжні функції ядра з Plugin (TTS, STT, генерація зображень, вебпошук, субагент, вузли)
- Вам потрібно викликати допоміжні функції ядра з Plugin (TTS, STT, генерація зображень, вебпошук, субагент, вузли)
- Ви хочете зрозуміти, що надає api.runtime
- Ви звертаєтеся до допоміжних засобів конфігурації, агента або медіа з коду Plugin
- Ви звертаєтеся до допоміжних функцій конфігурації, агента або медіа з коду Plugin
sidebarTitle: Runtime helpers
summary: api.runtime -- впроваджені допоміжні засоби середовища виконання, доступні для плагінів
summary: api.runtime -- інʼєктовані допоміжні засоби runtime, доступні для Plugin
title: Допоміжні засоби середовища виконання Plugin
x-i18n:
generated_at: "2026-04-28T11:20:50Z"
generated_at: "2026-04-29T13:06:22Z"
model: gpt-5.5
provider: openai
source_hash: d332e9ab4a163a55b7edaefc420d845cfda8486646e13a758ec3133097c17be1
source_hash: 399e2433e272fe30e7451690a64826df8e30a064269b8d9a7aa2dd2b0c5688b8
source_path: plugins/sdk-runtime.md
workflow: 16
---
Довідник для об’єкта `api.runtime`, який вводиться в кожен плагін під час реєстрації. Використовуйте ці допоміжні функції замість прямого імпорту внутрішніх модулів хоста.
Довідник для об’єкта `api.runtime`, який впроваджується в кожен Plugin під час реєстрації. Використовуйте ці допоміжні функції замість прямого імпорту внутрішніх компонентів хоста.
<CardGroup cols={2}>
<Card title="Плагіни каналів" href="/uk/plugins/sdk-channel-plugins">
Покроковий посібник, який використовує ці допоміжні функції в контексті плагінів каналів.
<Card title="Channel plugins" href="/uk/plugins/sdk-channel-plugins">
Покроковий посібник, що показує використання цих допоміжних функцій у контексті Plugin для каналів.
</Card>
<Card title="Плагіни провайдерів" href="/uk/plugins/sdk-provider-plugins">
Покроковий посібник, який використовує ці допоміжні функції в контексті плагінів провайдерів.
<Card title="Provider plugins" href="/uk/plugins/sdk-provider-plugins">
Покроковий посібник, що показує використання цих допоміжних функцій у контексті Plugin для провайдерів.
</Card>
</CardGroup>
@ -34,38 +34,38 @@ register(api) {
## Завантаження й запис конфігурації
Надавайте перевагу конфігурації, яку вже передано в активний шлях виклику, наприклад `api.config` під час реєстрації або аргумент `cfg` у callback-ах каналу чи провайдера. Це дає змогу проводити один знімок процесу крізь роботу замість повторного розбору конфігурації на гарячих шляхах.
Надавайте перевагу конфігурації, яку вже передано в активний шлях виклику, наприклад `api.config` під час реєстрації або аргумент `cfg` у callback-функціях каналу/провайдера. Це забезпечує передавання одного знімка процесу через виконання роботи замість повторного розбору конфігурації на гарячих шляхах.
Використовуйте `api.runtime.config.current()` лише тоді, коли довгоживучому обробнику потрібен поточний знімок процесу, а конфігурацію не було передано цій функції. Повернене значення доступне лише для читання; перед редагуванням клонуйте його або використайте допоміжну функцію мутації.
Використовуйте `api.runtime.config.current()` лише тоді, коли довготривалому обробнику потрібен поточний знімок процесу, а конфігурацію не було передано в цю функцію. Повернене значення доступне лише для читання; перед редагуванням створіть копію або використайте допоміжну функцію мутації.
Фабрики інструментів отримують `ctx.runtimeConfig` плюс `ctx.getRuntimeConfig()`. Використовуйте getter у callback-у `execute` довгоживучого інструмента, коли конфігурація може змінитися після створення визначення інструмента.
Фабрики інструментів отримують `ctx.runtimeConfig` разом із `ctx.getRuntimeConfig()`. Використовуйте getter у callback-функції `execute` довготривалого інструмента, коли конфігурація може змінитися після створення визначення інструмента.
Зберігайте зміни за допомогою `api.runtime.config.mutateConfigFile(...)` або `api.runtime.config.replaceConfigFile(...)`. Кожен запис має вибрати явну політику `afterWrite`:
Зберігайте зміни за допомогою `api.runtime.config.mutateConfigFile(...)` або `api.runtime.config.replaceConfigFile(...)`. Кожен запис має вибирати явну політику `afterWrite`:
- `afterWrite: { mode: "auto" }` дає планувальнику перезавантаження Gateway змогу вирішити.
- `afterWrite: { mode: "auto" }` дозволяє планувальнику перезавантаження Gateway ухвалити рішення.
- `afterWrite: { mode: "restart", reason: "..." }` примусово виконує чистий перезапуск, коли автор запису знає, що гаряче перезавантаження небезпечне.
- `afterWrite: { mode: "none", reason: "..." }` пригнічує автоматичне перезавантаження або перезапуск лише тоді, коли викликач сам відповідає за подальшу дію.
- `afterWrite: { mode: "none", reason: "..." }` пригнічує автоматичне перезавантаження/перезапуск лише тоді, коли викликач відповідає за подальші дії.
Допоміжні функції мутації повертають `afterWrite` плюс типізований підсумок `followUp`, щоб викликачі могли логувати або тестувати, чи вони запросили перезапуск. Gateway усе ще відповідає за те, коли цей перезапуск фактично відбудеться.
Допоміжні функції мутації повертають `afterWrite` разом із типізованим підсумком `followUp`, щоб викликачі могли логувати або тестувати, чи запитали вони перезапуск. Gateway і далі відповідає за те, коли цей перезапуск фактично відбудеться.
`api.runtime.config.loadConfig()` і `api.runtime.config.writeConfigFile(...)` є застарілими допоміжними функціями сумісності під `runtime-config-load-write`. Вони попереджають один раз під час виконання й залишаються доступними для старих зовнішніх плагінів протягом міграційного вікна. Вбудовані плагіни не повинні їх використовувати; охоронні перевірки межі конфігурації падають, якщо код плагіна викликає їх або імпортує ці допоміжні функції з підшляхів SDK плагінів.
`api.runtime.config.loadConfig()` і `api.runtime.config.writeConfigFile(...)` — застарілі допоміжні функції сумісності під `runtime-config-load-write`. Вони один раз попереджають під час виконання й залишаються доступними для старих зовнішніх Plugin протягом міграційного вікна. Вбудовані Plugin не повинні їх використовувати; захисні перевірки межі конфігурації завершаться помилкою, якщо код Plugin викликає їх або імпортує ці допоміжні функції з підшляхів Plugin SDK.
Для прямих імпортів SDK використовуйте спеціалізовані підшляхи конфігурації замість широкого агрегувального модуля сумісності
Для прямих імпортів SDK використовуйте сфокусовані підшляхи конфігурації замість широкого сумісного barrel
`openclaw/plugin-sdk/config-runtime`: `config-types` для
типів, `plugin-config-runtime` для перевірок уже завантаженої конфігурації та пошуку
запису плагіна, `runtime-config-snapshot` для поточних знімків процесу та
`config-mutation` для записів. Тести вбудованих плагінів мають напряму мокати ці спеціалізовані
підшляхи замість мокання широкого агрегувального модуля сумісності.
точки входу Plugin, `runtime-config-snapshot` для поточних знімків процесу, а
`config-mutation` для записів. Тести вбудованих Plugin мають напряму mock-ати ці сфокусовані
підшляхи замість mock широкого сумісного barrel.
Внутрішній код середовища виконання OpenClaw має той самий напрям: завантажити конфігурацію один раз на межі CLI, Gateway або процесу, а потім передавати це значення далі. Успішні записи мутацій оновлюють знімок середовища виконання процесу й просувають його внутрішню ревізію; довгоживучі кеші мають прив’язуватися до ключа кешу, яким володіє середовище виконання, замість локальної серіалізації конфігурації. Довгоживучі модулі середовища виконання мають сканер із нульовою терпимістю до неявних викликів `loadConfig()`; використовуйте переданий `cfg`, запит `context.getRuntimeConfig()` або `getRuntimeConfig()` на явній межі процесу.
Внутрішній runtime-код OpenClaw дотримується того самого напряму: завантажити конфігурацію один раз на межі CLI, Gateway або процесу, а потім передавати це значення далі. Успішні мутаційні записи оновлюють runtime-знімок процесу й збільшують його внутрішню ревізію; довготривалі кеші мають прив’язуватися до ключа кешу, яким володіє runtime, замість локальної серіалізації конфігурації. Довготривалі runtime-модулі мають сканер із нульовою терпимістю до неявних викликів `loadConfig()`; використовуйте переданий `cfg`, запитовий `context.getRuntimeConfig()` або `getRuntimeConfig()` на явній межі процесу.
Шляхи виконання провайдерів і каналів мають використовувати активний знімок конфігурації середовища виконання, а не файловий знімок, повернений для читання чи редагування конфігурації. Файлові знімки зберігають вихідні значення, як-от маркери SecretRef, для UI та записів; callback-и провайдерів потребують вирішеного runtime-представлення. Коли допоміжну функцію можна викликати або з активним вихідним знімком, або з активним runtime-знімком, перед читанням облікових даних пропустіть його через `selectApplicableRuntimeConfig()`.
Шляхи виконання провайдерів і каналів мають використовувати активний знімок runtime-конфігурації, а не файловий знімок, повернений для читання або редагування конфігурації. Файлові знімки зберігають початкові значення, як-от маркери SecretRef, для UI та записів; callback-функціям провайдерів потрібне вирішене runtime-представлення. Коли допоміжну функцію можна викликати або з активним початковим знімком, або з активним runtime-знімком, перед читанням облікових даних пропускайте його через `selectApplicableRuntimeConfig()`.
## Простори імен середовища виконання
## Простори імен runtime
<AccordionGroup>
<Accordion title="api.runtime.agent">
Ідентичність агента, каталоги та керування сесіями.
Ідентичність агента, каталоги та керування сеансами.
```typescript
// Resolve the agent's working directory
@ -109,15 +109,15 @@ register(api) {
});
```
`runEmbeddedAgent(...)` є нейтральною допоміжною функцією для запуску звичайного ходу агента OpenClaw з коду плагіна. Вона використовує те саме вирішення провайдера/моделі та вибір agent-harness, що й відповіді, ініційовані каналом.
`runEmbeddedAgent(...)` — нейтральна допоміжна функція для запуску звичайного ходу агента OpenClaw з коду Plugin. Вона використовує те саме вирішення провайдера/моделі та вибір agent-harness, що й відповіді, ініційовані каналом.
`runEmbeddedPiAgent(...)` залишається псевдонімом сумісності.
`runEmbeddedPiAgent(...)` залишається сумісним псевдонімом.
`resolveThinkingPolicy(...)` повертає підтримувані провайдером/моделлю рівні мислення й необов’язкове значення за замовчуванням. Плагіни провайдерів володіють профілем, специфічним для моделі, через свої thinking-хуки, тому плагіни інструментів мають викликати цю допоміжну функцію середовища виконання замість імпорту або дублювання списків провайдерів.
`resolveThinkingPolicy(...)` повертає підтримувані провайдером/моделлю рівні thinking і необов’язкове значення за замовчуванням. Plugin провайдерів володіють профілем для конкретної моделі через свої thinking hooks, тому Plugin інструментів мають викликати цю runtime-допоміжну функцію замість імпорту або дублювання списків провайдерів.
`normalizeThinkingLevel(...)` перетворює текст користувача, як-от `on`, `x-high` або `extra high`, на канонічний збережений рівень перед перевіркою його проти вирішеної політики.
`normalizeThinkingLevel(...)` перетворює користувацький текст, як-от `on`, `x-high` або `extra high`, на канонічний збережений рівень перед перевіркою щодо вирішеної політики.
**Допоміжні функції сховища сесій** містяться в `api.runtime.agent.session`:
**Допоміжні функції сховища сеансів** розташовані в `api.runtime.agent.session`:
```typescript
const storePath = api.runtime.agent.session.resolveStorePath(cfg);
@ -137,7 +137,7 @@ register(api) {
</Accordion>
<Accordion title="api.runtime.subagent">
Запускайте та керуйте фоновими запусками субагентів.
Запуск і керування фоновими виконаннями subagent.
```typescript
// Start a subagent run
@ -165,14 +165,14 @@ register(api) {
```
<Warning>
Перевизначення моделі (`provider`/`model`) потребують явного дозволу оператора через `plugins.entries.<id>.subagent.allowModelOverride: true` у конфігурації. Недовірені плагіни все одно можуть запускати субагентів, але запити на перевизначення відхиляються.
Перевизначення моделі (`provider`/`model`) потребують явної згоди оператора через `plugins.entries.<id>.subagent.allowModelOverride: true` у конфігурації. Недовірені Plugin усе ще можуть запускати subagent, але запити на перевизначення відхиляються.
</Warning>
`deleteSession(...)` може видаляти сесії, створені тим самим плагіном через `api.runtime.subagent.run(...)`. Видалення довільних користувацьких або операторських сесій усе ще потребує запиту Gateway з адміністративною областю дії.
`deleteSession(...)` може видаляти сеанси, створені тим самим Plugin через `api.runtime.subagent.run(...)`. Видалення довільних сеансів користувача або оператора все ще потребує Gateway-запиту з областю адміністратора.
</Accordion>
<Accordion title="api.runtime.nodes">
Виводьте список підключених вузлів і викликайте команду вузла-хоста з коду плагіна, завантаженого Gateway, або з CLI-команд плагіна. Використовуйте це, коли плагін володіє локальною роботою на спареному пристрої, наприклад браузером або аудіомостом на іншому Mac.
Перелічує підключені вузли та викликає команду, розміщену на вузлі, з коду Plugin, завантаженого Gateway, або з CLI-команд Plugin. Використовуйте це, коли Plugin володіє локальною роботою на спареному пристрої, наприклад браузером або аудіомостом на іншому Mac.
```typescript
const { nodes } = await api.runtime.nodes.list({ connected: true });
@ -185,11 +185,11 @@ register(api) {
});
```
Усередині Gateway це середовище виконання працює в процесі. У CLI-командах плагіна воно викликає налаштований Gateway через RPC, тому команди на кшталт `openclaw googlemeet recover-tab` можуть перевіряти спарені вузли з термінала. Команди Node й далі проходять через звичайне спарювання вузлів Gateway, списки дозволених команд і локальну обробку команд на вузлі.
Усередині Gateway цей runtime працює в межах процесу. У CLI-командах Plugin він викликає налаштований Gateway через RPC, тож команди на кшталт `openclaw googlemeet recover-tab` можуть перевіряти спарені вузли з термінала. Команди вузлів усе ще проходять звичайне спарювання вузлів Gateway, allowlist команд і локальну обробку команд на вузлі.
</Accordion>
<Accordion title="api.runtime.tasks.managedFlows">
Прив’яжіть середовище виконання TaskFlow до наявного ключа сесії OpenClaw або довіреного контексту інструмента, а потім створюйте й керуйте TaskFlow без передавання власника в кожному виклику.
Прив’язує runtime TaskFlow до наявного ключа сеансу OpenClaw або довіреного контексту інструмента, а потім створює TaskFlow і керує ними без передавання власника під час кожного виклику.
```typescript
const taskFlow = api.runtime.tasks.managedFlows.fromToolContext(ctx);
@ -216,7 +216,7 @@ register(api) {
});
```
Використовуйте `bindSession({ sessionKey, requesterOrigin })`, коли у вас уже є довірений ключ сесії OpenClaw з вашого власного шару прив’язки. Не прив’язуйте з необробленого користувацького введення.
Використовуйте `bindSession({ sessionKey, requesterOrigin })`, коли вже маєте довірений ключ сеансу OpenClaw із власного шару прив’язки. Не виконуйте прив’язку з необроблених користувацьких даних.
</Accordion>
<Accordion title="api.runtime.tts">
@ -246,7 +246,7 @@ register(api) {
</Accordion>
<Accordion title="api.runtime.mediaUnderstanding">
Аналіз зображень, аудіо й відео.
Аналіз зображень, аудіо та відео.
```typescript
// Describe an image
@ -276,15 +276,15 @@ register(api) {
});
```
Повертає `{ text: undefined }`, коли вивід не створено (наприклад, пропущені вхідні дані).
Повертає `{ text: undefined }`, коли вихідні дані не створено (наприклад, вхід пропущено).
<Info>
`api.runtime.stt.transcribeAudioFile(...)` залишається сумісним псевдонімом для `api.runtime.mediaUnderstanding.transcribeAudioFile(...)`.
`api.runtime.stt.transcribeAudioFile(...)` лишається сумісним псевдонімом для `api.runtime.mediaUnderstanding.transcribeAudioFile(...)`.
</Info>
</Accordion>
<Accordion title="api.runtime.imageGeneration">
Генерування зображень.
Генерація зображень.
```typescript
const result = await api.runtime.imageGeneration.generate({
@ -310,7 +310,7 @@ register(api) {
</Accordion>
<Accordion title="api.runtime.media">
Низькорівневі медіаутиліти.
Низькорівневі утиліти для медіа.
```typescript
const webMedia = await api.runtime.media.loadWebMedia(url);
@ -351,8 +351,8 @@ register(api) {
`mutateConfigFile(...)` і `replaceConfigFile(...)` повертають значення `followUp`,
наприклад `{ mode: "restart", requiresRestart: true, reason }`,
яке фіксує намір автора запису, не забираючи керування перезапуском у
Gateway.
яке фіксує намір записувача, не забираючи контроль перезапуску в
gateway.
</Accordion>
<Accordion title="api.runtime.system">
@ -389,7 +389,7 @@ register(api) {
</Accordion>
<Accordion title="api.runtime.modelAuth">
Розв’язання автентифікації моделей і провайдерів.
Розв’язання автентифікації моделі та провайдера.
```typescript
const auth = await api.runtime.modelAuth.getApiKeyForModel({ model, cfg });
@ -401,12 +401,28 @@ register(api) {
</Accordion>
<Accordion title="api.runtime.state">
Розв’язання каталогу стану.
Розв’язання каталогу стану та сховище ключів на базі SQLite.
```typescript
const stateDir = api.runtime.state.resolveStateDir();
const stateDir = api.runtime.state.resolveStateDir(process.env);
const store = api.runtime.state.openKeyedStore<MyRecord>({
namespace: "my-feature",
maxEntries: 200,
defaultTtlMs: 15 * 60_000,
});
await store.register("key-1", { value: "hello" });
const value = await store.lookup("key-1");
await store.consume("key-1");
await store.clear();
```
Сховища ключів переживають перезапуски та ізольовані ідентифікатором Plugin, прив’язаним до середовища виконання. Обмеження: `maxEntries` на простір імен, 1 000 активних рядків на Plugin, JSON-значення до 64 КБ і необов’язкове завершення строку дії TTL.
<Warning>
Лише вбудовані plugins у цьому випуску.
</Warning>
</Accordion>
<Accordion title="api.runtime.tools">
Фабрики інструментів пам’яті та CLI.
@ -419,9 +435,9 @@ register(api) {
</Accordion>
<Accordion title="api.runtime.channel">
Допоміжні засоби середовища виконання, специфічні для каналу (доступні, коли завантажено plugin каналу).
Допоміжні засоби середовища виконання, специфічні для каналу (доступні, коли завантажено Plugin каналу).
`api.runtime.channel.mentions` — це спільна поверхня політики вхідних згадок для вбудованих plugin каналів, які використовують ін’єкцію середовища виконання:
`api.runtime.channel.mentions` — це спільна поверхня політики вхідних згадок для вбудованих plugins каналів, які використовують ін’єкцію середовища виконання:
```typescript
const mentionMatch = api.runtime.channel.mentions.matchesMentionWithExplicit(text, {
@ -448,7 +464,7 @@ register(api) {
});
```
Доступні допоміжні засоби згадок:
Доступні допоміжні засоби для згадок:
- `buildMentionRegexes`
- `matchesMentionPatterns`
@ -456,14 +472,14 @@ register(api) {
- `implicitMentionKindWhen`
- `resolveInboundMentionDecision`
`api.runtime.channel.mentions` навмисно не надає старіші сумісні допоміжні засоби `resolveMentionGating*`. Надавайте перевагу нормалізованому шляху `{ facts, policy }`.
`api.runtime.channel.mentions` навмисно не відкриває старі допоміжні засоби сумісності `resolveMentionGating*`. Надавайте перевагу нормалізованому шляху `{ facts, policy }`.
</Accordion>
</AccordionGroup>
## Зберігання посилань на середовище виконання
Використовуйте `createPluginRuntimeStore`, щоб зберігати посилання на середовище виконання для використання поза зворотним викликом `register`:
Використовуйте `createPluginRuntimeStore`, щоб зберегти посилання на середовище виконання для використання поза зворотним викликом `register`:
<Steps>
<Step title="Створіть сховище">
@ -504,7 +520,7 @@ register(api) {
</Steps>
<Note>
Надавайте перевагу `pluginId` для ідентичності runtime-store. Нижчорівнева форма `key` призначена для рідкісних випадків, коли одному plugin навмисно потрібно більше ніж один слот середовища виконання.
Надавайте перевагу `pluginId` для ідентичності runtime-store. Нижчорівнева форма `key` призначена для рідкісних випадків, коли одному Plugin навмисно потрібно більше ніж один слот середовища виконання.
</Note>
## Інші поля верхнього рівня `api`
@ -512,29 +528,29 @@ register(api) {
Окрім `api.runtime`, об’єкт API також надає:
<ParamField path="api.id" type="string">
Ідентифікатор plugin.
Ідентифікатор Plugin.
</ParamField>
<ParamField path="api.name" type="string">
Відображувана назва plugin.
Відображувана назва Plugin.
</ParamField>
<ParamField path="api.config" type="OpenClawConfig">
Поточний знімок конфігурації (активний знімок середовища виконання в пам’яті, коли доступний).
</ParamField>
<ParamField path="api.pluginConfig" type="Record<string, unknown>">
Конфігурація, специфічна для plugin, з `plugins.entries.<id>.config`.
Конфігурація, специфічна для Plugin, з `plugins.entries.<id>.config`.
</ParamField>
<ParamField path="api.logger" type="PluginLogger">
Журналювальник з областю видимості (`debug`, `info`, `warn`, `error`).
Обмежений за областю logger (`debug`, `info`, `warn`, `error`).
</ParamField>
<ParamField path="api.registrationMode" type="PluginRegistrationMode">
Поточний режим завантаження; `"setup-runtime"` — це легке вікно запуску/налаштування перед повним входом.
Поточний режим завантаження; `"setup-runtime"` — це легковагове вікно запуску/налаштування перед повним entry.
</ParamField>
<ParamField path="api.resolvePath(input)" type="(string) => string">
Розв’язати шлях відносно кореня plugin.
Розв’язати шлях відносно кореня Plugin.
</ParamField>
## Пов’язане
- [Внутрішня архітектура Plugin](/uk/plugins/architecture) — модель можливостей і реєстр
- [Внутрішня архітектура Plugin](/uk/plugins/architecture) — модель можливостей і registry
- [Точки входу SDK](/uk/plugins/sdk-entrypoints) — параметри `definePluginEntry`
- [Огляд SDK](/uk/plugins/sdk-overview) — довідник підшляхів
- [Огляд SDK](/uk/plugins/sdk-overview) — довідник subpath