chore(i18n): refresh tr translations
This commit is contained in:
parent
087394d19c
commit
c7e9f6a08d
103
docs/tr/ci.md
103
docs/tr/ci.md
@ -1,83 +1,84 @@
|
||||
---
|
||||
read_when:
|
||||
- Bir CI işinin neden çalıştığını veya çalışmadığını anlamanız gerekir
|
||||
- GitHub Actions denetimlerinde başarısızlıkları ayıklıyorsunuz
|
||||
- Başarısız GitHub Actions kontrollerinde hata ayıklıyorsunuz
|
||||
summary: CI iş grafiği, kapsam geçitleri ve yerel komut eşdeğerleri
|
||||
title: CI Ardışık Düzeni
|
||||
title: CI ardışık düzeni
|
||||
x-i18n:
|
||||
generated_at: "2026-04-22T04:21:28Z"
|
||||
generated_at: "2026-04-22T08:54:52Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: ae08bad6cbd0f2eced6c88a792a11bc1c2b1a2bfb003a56f70ff328a2739d3fc
|
||||
source_hash: fc7ec59123aee65634736320dbf1cf5cdfb08786a78cca82ce9596fedc68b3cc
|
||||
source_path: ci.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# CI Ardışık Düzeni
|
||||
# CI ardışık düzeni
|
||||
|
||||
CI, `main` dalına her push işleminde ve her pull request’te çalışır. Yalnızca ilgisiz alanlar değiştiğinde pahalı işleri atlamak için akıllı kapsamlandırma kullanır.
|
||||
CI, `main` dalına yapılan her push işleminde ve her pull request’te çalışır. Yalnızca ilgisiz alanlar değiştiğinde pahalı işleri atlamak için akıllı kapsamlandırma kullanır.
|
||||
|
||||
## İş Genel Görünümü
|
||||
|
||||
| İş | Amaç | Ne zaman çalışır |
|
||||
| -------------------------------- | -------------------------------------------------------------------------------------------- | ---------------------------------- |
|
||||
| `preflight` | Yalnızca doküman değişikliklerini, değişen kapsamları, değişen eklentileri saptamak ve CI manifestini oluşturmak | Taslak olmayan push ve PR’lerde her zaman |
|
||||
| `security-scm-fast` | `zizmor` ile özel anahtar tespiti ve workflow denetimi | Taslak olmayan push ve PR’lerde her zaman |
|
||||
| `security-dependency-audit` | npm advisory’lerine karşı bağımlılıksız üretim lockfile denetimi | Taslak olmayan push ve PR’lerde her zaman |
|
||||
| `security-fast` | Hızlı güvenlik işleri için gerekli toplu iş | Taslak olmayan push ve PR’lerde her zaman |
|
||||
| `build-artifacts` | `dist/` ve Control UI’yi bir kez derlemek, aşağı akış işleri için yeniden kullanılabilir artifact’leri yüklemek | Node ile ilgili değişiklikler |
|
||||
| `checks-fast-core` | Paketlenmiş/plugin-contract/protocol denetimleri gibi hızlı Linux doğruluk hatları | Node ile ilgili değişiklikler |
|
||||
| `checks-fast-contracts-channels` | Kararlı bir toplu denetim sonucu ile shard’lanmış kanal sözleşmesi denetimleri | Node ile ilgili değişiklikler |
|
||||
| `checks-node-extensions` | eklenti paketi genelinde paketlenmiş plugin’ler için tam test shard’ları | Node ile ilgili değişiklikler |
|
||||
| `checks-node-core-test` | Kanal, paketlenmiş, sözleşme ve eklenti hatları hariç çekirdek Node test shard’ları | Node ile ilgili değişiklikler |
|
||||
| `extension-fast` | Yalnızca değişen paketlenmiş plugin’ler için odaklı testler | Eklenti değişiklikleri algılandığında |
|
||||
| `check` | shard’lanmış ana yerel geçit eşdeğeri: üretim tipleri, lint, guard’lar, test tipleri ve katı smoke | Node ile ilgili değişiklikler |
|
||||
| `check-additional` | Mimari, sınır, eklenti-yüzeyi guard’ları, paket sınırı ve gateway-watch shard’ları | Node ile ilgili değişiklikler |
|
||||
| `build-smoke` | Derlenmiş CLI smoke testleri ve başlangıç belleği smoke testi | Node ile ilgili değişiklikler |
|
||||
| `checks` | Kalan Linux Node hatları: kanal testleri ve yalnızca push için Node 22 uyumluluğu | Node ile ilgili değişiklikler |
|
||||
| `check-docs` | Doküman biçimlendirme, lint ve bozuk bağlantı denetimleri | Dokümanlar değiştiğinde |
|
||||
| `skills-python` | Python destekli Skills için Ruff + pytest | Python-Skills ile ilgili değişiklikler |
|
||||
| `checks-windows` | Windows’a özgü test hatları | Windows ile ilgili değişiklikler |
|
||||
| `macos-node` | Paylaşılan derlenmiş artifact’leri kullanan macOS TypeScript test hattı | macOS ile ilgili değişiklikler |
|
||||
| `macos-swift` | macOS uygulaması için Swift lint, build ve testler | macOS ile ilgili değişiklikler |
|
||||
| `android` | Android build ve test matrisi | Android ile ilgili değişiklikler |
|
||||
| İş | Amaç | Ne zaman çalışır |
|
||||
| -------------------------------- | ------------------------------------------------------------------------------------------ | ----------------------------------- |
|
||||
| `preflight` | Yalnızca dokümantasyon değişikliklerini, değişen kapsamları, değişen eklentileri tespit etmek ve CI bildirimini oluşturmak | Taslak olmayan push ve PR’lerde her zaman |
|
||||
| `security-scm-fast` | `zizmor` aracılığıyla özel anahtar tespiti ve iş akışı denetimi | Taslak olmayan push ve PR’lerde her zaman |
|
||||
| `security-dependency-audit` | npm uyarılarına karşı bağımlılıksız üretim lockfile denetimi | Taslak olmayan push ve PR’lerde her zaman |
|
||||
| `security-fast` | Hızlı güvenlik işleri için gerekli toplu iş | Taslak olmayan push ve PR’lerde her zaman |
|
||||
| `build-artifacts` | `dist/` ve Control UI’ı bir kez derlemek, alt işlerde yeniden kullanılacak artifaktları yüklemek | Node ile ilgili değişiklikler |
|
||||
| `checks-fast-core` | bundled/plugin-contract/protocol kontrolleri gibi hızlı Linux doğruluk aşamaları | Node ile ilgili değişiklikler |
|
||||
| `checks-fast-contracts-channels` | Kararlı bir toplu kontrol sonucu ile parçalanmış kanal sözleşmesi kontrolleri | Node ile ilgili değişiklikler |
|
||||
| `checks-node-extensions` | eklenti paketi genelinde bundled-plugin tam test parçaları | Node ile ilgili değişiklikler |
|
||||
| `checks-node-core-test` | Kanal, bundled, sözleşme ve eklenti aşamaları hariç tutularak çekirdek Node test parçaları | Node ile ilgili değişiklikler |
|
||||
| `extension-fast` | Yalnızca değişen bundled plugin’ler için odaklanmış testler | Eklenti değişiklikleri tespit edildiğinde |
|
||||
| `check` | Parçalanmış ana yerel geçit eşdeğeri: üretim türleri, lint, korumalar, test türleri ve katı smoke | Node ile ilgili değişiklikler |
|
||||
| `check-additional` | Mimari, sınır, eklenti yüzeyi korumaları, paket sınırı ve gateway-watch parçaları | Node ile ilgili değişiklikler |
|
||||
| `build-smoke` | Derlenmiş CLI smoke testleri ve başlangıç belleği smoke testi | Node ile ilgili değişiklikler |
|
||||
| `checks` | Kalan Linux Node aşamaları: kanal testleri ve yalnızca push için Node 22 uyumluluğu | Node ile ilgili değişiklikler |
|
||||
| `check-docs` | Dokümantasyon biçimlendirme, lint ve bozuk bağlantı kontrolleri | Dokümanlar değiştiğinde |
|
||||
| `skills-python` | Python destekli Skills için Ruff + pytest | Python Skills ile ilgili değişiklikler |
|
||||
| `checks-windows` | Windows’a özgü test aşamaları | Windows ile ilgili değişiklikler |
|
||||
| `macos-node` | Paylaşılan derlenmiş artifaktları kullanan macOS TypeScript test aşaması | macOS ile ilgili değişiklikler |
|
||||
| `macos-swift` | macOS uygulaması için Swift lint, derleme ve testler | macOS ile ilgili değişiklikler |
|
||||
| `android` | Android derleme ve test matrisi | Android ile ilgili değişiklikler |
|
||||
|
||||
## Fail-Fast sırası
|
||||
## Hızlı Başarısızlık Sırası
|
||||
|
||||
İşler, pahalı işler çalışmadan önce ucuz denetimlerin başarısız olacağı şekilde sıralanır:
|
||||
İşler, pahalı işler çalışmadan önce ucuz kontroller başarısız olacak şekilde sıralanır:
|
||||
|
||||
1. `preflight`, hangi hatların var olacağına karar verir. `docs-scope` ve `changed-scope` mantığı bağımsız işler değil, bu işin içindeki adımlardır.
|
||||
2. `security-scm-fast`, `security-dependency-audit`, `security-fast`, `check`, `check-additional`, `check-docs` ve `skills-python`, daha ağır artifact ve platform matrisi işlerini beklemeden hızlıca başarısız olur.
|
||||
3. `build-artifacts`, hızlı Linux hatlarıyla örtüşür; böylece aşağı akış tüketicileri paylaşılan build hazır olur olmaz başlayabilir.
|
||||
4. Daha ağır platform ve çalışma zamanı hatları bundan sonra fan-out yapar: `checks-fast-core`, `checks-fast-contracts-channels`, `checks-node-extensions`, `checks-node-core-test`, `extension-fast`, `checks`, `checks-windows`, `macos-node`, `macos-swift` ve `android`.
|
||||
1. `preflight`, hangi aşamaların var olacağına karar verir. `docs-scope` ve `changed-scope` mantığı bağımsız işler değil, bu işin içindeki adımlardır.
|
||||
2. `security-scm-fast`, `security-dependency-audit`, `security-fast`, `check`, `check-additional`, `check-docs` ve `skills-python`, daha ağır artifakt ve platform matris işlerini beklemeden hızlıca başarısız olur.
|
||||
3. `build-artifacts`, hızlı Linux aşamalarıyla çakışır; böylece alt tüketiciler paylaşılan derleme hazır olur olmaz başlayabilir.
|
||||
4. Bundan sonra daha ağır platform ve çalışma zamanı aşamaları yayılır: `checks-fast-core`, `checks-fast-contracts-channels`, `checks-node-extensions`, `checks-node-core-test`, `extension-fast`, `checks`, `checks-windows`, `macos-node`, `macos-swift` ve `android`.
|
||||
|
||||
Kapsam mantığı `scripts/ci-changed-scope.mjs` içinde yaşar ve `src/scripts/ci-changed-scope.test.ts` içindeki birim testleriyle kapsanır.
|
||||
Ayrı `install-smoke` workflow, aynı kapsam betiğini kendi `preflight` işi üzerinden yeniden kullanır. `run_install_smoke` değerini daha dar changed-smoke sinyalinden hesaplar; bu nedenle Docker/install smoke yalnızca kurulum, paketleme ve kapsayıcıyla ilgili değişikliklerde çalışır.
|
||||
Kapsam mantığı `scripts/ci-changed-scope.mjs` içinde bulunur ve `src/scripts/ci-changed-scope.test.ts` içindeki birim testleriyle kapsanır.
|
||||
Ayrı `install-smoke` iş akışı, aynı kapsam betiğini kendi `preflight` işi üzerinden yeniden kullanır. `run_install_smoke` değerini daha dar changed-smoke sinyalinden hesaplar; bu nedenle Docker/install smoke yalnızca install, paketleme ve container ile ilgili değişikliklerde çalışır.
|
||||
|
||||
Yerel changed-lane mantığı `scripts/changed-lanes.mjs` içinde yaşar ve `scripts/check-changed.mjs` tarafından yürütülür. Bu yerel geçit, geniş CI platform kapsamına göre mimari sınırlar konusunda daha katıdır: çekirdek üretim değişiklikleri çekirdek üretim typecheck ile birlikte çekirdek testlerini çalıştırır, yalnızca çekirdek test değişiklikleri sadece çekirdek test typecheck/testlerini çalıştırır, eklenti üretim değişiklikleri eklenti üretim typecheck ile birlikte eklenti testlerini çalıştırır ve yalnızca eklenti test değişiklikleri sadece eklenti test typecheck/testlerini çalıştırır. Public Plugin SDK veya plugin-contract değişiklikleri, eklentiler bu çekirdek sözleşmelere bağımlı olduğu için eklenti doğrulamasını genişletir. Yalnızca release metadata sürüm artışları hedeflenmiş sürüm/yapılandırma/kök-bağımlılık denetimlerini çalıştırır. Bilinmeyen kök/yapılandırma değişiklikleri güvenli tarafta kalıp tüm hatlara gider.
|
||||
Yerel changed-lane mantığı `scripts/changed-lanes.mjs` içinde bulunur ve `scripts/check-changed.mjs` tarafından yürütülür. Bu yerel geçit, geniş CI platform kapsamına göre mimari sınırlar konusunda daha katıdır: çekirdek üretim değişiklikleri çekirdek üretim typecheck artı çekirdek testlerini çalıştırır, yalnızca çekirdek test değişiklikleri yalnızca çekirdek test typecheck/testlerini çalıştırır, eklenti üretim değişiklikleri eklenti üretim typecheck artı eklenti testlerini çalıştırır ve yalnızca eklenti test değişiklikleri yalnızca eklenti test typecheck/testlerini çalıştırır. Public Plugin SDK veya plugin-contract değişiklikleri, uzantılar bu çekirdek sözleşmelere bağlı olduğundan uzantı doğrulamasını genişletir. Yalnızca sürüm metadata’sı içeren sürüm artırımları hedefli sürüm/config/root-dependency kontrolleri çalıştırır. Bilinmeyen root/config değişiklikleri güvenli tarafta kalmak için tüm aşamalara yayılır.
|
||||
|
||||
Push işlemlerinde `checks` matrisi yalnızca push için olan `compat-node22` hattını ekler. Pull request’lerde bu hat atlanır ve matris normal test/kanal hatlarına odaklı kalır.
|
||||
Push işlemlerinde, `checks` matrisi yalnızca push için olan `compat-node22` aşamasını ekler. Pull request’lerde bu aşama atlanır ve matris normal test/kanal aşamalarına odaklı kalır.
|
||||
|
||||
En yavaş Node test aileleri, her iş küçük kalsın diye include-file shard’larına bölünür: kanal sözleşmeleri registry ve çekirdek kapsamını sekizer ağırlıklı shard’a böler, auto-reply reply command testleri dörder include-pattern shard’a ayrılır ve diğer büyük auto-reply reply prefix grupları ikişer shard’a bölünür. `check-additional` ayrıca paket sınırı compile/canary işlerini çalışma zamanı topolojisi gateway/mimari işlerinden ayırır.
|
||||
En yavaş Node test aileleri, her iş küçük kalsın diye include-file parçalarına bölünür: kanal sözleşmeleri, kayıt defteri ve çekirdek kapsamını sekizer ağırlıklı parçaya böler; auto-reply reply command testleri dört include-pattern parçasına bölünür; diğer büyük auto-reply reply prefix grupları ise ikişer parçaya bölünür. `check-additional`, paket sınırı derleme/canary çalışmalarını çalışma zamanı topolojisi gateway/mimari çalışmalarından da ayırır.
|
||||
|
||||
Aynı PR veya `main` ref’i üzerine daha yeni bir push geldiğinde GitHub, yerini almış işleri `cancelled` olarak işaretleyebilir. Aynı ref için en yeni çalışma da başarısız değilse bunu CI gürültüsü olarak değerlendirin. Toplu shard denetimleri bu iptal durumunu açıkça belirtir; böylece bunu bir test başarısızlığından ayırmak daha kolay olur.
|
||||
GitHub, aynı PR veya `main` referansına daha yeni bir push geldiğinde yerini alan işleri `cancelled` olarak işaretleyebilir. Aynı referans için en yeni çalışma da başarısız olmuyorsa bunu bir test hatası değil, CI gürültüsü olarak değerlendirin. Toplu parça kontrolleri, bunun bir test başarısızlığından daha kolay ayırt edilmesi için bu iptal durumunu açıkça belirtir.
|
||||
|
||||
## Runner’lar
|
||||
## Çalıştırıcılar
|
||||
|
||||
| Runner | İşler |
|
||||
| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `blacksmith-16vcpu-ubuntu-2404` | `preflight`, `security-scm-fast`, `security-dependency-audit`, `security-fast`, `build-artifacts`, Linux denetimleri, doküman denetimleri, Python Skills, `android` |
|
||||
| `blacksmith-32vcpu-windows-2025` | `checks-windows` |
|
||||
| `blacksmith-12vcpu-macos-latest` | `openclaw/openclaw` üzerinde `macos-node`, `macos-swift`; fork’lar `macos-latest` değerine geri döner |
|
||||
| Çalıştırıcı | İşler |
|
||||
| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `ubuntu-24.04` | `preflight`; install-smoke preflight da Blacksmith matrisinin daha erken kuyruğa girebilmesi için GitHub barındırmalı Ubuntu kullanır |
|
||||
| `blacksmith-16vcpu-ubuntu-2404` | `security-scm-fast`, `security-dependency-audit`, `security-fast`, `build-artifacts`, Linux kontrolleri, dokümantasyon kontrolleri, Python Skills, `android` |
|
||||
| `blacksmith-32vcpu-windows-2025` | `checks-windows` |
|
||||
| `blacksmith-12vcpu-macos-latest` | `macos-node`, `macos-swift` için `openclaw/openclaw`; fork’lar `macos-latest` sürümüne geri döner |
|
||||
|
||||
## Yerel eşdeğerler
|
||||
## Yerel Eşdeğerler
|
||||
|
||||
```bash
|
||||
pnpm changed:lanes # origin/main...HEAD için yerel changed-lane sınıflandırıcısını inceleyin
|
||||
pnpm check:changed # akıllı yerel geçit: sınır hattına göre değişen typecheck/lint/testler
|
||||
pnpm check # hızlı yerel geçit: production tsgo + shard’lanmış lint + paralel hızlı guard’lar
|
||||
pnpm check:changed # akıllı yerel geçit: sınır aşamasına göre değişen typecheck/lint/testler
|
||||
pnpm check # hızlı yerel geçit: production tsgo + parçalanmış lint + paralel hızlı korumalar
|
||||
pnpm check:test-types
|
||||
pnpm check:timed # aynı geçit, aşama başına zamanlamalarla
|
||||
pnpm check:timed # aşama başına sürelerle aynı geçit
|
||||
pnpm build:strict-smoke
|
||||
pnpm check:architecture
|
||||
pnpm test:gateway:watch-regression
|
||||
@ -85,5 +86,5 @@ pnpm test # vitest testleri
|
||||
pnpm test:channels
|
||||
pnpm test:contracts:channels
|
||||
pnpm check:docs # doküman biçimlendirme + lint + bozuk bağlantılar
|
||||
pnpm build # CI artifact/build-smoke hatları önemliyse dist derlemesi
|
||||
pnpm build # CI artifact/build-smoke aşamaları önemliyse dist derlemesi
|
||||
```
|
||||
|
||||
@ -1,40 +1,40 @@
|
||||
---
|
||||
read_when:
|
||||
- Yazıyor göstergesi davranışını veya varsayılanlarını değiştiriyorsunuz
|
||||
summary: OpenClaw'ın yazıyor göstergelerini ne zaman gösterdiği ve bunların nasıl ayarlanacağı
|
||||
- Yazıyor göstergesi davranışını veya varsayılanlarını değiştirme
|
||||
summary: OpenClaw yazıyor göstergelerini ne zaman gösterir ve bunlar nasıl ayarlanır
|
||||
title: Yazıyor Göstergeleri
|
||||
x-i18n:
|
||||
generated_at: "2026-04-05T13:51:54Z"
|
||||
generated_at: "2026-04-22T08:54:48Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 28c8c395a135fc0745181aab66a93582177e6acd0b3496debcbb98159a4f11dc
|
||||
source_hash: 2e7e8ca448b6706b6f53fcb6a582be6d4a84715c82dfde3d53abe4268af3ae0d
|
||||
source_path: concepts/typing-indicators.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Yazıyor göstergeleri
|
||||
|
||||
Bir çalıştırma etkin durumdayken sohbet kanalına yazıyor göstergeleri gönderilir. Yazmanın **ne zaman** başlayacağını denetlemek için `agents.defaults.typingMode`, **ne sıklıkla** yenileneceğini denetlemek için `typingIntervalSeconds` kullanın.
|
||||
Bir çalıştırma etkinken sohbet kanalına yazıyor göstergeleri gönderilir. Yazmanın **ne zaman** başladığını denetlemek için `agents.defaults.typingMode`, **ne sıklıkta** yenilendiğini denetlemek için ise `typingIntervalSeconds` kullanın.
|
||||
|
||||
## Varsayılanlar
|
||||
|
||||
`agents.defaults.typingMode` **ayarlı değilse**, OpenClaw legacy davranışı korur:
|
||||
`agents.defaults.typingMode` **ayarlanmamışsa**, OpenClaw eski davranışı korur:
|
||||
|
||||
- **Doğrudan sohbetler**: model döngüsü başlar başlamaz yazıyor durumu başlar.
|
||||
- **Bahsetme içeren grup sohbetleri**: yazıyor durumu hemen başlar.
|
||||
- **Bahsetme içermeyen grup sohbetleri**: yazıyor durumu yalnızca mesaj metni akış halinde gelmeye başladığında başlar.
|
||||
- **Heartbeat çalıştırmaları**: yazıyor durumu devre dışıdır.
|
||||
- **Doğrudan sohbetler**: model döngüsü başlar başlamaz yazma başlar.
|
||||
- **Bahsetme içeren grup sohbetleri**: yazma hemen başlar.
|
||||
- **Bahsetme içermeyen grup sohbetleri**: yazma yalnızca mesaj metni akmaya başladığında başlar.
|
||||
- **Heartbeat çalıştırmaları**: çözümlenen Heartbeat hedefi yazmayı destekleyen bir sohbetse ve yazma devre dışı bırakılmamışsa, yazma Heartbeat çalıştırması başladığında başlar.
|
||||
|
||||
## Modlar
|
||||
|
||||
`agents.defaults.typingMode` değerini şunlardan biri olarak ayarlayın:
|
||||
|
||||
- `never` — hiçbir zaman yazıyor göstergesi yok.
|
||||
- `instant` — çalıştırma daha sonra yalnızca sessiz yanıt token'ını döndürse bile, yazıyor durumunu **model döngüsü başlar başlamaz** başlatır.
|
||||
- `thinking` — yazıyor durumunu **ilk muhakeme delta'sında** başlatır (`reasoningLevel: "stream"` çalıştırma için gereklidir).
|
||||
- `message` — yazıyor durumunu **ilk sessiz olmayan metin delta'sında** başlatır (`NO_REPLY` sessiz token'ını yok sayar).
|
||||
- `instant` — çalıştırma daha sonra yalnızca sessiz yanıt belirtecini döndürse bile, yazmayı **model döngüsü başlar başlamaz** başlatır.
|
||||
- `thinking` — yazmayı **ilk akıl yürütme deltasıyla** başlatır (`reasoningLevel: "stream"` gerektirir).
|
||||
- `message` — yazmayı **ilk sessiz olmayan metin deltasıyla** başlatır (`NO_REPLY` sessiz belirtecini yok sayar).
|
||||
|
||||
“Tetiklenme ne kadar erken olur” sırası:
|
||||
“Ne kadar erken tetiklendiği” sırası:
|
||||
`never` → `message` → `thinking` → `instant`
|
||||
|
||||
## Yapılandırma
|
||||
@ -48,7 +48,7 @@ Bir çalıştırma etkin durumdayken sohbet kanalına yazıyor göstergeleri gö
|
||||
}
|
||||
```
|
||||
|
||||
Modu veya sıklığı oturum başına geçersiz kılabilirsiniz:
|
||||
Modu veya aralığı oturum başına geçersiz kılabilirsiniz:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -61,9 +61,8 @@ Modu veya sıklığı oturum başına geçersiz kılabilirsiniz:
|
||||
|
||||
## Notlar
|
||||
|
||||
- `message` modu, tüm payload tam olarak sessiz token olduğunda sessiz yanıtlar için yazıyor durumu göstermez (örneğin `NO_REPLY` / `no_reply`, büyük/küçük harf duyarsız eşleşir).
|
||||
- `thinking` yalnızca çalıştırma muhakemeyi akış halinde gönderirse tetiklenir (`reasoningLevel: "stream"`).
|
||||
Model muhakeme delta'ları yaymazsa yazıyor durumu başlamaz.
|
||||
- Mod ne olursa olsun heartbeat'ler hiçbir zaman yazıyor durumu göstermez.
|
||||
- `typingIntervalSeconds`, başlangıç zamanını değil **yenileme sıklığını** denetler.
|
||||
Varsayılan değer 6 saniyedir.
|
||||
- `message` modu, tüm yük tam olarak sessiz belirteç olduğunda sessiz-yalnızca yanıtlar için yazıyor göstergesi göstermez (örneğin `NO_REPLY` / `no_reply`, büyük/küçük harf duyarsız eşleştirilir).
|
||||
- `thinking` yalnızca çalıştırma akıl yürütmeyi akıtırsa tetiklenir (`reasoningLevel: "stream"`). Model akıl yürütme deltaları üretmezse, yazma başlamaz.
|
||||
- Heartbeat yazıyor göstergesi, çözümlenen teslim hedefi için bir canlılık sinyalidir. `message` veya `thinking` akış zamanlamasını izlemek yerine Heartbeat çalıştırması başlarken başlar. Bunu devre dışı bırakmak için `typingMode: "never"` ayarlayın.
|
||||
- `target: "none"` olduğunda, hedef çözümlenemediğinde, Heartbeat için sohbet teslimi devre dışı bırakıldığında veya kanal yazmayı desteklemediğinde Heartbeat yazıyor göstergesi göstermez.
|
||||
- `typingIntervalSeconds`, başlama zamanını değil, **yenileme aralığını** denetler. Varsayılan değer 6 saniyedir.
|
||||
|
||||
@ -1,48 +1,52 @@
|
||||
---
|
||||
read_when:
|
||||
- API sağlayıcıları başarısız olduğunda güvenilir bir geri dönüş istersiniz
|
||||
- Codex CLI veya diğer yerel AI CLI'leri çalıştırıyor ve bunları yeniden kullanmak istiyorsunuz
|
||||
- CLI arka ucu araç erişimi için MCP local loopback köprüsünü anlamak istiyorsunuz
|
||||
summary: 'CLI arka uçları: isteğe bağlı MCP araç köprüsü ile yerel AI CLI geri dönüşü'
|
||||
- Codex CLI veya diğer yerel AI CLI'larını çalıştırıyorsunuz ve bunları yeniden kullanmak istiyorsunuz
|
||||
- CLI arka ucu araç erişimi için MCP loopback köprüsünü anlamak istiyorsunuz
|
||||
summary: 'CLI arka uçları: isteğe bağlı MCP araç köprüsüyle yerel AI CLI geri dönüşü'
|
||||
title: CLI Arka Uçları
|
||||
x-i18n:
|
||||
generated_at: "2026-04-16T19:31:15Z"
|
||||
generated_at: "2026-04-22T08:54:54Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 381273532a8622bc4628000a6fb999712b12af08faade2b5f2b7ac4cc7d23efe
|
||||
source_hash: 3566d4f2b7a841473a4ed6379c1abd8dbd06c392dbff15ca37c4f8ea1e1ead51
|
||||
source_path: gateway/cli-backends.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# CLI arka uçları (geri dönüş çalışma zamanı)
|
||||
|
||||
OpenClaw, API sağlayıcıları kapalı olduğunda, hız sınırlamasına takıldığında
|
||||
OpenClaw, API sağlayıcıları kullanılamadığında, hız sınırına takıldığında
|
||||
veya geçici olarak hatalı davrandığında **metinle sınırlı bir geri dönüş**
|
||||
olarak **yerel AI CLI'leri** çalıştırabilir. Bu tasarım kasıtlı olarak temkinlidir:
|
||||
olarak **yerel AI CLI'larını** çalıştırabilir. Bu özellikle temkinli bir
|
||||
tasarımdır:
|
||||
|
||||
- **OpenClaw araçları doğrudan eklenmez**, ancak `bundleMcp: true` olan arka uçlar
|
||||
araçları bir loopback MCP köprüsü üzerinden alabilir.
|
||||
- Bunu destekleyen CLI'ler için **JSONL akışı**.
|
||||
- **OpenClaw araçları doğrudan enjekte edilmez**, ancak `bundleMcp: true`
|
||||
kullanan arka uçlar döngüsel MCP köprüsü üzerinden Gateway araçlarını
|
||||
alabilir.
|
||||
- Bunu destekleyen CLI'lar için **JSONL akışı**.
|
||||
- **Oturumlar desteklenir** (böylece takip eden turlar tutarlı kalır).
|
||||
- CLI görüntü yollarını kabul ediyorsa **görüntüler iletilebilir**.
|
||||
|
||||
Bu, birincil yol olmaktan çok bir **güvenlik ağı** olarak tasarlanmıştır. Bunu,
|
||||
harici API'lere güvenmeden “her zaman çalışan” metin yanıtları istediğinizde kullanın.
|
||||
Bu, birincil yol olmaktan ziyade bir **güvenlik ağı** olarak tasarlanmıştır.
|
||||
Dış API'lere güvenmeden “her zaman çalışır” metin yanıtları istediğinizde bunu
|
||||
kullanın.
|
||||
|
||||
ACP oturum denetimleri, arka plan görevleri,
|
||||
iz/konuşma bağlama ve kalıcı harici kodlama oturumları olan tam bir harness çalışma zamanı istiyorsanız,
|
||||
bunun yerine [ACP Agents](/tr/tools/acp-agents) kullanın. CLI arka uçları ACP değildir.
|
||||
ACP oturum denetimleri, arka plan görevleri, iş parçacığı/konuşma bağlama ve
|
||||
kalıcı harici kodlama oturumları içeren tam bir harness çalışma zamanı
|
||||
istiyorsanız bunun yerine [ACP Agents](/tr/tools/acp-agents) kullanın. CLI arka
|
||||
uçları ACP değildir.
|
||||
|
||||
## Yeni başlayanlar için hızlı başlangıç
|
||||
|
||||
Codex CLI'yi **hiç yapılandırma olmadan** kullanabilirsiniz (paketle gelen OpenAI Plugin
|
||||
varsayılan bir arka uç kaydeder):
|
||||
Codex CLI'ı **hiçbir yapılandırma olmadan** kullanabilirsiniz (paketlenmiş
|
||||
OpenAI Plugin varsayılan bir arka uç kaydeder):
|
||||
|
||||
```bash
|
||||
openclaw agent --message "hi" --model codex-cli/gpt-5.4
|
||||
```
|
||||
|
||||
Gateway'iniz launchd/systemd altında çalışıyorsa ve PATH minimal ise, yalnızca
|
||||
Gateway'niz launchd/systemd altında çalışıyorsa ve PATH sınırlıysa yalnızca
|
||||
komut yolunu ekleyin:
|
||||
|
||||
```json5
|
||||
@ -59,15 +63,18 @@ komut yolunu ekleyin:
|
||||
}
|
||||
```
|
||||
|
||||
Hepsi bu. CLI'nin kendisinin ötesinde anahtar, ek kimlik doğrulama yapılandırması gerekmez.
|
||||
Hepsi bu kadar. CLI'ın kendisi dışında anahtar gerekmez, ek yetkilendirme
|
||||
yapılandırması da gerekmez.
|
||||
|
||||
Paketle gelen bir CLI arka ucunu bir gateway ana bilgisayarında **birincil mesaj sağlayıcısı**
|
||||
olarak kullanırsanız, yapılandırmanız bu arka uca bir model ref içinde veya
|
||||
`agents.defaults.cliBackends` altında açıkça başvurduğunda OpenClaw artık ilgili paketli Plugin'i otomatik olarak yükler.
|
||||
Paketlenmiş bir CLI arka ucunu bir Gateway ana makinesinde **birincil mesaj
|
||||
sağlayıcısı** olarak kullanıyorsanız OpenClaw artık yapılandırmanız model
|
||||
başvurusunda veya `agents.defaults.cliBackends` altında bu arka uca açıkça
|
||||
başvurduğunda sahip olan paketlenmiş Plugin'i otomatik olarak yükler.
|
||||
|
||||
## Bunu geri dönüş olarak kullanma
|
||||
|
||||
Yalnızca birincil modeller başarısız olduğunda çalışması için geri dönüş listenize bir CLI arka ucu ekleyin:
|
||||
Bir CLI arka ucunu geri dönüş listenize ekleyin; böylece yalnızca birincil
|
||||
modeller başarısız olduğunda çalışır:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -88,9 +95,10 @@ Yalnızca birincil modeller başarısız olduğunda çalışması için geri dö
|
||||
|
||||
Notlar:
|
||||
|
||||
- `agents.defaults.models` (izin listesi) kullanıyorsanız, CLI arka uç modellerinizi de oraya eklemeniz gerekir.
|
||||
- Birincil sağlayıcı başarısız olursa (kimlik doğrulama, hız sınırları, zaman aşımları), OpenClaw
|
||||
sıradaki CLI arka ucunu dener.
|
||||
- `agents.defaults.models` (izin listesi) kullanıyorsanız CLI arka ucu
|
||||
modellerinizi de oraya eklemelisiniz.
|
||||
- Birincil sağlayıcı başarısız olursa (yetkilendirme, hız sınırları, zaman
|
||||
aşımları), OpenClaw sıradaki CLI arka ucunu dener.
|
||||
|
||||
## Yapılandırmaya genel bakış
|
||||
|
||||
@ -100,8 +108,9 @@ Tüm CLI arka uçları şunun altında bulunur:
|
||||
agents.defaults.cliBackends
|
||||
```
|
||||
|
||||
Her giriş bir **sağlayıcı kimliği** ile anahtarlanır (`codex-cli`, `my-cli` gibi).
|
||||
Sağlayıcı kimliği, model ref'inizin sol tarafı olur:
|
||||
Her giriş bir **sağlayıcı kimliği** ile anahtarlanır (ör. `codex-cli`,
|
||||
`my-cli`).
|
||||
Sağlayıcı kimliği model başvurunuzun sol tarafı olur:
|
||||
|
||||
```
|
||||
<provider>/<model>
|
||||
@ -131,7 +140,7 @@ Sağlayıcı kimliği, model ref'inizin sol tarafı olur:
|
||||
sessionMode: "existing",
|
||||
sessionIdFields: ["session_id", "conversation_id"],
|
||||
systemPromptArg: "--system",
|
||||
// Codex tarzı CLI'ler bunun yerine bir istem dosyasına işaret edebilir:
|
||||
// Codex tarzı CLI'lar bunun yerine bir istem dosyasına işaret edebilir:
|
||||
// systemPromptFileConfigArg: "-c",
|
||||
// systemPromptFileConfigKey: "model_instructions_file",
|
||||
systemPromptWhen: "first",
|
||||
@ -147,83 +156,101 @@ Sağlayıcı kimliği, model ref'inizin sol tarafı olur:
|
||||
|
||||
## Nasıl çalışır
|
||||
|
||||
1. Sağlayıcı önekine göre (`codex-cli/...`) bir arka uç **seçer**.
|
||||
2. Aynı OpenClaw istemi + çalışma alanı bağlamını kullanarak bir sistem istemi **oluşturur**.
|
||||
3. Geçmiş tutarlı kalsın diye CLI'yi bir oturum kimliğiyle (destekleniyorsa) **çalıştırır**.
|
||||
4. Çıktıyı (JSON veya düz metin) **ayrıştırır** ve son metni döndürür.
|
||||
5. Arka uç başına oturum kimliklerini **kalıcılaştırır**, böylece takip eden istekler aynı CLI oturumunu yeniden kullanır.
|
||||
1. Sağlayıcı önekine (`codex-cli/...`) göre bir **arka uç seçer**.
|
||||
2. Aynı OpenClaw istemi + çalışma alanı bağlamını kullanarak bir **sistem
|
||||
istemi oluşturur**.
|
||||
3. Geçmiş tutarlı kalsın diye CLI'ı destekleniyorsa bir oturum kimliğiyle
|
||||
**çalıştırır**.
|
||||
Paketlenmiş `claude-cli` arka ucu, OpenClaw oturumu başına bir Claude stdio
|
||||
sürecini canlı tutar ve takip eden turları stream-json stdin üzerinden
|
||||
gönderir.
|
||||
4. **Çıktıyı ayrıştırır** (JSON veya düz metin) ve son metni döndürür.
|
||||
5. Takip eden istekler aynı CLI oturumunu yeniden kullansın diye arka uç başına
|
||||
**oturum kimliklerini kalıcı hale getirir**.
|
||||
|
||||
<Note>
|
||||
Paketle gelen Anthropic `claude-cli` arka ucu yeniden desteklenmektedir. Anthropic çalışanları
|
||||
bize OpenClaw tarzı Claude CLI kullanımına yeniden izin verildiğini söyledi, bu yüzden OpenClaw
|
||||
Anthropic yeni bir ilke yayımlamadıkça bu entegrasyon için
|
||||
`claude -p` kullanımını onaylanmış kabul eder.
|
||||
Paketlenmiş Anthropic `claude-cli` arka ucu yeniden desteklenmektedir.
|
||||
Anthropic çalışanları bize OpenClaw tarzı Claude CLI kullanımına yeniden izin
|
||||
verildiğini söyledi; bu yüzden Anthropic yeni bir ilke yayımlamadığı sürece
|
||||
OpenClaw, `claude -p` kullanımını bu entegrasyon için onaylı kabul eder.
|
||||
</Note>
|
||||
|
||||
Paketle gelen OpenAI `codex-cli` arka ucu, OpenClaw'ın sistem istemini
|
||||
Codex'in `model_instructions_file` yapılandırma geçersiz kılması (`-c
|
||||
Paketlenmiş OpenAI `codex-cli` arka ucu, OpenClaw'ın sistem istemini Codex'in
|
||||
`model_instructions_file` yapılandırma geçersiz kılması (`-c
|
||||
model_instructions_file="..."`) üzerinden geçirir. Codex, Claude tarzı bir
|
||||
`--append-system-prompt` bayrağı sunmaz, bu yüzden OpenClaw her yeni Codex CLI oturumu için
|
||||
oluşturulan istemi geçici bir dosyaya yazar.
|
||||
`--append-system-prompt` bayrağı sunmadığı için OpenClaw her yeni Codex CLI
|
||||
oturumu için derlenmiş istemi geçici bir dosyaya yazar.
|
||||
|
||||
Paketle gelen Anthropic `claude-cli` arka ucu, OpenClaw Skills anlık görüntüsünü
|
||||
iki yolla alır: eklenen sistem istemindeki kompakt OpenClaw Skills kataloğu ve
|
||||
`--plugin-dir` ile geçirilen geçici bir Claude Code Plugin. Plugin yalnızca o agent/oturum için
|
||||
uygun Skills öğelerini içerir; böylece Claude Code'un yerel beceri çözücüsü,
|
||||
OpenClaw'ın istemde normalde duyuracağı aynı filtrelenmiş kümesi görür. Skill env/API anahtarı geçersiz kılmaları
|
||||
çalıştırma için alt süreç ortamına yine OpenClaw tarafından uygulanır.
|
||||
Paketlenmiş Anthropic `claude-cli` arka ucu OpenClaw Skills anlık görüntüsünü
|
||||
iki yolla alır: eklenen sistem istemindeki derli toplu OpenClaw Skills
|
||||
kataloğu ve `--plugin-dir` ile geçirilen geçici bir Claude Code Plugin'i.
|
||||
Plugin, yalnızca o aracı/oturum için uygun Skills öğelerini içerir; böylece
|
||||
Claude Code'un yerel beceri çözücüsü, OpenClaw'ın aksi halde istemde
|
||||
duyuracağı aynı filtrelenmiş kümeyi görür. Skill env/API anahtarı geçersiz
|
||||
kılmaları yine de çalışma için alt süreç ortamına OpenClaw tarafından
|
||||
uygulanır.
|
||||
|
||||
## Oturumlar
|
||||
|
||||
- CLI oturumları destekliyorsa, oturum kimliği gönderilmesi için `sessionArg` (`--session-id` gibi) veya
|
||||
kimliğin birden çok bayrağa eklenmesi gerekiyorsa
|
||||
`sessionArgs` (`{sessionId}` yer tutuculu) ayarlayın.
|
||||
- CLI farklı bayraklara sahip bir **resume alt komutu** kullanıyorsa,
|
||||
`resumeArgs` ayarlayın (yeniden devam ederken `args` yerine geçer) ve isteğe bağlı olarak
|
||||
`resumeOutput` ayarlayın (JSON olmayan devamlar için).
|
||||
- CLI oturumları destekliyorsa `sessionArg` (ör. `--session-id`) veya kimliğin
|
||||
birden fazla bayrağa eklenmesi gerektiğinde `sessionArgs`
|
||||
(`{sessionId}` yer tutucusu) ayarlayın.
|
||||
- CLI farklı bayraklarla bir **resume alt komutu** kullanıyorsa `resumeArgs`
|
||||
değerini ayarlayın (yeniden başlatırken `args` yerine geçer) ve isteğe bağlı
|
||||
olarak `resumeOutput` ayarlayın (JSON olmayan yeniden başlatmalar için).
|
||||
- `sessionMode`:
|
||||
- `always`: her zaman bir oturum kimliği gönderir (saklanmış yoksa yeni bir UUID).
|
||||
- `existing`: yalnızca daha önce saklanmış bir oturum kimliği varsa gönderir.
|
||||
- `always`: her zaman bir oturum kimliği gönderir (saklı kimlik yoksa yeni
|
||||
UUID).
|
||||
- `existing`: yalnızca daha önce bir kimlik saklandıysa oturum kimliği
|
||||
gönderir.
|
||||
- `none`: hiçbir zaman oturum kimliği göndermez.
|
||||
- Paketlenmiş `claude-cli` arka ucu `liveSession: "claude-stdio"` kullanır;
|
||||
böylece aktif olduğu sürece takip eden turlar canlı Claude sürecini yeniden
|
||||
kullanır. Gateway yeniden başlatılırsa veya boşta duran süreç kapanırsa
|
||||
OpenClaw saklı Claude oturum kimliğinden devam eder.
|
||||
|
||||
Serileştirme notları:
|
||||
|
||||
- `serialize: true`, aynı şeritteki çalıştırmaları sıralı tutar.
|
||||
- Çoğu CLI tek bir sağlayıcı şeridinde serileştirme yapar.
|
||||
- Kimlik doğrulama durumu değiştiğinde OpenClaw saklanan CLI oturumu yeniden kullanımını bırakır; buna yeniden giriş, belirteç döndürme veya değiştirilmiş kimlik doğrulama profili kimlik bilgisi dahildir.
|
||||
- `serialize: true`, aynı hat üzerindeki çalıştırmaların sıralı kalmasını
|
||||
sağlar.
|
||||
- Çoğu CLI tek bir sağlayıcı hattında serileştirme yapar.
|
||||
- Arka uç yetkilendirme durumu değiştiğinde, buna yeniden giriş, belirteç
|
||||
döndürme veya değişmiş bir yetkilendirme profili kimlik bilgisi dahil olmak
|
||||
üzere, OpenClaw saklı CLI oturumu yeniden kullanımını bırakır.
|
||||
|
||||
## Görüntüler (iletim)
|
||||
## Görüntüler (iletme)
|
||||
|
||||
CLI'niz görüntü yollarını kabul ediyorsa, `imageArg` ayarlayın:
|
||||
CLI'ınız görüntü yollarını kabul ediyorsa `imageArg` ayarlayın:
|
||||
|
||||
```json5
|
||||
imageArg: "--image",
|
||||
imageMode: "repeat"
|
||||
```
|
||||
|
||||
OpenClaw base64 görüntüleri geçici dosyalara yazar. `imageArg` ayarlanmışsa bu
|
||||
yollar CLI bağımsız değişkenleri olarak geçirilir. `imageArg` eksikse OpenClaw
|
||||
dosya yollarını isteme ekler (yol ekleme); bu, düz yollardan yerel dosyaları otomatik
|
||||
yükleyen CLI'ler için yeterlidir.
|
||||
OpenClaw base64 görüntülerini geçici dosyalara yazar. `imageArg` ayarlıysa bu
|
||||
yollar CLI bağımsız değişkenleri olarak geçirilir. `imageArg` yoksa OpenClaw
|
||||
dosya yollarını isteme ekler (yol ekleme); bu, düz yollardan yerel dosyaları
|
||||
otomatik yükleyen CLI'lar için yeterlidir.
|
||||
|
||||
## Girdiler / çıktılar
|
||||
|
||||
- `output: "json"` (varsayılan), JSON ayrıştırmayı ve metin + oturum kimliği çıkarmayı dener.
|
||||
- Gemini CLI JSON çıktısı için, `usage` eksik veya boş olduğunda OpenClaw yanıt metnini `response` alanından,
|
||||
kullanımı ise `stats` alanından okur.
|
||||
- `output: "jsonl"`, JSONL akışlarını ayrıştırır (örneğin Codex CLI `--json`) ve mevcutsa son agent mesajını artı oturum
|
||||
tanımlayıcılarını çıkarır.
|
||||
- `output: "text"`, stdout'u son yanıt olarak ele alır.
|
||||
- `output: "json"` (varsayılan) JSON ayrıştırmayı dener ve metin + oturum
|
||||
kimliğini çıkarır.
|
||||
- Gemini CLI JSON çıktısı için OpenClaw, `usage` eksikse veya boşsa yanıt
|
||||
metnini `response` içinden ve kullanımı `stats` içinden okur.
|
||||
- `output: "jsonl"` JSONL akışlarını ayrıştırır (örneğin Codex CLI `--json`)
|
||||
ve mevcutsa son aracı mesajını ve oturum tanımlayıcılarını çıkarır.
|
||||
- `output: "text"` stdout'u son yanıt olarak ele alır.
|
||||
|
||||
Girdi modları:
|
||||
|
||||
- `input: "arg"` (varsayılan), istemi son CLI bağımsız değişkeni olarak geçirir.
|
||||
- `input: "stdin"`, istemi stdin üzerinden gönderir.
|
||||
- İstem çok uzunsa ve `maxPromptArgChars` ayarlanmışsa stdin kullanılır.
|
||||
- `input: "arg"` (varsayılan) istemi son CLI bağımsız değişkeni olarak geçirir.
|
||||
- `input: "stdin"` istemi stdin üzerinden gönderir.
|
||||
- İstem çok uzunsa ve `maxPromptArgChars` ayarlıysa stdin kullanılır.
|
||||
|
||||
## Varsayılanlar (Plugin sahipliğinde)
|
||||
## Varsayılanlar (Plugin tarafından sahiplenilir)
|
||||
|
||||
Paketle gelen OpenAI Plugin ayrıca `codex-cli` için bir varsayılan kaydeder:
|
||||
Paketlenmiş OpenAI Plugin'i `codex-cli` için de bir varsayılan kaydeder:
|
||||
|
||||
- `command: "codex"`
|
||||
- `args: ["exec","--json","--color","never","--sandbox","workspace-write","--skip-git-repo-check"]`
|
||||
@ -234,7 +261,8 @@ Paketle gelen OpenAI Plugin ayrıca `codex-cli` için bir varsayılan kaydeder:
|
||||
- `imageArg: "--image"`
|
||||
- `sessionMode: "existing"`
|
||||
|
||||
Paketle gelen Google Plugin ayrıca `google-gemini-cli` için bir varsayılan kaydeder:
|
||||
Paketlenmiş Google Plugin'i `google-gemini-cli` için de bir varsayılan
|
||||
kaydeder:
|
||||
|
||||
- `command: "gemini"`
|
||||
- `args: ["--output-format", "json", "--prompt", "{prompt}"]`
|
||||
@ -245,32 +273,33 @@ Paketle gelen Google Plugin ayrıca `google-gemini-cli` için bir varsayılan ka
|
||||
- `sessionMode: "existing"`
|
||||
- `sessionIdFields: ["session_id", "sessionId"]`
|
||||
|
||||
Önkoşul: yerel Gemini CLI kurulmuş olmalı ve PATH üzerinde
|
||||
`gemini` olarak kullanılabilir olmalıdır (`brew install gemini-cli` veya
|
||||
Ön koşul: yerel Gemini CLI kurulmuş olmalı ve `PATH` üzerinde `gemini` olarak
|
||||
erişilebilir olmalıdır (`brew install gemini-cli` veya
|
||||
`npm install -g @google/gemini-cli`).
|
||||
|
||||
Gemini CLI JSON notları:
|
||||
|
||||
- Yanıt metni JSON `response` alanından okunur.
|
||||
- Yanıt metni JSON içindeki `response` alanından okunur.
|
||||
- `usage` yoksa veya boşsa kullanım `stats` alanına geri döner.
|
||||
- `stats.cached`, OpenClaw `cacheRead` değerine normalize edilir.
|
||||
- `stats.input` eksikse OpenClaw girdi belirteçlerini
|
||||
- `stats.cached`, OpenClaw `cacheRead` içine normalize edilir.
|
||||
- `stats.input` eksikse OpenClaw giriş token'larını
|
||||
`stats.input_tokens - stats.cached` üzerinden türetir.
|
||||
|
||||
Yalnızca gerekirse geçersiz kılın (yaygın olan: mutlak `command` yolu).
|
||||
Yalnızca gerekirse geçersiz kılın (yaygın durum: mutlak `command` yolu).
|
||||
|
||||
## Plugin sahipliğindeki varsayılanlar
|
||||
## Plugin tarafından sahiplenilen varsayılanlar
|
||||
|
||||
CLI arka ucu varsayılanları artık Plugin yüzeyinin bir parçasıdır:
|
||||
|
||||
- Plugin'ler bunları `api.registerCliBackend(...)` ile kaydeder.
|
||||
- Arka uç `id` değeri, model ref'lerdeki sağlayıcı öneki olur.
|
||||
- `agents.defaults.cliBackends.<id>` içindeki kullanıcı yapılandırması yine de Plugin varsayılanını geçersiz kılar.
|
||||
- Arka uca özgü yapılandırma temizliği, isteğe bağlı
|
||||
`normalizeConfig` kancası aracılığıyla Plugin sahipliğinde kalır.
|
||||
- Arka uç `id` değeri model başvurularındaki sağlayıcı öneki olur.
|
||||
- `agents.defaults.cliBackends.<id>` içindeki kullanıcı yapılandırması yine de
|
||||
Plugin varsayılanını geçersiz kılar.
|
||||
- Arka uca özgü yapılandırma temizliği isteğe bağlı `normalizeConfig` kancası
|
||||
üzerinden Plugin sahipliğinde kalır.
|
||||
|
||||
Küçük istem/mesaj uyumluluk uyarlamalarına ihtiyaç duyan Plugin'ler, bir sağlayıcıyı veya CLI arka ucunu değiştirmeden
|
||||
iki yönlü metin dönüşümleri tanımlayabilir:
|
||||
Küçük istem/mesaj uyumluluk uyarlamaları gereken Plugin'ler, bir sağlayıcıyı
|
||||
veya CLI arka ucunu değiştirmeden iki yönlü metin dönüşümleri tanımlayabilir:
|
||||
|
||||
```typescript
|
||||
api.registerTextTransforms({
|
||||
@ -287,52 +316,60 @@ api.registerTextTransforms({
|
||||
});
|
||||
```
|
||||
|
||||
`input`, CLI'ye geçirilen sistem istemini ve kullanıcı istemini yeniden yazar. `output`
|
||||
ise OpenClaw kendi denetim işaretçilerini ve kanal teslimini işlemeden önce
|
||||
akışlı asistan deltalarını ve ayrıştırılmış son metni yeniden yazar.
|
||||
`input`, CLI'a geçirilen sistem istemini ve kullanıcı istemini yeniden yazar.
|
||||
`output`, OpenClaw kendi denetim işaretçilerini ve kanal teslimini
|
||||
işlemeden önce akışlı yardımcı delta'larını ve ayrıştırılmış son metni yeniden
|
||||
yazar.
|
||||
|
||||
Claude Code stream-json uyumlu JSONL üreten CLI'ler için,
|
||||
o arka ucun yapılandırmasında `jsonlDialect: "claude-stream-json"` ayarlayın.
|
||||
Claude Code stream-json ile uyumlu JSONL üreten CLI'lar için o arka ucun
|
||||
yapılandırmasında `jsonlDialect: "claude-stream-json"` ayarlayın.
|
||||
|
||||
## Bundle MCP katmanları
|
||||
|
||||
CLI arka uçları OpenClaw araç çağrılarını **doğrudan** almaz, ancak bir arka uç
|
||||
`bundleMcp: true` ile oluşturulmuş bir MCP yapılandırma katmanına katılabilir.
|
||||
`bundleMcp: true` ile oluşturulmuş bir MCP yapılandırma katmanını kullanmayı
|
||||
seçebilir.
|
||||
|
||||
Mevcut paketli davranış:
|
||||
Mevcut paketlenmiş davranış:
|
||||
|
||||
- `claude-cli`: oluşturulmuş sıkı MCP yapılandırma dosyası
|
||||
- `claude-cli`: oluşturulmuş katı MCP yapılandırma dosyası
|
||||
- `codex-cli`: `mcp_servers` için satır içi yapılandırma geçersiz kılmaları
|
||||
- `google-gemini-cli`: oluşturulmuş Gemini sistem ayarları dosyası
|
||||
|
||||
Bundle MCP etkin olduğunda OpenClaw:
|
||||
|
||||
- CLI sürecine gateway araçlarını açan bir loopback HTTP MCP sunucusu başlatır
|
||||
- köprüyü oturum başına bir belirteçle (`OPENCLAW_MCP_TOKEN`) kimlik doğrular
|
||||
- Gateway araçlarını CLI sürecine açığa çıkaran döngüsel HTTP MCP sunucusu
|
||||
başlatır
|
||||
- köprüyü oturum başına belirteçle (`OPENCLAW_MCP_TOKEN`) doğrular
|
||||
- araç erişimini geçerli oturum, hesap ve kanal bağlamıyla sınırlar
|
||||
- geçerli çalışma alanı için etkin bundle-MCP sunucularını yükler
|
||||
- bunları mevcut arka uç MCP yapılandırması/ayar şekliyle birleştirir
|
||||
- başlatma yapılandırmasını sahip olan uzantının arka uç sahipliğindeki entegrasyon modunu kullanarak yeniden yazar
|
||||
- bunları mevcut arka uç MCP yapılandırması/ayar biçimiyle birleştirir
|
||||
- başlatma yapılandırmasını sahip uzantının arka uç tarafından sahiplenilen
|
||||
entegrasyon modunu kullanarak yeniden yazar
|
||||
|
||||
Hiç MCP sunucusu etkin değilse bile, OpenClaw bir arka uç bundle MCP'ye katıldığında
|
||||
arka plandaki çalıştırmalar yalıtılmış kalsın diye yine de sıkı bir yapılandırma ekler.
|
||||
Hiçbir MCP sunucusu etkin değilse bile bir arka uç bundle MCP'yi seçtiğinde
|
||||
OpenClaw yine de katı bir yapılandırma enjekte eder; böylece arka plan
|
||||
çalıştırmaları yalıtılmış kalır.
|
||||
|
||||
## Sınırlamalar
|
||||
|
||||
- **Doğrudan OpenClaw araç çağrıları yoktur.** OpenClaw, araç çağrılarını
|
||||
CLI arka ucu protokolüne eklemez. Arka uçlar gateway araçlarını yalnızca
|
||||
`bundleMcp: true` ile katıldıklarında görür.
|
||||
- **Akış arka uca özeldir.** Bazı arka uçlar JSONL akışı yapar; diğerleri
|
||||
çıkışa kadar arabelleğe alır.
|
||||
- **Yapılandırılmış çıktılar**, CLI'nin JSON biçimine bağlıdır.
|
||||
- **Codex CLI oturumları**, metin çıktısı üzerinden devam eder (JSONL yoktur); bu da
|
||||
ilk `--json` çalıştırmasına göre daha az yapılandırılmıştır. OpenClaw oturumları yine de
|
||||
normal çalışır.
|
||||
- **Doğrudan OpenClaw araç çağrıları yoktur.** OpenClaw, araç çağrılarını CLI
|
||||
arka ucu protokolüne enjekte etmez. Arka uçlar yalnızca `bundleMcp: true`
|
||||
seçtiklerinde Gateway araçlarını görür.
|
||||
- **Akış arka uca özeldir.** Bazı arka uçlar JSONL akışı yapar, diğerleri çıkışa
|
||||
kadar arabelleğe alır.
|
||||
- **Yapılandırılmış çıktılar** CLI'ın JSON biçimine bağlıdır.
|
||||
- **Codex CLI oturumları** metin çıktısı üzerinden devam eder (JSONL yoktur);
|
||||
bu, ilk `--json` çalıştırmasına göre daha az yapılandırılmıştır. OpenClaw
|
||||
oturumları yine de normal çalışır.
|
||||
|
||||
## Sorun giderme
|
||||
|
||||
- **CLI bulunamadı**: `command` değerini tam yol olarak ayarlayın.
|
||||
- **Yanlış model adı**: `provider/model` → CLI modeli eşlemesi için `modelAliases` kullanın.
|
||||
- **Oturum sürekliliği yok**: `sessionArg` ayarlı olduğundan ve `sessionMode` değerinin
|
||||
`none` olmadığından emin olun (`Codex CLI` şu anda JSON çıktısıyla devam edemez).
|
||||
- **Görüntüler yok sayılıyor**: `imageArg` ayarlayın (ve CLI'nin dosya yollarını desteklediğini doğrulayın).
|
||||
- **Yanlış model adı**: `provider/model` → CLI modeli eşlemesi için
|
||||
`modelAliases` kullanın.
|
||||
- **Oturum sürekliliği yok**: `sessionArg` ayarlı olduğundan ve `sessionMode`
|
||||
değerinin `none` olmadığından emin olun (Codex CLI şu anda JSON çıktısıyla
|
||||
devam edemez).
|
||||
- **Görüntüler yok sayılıyor**: `imageArg` ayarlayın (ve CLI'ın dosya
|
||||
yollarını desteklediğini doğrulayın).
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,38 +1,38 @@
|
||||
---
|
||||
read_when:
|
||||
- Heartbeat temposunu veya mesajlaşmayı ayarlama
|
||||
- Zamanlanmış görevler için heartbeat ile cron arasında karar verme
|
||||
summary: Heartbeat polling mesajları ve bildirim kuralları
|
||||
- Zamanlanmış görevler için Heartbeat ile Cron arasında karar verme
|
||||
summary: Heartbeat yoklama mesajları ve bildirim kuralları
|
||||
title: Heartbeat
|
||||
x-i18n:
|
||||
generated_at: "2026-04-11T02:44:36Z"
|
||||
generated_at: "2026-04-22T08:54:51Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: e4485072148753076d909867a623696829bf4a82dcd0479b95d5d0cae43100b0
|
||||
source_hash: 13004e4e20b02b08aaf16f22cdf664d0b59da69446ecb30453db51ffdfd1d267
|
||||
source_path: gateway/heartbeat.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Heartbeat (Gateway)
|
||||
|
||||
> **Heartbeat mi Cron mu?** Her birinin ne zaman kullanılacağına dair yönlendirme için [Automation & Tasks](/tr/automation) bölümüne bakın.
|
||||
> **Heartbeat mi Cron mu?** Hangisinin ne zaman kullanılacağıyla ilgili yönlendirme için [Automation & Tasks](/tr/automation) bölümüne bakın.
|
||||
|
||||
Heartbeat, ana oturumda **periyodik agent dönüşleri** çalıştırır; böylece model, sizi spamlamadan dikkat gerektiren her şeyi ortaya çıkarabilir.
|
||||
Heartbeat, sizi mesaj yağmuruna tutmadan dikkat gerektiren her şeyi modelin öne çıkarabilmesi için ana oturumda **periyodik agent turları** çalıştırır.
|
||||
|
||||
Heartbeat, zamanlanmış bir ana oturum dönüşüdür — [background task](/tr/automation/tasks) kaydı oluşturmaz.
|
||||
Görev kayıtları, ayrık işler içindir (ACP çalıştırmaları, alt agent'lar, yalıtılmış cron işleri).
|
||||
Heartbeat, zamanlanmış bir ana oturum turudur — [background task](/tr/automation/tasks) kaydı oluşturmaz.
|
||||
Görev kayıtları ayrık işler içindir (ACP çalıştırmaları, alt agent'lar, yalıtılmış cron işleri).
|
||||
|
||||
Sorun giderme: [Scheduled Tasks](/tr/automation/cron-jobs#troubleshooting)
|
||||
|
||||
## Hızlı başlangıç (başlangıç düzeyi)
|
||||
## Hızlı başlangıç (başlangıç seviyesi)
|
||||
|
||||
1. Heartbeat'i etkin bırakın (varsayılan `30m`, Anthropic OAuth/token kimlik doğrulaması için — Claude CLI yeniden kullanımı dahil — `1h`) veya kendi aralığınızı ayarlayın.
|
||||
2. Agent çalışma alanında küçük bir `HEARTBEAT.md` kontrol listesi ya da `tasks:` bloğu oluşturun (isteğe bağlı ancak önerilir).
|
||||
3. Heartbeat mesajlarının nereye gideceğine karar verin (`target: "none"` varsayılandır; son kişiye yönlendirmek için `target: "last"` ayarlayın).
|
||||
1. Heartbeat'leri etkin bırakın (varsayılan `30m`, Anthropic OAuth/token kimlik doğrulaması için — Claude CLI yeniden kullanımı dahil — `1h`) ya da kendi temponuzu ayarlayın.
|
||||
2. Agent çalışma alanında küçük bir `HEARTBEAT.md` kontrol listesi veya `tasks:` bloğu oluşturun (isteğe bağlı ama önerilir).
|
||||
3. Heartbeat mesajlarının nereye gitmesi gerektiğine karar verin (varsayılan `target: "none"` değeridir; son kişiye yönlendirmek için `target: "last"` ayarlayın).
|
||||
4. İsteğe bağlı: şeffaflık için heartbeat reasoning teslimini etkinleştirin.
|
||||
5. İsteğe bağlı: heartbeat çalıştırmaları yalnızca `HEARTBEAT.md` gerektiriyorsa hafif bootstrap bağlamı kullanın.
|
||||
5. İsteğe bağlı: heartbeat çalıştırmaları yalnızca `HEARTBEAT.md` gerektiriyorsa hafif başlangıç bağlamını kullanın.
|
||||
6. İsteğe bağlı: her heartbeat'te tam konuşma geçmişinin gönderilmesini önlemek için yalıtılmış oturumları etkinleştirin.
|
||||
7. İsteğe bağlı: heartbeat'leri etkin saatlerle sınırlandırın (yerel saat).
|
||||
7. İsteğe bağlı: heartbeat'leri etkin saatlerle sınırlayın (yerel saat).
|
||||
|
||||
Örnek yapılandırma:
|
||||
|
||||
@ -43,8 +43,8 @@ Sorun giderme: [Scheduled Tasks](/tr/automation/cron-jobs#troubleshooting)
|
||||
heartbeat: {
|
||||
every: "30m",
|
||||
target: "last", // son kişiye açık teslimat (varsayılan "none")
|
||||
directPolicy: "allow", // varsayılan: doğrudan/DM hedeflerine izin ver; bastırmak için "block" ayarlayın
|
||||
lightContext: true, // isteğe bağlı: yalnızca bootstrap dosyalarından HEARTBEAT.md enjekte edilir
|
||||
directPolicy: "allow", // varsayılan: doğrudan/DM hedeflerine izin ver; bastırmak için "block" ayarla
|
||||
lightContext: true, // isteğe bağlı: başlangıç dosyalarından yalnızca HEARTBEAT.md dosyasını ekle
|
||||
isolatedSession: true, // isteğe bağlı: her çalıştırmada yeni oturum (konuşma geçmişi yok)
|
||||
// activeHours: { start: "08:00", end: "24:00" },
|
||||
// includeReasoning: true, // isteğe bağlı: ayrı bir `Reasoning:` mesajı da gönder
|
||||
@ -56,25 +56,26 @@ Sorun giderme: [Scheduled Tasks](/tr/automation/cron-jobs#troubleshooting)
|
||||
|
||||
## Varsayılanlar
|
||||
|
||||
- Aralık: `30m` (veya algılanan kimlik doğrulama modu Anthropic OAuth/token olduğunda — Claude CLI yeniden kullanımı dahil — `1h`). `agents.defaults.heartbeat.every` ya da agent başına `agents.list[].heartbeat.every` ayarlayın; devre dışı bırakmak için `0m` kullanın.
|
||||
- Aralık: `30m` (veya Anthropic OAuth/token kimlik doğrulaması algılanan kimlik doğrulama modu olduğunda — Claude CLI yeniden kullanımı dahil — `1h`). `agents.defaults.heartbeat.every` ya da agent başına `agents.list[].heartbeat.every` ayarlayın; devre dışı bırakmak için `0m` kullanın.
|
||||
- İstem gövdesi (`agents.defaults.heartbeat.prompt` ile yapılandırılabilir):
|
||||
`Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.`
|
||||
- Heartbeat istemi, kullanıcı mesajı olarak **aynen** gönderilir. Sistem
|
||||
istemi, yalnızca varsayılan agent için heartbeat etkinse ve çalıştırma dahili olarak işaretlenmişse bir “Heartbeat” bölümü içerir.
|
||||
- Heartbeat'ler `0m` ile devre dışı bırakıldığında, modelin yalnızca heartbeat'e özel talimatları görmemesi için normal çalıştırmalarda da `HEARTBEAT.md`
|
||||
bootstrap bağlamına dahil edilmez.
|
||||
- Etkin saatler (`heartbeat.activeHours`) yapılandırılan saat diliminde denetlenir.
|
||||
Pencerenin dışında heartbeat'ler, pencere içindeki bir sonraki tik'e kadar atlanır.
|
||||
- Heartbeat istemi kullanıcı mesajı olarak **aynen** gönderilir. Sistem
|
||||
istemi yalnızca varsayılan
|
||||
agent için heartbeat'ler etkinse ve çalıştırma dahili olarak işaretlendiyse bir “Heartbeat” bölümü içerir.
|
||||
- Heartbeat'ler `0m` ile devre dışı bırakıldığında, normal çalıştırmalar da başlangıç bağlamından `HEARTBEAT.md`
|
||||
dosyasını çıkarır; böylece model yalnızca heartbeat'e özel yönergeleri görmez.
|
||||
- Etkin saatler (`heartbeat.activeHours`) yapılandırılmış saat diliminde kontrol edilir.
|
||||
Pencerenin dışında heartbeat'ler, pencere içindeki bir sonraki tick'e kadar atlanır.
|
||||
|
||||
## Heartbeat istemi ne için kullanılır
|
||||
|
||||
Varsayılan istem bilerek geniş tutulmuştur:
|
||||
|
||||
- **Arka plan görevleri**: “Consider outstanding tasks”, agent'ın
|
||||
takipleri (gelen kutusu, takvim, hatırlatıcılar, kuyruktaki işler) gözden geçirmesini ve acil olan her şeyi ortaya çıkarmasını teşvik eder.
|
||||
- **İnsan check-in'i**: “Checkup sometimes on your human during day time”, ara sıra hafif bir “ihtiyacın olan bir şey var mı?” mesajını teşvik eder; ancak yapılandırdığınız yerel saat dilimi kullanılarak gece spam'inden kaçınılır (bkz. [/concepts/timezone](/tr/concepts/timezone)).
|
||||
- **Arka plan görevleri**: “Consider outstanding tasks” ifadesi agent'ı
|
||||
takip edilmesi gerekenleri (gelen kutusu, takvim, hatırlatmalar, sıradaki işler) gözden geçirmeye ve acil olanları öne çıkarmaya yönlendirir.
|
||||
- **İnsan kontrolü**: “Checkup sometimes on your human during day time” ifadesi ara sıra hafif bir “bir şeye ihtiyacın var mı?” mesajını teşvik eder, ancak yapılandırdığınız yerel saat dilimini kullanarak gece spam'ini önler (bkz. [/concepts/timezone](/tr/concepts/timezone)).
|
||||
|
||||
Heartbeat, tamamlanmış [background tasks](/tr/automation/tasks) işlemlerine tepki verebilir; ancak heartbeat çalıştırmasının kendisi bir görev kaydı oluşturmaz.
|
||||
Heartbeat, tamamlanan [background tasks](/tr/automation/tasks) öğelerine tepki verebilir, ancak heartbeat çalıştırmasının kendisi bir görev kaydı oluşturmaz.
|
||||
|
||||
Bir heartbeat'in çok belirli bir şey yapmasını istiyorsanız (ör. “Gmail PubSub
|
||||
istatistiklerini kontrol et” veya “gateway sağlığını doğrula”), `agents.defaults.heartbeat.prompt` (veya
|
||||
@ -83,14 +84,15 @@ istatistiklerini kontrol et” veya “gateway sağlığını doğrula”), `age
|
||||
## Yanıt sözleşmesi
|
||||
|
||||
- Dikkat gerektiren bir şey yoksa **`HEARTBEAT_OK`** ile yanıt verin.
|
||||
- Heartbeat çalıştırmaları sırasında OpenClaw, **yanıtın başında veya sonunda**
|
||||
göründüğünde `HEARTBEAT_OK` ifadesini bir onay olarak değerlendirir. Bu belirteç kaldırılır ve kalan içerik **≤ `ackMaxChars`** (varsayılan: 300) ise yanıt bırakılır.
|
||||
- `HEARTBEAT_OK`, bir yanıtın **ortasında** görünürse özel olarak
|
||||
değerlendirilmez.
|
||||
- Heartbeat çalıştırmaları sırasında OpenClaw, `HEARTBEAT_OK` ifadesini yanıtta
|
||||
**başta veya sonda** göründüğünde bir onay olarak değerlendirir. Bu belirteç çıkarılır ve
|
||||
kalan içerik **≤ `ackMaxChars`** ise (varsayılan: 300) yanıt düşürülür.
|
||||
- `HEARTBEAT_OK` yanıtın **ortasında** görünürse özel
|
||||
bir işlem uygulanmaz.
|
||||
- Uyarılar için **`HEARTBEAT_OK` eklemeyin**; yalnızca uyarı metnini döndürün.
|
||||
|
||||
Heartbeat dışında, bir mesajın başındaki/sonundaki başıboş `HEARTBEAT_OK`
|
||||
kaldırılır ve günlüğe kaydedilir; yalnızca `HEARTBEAT_OK` olan bir mesaj bırakılır.
|
||||
Heartbeat dışında, bir mesajın başında/sonunda yer alan başıboş `HEARTBEAT_OK`
|
||||
çıkarılır ve günlüğe yazılır; yalnızca `HEARTBEAT_OK` içeren bir mesaj düşürülür.
|
||||
|
||||
## Yapılandırma
|
||||
|
||||
@ -101,9 +103,9 @@ kaldırılır ve günlüğe kaydedilir; yalnızca `HEARTBEAT_OK` olan bir mesaj
|
||||
heartbeat: {
|
||||
every: "30m", // varsayılan: 30m (0m devre dışı bırakır)
|
||||
model: "anthropic/claude-opus-4-6",
|
||||
includeReasoning: false, // varsayılan: false (mevcut olduğunda ayrı `Reasoning:` mesajı teslim et)
|
||||
lightContext: false, // varsayılan: false; true, çalışma alanı bootstrap dosyalarından yalnızca HEARTBEAT.md dosyasını tutar
|
||||
isolatedSession: false, // varsayılan: false; true, her heartbeat'i yeni bir oturumda çalıştırır (konuşma geçmişi yok)
|
||||
includeReasoning: false, // varsayılan: false (mümkün olduğunda ayrı `Reasoning:` mesajı teslim et)
|
||||
lightContext: false, // varsayılan: false; true olduğunda çalışma alanı başlangıç dosyalarından yalnızca HEARTBEAT.md tutulur
|
||||
isolatedSession: false, // varsayılan: false; true olduğunda her heartbeat yeni bir oturumda çalışır (konuşma geçmişi yok)
|
||||
target: "last", // varsayılan: none | seçenekler: last | none | <channel id> (çekirdek veya plugin, ör. "bluebubbles")
|
||||
to: "+15551234567", // isteğe bağlı kanala özgü geçersiz kılma
|
||||
accountId: "ops-bot", // isteğe bağlı çok hesaplı kanal kimliği
|
||||
@ -118,18 +120,18 @@ kaldırılır ve günlüğe kaydedilir; yalnızca `HEARTBEAT_OK` olan bir mesaj
|
||||
### Kapsam ve öncelik
|
||||
|
||||
- `agents.defaults.heartbeat`, genel heartbeat davranışını ayarlar.
|
||||
- `agents.list[].heartbeat`, bunun üzerine birleştirilir; herhangi bir agent'ın `heartbeat` bloğu varsa, heartbeat'i **yalnızca bu agent'lar** çalıştırır.
|
||||
- `agents.list[].heartbeat` bunun üstüne birleşir; herhangi bir agent'ta `heartbeat` bloğu varsa heartbeat'leri **yalnızca o agent'lar** çalıştırır.
|
||||
- `channels.defaults.heartbeat`, tüm kanallar için görünürlük varsayılanlarını ayarlar.
|
||||
- `channels.<channel>.heartbeat`, kanal varsayılanlarını geçersiz kılar.
|
||||
- `channels.<channel>.accounts.<id>.heartbeat` (çok hesaplı kanallar), kanal başına ayarları geçersiz kılar.
|
||||
- `channels.<channel>.accounts.<id>.heartbeat` (çok hesaplı kanallar) kanal başına ayarları geçersiz kılar.
|
||||
|
||||
### Agent başına heartbeat'ler
|
||||
|
||||
Herhangi bir `agents.list[]` girdisi bir `heartbeat` bloğu içeriyorsa, heartbeat'i
|
||||
**yalnızca bu agent'lar** çalıştırır. Agent başına blok, `agents.defaults.heartbeat`
|
||||
üzerine birleştirilir (böylece paylaşılan varsayılanları bir kez ayarlayıp agent başına geçersiz kılabilirsiniz).
|
||||
Herhangi bir `agents.list[]` girdisi bir `heartbeat` bloğu içeriyorsa, heartbeat'leri
|
||||
**yalnızca o agent'lar** çalıştırır. Agent başına blok `agents.defaults.heartbeat`
|
||||
üstüne birleşir (böylece ortak varsayılanları bir kez ayarlayıp agent başına geçersiz kılabilirsiniz).
|
||||
|
||||
Örnek: iki agent, heartbeat'i yalnızca ikinci agent çalıştırır.
|
||||
Örnek: iki agent, heartbeat'leri yalnızca ikinci agent çalıştırır.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -159,7 +161,7 @@ Herhangi bir `agents.list[]` girdisi bir `heartbeat` bloğu içeriyorsa, heartbe
|
||||
|
||||
### Etkin saatler örneği
|
||||
|
||||
Heartbeat'leri belirli bir saat diliminde mesai saatleriyle sınırlandırın:
|
||||
Heartbeat'leri belirli bir saat diliminde mesai saatleriyle sınırlayın:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -171,7 +173,7 @@ Heartbeat'leri belirli bir saat diliminde mesai saatleriyle sınırlandırın:
|
||||
activeHours: {
|
||||
start: "09:00",
|
||||
end: "22:00",
|
||||
timezone: "America/New_York", // isteğe bağlı; ayarlıysa userTimezone kullanılır, aksi halde host saat dilimi
|
||||
timezone: "America/New_York", // isteğe bağlı; ayarlıysa userTimezone kullanılır, aksi halde ana makine saat dilimi
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -179,17 +181,17 @@ Heartbeat'leri belirli bir saat diliminde mesai saatleriyle sınırlandırın:
|
||||
}
|
||||
```
|
||||
|
||||
Bu pencerenin dışında (Doğu saatiyle sabah 9'dan önce veya akşam 10'dan sonra), heartbeat'ler atlanır. Pencere içindeki bir sonraki zamanlanmış tik normal şekilde çalışır.
|
||||
Bu pencerenin dışında (Doğu saatiyle sabah 9'dan önce veya gece 10'dan sonra), heartbeat'ler atlanır. Pencere içindeki bir sonraki zamanlanmış tick normal şekilde çalışır.
|
||||
|
||||
### 7/24 kurulum
|
||||
|
||||
Heartbeat'lerin gün boyu çalışmasını istiyorsanız şu desenlerden birini kullanın:
|
||||
Heartbeat'lerin tüm gün çalışmasını istiyorsanız şu kalıplardan birini kullanın:
|
||||
|
||||
- `activeHours` alanını tamamen atlayın (zaman penceresi kısıtlaması yoktur; bu varsayılan davranıştır).
|
||||
- Tam günlük pencere ayarlayın: `activeHours: { start: "00:00", end: "24:00" }`.
|
||||
- `activeHours` alanını tamamen atlayın (zaman penceresi kısıtlaması yoktur; varsayılan davranış budur).
|
||||
- Tam günlük bir pencere ayarlayın: `activeHours: { start: "00:00", end: "24:00" }`.
|
||||
|
||||
Aynı `start` ve `end` saatini ayarlamayın (örneğin `08:00` ile `08:00`).
|
||||
Bu, sıfır genişlikli pencere olarak değerlendirilir; bu yüzden heartbeat'ler her zaman atlanır.
|
||||
Bu sıfır genişlikli pencere olarak değerlendirilir, bu yüzden heartbeat'ler her zaman atlanır.
|
||||
|
||||
### Çok hesaplı örnek
|
||||
|
||||
@ -204,7 +206,7 @@ Telegram gibi çok hesaplı kanallarda belirli bir hesabı hedeflemek için `acc
|
||||
heartbeat: {
|
||||
every: "1h",
|
||||
target: "telegram",
|
||||
to: "12345678:topic:42", // isteğe bağlı: belirli bir konu/başlık dizisine yönlendir
|
||||
to: "12345678:topic:42", // isteğe bağlı: belirli bir konu/iş parçacığına yönlendir
|
||||
accountId: "ops-bot",
|
||||
},
|
||||
},
|
||||
@ -222,51 +224,54 @@ Telegram gibi çok hesaplı kanallarda belirli bir hesabı hedeflemek için `acc
|
||||
|
||||
### Alan notları
|
||||
|
||||
- `every`: heartbeat aralığı (süre dizgesi; varsayılan birim = dakika).
|
||||
- `every`: heartbeat aralığı (süre dizesi; varsayılan birim = dakika).
|
||||
- `model`: heartbeat çalıştırmaları için isteğe bağlı model geçersiz kılması (`provider/model`).
|
||||
- `includeReasoning`: etkinleştirildiğinde, mevcut olduğunda ayrı `Reasoning:` mesajını da teslim eder (`/reasoning on` ile aynı yapı).
|
||||
- `lightContext`: true olduğunda, heartbeat çalıştırmaları hafif bootstrap bağlamı kullanır ve çalışma alanı bootstrap dosyalarından yalnızca `HEARTBEAT.md` dosyasını tutar.
|
||||
- `isolatedSession`: true olduğunda, her heartbeat önceki konuşma geçmişi olmadan yeni bir oturumda çalışır. Cron `sessionTarget: "isolated"` ile aynı yalıtım desenini kullanır. Heartbeat başına token maliyetini ciddi ölçüde azaltır. En yüksek tasarruf için `lightContext: true` ile birlikte kullanın. Teslimat yönlendirmesi yine ana oturum bağlamını kullanır.
|
||||
- `includeReasoning`: etkinleştirildiğinde, mümkün olduğunda ayrı `Reasoning:` mesajını da teslim eder (`/reasoning on` ile aynı biçim).
|
||||
- `lightContext`: true olduğunda, heartbeat çalıştırmaları hafif başlangıç bağlamı kullanır ve çalışma alanı başlangıç dosyalarından yalnızca `HEARTBEAT.md` dosyasını tutar.
|
||||
- `isolatedSession`: true olduğunda, her heartbeat önceki konuşma geçmişi olmadan yeni bir oturumda çalışır. Cron `sessionTarget: "isolated"` ile aynı yalıtım düzenini kullanır. Heartbeat başına token maliyetini ciddi ölçüde azaltır. En yüksek tasarruf için `lightContext: true` ile birlikte kullanın. Teslim yönlendirmesi yine de ana oturum bağlamını kullanır.
|
||||
- `session`: heartbeat çalıştırmaları için isteğe bağlı oturum anahtarı.
|
||||
- `main` (varsayılan): agent ana oturumu.
|
||||
- Açık oturum anahtarı (`openclaw sessions --json` veya [sessions CLI](/cli/sessions) çıktısından kopyalayın).
|
||||
- Oturum anahtarı biçimleri: bkz. [Sessions](/tr/concepts/session) ve [Groups](/tr/channels/groups).
|
||||
- Oturum anahtarı biçimleri için bkz. [Sessions](/tr/concepts/session) ve [Groups](/tr/channels/groups).
|
||||
- `target`:
|
||||
- `last`: son kullanılan harici kanala teslim et.
|
||||
- açık kanal: yapılandırılmış herhangi bir kanal veya plugin kimliği; örneğin `discord`, `matrix`, `telegram` veya `whatsapp`.
|
||||
- `none` (varsayılan): heartbeat'i çalıştırır ancak haricen **teslim etmez**.
|
||||
- `directPolicy`: doğrudan/DM teslim davranışını kontrol eder:
|
||||
- `allow` (varsayılan): doğrudan/DM heartbeat teslimine izin verir.
|
||||
- `block`: doğrudan/DM teslimini bastırır (`reason=dm-blocked`).
|
||||
- `to`: isteğe bağlı alıcı geçersiz kılması (kanala özgü kimlik; ör. WhatsApp için E.164 veya Telegram chat id). Telegram konu/thread'leri için `<chatId>:topic:<messageThreadId>` kullanın.
|
||||
- `accountId`: çok hesaplı kanallar için isteğe bağlı hesap kimliği. `target: "last"` olduğunda, hesap kimliği destekliyorsa çözümlenen son kanala uygulanır; aksi halde yok sayılır. Hesap kimliği, çözümlenen kanal için yapılandırılmış bir hesapla eşleşmezse teslimat atlanır.
|
||||
- açık kanal: örneğin `discord`, `matrix`, `telegram` veya `whatsapp` gibi yapılandırılmış herhangi bir kanal veya plugin kimliği.
|
||||
- `none` (varsayılan): heartbeat'i çalıştır ama haricen **teslim etme**.
|
||||
- `directPolicy`: doğrudan/DM teslim davranışını denetler:
|
||||
- `allow` (varsayılan): doğrudan/DM heartbeat teslimine izin ver.
|
||||
- `block`: doğrudan/DM teslimini bastır (`reason=dm-blocked`).
|
||||
- `to`: isteğe bağlı alıcı geçersiz kılması (kanala özgü kimlik, ör. WhatsApp için E.164 veya Telegram sohbet kimliği). Telegram konuları/iş parçacıkları için `<chatId>:topic:<messageThreadId>` kullanın.
|
||||
- `accountId`: çok hesaplı kanallar için isteğe bağlı hesap kimliği. `target: "last"` olduğunda hesap kimliği, hesap destekliyorsa çözümlenen son kanala uygulanır; aksi halde yok sayılır. Hesap kimliği çözümlenen kanal için yapılandırılmış bir hesapla eşleşmiyorsa teslimat atlanır.
|
||||
- `prompt`: varsayılan istem gövdesini geçersiz kılar (birleştirilmez).
|
||||
- `ackMaxChars`: `HEARTBEAT_OK` sonrasında teslimata izin verilmeden önce izin verilen en fazla karakter sayısı.
|
||||
- `suppressToolErrorWarnings`: true olduğunda, heartbeat çalıştırmaları sırasında tool hata uyarısı payload'larını bastırır.
|
||||
- `activeHours`: heartbeat çalıştırmalarını bir zaman penceresiyle sınırlandırır. `start` (HH:MM, dahil; gün başlangıcı için `00:00` kullanın), `end` (HH:MM, hariç; gün sonu için `24:00` kullanılabilir) ve isteğe bağlı `timezone` içeren nesne.
|
||||
- Atlanırsa veya `"user"` ise: ayarlıysa `agents.defaults.userTimezone` kullanılır, aksi halde host sistem saat dilimine geri dönülür.
|
||||
- `"local"`: her zaman host sistem saat dilimini kullanır.
|
||||
- Herhangi bir IANA tanımlayıcısı (ör. `America/New_York`): doğrudan kullanılır; geçersizse yukarıdaki `"user"` davranışına geri dönülür.
|
||||
- Etkin pencere için `start` ve `end` eşit olmamalıdır; eşit değerler sıfır genişlikli (her zaman pencere dışında) olarak değerlendirilir.
|
||||
- Etkin pencerenin dışında, heartbeat'ler pencere içindeki bir sonraki tik'e kadar atlanır.
|
||||
- `ackMaxChars`: teslimattan önce `HEARTBEAT_OK` sonrasında izin verilen en fazla karakter.
|
||||
- `suppressToolErrorWarnings`: true olduğunda heartbeat çalıştırmaları sırasında araç hatası uyarı yüklerini bastırır.
|
||||
- `activeHours`: heartbeat çalıştırmalarını bir zaman penceresiyle sınırlar. `start` (HH:MM, dahil; gün başlangıcı için `00:00` kullanın), `end` (HH:MM hariç; gün sonu için `24:00` kullanılabilir) ve isteğe bağlı `timezone` içeren nesne.
|
||||
- Atlandığında veya `"user"` olduğunda: ayarlıysa `agents.defaults.userTimezone` kullanılır, aksi halde ana makinenin sistem saat dilimine geri düşülür.
|
||||
- `"local"`: her zaman ana makinenin sistem saat dilimini kullanır.
|
||||
- Herhangi bir IANA tanımlayıcısı (ör. `America/New_York`): doğrudan kullanılır; geçersizse yukarıdaki `"user"` davranışına geri düşülür.
|
||||
- Etkin bir pencere için `start` ve `end` eşit olmamalıdır; eşit değerler sıfır genişlikli (her zaman pencere dışında) olarak değerlendirilir.
|
||||
- Etkin pencerenin dışında heartbeat'ler, pencere içindeki bir sonraki tick'e kadar atlanır.
|
||||
|
||||
## Teslim davranışı
|
||||
|
||||
- Heartbeat'ler varsayılan olarak agent'ın ana oturumunda çalışır (`agent:<id>:<mainKey>`),
|
||||
veya `session.scope = "global"` olduğunda `global` kapsamında çalışır. Bunu
|
||||
Discord/WhatsApp/vb. gibi belirli bir kanal oturumuna geçirmek için `session` ayarlayın.
|
||||
- `session` yalnızca çalıştırma bağlamını etkiler; teslimat `target` ve `to` tarafından kontrol edilir.
|
||||
- Belirli bir kanal/alıcıya teslim etmek için `target` + `to` ayarlayın. `target: "last"` ile
|
||||
teslimat, o oturum için son kullanılan harici kanalı kullanır.
|
||||
- Heartbeat teslimatları varsayılan olarak doğrudan/DM hedeflerine izin verir. Heartbeat dönüşünü yine çalıştırırken doğrudan hedeflere gönderimi bastırmak için `directPolicy: "block"` ayarlayın.
|
||||
veya `session.scope = "global"` olduğunda `global` içinde çalışır. Bunu
|
||||
belirli bir kanal oturumuna (Discord/WhatsApp/vb.) geçersiz kılmak için `session` ayarlayın.
|
||||
- `session` yalnızca çalıştırma bağlamını etkiler; teslimat `target` ve `to` tarafından denetlenir.
|
||||
- Belirli bir kanala/alıcıya teslim etmek için `target` + `to` ayarlayın. `target: "last"` ile
|
||||
teslimat, o oturum için son harici kanalı kullanır.
|
||||
- Heartbeat teslimatları varsayılan olarak doğrudan/DM hedeflerine izin verir. Heartbeat turu yine çalışırken doğrudan hedefli gönderimleri bastırmak için `directPolicy: "block"` ayarlayın.
|
||||
- Ana kuyruk meşgulse heartbeat atlanır ve daha sonra yeniden denenir.
|
||||
- `target` harici bir hedefe çözülmezse çalıştırma yine gerçekleşir ancak
|
||||
dışa giden mesaj gönderilmez.
|
||||
- `showOk`, `showAlerts` ve `useIndicator` seçeneklerinin tümü devre dışıysa çalıştırma, en baştan `reason=alerts-disabled` olarak atlanır.
|
||||
- Yalnızca uyarı teslimatı devre dışıysa, OpenClaw heartbeat'i yine çalıştırabilir, vadesi gelen görev zaman damgalarını güncelleyebilir, oturumun boşta kalma zaman damgasını geri yükleyebilir ve dışa dönük uyarı payload'unu bastırabilir.
|
||||
- Yalnızca heartbeat'e ait yanıtlar oturumu canlı tutmaz; boşta kalma süresinin sona ermesi normal davranmaya devam etsin diye son `updatedAt`
|
||||
değeri geri yüklenir.
|
||||
- Ayrık [background tasks](/tr/automation/tasks), ana oturumun bir şeyi hızlıca fark etmesi gerektiğinde bir sistem olayı sıraya koyabilir ve heartbeat'i uyandırabilir. Bu uyandırma, heartbeat çalıştırmasını bir background task yapmaz.
|
||||
- `target` hiçbir harici hedefe çözümlenmezse çalıştırma yine gerçekleşir ancak
|
||||
giden mesaj gönderilmez.
|
||||
- `showOk`, `showAlerts` ve `useIndicator` değerlerinin tümü devre dışıysa çalıştırma en baştan `reason=alerts-disabled` olarak atlanır.
|
||||
- Yalnızca uyarı teslimatı devre dışıysa OpenClaw yine de heartbeat'i çalıştırabilir, zamanı gelen görev zaman damgalarını güncelleyebilir, oturumun boşta zaman damgasını geri yükleyebilir ve dışa dönük uyarı yükünü bastırabilir.
|
||||
- Çözümlenen heartbeat hedefi yazıyor göstergesini destekliyorsa OpenClaw,
|
||||
heartbeat çalıştırması etkin durumdayken yazıyor göstergesini gösterir. Bu, heartbeat'in
|
||||
sohbet çıktısını göndereceği hedefin aynısını kullanır ve `typingMode: "never"` ile devre dışı bırakılır.
|
||||
- Yalnızca heartbeat'e özgü yanıtlar oturumu canlı tutmaz; son `updatedAt`
|
||||
geri yüklenir, böylece boşta kalma süresinin dolması normal davranır.
|
||||
- Ayrık [background tasks](/tr/automation/tasks), ana oturumun bir şeyi hızlıca fark etmesi gerektiğinde bir sistem olayı sıraya alıp heartbeat'i uyandırabilir. Bu uyandırma, heartbeat çalıştırmasını bir background task yapmaz.
|
||||
|
||||
## Görünürlük denetimleri
|
||||
|
||||
@ -279,7 +284,7 @@ channels:
|
||||
heartbeat:
|
||||
showOk: false # HEARTBEAT_OK öğesini gizle (varsayılan)
|
||||
showAlerts: true # Uyarı mesajlarını göster (varsayılan)
|
||||
useIndicator: true # Gösterge olayları yay (varsayılan)
|
||||
useIndicator: true # Gösterge olayları üret (varsayılan)
|
||||
telegram:
|
||||
heartbeat:
|
||||
showOk: true # Telegram'da OK onaylarını göster
|
||||
@ -290,17 +295,17 @@ channels:
|
||||
showAlerts: false # Bu hesap için uyarı teslimatını bastır
|
||||
```
|
||||
|
||||
Öncelik: hesap bazında → kanal bazında → kanal varsayılanları → yerleşik varsayılanlar.
|
||||
Öncelik sırası: hesap başına → kanal başına → kanal varsayılanları → yerleşik varsayılanlar.
|
||||
|
||||
### Her bayrağın yaptığı şey
|
||||
### Her bayrak ne yapar
|
||||
|
||||
- `showOk`: model yalnızca OK içeren bir yanıt döndürdüğünde `HEARTBEAT_OK` onayı gönderir.
|
||||
- `showAlerts`: model OK olmayan bir yanıt döndürdüğünde uyarı içeriğini gönderir.
|
||||
- `useIndicator`: UI durum yüzeyleri için gösterge olayları yayar.
|
||||
- `useIndicator`: UI durum yüzeyleri için gösterge olayları üretir.
|
||||
|
||||
**Üçü de** false ise OpenClaw heartbeat çalıştırmasını tamamen atlar (model çağrısı yapılmaz).
|
||||
|
||||
### Kanal bazında ve hesap bazında örnekler
|
||||
### Kanal başına ve hesap başına örnekler
|
||||
|
||||
```yaml
|
||||
channels:
|
||||
@ -321,32 +326,32 @@ channels:
|
||||
showOk: true
|
||||
```
|
||||
|
||||
### Yaygın desenler
|
||||
### Yaygın kalıplar
|
||||
|
||||
| Amaç | Yapılandırma |
|
||||
| ---------------------------------------- | ----------------------------------------------------------------------------------------- |
|
||||
| Varsayılan davranış (sessiz OK'ler, uyarılar açık) | _(yapılandırma gerekmez)_ |
|
||||
| Amaç | Yapılandırma |
|
||||
| ---------------------------------------- | ---------------------------------------------------------------------------------------- |
|
||||
| Varsayılan davranış (sessiz OK'ler, uyarılar açık) | _(yapılandırma gerekmez)_ |
|
||||
| Tamamen sessiz (mesaj yok, gösterge yok) | `channels.defaults.heartbeat: { showOk: false, showAlerts: false, useIndicator: false }` |
|
||||
| Yalnızca gösterge (mesaj yok) | `channels.defaults.heartbeat: { showOk: false, showAlerts: false, useIndicator: true }` |
|
||||
| Yalnızca tek bir kanalda OK'ler | `channels.telegram.heartbeat: { showOk: true }` |
|
||||
| Yalnızca gösterge (mesaj yok) | `channels.defaults.heartbeat: { showOk: false, showAlerts: false, useIndicator: true }` |
|
||||
| Yalnızca tek bir kanalda OK'ler | `channels.telegram.heartbeat: { showOk: true }` |
|
||||
|
||||
## HEARTBEAT.md (isteğe bağlı)
|
||||
|
||||
Çalışma alanında bir `HEARTBEAT.md` dosyası varsa, varsayılan istem agent'a
|
||||
onu okumasını söyler. Bunu “heartbeat kontrol listeniz” gibi düşünün: küçük, kararlı ve
|
||||
Çalışma alanında bir `HEARTBEAT.md` dosyası varsa varsayılan istem,
|
||||
agent'a bunu okumasını söyler. Bunu sizin “heartbeat kontrol listeniz” gibi düşünün: küçük, kararlı ve
|
||||
her 30 dakikada bir eklenmesi güvenli.
|
||||
|
||||
Normal çalıştırmalarda `HEARTBEAT.md`, yalnızca varsayılan agent için heartbeat yönlendirmesi
|
||||
etkin olduğunda enjekte edilir. Heartbeat temposunu `0m` ile devre dışı bırakmak veya
|
||||
`includeSystemPromptSection: false` ayarlamak, onu normal bootstrap
|
||||
Normal çalıştırmalarda `HEARTBEAT.md` yalnızca heartbeat yönlendirmesi
|
||||
varsayılan agent için etkin olduğunda eklenir. Heartbeat temposunu `0m` ile devre dışı bırakmak veya
|
||||
`includeSystemPromptSection: false` ayarlamak, bunu normal başlangıç
|
||||
bağlamından çıkarır.
|
||||
|
||||
`HEARTBEAT.md` varsa ancak fiilen boşsa (yalnızca boş satırlar ve
|
||||
`# Heading` gibi markdown başlıkları içeriyorsa), OpenClaw API çağrılarından tasarruf etmek için heartbeat çalıştırmasını atlar.
|
||||
Bu atlama `reason=empty-heartbeat-file` olarak raporlanır.
|
||||
Dosya yoksa heartbeat yine çalışır ve model ne yapacağına karar verir.
|
||||
`HEARTBEAT.md` varsa ama fiilen boşsa (yalnızca boş satırlar ve
|
||||
`# Heading` gibi markdown başlıkları içeriyorsa), OpenClaw API çağrılarını korumak için heartbeat çalıştırmasını atlar.
|
||||
Bu atlama `reason=empty-heartbeat-file` olarak bildirilir.
|
||||
Dosya eksikse heartbeat yine de çalışır ve model ne yapacağına karar verir.
|
||||
|
||||
İstem şişmesini önlemek için küçük tutun (kısa kontrol listesi veya hatırlatmalar).
|
||||
İstem şişmesini önlemek için bunu küçük tutun (kısa kontrol listesi veya hatırlatmalar).
|
||||
|
||||
Örnek `HEARTBEAT.md`:
|
||||
|
||||
@ -354,13 +359,14 @@ Dosya yoksa heartbeat yine çalışır ve model ne yapacağına karar verir.
|
||||
# Heartbeat kontrol listesi
|
||||
|
||||
- Hızlı tarama: gelen kutularında acil bir şey var mı?
|
||||
- Gündüzse, bekleyen başka bir şey yoksa hafif bir check-in yap.
|
||||
- Gündüz vaktiyse, başka bekleyen bir şey yoksa hafif bir yoklama yap.
|
||||
- Bir görev engellendiyse, _neyin eksik olduğunu_ yaz ve Peter'a bir dahaki sefere sor.
|
||||
```
|
||||
|
||||
### `tasks:` blokları
|
||||
|
||||
`HEARTBEAT.md`, heartbeat içindeki aralığa dayalı kontroller için küçük bir yapılandırılmış `tasks:` bloğunu da destekler.
|
||||
`HEARTBEAT.md`, heartbeat içinde aralık tabanlı
|
||||
kontroller için küçük ve yapılandırılmış bir `tasks:` bloğunu da destekler.
|
||||
|
||||
Örnek:
|
||||
|
||||
@ -369,80 +375,85 @@ tasks:
|
||||
|
||||
- name: inbox-triage
|
||||
interval: 30m
|
||||
prompt: "Check for urgent unread emails and flag anything time sensitive."
|
||||
prompt: "Acil okunmamış e-postaları kontrol et ve zamana duyarlı olanları işaretle."
|
||||
- name: calendar-scan
|
||||
interval: 2h
|
||||
prompt: "Check for upcoming meetings that need prep or follow-up."
|
||||
prompt: "Hazırlık veya takip gerektiren yaklaşan toplantıları kontrol et."
|
||||
|
||||
# Ek talimatlar
|
||||
# Ek yönergeler
|
||||
|
||||
- Uyarıları kısa tut.
|
||||
- Vadesi gelen tüm görevlerden sonra dikkat gerektiren bir şey yoksa HEARTBEAT_OK ile yanıt ver.
|
||||
- Zamanı gelen tüm görevlerden sonra dikkat gerektiren bir şey yoksa HEARTBEAT_OK ile yanıt ver.
|
||||
```
|
||||
|
||||
Davranış:
|
||||
|
||||
- OpenClaw, `tasks:` bloğunu ayrıştırır ve her görevi kendi `interval` değerine göre kontrol eder.
|
||||
- Bu tik için yalnızca **vadesi gelen** görevler heartbeat istemine eklenir.
|
||||
- Vadesi gelen görev yoksa heartbeat tamamen atlanır (`reason=no-tasks-due`); böylece boşa model çağrısı yapılmaz.
|
||||
- `HEARTBEAT.md` içindeki görev dışı içerik korunur ve vadesi gelen görev listesinden sonra ek bağlam olarak eklenir.
|
||||
- Görev son çalıştırma zaman damgaları oturum durumunda (`heartbeatTaskState`) saklanır; böylece aralıklar normal yeniden başlatmalardan etkilenmez.
|
||||
- OpenClaw `tasks:` bloğunu ayrıştırır ve her görevi kendi `interval` değerine göre kontrol eder.
|
||||
- Yalnızca zamanı **gelmiş** görevler o tick için heartbeat istemine eklenir.
|
||||
- Hiçbir görevin zamanı gelmemişse heartbeat tamamen atlanır (`reason=no-tasks-due`); böylece boşa model çağrısı yapılmaz.
|
||||
- `HEARTBEAT.md` içindeki görev dışı içerik korunur ve zamanı gelmiş görev listesinden sonra ek bağlam olarak eklenir.
|
||||
- Görev son çalıştırma zaman damgaları oturum durumunda (`heartbeatTaskState`) saklanır, böylece aralıklar normal yeniden başlatmalardan sonra da korunur.
|
||||
- Görev zaman damgaları yalnızca heartbeat çalıştırması normal yanıt yolunu tamamladıktan sonra ilerletilir. Atlanan `empty-heartbeat-file` / `no-tasks-due` çalıştırmaları görevleri tamamlanmış olarak işaretlemez.
|
||||
|
||||
Görev modu, tümünü her tikte çalıştırma maliyetine katlanmadan tek bir heartbeat dosyasında birkaç periyodik kontrol tutmak istediğinizde kullanışlıdır.
|
||||
Görev modu, her tick'te hepsi için ödeme yapmadan tek bir heartbeat dosyasında birkaç periyodik kontrol tutmak istediğinizde kullanışlıdır.
|
||||
|
||||
### Agent, HEARTBEAT.md dosyasını güncelleyebilir mi?
|
||||
### Agent HEARTBEAT.md dosyasını güncelleyebilir mi?
|
||||
|
||||
Evet — eğer ondan bunu isterseniz.
|
||||
Evet — isterseniz.
|
||||
|
||||
`HEARTBEAT.md`, agent çalışma alanındaki normal bir dosyadır; bu yüzden agent'a
|
||||
(normal bir sohbette) şunun gibi bir şey söyleyebilirsiniz:
|
||||
`HEARTBEAT.md`, agent çalışma alanındaki normal bir dosyadır; bu yüzden
|
||||
agent'a (normal bir sohbette) şunlardan biri gibi bir şey söyleyebilirsiniz:
|
||||
|
||||
- “Günlük takvim kontrolü eklemek için `HEARTBEAT.md` dosyasını güncelle.”
|
||||
- “`HEARTBEAT.md` dosyasını daha kısa ve gelen kutusu takiplerine odaklı olacak şekilde yeniden yaz.”
|
||||
|
||||
Bunun proaktif olarak olmasını istiyorsanız, heartbeat isteminize şu gibi açık bir satır da ekleyebilirsiniz: “Kontrol listesi bayatlamaya başlarsa, daha iyi bir sürümle HEARTBEAT.md dosyasını güncelle.”
|
||||
Bunun proaktif olarak gerçekleşmesini istiyorsanız heartbeat isteminize
|
||||
şu gibi açık bir satır da ekleyebilirsiniz: “Kontrol listesi bayatlamaya başlarsa, daha iyisiyle HEARTBEAT.md
|
||||
dosyasını güncelle.”
|
||||
|
||||
Güvenlik notu: `HEARTBEAT.md` içine sırlar (API anahtarları, telefon numaraları, özel token'lar) koymayın — çünkü istem bağlamının bir parçası olur.
|
||||
Güvenlik notu: `HEARTBEAT.md` içine sırlar (API anahtarları, telefon numaraları, özel token'lar) koymayın —
|
||||
istem bağlamının bir parçası olur.
|
||||
|
||||
## Manuel uyandırma (isteğe bağlı)
|
||||
## Elle uyandırma (istek üzerine)
|
||||
|
||||
Şununla bir sistem olayı sıraya koyabilir ve anında heartbeat tetikleyebilirsiniz:
|
||||
Bir sistem olayı sıraya alıp anında heartbeat tetiklemek için şunu kullanabilirsiniz:
|
||||
|
||||
```bash
|
||||
openclaw system event --text "Check for urgent follow-ups" --mode now
|
||||
openclaw system event --text "Acil takipleri kontrol et" --mode now
|
||||
```
|
||||
|
||||
Birden fazla agent için `heartbeat` yapılandırıldıysa, manuel uyandırma bu
|
||||
agent heartbeat'lerinin her birini hemen çalıştırır.
|
||||
Birden fazla agent'ta `heartbeat` yapılandırılmışsa, elle uyandırma bunların
|
||||
her birinin heartbeat'ini hemen çalıştırır.
|
||||
|
||||
Bir sonraki zamanlanmış tik'i beklemek için `--mode next-heartbeat` kullanın.
|
||||
Bir sonraki zamanlanmış tick'i beklemek için `--mode next-heartbeat` kullanın.
|
||||
|
||||
## Reasoning teslimi (isteğe bağlı)
|
||||
|
||||
Varsayılan olarak heartbeat'ler yalnızca son “answer” payload'unu teslim eder.
|
||||
Varsayılan olarak heartbeat'ler yalnızca son “answer” yükünü teslim eder.
|
||||
|
||||
Şeffaflık istiyorsanız şunu etkinleştirin:
|
||||
|
||||
- `agents.defaults.heartbeat.includeReasoning: true`
|
||||
|
||||
Etkinleştirildiğinde heartbeat'ler ayrıca
|
||||
`Reasoning:` önekiyle başlayan ayrı bir mesaj da teslim eder (`/reasoning on` ile aynı yapı). Bu, agent birden fazla oturum/codex yönetirken ve size neden ping atmaya karar verdiğini görmek istediğinizde yararlı olabilir
|
||||
— ancak isteyeceğinizden daha fazla dahili ayrıntıyı da sızdırabilir. Grup sohbetlerinde bunu kapalı tutmak daha iyidir.
|
||||
Etkinleştirildiğinde heartbeat'ler ayrıca başında
|
||||
`Reasoning:` bulunan ayrı bir mesaj da teslim eder (`/reasoning on` ile aynı biçim). Bu, agent
|
||||
birden fazla oturumu/codex'i yönetirken sizi neden dürtmeye karar verdiğini görmek istediğinizde yararlı olabilir
|
||||
— ancak istemediğinizden daha fazla iç ayrıntı da sızdırabilir. Grup sohbetlerinde bunu
|
||||
kapalı tutmanız tercih edilir.
|
||||
|
||||
## Maliyet farkındalığı
|
||||
|
||||
Heartbeat'ler tam agent dönüşleri çalıştırır. Daha kısa aralıklar daha fazla token harcar. Maliyeti azaltmak için:
|
||||
Heartbeat'ler tam agent turları çalıştırır. Daha kısa aralıklar daha fazla token tüketir. Maliyeti azaltmak için:
|
||||
|
||||
- Tam konuşma geçmişinin gönderilmesini önlemek için `isolatedSession: true` kullanın (çalıştırma başına ~100K token'dan ~2-5K'ye düşer).
|
||||
- Bootstrap dosyalarını yalnızca `HEARTBEAT.md` ile sınırlamak için `lightContext: true` kullanın.
|
||||
- Daha ucuz bir `model` ayarlayın (ör. `ollama/llama3.2:1b`).
|
||||
- Tam konuşma geçmişini göndermemek için `isolatedSession: true` kullanın (çalıştırma başına ~100K tokendan ~2-5K'ye düşer).
|
||||
- Başlangıç dosyalarını yalnızca `HEARTBEAT.md` ile sınırlamak için `lightContext: true` kullanın.
|
||||
- Daha ucuz bir `model` ayarlayın (örn. `ollama/llama3.2:1b`).
|
||||
- `HEARTBEAT.md` dosyasını küçük tutun.
|
||||
- Yalnızca dahili durum güncellemeleri istiyorsanız `target: "none"` kullanın.
|
||||
|
||||
## İlgili
|
||||
|
||||
- [Automation & Tasks](/tr/automation) — tüm otomasyon mekanizmaları tek bakışta
|
||||
- [Automation & Tasks](/tr/automation) — tüm otomasyon mekanizmalarına hızlı bakış
|
||||
- [Background Tasks](/tr/automation/tasks) — ayrık işlerin nasıl izlendiği
|
||||
- [Timezone](/tr/concepts/timezone) — saat diliminin heartbeat zamanlamasını nasıl etkilediği
|
||||
- [Troubleshooting](/tr/automation/cron-jobs#troubleshooting) — otomasyon sorunlarında hata ayıklama
|
||||
- [Troubleshooting](/tr/automation/cron-jobs#troubleshooting) — otomasyon sorunlarını ayıklama
|
||||
|
||||
@ -1,16 +1,16 @@
|
||||
---
|
||||
read_when:
|
||||
- Yeni bir OpenClaw plugin'i oluşturmak istiyorsunuz
|
||||
- Plugin geliştirme için hızlı bir başlangıca ihtiyacınız var
|
||||
- Yeni bir OpenClaw Plugin'i oluşturmak istiyorsunuz
|
||||
- Plugin geliştirme için hızlı bir başlangıç kılavuzuna ihtiyacınız var
|
||||
- OpenClaw'a yeni bir kanal, sağlayıcı, araç veya başka bir yetenek ekliyorsunuz
|
||||
sidebarTitle: Getting Started
|
||||
summary: İlk OpenClaw plugin'inizi dakikalar içinde oluşturun
|
||||
summary: İlk OpenClaw Plugin'inizi dakikalar içinde oluşturun
|
||||
title: Plugin Geliştirme
|
||||
x-i18n:
|
||||
generated_at: "2026-04-07T08:47:01Z"
|
||||
generated_at: "2026-04-22T08:54:51Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 509c1f5abe1a0a74966054ed79b71a1a7ee637a43b1214c424acfe62ddf48eef
|
||||
source_hash: 67368be311537f984f14bea9239b88c3eccf72a76c9dd1347bb041e02697ae24
|
||||
source_path: plugins/building-plugins.md
|
||||
workflow: 15
|
||||
---
|
||||
@ -19,47 +19,46 @@ x-i18n:
|
||||
|
||||
Plugin'ler OpenClaw'ı yeni yeteneklerle genişletir: kanallar, model sağlayıcıları,
|
||||
konuşma, gerçek zamanlı transkripsiyon, gerçek zamanlı ses, medya anlama, görsel
|
||||
üretimi, video üretimi, web getirme, web araması, ajan araçları veya bunların
|
||||
oluşturma, video oluşturma, web getirme, web arama, ajan araçları veya bunların
|
||||
herhangi bir kombinasyonu.
|
||||
|
||||
Plugin'inizi OpenClaw deposuna eklemeniz gerekmez. Onu
|
||||
[ClawHub](/tr/tools/clawhub) veya npm üzerinde yayınlayın; kullanıcılar da
|
||||
`openclaw plugins install <package-name>` ile kurar. OpenClaw önce ClawHub'ı dener ve
|
||||
ardından otomatik olarak npm'e fallback yapar.
|
||||
Plugin'inizi OpenClaw deposuna eklemeniz gerekmez. [ClawHub](/tr/tools/clawhub) veya npm'e
|
||||
yayınlayın; kullanıcılar `openclaw plugins install <package-name>` ile kurar.
|
||||
OpenClaw önce ClawHub'ı dener ve otomatik olarak npm'e geri düşer.
|
||||
|
||||
## Ön koşullar
|
||||
|
||||
- Node >= 22 ve bir paket yöneticisi (npm veya pnpm)
|
||||
- TypeScript (ESM) bilgisi
|
||||
- Repo içi plugin'ler için: deponun klonlanmış olması ve `pnpm install` çalıştırılmış olması
|
||||
- Repo içi Plugin'ler için: depo klonlanmış olmalı ve `pnpm install` çalıştırılmış olmalı
|
||||
|
||||
## Ne tür bir plugin?
|
||||
## Ne tür bir Plugin?
|
||||
|
||||
<CardGroup cols={3}>
|
||||
<Card title="Kanal plugin'i" icon="messages-square" href="/tr/plugins/sdk-channel-plugins">
|
||||
<Card title="Kanal Plugin'i" icon="messages-square" href="/tr/plugins/sdk-channel-plugins">
|
||||
OpenClaw'ı bir mesajlaşma platformuna bağlayın (Discord, IRC vb.)
|
||||
</Card>
|
||||
<Card title="Sağlayıcı plugin'i" icon="cpu" href="/tr/plugins/sdk-provider-plugins">
|
||||
<Card title="Sağlayıcı Plugin'i" icon="cpu" href="/tr/plugins/sdk-provider-plugins">
|
||||
Bir model sağlayıcısı ekleyin (LLM, proxy veya özel uç nokta)
|
||||
</Card>
|
||||
<Card title="Araç / hook plugin'i" icon="wrench">
|
||||
Ajan araçlarını, olay hook'larını veya hizmetleri kaydedin — aşağıdan devam edin
|
||||
<Card title="Araç / hook Plugin'i" icon="wrench">
|
||||
Ajan araçları, olay hook'ları veya hizmetler kaydedin — aşağıdan devam edin
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
Bir kanal plugin'i isteğe bağlıysa ve onboarding/kurulum
|
||||
çalıştığında kurulu olmayabilirse,
|
||||
`openclaw/plugin-sdk/channel-setup` içinden `createOptionalChannelSetupSurface(...)` kullanın. Bu,
|
||||
kurulum gereksinimini duyuran bir kurulum bağdaştırıcısı + sihirbaz çifti üretir ve
|
||||
plugin kurulana kadar gerçek yapılandırma yazımlarında kapalı şekilde başarısız olur.
|
||||
Bir kanal Plugin'i isteğe bağlıysa ve onboarding/kurulum çalıştığında kurulu
|
||||
olmayabilecekse, `openclaw/plugin-sdk/channel-setup` içindeki
|
||||
`createOptionalChannelSetupSurface(...)` kullanın. Bu, kurulum gereksinimini
|
||||
bildiren bir kurulum bağdaştırıcısı + sihirbaz çifti üretir ve Plugin kurulana
|
||||
kadar gerçek yapılandırma yazımlarında kapalı şekilde başarısız olur.
|
||||
|
||||
## Hızlı başlangıç: araç plugin'i
|
||||
## Hızlı başlangıç: araç Plugin'i
|
||||
|
||||
Bu rehber, bir ajan aracı kaydeden minimal bir plugin oluşturur. Kanal
|
||||
ve sağlayıcı plugin'leri için yukarıda bağlantısı verilen özel kılavuzlar vardır.
|
||||
Bu rehber, bir ajan aracı kaydeden minimal bir Plugin oluşturur. Kanal
|
||||
ve sağlayıcı Plugin'leri için yukarıda bağlantısı verilen özel kılavuzlar vardır.
|
||||
|
||||
<Steps>
|
||||
<Step title="Paketi ve manifest'i oluşturun">
|
||||
<Step title="Paketi ve manifest dosyasını oluşturun">
|
||||
<CodeGroup>
|
||||
```json package.json
|
||||
{
|
||||
@ -93,9 +92,9 @@ ve sağlayıcı plugin'leri için yukarıda bağlantısı verilen özel kılavuz
|
||||
```
|
||||
</CodeGroup>
|
||||
|
||||
Her plugin'in, yapılandırması olmasa bile bir manifest'e ihtiyacı vardır. Tam
|
||||
şema için bkz. [Manifest](/tr/plugins/manifest). Kanonik ClawHub
|
||||
yayınlama parçacıkları `docs/snippets/plugin-publish/` içinde yer alır.
|
||||
Her Plugin'in, yapılandırması olmasa bile bir manifest dosyasına ihtiyacı vardır. Tam şema için
|
||||
[Manifest](/tr/plugins/manifest) bölümüne bakın. Kanonik ClawHub
|
||||
yayınlama parçacıkları `docs/snippets/plugin-publish/` içinde bulunur.
|
||||
|
||||
</Step>
|
||||
|
||||
@ -123,15 +122,15 @@ ve sağlayıcı plugin'leri için yukarıda bağlantısı verilen özel kılavuz
|
||||
});
|
||||
```
|
||||
|
||||
`definePluginEntry`, kanal olmayan plugin'ler içindir. Kanallar için
|
||||
`defineChannelPluginEntry` kullanın — bkz. [Channel Plugins](/tr/plugins/sdk-channel-plugins).
|
||||
Tam giriş noktası seçenekleri için bkz. [Entry Points](/tr/plugins/sdk-entrypoints).
|
||||
`definePluginEntry`, kanal olmayan Plugin'ler içindir. Kanallar için
|
||||
`defineChannelPluginEntry` kullanın — bkz. [Kanal Plugin'leri](/tr/plugins/sdk-channel-plugins).
|
||||
Giriş noktası seçeneklerinin tamamı için bkz. [Giriş Noktaları](/tr/plugins/sdk-entrypoints).
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Test edin ve yayınlayın">
|
||||
|
||||
**Harici plugin'ler:** ClawHub ile doğrulayın ve yayınlayın, ardından kurun:
|
||||
**Harici Plugin'ler:** ClawHub ile doğrulayın ve yayınlayın, ardından kurun:
|
||||
|
||||
```bash
|
||||
clawhub package publish your-org/your-plugin --dry-run
|
||||
@ -139,10 +138,10 @@ ve sağlayıcı plugin'leri için yukarıda bağlantısı verilen özel kılavuz
|
||||
openclaw plugins install clawhub:@myorg/openclaw-my-plugin
|
||||
```
|
||||
|
||||
OpenClaw, `@myorg/openclaw-my-plugin` gibi çıplak paket belirtimleri için
|
||||
npm'den önce ClawHub'ı da kontrol eder.
|
||||
OpenClaw ayrıca `@myorg/openclaw-my-plugin` gibi yalın paket tanımlarında
|
||||
npm'den önce ClawHub'ı kontrol eder.
|
||||
|
||||
**Repo içi plugin'ler:** birlikte gelen plugin workspace ağacının altına yerleştirin — otomatik olarak keşfedilir.
|
||||
**Repo içi Plugin'ler:** paketle birlikte gelen Plugin çalışma alanı ağacının altına yerleştirin — otomatik olarak keşfedilir.
|
||||
|
||||
```bash
|
||||
pnpm test -- <bundled-plugin-root>/my-plugin/
|
||||
@ -153,57 +152,67 @@ ve sağlayıcı plugin'leri için yukarıda bağlantısı verilen özel kılavuz
|
||||
|
||||
## Plugin yetenekleri
|
||||
|
||||
Tek bir plugin, `api` nesnesi aracılığıyla istediği kadar yetenek kaydedebilir:
|
||||
Tek bir Plugin, `api` nesnesi üzerinden istenen sayıda yetenek kaydedebilir:
|
||||
|
||||
| Yetenek | Kayıt yöntemi | Ayrıntılı kılavuz |
|
||||
| Yetenek | Kayıt yöntemi | Ayrıntılı kılavuz |
|
||||
| --------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------- |
|
||||
| Metin çıkarımı (LLM) | `api.registerProvider(...)` | [Provider Plugins](/tr/plugins/sdk-provider-plugins) |
|
||||
| CLI çıkarım arka ucu | `api.registerCliBackend(...)` | [CLI Backends](/tr/gateway/cli-backends) |
|
||||
| Kanal / mesajlaşma | `api.registerChannel(...)` | [Channel Plugins](/tr/plugins/sdk-channel-plugins) |
|
||||
| Konuşma (TTS/STT) | `api.registerSpeechProvider(...)` | [Provider Plugins](/tr/plugins/sdk-provider-plugins#step-5-add-extra-capabilities) |
|
||||
| Gerçek zamanlı transkripsiyon | `api.registerRealtimeTranscriptionProvider(...)` | [Provider Plugins](/tr/plugins/sdk-provider-plugins#step-5-add-extra-capabilities) |
|
||||
| Gerçek zamanlı ses | `api.registerRealtimeVoiceProvider(...)` | [Provider Plugins](/tr/plugins/sdk-provider-plugins#step-5-add-extra-capabilities) |
|
||||
| Medya anlama | `api.registerMediaUnderstandingProvider(...)` | [Provider Plugins](/tr/plugins/sdk-provider-plugins#step-5-add-extra-capabilities) |
|
||||
| Görsel üretimi | `api.registerImageGenerationProvider(...)` | [Provider Plugins](/tr/plugins/sdk-provider-plugins#step-5-add-extra-capabilities) |
|
||||
| Müzik üretimi | `api.registerMusicGenerationProvider(...)` | [Provider Plugins](/tr/plugins/sdk-provider-plugins#step-5-add-extra-capabilities) |
|
||||
| Video üretimi | `api.registerVideoGenerationProvider(...)` | [Provider Plugins](/tr/plugins/sdk-provider-plugins#step-5-add-extra-capabilities) |
|
||||
| Web getirme | `api.registerWebFetchProvider(...)` | [Provider Plugins](/tr/plugins/sdk-provider-plugins#step-5-add-extra-capabilities) |
|
||||
| Web araması | `api.registerWebSearchProvider(...)` | [Provider Plugins](/tr/plugins/sdk-provider-plugins#step-5-add-extra-capabilities) |
|
||||
| Metin çıkarımı (LLM) | `api.registerProvider(...)` | [Sağlayıcı Plugin'leri](/tr/plugins/sdk-provider-plugins) |
|
||||
| CLI çıkarım arka ucu | `api.registerCliBackend(...)` | [CLI Arka Uçları](/tr/gateway/cli-backends) |
|
||||
| Kanal / mesajlaşma | `api.registerChannel(...)` | [Kanal Plugin'leri](/tr/plugins/sdk-channel-plugins) |
|
||||
| Konuşma (TTS/STT) | `api.registerSpeechProvider(...)` | [Sağlayıcı Plugin'leri](/tr/plugins/sdk-provider-plugins#step-5-add-extra-capabilities) |
|
||||
| Gerçek zamanlı transkripsiyon | `api.registerRealtimeTranscriptionProvider(...)` | [Sağlayıcı Plugin'leri](/tr/plugins/sdk-provider-plugins#step-5-add-extra-capabilities) |
|
||||
| Gerçek zamanlı ses | `api.registerRealtimeVoiceProvider(...)` | [Sağlayıcı Plugin'leri](/tr/plugins/sdk-provider-plugins#step-5-add-extra-capabilities) |
|
||||
| Medya anlama | `api.registerMediaUnderstandingProvider(...)` | [Sağlayıcı Plugin'leri](/tr/plugins/sdk-provider-plugins#step-5-add-extra-capabilities) |
|
||||
| Görsel oluşturma | `api.registerImageGenerationProvider(...)` | [Sağlayıcı Plugin'leri](/tr/plugins/sdk-provider-plugins#step-5-add-extra-capabilities) |
|
||||
| Müzik oluşturma | `api.registerMusicGenerationProvider(...)` | [Sağlayıcı Plugin'leri](/tr/plugins/sdk-provider-plugins#step-5-add-extra-capabilities) |
|
||||
| Video oluşturma | `api.registerVideoGenerationProvider(...)` | [Sağlayıcı Plugin'leri](/tr/plugins/sdk-provider-plugins#step-5-add-extra-capabilities) |
|
||||
| Web getirme | `api.registerWebFetchProvider(...)` | [Sağlayıcı Plugin'leri](/tr/plugins/sdk-provider-plugins#step-5-add-extra-capabilities) |
|
||||
| Web arama | `api.registerWebSearchProvider(...)` | [Sağlayıcı Plugin'leri](/tr/plugins/sdk-provider-plugins#step-5-add-extra-capabilities) |
|
||||
| Gömülü Pi uzantısı | `api.registerEmbeddedExtensionFactory(...)` | [SDK Genel Bakış](/tr/plugins/sdk-overview#registration-api) |
|
||||
| Ajan araçları | `api.registerTool(...)` | Aşağıda |
|
||||
| Özel komutlar | `api.registerCommand(...)` | [Entry Points](/tr/plugins/sdk-entrypoints) |
|
||||
| Olay hook'ları | `api.registerHook(...)` | [Entry Points](/tr/plugins/sdk-entrypoints) |
|
||||
| HTTP rotaları | `api.registerHttpRoute(...)` | [Internals](/tr/plugins/architecture#gateway-http-routes) |
|
||||
| CLI alt komutları | `api.registerCli(...)` | [Entry Points](/tr/plugins/sdk-entrypoints) |
|
||||
| Özel komutlar | `api.registerCommand(...)` | [Giriş Noktaları](/tr/plugins/sdk-entrypoints) |
|
||||
| Olay hook'ları | `api.registerHook(...)` | [Giriş Noktaları](/tr/plugins/sdk-entrypoints) |
|
||||
| HTTP rotaları | `api.registerHttpRoute(...)` | [İç Yapılar](/tr/plugins/architecture#gateway-http-routes) |
|
||||
| CLI alt komutları | `api.registerCli(...)` | [Giriş Noktaları](/tr/plugins/sdk-entrypoints) |
|
||||
|
||||
Tam kayıt API'si için bkz. [SDK Overview](/tr/plugins/sdk-overview#registration-api).
|
||||
Tam kayıt API'si için bkz. [SDK Genel Bakış](/tr/plugins/sdk-overview#registration-api).
|
||||
|
||||
Bir Plugin, son araç sonucu mesajı gönderilmeden önce async `tool_result`
|
||||
yeniden yazımı gibi Pi-yerel embedded-runner hook'larına ihtiyaç duyuyorsa
|
||||
`api.registerEmbeddedExtensionFactory(...)` kullanın. İş, Pi uzantısı zamanlamasına
|
||||
ihtiyaç duymuyorsa normal OpenClaw Plugin hook'larını tercih edin.
|
||||
|
||||
Plugin'iniz özel gateway RPC yöntemleri kaydediyorsa, bunları
|
||||
plugin'e özgü bir önek altında tutun. Çekirdek yönetici ad alanları (`config.*`,
|
||||
`exec.approvals.*`, `wizard.*`, `update.*`) ayrılmış kalır ve bir plugin daha dar
|
||||
bir kapsam istese bile her zaman `operator.admin` olarak çözülür.
|
||||
Plugin'e özgü bir ön ek altında tutun. Çekirdek yönetici ad alanları (`config.*`,
|
||||
`exec.approvals.*`, `wizard.*`, `update.*`) ayrılmış durumda kalır ve bir Plugin
|
||||
daha dar bir kapsam istese bile her zaman `operator.admin` olarak çözülür.
|
||||
|
||||
Akılda tutulması gereken hook koruma semantiği:
|
||||
Aklınızda bulundurmanız gereken hook koruma semantik kuralları:
|
||||
|
||||
- `before_tool_call`: `{ block: true }` terminaldir ve daha düşük öncelikli işleyicileri durdurur.
|
||||
- `before_tool_call`: `{ block: false }` karar yokmuş gibi değerlendirilir.
|
||||
- `before_tool_call`: `{ requireApproval: true }` ajan yürütmesini duraklatır ve kullanıcıdan exec approval overlay, Telegram düğmeleri, Discord etkileşimleri veya herhangi bir kanaldaki `/approve` komutu aracılığıyla onay ister.
|
||||
- `before_tool_call`: `{ block: false }` karar verilmemiş olarak değerlendirilir.
|
||||
- `before_tool_call`: `{ requireApproval: true }` ajan yürütmesini duraklatır ve exec onay katmanı, Telegram düğmeleri, Discord etkileşimleri veya herhangi bir kanaldaki `/approve` komutu aracılığıyla kullanıcıdan onay ister.
|
||||
- `before_install`: `{ block: true }` terminaldir ve daha düşük öncelikli işleyicileri durdurur.
|
||||
- `before_install`: `{ block: false }` karar yokmuş gibi değerlendirilir.
|
||||
- `before_install`: `{ block: false }` karar verilmemiş olarak değerlendirilir.
|
||||
- `message_sending`: `{ cancel: true }` terminaldir ve daha düşük öncelikli işleyicileri durdurur.
|
||||
- `message_sending`: `{ cancel: false }` karar yokmuş gibi değerlendirilir.
|
||||
- `message_sending`: `{ cancel: false }` karar verilmemiş olarak değerlendirilir.
|
||||
|
||||
`/approve` komutu, sınırlandırılmış fallback ile hem exec hem de plugin onaylarını işler: bir exec approval kimliği bulunamadığında, OpenClaw aynı kimliği plugin onayları üzerinden yeniden dener. Plugin onay yönlendirmesi, yapılandırmada `approvals.plugin` aracılığıyla bağımsız olarak yapılandırılabilir.
|
||||
`/approve` komutu hem exec hem de Plugin onaylarını sınırlı geri dönüşle işler:
|
||||
bir exec onay kimliği bulunamadığında, OpenClaw aynı kimliği Plugin onayları
|
||||
üzerinden yeniden dener. Plugin onayı yönlendirmesi yapılandırmada
|
||||
`approvals.plugin` üzerinden bağımsız olarak yapılandırılabilir.
|
||||
|
||||
Özel onay altyapısının aynı sınırlandırılmış fallback durumunu algılaması gerekiyorsa,
|
||||
onay süresi dolma dizgelerini elle eşleştirmek yerine
|
||||
`openclaw/plugin-sdk/error-runtime` içinden `isApprovalNotFoundError` kullanın.
|
||||
Özel onay altyapısının aynı sınırlı geri dönüş durumunu algılaması gerekiyorsa,
|
||||
onay süresi dolma dizelerini elle eşleştirmek yerine
|
||||
`openclaw/plugin-sdk/error-runtime` içindeki `isApprovalNotFoundError`
|
||||
kullanmayı tercih edin.
|
||||
|
||||
Ayrıntılar için bkz. [SDK Overview hook decision semantics](/tr/plugins/sdk-overview#hook-decision-semantics).
|
||||
Ayrıntılar için bkz. [SDK Genel Bakış hook karar semantiği](/tr/plugins/sdk-overview#hook-decision-semantics).
|
||||
|
||||
## Ajan araçlarını kaydetme
|
||||
|
||||
Araçlar, LLM'nin çağırabileceği türlendirilmiş işlevlerdir. Zorunlu (her zaman
|
||||
kullanılabilir) veya isteğe bağlı (kullanıcının katılımı gerekir) olabilirler:
|
||||
Araçlar, LLM'nin çağırabildiği türlendirilmiş fonksiyonlardır. Zorunlu olabilirler
|
||||
(her zaman kullanılabilir) veya isteğe bağlı olabilirler (kullanıcının açıkça etkinleştirmesi gerekir):
|
||||
|
||||
```typescript
|
||||
register(api) {
|
||||
@ -241,12 +250,12 @@ Kullanıcılar isteğe bağlı araçları yapılandırmada etkinleştirir:
|
||||
```
|
||||
|
||||
- Araç adları çekirdek araçlarla çakışmamalıdır (çakışmalar atlanır)
|
||||
- Yan etkileri veya ek ikili gereksinimleri olan araçlar için `optional: true` kullanın
|
||||
- Kullanıcılar, `tools.allow` içine plugin kimliğini ekleyerek bir plugin'deki tüm araçları etkinleştirebilir
|
||||
- Yan etkileri olan veya ek ikili dosya gereksinimleri bulunan araçlar için `optional: true` kullanın
|
||||
- Kullanıcılar `tools.allow` alanına Plugin kimliğini ekleyerek bir Plugin'deki tüm araçları etkinleştirebilir
|
||||
|
||||
## Import kuralları
|
||||
## İçe aktarma kuralları
|
||||
|
||||
Her zaman odaklanmış `openclaw/plugin-sdk/<subpath>` yollarından import edin:
|
||||
Her zaman odaklı `openclaw/plugin-sdk/<subpath>` yollarından içe aktarın:
|
||||
|
||||
```typescript
|
||||
import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
|
||||
@ -256,74 +265,74 @@ import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store";
|
||||
import { ... } from "openclaw/plugin-sdk";
|
||||
```
|
||||
|
||||
Tam alt yol başvurusu için bkz. [SDK Overview](/tr/plugins/sdk-overview).
|
||||
Alt yol referansının tamamı için bkz. [SDK Genel Bakış](/tr/plugins/sdk-overview).
|
||||
|
||||
Plugin'inizin içinde, dahili import'lar için yerel barrel dosyalarını (`api.ts`, `runtime-api.ts`) kullanın —
|
||||
kendi plugin'inizi asla kendi SDK yolu üzerinden import etmeyin.
|
||||
Plugin'iniz içinde, içe aktarmalar için yerel barrel dosyaları (`api.ts`, `runtime-api.ts`) kullanın —
|
||||
kendi Plugin'inizi asla SDK yolu üzerinden içe aktarmayın.
|
||||
|
||||
Sağlayıcı plugin'leri için, gerçekten genel bir yüzey değilse sağlayıcıya özgü yardımcıları bu paket kökü
|
||||
barrel dosyalarında tutun. Güncel birlikte gelen örnekler:
|
||||
Sağlayıcı Plugin'leri için, sağlayıcıya özgü yardımcıları gerçekten genel bir
|
||||
ayrım noktası olmadıkça bu paket kökü barrel dosyalarında tutun. Mevcut paketle
|
||||
birlikte gelen örnekler:
|
||||
|
||||
- Anthropic: Claude akış sarmalayıcıları ve `service_tier` / beta yardımcıları
|
||||
- OpenAI: sağlayıcı oluşturucular, varsayılan model yardımcıları, gerçek zamanlı sağlayıcılar
|
||||
- OpenRouter: sağlayıcı oluşturucu ve onboarding/config yardımcıları
|
||||
- OpenAI: sağlayıcı oluşturucuları, varsayılan model yardımcıları, gerçek zamanlı sağlayıcılar
|
||||
- OpenRouter: sağlayıcı oluşturucu ile onboarding/yapılandırma yardımcıları
|
||||
|
||||
Bir yardımcı yalnızca tek bir birlikte gelen sağlayıcı paketi içinde yararlıysa,
|
||||
onu `openclaw/plugin-sdk/*` içine yükseltmek yerine o
|
||||
paket kökü yüzeyinde tutun.
|
||||
Bir yardımcı yalnızca tek bir paketle birlikte gelen sağlayıcı paketi içinde
|
||||
işe yarıyorsa, onu `openclaw/plugin-sdk/*` içine taşımak yerine o paket kökü
|
||||
ayrım noktasında tutun.
|
||||
|
||||
Üretilmiş bazı `openclaw/plugin-sdk/<bundled-id>` yardımcı yüzeyleri,
|
||||
birlikte gelen plugin bakımı ve uyumluluk için hâlâ mevcuttur; örneğin
|
||||
`plugin-sdk/feishu-setup` veya `plugin-sdk/zalo-setup`. Bunları,
|
||||
yeni üçüncü taraf plugin'ler için varsayılan desen olarak değil, ayrılmış
|
||||
yüzeyler olarak değerlendirin.
|
||||
Paketle birlikte gelen Plugin bakımı ve uyumluluk için bazı üretilmiş
|
||||
`openclaw/plugin-sdk/<bundled-id>` yardımcı ayrım noktaları hâlâ mevcuttur; örneğin
|
||||
`plugin-sdk/feishu-setup` veya `plugin-sdk/zalo-setup`. Bunları yeni üçüncü taraf
|
||||
Plugin'ler için varsayılan desen olarak değil, ayrılmış yüzeyler olarak değerlendirin.
|
||||
|
||||
## Gönderim öncesi kontrol listesi
|
||||
|
||||
<Check>**package.json** dosyasında doğru `openclaw` meta verileri var</Check>
|
||||
<Check>**openclaw.plugin.json** manifest'i mevcut ve geçerli</Check>
|
||||
<Check>**openclaw.plugin.json** manifest dosyası mevcut ve geçerli</Check>
|
||||
<Check>Giriş noktası `defineChannelPluginEntry` veya `definePluginEntry` kullanıyor</Check>
|
||||
<Check>Tüm import'lar odaklanmış `plugin-sdk/<subpath>` yollarını kullanıyor</Check>
|
||||
<Check>Dahili import'lar SDK self-import'ları değil, yerel modüller kullanıyor</Check>
|
||||
<Check>Tüm içe aktarmalar odaklı `plugin-sdk/<subpath>` yollarını kullanıyor</Check>
|
||||
<Check>İç içe aktarmalar SDK self-import'ları değil, yerel modülleri kullanıyor</Check>
|
||||
<Check>Testler geçiyor (`pnpm test -- <bundled-plugin-root>/my-plugin/`)</Check>
|
||||
<Check>`pnpm check` geçiyor (repo içi plugin'ler)</Check>
|
||||
<Check>`pnpm check` geçiyor (repo içi Plugin'ler)</Check>
|
||||
|
||||
## Beta Sürüm Testi
|
||||
|
||||
1. [openclaw/openclaw](https://github.com/openclaw/openclaw/releases) üzerindeki GitHub sürüm etiketlerini izleyin ve `Watch` > `Releases` üzerinden abone olun. Beta etiketleri `v2026.3.N-beta.1` gibi görünür. Sürüm duyuruları için resmi OpenClaw X hesabı [@openclaw](https://x.com/openclaw) bildirimlerini de açabilirsiniz.
|
||||
2. Eşit görünür görünmez plugin'inizi beta etikete karşı test edin. Kararlı sürümden önceki pencere genellikle yalnızca birkaç saattir.
|
||||
3. Testten sonra `plugin-forum` Discord kanalındaki plugin dizinizde `all good` veya neyin bozulduğunu yazarak paylaşım yapın. Henüz bir diziniz yoksa oluşturun.
|
||||
4. Bir şey bozulursa, `Beta blocker: <plugin-name> - <summary>` başlıklı bir issue açın veya mevcut bir issue'yu güncelleyin ve `beta-blocker` etiketini uygulayın. Issue bağlantısını dizinize ekleyin.
|
||||
5. `main` için `fix(<plugin-id>): beta blocker - <summary>` başlıklı bir PR açın ve issue'yu hem PR içinde hem de Discord dizinizde bağlayın. Katkıda bulunanlar PR'leri etiketleyemez, bu nedenle başlık bakımcılar ve otomasyon için PR tarafındaki sinyaldir. PR'si olan engelleyiciler birleştirilir; olmayanlar yine de yayına girebilir. Bakımcılar beta testi sırasında bu dizileri izler.
|
||||
1. [openclaw/openclaw](https://github.com/openclaw/openclaw/releases) üzerindeki GitHub sürüm etiketlerini takip edin ve `Watch` > `Releases` üzerinden abone olun. Beta etiketleri `v2026.3.N-beta.1` gibi görünür. Sürüm duyuruları için resmi OpenClaw X hesabı [@openclaw](https://x.com/openclaw) bildirimlerini de açabilirsiniz.
|
||||
2. Beta etiketi görünür görünmez Plugin'inizi buna karşı test edin. Stabil sürüm öncesindeki pencere genellikle yalnızca birkaç saattir.
|
||||
3. Testten sonra `plugin-forum` Discord kanalında Plugin'inizin başlığında `all good` ya da neyin bozulduğunu yazın. Henüz bir başlığınız yoksa bir tane oluşturun.
|
||||
4. Bir şey bozulursa `Beta blocker: <plugin-name> - <summary>` başlıklı bir issue açın veya mevcut issue'yu güncelleyin ve `beta-blocker` etiketini uygulayın. Issue bağlantısını başlığınıza ekleyin.
|
||||
5. `main` için `fix(<plugin-id>): beta blocker - <summary>` başlıklı bir PR açın ve issue'yu hem PR'de hem de Discord başlığınızda bağlantılayın. Katkıda bulunanlar PR'leri etiketleyemez, bu nedenle başlık bakımcılar ve otomasyon için PR tarafındaki sinyaldir. PR'si olan engelleyiciler birleştirilir; PR'siz engelleyiciler buna rağmen yayınlanabilir. Bakımcılar beta testi sırasında bu başlıkları izler.
|
||||
6. Sessizlik yeşil anlamına gelir. Bu pencereyi kaçırırsanız, düzeltmeniz büyük olasılıkla bir sonraki döngüye kalır.
|
||||
|
||||
## Sonraki adımlar
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Kanal Plugin'leri" icon="messages-square" href="/tr/plugins/sdk-channel-plugins">
|
||||
Bir mesajlaşma kanal plugin'i oluşturun
|
||||
Bir mesajlaşma kanal Plugin'i geliştirin
|
||||
</Card>
|
||||
<Card title="Sağlayıcı Plugin'leri" icon="cpu" href="/tr/plugins/sdk-provider-plugins">
|
||||
Bir model sağlayıcı plugin'i oluşturun
|
||||
Bir model sağlayıcı Plugin'i geliştirin
|
||||
</Card>
|
||||
<Card title="SDK Genel Bakış" icon="book-open" href="/tr/plugins/sdk-overview">
|
||||
Import eşlemi ve kayıt API başvurusu
|
||||
İçe aktarma eşlemesi ve kayıt API referansı
|
||||
</Card>
|
||||
<Card title="Çalışma Zamanı Yardımcıları" icon="settings" href="/tr/plugins/sdk-runtime">
|
||||
api.runtime üzerinden TTS, arama, alt ajan
|
||||
`api.runtime` üzerinden TTS, arama, alt ajan
|
||||
</Card>
|
||||
<Card title="Test" icon="test-tubes" href="/tr/plugins/sdk-testing">
|
||||
Test yardımcıları ve kalıpları
|
||||
Test yardımcı araçları ve kalıpları
|
||||
</Card>
|
||||
<Card title="Plugin Manifest'i" icon="file-json" href="/tr/plugins/manifest">
|
||||
Tam manifest şeması başvurusu
|
||||
<Card title="Plugin Manifest" icon="file-json" href="/tr/plugins/manifest">
|
||||
Tam manifest şeması referansı
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
## İlgili
|
||||
|
||||
- [Plugin Mimarisi](/tr/plugins/architecture) — dahili mimariye derin bakış
|
||||
- [SDK Genel Bakış](/tr/plugins/sdk-overview) — Plugin SDK başvurusu
|
||||
- [Manifest](/tr/plugins/manifest) — plugin manifest biçimi
|
||||
- [Channel Plugins](/tr/plugins/sdk-channel-plugins) — kanal plugin'leri geliştirme
|
||||
- [Provider Plugins](/tr/plugins/sdk-provider-plugins) — sağlayıcı plugin'leri geliştirme
|
||||
- [Plugin Mimarisi](/tr/plugins/architecture) — iç mimariye derinlemesine bakış
|
||||
- [SDK Genel Bakış](/tr/plugins/sdk-overview) — Plugin SDK referansı
|
||||
- [Manifest](/tr/plugins/manifest) — Plugin manifest biçimi
|
||||
- [Kanal Plugin'leri](/tr/plugins/sdk-channel-plugins) — kanal Plugin'leri geliştirme
|
||||
- [Sağlayıcı Plugin'leri](/tr/plugins/sdk-provider-plugins) — sağlayıcı Plugin'leri geliştirme
|
||||
|
||||
@ -1,63 +1,66 @@
|
||||
---
|
||||
read_when:
|
||||
- Paketle gelen Codex app-server harness'ı kullanmak istiyorsunuz
|
||||
- Codex model ref'lerine ve yapılandırma örneklerine ihtiyacınız var
|
||||
- Yalnızca Codex dağıtımları için Pi fallback'ini devre dışı bırakmak istiyorsunuz
|
||||
summary: Paketle gelen Codex app-server harness üzerinden OpenClaw gömülü ajan dönüşlerini çalıştırın
|
||||
title: Codex Harness
|
||||
- Paketlenmiş Codex uygulama sunucusu koşum takımını kullanmak istiyorsunuz
|
||||
- Codex model başvurularına ve yapılandırma örneklerine ihtiyacınız var
|
||||
- Yalnızca Codex dağıtımları için Pi geri dönüşünü devre dışı bırakmak istiyorsunuz
|
||||
summary: OpenClaw gömülü ajan dönüşlerini paketlenmiş Codex uygulama sunucusu koşum takımı üzerinden çalıştırın
|
||||
title: Codex Koşum Takımı
|
||||
x-i18n:
|
||||
generated_at: "2026-04-21T09:01:33Z"
|
||||
generated_at: "2026-04-22T08:54:55Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 3f0cdaf68be3b2257de1046103ff04f53f9d3a65ffc15ab7af5ab1f425643d6c
|
||||
source_hash: d45dbd39a7d8ebb3a39d8dca3a5125c07b7168d1658ca07b85792645fb98613c
|
||||
source_path: plugins/codex-harness.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Codex Harness
|
||||
# Codex Koşum Takımı
|
||||
|
||||
Paketle gelen `codex` plugin'i, OpenClaw'un gömülü ajan dönüşlerini yerleşik Pi harness yerine
|
||||
Codex app-server üzerinden çalıştırmasını sağlar.
|
||||
Paketlenmiş `codex` Plugin'i, OpenClaw'ın yerleşik PI koşum takımı yerine
|
||||
Codex uygulama sunucusu üzerinden gömülü ajan dönüşlerini çalıştırmasını sağlar.
|
||||
|
||||
Bunu, düşük düzey ajan oturumuna Codex'in sahip olmasını istediğinizde kullanın: model
|
||||
keşfi, yerel thread sürdürme, yerel Compaction ve app-server yürütmesi.
|
||||
OpenClaw yine de sohbet kanallarına, oturum dosyalarına, model seçimine, araçlara,
|
||||
onaylara, medya teslimatına ve görünür transcript yansısına sahip olmaya devam eder.
|
||||
Bunu, düşük seviyeli ajan oturumunun Codex tarafından yönetilmesini istediğinizde kullanın: model
|
||||
keşfi, yerel iş parçacığı sürdürme, yerel Compaction ve uygulama sunucusu yürütmesi.
|
||||
OpenClaw yine de sohbet kanallarını, oturum dosyalarını, model seçimini, araçları,
|
||||
onayları, medya teslimini ve görünür transkript yansısını yönetir.
|
||||
|
||||
Harness varsayılan olarak kapalıdır. Yalnızca `codex` plugin'i
|
||||
etkin olduğunda ve çözümlenen model bir `codex/*` modeli olduğunda ya da `embeddedHarness.runtime: "codex"` veya `OPENCLAW_AGENT_RUNTIME=codex` ile açıkça zorladığınızda seçilir.
|
||||
Hiçbir zaman `codex/*` yapılandırmazsanız, mevcut Pi, OpenAI, Anthropic, Gemini, yerel
|
||||
ve özel sağlayıcı çalıştırmaları mevcut davranışlarını korur.
|
||||
Koşum takımı varsayılan olarak kapalıdır. Yalnızca `codex` Plugin'i
|
||||
etkinleştirildiğinde ve çözümlenen model bir `codex/*` modeli olduğunda
|
||||
veya `embeddedHarness.runtime: "codex"` ya da `OPENCLAW_AGENT_RUNTIME=codex` açıkça zorlandığında seçilir.
|
||||
Hiçbir zaman `codex/*` yapılandırmazsanız, mevcut PI, OpenAI, Anthropic, Gemini, local
|
||||
ve custom-provider çalıştırmaları mevcut davranışlarını korur.
|
||||
|
||||
## Doğru model önekini seçin
|
||||
|
||||
OpenClaw, OpenAI ve Codex biçimli erişim için ayrı yollara sahiptir:
|
||||
OpenClaw, OpenAI erişimi ile Codex biçimli erişim için ayrı yollara sahiptir:
|
||||
|
||||
| Model ref | Çalışma zamanı yolu | Şu durumda kullanın |
|
||||
| ---------------------- | --------------------------------------------- | ------------------------------------------------------------------------ |
|
||||
| `openai/gpt-5.4` | OpenClaw/PI altyapısı üzerinden OpenAI sağlayıcısı | `OPENAI_API_KEY` ile doğrudan OpenAI Platform API erişimi istiyorsunuz. |
|
||||
| `openai-codex/gpt-5.4` | PI üzerinden OpenAI Codex OAuth sağlayıcısı | Codex app-server harness olmadan ChatGPT/Codex OAuth istiyorsunuz. |
|
||||
| `codex/gpt-5.4` | Paketle gelen Codex sağlayıcısı artı Codex harness | Gömülü ajan dönüşü için yerel Codex app-server yürütmesi istiyorsunuz. |
|
||||
| Model başvurusu | Çalışma zamanı yolu | Şu durumda kullanın |
|
||||
| --------------------- | ------------------------------------------- | ------------------------------------------------------------------------ |
|
||||
| `openai/gpt-5.4` | OpenClaw/PI altyapısı üzerinden OpenAI sağlayıcısı | `OPENAI_API_KEY` ile doğrudan OpenAI Platform API erişimi istiyorsunuz. |
|
||||
| `openai-codex/gpt-5.4` | PI üzerinden OpenAI Codex OAuth sağlayıcısı | Codex uygulama sunucusu koşum takımı olmadan ChatGPT/Codex OAuth istiyorsunuz. |
|
||||
| `codex/gpt-5.4` | Paketlenmiş Codex sağlayıcısı ve Codex koşum takımı | Gömülü ajan dönüşü için yerel Codex uygulama sunucusu yürütmesi istiyorsunuz. |
|
||||
|
||||
Codex harness yalnızca `codex/*` model ref'lerini sahiplenir. Mevcut `openai/*`,
|
||||
`openai-codex/*`, Anthropic, Gemini, xAI, yerel ve özel sağlayıcı ref'leri
|
||||
Codex koşum takımı yalnızca `codex/*` model başvurularını üstlenir. Mevcut `openai/*`,
|
||||
`openai-codex/*`, Anthropic, Gemini, xAI, local ve custom provider başvuruları
|
||||
normal yollarını korur.
|
||||
|
||||
## Gereksinimler
|
||||
|
||||
- Paketle gelen `codex` plugin'i kullanılabilir olan OpenClaw.
|
||||
- Codex app-server `0.118.0` veya daha yeni.
|
||||
- App-server süreci için Codex kimlik doğrulamasının kullanılabilir olması.
|
||||
- Paketlenmiş `codex` Plugin'i kullanılabilir durumda olan OpenClaw.
|
||||
- Codex uygulama sunucusu `0.118.0` veya daha yeni sürüm.
|
||||
- Uygulama sunucusu süreci için kullanılabilir Codex kimlik doğrulaması.
|
||||
|
||||
Plugin, daha eski veya sürümsüz app-server el sıkışmalarını engeller. Bu,
|
||||
OpenClaw'u test edildiği protokol yüzeyinde tutar.
|
||||
Plugin, daha eski veya sürümlendirilmemiş uygulama sunucusu el sıkışmalarını engeller. Bu,
|
||||
OpenClaw'ı üzerinde test edildiği protokol yüzeyinde tutar.
|
||||
|
||||
Canlı ve Docker smoke testleri için kimlik doğrulama genellikle `OPENAI_API_KEY` üzerinden gelir; ayrıca isteğe bağlı Codex CLI dosyaları olan `~/.codex/auth.json` ve
|
||||
`~/.codex/config.toml` da kullanılabilir. Yerel Codex app-server'ınızın kullandığı aynı kimlik doğrulama materyalini kullanın.
|
||||
Canlı ve Docker smoke testleri için kimlik doğrulama genellikle `OPENAI_API_KEY` ile,
|
||||
ayrıca `~/.codex/auth.json` ve
|
||||
`~/.codex/config.toml` gibi isteğe bağlı Codex CLI dosyalarıyla sağlanır. Yerel Codex uygulama sunucunuzun
|
||||
kullandığı aynı kimlik doğrulama materyalini kullanın.
|
||||
|
||||
## En düşük düzey yapılandırma
|
||||
## Minimal yapılandırma
|
||||
|
||||
`codex/gpt-5.4` kullanın, paketle gelen plugin'i etkinleştirin ve `codex` harness'ı zorlayın:
|
||||
`codex/gpt-5.4` kullanın, paketlenmiş Plugin'i etkinleştirin ve `codex` koşum takımını zorlayın:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -80,7 +83,7 @@ Canlı ve Docker smoke testleri için kimlik doğrulama genellikle `OPENAI_API_K
|
||||
}
|
||||
```
|
||||
|
||||
Yapılandırmanız `plugins.allow` kullanıyorsa, `codex` değerini de buraya ekleyin:
|
||||
Yapılandırmanız `plugins.allow` kullanıyorsa, `codex` öğesini de oraya ekleyin:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -96,11 +99,12 @@ Yapılandırmanız `plugins.allow` kullanıyorsa, `codex` değerini de buraya ek
|
||||
```
|
||||
|
||||
`agents.defaults.model` veya bir ajan modelini `codex/<model>` olarak ayarlamak da
|
||||
paketle gelen `codex` plugin'ini otomatik olarak etkinleştirir. Açık plugin girdisi, paylaşılan yapılandırmalarda yine de kullanışlıdır çünkü dağıtım niyetini açık hâle getirir.
|
||||
paketlenmiş `codex` Plugin'ini otomatik olarak etkinleştirir. Açık Plugin girdisi,
|
||||
özellikle paylaşılan yapılandırmalarda yine de yararlıdır çünkü dağıtım niyetini açıkça gösterir.
|
||||
|
||||
## Diğer modelleri değiştirmeden Codex ekleyin
|
||||
|
||||
`codex/*` modeller için Codex, diğer her şey için Pi istiyorsanız `runtime: "auto"` kullanın:
|
||||
`codex/*` modeller için Codex, diğer her şey için PI istiyorsanız `runtime: "auto"` değerini koruyun:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -134,15 +138,15 @@ paketle gelen `codex` plugin'ini otomatik olarak etkinleştirir. Açık plugin g
|
||||
|
||||
Bu yapıyla:
|
||||
|
||||
- `/model codex` veya `/model codex/gpt-5.4`, Codex app-server harness'ı kullanır.
|
||||
- `/model codex` veya `/model codex/gpt-5.4`, Codex uygulama sunucusu koşum takımını kullanır.
|
||||
- `/model gpt` veya `/model openai/gpt-5.4`, OpenAI sağlayıcı yolunu kullanır.
|
||||
- `/model opus`, Anthropic sağlayıcı yolunu kullanır.
|
||||
- Codex olmayan bir model seçilirse Pi, uyumluluk harness'ı olarak kalır.
|
||||
- Codex olmayan bir model seçilirse, PI uyumluluk koşum takımı olarak kalır.
|
||||
|
||||
## Yalnızca Codex dağıtımları
|
||||
|
||||
Her gömülü ajan dönüşünün Codex harness kullandığını kanıtlamanız gerekiyorsa
|
||||
Pi fallback'ini devre dışı bırakın:
|
||||
Her gömülü ajan dönüşünün Codex koşum takımını kullandığını kanıtlamanız gerektiğinde
|
||||
PI geri dönüşünü devre dışı bırakın:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -158,7 +162,7 @@ Pi fallback'ini devre dışı bırakın:
|
||||
}
|
||||
```
|
||||
|
||||
Ortam geçersiz kılması:
|
||||
Ortam değişkeni geçersiz kılması:
|
||||
|
||||
```bash
|
||||
OPENCLAW_AGENT_RUNTIME=codex \
|
||||
@ -166,9 +170,9 @@ OPENCLAW_AGENT_HARNESS_FALLBACK=none \
|
||||
openclaw gateway run
|
||||
```
|
||||
|
||||
Fallback devre dışıyken, Codex plugin devre dışıysa,
|
||||
istenen model bir `codex/*` ref'i değilse, app-server çok eskiyse veya
|
||||
app-server başlatılamıyorsa OpenClaw erken başarısız olur.
|
||||
Geri dönüş devre dışı bırakıldığında, `codex` Plugin'i devre dışıysa,
|
||||
istenen model bir `codex/*` başvurusu değilse, uygulama sunucusu çok eskiyse veya
|
||||
uygulama sunucusu başlatılamıyorsa OpenClaw erken başarısız olur.
|
||||
|
||||
## Ajan başına Codex
|
||||
|
||||
@ -203,14 +207,14 @@ Varsayılan ajan normal otomatik seçimi korurken bir ajanı yalnızca Codex yap
|
||||
}
|
||||
```
|
||||
|
||||
Ajan ve model değiştirmek için normal oturum komutlarını kullanın. `/new`, yeni bir
|
||||
OpenClaw oturumu oluşturur ve Codex harness gerektiğinde kendi sidecar app-server
|
||||
thread'ini oluşturur veya sürdürür. `/reset`, o thread için OpenClaw oturum bağını temizler.
|
||||
Ajanları ve modelleri değiştirmek için normal oturum komutlarını kullanın. `/new`, yeni bir
|
||||
OpenClaw oturumu oluşturur ve Codex koşum takımı gerektiğinde kendi yardımcı uygulama sunucusu
|
||||
iş parçacığını oluşturur veya sürdürür. `/reset`, o iş parçacığı için OpenClaw oturum bağını temizler.
|
||||
|
||||
## Model keşfi
|
||||
|
||||
Varsayılan olarak Codex plugin'i, mevcut modelleri app-server'a sorar. Keşif
|
||||
başarısız olursa veya zaman aşımına uğrarsa, paketle gelen fallback kataloğunu kullanır:
|
||||
Varsayılan olarak Codex Plugin'i, uygulama sunucusundan kullanılabilir modelleri ister. Keşif
|
||||
başarısız olursa veya zaman aşımına uğrarsa, paketlenmiş geri dönüş kataloğunu kullanır:
|
||||
|
||||
- `codex/gpt-5.4`
|
||||
- `codex/gpt-5.4-mini`
|
||||
@ -236,7 +240,7 @@ Keşfi `plugins.entries.codex.config.discovery` altında ayarlayabilirsiniz:
|
||||
}
|
||||
```
|
||||
|
||||
Başlangıçta Codex yoklamasından kaçınmak ve fallback kataloğuna bağlı kalmak istediğinizde
|
||||
Başlangıçta Codex yoklamasından kaçınmak ve geri dönüş kataloğuna bağlı kalmak istediğinizde
|
||||
keşfi devre dışı bırakın:
|
||||
|
||||
```json5
|
||||
@ -256,16 +260,16 @@ keşfi devre dışı bırakın:
|
||||
}
|
||||
```
|
||||
|
||||
## App-server bağlantısı ve ilke
|
||||
## Uygulama sunucusu bağlantısı ve ilkesi
|
||||
|
||||
Varsayılan olarak plugin, Codex'i yerelde şu komutla başlatır:
|
||||
Varsayılan olarak Plugin, Codex'i yerel olarak şu komutla başlatır:
|
||||
|
||||
```bash
|
||||
codex app-server --listen stdio://
|
||||
```
|
||||
|
||||
Varsayılan olarak OpenClaw, Codex'ten yerel onaylar istemesini ister. Bu
|
||||
ilkeyi daha da ayarlayabilirsiniz; örneğin sıkılaştırıp incelemeleri
|
||||
ilkeyi daha da ayarlayabilirsiniz; örneğin daha sıkı hale getirip incelemeleri
|
||||
guardian üzerinden yönlendirebilirsiniz:
|
||||
|
||||
```json5
|
||||
@ -288,7 +292,7 @@ guardian üzerinden yönlendirebilirsiniz:
|
||||
}
|
||||
```
|
||||
|
||||
Zaten çalışan bir app-server için WebSocket taşımasını kullanın:
|
||||
Zaten çalışmakta olan bir uygulama sunucusu için WebSocket taşımasını kullanın:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -312,22 +316,22 @@ Zaten çalışan bir app-server için WebSocket taşımasını kullanın:
|
||||
|
||||
Desteklenen `appServer` alanları:
|
||||
|
||||
| Alan | Varsayılan | Anlamı |
|
||||
| ------------------- | ---------------------------------------- | ----------------------------------------------------------------------- |
|
||||
| `transport` | `"stdio"` | `"stdio"` Codex'i başlatır; `"websocket"` `url` değerine bağlanır. |
|
||||
| `command` | `"codex"` | stdio taşıması için yürütülebilir dosya. |
|
||||
| `args` | `["app-server", "--listen", "stdio://"]` | stdio taşıması için argümanlar. |
|
||||
| `url` | ayarlı değil | WebSocket app-server URL'si. |
|
||||
| `authToken` | ayarlı değil | WebSocket taşıması için Bearer token. |
|
||||
| `headers` | `{}` | Ek WebSocket başlıkları. |
|
||||
| `requestTimeoutMs` | `60000` | app-server control-plane çağrıları için zaman aşımı. |
|
||||
| `approvalPolicy` | `"on-request"` | Thread başlatma/sürdürme/dönüşe gönderilen yerel Codex onay ilkesi. |
|
||||
| `sandbox` | `"workspace-write"` | Thread başlatma/sürdürmeye gönderilen yerel Codex sandbox modu. |
|
||||
| `approvalsReviewer` | `"user"` | Yerel onayları Codex guardian'ın incelemesi için `"guardian_subagent"` kullanın. |
|
||||
| `serviceTier` | ayarlı değil | İsteğe bağlı Codex hizmet katmanı, örneğin `"priority"`. |
|
||||
| Alan | Varsayılan | Anlamı |
|
||||
| ------------------- | ---------------------------------------- | ------------------------------------------------------------------------ |
|
||||
| `transport` | `"stdio"` | `"stdio"` Codex'i başlatır; `"websocket"` `url` adresine bağlanır. |
|
||||
| `command` | `"codex"` | stdio taşıması için yürütülebilir dosya. |
|
||||
| `args` | `["app-server", "--listen", "stdio://"]` | stdio taşıması için bağımsız değişkenler. |
|
||||
| `url` | ayarlanmadı | WebSocket uygulama sunucusu URL'si. |
|
||||
| `authToken` | ayarlanmadı | WebSocket taşıması için Bearer token. |
|
||||
| `headers` | `{}` | Ek WebSocket üst bilgileri. |
|
||||
| `requestTimeoutMs` | `60000` | Uygulama sunucusu kontrol düzlemi çağrıları için zaman aşımı. |
|
||||
| `approvalPolicy` | `"on-request"` | İş parçacığı başlatma/sürdürme/dönüşe gönderilen yerel Codex onay ilkesi. |
|
||||
| `sandbox` | `"workspace-write"` | İş parçacığı başlatma/sürdürmeye gönderilen yerel Codex sandbox modu. |
|
||||
| `approvalsReviewer` | `"user"` | Yerel onayları Codex guardian'ın incelemesini sağlamak için `"guardian_subagent"` kullanın. |
|
||||
| `serviceTier` | ayarlanmadı | İsteğe bağlı Codex hizmet katmanı, örneğin `"priority"`. |
|
||||
|
||||
Eski ortam değişkenleri, eşleşen yapılandırma alanı ayarlı değilse
|
||||
yerel testler için fallback olarak hâlâ çalışır:
|
||||
Aşağıdaki eski ortam değişkenleri, eşleşen yapılandırma alanı ayarlanmadığında
|
||||
yerel testler için geri dönüş olarak hâlâ çalışır:
|
||||
|
||||
- `OPENCLAW_CODEX_APP_SERVER_BIN`
|
||||
- `OPENCLAW_CODEX_APP_SERVER_ARGS`
|
||||
@ -339,7 +343,7 @@ Tekrarlanabilir dağıtımlar için yapılandırma tercih edilir.
|
||||
|
||||
## Yaygın tarifler
|
||||
|
||||
Varsayılan stdio taşımasıyla yerel Codex:
|
||||
Varsayılan stdio taşıması ile yerel Codex:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -353,7 +357,7 @@ Varsayılan stdio taşımasıyla yerel Codex:
|
||||
}
|
||||
```
|
||||
|
||||
Pi fallback devre dışıyken yalnızca Codex harness doğrulaması:
|
||||
PI geri dönüşü devre dışı bırakılmış şekilde yalnızca Codex koşum takımı doğrulaması:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -391,7 +395,7 @@ Guardian tarafından incelenen Codex onayları:
|
||||
}
|
||||
```
|
||||
|
||||
Açık başlıklarla uzak app-server:
|
||||
Açık üst bilgilerle uzak uygulama sunucusu:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -414,60 +418,82 @@ Açık başlıklarla uzak app-server:
|
||||
}
|
||||
```
|
||||
|
||||
Model değiştirme OpenClaw tarafından kontrol edilmeye devam eder. Bir OpenClaw oturumu
|
||||
mevcut bir Codex thread'ine bağlı olduğunda, sonraki dönüş seçili
|
||||
Model değiştirme OpenClaw tarafından yönetilmeye devam eder. Bir OpenClaw oturumu mevcut bir
|
||||
Codex iş parçacığına bağlandığında, sonraki dönüş şu anda seçili olan
|
||||
`codex/*` modelini, sağlayıcıyı, onay ilkesini, sandbox'ı ve hizmet katmanını
|
||||
yeniden app-server'a gönderir. `codex/gpt-5.4` modelinden `codex/gpt-5.2` modeline geçmek,
|
||||
thread bağını korur ama Codex'ten yeni seçilen modelle devam etmesini ister.
|
||||
uygulama sunucusuna yeniden gönderir. `codex/gpt-5.4` modelinden `codex/gpt-5.2` modeline geçmek,
|
||||
iş parçacığı bağını korur ancak Codex'ten yeni seçilen modelle devam etmesini ister.
|
||||
|
||||
## Codex komutu
|
||||
|
||||
Paketle gelen plugin, yetkili bir slash komutu olarak `/codex` kaydeder. Bu komut
|
||||
geneldir ve OpenClaw metin komutlarını destekleyen her kanalda çalışır.
|
||||
Paketlenmiş Plugin, `/codex` komutunu yetkili bir slash komutu olarak kaydeder. Bu komut
|
||||
geneldir ve OpenClaw metin komutlarını destekleyen herhangi bir kanalda çalışır.
|
||||
|
||||
Yaygın biçimler:
|
||||
|
||||
- `/codex status`, canlı app-server bağlantısını, modelleri, hesabı, rate limit'leri, MCP sunucularını ve Skills öğelerini gösterir.
|
||||
- `/codex models`, canlı Codex app-server modellerini listeler.
|
||||
- `/codex threads [filter]`, son Codex thread'lerini listeler.
|
||||
- `/codex resume <thread-id>`, geçerli OpenClaw oturumunu mevcut bir Codex thread'ine bağlar.
|
||||
- `/codex compact`, Codex app-server'dan bağlı thread üzerinde Compaction yapmasını ister.
|
||||
- `/codex review`, bağlı thread için yerel Codex incelemesini başlatır.
|
||||
- `/codex account`, hesap ve rate-limit durumunu gösterir.
|
||||
- `/codex mcp`, Codex app-server MCP sunucu durumunu listeler.
|
||||
- `/codex skills`, Codex app-server Skills öğelerini listeler.
|
||||
- `/codex status`, canlı uygulama sunucusu bağlantısını, modelleri, hesabı, hız sınırlarını, MCP sunucularını ve Skills'i gösterir.
|
||||
- `/codex models`, canlı Codex uygulama sunucusu modellerini listeler.
|
||||
- `/codex threads [filter]`, son Codex iş parçacıklarını listeler.
|
||||
- `/codex resume <thread-id>`, mevcut OpenClaw oturumunu mevcut bir Codex iş parçacığına bağlar.
|
||||
- `/codex compact`, Codex uygulama sunucusundan bağlı iş parçacığını sıkıştırmasını ister.
|
||||
- `/codex review`, bağlı iş parçacığı için yerel Codex incelemesini başlatır.
|
||||
- `/codex account`, hesap ve hız sınırı durumunu gösterir.
|
||||
- `/codex mcp`, Codex uygulama sunucusu MCP sunucu durumunu listeler.
|
||||
- `/codex skills`, Codex uygulama sunucusu Skills listesini gösterir.
|
||||
|
||||
`/codex resume`, harness'ın normal dönüşler için kullandığı aynı sidecar binding dosyasını yazar. Sonraki mesajda OpenClaw o Codex thread'ini sürdürür, şu anda seçili OpenClaw `codex/*` modelini app-server'a geçirir ve genişletilmiş geçmişi etkin tutar.
|
||||
`/codex resume`, normal dönüşler için koşum takımının kullandığı aynı yardımcı bağlama dosyasını
|
||||
yazar. Sonraki iletide OpenClaw bu Codex iş parçacığını sürdürür, o anda seçili
|
||||
OpenClaw `codex/*` modelini uygulama sunucusuna geçirir ve genişletilmiş
|
||||
geçmişi etkin tutar.
|
||||
|
||||
Komut yüzeyi Codex app-server `0.118.0` veya daha yenisini gerektirir. Gelecekteki veya özel bir app-server ilgili JSON-RPC yöntemini sunmazsa, tekil control yöntemleri `unsupported by this Codex app-server` olarak bildirilir.
|
||||
Komut yüzeyi Codex uygulama sunucusu `0.118.0` veya daha yenisini gerektirir. Tek tek
|
||||
denetim yöntemleri, gelecekteki veya özel bir uygulama sunucusu o JSON-RPC yöntemini
|
||||
sunmuyorsa `unsupported by this Codex app-server` olarak bildirilir.
|
||||
|
||||
## Araçlar, medya ve Compaction
|
||||
|
||||
Codex harness yalnızca düşük düzey gömülü ajan yürütücüsünü değiştirir.
|
||||
Codex koşum takımı yalnızca düşük seviyeli gömülü ajan yürütücüsünü değiştirir.
|
||||
|
||||
OpenClaw yine de araç listesini oluşturur ve harness'tan dinamik araç sonuçlarını alır. Metin, görseller, video, müzik, TTS, onaylar ve message-tool çıktısı normal OpenClaw teslim yolu üzerinden akmaya devam eder.
|
||||
OpenClaw yine de araç listesini oluşturur ve koşum takımından dinamik araç sonuçlarını
|
||||
alır. Metin, görseller, video, müzik, TTS, onaylar ve mesajlaşma aracı çıktısı
|
||||
normal OpenClaw teslim yolu üzerinden devam eder.
|
||||
|
||||
Seçili model Codex harness kullandığında, yerel thread Compaction işlemi Codex app-server'a devredilir. OpenClaw kanal geçmişi, arama, `/new`, `/reset` ve gelecekteki model veya harness değiştirme için bir transcript yansısını korur. Bu yansı, kullanıcı prompt'unu, son asistan metnini ve app-server bunları yayımladığında hafif Codex reasoning veya plan kayıtlarını içerir.
|
||||
Seçili model Codex koşum takımını kullandığında, yerel iş parçacığı Compaction
|
||||
işlemi Codex uygulama sunucusuna devredilir. OpenClaw, kanal geçmişi,
|
||||
arama, `/new`, `/reset` ve gelecekteki model veya koşum takımı geçişleri için bir transkript yansısı tutar. Bu
|
||||
yansı, kullanıcı istemini, son asistan metnini ve uygulama sunucusu bunları yayınladığında
|
||||
hafif Codex akıl yürütme veya plan kayıtlarını içerir.
|
||||
|
||||
Medya üretimi Pi gerektirmez. Görsel, video, müzik, PDF, TTS ve medya anlama; `agents.defaults.imageGenerationModel`, `videoGenerationModel`, `pdfModel` ve `messages.tts` gibi eşleşen sağlayıcı/model ayarlarını kullanmaya devam eder.
|
||||
Medya üretimi PI gerektirmez. Görsel, video, müzik, PDF, TTS ve medya
|
||||
anlama; `agents.defaults.imageGenerationModel`, `videoGenerationModel`, `pdfModel` ve
|
||||
`messages.tts` gibi eşleşen sağlayıcı/model ayarlarını kullanmaya devam eder.
|
||||
|
||||
## Sorun giderme
|
||||
|
||||
**Codex `/model` içinde görünmüyor:** `plugins.entries.codex.enabled` ayarını etkinleştirin, bir `codex/*` model ref'i ayarlayın veya `plugins.allow` listesinin `codex` değerini hariç tutup tutmadığını kontrol edin.
|
||||
**Codex `/model` içinde görünmüyor:** `plugins.entries.codex.enabled` seçeneğini etkinleştirin,
|
||||
bir `codex/*` model başvurusu ayarlayın veya `plugins.allow` içinde `codex` öğesinin hariç tutulup tutulmadığını kontrol edin.
|
||||
|
||||
**OpenClaw Pi'ye geri dönüyor:** test sırasında `embeddedHarness.fallback: "none"` veya `OPENCLAW_AGENT_HARNESS_FALLBACK=none` ayarlayın.
|
||||
**OpenClaw, Codex yerine PI kullanıyor:** hiçbir Codex koşum takımı çalıştırmayı üstlenmezse,
|
||||
OpenClaw uyumluluk arka ucu olarak PI kullanabilir. Test sırasında Codex seçimini zorlamak için
|
||||
`embeddedHarness.runtime: "codex"` ayarlayın veya eşleşen bir Plugin koşum takımı olmadığında
|
||||
başarısız olmak için `embeddedHarness.fallback: "none"` ayarlayın. Codex uygulama sunucusu seçildikten sonra,
|
||||
hataları ek geri dönüş yapılandırması olmadan doğrudan görünür.
|
||||
|
||||
**App-server reddediliyor:** app-server el sıkışmasının `0.118.0` veya daha yeni bir sürüm bildirmesi için Codex'i yükseltin.
|
||||
**Uygulama sunucusu reddediliyor:** uygulama sunucusu el sıkışmasının
|
||||
`0.118.0` veya daha yeni bir sürüm bildirmesi için Codex'i yükseltin.
|
||||
|
||||
**Model keşfi yavaş:** `plugins.entries.codex.config.discovery.timeoutMs` değerini düşürün veya keşfi devre dışı bırakın.
|
||||
**Model keşfi yavaş:** `plugins.entries.codex.config.discovery.timeoutMs` değerini düşürün
|
||||
veya keşfi devre dışı bırakın.
|
||||
|
||||
**WebSocket taşıması hemen başarısız oluyor:** `appServer.url`, `authToken` ve uzak app-server'ın aynı Codex app-server protokol sürümünü konuştuğunu kontrol edin.
|
||||
**WebSocket taşıması hemen başarısız oluyor:** `appServer.url`, `authToken`
|
||||
ve uzak uygulama sunucusunun aynı Codex uygulama sunucusu protokol sürümünü konuştuğunu kontrol edin.
|
||||
|
||||
**Codex olmayan bir model Pi kullanıyor:** bu beklenen davranıştır. Codex harness yalnızca `codex/*` model ref'lerini sahiplenir.
|
||||
**Codex olmayan bir model PI kullanıyor:** bu beklenen bir durumdur. Codex koşum takımı yalnızca
|
||||
`codex/*` model başvurularını üstlenir.
|
||||
|
||||
## İlgili
|
||||
|
||||
- [Agent Harness Plugins](/tr/plugins/sdk-agent-harness)
|
||||
- [Model Providers](/tr/concepts/model-providers)
|
||||
- [Configuration Reference](/tr/gateway/configuration-reference)
|
||||
- [Testing](/tr/help/testing#live-codex-app-server-harness-smoke)
|
||||
- [Ajan Koşum Takımı Plugin'leri](/tr/plugins/sdk-agent-harness)
|
||||
- [Model Sağlayıcıları](/tr/concepts/model-providers)
|
||||
- [Yapılandırma Başvurusu](/tr/gateway/configuration-reference)
|
||||
- [Test](\/help/testing#live-codex-app-server-harness-smoke)
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
---
|
||||
read_when:
|
||||
- Bir OpenClaw plugin’i geliştiriyorsunuz
|
||||
- Bir plugin yapılandırma şeması yayımlamanız veya plugin doğrulama hatalarını ayıklamanız gerekiyor
|
||||
summary: Plugin manifesti + JSON şeması gereksinimleri (katı yapılandırma doğrulaması)
|
||||
- Bir OpenClaw plugin'i oluşturuyorsunuz
|
||||
- Bir plugin yapılandırma şeması yayımlamanız veya plugin doğrulama hatalarında hata ayıklamanız gerekiyor
|
||||
summary: Plugin manifesti + JSON şema gereksinimleri (katı yapılandırma doğrulaması)
|
||||
title: Plugin Manifesti
|
||||
x-i18n:
|
||||
generated_at: "2026-04-22T04:24:28Z"
|
||||
generated_at: "2026-04-22T08:54:51Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 52a52f7e2c78bbef2cc51ade6eb12b6edc950237bdfc478f6e82248374c687bf
|
||||
source_hash: 085c1baccb96b8e6bd4033ad11bdd5f79bdb0daec470e977fce723c3ae38cc99
|
||||
source_path: plugins/manifest.md
|
||||
workflow: 15
|
||||
---
|
||||
@ -17,55 +17,51 @@ x-i18n:
|
||||
|
||||
Bu sayfa yalnızca **yerel OpenClaw plugin manifesti** içindir.
|
||||
|
||||
Uyumlu paket düzenleri için bkz. [Plugin bundles](/tr/plugins/bundles).
|
||||
Uyumlu paket düzenleri için bkz. [Plugin paketleri](/tr/plugins/bundles).
|
||||
|
||||
Uyumlu paket biçimleri farklı manifest dosyaları kullanır:
|
||||
|
||||
- Codex paketi: `.codex-plugin/plugin.json`
|
||||
- Claude paketi: `.claude-plugin/plugin.json` veya manifestsiz varsayılan Claude bileşen düzeni
|
||||
- Claude paketi: `.claude-plugin/plugin.json` veya manifestsiz varsayılan Claude bileşeni düzeni
|
||||
- Cursor paketi: `.cursor-plugin/plugin.json`
|
||||
|
||||
OpenClaw bu paket düzenlerini de otomatik algılar, ancak bunlar burada açıklanan `openclaw.plugin.json` şemasına göre doğrulanmaz.
|
||||
OpenClaw bu paket düzenlerini de otomatik algılar, ancak burada açıklanan `openclaw.plugin.json` şemasına göre doğrulanmazlar.
|
||||
|
||||
Uyumlu paketler için OpenClaw şu anda paket meta verilerini ve bildirilen
|
||||
skill köklerini, Claude komut köklerini, Claude paketi `settings.json` varsayılanlarını,
|
||||
Claude paketi LSP varsayılanlarını ve düzen OpenClaw çalışma zamanı beklentileriyle eşleştiğinde desteklenen hook paketlerini okur.
|
||||
Uyumlu paketlerde OpenClaw şu anda düzen, OpenClaw çalışma zamanı beklentileriyle eşleştiğinde paket meta verilerini, bildirilen skill köklerini, Claude komut köklerini, Claude paketi `settings.json` varsayılanlarını, Claude paketi LSP varsayılanlarını ve desteklenen hook paketlerini okur.
|
||||
|
||||
Her yerel OpenClaw plugin’i, **plugin kökünde**
|
||||
bir `openclaw.plugin.json` dosyası yayımlamak **zorundadır**. OpenClaw bu manifesti,
|
||||
plugin kodunu **çalıştırmadan** yapılandırmayı doğrulamak için kullanır. Eksik veya geçersiz manifestler plugin hatası olarak değerlendirilir ve yapılandırma doğrulamasını engeller.
|
||||
Her yerel OpenClaw plugin'i, **plugin kökünde** mutlaka bir `openclaw.plugin.json` dosyası yayımlamalıdır. OpenClaw bu manifesti, yapılandırmayı **plugin kodunu çalıştırmadan** doğrulamak için kullanır. Eksik veya geçersiz manifestler plugin hatası olarak değerlendirilir ve yapılandırma doğrulamasını engeller.
|
||||
|
||||
Tam plugin sistemi kılavuzu için bkz.: [Plugins](/tr/tools/plugin).
|
||||
Tam plugin sistemi kılavuzuna bakın: [Plugins](/tr/tools/plugin).
|
||||
Yerel yetenek modeli ve mevcut dış uyumluluk rehberi için:
|
||||
[Capability model](/tr/plugins/architecture#public-capability-model).
|
||||
[Yetenek modeli](/tr/plugins/architecture#public-capability-model).
|
||||
|
||||
## Bu dosya ne yapar
|
||||
|
||||
`openclaw.plugin.json`, OpenClaw’un plugin kodunuzu yüklemeden önce okuduğu meta verilerdir.
|
||||
`openclaw.plugin.json`, OpenClaw'ın plugin kodunuzu yüklemeden önce okuduğu meta veridir.
|
||||
|
||||
Şunlar için kullanın:
|
||||
|
||||
- plugin kimliği
|
||||
- yapılandırma doğrulaması
|
||||
- plugin çalışma zamanını başlatmadan erişilebilir olması gereken kimlik doğrulama ve onboarding meta verileri
|
||||
- plugin çalışma zamanını başlatmadan kullanılabilir olması gereken kimlik doğrulama ve onboarding meta verileri
|
||||
- denetim düzlemi yüzeylerinin çalışma zamanı yüklenmeden önce inceleyebileceği düşük maliyetli etkinleştirme ipuçları
|
||||
- kurulum/onboarding yüzeylerinin çalışma zamanı yüklenmeden önce inceleyebileceği düşük maliyetli kurulum tanımlayıcıları
|
||||
- plugin çalışma zamanı yüklenmeden önce çözümlenmesi gereken takma ad ve otomatik etkinleştirme meta verileri
|
||||
- plugin’i çalışma zamanı yüklenmeden önce otomatik etkinleştirmesi gereken kısa model ailesi sahipliği meta verileri
|
||||
- plugin'i çalışma zamanı yüklenmeden önce otomatik etkinleştirmesi gereken kısa model ailesi sahipliği meta verileri
|
||||
- paketlenmiş uyumluluk bağlama ve sözleşme kapsamı için kullanılan statik yetenek sahipliği anlık görüntüleri
|
||||
- paylaşılan `openclaw qa` hostunun plugin çalışma zamanı yüklenmeden önce inceleyebileceği düşük maliyetli QA çalıştırıcı meta verileri
|
||||
- çalışma zamanı yüklenmeden katalog ve doğrulama yüzeylerine birleştirilmesi gereken kanala özgü yapılandırma meta verileri
|
||||
- yapılandırma UI ipuçları
|
||||
- paylaşılan `openclaw qa` ana makinesinin plugin çalışma zamanı yüklenmeden önce inceleyebileceği düşük maliyetli QA çalıştırıcısı meta verileri
|
||||
- çalışma zamanı yüklemeden katalog ve doğrulama yüzeyleriyle birleştirilmesi gereken kanala özgü yapılandırma meta verileri
|
||||
- yapılandırma arayüzü ipuçları
|
||||
|
||||
Şunlar için kullanmayın:
|
||||
|
||||
- çalışma zamanı davranışı kaydetme
|
||||
- kod giriş noktalarını bildirme
|
||||
- çalışma zamanı davranışını kaydetmek
|
||||
- kod giriş noktalarını bildirmek
|
||||
- npm kurulum meta verileri
|
||||
|
||||
Bunlar plugin kodunuza ve `package.json` dosyanıza aittir.
|
||||
Bunlar plugin kodunuza ve `package.json` dosyasına aittir.
|
||||
|
||||
## Asgari örnek
|
||||
## Minimal örnek
|
||||
|
||||
```json
|
||||
{
|
||||
@ -84,7 +80,7 @@ Bunlar plugin kodunuza ve `package.json` dosyanıza aittir.
|
||||
{
|
||||
"id": "openrouter",
|
||||
"name": "OpenRouter",
|
||||
"description": "OpenRouter sağlayıcı plugin’i",
|
||||
"description": "OpenRouter provider plugin",
|
||||
"version": "1.0.0",
|
||||
"providers": ["openrouter"],
|
||||
"modelSupport": {
|
||||
@ -112,19 +108,19 @@ Bunlar plugin kodunuza ve `package.json` dosyanıza aittir.
|
||||
"provider": "openrouter",
|
||||
"method": "api-key",
|
||||
"choiceId": "openrouter-api-key",
|
||||
"choiceLabel": "OpenRouter API anahtarı",
|
||||
"choiceLabel": "OpenRouter API key",
|
||||
"groupId": "openrouter",
|
||||
"groupLabel": "OpenRouter",
|
||||
"optionKey": "openrouterApiKey",
|
||||
"cliFlag": "--openrouter-api-key",
|
||||
"cliOption": "--openrouter-api-key <key>",
|
||||
"cliDescription": "OpenRouter API anahtarı",
|
||||
"cliDescription": "OpenRouter API key",
|
||||
"onboardingScopes": ["text-inference"]
|
||||
}
|
||||
],
|
||||
"uiHints": {
|
||||
"apiKey": {
|
||||
"label": "API anahtarı",
|
||||
"label": "API key",
|
||||
"placeholder": "sk-or-v1-...",
|
||||
"sensitive": true
|
||||
}
|
||||
@ -143,64 +139,65 @@ Bunlar plugin kodunuza ve `package.json` dosyanıza aittir.
|
||||
|
||||
## Üst düzey alan başvurusu
|
||||
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| ----------------------------------- | ------- | -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `id` | Evet | `string` | Kanonik plugin kimliği. Bu, `plugins.entries.<id>` içinde kullanılan kimliktir. |
|
||||
| `configSchema` | Evet | `object` | Bu plugin’in yapılandırması için satır içi JSON Şeması. |
|
||||
| `enabledByDefault` | Hayır | `true` | Paketlenmiş bir plugin’i varsayılan olarak etkin işaretler. Plugin’i varsayılan olarak devre dışı bırakmak için bunu atlayın veya `true` dışındaki herhangi bir değeri ayarlayın. |
|
||||
| `legacyPluginIds` | Hayır | `string[]` | Bu kanonik plugin kimliğine normalleştirilen eski kimlikler. |
|
||||
| `autoEnableWhenConfiguredProviders` | Hayır | `string[]` | Kimlik doğrulama, yapılandırma veya model başvuruları bunlardan söz ettiğinde bu plugin’i otomatik etkinleştirmesi gereken sağlayıcı kimlikleri. |
|
||||
| `kind` | Hayır | `"memory"` \| `"context-engine"` | `plugins.slots.*` tarafından kullanılan, birbirini dışlayan bir plugin türü bildirir. |
|
||||
| `channels` | Hayır | `string[]` | Bu plugin’e ait kanal kimlikleri. Keşif ve yapılandırma doğrulaması için kullanılır. |
|
||||
| `providers` | Hayır | `string[]` | Bu plugin’e ait sağlayıcı kimlikleri. |
|
||||
| `modelSupport` | Hayır | `object` | Çalışma zamanından önce plugin’i otomatik yüklemek için kullanılan, manifest sahipli kısa model ailesi meta verileri. |
|
||||
| `providerEndpoints` | Hayır | `object[]` | Çekirdeğin sağlayıcı çalışma zamanı yüklenmeden önce sınıflandırması gereken sağlayıcı yolları için manifest sahipli uç nokta host/baseUrl meta verileri. |
|
||||
| `cliBackends` | Hayır | `string[]` | Bu plugin’e ait CLI çıkarım arka ucu kimlikleri. Açık yapılandırma başvurularından başlangıç otomatik etkinleştirmesi için kullanılır. |
|
||||
| `syntheticAuthRefs` | Hayır | `string[]` | Çalışma zamanı yüklenmeden önce soğuk model keşfi sırasında plugin sahipli sentetik kimlik doğrulama hook’unun yoklanması gereken sağlayıcı veya CLI arka ucu başvuruları. |
|
||||
| `nonSecretAuthMarkers` | Hayır | `string[]` | Gizli olmayan yerel, OAuth veya ortam kimlik bilgisi durumunu temsil eden, paketlenmiş plugin sahipli yer tutucu API anahtarı değerleri. |
|
||||
| `commandAliases` | Hayır | `object[]` | Çalışma zamanı yüklenmeden önce plugin farkındalıklı yapılandırma ve CLI tanıları üretmesi gereken, bu plugin’e ait komut adları. |
|
||||
| `providerAuthEnvVars` | Hayır | `Record<string, string[]>` | OpenClaw’un plugin kodunu yüklemeden inceleyebileceği düşük maliyetli sağlayıcı kimlik doğrulama env meta verileri. |
|
||||
| `providerAuthAliases` | Hayır | `Record<string, string>` | Kimlik doğrulama araması için başka bir sağlayıcı kimliğini yeniden kullanması gereken sağlayıcı kimlikleri; örneğin temel sağlayıcı API anahtarı ve kimlik doğrulama profillerini paylaşan bir coding sağlayıcısı. |
|
||||
| `channelEnvVars` | Hayır | `Record<string, string[]>` | OpenClaw’un plugin kodunu yüklemeden inceleyebileceği düşük maliyetli kanal env meta verileri. Bunu, genel başlangıç/yapılandırma yardımcılarının görmesi gereken env odaklı kanal kurulumu veya kimlik doğrulama yüzeyleri için kullanın. |
|
||||
| `providerAuthChoices` | Hayır | `object[]` | Onboarding seçicileri, tercih edilen sağlayıcı çözümlemesi ve basit CLI bayrak bağlama için düşük maliyetli kimlik doğrulama seçeneği meta verileri. |
|
||||
| `activation` | Hayır | `object` | Sağlayıcı, komut, kanal, rota ve yetenek tetiklemeli yükleme için düşük maliyetli etkinleştirme ipuçları. Yalnızca meta veri; gerçek davranış yine de plugin çalışma zamanına aittir. |
|
||||
| `setup` | Hayır | `object` | Keşif ve kurulum yüzeylerinin plugin çalışma zamanını yüklemeden inceleyebileceği düşük maliyetli kurulum/onboarding tanımlayıcıları. |
|
||||
| `qaRunners` | Hayır | `object[]` | Paylaşılan `openclaw qa` hostunun plugin çalışma zamanı yüklenmeden önce kullandığı düşük maliyetli QA çalıştırıcı tanımlayıcıları. |
|
||||
| `contracts` | Hayır | `object` | Konuşma, gerçek zamanlı transkripsiyon, gerçek zamanlı ses, medya-anlama, görsel üretimi, müzik üretimi, video üretimi, web-fetch, web araması ve araç sahipliği için statik paketlenmiş yetenek anlık görüntüsü. |
|
||||
| `channelConfigs` | Hayır | `Record<string, object>` | Çalışma zamanı yüklenmeden keşif ve doğrulama yüzeylerine birleştirilen manifest sahipli kanal yapılandırma meta verileri. |
|
||||
| `skills` | Hayır | `string[]` | Plugin köküne göre göreli yüklenecek Skills dizinleri. |
|
||||
| `name` | Hayır | `string` | İnsan tarafından okunabilir plugin adı. |
|
||||
| `description` | Hayır | `string` | Plugin yüzeylerinde gösterilen kısa özet. |
|
||||
| `version` | Hayır | `string` | Bilgilendirici plugin sürümü. |
|
||||
| `uiHints` | Hayır | `Record<string, object>` | Yapılandırma alanları için UI etiketleri, yer tutucular ve hassasiyet ipuçları. |
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| ------------------------------------ | -------- | -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `id` | Evet | `string` | Kanonik plugin kimliği. `plugins.entries.<id>` içinde kullanılan kimlik budur. |
|
||||
| `configSchema` | Evet | `object` | Bu plugin'in yapılandırması için satır içi JSON Schema. |
|
||||
| `enabledByDefault` | Hayır | `true` | Paketlenmiş bir plugin'i varsayılan olarak etkin işaretler. Plugin'in varsayılan olarak devre dışı kalması için bu alanı eklemeyin veya `true` dışındaki herhangi bir değere ayarlayın. |
|
||||
| `legacyPluginIds` | Hayır | `string[]` | Bu kanonik plugin kimliğine normalize edilen eski kimlikler. |
|
||||
| `autoEnableWhenConfiguredProviders` | Hayır | `string[]` | Kimlik doğrulama, yapılandırma veya model başvuruları bunlardan söz ettiğinde bu plugin'i otomatik etkinleştirmesi gereken provider kimlikleri. |
|
||||
| `kind` | Hayır | `"memory"` \| `"context-engine"` | `plugins.slots.*` tarafından kullanılan, yalnızca birine özel plugin türünü bildirir. |
|
||||
| `channels` | Hayır | `string[]` | Bu plugin'e ait kanal kimlikleri. Keşif ve yapılandırma doğrulaması için kullanılır. |
|
||||
| `providers` | Hayır | `string[]` | Bu plugin'e ait provider kimlikleri. |
|
||||
| `modelSupport` | Hayır | `object` | Çalışma zamanından önce plugin'i otomatik yüklemek için kullanılan, manifeste ait kısa model ailesi meta verileri. |
|
||||
| `providerEndpoints` | Hayır | `object[]` | Çekirdeğin provider çalışma zamanı yüklenmeden önce sınıflandırması gereken provider rotaları için manifeste ait endpoint host/baseUrl meta verileri. |
|
||||
| `cliBackends` | Hayır | `string[]` | Bu plugin'e ait CLI çıkarım backend kimlikleri. Açık yapılandırma başvurularından başlangıçta otomatik etkinleştirme için kullanılır. |
|
||||
| `syntheticAuthRefs` | Hayır | `string[]` | Çalışma zamanı yüklenmeden önce soğuk model keşfi sırasında plugin'e ait sentetik kimlik doğrulama hook'unun yoklanması gereken provider veya CLI backend başvuruları. |
|
||||
| `nonSecretAuthMarkers` | Hayır | `string[]` | Gizli olmayan yerel, OAuth veya ortamdan gelen kimlik bilgisi durumunu temsil eden, paketlenmiş plugin'e ait yer tutucu API anahtarı değerleri. |
|
||||
| `commandAliases` | Hayır | `object[]` | Çalışma zamanı yüklenmeden önce plugin farkındalıklı yapılandırma ve CLI tanılamaları üretmesi gereken, bu plugin'e ait komut adları. |
|
||||
| `providerAuthEnvVars` | Hayır | `Record<string, string[]>` | OpenClaw'ın plugin kodunu yüklemeden inceleyebileceği düşük maliyetli provider kimlik doğrulama ortam değişkeni meta verileri. |
|
||||
| `providerAuthAliases` | Hayır | `Record<string, string>` | Kimlik doğrulama araması için başka bir provider kimliğini yeniden kullanması gereken provider kimlikleri; örneğin temel provider API anahtarını ve kimlik doğrulama profillerini paylaşan bir coding provider. |
|
||||
| `channelEnvVars` | Hayır | `Record<string, string[]>` | OpenClaw'ın plugin kodunu yüklemeden inceleyebileceği düşük maliyetli kanal ortam değişkeni meta verileri. Bunu, genel başlangıç/yapılandırma yardımcılarının görmesi gereken ortam değişkeni odaklı kanal kurulumu veya kimlik doğrulama yüzeyleri için kullanın. |
|
||||
| `providerAuthChoices` | Hayır | `object[]` | Onboarding seçicileri, tercih edilen provider çözümlemesi ve basit CLI bayrağı bağlaması için düşük maliyetli kimlik doğrulama seçeneği meta verileri. |
|
||||
| `activation` | Hayır | `object` | Provider, komut, kanal, rota ve yetenek tetiklemeli yükleme için düşük maliyetli etkinleştirme ipuçları. Yalnızca meta veri; gerçek davranışın sahibi hâlâ plugin çalışma zamanıdır. |
|
||||
| `setup` | Hayır | `object` | Keşif ve kurulum yüzeylerinin plugin çalışma zamanını yüklemeden inceleyebileceği düşük maliyetli kurulum/onboarding tanımlayıcıları. |
|
||||
| `qaRunners` | Hayır | `object[]` | Paylaşılan `openclaw qa` ana makinesi tarafından plugin çalışma zamanı yüklenmeden önce kullanılan düşük maliyetli QA çalıştırıcısı tanımlayıcıları. |
|
||||
| `contracts` | Hayır | `object` | Konuşma, gerçek zamanlı transkripsiyon, gerçek zamanlı ses, medya anlama, görsel oluşturma, müzik oluşturma, video oluşturma, web getirme, web arama ve araç sahipliği için statik paketlenmiş yetenek anlık görüntüsü. |
|
||||
| `mediaUnderstandingProviderMetadata` | Hayır | `Record<string, object>` | `contracts.mediaUnderstandingProviders` içinde bildirilen provider kimlikleri için düşük maliyetli medya anlama varsayılanları. |
|
||||
| `channelConfigs` | Hayır | `Record<string, object>` | Çalışma zamanı yüklenmeden keşif ve doğrulama yüzeyleriyle birleştirilen, manifeste ait kanal yapılandırma meta verileri. |
|
||||
| `skills` | Hayır | `string[]` | Plugin köküne göre göreli olarak yüklenecek Skills dizinleri. |
|
||||
| `name` | Hayır | `string` | İnsan tarafından okunabilir plugin adı. |
|
||||
| `description` | Hayır | `string` | Plugin yüzeylerinde gösterilen kısa özet. |
|
||||
| `version` | Hayır | `string` | Bilgilendirme amaçlı plugin sürümü. |
|
||||
| `uiHints` | Hayır | `Record<string, object>` | Yapılandırma alanları için UI etiketleri, yer tutucular ve hassasiyet ipuçları. |
|
||||
|
||||
## providerAuthChoices başvurusu
|
||||
## `providerAuthChoices` başvurusu
|
||||
|
||||
Her `providerAuthChoices` girdisi bir onboarding veya kimlik doğrulama seçeneğini tanımlar.
|
||||
OpenClaw bunu sağlayıcı çalışma zamanı yüklenmeden önce okur.
|
||||
Her `providerAuthChoices` girdisi bir onboarding veya kimlik doğrulama seçeneğini açıklar.
|
||||
OpenClaw bunu provider çalışma zamanı yüklenmeden önce okur.
|
||||
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| --------------------- | ------- | ------------------------------------------------ | --------------------------------------------------------------------------------------------------------- |
|
||||
| `provider` | Evet | `string` | Bu seçeneğin ait olduğu sağlayıcı kimliği. |
|
||||
| `method` | Evet | `string` | Yönlendirilecek kimlik doğrulama yöntemi kimliği. |
|
||||
| `choiceId` | Evet | `string` | Onboarding ve CLI akışlarında kullanılan kararlı kimlik doğrulama seçeneği kimliği. |
|
||||
| `choiceLabel` | Hayır | `string` | Kullanıcıya dönük etiket. Atlanırsa OpenClaw `choiceId` değerine geri döner. |
|
||||
| `choiceHint` | Hayır | `string` | Seçici için kısa yardımcı metin. |
|
||||
| `assistantPriority` | Hayır | `number` | Aracı odaklı etkileşimli seçicilerde düşük değerler daha önce sıralanır. |
|
||||
| `assistantVisibility` | Hayır | `"visible"` \| `"manual-only"` | Elle CLI seçimine izin vermeye devam ederken seçeneği aracı seçicilerinden gizler. |
|
||||
| `deprecatedChoiceIds` | Hayır | `string[]` | Kullanıcıları bu yedek seçeneğe yönlendirmesi gereken eski seçenek kimlikleri. |
|
||||
| `groupId` | Hayır | `string` | İlgili seçenekleri gruplamak için isteğe bağlı grup kimliği. |
|
||||
| `groupLabel` | Hayır | `string` | Bu grup için kullanıcıya dönük etiket. |
|
||||
| `groupHint` | Hayır | `string` | Grup için kısa yardımcı metin. |
|
||||
| `optionKey` | Hayır | `string` | Basit tek bayraklı kimlik doğrulama akışları için iç seçenek anahtarı. |
|
||||
| `cliFlag` | Hayır | `string` | `--openrouter-api-key` gibi CLI bayrağı adı. |
|
||||
| `cliOption` | Hayır | `string` | `--openrouter-api-key <key>` gibi tam CLI seçenek biçimi. |
|
||||
| `cliDescription` | Hayır | `string` | CLI yardımında kullanılan açıklama. |
|
||||
| `onboardingScopes` | Hayır | `Array<"text-inference" \| "image-generation">` | Bu seçeneğin hangi onboarding yüzeylerinde görünmesi gerektiği. Atlanırsa varsayılan `["text-inference"]` olur. |
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| -------------------- | -------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
|
||||
| `provider` | Evet | `string` | Bu seçeneğin ait olduğu provider kimliği. |
|
||||
| `method` | Evet | `string` | Yönlendirme yapılacak kimlik doğrulama yöntemi kimliği. |
|
||||
| `choiceId` | Evet | `string` | Onboarding ve CLI akışlarında kullanılan kararlı kimlik doğrulama seçeneği kimliği. |
|
||||
| `choiceLabel` | Hayır | `string` | Kullanıcıya görünen etiket. Atlanırsa OpenClaw `choiceId` değerine geri döner. |
|
||||
| `choiceHint` | Hayır | `string` | Seçici için kısa yardımcı metin. |
|
||||
| `assistantPriority` | Hayır | `number` | Asistan odaklı etkileşimli seçicilerde daha düşük değerler önce sıralanır. |
|
||||
| `assistantVisibility`| Hayır | `"visible"` \| `"manual-only"` | Manuel CLI seçimine izin vermeye devam ederken seçeneği asistan seçicilerinden gizler. |
|
||||
| `deprecatedChoiceIds`| Hayır | `string[]` | Kullanıcıları bu yeni seçenekle yönlendirmesi gereken eski seçenek kimlikleri. |
|
||||
| `groupId` | Hayır | `string` | İlgili seçenekleri gruplamak için isteğe bağlı grup kimliği. |
|
||||
| `groupLabel` | Hayır | `string` | Bu grup için kullanıcıya görünen etiket. |
|
||||
| `groupHint` | Hayır | `string` | Grup için kısa yardımcı metin. |
|
||||
| `optionKey` | Hayır | `string` | Basit tek bayraklı kimlik doğrulama akışları için dahili seçenek anahtarı. |
|
||||
| `cliFlag` | Hayır | `string` | `--openrouter-api-key` gibi CLI bayrağı adı. |
|
||||
| `cliOption` | Hayır | `string` | `--openrouter-api-key <key>` gibi tam CLI seçenek biçimi. |
|
||||
| `cliDescription` | Hayır | `string` | CLI yardımında kullanılan açıklama. |
|
||||
| `onboardingScopes` | Hayır | `Array<"text-inference" \| "image-generation">` | Bu seçeneğin hangi onboarding yüzeylerinde görünmesi gerektiği. Atlanırsa varsayılan `["text-inference"]` olur. |
|
||||
|
||||
## commandAliases başvurusu
|
||||
## `commandAliases` başvurusu
|
||||
|
||||
Bir plugin, kullanıcıların yanlışlıkla `plugins.allow` içine koyabileceği veya kök CLI komutu olarak çalıştırmayı deneyebileceği bir çalışma zamanı komut adına sahipse `commandAliases` kullanın. OpenClaw bu meta verileri, plugin çalışma zamanı kodunu içe aktarmadan tanılar için kullanır.
|
||||
Bir plugin, kullanıcıların yanlışlıkla `plugins.allow` içine koyabileceği veya kök CLI komutu olarak çalıştırmayı deneyebileceği bir çalışma zamanı komut adına sahipse `commandAliases` kullanın. OpenClaw bu meta verileri, plugin çalışma zamanı kodunu içe aktarmadan tanılamalar için kullanır.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -214,38 +211,37 @@ Bir plugin, kullanıcıların yanlışlıkla `plugins.allow` içine koyabileceğ
|
||||
}
|
||||
```
|
||||
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| ------------ | ------- | ----------------- | ------------------------------------------------------------------------- |
|
||||
| `name` | Evet | `string` | Bu plugin’e ait komut adı. |
|
||||
| `kind` | Hayır | `"runtime-slash"` | Takma adı, kök CLI komutu yerine bir sohbet slash komutu olarak işaretler. |
|
||||
| `cliCommand` | Hayır | `string` | Varsa CLI işlemleri için önerilecek ilgili kök CLI komutu. |
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| ------------ | -------- | ----------------- | -------------------------------------------------------------------------- |
|
||||
| `name` | Evet | `string` | Bu plugin'e ait komut adı. |
|
||||
| `kind` | Hayır | `"runtime-slash"` | Takma adı, kök CLI komutu yerine bir sohbet slash komutu olarak işaretler. |
|
||||
| `cliCommand` | Hayır | `string` | Varsa CLI işlemleri için önerilecek ilgili kök CLI komutu. |
|
||||
|
||||
## activation başvurusu
|
||||
## `activation` başvurusu
|
||||
|
||||
Plugin’in, hangi denetim düzlemi olaylarının onu daha sonra etkinleştirmesi gerektiğini düşük maliyetle bildirebildiği durumlarda `activation` kullanın.
|
||||
Plugin daha sonra hangi denetim düzlemi olaylarının onu etkinleştirmesi gerektiğini düşük maliyetle bildirebiliyorsa `activation` kullanın.
|
||||
|
||||
## qaRunners başvurusu
|
||||
## `qaRunners` başvurusu
|
||||
|
||||
Bir plugin, paylaşılan `openclaw qa` kökünün altında bir veya daha fazla taşıma çalıştırıcısı sağlıyorsa `qaRunners` kullanın. Bu meta verileri düşük maliyetli ve statik tutun; plugin çalışma zamanı yine de `qaRunnerCliRegistrations` dışa aktaran hafif bir `runtime-api.ts` yüzeyi üzerinden gerçek CLI kaydına sahip olur.
|
||||
Bir plugin, paylaşılan `openclaw qa` kökü altında bir veya daha fazla taşıma çalıştırıcısı sağlıyorsa `qaRunners` kullanın. Bu meta veriyi düşük maliyetli ve statik tutun; plugin çalışma zamanı, `qaRunnerCliRegistrations` dışa aktaran hafif bir `runtime-api.ts` yüzeyi üzerinden gerçek CLI kaydının sahibi olmaya devam eder.
|
||||
|
||||
```json
|
||||
{
|
||||
"qaRunners": [
|
||||
{
|
||||
"commandName": "matrix",
|
||||
"description": "Tek kullanımlık bir homeserver'a karşı Docker destekli Matrix canlı QA hattını çalıştır"
|
||||
"description": "Kullan-at bir homeserver'a karşı Docker destekli Matrix canlı QA hattını çalıştır"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| ------------- | ------- | -------- | -------------------------------------------------------------------------- |
|
||||
| `commandName` | Evet | `string` | `openclaw qa` altında bağlanan alt komut; örneğin `matrix`. |
|
||||
| `description` | Hayır | `string` | Paylaşılan hostun bir stub komuta ihtiyaç duyduğunda kullandığı yedek yardım metni. |
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| ------------- | -------- | -------- | ---------------------------------------------------------------------- |
|
||||
| `commandName` | Evet | `string` | `openclaw qa` altında bağlanan alt komut; örneğin `matrix`. |
|
||||
| `description` | Hayır | `string` | Paylaşılan ana makinenin bir taslak komuta ihtiyaç duyduğu durumda kullanılan yedek yardım metni. |
|
||||
|
||||
Bu blok yalnızca meta veridir. Çalışma zamanı davranışı kaydetmez ve `register(...)`, `setupEntry` veya diğer çalışma zamanı/plugin giriş noktalarının yerini almaz.
|
||||
Geçerli tüketiciler bunu daha geniş plugin yüklemesinden önce daraltıcı bir ipucu olarak kullanır; dolayısıyla eksik etkinleştirme meta verileri genellikle yalnızca performans maliyeti doğurur. Eski manifest sahipliği yedekleri hâlâ varken doğruluğu değiştirmemelidir.
|
||||
Bu blok yalnızca meta veridir. Çalışma zamanı davranışını kaydetmez ve `register(...)`, `setupEntry` veya diğer çalışma zamanı/plugin giriş noktalarının yerini almaz. Mevcut tüketiciler bunu daha geniş plugin yüklemesinden önce daraltıcı bir ipucu olarak kullanır; bu nedenle eksik etkinleştirme meta verisi genellikle yalnızca performans maliyeti doğurur; eski manifest sahipliği geri dönüşleri hâlâ varken doğruluğu değiştirmemelidir.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -259,26 +255,23 @@ Geçerli tüketiciler bunu daha geniş plugin yüklemesinden önce daraltıcı b
|
||||
}
|
||||
```
|
||||
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| ---------------- | ------- | ---------------------------------------------------- | ----------------------------------------------------------------------- |
|
||||
| `onProviders` | Hayır | `string[]` | İstendiğinde bu plugin’i etkinleştirmesi gereken sağlayıcı kimlikleri. |
|
||||
| `onCommands` | Hayır | `string[]` | Bu plugin’i etkinleştirmesi gereken komut kimlikleri. |
|
||||
| `onChannels` | Hayır | `string[]` | Bu plugin’i etkinleştirmesi gereken kanal kimlikleri. |
|
||||
| `onRoutes` | Hayır | `string[]` | Bu plugin’i etkinleştirmesi gereken rota türleri. |
|
||||
| `onCapabilities` | Hayır | `Array<"provider" \| "channel" \| "tool" \| "hook">` | Denetim düzlemi etkinleştirme planlamasında kullanılan geniş yetenek ipuçları. |
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| ---------------- | -------- | ---------------------------------------------------- | ---------------------------------------------------------------------- |
|
||||
| `onProviders` | Hayır | `string[]` | İstendiğinde bu plugin'i etkinleştirmesi gereken provider kimlikleri. |
|
||||
| `onCommands` | Hayır | `string[]` | Bu plugin'i etkinleştirmesi gereken komut kimlikleri. |
|
||||
| `onChannels` | Hayır | `string[]` | Bu plugin'i etkinleştirmesi gereken kanal kimlikleri. |
|
||||
| `onRoutes` | Hayır | `string[]` | Bu plugin'i etkinleştirmesi gereken rota türleri. |
|
||||
| `onCapabilities` | Hayır | `Array<"provider" \| "channel" \| "tool" \| "hook">` | Denetim düzlemi etkinleştirme planlamasında kullanılan geniş yetenek ipuçları. |
|
||||
|
||||
Mevcut canlı tüketiciler:
|
||||
Geçerli canlı tüketiciler:
|
||||
|
||||
- komut tetiklemeli CLI planlaması eski
|
||||
`commandAliases[].cliCommand` veya `commandAliases[].name` değerine geri düşer
|
||||
- kanal tetiklemeli kurulum/kanal planlaması, açık kanal etkinleştirme meta verisi eksik olduğunda eski `channels[]`
|
||||
sahipliğine geri düşer
|
||||
- sağlayıcı tetiklemeli kurulum/çalışma zamanı planlaması, açık sağlayıcı
|
||||
etkinleştirme meta verisi eksik olduğunda eski `providers[]` ve üst düzey `cliBackends[]` sahipliğine geri düşer
|
||||
- komut tetiklemeli CLI planlaması, eski `commandAliases[].cliCommand` veya `commandAliases[].name` alanlarına geri döner
|
||||
- kanal tetiklemeli kurulum/kanal planlaması, açık kanal etkinleştirme meta verisi eksik olduğunda eski `channels[]` sahipliğine geri döner
|
||||
- provider tetiklemeli kurulum/çalışma zamanı planlaması, açık provider etkinleştirme meta verisi eksik olduğunda eski `providers[]` ve üst düzey `cliBackends[]` sahipliğine geri döner
|
||||
|
||||
## setup başvurusu
|
||||
## `setup` başvurusu
|
||||
|
||||
Kurulum ve onboarding yüzeyleri, çalışma zamanı yüklenmeden önce plugin sahipli düşük maliyetli meta verilere ihtiyaç duyduğunda `setup` kullanın.
|
||||
Kurulum ve onboarding yüzeyleri çalışma zamanı yüklenmeden önce plugin'e ait düşük maliyetli meta verilere ihtiyaç duyuyorsa `setup` kullanın.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -297,30 +290,30 @@ Kurulum ve onboarding yüzeyleri, çalışma zamanı yüklenmeden önce plugin s
|
||||
}
|
||||
```
|
||||
|
||||
Üst düzey `cliBackends` geçerliliğini korur ve CLI çıkarım arka uçlarını tanımlamaya devam eder. `setup.cliBackends`, yalnızca meta veri olarak kalması gereken denetim düzlemi/kurulum akışları için kurulum odaklı tanımlayıcı yüzeyidir.
|
||||
Üst düzey `cliBackends` geçerliliğini korur ve CLI çıkarım backend'lerini açıklamaya devam eder. `setup.cliBackends`, yalnızca meta veri olarak kalması gereken denetim düzlemi/kurulum akışları için kurulum odaklı tanımlayıcı yüzeyidir.
|
||||
|
||||
Varsa, `setup.providers` ve `setup.cliBackends`, kurulum keşfi için tercih edilen tanımlayıcı öncelikli arama yüzeyidir. Tanımlayıcı yalnızca aday plugin’i daraltıyorsa ve kurulum hâlâ daha zengin kurulum zamanı çalışma zamanı hook’larına ihtiyaç duyuyorsa `requiresRuntime: true` ayarlayın ve yedek yürütme yolu olarak `setup-api` öğesini yerinde bırakın.
|
||||
Varsa `setup.providers` ve `setup.cliBackends`, kurulum keşfi için tercih edilen tanımlayıcı öncelikli arama yüzeyidir. Tanımlayıcı yalnızca aday plugin'i daraltıyorsa ve kurulum hâlâ daha zengin kurulum zamanı çalışma zamanı hook'larına ihtiyaç duyuyorsa `requiresRuntime: true` ayarlayın ve yedek yürütme yolu olarak `setup-api` kullanımını koruyun.
|
||||
|
||||
Kurulum araması plugin sahipli `setup-api` kodunu çalıştırabildiğinden, normalize edilmiş `setup.providers[].id` ve `setup.cliBackends[]` değerleri keşfedilen plugin’ler arasında genel olarak benzersiz kalmalıdır. Belirsiz sahiplik, keşif sırasından bir kazanan seçmek yerine güvenli biçimde kapatılır.
|
||||
Kurulum araması plugin'e ait `setup-api` kodunu çalıştırabildiğinden, normalize edilmiş `setup.providers[].id` ve `setup.cliBackends[]` değerleri keşfedilen plugin'ler arasında benzersiz kalmalıdır. Belirsiz sahiplik, keşif sırasından bir kazanan seçmek yerine güvenli biçimde başarısız olur.
|
||||
|
||||
### setup.providers başvurusu
|
||||
### `setup.providers` başvurusu
|
||||
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| ------------- | ------- | ---------- | ---------------------------------------------------------------------------------------- |
|
||||
| `id` | Evet | `string` | Kurulum veya onboarding sırasında sunulan sağlayıcı kimliği. Normalize edilmiş kimlikleri genel olarak benzersiz tutun. |
|
||||
| `authMethods` | Hayır | `string[]` | Tam çalışma zamanını yüklemeden bu sağlayıcının desteklediği kurulum/kimlik doğrulama yöntemleri. |
|
||||
| `envVars` | Hayır | `string[]` | Genel kurulum/durum yüzeylerinin plugin çalışma zamanı yüklenmeden önce kontrol edebileceği env değişkenleri. |
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| ------------- | -------- | ---------- | --------------------------------------------------------------------------------------- |
|
||||
| `id` | Evet | `string` | Kurulum veya onboarding sırasında açığa çıkan provider kimliği. Normalize kimlikleri küresel olarak benzersiz tutun. |
|
||||
| `authMethods` | Hayır | `string[]` | Bu provider'ın tam çalışma zamanını yüklemeden desteklediği kurulum/kimlik doğrulama yöntemi kimlikleri. |
|
||||
| `envVars` | Hayır | `string[]` | Genel kurulum/durum yüzeylerinin plugin çalışma zamanı yüklenmeden önce denetleyebileceği ortam değişkenleri. |
|
||||
|
||||
### setup alanları
|
||||
### `setup` alanları
|
||||
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| ------------------ | ------- | ---------- | ----------------------------------------------------------------------------------------------- |
|
||||
| `providers` | Hayır | `object[]` | Kurulum ve onboarding sırasında sunulan sağlayıcı kurulum tanımlayıcıları. |
|
||||
| `cliBackends` | Hayır | `string[]` | Tanımlayıcı öncelikli kurulum araması için kullanılan kurulum zamanı arka uç kimlikleri. Normalize edilmiş kimlikleri genel olarak benzersiz tutun. |
|
||||
| `configMigrations` | Hayır | `string[]` | Bu plugin’in kurulum yüzeyine ait yapılandırma geçiş kimlikleri. |
|
||||
| `requiresRuntime` | Hayır | `boolean` | Tanımlayıcı aramasından sonra kurulumun hâlâ `setup-api` yürütmesine ihtiyaç duyup duymadığı. |
|
||||
| Alan | Gerekli | Tür | Anlamı |
|
||||
| ------------------ | -------- | ---------- | ---------------------------------------------------------------------------------------------- |
|
||||
| `providers` | Hayır | `object[]` | Kurulum ve onboarding sırasında açığa çıkan provider kurulum tanımlayıcıları. |
|
||||
| `cliBackends` | Hayır | `string[]` | Tanımlayıcı öncelikli kurulum araması için kullanılan kurulum zamanı backend kimlikleri. Normalize kimlikleri küresel olarak benzersiz tutun. |
|
||||
| `configMigrations` | Hayır | `string[]` | Bu plugin'in kurulum yüzeyine ait yapılandırma geçişi kimlikleri. |
|
||||
| `requiresRuntime` | Hayır | `boolean` | Tanımlayıcı aramasından sonra kurulumun hâlâ `setup-api` yürütmesine ihtiyaç duyup duymadığı. |
|
||||
|
||||
## uiHints başvurusu
|
||||
## `uiHints` başvurusu
|
||||
|
||||
`uiHints`, yapılandırma alan adlarından küçük işleme ipuçlarına giden bir eşlemedir.
|
||||
|
||||
@ -328,8 +321,8 @@ Kurulum araması plugin sahipli `setup-api` kodunu çalıştırabildiğinden, no
|
||||
{
|
||||
"uiHints": {
|
||||
"apiKey": {
|
||||
"label": "API anahtarı",
|
||||
"help": "OpenRouter istekleri için kullanılır",
|
||||
"label": "API key",
|
||||
"help": "Used for OpenRouter requests",
|
||||
"placeholder": "sk-or-v1-...",
|
||||
"sensitive": true
|
||||
}
|
||||
@ -339,22 +332,23 @@ Kurulum araması plugin sahipli `setup-api` kodunu çalıştırabildiğinden, no
|
||||
|
||||
Her alan ipucu şunları içerebilir:
|
||||
|
||||
| Alan | Tür | Anlamı |
|
||||
| ------------- | ---------- | --------------------------------------- |
|
||||
| `label` | `string` | Kullanıcıya dönük alan etiketi. |
|
||||
| `help` | `string` | Kısa yardımcı metin. |
|
||||
| `tags` | `string[]` | İsteğe bağlı UI etiketleri. |
|
||||
| `advanced` | `boolean` | Alanı gelişmiş olarak işaretler. |
|
||||
| Alan | Tür | Anlamı |
|
||||
| ------------- | ---------- | ------------------------------------- |
|
||||
| `label` | `string` | Kullanıcıya görünen alan etiketi. |
|
||||
| `help` | `string` | Kısa yardımcı metin. |
|
||||
| `tags` | `string[]` | İsteğe bağlı UI etiketleri. |
|
||||
| `advanced` | `boolean` | Alanı gelişmiş olarak işaretler. |
|
||||
| `sensitive` | `boolean` | Alanı gizli veya hassas olarak işaretler. |
|
||||
| `placeholder` | `string` | Form girdileri için yer tutucu metin. |
|
||||
| `placeholder` | `string` | Form girdileri için yer tutucu metin. |
|
||||
|
||||
## contracts başvurusu
|
||||
## `contracts` başvurusu
|
||||
|
||||
`contracts` öğesini yalnızca OpenClaw’un plugin çalışma zamanını içe aktarmadan okuyabileceği statik yetenek sahipliği meta verileri için kullanın.
|
||||
OpenClaw'ın plugin çalışma zamanını içe aktarmadan okuyabileceği statik yetenek sahipliği meta verileri için yalnızca `contracts` kullanın.
|
||||
|
||||
```json
|
||||
{
|
||||
"contracts": {
|
||||
"embeddedExtensionFactories": ["pi"],
|
||||
"speechProviders": ["openai"],
|
||||
"realtimeTranscriptionProviders": ["openai"],
|
||||
"realtimeVoiceProviders": ["openai"],
|
||||
@ -370,21 +364,56 @@ Her alan ipucu şunları içerebilir:
|
||||
|
||||
Her liste isteğe bağlıdır:
|
||||
|
||||
| Alan | Tür | Anlamı |
|
||||
| -------------------------------- | ---------- | ---------------------------------------------------------- |
|
||||
| `speechProviders` | `string[]` | Bu plugin’e ait konuşma sağlayıcısı kimlikleri. |
|
||||
| `realtimeTranscriptionProviders` | `string[]` | Bu plugin’e ait gerçek zamanlı transkripsiyon sağlayıcısı kimlikleri. |
|
||||
| `realtimeVoiceProviders` | `string[]` | Bu plugin’e ait gerçek zamanlı ses sağlayıcısı kimlikleri. |
|
||||
| `mediaUnderstandingProviders` | `string[]` | Bu plugin’e ait medya-anlama sağlayıcısı kimlikleri. |
|
||||
| `imageGenerationProviders` | `string[]` | Bu plugin’e ait görsel üretimi sağlayıcısı kimlikleri. |
|
||||
| `videoGenerationProviders` | `string[]` | Bu plugin’e ait video üretimi sağlayıcısı kimlikleri. |
|
||||
| `webFetchProviders` | `string[]` | Bu plugin’e ait web-fetch sağlayıcısı kimlikleri. |
|
||||
| `webSearchProviders` | `string[]` | Bu plugin’e ait web araması sağlayıcısı kimlikleri. |
|
||||
| `tools` | `string[]` | Paketlenmiş sözleşme denetimleri için bu plugin’e ait aracı araç adları. |
|
||||
| Alan | Tür | Anlamı |
|
||||
| -------------------------------- | ---------- | --------------------------------------------------------------------- |
|
||||
| `embeddedExtensionFactories` | `string[]` | Paketlenmiş bir plugin'in fabrika kaydedebileceği gömülü çalışma zamanı kimlikleri. |
|
||||
| `speechProviders` | `string[]` | Bu plugin'in sahip olduğu konuşma provider kimlikleri. |
|
||||
| `realtimeTranscriptionProviders` | `string[]` | Bu plugin'in sahip olduğu gerçek zamanlı transkripsiyon provider kimlikleri. |
|
||||
| `realtimeVoiceProviders` | `string[]` | Bu plugin'in sahip olduğu gerçek zamanlı ses provider kimlikleri. |
|
||||
| `mediaUnderstandingProviders` | `string[]` | Bu plugin'in sahip olduğu medya anlama provider kimlikleri. |
|
||||
| `imageGenerationProviders` | `string[]` | Bu plugin'in sahip olduğu görsel oluşturma provider kimlikleri. |
|
||||
| `videoGenerationProviders` | `string[]` | Bu plugin'in sahip olduğu video oluşturma provider kimlikleri. |
|
||||
| `webFetchProviders` | `string[]` | Bu plugin'in sahip olduğu web getirme provider kimlikleri. |
|
||||
| `webSearchProviders` | `string[]` | Bu plugin'in sahip olduğu web arama provider kimlikleri. |
|
||||
| `tools` | `string[]` | Paketlenmiş sözleşme denetimleri için bu plugin'in sahip olduğu ajan araç adları. |
|
||||
|
||||
## channelConfigs başvurusu
|
||||
## `mediaUnderstandingProviderMetadata` başvurusu
|
||||
|
||||
Bir kanal plugin’i, çalışma zamanı yüklenmeden önce düşük maliyetli yapılandırma meta verilerine ihtiyaç duyduğunda `channelConfigs` kullanın.
|
||||
Bir medya anlama provider'ının, genel çekirdek yardımcılarının çalışma zamanı yüklenmeden önce ihtiyaç duyduğu varsayılan modellere, otomatik kimlik doğrulama geri dönüş önceliğine veya yerel belge desteğine sahip olduğu durumlarda `mediaUnderstandingProviderMetadata` kullanın. Anahtarlar ayrıca `contracts.mediaUnderstandingProviders` içinde de bildirilmelidir.
|
||||
|
||||
```json
|
||||
{
|
||||
"contracts": {
|
||||
"mediaUnderstandingProviders": ["example"]
|
||||
},
|
||||
"mediaUnderstandingProviderMetadata": {
|
||||
"example": {
|
||||
"capabilities": ["image", "audio"],
|
||||
"defaultModels": {
|
||||
"image": "example-vision-latest",
|
||||
"audio": "example-transcribe-latest"
|
||||
},
|
||||
"autoPriority": {
|
||||
"image": 40
|
||||
},
|
||||
"nativeDocumentInputs": ["pdf"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Her provider girdisi şunları içerebilir:
|
||||
|
||||
| Alan | Tür | Anlamı |
|
||||
| ---------------------- | ----------------------------------- | --------------------------------------------------------------------------- |
|
||||
| `capabilities` | `("image" \| "audio" \| "video")[]` | Bu provider tarafından sunulan medya yetenekleri. |
|
||||
| `defaultModels` | `Record<string, string>` | Yapılandırma bir model belirtmediğinde kullanılan yetenekten modele varsayılan eşlemeleri. |
|
||||
| `autoPriority` | `Record<string, number>` | Kimlik bilgisine dayalı otomatik provider geri dönüşünde daha düşük sayılar önce sıralanır. |
|
||||
| `nativeDocumentInputs` | `"pdf"[]` | Provider tarafından desteklenen yerel belge girdileri. |
|
||||
|
||||
## `channelConfigs` başvurusu
|
||||
|
||||
Bir kanal plugin'inin çalışma zamanı yüklenmeden önce düşük maliyetli yapılandırma meta verilerine ihtiyaç duyduğu durumlarda `channelConfigs` kullanın.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -413,17 +442,17 @@ Bir kanal plugin’i, çalışma zamanı yüklenmeden önce düşük maliyetli y
|
||||
|
||||
Her kanal girdisi şunları içerebilir:
|
||||
|
||||
| Alan | Tür | Anlamı |
|
||||
| ------------- | ------------------------ | ------------------------------------------------------------------------------------------ |
|
||||
| `schema` | `object` | `channels.<id>` için JSON Şeması. Bildirilen her kanal yapılandırma girdisi için gereklidir. |
|
||||
| `uiHints` | `Record<string, object>` | Bu kanal yapılandırma bölümü için isteğe bağlı UI etiketleri/yer tutucular/hassas ipuçları. |
|
||||
| `label` | `string` | Çalışma zamanı meta verisi hazır olmadığında seçici ve inceleme yüzeylerine birleştirilen kanal etiketi. |
|
||||
| `description` | `string` | İnceleme ve katalog yüzeyleri için kısa kanal açıklaması. |
|
||||
| `preferOver` | `string[]` | Seçim yüzeylerinde bunun önüne geçmesi gereken eski veya düşük öncelikli plugin kimlikleri. |
|
||||
| Alan | Tür | Anlamı |
|
||||
| ------------- | ------------------------ | ------------------------------------------------------------------------------------------- |
|
||||
| `schema` | `object` | `channels.<id>` için JSON Schema. Bildirilen her kanal yapılandırma girdisi için zorunludur. |
|
||||
| `uiHints` | `Record<string, object>` | Bu kanal yapılandırma bölümü için isteğe bağlı UI etiketleri/yer tutucular/hassasiyet ipuçları. |
|
||||
| `label` | `string` | Çalışma zamanı meta verileri hazır olmadığında seçiciye ve inceleme yüzeylerine birleştirilen kanal etiketi. |
|
||||
| `description` | `string` | İnceleme ve katalog yüzeyleri için kısa kanal açıklaması. |
|
||||
| `preferOver` | `string[]` | Bu kanalın seçim yüzeylerinde geride bırakması gereken eski veya daha düşük öncelikli plugin kimlikleri. |
|
||||
|
||||
## modelSupport başvurusu
|
||||
## `modelSupport` başvurusu
|
||||
|
||||
OpenClaw’un, plugin çalışma zamanı yüklenmeden önce `gpt-5.4` veya `claude-sonnet-4.6` gibi kısa model kimliklerinden sağlayıcı plugin’inizi çıkarsamasını istiyorsanız `modelSupport` kullanın.
|
||||
OpenClaw'ın, plugin çalışma zamanı yüklenmeden önce `gpt-5.4` veya `claude-sonnet-4.6` gibi kısa model kimliklerinden provider plugin'inizi çıkarsaması gerektiğinde `modelSupport` kullanın.
|
||||
|
||||
```json
|
||||
{
|
||||
@ -434,71 +463,66 @@ OpenClaw’un, plugin çalışma zamanı yüklenmeden önce `gpt-5.4` veya `clau
|
||||
}
|
||||
```
|
||||
|
||||
OpenClaw şu önceliği uygular:
|
||||
OpenClaw şu öncelik sırasını uygular:
|
||||
|
||||
- açık `provider/model` başvuruları sahip `providers` manifest meta verilerini kullanır
|
||||
- `modelPatterns`, `modelPrefixes` üzerinde önceliklidir
|
||||
- hem paketlenmemiş bir plugin hem de paketlenmiş bir plugin eşleşirse, paketlenmemiş plugin kazanır
|
||||
- geri kalan belirsizlik, kullanıcı veya yapılandırma bir sağlayıcı belirtinceye kadar yok sayılır
|
||||
- açık `provider/model` başvuruları, sahibi olan `providers` manifest meta verilerini kullanır
|
||||
- `modelPatterns`, `modelPrefixes` değerlerini geçersiz kılar
|
||||
- hem paketlenmemiş bir plugin hem de paketlenmiş bir plugin eşleşirse paketlenmemiş plugin kazanır
|
||||
- kalan belirsizlik, kullanıcı veya yapılandırma bir provider belirtinceye kadar yok sayılır
|
||||
|
||||
Alanlar:
|
||||
|
||||
| Alan | Tür | Anlamı |
|
||||
| --------------- | ---------- | --------------------------------------------------------------------------- |
|
||||
| `modelPrefixes` | `string[]` | Kısa model kimliklerine karşı `startsWith` ile eşleşen önekler. |
|
||||
| Alan | Tür | Anlamı |
|
||||
| --------------- | ---------- | ---------------------------------------------------------------------------- |
|
||||
| `modelPrefixes` | `string[]` | Kısa model kimliklerine karşı `startsWith` ile eşleşen önekler. |
|
||||
| `modelPatterns` | `string[]` | Profil son eki kaldırıldıktan sonra kısa model kimliklerine karşı eşleşen regex kaynakları. |
|
||||
|
||||
Eski üst düzey yetenek anahtarları kullanımdan kaldırılmıştır. `speechProviders`, `realtimeTranscriptionProviders`,
|
||||
`realtimeVoiceProviders`, `mediaUnderstandingProviders`,
|
||||
`imageGenerationProviders`, `videoGenerationProviders`,
|
||||
`webFetchProviders` ve `webSearchProviders` alanlarını `contracts` altına taşımak için `openclaw doctor --fix` kullanın; normal
|
||||
manifest yükleme artık bu üst düzey alanları yetenek sahipliği olarak ele almaz.
|
||||
Eski üst düzey yetenek anahtarları kullanımdan kaldırılmıştır. `speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders` ve `webSearchProviders` alanlarını `contracts` altına taşımak için `openclaw doctor --fix` kullanın; normal manifest yükleme artık bu üst düzey alanları yetenek sahipliği olarak değerlendirmez.
|
||||
|
||||
## Manifest ile package.json karşılaştırması
|
||||
|
||||
Bu iki dosya farklı görevler görür:
|
||||
Bu iki dosya farklı işler yapar:
|
||||
|
||||
| Dosya | Şunun için kullanın |
|
||||
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `openclaw.plugin.json` | Keşif, yapılandırma doğrulaması, kimlik doğrulama seçeneği meta verileri ve plugin kodu çalışmadan önce var olması gereken UI ipuçları |
|
||||
| Dosya | Şunun için kullanın |
|
||||
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `openclaw.plugin.json` | Plugin kodu çalışmadan önce var olması gereken keşif, yapılandırma doğrulaması, kimlik doğrulama seçeneği meta verileri ve UI ipuçları |
|
||||
| `package.json` | npm meta verileri, bağımlılık kurulumu ve giriş noktaları, kurulum geçitlemesi, setup veya katalog meta verileri için kullanılan `openclaw` bloğu |
|
||||
|
||||
Bir meta veri parçasının nereye ait olduğundan emin değilseniz şu kuralı kullanın:
|
||||
Bir meta verinin nereye ait olduğundan emin değilseniz şu kuralı kullanın:
|
||||
|
||||
- OpenClaw bunu plugin kodunu yüklemeden önce bilmek zorundaysa `openclaw.plugin.json` içine koyun
|
||||
- paketleme, giriş dosyaları veya npm kurulum davranışıyla ilgiliyse `package.json` içine koyun
|
||||
|
||||
### Keşfi etkileyen package.json alanları
|
||||
### Keşfi etkileyen `package.json` alanları
|
||||
|
||||
Bazı çalışma zamanı öncesi plugin meta verileri, `openclaw.plugin.json` yerine kasten `package.json` içindeki
|
||||
`openclaw` bloğu altında bulunur.
|
||||
Çalışma zamanından önceki bazı plugin meta verileri, bilinçli olarak `openclaw.plugin.json` yerine `package.json` içindeki `openclaw` bloğunda bulunur.
|
||||
|
||||
Önemli örnekler:
|
||||
|
||||
| Alan | Anlamı |
|
||||
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `openclaw.extensions` | Yerel plugin giriş noktalarını bildirir. Plugin paket dizini içinde kalmak zorundadır. |
|
||||
| `openclaw.runtimeExtensions` | Kurulu paketler için derlenmiş JavaScript çalışma zamanı giriş noktalarını bildirir. Plugin paket dizini içinde kalmak zorundadır. |
|
||||
| `openclaw.setupEntry` | Onboarding, ertelenmiş kanal başlatma ve salt okunur kanal durumu/SecretRef keşfi sırasında kullanılan hafif yalnızca-kurulum giriş noktası. Plugin paket dizini içinde kalmak zorundadır. |
|
||||
| `openclaw.runtimeSetupEntry` | Kurulu paketler için derlenmiş JavaScript kurulum giriş noktasını bildirir. Plugin paket dizini içinde kalmak zorundadır. |
|
||||
| `openclaw.channel` | Etiketler, doküman yolları, takma adlar ve seçim metni gibi düşük maliyetli kanal katalog meta verileri. |
|
||||
| `openclaw.channel.configuredState` | Tam kanal çalışma zamanını yüklemeden "yalnızca env tabanlı kurulum zaten var mı?" sorusunu cevaplayabilen hafif configured-state checker meta verileri. |
|
||||
| `openclaw.channel.persistedAuthState` | Tam kanal çalışma zamanını yüklemeden "zaten oturum açılmış bir şey var mı?" sorusunu cevaplayabilen hafif persisted-auth checker meta verileri. |
|
||||
| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Paketlenmiş ve dışarıda yayımlanmış plugin’ler için kurulum/güncelleme ipuçları. |
|
||||
| `openclaw.install.defaultChoice` | Birden fazla kurulum kaynağı olduğunda tercih edilen kurulum yolu. |
|
||||
| `openclaw.install.minHostVersion` | `>=2026.3.22` gibi bir semver alt sınırı kullanan, desteklenen en düşük OpenClaw host sürümü. |
|
||||
| `openclaw.install.allowInvalidConfigRecovery` | Yapılandırma geçersiz olduğunda dar kapsamlı bir paketlenmiş-plugin yeniden kurulum kurtarma yoluna izin verir. |
|
||||
| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Başlangıç sırasında tam kanal plugin’inden önce yalnızca-kurulum kanal yüzeylerinin yüklenmesine izin verir. |
|
||||
| Alan | Anlamı |
|
||||
| ----------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `openclaw.extensions` | Yerel plugin giriş noktalarını bildirir. Plugin paket dizini içinde kalmalıdır. |
|
||||
| `openclaw.runtimeExtensions` | Kurulu paketler için derlenmiş JavaScript çalışma zamanı giriş noktalarını bildirir. Plugin paket dizini içinde kalmalıdır. |
|
||||
| `openclaw.setupEntry` | Onboarding, ertelenmiş kanal başlangıcı ve salt okunur kanal durumu/SecretRef keşfi sırasında kullanılan hafif, yalnızca setup giriş noktasıdır. Plugin paket dizini içinde kalmalıdır. |
|
||||
| `openclaw.runtimeSetupEntry` | Kurulu paketler için derlenmiş JavaScript setup giriş noktasını bildirir. Plugin paket dizini içinde kalmalıdır. |
|
||||
| `openclaw.channel` | Etiketler, belge yolları, takma adlar ve seçim metni gibi düşük maliyetli kanal katalog meta verileri. |
|
||||
| `openclaw.channel.configuredState` | Tam kanal çalışma zamanını yüklemeden "yalnızca env temelli kurulum zaten mevcut mu?" sorusunu yanıtlayabilen hafif yapılandırılmış durum denetleyicisi meta verileri. |
|
||||
| `openclaw.channel.persistedAuthState` | Tam kanal çalışma zamanını yüklemeden "zaten oturum açılmış bir şey var mı?" sorusunu yanıtlayabilen hafif kalıcı kimlik doğrulama durumu denetleyicisi meta verileri. |
|
||||
| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Paketlenmiş ve dışarıda yayımlanmış plugin'ler için kurulum/güncelleme ipuçları. |
|
||||
| `openclaw.install.defaultChoice` | Birden fazla kurulum kaynağı mevcut olduğunda tercih edilen kurulum yolu. |
|
||||
| `openclaw.install.minHostVersion` | `>=2026.3.22` gibi bir semver alt sınırı kullanarak desteklenen en düşük OpenClaw ana makine sürümü. |
|
||||
| `openclaw.install.allowInvalidConfigRecovery` | Yapılandırma geçersiz olduğunda dar kapsamlı, paketlenmiş plugin yeniden kurulum kurtarma yoluna izin verir. |
|
||||
| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Başlangıç sırasında tam kanal plugin'inden önce yalnızca setup kanal yüzeylerinin yüklenmesine izin verir. |
|
||||
|
||||
`openclaw.install.minHostVersion`, kurulum ve manifest kayıt defteri yükleme sırasında zorlanır. Geçersiz değerler reddedilir; daha yeni ama geçerli değerler eski host’larda plugin’i atlar.
|
||||
`openclaw.install.minHostVersion`, kurulum ve manifest kayıt defteri yükleme sırasında uygulanır. Geçersiz değerler reddedilir; daha yeni ama geçerli değerler, daha eski ana makinelerde plugin'i atlar.
|
||||
|
||||
Kanal plugin’leri, durum, kanal listesi veya SecretRef taramalarının tam çalışma zamanını yüklemeden yapılandırılmış hesapları tanımlaması gerektiğinde `openclaw.setupEntry` sağlamalıdır. Kurulum girdisi kanal meta verilerini ve kurulum için güvenli yapılandırma, durum ve sır bağdaştırıcılarını sunmalıdır; ağ istemcilerini, gateway dinleyicilerini ve taşıma çalışma zamanlarını ana uzantı giriş noktasında tutun.
|
||||
Kanal plugin'leri, durum, kanal listesi veya SecretRef taramalarının tam çalışma zamanını yüklemeden yapılandırılmış hesapları belirlemesi gerektiğinde `openclaw.setupEntry` sağlamalıdır. Setup girişi, kanal meta verilerini ve setup için güvenli yapılandırma, durum ve gizli anahtar adaptörlerini açığa çıkarmalıdır; ağ istemcilerini, Gateway dinleyicilerini ve taşıma çalışma zamanlarını ana eklenti giriş noktasında tutun.
|
||||
|
||||
Çalışma zamanı giriş noktası alanları, kaynak giriş noktası alanları için paket sınırı denetimlerini geçersiz kılmaz. Örneğin `openclaw.runtimeExtensions`, sınır dışına kaçan bir `openclaw.extensions` yolunu yüklenebilir hâle getiremez.
|
||||
Çalışma zamanı giriş noktası alanları, kaynak giriş noktası alanları için paket sınırı denetimlerini geçersiz kılmaz. Örneğin, `openclaw.runtimeExtensions`, sınır dışına çıkan bir `openclaw.extensions` yolunu yüklenebilir hâle getiremez.
|
||||
|
||||
`openclaw.install.allowInvalidConfigRecovery` kasten dardır. Keyfi bozuk yapılandırmaları kurulabilir hâle getirmez. Bugün yalnızca eksik paketlenmiş plugin yolu veya aynı paketlenmiş plugin için bayat `channels.<id>` girdisi gibi belirli bayat paketlenmiş-plugin yükseltme hatalarından kurulum akışlarının kurtulmasına izin verir. İlgisiz yapılandırma hataları yine de kurulumu engeller ve operatörleri `openclaw doctor --fix` komutuna yönlendirir.
|
||||
`openclaw.install.allowInvalidConfigRecovery` kasıtlı olarak dar kapsamlıdır. Rastgele bozuk yapılandırmaları kurulabilir hâle getirmez. Bugün yalnızca, eksik paketlenmiş plugin yolu veya aynı paketlenmiş plugin için eski bir `channels.<id>` girdisi gibi belirli eski paketlenmiş plugin yükseltme hatalarından kurulum akışlarının kurtulmasına izin verir. İlgisiz yapılandırma hataları hâlâ kurulumu engeller ve operatörleri `openclaw doctor --fix` komutuna yönlendirir.
|
||||
|
||||
`openclaw.channel.persistedAuthState`, küçük bir checker modülü için paket meta verisidir:
|
||||
`openclaw.channel.persistedAuthState`, küçük bir denetleyici modül için paket meta verisidir:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -514,9 +538,9 @@ Kanal plugin’leri, durum, kanal listesi veya SecretRef taramalarının tam ça
|
||||
}
|
||||
```
|
||||
|
||||
Bunu, setup, doctor veya configured-state akışlarının tam kanal plugin’i yüklenmeden önce düşük maliyetli bir evet/hayır kimlik doğrulama yoklamasına ihtiyaç duyduğu durumlarda kullanın. Hedef dışa aktarım yalnızca kalıcı durumu okuyan küçük bir işlev olmalıdır; bunu tam kanal çalışma zamanı barrel’ı üzerinden yönlendirmeyin.
|
||||
Setup, doctor veya yapılandırılmış durum akışlarının tam kanal plugin'i yüklenmeden önce düşük maliyetli bir evet/hayır kimlik doğrulama yoklamasına ihtiyaç duyduğu durumlarda bunu kullanın. Hedef dışa aktarma, yalnızca kalıcı durumu okuyan küçük bir işlev olmalıdır; bunu tam kanal çalışma zamanı barrel'ı üzerinden yönlendirmeyin.
|
||||
|
||||
`openclaw.channel.configuredState`, düşük maliyetli yalnızca-env configured denetimleri için aynı biçimi izler:
|
||||
`openclaw.channel.configuredState`, düşük maliyetli yalnızca env tabanlı yapılandırılmış durum denetimleri için aynı biçimi izler:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -532,82 +556,63 @@ Bunu, setup, doctor veya configured-state akışlarının tam kanal plugin’i y
|
||||
}
|
||||
```
|
||||
|
||||
Bunu, bir kanal configured-state bilgisini env veya başka küçük çalışma zamanı dışı girdilerden cevaplayabiliyorsa kullanın. Denetim tam yapılandırma çözümlemesi veya gerçek kanal çalışma zamanı gerektiriyorsa, bu mantığı bunun yerine plugin `config.hasConfiguredState` hook’u içinde tutun.
|
||||
Bir kanal, yapılandırılmış durumu env veya diğer küçük çalışma zamanı dışı girdilerden yanıtlayabiliyorsa bunu kullanın. Denetim tam yapılandırma çözümlemesi veya gerçek kanal çalışma zamanını gerektiriyorsa bu mantığı bunun yerine plugin `config.hasConfiguredState` hook'unda tutun.
|
||||
|
||||
## Keşif önceliği (yinelenen plugin kimlikleri)
|
||||
|
||||
OpenClaw, plugin’leri birkaç kökten keşfeder (paketlenmiş, genel kurulum, çalışma alanı, açık yapılandırmayla seçilmiş yollar). İki keşif aynı `id` değerini paylaşıyorsa yalnızca **en yüksek öncelikli** manifest tutulur; daha düşük öncelikli yinelenenler yanında yüklenmek yerine düşürülür.
|
||||
OpenClaw plugin'leri çeşitli köklerden keşfeder (paketlenmiş, global kurulum, çalışma alanı, yapılandırmada açıkça seçilen yollar). İki keşif aynı `id` değerini paylaşıyorsa yalnızca **en yüksek öncelikli** manifest tutulur; daha düşük öncelikli yinelenenler onun yanında yüklenmek yerine atılır.
|
||||
|
||||
Öncelik, yüksekten düşüğe:
|
||||
Öncelik sırası, yüksekten düşüğe:
|
||||
|
||||
1. **Yapılandırmayla seçilen** — `plugins.entries.<id>` içinde açıkça sabitlenmiş bir yol
|
||||
2. **Paketlenmiş** — OpenClaw ile gelen plugin’ler
|
||||
3. **Genel kurulum** — genel OpenClaw plugin köküne kurulmuş plugin’ler
|
||||
4. **Çalışma alanı** — geçerli çalışma alanına göre keşfedilen plugin’ler
|
||||
1. **Yapılandırmada seçilen** — `plugins.entries.<id>` içinde açıkça sabitlenmiş bir yol
|
||||
2. **Paketlenmiş** — OpenClaw ile birlikte gelen plugin'ler
|
||||
3. **Global kurulum** — global OpenClaw plugin köküne kurulmuş plugin'ler
|
||||
4. **Çalışma alanı** — geçerli çalışma alanına göre keşfedilen plugin'ler
|
||||
|
||||
Sonuçlar:
|
||||
|
||||
- Çalışma alanında duran, çatallanmış veya bayat bir paketlenmiş plugin kopyası paketlenmiş derlemeyi gölgeleyemez.
|
||||
- Paketlenmiş bir plugin’i yerel bir kopyayla gerçekten geçersiz kılmak için, çalışma alanı keşfine güvenmek yerine öncelikle kazanması amacıyla onu `plugins.entries.<id>` üzerinden sabitleyin.
|
||||
- Yinelenen düşürmeler günlüğe kaydedilir; böylece Doctor ve başlangıç tanıları elenen kopyaya işaret edebilir.
|
||||
- Çalışma alanında duran, çatallanmış veya eski bir paketlenmiş plugin kopyası, paketlenmiş derlemenin önüne geçmez.
|
||||
- Paketlenmiş bir plugin'i yerel olanla gerçekten geçersiz kılmak için, çalışma alanı keşfine güvenmek yerine öncelik sırasıyla kazanması amacıyla onu `plugins.entries.<id>` üzerinden sabitleyin.
|
||||
- Atılan yinelenenler günlüğe kaydedilir; böylece Doctor ve başlangıç tanılamaları elenen kopyayı gösterebilir.
|
||||
|
||||
## JSON Şeması gereksinimleri
|
||||
## JSON Schema gereksinimleri
|
||||
|
||||
- **Her plugin bir JSON Şeması yayımlamak zorundadır**, hiçbir yapılandırma kabul etmese bile.
|
||||
- **Her plugin mutlaka bir JSON Schema yayımlamalıdır**, yapılandırma kabul etmese bile.
|
||||
- Boş bir şema kabul edilebilir (örneğin `{ "type": "object", "additionalProperties": false }`).
|
||||
- Şemalar çalışma zamanında değil, yapılandırma okuma/yazma sırasında doğrulanır.
|
||||
|
||||
## Doğrulama davranışı
|
||||
|
||||
- Plugin manifesti tarafından kanal kimliği bildirilmediği sürece bilinmeyen `channels.*` anahtarları **hatadır**.
|
||||
- `plugins.entries.<id>`, `plugins.allow`, `plugins.deny` ve `plugins.slots.*`
|
||||
**keşfedilebilir** plugin kimliklerine başvurmalıdır. Bilinmeyen kimlikler **hatadır**.
|
||||
- Bir plugin kuruluysa ama manifesti veya şeması bozuksa ya da eksikse,
|
||||
doğrulama başarısız olur ve Doctor plugin hatasını bildirir.
|
||||
- Plugin yapılandırması varsa ama plugin **devre dışıysa**, yapılandırma korunur ve
|
||||
Doctor + günlüklerde bir **uyarı** gösterilir.
|
||||
- Bilinmeyen `channels.*` anahtarları, kanal kimliği bir plugin manifesti tarafından bildirilmedikçe **hatadır**.
|
||||
- `plugins.entries.<id>`, `plugins.allow`, `plugins.deny` ve `plugins.slots.*`, **keşfedilebilir** plugin kimliklerine başvurmalıdır. Bilinmeyen kimlikler **hatadır**.
|
||||
- Bir plugin kuruluysa ancak bozuk veya eksik manifesti ya da şeması varsa doğrulama başarısız olur ve Doctor plugin hatasını bildirir.
|
||||
- Plugin yapılandırması varsa ancak plugin **devre dışıysa**, yapılandırma korunur ve Doctor + günlüklerde bir **uyarı** gösterilir.
|
||||
|
||||
Tam `plugins.*` şeması için bkz. [Configuration reference](/tr/gateway/configuration).
|
||||
Tam `plugins.*` şeması için bkz. [Yapılandırma başvurusu](/tr/gateway/configuration).
|
||||
|
||||
## Notlar
|
||||
|
||||
- Manifest, yerel dosya sistemi yüklemeleri dahil **yerel OpenClaw plugin’leri için zorunludur**.
|
||||
- Çalışma zamanı yine de plugin modülünü ayrı olarak yükler; manifest yalnızca
|
||||
keşif + doğrulama içindir.
|
||||
- Yerel manifestler JSON5 ile ayrıştırılır; dolayısıyla son değer hâlâ bir nesne olduğu sürece yorumlar, sondaki virgüller ve tırnaksız anahtarlar kabul edilir.
|
||||
- Manifest yükleyicisi yalnızca belgelenmiş manifest alanlarını okur. Buraya
|
||||
özel üst düzey anahtarlar eklemekten kaçının.
|
||||
- `providerAuthEnvVars`, kimlik doğrulama yoklamaları, env-marker
|
||||
doğrulaması ve env adlarını incelemek için plugin çalışma zamanını başlatmaması gereken benzer sağlayıcı kimlik doğrulama yüzeyleri için düşük maliyetli meta veri yoludur.
|
||||
- `providerAuthAliases`, sağlayıcı varyantlarının başka bir sağlayıcının kimlik doğrulama
|
||||
env değişkenlerini, kimlik doğrulama profillerini, yapılandırma destekli kimlik doğrulamayı ve API anahtarlı onboarding seçeneğini çekirdeğe bu ilişkiyi sabit kodlamadan yeniden kullanmasına izin verir.
|
||||
- `providerEndpoints`, sağlayıcı plugin’lerinin basit uç nokta host/baseUrl
|
||||
eşleştirme meta verilerine sahip olmasını sağlar. Bunu yalnızca çekirdeğin zaten desteklediği uç nokta sınıfları için kullanın; çalışma zamanı davranışı yine de plugin’e aittir.
|
||||
- `syntheticAuthRefs`, çalışma zamanı kayıt defteri oluşmadan önce soğuk model keşfi için görünür olması gereken sağlayıcı sahipli sentetik
|
||||
kimlik doğrulama hook’ları için düşük maliyetli meta veri yoludur. Yalnızca çalışma zamanı sağlayıcısı veya CLI arka ucu gerçekten `resolveSyntheticAuth` uygulayan başvuruları listeleyin.
|
||||
- `nonSecretAuthMarkers`, yerel, OAuth veya ortam kimlik bilgisi işaretçileri gibi paketlenmiş plugin sahipli
|
||||
yer tutucu API anahtarları için düşük maliyetli meta veri yoludur.
|
||||
Çekirdek, sahip sağlayıcıyı sabit kodlamadan bunları kimlik doğrulama gösterimi ve sır denetimleri için gizli olmayan değerler olarak ele alır.
|
||||
- `channelEnvVars`, env adlarını incelemek için plugin çalışma zamanını başlatmaması gereken shell-env yedeği, setup
|
||||
istemleri ve benzeri kanal yüzeyleri için düşük maliyetli meta veri yoludur. Env adları meta veridir, tek başlarına etkinleştirme değildir: durum, denetim, Cron teslim doğrulaması ve diğer salt okunur
|
||||
yüzeyler, bir env değişkenini yapılandırılmış kanal olarak kabul etmeden önce yine de plugin güveni ve etkili etkinleştirme ilkesini uygular.
|
||||
- `providerAuthChoices`, sağlayıcı çalışma zamanı yüklenmeden önce kimlik doğrulama seçeneği seçicileri,
|
||||
`--auth-choice` çözümlemesi, tercih edilen sağlayıcı eşlemesi ve basit onboarding
|
||||
CLI bayrağı kaydı için düşük maliyetli meta veri yoludur. Sağlayıcı kodu gerektiren çalışma zamanı sihirbazı
|
||||
meta verileri için bkz.
|
||||
[Provider runtime hooks](/tr/plugins/architecture#provider-runtime-hooks).
|
||||
- Birbirini dışlayan plugin türleri `plugins.slots.*` üzerinden seçilir.
|
||||
- `kind: "memory"` değeri `plugins.slots.memory` tarafından seçilir.
|
||||
- `kind: "context-engine"` değeri `plugins.slots.contextEngine`
|
||||
tarafından seçilir (varsayılan: yerleşik `legacy`).
|
||||
- Bir plugin bunlara ihtiyaç duymuyorsa `channels`, `providers`, `cliBackends` ve `skills`
|
||||
atlanabilir.
|
||||
- Plugin’iniz yerel modüllere bağımlıysa derleme adımlarını ve tüm
|
||||
paket yöneticisi izin listesi gereksinimlerini belgeleyin (örneğin pnpm `allow-build-scripts`
|
||||
- Manifest, yerel dosya sistemi yüklemeleri dahil **yerel OpenClaw plugin'leri için zorunludur**.
|
||||
- Çalışma zamanı yine de plugin modülünü ayrı olarak yükler; manifest yalnızca keşif + doğrulama içindir.
|
||||
- Yerel manifestler JSON5 ile ayrıştırılır; bu nedenle son değer hâlâ bir nesne olduğu sürece yorumlar, sondaki virgüller ve tırnaksız anahtarlar kabul edilir.
|
||||
- Manifest yükleyicisi yalnızca belgelenmiş manifest alanlarını okur. Buraya özel üst düzey anahtarlar eklemekten kaçının.
|
||||
- `providerAuthEnvVars`, kimlik doğrulama yoklamaları, env işaretleyici doğrulaması ve env adlarını incelemek için plugin çalışma zamanını başlatmaması gereken benzer provider kimlik doğrulama yüzeyleri için düşük maliyetli meta veri yoludur.
|
||||
- `providerAuthAliases`, provider varyantlarının başka bir provider'ın kimlik doğrulama env değişkenlerini, kimlik doğrulama profillerini, yapılandırma tabanlı kimlik doğrulamayı ve API anahtarı onboarding seçeneğini, bu ilişkiyi çekirdekte sabit kodlamadan yeniden kullanmasına izin verir.
|
||||
- `providerEndpoints`, provider plugin'lerinin basit endpoint host/baseUrl eşleştirme meta verilerinin sahibi olmasına izin verir. Bunu yalnızca çekirdeğin zaten desteklediği endpoint sınıfları için kullanın; çalışma zamanı davranışının sahibi hâlâ plugin'dir.
|
||||
- `syntheticAuthRefs`, çalışma zamanı kayıt defteri mevcut olmadan önce soğuk model keşfine görünür olması gereken provider'a ait sentetik kimlik doğrulama hook'ları için düşük maliyetli meta veri yoludur. Yalnızca çalışma zamanı provider'ı veya CLI backend'i gerçekten `resolveSyntheticAuth` uygulayan başvuruları listeleyin.
|
||||
- `nonSecretAuthMarkers`, yerel, OAuth veya ortamdan gelen kimlik bilgisi işaretleyicileri gibi paketlenmiş plugin'e ait yer tutucu API anahtarları için düşük maliyetli meta veri yoludur. Çekirdek, sahibi olan provider'ı sabit kodlamadan bunları kimlik doğrulama gösterimi ve gizli bilgi denetimleri için gizli olmayan değerler olarak ele alır.
|
||||
- `channelEnvVars`, env adlarını incelemek için plugin çalışma zamanını başlatmaması gereken kabuk env geri dönüşü, setup istemleri ve benzer kanal yüzeyleri için düşük maliyetli meta veri yoludur. Env adları meta veridir, tek başlarına etkinleştirme değildir: durum, denetim, Cron teslim doğrulaması ve diğer salt okunur yüzeyler, bir env değişkenini yapılandırılmış kanal olarak kabul etmeden önce hâlâ plugin güvenini ve etkili etkinleştirme ilkesini uygular.
|
||||
- `providerAuthChoices`, provider çalışma zamanı yüklenmeden önce kimlik doğrulama seçici arayüzleri, `--auth-choice` çözümlemesi, tercih edilen provider eşlemesi ve basit onboarding CLI bayrağı kaydı için düşük maliyetli meta veri yoludur. Provider kodu gerektiren çalışma zamanı sihirbazı meta verileri için bkz. [Provider çalışma zamanı hook'ları](/tr/plugins/architecture#provider-runtime-hooks).
|
||||
- Yalnızca birine özel plugin türleri `plugins.slots.*` üzerinden seçilir.
|
||||
- `kind: "memory"` şu alan tarafından seçilir: `plugins.slots.memory`.
|
||||
- `kind: "context-engine"` şu alan tarafından seçilir: `plugins.slots.contextEngine`
|
||||
(varsayılan: yerleşik `legacy`).
|
||||
- `channels`, `providers`, `cliBackends` ve `skills`, bir plugin bunlara ihtiyaç duymuyorsa atlanabilir.
|
||||
- Plugin'iniz yerel modüllere bağlıysa derleme adımlarını ve paket yöneticisi izin listesi gereksinimlerini belgeleyin (örneğin, pnpm `allow-build-scripts`
|
||||
- `pnpm rebuild <package>`).
|
||||
|
||||
## İlgili
|
||||
|
||||
- [Building Plugins](/tr/plugins/building-plugins) — plugin’lerle başlamaya giriş
|
||||
- [Plugin Architecture](/tr/plugins/architecture) — iç mimari
|
||||
- [SDK Overview](/tr/plugins/sdk-overview) — Plugin SDK başvurusu
|
||||
- [Plugin'ler Oluşturma](/tr/plugins/building-plugins) — plugin'lerle çalışmaya başlama
|
||||
- [Plugin Mimarisi](/tr/plugins/architecture) — iç mimari
|
||||
- [SDK Genel Bakış](/tr/plugins/sdk-overview) — Plugin SDK başvurusu
|
||||
|
||||
@ -1,37 +1,37 @@
|
||||
---
|
||||
read_when:
|
||||
- Gömülü ajan çalışma zamanını veya harness kayıt defterini değiştiriyorsunuz
|
||||
- Bir paketlenmiş veya güvenilir plugin'den bir ajan harness'i kaydediyorsunuz
|
||||
- Codex plugin'inin model sağlayıcılarla nasıl ilişkili olduğunu anlamanız gerekir
|
||||
- Gömülü aracı çalışma zamanını veya harness kayıt defterini değiştiriyorsunuz
|
||||
- Bir paketlenmiş veya güvenilir Plugin'den bir aracı harness'i kaydediyorsunuz
|
||||
- Codex Plugin'inin model sağlayıcılarla nasıl ilişkili olduğunu anlamanız gerekiyor
|
||||
sidebarTitle: Agent Harness
|
||||
summary: Düşük seviyeli gömülü ajan yürütücüsünü değiştiren plugin'ler için deneysel SDK yüzeyi
|
||||
title: Ajan Harness Plugin'leri
|
||||
summary: Düşük seviyeli gömülü aracı yürütücüsünü değiştiren Plugin'ler için deneysel SDK yüzeyi
|
||||
title: Aracı Harness Plugin'leri
|
||||
x-i18n:
|
||||
generated_at: "2026-04-12T00:18:56Z"
|
||||
generated_at: "2026-04-22T08:55:04Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 62b88fd24ce8b600179db27e16e8d764a2cd7a14e5c5df76374c33121aa5e365
|
||||
source_hash: 728fef59ae3cce29a3348842820f1f71a2eac98ae6b276179bce6c85d16613df
|
||||
source_path: plugins/sdk-agent-harness.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Ajan Harness Plugin'leri
|
||||
# Aracı Harness Plugin'leri
|
||||
|
||||
Bir **ajan harness'i**, hazırlanmış bir OpenClaw ajan dönüşü için düşük seviyeli yürütücüdür. Bir model sağlayıcısı, bir kanal veya bir araç kayıt defteri değildir.
|
||||
Bir **agent harness**, hazırlanmış bir OpenClaw aracı dönüşü için düşük seviyeli yürütücüdür. Bu, bir model sağlayıcı, bir kanal veya bir araç kayıt defteri değildir.
|
||||
|
||||
Bu yüzeyi yalnızca paketlenmiş veya güvenilir yerel plugin'ler için kullanın. Sözleşme hâlâ deneyseldir çünkü parametre türleri kasıtlı olarak mevcut gömülü çalıştırıcıyı yansıtır.
|
||||
Bu yüzeyi yalnızca paketlenmiş veya güvenilir yerel Plugin'ler için kullanın. Parametre türleri bilinçli olarak mevcut gömülü yürütücüyü yansıttığı için sözleşme hâlâ deneyseldir.
|
||||
|
||||
## Bir harness ne zaman kullanılmalı
|
||||
|
||||
Bir model ailesinin kendine ait yerel oturum çalışma zamanı varsa ve normal OpenClaw sağlayıcı taşıması yanlış soyutlamaysa bir ajan harness'i kaydedin.
|
||||
Bir model ailesinin kendi yerel oturum çalışma zamanı varsa ve normal OpenClaw sağlayıcı taşıması yanlış soyutlamaysa bir agent harness kaydedin.
|
||||
|
||||
Örnekler:
|
||||
|
||||
- iş parçacıklarını ve sıkıştırmayı sahiplenen yerel bir kodlama ajanı sunucusu
|
||||
- yerel plan/muhakeme/araç olaylarını akış olarak iletmesi gereken yerel bir CLI veya daemon
|
||||
- OpenClaw oturum dökümüne ek olarak kendi devam kimliğine ihtiyaç duyan bir model çalışma zamanı
|
||||
- iş parçacıklarını ve Compaction'ı yöneten yerel bir kodlama aracı sunucusu
|
||||
- yerel plan/akıl yürütme/araç olaylarını akıtması gereken yerel bir CLI veya daemon
|
||||
- OpenClaw oturum dökümüne ek olarak kendi sürdürme kimliğine ihtiyaç duyan bir model çalışma zamanı
|
||||
|
||||
Yalnızca yeni bir LLM API eklemek için bir harness kaydetmeyin. Normal HTTP veya WebSocket model API'leri için bir [sağlayıcı plugin'i](/tr/plugins/sdk-provider-plugins) oluşturun.
|
||||
Yalnızca yeni bir LLM API'si eklemek için harness kaydetmeyin. Normal HTTP veya WebSocket model API'leri için bir [sağlayıcı Plugin'i](/tr/plugins/sdk-provider-plugins) oluşturun.
|
||||
|
||||
## Çekirdeğin hâlâ sahip olduğu alanlar
|
||||
|
||||
@ -39,15 +39,15 @@ Bir harness seçilmeden önce OpenClaw şunları zaten çözümlemiştir:
|
||||
|
||||
- sağlayıcı ve model
|
||||
- çalışma zamanı kimlik doğrulama durumu
|
||||
- düşünme seviyesi ve bağlam bütçesi
|
||||
- OpenClaw döküm/oturum dosyası
|
||||
- düşünme düzeyi ve bağlam bütçesi
|
||||
- OpenClaw dökümü/oturum dosyası
|
||||
- çalışma alanı, sandbox ve araç ilkesi
|
||||
- kanal yanıt callback'leri ve akış callback'leri
|
||||
- model fallback ve canlı model değiştirme ilkesi
|
||||
- kanal yanıt geri çağrıları ve akış geri çağrıları
|
||||
- model geri dönüşü ve canlı model değiştirme ilkesi
|
||||
|
||||
Bu ayrım kasıtlıdır. Bir harness hazırlanmış bir denemeyi çalıştırır; sağlayıcı seçmez, kanal teslimatını değiştirmez veya modelleri sessizce değiştirmez.
|
||||
Bu ayrım bilinçlidir. Bir harness hazırlanmış bir denemeyi çalıştırır; sağlayıcı seçmez, kanal teslimini değiştirmez veya sessizce model değiştirmez.
|
||||
|
||||
## Bir harness kaydetme
|
||||
## Bir harness kaydedin
|
||||
|
||||
**İçe aktarma:** `openclaw/plugin-sdk/agent-harness`
|
||||
|
||||
@ -85,49 +85,49 @@ export default definePluginEntry({
|
||||
|
||||
## Seçim ilkesi
|
||||
|
||||
OpenClaw, sağlayıcı/model çözümlemesinden sonra bir harness seçer:
|
||||
OpenClaw bir harness'i sağlayıcı/model çözümlemesinden sonra seçer:
|
||||
|
||||
1. `OPENCLAW_AGENT_RUNTIME=<id>` bu kimliğe sahip kayıtlı bir harness'i zorlar.
|
||||
2. `OPENCLAW_AGENT_RUNTIME=pi` yerleşik PI harness'ini zorlar.
|
||||
3. `OPENCLAW_AGENT_RUNTIME=auto` kayıtlı harness'lere çözümlenen sağlayıcıyı/modeli destekleyip desteklemediklerini sorar.
|
||||
4. Hiçbir kayıtlı harness eşleşmezse OpenClaw, PI fallback devre dışı bırakılmadıkça PI kullanır.
|
||||
1. `OPENCLAW_AGENT_RUNTIME=<id>`, bu kimliğe sahip kayıtlı bir harness'i zorlar.
|
||||
2. `OPENCLAW_AGENT_RUNTIME=pi`, yerleşik PI harness'ini zorlar.
|
||||
3. `OPENCLAW_AGENT_RUNTIME=auto`, kayıtlı harness'lere çözümlemiş sağlayıcı/modeli destekleyip desteklemediklerini sorar.
|
||||
4. Hiçbir kayıtlı harness eşleşmezse OpenClaw, PI geri dönüşü devre dışı bırakılmadıkça PI kullanır.
|
||||
|
||||
Zorlanan plugin harness hataları çalıştırma hataları olarak görünür. `auto` modunda OpenClaw, seçilen plugin harness bir dönüş yan etkileri üretmeden önce başarısız olursa PI'ye fallback yapabilir. Bunun yerine bu fallback'i kesin hata hâline getirmek için `OPENCLAW_AGENT_HARNESS_FALLBACK=none` veya `embeddedHarness.fallback: "none"` ayarlayın.
|
||||
Plugin harness hataları çalıştırma hataları olarak görünür. `auto` modunda PI geri dönüşü yalnızca kayıtlı hiçbir Plugin harness çözümlemiş sağlayıcı/modeli desteklemediğinde kullanılır. Bir Plugin harness bir çalıştırmayı sahiplendikten sonra OpenClaw aynı dönüşü PI üzerinden yeniden oynatmaz; çünkü bu, kimlik doğrulama/çalışma zamanı anlamlarını değiştirebilir veya yan etkileri çoğaltabilir.
|
||||
|
||||
Paketlenmiş Codex plugin'i, harness kimliği olarak `codex` kaydeder. Çekirdek bunu sıradan bir plugin harness kimliği olarak değerlendirir; Codex'e özgü takma adlar paylaşılan çalışma zamanı seçicisinde değil, plugin'de veya operatör yapılandırmasında yer almalıdır.
|
||||
Paketlenmiş Codex Plugin'i, harness kimliği olarak `codex` kaydeder. Çekirdek buna sıradan bir Plugin harness kimliği gibi davranır; Codex'e özgü diğer adlar ortak çalışma zamanı seçicisinde değil, Plugin'de veya operatör yapılandırmasında yer almalıdır.
|
||||
|
||||
## Sağlayıcı artı harness eşleştirmesi
|
||||
## Sağlayıcı ve harness eşleştirmesi
|
||||
|
||||
Çoğu harness ayrıca bir sağlayıcı da kaydetmelidir. Sağlayıcı; model başvurularını, kimlik doğrulama durumunu, model meta verilerini ve `/model` seçimini OpenClaw'un geri kalanına görünür kılar. Harness daha sonra `supports(...)` içinde bu sağlayıcıyı sahiplenir.
|
||||
Çoğu harness aynı zamanda bir sağlayıcı da kaydetmelidir. Sağlayıcı; model başvurularını, kimlik doğrulama durumunu, model meta verilerini ve `/model` seçimini OpenClaw'ın geri kalanına görünür kılar. Harness daha sonra `supports(...)` içinde bu sağlayıcıyı sahiplenir.
|
||||
|
||||
Paketlenmiş Codex plugin'i bu düzeni izler:
|
||||
Paketlenmiş Codex Plugin'i bu deseni izler:
|
||||
|
||||
- sağlayıcı kimliği: `codex`
|
||||
- kullanıcı model başvuruları: `codex/gpt-5.4`, `codex/gpt-5.2` veya Codex uygulama sunucusunun döndürdüğü başka bir model
|
||||
- harness kimliği: `codex`
|
||||
- kimlik doğrulama: sentetik sağlayıcı kullanılabilirliği, çünkü Codex harness'i yerel Codex giriş/oturumunu sahiplenir
|
||||
- kimlik doğrulama: sentetik sağlayıcı kullanılabilirliği, çünkü yerel Codex oturum açma/oturumunu Codex harness'i yönetir
|
||||
- uygulama sunucusu isteği: OpenClaw çıplak model kimliğini Codex'e gönderir ve harness'in yerel uygulama sunucusu protokolüyle konuşmasına izin verir
|
||||
|
||||
Codex plugin'i ekleyicidir. Düz `openai/gpt-*` başvuruları OpenAI sağlayıcı başvuruları olarak kalır ve normal OpenClaw sağlayıcı yolunu kullanmaya devam eder. Codex tarafından yönetilen kimlik doğrulama, Codex model keşfi, yerel iş parçacıkları ve Codex uygulama sunucusu yürütmesi istediğinizde `codex/gpt-*` seçin. `/model`, OpenAI sağlayıcı kimlik bilgileri gerektirmeden Codex uygulama sunucusunun döndürdüğü Codex modelleri arasında geçiş yapabilir.
|
||||
Codex Plugin'i ekleyicidir. Düz `openai/gpt-*` başvuruları OpenAI sağlayıcı başvuruları olarak kalır ve normal OpenClaw sağlayıcı yolunu kullanmaya devam eder. Codex tarafından yönetilen kimlik doğrulama, Codex model keşfi, yerel iş parçacıkları ve Codex uygulama sunucusu yürütmesi istediğinizde `codex/gpt-*` seçin. `/model`, OpenAI sağlayıcı kimlik bilgileri gerektirmeden Codex uygulama sunucusunun döndürdüğü Codex modelleri arasında geçiş yapabilir.
|
||||
|
||||
Operatör kurulumu, model öneki örnekleri ve yalnızca Codex yapılandırmaları için bkz. [Codex Harness](/tr/plugins/codex-harness).
|
||||
Operatör kurulumu, model öneki örnekleri ve yalnızca Codex yapılandırmaları için [Codex Harness](/tr/plugins/codex-harness) bölümüne bakın.
|
||||
|
||||
OpenClaw, Codex uygulama sunucusunun `0.118.0` veya daha yeni sürümünü gerektirir. Codex plugin'i, uygulama sunucusunun başlatma el sıkışmasını kontrol eder ve daha eski veya sürümlendirilmemiş sunucuları engeller; böylece OpenClaw yalnızca test edildiği protokol yüzeyine karşı çalışır.
|
||||
OpenClaw, Codex uygulama sunucusu `0.118.0` veya daha yenisini gerektirir. Codex Plugin'i uygulama sunucusu başlatma el sıkışmasını denetler ve eski veya sürümsüz sunucuları engeller; böylece OpenClaw yalnızca test edilmiş protokol yüzeyi üzerinde çalışır.
|
||||
|
||||
### Yerel Codex harness modu
|
||||
|
||||
Paketlenmiş `codex` harness'i, gömülü OpenClaw ajan dönüşleri için yerel Codex modudur. Önce paketlenmiş `codex` plugin'ini etkinleştirin ve yapılandırmanız kısıtlayıcı bir izin listesi kullanıyorsa `plugins.allow` içine `codex` ekleyin. Bu, `openai-codex/*` ile farklıdır:
|
||||
Paketlenmiş `codex` harness'i, gömülü OpenClaw aracı dönüşleri için yerel Codex modudur. Önce paketlenmiş `codex` Plugin'ini etkinleştirin ve yapılandırmanız kısıtlayıcı bir izin listesi kullanıyorsa `plugins.allow` içine `codex` ekleyin. Bu, `openai-codex/*` ile farklıdır:
|
||||
|
||||
- `openai-codex/*`, normal OpenClaw sağlayıcı yolu üzerinden ChatGPT/Codex OAuth kullanır.
|
||||
- `codex/*`, paketlenmiş Codex sağlayıcısını kullanır ve dönüşü Codex uygulama sunucusu üzerinden yönlendirir.
|
||||
|
||||
Bu mod çalıştığında yerel iş parçacığı kimliği, devam etme davranışı, sıkıştırma ve uygulama sunucusu yürütmesi Codex'in kontrolündedir. OpenClaw ise sohbet kanalına, görünür döküm yansıtmasına, araç ilkesine, onaylara, medya teslimine ve oturum seçimine sahip olmaya devam eder. Codex uygulama sunucusu yolunun kullanıldığını ve PI fallback'in bozuk bir yerel harness'i gizlemediğini kanıtlamanız gerektiğinde `embeddedHarness.runtime: "codex"` ile birlikte `embeddedHarness.fallback: "none"` kullanın.
|
||||
Bu mod çalıştığında, yerel iş parçacığı kimliği, sürdürme davranışı, Compaction ve uygulama sunucusu yürütmesinin sahibi Codex olur. OpenClaw ise yine sohbet kanalının, görünür döküm yansısının, araç ilkesinin, onayların, medya tesliminin ve oturum seçiminin sahibi olmaya devam eder. Yalnızca Codex uygulama sunucusu yolunun çalıştırmayı sahiplenebildiğini kanıtlamanız gerektiğinde `embeddedHarness.runtime: "codex"` ile birlikte `embeddedHarness.fallback: "none"` kullanın. Bu yapılandırma yalnızca bir seçim korumasıdır: Codex uygulama sunucusu hataları zaten PI üzerinden yeniden denenmek yerine doğrudan başarısız olur.
|
||||
|
||||
## PI fallback'i devre dışı bırakma
|
||||
## PI geri dönüşünü devre dışı bırakma
|
||||
|
||||
Varsayılan olarak OpenClaw, gömülü ajanları `{ runtime: "auto", fallback: "pi" }` olarak ayarlanmış `agents.defaults.embeddedHarness` ile çalıştırır. `auto` modunda kayıtlı plugin harness'ler bir sağlayıcı/model çiftini sahiplenebilir. Hiçbiri eşleşmezse veya otomatik seçilen bir plugin harness çıktı üretmeden önce başarısız olursa OpenClaw PI'ye fallback yapar.
|
||||
Varsayılan olarak OpenClaw, gömülü aracıları `agents.defaults.embeddedHarness` değeri `{ runtime: "auto", fallback: "pi" }` olacak şekilde çalıştırır. `auto` modunda kayıtlı Plugin harness'ler bir sağlayıcı/model çiftini sahiplenebilir. Hiçbiri eşleşmezse OpenClaw PI'ye geri döner.
|
||||
|
||||
Bir plugin harness'in çalıştırılan tek çalışma zamanı olduğunu kanıtlamanız gerektiğinde `fallback: "none"` ayarlayın. Bu, otomatik PI fallback'ini devre dışı bırakır; açık bir `runtime: "pi"` veya `OPENCLAW_AGENT_RUNTIME=pi` kullanımını engellemez.
|
||||
Eksik Plugin harness seçiminin PI kullanmak yerine başarısız olmasını istediğinizde `fallback: "none"` ayarlayın. Seçilen Plugin harness hataları zaten kesin olarak başarısız olur. Bu, açık bir `runtime: "pi"` veya `OPENCLAW_AGENT_RUNTIME=pi` kullanımını engellemez.
|
||||
|
||||
Yalnızca Codex gömülü çalıştırmaları için:
|
||||
|
||||
@ -145,7 +145,7 @@ Yalnızca Codex gömülü çalıştırmaları için:
|
||||
}
|
||||
```
|
||||
|
||||
Herhangi bir kayıtlı plugin harness'in eşleşen modelleri sahiplenmesini istiyor ancak OpenClaw'un sessizce PI'ye fallback yapmasını asla istemiyorsanız `runtime: "auto"` olarak bırakın ve fallback'i devre dışı bırakın:
|
||||
Herhangi bir kayıtlı Plugin harness'in eşleşen modelleri sahiplenmesini ama OpenClaw'ın sessizce PI'ye geri dönmesini asla istemiyorsanız `runtime: "auto"` değerini koruyun ve geri dönüşü devre dışı bırakın:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -160,7 +160,7 @@ Herhangi bir kayıtlı plugin harness'in eşleşen modelleri sahiplenmesini isti
|
||||
}
|
||||
```
|
||||
|
||||
Ajan başına geçersiz kılmalar aynı yapıyı kullanır:
|
||||
Aracı başına geçersiz kılmalar aynı biçimi kullanır:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -185,7 +185,7 @@ Ajan başına geçersiz kılmalar aynı yapıyı kullanır:
|
||||
}
|
||||
```
|
||||
|
||||
`OPENCLAW_AGENT_RUNTIME` yapılandırılmış çalışma zamanını hâlâ geçersiz kılar. Ortamdan PI fallback'ini devre dışı bırakmak için `OPENCLAW_AGENT_HARNESS_FALLBACK=none` kullanın.
|
||||
`OPENCLAW_AGENT_RUNTIME` yapılandırılmış çalışma zamanını yine geçersiz kılar. Ortamdan PI geri dönüşünü devre dışı bırakmak için `OPENCLAW_AGENT_HARNESS_FALLBACK=none` kullanın.
|
||||
|
||||
```bash
|
||||
OPENCLAW_AGENT_RUNTIME=codex \
|
||||
@ -193,34 +193,34 @@ OPENCLAW_AGENT_HARNESS_FALLBACK=none \
|
||||
openclaw gateway run
|
||||
```
|
||||
|
||||
Fallback devre dışıyken, istenen harness kayıtlı değilse, çözümlenen sağlayıcıyı/modeli desteklemiyorsa veya dönüş yan etkileri üretmeden önce başarısız olursa bir oturum erken başarısız olur. Bu, yalnızca Codex dağıtımları ve Codex uygulama sunucusu yolunun gerçekten kullanıldığını kanıtlaması gereken canlı testler için kasıtlıdır.
|
||||
Geri dönüş devre dışıyken, istenen harness kayıtlı değilse, çözümlemiş sağlayıcı/modeli desteklemiyorsa veya dönüş yan etkileri üretmeden önce başarısız olursa bir oturum erken başarısız olur. Bu, yalnızca Codex dağıtımları ve Codex uygulama sunucusu yolunun gerçekten kullanımda olduğunu kanıtlaması gereken canlı testler için bilinçli bir davranıştır.
|
||||
|
||||
Bu ayar yalnızca gömülü ajan harness'ini kontrol eder. Görsel, video, müzik, TTS, PDF veya diğer sağlayıcıya özgü model yönlendirmelerini devre dışı bırakmaz.
|
||||
Bu ayar yalnızca gömülü agent harness'i denetler. Görüntü, video, müzik, TTS, PDF veya sağlayıcıya özgü diğer model yönlendirmelerini devre dışı bırakmaz.
|
||||
|
||||
## Yerel oturumlar ve döküm yansıtması
|
||||
## Yerel oturumlar ve döküm yansısı
|
||||
|
||||
Bir harness yerel bir oturum kimliği, iş parçacığı kimliği veya daemon tarafı devam etme belirteci tutabilir. Bu bağı açıkça OpenClaw oturumuyla ilişkilendirilmiş olarak tutun ve kullanıcıya görünür asistan/araç çıktısını OpenClaw dökümüne yansıtmaya devam edin.
|
||||
Bir harness yerel bir oturum kimliği, iş parçacığı kimliği veya daemon taraflı sürdürme belirteci tutabilir. Bu bağı açıkça OpenClaw oturumuyla ilişkilendirin ve kullanıcıya görünür yardımcı/araç çıktısını OpenClaw dökümüne yansıtmaya devam edin.
|
||||
|
||||
OpenClaw dökümü şu alanlar için uyumluluk katmanı olarak kalır:
|
||||
|
||||
- kanalda görünür oturum geçmişi
|
||||
- döküm arama ve indeksleme
|
||||
- sonraki bir dönüşte yerleşik PI harness'ine geri dönme
|
||||
- döküm arama ve dizinleme
|
||||
- daha sonraki bir dönüşte yerleşik PI harness'ine geri geçiş
|
||||
- genel `/new`, `/reset` ve oturum silme davranışı
|
||||
|
||||
Harness'iniz bir sidecar bağı saklıyorsa, sahip OpenClaw oturumu sıfırlandığında OpenClaw'un bunu temizleyebilmesi için `reset(...)` uygulayın.
|
||||
Harness'iniz bir yan bağ saklıyorsa, sahip OpenClaw oturumu sıfırlandığında OpenClaw'ın bunu temizleyebilmesi için `reset(...)` uygulayın.
|
||||
|
||||
## Araç ve medya sonuçları
|
||||
|
||||
Çekirdek OpenClaw araç listesini oluşturur ve bunu hazırlanmış denemeye geçirir. Bir harness dinamik bir araç çağrısı yürüttüğünde, kanal medyasını kendiniz göndermek yerine araç sonucunu harness sonuç şekli üzerinden geri döndürün.
|
||||
|
||||
Bu, metin, görsel, video, müzik, TTS, onay ve mesajlaşma aracı çıktılarını PI destekli çalıştırmalarla aynı teslim yolunda tutar.
|
||||
Bu, metin, görüntü, video, müzik, TTS, onay ve mesajlaşma aracı çıktılarının PI destekli çalıştırmalarla aynı teslim yolunda kalmasını sağlar.
|
||||
|
||||
## Mevcut sınırlamalar
|
||||
|
||||
- Genel içe aktarma yolu geneldir, ancak bazı deneme/sonuç türü takma adları uyumluluk için hâlâ `Pi` adlarını taşır.
|
||||
- Üçüncü taraf harness kurulumu deneyseldir. Yerel bir oturum çalışma zamanına ihtiyaç duyana kadar sağlayıcı plugin'lerini tercih edin.
|
||||
- Harness değiştirme dönüşler arasında desteklenir. Yerel araçlar, onaylar, asistan metni veya mesaj göndermeleri başladıktan sonra dönüşün ortasında harness değiştirmeyin.
|
||||
- Genel içe aktarma yolu herkese açık olsa da bazı deneme/sonuç türü diğer adları uyumluluk için hâlâ `Pi` adlarını taşır.
|
||||
- Üçüncü taraf harness kurulumu deneyseldir. Yerel bir oturum çalışma zamanına ihtiyaç duyana kadar sağlayıcı Plugin'lerini tercih edin.
|
||||
- Dönüşler arasında harness değiştirme desteklenir. Yerel araçlar, onaylar, yardımcı metni veya mesaj göndermeleri başladıktan sonra dönüşün ortasında harness değiştirmeyin.
|
||||
|
||||
## İlgili
|
||||
|
||||
|
||||
@ -1,112 +1,122 @@
|
||||
---
|
||||
read_when:
|
||||
- Yeni bir mesajlaşma kanal plugin'i oluşturuyorsunuz
|
||||
- OpenClaw'ı bir mesajlaşma platformuna bağlamak istiyorsunuz
|
||||
- ChannelPlugin bağdaştırıcı yüzeyini anlamanız gerekiyor
|
||||
- Yeni bir mesajlaşma kanal eklentisi oluşturuyorsunuz
|
||||
- OpenClaw’u bir mesajlaşma platformuna bağlamak istiyorsunuz
|
||||
- ChannelPlugin bağdaştırıcı yüzeyini anlamanız gerekir
|
||||
sidebarTitle: Channel Plugins
|
||||
summary: OpenClaw için bir mesajlaşma kanal plugin'i oluşturma adım adım kılavuzu
|
||||
title: Kanal Plugin'leri Oluşturma
|
||||
summary: OpenClaw için bir mesajlaşma kanal eklentisi oluşturmaya yönelik adım adım kılavuz
|
||||
title: Kanal Eklentileri Oluşturma
|
||||
x-i18n:
|
||||
generated_at: "2026-04-22T04:24:41Z"
|
||||
generated_at: "2026-04-22T08:55:26Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: f08bf785cd2e16ed6ce0317f4fd55c9eccecf7476d84148ad47e7be516dd71fb
|
||||
source_hash: e67d8c4be8cc4a312e5480545497b139c27bed828304de251e6258a3630dd9b5
|
||||
source_path: plugins/sdk-channel-plugins.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Kanal Plugin'leri Oluşturma
|
||||
# Kanal Eklentileri Oluşturma
|
||||
|
||||
Bu kılavuz, OpenClaw'ı bir
|
||||
mesajlaşma platformuna bağlayan bir kanal plugin'i oluşturmayı adım adım anlatır. Sonunda DM güvenliği,
|
||||
eşleştirme, yanıt dizileme ve giden mesajlaşma ile çalışan bir kanalınız olacak.
|
||||
Bu kılavuz, OpenClaw’u bir mesajlaşma platformuna bağlayan bir kanal eklentisi
|
||||
oluşturma sürecinde size yol gösterir. Sonunda DM güvenliği,
|
||||
eşleştirme, yanıt iş parçacığı oluşturma ve giden mesajlaşma özelliklerine sahip çalışan bir kanalınız olacak.
|
||||
|
||||
<Info>
|
||||
Daha önce hiç OpenClaw plugin'i oluşturmadıysanız, önce temel paket
|
||||
yapısı ve manifest kurulumu için [Başlangıç](/tr/plugins/building-plugins) belgesini okuyun.
|
||||
Daha önce hiç OpenClaw eklentisi oluşturmadıysanız, temel paket
|
||||
yapısı ve bildirim kurulumu için önce [Başlangıç](/tr/plugins/building-plugins)
|
||||
bölümünü okuyun.
|
||||
</Info>
|
||||
|
||||
## Kanal plugin'leri nasıl çalışır
|
||||
## Kanal eklentileri nasıl çalışır
|
||||
|
||||
Kanal plugin'lerinin kendi gönder/düzenle/tepki ver araçlarına ihtiyacı yoktur. OpenClaw,
|
||||
core içinde tek bir paylaşılan `message` aracı tutar. Plugin'iniz şunlardan sorumludur:
|
||||
Kanal eklentilerinin kendi send/edit/react araçlarına ihtiyacı yoktur. OpenClaw,
|
||||
çekirdekte tek bir paylaşılan `message` aracını tutar. Eklentinizin sahip olduğu alanlar şunlardır:
|
||||
|
||||
- **Yapılandırma** — hesap çözümleme ve kurulum sihirbazı
|
||||
- **Güvenlik** — DM ilkesi ve izin listeleri
|
||||
- **Eşleştirme** — DM onay akışı
|
||||
- **Oturum dil bilgisi** — sağlayıcıya özgü konuşma kimliklerinin temel sohbetlere, ileti dizisi kimliklerine ve üst geri dönüşlere nasıl eşlendiği
|
||||
- **Giden işlemler** — platforma metin, medya ve anket gönderimi
|
||||
- **Dizileme** — yanıtların nasıl dizilendiği
|
||||
- **Oturum grameri** — sağlayıcıya özgü konuşma kimliklerinin temel sohbetlere, thread kimliklerine ve üst geri dönüşlerine nasıl eşlendiği
|
||||
- **Giden** — platforma metin, medya ve anket gönderme
|
||||
- **Thread oluşturma** — yanıtların nasıl thread’lendiği
|
||||
- **Heartbeat yazıyor durumu** — heartbeat teslim hedefleri için isteğe bağlı yazıyor/meşgul sinyalleri
|
||||
|
||||
Core; paylaşılan message aracına, prompt bağlamasına, dış oturum-anahtarı biçimine,
|
||||
genel `:thread:` muhasebesine ve dispatch'e sahiptir.
|
||||
Çekirdek; paylaşılan message aracına, prompt bağlamasına, dış oturum anahtarı şekline,
|
||||
genel `:thread:` kayıt tutmaya ve dağıtıma sahiptir.
|
||||
|
||||
Kanalınız gelen yanıtlardan bağımsız yazıyor göstergelerini destekliyorsa,
|
||||
kanal eklentisi üzerinde `heartbeat.sendTyping(...)` sağlayın. Çekirdek bunu,
|
||||
heartbeat model çalışması başlamadan önce çözümlenmiş heartbeat teslim hedefiyle çağırır ve
|
||||
paylaşılan yazıyor keepalive/cleanup yaşam döngüsünü kullanır. Platform açık bir durdurma sinyali gerektiriyorsa
|
||||
`heartbeat.clearTyping(...)` de ekleyin.
|
||||
|
||||
Kanalınız medya kaynakları taşıyan message-tool parametreleri ekliyorsa, bu
|
||||
parametre adlarını `describeMessageTool(...).mediaSourceParams` üzerinden açığa çıkarın. Core,
|
||||
korumalı alan yol normalizasyonu ve giden medya erişim
|
||||
ilkesi için bu açık listeyi kullanır; böylece plugin'lerin sağlayıcıya özgü
|
||||
avatar, ek veya kapak görseli parametreleri için paylaşılan core özel durumlarına ihtiyacı kalmaz.
|
||||
parametre adlarını `describeMessageTool(...).mediaSourceParams` üzerinden sağlayın. Çekirdek
|
||||
sandbox yol normalleştirmesi ve giden medya erişim ilkesi için bu açık listeyi kullanır;
|
||||
böylece eklentiler sağlayıcıya özgü avatar,
|
||||
ek veya kapak resmi parametreleri için paylaşılan çekirdekte özel durumlara ihtiyaç duymaz.
|
||||
Tercihen şu gibi eylem anahtarlı bir eşleme döndürün:
|
||||
`{ "set-profile": ["avatarUrl", "avatarPath"] }`; böylece ilgisiz eylemler başka bir eylemin
|
||||
medya parametrelerini miras almaz. Düz bir dizi ise kasıtlı olarak
|
||||
açığa çıkarılan her eylem arasında paylaşılan parametreler için hâlâ çalışır.
|
||||
`{ "set-profile": ["avatarUrl", "avatarPath"] }`; böylece ilgisiz eylemler başka
|
||||
bir eylemin medya argümanlarını devralmaz. Tüm açığa çıkarılan eylemler arasında kasıtlı olarak paylaşılan
|
||||
parametreler için düz bir dizi de çalışır.
|
||||
|
||||
Platformunuz konuşma kimlikleri içinde ek kapsam tutuyorsa, bu ayrıştırmayı
|
||||
plugin içinde `messaging.resolveSessionConversation(...)` ile tutun. Bu, `rawId` değerini
|
||||
temel konuşma kimliğine, isteğe bağlı ileti dizisi kimliğine, açık `baseConversationId`
|
||||
değerine ve herhangi bir `parentConversationCandidates` değerine eşlemek için
|
||||
kanonik kancadır.
|
||||
`parentConversationCandidates` döndürdüğünüzde bunları en dar üst öğeden
|
||||
Platformunuz konuşma kimlikleri içinde ek kapsam saklıyorsa, bu ayrıştırmayı
|
||||
eklenti içinde `messaging.resolveSessionConversation(...)` ile tutun. Bu,
|
||||
`rawId` değerini temel konuşma kimliğine, isteğe bağlı thread
|
||||
kimliğine, açık `baseConversationId` değerine ve herhangi bir
|
||||
`parentConversationCandidates` değerine eşlemek için kanonik kancadır.
|
||||
`parentConversationCandidates` döndürdüğünüzde, bunları en dar üstten
|
||||
en geniş/temel konuşmaya doğru sıralı tutun.
|
||||
|
||||
Kayıt defteri önyüklenmeden önce aynı ayrıştırmaya ihtiyaç duyan paketlenmiş plugin'ler
|
||||
ayrıca eşleşen bir
|
||||
`resolveSessionConversation(...)` dışa aktarımıyla üst düzey bir `session-key-api.ts` dosyası da sunabilir.
|
||||
Core, çalışma zamanı plugin kayıt defteri henüz kullanılamadığında bu önyükleme güvenli yüzeyi
|
||||
yalnızca o zaman kullanır.
|
||||
Kanal kaydı başlatılmadan önce aynı ayrıştırmaya ihtiyaç duyan bundled plugin’ler,
|
||||
eşleşen bir `resolveSessionConversation(...)` dışa aktarımıyla üst düzey bir
|
||||
`session-key-api.ts` dosyası da sağlayabilir. Çekirdek, çalışma zamanı eklenti kaydı henüz mevcut değilse
|
||||
bu önyükleme açısından güvenli yüzeyi yalnızca o durumda kullanır.
|
||||
|
||||
`messaging.resolveParentConversationCandidates(...)`, bir plugin yalnızca
|
||||
genel/ham kimliğin üstüne üst geri dönüşlere ihtiyaç duyduğunda eski uyumluluk amaçlı geri dönüş olarak kullanılabilir.
|
||||
Her iki kanca da varsa core önce
|
||||
`resolveSessionConversation(...).parentConversationCandidates` değerini kullanır ve kanonik kanca
|
||||
bunları atladığında ancak o zaman `resolveParentConversationCandidates(...)` değerine geri döner.
|
||||
`messaging.resolveParentConversationCandidates(...)`, bir eklenti yalnızca
|
||||
genel/raw kimliğin üstünde üst geri dönüşlerine ihtiyaç duyduğunda
|
||||
eski uyumluluk geri dönüşü olarak kullanılmaya devam eder. Her iki kanca da varsa, çekirdek önce
|
||||
`resolveSessionConversation(...).parentConversationCandidates` değerini kullanır ve yalnızca kanonik kanca
|
||||
bunları atladığında `resolveParentConversationCandidates(...)` değerine geri döner.
|
||||
|
||||
## Onaylar ve kanal yetenekleri
|
||||
|
||||
Çoğu kanal plugin'inin onaya özgü koda ihtiyacı yoktur.
|
||||
Çoğu kanal eklentisinin onaya özgü koda ihtiyacı yoktur.
|
||||
|
||||
- Core; aynı sohbette `/approve`, paylaşılan onay düğmesi payload'ları ve genel geri dönüş tesliminden sorumludur.
|
||||
- Kanal onaya özgü davranış gerektiriyorsa kanal plugin'i üzerinde tek bir `approvalCapability` nesnesini tercih edin.
|
||||
- `ChannelPlugin.approvals` kaldırılmıştır. Onay teslimi/yerel oluşturma/kimlik doğrulama bilgilerini `approvalCapability` üzerine koyun.
|
||||
- `plugin.auth` yalnızca login/logout içindir; core artık bu nesneden onay kimlik doğrulama kancalarını okumaz.
|
||||
- `approvalCapability.authorizeActorAction` ve `approvalCapability.getActionAvailabilityState`, kanonik onay-kimlik doğrulama seam'idir.
|
||||
- Aynı sohbet onay kimlik doğrulama kullanılabilirliği için `approvalCapability.getActionAvailabilityState` kullanın.
|
||||
- Kanalınız yerel exec onaylarını açığa çıkarıyorsa, başlatan yüzey/yerel istemci durumu aynı sohbet onay kimlik doğrulamasından farklı olduğunda `approvalCapability.getExecInitiatingSurfaceState` kullanın. Core bu exec'e özgü kancayı `enabled` ile `disabled` ayrımını yapmak, başlatan kanalın yerel exec onaylarını destekleyip desteklemediğine karar vermek ve kanalı yerel istemci geri dönüş yönlendirmesine dahil etmek için kullanır. `createApproverRestrictedNativeApprovalCapability(...)`, yaygın durum için bunu doldurur.
|
||||
- Yinelenen yerel onay istemlerini gizleme veya teslimden önce yazma göstergeleri gönderme gibi kanala özgü payload yaşam döngüsü davranışları için `outbound.shouldSuppressLocalPayloadPrompt` veya `outbound.beforeDeliverPayload` kullanın.
|
||||
- `approvalCapability.delivery` yalnızca yerel onay yönlendirmesi veya geri dönüş bastırması için kullanın.
|
||||
- Kanala ait yerel onay gerçekleri için `approvalCapability.nativeRuntime` kullanın. Core'un onay yaşam döngüsünü kurmasına izin verirken çalışma zamanı modülünüzü isteğe bağlı olarak içe aktarabilen `createLazyChannelApprovalNativeRuntimeAdapter(...)` ile bunu sıcak kanal giriş noktalarında tembel tutun.
|
||||
- `approvalCapability.render` yalnızca bir kanalın gerçekten paylaşılan oluşturucu yerine özel onay payload'larına ihtiyacı olduğunda kullanın.
|
||||
- Devre dışı yol yanıtının yerel exec onaylarını etkinleştirmek için gereken tam yapılandırma düğmelerini açıklamasını istiyorsa `approvalCapability.describeExecApprovalSetup` kullanın. Kanca `{ channel, channelLabel, accountId }` alır; adlandırılmış hesaplı kanallar üst düzey varsayılanlar yerine `channels.<channel>.accounts.<id>.execApprovals.*` gibi hesap kapsamlı yollar oluşturmalıdır.
|
||||
- Bir kanal mevcut yapılandırmadan kararlı sahip benzeri DM kimliklerini çıkarabiliyorsa, onaya özgü core mantığı eklemeden aynı sohbette `/approve` kısıtlaması yapmak için `openclaw/plugin-sdk/approval-runtime` içinden `createResolvedApproverActionAuthAdapter` kullanın.
|
||||
- Bir kanal yerel onay teslimine ihtiyaç duyuyorsa, kanal kodunu hedef normalizasyonu ile taşıma/sunum gerçeklerine odaklı tutun. `openclaw/plugin-sdk/approval-runtime` içinden `createChannelExecApprovalProfile`, `createChannelNativeOriginTargetResolver`, `createChannelApproverDmTargetResolver` ve `createApproverRestrictedNativeApprovalCapability` kullanın. Kanala özgü gerçekleri `approvalCapability.nativeRuntime` arkasına, tercihen `createChannelApprovalNativeRuntimeAdapter(...)` veya `createLazyChannelApprovalNativeRuntimeAdapter(...)` üzerinden koyun; böylece core işleyiciyi kurabilir ve istek filtreleme, yönlendirme, tekrar engelleme, süre sonu, Gateway aboneliği ve başka yere yönlendirildi bildirimlerinden sorumlu olabilir. `nativeRuntime` birkaç küçük seam'e ayrılmıştır:
|
||||
- `availability` — hesabın yapılandırılmış olup olmadığı ve bir isteğin işlenip işlenmemesi gerektiği
|
||||
- `presentation` — paylaşılan onay görünüm modelini beklemede/çözüldü/süresi doldu yerel payload'larına veya son eylemlere eşleme
|
||||
- `transport` — hedefleri hazırlama ile yerel onay mesajlarını gönderme/güncelleme/silme
|
||||
- `interactions` — yerel düğmeler veya tepkiler için isteğe bağlı bağla/bağlantıyı kaldır/eylem temizle kancaları
|
||||
- Çekirdek aynı sohbette `/approve`, paylaşılan onay düğmesi payload’ları ve genel geri dönüş teslimine sahiptir.
|
||||
- Kanal onaya özgü davranış gerektiriyorsa, kanal eklentisinde tek bir `approvalCapability` nesnesini tercih edin.
|
||||
- `ChannelPlugin.approvals` kaldırıldı. Onay teslimi/yerel işleme/oluşturma/yetkilendirme bilgilerini `approvalCapability` üzerine koyun.
|
||||
- `plugin.auth` yalnızca login/logout içindir; çekirdek artık bu nesneden onay auth kancalarını okumaz.
|
||||
- `approvalCapability.authorizeActorAction` ve `approvalCapability.getActionAvailabilityState`, kanonik approval-auth yüzeyidir.
|
||||
- Aynı sohbet onay auth kullanılabilirliği için `approvalCapability.getActionAvailabilityState` kullanın.
|
||||
- Kanalınız yerel exec onaylarını açığa çıkarıyorsa, başlatan yüzey/yerel istemci durumu aynı sohbet onay auth durumundan farklıysa `approvalCapability.getExecInitiatingSurfaceState` kullanın. Çekirdek bu exec’e özgü kancayı `enabled` ile `disabled` ayrımını yapmak, başlatan kanalın yerel exec onaylarını destekleyip desteklemediğine karar vermek ve kanalı yerel istemci geri dönüş rehberliğine dahil etmek için kullanır. `createApproverRestrictedNativeApprovalCapability(...)` bunu yaygın durum için doldurur.
|
||||
- Yinelenen yerel onay istemlerini gizleme veya teslimden önce yazıyor göstergeleri gönderme gibi kanala özgü payload yaşam döngüsü davranışları için `outbound.shouldSuppressLocalPayloadPrompt` veya `outbound.beforeDeliverPayload` kullanın.
|
||||
- `approvalCapability.delivery` değerini yalnızca yerel onay yönlendirmesi veya geri dönüş bastırma için kullanın.
|
||||
- Kanalın sahip olduğu yerel onay bilgileri için `approvalCapability.nativeRuntime` kullanın. Bunu, çekirdeğin onay yaşam döngüsünü yine de bir araya getirmesine izin verirken çalışma zamanı modülünüzü isteğe bağlı içe aktarabilen `createLazyChannelApprovalNativeRuntimeAdapter(...)` ile yoğun kanal giriş noktalarında tembel tutun.
|
||||
- Kanal, paylaşılan oluşturucu yerine gerçekten özel onay payload’larına ihtiyaç duyuyorsa yalnızca `approvalCapability.render` kullanın.
|
||||
- Kanal, devre dışı yol yanıtının yerel exec onaylarını etkinleştirmek için gereken tam yapılandırma düğmelerini açıklamasını istiyorsa `approvalCapability.describeExecApprovalSetup` kullanın. Kanca `{ channel, channelLabel, accountId }` alır; adlandırılmış hesap kanalları, üst düzey varsayılanlar yerine `channels.<channel>.accounts.<id>.execApprovals.*` gibi hesap kapsamlı yollar oluşturmalıdır.
|
||||
- Bir kanal mevcut yapılandırmadan kararlı owner benzeri DM kimliklerini çıkarabiliyorsa, onaya özgü çekirdek mantığı eklemeden aynı sohbet `/approve` erişimini kısıtlamak için `openclaw/plugin-sdk/approval-runtime` içinden `createResolvedApproverActionAuthAdapter` kullanın.
|
||||
- Bir kanalın yerel onay teslimine ihtiyacı varsa, kanal kodunu hedef normalizasyonu ile taşıma/sunum bilgilerine odaklı tutun. `openclaw/plugin-sdk/approval-runtime` içinden `createChannelExecApprovalProfile`, `createChannelNativeOriginTargetResolver`, `createChannelApproverDmTargetResolver` ve `createApproverRestrictedNativeApprovalCapability` kullanın. Kanalın özel bilgilerini `approvalCapability.nativeRuntime` arkasına koyun; ideal olarak `createChannelApprovalNativeRuntimeAdapter(...)` veya `createLazyChannelApprovalNativeRuntimeAdapter(...)` üzerinden, böylece çekirdek işleyiciyi bir araya getirebilir ve istek filtreleme, yönlendirme, yinelenen kaldırma, süre sonu, gateway aboneliği ve başka yere yönlendirilmiş bildirimlere sahip olabilir. `nativeRuntime` birkaç küçük yüzeye ayrılmıştır:
|
||||
- `availability` — hesabın yapılandırılıp yapılandırılmadığı ve bir isteğin işlenip işlenmemesi gerektiği
|
||||
- `presentation` — paylaşılan onay görünüm modelini beklemede/çözümlendi/süresi doldu yerel payload’larına veya son eylemlere eşlemek
|
||||
- `transport` — hedefleri hazırlamak ve yerel onay mesajlarını göndermek/güncellemek/silmek
|
||||
- `interactions` — yerel düğmeler veya tepkiler için isteğe bağlı bind/unbind/clear-action kancaları
|
||||
- `observe` — isteğe bağlı teslim tanılama kancaları
|
||||
- Kanalın istemci, token, Bolt uygulaması veya Webhook alıcısı gibi çalışma zamanına ait nesnelere ihtiyacı varsa bunları `openclaw/plugin-sdk/channel-runtime-context` üzerinden kaydedin. Genel runtime-context kayıt defteri, core'un onaya özgü sarmalayıcı glue eklemeden kanal başlangıç durumundan yetenek güdümlü işleyicileri önyüklemesine izin verir.
|
||||
- Yalnızca yetenek güdümlü seam henüz yeterince ifade gücüne sahip değilse daha alt seviye `createChannelApprovalHandler` veya `createChannelNativeApprovalRuntime` kullanın.
|
||||
- Yerel onay kanalları, `accountId` ve `approvalKind` değerlerinin ikisini de bu yardımcılar üzerinden yönlendirmelidir. `accountId`, çok hesaplı onay ilkesini doğru bot hesabına kapsamlar; `approvalKind` ise exec ile plugin onay davranışını core içindeki sabit dallanmalar olmadan kanal için kullanılabilir tutar.
|
||||
- Core artık onay yeniden yönlendirme bildirimlerinin de sahibidir. Kanal plugin'leri `createChannelNativeApprovalRuntime` içinden kendi "onay DM'lere / başka bir kanala gitti" takip mesajlarını göndermemelidir; bunun yerine paylaşılan onay yeteneği yardımcıları üzerinden doğru origin + approver-DM yönlendirmesini açığa çıkarın ve core'un başlatan sohbete herhangi bir bildirim göndermeden önce gerçek teslimleri toplamasına izin verin.
|
||||
- Teslim edilen onay kimliği türünü uçtan uca koruyun. Yerel istemciler exec ile plugin onay yönlendirmesini kanal yerel durumundan tahmin etmemeli veya yeniden yazmamalıdır.
|
||||
- Kanalın istemci, token, Bolt uygulaması veya Webhook alıcısı gibi çalışma zamanına ait nesnelere ihtiyacı varsa, bunları `openclaw/plugin-sdk/channel-runtime-context` üzerinden kaydedin. Genel runtime-context kaydı, çekirdeğin onaya özgü sarmalayıcı glue eklemeden kanal başlangıç durumundan yetenek odaklı işleyicileri başlatmasına izin verir.
|
||||
- Yalnızca yetenek odaklı yüzey henüz yeterince ifade edici değilse daha alt düzey `createChannelApprovalHandler` veya `createChannelNativeApprovalRuntime` kullanımına yönelin.
|
||||
- Yerel onay kanalları, hem `accountId` hem de `approvalKind` değerini bu yardımcılar üzerinden yönlendirmelidir. `accountId`, çok hesaplı onay ilkesini doğru bot hesabı kapsamında tutar; `approvalKind` ise çekirdekte sabit dallar olmadan exec ile eklenti onayı davranışını kanal için erişilebilir kılar.
|
||||
- Çekirdek artık onay yeniden yönlendirme bildirimlerine de sahiptir. Kanal eklentileri `createChannelNativeApprovalRuntime` içinden kendi "onay DM’lere / başka bir kanala gitti" takip mesajlarını göndermemelidir; bunun yerine paylaşılan onay yeteneği yardımcıları üzerinden doğru origin + approver-DM yönlendirmesini açığa çıkarmalı ve başlatan sohbete herhangi bir bildirim göndermeden önce çekirdeğin gerçek teslimleri toplamasına izin vermelidir.
|
||||
- Teslim edilen onay kimliği türünü uçtan uca koruyun. Yerel istemciler,
|
||||
exec ile eklenti onayı yönlendirmesini kanal yerel durumundan tahmin etmemeli
|
||||
veya yeniden yazmamalıdır.
|
||||
- Farklı onay türleri kasıtlı olarak farklı yerel yüzeyler açığa çıkarabilir.
|
||||
Geçerli paketlenmiş örnekler:
|
||||
- Slack, hem exec hem de plugin kimlikleri için yerel onay yönlendirmesini kullanılabilir tutar.
|
||||
- Matrix, exec ve plugin onayları için aynı yerel DM/kanal yönlendirmesi ile tepki UX'ini korurken, kimlik doğrulamanın onay türüne göre farklılaşmasına yine de izin verir.
|
||||
- `createApproverRestrictedNativeApprovalAdapter` hâlâ bir uyumluluk sarmalayıcısı olarak vardır, ancak yeni kodlar yetenek oluşturucuyu tercih etmeli ve plugin üzerinde `approvalCapability` açığa çıkarmalıdır.
|
||||
Mevcut bundled örnekler:
|
||||
- Slack, hem exec hem de eklenti kimlikleri için yerel onay yönlendirmesini kullanılabilir tutar.
|
||||
- Matrix, onay türüne göre auth farklılaşmasına izin verirken exec
|
||||
ve eklenti onayları için aynı yerel DM/kanal yönlendirmesi ve reaction UX’ini korur.
|
||||
- `createApproverRestrictedNativeApprovalAdapter` hâlâ bir uyumluluk sarmalayıcısı olarak vardır, ancak yeni kod capability oluşturucusunu tercih etmeli ve eklentide `approvalCapability` açığa çıkarmalıdır.
|
||||
|
||||
Sıcak kanal giriş noktaları için, bu ailenin yalnızca bir parçasına
|
||||
ihtiyacınız olduğunda daha dar çalışma zamanı alt yollarını tercih edin:
|
||||
Yoğun kanal giriş noktalarında, bu aileden yalnızca bir parçaya ihtiyacınız varsa
|
||||
daha dar çalışma zamanı alt yollarını tercih edin:
|
||||
|
||||
- `openclaw/plugin-sdk/approval-auth-runtime`
|
||||
- `openclaw/plugin-sdk/approval-client-runtime`
|
||||
@ -118,8 +128,8 @@ ihtiyacınız olduğunda daha dar çalışma zamanı alt yollarını tercih edin
|
||||
- `openclaw/plugin-sdk/approval-reply-runtime`
|
||||
- `openclaw/plugin-sdk/channel-runtime-context`
|
||||
|
||||
Benzer şekilde, daha geniş şemsiye yüzeye ihtiyacınız olmadığında
|
||||
`openclaw/plugin-sdk/setup-runtime`,
|
||||
Benzer şekilde, daha geniş şemsiye
|
||||
yüzeye ihtiyacınız yoksa `openclaw/plugin-sdk/setup-runtime`,
|
||||
`openclaw/plugin-sdk/setup-adapter-runtime`,
|
||||
`openclaw/plugin-sdk/reply-runtime`,
|
||||
`openclaw/plugin-sdk/reply-dispatch-runtime`,
|
||||
@ -128,105 +138,110 @@ Benzer şekilde, daha geniş şemsiye yüzeye ihtiyacınız olmadığında
|
||||
|
||||
Özellikle kurulum için:
|
||||
|
||||
- `openclaw/plugin-sdk/setup-runtime`, çalışma zamanı güvenli kurulum yardımcılarını kapsar:
|
||||
içe aktarma güvenli kurulum yama bağdaştırıcıları (`createPatchedAccountSetupAdapter`,
|
||||
- `openclaw/plugin-sdk/setup-runtime`, çalışma zamanında güvenli kurulum yardımcılarını kapsar:
|
||||
içe aktarma açısından güvenli kurulum patch bağdaştırıcıları (`createPatchedAccountSetupAdapter`,
|
||||
`createEnvPatchedAccountSetupAdapter`,
|
||||
`createSetupInputPresenceValidator`), lookup-note çıktısı,
|
||||
`promptResolvedAllowFrom`, `splitSetupEntries` ve devredilmiş
|
||||
setup-proxy oluşturucuları
|
||||
- `openclaw/plugin-sdk/setup-adapter-runtime`, `createEnvPatchedAccountSetupAdapter`
|
||||
için dar env-farkında bağdaştırıcı seam'idir
|
||||
için dar env-farkındalıklı bağdaştırıcı yüzeyidir
|
||||
- `openclaw/plugin-sdk/channel-setup`, isteğe bağlı kurulum setup
|
||||
oluşturucularını ve birkaç setup-safe ilkel öğeyi kapsar:
|
||||
oluşturucularını ve birkaç setup-safe ilkel yapıyı kapsar:
|
||||
`createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`,
|
||||
|
||||
Kanalınız env güdümlü kurulumu veya kimlik doğrulamayı destekliyorsa ve genel başlangıç/yapılandırma
|
||||
Kanalınız env tabanlı kurulum veya auth destekliyorsa ve genel başlangıç/config
|
||||
akışlarının çalışma zamanı yüklenmeden önce bu env adlarını bilmesi gerekiyorsa,
|
||||
bunları plugin manifest içinde `channelEnvVars` ile bildirin. Kanal çalışma zamanı `envVars` değerlerini veya
|
||||
yerel sabitleri yalnızca operatör odaklı kopya için tutun.
|
||||
bunları eklenti manifestinde `channelEnvVars` ile bildirin. Kanal çalışma zamanı
|
||||
`envVars` veya yerel sabitlerini yalnızca operatöre yönelik metinler için kullanın.
|
||||
|
||||
Kanalınız plugin çalışma zamanı başlamadan önce `status`, `channels list`, `channels status` veya
|
||||
SecretRef taramalarında görünebiliyorsa, `package.json` içine `openclaw.setupEntry` ekleyin.
|
||||
Bu giriş noktası, salt okunur komut yollarında içe aktarılmaya güvenli olmalı
|
||||
ve bu özetler için gereken kanal meta verisini, setup-safe yapılandırma bağdaştırıcısını,
|
||||
durum bağdaştırıcısını ve kanal gizli hedef meta verisini döndürmelidir. Kurulum girişinden
|
||||
istemci, dinleyici veya taşıma çalışma zamanlarını başlatmayın.
|
||||
Kanalınız eklenti çalışma zamanı başlamadan önce `status`, `channels list`, `channels status` veya
|
||||
SecretRef taramalarında görünebiliyorsa, `package.json` içine
|
||||
`openclaw.setupEntry` ekleyin. Bu giriş noktası salt okunur komut yollarında içe aktarılmak için güvenli olmalı
|
||||
ve bu özetler için gerekli kanal metadata’sını, setup-safe config bağdaştırıcısını,
|
||||
status bağdaştırıcısını ve kanal secret hedef metadata’sını döndürmelidir. Kurulum girişinden
|
||||
istemcileri, dinleyicileri veya taşıma çalışma zamanlarını başlatmayın.
|
||||
|
||||
`createOptionalChannelSetupWizard`, `DEFAULT_ACCOUNT_ID`,
|
||||
`createTopLevelChannelDmPolicy`, `setSetupChannelEnabled` ve
|
||||
`splitSetupEntries`
|
||||
|
||||
- yalnızca daha ağır paylaşılan kurulum/yapılandırma yardımcılarına da
|
||||
ihtiyacınız olduğunda daha geniş `openclaw/plugin-sdk/setup` seam'ini kullanın; örneğin
|
||||
- yalnızca daha ağır paylaşılan setup/config yardımcılarına da ihtiyacınız varsa
|
||||
daha geniş `openclaw/plugin-sdk/setup` yüzeyini kullanın; örneğin
|
||||
`moveSingleAccountChannelSectionToDefaultAccount(...)`
|
||||
|
||||
Kanalınız yalnızca kurulum yüzeylerinde "önce bu plugin'i kurun" mesajını
|
||||
duyurmak istiyorsa, `createOptionalChannelSetupSurface(...)` tercih edin. Oluşturulan
|
||||
bağdaştırıcı/sihirbaz, yapılandırma yazımlarında ve sonlandırmada fail-closed davranır; ayrıca
|
||||
aynı kurulum-gerekli mesajını doğrulama, sonlandırma ve docs-link
|
||||
kopyasında yeniden kullanır.
|
||||
Kanalınız yalnızca kurulum yüzeylerinde "önce bu eklentiyi kurun" bilgisini
|
||||
duyurmak istiyorsa, `createOptionalChannelSetupSurface(...)` tercih edin. Üretilen
|
||||
bağdaştırıcı/sihirbaz config yazımlarında ve sonlandırmada kapalı başarısız olur,
|
||||
ayrıca doğrulama, sonlandırma ve docs-link metinlerinde aynı kurulum gerekli
|
||||
mesajını yeniden kullanır.
|
||||
|
||||
Diğer sıcak kanal yolları için, daha geniş eski yüzeyler yerine dar yardımcıları tercih edin:
|
||||
Diğer yoğun kanal yolları için, daha geniş eski yüzeyler yerine dar yardımcıları tercih edin:
|
||||
|
||||
- çok hesaplı yapılandırma ve
|
||||
varsayılan hesap geri dönüşü için `openclaw/plugin-sdk/account-core`,
|
||||
varsayılan hesap geri dönüşü için
|
||||
`openclaw/plugin-sdk/account-core`,
|
||||
`openclaw/plugin-sdk/account-id`,
|
||||
`openclaw/plugin-sdk/account-resolution` ve
|
||||
`openclaw/plugin-sdk/account-helpers`
|
||||
- gelen rota/zarf ve
|
||||
kaydet-ve-dispatch bağlaması için `openclaw/plugin-sdk/inbound-envelope` ve
|
||||
kaydet-ve-dağıt bağlaması için
|
||||
`openclaw/plugin-sdk/inbound-envelope` ve
|
||||
`openclaw/plugin-sdk/inbound-reply-dispatch`
|
||||
- hedef ayrıştırma/eşleştirme için `openclaw/plugin-sdk/messaging-targets`
|
||||
- hedef ayrıştırma/eşleme için `openclaw/plugin-sdk/messaging-targets`
|
||||
- medya yükleme ile giden
|
||||
kimlik/gönderim temsilcileri ve payload planlaması için `openclaw/plugin-sdk/outbound-media` ve
|
||||
kimlik/gönderme delegeleri ve payload planlaması için
|
||||
`openclaw/plugin-sdk/outbound-media` ve
|
||||
`openclaw/plugin-sdk/outbound-runtime`
|
||||
- bir giden rota açık bir `replyToId`/`threadId` değerini korumalıysa veya
|
||||
temel oturum anahtarı hâlâ eşleşirken mevcut `:thread:` oturumunu geri kazanmalıysa
|
||||
`openclaw/plugin-sdk/channel-core` içinden `buildThreadAwareOutboundSessionRoute(...)`.
|
||||
Sağlayıcı plugin'leri, platformlarının yerel ileti dizisi teslim anlambilimi
|
||||
olduğunda önceliği, sonek davranışını ve ileti dizisi kimliği normalizasyonunu geçersiz kılabilir.
|
||||
- ileti dizisi bağlama yaşam döngüsü
|
||||
- giden bir rota açık bir
|
||||
`replyToId`/`threadId` değerini korumalıysa veya temel oturum anahtarı hâlâ eşleşirken mevcut
|
||||
`:thread:` oturumunu geri kazanmalıysa,
|
||||
`openclaw/plugin-sdk/channel-core` içinden
|
||||
`buildThreadAwareOutboundSessionRoute(...)`.
|
||||
Sağlayıcı eklentileri, platformlarının yerel thread teslim semantiği varsa
|
||||
önceliği, sonek davranışını ve thread kimliği normalleştirmesini geçersiz kılabilir.
|
||||
- thread-binding yaşam döngüsü
|
||||
ve bağdaştırıcı kaydı için `openclaw/plugin-sdk/thread-bindings-runtime`
|
||||
- yalnızca eski bir agent/medya
|
||||
- yalnızca eski bir agent/media
|
||||
payload alan düzeni hâlâ gerekiyorsa `openclaw/plugin-sdk/agent-media-payload`
|
||||
- Telegram özel komut
|
||||
normalizasyonu, yinelenen/çakışma doğrulaması ve geri dönüşte kararlı komut
|
||||
normalleştirmesi, yinelenen/çakışma doğrulaması ve geri dönüş açısından kararlı bir komut
|
||||
yapılandırma sözleşmesi için `openclaw/plugin-sdk/telegram-command-config`
|
||||
|
||||
Yalnızca kimlik doğrulama yapan kanallar genelde varsayılan yolda durabilir: onayları core yönetir ve plugin yalnızca giden/kimlik doğrulama yeteneklerini açığa çıkarır. Matrix, Slack, Telegram ve özel sohbet taşıma katmanları gibi yerel onay kanalları, kendi onay yaşam döngülerini yazmak yerine paylaşılan yerel yardımcıları kullanmalıdır.
|
||||
Yalnızca auth kullanan kanallar genellikle varsayılan yolda durabilir: çekirdek onayları yönetir ve eklenti yalnızca giden/auth yeteneklerini açığa çıkarır. Matrix, Slack, Telegram ve özel sohbet taşıma katmanları gibi yerel onay kanalları, kendi onay yaşam döngülerini oluşturmak yerine paylaşılan yerel yardımcıları kullanmalıdır.
|
||||
|
||||
## Gelen mention ilkesi
|
||||
|
||||
Gelen mention işleme mantığını iki katmana bölünmüş tutun:
|
||||
Gelen mention işlemeyi iki katmana ayrılmış halde tutun:
|
||||
|
||||
- plugin'e ait kanıt toplama
|
||||
- eklentinin sahip olduğu kanıt toplama
|
||||
- paylaşılan ilke değerlendirmesi
|
||||
|
||||
Mention ilkesi kararları için `openclaw/plugin-sdk/channel-mention-gating` kullanın.
|
||||
Daha geniş gelen
|
||||
yardımcı barrel'ına ihtiyaç duyduğunuzda yalnızca `openclaw/plugin-sdk/channel-inbound` kullanın.
|
||||
yardımcı barrel’ına ihtiyacınız olduğunda yalnızca `openclaw/plugin-sdk/channel-inbound` kullanın.
|
||||
|
||||
Plugin yerel mantığı için uygun örnekler:
|
||||
Eklenti yerel mantığı için uygun örnekler:
|
||||
|
||||
- bota yanıt tespiti
|
||||
- bottan alıntı tespiti
|
||||
- ileti dizisine katılım kontrolleri
|
||||
- servis/sistem mesajı dışlamaları
|
||||
- bot katılımını kanıtlamak için gereken platforma özgü yerel önbellekler
|
||||
- bota yanıt algılama
|
||||
- bottan alıntı algılama
|
||||
- thread katılımı kontrolleri
|
||||
- hizmet/sistem mesajı hariç tutmaları
|
||||
- bot katılımını kanıtlamak için gereken platform yerel önbellekleri
|
||||
|
||||
Paylaşılan yardımcı için uygun örnekler:
|
||||
|
||||
- `requireMention`
|
||||
- açık mention sonucu
|
||||
- örtük mention izin listesi
|
||||
- komut baypası
|
||||
- komut bypass
|
||||
- son atlama kararı
|
||||
|
||||
Tercih edilen akış:
|
||||
|
||||
1. Yerel mention olgularını hesaplayın.
|
||||
2. Bu olguları `resolveInboundMentionDecision({ facts, policy })` içine geçin.
|
||||
3. Gelen geçidinizde `decision.effectiveWasMentioned`, `decision.shouldBypassMention` ve `decision.shouldSkip` değerlerini kullanın.
|
||||
1. Yerel mention bilgilerini hesaplayın.
|
||||
2. Bu bilgileri `resolveInboundMentionDecision({ facts, policy })` içine geçin.
|
||||
3. Gelen geçidinizde `decision.effectiveWasMentioned`, `decision.shouldBypassMention` ve `decision.shouldSkip` kullanın.
|
||||
|
||||
```typescript
|
||||
import {
|
||||
@ -265,8 +280,8 @@ const decision = resolveInboundMentionDecision({
|
||||
if (decision.shouldSkip) return;
|
||||
```
|
||||
|
||||
`api.runtime.channel.mentions`, çalışma zamanı enjeksiyonuna zaten bağlı olan
|
||||
paketlenmiş kanal plugin'leri için aynı paylaşılan mention yardımcılarını açığa çıkarır:
|
||||
`api.runtime.channel.mentions`, çalışma zamanı enjeksiyonuna zaten bağımlı olan
|
||||
bundled kanal eklentileri için aynı paylaşılan mention yardımcılarını açığa çıkarır:
|
||||
|
||||
- `buildMentionRegexes`
|
||||
- `matchesMentionPatterns`
|
||||
@ -275,22 +290,23 @@ paketlenmiş kanal plugin'leri için aynı paylaşılan mention yardımcıların
|
||||
- `resolveInboundMentionDecision`
|
||||
|
||||
Yalnızca `implicitMentionKindWhen` ve
|
||||
`resolveInboundMentionDecision` kullanmanız gerekiyorsa,
|
||||
`resolveInboundMentionDecision` gerekiyorsa,
|
||||
ilgili olmayan gelen çalışma zamanı yardımcılarını yüklemekten kaçınmak için
|
||||
`openclaw/plugin-sdk/channel-mention-gating` içinden içe aktarın.
|
||||
`openclaw/plugin-sdk/channel-mention-gating` üzerinden içe aktarın.
|
||||
|
||||
Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarımları olarak
|
||||
`openclaw/plugin-sdk/channel-inbound` üzerinde kalmaktadır. Yeni kod
|
||||
Eski `resolveMentionGating*` yardımcıları yalnızca
|
||||
uyumluluk dışa aktarımları olarak
|
||||
`openclaw/plugin-sdk/channel-inbound` üzerinde kalır. Yeni kod,
|
||||
`resolveInboundMentionDecision({ facts, policy })` kullanmalıdır.
|
||||
|
||||
## Adım adım anlatım
|
||||
## Adım adım açıklama
|
||||
|
||||
<Steps>
|
||||
<a id="step-1-package-and-manifest"></a>
|
||||
<Step title="Paket ve manifest">
|
||||
Standart plugin dosyalarını oluşturun. `package.json` içindeki `channel` alanı,
|
||||
bunu bir kanal plugin'i yapan alandır. Tam paket meta veri yüzeyi için
|
||||
bkz. [Plugin Kurulumu ve Yapılandırma](/tr/plugins/sdk-setup#openclaw-channel):
|
||||
Standart eklenti dosyalarını oluşturun. `package.json` içindeki `channel` alanı,
|
||||
bunun bir kanal eklentisi olmasını sağlar. Tam paket metadata yüzeyi için
|
||||
bkz. [Eklenti Kurulumu ve Yapılandırma](/tr/plugins/sdk-setup#openclaw-channel):
|
||||
|
||||
<CodeGroup>
|
||||
```json package.json
|
||||
@ -304,7 +320,7 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
"channel": {
|
||||
"id": "acme-chat",
|
||||
"label": "Acme Chat",
|
||||
"blurb": "OpenClaw'ı Acme Chat'e bağlayın."
|
||||
"blurb": "Connect OpenClaw to Acme Chat."
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -316,7 +332,7 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
"kind": "channel",
|
||||
"channels": ["acme-chat"],
|
||||
"name": "Acme Chat",
|
||||
"description": "Acme Chat kanal plugin'i",
|
||||
"description": "Acme Chat channel plugin",
|
||||
"configSchema": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
@ -339,9 +355,9 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Kanal plugin nesnesini oluşturun">
|
||||
`ChannelPlugin` arayüzünde birçok isteğe bağlı bağdaştırıcı yüzeyi vardır. En az
|
||||
düzey olan `id` ve `setup` ile başlayın ve ihtiyaç duydukça bağdaştırıcılar ekleyin.
|
||||
<Step title="Kanal eklentisi nesnesini oluşturun">
|
||||
`ChannelPlugin` arayüzü birçok isteğe bağlı bağdaştırıcı yüzeyine sahiptir. En
|
||||
azıyla başlayın — `id` ve `setup` — ve ihtiyaç duydukça bağdaştırıcılar ekleyin.
|
||||
|
||||
`src/channel.ts` oluşturun:
|
||||
|
||||
@ -351,7 +367,7 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
createChannelPluginBase,
|
||||
} from "openclaw/plugin-sdk/channel-core";
|
||||
import type { OpenClawConfig } from "openclaw/plugin-sdk/channel-core";
|
||||
import { acmeChatApi } from "./client.js"; // platform API istemciniz
|
||||
import { acmeChatApi } from "./client.js"; // your platform API client
|
||||
|
||||
type ResolvedAccount = {
|
||||
accountId: string | null;
|
||||
@ -392,7 +408,7 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
},
|
||||
}),
|
||||
|
||||
// DM güvenliği: bot'a kim mesaj gönderebilir
|
||||
// DM security: who can message the bot
|
||||
security: {
|
||||
dm: {
|
||||
channelKey: "acme-chat",
|
||||
@ -402,21 +418,21 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
},
|
||||
},
|
||||
|
||||
// Eşleştirme: yeni DM kişileri için onay akışı
|
||||
// Pairing: approval flow for new DM contacts
|
||||
pairing: {
|
||||
text: {
|
||||
idLabel: "Acme Chat kullanıcı adı",
|
||||
message: "Kimliğinizi doğrulamak için bu kodu gönderin:",
|
||||
idLabel: "Acme Chat username",
|
||||
message: "Send this code to verify your identity:",
|
||||
notify: async ({ target, code }) => {
|
||||
await acmeChatApi.sendDm(target, `Pairing code: ${code}`);
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// Dizileme: yanıtlar nasıl teslim edilir
|
||||
// Threading: how replies are delivered
|
||||
threading: { topLevelReplyToMode: "reply" },
|
||||
|
||||
// Giden: platforma mesaj gönder
|
||||
// Outbound: send messages to the platform
|
||||
outbound: {
|
||||
attachedResults: {
|
||||
sendText: async (params) => {
|
||||
@ -437,17 +453,18 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
```
|
||||
|
||||
<Accordion title="createChatChannelPlugin sizin için ne yapar">
|
||||
Düşük seviyeli bağdaştırıcı arayüzlerini elle uygulamak yerine
|
||||
bildirimsel seçenekler verirsiniz ve oluşturucu bunları birleştirir:
|
||||
Düşük seviyeli bağdaştırıcı arayüzlerini el ile uygulamak yerine,
|
||||
bildirime dayalı seçenekler geçirirsiniz ve oluşturucu bunları birleştirir:
|
||||
|
||||
| Seçenek | Bağladığı şey |
|
||||
| --- | --- |
|
||||
| `security.dm` | Yapılandırma alanlarından kapsamlı DM güvenlik çözümleyicisi |
|
||||
| `pairing.text` | Kod değişimi ile metin tabanlı DM eşleştirme akışı |
|
||||
| `threading` | Reply-to-mode çözümleyicisi (sabit, hesap kapsamlı veya özel) |
|
||||
| `outbound.attachedResults` | Sonuç meta verisi döndüren gönderim işlevleri (mesaj kimlikleri) |
|
||||
| `threading` | Reply-to modu çözümleyicisi (sabit, hesap kapsamlı veya özel) |
|
||||
| `outbound.attachedResults` | Sonuç metadata’sı döndüren gönderim işlevleri (mesaj kimlikleri) |
|
||||
|
||||
Tam denetime ihtiyacınız varsa bildirimsel seçenekler yerine ham bağdaştırıcı nesneleri de geçebilirsiniz.
|
||||
Tam denetim gerekiyorsa bildirime dayalı seçenekler yerine ham bağdaştırıcı
|
||||
nesneleri de geçebilirsiniz.
|
||||
</Accordion>
|
||||
|
||||
</Step>
|
||||
@ -462,20 +479,20 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
export default defineChannelPluginEntry({
|
||||
id: "acme-chat",
|
||||
name: "Acme Chat",
|
||||
description: "Acme Chat kanal plugin'i",
|
||||
description: "Acme Chat channel plugin",
|
||||
plugin: acmeChatPlugin,
|
||||
registerCliMetadata(api) {
|
||||
api.registerCli(
|
||||
({ program }) => {
|
||||
program
|
||||
.command("acme-chat")
|
||||
.description("Acme Chat yönetimi");
|
||||
.description("Acme Chat management");
|
||||
},
|
||||
{
|
||||
descriptors: [
|
||||
{
|
||||
name: "acme-chat",
|
||||
description: "Acme Chat yönetimi",
|
||||
description: "Acme Chat management",
|
||||
hasSubcommands: false,
|
||||
},
|
||||
],
|
||||
@ -489,15 +506,15 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
```
|
||||
|
||||
Kanalın sahip olduğu CLI tanımlayıcılarını `registerCliMetadata(...)` içine koyun; böylece OpenClaw
|
||||
tam kanal çalışma zamanını etkinleştirmeden kök yardım ekranında bunları gösterebilir,
|
||||
normal tam yüklemeler de gerçek komut
|
||||
kaydı için aynı tanımlayıcıları alır. `registerFull(...)` alanını yalnızca çalışma zamanına özgü işler için tutun.
|
||||
Eğer `registerFull(...)` Gateway RPC yöntemleri kaydediyorsa,
|
||||
plugin'e özgü bir önek kullanın. Core yönetici ad alanları (`config.*`,
|
||||
`exec.approvals.*`, `wizard.*`, `update.*`) ayrılmıştır ve her zaman
|
||||
`operator.admin` çözümüne gider.
|
||||
`defineChannelPluginEntry`, kayıt modu ayrımını otomatik olarak yönetir. Tüm
|
||||
seçenekler için bkz. [Giriş Noktaları](/tr/plugins/sdk-entrypoints#definechannelpluginentry).
|
||||
tam kanal çalışma zamanını etkinleştirmeden bunları kök yardımında gösterebilir;
|
||||
normal tam yüklemeler ise gerçek komut
|
||||
kaydı için aynı tanımlayıcıları almaya devam eder. `registerFull(...)` değerini yalnızca çalışma zamanı işi için tutun.
|
||||
Eğer `registerFull(...)` gateway RPC yöntemleri kaydediyorsa,
|
||||
eklentiye özgü bir önek kullanın. Çekirdek yönetici ad alanları (`config.*`,
|
||||
`exec.approvals.*`, `wizard.*`, `update.*`) ayrılmış kalır ve her zaman
|
||||
`operator.admin` olarak çözülür.
|
||||
`defineChannelPluginEntry`, kayıt modu ayrımını otomatik olarak işler. Tüm
|
||||
seçenekler için [Giriş Noktaları](/tr/plugins/sdk-entrypoints#definechannelpluginentry) bölümüne bakın.
|
||||
|
||||
</Step>
|
||||
|
||||
@ -511,34 +528,34 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
export default defineSetupPluginEntry(acmeChatPlugin);
|
||||
```
|
||||
|
||||
OpenClaw, kanal devre dışıyken
|
||||
veya yapılandırılmamışken tam giriş yerine bunu yükler.
|
||||
Bu, setup akışları sırasında ağır çalışma zamanı kodunun çekilmesini önler.
|
||||
Ayrıntılar için bkz. [Kurulum ve Yapılandırma](/tr/plugins/sdk-setup#setup-entry).
|
||||
OpenClaw, kanal devre dışı olduğunda
|
||||
veya yapılandırılmadığında tam giriş yerine bunu yükler.
|
||||
Bu, kurulum akışları sırasında ağır çalışma zamanı kodunun içe çekilmesini önler.
|
||||
Ayrıntılar için [Kurulum ve Yapılandırma](/tr/plugins/sdk-setup#setup-entry) bölümüne bakın.
|
||||
|
||||
Setup-safe dışa aktarımları yan modüllere ayıran paketlenmiş çalışma alanı kanalları,
|
||||
açık bir setup zamanı çalışma zamanı ayarlayıcısına da ihtiyaç duyduklarında
|
||||
Kurulum açısından güvenli dışa aktarımları yan modüllere ayıran bundled çalışma alanı kanalları,
|
||||
açık bir kurulum zamanı çalışma zamanı ayarlayıcısına da ihtiyaç duyduklarında
|
||||
`openclaw/plugin-sdk/channel-entry-contract` içinden
|
||||
`defineBundledChannelSetupEntry(...)` kullanabilir.
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Gelen mesajları işleyin">
|
||||
Plugin'inizin platformdan mesaj alması ve bunları
|
||||
OpenClaw'a iletmesi gerekir. Tipik desen, isteği doğrulayan ve
|
||||
kendi kanalınızın gelen işleyicisi üzerinden dispatch eden bir Webhook'tir:
|
||||
Eklentinizin platformdan mesaj alması ve bunları
|
||||
OpenClaw’a iletmesi gerekir. Tipik desen, isteği doğrulayan ve
|
||||
bunu kanalınızın gelen işleyicisi üzerinden dağıtan bir Webhook’tur:
|
||||
|
||||
```typescript
|
||||
registerFull(api) {
|
||||
api.registerHttpRoute({
|
||||
path: "/acme-chat/webhook",
|
||||
auth: "plugin", // plugin tarafından yönetilen kimlik doğrulama (imzaları kendiniz doğrulayın)
|
||||
auth: "plugin", // eklenti tarafından yönetilen auth (imzaları kendiniz doğrulayın)
|
||||
handler: async (req, res) => {
|
||||
const event = parseWebhookPayload(req);
|
||||
|
||||
// Gelen işleyiciniz mesajı OpenClaw'a dispatch eder.
|
||||
// Kesin bağlama platform SDK'nıza bağlıdır —
|
||||
// gerçek bir örnek için paketlenmiş Microsoft Teams veya Google Chat plugin paketine bakın.
|
||||
// Gelen işleyiciniz mesajı OpenClaw’a dağıtır.
|
||||
// Kesin bağlama platform SDK’nıza bağlıdır —
|
||||
// gerçek bir örnek için bundled Microsoft Teams veya Google Chat eklenti paketine bakın.
|
||||
await handleAcmeChatInbound(api, event);
|
||||
|
||||
res.statusCode = 200;
|
||||
@ -550,9 +567,9 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
```
|
||||
|
||||
<Note>
|
||||
Gelen mesaj işleme kanala özgüdür. Her kanal plugin'i
|
||||
kendi gelen işlem hattına sahiptir. Gerçek desenler için paketlenmiş kanal plugin'lerine
|
||||
(örneğin Microsoft Teams veya Google Chat plugin paketi) bakın.
|
||||
Gelen mesaj işleme kanala özeldir. Her kanal eklentisi
|
||||
kendi gelen işlem hattına sahiptir. Gerçek örüntüler için bundled kanal eklentilerine
|
||||
(örneğin Microsoft Teams veya Google Chat eklenti paketine) bakın.
|
||||
</Note>
|
||||
|
||||
</Step>
|
||||
@ -566,7 +583,7 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
import { acmeChatPlugin } from "./channel.js";
|
||||
|
||||
describe("acme-chat plugin", () => {
|
||||
it("yapılandırmadan hesabı çözümler", () => {
|
||||
it("resolves account from config", () => {
|
||||
const cfg = {
|
||||
channels: {
|
||||
"acme-chat": { token: "test-token", allowFrom: ["user1"] },
|
||||
@ -576,7 +593,7 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
expect(account.token).toBe("test-token");
|
||||
});
|
||||
|
||||
it("gizli bilgileri somutlaştırmadan hesabı inceler", () => {
|
||||
it("inspects account without materializing secrets", () => {
|
||||
const cfg = {
|
||||
channels: { "acme-chat": { token: "test-token" } },
|
||||
} as any;
|
||||
@ -585,7 +602,7 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
expect(result.tokenStatus).toBe("available");
|
||||
});
|
||||
|
||||
it("eksik yapılandırmayı bildirir", () => {
|
||||
it("reports missing config", () => {
|
||||
const cfg = { channels: {} } as any;
|
||||
const result = acmeChatPlugin.setup!.inspectAccount!(cfg, undefined);
|
||||
expect(result.configured).toBe(false);
|
||||
@ -606,46 +623,46 @@ Eski `resolveMentionGating*` yardımcıları yalnızca uyumluluk dışa aktarım
|
||||
|
||||
```
|
||||
<bundled-plugin-root>/acme-chat/
|
||||
├── package.json # openclaw.channel meta verisi
|
||||
├── openclaw.plugin.json # Yapılandırma şeması içeren manifest
|
||||
├── package.json # openclaw.channel metadata
|
||||
├── openclaw.plugin.json # Yapılandırma şemasını içeren manifest
|
||||
├── index.ts # defineChannelPluginEntry
|
||||
├── setup-entry.ts # defineSetupPluginEntry
|
||||
├── api.ts # Herkese açık dışa aktarımlar (isteğe bağlı)
|
||||
├── runtime-api.ts # İç çalışma zamanı dışa aktarımları (isteğe bağlı)
|
||||
├── api.ts # Genel dışa aktarımlar (isteğe bağlı)
|
||||
├── runtime-api.ts # Dahili çalışma zamanı dışa aktarımları (isteğe bağlı)
|
||||
└── src/
|
||||
├── channel.ts # createChatChannelPlugin aracılığıyla ChannelPlugin
|
||||
├── channel.ts # createChatChannelPlugin üzerinden ChannelPlugin
|
||||
├── channel.test.ts # Testler
|
||||
├── client.ts # Platform API istemcisi
|
||||
└── runtime.ts # Çalışma zamanı deposu (gerekirse)
|
||||
```
|
||||
|
||||
## Gelişmiş konular
|
||||
## İleri konular
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Dizileme seçenekleri" icon="git-branch" href="/tr/plugins/sdk-entrypoints#registration-mode">
|
||||
Sabit, hesap kapsamlı veya özel yanıt kipleri
|
||||
<Card title="Thread oluşturma seçenekleri" icon="git-branch" href="/tr/plugins/sdk-entrypoints#registration-mode">
|
||||
Sabit, hesap kapsamlı veya özel yanıt modları
|
||||
</Card>
|
||||
<Card title="Mesaj aracı entegrasyonu" icon="puzzle" href="/tr/plugins/architecture#channel-plugins-and-the-shared-message-tool">
|
||||
<Card title="Message tool entegrasyonu" icon="puzzle" href="/tr/plugins/architecture#channel-plugins-and-the-shared-message-tool">
|
||||
describeMessageTool ve eylem keşfi
|
||||
</Card>
|
||||
<Card title="Hedef çözümleme" icon="crosshair" href="/tr/plugins/architecture#channel-target-resolution">
|
||||
inferTargetChatType, looksLikeId, resolveTarget
|
||||
</Card>
|
||||
<Card title="Çalışma zamanı yardımcıları" icon="settings" href="/tr/plugins/sdk-runtime">
|
||||
api.runtime aracılığıyla TTS, STT, medya, alt agent
|
||||
api.runtime üzerinden TTS, STT, medya, alt agent
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
<Note>
|
||||
Bazı paketlenmiş yardımcı seam'leri, paketlenmiş plugin bakımı ve
|
||||
uyumluluk için hâlâ vardır. Bunlar yeni kanal plugin'leri için önerilen desen değildir;
|
||||
o paketlenmiş plugin ailesini doğrudan korumuyorsanız ortak SDK
|
||||
yüzeyinden genel channel/setup/reply/runtime alt yollarını tercih edin.
|
||||
Bazı bundled yardımcı yüzeyler, bundled plugin bakımı ve
|
||||
uyumluluk için hâlâ vardır. Bunlar yeni kanal eklentileri için önerilen örüntü değildir;
|
||||
o bundled plugin ailesini doğrudan sürdürmüyorsanız ortak SDK
|
||||
yüzeyindeki genel channel/setup/reply/runtime alt yollarını tercih edin.
|
||||
</Note>
|
||||
|
||||
## Sonraki adımlar
|
||||
|
||||
- [Sağlayıcı Plugin'leri](/tr/plugins/sdk-provider-plugins) — plugin'iniz ayrıca modeller de sağlıyorsa
|
||||
- [SDK Genel Bakışı](/tr/plugins/sdk-overview) — tam alt yol içe aktarma başvurusu
|
||||
- [Provider Plugins](/tr/plugins/sdk-provider-plugins) — eklentiniz modeller de sağlıyorsa
|
||||
- [SDK Overview](/tr/plugins/sdk-overview) — tam alt yol içe aktarma başvurusu
|
||||
- [SDK Testing](/tr/plugins/sdk-testing) — test yardımcıları ve sözleşme testleri
|
||||
- [Plugin Manifest](/tr/plugins/manifest) — tam manifest şeması
|
||||
|
||||
@ -1,30 +1,30 @@
|
||||
---
|
||||
read_when:
|
||||
- Hangi SDK alt yolundan içe aktarma yapmanız gerektiğini bilmeniz gerekiyor
|
||||
- OpenClawPluginApi üzerindeki tüm kayıt yöntemleri için bir başvuru istiyorsunuz
|
||||
- OpenClawPluginApi üzerindeki tüm kayıt yöntemleri için bir başvuru kaynağı istiyorsunuz
|
||||
- Belirli bir SDK dışa aktarımını arıyorsunuz
|
||||
sidebarTitle: SDK Overview
|
||||
summary: İçe aktarma eşlemesi, kayıt API başvurusu ve SDK mimarisi
|
||||
title: Plugin SDK Genel Bakışı
|
||||
summary: İçe aktarma eşlemesi, kayıt API referansı ve SDK mimarisi
|
||||
title: Plugin SDK Genel Bakış
|
||||
x-i18n:
|
||||
generated_at: "2026-04-22T04:25:38Z"
|
||||
generated_at: "2026-04-22T08:55:41Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 8045c11976bbda6afe3303a0aab08caf0d0a86ebcf1aaaf927943b90cc517673
|
||||
source_hash: e57019e6f9a7fed7842ac575e025b6db41d125f5fa9d0d1de03923fdb1f6bcc3
|
||||
source_path: plugins/sdk-overview.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Plugin SDK Genel Bakışı
|
||||
# Plugin SDK Genel Bakış
|
||||
|
||||
Plugin SDK, plugin'ler ile çekirdek arasındaki türlenmiş sözleşmedir. Bu sayfa,
|
||||
**neyi içe aktarmanız gerektiği** ve **neyi kaydedebileceğiniz** için başvurudur.
|
||||
Plugin SDK, Plugin'ler ile çekirdek arasındaki türlendirilmiş sözleşmedir. Bu sayfa,
|
||||
**neyi içe aktaracağınızın** ve **neleri kaydedebileceğinizin** başvuru kaynağıdır.
|
||||
|
||||
<Tip>
|
||||
**Nasıl yapılır kılavuzu mu arıyorsunuz?**
|
||||
- İlk plugin mi? [Getting Started](/tr/plugins/building-plugins) ile başlayın
|
||||
- Kanal plugin'i mi? [Channel Plugins](/tr/plugins/sdk-channel-plugins) bölümüne bakın
|
||||
- Sağlayıcı plugin'i mi? [Provider Plugins](/tr/plugins/sdk-provider-plugins) bölümüne bakın
|
||||
- İlk Plugin? [Başlangıç](/tr/plugins/building-plugins) ile başlayın
|
||||
- Kanal Plugin'i? Bkz. [Kanal Plugin'leri](/tr/plugins/sdk-channel-plugins)
|
||||
- Sağlayıcı Plugin'i? Bkz. [Sağlayıcı Plugin'leri](/tr/plugins/sdk-provider-plugins)
|
||||
</Tip>
|
||||
|
||||
## İçe aktarma kuralı
|
||||
@ -36,55 +36,58 @@ import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
|
||||
import { defineChannelPluginEntry } from "openclaw/plugin-sdk/channel-core";
|
||||
```
|
||||
|
||||
Her alt yol küçük, kendi içinde yeterli bir modüldür. Bu, başlangıcı hızlı tutar
|
||||
ve döngüsel bağımlılık sorunlarını önler. Kanala özgü giriş/oluşturma yardımcıları için
|
||||
`openclaw/plugin-sdk/channel-core` tercih edin; daha geniş şemsiye yüzeyi ve
|
||||
Her alt yol küçük, kendi içinde yeterli bir modüldür. Bu, başlatmayı hızlı tutar
|
||||
ve döngüsel bağımlılık sorunlarını önler. Kanala özgü giriş/derleme yardımcıları için
|
||||
`openclaw/plugin-sdk/channel-core` tercih edin; daha geniş şemsiye yüzey ve
|
||||
`buildChannelConfigSchema` gibi paylaşılan yardımcılar için
|
||||
`openclaw/plugin-sdk/core` kullanın.
|
||||
|
||||
`openclaw/plugin-sdk/slack`, `openclaw/plugin-sdk/discord`,
|
||||
`openclaw/plugin-sdk/signal`, `openclaw/plugin-sdk/whatsapp` gibi
|
||||
sağlayıcı adlı kolaylık arayüzleri veya kanal markalı yardımcı arayüzleri eklemeyin ve bunlara
|
||||
bağımlı olmayın. Paketlenmiş plugin'ler kendi `api.ts` veya `runtime-api.ts`
|
||||
barrel dosyaları içinde genel SDK alt yollarını birleştirmelidir; çekirdek ise
|
||||
ya bu plugin-yerel barrel dosyalarını kullanmalı ya da ihtiyaç gerçekten kanallar arasıysa dar bir genel SDK
|
||||
sağlayıcı adlı kullanım kolaylığı sağlayan ayrım noktalarını veya
|
||||
kanal markalı yardımcı ayrım noktalarını eklemeyin ya da bunlara bağımlı olmayın.
|
||||
Paketle birlikte gelen Plugin'ler, kendi `api.ts` veya `runtime-api.ts` barrel dosyaları içinde
|
||||
genel SDK alt yollarını birleştirmelidir; çekirdek ise ya bu Plugin'e yerel barrel dosyalarını
|
||||
kullanmalı ya da ihtiyaç gerçekten kanallar arasıysa dar, genel bir SDK
|
||||
sözleşmesi eklemelidir.
|
||||
|
||||
Oluşturulan dışa aktarma eşlemesi hâlâ `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`,
|
||||
`plugin-sdk/zalo`, `plugin-sdk/zalo-setup` ve `plugin-sdk/matrix*` gibi küçük bir
|
||||
paketlenmiş-plugin yardımcı arayüzleri kümesi içerir. Bu
|
||||
alt yollar yalnızca paketlenmiş-plugin bakımı ve uyumluluğu için vardır; aşağıdaki ortak tabloda kasıtlı olarak
|
||||
atlanırlar ve yeni üçüncü taraf plugin'ler için önerilen içe aktarma yolu değildir.
|
||||
Üretilmiş dışa aktarma eşlemesi hâlâ `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`,
|
||||
`plugin-sdk/zalo`, `plugin-sdk/zalo-setup` ve `plugin-sdk/matrix*` gibi
|
||||
az sayıda paketle birlikte gelen Plugin yardımcı ayrım noktasını içerir. Bu
|
||||
alt yollar yalnızca paketle birlikte gelen Plugin bakımı ve uyumluluk içindir;
|
||||
aşağıdaki ortak tabloda bilinçli olarak yer verilmemiştir ve yeni üçüncü taraf
|
||||
Plugin'ler için önerilen içe aktarma yolu değildir.
|
||||
|
||||
## Alt yol başvurusu
|
||||
## Alt yol referansı
|
||||
|
||||
En yaygın kullanılan alt yollar, amaçlarına göre gruplandırılmıştır. Oluşturulan tam
|
||||
200+'den fazla alt yol listesi `scripts/lib/plugin-sdk-entrypoints.json` içinde bulunur.
|
||||
En sık kullanılan alt yollar, amaçlarına göre gruplanmıştır. 200'den fazla alt yoldan oluşan
|
||||
üretilmiş tam liste `scripts/lib/plugin-sdk-entrypoints.json` içinde bulunur.
|
||||
|
||||
Ayrılmış paketlenmiş-plugin yardımcı alt yolları bu oluşturulan listede yine görünür.
|
||||
Bir belge sayfası açıkça birini genel olarak öne çıkarmadıkça bunları uygulama ayrıntısı/uyumluluk yüzeyleri olarak değerlendirin.
|
||||
Ayrılmış paketle birlikte gelen Plugin yardımcı alt yolları bu üretilmiş listede
|
||||
hâlâ görünür. Bir doküman sayfası birini açıkça herkese açık olarak öne çıkarmadıkça,
|
||||
bunları uygulama ayrıntısı/uyumluluk yüzeyleri olarak değerlendirin.
|
||||
|
||||
### Plugin girişi
|
||||
|
||||
| Alt yol | Temel dışa aktarımlar |
|
||||
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `plugin-sdk/plugin-entry` | `definePluginEntry` |
|
||||
| Alt yol | Temel dışa aktarımlar |
|
||||
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `plugin-sdk/plugin-entry` | `definePluginEntry` |
|
||||
| `plugin-sdk/core` | `defineChannelPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase`, `defineSetupPluginEntry`, `buildChannelConfigSchema` |
|
||||
| `plugin-sdk/config-schema` | `OpenClawSchema` |
|
||||
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
|
||||
| `plugin-sdk/config-schema` | `OpenClawSchema` |
|
||||
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Kanal alt yolları">
|
||||
| Alt yol | Temel dışa aktarımlar |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/channel-core` | `defineChannelPluginEntry`, `defineSetupPluginEntry`, `createChatChannelPlugin`, `createChannelPluginBase` |
|
||||
| `plugin-sdk/config-schema` | Kök `openclaw.json` Zod şeması dışa aktarımı (`OpenClawSchema`) |
|
||||
| `plugin-sdk/config-schema` | Kök `openclaw.json` Zod şema dışa aktarımı (`OpenClawSchema`) |
|
||||
| `plugin-sdk/channel-setup` | `createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`, `createOptionalChannelSetupWizard`, ayrıca `DEFAULT_ACCOUNT_ID`, `createTopLevelChannelDmPolicy`, `setSetupChannelEnabled`, `splitSetupEntries` |
|
||||
| `plugin-sdk/setup` | Paylaşılan kurulum sihirbazı yardımcıları, izin listesi istemleri, kurulum durumu oluşturucuları |
|
||||
| `plugin-sdk/setup-runtime` | `createPatchedAccountSetupAdapter`, `createEnvPatchedAccountSetupAdapter`, `createSetupInputPresenceValidator`, `noteChannelLookupFailure`, `noteChannelLookupSummary`, `promptResolvedAllowFrom`, `splitSetupEntries`, `createAllowlistSetupWizardProxy`, `createDelegatedSetupWizardProxy` |
|
||||
| `plugin-sdk/setup-adapter-runtime` | `createEnvPatchedAccountSetupAdapter` |
|
||||
| `plugin-sdk/setup-tools` | `formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR` |
|
||||
| `plugin-sdk/account-core` | Çok hesaplı yapılandırma/eylem geçidi yardımcıları, varsayılan hesap geri dönüş yardımcıları |
|
||||
| `plugin-sdk/account-core` | Çok hesaplı yapılandırma/eylem kapısı yardımcıları, varsayılan hesap geri dönüş yardımcıları |
|
||||
| `plugin-sdk/account-id` | `DEFAULT_ACCOUNT_ID`, hesap kimliği normalleştirme yardımcıları |
|
||||
| `plugin-sdk/account-resolution` | Hesap arama + varsayılan geri dönüş yardımcıları |
|
||||
| `plugin-sdk/account-helpers` | Dar hesap listesi/hesap eylemi yardımcıları |
|
||||
@ -92,38 +95,38 @@ Bir belge sayfası açıkça birini genel olarak öne çıkarmadıkça bunları
|
||||
| `plugin-sdk/channel-reply-pipeline` | `createChannelReplyPipeline` |
|
||||
| `plugin-sdk/channel-config-helpers` | `createHybridChannelConfigAdapter` |
|
||||
| `plugin-sdk/channel-config-schema` | Kanal yapılandırma şeması türleri |
|
||||
| `plugin-sdk/telegram-command-config` | Paketlenmiş sözleşme geri dönüşü ile Telegram özel komut normalleştirme/doğrulama yardımcıları |
|
||||
| `plugin-sdk/command-gating` | Dar komut yetkilendirme geçidi yardımcıları |
|
||||
| `plugin-sdk/telegram-command-config` | Paketle birlikte gelen sözleşme geri dönüşü ile Telegram özel komut normalleştirme/doğrulama yardımcıları |
|
||||
| `plugin-sdk/command-gating` | Dar komut yetkilendirme kapısı yardımcıları |
|
||||
| `plugin-sdk/channel-policy` | `resolveChannelGroupRequireMention` |
|
||||
| `plugin-sdk/channel-lifecycle` | `createAccountStatusSink`, taslak akış yaşam döngüsü/nihai hâle getirme yardımcıları |
|
||||
| `plugin-sdk/inbound-envelope` | Paylaşılan gelen yönlendirme + zarf oluşturucu yardımcıları |
|
||||
| `plugin-sdk/inbound-reply-dispatch` | Paylaşılan gelen kaydetme ve dağıtma yardımcıları |
|
||||
| `plugin-sdk/messaging-targets` | Hedef ayrıştırma/eşleme yardımcıları |
|
||||
| `plugin-sdk/channel-lifecycle` | `createAccountStatusSink`, taslak akış yaşam döngüsü/sonlandırma yardımcıları |
|
||||
| `plugin-sdk/inbound-envelope` | Paylaşılan gelen rota + zarf oluşturucu yardımcıları |
|
||||
| `plugin-sdk/inbound-reply-dispatch` | Paylaşılan gelen kayıt ve sevk yardımcıları |
|
||||
| `plugin-sdk/messaging-targets` | Hedef ayrıştırma/eşleştirme yardımcıları |
|
||||
| `plugin-sdk/outbound-media` | Paylaşılan giden medya yükleme yardımcıları |
|
||||
| `plugin-sdk/outbound-runtime` | Giden kimlik, gönderim temsilcisi ve yük planlama yardımcıları |
|
||||
| `plugin-sdk/outbound-runtime` | Giden kimlik, gönderme delegesi ve yük planlama yardımcıları |
|
||||
| `plugin-sdk/poll-runtime` | Dar anket normalleştirme yardımcıları |
|
||||
| `plugin-sdk/thread-bindings-runtime` | Konu bağlama yaşam döngüsü ve bağdaştırıcı yardımcıları |
|
||||
| `plugin-sdk/agent-media-payload` | Eski aracı medya yükü oluşturucusu |
|
||||
| `plugin-sdk/conversation-runtime` | Konuşma/konu bağlama, eşleme ve yapılandırılmış bağlama yardımcıları |
|
||||
| `plugin-sdk/runtime-config-snapshot` | Çalışma zamanı yapılandırma anlık görüntüsü yardımcısı |
|
||||
| `plugin-sdk/thread-bindings-runtime` | İş parçacığı bağlama yaşam döngüsü ve bağdaştırıcı yardımcıları |
|
||||
| `plugin-sdk/agent-media-payload` | Eski ajan medya yükü oluşturucusu |
|
||||
| `plugin-sdk/conversation-runtime` | Konuşma/iş parçacığı bağlama, eşleştirme ve yapılandırılmış bağlama yardımcıları |
|
||||
| `plugin-sdk/runtime-config-snapshot` | Çalışma zamanı yapılandırma anlık görüntü yardımcısı |
|
||||
| `plugin-sdk/runtime-group-policy` | Çalışma zamanı grup ilkesi çözümleme yardımcıları |
|
||||
| `plugin-sdk/channel-status` | Paylaşılan kanal durum anlık görüntüsü/özet yardımcıları |
|
||||
| `plugin-sdk/channel-config-primitives` | Dar kanal yapılandırma şeması ilkel öğeleri |
|
||||
| `plugin-sdk/channel-config-primitives` | Dar kanal yapılandırma şeması ilkel türleri |
|
||||
| `plugin-sdk/channel-config-writes` | Kanal yapılandırma yazma yetkilendirme yardımcıları |
|
||||
| `plugin-sdk/channel-plugin-common` | Paylaşılan kanal plugin başlangıç dışa aktarımları |
|
||||
| `plugin-sdk/channel-plugin-common` | Paylaşılan kanal Plugin başlangıç dışa aktarımları |
|
||||
| `plugin-sdk/allowlist-config-edit` | İzin listesi yapılandırma düzenleme/okuma yardımcıları |
|
||||
| `plugin-sdk/group-access` | Paylaşılan grup erişimi karar yardımcıları |
|
||||
| `plugin-sdk/group-access` | Paylaşılan grup erişim kararı yardımcıları |
|
||||
| `plugin-sdk/direct-dm` | Paylaşılan doğrudan DM kimlik doğrulama/koruma yardımcıları |
|
||||
| `plugin-sdk/interactive-runtime` | Anlamsal mesaj sunumu, teslimat ve eski etkileşimli yanıt yardımcıları. Bkz. [Message Presentation](/tr/plugins/message-presentation) |
|
||||
| `plugin-sdk/channel-inbound` | Gelen debounce, bahsetme eşleme, mention-policy yardımcıları ve zarf yardımcıları için uyumluluk barrel dosyası |
|
||||
| `plugin-sdk/interactive-runtime` | Anlamsal mesaj sunumu, teslimat ve eski etkileşimli yanıt yardımcıları. Bkz. [Mesaj Sunumu](/tr/plugins/message-presentation) |
|
||||
| `plugin-sdk/channel-inbound` | Gelen debounce, mention eşleştirme, mention-policy yardımcıları ve zarf yardımcıları için uyumluluk barrel dosyası |
|
||||
| `plugin-sdk/channel-mention-gating` | Daha geniş gelen çalışma zamanı yüzeyi olmadan dar mention-policy yardımcıları |
|
||||
| `plugin-sdk/channel-location` | Kanal konum bağlamı ve biçimlendirme yardımcıları |
|
||||
| `plugin-sdk/channel-logging` | Gelen düşüşler ve yazıyor/ack hataları için kanal günlükleme yardımcıları |
|
||||
| `plugin-sdk/channel-logging` | Gelen düşüşler ve yazıyor/onay hataları için kanal günlükleme yardımcıları |
|
||||
| `plugin-sdk/channel-send-result` | Yanıt sonuç türleri |
|
||||
| `plugin-sdk/channel-actions` | Kanal mesaj eylemi yardımcıları, ayrıca plugin uyumluluğu için tutulan kullanımdan kaldırılmış yerel şema yardımcıları |
|
||||
| `plugin-sdk/channel-targets` | Hedef ayrıştırma/eşleme yardımcıları |
|
||||
| `plugin-sdk/channel-contract` | Kanal sözleşmesi türleri |
|
||||
| `plugin-sdk/channel-feedback` | Geri bildirim/tepki bağlantıları |
|
||||
| `plugin-sdk/channel-actions` | Kanal mesaj eylemi yardımcıları, ayrıca Plugin uyumluluğu için tutulan kullanımdan kaldırılmış yerel şema yardımcıları |
|
||||
| `plugin-sdk/channel-targets` | Hedef ayrıştırma/eşleştirme yardımcıları |
|
||||
| `plugin-sdk/channel-contract` | Kanal sözleşme türleri |
|
||||
| `plugin-sdk/channel-feedback` | Geri bildirim/reaksiyon bağlantıları |
|
||||
| `plugin-sdk/channel-secret-runtime` | `collectSimpleChannelFieldAssignments`, `getChannelSurface`, `pushAssignment` ve gizli hedef türleri gibi dar gizli sözleşme yardımcıları |
|
||||
</Accordion>
|
||||
|
||||
@ -131,27 +134,27 @@ Bir belge sayfası açıkça birini genel olarak öne çıkarmadıkça bunları
|
||||
| Alt yol | Temel dışa aktarımlar |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/provider-entry` | `defineSingleProviderPluginEntry` |
|
||||
| `plugin-sdk/provider-setup` | Düzenlenmiş yerel/kendi kendine barındırılan sağlayıcı kurulum yardımcıları |
|
||||
| `plugin-sdk/self-hosted-provider-setup` | Odaklanmış OpenAI uyumlu kendi kendine barındırılan sağlayıcı kurulum yardımcıları |
|
||||
| `plugin-sdk/provider-setup` | Düzenlenmiş local/self-hosted sağlayıcı kurulum yardımcıları |
|
||||
| `plugin-sdk/self-hosted-provider-setup` | Odaklı OpenAI uyumlu self-hosted sağlayıcı kurulum yardımcıları |
|
||||
| `plugin-sdk/cli-backend` | CLI arka uç varsayılanları + watchdog sabitleri |
|
||||
| `plugin-sdk/provider-auth-runtime` | Sağlayıcı plugin'leri için çalışma zamanı API anahtarı çözümleme yardımcıları |
|
||||
| `plugin-sdk/provider-auth-runtime` | Sağlayıcı Plugin'leri için çalışma zamanı API anahtarı çözümleme yardımcıları |
|
||||
| `plugin-sdk/provider-auth-api-key` | `upsertApiKeyProfile` gibi API anahtarı onboarding/profil yazma yardımcıları |
|
||||
| `plugin-sdk/provider-auth-result` | Standart OAuth auth-result oluşturucusu |
|
||||
| `plugin-sdk/provider-auth-login` | Sağlayıcı plugin'leri için paylaşılan etkileşimli giriş yardımcıları |
|
||||
| `plugin-sdk/provider-env-vars` | Sağlayıcı kimlik doğrulama ortam değişkeni arama yardımcıları |
|
||||
| `plugin-sdk/provider-auth-login` | Sağlayıcı Plugin'leri için paylaşılan etkileşimli giriş yardımcıları |
|
||||
| `plugin-sdk/provider-env-vars` | Sağlayıcı kimlik doğrulama env var arama yardımcıları |
|
||||
| `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile`, `upsertApiKeyProfile`, `writeOAuthCredentials` |
|
||||
| `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, paylaşılan replay-policy oluşturucuları, sağlayıcı uç nokta yardımcıları ve `normalizeNativeXaiModelId` gibi model kimliği normalleştirme yardımcıları |
|
||||
| `plugin-sdk/provider-catalog-shared` | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` |
|
||||
| `plugin-sdk/provider-http` | Genel sağlayıcı HTTP/uç nokta yetenek yardımcıları |
|
||||
| `plugin-sdk/provider-web-fetch-contract` | `enablePluginInConfig` ve `WebFetchProviderPlugin` gibi dar web-fetch yapılandırma/seçim sözleşme yardımcıları |
|
||||
| `plugin-sdk/provider-web-fetch` | Web-fetch sağlayıcı kayıt/önbellek yardımcıları |
|
||||
| `plugin-sdk/provider-web-search-config-contract` | Plugin etkinleştirme bağlantısına ihtiyaç duymayan sağlayıcılar için dar web-search yapılandırma/kimlik bilgisi yardımcıları |
|
||||
| `plugin-sdk/provider-web-search-contract` | `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` ve kapsamlı kimlik bilgisi ayarlayıcıları/getter'ları gibi dar web-search yapılandırma/kimlik bilgisi sözleşme yardımcıları |
|
||||
| `plugin-sdk/provider-web-search` | Web-search sağlayıcı kayıt/önbellek/çalışma zamanı yardımcıları |
|
||||
| `plugin-sdk/provider-web-fetch-contract` | `enablePluginInConfig` ve `WebFetchProviderPlugin` gibi dar web getirme yapılandırma/seçim sözleşmesi yardımcıları |
|
||||
| `plugin-sdk/provider-web-fetch` | Web getirme sağlayıcısı kayıt/önbellek yardımcıları |
|
||||
| `plugin-sdk/provider-web-search-config-contract` | Plugin etkinleştirme bağlantısına ihtiyaç duymayan sağlayıcılar için dar web arama yapılandırma/kimlik bilgisi yardımcıları |
|
||||
| `plugin-sdk/provider-web-search-contract` | `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig` ve kapsamlı kimlik bilgisi ayarlayıcıları/alıcıları gibi dar web arama yapılandırma/kimlik bilgisi sözleşmesi yardımcıları |
|
||||
| `plugin-sdk/provider-web-search` | Web arama sağlayıcısı kayıt/önbellek/çalışma zamanı yardımcıları |
|
||||
| `plugin-sdk/provider-tools` | `ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks`, Gemini şema temizleme + tanılama ve `resolveXaiModelCompatPatch` / `applyXaiModelCompat` gibi xAI uyumluluk yardımcıları |
|
||||
| `plugin-sdk/provider-usage` | `fetchClaudeUsage` ve benzerleri |
|
||||
| `plugin-sdk/provider-stream` | `ProviderStreamFamily`, `buildProviderStreamFamilyHooks`, `composeProviderStreamWrappers`, akış sarmalayıcı türleri ve paylaşılan Anthropic/Bedrock/Google/Kilocode/Moonshot/OpenAI/OpenRouter/Z.A.I/MiniMax/Copilot sarmalayıcı yardımcıları |
|
||||
| `plugin-sdk/provider-transport-runtime` | Korunan fetch, taşıma mesajı dönüşümleri ve yazılabilir taşıma olay akışları gibi yerel sağlayıcı taşıma yardımcıları |
|
||||
| `plugin-sdk/provider-transport-runtime` | Korumalı fetch, taşıma mesajı dönüşümleri ve yazılabilir taşıma olay akışları gibi yerel sağlayıcı taşıma yardımcıları |
|
||||
| `plugin-sdk/provider-onboard` | Onboarding yapılandırma yama yardımcıları |
|
||||
| `plugin-sdk/global-singleton` | Süreç-yerel singleton/map/önbellek yardımcıları |
|
||||
</Accordion>
|
||||
@ -161,25 +164,25 @@ Bir belge sayfası açıkça birini genel olarak öne çıkarmadıkça bunları
|
||||
| --- | --- |
|
||||
| `plugin-sdk/command-auth` | `resolveControlCommandGate`, komut kayıt defteri yardımcıları, gönderen yetkilendirme yardımcıları |
|
||||
| `plugin-sdk/command-status` | `buildCommandsMessagePaginated` ve `buildHelpMessage` gibi komut/yardım mesajı oluşturucuları |
|
||||
| `plugin-sdk/approval-auth-runtime` | Onaylayan çözümleme ve aynı sohbet eylem kimlik doğrulama yardımcıları |
|
||||
| `plugin-sdk/approval-auth-runtime` | Onaylayıcı çözümleme ve aynı sohbet eylem kimlik doğrulama yardımcıları |
|
||||
| `plugin-sdk/approval-client-runtime` | Yerel exec onay profili/filtre yardımcıları |
|
||||
| `plugin-sdk/approval-delivery-runtime` | Yerel onay yeteneği/teslimat bağdaştırıcıları |
|
||||
| `plugin-sdk/approval-gateway-runtime` | Paylaşılan onay gateway çözümleme yardımcısı |
|
||||
| `plugin-sdk/approval-handler-adapter-runtime` | Sıcak kanal giriş noktaları için hafif yerel onay bağdaştırıcısı yükleme yardımcıları |
|
||||
| `plugin-sdk/approval-handler-runtime` | Daha geniş onay işleyici çalışma zamanı yardımcıları; dar bağdaştırıcı/gateway arayüzleri yeterliyse onları tercih edin |
|
||||
| `plugin-sdk/approval-handler-runtime` | Daha geniş onay işleyicisi çalışma zamanı yardımcıları; daha dar bağdaştırıcı/gateway ayrım noktaları yeterliyse onları tercih edin |
|
||||
| `plugin-sdk/approval-native-runtime` | Yerel onay hedefi + hesap bağlama yardımcıları |
|
||||
| `plugin-sdk/approval-reply-runtime` | Exec/plugin onay yanıt yükü yardımcıları |
|
||||
| `plugin-sdk/command-auth-native` | Yerel komut kimlik doğrulama + yerel oturum hedef yardımcısı |
|
||||
| `plugin-sdk/approval-reply-runtime` | Exec/Plugin onay yanıt yükü yardımcıları |
|
||||
| `plugin-sdk/command-auth-native` | Yerel komut kimlik doğrulama + yerel oturum hedefi yardımcıları |
|
||||
| `plugin-sdk/command-detection` | Paylaşılan komut algılama yardımcıları |
|
||||
| `plugin-sdk/command-surface` | Komut gövdesi normalleştirme ve komut yüzeyi yardımcıları |
|
||||
| `plugin-sdk/allow-from` | `formatAllowFromLowercase` |
|
||||
| `plugin-sdk/channel-secret-runtime` | Kanal/plugin gizli bilgi yüzeyleri için dar gizli sözleşme toplama yardımcıları |
|
||||
| `plugin-sdk/channel-secret-runtime` | Kanal/Plugin gizli yüzeyleri için dar gizli sözleşme toplama yardımcıları |
|
||||
| `plugin-sdk/secret-ref-runtime` | Gizli sözleşme/yapılandırma ayrıştırması için dar `coerceSecretRef` ve SecretRef türleme yardımcıları |
|
||||
| `plugin-sdk/security-runtime` | Paylaşılan güven, DM geçitlemesi, harici içerik ve gizli bilgi toplama yardımcıları |
|
||||
| `plugin-sdk/ssrf-policy` | Ana makine izin listesi ve özel ağ SSRF ilke yardımcıları |
|
||||
| `plugin-sdk/security-runtime` | Paylaşılan güven, DM kapılama, harici içerik ve gizli toplama yardımcıları |
|
||||
| `plugin-sdk/ssrf-policy` | Ana bilgisayar izin listesi ve özel ağ SSRF ilkesi yardımcıları |
|
||||
| `plugin-sdk/ssrf-dispatcher` | Geniş altyapı çalışma zamanı yüzeyi olmadan dar sabitlenmiş dağıtıcı yardımcıları |
|
||||
| `plugin-sdk/ssrf-runtime` | Sabitlenmiş dağıtıcı, SSRF korumalı fetch ve SSRF ilke yardımcıları |
|
||||
| `plugin-sdk/secret-input` | Gizli bilgi girdisi ayrıştırma yardımcıları |
|
||||
| `plugin-sdk/ssrf-runtime` | Sabitlenmiş dağıtıcı, SSRF korumalı fetch ve SSRF ilkesi yardımcıları |
|
||||
| `plugin-sdk/secret-input` | Gizli girdi ayrıştırma yardımcıları |
|
||||
| `plugin-sdk/webhook-ingress` | Webhook istek/hedef yardımcıları |
|
||||
| `plugin-sdk/webhook-request-guards` | İstek gövdesi boyutu/zaman aşımı yardımcıları |
|
||||
</Accordion>
|
||||
@ -187,109 +190,109 @@ Bir belge sayfası açıkça birini genel olarak öne çıkarmadıkça bunları
|
||||
<Accordion title="Çalışma zamanı ve depolama alt yolları">
|
||||
| Alt yol | Temel dışa aktarımlar |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/runtime` | Geniş çalışma zamanı/günlükleme/yedekleme/plugin yükleme yardımcıları |
|
||||
| `plugin-sdk/runtime-env` | Dar çalışma zamanı ortamı, günlükleyici, zaman aşımı, yeniden deneme ve backoff yardımcıları |
|
||||
| `plugin-sdk/runtime` | Geniş çalışma zamanı/günlükleme/yedekleme/Plugin kurulum yardımcıları |
|
||||
| `plugin-sdk/runtime-env` | Dar çalışma zamanı env, günlükleyici, zaman aşımı, retry ve backoff yardımcıları |
|
||||
| `plugin-sdk/channel-runtime-context` | Genel kanal çalışma zamanı bağlamı kaydı ve arama yardımcıları |
|
||||
| `plugin-sdk/runtime-store` | `createPluginRuntimeStore` |
|
||||
| `plugin-sdk/plugin-runtime` | Paylaşılan plugin komutu/hook/http/etkileşimli yardımcıları |
|
||||
| `plugin-sdk/hook-runtime` | Paylaşılan Webhook/dahili hook işlem hattı yardımcıları |
|
||||
| `plugin-sdk/plugin-runtime` | Paylaşılan Plugin komutu/hook/http/etkileşimli yardımcılar |
|
||||
| `plugin-sdk/hook-runtime` | Paylaşılan Webhook/iç hook işlem hattı yardımcıları |
|
||||
| `plugin-sdk/lazy-runtime` | `createLazyRuntimeModule`, `createLazyRuntimeMethod` ve `createLazyRuntimeSurface` gibi tembel çalışma zamanı içe aktarma/bağlama yardımcıları |
|
||||
| `plugin-sdk/process-runtime` | Süreç exec yardımcıları |
|
||||
| `plugin-sdk/cli-runtime` | CLI biçimlendirme, bekleme ve sürüm yardımcıları |
|
||||
| `plugin-sdk/gateway-runtime` | Gateway istemcisi ve kanal durumu yama yardımcıları |
|
||||
| `plugin-sdk/config-runtime` | Yapılandırma yükleme/yazma yardımcıları |
|
||||
| `plugin-sdk/telegram-command-config` | Paketlenmiş Telegram sözleşme yüzeyi kullanılamadığında bile Telegram komut adı/açıklama normalleştirme ve kopya/çakışma denetimleri |
|
||||
| `plugin-sdk/text-autolink-runtime` | Geniş text-runtime barrel dosyası olmadan dosya başvurusu otomatik bağlantı algılama |
|
||||
| `plugin-sdk/approval-runtime` | Exec/plugin onay yardımcıları, onay yeteneği oluşturucuları, kimlik doğrulama/profil yardımcıları, yerel yönlendirme/çalışma zamanı yardımcıları |
|
||||
| `plugin-sdk/reply-runtime` | Paylaşılan gelen/yanıt çalışma zamanı yardımcıları, parçalama, dağıtma, Heartbeat, yanıt planlayıcısı |
|
||||
| `plugin-sdk/reply-dispatch-runtime` | Dar yanıt dağıtma/nihai hâle getirme yardımcıları |
|
||||
| `plugin-sdk/telegram-command-config` | Paketle birlikte gelen Telegram sözleşme yüzeyi kullanılamadığında bile Telegram komut adı/açıklama normalleştirme ve yinelenen/çakışma kontrolleri |
|
||||
| `plugin-sdk/text-autolink-runtime` | Geniş text-runtime barrel dosyası olmadan dosya referansı otomatik bağlantı algılama |
|
||||
| `plugin-sdk/approval-runtime` | Exec/Plugin onay yardımcıları, onay yeteneği oluşturucuları, kimlik doğrulama/profil yardımcıları, yerel yönlendirme/çalışma zamanı yardımcıları |
|
||||
| `plugin-sdk/reply-runtime` | Paylaşılan gelen/yanıt çalışma zamanı yardımcıları, parçalara ayırma, sevk, Heartbeat, yanıt planlayıcı |
|
||||
| `plugin-sdk/reply-dispatch-runtime` | Dar yanıt sevk/sonlandırma yardımcıları |
|
||||
| `plugin-sdk/reply-history` | `buildHistoryContext`, `recordPendingHistoryEntry` ve `clearHistoryEntriesIfEnabled` gibi paylaşılan kısa pencere yanıt geçmişi yardımcıları |
|
||||
| `plugin-sdk/reply-reference` | `createReplyReferencePlanner` |
|
||||
| `plugin-sdk/reply-chunking` | Dar metin/markdown parçalama yardımcıları |
|
||||
| `plugin-sdk/reply-chunking` | Dar metin/Markdown parçalara ayırma yardımcıları |
|
||||
| `plugin-sdk/session-store-runtime` | Oturum deposu yolu + updated-at yardımcıları |
|
||||
| `plugin-sdk/state-paths` | State/OAuth dizin yolu yardımcıları |
|
||||
| `plugin-sdk/routing` | `resolveAgentRoute`, `buildAgentSessionKey` ve `resolveDefaultAgentBoundAccountId` gibi yönlendirme/oturum anahtarı/hesap bağlama yardımcıları |
|
||||
| `plugin-sdk/status-helpers` | Paylaşılan kanal/hesap durum özeti yardımcıları, çalışma zamanı durum varsayılanları ve sorun meta verisi yardımcıları |
|
||||
| `plugin-sdk/state-paths` | Durum/OAuth dizin yolu yardımcıları |
|
||||
| `plugin-sdk/routing` | `resolveAgentRoute`, `buildAgentSessionKey` ve `resolveDefaultAgentBoundAccountId` gibi rota/oturum anahtarı/hesap bağlama yardımcıları |
|
||||
| `plugin-sdk/status-helpers` | Paylaşılan kanal/hesap durum özeti yardımcıları, çalışma zamanı durumu varsayılanları ve issue meta verisi yardımcıları |
|
||||
| `plugin-sdk/target-resolver-runtime` | Paylaşılan hedef çözümleyici yardımcıları |
|
||||
| `plugin-sdk/string-normalization-runtime` | Slug/dize normalleştirme yardımcıları |
|
||||
| `plugin-sdk/request-url` | Fetch/istek benzeri girdilerden dize URL'leri ayıklama |
|
||||
| `plugin-sdk/run-command` | Normalize edilmiş stdout/stderr sonuçlarıyla zamanlamalı komut çalıştırıcısı |
|
||||
| `plugin-sdk/request-url` | Fetch/istek benzeri girdilerden dize URL'leri çıkarma |
|
||||
| `plugin-sdk/run-command` | Normalleştirilmiş stdout/stderr sonuçlarıyla zamanlamalı komut çalıştırıcısı |
|
||||
| `plugin-sdk/param-readers` | Yaygın araç/CLI parametre okuyucuları |
|
||||
| `plugin-sdk/tool-payload` | Araç sonuç nesnelerinden normalize yükleri ayıklama |
|
||||
| `plugin-sdk/tool-send` | Araç bağımsız değişkenlerinden kanonik gönderim hedef alanlarını ayıklama |
|
||||
| `plugin-sdk/tool-payload` | Araç sonuç nesnelerinden normalleştirilmiş yükleri çıkarma |
|
||||
| `plugin-sdk/tool-send` | Araç argümanlarından kanonik gönderim hedefi alanlarını çıkarma |
|
||||
| `plugin-sdk/temp-path` | Paylaşılan geçici indirme yolu yardımcıları |
|
||||
| `plugin-sdk/logging-core` | Alt sistem günlükleyicisi ve kırpma yardımcıları |
|
||||
| `plugin-sdk/logging-core` | Alt sistem günlükleyicisi ve redaksiyon yardımcıları |
|
||||
| `plugin-sdk/markdown-table-runtime` | Markdown tablo modu yardımcıları |
|
||||
| `plugin-sdk/json-store` | Küçük JSON durumu okuma/yazma yardımcıları |
|
||||
| `plugin-sdk/json-store` | Küçük JSON durum okuma/yazma yardımcıları |
|
||||
| `plugin-sdk/file-lock` | Yeniden girişli dosya kilidi yardımcıları |
|
||||
| `plugin-sdk/persistent-dedupe` | Disk destekli dedupe önbellek yardımcıları |
|
||||
| `plugin-sdk/acp-runtime` | ACP çalışma zamanı/oturumu ve yanıt dağıtma yardımcıları |
|
||||
| `plugin-sdk/acp-binding-resolve-runtime` | Yaşam döngüsü başlangıç içe aktarımları olmadan salt okunur ACP bağlama çözümleme |
|
||||
| `plugin-sdk/agent-config-primitives` | Dar aracı çalışma zamanı yapılandırma şeması ilkel öğeleri |
|
||||
| `plugin-sdk/persistent-dedupe` | Disk destekli yinelenenleri ayıklama önbellek yardımcıları |
|
||||
| `plugin-sdk/acp-runtime` | ACP çalışma zamanı/oturum ve yanıt sevk yardımcıları |
|
||||
| `plugin-sdk/acp-binding-resolve-runtime` | Yaşam döngüsü başlatma içe aktarmaları olmadan salt okunur ACP bağlama çözümleme |
|
||||
| `plugin-sdk/agent-config-primitives` | Dar ajan çalışma zamanı yapılandırma şeması ilkel türleri |
|
||||
| `plugin-sdk/boolean-param` | Gevşek boolean parametre okuyucusu |
|
||||
| `plugin-sdk/dangerous-name-runtime` | Tehlikeli ad eşleme çözümleme yardımcıları |
|
||||
| `plugin-sdk/dangerous-name-runtime` | Tehlikeli ad eşleştirme çözümleme yardımcıları |
|
||||
| `plugin-sdk/device-bootstrap` | Cihaz bootstrap ve eşleme belirteci yardımcıları |
|
||||
| `plugin-sdk/extension-shared` | Paylaşılan pasif kanal, durum ve ambient proxy yardımcı ilkel öğeleri |
|
||||
| `plugin-sdk/extension-shared` | Paylaşılan pasif kanal, durum ve ortam proxy yardımcı ilkel türleri |
|
||||
| `plugin-sdk/models-provider-runtime` | `/models` komutu/sağlayıcı yanıt yardımcıları |
|
||||
| `plugin-sdk/skill-commands-runtime` | Skills komut listeleme yardımcıları |
|
||||
| `plugin-sdk/native-command-registry` | Yerel komut kayıt defteri/oluşturma/serileştirme yardımcıları |
|
||||
| `plugin-sdk/agent-harness` | Düşük düzey aracı harness'leri için deneysel güvenilir plugin yüzeyi: harness türleri, etkin çalıştırma yönlendirme/abort yardımcıları, OpenClaw araç köprüsü yardımcıları ve deneme sonucu yardımcıları |
|
||||
| `plugin-sdk/provider-zai-endpoint` | Z.A.I uç nokta algılama yardımcıları |
|
||||
| `plugin-sdk/agent-harness` | Düşük seviye ajan harness'leri için deneysel güvenilir Plugin yüzeyi: harness türleri, etkin çalıştırma yönlendirme/durdurma yardımcıları, OpenClaw araç köprüsü yardımcıları ve deneme sonucu yardımcı araçları |
|
||||
| `plugin-sdk/provider-zai-endpoint` | Z.AI uç nokta algılama yardımcıları |
|
||||
| `plugin-sdk/infra-runtime` | Sistem olayı/Heartbeat yardımcıları |
|
||||
| `plugin-sdk/collection-runtime` | Küçük sınırlı önbellek yardımcıları |
|
||||
| `plugin-sdk/diagnostic-runtime` | Tanılama bayrağı ve olay yardımcıları |
|
||||
| `plugin-sdk/error-runtime` | Hata grafiği, biçimlendirme, paylaşılan hata sınıflandırma yardımcıları, `isApprovalNotFoundError` |
|
||||
| `plugin-sdk/fetch-runtime` | Sarılmış fetch, proxy ve sabitlenmiş arama yardımcıları |
|
||||
| `plugin-sdk/runtime-fetch` | Proxy/korumalı-fetch içe aktarımları olmadan dağıtıcı farkındalıklı çalışma zamanı fetch |
|
||||
| `plugin-sdk/runtime-fetch` | Proxy/korumalı fetch içe aktarmaları olmadan dağıtıcı farkındalıklı çalışma zamanı fetch'i |
|
||||
| `plugin-sdk/response-limit-runtime` | Geniş medya çalışma zamanı yüzeyi olmadan sınırlı yanıt gövdesi okuyucusu |
|
||||
| `plugin-sdk/session-binding-runtime` | Yapılandırılmış bağlama yönlendirmesi veya eşleme depoları olmadan mevcut konuşma bağlama durumu |
|
||||
| `plugin-sdk/session-store-runtime` | Geniş yapılandırma yazma/bakım içe aktarımları olmadan oturum deposu okuma yardımcıları |
|
||||
| `plugin-sdk/context-visibility-runtime` | Geniş yapılandırma/güvenlik içe aktarımları olmadan bağlam görünürlüğü çözümleme ve ek bağlam filtreleme |
|
||||
| `plugin-sdk/string-coerce-runtime` | Markdown/günlükleme içe aktarımları olmadan dar ilkel kayıt/dize zorlama ve normalleştirme yardımcıları |
|
||||
| `plugin-sdk/host-runtime` | Ana makine adı ve SCP ana makine normalleştirme yardımcıları |
|
||||
| `plugin-sdk/retry-runtime` | Yeniden deneme yapılandırması ve yeniden deneme çalıştırıcı yardımcıları |
|
||||
| `plugin-sdk/agent-runtime` | Aracı dizini/kimlik/çalışma alanı yardımcıları |
|
||||
| `plugin-sdk/directory-runtime` | Yapılandırma destekli dizin sorgulama/dedupe |
|
||||
| `plugin-sdk/session-store-runtime` | Geniş yapılandırma yazma/bakım içe aktarmaları olmadan oturum deposu okuma yardımcıları |
|
||||
| `plugin-sdk/context-visibility-runtime` | Geniş yapılandırma/güvenlik içe aktarmaları olmadan bağlam görünürlüğü çözümleme ve ek bağlam filtreleme |
|
||||
| `plugin-sdk/string-coerce-runtime` | Markdown/günlükleme içe aktarmaları olmadan dar ilkel kayıt/dize dönüştürme ve normalleştirme yardımcıları |
|
||||
| `plugin-sdk/host-runtime` | Ana bilgisayar adı ve SCP ana bilgisayar normalleştirme yardımcıları |
|
||||
| `plugin-sdk/retry-runtime` | Retry yapılandırması ve retry çalıştırıcısı yardımcıları |
|
||||
| `plugin-sdk/agent-runtime` | Ajan dizini/kimliği/çalışma alanı yardımcıları |
|
||||
| `plugin-sdk/directory-runtime` | Yapılandırma destekli dizin sorgulama/yinelenenleri ayıklama |
|
||||
| `plugin-sdk/keyed-async-queue` | `KeyedAsyncQueue` |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Yetenek ve test alt yolları">
|
||||
| Alt yol | Temel dışa aktarımlar |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/media-runtime` | Medya yükü oluşturucularına ek olarak paylaşılan medya fetch/dönüştürme/depolama yardımcıları |
|
||||
| `plugin-sdk/media-generation-runtime` | Paylaşılan medya oluşturma geri dönüş yardımcıları, aday seçimi ve eksik model mesajlaşması |
|
||||
| `plugin-sdk/media-runtime` | Paylaşılan medya fetch/dönüştürme/depolama yardımcıları ile medya yükü oluşturucuları |
|
||||
| `plugin-sdk/media-generation-runtime` | Paylaşılan medya oluşturma failover yardımcıları, aday seçimi ve eksik model mesajlaşması |
|
||||
| `plugin-sdk/media-understanding` | Medya anlama sağlayıcı türleri ile sağlayıcıya dönük görsel/ses yardımcı dışa aktarımları |
|
||||
| `plugin-sdk/text-runtime` | Aracı tarafından görülebilen metin temizleme, markdown oluşturma/parçalama/tablo yardımcıları, kırpma yardımcıları, yönerge etiketi yardımcıları ve güvenli metin yardımcıları gibi paylaşılan metin/markdown/günlükleme yardımcıları |
|
||||
| `plugin-sdk/text-chunking` | Giden metin parçalama yardımcısı |
|
||||
| `plugin-sdk/speech` | Konuşma sağlayıcı türleri ile sağlayıcıya dönük yönerge, kayıt defteri ve doğrulama yardımcıları |
|
||||
| `plugin-sdk/speech-core` | Paylaşılan konuşma sağlayıcı türleri, kayıt defteri, yönerge ve normalleştirme yardımcıları |
|
||||
| `plugin-sdk/text-runtime` | Asistan tarafından görülebilen metin temizleme, Markdown işleme/parçalara ayırma/tablo yardımcıları, redaksiyon yardımcıları, directive-tag yardımcıları ve güvenli metin yardımcıları gibi paylaşılan metin/Markdown/günlükleme yardımcıları |
|
||||
| `plugin-sdk/text-chunking` | Giden metin parçalara ayırma yardımcısı |
|
||||
| `plugin-sdk/speech` | Konuşma sağlayıcı türleri ile sağlayıcıya dönük directive, kayıt defteri ve doğrulama yardımcıları |
|
||||
| `plugin-sdk/speech-core` | Paylaşılan konuşma sağlayıcı türleri, kayıt defteri, directive ve normalleştirme yardımcıları |
|
||||
| `plugin-sdk/realtime-transcription` | Gerçek zamanlı transkripsiyon sağlayıcı türleri ve kayıt defteri yardımcıları |
|
||||
| `plugin-sdk/realtime-voice` | Gerçek zamanlı ses sağlayıcı türleri ve kayıt defteri yardımcıları |
|
||||
| `plugin-sdk/image-generation` | Görsel oluşturma sağlayıcı türleri |
|
||||
| `plugin-sdk/image-generation-core` | Paylaşılan görsel oluşturma türleri, geri dönüş, kimlik doğrulama ve kayıt defteri yardımcıları |
|
||||
| `plugin-sdk/image-generation-core` | Paylaşılan görsel oluşturma türleri, failover, kimlik doğrulama ve kayıt defteri yardımcıları |
|
||||
| `plugin-sdk/music-generation` | Müzik oluşturma sağlayıcı/istek/sonuç türleri |
|
||||
| `plugin-sdk/music-generation-core` | Paylaşılan müzik oluşturma türleri, geri dönüş yardımcıları, sağlayıcı arama ve model-ref ayrıştırma |
|
||||
| `plugin-sdk/music-generation-core` | Paylaşılan müzik oluşturma türleri, failover yardımcıları, sağlayıcı arama ve model-ref ayrıştırma |
|
||||
| `plugin-sdk/video-generation` | Video oluşturma sağlayıcı/istek/sonuç türleri |
|
||||
| `plugin-sdk/video-generation-core` | Paylaşılan video oluşturma türleri, geri dönüş yardımcıları, sağlayıcı arama ve model-ref ayrıştırma |
|
||||
| `plugin-sdk/webhook-targets` | Webhook hedef kayıt defteri ve rota yükleme yardımcıları |
|
||||
| `plugin-sdk/video-generation-core` | Paylaşılan video oluşturma türleri, failover yardımcıları, sağlayıcı arama ve model-ref ayrıştırma |
|
||||
| `plugin-sdk/webhook-targets` | Webhook hedef kayıt defteri ve rota kurulum yardımcıları |
|
||||
| `plugin-sdk/webhook-path` | Webhook yol normalleştirme yardımcıları |
|
||||
| `plugin-sdk/web-media` | Paylaşılan uzak/yerel medya yükleme yardımcıları |
|
||||
| `plugin-sdk/zod` | Plugin SDK kullanıcıları için yeniden dışa aktarılan `zod` |
|
||||
| `plugin-sdk/web-media` | Paylaşılan uzak/local medya yükleme yardımcıları |
|
||||
| `plugin-sdk/zod` | Plugin SDK tüketicileri için yeniden dışa aktarılan `zod` |
|
||||
| `plugin-sdk/testing` | `installCommonResolveTargetErrorCases`, `shouldAckReaction` |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Memory alt yolları">
|
||||
| Alt yol | Temel dışa aktarımlar |
|
||||
| --- | --- |
|
||||
| `plugin-sdk/memory-core` | Yönetici/yapılandırma/dosya/CLI yardımcıları için paketlenmiş memory-core yardımcı yüzeyi |
|
||||
| `plugin-sdk/memory-core-engine-runtime` | Memory dizin/arama çalışma zamanı cephesi |
|
||||
| `plugin-sdk/memory-core` | Manager/config/file/CLI yardımcıları için paketle birlikte gelen memory-core yardımcı yüzeyi |
|
||||
| `plugin-sdk/memory-core-engine-runtime` | Memory dizini/arama çalışma zamanı yüzeyi |
|
||||
| `plugin-sdk/memory-core-host-engine-foundation` | Memory host foundation engine dışa aktarımları |
|
||||
| `plugin-sdk/memory-core-host-engine-embeddings` | Memory host embedding sözleşmeleri, kayıt defteri erişimi, yerel sağlayıcı ve genel toplu/uzak yardımcılar |
|
||||
| `plugin-sdk/memory-core-host-engine-embeddings` | Memory host embedding sözleşmeleri, kayıt defteri erişimi, local sağlayıcı ve genel batch/uzak yardımcıları |
|
||||
| `plugin-sdk/memory-core-host-engine-qmd` | Memory host QMD engine dışa aktarımları |
|
||||
| `plugin-sdk/memory-core-host-engine-storage` | Memory host storage engine dışa aktarımları |
|
||||
| `plugin-sdk/memory-core-host-multimodal` | Memory host multimodal yardımcıları |
|
||||
| `plugin-sdk/memory-core-host-query` | Memory host sorgu yardımcıları |
|
||||
| `plugin-sdk/memory-core-host-secret` | Memory host gizli bilgi yardımcıları |
|
||||
| `plugin-sdk/memory-core-host-secret` | Memory host gizli yardımcıları |
|
||||
| `plugin-sdk/memory-core-host-events` | Memory host olay günlüğü yardımcıları |
|
||||
| `plugin-sdk/memory-core-host-status` | Memory host durum yardımcıları |
|
||||
| `plugin-sdk/memory-core-host-runtime-cli` | Memory host CLI çalışma zamanı yardımcıları |
|
||||
@ -298,82 +301,93 @@ Bir belge sayfası açıkça birini genel olarak öne çıkarmadıkça bunları
|
||||
| `plugin-sdk/memory-host-core` | Memory host çekirdek çalışma zamanı yardımcıları için sağlayıcıdan bağımsız takma ad |
|
||||
| `plugin-sdk/memory-host-events` | Memory host olay günlüğü yardımcıları için sağlayıcıdan bağımsız takma ad |
|
||||
| `plugin-sdk/memory-host-files` | Memory host dosya/çalışma zamanı yardımcıları için sağlayıcıdan bağımsız takma ad |
|
||||
| `plugin-sdk/memory-host-markdown` | Memory'ye komşu plugin'ler için paylaşılan yönetilen-markdown yardımcıları |
|
||||
| `plugin-sdk/memory-host-search` | Arama yöneticisi erişimi için Active Memory çalışma zamanı cephesi |
|
||||
| `plugin-sdk/memory-host-markdown` | Memory'ye komşu Plugin'ler için paylaşılan yönetilen Markdown yardımcıları |
|
||||
| `plugin-sdk/memory-host-search` | Arama yöneticisi erişimi için Active Memory çalışma zamanı yüzeyi |
|
||||
| `plugin-sdk/memory-host-status` | Memory host durum yardımcıları için sağlayıcıdan bağımsız takma ad |
|
||||
| `plugin-sdk/memory-lancedb` | Paketlenmiş memory-lancedb yardımcı yüzeyi |
|
||||
| `plugin-sdk/memory-lancedb` | Paketle birlikte gelen memory-lancedb yardımcı yüzeyi |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Ayrılmış paketlenmiş yardımcı alt yolları">
|
||||
<Accordion title="Ayrılmış paketle birlikte gelen yardımcı alt yollar">
|
||||
| Aile | Geçerli alt yollar | Amaçlanan kullanım |
|
||||
| --- | --- | --- |
|
||||
| Tarayıcı | `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support` | Paketlenmiş tarayıcı plugin desteği yardımcıları (`browser-support` uyumluluk barrel dosyası olarak kalır) |
|
||||
| Matrix | `plugin-sdk/matrix`, `plugin-sdk/matrix-helper`, `plugin-sdk/matrix-runtime-heavy`, `plugin-sdk/matrix-runtime-shared`, `plugin-sdk/matrix-runtime-surface`, `plugin-sdk/matrix-surface`, `plugin-sdk/matrix-thread-bindings` | Paketlenmiş Matrix yardımcı/çalışma zamanı yüzeyi |
|
||||
| Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Paketlenmiş LINE yardımcı/çalışma zamanı yüzeyi |
|
||||
| IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Paketlenmiş IRC yardımcı yüzeyi |
|
||||
| Kanala özgü yardımcılar | `plugin-sdk/googlechat`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu-conversation`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`, `plugin-sdk/twitch` | Paketlenmiş kanal uyumluluk/yardımcı arayüzleri |
|
||||
| Kimlik doğrulama/plugin'e özgü yardımcılar | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Paketlenmiş özellik/plugin yardımcı arayüzleri; `plugin-sdk/github-copilot-token` şu anda `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` ve `resolveCopilotApiToken` dışa aktarır |
|
||||
| Tarayıcı | `plugin-sdk/browser-cdp`, `plugin-sdk/browser-config-runtime`, `plugin-sdk/browser-config-support`, `plugin-sdk/browser-control-auth`, `plugin-sdk/browser-node-runtime`, `plugin-sdk/browser-profiles`, `plugin-sdk/browser-security-runtime`, `plugin-sdk/browser-setup-tools`, `plugin-sdk/browser-support` | Paketle birlikte gelen tarayıcı Plugin destek yardımcıları (`browser-support` uyumluluk barrel dosyası olarak kalır) |
|
||||
| Matrix | `plugin-sdk/matrix`, `plugin-sdk/matrix-helper`, `plugin-sdk/matrix-runtime-heavy`, `plugin-sdk/matrix-runtime-shared`, `plugin-sdk/matrix-runtime-surface`, `plugin-sdk/matrix-surface`, `plugin-sdk/matrix-thread-bindings` | Paketle birlikte gelen Matrix yardımcı/çalışma zamanı yüzeyi |
|
||||
| Line | `plugin-sdk/line`, `plugin-sdk/line-core`, `plugin-sdk/line-runtime`, `plugin-sdk/line-surface` | Paketle birlikte gelen LINE yardımcı/çalışma zamanı yüzeyi |
|
||||
| IRC | `plugin-sdk/irc`, `plugin-sdk/irc-surface` | Paketle birlikte gelen IRC yardımcı yüzeyi |
|
||||
| Kanala özgü yardımcılar | `plugin-sdk/googlechat`, `plugin-sdk/zalouser`, `plugin-sdk/bluebubbles`, `plugin-sdk/bluebubbles-policy`, `plugin-sdk/mattermost`, `plugin-sdk/mattermost-policy`, `plugin-sdk/feishu-conversation`, `plugin-sdk/msteams`, `plugin-sdk/nextcloud-talk`, `plugin-sdk/nostr`, `plugin-sdk/tlon`, `plugin-sdk/twitch` | Paketle birlikte gelen kanal uyumluluk/yardımcı ayrım noktaları |
|
||||
| Kimlik doğrulama/Plugin'e özgü yardımcılar | `plugin-sdk/github-copilot-login`, `plugin-sdk/github-copilot-token`, `plugin-sdk/diagnostics-otel`, `plugin-sdk/diffs`, `plugin-sdk/llm-task`, `plugin-sdk/thread-ownership`, `plugin-sdk/voice-call` | Paketle birlikte gelen özellik/Plugin yardımcı ayrım noktaları; `plugin-sdk/github-copilot-token` şu anda `DEFAULT_COPILOT_API_BASE_URL`, `deriveCopilotApiBaseUrlFromToken` ve `resolveCopilotApiToken` dışa aktarır |
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Kayıt API'si
|
||||
|
||||
`register(api)` geri çağrısı, şu yöntemlere sahip bir `OpenClawPluginApi` nesnesi alır:
|
||||
`register(api)` callback'i, şu
|
||||
yöntemlere sahip bir `OpenClawPluginApi` nesnesi alır:
|
||||
|
||||
### Yetenek kaydı
|
||||
|
||||
| Yöntem | Kaydettiği şey |
|
||||
| ------------------------------------------------ | ------------------------------------ |
|
||||
| `api.registerProvider(...)` | Metin çıkarımı (LLM) |
|
||||
| `api.registerAgentHarness(...)` | Deneysel düşük düzey aracı yürütücüsü |
|
||||
| `api.registerCliBackend(...)` | Yerel CLI çıkarım arka ucu |
|
||||
| `api.registerChannel(...)` | Mesajlaşma kanalı |
|
||||
| `api.registerSpeechProvider(...)` | Metinden konuşmaya / STT sentezi |
|
||||
| `api.registerRealtimeTranscriptionProvider(...)` | Akış gerçek zamanlı transkripsiyon |
|
||||
| Yöntem | Ne kaydeder |
|
||||
| ------------------------------------------------ | ------------------------------------- |
|
||||
| `api.registerProvider(...)` | Metin çıkarımı (LLM) |
|
||||
| `api.registerAgentHarness(...)` | Deneysel düşük seviye ajan yürütücüsü |
|
||||
| `api.registerCliBackend(...)` | local CLI çıkarım arka ucu |
|
||||
| `api.registerChannel(...)` | Mesajlaşma kanalı |
|
||||
| `api.registerSpeechProvider(...)` | Metinden konuşmaya / STT sentezi |
|
||||
| `api.registerRealtimeTranscriptionProvider(...)` | Akış tabanlı gerçek zamanlı transkripsiyon |
|
||||
| `api.registerRealtimeVoiceProvider(...)` | Çift yönlü gerçek zamanlı ses oturumları |
|
||||
| `api.registerMediaUnderstandingProvider(...)` | Görsel/ses/video analizi |
|
||||
| `api.registerImageGenerationProvider(...)` | Görsel oluşturma |
|
||||
| `api.registerMusicGenerationProvider(...)` | Müzik oluşturma |
|
||||
| `api.registerVideoGenerationProvider(...)` | Video oluşturma |
|
||||
| `api.registerWebFetchProvider(...)` | Web getirme / kazıma sağlayıcısı |
|
||||
| `api.registerWebSearchProvider(...)` | Web arama |
|
||||
| `api.registerMediaUnderstandingProvider(...)` | Görsel/ses/video analizi |
|
||||
| `api.registerImageGenerationProvider(...)` | Görsel oluşturma |
|
||||
| `api.registerMusicGenerationProvider(...)` | Müzik oluşturma |
|
||||
| `api.registerVideoGenerationProvider(...)` | Video oluşturma |
|
||||
| `api.registerWebFetchProvider(...)` | Web getirme / scrape sağlayıcısı |
|
||||
| `api.registerWebSearchProvider(...)` | Web arama |
|
||||
|
||||
### Araçlar ve komutlar
|
||||
|
||||
| Yöntem | Kaydettiği şey |
|
||||
| ------------------------------- | ---------------------------------------------- |
|
||||
| `api.registerTool(tool, opts?)` | Aracı aracı (zorunlu veya `{ optional: true }`) |
|
||||
| `api.registerCommand(def)` | Özel komut (LLM'yi atlar) |
|
||||
| Yöntem | Ne kaydeder |
|
||||
| ------------------------------- | -------------------------------------------- |
|
||||
| `api.registerTool(tool, opts?)` | Ajan aracı (zorunlu veya `{ optional: true }`) |
|
||||
| `api.registerCommand(def)` | Özel komut (LLM'yi atlar) |
|
||||
|
||||
### Altyapı
|
||||
|
||||
| Yöntem | Kaydettiği şey |
|
||||
| ---------------------------------------------- | --------------------------------------- |
|
||||
| `api.registerHook(events, handler, opts?)` | Olay hook'u |
|
||||
| `api.registerHttpRoute(params)` | Gateway HTTP uç noktası |
|
||||
| `api.registerGatewayMethod(name, handler)` | Gateway RPC yöntemi |
|
||||
| `api.registerCli(registrar, opts?)` | CLI alt komutu |
|
||||
| `api.registerService(service)` | Arka plan hizmeti |
|
||||
| `api.registerInteractiveHandler(registration)` | Etkileşimli işleyici |
|
||||
| `api.registerMemoryPromptSupplement(builder)` | Eklemeli memory-komşu istem bölümü |
|
||||
| `api.registerMemoryCorpusSupplement(adapter)` | Eklemeli memory arama/okuma korpusu |
|
||||
| Yöntem | Ne kaydeder |
|
||||
| ----------------------------------------------- | ------------------------------------- |
|
||||
| `api.registerHook(events, handler, opts?)` | Olay hook'u |
|
||||
| `api.registerHttpRoute(params)` | Gateway HTTP uç noktası |
|
||||
| `api.registerGatewayMethod(name, handler)` | Gateway RPC yöntemi |
|
||||
| `api.registerCli(registrar, opts?)` | CLI alt komutu |
|
||||
| `api.registerService(service)` | Arka plan hizmeti |
|
||||
| `api.registerInteractiveHandler(registration)` | Etkileşimli işleyici |
|
||||
| `api.registerEmbeddedExtensionFactory(factory)` | Pi embedded-runner uzantı fabrikası |
|
||||
| `api.registerMemoryPromptSupplement(builder)` | Eklemeli Memory'ye komşu prompt bölümü |
|
||||
| `api.registerMemoryCorpusSupplement(adapter)` | Eklemeli Memory arama/okuma corpus'u |
|
||||
|
||||
Ayrılmış çekirdek yönetici ad alanları (`config.*`, `exec.approvals.*`, `wizard.*`,
|
||||
`update.*`), bir plugin daha dar bir gateway yöntem kapsamı atamaya çalışsa bile,
|
||||
`update.*`), bir Plugin daha dar bir gateway yöntemi kapsamı atamaya çalışsa bile
|
||||
her zaman `operator.admin` olarak kalır. Plugin'e ait yöntemler için
|
||||
plugin'e özgü önekleri tercih edin.
|
||||
Plugin'e özgü ön ekleri tercih edin.
|
||||
|
||||
### CLI kayıt meta verileri
|
||||
Bir Plugin OpenClaw gömülü çalıştırmalarında Pi-yerel
|
||||
olay zamanlamasına ihtiyaç duyuyorsa `api.registerEmbeddedExtensionFactory(...)` kullanın; örneğin,
|
||||
son araç-sonucu mesajı gönderilmeden önce gerçekleşmesi gereken async `tool_result`
|
||||
yeniden yazımları gibi.
|
||||
Bu, bugün paketle birlikte gelen Plugin ayrım noktasıdır: yalnızca paketle birlikte gelen Plugin'ler bir tane kaydedebilir ve
|
||||
`openclaw.plugin.json` içinde `contracts.embeddedExtensionFactories: ["pi"]`
|
||||
bildirmelidir.
|
||||
Bu daha düşük seviye ayrım noktasını gerektirmeyen her şey için normal OpenClaw Plugin hook'larını koruyun.
|
||||
|
||||
`api.registerCli(registrar, opts?)`, iki tür üst düzey meta veriyi kabul eder:
|
||||
### CLI kayıt meta verisi
|
||||
|
||||
`api.registerCli(registrar, opts?)` iki tür üst seviye meta veri kabul eder:
|
||||
|
||||
- `commands`: registrar'ın sahip olduğu açık komut kökleri
|
||||
- `descriptors`: kök CLI yardımı,
|
||||
yönlendirme ve tembel plugin CLI kaydı için ayrıştırma zamanı komut tanımlayıcıları
|
||||
- `descriptors`: kök CLI yardımı, yönlendirme ve tembel Plugin CLI kaydı için
|
||||
ayrıştırma zamanında kullanılan komut tanımlayıcıları
|
||||
|
||||
Bir plugin komutunun normal kök CLI yolunda tembel yüklenmesini istiyorsanız,
|
||||
o registrar tarafından açığa çıkarılan her üst düzey komut kökünü kapsayan `descriptors`
|
||||
sağlayın.
|
||||
Bir Plugin komutunun normal kök CLI yolunda tembel yüklenmiş kalmasını
|
||||
istiyorsanız, o registrar'ın açığa çıkardığı her üst seviye komut kökünü kapsayan
|
||||
`descriptors` sağlayın.
|
||||
|
||||
```typescript
|
||||
api.registerCli(
|
||||
@ -385,7 +399,7 @@ api.registerCli(
|
||||
descriptors: [
|
||||
{
|
||||
name: "matrix",
|
||||
description: "Matrix hesaplarını, doğrulamayı, cihazları ve profil durumunu yönet",
|
||||
description: "Manage Matrix accounts, verification, devices, and profile state",
|
||||
hasSubcommands: true,
|
||||
},
|
||||
],
|
||||
@ -393,134 +407,135 @@ api.registerCli(
|
||||
);
|
||||
```
|
||||
|
||||
Yalnızca tembel kök CLI kaydına ihtiyacınız yoksa `commands` alanını tek başına kullanın.
|
||||
Bu hevesli uyumluluk yolu desteklenmeye devam eder, ancak ayrıştırma zamanı tembel yükleme için
|
||||
tanımlayıcı destekli yer tutucular yüklemez.
|
||||
Yalnızca `commands` kullanın; ama sadece tembel kök CLI kaydına ihtiyacınız
|
||||
yoksa. Bu eager uyumluluk yolu desteklenmeye devam eder, ancak ayrıştırma zamanında
|
||||
tembel yükleme için descriptor destekli yer tutucular kurmaz.
|
||||
|
||||
### CLI arka uç kaydı
|
||||
|
||||
`api.registerCliBackend(...)`, bir plugin'in `codex-cli` gibi yerel bir
|
||||
AI CLI arka ucu için varsayılan yapılandırmaya sahip olmasına izin verir.
|
||||
`api.registerCliBackend(...)`, bir Plugin'in `codex-cli` gibi local
|
||||
bir AI CLI arka ucu için varsayılan yapılandırmaya sahip olmasını sağlar.
|
||||
|
||||
- Arka uç `id` değeri, `codex-cli/gpt-5` gibi model başvurularında sağlayıcı öneki olur.
|
||||
- Arka uç `config`, `agents.defaults.cliBackends.<id>` ile aynı şekli kullanır.
|
||||
- Kullanıcı yapılandırması yine kazanır. OpenClaw, CLI'yi çalıştırmadan önce
|
||||
plugin varsayılanı üzerine `agents.defaults.cliBackends.<id>` değerini birleştirir.
|
||||
- Bir arka uç birleştirmeden sonra uyumluluk yeniden yazımları gerektiriyorsa
|
||||
(örneğin eski bayrak biçimlerini normalleştirmek gibi) `normalizeConfig` kullanın.
|
||||
- Arka uç `id`, `codex-cli/gpt-5` gibi model ref'lerinde sağlayıcı ön eki olur.
|
||||
- Arka uç `config`, `agents.defaults.cliBackends.<id>` ile aynı biçimi kullanır.
|
||||
- Kullanıcı yapılandırması yine önceliklidir. OpenClaw, CLI'yi çalıştırmadan önce
|
||||
`agents.defaults.cliBackends.<id>` değerini Plugin varsayılanı üzerine birleştirir.
|
||||
- Bir arka uç birleştirme sonrası uyumluluk yeniden yazımlarına ihtiyaç duyuyorsa
|
||||
(örneğin eski bayrak biçimlerini normalleştirmek), `normalizeConfig` kullanın.
|
||||
|
||||
### Özel yuvalar
|
||||
### Ayrıcalıklı yuvalar
|
||||
|
||||
| Yöntem | Kaydettiği şey |
|
||||
| Yöntem | Ne kaydeder |
|
||||
| ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `api.registerContextEngine(id, factory)` | Bağlam motoru (aynı anda bir etkin). `assemble()` geri çağrısı `availableTools` ve `citationsMode` alır; böylece motor istem eklerini buna göre uyarlayabilir. |
|
||||
| `api.registerMemoryCapability(capability)` | Birleşik memory yeteneği |
|
||||
| `api.registerMemoryPromptSection(builder)` | Memory istem bölümü oluşturucusu |
|
||||
| `api.registerMemoryFlushPlan(resolver)` | Memory boşaltma planı çözümleyicisi |
|
||||
| `api.registerMemoryRuntime(runtime)` | Memory çalışma zamanı bağdaştırıcısı |
|
||||
| `api.registerContextEngine(id, factory)` | Bağlam motoru (aynı anda bir tane etkin). `assemble()` callback'i, motorun prompt eklemelerini uyarlayabilmesi için `availableTools` ve `citationsMode` alır. |
|
||||
| `api.registerMemoryCapability(capability)` | Birleşik Memory yeteneği |
|
||||
| `api.registerMemoryPromptSection(builder)` | Memory prompt bölümü oluşturucusu |
|
||||
| `api.registerMemoryFlushPlan(resolver)` | Memory flush plan çözümleyicisi |
|
||||
| `api.registerMemoryRuntime(runtime)` | Memory çalışma zamanı bağdaştırıcısı |
|
||||
|
||||
### Memory embedding bağdaştırıcıları
|
||||
|
||||
| Yöntem | Kaydettiği şey |
|
||||
| ---------------------------------------------- | -------------------------------------------- |
|
||||
| `api.registerMemoryEmbeddingProvider(adapter)` | Etkin plugin için Memory embedding bağdaştırıcısı |
|
||||
| Yöntem | Ne kaydeder |
|
||||
| ---------------------------------------------- | ------------------------------------------------ |
|
||||
| `api.registerMemoryEmbeddingProvider(adapter)` | Etkin Plugin için Memory embedding bağdaştırıcısı |
|
||||
|
||||
- `registerMemoryCapability`, tercih edilen özel memory-plugin API'sidir.
|
||||
- `registerMemoryCapability`, eşlik eden plugin'lerin dışa aktarılan memory çıktılarını
|
||||
belirli bir memory plugin'in özel düzenine uzanmak yerine
|
||||
- `registerMemoryCapability`, tercih edilen ayrıcalıklı memory-Plugin API'sidir.
|
||||
- `registerMemoryCapability`, eşlik eden Plugin'lerin dışa aktarılan Memory artefaktlarını
|
||||
belirli bir Memory Plugin'inin özel düzenine erişmek yerine
|
||||
`openclaw/plugin-sdk/memory-host-core` üzerinden tüketebilmesi için
|
||||
`publicArtifacts.listArtifacts(...)` de gösterebilir.
|
||||
`publicArtifacts.listArtifacts(...)` da açığa çıkarabilir.
|
||||
- `registerMemoryPromptSection`, `registerMemoryFlushPlan` ve
|
||||
`registerMemoryRuntime`, eski uyumlu özel memory-plugin API'leridir.
|
||||
- `registerMemoryEmbeddingProvider`, etkin memory plugin'in bir
|
||||
veya daha fazla embedding bağdaştırıcı kimliği (örneğin `openai`, `gemini` veya özel
|
||||
bir plugin tanımlı kimlik) kaydetmesine izin verir.
|
||||
`registerMemoryRuntime`, eski uyumluluğu koruyan ayrıcalıklı memory-Plugin API'leridir.
|
||||
- `registerMemoryEmbeddingProvider`, etkin Memory Plugin'inin bir
|
||||
veya daha fazla embedding bağdaştırıcı kimliği (örneğin `openai`, `gemini`
|
||||
veya Plugin tarafından tanımlanan özel bir kimlik) kaydetmesini sağlar.
|
||||
- `agents.defaults.memorySearch.provider` ve
|
||||
`agents.defaults.memorySearch.fallback` gibi kullanıcı yapılandırmaları, kayıtlı bu
|
||||
bağdaştırıcı kimliklerine göre çözülür.
|
||||
`agents.defaults.memorySearch.fallback` gibi kullanıcı yapılandırmaları,
|
||||
kaydedilmiş bu bağdaştırıcı kimliklerine göre çözülür.
|
||||
|
||||
### Olaylar ve yaşam döngüsü
|
||||
|
||||
| Yöntem | Yaptığı şey |
|
||||
| -------------------------------------------- | --------------------------- |
|
||||
| `api.on(hookName, handler, opts?)` | Türlenmiş yaşam döngüsü hook'u |
|
||||
| `api.onConversationBindingResolved(handler)` | Konuşma bağlama geri çağrısı |
|
||||
| Yöntem | Ne yapar |
|
||||
| ------------------------------------------- | ---------------------------- |
|
||||
| `api.on(hookName, handler, opts?)` | Türlendirilmiş yaşam döngüsü hook'u |
|
||||
| `api.onConversationBindingResolved(handler)` | Konuşma bağlama callback'i |
|
||||
|
||||
### Hook karar anlambilimi
|
||||
### Hook karar semantiği
|
||||
|
||||
- `before_tool_call`: `{ block: true }` döndürmek terminaldir. Herhangi bir işleyici bunu ayarladığında daha düşük öncelikli işleyiciler atlanır.
|
||||
- `before_tool_call`: `{ block: false }` döndürmek karar verilmemiş sayılır (`block` alanını hiç vermemekle aynıdır), geçersiz kılma değildir.
|
||||
- `before_install`: `{ block: true }` döndürmek terminaldir. Herhangi bir işleyici bunu ayarladığında daha düşük öncelikli işleyiciler atlanır.
|
||||
- `before_install`: `{ block: false }` döndürmek karar verilmemiş sayılır (`block` alanını hiç vermemekle aynıdır), geçersiz kılma değildir.
|
||||
- `reply_dispatch`: `{ handled: true, ... }` döndürmek terminaldir. Herhangi bir işleyici gönderimi üstlendiğinde daha düşük öncelikli işleyiciler ve varsayılan model gönderim yolu atlanır.
|
||||
- `message_sending`: `{ cancel: true }` döndürmek terminaldir. Herhangi bir işleyici bunu ayarladığında daha düşük öncelikli işleyiciler atlanır.
|
||||
- `message_sending`: `{ cancel: false }` döndürmek karar verilmemiş sayılır (`cancel` alanını hiç vermemekle aynıdır), geçersiz kılma değildir.
|
||||
- `before_tool_call`: `{ block: true }` döndürmek terminaldir. Herhangi bir işleyici bunu ayarladığında, daha düşük öncelikli işleyiciler atlanır.
|
||||
- `before_tool_call`: `{ block: false }` döndürmek, geçersiz kılma olarak değil, karar verilmemiş olarak değerlendirilir (`block` alanını hiç vermemekle aynıdır).
|
||||
- `before_install`: `{ block: true }` döndürmek terminaldir. Herhangi bir işleyici bunu ayarladığında, daha düşük öncelikli işleyiciler atlanır.
|
||||
- `before_install`: `{ block: false }` döndürmek, geçersiz kılma olarak değil, karar verilmemiş olarak değerlendirilir (`block` alanını hiç vermemekle aynıdır).
|
||||
- `reply_dispatch`: `{ handled: true, ... }` döndürmek terminaldir. Herhangi bir işleyici sevki üstlendiğinde, daha düşük öncelikli işleyiciler ve varsayılan model sevk yolu atlanır.
|
||||
- `message_sending`: `{ cancel: true }` döndürmek terminaldir. Herhangi bir işleyici bunu ayarladığında, daha düşük öncelikli işleyiciler atlanır.
|
||||
- `message_sending`: `{ cancel: false }` döndürmek, geçersiz kılma olarak değil, karar verilmemiş olarak değerlendirilir (`cancel` alanını hiç vermemekle aynıdır).
|
||||
|
||||
### API nesnesi alanları
|
||||
|
||||
| Alan | Tür | Açıklama |
|
||||
| ------------------------ | ------------------------- | -------------------------------------------------------------------------------------------- |
|
||||
| `api.id` | `string` | Plugin kimliği |
|
||||
| `api.name` | `string` | Görünen ad |
|
||||
| `api.version` | `string?` | Plugin sürümü (isteğe bağlı) |
|
||||
| `api.description` | `string?` | Plugin açıklaması (isteğe bağlı) |
|
||||
| `api.source` | `string` | Plugin kaynak yolu |
|
||||
| `api.rootDir` | `string?` | Plugin kök dizini (isteğe bağlı) |
|
||||
| `api.config` | `OpenClawConfig` | Geçerli yapılandırma anlık görüntüsü (varsa etkin bellek içi çalışma zamanı anlık görüntüsü) |
|
||||
| `api.pluginConfig` | `Record<string, unknown>` | `plugins.entries.<id>.config` içindeki plugin'e özgü yapılandırma |
|
||||
| `api.runtime` | `PluginRuntime` | [Runtime yardımcıları](/tr/plugins/sdk-runtime) |
|
||||
| `api.logger` | `PluginLogger` | Kapsamlı günlükleyici (`debug`, `info`, `warn`, `error`) |
|
||||
| `api.registrationMode` | `PluginRegistrationMode` | Geçerli yükleme modu; `"setup-runtime"` tam giriş öncesi hafif başlangıç/kurulum penceresidir |
|
||||
| `api.resolvePath(input)` | `(string) => string` | Yolu plugin köküne göre çözümle |
|
||||
| Alan | Tür | Açıklama |
|
||||
| ----------------------- | ------------------------- | ------------------------------------------------------------------------------------------- |
|
||||
| `api.id` | `string` | Plugin kimliği |
|
||||
| `api.name` | `string` | Görünen ad |
|
||||
| `api.version` | `string?` | Plugin sürümü (isteğe bağlı) |
|
||||
| `api.description` | `string?` | Plugin açıklaması (isteğe bağlı) |
|
||||
| `api.source` | `string` | Plugin kaynak yolu |
|
||||
| `api.rootDir` | `string?` | Plugin kök dizini (isteğe bağlı) |
|
||||
| `api.config` | `OpenClawConfig` | Geçerli yapılandırma anlık görüntüsü (varsa etkin bellek içi çalışma zamanı anlık görüntüsü) |
|
||||
| `api.pluginConfig` | `Record<string, unknown>` | `plugins.entries.<id>.config` içinden Plugin'e özgü yapılandırma |
|
||||
| `api.runtime` | `PluginRuntime` | [Çalışma zamanı yardımcıları](/tr/plugins/sdk-runtime) |
|
||||
| `api.logger` | `PluginLogger` | Kapsamlı günlükleyici (`debug`, `info`, `warn`, `error`) |
|
||||
| `api.registrationMode` | `PluginRegistrationMode` | Geçerli yükleme modu; `"setup-runtime"` hafif tam giriş öncesi başlatma/kurulum penceresidir |
|
||||
| `api.resolvePath(input)` | `(string) => string` | Plugin köküne göre göreli yol çözümleme |
|
||||
|
||||
## Dahili modül kuralı
|
||||
## İç modül kuralı
|
||||
|
||||
Plugin'iniz içinde, dahili içe aktarmalar için yerel barrel dosyaları kullanın:
|
||||
Plugin'iniz içinde, içe aktarmalar için yerel barrel dosyaları kullanın:
|
||||
|
||||
```
|
||||
my-plugin/
|
||||
api.ts # Harici kullanıcılar için genel dışa aktarımlar
|
||||
runtime-api.ts # Yalnızca dahili çalışma zamanı dışa aktarımları
|
||||
api.ts # Harici tüketiciler için herkese açık dışa aktarımlar
|
||||
runtime-api.ts # Yalnızca iç çalışma zamanı dışa aktarımları
|
||||
index.ts # Plugin giriş noktası
|
||||
setup-entry.ts # Hafif yalnızca kurulum girişi (isteğe bağlı)
|
||||
setup-entry.ts # Yalnızca kurulum için hafif giriş (isteğe bağlı)
|
||||
```
|
||||
|
||||
<Warning>
|
||||
Üretim kodunda kendi plugin'inizi asla `openclaw/plugin-sdk/<your-plugin>`
|
||||
üzerinden içe aktarmayın. Dahili içe aktarmaları `./api.ts` veya
|
||||
Üretim kodunda kendi Plugin'inizi asla `openclaw/plugin-sdk/<your-plugin>`
|
||||
üzerinden içe aktarmayın. İç içe aktarmaları `./api.ts` veya
|
||||
`./runtime-api.ts` üzerinden yönlendirin. SDK yolu yalnızca harici sözleşmedir.
|
||||
</Warning>
|
||||
|
||||
Facade ile yüklenen paketlenmiş plugin genel yüzeyleri (`api.ts`, `runtime-api.ts`,
|
||||
`index.ts`, `setup-entry.ts` ve benzer genel giriş dosyaları) artık OpenClaw zaten
|
||||
çalışıyorsa etkin çalışma zamanı yapılandırma anlık görüntüsünü tercih eder. Henüz çalışma zamanı
|
||||
anlık görüntüsü yoksa disk üzerindeki çözülmüş yapılandırma dosyasına geri dönerler.
|
||||
Facade ile yüklenen paketle birlikte gelen Plugin herkese açık yüzeyleri (`api.ts`, `runtime-api.ts`,
|
||||
`index.ts`, `setup-entry.ts` ve benzeri herkese açık giriş dosyaları), OpenClaw
|
||||
zaten çalışıyorsa artık etkin çalışma zamanı yapılandırma anlık görüntüsünü tercih eder.
|
||||
Henüz bir çalışma zamanı anlık görüntüsü yoksa, disk üzerindeki çözümlenmiş yapılandırma dosyasına geri dönerler.
|
||||
|
||||
Sağlayıcı plugin'leri, bir yardımcı kasıtlı olarak sağlayıcıya özgüyse ve henüz genel bir SDK
|
||||
alt yoluna ait değilse dar bir plugin-yerel sözleşme barrel dosyası da gösterebilir. Geçerli paketlenmiş örnek:
|
||||
Anthropic sağlayıcısı Claude akış yardımcılarını, Anthropic beta-header ve `service_tier`
|
||||
mantığını genel bir `plugin-sdk/*` sözleşmesine taşımak yerine kendi genel `api.ts` / `contract-api.ts`
|
||||
arayüzünde tutar.
|
||||
Sağlayıcı Plugin'leri ayrıca, bir yardımcı kasıtlı olarak sağlayıcıya özgüyse ve
|
||||
henüz genel bir SDK alt yoluna ait değilse, dar bir Plugin'e yerel sözleşme barrel dosyası da açığa çıkarabilir.
|
||||
Mevcut paketle birlikte gelen örnek: Anthropic sağlayıcısı Claude
|
||||
akış yardımcılarını, Anthropic beta-header ve `service_tier` mantığını genel bir
|
||||
`plugin-sdk/*` sözleşmesine taşımak yerine kendi herkese açık `api.ts` / `contract-api.ts`
|
||||
ayrım noktasında tutar.
|
||||
|
||||
Diğer geçerli paketlenmiş örnekler:
|
||||
Diğer mevcut paketle birlikte gelen örnekler:
|
||||
|
||||
- `@openclaw/openai-provider`: `api.ts`, sağlayıcı oluşturucularını,
|
||||
varsayılan model yardımcılarını ve gerçek zamanlı sağlayıcı oluşturucularını dışa aktarır
|
||||
- `@openclaw/openrouter-provider`: `api.ts`, sağlayıcı oluşturucusunu ve
|
||||
- `@openclaw/openai-provider`: `api.ts` sağlayıcı oluşturucuları,
|
||||
varsayılan model yardımcıları ve gerçek zamanlı sağlayıcı oluşturucuları dışa aktarır
|
||||
- `@openclaw/openrouter-provider`: `api.ts` sağlayıcı oluşturucuyu ve
|
||||
onboarding/yapılandırma yardımcılarını dışa aktarır
|
||||
|
||||
<Warning>
|
||||
Uzantı üretim kodu ayrıca `openclaw/plugin-sdk/<other-plugin>`
|
||||
içe aktarımlarından kaçınmalıdır. Bir yardımcı gerçekten paylaşılıyorsa iki plugin'i birbirine bağlamak yerine
|
||||
bunu `openclaw/plugin-sdk/speech`, `.../provider-model-shared` veya başka
|
||||
bir yetenek odaklı yüzey gibi nötr bir SDK alt yoluna taşıyın.
|
||||
içe aktarmalarından da kaçınmalıdır. Bir yardımcı gerçekten paylaşılıyorsa, iki Plugin'i birbirine bağlamak yerine
|
||||
onu `openclaw/plugin-sdk/speech`, `.../provider-model-shared` veya başka
|
||||
bir yetenek odaklı yüzey gibi tarafsız bir SDK alt yoluna taşıyın.
|
||||
</Warning>
|
||||
|
||||
## İlgili
|
||||
|
||||
- [Entry Points](/tr/plugins/sdk-entrypoints) — `definePluginEntry` ve `defineChannelPluginEntry` seçenekleri
|
||||
- [Runtime Helpers](/tr/plugins/sdk-runtime) — tam `api.runtime` ad alanı başvurusu
|
||||
- [Setup and Config](/tr/plugins/sdk-setup) — paketleme, manifest'ler, yapılandırma şemaları
|
||||
- [Testing](/tr/plugins/sdk-testing) — test yardımcıları ve lint kuralları
|
||||
- [SDK Migration](/tr/plugins/sdk-migration) — kullanımdan kaldırılmış yüzeylerden geçiş
|
||||
- [Plugin Internals](/tr/plugins/architecture) — derin mimari ve yetenek modeli
|
||||
- [Giriş Noktaları](/tr/plugins/sdk-entrypoints) — `definePluginEntry` ve `defineChannelPluginEntry` seçenekleri
|
||||
- [Çalışma Zamanı Yardımcıları](/tr/plugins/sdk-runtime) — tam `api.runtime` ad alanı referansı
|
||||
- [Kurulum ve Yapılandırma](/tr/plugins/sdk-setup) — paketleme, manifest dosyaları, yapılandırma şemaları
|
||||
- [Test](/tr/plugins/sdk-testing) — test yardımcı araçları ve lint kuralları
|
||||
- [SDK Geçişi](/tr/plugins/sdk-migration) — kullanımdan kaldırılmış yüzeylerden geçiş
|
||||
- [Plugin İç Yapıları](/tr/plugins/architecture) — derin mimari ve yetenek modeli
|
||||
|
||||
@ -1,37 +1,37 @@
|
||||
---
|
||||
read_when:
|
||||
- Ollama aracılığıyla OpenClaw'ı bulut veya yerel modellerle çalıştırmak istiyorsunuz
|
||||
- Ollama kurulumu ve yapılandırma rehberliğine ihtiyacınız var
|
||||
- Görsel anlama için Ollama vision modelleri istiyorsunuz
|
||||
- OpenClaw'ı Ollama üzerinden bulut veya yerel modellerle çalıştırmak istiyorsunuz
|
||||
- Ollama kurulumu ve yapılandırma rehberine ihtiyacınız var
|
||||
- Görüntü anlama için Ollama vision modellerini istiyorsunuz
|
||||
summary: OpenClaw'ı Ollama ile çalıştırın (bulut ve yerel modeller)
|
||||
title: Ollama
|
||||
x-i18n:
|
||||
generated_at: "2026-04-22T04:27:24Z"
|
||||
generated_at: "2026-04-22T08:55:44Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 32623b6523f22930a5987fb22d2074f1e9bb274cc01ae1ad1837825cc04ec179
|
||||
source_hash: 704beed3bf988d6c2ad50b2a1533f6dcef655e44b34f23104827d2acb71b8655
|
||||
source_path: providers/ollama.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Ollama
|
||||
|
||||
OpenClaw, barındırılan bulut modelleri ve yerel/kendi barındırdığınız Ollama sunucuları için Ollama'nın yerel API'si (`/api/chat`) ile bütünleşir. Ollama'yı üç modda kullanabilirsiniz: erişilebilir bir Ollama host üzerinden `Cloud + Local`, `https://ollama.com` karşısında `Cloud only` veya erişilebilir bir Ollama host karşısında `Local only`.
|
||||
OpenClaw, barındırılan bulut modelleri ve yerel/kendi barındırdığınız Ollama sunucuları için Ollama'nın yerel API'siyle (`/api/chat`) bütünleşir. Ollama'yı üç modda kullanabilirsiniz: erişilebilir bir Ollama ana makinesi üzerinden `Cloud + Local`, `https://ollama.com` üzerinde `Cloud only` veya erişilebilir bir Ollama ana makinesi üzerinde `Local only`.
|
||||
|
||||
<Warning>
|
||||
**Uzak Ollama kullanıcıları**: OpenClaw ile `/v1` OpenAI uyumlu URL'yi (`http://host:11434/v1`) kullanmayın. Bu, araç çağırmayı bozar ve modeller ham araç JSON'unu düz metin olarak çıkarabilir. Bunun yerine yerel Ollama API URL'sini kullanın: `baseUrl: "http://host:11434"` (`/v1` yok).
|
||||
**Uzak Ollama kullanıcıları**: OpenClaw ile `/v1` OpenAI uyumlu URL'yi (`http://host:11434/v1`) kullanmayın. Bu, araç çağırmayı bozar ve modeller ham araç JSON'unu düz metin olarak çıktılayabilir. Bunun yerine yerel Ollama API URL'sini kullanın: `baseUrl: "http://host:11434"` (`/v1` olmadan).
|
||||
</Warning>
|
||||
|
||||
## Başlarken
|
||||
## Başlangıç
|
||||
|
||||
Tercih ettiğiniz kurulum yöntemini ve modu seçin.
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Onboarding (önerilen)">
|
||||
**Şunun için en iyisi:** çalışan bir Ollama bulut veya yerel kuruluma en hızlı yol.
|
||||
<Tab title="İlk kurulum (önerilen)">
|
||||
**Şunun için en iyisi:** çalışan bir Ollama bulut veya yerel kurulumuna giden en hızlı yol.
|
||||
|
||||
<Steps>
|
||||
<Step title="Onboarding'i çalıştırın">
|
||||
<Step title="İlk kurulumu çalıştırın">
|
||||
```bash
|
||||
openclaw onboard
|
||||
```
|
||||
@ -39,12 +39,12 @@ Tercih ettiğiniz kurulum yöntemini ve modu seçin.
|
||||
Sağlayıcı listesinden **Ollama** seçin.
|
||||
</Step>
|
||||
<Step title="Modunuzu seçin">
|
||||
- **Cloud + Local** — yerel Ollama host'u ve bu host üzerinden yönlendirilen bulut modelleri
|
||||
- **Cloud + Local** — yerel Ollama ana makinesi artı bu ana makine üzerinden yönlendirilen bulut modelleri
|
||||
- **Cloud only** — `https://ollama.com` üzerinden barındırılan Ollama modelleri
|
||||
- **Local only** — yalnızca yerel modeller
|
||||
</Step>
|
||||
<Step title="Bir model seçin">
|
||||
`Cloud only`, `OLLAMA_API_KEY` ister ve barındırılan bulut varsayılanlarını önerir. `Cloud + Local` ve `Local only`, bir Ollama base URL'si ister, kullanılabilir modelleri keşfeder ve seçilen yerel model henüz mevcut değilse otomatik olarak çeker. `Cloud + Local` ayrıca o Ollama host'unun bulut erişimi için oturum açıp açmadığını da denetler.
|
||||
`Cloud only`, `OLLAMA_API_KEY` ister ve barındırılan bulut varsayılanlarını önerir. `Cloud + Local` ve `Local only`, bir Ollama temel URL'si ister, kullanılabilir modelleri keşfeder ve seçilen yerel model henüz mevcut değilse onu otomatik olarak çeker. `Cloud + Local` ayrıca o Ollama ana makinesinin bulut erişimi için oturum açmış olup olmadığını da denetler.
|
||||
</Step>
|
||||
<Step title="Modelin kullanılabilir olduğunu doğrulayın">
|
||||
```bash
|
||||
@ -61,7 +61,7 @@ Tercih ettiğiniz kurulum yöntemini ve modu seçin.
|
||||
--accept-risk
|
||||
```
|
||||
|
||||
İsteğe bağlı olarak özel bir base URL veya model belirleyin:
|
||||
İsteğe bağlı olarak özel bir temel URL veya model belirtebilirsiniz:
|
||||
|
||||
```bash
|
||||
openclaw onboard --non-interactive \
|
||||
@ -77,8 +77,8 @@ Tercih ettiğiniz kurulum yöntemini ve modu seçin.
|
||||
**Şunun için en iyisi:** bulut veya yerel kurulum üzerinde tam denetim.
|
||||
|
||||
<Steps>
|
||||
<Step title="Bulut veya yereli seçin">
|
||||
- **Cloud + Local**: Ollama'yı kurun, `ollama signin` ile oturum açın ve bulut isteklerini bu host üzerinden yönlendirin
|
||||
<Step title="Bulut veya yerel seçin">
|
||||
- **Cloud + Local**: Ollama'yı kurun, `ollama signin` ile oturum açın ve bulut isteklerini bu ana makine üzerinden yönlendirin
|
||||
- **Cloud only**: `https://ollama.com` adresini bir `OLLAMA_API_KEY` ile kullanın
|
||||
- **Local only**: Ollama'yı [ollama.com/download](https://ollama.com/download) adresinden kurun
|
||||
</Step>
|
||||
@ -92,16 +92,16 @@ Tercih ettiğiniz kurulum yöntemini ve modu seçin.
|
||||
```
|
||||
</Step>
|
||||
<Step title="OpenClaw için Ollama'yı etkinleştirin">
|
||||
`Cloud only` için gerçek `OLLAMA_API_KEY` anahtarınızı kullanın. Host destekli kurulumlarda herhangi bir yer tutucu değer çalışır:
|
||||
`Cloud only` için gerçek `OLLAMA_API_KEY` değerinizi kullanın. Ana makine destekli kurulumlarda herhangi bir yer tutucu değer çalışır:
|
||||
|
||||
```bash
|
||||
# Bulut
|
||||
# Cloud
|
||||
export OLLAMA_API_KEY="your-ollama-api-key"
|
||||
|
||||
# Yalnızca yerel
|
||||
# Local-only
|
||||
export OLLAMA_API_KEY="ollama-local"
|
||||
|
||||
# Veya config dosyanızda yapılandırın
|
||||
# Veya yapılandırma dosyanızda yapılandırın
|
||||
openclaw config set models.providers.ollama.apiKey "OLLAMA_API_KEY"
|
||||
```
|
||||
</Step>
|
||||
@ -111,7 +111,7 @@ Tercih ettiğiniz kurulum yöntemini ve modu seçin.
|
||||
openclaw models set ollama/gemma4
|
||||
```
|
||||
|
||||
Veya varsayılanı config içinde ayarlayın:
|
||||
Veya varsayılanı yapılandırmada ayarlayın:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -132,25 +132,25 @@ Tercih ettiğiniz kurulum yöntemini ve modu seçin.
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Cloud + Local">
|
||||
`Cloud + Local`, hem yerel hem de bulut modeller için denetim noktası olarak erişilebilir bir Ollama host'u kullanır. Bu, Ollama'nın tercih ettiği hibrit akıştır.
|
||||
`Cloud + Local`, hem yerel hem de bulut modelleri için denetim noktası olarak erişilebilir bir Ollama ana makinesi kullanır. Bu, Ollama'nın tercih ettiği hibrit akıştır.
|
||||
|
||||
Kurulum sırasında **Cloud + Local** kullanın. OpenClaw, Ollama base URL'sini ister, o hosttan yerel modelleri keşfeder ve host'un `ollama signin` ile bulut erişimi için oturum açıp açmadığını denetler. Host oturum açmışsa OpenClaw, `kimi-k2.5:cloud`, `minimax-m2.7:cloud` ve `glm-5.1:cloud` gibi barındırılan bulut varsayılanlarını da önerir.
|
||||
Kurulum sırasında **Cloud + Local** kullanın. OpenClaw Ollama temel URL'sini ister, o ana makinedeki yerel modelleri keşfeder ve ana makinenin `ollama signin` ile bulut erişimi için oturum açıp açmadığını denetler. Ana makine oturum açmışsa OpenClaw ayrıca `kimi-k2.5:cloud`, `minimax-m2.7:cloud` ve `glm-5.1:cloud` gibi barındırılan bulut varsayılanlarını da önerir.
|
||||
|
||||
Host henüz oturum açmamışsa OpenClaw, siz `ollama signin` çalıştırana kadar kurulumu yalnızca yerel olarak tutar.
|
||||
Ana makine henüz oturum açmamışsa, `ollama signin` çalıştırana kadar OpenClaw kurulumu yalnızca yerel modda tutar.
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Cloud only">
|
||||
`Cloud only`, Ollama'nın `https://ollama.com` üzerindeki barındırılan API'sine karşı çalışır.
|
||||
`Cloud only`, Ollama'nın `https://ollama.com` adresindeki barındırılan API'sine karşı çalışır.
|
||||
|
||||
Kurulum sırasında **Cloud only** kullanın. OpenClaw, `OLLAMA_API_KEY` ister, `baseUrl: "https://ollama.com"` ayarlar ve barındırılan bulut model listesini tohumlar. Bu yol bir yerel Ollama sunucusu veya `ollama signin` gerektirmez.
|
||||
Kurulum sırasında **Cloud only** kullanın. OpenClaw `OLLAMA_API_KEY` ister, `baseUrl: "https://ollama.com"` ayarlar ve barındırılan bulut model listesini tohumlar. Bu yol bir yerel Ollama sunucusu veya `ollama signin` gerektirmez.
|
||||
|
||||
`openclaw onboard` sırasında gösterilen bulut model listesi, `https://ollama.com/api/tags` adresinden canlı olarak doldurulur ve 500 giriş ile sınırlandırılır; böylece seçici statik bir tohum yerine mevcut barındırılan kataloğu yansıtır. Kurulum sırasında `ollama.com` erişilemezse veya model döndürmezse OpenClaw, onboarding'in yine tamamlanabilmesi için önceki sabit kodlanmış önerilere geri döner.
|
||||
`openclaw onboard` sırasında gösterilen bulut model listesi, `https://ollama.com/api/tags` adresinden canlı olarak doldurulur ve 500 girişle sınırlandırılır; böylece seçici, statik bir tohum yerine mevcut barındırılan kataloğu yansıtır. Kurulum sırasında `ollama.com` erişilemezse veya model döndürmezse, OpenClaw ilk kurulumun yine tamamlanabilmesi için önceki sabit kodlanmış önerilere geri döner.
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Local only">
|
||||
Yalnızca yerel modda OpenClaw, yapılandırılmış Ollama örneğinden modelleri keşfeder. Bu yol yerel veya kendi barındırdığınız Ollama sunucuları içindir.
|
||||
Yalnızca yerel modda OpenClaw, yapılandırılan Ollama örneğinden modelleri keşfeder. Bu yol yerel veya kendi barındırdığınız Ollama sunucuları içindir.
|
||||
|
||||
OpenClaw şu anda yerel varsayılan olarak `gemma4` önerir.
|
||||
|
||||
@ -159,18 +159,18 @@ Tercih ettiğiniz kurulum yöntemini ve modu seçin.
|
||||
|
||||
## Model keşfi (örtük sağlayıcı)
|
||||
|
||||
`OLLAMA_API_KEY` (veya bir auth profili) ayarladığınızda ve **`models.providers.ollama` tanımlamadığınızda**, OpenClaw modelleri `http://127.0.0.1:11434` adresindeki yerel Ollama örneğinden keşfeder.
|
||||
`OLLAMA_API_KEY` (veya bir kimlik doğrulama profili) ayarladığınızda ve `models.providers.ollama` tanımlamadığınızda, OpenClaw `http://127.0.0.1:11434` adresindeki yerel Ollama örneğinden modelleri keşfeder.
|
||||
|
||||
| Davranış | Ayrıntı |
|
||||
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Katalog sorgusu | `/api/tags` sorgulanır |
|
||||
| Yetenek algılama | `contextWindow` değerini okumak ve yetenekleri (vision dahil) algılamak için best-effort `/api/show` aramaları kullanır |
|
||||
| Vision modelleri | `/api/show` tarafından bildirilen `vision` yeteneğine sahip modeller, görsel destekli (`input: ["text", "image"]`) olarak işaretlenir; böylece OpenClaw görselleri isteme otomatik enjekte eder |
|
||||
| Reasoning algılama | `reasoning`, model adı sezgisiyle işaretlenir (`r1`, `reasoning`, `think`) |
|
||||
| Token sınırları | `maxTokens`, OpenClaw tarafından kullanılan varsayılan Ollama maksimum token sınırına ayarlanır |
|
||||
| Maliyetler | Tüm maliyetler `0` olarak ayarlanır |
|
||||
| Davranış | Ayrıntı |
|
||||
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Katalog sorgusu | `/api/tags` sorgular |
|
||||
| Yetenek algılama | `contextWindow` okumak ve yetenekleri algılamak için en iyi çabayla `/api/show` aramaları kullanır (vision dahil) |
|
||||
| Vision modelleri | `/api/show` tarafından bildirilen `vision` yeteneğine sahip modeller görüntü destekli (`input: ["text", "image"]`) olarak işaretlenir, böylece OpenClaw görselleri isteme otomatik olarak ekler |
|
||||
| Akıl yürütme algılama | Bir model adı sezgiseliğiyle (`r1`, `reasoning`, `think`) `reasoning` olarak işaretler |
|
||||
| Belirteç sınırları | `maxTokens` değerini OpenClaw'ın kullandığı varsayılan Ollama azami belirteç sınırına ayarlar |
|
||||
| Maliyetler | Tüm maliyetleri `0` olarak ayarlar |
|
||||
|
||||
Bu, kataloğu yerel Ollama örneğiyle uyumlu tutarken manuel model girişlerinden kaçınır.
|
||||
Bu, kataloğu yerel Ollama örneğiyle uyumlu tutarken elle model girdileri gereksinimini ortadan kaldırır.
|
||||
|
||||
```bash
|
||||
# Hangi modellerin kullanılabilir olduğunu görün
|
||||
@ -184,15 +184,15 @@ Yeni bir model eklemek için onu Ollama ile çekmeniz yeterlidir:
|
||||
ollama pull mistral
|
||||
```
|
||||
|
||||
Yeni model otomatik olarak keşfedilir ve kullanıma açılır.
|
||||
Yeni model otomatik olarak keşfedilir ve kullanıma sunulur.
|
||||
|
||||
<Note>
|
||||
`models.providers.ollama` değerini açıkça ayarlarsanız otomatik keşif atlanır ve modelleri elle tanımlamanız gerekir. Aşağıdaki açık yapılandırma bölümüne bakın.
|
||||
</Note>
|
||||
|
||||
## Vision ve görsel açıklama
|
||||
## Vision ve görsel açıklaması
|
||||
|
||||
Paketle gelen Ollama plugin'i, Ollama'yı görsel destekli bir medya anlama sağlayıcısı olarak kaydeder. Bu, OpenClaw'ın açık görsel açıklama isteklerini ve yapılandırılmış görsel model varsayılanlarını yerel veya barındırılan Ollama vision modelleri üzerinden yönlendirmesini sağlar.
|
||||
Paketlenmiş Ollama Plugin'i, Ollama'yı görüntü destekli bir medya anlama sağlayıcısı olarak kaydeder. Bu, OpenClaw'ın açık görsel açıklama isteklerini ve yapılandırılmış görüntü modeli varsayılanlarını yerel veya barındırılan Ollama vision modelleri üzerinden yönlendirmesine olanak tanır.
|
||||
|
||||
Yerel vision için görselleri destekleyen bir model çekin:
|
||||
|
||||
@ -201,7 +201,7 @@ ollama pull qwen2.5vl:7b
|
||||
export OLLAMA_API_KEY="ollama-local"
|
||||
```
|
||||
|
||||
Sonra infer CLI ile doğrulayın:
|
||||
Ardından infer CLI ile doğrulayın:
|
||||
|
||||
```bash
|
||||
openclaw infer image describe \
|
||||
@ -210,9 +210,9 @@ openclaw infer image describe \
|
||||
--json
|
||||
```
|
||||
|
||||
`--model` tam bir `<provider/model>` ref'i olmalıdır. Ayarlandığında `openclaw infer image describe`, model yerel vision desteklediği için açıklamayı atlamak yerine o modeli doğrudan çalıştırır.
|
||||
`--model` tam bir `<provider/model>` başvurusu olmalıdır. Ayarlandığında `openclaw infer image describe`, model yerel olarak vision desteklediği için açıklamayı atlamak yerine o modeli doğrudan çalıştırır.
|
||||
|
||||
Gelen medya için Ollama'yı varsayılan görsel anlama modeli yapmak üzere `agents.defaults.imageModel` yapılandırın:
|
||||
Ollama'yı gelen medya için varsayılan görüntü anlama modeli yapmak üzere `agents.defaults.imageModel` ayarlayın:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -226,7 +226,7 @@ Gelen medya için Ollama'yı varsayılan görsel anlama modeli yapmak üzere `ag
|
||||
}
|
||||
```
|
||||
|
||||
`models.providers.ollama.models` değerini elle tanımlarsanız vision modellerini görsel girdi desteğiyle işaretleyin:
|
||||
`models.providers.ollama.models` değerini elle tanımlarsanız vision modellerini görüntü girişi desteğiyle işaretleyin:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -238,7 +238,7 @@ Gelen medya için Ollama'yı varsayılan görsel anlama modeli yapmak üzere `ag
|
||||
}
|
||||
```
|
||||
|
||||
OpenClaw, görsel destekli olarak işaretlenmemiş modeller için görsel açıklama isteklerini reddeder. Örtük keşifte OpenClaw bunu, `/api/show` bir vision yeteneği bildirdiğinde Ollama'dan okur.
|
||||
OpenClaw, görüntü destekli olarak işaretlenmemiş modeller için görsel açıklama isteklerini reddeder. Örtük keşifte OpenClaw bunu Ollama'dan, `/api/show` bir vision yeteneği bildirdiğinde okur.
|
||||
|
||||
## Yapılandırma
|
||||
|
||||
@ -251,13 +251,13 @@ OpenClaw, görsel destekli olarak işaretlenmemiş modeller için görsel açık
|
||||
```
|
||||
|
||||
<Tip>
|
||||
`OLLAMA_API_KEY` ayarlıysa sağlayıcı girdisinde `apiKey` alanını atlayabilirsiniz; OpenClaw bunu kullanılabilirlik denetimleri için doldurur.
|
||||
`OLLAMA_API_KEY` ayarlanmışsa sağlayıcı girdisinde `apiKey` değerini atlayabilirsiniz ve OpenClaw bunu kullanılabilirlik denetimleri için doldurur.
|
||||
</Tip>
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Açık (elle modeller)">
|
||||
Barındırılan bulut kurulumu istediğinizde, Ollama başka bir host/bağlantı noktasında çalıştığında, belirli bağlam pencerelerini veya model listelerini zorlamak istediğinizde ya da tamamen manuel model tanımları istediğinizde açık yapılandırmayı kullanın.
|
||||
Barındırılan bulut kurulumu istediğinizde, Ollama başka bir ana makine/bağlantı noktasında çalıştığında, belirli bağlam pencerelerini veya model listelerini zorlamak istediğinizde ya da tamamen elle model tanımları istediğinizde açık yapılandırma kullanın.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -286,8 +286,8 @@ OpenClaw, görsel destekli olarak işaretlenmemiş modeller için görsel açık
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Özel base URL">
|
||||
Ollama farklı bir host veya bağlantı noktasında çalışıyorsa (açık yapılandırma otomatik keşfi devre dışı bırakır, bu yüzden modelleri elle tanımlayın):
|
||||
<Tab title="Özel temel URL">
|
||||
Ollama farklı bir ana makine veya bağlantı noktasında çalışıyorsa (açık yapılandırma otomatik keşfi devre dışı bırakır, bu yüzden modelleri elle tanımlayın):
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -304,7 +304,7 @@ OpenClaw, görsel destekli olarak işaretlenmemiş modeller için görsel açık
|
||||
```
|
||||
|
||||
<Warning>
|
||||
URL'ye `/v1` eklemeyin. `/v1` yolu OpenAI uyumlu modu kullanır; burada araç çağırma güvenilir değildir. Yol son eki olmayan temel Ollama URL'sini kullanın.
|
||||
URL'ye `/v1` eklemeyin. `/v1` yolu, araç çağırmanın güvenilir olmadığı OpenAI uyumlu modu kullanır. Yol son eki olmadan temel Ollama URL'sini kullanın.
|
||||
</Warning>
|
||||
|
||||
</Tab>
|
||||
@ -329,15 +329,15 @@ Yapılandırıldıktan sonra tüm Ollama modelleriniz kullanılabilir olur:
|
||||
|
||||
## Ollama Web Search
|
||||
|
||||
OpenClaw, paketle gelen bir `web_search` sağlayıcısı olarak **Ollama Web Search** desteği sunar.
|
||||
OpenClaw, paketlenmiş bir `web_search` sağlayıcısı olarak **Ollama Web Search** desteği sunar.
|
||||
|
||||
| Özellik | Ayrıntı |
|
||||
| ----------- | ------------------------------------------------------------------------------------------------------------------- |
|
||||
| Host | Yapılandırılmış Ollama host'unuzu kullanır (`models.providers.ollama.baseUrl` ayarlıysa onu, aksi halde `http://127.0.0.1:11434`) |
|
||||
| Kimlik doğrulama | Anahtar gerektirmez |
|
||||
| Gereksinim | Ollama çalışıyor olmalı ve `ollama signin` ile oturum açılmış olmalı |
|
||||
| Özellik | Ayrıntı |
|
||||
| ----------- | ----------------------------------------------------------------------------------------------------------------- |
|
||||
| Ana makine | Yapılandırılmış Ollama ana makinenizi kullanır (`models.providers.ollama.baseUrl` ayarlıysa onu, aksi halde `http://127.0.0.1:11434`) |
|
||||
| Kimlik doğrulama | Anahtarsız |
|
||||
| Gereksinim | Ollama çalışıyor olmalı ve `ollama signin` ile oturum açılmış olmalı |
|
||||
|
||||
Kurulum sırasında **Ollama Web Search** seçin `openclaw onboard` veya `openclaw configure --section web`, ya da şunu ayarlayın:
|
||||
`openclaw onboard` veya `openclaw configure --section web` sırasında **Ollama Web Search** seçin ya da şunu ayarlayın:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -352,7 +352,7 @@ Kurulum sırasında **Ollama Web Search** seçin `openclaw onboard` veya `opencl
|
||||
```
|
||||
|
||||
<Note>
|
||||
Tam kurulum ve davranış ayrıntıları için [Ollama Web Search](/tr/tools/ollama-search) bölümüne bakın.
|
||||
Tam kurulum ve davranış ayrıntıları için bkz. [Ollama Web Search](/tr/tools/ollama-search).
|
||||
</Note>
|
||||
|
||||
## Gelişmiş yapılandırma
|
||||
@ -360,10 +360,10 @@ Tam kurulum ve davranış ayrıntıları için [Ollama Web Search](/tr/tools/oll
|
||||
<AccordionGroup>
|
||||
<Accordion title="Eski OpenAI uyumlu mod">
|
||||
<Warning>
|
||||
**Araç çağırma, OpenAI uyumlu modda güvenilir değildir.** Bu modu yalnızca bir proxy için OpenAI biçimine ihtiyacınız varsa ve yerel araç çağırma davranışına bağlı değilseniz kullanın.
|
||||
**Araç çağırma OpenAI uyumlu modda güvenilir değildir.** Bu modu yalnızca bir proxy için OpenAI biçimine ihtiyacınız varsa ve yerel araç çağırma davranışına bağlı değilseniz kullanın.
|
||||
</Warning>
|
||||
|
||||
Bunun yerine OpenAI uyumlu uç noktayı kullanmanız gerekiyorsa (örneğin yalnızca OpenAI biçimini destekleyen bir proxy arkasında), `api: "openai-completions"` değerini açıkça ayarlayın:
|
||||
Bunun yerine OpenAI uyumlu uç noktayı kullanmanız gerekiyorsa (örneğin yalnızca OpenAI biçimini destekleyen bir proxy'nin arkasında), `api: "openai-completions"` değerini açıkça ayarlayın:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -381,9 +381,9 @@ Tam kurulum ve davranış ayrıntıları için [Ollama Web Search](/tr/tools/oll
|
||||
}
|
||||
```
|
||||
|
||||
Bu mod aynı anda akış ve araç çağırmayı desteklemeyebilir. Model config içinde `params: { streaming: false }` ile akışı devre dışı bırakmanız gerekebilir.
|
||||
Bu mod aynı anda akışı ve araç çağırmayı desteklemeyebilir. Model yapılandırmasında `params: { streaming: false }` ile akışı devre dışı bırakmanız gerekebilir.
|
||||
|
||||
`api: "openai-completions"` Ollama ile kullanıldığında OpenClaw varsayılan olarak `options.num_ctx` enjekte eder; böylece Ollama sessizce 4096 bağlam penceresine geri düşmez. Proxy/upstream bilinmeyen `options` alanlarını reddediyorsa bu davranışı devre dışı bırakın:
|
||||
`api: "openai-completions"` Ollama ile kullanıldığında, OpenClaw varsayılan olarak `options.num_ctx` ekler; böylece Ollama sessizce 4096 bağlam penceresine geri dönmez. Proxy'niz/yukarı akışınız bilinmeyen `options` alanlarını reddediyorsa, bu davranışı devre dışı bırakın:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -404,9 +404,9 @@ Tam kurulum ve davranış ayrıntıları için [Ollama Web Search](/tr/tools/oll
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Bağlam pencereleri">
|
||||
Otomatik keşfedilen modeller için OpenClaw, mevcut olduğunda Ollama tarafından bildirilen bağlam penceresini kullanır; aksi halde OpenClaw tarafından kullanılan varsayılan Ollama bağlam penceresine geri döner.
|
||||
Otomatik keşfedilen modeller için OpenClaw mümkün olduğunda Ollama'nın bildirdiği bağlam penceresini kullanır; aksi halde OpenClaw'ın kullandığı varsayılan Ollama bağlam penceresine geri döner.
|
||||
|
||||
Açık sağlayıcı config'inde `contextWindow` ve `maxTokens` değerlerini geçersiz kılabilirsiniz:
|
||||
Açık sağlayıcı yapılandırmasında `contextWindow` ve `maxTokens` değerlerini geçersiz kılabilirsiniz:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -428,8 +428,8 @@ Tam kurulum ve davranış ayrıntıları için [Ollama Web Search](/tr/tools/oll
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Reasoning modelleri">
|
||||
OpenClaw, varsayılan olarak `deepseek-r1`, `reasoning` veya `think` gibi ada sahip modelleri reasoning yetenekli olarak değerlendirir.
|
||||
<Accordion title="Akıl yürütme modelleri">
|
||||
OpenClaw, varsayılan olarak `deepseek-r1`, `reasoning` veya `think` gibi adlara sahip modelleri akıl yürütme yetenekli olarak değerlendirir.
|
||||
|
||||
```bash
|
||||
ollama pull deepseek-r1:32b
|
||||
@ -440,18 +440,18 @@ Tam kurulum ve davranış ayrıntıları için [Ollama Web Search](/tr/tools/oll
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Model maliyetleri">
|
||||
Ollama ücretsizdir ve yerelde çalışır, bu nedenle tüm model maliyetleri $0 olarak ayarlanır. Bu hem otomatik keşfedilen hem de elle tanımlanan modeller için geçerlidir.
|
||||
Ollama ücretsizdir ve yerel olarak çalışır, bu nedenle tüm model maliyetleri $0 olarak ayarlanır. Bu hem otomatik keşfedilen hem de elle tanımlanan modeller için geçerlidir.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Bellek embedding'leri">
|
||||
Paketle gelen Ollama plugin'i,
|
||||
[bellek araması](/tr/concepts/memory) için bir bellek embedding sağlayıcısı kaydeder. Yapılandırılmış Ollama base URL'sini
|
||||
Paketlenmiş Ollama Plugin'i,
|
||||
[bellek araması](/tr/concepts/memory) için bir bellek embedding sağlayıcısı kaydeder. Yapılandırılmış Ollama temel URL'sini
|
||||
ve API anahtarını kullanır.
|
||||
|
||||
| Özellik | Değer |
|
||||
| ------------- | ------------------ |
|
||||
| Varsayılan model | `nomic-embed-text` |
|
||||
| Otomatik çekme | Evet — embedding modeli yerelde mevcut değilse otomatik olarak çekilir |
|
||||
| Özellik | Değer |
|
||||
| ------------- | ------------------- |
|
||||
| Varsayılan model | `nomic-embed-text` |
|
||||
| Otomatik çekme | Evet — embedding modeli yerelde yoksa otomatik olarak çekilir |
|
||||
|
||||
Ollama'yı bellek araması embedding sağlayıcısı olarak seçmek için:
|
||||
|
||||
@ -470,6 +470,8 @@ Tam kurulum ve davranış ayrıntıları için [Ollama Web Search](/tr/tools/oll
|
||||
<Accordion title="Akış yapılandırması">
|
||||
OpenClaw'ın Ollama bütünleşimi varsayılan olarak **yerel Ollama API'sini** (`/api/chat`) kullanır; bu, aynı anda hem akışı hem de araç çağırmayı tam olarak destekler. Özel bir yapılandırma gerekmez.
|
||||
|
||||
Yerel `/api/chat` istekleri için OpenClaw ayrıca düşünme denetimini doğrudan Ollama'ya iletir: `/think off` ve `openclaw agent --thinking off`, üst düzey `think: false` gönderir; `off` dışındaki düşünme düzeyleri ise `think: true` gönderir.
|
||||
|
||||
<Tip>
|
||||
OpenAI uyumlu uç noktayı kullanmanız gerekiyorsa yukarıdaki "Eski OpenAI uyumlu mod" bölümüne bakın. Bu modda akış ve araç çağırma aynı anda çalışmayabilir.
|
||||
</Tip>
|
||||
@ -481,7 +483,7 @@ Tam kurulum ve davranış ayrıntıları için [Ollama Web Search](/tr/tools/oll
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Ollama algılanmadı">
|
||||
Ollama'nın çalıştığından, `OLLAMA_API_KEY` (veya bir auth profili) ayarladığınızdan ve **açık bir `models.providers.ollama` girdisi tanımlamadığınızdan** emin olun:
|
||||
Ollama'nın çalıştığından, `OLLAMA_API_KEY` (veya bir kimlik doğrulama profili) ayarladığınızdan ve açık bir `models.providers.ollama` girdisi tanımlamadığınızdan emin olun:
|
||||
|
||||
```bash
|
||||
ollama serve
|
||||
@ -496,10 +498,10 @@ Tam kurulum ve davranış ayrıntıları için [Ollama Web Search](/tr/tools/oll
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Kullanılabilir model yok">
|
||||
Modeliniz listelenmiyorsa modeli yerelde çekin veya `models.providers.ollama` içinde açıkça tanımlayın.
|
||||
Modeliniz listelenmiyorsa modeli ya yerel olarak çekin ya da `models.providers.ollama` içinde açıkça tanımlayın.
|
||||
|
||||
```bash
|
||||
ollama list # Yüklü olanları görün
|
||||
ollama list # Kurulu olanları görün
|
||||
ollama pull gemma4
|
||||
ollama pull gpt-oss:20b
|
||||
ollama pull llama3.3 # Veya başka bir model
|
||||
@ -529,15 +531,15 @@ Daha fazla yardım: [Sorun giderme](/tr/help/troubleshooting) ve [SSS](/tr/help/
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Model sağlayıcıları" href="/tr/concepts/model-providers" icon="layers">
|
||||
Tüm sağlayıcılara, model ref'lerine ve failover davranışına genel bakış.
|
||||
Tüm sağlayıcılara, model başvurularına ve yük devretme davranışına genel bakış.
|
||||
</Card>
|
||||
<Card title="Model seçimi" href="/tr/concepts/models" icon="brain">
|
||||
Modeller nasıl seçilir ve yapılandırılır.
|
||||
Modellerin nasıl seçileceği ve yapılandırılacağı.
|
||||
</Card>
|
||||
<Card title="Ollama Web Search" href="/tr/tools/ollama-search" icon="magnifying-glass">
|
||||
Ollama destekli web araması için tam kurulum ve davranış ayrıntıları.
|
||||
</Card>
|
||||
<Card title="Yapılandırma" href="/tr/gateway/configuration" icon="gear">
|
||||
Tam config referansı.
|
||||
Tam yapılandırma başvurusu.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
67
docs/tr/providers/tencent.md
Normal file
67
docs/tr/providers/tencent.md
Normal file
@ -0,0 +1,67 @@
|
||||
---
|
||||
read_when:
|
||||
- OpenClaw ile Tencent Hy modellerini kullanmak istiyorsunuz
|
||||
- TokenHub API anahtarı kurulumuna ihtiyacınız var
|
||||
summary: Tencent Cloud TokenHub kurulumu
|
||||
title: Tencent Cloud (TokenHub)
|
||||
x-i18n:
|
||||
generated_at: "2026-04-22T08:55:45Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 04da073973792c55dc0c2d287bfc51187bb2128bbbd5c4a483f850adeea50ab5
|
||||
source_path: providers/tencent.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Tencent Cloud (TokenHub)
|
||||
|
||||
Tencent Cloud sağlayıcısı, TokenHub uç noktası (`tencent-tokenhub`) üzerinden
|
||||
Tencent Hy modellerine erişim sağlar.
|
||||
|
||||
Sağlayıcı, OpenAI uyumlu bir API kullanır.
|
||||
|
||||
## Hızlı başlangıç
|
||||
|
||||
```bash
|
||||
openclaw onboard --auth-choice tokenhub-api-key
|
||||
```
|
||||
|
||||
## Etkileşimsiz örnek
|
||||
|
||||
```bash
|
||||
openclaw onboard --non-interactive \
|
||||
--mode local \
|
||||
--auth-choice tokenhub-api-key \
|
||||
--tokenhub-api-key "$TOKENHUB_API_KEY" \
|
||||
--skip-health \
|
||||
--accept-risk
|
||||
```
|
||||
|
||||
## Sağlayıcılar ve uç noktalar
|
||||
|
||||
| Sağlayıcı | Uç nokta | Kullanım durumu |
|
||||
| ------------------ | ----------------------------- | ----------------------- |
|
||||
| `tencent-tokenhub` | `tokenhub.tencentmaas.com/v1` | Tencent TokenHub ile Hy |
|
||||
|
||||
## Kullanılabilir modeller
|
||||
|
||||
### tencent-tokenhub
|
||||
|
||||
- **hy3-preview** — Hy3 önizlemesi (256K bağlam, akıl yürütme, varsayılan)
|
||||
|
||||
## Notlar
|
||||
|
||||
- TokenHub model başvuruları `tencent-tokenhub/<modelId>` kullanır.
|
||||
- Gerekirse fiyatlandırma ve bağlam meta verilerini `models.providers` içinde geçersiz kılın.
|
||||
|
||||
## Ortam notu
|
||||
|
||||
Gateway bir daemon olarak çalışıyorsa (launchd/systemd), `TOKENHUB_API_KEY`
|
||||
değerinin o süreç için kullanılabilir olduğundan emin olun (örneğin,
|
||||
`~/.openclaw/.env` içinde veya `env.shellEnv` aracılığıyla).
|
||||
|
||||
## İlgili belgeler
|
||||
|
||||
- [OpenClaw Yapılandırması](/tr/gateway/configuration)
|
||||
- [Model Sağlayıcıları](/tr/concepts/model-providers)
|
||||
- [Tencent TokenHub](https://cloud.tencent.com/document/product/1823/130050)
|
||||
@ -1,128 +1,130 @@
|
||||
---
|
||||
read_when:
|
||||
- OpenClaw’un hangi araçları sunduğunu anlamak istiyorsunuz
|
||||
- Araçları yapılandırmanız, izin vermeniz veya engellemeniz gerekiyor
|
||||
- Yerleşik araçlar, Skills ve plugin’ler arasında karar veriyorsunuz
|
||||
summary: 'OpenClaw araçları ve plugin’lerine genel bakış: agent’ın neler yapabildiği ve nasıl genişletileceği'
|
||||
title: Araçlar ve Plugin’ler
|
||||
- OpenClaw'ın hangi araçları sağladığını anlamak istiyorsunuz
|
||||
- Araçları yapılandırmanız, izin vermeniz veya reddetmeniz gerekiyor
|
||||
- Yerleşik araçlar, Skills ve Plugin'ler arasında karar veriyorsunuz
|
||||
summary: 'OpenClaw araçları ve plugin''lerine genel bakış: ajanın neler yapabildiği ve nasıl genişletileceği'
|
||||
title: Araçlar ve Plugin'ler
|
||||
x-i18n:
|
||||
generated_at: "2026-04-06T03:13:34Z"
|
||||
generated_at: "2026-04-22T08:55:47Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: b2371239316997b0fe389bfa2ec38404e1d3e177755ad81ff8035ac583d9adeb
|
||||
source_hash: 6edb9e13b72e6345554f25c8d8413d167a69501e6626828d9aa3aac6907cd092
|
||||
source_path: tools/index.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Araçlar ve Plugin’ler
|
||||
# Araçlar ve Plugin'ler
|
||||
|
||||
Agent’ın metin üretmenin ötesinde yaptığı her şey **araçlar** aracılığıyla olur.
|
||||
Araçlar, agent’ın dosya okumasını, komut çalıştırmasını, web’de gezinmesini, mesaj
|
||||
Ajanın metin üretmenin ötesinde yaptığı her şey **araçlar** üzerinden gerçekleşir.
|
||||
Araçlar, ajanın dosya okumasını, komut çalıştırmasını, web'de gezinmesini, ileti
|
||||
göndermesini ve cihazlarla etkileşime girmesini sağlar.
|
||||
|
||||
## Araçlar, Skills ve plugin’ler
|
||||
## Araçlar, Skills ve Plugin'ler
|
||||
|
||||
OpenClaw birlikte çalışan üç katmana sahiptir:
|
||||
|
||||
<Steps>
|
||||
<Step title="Araçlar, agent’ın çağırdığı şeylerdir">
|
||||
Araç, agent’ın çağırabildiği tiplenmiş bir işlevdir (ör. `exec`, `browser`,
|
||||
<Step title="Araçlar ajanın çağırdığı şeylerdir">
|
||||
Araç, ajanın çağırabildiği türlendirilmiş bir işlevdir (ör. `exec`, `browser`,
|
||||
`web_search`, `message`). OpenClaw bir dizi **yerleşik araç** ile gelir ve
|
||||
plugin’ler ek araçlar kaydedebilir.
|
||||
Plugin'ler ek araçlar kaydedebilir.
|
||||
|
||||
Agent, araçları model API’sine gönderilen yapılandırılmış işlev tanımları olarak görür.
|
||||
Ajan araçları, model API'sine gönderilen yapılandırılmış işlev tanımları olarak görür.
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Skills, agent’a ne zaman ve nasıl kullanılacağını öğretir">
|
||||
Skill, sistem komutuna enjekte edilen bir markdown dosyasıdır (`SKILL.md`).
|
||||
Skills, agent’a araçları etkili şekilde kullanması için bağlam, kısıtlar ve
|
||||
<Step title="Skills ajana ne zaman ve nasıl olduğunu öğretir">
|
||||
Skill, sistem istemine enjekte edilen bir markdown dosyasıdır (`SKILL.md`).
|
||||
Skills, aracı etkili biçimde kullanmak için ajana bağlam, kısıtlar ve
|
||||
adım adım rehberlik sağlar. Skills çalışma alanınızda, paylaşılan klasörlerde
|
||||
bulunabilir veya plugin’lerin içinde gelebilir.
|
||||
bulunabilir veya Plugin'lerin içinde gelebilir.
|
||||
|
||||
[Skills başvurusu](/tr/tools/skills) | [Skill oluşturma](/tr/tools/creating-skills)
|
||||
[Skills başvurusu](/tr/tools/skills) | [Skills oluşturma](/tr/tools/creating-skills)
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Plugin’ler her şeyi birlikte paketler">
|
||||
Plugin, herhangi bir yetenek kombinasyonunu kaydedebilen bir pakettir:
|
||||
channels, model provider’lar, araçlar, Skills, konuşma, gerçek zamanlı transcription,
|
||||
gerçek zamanlı voice, medya anlama, görsel oluşturma, video oluşturma,
|
||||
web fetch, web search ve daha fazlası. Bazı plugin’ler **core**’dur (OpenClaw ile
|
||||
birlikte gelir), bazıları ise **external**’dır (topluluk tarafından npm üzerinde yayımlanır).
|
||||
<Step title="Plugin'ler her şeyi bir arada paketler">
|
||||
Plugin; kanallar, model sağlayıcıları, araçlar, Skills, konuşma, gerçek zamanlı transkripsiyon,
|
||||
gerçek zamanlı ses, medya anlama, görsel üretimi, video üretimi,
|
||||
web getirme, web arama ve daha fazlası gibi yeteneklerin herhangi bir
|
||||
birleşimini kaydedebilen bir pakettir. Bazı Plugin'ler **core**'dur (OpenClaw ile
|
||||
birlikte gelir), diğerleri **external**'dır (topluluk tarafından npm üzerinde yayımlanır).
|
||||
|
||||
[Plugin’leri kurun ve yapılandırın](/tr/tools/plugin) | [Kendinizinkini oluşturun](/tr/plugins/building-plugins)
|
||||
[Plugin'leri kurun ve yapılandırın](/tr/tools/plugin) | [Kendi Plugin'inizi oluşturun](/tr/plugins/building-plugins)
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Yerleşik araçlar
|
||||
|
||||
Bu araçlar OpenClaw ile birlikte gelir ve herhangi bir plugin kurmadan kullanılabilir:
|
||||
Bu araçlar OpenClaw ile birlikte gelir ve herhangi bir Plugin kurmadan kullanılabilir:
|
||||
|
||||
| Araç | Ne yapar | Sayfa |
|
||||
| ------------------------------------------ | --------------------------------------------------------------------- | ------------------------------------------- |
|
||||
| `exec` / `process` | Shell komutları çalıştırır, arka plan süreçlerini yönetir | [Exec](/tr/tools/exec) |
|
||||
| `code_execution` | Sandbox içinde uzak Python analizi çalıştırır | [Code Execution](/tr/tools/code-execution) |
|
||||
| `browser` | Bir Chromium tarayıcısını denetler (gezinme, tıklama, ekran görüntüsü) | [Browser](/tr/tools/browser) |
|
||||
| `web_search` / `x_search` / `web_fetch` | Web’de arama yapar, X gönderilerini arar, sayfa içeriğini getirir | [Web](/tr/tools/web) |
|
||||
| `read` / `write` / `edit` | Çalışma alanında dosya G/Ç | |
|
||||
| `apply_patch` | Çok parçalı dosya yamaları | [Apply Patch](/tr/tools/apply-patch) |
|
||||
| `message` | Tüm channels üzerinden mesaj gönderir | [Agent Send](/tr/tools/agent-send) |
|
||||
| `canvas` | Node Canvas’ı sürer (sunum, değerlendirme, snapshot) | |
|
||||
| `exec` / `process` | Kabuk komutları çalıştırır, arka plan süreçlerini yönetir | [Exec](/tr/tools/exec) |
|
||||
| `code_execution` | Korumalı uzak Python analizini çalıştırır | [Kod Çalıştırma](/tr/tools/code-execution) |
|
||||
| `browser` | Bir Chromium tarayıcısını denetler (gezinme, tıklama, ekran görüntüsü alma) | [Tarayıcı](/tr/tools/browser) |
|
||||
| `web_search` / `x_search` / `web_fetch` | Web'de arama yapar, X gönderilerinde arama yapar, sayfa içeriği getirir | [Web](/tr/tools/web) |
|
||||
| `read` / `write` / `edit` | Çalışma alanında dosya G/Ç işlemleri | |
|
||||
| `apply_patch` | Çok parçalı dosya yamaları | [Yama Uygula](/tr/tools/apply-patch) |
|
||||
| `message` | Tüm kanallar arasında ileti gönderir | [Ajan Gönderimi](/tr/tools/agent-send) |
|
||||
| `canvas` | node Canvas'ı sürer (sunma, değerlendirme, anlık görüntü alma) | |
|
||||
| `nodes` | Eşleştirilmiş cihazları keşfeder ve hedefler | |
|
||||
| `cron` / `gateway` | Zamanlanmış işleri yönetir; gateway’i inceler, düzeltir, yeniden başlatır veya günceller | |
|
||||
| `image` / `image_generate` | Görselleri analiz eder veya oluşturur | [Image Generation](/tr/tools/image-generation) |
|
||||
| `music_generate` | Müzik parçaları oluşturur | [Music Generation](/tools/music-generation) |
|
||||
| `video_generate` | Videolar oluşturur | [Video Generation](/tools/video-generation) |
|
||||
| `cron` / `gateway` | Zamanlanmış işleri yönetir; gateway'i inceler, yamalar, yeniden başlatır veya günceller | |
|
||||
| `image` / `image_generate` | Görselleri analiz eder veya üretir | [Görsel Üretimi](/tr/tools/image-generation) |
|
||||
| `music_generate` | Müzik parçaları üretir | [Müzik Üretimi](/tr/tools/music-generation) |
|
||||
| `video_generate` | Videolar üretir | [Video Üretimi](/tr/tools/video-generation) |
|
||||
| `tts` | Tek seferlik metinden konuşmaya dönüştürme | [TTS](/tr/tools/tts) |
|
||||
| `sessions_*` / `subagents` / `agents_list` | Oturum yönetimi, durum ve alt agent orkestrasyonu | [Sub-agents](/tr/tools/subagents) |
|
||||
| `session_status` | Hafif `/status` tarzı geri okuma ve oturum model geçersiz kılması | [Session Tools](/tr/concepts/session-tool) |
|
||||
| `sessions_*` / `subagents` / `agents_list` | Oturum yönetimi, durum ve alt ajan orkestrasyonu | [Alt ajanlar](/tr/tools/subagents) |
|
||||
| `session_status` | Hafif `/status` tarzı geri okuma ve oturum modeli geçersiz kılması | [Oturum Araçları](/tr/concepts/session-tool) |
|
||||
|
||||
Görsel işleri için analizde `image`, oluşturmada veya düzenlemede `image_generate` kullanın. `openai/*`, `google/*`, `fal/*` veya varsayılan olmayan başka bir görsel provider’ı hedefliyorsanız, önce o provider’ın auth/API anahtarını yapılandırın.
|
||||
Görsel çalışmaları için analizde `image`, üretim veya düzenlemede `image_generate` kullanın. `openai/*`, `google/*`, `fal/*` veya varsayılan olmayan başka bir görsel sağlayıcısını hedefliyorsanız önce o sağlayıcının kimlik doğrulamasını/API anahtarını yapılandırın.
|
||||
|
||||
Müzik işleri için `music_generate` kullanın. `google/*`, `minimax/*` veya varsayılan olmayan başka bir müzik provider’ı hedefliyorsanız, önce o provider’ın auth/API anahtarını yapılandırın.
|
||||
Müzik çalışmaları için `music_generate` kullanın. `google/*`, `minimax/*` veya varsayılan olmayan başka bir müzik sağlayıcısını hedefliyorsanız önce o sağlayıcının kimlik doğrulamasını/API anahtarını yapılandırın.
|
||||
|
||||
Video işleri için `video_generate` kullanın. `qwen/*` veya varsayılan olmayan başka bir video provider’ı hedefliyorsanız, önce o provider’ın auth/API anahtarını yapılandırın.
|
||||
Video çalışmaları için `video_generate` kullanın. `qwen/*` veya varsayılan olmayan başka bir video sağlayıcısını hedefliyorsanız önce o sağlayıcının kimlik doğrulamasını/API anahtarını yapılandırın.
|
||||
|
||||
İş akışı odaklı ses üretimi için, ComfyUI gibi bir plugin bunu kaydettiğinde
|
||||
`music_generate` kullanın. Bu, metinden konuşmaya olan `tts`’den ayrıdır.
|
||||
İş akışı odaklı ses üretimi için ComfyUI gibi bir Plugin bunu kaydediyorsa
|
||||
`music_generate` kullanın. Bu, metinden konuşmaya dönüştürme olan `tts`'den ayrıdır.
|
||||
|
||||
`session_status`, sessions grubundaki hafif durum/geri okuma aracıdır.
|
||||
`session_status`, oturumlar grubundaki hafif durum/geri okuma aracıdır.
|
||||
Geçerli oturum hakkında `/status` tarzı soruları yanıtlar ve isteğe bağlı olarak
|
||||
oturum başına model geçersiz kılması ayarlayabilir; `model=default` bu
|
||||
geçersiz kılmayı temizler. `/status` gibi, en son transcript kullanım girdisinden
|
||||
seyrek token/cache sayaçlarını ve etkin çalışma zamanı model etiketini geriye dönük doldurabilir.
|
||||
geçersiz kılmayı temizler. `/status` gibi, en son transkript kullanım girdisinden
|
||||
seyrek token/önbellek sayaçlarını ve etkin çalışma zamanı modeli etiketini
|
||||
geriye dönük doldurabilir.
|
||||
|
||||
`gateway`, gateway işlemleri için yalnızca sahip tarafından kullanılabilen çalışma zamanı aracıdır:
|
||||
|
||||
- Düzenlemelerden önce tek bir yol kapsamlı config alt ağacı için `config.schema.lookup`
|
||||
- Geçerli config snapshot’ı + hash için `config.get`
|
||||
- Yeniden başlatmalı kısmi config güncellemeleri için `config.patch`
|
||||
- Yalnızca tam config değiştirme için `config.apply`
|
||||
- Açık self-update + yeniden başlatma için `update.run`
|
||||
- Düzenlemelerden önce tek bir yol kapsamlı yapılandırma alt ağacı için `config.schema.lookup`
|
||||
- Geçerli yapılandırma anlık görüntüsü + hash için `config.get`
|
||||
- Yeniden başlatmalı kısmi yapılandırma güncellemeleri için `config.patch`
|
||||
- Yalnızca tam yapılandırma değişimi için `config.apply`
|
||||
- Açık kendi kendini güncelleme + yeniden başlatma için `update.run`
|
||||
|
||||
Kısmi değişikliklerde önce `config.schema.lookup`, sonra `config.patch` tercih edin.
|
||||
`config.apply` yalnızca tüm config’i bilerek değiştirdiğinizde kullanılmalıdır.
|
||||
`config.apply` seçeneğini yalnızca tüm yapılandırmayı bilerek değiştirdiğinizde kullanın.
|
||||
Araç ayrıca `tools.exec.ask` veya `tools.exec.security` değerlerini değiştirmeyi reddeder;
|
||||
eski `tools.bash.*` takma adları aynı korumalı exec yollarına normalize edilir.
|
||||
|
||||
### Plugin tarafından sağlanan araçlar
|
||||
|
||||
Plugin’ler ek araçlar kaydedebilir. Bazı örnekler:
|
||||
Plugin'ler ek araçlar kaydedebilir. Bazı örnekler:
|
||||
|
||||
- [Lobster](/tr/tools/lobster) — devam ettirilebilir onaylarla tiplenmiş iş akışı çalışma zamanı
|
||||
- [LLM Task](/tr/tools/llm-task) — yapılandırılmış çıktı için yalnızca JSON LLM adımı
|
||||
- [Music Generation](/tools/music-generation) — iş akışı destekli provider’larla paylaşılan `music_generate` aracı
|
||||
- [Diffs](/tr/tools/diffs) — diff görüntüleyici ve oluşturucu
|
||||
- [OpenProse](/tr/prose) — markdown-first iş akışı orkestrasyonu
|
||||
- [LLM Task](/tr/tools/llm-task) — yapılandırılmış çıktı için yalnızca JSON kullanan LLM adımı
|
||||
- [Lobster](/tr/tools/lobster) — sürdürülebilir onaylara sahip türlendirilmiş iş akışı çalışma zamanı
|
||||
- [Müzik Üretimi](/tr/tools/music-generation) — iş akışı destekli sağlayıcılara sahip paylaşılan `music_generate` aracı
|
||||
- [OpenProse](/tr/prose) — markdown öncelikli iş akışı orkestrasyonu
|
||||
- [Tokenjuice](/tr/tools/tokenjuice) — gürültülü `exec` ve `bash` araç sonuçlarını sıkıştırır
|
||||
|
||||
## Araç yapılandırması
|
||||
|
||||
### İzin ve engelleme listeleri
|
||||
### İzin ve ret listeleri
|
||||
|
||||
Agent’ın hangi araçları çağırabileceğini config içindeki `tools.allow` / `tools.deny`
|
||||
ile denetleyin. Engelleme her zaman izne üstün gelir.
|
||||
Ajanın hangi araçları çağırabileceğini yapılandırmada `tools.allow` / `tools.deny`
|
||||
üzerinden denetleyin. Ret her zaman izni geçersiz kılar.
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -136,18 +138,18 @@ ile denetleyin. Engelleme her zaman izne üstün gelir.
|
||||
### Araç profilleri
|
||||
|
||||
`tools.profile`, `allow`/`deny` uygulanmadan önce temel bir izin listesi ayarlar.
|
||||
Agent başına geçersiz kılma: `agents.list[].tools.profile`.
|
||||
Ajan başına geçersiz kılma: `agents.list[].tools.profile`.
|
||||
|
||||
| Profil | Neleri içerir |
|
||||
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `full` | Kısıtlama yok (ayarlanmamış olmasıyla aynı) |
|
||||
| Profil | İçerdikleri |
|
||||
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `full` | Kısıtlama yoktur (ayarlanmamışla aynıdır) |
|
||||
| `coding` | `group:fs`, `group:runtime`, `group:web`, `group:sessions`, `group:memory`, `cron`, `image`, `image_generate`, `music_generate`, `video_generate` |
|
||||
| `messaging` | `group:messaging`, `sessions_list`, `sessions_history`, `sessions_send`, `session_status` |
|
||||
| `minimal` | Yalnızca `session_status` |
|
||||
| `messaging` | `group:messaging`, `sessions_list`, `sessions_history`, `sessions_send`, `session_status` |
|
||||
| `minimal` | yalnızca `session_status` |
|
||||
|
||||
### Araç grupları
|
||||
|
||||
İzin/engelleme listelerinde `group:*` kısa yollarını kullanın:
|
||||
İzin/ret listelerinde `group:*` kısayollarını kullanın:
|
||||
|
||||
| Grup | Araçlar |
|
||||
| ------------------ | --------------------------------------------------------------------------------------------------------- |
|
||||
@ -162,21 +164,20 @@ Agent başına geçersiz kılma: `agents.list[].tools.profile`.
|
||||
| `group:nodes` | nodes |
|
||||
| `group:agents` | agents_list |
|
||||
| `group:media` | image, image_generate, music_generate, video_generate, tts |
|
||||
| `group:openclaw` | Tüm yerleşik OpenClaw araçları (plugin araçları hariç) |
|
||||
| `group:openclaw` | Tüm yerleşik OpenClaw araçları (Plugin araçları hariç) |
|
||||
|
||||
`sessions_history`, sınırlı ve güvenlik filtreli bir geri çağırma görünümü döndürür.
|
||||
Thinking etiketlerini, `<relevant-memories>` iskeletini, düz metin tool-call XML
|
||||
yüklerini (şunlar dahil: `<tool_call>...</tool_call>`,
|
||||
`sessions_history`, sınırlı ve güvenlik filtreli bir geri çağırma görünümü döndürür. Şunları ayıklar:
|
||||
thinking etiketleri, `<relevant-memories>` iskelesi, düz metin araç çağrısı XML
|
||||
yükleri (şunlar dahil: `<tool_call>...</tool_call>`,
|
||||
`<function_call>...</function_call>`, `<tool_calls>...</tool_calls>`,
|
||||
`<function_calls>...</function_calls>` ve kesilmiş tool-call blokları),
|
||||
seviyesi düşürülmüş tool-call iskeletini, sızmış ASCII/tam genişlikli model kontrol
|
||||
token’larını ve assistant metnindeki bozuk MiniMax tool-call XML’ini ayıklar; ardından
|
||||
ham transcript dökümü gibi davranmak yerine redaksiyon/kısaltma ve olası büyük satır
|
||||
yer tutucuları uygular.
|
||||
`<function_calls>...</function_calls>` ve kesilmiş araç çağrısı blokları),
|
||||
düşürülmüş araç çağrısı iskelesi, sızmış ASCII/tam genişlikli model denetim
|
||||
token'ları ve asistan metnindeki hatalı MiniMax araç çağrısı XML'i; ardından
|
||||
ham transkript dökümü gibi davranmak yerine redaksiyon/kısaltma ve olası aşırı büyük satır yer tutucuları uygular.
|
||||
|
||||
### Provider’a özgü kısıtlamalar
|
||||
### Sağlayıcıya özgü kısıtlamalar
|
||||
|
||||
Global varsayılanları değiştirmeden belirli provider’lar için araçları kısıtlamak üzere
|
||||
Genel varsayılanları değiştirmeden belirli sağlayıcılar için araçları kısıtlamak üzere
|
||||
`tools.byProvider` kullanın:
|
||||
|
||||
```json5
|
||||
|
||||
84
docs/tr/tools/tokenjuice.md
Normal file
84
docs/tr/tools/tokenjuice.md
Normal file
@ -0,0 +1,84 @@
|
||||
---
|
||||
read_when:
|
||||
- OpenClaw içinde daha kısa `exec` veya `bash` araç sonuçları istiyorsunuz
|
||||
- Paketlenmiş tokenjuice Plugin'ini etkinleştirmek istiyorsunuz
|
||||
- tokenjuice'ın neyi değiştirdiğini ve neyi ham bıraktığını anlamanız gerekiyor
|
||||
summary: İsteğe bağlı paketlenmiş bir Plugin ile gürültülü exec ve bash araç sonuçlarını sıkıştırın
|
||||
title: Tokenjuice
|
||||
x-i18n:
|
||||
generated_at: "2026-04-22T08:56:00Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 9b9a1054c9b1cc62e43ac6d5904c7790f9b27d8e0d0700c9da6e287c00e91783
|
||||
source_path: tools/tokenjuice.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Tokenjuice
|
||||
|
||||
`tokenjuice`, komut zaten çalıştırıldıktan sonra gürültülü `exec` ve `bash`
|
||||
araç sonuçlarını sıkıştıran isteğe bağlı paketlenmiş bir Plugin'dir.
|
||||
|
||||
Komutun kendisini değil, döndürülen `tool_result` değerini değiştirir.
|
||||
Tokenjuice shell girdisini yeniden yazmaz, komutları yeniden çalıştırmaz veya
|
||||
çıkış kodlarını değiştirmez.
|
||||
|
||||
Bugün bu, Tokenjuice'ın gömülü `tool_result` yoluna bağlandığı ve oturuma geri
|
||||
dönen çıktıyı kırptığı Pi gömülü çalıştırmaları için geçerlidir.
|
||||
|
||||
## Plugin'i etkinleştirin
|
||||
|
||||
Hızlı yol:
|
||||
|
||||
```bash
|
||||
openclaw config set plugins.entries.tokenjuice.enabled true
|
||||
```
|
||||
|
||||
Eşdeğeri:
|
||||
|
||||
```bash
|
||||
openclaw plugins enable tokenjuice
|
||||
```
|
||||
|
||||
OpenClaw bu Plugin'i zaten içerir. Ayrı bir `plugins install`
|
||||
veya `tokenjuice install openclaw` adımı yoktur.
|
||||
|
||||
Yapılandırmayı doğrudan düzenlemeyi tercih ederseniz:
|
||||
|
||||
```json5
|
||||
{
|
||||
plugins: {
|
||||
entries: {
|
||||
tokenjuice: {
|
||||
enabled: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
## tokenjuice neyi değiştirir
|
||||
|
||||
- Gürültülü `exec` ve `bash` sonuçlarını, oturuma geri beslenmeden önce sıkıştırır.
|
||||
- Özgün komut çalıştırmasını değiştirmeden bırakır.
|
||||
- Tokenjuice'ın ham bırakması gereken tam dosya içeriği okumalarını ve diğer komutları korur.
|
||||
- İsteğe bağlı kalır: her yerde birebir çıktı istiyorsanız Plugin'i devre dışı bırakın.
|
||||
|
||||
## Çalıştığını doğrulayın
|
||||
|
||||
1. Plugin'i etkinleştirin.
|
||||
2. `exec` çağırabilen bir oturum başlatın.
|
||||
3. `git status` gibi gürültülü bir komut çalıştırın.
|
||||
4. Döndürülen araç sonucunun ham shell çıktısından daha kısa ve daha yapılandırılmış olduğunu kontrol edin.
|
||||
|
||||
## Plugin'i devre dışı bırakın
|
||||
|
||||
```bash
|
||||
openclaw config set plugins.entries.tokenjuice.enabled false
|
||||
```
|
||||
|
||||
Veya:
|
||||
|
||||
```bash
|
||||
openclaw plugins disable tokenjuice
|
||||
```
|
||||
Loading…
Reference in New Issue
Block a user