chore(i18n): refresh tr translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-21 19:22:47 +00:00
parent 1f7f087f5e
commit 7ad8e1abac
9 changed files with 954 additions and 994 deletions

View File

@ -1,46 +1,46 @@
---
read_when:
- Devam eden veya yakın zamanda tamamlanmış arka plan çalışmalarını inceleme
- Ayrılmış ajan çalıştırmaları için teslimat hatalarını ayıklama
- Devam eden veya yakın zamanda tamamlanan arka plan çalışmalarını inceleme
- Ayrılmış aracı çalıştırmaları için teslimat hatalarını ayıklama
- Arka plan çalıştırmalarının oturumlar, Cron ve Heartbeat ile nasıl ilişkili olduğunu anlama
summary: ACP çalıştırmaları, alt ajanlar, izole Cron işleri ve CLI işlemleri için arka plan görev takibi
summary: ACP çalıştırmaları, alt aracıları, yalıtılmış Cron işleri ve CLI işlemleri için arka plan görev takibi
title: Arka Plan Görevleri
x-i18n:
generated_at: "2026-04-21T08:56:42Z"
generated_at: "2026-04-21T19:20:41Z"
model: gpt-5.4
provider: openai
source_hash: ba5511b1c421bdf505fc7d34f09e453ac44e85213fcb0f082078fa957aa91fe7
source_hash: a4cd666b3eaffde8df0b5e1533eb337e44a0824824af6f8a240f18a89f71b402
source_path: automation/tasks.md
workflow: 15
---
# Arka Plan Görevleri
> **Zamanlama mı arıyorsunuz?** Doğru mekanizmayı seçmek için [Otomasyon ve Görevler](/tr/automation) sayfasına bakın. Bu sayfa arka plan çalışmalarını **takip etmeyi** kapsar, zamanlamayı değil.
> **Zamanlama mı arıyorsunuz?** Doğru mekanizmayı seçmek için [Otomasyon ve Görevler](/tr/automation) sayfasına bakın. Bu sayfa arka plan çalışmalarını **izlemeyi** kapsar, zamanlamayı değil.
Arka plan görevleri, **ana konuşma oturumunuzun dışında** çalışan işleri izler:
ACP çalıştırmaları, alt ajan başlatmaları, izole Cron işi yürütmeleri ve CLI tarafından başlatılan işlemler.
ACP çalıştırmaları, alt aracı başlatmaları, yalıtılmış Cron işi yürütmeleri ve CLI tarafından başlatılan işlemler.
Görevler oturumların, Cron işlerinin veya Heartbeat'lerin yerini **almaz** — bunlar, ayrılmış işlerin ne yaptığını, ne zaman yaptığını ve başarılı olup olmadığını kaydeden **etkinlik defteridir**.
Görevler oturumların, Cron işlerinin veya Heartbeat'lerin yerini **almaz** — bunlar, ayrılmış olarak hangi işin gerçekleştiğini, ne zaman gerçekleştiğini ve başarılı olup olmadığını kaydeden **etkinlik defteridir**.
<Note>
Her ajan çalıştırması bir görev oluşturmaz. Heartbeat dönüşleri ve normal etkileşimli sohbetler oluşturmaz. Tüm Cron yürütmeleri, ACP başlatmaları, alt ajan başlatmaları ve CLI ajan komutları oluşturur.
Her aracı çalıştırması bir görev oluşturmaz. Heartbeat dönüşleri ve normal etkileşimli sohbet oluşturmaz. Tüm Cron yürütmeleri, ACP başlatmaları, alt aracı başlatmaları ve CLI aracı komutları oluşturur.
</Note>
## Kısaca
## Kısa özet
- Görevler zamanlayıcı değil, **kaydedicidir** — Cron ve Heartbeat işin _ne zaman_ çalışacağını belirler, görevler _ne olduğunu_ izler.
- ACP, alt ajanlar, tüm Cron işleri ve CLI işlemleri görev oluşturur. Heartbeat dönüşleri oluşturmaz.
- Her görev `queued → running → terminal` aşamalarından geçer (`succeeded`, `failed`, `timed_out`, `cancelled` veya `lost`).
- Cron görevleri, Cron çalışma zamanı işi hâlâ sahipleniyorsa etkin kalır; sohbet destekli CLI görevleri yalnızca sahibi olan çalıştırma bağlamı hâlâ etkinse etkin kalır.
- Tamamlama push odaklıdır: ayrılmış işler doğrudan bildirim gönderebilir veya
bittiğinde istekte bulunan oturumu/Heartbeat'i uyandırabilir; bu nedenle durum yoklama döngüleri
- Görevler zamanlayıcı değil, **kayıttır** — işin _ne zaman_ çalışacağına Cron ve Heartbeat karar verir, _ne olduğunu_ görevler izler.
- ACP, alt aracılar, tüm Cron işleri ve CLI işlemleri görev oluşturur. Heartbeat dönüşleri oluşturmaz.
- Her görev `queued → running → terminal` (succeeded, failed, timed_out, cancelled veya lost) akışından geçer.
- Cron görevleri, Cron çalışma zamanı işi hâlâ sahiplenirken canlı kalır; sohbet destekli CLI görevleri yalnızca sahip oldukları çalıştırma bağlamı hâlâ etkinse canlı kalır.
- Tamamlama itme odaklıdır: ayrılmış işler doğrudan bildirim gönderebilir veya bittiğinde
istekte bulunan oturumu/Heartbeat'i uyandırabilir; bu nedenle durum yoklama döngüleri
genellikle yanlış yaklaşımdır.
- İzole Cron çalıştırmaları ve alt ajan tamamlamaları, son temizleme kayıtlarından önce çocuk oturumlarına ait izlenen tarayıcı sekmelerini/süreçlerini en iyi çabayla temizler.
- İzole Cron teslimatı, alt soy alt ajan işi hâlâ boşalırken eski ara üst yanıtları bastırır ve teslimattan önce gelirse son alt soy çıktısını tercih eder.
- Tamamlama bildirimleri doğrudan bir kanala teslim edilir veya sonraki Heartbeat için kuyruğa alınır.
- Yalıtılmış Cron çalıştırmaları ve alt aracı tamamlanmaları, son temizleme kayıt işleminden önce ilgili alt oturumları için izlenen tarayıcı sekmelerini/süreçlerini en iyi çabayla temizler.
- Yalıtılmış Cron teslimi, soy alt aracı işi hâlâ boşalırken eski ara üst yanıtlarını bastırır ve teslimattan önce ulaşırsa son soy çıktısını tercih eder.
- Tamamlama bildirimleri doğrudan bir kanala teslim edilir veya bir sonraki Heartbeat için kuyruğa alınır.
- `openclaw tasks list` tüm görevleri gösterir; `openclaw tasks audit` sorunları ortaya çıkarır.
- Terminal kayıtlar 7 gün boyunca tutulur, ardından otomatik olarak budanır.
- Terminal kayıtları 7 gün boyunca tutulur, ardından otomatik olarak budanır.
## Hızlı başlangıç
@ -52,16 +52,16 @@ openclaw tasks list
openclaw tasks list --runtime acp
openclaw tasks list --status running
# Belirli bir görevin ayrıntılarını göster (kimlik, çalıştırma kimliği veya oturum anahtarına göre)
# Belirli bir görevin ayrıntılarını göster (kimliğe, çalıştırma kimliğine veya oturum anahtarına göre)
openclaw tasks show <lookup>
# Çalışan bir görevi iptal et (çocuk oturumu sonlandırır)
# Çalışan bir görevi iptal et (alt oturumu sonlandırır)
openclaw tasks cancel <lookup>
# Bir görev için bildirim ilkesini değiştir
openclaw tasks notify <lookup> state_changes
# Sistem durumu denetimi çalıştır
# Sağlık denetimi çalıştır
openclaw tasks audit
# Bakımı önizle veya uygula
@ -74,21 +74,21 @@ openclaw tasks flow show <lookup>
openclaw tasks flow cancel <lookup>
```
## Bir görevi ne oluşturur
## Hangi durumlarda görev oluşturulur
| Kaynak | Çalışma zamanı türü | Görev kaydının oluşturulduğu zaman | Varsayılan bildirim ilkesi |
| ---------------------- | ------------------- | ----------------------------------------------------- | -------------------------- |
| ACP arka plan çalıştırmaları | `acp` | Bir çocuk ACP oturumu başlatılırken | `done_only` |
| Alt ajan orkestrasyonu | `subagent` | `sessions_spawn` ile bir alt ajan başlatılırken | `done_only` |
| Cron işleri (tüm türler) | `cron` | Her Cron yürütmesinde (ana oturum ve izole) | `silent` |
| ACP arka plan çalıştırmaları | `acp` | Bir alt ACP oturumu başlatılırken | `done_only` |
| Alt aracı orkestrasyonu | `subagent` | `sessions_spawn` üzerinden bir alt aracı başlatılırken | `done_only` |
| Cron işleri (tüm türler) | `cron` | Her Cron yürütmesinde (ana oturum ve yalıtılmış) | `silent` |
| CLI işlemleri | `cli` | Gateway üzerinden çalışan `openclaw agent` komutları | `silent` |
| Ajan medya işleri | `cli` | Oturum destekli `video_generate` çalıştırmaları | `silent` |
| Aracı medya işleri | `cli` | Oturum destekli `video_generate` çalıştırmaları | `silent` |
Ana oturum Cron görevleri varsayılan olarak `silent` bildirim ilkesini kullanır — izleme için kayıt oluştururlar ancak bildirim üretmezler. İzole Cron görevleri de varsayılan olarak `silent` kullanır, ancak kendi oturumlarında çalıştıkları için daha görünürdürler.
Ana oturum Cron görevleri varsayılan olarak `silent` bildirim ilkesi kullanır — izleme için kayıt oluştururlar ancak bildirim üretmezler. Yalıtılmış Cron görevleri de varsayılan olarak `silent` kullanır, ancak kendi oturumlarında çalıştıkları için daha görünürdür.
Oturum destekli `video_generate` çalıştırmaları da `silent` bildirim ilkesini kullanır. Yine de görev kayıtları oluştururlar, ancak tamamlama iç bir uyandırma olarak özgün ajan oturumuna geri verilir; böylece ajan takip mesajını yazabilir ve tamamlanmış videoyu kendisi ekleyebilir. `tools.media.asyncCompletion.directSend` seçeneğini etkinleştirirseniz, eşzamansız `music_generate` ve `video_generate` tamamlamaları, istekte bulunan oturum uyandırma yoluna geri düşmeden önce önce doğrudan kanal teslimatını dener.
Oturum destekli `video_generate` çalıştırmaları da `silent` bildirim ilkesi kullanır. Yine de görev kaydı oluştururlar, ancak tamamlama özgün aracı oturumuna dahili bir uyandırma olarak geri iletilir; böylece aracı devam mesajını yazabilir ve tamamlanan videoyu kendisi ekleyebilir. `tools.media.asyncCompletion.directSend` seçeneğini etkinleştirirseniz, eşzamansız `music_generate` ve `video_generate` tamamlanmaları önce doğrudan kanal teslimini dener, ardından istekte bulunan oturumu uyandırma yoluna geri döner.
Oturum destekli bir `video_generate` görevi hâlâ etkinken, araç bir koruma rayı olarak da davranır: aynı oturumda yinelenen `video_generate` çağrıları ikinci bir eşzamanlı üretim başlatmak yerine etkin görev durumunu döndürür. Ajan tarafından açık bir ilerleme/durum sorgulaması istediğinizde `action: "status"` kullanın.
Oturum destekli bir `video_generate` görevi hâlâ etkin durumdayken, araç aynı zamanda bir güvenlik sınırı olarak da davranır: aynı oturumda yinelenen `video_generate` çağrıları ikinci bir eşzamanlı üretim başlatmak yerine etkin görev durumunu döndürür. Aracı tarafında açık bir ilerleme/durum sorgusu istediğinizde `action: "status"` kullanın.
**Görev oluşturmayanlar:**
@ -101,59 +101,57 @@ Oturum destekli bir `video_generate` görevi hâlâ etkinken, araç bir koruma r
```mermaid
stateDiagram-v2
[*] --> queued
queued --> running : ajan başlar
running --> succeeded : başarıyla tamamlanır
running --> failed : hata
running --> timed_out : zaman aşımııldı
running --> cancelled : operatör iptal eder
queued --> lost : oturum 5 dakikadan uzun süredir yok
running --> lost : oturum 5 dakikadan uzun süredir yok
queued --> running : agent starts
running --> succeeded : completes ok
running --> failed : error
running --> timed_out : timeout exceeded
running --> cancelled : operator cancels
queued --> lost : session gone > 5 min
running --> lost : session gone > 5 min
```
| Durum | Anlamı |
| ----------- | -------------------------------------------------------------------------- |
| `queued` | Oluşturuldu, ajanın başlaması bekleniyor |
| `running` | Ajan dönüşü etkin olarak yürütülüyor |
| `queued` | Oluşturuldu, aracının başlaması bekleniyor |
| `running` | Aracı dönüşü etkin olarak yürütülüyor |
| `succeeded` | Başarıyla tamamlandı |
| `failed` | Bir hatayla tamamlandı |
| `timed_out` | Yapılandırılmış zaman aşımını aştı |
| `cancelled` | Operatör tarafından `openclaw tasks cancel` ile durduruldu |
| `timed_out` | Yapılandırılmış zaman aşımııldı |
| `cancelled` | Operatör tarafından `openclaw tasks cancel` ile durduruldu |
| `lost` | Çalışma zamanı, 5 dakikalık tolerans süresinden sonra yetkili destek durumunu kaybetti |
Geçişler otomatik olarak gerçekleşir — ilişkili ajan çalıştırması sona erdiğinde görev durumu buna göre güncellenir.
Geçişler otomatik gerçekleşir — ilişkili aracı çalıştırması bittiğinde görev durumu buna uygun olarak güncellenir.
`lost` çalışma zamanı farkındalığına sahiptir:
`lost` çalışma zamanına duyarlıdır:
- ACP görevleri: destekleyen ACP çocuk oturumu meta verisi kayboldu.
- Alt ajan görevleri: destekleyen çocuk oturum hedef ajan deposundan kayboldu.
- Cron görevleri: Cron çalışma zamanı artık işi etkin olarak izlemiyor.
- CLI görevleri: izole çocuk oturum görevleri çocuk oturumu kullanır; sohbet destekli CLI görevleri bunun yerine canlı çalıştırma bağlamını kullanır, bu yüzden kalıcı kanal/grup/doğrudan oturum satırları onları etkin tutmaz.
- ACP görevleri: destekleyen ACP alt oturum meta verileri kayboldu.
- Alt aracı görevleri: destekleyen alt oturum hedef aracı deposundan kayboldu.
- Cron görevleri: Cron çalışma zamanı işi artık etkin olarak izlemiyor.
- CLI görevleri: yalıtılmış alt oturum görevleri alt oturumu kullanır; sohbet destekli CLI görevleri ise bunun yerine canlı çalıştırma bağlamını kullanır, bu yüzden kalıcı kanal/grup/doğrudan oturum satırları onları canlı tutmaz.
## Teslimat ve bildirimler
Bir görev terminal duruma ulaştığında OpenClaw size bildirim gönderir. İki teslimat yolu vardır:
Bir görev terminal duruma ulaştığında OpenClaw size bildirim gönderir. İki teslim yolu vardır:
**Doğrudan teslimat** — görevin bir kanal hedefi varsa (`requesterOrigin`), tamamlama mesajı doğrudan o kanala gider (Telegram, Discord, Slack vb.). Alt ajan tamamlamalarında OpenClaw, mevcut olduğunda bağlı ileti dizisi/konu yönlendirmesini de korur ve doğrudan teslimattan vazgeçmeden önce istekte bulunan oturumun depolanan rotasından (`lastChannel` / `lastTo` / `lastAccountId`) eksik bir `to` / hesabı doldurabilir.
**Doğrudan teslim** — görevin bir kanal hedefi varsa (`requesterOrigin`), tamamlama mesajı doğrudan o kanala gider (Telegram, Discord, Slack vb.). Alt aracı tamamlanmalarında OpenClaw ayrıca mümkün olduğunda bağlı iş parçacığı/konu yönlendirmesini korur ve doğrudan teslimden vazgeçmeden önce istekte bulunan oturumun saklanan rotasından (`lastChannel` / `lastTo` / `lastAccountId`) eksik bir `to` / hesabı doldurabilir.
**Oturum kuyruğuna alınmış teslimat** — doğrudan teslimat başarısız olursa veya kaynak ayarlanmamışsa, güncelleme istekte bulunanın oturumunda sistem olayı olarak kuyruğa alınır ve sonraki Heartbeat'te görünür.
**Oturum kuyruğuna alınmış teslim** — doğrudan teslim başarısız olursa veya kaynak ayarlanmamışsa, güncelleme istekte bulunanın oturumunda bir sistem olayı olarak kuyruğa alınır ve bir sonraki Heartbeat'te görünür.
<Tip>
Görev tamamlaması anında bir Heartbeat uyandırması tetikler; böylece sonucu hızlıca görürsünüz — bir sonraki zamanlanmış Heartbeat tikini beklemeniz gerekmez.
Görev tamamlanması, sonucu hızlıca görmeniz için anında bir Heartbeat uyandırması tetikler — bir sonraki planlanmış Heartbeat işaretini beklemeniz gerekmez.
</Tip>
Bu, olağan iş akışının push tabanlı olduğu anlamına gelir: ayrılmış işi bir kez başlatın, sonra
tamamlandığında çalışma zamanının sizi uyandırmasına veya bilgilendirmesine izin verin. Görev durumunu yalnızca
hata ayıklama, müdahale veya açık bir denetim gerektiğinde yoklayın.
Bu, alışılmış iş akışının itme temelli olduğu anlamına gelir: ayrılmış işi bir kez başlatın, ardından çalışma zamanının tamamlandığında sizi uyandırmasına veya bilgilendirmesine izin verin. Görev durumunu yalnızca hata ayıklama, müdahale veya açık bir denetim gerektiğinde yoklayın.
### Bildirim ilkeleri
Her görev hakkında ne kadar bilgi alacağınızı kontrol edin:
Her görev hakkında ne kadar bilgi alacağınızı denetleyin:
| İlke | Teslim edilen içerik |
| --------------------- | ------------------------------------------------------------------------ |
| `done_only` (varsayılan) | Yalnızca terminal durum (`succeeded`, `failed` vb.) — **varsayılan budur** |
| `state_changes` | Her durum geçişi ve ilerleme güncellemesi |
| `silent` | Hiçbir şey |
| İlke | Teslim edilen |
| --------------------- | ------------------------------------------------------------------------- |
| `done_only` (varsayılan) | Yalnızca terminal durum (succeeded, failed vb.) — **varsayılan budur** |
| `state_changes` | Her durum geçişi ve ilerleme güncellemesi |
| `silent` | Hiçbir şey |
Bir görev çalışırken ilkeyi değiştirin:
@ -169,7 +167,7 @@ openclaw tasks notify <lookup> state_changes
openclaw tasks list [--runtime <acp|subagent|cron|cli>] [--status <status>] [--json]
```
Çıktı sütunları: Görev Kimliği, Tür, Durum, Teslimat, Çalıştırma Kimliği, Çocuk Oturum, Özet.
Çıktı sütunları: Görev Kimliği, Tür, Durum, Teslimat, Çalıştırma Kimliği, Alt Oturum, Özet.
### `tasks show`
@ -177,7 +175,7 @@ openclaw tasks list [--runtime <acp|subagent|cron|cli>] [--status <status>] [--j
openclaw tasks show <lookup>
```
Arama belirteci bir görev kimliği, çalıştırma kimliği veya oturum anahtarını kabul eder. Zamanlama, teslimat durumu, hata ve terminal özet dahil tam kaydı gösterir.
Arama belirteci bir görev kimliğini, çalıştırma kimliğini veya oturum anahtarını kabul eder. Zamanlama, teslim durumu, hata ve terminal özet dahil tam kaydı gösterir.
### `tasks cancel`
@ -185,7 +183,7 @@ Arama belirteci bir görev kimliği, çalıştırma kimliği veya oturum anahtar
openclaw tasks cancel <lookup>
```
ACP ve alt ajan görevleri için bu, çocuk oturumu sonlandırır. CLI tarafından izlenen görevler için iptal görev kayıt defterine kaydedilir (ayrı bir çocuk çalışma zamanı tanıtıcısı yoktur). Durum `cancelled` olarak değişir ve uygunsa bir teslimat bildirimi gönderilir.
ACP ve alt aracı görevleri için bu, alt oturumu sonlandırır. CLI ile izlenen görevlerde iptal, görev kayıt defterine işlenir (ayrı bir alt çalışma zamanı tanıtıcısı yoktur). Durum `cancelled` durumuna geçer ve uygunsa teslim bildirimi gönderilir.
### `tasks notify`
@ -201,14 +199,14 @@ openclaw tasks audit [--json]
Operasyonel sorunları ortaya çıkarır. Sorun tespit edildiğinde bulgular `openclaw status` içinde de görünür.
| Bulgu | Önem derecesi | Tetikleyici |
| ------------------------- | ------------- | ------------------------------------------------------ |
| `stale_queued` | warn | 10 dakikadan uzun süredir kuyrukta |
| `stale_running` | error | 30 dakikadan uzun süredir çalışıyor |
| `lost` | error | Çalışma zamanı destekli görev sahipliği kayboldu |
| `delivery_failed` | warn | Teslimat başarısız oldu ve bildirim ilkesi `silent` değil |
| `missing_cleanup` | warn | Temizleme zaman damgası olmayan terminal görev |
| `inconsistent_timestamps` | warn | Zaman çizelgesi ihlali (örneğin başlamadan bitmiş) |
| Bulgu | Önem derecesi | Tetikleyici |
| ------------------------- | ------------- | ---------------------------------------------------- |
| `stale_queued` | warn | 10 dakikadan uzun süredir kuyrukta |
| `stale_running` | error | 30 dakikadan uzun süredir çalışıyor |
| `lost` | error | Çalışma zamanı destekli görev sahipliği kayboldu |
| `delivery_failed` | warn | Teslim başarısız oldu ve bildirim ilkesi `silent` değil |
| `missing_cleanup` | warn | Temizleme zaman damgası olmayan terminal görev |
| `inconsistent_timestamps` | warn | Zaman çizelgesi ihlali (örneğin başlamadan bitmiş) |
### `tasks maintenance`
@ -217,22 +215,21 @@ openclaw tasks maintenance [--json]
openclaw tasks maintenance --apply [--json]
```
Bunu, görevler ve TaskFlow durumu için mutabakat, temizleme damgalaması ve budamayı
önizlemek veya uygulamak için kullanın.
Bunu görevler ve Task Flow durumu için mutabakat, temizleme damgalama ve budamayı önizlemek veya uygulamak için kullanın.
Mutabakat çalışma zamanı farkındalığına sahiptir:
Mutabakat çalışma zamanına duyarlıdır:
- ACP/alt ajan görevleri destekleyen çocuk oturumu kontrol eder.
- Cron görevleri Cron çalışma zamanının işi hâlâ sahiplenip sahiplenmediğini kontrol eder.
- Sohbet destekli CLI görevleri yalnızca sohbet oturum satırını değil, sahibi olan canlı çalıştırma bağlamını kontrol eder.
- ACP/alt aracı görevleri, onları destekleyen alt oturumu denetler.
- Cron görevleri, Cron çalışma zamanının işi hâlâ sahiplenip sahiplenmediğini denetler.
- Sohbet destekli CLI görevleri, yalnızca sohbet oturumu satırını değil, sahibi olan canlı çalıştırma bağlamını denetler.
Tamamlama temizliği de çalışma zamanı farkındalığına sahiptir:
Tamamlama temizliği de çalışma zamanına duyarlıdır:
- Alt ajan tamamlaması, duyuru temizliği devam etmeden önce çocuk oturum için izlenen tarayıcı sekmelerini/süreçlerini en iyi çabayla kapatır.
- İzole Cron tamamlaması, çalıştırma tamamen kapanmadan önce Cron oturumu için izlenen tarayıcı sekmelerini/süreçlerini en iyi çabayla kapatır.
- İzole Cron teslimatı, gerektiğinde alt soy alt ajan takibini bekler ve
bunu duyurmak yerine eski üst onay metnini bastırır.
- Alt ajan tamamlama teslimatı en son görünür yardımcı metni tercih eder; bu boşsa temizlenmiş en son `tool`/`toolResult` metnine geri düşer ve yalnızca zaman aşımına uğrayan araç çağrısı çalıştırmaları kısa bir kısmi ilerleme özetine indirgenebilir.
- Alt aracı tamamlanması, duyuru temizliği devam etmeden önce alt oturum için izlenen tarayıcı sekmelerini/süreçlerini en iyi çabayla kapatır.
- Yalıtılmış Cron tamamlanması, çalıştırma tamamen kapatılmadan önce Cron oturumu için izlenen tarayıcı sekmelerini/süreçlerini en iyi çabayla kapatır.
- Yalıtılmış Cron teslimi, gerektiğinde soy alt aracı takip işinin bitmesini bekler ve
eski üst onay metnini duyurmak yerine bastırır.
- Alt aracı tamamlama teslimi, en son görünür yardımcı metnini tercih eder; bu boşsa temizlenmiş en son tool/toolResult metnine geri döner ve yalnızca zaman aşımına uğramış tool-call çalıştırmaları kısa bir kısmi ilerleme özetine indirgenebilir. Terminal failed çalıştırmaları, yakalanan yanıt metnini yeniden oynatmadan hata durumunu duyurur.
- Temizleme hataları gerçek görev sonucunu gizlemez.
### `tasks flow list|show|cancel`
@ -243,21 +240,20 @@ openclaw tasks flow show <lookup> [--json]
openclaw tasks flow cancel <lookup>
```
Bunları, tek bir arka plan görev kaydından ziyade orkestre eden TaskFlow sizin için
önemliyse kullanın.
Bir tekil arka plan görev kaydından ziyade orkestrasyonu yapan TaskFlow sizin için önemliyse bunları kullanın.
## Sohbet görev panosu (`/tasks`)
Herhangi bir sohbet oturumunda o oturuma bağlı arka plan görevlerini görmek için `/tasks` kullanın. Pano,
etkin ve yakın zamanda tamamlanmış görevleri çalışma zamanı, durum, zamanlama ve ilerleme veya hata ayrıntılarıyla gösterir.
Bir oturuma bağlı arka plan görevlerini görmek için herhangi bir sohbet oturumunda `/tasks` kullanın. Pano, etkin ve yakın zamanda tamamlanan görevleri çalışma zamanı, durum, zamanlama ve ilerleme veya hata ayrıntısıyla gösterir.
Geçerli oturumun görünür bağlı görevi yoksa, `/tasks` diğer oturum ayrıntılarını sızdırmadan size yine de genel bir görünüm sunmak için ajan yerel görev sayılarına geri düşer.
Geçerli oturumda görünür bağlantılı görev yoksa, `/tasks` aracı-yerel görev sayılarına geri döner;
böylece diğer oturum ayrıntılarını sızdırmadan yine de genel bir görünüm elde edersiniz.
Tam operatör defteri için CLI'yi kullanın: `openclaw tasks list`.
Tam operatör kayıt defteri için CLI'ı kullanın: `openclaw tasks list`.
## Durum entegrasyonu (görev baskısı)
`openclaw status`, tek bakışta görülebilen bir görev özeti içerir:
`openclaw status`, bir bakışta görülebilen bir görev özeti içerir:
```
Tasks: 3 queued · 2 running · 1 issues
@ -269,15 +265,15 @@ Tasks: 3 queued · 2 running · 1 issues
- **failures**`failed` + `timed_out` + `lost` sayısı
- **byRuntime**`acp`, `subagent`, `cron`, `cli` bazında döküm
Hem `/status` hem de `session_status` aracı, temizleme farkındalığına sahip bir görev anlık görüntüsü kullanır: etkin görevler
tercih edilir, eski tamamlanmış satırlar gizlenir ve yakın tarihli hatalar yalnızca etkin çalışma
kalmadığında gösterilir. Bu, durum kartının şu anda önemli olan şeye odaklanmasını sağlar.
Hem `/status` hem de `session_status` aracı, temizleme farkındalığı olan bir görev anlık görüntüsü kullanır: etkin görevler
tercih edilir, eski tamamlanmış satırlar gizlenir ve yakın tarihli hatalar yalnızca etkin
kalmadığında gösterilir. Bu, durum kartının şu anda önemli olana odaklanmasını sağlar.
## Depolama ve bakım
### Görevlerin bulunduğu yer
Görev kayıtları SQLite içinde şurada kalıcı olarak saklanır:
Görev kayıtları SQLite içinde şu konumda kalıcı olarak saklanır:
```
$OPENCLAW_STATE_DIR/tasks/runs.sqlite
@ -287,46 +283,46 @@ Kayıt defteri, Gateway başlangıcında belleğe yüklenir ve yeniden başlatma
### Otomatik bakım
Bir süpürücü her **60 saniyede** bir çalışır ve üç şeyi yönetir:
Her **60 saniyede** bir çalışan bir temizleyici üç işi yönetir:
1. **Mutabakat** — etkin görevlerin hâlâ yetkili çalışma zamanı desteğine sahip olup olmadığını kontrol eder. ACP/alt ajan görevleri çocuk oturum durumunu, Cron görevleri etkin iş sahipliğini ve sohbet destekli CLI görevleri sahibi olan çalıştırma bağlamını kullanır. Bu destek durumu 5 dakikadan uzun süre yoksa görev `lost` olarak işaretlenir.
2. **Temizleme damgalaması** — terminal görevlerde bir `cleanupAfter` zaman damgası ayarlar (`endedAt + 7 gün`).
1. **Mutabakat** — etkin görevlerin hâlâ yetkili çalışma zamanı desteğine sahip olup olmadığını denetler. ACP/alt aracı görevleri alt oturum durumunu, Cron görevleri etkin iş sahipliğini, sohbet destekli CLI görevleri ise sahip olan çalıştırma bağlamını kullanır. Bu destek durumu 5 dakikadan uzun süre yoksa görev `lost` olarak işaretlenir.
2. **Temizleme damgalama** — terminal görevlerde bir `cleanupAfter` zaman damgası ayarlar (`endedAt + 7 days`).
3. **Budama**`cleanupAfter` tarihini geçmiş kayıtları siler.
**Saklama süresi**: terminal görev kayıtları **7 gün** tutulur, ardından otomatik olarak budanır. Yapılandırma gerekmez.
## Görevlerin diğer sistemlerle ilişkisi
### Görevler ve TaskFlow
### Görevler ve Task Flow
[TaskFlow](/tr/automation/taskflow), arka plan görevlerinin üstündeki akış orkestrasyon katmanıdır. Tek bir akış, ömrü boyunca yönetilen veya yansıtılmış eşzamanlama modlarını kullanarak birden çok görevi koordine edebilir. Tek tek görev kayıtlarını incelemek için `openclaw tasks`, orkestre eden akışı incelemek için `openclaw tasks flow` kullanın.
[Task Flow](/tr/automation/taskflow), arka plan görevlerinin üzerindeki akış orkestrasyon katmanıdır. Tek bir akış, ömrü boyunca yönetilen veya yansıtılmış eşzamanlama modlarını kullanarak birden fazla görevi koordine edebilir. Tek tek görev kayıtlarını incelemek için `openclaw tasks`, orkestrasyonu yapan akışı incelemek için `openclaw tasks flow` kullanın.
Ayrıntılar için [TaskFlow](/tr/automation/taskflow) sayfasına bakın.
Ayrıntılar için [Task Flow](/tr/automation/taskflow) sayfasına bakın.
### Görevler ve Cron
Bir Cron işi **tanımı** `~/.openclaw/cron/jobs.json` içinde bulunur; çalışma zamanı yürütme durumu onun yanında `~/.openclaw/cron/jobs-state.json` içinde bulunur. **Her** Cron yürütmesi bir görev kaydı oluşturur — hem ana oturum hem de izole olanlar. Ana oturum Cron görevleri varsayılan olarak `silent` bildirim ilkesini kullanır; böylece bildirim üretmeden izleme yaparlar.
Bir Cron işi **tanımı** `~/.openclaw/cron/jobs.json` içinde bulunur; çalışma zamanı yürütme durumu ise yanında `~/.openclaw/cron/jobs-state.json` içinde bulunur. **Her** Cron yürütmesi bir görev kaydı oluşturur — hem ana oturum hem de yalıtılmış yürütmeler. Ana oturum Cron görevleri varsayılan olarak `silent` bildirim ilkesi kullanır; böylece bildirim üretmeden izlenirler.
Bkz. [Cron İşleri](/tr/automation/cron-jobs).
### Görevler ve Heartbeat
Heartbeat çalıştırmaları ana oturum dönüşleridir — görev kaydı oluşturmazlar. Bir görev tamamlandığında, sonucu hızlıca görmeniz için bir Heartbeat uyandırmasını tetikleyebilir.
Heartbeat çalıştırmaları ana oturum dönüşleridir — görev kaydı oluşturmazlar. Bir görev tamamlandığında, sonucu hızlıca görebilmeniz için bir Heartbeat uyandırmasını tetikleyebilir.
Bkz. [Heartbeat](/tr/gateway/heartbeat).
### Görevler ve oturumlar
Bir görev `childSessionKey` (işin çalıştığı yer) ve `requesterSessionKey` (işi kimin başlattığı) değerlerine başvurabilir. Oturumlar konuşma bağlamıdır; görevler bunun üzerindeki etkinlik takibidir.
Bir görev `childSessionKey` (işin yürüdüğü yer) ve `requesterSessionKey` (işi kimin başlattığı) değerlerine başvurabilir. Oturumlar konuşma bağlamıdır; görevler ise bunun üzerindeki etkinlik izlemesidir.
### Görevler ve ajan çalıştırmaları
### Görevler ve aracı çalıştırmaları
Bir görevin `runId` değeri, işi yapan ajan çalıştırmasına bağlanır. Ajan yaşam döngüsü olayları (başlangıç, bitiş, hata) görev durumunu otomatik olarak günceller — yaşam döngüsünü elle yönetmeniz gerekmez.
Bir görevin `runId` değeri, işi yapan aracı çalıştırmasına bağlanır. Aracı yaşam döngüsü olayları (başlangıç, bitiş, hata) görev durumunu otomatik olarak günceller — yaşam döngüsünü elle yönetmeniz gerekmez.
## İlgili
- [Otomasyon ve Görevler](/tr/automation) — tüm otomasyon mekanizmalarına tek bakışta genel görünüm
- [TaskFlow](/tr/automation/taskflow) — görevlerin üzerindeki akış orkestrasyonu
- [Zamanlanmış Görevler](/tr/automation/cron-jobs) — arka plan çalışmasını zamanlama
- [Otomasyon ve Görevler](/tr/automation) — tüm otomasyon mekanizmalarına bir bakış
- [Task Flow](/tr/automation/taskflow) — görevlerin üzerindeki akış orkestrasyonu
- [Zamanlanmış Görevler](/tr/automation/cron-jobs) — arka plan işlerini zamanlama
- [Heartbeat](/tr/gateway/heartbeat) — periyodik ana oturum dönüşleri
- [CLI: Görevler](/cli/index#tasks) — CLI komut başvurusu

View File

@ -1,70 +1,70 @@
---
read_when:
- OpenClaw ile Synology Chat kurulumu
- Synology Chat webhook yönlendirmesinde hata ayıklama
summary: Synology Chat webhook kurulumu ve OpenClaw yapılandırması
- Synology Chat Webhook yönlendirmesinde hata ayıklama
summary: Synology Chat Webhook kurulumu ve OpenClaw yapılandırması
title: Synology Chat
x-i18n:
generated_at: "2026-04-05T13:45:48Z"
generated_at: "2026-04-21T19:20:40Z"
model: gpt-5.4
provider: openai
source_hash: ddb25fc6b53f896f15f43b4936d69ea071a29a91838a5b662819377271e89d81
source_hash: 7288e2aa873ee1a1f57861d839cfb44ff324e3d40a7f36da07c6ba43cbe1e6e6
source_path: channels/synology-chat.md
workflow: 15
---
# Synology Chat
Durum: Synology Chat webhook'larını kullanan paketlenmiş eklenti doğrudan mesaj kanalı.
Eklenti, Synology Chat giden webhook'larından gelen iletileri kabul eder ve yanıtları
bir Synology Chat gelen webhook'u üzerinden gönderir.
Durum: Synology Chat Webhooklarını kullanan paketlenmiş Plugin doğrudan mesaj kanalı.
Plugin, Synology Chat giden Webhooklarından gelen mesajları kabul eder ve yanıtları
Synology Chat gelen Webhooku üzerinden gönderir.
## Paketlenmiş eklenti
## Paketlenmiş Plugin
Synology Chat, mevcut OpenClaw sürümlerinde paketlenmiş bir eklenti olarak gelir, bu nedenle normal
Synology Chat, mevcut OpenClaw sürümlerinde paketlenmiş bir Plugin olarak gelir; bu nedenle normal
paketlenmiş derlemelerde ayrı bir kurulum gerekmez.
Daha eski bir derlemeyi veya Synology Chat'i içermeyen özel bir kurulumu kullanıyorsanız,
bunu manuel olarak yükleyin:
Eski bir derlemeyi veya Synology Chati içermeyen özel bir kurulumu kullanıyorsanız,
elle kurun:
Yerel bir checkout'tan yükleyin:
Yerel bir checkouttan kurulum:
```bash
openclaw plugins install ./path/to/local/synology-chat-plugin
```
Ayrıntılar: [Plugins](/tools/plugin)
Ayrıntılar: [Plugins](/tr/tools/plugin)
## Hızlı kurulum
1. Synology Chat eklentisinin kullanılabilir olduğundan emin olun.
1. Synology Chat Plugininin kullanılabilir olduğundan emin olun.
- Mevcut paketlenmiş OpenClaw sürümleri bunu zaten içerir.
- Eski/özel kurulumlar bunu yukarıdaki komutla bir kaynak checkout'tan manuel olarak ekleyebilir.
- `openclaw onboard` artık `openclaw channels add` ile aynı kanal kurulum listesinde Synology Chat'i gösterir.
- Eski/özel kurulumlar, yukarıdaki komutla bir kaynak checkouttan bunu elle ekleyebilir.
- `openclaw onboard` artık Synology Chati, `openclaw channels add` ile aynı kanal kurulum listesinde gösterir.
- Etkileşimsiz kurulum: `openclaw channels add --channel synology-chat --token <token> --url <incoming-webhook-url>`
2. Synology Chat entegrasyonlarında:
- Gelen bir webhook oluşturun ve URL'sini kopyalayın.
- Gizli token'ınızla giden bir webhook oluşturun.
3. Giden webhook URL'sini OpenClaw gateway'inize yönlendirin:
- Bir gelen Webhook oluşturun ve URLsini kopyalayın.
- Gizli tokenınız ile bir giden Webhook oluşturun.
3. Giden Webhook URLsini OpenClaw Gatewayinize yönlendirin:
- Varsayılan olarak `https://gateway-host/webhook/synology`.
- Veya özel `channels.synology-chat.webhookPath` yolunuz.
4. Kurulumu OpenClaw içinde tamamlayın.
- Rehberli: `openclaw onboard`
- Yönlendirmeli: `openclaw onboard`
- Doğrudan: `openclaw channels add --channel synology-chat --token <token> --url <incoming-webhook-url>`
5. Gateway'i yeniden başlatın ve Synology Chat botuna bir DM gönderin.
5. Gatewayi yeniden başlatın ve Synology Chat botuna bir DM gönderin.
Webhook kimlik doğrulama ayrıntıları:
- OpenClaw, giden webhook token'ını önce `body.token`, ardından
`?token=...`, sonra da başlıklardan kabul eder.
- Kabul edilen başlık biçimleri:
- OpenClaw, giden Webhook tokenını önce `body.token`, ardından
`?token=...`, ardından headerlardan kabul eder.
- Kabul edilen header biçimleri:
- `x-synology-token`
- `x-webhook-token`
- `x-openclaw-token`
- `Authorization: Bearer <token>`
- Boş veya eksik token'lar kapalı varsayılanla başarısız olur.
- Boş veya eksik tokenlar fail-closed olur.
Minimum yapılandırma:
Asgari yapılandırma:
```json5
{
@ -99,11 +99,11 @@ Yapılandırma değerleri ortam değişkenlerini geçersiz kılar.
## DM ilkesi ve erişim denetimi
- `dmPolicy: "allowlist"` önerilen varsayılandır.
- `allowedUserIds`, bir Synology kullanıcı kimliği listesi (veya virgülle ayrılmış dize) kabul eder.
- `allowlist` modunda boş bir `allowedUserIds` listesi yanlış yapılandırma olarak değerlendirilir ve webhook rotası başlatılmaz (herkese izin vermek için `dmPolicy: "open"` kullanın).
- `dmPolicy: "open"` herhangi bir göndericiye izin verir.
- `dmPolicy: "disabled"` DM'leri engeller.
- Yanıt alıcısı bağlama varsayılan olarak sabit sayısal `user_id` üzerinde kalır. `channels.synology-chat.dangerouslyAllowNameMatching: true`, yanıt teslimi için değiştirilebilir kullanıcı adı/takma ad aramasını yeniden etkinleştiren acil durum uyumluluk modudur.
- `allowedUserIds`, Synology kullanıcı kimliklerinden oluşan bir listeyi (veya virgülle ayrılmış bir dizeyi) kabul eder.
- `allowlist` modunda, boş bir `allowedUserIds` listesi yanlış yapılandırma olarak değerlendirilir ve Webhook rotası başlatılmaz (`allow-all` için `dmPolicy: "open"` kullanın).
- `dmPolicy: "open"` herhangi bir gönderene izin verir.
- `dmPolicy: "disabled"` DMleri engeller.
- Yanıt alıcısı bağlama varsayılan olarak kararlı sayısal `user_id` üzerinde kalır. `channels.synology-chat.dangerouslyAllowNameMatching: true`, yanıt teslimi için değiştirilebilir kullanıcı adı/takma ad aramasını yeniden etkinleştiren acil durum uyumluluk modudur.
- Eşleştirme onayları şu komutlarla çalışır:
- `openclaw pairing list synology-chat`
- `openclaw pairing approve synology-chat <CODE>`
@ -119,20 +119,21 @@ openclaw message send --channel synology-chat --target 123456 --text "Hello from
openclaw message send --channel synology-chat --target synology-chat:123456 --text "Hello again"
```
Medya gönderimleri URL tabanlı dosya teslimi ile desteklenir.
Medya gönderimleri, URL tabanlı dosya teslimi ile desteklenir.
Giden dosya URLleri `http` veya `https` kullanmalıdır ve özel ya da başka şekilde engellenmiş ağ hedefleri, OpenClaw URLyi NAS Webhookuna iletmeden önce reddedilir.
## Çoklu hesap
`channels.synology-chat.accounts` altında birden fazla Synology Chat hesabı desteklenir.
Her hesap token, gelen URL, webhook yolu, DM ilkesi ve sınırları geçersiz kılabilir.
Doğrudan mesaj oturumları hesap ve kullanıcı başına yalıtılır; bu nedenle aynı sayısal `user_id`
iki farklı Synology hesabında aynı konuşma durumunu paylaşmaz.
Etkin olan her hesaba farklı bir `webhookPath` verin. OpenClaw artık yinelenen tam yolları reddeder
ve çoklu hesap kurulumlarında yalnızca paylaşılan bir webhook yolunu devralan adlandırılmış hesapları başlatmayı reddeder.
Bir adlandırılmış hesap için kasıtlı olarak eski devralma davranışına ihtiyacınız varsa,
Birden çok Synology Chat hesabı `channels.synology-chat.accounts` altında desteklenir.
Her hesap token, gelen URL, Webhook yolu, DM ilkesi ve sınırları geçersiz kılabilir.
Doğrudan mesaj oturumları hesap ve kullanıcı bazında yalıtılır; bu nedenle aynı sayısal `user_id`,
iki farklı Synology hesabında aynı transkript durumunu paylaşmaz.
Etkin her hesaba farklı bir `webhookPath` verin. OpenClaw artık yinelenen tam yolları reddeder
ve çoklu hesap kurulumlarında yalnızca paylaşılan bir Webhook yolunu miras alan adlandırılmış hesapları başlatmayı reddeder.
Adlandırılmış bir hesap için bilerek eski miras davranışına ihtiyacınız varsa,
o hesapta veya `channels.synology-chat` altında
`dangerouslyAllowInheritedWebhookPath: true` ayarlayın,
ancak yinelenen tam yollar yine de kapalı varsayılanla reddedilir. Hesap başına açık yolları tercih edin.
`dangerouslyAllowInheritedWebhookPath: true` ayarlayın;
ancak yinelenen tam yollar yine de fail-closed olarak reddedilir. Açık hesap başına yollar tercih edilir.
```json5
{
@ -159,35 +160,35 @@ ancak yinelenen tam yollar yine de kapalı varsayılanla reddedilir. Hesap baş
## Güvenlik notları
- `token` değerini gizli tutun ve sızarsa yenileyin.
- Kendinden imzalı yerel bir NAS sertifikasına açıkça güvenmiyorsanız `allowInsecureSsl: false` olarak bırakın.
- Gelen webhook istekleri token ile doğrulanır ve gönderici başına hız sınırına tabidir.
- Geçersiz token denetimleri sabit süreli gizli karşılaştırma kullanır ve kapalı varsayılanla başarısız olur.
- `token` değerini gizli tutun ve sızarsa değiştirin.
- Kendi imzaladığı yerel bir NAS sertifikasına açıkça güvenmiyorsanız `allowInsecureSsl: false` olarak bırakın.
- Gelen Webhook istekleri, gönderici başına token doğrulaması ve oran sınırlaması ile korunur.
- Geçersiz token denetimleri sabit zamanlı gizli karşılaştırma kullanır ve fail-closed olur.
- Üretim için `dmPolicy: "allowlist"` tercih edin.
- Eski kullanıcı adı tabanlı yanıt teslimine açıkça ihtiyacınız yoksa `dangerouslyAllowNameMatching` seçeneğini kapalı tutun.
- Çoklu hesap kurulumunda paylaşılan yol yönlendirme riskini açıkça kabul etmiyorsanız `dangerouslyAllowInheritedWebhookPath` seçeneğini kapalı tutun.
- Eski kullanıcı adı tabanlı yanıt teslimine açıkça ihtiyacınız yoksa `dangerouslyAllowNameMatching` kapalı kalsın.
- Çoklu hesap kurulumunda paylaşılan yol yönlendirme riskini açıkça kabul etmiyorsanız `dangerouslyAllowInheritedWebhookPath` kapalı kalsın.
## Sorun giderme
- `Missing required fields (token, user_id, text)`:
- giden webhook yükünde gerekli alanlardan biri eksik
- Synology token'ı başlıklarda gönderiyorsa gateway/proxy'nin bu başlıkları koruduğundan emin olun
- giden Webhook yükünde gerekli alanlardan biri eksik
- Synology tokenı headerlarda gönderiyorsa, Gateway/proxynin bu headerları koruduğundan emin olun
- `Invalid token`:
- giden webhook gizli değeri `channels.synology-chat.token` ile eşleşmiyor
- istek yanlış hesaba/webhook yoluna gidiyor
- ters proxy, istek OpenClaw'a ulaşmadan önce token başlığını kaldırdı
- giden Webhook sırrı `channels.synology-chat.token` ile eşleşmiyor
- istek yanlış hesap/Webhook yoluna gidiyor
- ters proxy, istek OpenClawa ulaşmadan önce token headerını çıkardı
- `Rate limit exceeded`:
- aynı kaynaktan çok fazla geçersiz token denemesi o kaynağı geçici olarak kilitleyebilir
- kimliği doğrulanmış göndericiler için de kullanıcı başına ayrı bir ileti hız sınırı vardır
- aynı kaynaktan çok fazla geçersiz token denemesi, o kaynağı geçici olarak kilitleyebilir
- kimliği doğrulanmış göndericiler için de kullanıcı başına ayrı bir mesaj oran sınırı vardır
- `Allowlist is empty. Configure allowedUserIds or use dmPolicy=open.`:
- `dmPolicy="allowlist"` etkin ancak yapılandırılmış kullanıcı yok
- `dmPolicy="allowlist"` etkin ama hiçbir kullanıcı yapılandırılmamış
- `User not authorized`:
- göndericinin sayısal `user_id` değeri `allowedUserIds` içinde değil
- gönderenin sayısal `user_id` değeri `allowedUserIds` içinde değil
## İlgili
- [Channels Overview](/tr/channels) — desteklenen tüm kanallar
- [Pairing](/tr/channels/pairing) — DM kimlik doğrulaması ve eşleştirme akışı
- [Groups](/tr/channels/groups) — grup sohbeti davranışı ve bahsetme geçidi
- [Channel Routing](/tr/channels/channel-routing) — iletiler için oturum yönlendirmesi
- [Security](/gateway/security) — erişim modeli ve sağlamlaştırma
- [Groups](/tr/channels/groups) — grup sohbeti davranışı ve bahsetme geçitlemesi
- [Channel Routing](/tr/channels/channel-routing) — mesajlar için oturum yönlendirmesi
- [Security](/tr/gateway/security) — erişim modeli ve sağlamlaştırma

View File

@ -1,89 +1,89 @@
---
read_when:
- Bir CI işinin neden çalıştığını veya çalışmadığını anlamanız gerekiyor
- Başarısız GitHub Actions denetimlerinde hata ayıklıyorsunuz
summary: CI iş grafiği, kapsam geçitleri ve yerel komut eşdeğerleri
title: CI işlem hattı
- Bir CI işinin neden çalıştığını veya çalışmadığını anlamanız gerekir.
- Başarısız GitHub Actions kontrollerinde hata ayıklıyorsunuz.
summary: CI iş grafiği, kapsam kapıları ve yerel komut eşdeğerleri
title: CI İşlem Hattı
x-i18n:
generated_at: "2026-04-21T08:57:47Z"
generated_at: "2026-04-21T19:20:42Z"
model: gpt-5.4
provider: openai
source_hash: 88a98d777fd61be1603417b71779aaf42a24d602b2437ad549f0075f22494cec
source_hash: 4d01a178402976cdf7c3c864695e8a12d3f7d1d069a77ea1b02a8aef2a3497f7
source_path: ci.md
workflow: 15
---
# CI İşlem Hattı
CI, `main` dalına yapılan her push işleminde ve her pull requestte ç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'ta 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ü
## İş Genel Bakışı
| İş | Amaç | Ne zaman çalışır |
| -------------------------------- | -------------------------------------------------------------------------------------------- | ----------------------------------- |
| `preflight` | Yalnızca dokümantasyon değişikliklerini, değişen kapsamları, değişen eklentileri saptar ve CI manifestini oluşturur | Taslak olmayan push ve PRlerde her zaman |
| `security-scm-fast` | `zizmor` aracılığıyla özel anahtar tespiti ve workflow denetimi | Taslak olmayan push ve PRlerde her zaman |
| `security-dependency-audit` | npm tavsiyelerine karşı bağımlılıksız üretim lockfile denetimi | Taslak olmayan push ve PRlerde her zaman |
| `security-fast` | Hızlı güvenlik işleri için gerekli toplu iş | Taslak olmayan push ve PRlerde her zaman |
| `build-artifacts` | `dist/` ve Control UIyi bir kez derler, aşağı akış işleri için yeniden kullanılabilir artifactları yükler | Node ile ilgili değişiklikler |
| `checks-fast-core` | bundled/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 sonucuyla parçalanmış kanal sözleşmesi denetimleri | Node ile ilgili değişiklikler |
| `checks-node-extensions` | eklenti paketi genelinde bundled-plugin test parçalarının tamamı | Node ile ilgili değişiklikler |
| `checks-node-core-test` | Kanal, bundled, contract ve extension hatları hariç olmak üzere çekirdek Node test parçaları | Node ile ilgili değişiklikler |
| `extension-fast` | Yalnızca değişen bundled pluginler için odaklı testler | Eklenti değişiklikleri algılandığında |
| `check` | Parçalanmış ana yerel geçit eşdeğeri: üretim türleri, lint, guard, test türleri ve katı smoke | Node ile ilgili değişiklikler |
| `check-additional` | Mimari, sınır, extension-surface guard, package-boundary ve gateway-watch parçaları | Node ile ilgili değişiklikler |
| `preflight` | Yalnızca dokümantasyon değişikliklerini, değişen kapsamları, değişen uzantıları tespit eder ve CI manifestini oluşturur | 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 danışma kayıtlarına karşı bağımlılık içermeyen production 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 derler, alt işler için yeniden kullanılabilir artifact'leri yükler | Node ile ilgili değişiklikler |
| `checks-fast-core` | Paketlenmiş/plugin-contract/protocol kontrolleri gibi hızlı Linux doğruluk hatları | Node ile ilgili değişiklikler |
| `checks-fast-contracts-channels` | Kararlı bir toplu kontrol sonucu ile parçalara ayrılmış kanal sözleşmesi kontrolleri | Node ile ilgili değişiklikler |
| `checks-node-extensions` | Uzantı paketi genelinde tam paketlenmiş plugin test parçaları | Node ile ilgili değişiklikler |
| `checks-node-core-test` | Kanal, paketlenmiş, sözleşme ve uzantı hatları hariç çekirdek Node test parçaları | Node ile ilgili değişiklikler |
| `extension-fast` | Yalnızca değişen paketlenmiş plugin'ler için odaklanmış testler | Uzantı değişiklikleri tespit edildiğinde |
| `check` | Parçalara ayrılmış ana yerel kapı eşdeğeri: production type'lar, lint, korumalar, test type'ları ve sıkı smoke | Node ile ilgili değişiklikler |
| `check-additional` | Mimari, sınır, uzantı-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 hatları: kanal testleri ve yalnızca push işlemlerinde Node 22 uyumluluğu | Node ile ilgili değişiklikler |
| `check-docs` | Dokümantasyon biçimlendirme, lint ve bozuk bağlantı denetimleri | Dokümantasyon değiştiğinde |
| `skills-python` | Python destekli Skills için Ruff + pytest | Python Skills ile ilgili değişiklikler |
| `checks-windows` | Windowsa özgü test hatları | Windows ile ilgili değişiklikler |
| `macos-node` | Paylaşılan derleme artifactlarını kullanan macOS TypeScript test hattı | 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 |
| `checks` | Kalan Linux Node hatları: kanal testleri ve yalnızca push'ta çalışan 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 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 |
## Hızlı başarısız olma sırası
## Hızlı Başarısız Olma Sırası
İşler, pahalı işler çalışmadan önce ucuz denetimlerin başarısız olması için sıralanır:
İşler, pahalı olanlar ç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ş 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 çakışır; böylece aşağı akış tüketicileri paylaşılan derleme hazır olur olmaz başlayabilir.
4. Daha ağır platform ve çalışma zamanı hatları bundan sonra açı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`.
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 matris işlerini beklemeden hızlıca başarısız olur.
3. `build-artifacts`, hızlı Linux hatlarıyla çakışacak şekilde çalışır; böylece alt tüketiciler paylaşılan build hazır olur olmaz başlayabilir.
4. Ardından daha ağır platform ve çalışma zamanı hatları 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 bulunur ve `src/scripts/ci-changed-scope.test.ts` içindeki birim testleriyle kapsanır.
Ayrı `install-smoke` workflowsu, kendi `preflight` işi aracılığıyla aynı kapsam betiğini yeniden kullanır. `run_install_smoke` değerini daha dar changed-smoke sinyalinden hesaplar; bu nedenle Docker/install smoke yalnızca kurulum, paketleme ve container ile 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 testlerle kapsanır.
Ayrı `install-smoke` iş akışı da kendi `preflight` işi üzerinden aynı kapsam betiğini yeniden kullanır. `run_install_smoke` değerini daha dar olan changed-smoke sinyalinden hesaplar; böylece Docker/install smoke yalnızca install, paketleme ve konteyner ile ilgili değişikliklerde çalışır.
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; yalnızca eklenti test değişiklikleri yalnızca eklenti test typecheck/testlerini çalıştırır. Genel Plugin SDK veya plugin-contract değişiklikleri, eklentiler bu çekirdek sözleşmelere bağlı olduğu için eklenti doğrulamasını genişletir. Bilinmeyen kök/yapılandırma değişiklikleri güvenli davranıp tüm hatları çalıştırır.
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 kapı, geniş CI platform kapsamına göre mimari sınırlar konusunda daha sıkıdır: çekirdek production değişiklikleri çekirdek production typecheck artı çekirdek testleri çalıştırır, yalnızca çekirdek test değişiklikleri yalnızca çekirdek test typecheck/testlerini çalıştırır, uzantı production değişiklikleri uzantı production typecheck artı uzantı testlerini çalıştırır ve yalnızca uzantı test değişiklikleri yalnızca uzantı test typecheck/testlerini çalıştırır. Genel Plugin SDK veya plugin-contract değişiklikleri uzantı doğrulamasını genişletir çünkü uzantılar bu çekirdek sözleşmelere bağımlıdır. Bilinmeyen kök/config değişiklikleri güvenli tarafta kalmak için tüm hatlara başarısız olur.
Push işlemlerinde, `checks` matrisi yalnızca pusha özel `compat-node22` hattını ekler. Pull requestlerde bu hat atlanır ve matris normal test/kanal hatlarına odaklı kalır.
Push'larda `checks` matrisi yalnızca push'ta çalışan `compat-node22` hattını ekler. Pull request'lerde bu hat atlanır ve matris normal test/kanal hatlarına odaklı kalı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 registry 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 ve diğer büyük auto-reply reply prefix grupları ikişer parçaya bölünür. `check-additional` ayrıca package-boundary derleme/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 ayrılır: kanal sözleşmeleri, registry ve çekirdek kapsamını sekizer ağırlıklı parçaya böler, auto-reply reply command testleri dörder include-pattern parçasına bölünür ve diğer büyük auto-reply reply prefix grupları ikişer parçaya ayrılır. `check-additional` ayrıca package-boundary compile/canary işini çalışma zamanı topolojisi gateway/mimari işinden ayırır.
Aynı PR veya `main` refi üzerinde daha yeni bir push geldiğinde GitHub, yerini alan işleri `cancelled` olarak işaretleyebilir. Aynı ref için en yeni çalıştırma da başarısız olmadıkça bunu CI gürültüsü olarak değerlendirin. Toplu parça denetimleri, bunu bir test başarısızlığından ayırmayı kolaylaştırmak için bu iptal durumunu açıkça belirtir.
GitHub, aynı PR veya `main` ref'ine daha yeni bir push geldiğinde yerini alan işleri `cancelled` olarak işaretleyebilir. Aynı ref için en yeni çalıştırma da başarısız olmuyorsa bunu CI gürültüsü olarak değerlendirin. Toplu parça kontrolleri bu iptal durumunu açıkça belirtir; böylece bunu bir test başarısızlığından ayırmak daha kolay olur.
## Çalıştırıcılar
| Çalıştırıcı | İşler |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `blacksmith-16vcpu-ubuntu-2404` | `preflight`, `security-scm-fast`, `security-dependency-audit`, `security-fast`, `build-artifacts`, Linux denetimleri, dokümantasyon denetimleri, Python Skills, `android` |
| `blacksmith-16vcpu-ubuntu-2404` | `preflight`, `security-scm-fast`, `security-dependency-audit`, `security-fast`, `build-artifacts`, Linux kontrolleri, doküman kontrolleri, Python Skills, `android` |
| `blacksmith-32vcpu-windows-2025` | `checks-windows` |
| `macos-latest` | `macos-node`, `macos-swift` |
| `blacksmith-12vcpu-macos-latest` | `openclaw/openclaw` üzerinde `macos-node`, `macos-swift`; fork'lar `macos-latest`'e 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ı incele
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: üretim tsgo + parçalanmış lint + paralel hızlı guard'lar
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 kapı: sınır hattına göre değişen typecheck/lint/testler
pnpm check # hızlı yerel kapı: production tsgo + parçalara ayrılmış lint + paralel hızlı korumalar
pnpm check:test-types
pnpm check:timed # aşama başına zamanlamalarla aynı geçit
pnpm check:timed # aynı kapı, aşama başına sürelerle
pnpm build:strict-smoke
pnpm check:architecture
pnpm test:gateway:watch-regression
pnpm test # vitest testleri
pnpm test:channels
pnpm test:contracts:channels
pnpm check:docs # dokümantasyon biçimi + lint + bozuk bağlantılar
pnpm build # CI artifact/build-smoke hatları önemliyse dist derle
pnpm check:docs # doküman biçimlendirme + lint + bozuk bağlantılar
pnpm build # CI artifact/build-smoke hatları önemliyse dist'i derleyin
```

View File

@ -2,106 +2,75 @@
read_when:
- Aynı makinede birden fazla Gateway çalıştırma
- Her Gateway için yalıtılmış yapılandırma/durum/bağlantı noktaları gerekir
summary: Tek bir ana bilgisayarda birden fazla OpenClaw Gateway çalıştırın (yalıtım, bağlantı noktaları ve profiller)
summary: Tek bir ana makinede birden fazla OpenClaw Gateway çalıştırma (yalıtım, bağlantı noktaları ve profiller)
title: Birden Fazla Gateway
x-i18n:
generated_at: "2026-04-21T17:45:38Z"
generated_at: "2026-04-21T19:20:39Z"
model: gpt-5.4
provider: openai
source_hash: 8c3fcb921bc6596040e9249467964bd9dcd40ea7c16e958bb378247b0f994a7b
source_hash: 36796da339d5baea1704a7f42530030ea6ef4fa4bde43452ffec946b917ed4a3
source_path: gateway/multiple-gateways.md
workflow: 15
---
# Birden Fazla Gateway (aynı ana bilgisayar)
# Birden Fazla Gateway (aynı ana makinede)
Çoğu kurulumda tek bir Gateway kullanılmalıdır çünkü tek bir Gateway birden fazla mesajlaşma bağlantısını ve agent'ı yönetebilir. Daha güçlü yalıtım veya yedeklilik gerekiyorsa (ör. bir kurtarma botu), yalıtılmış profiller/bağlantı noktalarıyla ayrı Gateway'ler çalıştırın.
Çoğu kurulumda tek bir Gateway kullanılmalıdır çünkü tek bir Gateway birden fazla mesajlaşma bağlantısını ve agent'ı yönetebilir. Daha güçlü yalıtım veya yedeklilik gerekiyorsa (örneğin, bir kurtarma botu), yalıtılmış profiller/bağlantı noktalarıyla ayrı Gateway'ler çalıştırın.
## Yalıtım kontrol listesi (zorunlu)
## En Çok Önerilen Kurulum
- `OPENCLAW_CONFIG_PATH` — örnek başına yapılandırma dosyası
- `OPENCLAW_STATE_DIR` — örnek başına oturumlar, kimlik bilgileri, önbellekler
- `agents.defaults.workspace` — örnek başına çalışma alanı kökü
- `gateway.port` (veya `--port`) — örnek başına benzersiz
- Türetilmiş bağlantı noktaları (browser/canvas) çakışmamalıdır
Bunlar paylaşılırsa, yapılandırma yarışları ve bağlantı noktası çakışmaları yaşarsınız.
## Önerilen: ana örnek için varsayılan profili, kurtarma için adlandırılmış bir profili kullanın
Profiller `OPENCLAW_STATE_DIR` + `OPENCLAW_CONFIG_PATH` değerlerini otomatik olarak kapsamlandırır ve hizmet adlarına sonek ekler. Çoğu kurtarma botu kurulumu için, ana botu varsayılan profilde tutun ve yalnızca kurtarma botuna `rescue` gibi adlandırılmış bir profil verin.
```bash
# main (default profile)
openclaw setup
openclaw gateway --port 18789
# rescue
openclaw --profile rescue setup
openclaw --profile rescue gateway --port 19001
```
Hizmetler:
```bash
openclaw gateway install
openclaw --profile rescue gateway install
```
Her iki Gateway'nin de adlandırılmış profiller kullanmasını istiyorsanız bu da çalışır, ancak gerekli değildir.
## Kurtarma botu kılavuzu
Önerilen kurulum:
Çoğu kullanıcı için en basit kurtarma botu kurulumu şudur:
- ana botu varsayılan profilde tutun
- kurtarma botunu `--profile rescue` ile çalıştırın
- kurtarma hesabı için tamamen ayrı bir Telegram botu kullanın
- kurtarma botunu `19001` gibi farklı bir temel bağlantı noktasında tutun
- kurtarma botunu `19789` gibi farklı bir temel bağlantı noktasında tutun
Bu, ana bot çalışmıyorsa kurtarma botunun hata ayıklayabilmesi veya yapılandırma değişiklikleri uygulayabilmesi için onu ana bottan yalıtılmış tutar. Türetilmiş browser/canvas/CDP bağlantı noktalarının asla çakışmaması için temel bağlantı noktaları arasında en az 20 bağlantı noktası bırakın.
Bu, birincil bot devre dışı kaldığında hata ayıklayabilmesi veya yapılandırma değişiklikleri uygulayabilmesi için kurtarma botunu ana bottan yalıtılmış tutar. Türetilmiş tarayıcı/canvas/CDP bağlantı noktalarının asla çakışmaması için temel bağlantı noktaları arasında en az 20 bağlantı noktası bırakın.
### Önerilen kurtarma kanalı/hesabı
## Kurtarma Botu Hızlı Başlangıç
Çoğu kurulum için, kurtarma profili adına tamamen ayrı bir Telegram botu kullanın.
Telegram neden önerilir:
- yalnızca operatöre açık tutulması kolaydır
- ayrı bot token'ı ve kimliği
- ana botun kanalı/uygulama kurulumundan bağımsızdır
- ana bot bozulduğunda DM tabanlı basit bir kurtarma yolu sağlar
Önemli olan kısım tam bağımsızlıktır: ayrı bot hesabı, ayrı kimlik bilgileri, ayrı OpenClaw profili, ayrı çalışma alanı ve ayrı bağlantı noktası.
### Önerilen kurulum akışı
Bunu, farklı bir şey yapmak için güçlü bir nedeniniz yoksa varsayılan kurulum olarak kullanın:
Başka bir şey yapmak için güçlü bir nedeniniz yoksa bunu varsayılan yol olarak kullanın:
```bash
# Main bot (default profile, port 18789)
openclaw onboard
openclaw gateway install
# Rescue bot (separate Telegram bot, separate profile, port 19001)
# Rescue bot (separate Telegram bot, separate profile, port 19789)
openclaw --profile rescue onboard
openclaw --profile rescue gateway install
openclaw --profile rescue gateway install --port 19789
```
Ana botunuz zaten çalışıyorsa, genellikle ihtiyacınız olan tek şey budur.
`openclaw --profile rescue onboard` sırasında:
- ayrı Telegram bot token'ını kullanın
- ayrı Telegram bot belirtecini kullanın
- `rescue` profilini koruyun
- ana bottan en az 20 daha yüksek bir temel bağlantı noktası kullanın
- zaten kendiniz yönetmiyorsanız varsayılan kurtarma çalışma alanını kabul edin
Onboarding kurtarma hizmetini zaten sizin için kurduysa, son `gateway install` gerekli değildir.
Onboarding kurtarma hizmetini sizin için zaten kurduysa, son `gateway install` gerekli değildir.
### Onboarding neyi değiştirir
## Bu Neden Çalışır
Kurtarma botu bağımsız kalır çünkü kendine ait şunlara sahiptir:
- profil/yapılandırma
- durum dizini
- çalışma alanı
- temel bağlantı noktası (artı türetilmiş bağlantı noktaları)
- Telegram bot belirteci
Çoğu kurulum için, kurtarma profili adına tamamen ayrı bir Telegram botu kullanın:
- yalnızca operatöre açık tutması kolaydır
- ayrı bot belirteci ve kimliği vardır
- ana botun kanal/uygulama kurulumundan bağımsızdır
- ana bot bozulduğunda DM tabanlı basit bir kurtarma yolu sağlar
## `--profile rescue onboard` Neleri Değiştirir
`openclaw --profile rescue onboard` normal onboarding akışını kullanır, ancak her şeyi ayrı bir profile yazar.
Pratikte bu, kurtarma botunun kendine ait şu bileşenlere sahip olduğu anlamına gelir:
Pratikte bu, kurtarma botunun kendine ait şu bileşenleri aldığı anlamına gelir:
- yapılandırma dosyası
- durum dizini
@ -110,24 +79,71 @@ Pratikte bu, kurtarma botunun kendine ait şu bileşenlere sahip olduğu anlamı
Bunun dışındaki istemler normal onboarding ile aynıdır.
## Genel Çoklu Gateway Kurulumu
Yukarıdaki kurtarma botu düzeni en kolay varsayılandır, ancak aynı yalıtım deseni tek bir ana makinedeki herhangi bir Gateway çifti veya grubu için de geçerlidir.
Daha genel bir kurulum için, her ek Gateway'ye kendi adlı profilini ve kendi temel bağlantı noktasını verin:
```bash
# main (default profile)
openclaw setup
openclaw gateway --port 18789
# extra gateway
openclaw --profile ops setup
openclaw --profile ops gateway --port 19789
```
Her iki Gateway'nin de adlandırılmış profiller kullanmasını istiyorsanız, bu da çalışır:
```bash
openclaw --profile main setup
openclaw --profile main gateway --port 18789
openclaw --profile ops setup
openclaw --profile ops gateway --port 19789
```
Hizmetler de aynı deseni izler:
```bash
openclaw gateway install
openclaw --profile ops gateway install --port 19789
```
Yedek bir operatör hattı istediğinizde kurtarma botu hızlı başlangıcını kullanın. Farklı kanallar, kiracılar, çalışma alanları veya operasyonel roller için birden fazla uzun ömürlü Gateway istediğinizde genel profil desenini kullanın.
## Yalıtım Kontrol Listesi
Bunları her Gateway örneği için benzersiz tutun:
- `OPENCLAW_CONFIG_PATH` — örnek başına yapılandırma dosyası
- `OPENCLAW_STATE_DIR` — örnek başına oturumlar, kimlik bilgileri, önbellekler
- `agents.defaults.workspace` — örnek başına çalışma alanı kökü
- `gateway.port` (veya `--port`) — örnek başına benzersiz
- türetilmiş tarayıcı/canvas/CDP bağlantı noktaları
Bunlar paylaşılırsa yapılandırma yarışları ve bağlantı noktası çakışmaları yaşarsınız.
## Bağlantı noktası eşlemesi (türetilmiş)
Temel bağlantı noktası = `gateway.port` (veya `OPENCLAW_GATEWAY_PORT` / `--port`).
- browser denetim hizmeti bağlantı noktası = temel + 2 (yalnızca loopback)
- tarayıcı denetim hizmeti bağlantı noktası = temel + 2 (yalnızca loopback)
- canvas host, Gateway HTTP sunucusunda sunulur (`gateway.port` ile aynı bağlantı noktası)
- Browser profil CDP bağlantı noktaları `browser.controlPort + 9 .. + 108` aralığından otomatik olarak ayrılır
- Tarayıcı profil CDP bağlantı noktaları `browser.controlPort + 9 .. + 108` aralığından otomatik atanır
Bunlardan herhangi birini yapılandırma veya ortam değişkenlerinde geçersiz kılarsanız, örnek başına benzersiz kalmalarını sağlamalısınız.
Bunlardan herhangi birini yapılandırma veya env içinde geçersiz kılarsanız, örnek başına benzersiz tutmanız gerekir.
## Browser/CDP notları (yaygın hata kaynağı)
## Tarayıcı/CDP notları (yaygın tuzak)
- Birden fazla örnekte `browser.cdpUrl` değerini aynı değerlere **sabitlemeyin**.
- Her örnek kendi browser denetim bağlantı noktasına ve CDP aralığına ihtiyaç duyar (gateway bağlantı noktasından türetilir).
- Her örneğin kendi tarayıcı denetim bağlantı noktasına ve CDP aralığına ihtiyacı vardır (Gateway bağlantı noktasından türetilir).
- Açık CDP bağlantı noktalarına ihtiyacınız varsa, örnek başına `browser.profiles.<name>.cdpPort` ayarlayın.
- Uzak Chrome: `browser.profiles.<name>.cdpUrl` kullanın (profil başına, örnek başına).
## El ile ortam değişkeni örneği
## Manuel env örneği
```bash
OPENCLAW_CONFIG_PATH=~/.openclaw/main.json \
@ -136,7 +152,7 @@ openclaw gateway --port 18789
OPENCLAW_CONFIG_PATH=~/.openclaw/rescue.json \
OPENCLAW_STATE_DIR=~/.openclaw-rescue \
openclaw gateway --port 19001
openclaw gateway --port 19789
```
## Hızlı kontroller
@ -152,5 +168,5 @@ openclaw --profile rescue browser status
Yorumlama:
- `gateway status --deep`, eski kurulumlardan kalmış launchd/systemd/schtasks hizmetlerini yakalamaya yardımcı olur.
- `gateway probe` uyarı metni; örneğin `multiple reachable gateways detected`, yalnızca kasıtlı olarak birden fazla yalıtılmış gateway çalıştırdığınızda beklenir.
- `gateway status --deep`, eski kurulumlardan kalmış bayat launchd/systemd/schtasks hizmetlerini yakalamaya yardımcı olur.
- `gateway probe` uyarı metni, örneğin `multiple reachable gateways detected`, yalnızca kasıtlı olarak birden fazla yalıtılmış gateway çalıştırdığınızda beklenir.

View File

@ -1,76 +1,67 @@
---
read_when:
- 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
- Bir plugin yapılandırma şemasını yayımlamanız veya plugin doğrulama hatalarında hata ayıklamanız gerekiyor
summary: Plugin manifest + JSON şeması gereksinimleri (katı yapılandırma doğrulaması)
title: Plugin Manifest
x-i18n:
generated_at: "2026-04-19T01:11:12Z"
generated_at: "2026-04-21T19:20:42Z"
model: gpt-5.4
provider: openai
source_hash: 2dfc00759108ddee7bfcda8c42acf7f2d47451676447ba3caf8b5950f8a1c181
source_hash: 304c08035724dfb1ce6349972729b621aafc00880d4d259db78c22b86e9056ba
source_path: plugins/manifest.md
workflow: 15
---
# Plugin manifesti (`openclaw.plugin.json`)
Bu sayfa yalnızca **yerel OpenClaw Plugin manifesti** içindir.
Bu sayfa yalnızca **yerel OpenClaw plugin manifesti** içindir.
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şen 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 paketlerde OpenClaw şu anda, düzen OpenClaw çalışma zamanı beklentileriyle
eşleştiğinde, paket metadatasını ve 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.
Uyumlu paketler için OpenClaw şu anda, düzen OpenClaw çalışma zamanı beklentileriyle eşleştiğinde, paket metadata'sını ve 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ı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.
Her yerel OpenClaw plugin'i, **plugin kökünde** mutlaka bir `openclaw.plugin.json` dosyası içermelidir. 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ılavuzuna bakın: [Plugins](/tr/tools/plugin).
Tam plugin sistemi kılavuzu için bkz.: [Plugins](/tr/tools/plugin).
Yerel yetenek modeli ve mevcut dış uyumluluk rehberi için:
[Yetenek modeli](/tr/plugins/architecture#public-capability-model).
[Capability model](/tr/plugins/architecture#public-capability-model).
## Bu dosya ne işe yarar
`openclaw.plugin.json`, OpenClaw'ın plugin kodunuzu yüklemeden önce okuduğu
metadatadır.
`openclaw.plugin.json`, OpenClaw'un plugin kodunuzu yüklemeden önce okuduğu metadata'dır.
Şunlar için kullanın:
- plugin kimliği
- yapılandırma doğrulaması
- plugin çalışma zamanını başlatmadan kullanılabilir olması gereken kimlik doğrulama ve onboarding metadatası
- plugin çalışma zamanını başlatmadan kullanılabilir olması gereken kimlik doğrulama ve onboarding metadata'sı
- kontrol 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 metadatası
- plugin'i çalışma zamanı yüklenmeden önce otomatik etkinleştirmesi gereken kısa model ailesi sahipliği metadatası
- 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` ana bilgisayarının plugin çalışma zamanı yüklenmeden önce inceleyebileceği düşük maliyetli QA çalıştırıcı metadatası
- çalışma zamanını yüklemeden katalog ve doğrulama yüzeyleriyle birleştirilmesi gereken kanala özgü yapılandırma metadatası
- plugin çalışma zamanı yüklenmeden önce çözümlenmesi gereken takma ad ve otomatik etkinleştirme metadata'sı
- plugin'i çalışma zamanı yüklenmeden önce otomatik etkinleştirmesi gereken kısaltılmış model ailesi sahiplik metadata'sı
- paketlenmiş uyumluluk bağlantıları ve sözleşme kapsamı için kullanılan statik yetenek sahipliği anlık görüntüleri
- paylaşılan `openclaw qa` host'unun plugin çalışma zamanı yüklenmeden önce inceleyebileceği düşük maliyetli QA çalıştırıcı metadata'sı
- katalog ve doğrulama yüzeylerine çalışma zamanını yüklemeden birleştirilmesi gereken kanala özgü yapılandırma metadata'sı
- yapılandırma UI ipuçları
Şunlar için kullanmayın:
- çalışma zamanı davranışını kaydetmek
- kod giriş noktalarını bildirmek
- npm kurulum metadatası
- çalışma zamanı davranışını kaydetme
- kod giriş noktalarını bildirme
- npm kurulum metadata'sı
Bunlar plugin kodunuza ve `package.json` dosyanıza aittir.
## Asgari örnek
## En küçük örnek
```json
{
@ -83,7 +74,7 @@ Bunlar plugin kodunuza ve `package.json` dosyanıza aittir.
}
```
## Zengin örnek
## Ayrıntılı örnek
```json
{
@ -148,64 +139,64 @@ 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'in varsayılan olarak devre dışı kalması için bunu atlayın 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 özel bir plugin türünü bildirir. |
| `channels` | Hayır | `string[]` | Bu plugin'in sahip olduğu kanal kimlikleri. Keşif ve yapılandırma doğrulaması için kullanılır. |
| `providers` | Hayır | `string[]` | Bu plugin'in sahip olduğu 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 metadatası. |
| `providerEndpoints` | Hayır | `object[]` | Provider çalışma zamanı yüklenmeden önce çekirdeğin sınıflandırması gereken provider yolları için manifeste ait uç nokta ana bilgisayar/baseUrl metadatası. |
| `cliBackends` | Hayır | `string[]` | Bu plugin'in sahip olduğu 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 ortam 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'in sahip olduğu 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 metadatası. |
| `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 metadatası. Bunu, genel başlangıç/yapılandırma yardımcılarının görmesi gereken ortam değişkeni güdümlü 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ğlantısı için düşük maliyetli kimlik doğrulama seçeneği metadatası. |
| `activation` | Hayır | `object` | Provider, komut, kanal, rota ve yetenek tetiklemeli yükleme için düşük maliyetli etkinleştirme ipuçları. Yalnızca metadata; gerçek davranışın sahibi yine 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 bilgisayarı tarafından plugin çalışma zamanı yüklenmeden önce kullanılan 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, media-understanding, image-generation, music-generation, video-generation, web-fetch, web search 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 önce keşif ve doğrulama yüzeyleriyle birleştirilen, manifeste ait kanal yapılandırma metadatası. |
| `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ı. |
| 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 Ş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 normalize edilen eski kimlikler. |
| `autoEnableWhenConfiguredProviders` | Hayır | `string[]` | Kimlik doğrulama, yapılandırma veya model referansları bunlardan bahsettiğinde bu plugin'i otomatik etkinleştirmesi gereken provider kimlikleri. |
| `kind` | Hayır | `"memory"` \| `"context-engine"` | `plugins.slots.*` tarafından kullanılan dışlayıcı bir plugin türünü bildirir. |
| `channels` | Hayır | `string[]` | Bu plugin'in sahip olduğu kanal kimlikleri. Keşif ve yapılandırma doğrulaması için kullanılır. |
| `providers` | Hayır | `string[]` | Bu plugin'in sahip olduğu provider kimlikleri. |
| `modelSupport` | Hayır | `object` | Çalışma zamanından önce plugin'i otomatik yüklemek için kullanılan, manifeste ait kısaltılmış model ailesi metadata'sı. |
| `providerEndpoints` | Hayır | `object[]` | Çekirdeğin provider çalışma zamanı yüklenmeden önce sınıflandırması gereken provider rotaları için manifeste ait uç nokta host/baseUrl metadata'sı. |
| `cliBackends` | Hayır | `string[]` | Bu plugin'in sahip olduğu CLI çıkarım backend kimlikleri. Açık yapılandırma referansları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'u yoklanması gereken provider veya CLI backend referansları. |
| `nonSecretAuthMarkers` | Hayır | `string[]` | Gizli olmayan yerel, OAuth veya ortam 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ılama çıktıları üretmesi gereken, bu plugin'in sahip olduğu komut adları. |
| `providerAuthEnvVars` | Hayır | `Record<string, string[]>` | OpenClaw'un plugin kodunu yüklemeden inceleyebileceği düşük maliyetli provider kimlik doğrulama ortam değişkeni metadata'sı. |
| `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'un plugin kodunu yüklemeden inceleyebileceği düşük maliyetli kanal ortam değişkeni metadata'sı. Bunu, genel başlangıç/yapılandırma yardımcılarının görmesi gereken ortam güdümlü 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ğlama için düşük maliyetli kimlik doğrulama seçeneği metadata'sı. |
| `activation` | Hayır | `object` | Provider, komut, kanal, rota ve yetenek tetiklemeli yükleme için düşük maliyetli etkinleştirme ipuçları. Yalnızca metadata; gerçek davranışın sahibi yine 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` host tarafından plugin çalışma zamanı yüklenmeden önce kullanılan 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örüntü oluşturma, müzik oluşturma, video oluşturma, web-getir, web arama 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 önce keşif ve doğrulama yüzeylerine birleştirilen manifeste ait kanal yapılandırma metadata'sı. |
| `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
Her `providerAuthChoices` girdisi bir onboarding veya kimlik doğrulama seçeneğini tanımlar.
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 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 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` | Asistan güdümlü etkileşimli seçicilerde daha 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 asistan seçicilerinden gizler. |
| `deprecatedChoiceIds`| Hayır | `string[]` | Kullanıcıları bu yerine geçen 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 dahili seçenek anahtarı. |
| `cliFlag` | Hayır | `string` | `--openrouter-api-key` gibi CLI bayrak 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 tarafından yönlendirilen etkileşimli seçicilerde daha düşük değerler daha ö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 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 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 iç seçenek anahtarı. |
| `cliFlag` | Hayır | `string` | `--openrouter-api-key` gibi CLI bayrak 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 olarak `["text-inference"]` kullanılır. |
## `commandAliases` başvurusu
Kullanıcıların yanlışlıkla `plugins.allow` içine koyabileceği veya kök bir CLI komutu olarak çalıştırmayı deneyebileceği bir çalışma zamanı komut adı bir plugin'e aitse `commandAliases` kullanın. OpenClaw bu metadatayı, plugin çalışma zamanı kodunu içe aktarmadan tanılama için kullanır.
Bir plugin'in, kullanıcıların yanlışlıkla `plugins.allow` içine koyabileceği veya kök bir CLI komutu olarak çalıştırmayı deneyebileceği bir çalışma zamanı komut adına sahip olması durumunda `commandAliases` kullanın. OpenClaw bu metadata'yı, plugin çalışma zamanı kodunu içe aktarmadan tanılama için kullanır.
```json
{
@ -219,19 +210,19 @@ Kullanıcıların yanlışlıkla `plugins.allow` içine koyabileceği veya kök
}
```
| 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 sohbet eğik çizgi 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 bir CLI komutu yerine 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
Plugin hangi kontrol düzlemi olaylarının onu daha sonra etkinleştirmesi gerektiğini düşük maliyetle bildirebiliyorsa `activation` kullanın.
Plugin daha sonra hangi kontrol düzlemi olaylarının onu etkinleştirmesi gerektiğini düşük maliyetle bildirebiliyorsa `activation` kullanın.
## `qaRunners` başvurusu
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 metadatayı düşük maliyetli ve statik tutun; gerçek CLI kaydının sahibi yine `qaRunnerCliRegistrations` dışa aktaran hafif bir `runtime-api.ts` yüzeyi üzerinden plugin çalışma zamanıdır.
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 metadata'yı düşük maliyetli ve statik tutun; gerçek CLI kaydının sahibi yine `qaRunnerCliRegistrations` dışa aktaran hafif bir `runtime-api.ts` yüzeyi üzerinden plugin çalışma zamanıdır.
```json
{
@ -244,12 +235,12 @@ Bir plugin, paylaşılan `openclaw qa` kökü altında bir veya daha fazla taş
}
```
| Alan | Gerekli | Tür | Anlamı |
| ------------- | ------- | -------- | ---------------------------------------------------------------------- |
| `commandName` | Evet | `string` | `openclaw qa` altına bağlanan alt komut; örneğin `matrix`. |
| `description` | Hayır | `string` | Paylaşılan ana bilgisayarın bir taslak komuta ihtiyaç duyması durumunda kullanılan 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 host'un bir stub komuta ihtiyaç duyması durumunda kullanılan yedek yardım metni. |
Bu blok yalnızca metadatadır. Ç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 bir daraltma ipucu olarak kullanır; bu nedenle eksik etkinleştirme metadatası genellikle yalnızca performans maliyeti doğurur. Eski manifest sahipliği geri dönüşleri hâlâ var olduğu sürece doğruluğu değiştirmemelidir.
Bu blok yalnızca metadata'dır. Ç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 daraltma ipucu olarak kullanır; bu yüzden eksik etkinleştirme metadata'sı genellikle yalnızca performans maliyeti doğurur; eski manifest sahipliği geri dönüşleri hâlâ mevcutken doğruluğu değiştirmemelidir.
```json
{
@ -263,28 +254,23 @@ Bu blok yalnızca metadatadır. Çalışma zamanı davranışını kaydetmez ve
}
```
| Alan | Gerekli | Tür | Anlamı |
| ---------------- | ------- | ---------------------------------------------------- | --------------------------------------------------------------------- |
| 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. |
| `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">` | Kontrol düzlemi etkinleştirme planlamasında kullanılan geniş yetenek ipuçları. |
Mevcut canlı tüketiciler:
- 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 metadatası eksik olduğunda eski `channels[]`
sahipliğine geri döner
- provider tetiklemeli kurulum/çalışma zamanı planlaması, açık provider
etkinleştirme metadatası eksik olduğunda eski
`providers[]` ve üst düzey `cliBackends[]` sahipliğine geri döner
- komut tetiklemeli CLI planlaması, eski `commandAliases[].cliCommand` veya `commandAliases[].name` değerlerine geri döner
- kanal tetiklemeli kurulum/kanal planlaması, açık kanal etkinleştirme metadata'sı eksik olduğunda eski `channels[]` sahipliğine geri döner
- provider tetiklemeli kurulum/çalışma zamanı planlaması, açık provider etkinleştirme metadata'sı eksik olduğunda eski `providers[]` ve üst düzey `cliBackends[]` sahipliğine geri döner
## `setup` başvurusu
Kurulum ve onboarding yüzeyleri çalışma zamanı yüklenmeden önce plugin'e ait düşük maliyetli metadataya ihtiyaç duyduğunda `setup` kullanın.
Çalışma zamanı yüklenmeden önce kurulum ve onboarding yüzeylerinin plugin'e ait düşük maliyetli metadata'ya ihtiyacı olduğunda `setup` kullanın.
```json
{
@ -303,32 +289,32 @@ Kurulum ve onboarding yüzeyleri çalışma zamanı yüklenmeden önce plugin'e
}
```
Üst düzey `cliBackends` geçerliliğini korur ve CLI çıkarım backend'lerini tanımlamaya devam eder. `setup.cliBackends`, metadata-only kalması gereken kontrol düzlemi/kurulum akışları için kurulum özelinde tanımlayıcı yüzeydir.
Üst düzey `cliBackends` geçerliliğini korur ve CLI çıkarım backend'lerini tanımlamaya devam eder. `setup.cliBackends`, yalnızca metadata olarak kalması gereken kontrol düzlemi/kurulum akışları için kurulum odaklı tanımlayıcı yüzeyidir.
Var olduğunda `setup.providers` ve `setup.cliBackends`, kurulum keşfi için tercih edilen descriptor-first 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`'yi yerinde tutun.
Mevcut olduğunda `setup.providers` ve `setup.cliBackends`, kurulum keşfi için tercih edilen descriptor-first 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`'yi yerinde tutun.
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 kapalı başarısız olur.
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 kapalı şekilde başarısız olur.
### `setup.providers` başvurusu
| Alan | Gerekli | Tür | Anlamı |
| ------------- | ------- | ---------- | ---------------------------------------------------------------------------------------------- |
| `id` | Evet | `string` | Kurulum veya onboarding sırasında ığa çıkan provider kimliği. Normalize edilmiş kimlikleri global olarak benzersiz tutun. |
| Alan | Gerekli | Tür | Anlamı |
| ------------- | ------- | ---------- | ------------------------------------------------------------------------------------------- |
| `id` | Evet | `string` | Kurulum veya onboarding sırasında sunulan provider kimliği. Normalize edilmiş kimlikleri küresel olarak benzersiz tutun. |
| `authMethods` | Hayır | `string[]` | Tam çalışma zamanını yüklemeden bu provider'ın 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 kontrol edebileceği ortam değişkenleri. |
| `envVars` | Hayır | `string[]` | Genel kurulum/durum yüzeylerinin plugin çalışma zamanı yüklenmeden önce denetleyebileceği ortam değişkenleri. |
### `setup` alanları
| Alan | Gerekli | Tür | Anlamı |
| ------------------ | ------- | ---------- | ------------------------------------------------------------------------------------------------------- |
| `providers` | Hayır | `object[]` | Kurulum ve onboarding sırasında ığa çıkan provider kurulum tanımlayıcıları. |
| `cliBackends` | Hayır | `string[]` | Descriptor-first kurulum araması için kullanılan kurulum zamanı backend kimlikleri. Normalize edilmiş kimlikleri global 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ığı. |
| Alan | Gerekli | Tür | Anlamı |
| ------------------ | ------- | ---------- | ---------------------------------------------------------------------------------------------- |
| `providers` | Hayır | `object[]` | Kurulum ve onboarding sırasında sunulan provider kurulum tanımlayıcıları. |
| `cliBackends` | Hayır | `string[]` | Descriptor-first kurulum araması için kullanılan kurulum zamanı backend kimlikleri. Normalize edilmiş kimlikleri küresel 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ığı. |
## `uiHints` başvurusu
`uiHints`, yapılandırma alan adlarından küçük render ipuçlarına uzanan bir eşlemedir.
`uiHints`, yapılandırma alan adlarından küçük işleme ipuçlarına giden bir eşlemedir.
```json
{
@ -345,18 +331,18 @@ Kurulum araması plugin'e ait `setup-api` kodunu çalıştırabildiğinden, norm
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. |
| `sensitive` | `boolean` | Alanı gizli veya hassas olarak işaretler.|
| `placeholder` | `string` | Form girdileri için yer tutucu metin. |
| 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. |
## `contracts` başvurusu
`contracts` yalnızca OpenClaw'ın plugin çalışma zamanını içe aktarmadan okuyabileceği statik yetenek sahipliği metadatası için kullanılmalıdır.
OpenClaw'un plugin çalışma zamanını içe aktarmadan okuyabileceği statik yetenek sahipliği metadata'sı için yalnızca `contracts` kullanın.
```json
{
@ -376,21 +362,21 @@ Her alan ipucu şunları içerebilir:
Her liste isteğe bağlıdır:
| Alan | Tür | Anlamı |
| -------------------------------- | ---------- | ------------------------------------------------------------- |
| `speechProviders` | `string[]` | Bu plugin'in sahip olduğu konuşma provider kimlikleri. |
| Alan | Tür | Anlamı |
| -------------------------------- | ---------- | ---------------------------------------------------------------- |
| `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 media-understanding provider kimlikleri. |
| `imageGenerationProviders` | `string[]` | Bu plugin'in sahip olduğu image-generation provider kimlikleri. |
| `videoGenerationProviders` | `string[]` | Bu plugin'in sahip olduğu video-generation provider kimlikleri. |
| `webFetchProviders` | `string[]` | Bu plugin'in sahip olduğu web-fetch provider kimlikleri. |
| `webSearchProviders` | `string[]` | Bu plugin'in sahip olduğu web search provider kimlikleri. |
| `tools` | `string[]` | Paketlenmiş sözleşme kontrolleri için bu plugin'in sahip olduğu agent araç adları. |
| `mediaUnderstandingProviders` | `string[]` | Bu plugin'in sahip olduğu medya anlama provider kimlikleri. |
| `imageGenerationProviders` | `string[]` | Bu plugin'in sahip olduğu görüntü 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-getir 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 agent araç adları. |
## `channelConfigs` başvurusu
Bir kanal plugin'i çalışma zamanı yüklenmeden önce düşük maliyetli yapılandırma metadatasına ihtiyaç duyduğunda `channelConfigs` kullanın.
Bir kanal plugin'inin çalışma zamanı yüklenmeden önce düşük maliyetli yapılandırma metadata'sına ihtiyacı olduğunda `channelConfigs` kullanın.
```json
{
@ -419,17 +405,17 @@ Bir kanal plugin'i çalışma zamanı yüklenmeden önce düşük maliyetli yap
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. |
| 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/hassasiyet ipuçları. |
| `label` | `string` | Çalışma zamanı metadatası 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ı. |
| `label` | `string` | Çalışma zamanı metadata'sı 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 bu kanalın önüne geçmesi gereken eski veya daha düşük öncelikli plugin kimlikleri. |
## `modelSupport` başvurusu
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.
OpenClaw'un, plugin çalışma zamanı yüklenmeden önce `gpt-5.4` veya `claude-sonnet-4.6` gibi kısaltılmış model kimliklerinden provider plugin'inizi çıkarsaması gerektiğinde `modelSupport` kullanın.
```json
{
@ -440,60 +426,62 @@ OpenClaw'ın, plugin çalışma zamanı yüklenmeden önce `gpt-5.4` veya `claud
}
```
OpenClaw şu öncelik sırasını uygular:
OpenClaw şu önceliği uygular:
- açık `provider/model` başvuruları, sahibi olan `providers` manifest metadatasını kullanır
- açık `provider/model` referansları, sahibi olan `providers` manifest metadata'sını kullanır
- `modelPatterns`, `modelPrefixes`'i geçersiz kılar
- bir paketlenmemiş plugin ve bir paketlenmiş plugin aynı anda eşleşirse, paketlenmemiş plugin kazanır
- bir paketlenmemiş plugin ve bir paketlenmiş plugin aynı anda eşleşirse paketlenmemiş plugin kazanır
- kullanıcı veya yapılandırma bir provider belirtinceye kadar kalan belirsizlik yok sayılır
Alanlar:
| Alan | Tür | Anlamı |
| --------------- | ---------- | ----------------------------------------------------------------------------- |
| `modelPrefixes` | `string[]` | Kısa model kimliklerine karşı `startsWith` ile eşleştirilen ön ekler. |
| `modelPatterns` | `string[]` | Profil soneki kaldırıldıktan sonra kısa model kimliklerine karşı eşleştirilen regex kaynakları. |
| Alan | Tür | Anlamı |
| --------------- | ---------- | ---------------------------------------------------------------------- |
| `modelPrefixes` | `string[]` | Kısaltılmış model kimliklerine karşı `startsWith` ile eşleştirilen önekler. |
| `modelPatterns` | `string[]` | Profil son eki kaldırıldıktan sonra kısaltılmış model kimliklerine karşı eşleştirilen 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üklemesi artık bu üst düzey alanları yetenek sahipliği olarak değerlendirmez.
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 ve `package.json` karşılaştırması
## Manifest ile package.json karşılaştırması
Bu iki dosya farklı görevler görür:
Bu iki dosya farklı görevler üstlenir:
| Dosya | Kullanım amacı |
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `openclaw.plugin.json` | Plugin kodu çalışmadan önce var olması gereken keşif, yapılandırma doğrulaması, kimlik doğrulama seçeneği metadatası ve UI ipuçları |
| `package.json` | npm metadatası, bağımlılık kurulumu ve giriş noktaları, kurulum geçitleme, kurulum veya katalog metadatası için kullanılan `openclaw` bloğu |
| Dosya | Kullanım amacı |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `openclaw.plugin.json` | Keşif, yapılandırma doğrulaması, kimlik doğrulama seçeneği metadata'sı ve plugin kodu çalışmadan önce var olması gereken UI ipuçları |
| `package.json` | npm metadata'sı, bağımlılık kurulumu ve giriş noktaları, kurulum geçitleme, kurulum veya katalog metadata'sı için kullanılan `openclaw` bloğu |
Bir metadata parçasının nereye ait olduğundan emin değilseniz şu kuralı kullanın:
- OpenClaw'ın bunu plugin kodunu yüklemeden önce bilmesi gerekiyorsa, `openclaw.plugin.json` içine koyun
- paketleme, giriş dosyaları veya npm kurulum davranışıyla ilgiliyse, `package.json` içine koyun
- 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ı
Bazı çalışma zamanı öncesi plugin metadataları, `openclaw.plugin.json` yerine özellikle `package.json` içindeki `openclaw` bloğunda bulunur.
Bazı çalışma zamanı öncesi plugin metadata'ları, `openclaw.plugin.json` yerine kasıtlı olarak `package.json` içindeki `openclaw` bloğunda tutulur.
Önemli örnekler:
| Alan | Anlamı |
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| `openclaw.extensions` | Yerel plugin giriş noktalarını bildirir. |
| `openclaw.setupEntry` | Onboarding ve ertelenmiş kanal başlangıcı sırasında kullanılan hafif, yalnızca kurulum amaçlı giriş noktası. |
| `openclaw.channel` | Etiketler, belge yolları, takma adlar ve seçim metni gibi düşük maliyetli kanal katalog metadatası. |
| `openclaw.channel.configuredState` | Tam kanal çalışma zamanını yüklemeden "yalnızca ortam değişkeniyle kurulum zaten var mı?" sorusuna yanıt verebilen hafif configured-state denetleyici metadatası. |
| `openclaw.channel.persistedAuthState` | Tam kanal çalışma zamanını yüklemeden "zaten oturum açılmış bir şey var mı?" sorusuna yanıt verebilen hafif persisted-auth denetleyici metadatası. |
| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Paketlenmiş ve harici olarak 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ı kullanan, desteklenen en düşük OpenClaw ana bilgisayar 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 amaçlı kanal yüzeylerinin yüklenmesine izin verir. |
| Alan | Anlamı |
| ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `openclaw.extensions` | Yerel plugin giriş noktalarını bildirir. |
| `openclaw.setupEntry` | Onboarding, ertelenmiş kanal başlangıcı ve salt okunur kanal durumu/SecretRef keşfi sırasında kullanılan hafif yalnızca kurulum giriş noktası. |
| `openclaw.channel` | Etiketler, belge yolları, takma adlar ve seçim metni gibi düşük maliyetli kanal katalog metadata'sı. |
| `openclaw.channel.configuredState` | Tam kanal çalışma zamanını yüklemeden "yalnızca ortam tabanlı kurulum zaten mevcut mu?" sorusunu yanıtlayabilen hafif yapılandırılmış durum denetleyici metadata'sı. |
| `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 denetleyici metadata'sı. |
| `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ı kullanılarak belirtilen, 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 amaçlı kanal yüzeylerinin yüklenmesine izin verir. |
`openclaw.install.minHostVersion`, kurulum ve manifest kayıt defteri yüklemesi sırasında uygulanır. Geçersiz değerler reddedilir; daha yeni ama geçerli değerler eski ana bilgisayarlarda plugin'i atlar.
`openclaw.install.minHostVersion`, kurulum ve manifest kayıt defteri yüklemesi sırasında uygulanır. Geçersiz değerler reddedilir; daha yeni ama geçerli değerler eski host'larda plugin'i atlar.
`openclaw.install.allowInvalidConfigRecovery` bilerek dar kapsamlı tutulmuştur. Keyfi bozuk yapılandırmaları kurulabilir hâle getirmez. Bugün yalnızca, eksik paketlenmiş plugin yolu veya aynı paketlenmiş plugin için bayat bir `channels.<id>` girdisi gibi belirli bayat paketlenmiş plugin yükseltme hatalarından kurulum akışlarının kurtulmasına izin verir. İlişkisiz yapılandırma hataları yine kurulumu engeller ve operatörleri `openclaw doctor --fix` komutuna yönlendirir.
Kanal plugin'leri, tam çalışma zamanını yüklemeden durum, kanal listesi veya SecretRef taramalarının yapılandırılmış hesapları tanımlaması gerektiğinde `openclaw.setupEntry` sağlamalıdır. Kurulum girdisi kanal metadata'sının yanı sıra kurulum açısından güvenli yapılandırma, durum ve sır adaptörlerini açığa çıkarmalıdır; ağ istemcilerini, Gateway dinleyicilerini ve taşıma çalışma zamanlarını ana extension giriş noktasında tutun.
`openclaw.channel.persistedAuthState`, küçük bir denetleyici modülü için paket metadatasıdır:
`openclaw.install.allowInvalidConfigRecovery` kasıtlı olarak 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 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ı yine de kurulumu engeller ve operatörleri `openclaw doctor --fix` komutuna yönlendirir.
`openclaw.channel.persistedAuthState`, küçük bir denetleyici modül için package metadata'sıdır:
```json
{
@ -509,9 +497,9 @@ Bazı çalışma zamanı öncesi plugin metadataları, `openclaw.plugin.json` ye
}
```
Kurulum, 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 bunu kullanın. Hedef dışa aktarma yalnızca kalıcı durumu okuyan küçük bir fonksiyon olmalıdır; bunu tam kanal çalışma zamanı barrel'ı üzerinden yönlendirmeyin.
Kurulum, 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'i üzerinden yönlendirmeyin.
`openclaw.channel.configuredState`, düşük maliyetli yalnızca ortam değişkeniyle yapılandırılmış denetimleri için aynı biçimi izler:
`openclaw.channel.configuredState`, düşük maliyetli yalnızca ortam tabanlı yapılandırılmış denetimler için aynı biçimi izler:
```json
{
@ -527,69 +515,46 @@ Kurulum, doctor veya configured-state akışlarının tam kanal plugin'i yüklen
}
```
Bir kanal configured-state durumunu ortam değişkenlerinden veya diğer küçük çalışma zamanı dışı girdilerden yanıtlayabiliyorsa bunu kullanın. Denetim tam yapılandırma çözümlemesine veya gerçek kanal çalışma zamanına ihtiyaç duyuyorsa, bu mantığı bunun yerine plugin `config.hasConfiguredState` hook'unda tutun.
Bir kanalın, yapılandırılmış durumu ortamdan veya diğer küçük çalışma zamanı dışı girdilerden yanıtlayabildiği durumlarda bunu kullanın. Denetim tam yapılandırma çözümlemesine veya gerçek kanal çalışma zamanına ihtiyaç duyuyorsa bunun yerine o mantığı plugin `config.hasConfiguredState` hook'unda tutun.
## JSON şema gereksinimleri
## JSON Şeması gereksinimleri
- **Her plugin bir JSON şeması yayımlamalıdır**, yapılandırma kabul etmese bile.
- Boş bir şema kabul edilebilir (`{ "type": "object", "additionalProperties": false }` gibi).
- **Her plugin mutlaka bir JSON Şeması içermelidir**, 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ışı
- Kanal kimliği bir plugin manifesti tarafından bildirilmediği sürece bilinmeyen `channels.*` anahtarları **hata**dır.
- `plugins.entries.<id>`, `plugins.allow`, `plugins.deny` ve `plugins.slots.*`
**keşfedilebilir** plugin kimliklerine başvurmalıdır. Bilinmeyen kimlikler **hata**dır.
- Bir plugin kuruluysa ancak manifesti veya şeması bozuk 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.
- Kanal kimliği bir plugin manifesti tarafından bildirilmedikçe, bilinmeyen `channels.*` anahtarları **hatadır**.
- `plugins.entries.<id>`, `plugins.allow`, `plugins.deny` ve `plugins.slots.*`, **keşfedilebilir** plugin kimliklerine referans vermelidir. Bilinmeyen kimlikler **hatadır**.
- Bir plugin kuruluysa ancak manifesti veya şeması bozuk ya da eksikse doğrulama başarısız olur ve Doctor plugin hatasını bildirir.
- Plugin yapılandırması mevcutsa ancak plugin **devre dışıysa**, yapılandırma korunur ve Doctor + günlüklerde bir **uyarı** gösterilir.
Tam `plugins.*` şeması için bkz. [Yapılandırma başvurusu](/tr/gateway/configuration).
Tam `plugins.*` şeması için bkz. [Configuration reference](/tr/gateway/configuration).
## Notlar
- Manifest, yerel dosya sistemi yüklemeleri dahil olmak üzere **yerel OpenClaw Plugin'leri** için **zorunludur**.
- Çalışma zamanı hâlâ 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 nihai değer hâlâ bir nesne olduğu sürece yorumlar, sondaki virgüller ve
tırnaksız anahtarlar kabul edilir.
- Yalnızca belgelenmiş manifest alanları manifest yükleyici tarafından okunur. Buraya
özel üst düzey anahtarlar eklemekten kaçının.
- `providerAuthEnvVars`, kimlik doğrulama yoklamaları, env-marker
doğrulaması ve ortam değişkeni 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 metadata yoludur.
- `providerAuthAliases`, provider varyantlarının başka bir provider'ın kimlik doğrulama
ortam değişkenlerini, kimlik doğrulama profillerini, yapılandırma destekli kimlik doğrulamayı ve API anahtarı onboarding seçeneğini
çekirdekte bu ilişkiyi hardcode etmeden yeniden kullanmasına olanak tanır.
- `providerEndpoints`, provider plugin'lerinin basit endpoint host/baseUrl
eşleştirme metadatasının sahibi olmasına olanak tanır. Bunu yalnızca çekirdeğin zaten desteklediği endpoint sınıfları için kullanın;
çalışma zamanı davranışının sahibi yine 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 metadata yoludur. Yalnızca çalışma zamanı provider'ı veya CLI backend'i gerçekten
`resolveSyntheticAuth` uygulayan başvuruları listeleyin.
- `nonSecretAuthMarkers`, yerel, OAuth veya ortam kimlik bilgisi işaretçileri gibi, paketlenmiş plugin'e ait
yer tutucu API anahtarları için düşük maliyetli metadata yoludur.
Çekirdek, sahip provider'ı hardcode etmeden, kimlik doğrulama gösterimi ve gizli bilgi denetimlerinde bunları gizli olmayan değerler olarak ele alır.
- `channelEnvVars`, shell ortam değişkeni geri dönüşü, kurulum
istemleri ve ortam değişkeni adlarını incelemek için plugin çalışma zamanını başlatmaması gereken benzer kanal yüzeyleri için düşük maliyetli metadata yoludur.
- `providerAuthChoices`, kimlik doğrulama seçeneği seçicileri,
provider çalışma zamanı yüklenmeden önce `--auth-choice` çözümlemesi, tercih edilen provider eşlemesi ve basit onboarding
CLI bayrağı kaydı için düşük maliyetli metadata yoludur. Provider kodu gerektiren çalışma zamanı sihirbazı
metadatası için bkz.
[Provider çalışma zamanı hook'ları](/tr/plugins/architecture#provider-runtime-hooks).
- Özel plugin türleri `plugins.slots.*` üzerinden seçilir.
- `kind: "memory"`, `plugins.slots.memory` tarafından seçilir.
- `kind: "context-engine"`, `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 belgelendirin (örneğin pnpm `allow-build-scripts`
- Manifest, yerel dosya sistemi yüklemeleri dahil, yerel OpenClaw plugin'leri için **zorunludur**.
- Çalışma zamanı yine 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-marker doğrulaması ve ortam 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 metadata yoludur.
- `providerAuthAliases`, provider varyantlarının başka bir provider'ın kimlik doğrulama ortam değişkenlerini, kimlik doğrulama profillerini, yapılandırma destekli 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 uç nokta host/baseUrl eşleştirme metadata'sının sahibi 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ışının sahibi yine plugin'dir.
- `syntheticAuthRefs`, çalışma zamanı kayıt defteri var olmadan önce soğuk model keşfi için görünür olması gereken, provider'a ait sentetik kimlik doğrulama hook'ları için düşük maliyetli metadata yoludur. Yalnızca çalışma zamanı provider'ı veya CLI backend'i gerçekten `resolveSyntheticAuth` uygulayan referansları listeleyin.
- `nonSecretAuthMarkers`, yerel, OAuth veya ortam kimlik bilgisi işaretçileri gibi paketlenmiş plugin'e ait yer tutucu API anahtarları için düşük maliyetli metadata yoludur. Çekirdek, sahibi olan provider'ı sabit kodlamadan bunları kimlik doğrulama görüntüleme ve sır denetimleri için gizli olmayan değerler olarak değerlendirir.
- `channelEnvVars`, ortam adlarını incelemek için plugin çalışma zamanını başlatmaması gereken shell-env geri dönüşü, kurulum istemleri ve benzer kanal yüzeyleri için düşük maliyetli metadata yoludur.
- `providerAuthChoices`, provider çalışma zamanı yüklenmeden önce kimlik doğrulama seçeneği seçicileri, `--auth-choice` çözümlemesi, tercih edilen provider eşlemesi ve basit onboarding CLI bayrağı kaydı için düşük maliyetli metadata yoludur. Provider kodu gerektiren çalışma zamanı wizard metadata'sı için bkz. [Provider runtime hooks](/tr/plugins/architecture#provider-runtime-hooks).
- Dışlayıcı plugin türleri `plugins.slots.*` üzerinden seçilir.
- `kind: "memory"` değeri `plugins.slots.memory` ile seçilir.
- `kind: "context-engine"` değeri `plugins.slots.contextEngine` ile seçilir
(varsayılan: yerleşik `legacy`).
- Bir plugin bunlara ihtiyaç duymuyorsa `channels`, `providers`, `cliBackends` ve `skills` atlanabilir.
- Plugin'iniz yerel modüllere bağlıysa derleme adımlarını ve tüm paket yöneticisi izin listesi gereksinimlerini belgelendirin (örneğin pnpm `allow-build-scripts`
- `pnpm rebuild <package>`).
## İlgili
- [Plugin oluşturma](/tr/plugins/building-plugins) — plugin'lere başlarken
- [Plugin mimarisi](/tr/plugins/architecture) — dahili mimari
- [SDK genel bakış](/tr/plugins/sdk-overview) — Plugin SDK başvurusu
- [Building Plugins](/tr/plugins/building-plugins) — plugin'lerle çalışmaya başlama
- [Plugin Architecture](/tr/plugins/architecture) — iç mimari
- [SDK Overview](/tr/plugins/sdk-overview) — Plugin SDK başvurusu

View File

@ -1,110 +1,112 @@
---
read_when:
- Yeni bir mesajlaşma kanalı Plugin'i oluşturuyorsunuz
- OpenClaw'ı bir mesajlaşma platformuna bağlamak istiyorsunuz
- OpenClaw'u bir mesajlaşma platformuna bağlamak istiyorsunuz
- ChannelPlugin bağdaştırıcı yüzeyini anlamanız gerekiyor
sidebarTitle: Channel Plugins
summary: OpenClaw için 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ı Plugin'i oluşturma adım adım kılavuzu
title: Kanal Plugin'leri Oluşturma
x-i18n:
generated_at: "2026-04-21T09:02:12Z"
generated_at: "2026-04-21T19:20:44Z"
model: gpt-5.4
provider: openai
source_hash: 569394aeefa0231ae3157a13406f91c97fe7eeff2b62df0d35a893f1ad4d5d05
source_hash: 35cae55c13b69f2219bd2f9bd3ee2f7d8c4075bd87f0be11c35a0fddb070fe1e
source_path: plugins/sdk-channel-plugins.md
workflow: 15
---
# Kanal Plugin'leri 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şleme, yanıt ileti dizileri ve giden mesajlaşma içeren çalışan bir kanalınız olacak.
Bu kılavuz, OpenClaw'u bir mesajlaşma platformuna bağlayan bir kanal plugin'i oluşturma sürecini adım adım açıklar. 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, temel paket
yapısı ve manifest kurulumu için önce [Başlangıç](/tr/plugins/building-plugins) belgesini okuyun.
Daha önce hiç OpenClaw plugin'i oluşturmadıysanız, temel paket
yapısı ve manifest kurulumu için önce [Başlangıç](/tr/plugins/building-plugins)
bölümünü okuyun.
</Info>
## Kanal Plugin'leri nasıl çalışır
## Kanal plugin'leri nasıl çalışır
Kanal Plugin'lerinin kendi send/edit/react araçlarına ihtiyacı yoktur. OpenClaw,
çekirdekte tek bir paylaşılan `message` aracı tutar. Plugin'iniz şunlara sahip olur:
Kanal plugin'lerinin kendi send/edit/react araçlarına ihtiyacı yoktur. OpenClaw, çekirdekte tek bir paylaşılan `message` aracını tutar. Plugin'iniz şunlardan sorumludur:
- **Yapılandırma** — hesap çözümleme ve kurulum sihirbazı
- **Güvenlik** — DM ilkesi ve allowlist'ler
- **Eşleme** — DM onay akışı
- **Oturum dil bilgisi** — sağlayıcıya özgü konuşma kimliklerinin temel sohbetlere, ileti dizisi kimliklerine ve üst yedeklere nasıl eşlendiği
- **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, iş parçacığı kimliklerine ve üst geri dönüşlerine nasıl eşlendiği
- **Giden** — platforma metin, medya ve anket gönderme
- **İleti dizileri** — yanıtların nasıl ileti dizisine bağlandığı
- **İş parçacığı oluşturma** — yanıtların nasıl iş parçacığına bağlandığı
Çekirdek; paylaşılan mesaj aracına, prompt bağlamaya, dış oturum-anahtarı biçimine,
genel `:thread:` muhasebesine ve sevke sahiptir.
Çekirdek; paylaşılan message aracından, prompt bağlantılarından, dış oturum anahtarı biçiminden,
genel `:thread:` kayıt tutmadan ve dağıtımdan sorumludur.
Kanalınız medya kaynakları taşıyan message-tool parametreleri ekliyorsa, bu
parametre adlarını `describeMessageTool(...).mediaSourceParams` üzerinden ortaya çıkarın. Çekirdek, bu açık listeyi sandbox yol normalizasyonu ve giden medya erişim
ilkesi için kullanır; böylece Plugin'lerin sağlayıcıya özgü
avatar, ek veya kapak görseli parametreleri için paylaşılan çekirdekte özel durumlara ihtiyacı olmaz.
Tercihen şu biçimde eylem anahtarlı bir eşleme döndürün:
`{ "set-profile": ["avatarUrl", "avatarPath"] }`; böylece ilgisiz eylemler başka bir eylemin
medya bağımsız değişkenlerini devralmaz. Düz bir dizi, kasten
ortaya çıkarılan tüm eylemler arasında paylaşılan parametreler için yine çalışır.
parametre adlarını `describeMessageTool(...).mediaSourceParams` üzerinden açığa çıkarın. Çekirdek, sanal alan yol normalleştirmesi 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 çekirdekte özel durumlara ihtiyacı kalmaz.
Tercihen
`{ "set-profile": ["avatarUrl", "avatarPath"] }`
gibi eylem anahtarlı bir eşleme döndürün; böylece alakasız eylemler başka bir eylemin medya argümanlarını devralmaz. Düz bir dizi de, kasıtlı olarak açığa çıkarılan her eylem arasında paylaşılan parametreler için hâlâ çalışır.
Platformunuz konuşma kimlikleri içinde ek kapsam saklıyorsa, 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 olası
`parentConversationCandidates` öğelerine eşlemek için kanonik kancadır.
plugin içinde `messaging.resolveSessionConversation(...)` ile yapın. Bu,
`rawId` değerini temel konuşma kimliğine, isteğe bağlı iş parçacığı kimliğine,
ık `baseConversationId` değerine ve varsa `parentConversationCandidates` değerlerine 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.
en dar üst öğeden en geniş/temel konuşmaya doğru sıralı tutun.
Kanal kayıt defteri başlatılmadan önce aynı ayrıştırmaya ihtiyaç duyan paketlenmiş Plugin'ler,
eşleşen bir `resolveSessionConversation(...)` dışa aktarımı ile üst düzey
bir `session-key-api.ts` dosyası da sunabilir. Çekirdek, çalışma zamanı Plugin kayıt defteri henüz
kullanılabilir değilse yalnızca bu bootstrap-safe yüzeyi kullanır.
Kayıtlı kanal kayıt defteri başlatılmadan önce aynı ayrıştırmaya ihtiyaç duyan
paketlenmiş plugin'ler, eşleşen bir
`resolveSessionConversation(...)` dışa aktarımıyla üst düzey bir `session-key-api.ts`
dosyası da açığa çıkarabilir. Çekirdek, çalışma zamanı plugin kayıt defteri henüz kullanılamıyorsa
yalnızca bu önyükleme açısından güvenli yüzeyi kullanır.
`messaging.resolveParentConversationCandidates(...)`, bir Plugin yalnızca
genel/raw kimliğin üstünde üst yedeklere ihtiyaç duyduğunda eski uyumluluk yedeği olarak
kullanılmaya devam eder. Her iki kanca da varsa çekirdek önce
`resolveSessionConversation(...).parentConversationCandidates` kullanır ve yalnızca kanonik kanca
bunları atladığında `resolveParentConversationCandidates(...)` kancasına geri döner.
`messaging.resolveParentConversationCandidates(...)`, bir plugin'in yalnızca
genel/raw kimliğin üstüne üst geri dönüşlerine ihtiyaç duyduğu durumlar için 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 plugin'inin onaya özgü koda ihtiyacı yoktur.
- Çekirdek; aynı sohbette `/approve`, paylaşılan onay düğmesi yükleri ve genel yedek teslimata sahiptir.
- Kanalın onaya özgü davranışa ihtiyacı olduğunda, kanal Plugin'i üzerinde tek bir `approvalCapability` nesnesini tercih edin.
- `ChannelPlugin.approvals` kaldırıldı. Onay teslimatı/yerel işleme/auth gerçeklerini `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 hattıdır.
- Aynı sohbette onay auth kullanılabilirliği için `approvalCapability.getActionAvailabilityState` kullanın.
- Kanalınız yerel exec onaylarını ortaya çıkarıyorsa, başlatıcı yüzey/yerel istemci durumu aynı sohbet onay auth'undan farklı olduğunda `approvalCapability.getExecInitiatingSurfaceState` kullanın. Çekirdek bu exec'e özgü kancayı `enabled` ve `disabled` ayrımı yapmak, başlatıcı kanalın yerel exec onaylarını destekleyip desteklemediğine karar vermek ve kanalı yerel istemci yedek yönergelerine eklemek için kullanır. `createApproverRestrictedNativeApprovalCapability(...)`, yaygın durum için bunu doldurur.
- Yinelenen yerel onay istemlerini gizlemek veya teslimat öncesi yazıyor göstergeleri göndermek gibi kanala özgü yük 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 yedek bastırma için kullanılmalıdır.
- Kanala ait yerel onay gerçekleri için `approvalCapability.nativeRuntime` kullanın. Bunu, sıcak kanal giriş noktalarında `createLazyChannelApprovalNativeRuntimeAdapter(...)` ile tembel tutun; bu, çalışma zamanı modülünüzü isteğe bağlı içe aktarırken çekirdeğin onay yaşam döngüsünü kurmasına da izin verir.
- `approvalCapability.render` yalnızca bir kanal paylaşılan işleyici yerine gerçekten özel onay yüklerine ihtiyaç duyuyorsa kullanılmalıdır.
- Yerel exec onaylarını etkinleştirmek için gereken tam yapılandırma düğmelerini devre dışı yol yanıtında açıklamak 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 göstermelidir.
- Bir kanal mevcut yapılandırmadan kararlı sahip-benzeri DM kimliklerini çıkarabiliyorsa, onaya özgü çekirdek mantığı eklemeden aynı sohbette `/approve` kısıtlaması yapmak için `openclaw/plugin-sdk/approval-runtime` içindeki `createResolvedApproverActionAuthAdapter` kullanın.
- Bir kanal yerel onay teslimatına 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 koyun; ideal olarak `createChannelApprovalNativeRuntimeAdapter(...)` veya `createLazyChannelApprovalNativeRuntimeAdapter(...)` aracılığıyla, böylece çekirdek işleyiciyi kurabilir ve istek filtreleme, yönlendirme, dedupe, süre sonu, Gateway aboneliği ve başka yere yönlendirildi bildirimlerine sahip olabilir. `nativeRuntime`, birkaç küçük hatta ayrılmıştır:
- `availability` — hesabın yapılandırılmış olup olmadığı ve bir isteğin ele alınıp alınmaması gerektiği
- `presentation` — paylaşılan onay görünüm modelini beklemede/çözümlenmiş/süresi dolmuş yerel yüklere veya son eylemlere eşleme
- `transport` — hedefleri hazırlama ve yerel onay mesajlarını gönderme/güncelleme/silme
- `interactions` — yerel düğmeler veya reaksiyonlar için isteğe bağlı bind/unbind/clear-action kancaları
- `observe` — isteğe bağlı teslimat tanılama kancaları
- Kanalın istemci, belirteç, 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, çekirdeğin onaya özgü sarmalayıcı yapıştırıcısı eklemeden kanal başlangıç durumundan yetenek odaklı işleyicileri bootstrap etmesini sağlar.
- Daha düşük düzey `createChannelApprovalHandler` veya `createChannelNativeApprovalRuntime` araçlarına yalnızca yetenek odaklı hat henüz yeterince ifade gücüne sahip değilse başvurun.
- Yerel onay kanalları, bu yardımcılar üzerinden hem `accountId` hem `approvalKind` yönlendirmelidir. `accountId`, çok hesaplı onay ilkesini doğru bot hesabına kapsamlı tutar; `approvalKind` ise çekirdekte sabit dallar olmadan exec ve plugin onay davranışını kanal için kullanılabilir tutar.
- Çekirdek artık onay yeniden yönlendirme bildirimlerine de sahiptir. 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 kaynak + onaylayıcı-DM yönlendirmesini ortaya koyun ve başlatıcı sohbete herhangi bir bildirim göndermeden önce çekirdeğin gerçek teslimatları toplamasına izin verin.
- Çekirdek, aynı sohbette `/approve`, paylaşılan onay düğmesi yüklerini ve genel geri dönüş teslimini yönetir.
- Kanal onaya özgü davranış gerektiriyorsa, kanal plugin'inde tek bir `approvalCapability` nesnesi tercih edin.
- `ChannelPlugin.approvals` kaldırılmıştır. Onay teslimi/yerel işleme/render/yetkilendirme bilgilerini `approvalCapability`ine koyun.
- `plugin.auth` yalnızca giriş/çıkış içindir; çekirdek artık bu nesneden onay auth kancalarını okumaz.
- `approvalCapability.authorizeActorAction` ve `approvalCapability.getActionAvailabilityState`, kanonik onay auth bağlantı yüzeyidir.
- Aynı sohbet onay auth kullanılabilirliği için `approvalCapability.getActionAvailabilityState` kullanın.
- Kanalınız yerel exec onaylarını ığa çıkarıyorsa, başlatıcı yüzey/yerel istemci durumu, aynı sohbet onay auth'undan farklı olduğunda `approvalCapability.getExecInitiatingSurfaceState` kullanın. Çekirdek, `enabled` ile `disabled` ayrımını yapmak, başlatıcı kanalın yerel exec onaylarını destekleyip desteklemediğine karar vermek ve kanalı yerel istemci geri dönüş yönlendirmesine dahil etmek için bu exec'e özgü kancayı kullanır. `createApproverRestrictedNativeApprovalCapability(...)`, yaygın durum için bunu doldurur.
- Yinelenen yerel onay prompt'larını gizleme veya teslim öncesi yazıyor göstergeleri gönderme gibi kanala özgü yük yaşam döngüsü davranışları için `outbound.shouldSuppressLocalPayloadPrompt` ya da `outbound.beforeDeliverPayload` kullanın.
- `approvalCapability.delivery` yalnızca yerel onay yönlendirme veya geri dönüş bastırma için kullanılmalıdır.
- Kanala ait yerel onay bilgileri için `approvalCapability.nativeRuntime` kullanın. Bunu sıcak kanal giriş noktalarında `createLazyChannelApprovalNativeRuntimeAdapter(...)` ile tembel tutun; böylece çekirdek onay yaşam döngüsünü kurmaya devam ederken çalışma zamanı modülünüzü isteğe bağlı içe aktarabilir.
- Kanalın gerçekten paylaşılan render yerine özel onay yüklerine ihtiyacı varsa 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ı render etmelidir.
- Bir kanal mevcut yapılandırmadan kararlı sahip benzeri DM kimliklerini çıkarabiliyorsa, onaya özgü çekirdek mantığı eklemeden aynı sohbette `/approve` kısıtlaması yapmak için `openclaw/plugin-sdk/approval-runtime` içindeki `createResolvedApproverActionAuthAdapter` kullanın.
- Bir kanalın yerel onay teslimine ihtiyacı varsa, kanal kodunu hedef normalleştirme ile taşıma/sunum bilgilerine odaklı tutun. `openclaw/plugin-sdk/approval-runtime` içinden `createChannelExecApprovalProfile`, `createChannelNativeOriginTargetResolver`, `createChannelApproverDmTargetResolver` ve `createApproverRestrictedNativeApprovalCapability` kullanın. Kanala özgü bilgileri `approvalCapability.nativeRuntime` arkasına koyun; tercihen `createChannelApprovalNativeRuntimeAdapter(...)` veya `createLazyChannelApprovalNativeRuntimeAdapter(...)` ile, böylece çekirdek işleyiciyi kurabilir ve istek filtreleme, yönlendirme, tekilleştirme, süre sonu, Gateway aboneliği ve başka yere yönlendirildi bildirimlerini yönetebilir. `nativeRuntime` birkaç küçük bağlantı yüzeyine ayrılmıştır:
- `availability` — hesabın yapılandırılıp yapılandırılmadığı ve bir isteğin işlenip işlenmeyeceği
- `presentation` — paylaşılan onay görünüm modelini bekleyen/çözümlenmiş/süresi dolmuş yerel yükler veya son eylemlerle 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ı bağla/çöz/eylem temizleme 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, çekirdeğin onaya özgü sarmalayıcı yapıştırma kodu eklemeden kanal başlangıç durumundan yetenek odaklı işleyicileri önyüklemesine izin verir.
- Daha düşük seviyeli `createChannelApprovalHandler` veya `createChannelNativeApprovalRuntime` araçlarına yalnızca yetenek odaklı bağlantı yüzeyi henüz yeterince ifade gücüne sahip değilse başvurun.
- Yerel onay kanalları, bu yardımcılar üzerinden hem `accountId` hem de `approvalKind` değerini yönlendirmelidir. `accountId`, çok hesaplı onay ilkesinin doğru bot hesabı kapsamında kalmasını sağlar; `approvalKind` ise exec ile plugin onay davranışının çekirdekte sabit kodlu dallar olmadan kanalda kullanılabilir kalmasını sağlar.
- Çekirdek artık onay yeniden yönlendirme bildirimlerini de yönetiyor. 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 yetenek yardımcıları üzerinden doğru origin + approver-DM yönlendirmesini açığa çıkarmalı ve çekirdeğin başlatan sohbete herhangi bir bildirim göndermeden önce gerçek teslimleri toplamasına izin vermelidir.
- Teslim edilen onay kimliği türünü uçtan uca koruyun. Yerel istemciler,
exec ve plugin onay yönlendirmesini kanala yerel durumdan tahmin etmemeli veya yeniden yazmamalıdır.
- Farklı onay türleri kasıtlı olarak farklı yerel yüzeyler ortaya çıkarabilir.
Geçerli paketlenmiş örnekler:
- Slack, yerel onay yönlendirmesini hem exec hem de plugin kimlikleri için kullanılabilir tutar.
- Matrix, exec ve plugin onayları için aynı yerel DM/kanal yönlendirmesi ve reaksiyon UX'ini korurken auth'un onay türüne göre farklılaşmasına yine izin verir.
- `createApproverRestrictedNativeApprovalAdapter` uyumluluk sarmalayıcısı olarak hâlâ vardır, ancak yeni kod yetenek oluşturucuyu tercih etmeli ve Plugin üzerinde `approvalCapability` ortaya çıkarmalıdır.
exec ile plugin onay yönlendirmesini kanala özgü durumdan tahmin etmemeli veya yeniden yazmamalıdır.
- Farklı onay türleri kasıtlı olarak farklı yerel yüzeyler açığa çıkarabilir.
Mevcut paketli örnekler:
- Slack, hem exec hem de plugin kimlikleri için yerel onay yönlendirmesini kullanılabilir tutar.
- Matrix, auth onay türüne göre farklılaşabilse bile exec
ve plugin onayları için aynı yerel DM/kanal yönlendirmesini ve reaction UX'ini korur.
- `createApproverRestrictedNativeApprovalAdapter` hâlâ bir uyumluluk sarmalayıcısı olarak vardır, ancak yeni kod tercih olarak yetenek oluşturucusunu kullanmalı ve plugin üzerinde `approvalCapability`ığa çıkarmalıdır.
Sıcak kanal giriş noktaları için, bu ailenin yalnızca bir parçasına ihtiyaç
duyduğunuzda daha dar çalışma zamanı alt yollarını tercih edin:
Sıcak kanal giriş noktalarında, bu ailenin yalnızca tek bir bölümüne
ihtiyacınız olduğunda daha dar çalışma zamanı alt yollarını tercih edin:
- `openclaw/plugin-sdk/approval-auth-runtime`
- `openclaw/plugin-sdk/approval-client-runtime`
@ -122,96 +124,100 @@ yüzeye ihtiyacınız olmadığında `openclaw/plugin-sdk/setup-runtime`,
`openclaw/plugin-sdk/reply-runtime`,
`openclaw/plugin-sdk/reply-dispatch-runtime`,
`openclaw/plugin-sdk/reply-reference` ve
`openclaw/plugin-sdk/reply-chunking` yollarını tercih edin.
`openclaw/plugin-sdk/reply-chunking` tercih edin.
Özellikle kurulum için:
- `openclaw/plugin-sdk/setup-runtime`, çalışma zamanıısından güvenli kurulum yardımcılarını kapsar:
import-safe kurulum yama bağdaştırıcıları (`createPatchedAccountSetupAdapter`,
içe aktarma açısından güvenli kurulum yama bağdaştırıcıları (`createPatchedAccountSetupAdapter`,
`createEnvPatchedAccountSetupAdapter`,
`createSetupInputPresenceValidator`), lookup-note çıktısı,
`createSetupInputPresenceValidator`), arama notu çıktısı,
`promptResolvedAllowFrom`, `splitSetupEntries` ve devredilmiş
setup-proxy oluşturucuları
kurulum proxy oluşturucuları
- `openclaw/plugin-sdk/setup-adapter-runtime`, `createEnvPatchedAccountSetupAdapter`
için dar, env farkındalıklı bağdaştırıcı hattıdır
- `openclaw/plugin-sdk/channel-setup`, isteğe bağlı kurulum setup
oluşturucularını ve birkaç setup-safe ilkel öğeyi kapsar:
için dar env farkındalıklı bağdaştırıcı bağlantı yüzeyidir
- `openclaw/plugin-sdk/channel-setup`, isteğe bağlı kurulum oluşturucularını ve birkaç kurulum açısından güvenli ilkel öğeyi kapsar:
`createOptionalChannelSetupSurface`, `createOptionalChannelSetupAdapter`,
Kanalınız env odaklı kurulum veya auth destekliyorsa ve genel başlangıç/yapılandırma
akışlarının bu env adlarını çalışma zamanı yüklenmeden önce bilmesi gerekiyorsa,
bunları Plugin manifest içinde `channelEnvVars` ile bildirin. Kanal çalışma zamanı `envVars` veya yerel
sabitleri yalnızca operatör odaklı kopya için kullanın.
akışlarının çalışma zamanı yüklenmeden önce bu env adlarını bilmesi gerekiyorsa,
bunları plugin manifest'inde `channelEnvVars` ile bildirin. Kanal çalışma zamanı `envVars` veya yerel sabitleri yalnızca operatöre dönük kopya için saklayı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ılabilecek kadar güvenli olmalı
ve kanal meta verilerini, kurulum açısından güvenli yapılandırma bağdaştırıcısını, durum bağdaştırıcısını ve bu özetler için gerekli kanal secret hedef meta verilerini döndürmelidir. Kurulum girişinden istemci, dinleyici 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` hattını kullanın; örneğin
- yalnızca şu gibi daha ağır paylaşılan kurulum/yapılandırma yardımcılarına da ihtiyacınız varsa
daha geniş `openclaw/plugin-sdk/setup` bağlantı yüzeyini kullanın:
`moveSingleAccountChannelSectionToDefaultAccount(...)`
Kanalınız yalnızca kurulum yüzeylerinde "önce bu Plugin'i kur" bilgisini
reklam etmek istiyorsa `createOptionalChannelSetupSurface(...)` tercih edin. Üretilen
bağdaştırıcı/sihirbaz, yapılandırma yazımları ve sonlandırmada fail-closed davranır ve doğrulama, finalize ve belge bağlantısı
kopyasında aynı kurulum-gerekli iletisini yeniden kullanır.
Kanalınız kurulum yüzeylerinde yalnızca "önce bu plugin'i yükleyin" bilgisini göstermek istiyorsa,
tercihen `createOptionalChannelSetupSurface(...)` kullanın. Üretilen
bağdaştırıcı/sihirbaz yapılandırma yazımlarında ve sonlandırmada kapalı kalır; ayrıca
doğrulama, sonlandırma ve docs-link kopyası boyunca aynı kurulum gerekli mesajını yeniden kullanır.
Diğer sıcak kanal yolları için, daha geniş eski
Diğer sıcak kanal yolları için de, daha geniş eski
yüzeyler yerine dar yardımcıları tercih edin:
- çok hesaplı yapılandırma ve
varsayılan hesap yedeği 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-sevk bağlaması için `openclaw/plugin-sdk/inbound-envelope` ve
kaydet-ve-dağıt bağlantısı için `openclaw/plugin-sdk/inbound-envelope` ile
`openclaw/plugin-sdk/inbound-reply-dispatch`
- hedef ayrıştırma/eşleme için `openclaw/plugin-sdk/messaging-targets`
- hedef ayrıştırma/eşleştirme için `openclaw/plugin-sdk/messaging-targets`
- medya yükleme ile giden
kimlik/gönderim delegeleri ve yük planlaması için `openclaw/plugin-sdk/outbound-media` ve
`openclaw/plugin-sdk/outbound-runtime`
- ileti dizisi bağlama yaşam döngüsü
- iş parçacığı bağlama yaşam döngüsü
ve bağdaştırıcı kaydı için `openclaw/plugin-sdk/thread-bindings-runtime`
- yalnızca eski agent/media
yük alan düzeni hâlâ gerekiyorsa `openclaw/plugin-sdk/agent-media-payload`
- 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 yedek-kararlı komut
normalleştirme, yinelenen/çakışma doğrulaması ve geri dönüşte kararlı komut
yapılandırma sözleşmesi için `openclaw/plugin-sdk/telegram-command-config`
Yalnızca auth kullanan kanallar genellikle varsayılan yolda durabilir: çekirdek onayları ele alır ve Plugin yalnızca giden/auth yeteneklerini ortaya çıkarır. Matrix, Slack, Telegram ve özel sohbet taşıyıcıları 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: onayları çekirdek yönetir ve plugin 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şturmaktansa paylaşılan yerel yardımcıları kullanmalıdır.
## Gelen bahsetme ilkesi
## Gelen mention ilkesi
Gelen bahsetme işlemeyi iki katmana bölünmüş tutun:
Gelen mention işleme mantığını iki katmana bölünmüş tutun:
- Plugin'e ait kanıt toplama
- plugin'e ait kanıt toplama
- paylaşılan ilke değerlendirmesi
Bahsetme ilkesi kararları için `openclaw/plugin-sdk/channel-mention-gating` kullanın.
Mention ilkesi kararları için `openclaw/plugin-sdk/channel-mention-gating` kullanın.
Daha geniş gelen
yardımcı barrel'ine yalnızca ihtiyaç duyduğunuzda `openclaw/plugin-sdk/channel-inbound` kullanın.
yardımcı barrel'ına ihtiyaç duyduğunuzda yalnızca `openclaw/plugin-sdk/channel-inbound` kullanın.
Plugin'e yerel mantık için uygun alanlar:
Plugin'e özgü mantık için uygun örnekler:
- bota yanıt algılama
- alıntılanan bot algılama
- ileti dizisine katılım kontrolleri
- hizmet/sistem mesajı hariç tutmaları
- bot katılımını kanıtlamak için gereken platforma özgü yerel önbellekler
- bot'a yanıt tespiti
- alıntılanan bot tespiti
- iş parçacığı katılımı kontrolleri
- servis/sistem mesajı dışlamaları
- bot katılımını kanıtlamak için gereken platformun yerel önbellekleri
Paylaşılan yardımcı için uygun alanlar:
Paylaşılan yardımcı için uygun örnekler:
- `requireMention`
- açık bahsetme sonucu
- örtük bahsetme allowlist'i
- açık mention sonucu
- örtük mention izin listesi
- komut baypası
- son atlama kararı
Tercih edilen akış:
1. Yerel bahsetme gerçeklerini hesaplayın.
2. Bu gerçekleri `resolveInboundMentionDecision({ facts, policy })` içine geçirin.
3. Gelen geçidinizde `decision.effectiveWasMentioned`, `decision.shouldBypassMention` ve `decision.shouldSkip` kullanın.
1. Yerel mention olgularını hesaplayın.
2. Bu olguları `resolveInboundMentionDecision({ facts, policy })` içine geçirin.
3. Gelen kapınızda `decision.effectiveWasMentioned`, `decision.shouldBypassMention` ve `decision.shouldSkip` değerlerini kullanın.
```typescript
import {
@ -250,8 +256,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 bahsetme yardımcılarını ortaya çıkarır:
`api.runtime.channel.mentions`, çalışma zamanı ekleme bağımlılığı zaten olan
paketlenmiş kanal plugin'leri için aynı paylaşılan mention yardımcılarınıığa çıkarır:
- `buildMentionRegexes`
- `matchesMentionPatterns`
@ -260,22 +266,24 @@ paketlenmiş kanal Plugin'leri için aynı paylaşılan bahsetme yardımcıları
- `resolveInboundMentionDecision`
Yalnızca `implicitMentionKindWhen` ve
`resolveInboundMentionDecision` gerekli ise,
ilgili olmayan gelen çalışma zamanı
yardımcılarını yüklememek için `openclaw/plugin-sdk/channel-mention-gating` içinden içe aktarın.
`resolveInboundMentionDecision` kullanmanız gerekiyorsa,
ilgisiz 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.
Eski `resolveMentionGating*` yardımcıları,
yalnızca uyumluluk dışa aktarımları olarak `openclaw/plugin-sdk/channel-inbound` üzerinde kalır. Yeni kod,
yalnızca uyumluluk dışa aktarımları olarak
`openclaw/plugin-sdk/channel-inbound` üzerinde kalmaya devam eder. Yeni kod,
`resolveInboundMentionDecision({ facts, policy })` kullanmalıdır.
## Kılavuz
## Adım adım anlatım
<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 şeydir. Tam paket meta veri yüzeyi için
bkz. [Plugin Kurulumu ve Yapılandırması](/tr/plugins/sdk-setup#openclaw-channel):
Standart plugin dosyalarını oluşturun. `package.json` içindeki `channel` alanı,
bunun bir kanal plugin'i olmasını sağlar. Tam paket meta verisi yüzeyi için
[Plugin Kurulumu ve Yapılandırma](/tr/plugins/sdk-setup#openclaw-channel)
bölümüne bakın:
<CodeGroup>
```json package.json
@ -289,7 +297,7 @@ yalnızca uyumluluk dışa aktarımları olarak `openclaw/plugin-sdk/channel-inb
"channel": {
"id": "acme-chat",
"label": "Acme Chat",
"blurb": "OpenClaw'ı Acme Chat'e bağlayın."
"blurb": "OpenClaw'u Acme Chat'e bağlayın."
}
}
}
@ -301,7 +309,7 @@ yalnızca uyumluluk dışa aktarımları olarak `openclaw/plugin-sdk/channel-inb
"kind": "channel",
"channels": ["acme-chat"],
"name": "Acme Chat",
"description": "Acme Chat kanal Plugin'i",
"description": "Acme Chat kanal plugin'i",
"configSchema": {
"type": "object",
"additionalProperties": false,
@ -324,9 +332,9 @@ yalnızca uyumluluk dışa aktarımları olarak `openclaw/plugin-sdk/channel-inb
</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ından
`id` ve `setup` ile başlayın, sonra ihtiyaç duydukça bağdaştırıcılar ekleyin.
<Step title="Kanal plugin nesnesini oluşturun">
`ChannelPlugin` arayüzü birçok isteğe bağlı bağdaştırıcı yüzeyi içerir. En
düşük seviyeden başlayın — `id` ve `setup` — ve ihtiyacınız oldukça bağdaştırıcılar ekleyin.
`src/channel.ts` oluşturun:
@ -351,7 +359,7 @@ yalnızca uyumluluk dışa aktarımları olarak `openclaw/plugin-sdk/channel-inb
): ResolvedAccount {
const section = (cfg.channels as Record<string, any>)?.["acme-chat"];
const token = section?.token;
if (!token) throw new Error("acme-chat: token is required");
if (!token) throw new Error("acme-chat: token gerekli");
return {
accountId: accountId ?? null,
token,
@ -377,7 +385,7 @@ yalnızca uyumluluk dışa aktarımları olarak `openclaw/plugin-sdk/channel-inb
},
}),
// DM security: bot'a kimin mesaj gönderebileceği
// DM güvenliği: bota kim mesaj gönderebilir
security: {
dm: {
channelKey: "acme-chat",
@ -387,21 +395,21 @@ yalnızca uyumluluk dışa aktarımları olarak `openclaw/plugin-sdk/channel-inb
},
},
// Pairing: yeni DM kişileri için onay akışı
// Eşleştirme: yeni DM kişileri için onay akışı
pairing: {
text: {
idLabel: "Acme Chat kullanıcı adı",
message: "Kimliğinizi doğrulamak için bu kodu gönderin:",
notify: async ({ target, code }) => {
await acmeChatApi.sendDm(target, `Eşleme kodu: ${code}`);
await acmeChatApi.sendDm(target, `Eşleştirme kodu: ${code}`);
},
},
},
// Threading: yanıtların nasıl teslim edildiği
// İş parçacığı oluşturma: yanıtlar nasıl teslim edilir
threading: { topLevelReplyToMode: "reply" },
// Outbound: platforma mesaj gönderme
// Giden: platforma mesaj gönder
outbound: {
attachedResults: {
sendText: async (params) => {
@ -422,18 +430,18 @@ yalnızca uyumluluk dışa aktarımları olarak `openclaw/plugin-sdk/channel-inb
```
<Accordion title="createChatChannelPlugin sizin için ne yapar">
Düşük düzey bağdaştırıcı arayüzlerini elle uygulamak yerine,
Düşük seviyeli bağdaştırıcı arayüzlerini elle uygulamak yerine,
bildirimsel seçenekler verirsiniz 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 alışverişli metin tabanlı DM eşleme 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) |
| `security.dm` | Yapılandırma alanlarından kapsamlı DM güvenlik çözücüsü |
| `pairing.text` | Kod değişimiyle metin tabanlı DM eşleştirme akışı |
| `threading` | Reply-to-mode çözücüsü (sabit, hesap kapsamlı veya özel) |
| `outbound.attachedResults` | Sonuç meta verisi döndüren gönderim fonksiyonları (mesaj kimlikleri) |
Tam denetime ihtiyacınız varsa, bildirimsel seçenekler yerine ham bağdaştırıcı nesneleri de
geçebilirsiniz.
Tam denetime ihtiyacınız varsa, bildirimsel seçenekler yerine ham
bağdaştırıcı nesneleri de geçebilirsiniz.
</Accordion>
</Step>
@ -448,7 +456,7 @@ yalnızca uyumluluk dışa aktarımları olarak `openclaw/plugin-sdk/channel-inb
export default defineChannelPluginEntry({
id: "acme-chat",
name: "Acme Chat",
description: "Acme Chat kanal Plugin'i",
description: "Acme Chat kanal plugin'i",
plugin: acmeChatPlugin,
registerCliMetadata(api) {
api.registerCli(
@ -474,21 +482,22 @@ yalnızca uyumluluk dışa aktarımları olarak `openclaw/plugin-sdk/channel-inb
});
```
Kanala ait CLI tanımlayıcılarını `registerCliMetadata(...)` içine koyun; böylece OpenClaw
Kanala ait CLI tanımlayıcılarını `registerCliMetadata(...)` içinde tutun; böylece OpenClaw
tam kanal çalışma zamanını etkinleştirmeden bunları kök yardımda gösterebilir,
normal tam yüklemeler ise gerçek komut
kaydı için aynı tanımlayıcıları almaya devam eder. `registerFull(...)` yalnızca çalışma zamanı işi için kalsın.
`registerFull(...)`, Gateway RPC yöntemleri kaydediyorsa
Plugin'e özgü bir önek kullanın. Çekirdek 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 ele alır. Tüm
seçenekler için bkz. [Giriş Noktaları](/tr/plugins/sdk-entrypoints#definechannelpluginentry).
normal tam yüklemeler de gerçek komut
kaydı için aynı tanımlayıcıları almaya devam eder. `registerFull(...)` yalnızca çalışma zamanına özel işler için kullanılmalıdır.
`registerFull(...)` Gateway RPC yöntemleri kaydediyorsa,
plugin'e ö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 yönetir. Tüm
seçenekler için [Giriş Noktaları](/tr/plugins/sdk-entrypoints#definechannelpluginentry)
bölümüne bakın.
</Step>
<Step title="Bir setup girişi ekleyin">
İlk katılım sırasında hafif yükleme için `setup-entry.ts` oluşturun:
<Step title="Bir kurulum girişi ekleyin">
Onboarding sırasında hafif yükleme için `setup-entry.ts` oluşturun:
```typescript setup-entry.ts
import { defineSetupPluginEntry } from "openclaw/plugin-sdk/channel-core";
@ -497,32 +506,34 @@ yalnızca uyumluluk dışa aktarımları olarak `openclaw/plugin-sdk/channel-inb
export default defineSetupPluginEntry(acmeChatPlugin);
```
OpenClaw, kanal devre dışı bırakıldığında
veya yapılandırılmadığında tam giriş yerine bunu yükler. Bu, kurulum akışları sırasında ağır çalışma zamanı kodunu çekmekten kaçınır.
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ı kodunu içeri çekmeyi ö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ı,
ı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.
Kurulum açısından güvenli dışa aktarımları yan modüllere ayıran paketli çalışma alanı kanalları,
ık bir kurulum zamanı runtime setter'a 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 örüntü, isteği doğrulayan ve
kanalınızın gelen işleyicisi üzerinden sevk eden bir Webhook'tur:
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 auth (imzaları kendiniz doğrulayın)
auth: "plugin", // plugin tarafından yönetilen auth (imzaları kendiniz doğrulayın)
handler: async (req, res) => {
const event = parseWebhookPayload(req);
// Gelen işleyiciniz mesajı OpenClaw'a sevk eder.
// Tam bağlama, platform SDK'nıza bağlıdır —
// gerçek örnek için paketlenmiş Microsoft Teams veya Google Chat Plugin paketine bakın.
// Gelen işleyiciniz mesajı OpenClaw'a dağıtır.
// Tam bağlantı platform SDK'nıza bağlıdır —
// gerçek bir örnek için paketlenmiş Microsoft Teams veya Google Chat plugin paketine bakın.
await handleAcmeChatInbound(api, event);
res.statusCode = 200;
@ -534,23 +545,24 @@ yalnızca uyumluluk dışa aktarımları olarak `openclaw/plugin-sdk/channel-inb
```
<Note>
Gelen mesaj işleme kanala özgüdür. Her kanal Plugin'i
kendi gelen işlem hattına sahiptir. Gerçek örüntüler 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 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.
</Note>
</Step>
<a id="step-6-test"></a>
<Step title="Test">
Eş konumlu testleri `src/channel.test.ts` içine yazın:
`src/channel.test.ts` içinde birlikte konumlandırılmış testler yazın:
```typescript src/channel.test.ts
import { describe, it, expect } from "vitest";
import { acmeChatPlugin } from "./channel.js";
describe("acme-chat plugin", () => {
it("hesaptan yapılandırmayı çözümler", () => {
it("hesabı yapılandırmadan çözümler", () => {
const cfg = {
channels: {
"acme-chat": { token: "test-token", allowFrom: ["user1"] },
@ -560,7 +572,7 @@ Eş konumlu testleri `src/channel.test.ts` içine yazın:
expect(account.token).toBe("test-token");
});
it("gizli değerleri somutlaştırmadan hesabı inceler", () => {
it("gizli bilgileri somutlaştırmadan hesabı inceler", () => {
const cfg = {
channels: { "acme-chat": { token: "test-token" } },
} as any;
@ -581,7 +593,7 @@ Eş konumlu testleri `src/channel.test.ts` içine yazın:
pnpm test -- <bundled-plugin-root>/acme-chat/
```
Paylaşılan test yardımcıları için bkz. [Testing](/tr/plugins/sdk-testing).
Paylaşılan test yardımcıları için [Test](/tr/plugins/sdk-testing) bölümüne bakın.
</Step>
</Steps>
@ -590,46 +602,46 @@ Eş konumlu testleri `src/channel.test.ts` içine yazın:
```
<bundled-plugin-root>/acme-chat/
├── package.json # openclaw.channel meta verisi
├── package.json # openclaw.channel meta verileri
├── openclaw.plugin.json # Yapılandırma şemalı 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 ile ChannelPlugin
├── channel.test.ts # Testler
├── client.ts # Platform API istemcisi
└── runtime.ts # Çalışma zamanı deposu (gerekirse)
└── runtime.ts # Çalışma zamanı deposu (gerekiyorsa)
```
## İleri konular
<CardGroup cols={2}>
<Card title=leti dizisi seçenekleri" icon="git-branch" href="/tr/plugins/sdk-entrypoints#registration-mode">
<Card title=ş parçacığı 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, subagent
api.runtime üzerinden TTS, STT, medya, subagent
</Card>
</CardGroup>
<Note>
Bazı paketlenmiş yardımcı hatları, paketlenmiş Plugin bakımı ve
uyumluluk için hâlâ mevcuttur. Bunlar yeni kanal Plugin'leri için önerilen örüntü değildir;
o paketlenmiş Plugin ailesini doğrudan sürdürmüyorsanız, ortak SDK
Bazı paketlenmiş yardımcı bağlantı yüzeyleri, paketlenmiş plugin bakımı ve
uyumluluk için hâlâ mevcuttur. Bunlar yeni kanal plugin'leri için önerilen desen değildir;
o paketlenmiş 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
- [Provider Plugin'leri](/tr/plugins/sdk-provider-plugins) — plugin'iniz aynı zamanda modeller de sağlıyorsa
- [SDK Genel Bakış](/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
- [SDK Test](/tr/plugins/sdk-testing) — test yardımcıları ve sözleşme testleri
- [Plugin Manifest](/tr/plugins/manifest) — tam manifest şeması

View File

@ -1,31 +1,27 @@
---
read_when:
- GitHub Copilot'ı bir model sağlayıcısı olarak kullanmak istiyorsunuz
- GitHub Copilot'ı model sağlayıcısı olarak kullanmak istiyorsunuz
- '`openclaw models auth login-github-copilot` akışına ihtiyacınız var'
summary: Cihaz akışını kullanarak OpenClaw içinden GitHub Copilot'ta oturum açma
summary: OpenClaw kullanarak GitHub Copilot'ta cihaz akışıyla oturum açın
title: GitHub Copilot
x-i18n:
generated_at: "2026-04-21T09:05:08Z"
generated_at: "2026-04-21T19:20:40Z"
model: gpt-5.4
provider: openai
source_hash: f7faafbd3bdcd8886e75fb0d40c3eec66355df3fca6160ebbbb9a0018b7839fe
source_hash: b5169839322f64b24b194302b61c5bad67c6cb6595989f9a1ef65867d8b68659
source_path: providers/github-copilot.md
workflow: 15
---
# GitHub Copilot
GitHub Copilot, GitHub'ın AI kodlama asistanıdır. GitHub hesabınız ve planınız için Copilot
modellerine erişim sağlar. OpenClaw, Copilot'ı bir model
sağlayıcısı olarak iki farklı şekilde kullanabilir.
GitHub Copilot, GitHub'ın yapay zeka destekli kodlama asistanıdır. GitHub hesabınız ve planınız için Copilot modellerine erişim sağlar. OpenClaw, Copilot'ı iki farklı şekilde model sağlayıcısı olarak kullanabilir.
## OpenClaw içinde Copilot kullanmanın iki yolu
<Tabs>
<Tab title="Yerleşik sağlayıcı (github-copilot)">
Yerel cihazla oturum açma akışını kullanarak bir GitHub token'ı alın, sonra
OpenClaw çalışırken bunu Copilot API token'larıyla değiştirin. Bu, VS Code
gerektirmediği için **varsayılan** ve en basit yoldur.
Bir GitHub belirteci almak için yerel cihaz oturum açma akışını kullanın, ardından OpenClaw çalıştığında bunu Copilot API belirteçleriyle değiş tokuş edin. Bu **varsayılan** ve en basit yoldur çünkü VS Code gerektirmez.
<Steps>
<Step title="Oturum açma komutunu çalıştırın">
@ -33,20 +29,19 @@ sağlayıcısı olarak iki farklı şekilde kullanabilir.
openclaw models auth login-github-copilot
```
Sizden bir URL'yi ziyaret etmeniz ve tek kullanımlık bir kod girmeniz istenir. İşlem tamamlanana kadar
terminali açık tutun.
Sizden bir URL'yi ziyaret etmeniz ve tek kullanımlık bir kod girmeniz istenir. İşlem tamamlanana kadar terminali açık tutun.
</Step>
<Step title="Varsayılan bir model ayarlayın">
```bash
openclaw models set github-copilot/claude-opus-4.6
openclaw models set github-copilot/claude-opus-4.7
```
Veya yapılandırmada:
Ya da yapılandırmada:
```json5
{
agents: {
defaults: { model: { primary: "github-copilot/claude-opus-4.6" } },
defaults: { model: { primary: "github-copilot/claude-opus-4.7" } },
},
}
```
@ -55,13 +50,11 @@ sağlayıcısı olarak iki farklı şekilde kullanabilir.
</Tab>
<Tab title="Copilot Proxy Plugin'i (copilot-proxy)">
**Copilot Proxy** VS Code uzantısını yerel bir köprü olarak kullanın. OpenClaw,
proxy'nin `/v1` uç noktasıyla konuşur ve orada yapılandırdığınız model listesini kullanır.
<Tab title="Copilot Proxy Plugin (copilot-proxy)">
Yerel bir köprü olarak **Copilot Proxy** VS Code uzantısını kullanın. OpenClaw, proxy'nin `/v1` uç noktasına bağlanır ve orada yapılandırdığınız model listesini kullanır.
<Note>
Bunu, Copilot Proxy'yi zaten VS Code içinde çalıştırıyorsanız veya
bunun üzerinden yönlendirme yapmanız gerekiyorsa seçin. Plugin'i etkinleştirmeniz ve VS Code uzantısını çalışır durumda tutmanız gerekir.
Bunu, Copilot Proxy'yi zaten VS Code içinde çalıştırıyorsanız veya trafiği onun üzerinden yönlendirmeniz gerekiyorsa seçin. Plugin'i etkinleştirmeniz ve VS Code uzantısını çalışır durumda tutmanız gerekir.
</Note>
</Tab>
@ -69,77 +62,62 @@ sağlayıcısı olarak iki farklı şekilde kullanabilir.
## İsteğe bağlı bayraklar
| Bayrak | Açıklama |
| -------------- | ----------------------------------------------------- |
| `--yes` | Onay istemini atla |
| `--set-default` | Sağlayıcının önerilen varsayılan modelini de uygula |
| Bayrak | Açıklama |
| --------------- | ---------------------------------------------------- |
| `--yes` | Onay istemini atla |
| `--set-default` | Ayrıca sağlayıcının önerilen varsayılan modelini uygular |
```bash
# Onayı atla
openclaw models auth login-github-copilot --yes
# Tek adımda oturum aç ve varsayılan modeli ayarla
# Oturum aç ve varsayılan modeli tek adımda ayarla
openclaw models auth login --provider github-copilot --method device --set-default
```
<AccordionGroup>
<Accordion title="Etkileşimli TTY gerekli">
Cihazla oturum açma akışı etkileşimli bir TTY gerektirir. Bunu etkileşimli olmayan bir betikte veya CI işlem hattında değil,
doğrudan bir terminalde çalıştırın.
<Accordion title="Etkileşimli TTY gerekir">
Cihaz oturum açma akışı etkileşimli bir TTY gerektirir. Bunu etkileşimsiz bir betikte veya CI işlem hattında değil, doğrudan bir terminalde çalıştırın.
</Accordion>
<Accordion title="Model kullanılabilirliği planınıza bağlıdır">
Copilot model kullanılabilirliği GitHub planınıza bağlıdır. Bir model
reddedilirse başka bir kimlik deneyin (örneğin `github-copilot/gpt-4.1`).
Copilot model kullanılabilirliği GitHub planınıza bağlıdır. Bir model reddedilirse başka bir kimlik deneyin (örneğin `github-copilot/gpt-4.1`).
</Accordion>
<Accordion title="Aktarım seçimi">
Claude model kimlikleri otomatik olarak Anthropic Messages aktarımını kullanır. GPT,
o-serisi ve Gemini modelleri OpenAI Responses aktarımını korur. OpenClaw,
model başvurusuna göre doğru aktarımı seçer.
<Accordion title="Taşıma seçimi">
Claude model kimlikleri otomatik olarak Anthropic Messages taşımasını kullanır. GPT, o-series ve Gemini modelleri OpenAI Responses taşımasını korur. OpenClaw, model ref'ine göre doğru taşımayı seçer.
</Accordion>
<Accordion title="Ortam değişkeni çözümleme sırası">
OpenClaw, Copilot kimlik doğrulamasını ortam değişkenlerinden aşağıdaki
öncelik sırasıyla çözümler:
OpenClaw, Copilot kimlik doğrulamasını aşağıdaki öncelik sırasına göre ortam değişkenlerinden çözümler:
| Öncelik | Değişken | Notlar |
| -------- | --------------------- | ----------------------------------- |
| 1 | `COPILOT_GITHUB_TOKEN` | En yüksek öncelik, Copilot'a özel |
| 2 | `GH_TOKEN` | GitHub CLI token'ı (yedek) |
| 3 | `GITHUB_TOKEN` | Standart GitHub token'ı (en düşük) |
| 2 | `GH_TOKEN` | GitHub CLI belirteci (yedek) |
| 3 | `GITHUB_TOKEN` | Standart GitHub belirteci (en düşük) |
Birden çok değişken ayarlandığında OpenClaw en yüksek öncelikli olanı kullanır.
Cihazla oturum açma akışı (`openclaw models auth login-github-copilot`),
token'ını auth profil deposunda saklar ve tüm ortam
değişkenlerinden öncelikli olur.
Birden fazla değişken ayarlandığında OpenClaw en yüksek öncelikli olanı kullanır.
Cihaz oturum açma akışı (`openclaw models auth login-github-copilot`) belirtecini kimlik doğrulama profil deposunda saklar ve tüm ortam değişkenlerinden öncelikli olur.
</Accordion>
<Accordion title="Token depolama">
Oturum açma, bir GitHub token'ını auth profil deposunda saklar ve OpenClaw çalışırken bunu
bir Copilot API token'ıyla değiştirir. Token'ı
elle yönetmeniz gerekmez.
<Accordion title="Belirteç depolama">
Oturum açma işlemi bir GitHub belirtecini kimlik doğrulama profil deposunda saklar ve OpenClaw çalıştığında bunu bir Copilot API belirteciyle değiş tokuş eder. Belirteci manuel olarak yönetmeniz gerekmez.
</Accordion>
</AccordionGroup>
<Warning>
Etkileşimli bir TTY gerektirir. Oturum açma komutunu başsız bir betik veya CI işi
içinde değil, doğrudan bir terminalde çalıştırın.
Etkileşimli bir TTY gerekir. Oturum açma komutunu başsız bir betik veya CI işi içinde değil, doğrudan bir terminalde çalıştırın.
</Warning>
## Bellek arama gömmeleri
GitHub Copilot ayrıca
[bellek arama](/tr/concepts/memory-search) için bir gömme sağlayıcısı olarak da kullanılabilir. Bir Copilot aboneliğiniz varsa ve
oturum açtıysanız, OpenClaw bunu ayrı bir API anahtarı olmadan gömmeler için kullanabilir.
GitHub Copilot ayrıca [bellek arama](/tr/concepts/memory-search) için bir gömme sağlayıcısı olarak da kullanılabilir. Bir Copilot aboneliğiniz varsa ve oturum açtıysanız, OpenClaw bunu ayrı bir API anahtarı olmadan gömmeler için kullanabilir.
### Otomatik algılama
`memorySearch.provider` `"auto"` olduğunda (varsayılan), GitHub Copilot
öncelik 15'te denenir -- yerel gömmelerden sonra, ancak OpenAI ve diğer ücretli
sağlayıcılardan önce. Bir GitHub token'ı mevcutsa OpenClaw, kullanılabilir
gömme modellerini Copilot API'den keşfeder ve en iyisini otomatik olarak seçer.
`memorySearch.provider` değeri `"auto"` olduğunda (varsayılan), GitHub Copilot öncelik 15 ile denenir -- yerel gömmelerden sonra, ancak OpenAI ve diğer ücretli sağlayıcılardan önce. Bir GitHub belirteci mevcutsa OpenClaw, kullanılabilir gömme modellerini Copilot API'den keşfeder ve en iyisini otomatik olarak seçer.
### Açık yapılandırma
@ -159,22 +137,21 @@ gömme modellerini Copilot API'den keşfeder ve en iyisini otomatik olarak seçe
### Nasıl çalışır
1. OpenClaw GitHub token'ınızı çözümler (ortam değişkenlerinden veya auth profilinden).
2. Bunu kısa ömürlü bir Copilot API token'ıyla değiştirir.
1. OpenClaw GitHub belirtecinizi çözümler (ortam değişkenlerinden veya kimlik doğrulama profilinden).
2. Bunu kısa ömürlü bir Copilot API belirteciyle değiş tokuş eder.
3. Kullanılabilir gömme modellerini keşfetmek için Copilot `/models` uç noktasını sorgular.
4. En iyi modeli seçer (`text-embedding-3-small` tercih edilir).
5. Gömme isteklerini Copilot `/embeddings` uç noktasına gönderir.
Model kullanılabilirliği GitHub planınıza bağlıdır. Kullanılabilir gömme modeli
yoksa OpenClaw Copilot'ı atlar ve sonraki sağlayıcıyı dener.
Model kullanılabilirliği GitHub planınıza bağlıdır. Hiçbir gömme modeli mevcut değilse OpenClaw, Copilot'ı atlar ve sonraki sağlayıcıyı dener.
## İlgili
<CardGroup cols={2}>
<Card title="Model seçimi" href="/tr/concepts/model-providers" icon="layers">
Sağlayıcıları, model başvurularını ve yük devretme davranışını seçme.
Sağlayıcıları, model ref'lerini ve yük devretme davranışını seçme.
</Card>
<Card title="OAuth ve auth" href="/tr/gateway/authentication" icon="key">
Auth ayrıntıları ve kimlik bilgisi yeniden kullanım kuralları.
<Card title="OAuth ve kimlik doğrulama" href="/tr/gateway/authentication" icon="key">
Kimlik doğrulama ayrıntıları ve kimlik bilgisi yeniden kullanım kuralları.
</Card>
</CardGroup>

View File

@ -1,26 +1,26 @@
---
read_when:
- Aracı üzerinden arka plan/paralel çalışma istiyorsunuz
- '`sessions_spawn` veya alt aracı araç ilkesini değiştiriyorsunuz'
- İş parçacığına bağlı subagent oturumlarını uyguluyor veya sorun gideriyorsunuz
summary: 'Alt aracılar: sonucu istekte bulunan sohbet kanalına duyuran, yalıtılmış aracı çalıştırmaları başlatma'
title: Alt Aracılar
- Aracı aracılığıyla arka plan/paralel çalışma istiyorsunuz
- '`sessions_spawn` veya alt temsilci araç politikasını değiştiriyorsunuz'
- İş parçacığına bağlı alt temsilci oturumlarını uyguluyor veya sorunlarını gideriyorsunuz
summary: 'Alt temsilciler: sonuçları tekrar istekte bulunan sohbetine bildiren izole temsilci çalıştırmaları'
title: Alt Temsilciler
x-i18n:
generated_at: "2026-04-05T14:14:18Z"
generated_at: "2026-04-21T19:20:42Z"
model: gpt-5.4
provider: openai
source_hash: 9df7cc35a3069ce4eb9c92a95df3ce5365a00a3fae92ff73def75461b58fec3f
source_hash: 218913f0db88d40e1b5fdb0201b8d23e7af23df572c86ff4be2637cb62498281
source_path: tools/subagents.md
workflow: 15
---
# Alt Aracılar
# Alt Temsilciler
Alt aracılar, mevcut bir aracı çalıştırmasından başlatılan arka plan aracı çalıştırmalarıdır. Kendi oturumlarında çalışırlar (`agent:<agentId>:subagent:<uuid>`) ve tamamlandıklarında sonuçlarını istekte bulunan sohbet kanalına **duyururlar**. Her alt aracı çalıştırması bir [background task](/tr/automation/tasks) olarak izlenir.
Alt temsilciler, mevcut bir temsilci çalıştırmasından başlatılan arka plan temsilci çalıştırmalarıdır. Kendi oturumlarında çalışırlar (`agent:<agentId>:subagent:<uuid>`) ve tamamlandıklarında sonuçlarını tekrar istekte bulunan sohbet kanalına **duyururlar**. Her alt temsilci çalıştırması bir [arka plan görevi](/tr/automation/tasks) olarak izlenir.
## Slash komutu
## Eğik çizgi komutu
**Geçerli oturum** için alt aracı çalıştırmalarını incelemek veya denetlemek üzere `/subagents` kullanın:
**Geçerli oturum** için alt temsilci çalıştırmalarını incelemek veya denetlemek üzere `/subagents` kullanın:
- `/subagents list`
- `/subagents kill <id|#|all>`
@ -32,7 +32,7 @@ Alt aracılar, mevcut bir aracı çalıştırmasından başlatılan arka plan ar
İş parçacığı bağlama denetimleri:
Bu komutlar, kalıcı iş parçacığı bağlarını destekleyen kanallarda çalışır. Aşağıdaki **İş parçacığını destekleyen kanallar** bölümüne bakın.
Bu komutlar, kalıcı iş parçacığı bağlamalarını destekleyen kanallarda çalışır. Aşağıdaki **İş parçacığını destekleyen kanallar** bölümüne bakın.
- `/focus <subagent-label|session-key|session-id|session-label>`
- `/unfocus`
@ -40,128 +40,125 @@ Bu komutlar, kalıcı iş parçacığı bağlarını destekleyen kanallarda çal
- `/session idle <duration|off>`
- `/session max-age <duration|off>`
`/subagents info`, çalıştırma meta verilerini gösterir (durum, zaman damgaları, oturum kimliği, döküm yolu, temizleme).
Sınırlı ve güvenlik filtreli bir geri çağırma görünümü için `sessions_history` kullanın; ham tam döküme ihtiyacınız olduğunda
disk üzerindeki döküm yolunu inceleyin.
`/subagents info`, çalıştırma meta verilerini gösterir (durum, zaman damgaları, oturum kimliği, transkript yolu, temizleme).
Sınırlı, güvenlik filtresinden geçirilmiş bir geri çağırma görünümü için `sessions_history` kullanın; ham tam transkripte ihtiyaç duyduğunuzda diskteki transkript yolunu inceleyin.
### Başlatma davranışı
`/subagents spawn`, bir arka plan alt aracısını dahili bir aktarma olarak değil kullanıcı komutu olarak başlatır ve çalıştırma bittiğinde istekte bulunan sohbet kanalına tek bir son tamamlama güncellemesi gönderir.
`/subagents spawn`, bir arka plan alt temsilcisini dahili aktarma olarak değil, kullanıcı komutu olarak başlatır ve çalıştırma bittiğinde istekte bulunan sohbete tek bir son tamamlama güncellemesi gönderir.
- Başlatma komutu bloklamaz; bir çalıştırma kimliğini hemen döndürür.
- Tamamlandığında, alt aracı istekte bulunan sohbet kanalına bir özet/sonuç mesajı duyurur.
- Tamamlama itme tabanlıdır. Başlatıldıktan sonra, bitmesini beklemek için döngü içinde `/subagents list`,
`sessions_list` veya `sessions_history` sorgulamayın; durumu yalnızca hata ayıklama veya müdahale gerektiğinde inceleyin.
- Tamamlandığında, OpenClaw, duyuru temizleme akışı devam etmeden önce bu alt aracı oturumunun açtığı izlenen tarayıcı sekmelerini/süreçlerini imkanlar dahilinde kapatır.
- Manuel başlatmalarda teslim dayanıklıdır:
- OpenClaw önce kararlı bir idempotency anahtarıyla doğrudan `agent` teslimini dener.
- Doğrudan teslim başarısız olursa kuyruk yönlendirmesine geri döner.
- Kuyruk yönlendirmesi de kullanılamıyorsa, nihai vazgeçmeden önce duyuru kısa bir üstel geri çekilme ile yeniden denenir.
- Tamamlama teslimi çözümlenmiş istekte bulunan rota bilgisini korur:
- mevcutsa, iş parçacığına bağlı veya konuşmaya bağlı tamamlama rotaları önceliklidir
- tamamlama kaynağı yalnızca bir kanal sağlıyorsa, OpenClaw eksik hedef/hesap bilgisini istekte bulunan oturumun çözümlenmiş rotasından (`lastChannel` / `lastTo` / `lastAccountId`) doldurur; böylece doğrudan teslim yine çalışır
- Başlatma komutu engelleyici değildir; hemen bir çalıştırma kimliği döndürür.
- Tamamlandığında alt temsilci, istekte bulunan sohbet kanalına bir özet/sonuç mesajı duyurur.
- Tamamlama itme tabanlıdır. Başlatıldıktan sonra, bitmesini beklemek için döngü içinde `/subagents list`, `sessions_list` veya `sessions_history` yoklaması yapmayın; durumu yalnızca hata ayıklama veya müdahale gerektiğinde inceleyin.
- Tamamlandığında OpenClaw, duyuru temizleme akışı devam etmeden önce o alt temsilci oturumu tarafından açılan izlenen tarayıcı sekmelerini/süreçlerini en iyi çabayla kapatır.
- Manuel başlatmalarda teslimat dayanıklıdır:
- OpenClaw önce kararlı bir eşzamanlılık anahtarıyla doğrudan `agent` teslimatını dener.
- Doğrudan teslimat başarısız olursa kuyruk yönlendirmesine geri döner.
- Kuyruk yönlendirmesi de mevcut değilse, son vazgeçmeden önce duyuru kısa bir üstel geri çekilmeyle yeniden denenir.
- Tamamlama teslimatı çözümlenmiş istekte bulunan rotasını korur:
- mevcut olduğunda iş parçacığına bağlı veya konuşmaya bağlı tamamlama rotaları önceliklidir
- tamamlama kaynağı yalnızca bir kanal sağlıyorsa, OpenClaw istekte bulunan oturumun çözümlenmiş rotasından (`lastChannel` / `lastTo` / `lastAccountId`) eksik hedefi/hesabı doldurur; böylece doğrudan teslimat yine çalışır
- İstekte bulunan oturuma yapılan tamamlama devri, çalışma zamanında üretilen dahili bağlamdır (kullanıcı tarafından yazılmış metin değildir) ve şunları içerir:
- `Result` (en son görünür `assistant` yanıt metni, yoksa temizlenmiş en son tool/toolResult metni)
- `Result` (en son görünür `assistant` yanıt metni; yoksa temizlenmiş en son tool/toolResult metni; sonlandırılmış başarısız çalıştırmalar yakalanmış yanıt metnini yeniden kullanmaz)
- `Status` (`completed successfully` / `failed` / `timed out` / `unknown`)
- kompakt çalışma zamanı/token istatistikleri
- istekte bulunan aracının bunu ham dahili meta veri olarak iletmek yerine normal aracı sesiyle yeniden yazmasını söyleyen bir teslim talimatı
- istekte bulunan temsilciye ham dahili meta veriyi iletmek yerine normal yardımcı sesiyle yeniden yazmasını söyleyen bir teslimat talimatı
- `--model` ve `--thinking`, bu belirli çalıştırma için varsayılanları geçersiz kılar.
- Tamamlandıktan sonra ayrıntıları ve çıktıyı incelemek için `info`/`log` kullanın.
- `/subagents spawn` tek seferlik moddur (`mode: "run"`). Kalıcı iş parçacığına bağlı oturumlar için `thread: true` ve `mode: "session"` ile `sessions_spawn` kullanın.
- ACP harness oturumları için (Codex, Claude Code, Gemini CLI), `runtime: "acp"` ile `sessions_spawn` kullanın ve [ACP Agents](/tr/tools/acp-agents) bölümüne bakın.
- `/subagents spawn`, tek seferlik moddur (`mode: "run"`). Kalıcı, iş parçacığına bağlı oturumlar için `thread: true` ve `mode: "session"` ile `sessions_spawn` kullanın.
- ACP harness oturumları için (Codex, Claude Code, Gemini CLI) `runtime: "acp"` ile `sessions_spawn` kullanın ve [ACP Agents](/tr/tools/acp-agents) bölümüne bakın.
Birincil hedefler:
- Ana çalıştırmayı engellemeden "araştırma / uzun görev / yavaş araç" işlerini paralelleştirmek.
- Alt aracıları varsayılan olarak yalıtılmış tutmak (oturum ayrımı + isteğe bağlı sandboxing).
- Araç yüzeyini kötü kullanımı zor olacak şekilde tutmak: alt aracılar varsayılan olarak oturum araçlarını almaz.
- Orkestratör desenleri için yapılandırılabilir iç içe geçme derinliğini desteklemek.
- Ana çalıştırmayı engellemeden "araştırma / uzun görev / yavaş araç" işini paralelleştirmek.
- Alt temsilcileri varsayılan olarak yalıtılmış tutmak (oturum ayrımı + isteğe bağlı sandbox).
- Araç yüzeyini kötüye kullanımı zor tutmak: alt temsilciler varsayılan olarak oturum araçlarını **almaz**.
- Orkestratör düzenleri için yapılandırılabilir iç içe geçme derinliğini desteklemek.
Maliyet notu: her alt aracının **kendi** bağlamı ve token kullanımı vardır. Ağır veya tekrarlayan görevler için
alt aracılar için daha ucuz bir model ayarlayın ve ana aracınızı daha yüksek kaliteli bir modelde tutun.
Bunu `agents.defaults.subagents.model` veya aracı başına geçersiz kılmalarla yapılandırabilirsiniz.
Maliyet notu: her alt temsilcinin **kendi** bağlamı ve token kullanımı vardır. Ağır veya tekrarlı görevler için alt temsilcilerde daha ucuz bir model ayarlayın ve ana temsilcinizi daha yüksek kaliteli bir modelde tutun.
Bunu `agents.defaults.subagents.model` veya temsilci başına geçersiz kılmalarla yapılandırabilirsiniz.
## Araç
` sessions_spawn` kullanın:
`sessions_spawn` kullanın:
- Bir alt aracı çalıştırması başlatır (`deliver: false`, genel kulvar: `subagent`)
- Bir alt temsilci çalıştırması başlatır (`deliver: false`, genel şerit: `subagent`)
- Ardından bir duyuru adımı çalıştırır ve duyuru yanıtını istekte bulunan sohbet kanalına gönderir
- Varsayılan model: `agents.defaults.subagents.model` (veya aracı başına `agents.list[].subagents.model`) ayarlamadığınız sürece çağıranı devralır; açık bir `sessions_spawn.model` yine önceliklidir.
- Varsayılan düşünme düzeyi: `agents.defaults.subagents.thinking` (veya aracı başına `agents.list[].subagents.thinking`) ayarlamadığınız sürece çağıranı devralır; açık bir `sessions_spawn.thinking` yine önceliklidir.
- Varsayılan çalışma zaman aşımı: `sessions_spawn.runTimeoutSeconds` atlanırsa, OpenClaw ayarlıysa `agents.defaults.subagents.runTimeoutSeconds` kullanır; aksi halde `0`'a geri döner (zaman aşımı yok).
- Varsayılan model: çağıranı devralır; `agents.defaults.subagents.model` (veya temsilci başına `agents.list[].subagents.model`) ayarlarsanız o kullanılır; açık bir `sessions_spawn.model` yine önceliklidir.
- Varsayılan düşünme: çağıranı devralır; `agents.defaults.subagents.thinking` (veya temsilci başına `agents.list[].subagents.thinking`) ayarlarsanız o kullanılır; açık bir `sessions_spawn.thinking` yine önceliklidir.
- Varsayılan çalıştırma zaman aşımı: `sessions_spawn.runTimeoutSeconds` atlanırsa, ayarlı olduğunda OpenClaw `agents.defaults.subagents.runTimeoutSeconds` kullanır; aksi halde `0`'a (zaman aşımı yok) geri döner.
Araç parametreleri:
- `task` (zorunlu)
- `task` (gerekli)
- `label?` (isteğe bağlı)
- `agentId?` (isteğe bağlı; izin veriliyorsa başka bir aracı kimliği altında başlatır)
- `model?` (isteğe bağlı; alt aracı modelini geçersiz kılar; geçersiz değerler atlanır ve alt aracı, araç sonucunda bir uyarıyla varsayılan modelde çalışır)
- `thinking?` (isteğe bağlı; alt aracı çalıştırması için düşünme düzeyini geçersiz kılar)
- `runTimeoutSeconds?` (ayarlandıysa varsayılan olarak `agents.defaults.subagents.runTimeoutSeconds`, aksi halde `0`; ayarlandığında, alt aracı çalıştırması N saniye sonra durdurulur)
- `thread?` (varsayılan `false`; `true` olduğunda, bu alt aracı oturumu için kanal iş parçacığı bağlaması ister)
- `agentId?` (isteğe bağlı; izin veriliyorsa başka bir temsilci kimliği altında başlatır)
- `model?` (isteğe bağlı; alt temsilci modelini geçersiz kılar; geçersiz değerler atlanır ve alt temsilci varsayılan modelde çalışır; araç sonucunda bir uyarı yer alır)
- `thinking?` (isteğe bağlı; alt temsilci çalıştırması için düşünme düzeyini geçersiz kılar)
- `runTimeoutSeconds?` (ayarlıysa varsayılan olarak `agents.defaults.subagents.runTimeoutSeconds`, aksi halde `0`; ayarlandığında alt temsilci çalıştırması N saniye sonra durdurulur)
- `thread?` (varsayılan `false`; `true` olduğunda bu alt temsilci oturumu için kanal iş parçacığı bağlaması ister)
- `mode?` (`run|session`)
- varsayılan `run`'dır
- `thread: true` ise ve `mode` atlanmışsa, varsayılan `session` olur
- varsayılan `run` değeridir
- `thread: true` ise ve `mode` atlanırsa, varsayılan `session` olur
- `mode: "session"` için `thread: true` gereklidir
- `cleanup?` (`delete|keep`, varsayılan `keep`)
- `sandbox?` (`inherit|require`, varsayılan `inherit`; `require`, hedef alt çalışma zamanı sandbox içinde değilse başlatmayı reddeder)
- `sessions_spawn`, kanal teslim parametrelerini kabul etmez (`target`, `channel`, `to`, `threadId`, `replyTo`, `transport`). Teslim için, başlatılan çalıştırmadan `message`/`sessions_send` kullanın.
- `sessions_spawn`, kanal teslimat parametrelerini kabul etmez (`target`, `channel`, `to`, `threadId`, `replyTo`, `transport`). Teslimat için başlatılmış çalıştırmadan `message`/`sessions_send` kullanın.
## İş parçacığına bağlı oturumlar
Bir kanalda iş parçacığı bağları etkinleştirildiğinde, bir alt aracı bir iş parçacığına bağlı kalabilir; böylece o iş parçacığındaki sonraki kullanıcı mesajları aynı alt aracı oturumuna yönlendirilmeye devam eder.
Bir kanalda iş parçacığı bağlamaları etkinleştirildiğinde, bir alt temsilci bir iş parçacığına bağlı kalabilir; böylece o iş parçacığındaki devam kullanıcı mesajları aynı alt temsilci oturumuna yönlendirilmeye devam eder.
### İş parçacığını destekleyen kanallar
- Discord (şu anda desteklenen tek kanal): kalıcı iş parçacığına bağlı subagent oturumlarını (`thread: true` ile `sessions_spawn`), manuel iş parçacığı denetimlerini (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age`) ve `channels.discord.threadBindings.enabled`, `channels.discord.threadBindings.idleHours`, `channels.discord.threadBindings.maxAgeHours` ve `channels.discord.threadBindings.spawnSubagentSessions` bağdaştırıcı anahtarlarını destekler.
- Discord (şu anda desteklenen tek kanal): kalıcı iş parçacığına bağlı alt temsilci oturumlarını (`thread: true` ile `sessions_spawn`), manuel iş parçacığı denetimlerini (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age`) ve `channels.discord.threadBindings.enabled`, `channels.discord.threadBindings.idleHours`, `channels.discord.threadBindings.maxAgeHours` ve `channels.discord.threadBindings.spawnSubagentSessions` bağdaştırıcı anahtarlarını destekler.
Hızlı akış:
1. `thread: true` (ve isteğe bağlı olarak `mode: "session"`) ile `sessions_spawn` kullanarak başlatın.
2. OpenClaw, etkin kanalda bu oturum hedefi için bir iş parçacığı oluşturur veya bağlar.
3. O iş parçacığındaki yanıtlar ve takip mesajları bağlı oturuma yönlendirilir.
4. Etkinsizlik nedeniyle otomatik odak kaldırmayı incelemek/güncellemek için `/session idle`, katı üst sınırı denetlemek için `/session max-age` kullanın.
1. `thread: true` ile (ve isteğe bağlı olarak `mode: "session"` ile) `sessions_spawn` kullanarak başlatın.
2. OpenClaw, etkin kanalda bu oturum hedefine bir iş parçacığı oluşturur veya bağlar.
3. O iş parçacığındaki yanıtlar ve devam mesajları bağlı oturuma yönlendirilir.
4. Etkinsizlik nedeniyle otomatik odağı kaldırmayı incelemek/güncellemek için `/session idle`, kesin üst sınırı denetlemek için `/session max-age` kullanın.
5. Manuel olarak ayırmak için `/unfocus` kullanın.
Manuel denetimler:
- `/focus <target>` geçerli iş parçacığını (veya yeni bir tane oluşturarak) bir alt aracı/oturum hedefine bağlar.
- `/unfocus` geçerli bağlı iş parçacığının bağını kaldırır.
- `/agents` etkin çalıştırmaları ve bağ durumunu (`thread:<id>` veya `unbound`) listeler.
- `/session idle` ve `/session max-age` yalnızca odaklanmış bağlı iş parçacıkları için çalışır.
- `/focus <target>`, geçerli iş parçacığını (veya yenisini oluşturarak) bir alt temsilci/oturum hedefine bağlar.
- `/unfocus`, geçerli bağlı iş parçacığı için bağlamayı kaldırır.
- `/agents`, etkin çalıştırmaları ve bağlama durumunu listeler (`thread:<id>` veya `unbound`).
- `/session idle` ve `/session max-age` yalnızca odaklanmış bağlı iş parçacıklarında çalışır.
Config anahtarları:
Yapılandırma anahtarları:
- Genel varsayılan: `session.threadBindings.enabled`, `session.threadBindings.idleHours`, `session.threadBindings.maxAgeHours`
- Kanal geçersiz kılmaları ve başlatmada otomatik bağlama anahtarları bağdaştırıcıya özeldir. Yukarıdaki **İş parçacığını destekleyen kanallar** bölümüne bakın.
- Kanal geçersiz kılması ve başlatmada otomatik bağlama anahtarları bağdaştırıcıya özeldir. Yukarıdaki **İş parçacığını destekleyen kanallar** bölümüne bakın.
Geçerli bağdaştırıcı ayrıntıları için [Configuration Reference](/tr/gateway/configuration-reference) ve [Slash commands](/tools/slash-commands) bölümlerine bakın.
Geçerli bağdaştırıcı ayrıntıları için [Configuration Reference](/tr/gateway/configuration-reference) ve [Slash commands](/tr/tools/slash-commands) bölümlerine bakın.
İzin listesi:
- `agents.list[].subagents.allowAgents`: `agentId` ile hedeflenebilecek aracı kimliklerinin listesi (`["*"]` herhangi birine izin verir). Varsayılan: yalnızca istekte bulunan aracı.
- `agents.defaults.subagents.allowAgents`: istekte bulunan aracının kendi `subagents.allowAgents` ayarı yoksa kullanılan varsayılan hedef aracı izin listesi.
- Sandbox devralma koruması: istekte bulunan oturum sandbox içindeyse, `sessions_spawn` sandbox olmadan çalışacak hedefleri reddeder.
- `agents.defaults.subagents.requireAgentId` / `agents.list[].subagents.requireAgentId`: true olduğunda, `agentId` atlayan `sessions_spawn` çağrılarını engeller (açık profil seçimini zorunlu kılar). Varsayılan: false.
- `agents.list[].subagents.allowAgents`: `agentId` aracılığıyla hedeflenebilecek temsilci kimliklerinin listesi (`["*"]` herhangi birine izin verir). Varsayılan: yalnızca istekte bulunan temsilci.
- `agents.defaults.subagents.allowAgents`: istekte bulunan temsilci kendi `subagents.allowAgents` değerini ayarlamadığında kullanılan varsayılan hedef temsilci izin listesi.
- Sandbox devralma koruması: istekte bulunan oturum sandbox içindeyse, `sessions_spawn` sandbox dışında çalışacak hedefleri reddeder.
- `agents.defaults.subagents.requireAgentId` / `agents.list[].subagents.requireAgentId`: true olduğunda `agentId` atlayan `sessions_spawn` çağrılarını engeller (açık profil seçimini zorlar). Varsayılan: false.
Keşif:
- `sessions_spawn` için şu anda hangi aracı kimliklerine izin verildiğini görmek üzere `agents_list` kullanın.
- Şu anda `sessions_spawn` için hangi temsilci kimliklerine izin verildiğini görmek üzere `agents_list` kullanın.
Otomatik arşivleme:
- Alt aracı oturumları `agents.defaults.subagents.archiveAfterMinutes` sonrasında otomatik olarak arşivlenir (varsayılan: 60).
- Arşivleme `sessions.delete` kullanır ve dökümü `*.deleted.<timestamp>` olarak yeniden adlandırır (aynı klasörde).
- `cleanup: "delete"`, duyurudan hemen sonra arşivler (yine de dökümü yeniden adlandırarak korur).
- Otomatik arşivleme imkanlar dahilindedir; gateway yeniden başlatılırsa bekleyen zamanlayıcılar kaybolur.
- `runTimeoutSeconds` otomatik arşivleme yapmaz; yalnızca çalıştırmayı durdurur. Oturum otomatik arşive kadar kalır.
- Alt temsilci oturumları, `agents.defaults.subagents.archiveAfterMinutes` sonrasında otomatik olarak arşivlenir (varsayılan: 60).
- Arşivleme `sessions.delete` kullanır ve transkripti `*.deleted.<timestamp>` olarak yeniden adlandırır (aynı klasörde).
- `cleanup: "delete"`, duyurudan hemen sonra arşivler (yine de yeniden adlandırma yoluyla transkripti korur).
- Otomatik arşivleme en iyi çaba temelindedir; ağ geçidi yeniden başlatılırsa bekleyen zamanlayıcılar kaybolur.
- `runTimeoutSeconds` otomatik arşivleme yapmaz; yalnızca çalıştırmayı durdurur. Oturum, otomatik arşivlemeye kadar kalır.
- Otomatik arşivleme hem derinlik-1 hem de derinlik-2 oturumlarına eşit şekilde uygulanır.
- Tarayıcı temizliği, arşiv temizliğinden ayrıdır: izlenen tarayıcı sekmeleri/süreçleri, döküm/oturum kaydı tutulsa bile çalıştırma bittiğinde imkanlar dahilinde kapatılır.
- Tarayıcı temizliği, arşiv temizliğinden ayrıdır: transkript/oturum kaydı tutulsa bile izlenen tarayıcı sekmeleri/süreçleri çalıştırma bittiğinde en iyi çabayla kapatılır.
## İç içe Alt Aracılar
## İç içe Alt Temsilciler
Varsayılan olarak alt aracılar kendi alt aracılarını başlatamaz (`maxSpawnDepth: 1`). `maxSpawnDepth: 2` ayarlayarak bir seviye iç içe geçmeyi etkinleştirebilirsiniz; bu, **orkestratör deseni**ne izin verir: ana → orkestratör alt aracı → çalışan alt-alt aracılar.
Varsayılan olarak alt temsilciler kendi alt temsilcilerini başlatamaz (`maxSpawnDepth: 1`). `maxSpawnDepth: 2` ayarlanarak bir iç içe geçme düzeyi etkinleştirilebilir; bu da **orkestratör düzenine** izin verir: ana → orkestratör alt temsilci → çalışan alt-alt temsilciler.
### Nasıl etkinleştirilir
@ -170,9 +167,9 @@ Varsayılan olarak alt aracılar kendi alt aracılarını başlatamaz (`maxSpawn
agents: {
defaults: {
subagents: {
maxSpawnDepth: 2, // alt aracıların çocuk başlatmasına izin ver (varsayılan: 1)
maxChildrenPerAgent: 5, // aracı oturumu başına en fazla etkin çocuk (varsayılan: 5)
maxConcurrent: 8, // genel eşzamanlılık kulvar sınırı (varsayılan: 8)
maxSpawnDepth: 2, // alt temsilcilerin alt öğeler başlatmasına izin ver (varsayılan: 1)
maxChildrenPerAgent: 5, // temsilci oturumu başına en fazla etkin alt öğe (varsayılan: 5)
maxConcurrent: 8, // genel eşzamanlılık şeridi üst sınırı (varsayılan: 8)
runTimeoutSeconds: 900, // atlandığında sessions_spawn için varsayılan zaman aşımı (0 = zaman aşımı yok)
},
},
@ -182,120 +179,116 @@ Varsayılan olarak alt aracılar kendi alt aracılarını başlatamaz (`maxSpawn
### Derinlik düzeyleri
| Derinlik | Oturum anahtarı şekli | Rol | Başlatabilir mi? |
| -------- | ------------------------------------------ | ----------------------------------------------- | ---------------------------- |
| 0 | `agent:<id>:main` | Ana aracı | Her zaman |
| 1 | `agent:<id>:subagent:<uuid>` | Alt aracı (derinlik 2'ye izin veriliyorsa orkestratör) | Yalnızca `maxSpawnDepth >= 2` ise |
| 2 | `agent:<id>:subagent:<uuid>:subagent:<uuid>` | Alt-alt aracı (yaprak çalışan) | Asla |
| Derinlik | Oturum anahtarı biçimi | Rol | Başlatabilir mi? |
| -------- | ------------------------------------------ | ---------------------------------------------- | ----------------------------- |
| 0 | `agent:<id>:main` | Ana temsilci | Her zaman |
| 1 | `agent:<id>:subagent:<uuid>` | Alt temsilci (`maxSpawnDepth >= 2` olduğunda orkestratör) | Yalnızca `maxSpawnDepth >= 2` ise |
| 2 | `agent:<id>:subagent:<uuid>:subagent:<uuid>` | Alt-alt temsilci (yaprak çalışan) | Asla |
### Duyuru zinciri
Sonuçlar zincir boyunca yukarı akar:
Sonuçlar zincir boyunca geri akar:
1. Derinlik-2 çalışanı biter → üst öğesine (derinlik-1 orkestratör) duyurur
2. Derinlik-1 orkestratör duyuruyu alır, sonuçları sentezler, biter → ana öğeye duyurur
3. Ana aracı duyuruyu alır ve kullanıcıya teslim eder
1. Derinlik-2 çalışanı tamamlanır → üst öğesine (derinlik-1 orkestratör) duyurur
2. Derinlik-1 orkestratör duyuruyu alır, sonuçları sentezler, tamamlanır → ana öğeye duyurur
3. Ana temsilci duyuruyu alır ve kullanıcıya teslim eder
Her düzey yalnızca doğrudan çocuklarından gelen duyuruları görür.
Her düzey yalnızca doğrudan alt öğelerinden gelen duyuruları görür.
Operasyonel rehberlik:
- Çocuk işi bir kez başlatın ve tamamlanma olaylarını bekleyin; `sessions_list`, `sessions_history`, `/subagents list` veya `exec` sleep komutları etrafında yoklama döngüleri kurmayın.
- Bir çocuk tamamlama olayı, siz son yanıtı gönderdikten sonra gelirse, doğru takip yanıtı tam olarak sessiz belirteç `NO_REPLY` / `no_reply` olur.
- Alt işi bir kez başlatın ve `sessions_list`, `sessions_history`, `/subagents list` veya `exec` uyku komutları etrafında yoklama döngüleri kurmak yerine tamamlama olaylarını bekleyin.
- Son yanıtı zaten gönderdikten sonra bir alt öğe tamamlama olayı gelirse, doğru devam işlemi tam olarak şu sessiz belirteçtir: `NO_REPLY` / `no_reply`.
### Derinliğe göre araç ilkesi
### Derinliğe göre araç politikası
- Rol ve denetim kapsamı başlatma sırasında oturum meta verilerine yazılır. Bu, düz veya geri yüklenmiş oturum anahtarlarının yanlışlıkla yeniden orkestratör ayrıcalıkları kazanmasını engeller.
- **Derinlik 1 (orkestratör, `maxSpawnDepth >= 2` olduğunda)**: Çocuklarını yönetebilmesi için `sessions_spawn`, `subagents`, `sessions_list`, `sessions_history` alır. Diğer oturum/sistem araçları yine reddedilir.
- Rol ve denetim kapsamı, başlatma anında oturum meta verilerine yazılır. Bu, düzleştirilmiş veya geri yüklenmiş oturum anahtarlarının yanlışlıkla yeniden orkestratör ayrıcalıkları kazanmasını önler.
- **Derinlik 1 (orkestratör, `maxSpawnDepth >= 2` olduğunda)**: Alt öğelerini yönetebilmesi için `sessions_spawn`, `subagents`, `sessions_list`, `sessions_history` alır. Diğer oturum/sistem araçları yine reddedilir.
- **Derinlik 1 (yaprak, `maxSpawnDepth == 1` olduğunda)**: Oturum aracı yoktur (geçerli varsayılan davranış).
- **Derinlik 2 (yaprak çalışan)**: Oturum aracı yoktur — `sessions_spawn`, derinlik 2'de her zaman reddedilir. Daha fazla çocuk başlatamaz.
- **Derinlik 2 (yaprak çalışan)**: Oturum aracı yoktur — `sessions_spawn`, derinlik 2'de her zaman reddedilir. Daha fazla alt öğe başlatamaz.
### Aracı başına başlatma sınırı
### Temsilci başına başlatma sınırı
Her aracı oturumu (herhangi bir derinlikte) aynı anda en fazla `maxChildrenPerAgent` (varsayılan: 5) etkin çocuğa sahip olabilir. Bu, tek bir orkestratörden kontrolden çıkan yelpazelenmeyi önler.
Her temsilci oturumu (herhangi bir derinlikte), aynı anda en fazla `maxChildrenPerAgent` (varsayılan: 5) etkin alt öğeye sahip olabilir. Bu, tek bir orkestratörden kaynaklanan kontrolsüz yayılmayı önler.
### Basamaklı durdurma
### Zincirleme durdurma
Bir derinlik-1 orkestratörü durdurmak, tüm derinlik-2 çocuklarını otomatik olarak durdurur:
Bir derinlik-1 orkestratörü durdurmak, tüm derinlik-2 alt öğelerini otomatik olarak durdurur:
- Ana sohbette `/stop`, tüm derinlik-1 aracılarını durdurur ve derinlik-2 çocuklarına kademeli olarak iner.
- `/subagents kill <id>`, belirli bir alt aracıyı durdurur ve çocuklarına kademeli olarak iner.
- `/subagents kill all`, istekte bulunan için tüm alt aracıları durdurur ve kademeli olarak iner.
- Ana sohbette `/stop`, tüm derinlik-1 temsilcileri durdurur ve derinlik-2 alt öğelerine zincirleme uygulanır.
- `/subagents kill <id>`, belirli bir alt temsilciyi durdurur ve alt öğelerine zincirleme uygulanır.
- `/subagents kill all`, istekte bulunan için tüm alt temsilcileri durdurur ve zincirleme uygulanır.
## Kimlik doğrulama
Alt aracı kimlik doğrulaması, oturum türüne göre değil **aracı kimliğine** göre çözülür:
Alt temsilci kimlik doğrulaması, oturum türüne göre değil, **temsilci kimliğine** göre çözümlenir:
- Alt aracı oturum anahtarı `agent:<agentId>:subagent:<uuid>` biçimindedir.
- Kimlik doğrulama deposu, o aracının `agentDir` dizininden yüklenir.
- Ana aracının auth profilleri bir **yedek** olarak birleştirilir; çakışmalarda aracı profilleri ana profilleri geçersiz kılar.
- Alt temsilci oturum anahtarı `agent:<agentId>:subagent:<uuid>` biçimindedir.
- Kimlik doğrulama deposu, o temsilcinin `agentDir` dizininden yüklenir.
- Ana temsilcinin kimlik doğrulama profilleri, **yedek** olarak birleştirilir; çakışmalarda temsilci profilleri ana profilleri geçersiz kılar.
Not: birleştirme eklemelidir; bu nedenle ana profiller her zaman yedek olarak kullanılabilir. Aracı başına tamamen yalıtılmış auth henüz desteklenmiyor.
Not: birleştirme toplamsaldır, bu nedenle ana profiller her zaman yedek olarak kullanılabilir. Temsilci başına tamamen yalıtılmış kimlik doğrulama henüz desteklenmemektedir.
## Duyuru
Alt aracılar bir duyuru adımıyla geri rapor verir:
Alt temsilciler, bir duyuru adımıyla geri bildirim yapar:
- Duyuru adımı, istekte bulunan oturumda değil alt aracı oturumunda çalışır.
- Alt aracı tam olarak `ANNOUNCE_SKIP` ile yanıt verirse hiçbir şey gönderilmez.
- En son assistant metni tam olarak sessiz belirteç `NO_REPLY` / `no_reply` ise,
daha önce görünür ilerleme olsa bile duyuru çıktısı bastırılır.
- Aksi halde teslim, istekte bulunanın derinliğine bağlıdır:
- üst düzey istekte bulunan oturumları, harici teslimli (`deliver=true`) bir takip `agent` çağrısı kullanır
- iç içe istekte bulunan subagent oturumları, orkestratörün çocuk sonuçlarını oturum içinde sentezleyebilmesi için dahili bir takip eklemesi (`deliver=false`) alır
- iç içe istekte bulunan subagent oturumu artık yoksa, OpenClaw imkanlar dahilinde o oturumun istekte bulunanına geri döner
- Üst düzey istekte bulunan oturumları için, tamamlama modundaki doğrudan teslim önce bağlı konuşma/iş parçacığı rotasını ve hook geçersiz kılmasını çözümler, sonra eksik kanal-hedef alanlarını istekte bulunan oturumun saklanan rotasından doldurur. Bu, tamamlama kaynağı yalnızca kanalı tanımlasa bile tamamlamaları doğru sohbet/konu üzerinde tutar.
- İç içe tamamlama bulguları oluşturulurken, çocuk tamamlama toplaması geçerli istekte bulunan çalıştırma kapsamıyla sınırlanır; böylece önceki çalıştırmalardan kalan çocuk çıktıları geçerli duyuruya sızmaz.
- Duyuru adımı, istekte bulunan oturumda değil, alt temsilci oturumunda çalışır.
- Alt temsilci tam olarak `ANNOUNCE_SKIP` yanıtını verirse hiçbir şey gönderilmez.
- En son yardımcı metni tam olarak sessiz belirteç `NO_REPLY` / `no_reply` ise, daha önce görünür ilerleme olsa bile duyuru çıktısı bastırılır.
- Aksi halde teslimat, istekte bulunanın derinliğine bağlıdır:
- üst düzey istekte bulunan oturumları, dış teslimatla (`deliver=true`) devam niteliğinde bir `agent` çağrısı kullanır
- iç içe istekte bulunan alt temsilci oturumları, orkestratörün alt sonuçları oturum içinde sentezleyebilmesi için dahili bir devam eklemesi alır (`deliver=false`)
- iç içe istekte bulunan bir alt temsilci oturumu artık mevcut değilse, OpenClaw mümkün olduğunda o oturumun istekte bulunanına geri döner
- Üst düzey istekte bulunan oturumları için tamamlama modu doğrudan teslimat, önce bağlı konuşma/iş parçacığı rotasını ve kanca geçersiz kılmasını çözümler, ardından eksik kanal-hedef alanlarını istekte bulunan oturumun saklanan rotasından doldurur. Bu, tamamlama kaynağı yalnızca kanalı tanımladığında bile tamamlamaları doğru sohbet/konuda tutar.
- İç içe tamamlama bulguları oluşturulurken alt öğe tamamlama toplaması geçerli istekte bulunan çalıştırmasıyla sınırlandırılır; böylece önceki çalıştırmalara ait eski alt öğe çıktılarının geçerli duyuruya sızması önlenir.
- Duyuru yanıtları, kanal bağdaştırıcılarında mevcut olduğunda iş parçacığı/konu yönlendirmesini korur.
- Duyuru bağlamı, kararlı bir dahili olay bloğuna normalize edilir:
- kaynak (`subagent` veya `cron`)
- çocuk oturum anahtarı/kimliği
- alt oturum anahtarı/kimliği
- duyuru türü + görev etiketi
- çalışma zamanı sonucundan türetilen durum satırı (`success`, `error`, `timeout` veya `unknown`)
- en son görünür assistant metninden seçilen, yoksa temizlenmiş en son tool/toolResult metni olan sonuç içeriği
- ne zaman yanıt verileceğini ve ne zaman sessiz kalınacağınııklayan bir takip talimatı
- en son görünür yardımcı metninden seçilen sonuç içeriği; yoksa temizlenmiş en son tool/toolResult metni; sonlandırılmış başarısız çalıştırmalar, yakalanmış yanıt metnini yeniden oynatmadan başarısızlık durumunu bildirir
- ne zaman yanıt verileceğini ve ne zaman sessiz kalınacağınııklayan bir devam talimatı
- `Status`, model çıktısından çıkarılmaz; çalışma zamanı sonuç sinyallerinden gelir.
- Zaman aşımında, çocuk yalnızca araç çağrılarına kadar ilerlediyse, duyuru ham araç çıktısını yinelemek yerine bu geçmişi kısa bir kısmi ilerleme özetine indirgemebilir.
- Zaman aşımında, alt öğe yalnızca araç çağrılarına kadar ilerlediyse, duyuru ham araç çıktısını yeniden oynatmak yerine bu geçmişi kısa bir kısmi ilerleme özetine indirgemiş olabilir.
Duyuru yükleri, sarmalansalar bile sonda bir istatistik satırı içerir:
Duyuru yükleri, sonunda bir istatistik satırı içerir (sarıldığında bile):
- Çalışma zamanı (ör. `runtime 5m12s`)
- Token kullanımı (girdi/çıktı/toplam)
- Model fiyatlandırması yapılandırıldıysa tahmini maliyet (`models.providers.*.models[].cost`)
- `sessionKey`, `sessionId` ve döküm yolu (ana aracının geçmişi `sessions_history` ile alabilmesi veya dosyayı diskten inceleyebilmesi için)
- Dahili meta veriler yalnızca orkestrasyon içindir; kullanıcıya dönük yanıtlar normal aracı sesiyle yeniden yazılmalıdır.
- Model fiyatlandırması yapılandırıldığında tahmini maliyet (`models.providers.*.models[].cost`)
- `sessionKey`, `sessionId` ve transkript yolu (böylece ana temsilci `sessions_history` ile geçmişi getirebilir veya dosyayı diskte inceleyebilir)
- Dahili meta veriler yalnızca orkestrasyon içindir; kullanıcıya yönelik yanıtlar normal yardımcı sesiyle yeniden yazılmalıdır.
`sessions_history`, daha güvenli orkestrasyon yoludur:
- önce assistant geri çağırması normalize edilir:
- thinking etiketleri çıkarılır
- `<relevant-memories>` / `<relevant_memories>` iskelet blokları çıkarılır
- `<tool_call>...</tool_call>`, `<function_call>...</function_call>`, `<tool_calls>...</tool_calls>` ve
`<function_calls>...</function_calls>` gibi düz metin tool-call XML yük blokları çıkarılır; düzgün kapanmayan kısaltılmış yükler de buna dahildir
- düşürülmüş tool-call/result iskeletleri ve historical-context işaretçileri çıkarılır
- `<|assistant|>`, diğer ASCII `<|...|>` belirteçleri ve tam genişlikli `<...>` varyantları gibi sızmış model kontrol belirteçleri çıkarılır
- bozuk MiniMax tool-call XML'i çıkarılır
- kimlik bilgisi/token benzeri metinler sansürlenir
- önce yardımcı geri çağırması normalize edilir:
- düşünme etiketleri kaldırılır
- `<relevant-memories>` / `<relevant_memories>` iskelet blokları kaldırılır
- `<tool_call>...</tool_call>`, `<function_call>...</function_call>`, `<tool_calls>...</tool_calls>` ve `<function_calls>...</function_calls>` gibi düz metin araç çağrısı XML yük blokları, düzgün kapanmayan kesik yükler dahil olmak üzere kaldırılır
- düşürülmüş araç çağrısı/sonuç iskeleti ve geçmiş bağlam işaretçileri kaldırılır
- `<|assistant|>`, diğer ASCII `<|...|>` belirteçleri ve tam genişlikli `<...>` varyantları gibi sızmış model denetim belirteçleri kaldırılır
- hatalı MiniMax araç çağrısı XML'i kaldırılır
- kimlik bilgisi/token benzeri metin sansürlenir
- uzun bloklar kısaltılabilir
- çok büyük geçmişlerde daha eski satırlar düşürülebilir veya aşırı büyük bir satır
`[sessions_history omitted: message too large]`
ile değiştirilebilir
- ham tam bayt döküme ihtiyaç duyduğunuzda, disk üzerindeki dökümü incelemek geri dönüş seçeneğidir
- çok büyük geçmişlerde eski satırlar düşürülebilir veya aşırı büyük bir satır şu ifadeyle değiştirilebilir: `[sessions_history omitted: message too large]`
- bayt düzeyinde tam transkripte ihtiyaç duyduğunuzda, yedek seçenek olarak diskteki ham transkript incelemesi kullanılır
## Araç İlkesi (alt aracı araçları)
## Araç Politikası (alt temsilci araçları)
Varsayılan olarak alt aracılar, oturum araçları ve sistem araçları dışındaki **tüm araçları** alır:
Varsayılan olarak alt temsilciler, oturum araçları ve sistem araçları hariç **tüm araçları** alır:
- `sessions_list`
- `sessions_history`
- `sessions_send`
- `sessions_spawn`
Buradaki `sessions_history` de sınırlı ve temizlenmiş bir geri çağırma görünümü olarak kalır; ham döküm boşaltması değildir.
Burada da `sessions_history`, sınırlı ve temizlenmiş bir geri çağırma görünümü olarak kalır; ham transkript dökümü değildir.
`maxSpawnDepth >= 2` olduğunda, derinlik-1 orkestratör alt aracılar çocuklarını yönetebilmeleri için ayrıca `sessions_spawn`, `subagents`, `sessions_list` ve `sessions_history` alır.
`maxSpawnDepth >= 2` olduğunda, derinlik-1 orkestratör alt temsilciler, alt öğelerini yönetebilmeleri için ek olarak `sessions_spawn`, `subagents`, `sessions_list` ve `sessions_history` alır.
Config ile geçersiz kılın:
Yapılandırma ile geçersiz kılın:
```json5
{
@ -309,9 +302,9 @@ Config ile geçersiz kılın:
tools: {
subagents: {
tools: {
// reddetme önceliklidir
// red önceliklidir
deny: ["gateway", "cron"],
// allow ayarlanırsa yalnızca izin verilen mod olur (deny yine önceliklidir)
// allow ayarlanırsa, yalnızca izin ver moduna geçer (deny yine önceliklidir)
// allow: ["read", "exec", "process"]
},
},
@ -321,21 +314,21 @@ Config ile geçersiz kılın:
## Eşzamanlılık
Alt aracılar özel bir süreç içi kuyruk kulvarı kullanır:
Alt temsilciler, sürece özel ayrılmış bir kuyruk şeridi kullanır:
- Kulvar adı: `subagent`
- Şerit adı: `subagent`
- Eşzamanlılık: `agents.defaults.subagents.maxConcurrent` (varsayılan `8`)
## Durdurma
- İstekte bulunan sohbette `/stop` göndermek, istekte bulunan oturumu iptal eder ve ondan başlatılan etkin alt aracı çalıştırmalarını durdurur; bu durum iç içe çocuklara da kademeli olarak uygulanır.
- `/subagents kill <id>`, belirli bir alt aracıyı durdurur ve çocuklarına kademeli olarak uygulanır.
- İstekte bulunan sohbete `/stop` göndermek, istekte bulunan oturumu iptal eder ve ondan başlatılan tüm etkin alt temsilci çalıştırmalarını durdurur; iç içe alt öğelere zincirleme uygulanır.
- `/subagents kill <id>`, belirli bir alt temsilciyi durdurur ve alt öğelerine zincirleme uygulanır.
## Sınırlamalar
- Alt aracı duyurusu **imkanlar dahilindedir**. Gateway yeniden başlatılırsa bekleyen "geri duyurma" işi kaybolur.
- Alt aracılar yine aynı gateway süreç kaynaklarını paylaşır; `maxConcurrent` değerini bir güvenlik supabı olarak değerlendirin.
- `sessions_spawn` her zaman bloklamaz: hemen `{ status: "accepted", runId, childSessionKey }` döndürür.
- Alt aracı bağlamı yalnızca `AGENTS.md` + `TOOLS.md` ekler (`SOUL.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md` veya `BOOTSTRAP.md` yoktur).
- Alt temsilci duyurusu **en iyi çaba** esasına dayanır. Ağ geçidi yeniden başlatılırsa bekleyen "geri duyur" işleri kaybolur.
- Alt temsilciler yine aynı ağ geçidi süreci kaynaklarını paylaşır; `maxConcurrent` değerini bir güvenlik supabı olarak düşünün.
- `sessions_spawn` her zaman engelleyici değildir: hemen `{ status: "accepted", runId, childSessionKey }` döndürür.
- Alt temsilci bağlamı yalnızca `AGENTS.md` + `TOOLS.md` ekler (`SOUL.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md` veya `BOOTSTRAP.md` yoktur).
- En yüksek iç içe geçme derinliği 5'tir (`maxSpawnDepth` aralığı: 15). Çoğu kullanım durumu için derinlik 2 önerilir.
- `maxChildrenPerAgent`, oturum başına etkin çocuk sayısını sınırlar (varsayılan: 5, aralık: 120).
- `maxChildrenPerAgent`, oturum başına etkin alt öğeleri sınırlar (varsayılan: 5, aralık: 120).

View File

@ -1,131 +1,131 @@
---
read_when:
- Düşünme, hızlı mod veya ayrıntılı yönerge ayrıştırmasını ya da varsayılanlarını ayarlama
summary: '`/think`, `/fast`, `/verbose`, `/trace` ve reasoning görünürlüğü için yönerge sözdizimi'
summary: '`/think`, `/fast`, `/verbose`, `/trace` ve muhakeme görünürlüğü için yönerge söz dizimi'
title: Düşünme Düzeyleri
x-i18n:
generated_at: "2026-04-21T09:07:04Z"
generated_at: "2026-04-21T19:21:02Z"
model: gpt-5.4
provider: openai
source_hash: 1b0217f6e5a5cb3400090f31ad5271ca61848a40f77d3f942851e7c2f2352886
source_hash: c77f6f1318c428bbd21725ea5f32f8088506a10cbbf5b5cbca5973c72a5a81f9
source_path: tools/thinking.md
workflow: 15
---
# Düşünme Düzeyleri (/think yönergeleri)
# Düşünme Düzeyleri (`/think` yönergeleri)
## Ne yapar
- Herhangi bir gelen gövde içinde satır içi yönerge: `/t <level>`, `/think:<level>` veya `/thinking <level>`.
- Herhangi bir gelen gövdedeki satır içi yönerge: `/t <level>`, `/think:<level>` veya `/thinking <level>`.
- Düzeyler (takma adlar): `off | minimal | low | medium | high | xhigh | adaptive | max`
- minimal → “think”
- low → “think hard”
- medium → “think harder”
- high → “ultrathink” (maksimum bütçe)
- high → “ultrathink” (en yüksek bütçe)
- xhigh → “ultrathink+” (GPT-5.2 + Codex modelleri ve Anthropic Claude Opus 4.7 çabası)
- adaptive → sağlayıcı tarafından yönetilen uyarlanabilir düşünme (Anthropic/Bedrock üzerindeki Claude 4.6 ve Anthropic Claude Opus 4.7 için desteklenir)
- max → sağlayıcı maksimum reasoning (şu anda Anthropic Claude Opus 4.7)
- max → sağlayıcının en yüksek muhakemesi (şu anda Anthropic Claude Opus 4.7)
- `x-high`, `x_high`, `extra-high`, `extra high` ve `extra_high`, `xhigh` olarak eşlenir.
- `highest`, `high` olarak eşlenir.
- Sağlayıcı notları:
- Düşünme menüleri ve seçicileri sağlayıcı profil odaklıdır. Sağlayıcı Plugin'leri, ikili `on` gibi etiketler de dahil olmak üzere seçilen model için tam düzey kümesini bildirir.
- `adaptive`, `xhigh` ve `max`, yalnızca bunları destekleyen sağlayıcı/model profilleri için duyurulur. Desteklenmeyen düzeyler için yazılmış yönergeler, o modelin geçerli seçenekleriyle birlikte reddedilir.
- Eski `max` değerleri dahil, depolanmış ama artık desteklenmeyen düzeyler model değiştirildikten sonra seçilen model için desteklenen en büyük düzeye yeniden eşlenir.
- Anthropic Claude 4.6 modelleri, açık bir düşünme düzeyi ayarlanmamışsa varsayılan olarak `adaptive` kullanır.
- Anthropic Claude Opus 4.7, varsayılan olarak uyarlanabilir düşünmeye geçmez. API çabasının varsayılanı, açıkça bir düşünme düzeyi ayarlamadığınız sürece sağlayıcıya aittir.
- Anthropic Claude Opus 4.7, `/think xhigh` komutunu uyarlanabilir düşünme artı `output_config.effort: "xhigh"` olarak eşler; çünkü `/think` bir düşünme yönergesidir ve `xhigh`, Opus 4.7 çaba ayarıdır.
- Anthropic Claude Opus 4.7 ayrıca `/think max` komutunu da sunar; bu, aynı sağlayıcıya ait maksimum çaba yoluna eşlenir.
- OpenAI GPT modelleri `/think` komutunu modele özgü Responses API çaba desteği üzerinden eşler. `/think off`, yalnızca hedef model bunu destekliyorsa `reasoning.effort: "none"` gönderir; aksi durumda OpenClaw desteklenmeyen bir değer göndermek yerine devre dışı reasoning yükünü atlar.
- Anthropic uyumlu akış yolundaki MiniMax (`minimax/*`), model parametrelerinde veya istek parametrelerinde açıkça düşünme ayarlamadığınız sürece varsayılan olarak `thinking: { type: "disabled" }` kullanır. Bu, MiniMax'in yerel olmayan Anthropic akış biçiminden sızan `reasoning_content` deltalarını önler.
- Z.AI (`zai/*`) yalnızca ikili düşünmeyi (`on`/`off`) destekler. `off` dışındaki her düzey `on` olarak değerlendirilir (`low` olarak eşlenir).
- Moonshot (`moonshot/*`), `/think off` komutunu `thinking: { type: "disabled" }` ve `off` dışındaki her düzeyi `thinking: { type: "enabled" }` olarak eşler. Düşünme etkin olduğunda Moonshot yalnızca `tool_choice` için `auto|none` kabul eder; OpenClaw uyumsuz değerleri `auto` olarak normalleştirir.
- Düşünme menüleri ve seçicileri sağlayıcı profil odaklıdır. Sağlayıcı Plugin'leri, `on` gibi ikili etiketler de dahil olmak üzere seçili model için tam düzey kümesini bildirir.
- `adaptive`, `xhigh` ve `max`, yalnızca bunları destekleyen sağlayıcı/model profilleri için gösterilir. Desteklenmeyen düzeyler için yazılmış yönergeler, o modelin geçerli seçenekleriyle birlikte reddedilir.
- Mevcut kayıtlı ancak desteklenmeyen düzeyler, sağlayıcı profil sıralamasına göre yeniden eşlenir. `adaptive`, uyarlanabilir olmayan modellerde `medium` düzeyine geri düşer; `xhigh` ve `max` ise seçili model için desteklenen `off` dışındaki en yüksek düzeye geri düşer.
- Anthropic Claude 4.6 modelleri, açık bir düşünme düzeyi ayarlanmadığında varsayılan olarak `adaptive` kullanır.
- Anthropic Claude Opus 4.7 varsayılan olarak uyarlanabilir düşünme kullanmaz. Açıkça bir düşünme düzeyi ayarlamadığınız sürece API effort varsayılanı sağlayıcıya aittir.
- Anthropic Claude Opus 4.7, `/think xhigh` ifadesini uyarlanabilir düşünme artı `output_config.effort: "xhigh"` olarak eşler; çünkü `/think` bir düşünme yönergesidir ve `xhigh`, Opus 4.7 effort ayarıdır.
- Anthropic Claude Opus 4.7 ayrıca `/think max` sunar; bu da aynı sağlayıcıya ait en yüksek effort yoluna eşlenir.
- OpenAI GPT modelleri, `/think` ifadesini modele özgü Responses API effort desteği üzerinden eşler. `/think off`, yalnızca hedef model bunu destekliyorsa `reasoning.effort: "none"` gönderir; aksi halde OpenClaw desteklenmeyen bir değer göndermek yerine devre dışı reasoning payload'unu atlar.
- Anthropic uyumlu akış yolundaki MiniMax (`minimax/*`), model parametrelerinde veya istek parametrelerinde açıkça düşünme ayarlamadığınız sürece varsayılan olarak `thinking: { type: "disabled" }` kullanır. Bu, MiniMax'ın yerel olmayan Anthropic akış biçiminden sızan `reasoning_content` delta'larını önler.
- Z.AI (`zai/*`) yalnızca ikili düşünmeyi destekler (`on`/`off`). `off` dışındaki herhangi bir düzey `on` olarak ele alınır (`low` olarak eşlenir).
- Moonshot (`moonshot/*`), `/think off` ifadesini `thinking: { type: "disabled" }`, `off` dışındaki herhangi bir düzeyi ise `thinking: { type: "enabled" }` olarak eşler. Düşünme etkin olduğunda Moonshot yalnızca `tool_choice` `auto|none` kabul eder; OpenClaw uyumsuz değerleri `auto` olarak normalize eder.
## Çözümleme sırası
1. Mesaj üzerindeki satır içi yönerge (yalnızca o mesaja uygulanır).
2. Oturum geçersiz kılması (yalnızca yönerge içeren mesaj gönderilerek ayarlanır).
3. Ajan başına varsayılan (`agents.list[].thinkingDefault`, config içinde).
4. Genel varsayılan (`agents.defaults.thinkingDefault`, config içinde).
5. Geri dönüş: varsa sağlayıcının bildirdiği varsayılan, reasoning yetenekli olarak işaretlenmiş diğer katalog modelleri için `low`, aksi durumda `off`.
1. İleti üzerindeki satır içi yönerge (yalnızca o iletiye uygulanır).
2. Oturum geçersiz kılması (yalnızca yönerge içeren bir ileti gönderilerek ayarlanır).
3. Agent başına varsayılan (`config` içindeki `agents.list[].thinkingDefault`).
4. Genel varsayılan (`config` içindeki `agents.defaults.thinkingDefault`).
5. Geri dönüş: varsa sağlayıcının bildirdiği varsayılan; reasoning özellikli olarak işaretlenen diğer katalog modelleri için `low`; aksi halde `off`.
## Oturum varsayılanı ayarlama
- **Yalnızca** yönergeden oluşan bir mesaj gönderin (boşluklara izin verilir), örneğin `/think:medium` veya `/t high`.
- Bu, geçerli oturum için kalır (varsayılan olarak gönderici başına); `/think:off` veya oturum boşta sıfırlaması ile temizlenir.
- Onay yanıtı gönderilir (`Thinking level set to high.` / `Thinking disabled.`). Düzey geçersizse (ör. `/thinking big`), komut bir ipucuyla reddedilir ve oturum durumu değiştirilmez.
- Geçerli düşünme düzeyini görmek için argüman vermeden `/think` (veya `/think:`) gönderin.
- **Yalnızca** yönergeden oluşan bir ileti gönderin (boşluklara izin verilir), örneğin `/think:medium` veya `/t high`.
- Bu, geçerli oturum için kalıcı olur (varsayılan olarak gönderici başına); `/think:off` veya oturum boşta kalma sıfırlaması ile temizlenir.
- Onay yanıtı gönderilir (`Thinking level set to high.` / `Thinking disabled.`). Düzey geçersizse (ör. `/thinking big`), komut bir ipucuyla reddedilir ve oturum durumu değiştirilmeden kalır.
- Geçerli düşünme düzeyini görmek için argümansız `/think` (veya `/think:`) gönderin.
## Ajana göre uygulama
## Agent tarafından uygulanması
- **Gömülü Pi**: çözümlenen düzey, süreç içi Pi ajan çalışma zamanına geçirilir.
- **Gömülü Pi**: çözümlenen düzey, süreç içi Pi agent çalışma zamanına iletilir.
## Hızlı mod (/fast)
## Hızlı mod (`/fast`)
- Düzeyler: `on|off`.
- Yalnızca yönerge içeren mesaj, bir oturum hızlı mod geçersiz kılması açar/kapatır ve `Fast mode enabled.` / `Fast mode disabled.` yanıtını verir.
- Etkin hızlı mod durumunu görmek için kip belirtmeden `/fast` (veya `/fast status`) gönderin.
- Yalnızca yönerge içeren ileti, oturum hızlı mod geçersiz kılmasınııp kapatır ve `Fast mode enabled.` / `Fast mode disabled.` yanıtını verir.
- Geçerli etkin hızlı mod durumunu görmek için modsuz `/fast` (veya `/fast status`) gönderin.
- OpenClaw hızlı modu şu sırayla çözümler:
1. Satır içi/yalnızca yönerge `/fast on|off`
2. Oturum geçersiz kılması
3. Ajan başına varsayılan (`agents.list[].fastModeDefault`)
3. Agent başına varsayılan (`agents.list[].fastModeDefault`)
4. Model başına yapılandırma: `agents.defaults.models["<provider>/<model>"].params.fastMode`
5. Geri dönüş: `off`
- `openai/*` için hızlı mod, desteklenen Responses isteklerinde `service_tier=priority` göndererek OpenAI öncelikli işlemeye eşlenir.
- `openai-codex/*` için hızlı mod, Codex Responses üzerinde aynı `service_tier=priority` bayrağını gönderir. OpenClaw, her iki auth yolu için tek bir ortak `/fast` anahtarı tutar.
- `api.anthropic.com` adresine gönderilen OAuth kimliği doğrulanmış trafik dahil doğrudan herkese açık `anthropic/*` isteklerinde hızlı mod Anthropic hizmet katmanlarına eşlenir: `/fast on`, `service_tier=auto`; `/fast off`, `service_tier=standard_only` ayarlar.
- Anthropic uyumlu yoldaki `minimax/*` için `/fast on` (veya `params.fastMode: true`), `MiniMax-M2.7` modelini `MiniMax-M2.7-highspeed` olarak yeniden yazar.
- Her ikisi de ayarlandığındaık Anthropic `serviceTier` / `service_tier` model parametreleri, hızlı mod varsayılanını geçersiz kılar. OpenClaw yine de Anthropic olmayan proxy temel URL'leri için Anthropic hizmet katmanı eklemesini atlar.
- `openai-codex/*` için hızlı mod, Codex Responses üzerinde aynı `service_tier=priority` bayrağını gönderir. OpenClaw, her iki kimlik doğrulama yolu için de tek bir paylaşılan `/fast` anahtarı tutar.
- `api.anthropic.com` adresine gönderilen OAuth kimlik doğrulamalı trafik dahil, doğrudan genel `anthropic/*` istekleri için hızlı mod Anthropic hizmet katmanlarına eşlenir: `/fast on`, `service_tier=auto`; `/fast off`, `service_tier=standard_only` ayarlar.
- Anthropic uyumlu yoldaki `minimax/*` için `/fast on` (veya `params.fastMode: true`), `MiniMax-M2.7` değerini `MiniMax-M2.7-highspeed` olarak yeniden yazar.
- Her ikisi de ayarlıysa,ık Anthropic `serviceTier` / `service_tier` model parametreleri hızlı mod varsayılanını geçersiz kılar. OpenClaw, Anthropic olmayan proxy temel URL'leri için Anthropic hizmet katmanı eklemesini yine de atlar.
## Ayrıntılı yönergeler (/verbose veya /v)
## Ayrıntılı yönergeler (`/verbose` veya `/v`)
- Düzeyler: `on` (minimal) | `full` | `off` (varsayılan).
- Yalnızca yönerge içeren mesaj oturum ayrıntı düzeyini açar/kapatır ve `Verbose logging enabled.` / `Verbose logging disabled.` yanıtını verir; geçersiz düzeyler durumu değiştirmeden ipucu döndürür.
- `/verbose off`, açık bir oturum geçersiz kılması depolar; bunu Sessions UI üzerinden `inherit` seçerek temizleyin.
- Satır içi yönerge yalnızca o mesaja uygulanır; aksi durumda oturum/genel varsayılanlar geçerlidir.
- Geçerli ayrıntı düzeyini görmek için argüman vermeden `/verbose` (veya `/verbose:`) gönderin.
- Ayrıntılı mod açık olduğunda, yapılandırılmış araç sonuçları üreten ajanlar (Pi, diğer JSON ajanları) her araç çağrısını kendi meta veri odaklı mesajı olarak geri gönderir; varsa `<emoji> <tool-name>: <arg>` öneki kullanılır (yol/komut). Bu araç özetleri, her araç başlar başlamaz gönderilir (ayrı baloncuklar olarak), akış deltaları olarak değil.
- Araç hata özetleri normal modda görünür kalır, ancak ham hata ayrıntısı sonekleri `verbose` değeri `on` veya `full` olmadıkça gizlenir.
- `verbose` değeri `full` olduğunda, araç çıktıları da tamamlandıktan sonra iletilir (ayrı baloncuk, güvenli uzunluğa kırpılmış). Bir çalıştırma sürerken `/verbose on|full|off` değiştirirseniz sonraki araç baloncukları yeni ayarı dikkate alır.
- Yalnızca yönerge içeren ileti, oturum ayrıntı düzeyini açıp kapatır ve `Verbose logging enabled.` / `Verbose logging disabled.` yanıtını verir; geçersiz düzeyler durumu değiştirmeden bir ipucu döndürür.
- `/verbose off`, açık bir oturum geçersiz kılması saklar; bunu Sessions UI içinden `inherit` seçerek temizleyin.
- Satır içi yönerge yalnızca o iletiyi etkiler; diğer durumlarda oturum/genel varsayılanlar uygulanır.
- Geçerli ayrıntı düzeyini görmek için argümansız `/verbose` (veya `/verbose:`) gönderin.
- Ayrıntılı mod açık olduğunda, yapılandırılmış araç sonuçları üreten agent'lar (Pi, diğer JSON agent'ları), her araç çağrısını kendi başına yalnızca meta veri içeren bir ileti olarak geri gönderir; varsa `<emoji> <tool-name>: <arg>` ile öneklenir (yol/komut). Bu araç özetleri, her araç başladığında gönderilir (ayrı baloncuklar olarak), akış delta'ları olarak değil.
- Araç hata özeti normal modda görünür kalır, ancak ham hata ayrıntısı sonekleri `verbose` `on` veya `full` olmadıkça gizlenir.
- `verbose` `full` olduğunda, araç çıktıları da tamamlandıktan sonra iletilir (ayrı baloncuk olarak, güvenli bir uzunluğa kısaltılmış biçimde). Bir çalışma sürerken `/verbose on|full|off` arasında geçiş yaparsanız, sonraki araç baloncukları yeni ayara uyar.
## Plugin izleme yönergeleri (/trace)
## Plugin izleme yönergeleri (`/trace`)
- Düzeyler: `on` | `off` (varsayılan).
- Yalnızca yönerge içeren mesaj oturum Plugin izleme çıktısını açar/kapatır ve `Plugin trace enabled.` / `Plugin trace disabled.` yanıtını verir.
- Satır içi yönerge yalnızca o mesaja uygulanır; aksi durumda oturum/genel varsayılanlar geçerlidir.
- Geçerli izleme düzeyini görmek için argüman vermeden `/trace` (veya `/trace:`) gönderin.
- `/trace`, `/verbose` değerinden daha dardır: yalnızca Active Memory hata ayıklama özetleri gibi Plugin sahipliğindeki izleme/hata ayıklama satırlarınıığa çıkarır.
- İzleme satırları `/status` içinde ve normal yardımcı yanıtından sonra gelen takip tanılama mesajı olarak görünebilir.
- Yalnızca yönerge içeren ileti, oturum Plugin izleme çıktısınııp kapatır ve `Plugin trace enabled.` / `Plugin trace disabled.` yanıtını verir.
- Satır içi yönerge yalnızca o iletiyi etkiler; diğer durumlarda oturum/genel varsayılanlar uygulanır.
- Geçerli izleme düzeyini görmek için argümansız `/trace` (veya `/trace:`) gönderin.
- `/trace`, `/verbose` seçeneğinden daha dardır: yalnızca Plugin'e ait izleme/hata ayıklama satırlarını, örneğin Active Memory hata ayıklama özetlerini gösterir.
- İzleme satırları `/status` içinde ve normal assistant yanıtından sonra gelen takip tanılama iletisi olarak görünebilir.
## Reasoning görünürlüğü (/reasoning)
## Muhakeme görünürlüğü (`/reasoning`)
- Düzeyler: `on|off|stream`.
- Yalnızca yönerge içeren mesaj, yanıtlarda düşünme bloklarının gösterilip gösterilmeyeceğini açar/kapatır.
- Etkinleştirildiğinde reasoning, `Reasoning:` önekiyle **ayrı bir mesaj** olarak gönderilir.
- Yalnızca yönerge içeren ileti, yanıtlarda düşünme bloklarının gösterilip gösterilmeyeceğini açıp kapatır.
- Etkinleştirildiğinde, muhakeme `Reasoning:` önekiyle **ayrı bir ileti** olarak gönderilir.
- `stream` (yalnızca Telegram): reasoning'i yanıt üretilirken Telegram taslak baloncuğuna akıtır, ardından reasoning olmadan son yanıtı gönderir.
- Takma ad: `/reason`.
- Geçerli reasoning düzeyini görmek için argüman vermeden `/reasoning` (veya `/reasoning:`) gönderin.
- Çözümleme sırası: satır içi yönerge, ardından oturum geçersiz kılması, ardından ajan başına varsayılan (`agents.list[].reasoningDefault`), ardından geri dönüş (`off`).
- Geçerli reasoning düzeyini görmek için argümansız `/reasoning` (veya `/reasoning:`) gönderin.
- Çözümleme sırası: satır içi yönerge, ardından oturum geçersiz kılması, ardından agent başına varsayılan (`agents.list[].reasoningDefault`), ardından geri dönüş (`off`).
## İlgili
- Yükseltilmiş mod belgeleri [Yükseltilmiş mod](/tr/tools/elevated) sayfasında bulunur.
- Elevated mode belgeleri [Elevated mode](/tr/tools/elevated) içinde yer alır.
## Heartbeat'ler
- Heartbeat yoklama gövdesi, yapılandırılmış Heartbeat istemidir (varsayılan: `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.`). Bir Heartbeat mesajındaki satır içi yönergeler normal şekilde uygulanır (ancak Heartbeat'lerden oturum varsayılanlarını değiştirmekten kaçının).
- Heartbeat teslimatı varsayılan olarak yalnızca son yükü gönderir. Ayrı `Reasoning:` mesajını da göndermek için (varsa) `agents.defaults.heartbeat.includeReasoning: true` veya ajan başına `agents.list[].heartbeat.includeReasoning: true` ayarlayın.
- Heartbeat probe gövdesi, yapılandırılmış heartbeat istemidir (varsayılan: `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.`). Bir heartbeat iletisindeki satır içi yönergeler her zamanki gibi uygulanır (ancak heartbeat'lerden oturum varsayılanlarını değiştirmekten kaçının).
- Heartbeat teslimi varsayılan olarak yalnızca son payload'u gönderir. Ayrı `Reasoning:` iletisini de göndermek için (varsa), `agents.defaults.heartbeat.includeReasoning: true` veya agent başına `agents.list[].heartbeat.includeReasoning: true` ayarlayın.
## Web sohbet UI
- Web sohbet düşünme seçicisi, sayfa yüklendiğinde gelen oturum deposu/config içindeki oturumda depolanmış düzeyi yansıtır.
- Başka bir düzey seçmek, bunu hemen `sessions.patch` aracılığıyla oturum geçersiz kılması olarak yazar; bir sonraki gönderimi beklemez ve tek seferlik `thinkingOnce` geçersiz kılması değildir.
- Web sohbet düşünme seçicisi, sayfa yüklendiğinde gelen oturum deposu/yapılandırmasından oturumun kayıtlı düzeyini yansıtır.
- Başka bir düzey seçmek, oturum geçersiz kılmasını hemen `sessions.patch` ile yazar; bir sonraki gönderimi beklemez ve tek seferlik bir `thinkingOnce` geçersiz kılması değildir.
- İlk seçenek her zaman `Default (<resolved level>)` olur; burada çözümlenen varsayılan, etkin oturum modelinin sağlayıcı düşünme profilinden gelir.
- Seçici, Gateway oturum satırı tarafından döndürülen `thinkingOptions` değerini kullanır. Tarayıcı UI kendi sağlayıcı regex listesini tutmaz; modele özgü düzey kümeleri Plugin'lere aittir.
- `/think:<level>` hâlâ çalışır ve depolanmış aynı oturum düzeyini günceller; böylece sohbet yönergeleri ve seçici eşzamanlı kalır.
- Seçici, gateway oturum satırı tarafından döndürülen `thinkingOptions` değerini kullanır. Tarayıcı UI kendi sağlayıcı regex listesini tutmaz; modele özgü düzey kümeleri Plugin'lere aittir.
- `/think:<level>` hâlâ çalışır ve aynı kayıtlı oturum düzeyini günceller; böylece sohbet yönergeleri ve seçici senkronize kalır.
## Sağlayıcı profilleri
- Sağlayıcı Plugin'leri, modelin desteklenen düzeylerini ve varsayılanını tanımlamak için `resolveThinkingProfile(ctx)` sunabilir.
- Her profil düzeyinin depolanan kurallı bir `id` değeri vardır (`off`, `minimal`, `low`, `medium`, `high`, `xhigh`, `adaptive` veya `max`) ve bir görüntüleme `label` değeri içerebilir. İkili sağlayıcılar `{ id: "low", label: "on" }` kullanır.
- Her profil düzeyinin kayıtlı kanonik bir `id` değeri vardır (`off`, `minimal`, `low`, `medium`, `high`, `xhigh`, `adaptive` veya `max`) ve bir görüntüleme `label` değeri içerebilir. İkili sağlayıcılar `{ id: "low", label: "on" }` kullanır.
- Yayımlanmış eski hook'lar (`supportsXHighThinking`, `isBinaryThinking` ve `resolveDefaultThinkingLevel`) uyumluluk bağdaştırıcıları olarak kalır, ancak yeni özel düzey kümeleri `resolveThinkingProfile` kullanmalıdır.
- Gateway satırları `thinkingOptions` ve `thinkingDefault` değerlerini ığa çıkarır; böylece ACP/sohbet istemcileri çalışma zamanı doğrulamasının kullandığı aynı profili işler.
- Gateway satırları `thinkingOptions` ve `thinkingDefault` değerlerini gösterir; böylece ACP/sohbet istemcileri çalışma zamanı doğrulamasının kullandığı aynı profili işler.