Plugins
CLI arka uç Plugin'leri oluşturma
CLI arka uç Plugin'leri, OpenClaw'ın bir yerel AI CLI'yi metin çıkarımı arka ucu olarak çağırmasını sağlar. Arka uç, model referanslarında sağlayıcı öneki olarak görünür:
acme-cli/acme-large
Yukarı akış entegrasyonu zaten yerel bir komut olarak sunuluyorsa, CLI yerel oturum açma durumunu yönetiyorsa veya API sağlayıcıları kullanılamadığında CLI yararlı bir yedekse bir CLI arka ucu kullanın.
Plugin'in sahip olduğu şeyler
Bir CLI arka uç Plugin'inin üç sözleşmesi vardır:
| Sözleşme | Dosya | Amaç |
|---|---|---|
| Paket girişi | package.json |
OpenClaw'ı Plugin çalışma zamanı modülüne yönlendirir |
| Manifest sahipliği | openclaw.plugin.json |
Çalışma zamanı yüklenmeden önce arka uç kimliğini bildirir |
| Çalışma zamanı kaydı | index.ts |
Komut varsayılanlarıyla api.registerCliBackend(...) çağırır |
Manifest, keşif meta verisidir. CLI'yi çalıştırmaz ve çalışma zamanı
davranışını kaydetmez. Çalışma zamanı davranışı, Plugin girişi
api.registerCliBackend(...) çağırdığında başlar.
Minimal arka uç Plugin'i
Paket meta verisi oluştur
{
"name": "@acme/openclaw-acme-cli",
"version": "1.0.0",
"type": "module",
"openclaw": {
"extensions": ["./index.ts"],
"compat": {
"pluginApi": ">=2026.3.24-beta.2",
"minGatewayVersion": "2026.3.24-beta.2"
},
"build": {
"openclawVersion": "2026.3.24-beta.2",
"pluginSdkVersion": "2026.3.24-beta.2"
}
},
"dependencies": {
"openclaw": "^2026.3.24"
},
"devDependencies": {
"typescript": "^5.9.0"
}
}
Yayımlanan paketler derlenmiş JavaScript çalışma zamanı dosyalarıyla
gönderilmelidir. Kaynak girişiniz ./src/index.ts ise derlenmiş JavaScript
eş dosyasını işaret eden openclaw.runtimeExtensions ekleyin.
Giriş noktaları bölümüne bakın.
Arka uç sahipliğini bildir
{
"id": "acme-cli",
"name": "Acme CLI",
"description": "Run Acme's local AI CLI through OpenClaw",
"cliBackends": ["acme-cli"],
"setup": {
"cliBackends": ["acme-cli"],
"requiresRuntime": false
},
"activation": {
"onStartup": false
},
"configSchema": {
"type": "object",
"additionalProperties": false
}
}
cliBackends, çalışma zamanı sahipliği listesidir. Yapılandırma veya model
seçimi acme-cli/... belirttiğinde OpenClaw'ın Plugin'i otomatik yüklemesini
sağlar.
setup.cliBackends, tanımlayıcı öncelikli kurulum yüzeyidir. Model keşfi,
ilk katılım veya durumun Plugin çalışma zamanını yüklemeden arka ucu
tanıması gerekiyorsa bunu ekleyin. requiresRuntime: false değerini yalnızca
bu statik tanımlayıcılar kurulum için yeterliyse kullanın.
Arka ucu kaydet
import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
import {
CLI_FRESH_WATCHDOG_DEFAULTS,
CLI_RESUME_WATCHDOG_DEFAULTS,
type CliBackendPlugin,
} from "openclaw/plugin-sdk/cli-backend";
function buildAcmeCliBackend(): CliBackendPlugin {
return {
id: "acme-cli",
liveTest: {
defaultModelRef: "acme-cli/acme-large",
defaultImageProbe: false,
defaultMcpProbe: false,
docker: {
npmPackage: "@acme/acme-cli",
binaryName: "acme",
},
},
config: {
command: "acme",
args: ["chat", "--json"],
output: "json",
input: "stdin",
modelArg: "--model",
sessionArg: "--session",
sessionMode: "existing",
sessionIdFields: ["session_id", "conversation_id"],
systemPromptFileArg: "--system-file",
systemPromptWhen: "first",
imageArg: "--image",
imageMode: "repeat",
reliability: {
watchdog: {
fresh: { ...CLI_FRESH_WATCHDOG_DEFAULTS },
resume: { ...CLI_RESUME_WATCHDOG_DEFAULTS },
},
},
serialize: true,
},
};
}
export default definePluginEntry({
id: "acme-cli",
name: "Acme CLI",
description: "Run Acme's local AI CLI through OpenClaw",
register(api) {
api.registerCliBackend(buildAcmeCliBackend());
},
});
Arka uç kimliği, manifest cliBackends girdisiyle eşleşmelidir. Kayıtlı
config yalnızca varsayılandır; çalışma zamanında
agents.defaults.cliBackends.acme-cli altındaki kullanıcı yapılandırması
bunun üzerine birleştirilir.
Yapılandırma şekli
CliBackendConfig, OpenClaw'ın CLI'yi nasıl başlatıp ayrıştıracağını açıklar:
| Alan | Kullanım |
|---|---|
command |
İkili adı veya mutlak komut yolu |
args |
Yeni çalıştırmalar için temel argv |
resumeArgs |
Sürdürülen oturumlar için alternatif argv; {sessionId} destekler |
output / resumeOutput |
Ayrıştırıcı: json, jsonl veya text |
input |
İstem aktarımı: arg veya stdin |
modelArg |
Model kimliğinden önce kullanılan bayrak |
modelAliases |
OpenClaw model kimliklerini CLI'ye özgü kimliklerle eşleştirir |
sessionArg / sessionArgs |
Oturum kimliğinin nasıl geçirileceği |
sessionMode |
always, existing veya none |
sessionIdFields |
OpenClaw'ın CLI çıktısından okuduğu JSON alanları |
systemPromptArg / systemPromptFileArg |
Sistem istemi aktarımı |
systemPromptWhen |
first, always veya never |
imageArg / imageMode |
Görsel yolu desteği |
serialize |
Aynı arka uç çalıştırmalarını sıralı tutar |
reliability.watchdog |
Çıktı yok zaman aşımı ayarı |
CLI ile eşleşen en küçük statik yapılandırmayı tercih edin. Plugin geri çağrılarını yalnızca gerçekten arka uca ait davranışlar için ekleyin.
Gelişmiş arka uç kancaları
CliBackendPlugin şunları da tanımlayabilir:
| Kanca | Kullanım |
|---|---|
normalizeConfig(config, context) |
Birleştirme sonrasında eski kullanıcı yapılandırmasını yeniden yazar |
resolveExecutionArgs(ctx) |
Düşünme eforu gibi istek kapsamlı bayraklar ekler |
prepareExecution(ctx) |
Başlatmadan önce geçici kimlik doğrulama veya yapılandırma köprüleri oluşturur |
transformSystemPrompt(ctx) |
CLI'ye özel son bir sistem istemi dönüşümü uygular |
textTransforms |
Çift yönlü istem/çıktı değiştirmeleri |
defaultAuthProfileId |
Belirli bir OpenClaw kimlik doğrulama profilini tercih eder |
authEpochMode |
Kimlik doğrulama değişikliklerinin saklanan CLI oturumlarını nasıl geçersiz kılacağını belirler |
nativeToolMode |
CLI'nin her zaman açık yerel araçlara sahip olup olmadığını bildirir |
bundleMcp / bundleMcpMode |
OpenClaw'ın loopback MCP araç köprüsüne dahil olur |
Bu kancaları sağlayıcıya ait tutun. Bir arka uç kancası davranışı ifade edebiliyorsa çekirdeğe CLI'ye özel dallar eklemeyin.
MCP araç köprüsü
CLI arka uçları varsayılan olarak OpenClaw araçlarını almaz. CLI bir MCP yapılandırmasını tüketebiliyorsa açıkça dahil olun:
return {
id: "acme-cli",
bundleMcp: true,
bundleMcpMode: "codex-config-overrides",
config: {
command: "acme",
args: ["chat", "--json"],
output: "json",
},
};
Desteklenen köprü modları şunlardır:
| Mod | Kullanım |
|---|---|
claude-config-file |
MCP yapılandırma dosyası kabul eden CLI'ler |
codex-config-overrides |
argv üzerinde yapılandırma geçersiz kılmaları kabul eden CLI'ler |
gemini-system-settings |
MCP ayarlarını sistem ayarları dizininden okuyan CLI'ler |
Köprüyü yalnızca CLI gerçekten bunu tüketebiliyorsa etkinleştirin. CLI'nin
devre dışı bırakılamayan kendi yerleşik araç katmanı varsa nativeToolMode: "always-on" ayarlayın; böylece bir çağıran yerel araç olmamasını gerektirdiğinde
OpenClaw kapalı şekilde hata verebilir.
Kullanıcı yapılandırması
Kullanıcılar herhangi bir arka uç varsayılanını geçersiz kılabilir:
{
agents: {
defaults: {
cliBackends: {
"acme-cli": {
command: "/opt/acme/bin/acme",
args: ["chat", "--json", "--profile", "work"],
modelAliases: {
large: "acme-large-2026",
},
},
},
model: {
primary: "openai/gpt-5.5",
fallbacks: ["acme-cli/large"],
},
},
},
}
Kullanıcıların ihtiyaç duyma olasılığı en yüksek olan minimum geçersiz kılmayı
belgeleyin. Bu genellikle yalnızca ikili PATH dışında olduğunda command
olur.
Doğrulama
Paketlenmiş Plugin'ler için oluşturucu ve kurulum kaydı etrafında odaklı bir test ekleyin, ardından Plugin'in hedefli test hattını çalıştırın:
pnpm test extensions/acme-cli
Yerel veya yüklü Plugin'ler için keşfi ve bir gerçek model çalıştırmasını doğrulayın:
openclaw plugins inspect acme-cli --runtime --json
openclaw agent --message "reply exactly: backend ok" --model acme-cli/acme-large
Arka uç görselleri veya MCP'yi destekliyorsa bu yolları gerçek CLI ile kanıtlayan canlı bir smoke testi ekleyin. İstem, görsel, MCP veya oturum sürdürme davranışı için statik incelemeye güvenmeyin.
Kontrol listesi
OPENCLAW_DOCS_MARKER:calloutOpen:Q2hlY2s
package.json, yayımlanan paketler için openclaw.extensions ve derlenmiş çalışma zamanı girişlerine sahip
OPENCLAW_DOCS_MARKER:calloutClose:
OPENCLAW_DOCS_MARKER:calloutOpen:Q2hlY2s
openclaw.plugin.json, cliBackends ve bilinçli activation.onStartup bildirir
OPENCLAW_DOCS_MARKER:calloutClose:
OPENCLAW_DOCS_MARKER:calloutOpen:Q2hlY2s
Kurulum/model keşfinin arka ucu soğuk durumda görmesi gerekiyorsa setup.cliBackends mevcuttur
OPENCLAW_DOCS_MARKER:calloutClose:
OPENCLAW_DOCS_MARKER:calloutOpen:Q2hlY2s
api.registerCliBackend(...), manifest ile aynı arka uç kimliğini kullanır
OPENCLAW_DOCS_MARKER:calloutClose:
OPENCLAW_DOCS_MARKER:calloutOpen:Q2hlY2s
agents.defaults.cliBackends.<id> altındaki kullanıcı geçersiz kılmaları hâlâ kazanır
OPENCLAW_DOCS_MARKER:calloutClose: