CLI backend plugins pozwalają OpenClaw wywoływać lokalne AI CLI jako backend wnioskowania tekstowego. Backend pojawia się jako prefiks dostawcy w referencjach modeli: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.
Jeśli usługa upstream udostępnia standardowe HTTP model API, napisz zamiast tego
provider plugin. Jeśli środowisko uruchomieniowe upstream
zarządza pełnymi sesjami agentów, zdarzeniami narzędzi, compaction lub stanem zadań
w tle, użyj agent harness.
Za co odpowiada plugin
Plugin backendu CLI ma trzy kontrakty:| Kontrakt | Plik | Cel |
|---|---|---|
| Wejście pakietu | package.json | Wskazuje OpenClaw moduł runtime pluginu |
| Własność manifestu | openclaw.plugin.json | Deklaruje identyfikator backendu przed załadowaniem runtime |
| Rejestracja runtime | index.ts | Wywołuje api.registerCliBackend(...) z domyślnymi poleceniami |
api.registerCliBackend(...).
Minimalny plugin backendu
Utwórz metadane pakietu
package.json
./src/index.ts, dodaj openclaw.runtimeExtensions, które wskazuje
zbudowany odpowiednik JavaScript. Zobacz Punkty wejścia.Zadeklaruj własność backendu
openclaw.plugin.json
cliBackends to lista własności runtime. Pozwala OpenClaw automatycznie ładować
plugin, gdy konfiguracja lub wybór modelu wspomina acme-cli/....setup.cliBackends to powierzchnia konfiguracji oparta najpierw na deskryptorze. Dodaj ją, gdy
wykrywanie modeli, onboarding lub status powinny rozpoznawać backend bez
ładowania runtime pluginu. Używaj requiresRuntime: false tylko wtedy, gdy te statyczne
deskryptory wystarczają do konfiguracji.Kształt konfiguracji
CliBackendConfig opisuje, jak OpenClaw ma uruchamiać i analizować CLI:
| Pole | Zastosowanie |
|---|---|
command | Nazwa binarna lub bezwzględna ścieżka polecenia |
args | Bazowe argv dla nowych uruchomień |
resumeArgs | Alternatywne argv dla wznawianych sesji; obsługuje {sessionId} |
output / resumeOutput | Parser: json, jsonl lub text |
input | Transport promptu: arg lub stdin |
modelArg | Flaga używana przed identyfikatorem modelu |
modelAliases | Mapuje identyfikatory modeli OpenClaw na natywne identyfikatory CLI |
sessionArg / sessionArgs | Jak przekazać identyfikator sesji |
sessionMode | always, existing lub none |
sessionIdFields | Pola JSON, które OpenClaw odczytuje z wyjścia CLI |
systemPromptArg / systemPromptFileArg | Transport promptu systemowego |
systemPromptWhen | first, always lub never |
imageArg / imageMode | Obsługa ścieżek obrazów |
serialize | Utrzymuje uporządkowanie uruchomień tego samego backendu |
reliability.watchdog | Dostrajanie limitu czasu bez wyjścia |
Zaawansowane hooki backendu
CliBackendPlugin może również definiować:
| Hook | Zastosowanie |
|---|---|
normalizeConfig(config, context) | Przepisuje starszą konfigurację użytkownika po scaleniu |
resolveExecutionArgs(ctx) | Dodaje flagi zakresu żądania, takie jak wysiłek myślenia |
prepareExecution(ctx) | Tworzy tymczasowe mosty uwierzytelniania lub konfiguracji przed uruchomieniem |
transformSystemPrompt(ctx) | Stosuje końcową transformację promptu systemowego specyficzną dla CLI |
textTransforms | Dwukierunkowe zamiany promptu/wyjścia |
defaultAuthProfileId | Preferuje określony profil uwierzytelniania OpenClaw |
authEpochMode | Decyduje, jak zmiany uwierzytelniania unieważniają zapisane sesje CLI |
nativeToolMode | Deklaruje, czy CLI ma zawsze włączone narzędzia natywne |
bundleMcp / bundleMcpMode | Włącza most narzędzi MCP loopback OpenClaw |
Most narzędzi MCP
Backendy CLI domyślnie nie otrzymują narzędzi OpenClaw. Jeśli CLI potrafi użyć konfiguracji MCP, włącz to jawnie:| Tryb | Zastosowanie |
|---|---|
claude-config-file | CLI, które akceptują plik konfiguracji MCP |
codex-config-overrides | CLI, które akceptują nadpisania konfiguracji w argv |
gemini-system-settings | CLI, które odczytują ustawienia MCP z katalogu ustawień systemowych |
nativeToolMode: "always-on", aby OpenClaw mógł bezpiecznie odmówić, gdy wywołujący wymaga braku narzędzi natywnych.
Konfiguracja użytkownika
Użytkownicy mogą nadpisać dowolną wartość domyślną backendu:command, gdy plik binarny znajduje się poza PATH.
Weryfikacja
Dla dołączonych pluginów dodaj ukierunkowany test wokół buildera i rejestracji konfiguracji, a następnie uruchom ukierunkowaną ścieżkę testową pluginu:Lista kontrolna
package.json ma openclaw.extensions i zbudowane wpisy runtime dla opublikowanych pakietówopenclaw.plugin.json deklaruje cliBackends i zamierzone activation.onStartupsetup.cliBackends jest obecne, gdy konfiguracja/wykrywanie modeli powinny widzieć backend na zimnoapi.registerCliBackend(...) używa tego samego identyfikatora backendu co manifestNadpisania użytkownika pod
agents.defaults.cliBackends.<id> nadal mają pierwszeństwoUstawienia sesji, promptu systemowego, obrazu i parsera wyjścia pasują do rzeczywistego kontraktu CLI
Ukierunkowane testy i co najmniej jeden live smoke CLI potwierdzają ścieżkę backendu
Powiązane
- Backendy CLI - konfiguracja użytkownika i zachowanie runtime
- Budowanie pluginów - podstawy pakietu i manifestu
- Przegląd Plugin SDK - referencja API rejestracji
- Manifest pluginu -
cliBackendsi deskryptory konfiguracji - Agent harness - pełne zewnętrzne runtime agentów