Плагіни бекенду CLI дають OpenClaw змогу викликати локальний AI CLI як бекенд текстового виведення. Бекенд відображається як префікс провайдера в посиланнях на моделі:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Якщо upstream-сервіс надає звичайний HTTP API моделей, натомість створіть
provider plugin. Якщо upstream-середовище
виконання володіє повними сесіями агентів, подіями інструментів, compaction або станом
фонових завдань, використовуйте agent harness.
За що відповідає плагін
Плагін бекенду CLI має три контракти:| Контракт | Файл | Призначення |
|---|---|---|
| Точка входу пакета | package.json | Вказує OpenClaw на модуль середовища виконання плагіна |
| Володіння маніфестом | openclaw.plugin.json | Оголошує ідентифікатор бекенду до завантаження runtime |
| Реєстрація runtime | index.ts | Викликає api.registerCliBackend(...) з типовими командами |
api.registerCliBackend(...).
Мінімальний плагін бекенду
Створіть метадані пакета
package.json
./src/index.ts, додайте openclaw.runtimeExtensions, що вказує на
відповідний зібраний JavaScript-файл. Див. Точки входу.Оголосіть володіння бекендом
openclaw.plugin.json
cliBackends — це список володіння runtime. Він дає OpenClaw змогу автоматично завантажувати
плагін, коли конфігурація або вибір моделі згадує acme-cli/....setup.cliBackends — це поверхня налаштування за принципом descriptor-first. Додайте її, коли
виявлення моделей, onboarding або статус мають розпізнавати бекенд без
завантаження runtime плагіна. Використовуйте requiresRuntime: false лише тоді, коли цих статичних
дескрипторів достатньо для налаштування.Форма конфігурації
CliBackendConfig описує, як OpenClaw має запускати й розбирати CLI:
| Поле | Використання |
|---|---|
command | Ім’я бінарного файла або абсолютний шлях до команди |
args | Базовий argv для нових запусків |
resumeArgs | Альтернативний argv для відновлених сесій; підтримує {sessionId} |
output / resumeOutput | Парсер: json, jsonl або text |
input | Транспорт підказки: arg або stdin |
modelArg | Прапорець, що використовується перед ідентифікатором моделі |
modelAliases | Зіставляє ідентифікатори моделей OpenClaw з нативними ідентифікаторами CLI |
sessionArg / sessionArgs | Як передавати ідентифікатор сесії |
sessionMode | always, existing або none |
sessionIdFields | JSON-поля, які OpenClaw читає з виводу CLI |
systemPromptArg / systemPromptFileArg | Транспорт системної підказки |
systemPromptWhen | first, always або never |
imageArg / imageMode | Підтримка шляхів до зображень |
serialize | Зберігати порядок запусків того самого бекенду |
reliability.watchdog | Налаштування тайм-ауту без виводу |
Розширені хуки бекенду
CliBackendPlugin також може визначати:
| Хук | Використання |
|---|---|
normalizeConfig(config, context) | Переписати застарілу користувацьку конфігурацію після об’єднання |
resolveExecutionArgs(ctx) | Додати прапорці в межах запиту, наприклад thinking effort |
prepareExecution(ctx) | Створити тимчасові мости auth або конфігурації перед запуском |
transformSystemPrompt(ctx) | Застосувати фінальне CLI-специфічне перетворення системної підказки |
textTransforms | Двонапрямні заміни підказок/виводу |
defaultAuthProfileId | Надавати перевагу конкретному профілю auth OpenClaw |
authEpochMode | Вирішувати, як зміни auth інвалідовують збережені сесії CLI |
nativeToolMode | Оголосити, чи CLI має завжди ввімкнені нативні інструменти |
bundleMcp / bundleMcpMode | Увімкнути міст інструментів loopback MCP OpenClaw |
Міст інструментів MCP
Бекенди CLI типово не отримують інструменти OpenClaw. Якщо CLI може споживати конфігурацію MCP, увімкніть це явно:| Режим | Використання |
|---|---|
claude-config-file | CLI, що приймають файл конфігурації MCP |
codex-config-overrides | CLI, що приймають перевизначення конфігурації в argv |
gemini-system-settings | CLI, що читають налаштування MCP зі свого каталогу системних налаштувань |
nativeToolMode: "always-on", щоб OpenClaw міг відмовляти закрито, коли викликач вимагає відсутності нативних інструментів.
Користувацька конфігурація
Користувачі можуть перевизначити будь-яке типове значення бекенду:command, коли бінарний файл розташований поза PATH.
Перевірка
Для вбудованих плагінів додайте сфокусований тест для builder і реєстрації налаштування, а потім запустіть цільову тестову лінію плагіна:Контрольний список
package.json має openclaw.extensions і зібрані runtime-точки входу для опублікованих пакетівopenclaw.plugin.json оголошує cliBackends і навмисне activation.onStartupsetup.cliBackends присутній, коли налаштування/виявлення моделей має бачити бекенд холоднимapi.registerCliBackend(...) використовує той самий ідентифікатор бекенду, що й маніфестКористувацькі перевизначення в
agents.defaults.cliBackends.<id> усе ще мають пріоритетНалаштування сесій, системної підказки, зображень і парсера виводу відповідають реальному контракту CLI
Цільові тести й принаймні один live smoke CLI доводять шлях бекенду
Пов’язане
- Бекенди CLI - користувацька конфігурація та поведінка runtime
- Створення плагінів - основи пакетів і маніфестів
- Огляд Plugin SDK - довідка API реєстрації
- Маніфест плагіна -
cliBackendsі дескриптори налаштування - Agent harness - повні зовнішні runtime агентів