Yukarı akış hizmeti normal bir HTTP model API’si sunuyorsa bunun yerine bir
sağlayıcı Plugin’i yazın. Yukarı akış
çalışma zamanı tam aracı oturumlarına, araç olaylarına, compaction’a veya arka plan
görev durumuna sahipse bir aracı harness’ı kullanın.
Plugin’in sahip oldukları
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 |
api.registerCliBackend(...) çağırdığında başlar.
Minimal arka uç Plugin’i
Paket meta verisi oluştur
package.json
./src/index.ts ise derlenmiş JavaScript eş dosyasını gösteren
openclaw.runtimeExtensions ekleyin. Bkz. Giriş noktaları.Arka uç sahipliğini bildir
openclaw.plugin.json
cliBackends, çalışma zamanı sahiplik listesidir. Yapılandırma veya model seçimi
acme-cli/... ifadesinden bahsettiğinde OpenClaw’ın Plugin’i otomatik yüklemesini sağlar.setup.cliBackends, önce tanımlayıcı kurulum yüzeyidir. Model keşfi, ilk kurulum veya durumun
Plugin çalışma zamanı yüklenmeden arka ucu tanıması gerektiğinde ekleyin. requiresRuntime: false
yalnızca bu statik tanımlayıcılar kurulum için yeterli olduğunda kullanın.Yapılandırma şekli
CliBackendConfig, OpenClaw’ın CLI’ı nasıl başlatıp ayrıştırması gerektiğini 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 taşıma: arg veya stdin |
modelArg | Model kimliğinden önce kullanılan bayrak |
modelAliases | OpenClaw model kimliklerini CLI’a özgü kimliklerle eşler |
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 taşıma |
systemPromptWhen | first, always veya never |
imageArg / imageMode | Görsel yolu desteği |
serialize | Aynı arka uç çalıştırmalarını sıralı tut |
reliability.watchdog | Çıktı yok zaman aşımı ayarı |
Gelişmiş arka uç hook’ları
CliBackendPlugin şunları da tanımlayabilir:
| Hook | Kullanım |
|---|---|
normalizeConfig(config, context) | Birleştirme sonrası eski kullanıcı yapılandırmasını yeniden yaz |
resolveExecutionArgs(ctx) | Düşünme çabası veya yan soru yalıtımı gibi istek kapsamlı bayraklar ekle |
prepareExecution(ctx) | Başlatmadan önce geçici kimlik doğrulama veya yapılandırma köprüleri oluştur |
transformSystemPrompt(ctx) | Son bir CLI’a özgü sistem istemi dönüşümü uygula |
textTransforms | Çift yönlü istem/çıktı değiştirmeleri |
defaultAuthProfileId | Belirli bir OpenClaw kimlik doğrulama profilini tercih et |
authEpochMode | Kimlik doğrulama değişikliklerinin saklanan CLI oturumlarını nasıl geçersiz kılacağını belirle |
nativeToolMode | CLI’ın her zaman açık yerel araçları olup olmadığını bildir |
sideQuestionToolMode | /btw yan soruları için devre dışı yerel araçları bildir |
bundleMcp / bundleMcpMode | OpenClaw’ın loopback MCP araç köprüsüne katıl |
ownsNativeCompaction | Arka uç kendi compaction’ına sahiptir - OpenClaw erteler |
ctx.executionMode, normal dönüşler için "agent" ve geçici /btw çağrıları için "side-question" değeridir. CLI’ın BTW için yerel araçları, oturum kalıcılığını veya sürdürme davranışını devre dışı bırakmak gibi farklı tek seferlik bayraklara ihtiyacı olduğunda bunu kullanın. Bir arka uç normalde nativeToolMode: "always-on" değerine sahipse ancak yan soru argv’si bu araçları güvenilir biçimde devre dışı bırakıyorsa sideQuestionToolMode: "disabled" da ayarlayın; aksi halde BTW araçsız CLI çalıştırması gerektirdiğinde OpenClaw güvenli şekilde kapalı kalır.
ownsNativeCompaction: OpenClaw compaction’ından çıkma
Arka ucunuz kendi transkriptini sıkıştıran bir aracı çalıştırıyorsa
ownsNativeCompaction: true ayarlayın; böylece OpenClaw’ın koruma özetleyicisi onun oturumlarında asla çalışmaz - CLI compaction yaşam döngüsü no-op döndürür ve dönüş devam eder. claude-cli, Claude Code dahili olarak ve harness uç noktası olmadan sıkıştırdığı için bunu bildirir. Codex gibi yerel harness oturumları bunun yerine harness compaction uç noktalarına yönlendirilmeye devam eder.
Bunu yalnızca aşağıdakilerin tümü geçerliyse bildirin, aksi halde ertelenmiş bütçe üstü bir oturum bütçe üstünde kalabilir / bayatlayabilir (OpenClaw artık onu kurtarmaz):
- arka uç, penceresine yaklaştıkça kendi transkriptini güvenilir biçimde sıkıştırır veya sınırlar;
- sıkıştırılmış durumun dönüşler arasında kalması için sürdürülebilir bir oturum saklar
(örn.
--resume/--session-id); - yerel harness compaction oturumu değildir - eşleşen
agentHarnessIdoturumları bunun yerine harness uç noktasına yönlendirilir.
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 edin:| Mod | Kullanım |
|---|---|
claude-config-file | MCP yapılandırma dosyası kabul eden CLI’lar |
codex-config-overrides | argv üzerinde yapılandırma geçersiz kılmaları kabul eden CLI’lar |
gemini-system-settings | MCP ayarlarını sistem ayarları dizininden okuyan CLI’lar |
nativeToolMode: "always-on" ayarlayın; böylece çağıran taraf yerel araç istemediğinde OpenClaw güvenli şekilde kapalı kalabilir.
Kullanıcı yapılandırması
Kullanıcılar herhangi bir arka uç varsayılanını geçersiz kılabilir:PATH dışında olduğunda command olur.
Doğrulama
Paketle gelen pluginler için, builder ve kurulum kaydı etrafında odaklı bir test ekleyin, ardından pluginin hedeflenen test hattını çalıştırın:Kontrol Listesi
package.json, yayımlanan paketler için openclaw.extensions ve derlenmiş runtime girişlerine sahipopenclaw.plugin.json, cliBackends ve kasıtlı activation.onStartup bildirirKurulum/model keşfinin backend’i soğuk halde görmesi gerektiğinde
setup.cliBackends mevcutapi.registerCliBackend(...), manifest ile aynı backend kimliğini kullanıragents.defaults.cliBackends.<id> altındaki kullanıcı geçersiz kılmaları hâlâ önceliklidirOturum, sistem istemi, görüntü ve çıktı ayrıştırıcı ayarları gerçek CLI sözleşmesiyle eşleşir
Hedeflenen testler ve en az bir canlı CLI smoke testi backend yolunu kanıtlar
İlgili
- CLI backendleri - kullanıcı yapılandırması ve runtime davranışı
- Plugin oluşturma - paket ve manifest temelleri
- Plugin SDK genel bakışı - kayıt API başvurusu
- Plugin manifesti -
cliBackendsve kurulum tanımlayıcıları - Agent harness - tam harici agent runtimeları