chore(i18n): refresh tr translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-05-01 09:07:45 +00:00
parent 6b9601e63f
commit 30e68a207c
38 changed files with 5323 additions and 4470 deletions

View File

@ -1,54 +1,54 @@
---
read_when:
- Devam eden veya yakın zamanda tamamlanan arka plan çalışmalarını inceleme
- Bağımsız ajan çalıştırmalarında teslimat hatalarında hata ayıklama
- Arka plan çalıştırmalarının oturumlar, Cron ve Heartbeat ile ilişkisini anlama
- Ayrık ajan çalıştırmalarında iletim hatalarını ayıklama
- Arka plan çalıştırmalarının oturumlar, Cron ve Heartbeat ile nasıl ilişkili olduğunu anlama
sidebarTitle: Background tasks
summary: ACP çalıştırmaları, alt ajanlar, yalıtılmış Cron işleri ve CLI işlemleri için arka plan görev takibi
summary: 'Arka plan görev takibi: ACP çalıştırmaları, alt ajanlar, yalıtılmış Cron işleri ve CLI işlemleri'
title: Arka plan görevleri
x-i18n:
generated_at: "2026-04-30T16:28:01Z"
generated_at: "2026-05-01T08:58:44Z"
model: gpt-5.5
provider: openai
source_hash: 999653c9360323d5135e33193c76458cba8c288227de46a6217f1ccbed2a6d34
source_hash: 8782987a79989264ae3bd1ca4b16755bdfb7e295e4f77933bf3a38c136d837f4
source_path: automation/tasks.md
workflow: 16
---
<Note>
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 işi için etkinlik defteridir; zamanlayıcı değildir.
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 işi için etkinlik defteridir, zamanlayıcı değildir.
</Note>
Arka plan görevleri, **ana konuşma oturumunuzun dışında** çalışan işleri izler: ACP çalıştırmaları, alt ajan oluşturma işlemleri, yalıtılmış cron işi yürütmeleri ve CLI tarafından başlatılan işlemler.
Arka plan görevleri, **ana konuşma oturumunuzun dışında** çalışan işleri izler: ACP çalıştırmaları, alt ajan 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, hangi ayrık işin ne zaman gerçekleştiğini ve başarılı olup olmadığını kaydeden **etkinlik defteridir**.
Görevler oturumların, cron işlerinin veya heartbeart'lerin yerini **almaz**; bunlar, hangi ayrılmış işin 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 sohbet oluşturmaz. Tüm cron yürütmeleri, ACP oluşturma işlemleri, alt ajan oluşturma işlemleri ve CLI ajan komutları oluşturur.
Her ajan çalıştırması bir görev oluşturmaz. Heartbeat turları ve normal etkileşimli sohbet oluşturmaz. Tüm cron yürütmeleri, ACP başlatmaları, alt ajan başlatmaları ve CLI ajan komutları oluşturur.
</Note>
## Kısaca
## TL;DR
- Görevler zamanlayıcı değil, **kayıtlardır** — 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` boyunca ilerler (succeeded, failed, timed_out, cancelled veya lost).
- Cron çalışma zamanı işi hâlâ sahiplenirken cron görevleri canlı kalır; bellek içi çalışma zamanı durumu kaybolmuşsa görev bakımı, bir görevi lost olarak işaretlemeden önce dayanıklı cron çalıştırma geçmişini denetler.
- Tamamlama push odaklıdır: ayrık iş, bittiğinde doğrudan bildirim gönderebilir veya istekte bulunan oturumu/heartbeat'i uyandırabilir; bu yüzden durum yoklama döngüleri genellikle yanlış biçimdir.
- Yalıtılmış cron çalıştırmaları ve alt ajan tamamlanmaları, son temizlik defter kaydından önce alt oturumları için izlenen tarayıcı sekmelerini/süreçlerini en iyi çabayla temizler.
- Yalıtılmış cron teslimi, alt alt ajan işi hâlâ boşalırken bayat geçici üst yanıtları bastırır ve teslimden önce ulaştığında son alt çıktıyı tercih eder.
- Tamamlama bildirimleri doğrudan bir kanala teslim edilir veya bir sonraki heartbeat için kuyruğa alınır.
- Görevler **kayıtlardır**, zamanlayıcı değildir; 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 turları oluşturmaz.
- Her görev `queued → running → terminal` durumlarından geçer (succeeded, failed, timed_out, cancelled veya lost).
- Cron görevleri, cron çalışma zamanı hâlâ işe sahip olduğu sürece canlı kalır; bellek içi çalışma zamanı durumu kaybolursa görev bakımı, bir görevi kayıp olarak işaretlemeden önce kalıcı cron çalıştırma geçmişini kontrol eder.
- Tamamlanma push odaklıdır: ayrılmış iş, bittiğinde doğrudan bildirim gönderebilir veya istekte bulunan oturumu/Heartbeat'i uyandırabilir; bu nedenle durum yoklama döngüleri genellikle yanlış biçimdir.
- Yalıtılmış cron çalıştırmaları ve alt ajan tamamlanmaları, son temizlik kayıtlarından önce alt oturumları için izlenen tarayıcı sekmelerini/süreçlerini en iyi çabayla temizler.
- Yalıtılmış cron teslimi, alt alt ajan işi hâlâ boşalırken eski ara üst yanıtları bastırır ve teslimden önce geldiğinde son alt çıktıyı tercih eder.
- Tamamlanma bildirimleri doğrudan bir kanala iletilir 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 tutulur, sonra otomatik olarak temizlenir.
- Terminal kayıtları 7 gün tutulur, ardından otomatik olarak budanır.
## Hızlı başlangıç
<Tabs>
<Tab title="Listele ve filtrele">
```bash
# List all tasks (newest first)
# Tüm görevleri listele (önce en yeni)
openclaw tasks list
# Filter by runtime or status
# Çalışma zamanına veya duruma göre filtrele
openclaw tasks list --runtime acp
openclaw tasks list --status running
```
@ -56,26 +56,26 @@ Her ajan çalıştırması bir görev oluşturmaz. Heartbeat dönüşleri ve nor
</Tab>
<Tab title="İncele">
```bash
# Show details for a specific task (by ID, run ID, or session key)
# Belirli bir görevin ayrıntılarını göster (ID, çalıştırma ID'si veya oturum anahtarına göre)
openclaw tasks show <lookup>
```
</Tab>
<Tab title="İptal et ve bildir">
```bash
# Cancel a running task (kills the child session)
# Çalışan bir görevi iptal et (alt oturumu sonlandırır)
openclaw tasks cancel <lookup>
# Change notification policy for a task
# Bir görev için bildirim politikasını değiştir
openclaw tasks notify <lookup> state_changes
```
</Tab>
<Tab title="Denetim ve bakım">
```bash
# Run a health audit
# Sağlık denetimi çalıştır
openclaw tasks audit
# Preview or apply maintenance
# Bakımı önizle veya uygula
openclaw tasks maintenance
openclaw tasks maintenance --apply
```
@ -83,7 +83,7 @@ Her ajan çalıştırması bir görev oluşturmaz. Heartbeat dönüşleri ve nor
</Tab>
<Tab title="Görev akışı">
```bash
# Inspect TaskFlow state
# TaskFlow durumunu incele
openclaw tasks flow list
openclaw tasks flow show <lookup>
openclaw tasks flow cancel <lookup>
@ -91,29 +91,29 @@ Her ajan çalıştırması bir görev oluşturmaz. Heartbeat dönüşleri ve nor
</Tab>
</Tabs>
## Görevi ne oluşturur
## Görevi ne oluşturur?
| 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` | Alt ACP oturumu oluşturulurken | `done_only` |
| Alt ajan orkestrasyonu | `subagent` | `sessions_spawn` aracılığıyla alt ajan oluşturulurken | `done_only` |
| Cron işleri (tüm türler) | `cron` | Her cron yürütmesi (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` |
| Kaynak | Çalışma zamanı türü | Görev kaydının oluşturulduğu zaman | Varsayılan bildirim politikası |
| ---------------------- | ------------------- | ------------------------------------------------------- | ------------------------------ |
| ACP arka plan çalıştırmaları | `acp` | Alt ACP oturumu başlatıldığında | `done_only` |
| Alt ajan orkestrasyonu | `subagent` | `sessions_spawn` ile bir alt ajan başlatıldığında | `done_only` |
| Cron işleri (tüm türler) | `cron` | Her cron yürütmesi (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 `music_generate`/`video_generate` çalıştırmaları | `silent` |
<AccordionGroup>
<Accordion title="Cron ve medya için bildirim varsayılanları">
Ana oturum cron görevleri varsayılan olarak `silent` bildirim ilkesini kullanır — izleme için kayıt oluştururlar ama 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.
Ana oturum cron görevleri varsayılan olarak `silent` bildirim politikasını 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 özgün ajan oturumuna iç uyandırma olarak geri verilir; böylece ajan takip mesajını yazabilir ve tamamlanan videoyu kendisi ekleyebilir. `tools.media.asyncCompletion.directSend` seçeneğine katılırsanız, asenkron `music_generate` ve `video_generate` tamamlanmaları istekte bulunan oturumun uyandırma yoluna geri dönmeden önce doğrudan kanal teslimini dener.
Oturum destekli `music_generate` ve `video_generate` çalıştırmaları da `silent` bildirim politikasını kullanır. Yine de görev kayıtları oluştururlar, ancak tamamlanma, ajanın takip mesajını yazıp tamamlanan medyayı kendisi ekleyebilmesi için iç uyandırma olarak özgün ajan oturumuna geri verilir. `tools.media.asyncCompletion.directSend` seçeneğini etkinleştirirseniz, zaman uyumsuz `video_generate` tamamlanmaları önce doğrudan kanal teslimini deneyebilir; zaman uyumsuz `music_generate` tamamlanmaları istekte bulunan oturumun uyandırma yolunda kalır.
</Accordion>
<Accordion title="Eşzamanlı video_generate koruması">
Oturum destekli bir `video_generate` görevi hâlâ etkinken araç aynı zamanda bir koruma olarak davranır: aynı oturumdaki tekrarlanan `video_generate` çağrıları, ikinci bir eşzamanlı üretim başlatmak yerine etkin görev durumunu döndürür. Ajan tarafındanık bir ilerleme/durum araması istediğinizde `action: "status"` kullanın.
<Accordion title="Eşzamanlı video_generate koruma sınırı">
Oturum destekli bir `video_generate` görevi hâlâ etkinken, araç aynı zamanda bir koruma sınırı gibi davranır: aynı oturumdaki yinelenen `video_generate` çağrıları, ikinci bir eşzamanlı üretim başlatmak yerine etkin görev durumunu döndürür. Ajan tarafında açık bir ilerleme/durum araması istediğinizde `action: "status"` kullanın.
</Accordion>
<Accordion title="Görev oluşturmayanlar">
- Heartbeat dönüşleri — ana oturum; bkz. [Heartbeat](/tr/gateway/heartbeat)
- Normal etkileşimli sohbet dönüşleri
<Accordion title="Neler görev oluşturmaz?">
- Heartbeat turları; ana oturum, bkz. [Heartbeat](/tr/gateway/heartbeat)
- Normal etkileşimli sohbet turları
- Doğrudan `/command` yanıtları
</Accordion>
@ -133,52 +133,52 @@ stateDiagram-v2
running --> lost : session gone > 5 min
```
| Durum | Anlamı |
| Durum | Anlamı |
| ----------- | -------------------------------------------------------------------------- |
| `queued` | Oluşturuldu, ajanın başlamasını bekliyor |
| `running` | Ajan dönüşü etkin olarak yürütülüyor |
| `succeeded` | Başarıyla tamamlandı |
| `failed` | Bir hatayla tamamlandı |
| `timed_out` | Yapılandırılan zaman aşımını aştı |
| `cancelled` | Operatör tarafından `openclaw tasks cancel` ile durduruldu |
| `queued` | Oluşturuldu, ajanın başlaması bekleniyor |
| `running` | Ajan turu etkin olarak yürütülüyor |
| `succeeded` | Başarıyla tamamlandı |
| `failed` | Bir hatayla tamamlandı |
| `timed_out` | Yapılandırılan zaman aşımııldı |
| `cancelled` | Operatör tarafından `openclaw tasks cancel` ile durduruldu |
| `lost` | Çalışma zamanı, 5 dakikalık ek süreden sonra yetkili destek durumunu kaybetti |
Geçişler otomatik olarak gerçekleşir — ilişkili ajan çalıştırması bittiğinde görev durumu buna uyacak şekilde güncellenir.
Geçişler otomatik olarak gerçekleşir; ilişkili ajan çalıştırması sona erdiğinde görev durumu buna uyacak şekilde güncellenir.
Ajan çalıştırmasının tamamlanması etkin görev kayıtları için yetkilidir. Başarılı bir ayrık çalıştırma `succeeded` olarak sonlandırılır, sıradan çalıştırma hataları `failed` olarak sonlandırılır ve zaman aşımı veya iptal sonuçları `timed_out` olarak sonlandırılır. Bir operatör görevi zaten iptal etmişse veya çalışma zamanı `failed`, `timed_out` ya da `lost` gibi daha güçlü bir terminal durumu zaten kaydetmişse, daha sonraki bir başarı sinyali bu terminal durumunu düşürmez.
Ajan çalıştırmasının tamamlanması, etkin görev kayıtları için yetkilidir. Başarılı bir ayrılmış çalıştırma `succeeded` olarak sonlanır, olağan çalıştırma hataları `failed` olarak sonlanır ve zaman aşımı veya iptal sonuçları `timed_out` olarak sonlanır. Bir operatör görevi zaten iptal ettiyse veya çalışma zamanı `failed`, `timed_out` ya da `lost` gibi daha güçlü bir terminal durumu zaten kaydettiyse, daha sonraki bir başarı sinyali bu terminal durumunu düşürmez.
`lost` çalışma zamanı bilincine sahiptir:
`lost` çalışma zamanının farkındadır:
- ACP görevleri: destekleyen ACP alt oturum meta verileri kayboldu.
- Alt ajan görevleri: destekleyen alt oturum hedef ajan deposundan kayboldu.
- Cron görevleri: cron çalışma zamanı işi artık etkin olarak izlemiyor ve dayanıklı cron çalıştırma geçmişi bu çalıştırma için terminal sonuç göstermiyor. Çevrimdışı CLI denetimi, kendi boş süreç içi cron çalışma zamanı durumunu yetkili kabul etmez.
- CLI görevleri: yalıtılmış alt oturum görevleri alt 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ı canlı tutmaz. Gateway destekli `openclaw agent` çalıştırmaları da çalıştırma sonucundan sonlandırılır, bu yüzden tamamlanmış çalıştırmalar süpürücü onları `lost` olarak işaretleyene kadar etkin kalmaz.
- Cron görevleri: cron çalışma zamanı artık işi etkin olarak izlemiyor ve kalıcı cron çalıştırma geçmişi o çalıştırma için terminal bir sonuç göstermiyor. Çevrimdışı CLI denetimi, kendi boş süreç içi cron çalışma zamanı durumunu yetkili kabul etmez.
- CLI görevleri: yalıtılmış alt oturum görevleri alt oturumu kullanır; sohbet destekli CLI görevleri bunun yerine canlı çalıştırma bağlamını kullanır, bu nedenle kalan kanal/grup/doğrudan oturum satırları onları canlı tutmaz. Gateway destekli `openclaw agent` çalıştırmaları da çalıştırma sonuçlarından sonlanır, bu nedenle tamamlanmış çalıştırmalar süpürücü onları `lost` olarak işaretleyene kadar etkin kalmaz.
## Teslim ve bildirimler
Bir görev terminal duruma ulaştığında OpenClaw sizi bilgilendirir. İki teslim yolu vardır:
**Doğrudan teslim** — görevde bir kanal hedefi varsa (`requesterOrigin`), tamamlama mesajı doğrudan o kanala gider (Telegram, Discord, Slack vb.). Alt ajan tamamlanmaları için OpenClaw, varsa bağlı iş parçacığı/konu yönlendirmesini de korur ve doğrudan teslimden vazgeçmeden önce eksik `to` / hesabını, istekte bulunan oturumun saklanan rotasından (`lastChannel` / `lastTo` / `lastAccountId`) doldurabilir.
**Doğrudan teslim** — görevin bir kanal hedefi varsa (`requesterOrigin`), tamamlanma mesajı doğrudan o kanala gider (Telegram, Discord, Slack vb.). Alt ajan tamamlanmaları için OpenClaw, varsa bağlı iş parçacığı/konu yönlendirmesini de korur ve doğrudan teslimden vazgeçmeden önce eksik bir `to` / hesabı, istekte bulunan oturumun depolanan rotasından (`lastChannel` / `lastTo` / `lastAccountId`) doldurabilir.
**Oturum kuyruğuna alınan 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.
**Oturum kuyruğuna alınan 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 tamamlanması, sonucu hızlıca görmeniz için anında bir heartbeat uyandırması tetikler — bir sonraki zamanlanmış heartbeat tikini beklemeniz gerekmez.
Görev tamamlanması 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.
</Tip>
Bu, olağan iş akışının push tabanlı olduğu anlamına gelir: ayrık işi bir kez başlatın, sonra ç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.
Bu, olağan iş akışının push tabanlı olduğu anlamına gelir: ayrılmış işi bir kez başlatın, ardından çalışma zamanının tamamlanma sırası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
### Bildirim politikaları
Her görev hakkında ne kadar duyacağınızı denetleyin:
| İlke | Teslim edilenler |
| --------------------- | ----------------------------------------------------------------------- |
| Politika | Teslim edilenler |
| --------------------- | --------------------------------------------------------------------- |
| `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 |
| `state_changes` | Her durum geçişi ve ilerleme güncellemesi |
| `silent` | Hiçbir şey |
Bir görev çalışırken ilkeyi değiştirin:
Bir görev çalışırken politikayı değiştirin:
```bash
openclaw tasks notify <lookup> state_changes
@ -192,7 +192,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, Teslim, Çalıştırma Kimliği, Alt Oturum, Özet.
Çıktı sütunları: Görev ID'si, Tür, Durum, Teslim, Çalıştırma ID'si, Alt Oturum, Özet.
</Accordion>
<Accordion title="tasks show">
@ -200,7 +200,7 @@ openclaw tasks notify <lookup> state_changes
openclaw tasks show <lookup>
```
Arama belirteci bir görev kimliği, çalıştırma kimliği veya oturum anahtarı kabul eder. Zamanlama, teslim durumu, hata ve terminal özeti dahil tam kaydı gösterir.
Arama belirteci bir görev ID'si, çalıştırma ID'si veya oturum anahtarı kabul eder. Zamanlama, teslim durumu, hata ve terminal özeti dahil tam kaydı gösterir.
</Accordion>
<Accordion title="tasks cancel">
@ -208,7 +208,7 @@ openclaw tasks notify <lookup> state_changes
openclaw tasks cancel <lookup>
```
ACP ve alt ajan görevleri için bu, alt oturumu sonlandırır. CLI tarafından izlenen görevlerde iptal, görev kayıt defterine kaydedilir (ayrı bir alt çalışma zamanı tanıtıcısı yoktur). Durum `cancelled` değerine geçer ve uygulanabilir olduğunda bir teslim bildirimi gönderilir.
ACP ve alt ajan görevleri için bu, alt oturumu sonlandırır. CLI ile izlenen görevler için iptal, görev kayıt defterine kaydedilir (ayrı bir alt çalışma zamanı tanıtıcısı yoktur). Durum `cancelled` olarak değişir ve uygulanabilir olduğunda bir teslim bildirimi gönderilir.
</Accordion>
<Accordion title="tasks notify">
@ -221,50 +221,50 @@ openclaw tasks notify <lookup> state_changes
openclaw tasks audit [--json]
```
Operasyonel sorunları ortaya çıkarır. Bulgular, sorunlar algılandığında `openclaw status` içinde de görünür.
Operasyonel sorunları ortaya çıkarır. Sorunlar algılandığında bulgular `openclaw status` içinde de görünür.
| Bulgular | Önem | Tetikleyici |
| ------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------ |
| `stale_queued` | uyarı | 10 dakikadan uzun süredir kuyruğa alınmış |
| `stale_running` | hata | 30 dakikadan uzun süredir çalışıyor |
| Bulgular | Önem | Tetikleyici |
| ------------------------- | -------- | ------------------------------------------------------------------------------------------------------------- |
| `stale_queued` | uyarı | 10 dakikadan uzun süredir kuyrukta |
| `stale_running` | hata | 30 dakikadan uzun süredir çalışıyor |
| `lost` | uyarı/hata | Çalışma zamanı destekli görev sahipliği kayboldu; tutulan kayıp görevler `cleanupAfter` zamanına kadar uyarı verir, sonra hataya dönüşür |
| `delivery_failed` | uyarı | Teslim başarısız oldu ve bildirim ilkesi `silent` değil |
| `missing_cleanup` | uyarı | Temizleme zaman damgası olmayan terminal görev |
| `inconsistent_timestamps` | uyarı | Zaman çizelgesi ihlali (örneğin başlamadan önce bitmiş) |
| `delivery_failed` | uyarı | Teslimat başarısız oldu ve bildirim ilkesi `silent` değil |
| `missing_cleanup` | uyarı | Temizleme zaman damgası olmayan terminal görev |
| `inconsistent_timestamps` | uyarı | Zaman çizelgesi ihlali (örneğin başlamadan önce bitmiş) |
</Accordion>
<Accordion title="görev bakımı">
<Accordion title="tasks maintenance">
```bash
openclaw tasks maintenance [--json]
openclaw tasks maintenance --apply [--json]
```
Bunu görevler ve Task Flow durumu için uzlaştırma, temizleme damgalama ve budamayı önizlemek veya uygulamak üzere kullanın.
Bunu görevler ve Görev Akışı durumu için uzlaştırma, temizleme damgalama ve budamayı önizlemek veya uygulamak için kullanın.
Uzlaştırma çalışma zamanı farkındadır:
Uzlaştırma çalışma zamanının farkındadır:
- ACP/alt ajan görevleri, destekleyen alt oturumlarını denetler.
- Alt oturumunda yeniden başlatma-kurtarma mezar taşı bulunan alt ajan görevleri, kurtarılabilir destek oturumları olarak ele alınmak yerine kayıp olarak işaretlenir.
- Cron görevleri, cron çalışma zamanının işi hâlâ sahiplenip sahiplenmediğini denetler, ardından `lost` durumuna düşmeden önce kalıcı cron çalıştırma günlüklerinden/iş durumundan terminal durumunu kurtarır. Bellek içi cron etkin iş kümesi için yalnızca Gateway süreci yetkilidir; çevrimdışı CLI denetimi kalıcı geçmişi kullanır ancak yalnızca yerel Set boş olduğu için bir cron görevini kayıp olarak işaretlemez.
- ACP/alt aracı görevleri, bunları destekleyen alt oturumu denetler.
- Alt oturumu yeniden başlatma-kurtarma mezar taşına sahip olan alt aracı görevleri, kurtarılabilir destek oturumları olarak ele alınmak yerine kayıp olarak işaretlenir.
- Cron görevleri, cron çalışma zamanının işi hâlâ sahiplenip sahiplenmediğini denetler, ardından `lost` durumuna düşmeden önce kalıcı cron çalıştırma günlüklerinden/iş durumundan terminal durumunu kurtarır. Bellek içi cron etkin iş kümesi için yalnızca Gateway süreci yetkilidir; çevrimdışı CLI denetimi dayanıklı geçmişi kullanır ancak yalnızca bu yerel Set boş olduğu için bir cron görevini kayıp olarak işaretlemez.
- Sohbet destekli CLI görevleri, yalnızca sohbet oturumu satırını değil, sahip olan canlı çalıştırma bağlamını denetler.
Tamamlanma temizliği de çalışma zamanı farkındadır:
Tamamlanma temizliği de çalışma zamanının farkındadır:
- Alt ajan 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 sonlandırı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 alt alt ajan takip işleminin bitmesini bekler ve bunu duyurmak yerine bayat üst onay metnini bastırır.
- Alt ajan tamamlanma teslimi en son görünür asistan metnini tercih eder; bu boşsa temizlenmiş en son araç/toolResult metnine geri döner ve yalnızca zaman aşımına uğramış araç çağrısı çalıştırmaları kısa bir kısmi ilerleme özetine daraltılabilir. Terminal başarısız çalıştırmalar, yakalanan yanıt metnini yeniden oynatmadan başarısızlık durumunu duyurur.
- Temizleme hataları gerçek görev sonucunu maskelemez.
- 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 teslimatı, gerektiğinde alt aracı takip işlemlerini bekler ve duyurmak yerine bayat üst onay metnini bastırır.
- Alt aracı tamamlanma teslimatı, en son görünür asistan metnini tercih eder; bu boşsa temizlenmiş en son tool/toolResult metnine geri döner ve yalnızca zaman aşımına uğramış araç çağrısı çalıştırmaları kısa bir kısmi ilerleme özetine indirgenebilir. Terminal başarısız çalıştırmalar, yakalanan yanıt metnini yeniden oynatmadan başarısızlık durumunu duyurur.
- Temizleme hataları gerçek görev sonucunu gizlemez.
</Accordion>
<Accordion title="görev akışı listele | göster | iptal et">
<Accordion title="tasks flow list | show | cancel">
```bash
openclaw tasks flow list [--status <status>] [--json]
openclaw tasks flow show <lookup> [--json]
openclaw tasks flow cancel <lookup>
```
Tek bir arka plan görev kaydından ziyade düzenleyici Task Flow ile ilgilendiğinizde bunları kullanın.
Tek bir arka plan görev kaydı yerine düzenleyici Görev Akışı ile ilgileniyorsanız bunları kullanın.
</Accordion>
</AccordionGroup>
@ -273,13 +273,13 @@ openclaw tasks notify <lookup> state_changes
Bu 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 ya da hata ayrıntısıyla gösterir.
Geçerli oturumda görünür bağlı görev olmadığında, `/tasks` ajan yerel görev sayılarına geri döner; böylece diğer oturumların ayrıntılarını sızdırmadan yine de bir genel bakış elde edersiniz.
Geçerli oturumda görünür bağ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 bir genel bakış alırsınız.
Tam operatör defteri için CLI kullanın: `openclaw tasks list`.
## Durum entegrasyonu (görev baskısı)
`openclaw status`, tek bakışta anlaşılır bir görev özeti içerir:
`openclaw status`, hızlı bakışlık bir görev özeti içerir:
```
Tasks: 3 queued · 2 running · 1 issues
@ -291,37 +291,37 @@ 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ığı olan bir görev anlık görüntüsü kullanır: etkin görevler tercih edilir, bayat tamamlanmış satırlar gizlenir ve son hatalar yalnızca etkin iş 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ıklı bir görev anlık görüntüsü kullanır: etkin görevler tercih edilir, bayat tamamlanmış satırlar gizlenir ve son başarısızlıklar yalnızca etkin iş kalmadığında yüzeye çıkar. Bu, durum kartının şu anda önemli olana odaklanmasını sağlar.
## Depolama ve bakım
### Görevlerin bulunduğu yer
### Görevler nerede bulunur
Görev kayıtları SQLite içinde şurada kalıcı tutulur:
Görev kayıtları SQLite içinde kalıcıdır:
```
$OPENCLAW_STATE_DIR/tasks/runs.sqlite
```
Kayıt defteri, Gateway başlangıcında belleğe yüklenir ve yeniden başlatmalar arasında dayanıklılık için yazmaları SQLite ile eşitler.
Gateway, SQLite'ın varsayılan otomatik checkpoint eşiğini ve periyodik ve kapanış `TRUNCATE` checkpoint'lerini kullanarak SQLite write-ahead log'unu sınırda tutar.
Kayıt defteri Gateway başlangıcında belleğe yüklenir ve yeniden başlatmalar arasında dayanıklılık için yazmaları SQLite ile eşitler.
Gateway, SQLite'ın varsayılan otomatik denetim noktası eşiğini ve periyodik ile kapatma zamanı `TRUNCATE` denetim noktalarını kullanarak SQLite write-ahead log'unu sınırlı tutar.
### Otomatik bakım
Bir süpürücü her **60 saniyede** çalışır ve dört şeyi ele alır:
Bir süpürücü her **60 saniyede** bir çalışır ve dört şeyi ele alır:
<Steps>
<Step title="Uzlaştırma">
Etkin görevlerin hâlâ yetkili çalışma zamanı desteğine sahip olup olmadığını denetler. ACP/alt ajan görevleri alt oturum durumunu, cron görevleri etkin iş sahipliğini ve sohbet destekli CLI görevleri sahip olan çalıştırma bağlamını kullanır. Bu destek durumu 5 dakikadan uzun süre kayıpsa, görev `lost` olarak işaretlenir.
<Step title="Reconciliation">
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 ve sohbet destekli CLI görevleri 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.
</Step>
<Step title="ACP oturum onarımı">
Terminal veya sahipsiz üst sahipli tek seferlik ACP oturumlarını kapatır ve bayat terminal veya sahipsiz kalıcı ACP oturumlarını yalnızca etkin konuşma bağlaması kalmadığında kapatır.
<Step title="ACP session repair">
Terminal veya yetim üst sahipli tek kullanımlık ACP oturumlarını kapatır ve bayat terminal ya da yetim kalıcı ACP oturumlarını yalnızca etkin konuşma bağı kalmadığında kapatır.
</Step>
<Step title="Temizleme damgalama">
Terminal görevlerde bir `cleanupAfter` zaman damgası ayarlar (endedAt + 7 gün). Saklama süresi boyunca kayıp görevler denetimde hâlâ uyarı olarak görünür; `cleanupAfter` süresi dolduktan sonra veya temizleme meta verileri eksik olduğunda hata olurlar.
<Step title="Cleanup stamping">
Terminal görevlere bir `cleanupAfter` zaman damgası ayarlar (endedAt + 7 gün). Saklama sırasında kayıp görevler denetimde hâlâ uyarı olarak görünür; `cleanupAfter` süresi dolduktan sonra veya temizleme meta verileri eksik olduğunda hata olurlar.
</Step>
<Step title="Budama">
`cleanupAfter` tarihini geçen kayıtları siler.
<Step title="Pruning">
`cleanupAfter` tarihini geçmiş kayıtları siler.
</Step>
</Steps>
@ -332,36 +332,36 @@ Bir süpürücü her **60 saniyede** çalışır ve dört şeyi ele alır:
## Görevlerin diğer sistemlerle ilişkisi
<AccordionGroup>
<Accordion title="Görevler ve Task Flow">
[Task Flow](/tr/automation/taskflow), arka plan görevlerinin üzerindeki akış düzenleme katmanıdır. Tek bir akış, yaşam süresi boyunca yönetilen veya yansıtılmış eşitleme modlarını kullanarak birden fazla görevi koordine edebilir. Tek tek görev kayıtlarını incelemek için `openclaw tasks`, düzenleyici akışı incelemek için `openclaw tasks flow` kullanın.
<Accordion title="Tasks and Task Flow">
[Görev Akışı](/tr/automation/taskflow), arka plan görevlerinin üzerindeki akış düzenleme katmanıdır. Tek bir akış, ömrü boyunca yönetilen veya yansıtılmış eşitleme modlarını kullanarak birden çok görevi koordine edebilir. Tek tek görev kayıtlarını incelemek için `openclaw tasks`, düzenleyici akışı incelemek için `openclaw tasks flow` kullanın.
Ayrıntılar için bkz. [Task Flow](/tr/automation/taskflow).
Ayrıntılar için bkz. [Görev Akışı](/tr/automation/taskflow).
</Accordion>
<Accordion title="Görevler ve cron">
Bir cron işi **tanımı** `~/.openclaw/cron/jobs.json` içinde bulunur; çalışma zamanı yürütme durumu bunun 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ış olanlar. Ana oturum cron görevleri, bildirim üretmeden takip edebilmeleri için varsayılan olarak `silent` bildirim ilkesini kullanır.
<Accordion title="Tasks and 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 yalıtılmış olanlar. Ana oturum cron görevleri varsayılan olarak `silent` bildirim ilkesini kullanır; böylece bildirim oluşturmadan izlenirler.
Bkz. [Cron İşleri](/tr/automation/cron-jobs).
</Accordion>
<Accordion title="Görevler ve Heartbeat">
Heartbeat çalıştırmaları ana oturum turlarıdır; görev kayıtları oluşturmazlar. Bir görev tamamlandığında, sonucu hemen görmeniz için bir Heartbeat uyandırması tetikleyebilir.
<Accordion title="Tasks and heartbeat">
Heartbeat çalıştırmaları ana oturum turlarıdır — görev kaydı oluşturmazlar. Bir görev tamamlandığında, sonucu hemen görmeniz için bir heartbeat uyandırmasını tetikleyebilir.
Bkz. [Heartbeat](/tr/gateway/heartbeat).
</Accordion>
<Accordion title="Görevler ve oturumlar">
Bir görev bir `childSessionKey` (işin çalıştığı yer) ve bir `requesterSessionKey` (onu başlatan kişi) referans gösterebilir. Oturumlar konuşma bağlamıdır; görevler bunun üzerinde etkinlik takibidir.
<Accordion title="Tasks and sessions">
Bir görev bir `childSessionKey` (işin çalıştığı yer) ve bir `requesterSessionKey` (onu başlatan kişi) başvurusu içerebilir. Oturumlar konuşma bağlamıdır; görevler bunun üzerindeki etkinlik takibidir.
</Accordion>
<Accordion title="Görevler ve ajan ç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.
<Accordion title="Tasks and agent runs">
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şlama, bitiş, hata) görev durumunu otomatik olarak günceller — yaşam döngüsünü elle yönetmeniz gerekmez.
</Accordion>
</AccordionGroup>
## İlgili
- [Otomasyon ve Görevler](/tr/automation) — tüm otomasyon mekanizmalarına tek bakışta genel bakış
- [Otomasyon ve Görevler](/tr/automation) — tüm otomasyon mekanizmalarına hızlı bakış
- [CLI: Görevler](/tr/cli/tasks) — CLI komut başvurusu
- [Heartbeat](/tr/gateway/heartbeat) — periyodik ana oturum turları
- [Zamanlanmış Görevler](/tr/automation/cron-jobs) — arka plan işini zamanlama
- [Task Flow](/tr/automation/taskflow) — görevlerin üzerindeki akış düzenlemesi
- [Görev Akışı](/tr/automation/taskflow) — görevlerin üzerindeki akış düzenleme

View File

@ -4,46 +4,46 @@ read_when:
- Webhook eşleştirmesinde sorun giderme
- macOS'ta iMessage'ı yapılandırma
sidebarTitle: BlueBubbles
summary: BlueBubbles macOS sunucusu üzerinden iMessage (REST gönderme/alma, yazma durumu, tepkiler, eşleştirme, gelişmiş eylemler).
summary: BlueBubbles macOS sunucusu üzerinden iMessage (REST gönderme/alma, yazıyor göstergesi, tepkiler, eşleştirme, gelişmiş eylemler).
title: BlueBubbles
x-i18n:
generated_at: "2026-04-30T09:05:17Z"
generated_at: "2026-05-01T08:58:40Z"
model: gpt-5.5
provider: openai
source_hash: 7a77b248ed86eb4114f8b7f1fc6bd4cea004d65095a0439a4a8c814bc180082c
source_hash: 499cc2a46db6e0eddfb897e96ec4b3e4a39ba9f2f6da8e7485c1c46562de4145
source_path: channels/bluebubbles.md
workflow: 16
---
Durum: BlueBubbles macOS sunucusuyla HTTP üzerinden konuşan paketlenmiş plugin. Eski imsg kanalına kıyasla daha zengin API'si ve daha kolay kurulumu nedeniyle **iMessage entegrasyonu için önerilir**.
Durum: HTTP üzerinden BlueBubbles macOS sunucusuyla konuşan paketli plugin. Eski imsg kanalına kıyasla daha zengin API'si ve daha kolay kurulumu nedeniyle **iMessage entegrasyonu için önerilir**.
<Note>
Geçerli OpenClaw sürümleri BlueBubbles'ı paketler, bu nedenle normal paketlenmiş derlemelerde ayrı bir `openclaw plugins install` adımı gerekmez.
Geçerli OpenClaw sürümleri BlueBubbles'ı paketle birlikte sunar, bu yüzden normal paketlenmiş derlemeler ayrı bir `openclaw plugins install` adımına ihtiyaç duymaz.
</Note>
## Genel Bakış
- BlueBubbles yardımcı uygulaması ([bluebubbles.app](https://bluebubbles.app)) aracılığıyla macOS üzerinde çalışır.
- Önerilen/test edilen: macOS Sequoia (15). macOS Tahoe (26) çalışır; düzenleme şu anda Tahoe'da bozuk ve grup simgesi güncellemeleri başarı bildirebilir ancak eşitlenmeyebilir.
- OpenClaw onunla REST API'si (`GET /api/v1/ping`, `POST /message/text`, `POST /chat/:id/*`) üzerinden konuşur.
- macOS üzerinde BlueBubbles yardımcı uygulamasıyla çalışır ([bluebubbles.app](https://bluebubbles.app)).
- Önerilen/test edilen: macOS Sequoia (15). macOS Tahoe (26) çalışır; düzenleme şu anda Tahoe'da bozuktur ve grup simgesi güncellemeleri başarılı bildirilebilir ancak eşitlenmeyebilir.
- OpenClaw onunla REST API'si üzerinden konuşur (`GET /api/v1/ping`, `POST /message/text`, `POST /chat/:id/*`).
- Gelen mesajlar webhooks aracılığıyla gelir; giden yanıtlar, yazıyor göstergeleri, okundu bilgileri ve tapback'ler REST çağrılarıdır.
- Ekler ve çıkartmalar gelen medya olarak alınır (ve mümkün olduğunda aracıya sunulur).
- MP3 veya CAF ses sentezleyen otomatik TTS yanıtları, düz dosya ekleri yerine iMessage sesli not baloncukları olarak iletilir.
- Eşleme/izin listesi, diğer kanallarla aynı şekilde (`/channels/pairing` vb.) `channels.bluebubbles.allowFrom` + eşleme kodlarıyla çalışır.
- Tepkiler Slack/Telegram ile aynı şekilde sistem olayları olarak sunulur, böylece aracılar yanıtlamadan önce bunlardan "bahsedebilir".
- Gelişmiş özellikler: düzenleme, göndermeyi geri alma, yanıt iş parçacığı, mesaj efektleri, grup yönetimi.
- Ekler ve çıkartmalar gelen medya olarak alınır (ve mümkün olduğunda aracıya gösterilir).
- MP3 veya CAF ses sentezleyen otomatik TTS yanıtları, düz dosya ekleri yerine iMessage sesli not balonları olarak teslim edilir.
- Eşleştirme/izin listesi diğer kanallarla aynı şekilde çalışır (`/channels/pairing` vb.) ve `channels.bluebubbles.allowFrom` + eşleştirme kodlarını kullanır.
- Tepkiler, tıpkı Slack/Telegram'da olduğu gibi sistem olayları olarak gösterilir, böylece aracılar yanıtlamadan önce bunlardan "bahsedebilir".
- Gelişmiş özellikler: düzenleme, göndermeyi geri alma, yanıt zincirleme, mesaj efektleri, grup yönetimi.
## Hızlı başlangıç
<Steps>
<Step title="BlueBubbles'ı yükle">
BlueBubbles sunucusunu Mac'inize yükleyin ([bluebubbles.app/install](https://bluebubbles.app/install) adresindeki talimatları izleyin).
<Step title="Install BlueBubbles">
BlueBubbles sunucusunu Mac'inize kurun ([bluebubbles.app/install](https://bluebubbles.app/install) adresindeki yönergeleri izleyin).
</Step>
<Step title="Web API'yi etkinleştir">
BlueBubbles yapılandırmasında web API'yi etkinleştirin ve bir parola ayarlayın.
<Step title="Enable the web API">
BlueBubbles yapılandırmasında web API'sini etkinleştirin ve bir parola ayarlayın.
</Step>
<Step title="OpenClaw'ı yapılandır">
`openclaw onboard` çalıştırıp BlueBubbles'ı seçin veya elle yapılandırın:
<Step title="Configure OpenClaw">
`openclaw onboard` komutunu çalıştırıp BlueBubbles'ı seçin veya elle yapılandırın:
```json5
{
@ -59,11 +59,11 @@ Geçerli OpenClaw sürümleri BlueBubbles'ı paketler, bu nedenle normal paketle
```
</Step>
<Step title="Webhook'ları gateway'e yönlendir">
BlueBubbles webhook'larını gateway'inize yönlendirin (örnek: `https://your-gateway-host:3000/bluebubbles-webhook?password=<password>`).
<Step title="Point webhooks at the gateway">
BlueBubbles webhooks hedefini Gateway'inize yönlendirin (örnek: `https://your-gateway-host:3000/bluebubbles-webhook?password=<password>`).
</Step>
<Step title="Gateway'i başlat">
Gateway'i başlatın; webhook işleyicisini kaydeder ve eşlemeyi başlatır.
<Step title="Start the gateway">
Gateway'i başlatın; webhook işleyicisini kaydeder ve eşleştirmeyi başlatır.
</Step>
</Steps>
@ -71,17 +71,17 @@ Geçerli OpenClaw sürümleri BlueBubbles'ı paketler, bu nedenle normal paketle
**Güvenlik**
- Her zaman bir webhook parolası ayarlayın.
- Webhook kimlik doğrulaması her zaman gereklidir. OpenClaw, döngü/proxy topolojisinden bağımsız olarak, `channels.bluebubbles.password` ile eşleşen bir parola/guid içermeyen BlueBubbles webhook isteklerini reddeder (örneğin `?password=<password>` veya `x-password`).
- Webhook kimlik doğrulaması her zaman gereklidir. OpenClaw, local loopback/proxy topolojisinden bağımsız olarak `channels.bluebubbles.password` ile eşleşen bir parola/guid içermedikçe BlueBubbles webhook isteklerini reddeder (örneğin `?password=<password>` veya `x-password`).
- Parola kimlik doğrulaması, tam webhook gövdeleri okunmadan/ayrıştırılmadan önce denetlenir.
</Warning>
## Messages.app'i canlı tutma (VM / başsız kurulumlar)
Bazı macOS VM / her zaman açık kurulumlarda Messages.app "boşta" durumuna geçebilir (uygulama açılana/öne getirilene kadar gelen olaylar durur). Basit bir çözüm, AppleScript + LaunchAgent kullanarak **Messages'ı her 5 dakikada bir yoklamaktır**.
Bazı macOS VM / her zaman açık kurulumlarda Messages.app "boşta" kalabilir (uygulama açılana/ön plana getirilene kadar gelen olaylar durur). Basit bir geçici çözüm, AppleScript + LaunchAgent kullanarak **Messages'ı her 5 dakikada bir dürtmektir**.
<Steps>
<Step title="AppleScript'i kaydet">
<Step title="Save the AppleScript">
Bunu `~/Scripts/poke-messages.scpt` olarak kaydedin:
```applescript
@ -100,7 +100,7 @@ Bazı macOS VM / her zaman açık kurulumlarda Messages.app "boşta" durumuna ge
```
</Step>
<Step title="Bir LaunchAgent yükle">
<Step title="Install a LaunchAgent">
Bunu `~/Library/LaunchAgents/com.user.poke-messages.plist` olarak kaydedin:
```xml
@ -132,10 +132,10 @@ Bazı macOS VM / her zaman açık kurulumlarda Messages.app "boşta" durumuna ge
</plist>
```
Bu, **her 300 saniyede bir** ve **oturum açıldığında** çalışır. İlk çalıştırma macOS **Automation** istemlerini (`osascript` → Messages) tetikleyebilir. Bunları LaunchAgent'ı çalıştıran aynı kullanıcı oturumunda onaylayın.
Bu **her 300 saniyede bir** ve **oturum açıldığında** çalışır. İlk çalıştırma macOS **Automation** istemlerini tetikleyebilir (`osascript` → Messages). Bunları LaunchAgent'ı çalıştıran aynı kullanıcı oturumunda onaylayın.
</Step>
<Step title="Yükle">
<Step title="Load it">
```bash
launchctl unload ~/Library/LaunchAgents/com.user.poke-messages.plist 2>/dev/null || true
launchctl load ~/Library/LaunchAgents/com.user.poke-messages.plist
@ -154,13 +154,13 @@ openclaw onboard
Sihirbaz şunları ister:
<ParamField path="Server URL" type="string" required>
BlueBubbles sunucu adresi (örn. `http://192.168.1.100:1234`).
BlueBubbles sunucu adresi (ör. `http://192.168.1.100:1234`).
</ParamField>
<ParamField path="Password" type="string" required>
BlueBubbles Server ayarlarından API parolası.
</ParamField>
<ParamField path="Webhook path" type="string" default="/bluebubbles-webhook">
Webhook uç noktası yolu.
Webhook uç nokta yolu.
</ParamField>
<ParamField path="DM policy" type="string">
`pairing`, `allowlist`, `open` veya `disabled`.
@ -169,7 +169,7 @@ Sihirbaz şunları ister:
Telefon numaraları, e-postalar veya sohbet hedefleri.
</ParamField>
BlueBubbles'ı CLI aracılığıyla da ekleyebilirsiniz:
BlueBubbles'ı CLI üzerinden de ekleyebilirsiniz:
```
openclaw channels add bluebubbles --http-url http://192.168.1.100:1234 --password <password>
@ -178,16 +178,16 @@ openclaw channels add bluebubbles --http-url http://192.168.1.100:1234 --passwor
## Erişim denetimi (DM'ler + gruplar)
<Tabs>
<Tab title="DM'ler">
<Tab title="DMs">
- Varsayılan: `channels.bluebubbles.dmPolicy = "pairing"`.
- Bilinmeyen gönderenler bir eşleme kodu alır; onaylanana kadar mesajlar yok sayılır (kodların süresi 1 saat sonra dolar).
- Bilinmeyen gönderenler bir eşleştirme kodu alır; onaylanana kadar mesajlar yok sayılır (kodlar 1 saat sonra sona erer).
- Şununla onaylayın:
- `openclaw pairing list bluebubbles`
- `openclaw pairing approve bluebubbles <CODE>`
- Eşleme varsayılan token değişimidir. Ayrıntılar: [Eşleme](/tr/channels/pairing)
- Eşleştirme varsayılan token alışverişidir. Ayrıntılar: [Eşleştirme](/tr/channels/pairing)
</Tab>
<Tab title="Gruplar">
<Tab title="Groups">
- `channels.bluebubbles.groupPolicy = open | allowlist | disabled` (varsayılan: `allowlist`).
- `channels.bluebubbles.groupAllowFrom`, `allowlist` ayarlandığında gruplarda kimin tetikleyebileceğini denetler.
@ -196,12 +196,12 @@ openclaw channels add bluebubbles --http-url http://192.168.1.100:1234 --passwor
### Kişi adı zenginleştirme (macOS, isteğe bağlı)
BlueBubbles grup webhook'ları çoğu zaman yalnızca ham katılımcı adreslerini içerir. `GroupMembers` bağlamının bunun yerine yerel kişi adlarını göstermesini istiyorsanız macOS üzerinde yerel Kişiler zenginleştirmesine katılabilirsiniz:
BlueBubbles grup webhooks çoğu zaman yalnızca ham katılımcı adreslerini içerir. `GroupMembers` bağlamının bunun yerine yerel kişi adlarını göstermesini istiyorsanız macOS'ta yerel Kişiler zenginleştirmesine katılabilirsiniz:
- `channels.bluebubbles.enrichGroupParticipantsFromContacts = true` aramayı etkinleştirir. Varsayılan: `false`.
- Aramalar yalnızca grup erişimi, komut yetkilendirmesi ve bahsetme kapısı mesajın geçmesine izin verdikten sonra çalışır.
- Yalnızca adsız telefon katılımcıları zenginleştirilir.
- Yerel eşleşme bulunmadığında ham telefon numaraları yedek olarak kalır.
- Yalnızca adı olmayan telefon katılımcıları zenginleştirilir.
- Yerel eşleşme bulunmadığında ham telefon numaraları geri dönüş olarak kalır.
```json5
{
@ -215,11 +215,11 @@ BlueBubbles grup webhook'ları çoğu zaman yalnızca ham katılımcı adresleri
### Bahsetme kapısı (gruplar)
BlueBubbles, grup sohbetleri için iMessage/WhatsApp davranışıyla eşleşen bahsetme kapısını destekler:
BlueBubbles, iMessage/WhatsApp davranışıyla eşleşen grup sohbetleri için bahsetme kapısını destekler:
- Bahsetmeleri algılamak için `agents.list[].groupChat.mentionPatterns` (veya `messages.groupChat.mentionPatterns`) kullanır.
- Bir grup için `requireMention` etkinleştirildiğinde, aracı yalnızca kendisinden bahsedildiğinde yanıt verir.
- Yetkili gönderenlerden gelen denetim komutları bahsetme kapısını atlar.
- Bir grup için `requireMention` etkinleştirildiğinde aracı yalnızca kendisinden bahsedildiğinde yanıt verir.
- Yetkili gönderenlerden gelen kontrol komutları bahsetme kapısını atlar.
Grup başına yapılandırma:
@ -240,13 +240,13 @@ Grup başına yapılandırma:
### Komut kapısı
- Denetim komutları (örn. `/config`, `/model`) yetkilendirme gerektirir.
- Kontrol komutları (ör. `/config`, `/model`) yetkilendirme gerektirir.
- Komut yetkilendirmesini belirlemek için `allowFrom` ve `groupAllowFrom` kullanır.
- Yetkili gönderenler, gruplarda bahsetmeden bile denetim komutlarını çalıştırabilir.
- Yetkili gönderenler gruplarda bahsetmeden bile kontrol komutlarını çalıştırabilir.
### Grup başına sistem istemi
`channels.bluebubbles.groups.*` altındaki her giriş isteğe bağlı bir `systemPrompt` dizesi kabul eder. Değer, o gruptaki bir mesajı işleyen her turda aracının sistem istemine eklenir; böylece aracı istemlerini düzenlemeden grup başına persona veya davranış kuralları ayarlayabilirsiniz:
`channels.bluebubbles.groups.*` altındaki her giriş isteğe bağlı bir `systemPrompt` dizesi kabul eder. Değer, o gruptaki bir mesajı işleyen her turda aracının sistem istemine eklenir, böylece aracı istemlerini düzenlemeden grup başına persona veya davranış kuralları ayarlayabilirsiniz:
```json5
{
@ -262,11 +262,11 @@ Grup başına yapılandırma:
}
```
Anahtar, BlueBubbles'ın grup için bildirdiği `chatGuid` / `chatIdentifier` / sayısal `chatId` ile eşleşir ve `"*"` joker giriş, tam eşleşmesi olmayan her grup için varsayılan sağlar (`requireMention` ve grup başına araç politikaları tarafından kullanılan aynı kalıp). Tam eşleşmeler her zaman jokerden önceliklidir. DM'ler bu alanı yok sayar; bunun yerine aracı düzeyi veya hesap düzeyi istem özelleştirmesi kullanın.
Anahtar, BlueBubbles'ın grup için bildirdiği `chatGuid` / `chatIdentifier` / sayısal `chatId` değerlerinden hangisiyse onunla eşleşir ve `"*"` joker girişi, tam eşleşmesi olmayan her grup için varsayılan sağlar (`requireMention` ve grup başına araç ilkeleri tarafından kullanılan aynı desen). Tam eşleşmeler her zaman jokerden üstün gelir. DM'ler bu alanı yok sayar; bunun yerine aracı düzeyinde veya hesap düzeyinde istem özelleştirmesi kullanın.
#### Çalışılmış örnek: iş parçacıklı yanıtlar ve tapback tepkileri (Private API)
#### Çalışılmış örnek: zincirlenmiş yanıtlar ve tapback tepkileri (Private API)
BlueBubbles Private API etkinleştirildiğinde gelen mesajlar kısa mesaj kimlikleriyle (örneğin `[[reply_to:5]]`) gelir ve aracı belirli bir mesaja iş parçacığı açmak için `action=reply` veya tapback bırakmak için `action=react` çağırabilir. Grup başına `systemPrompt`, aracının doğru aracı seçmesini sağlamak için güvenilir bir yoldur:
BlueBubbles Private API etkinleştirildiğinde gelen mesajlar kısa mesaj kimlikleriyle gelir (örneğin `[[reply_to:5]]`) ve aracı belirli bir mesaja zincirleme yanıt vermek için `action=reply` veya tapback bırakmak için `action=react` çağırabilir. Grup başına bir `systemPrompt`, aracının doğru aracı seçmesini sağlamanın güvenilir bir yoludur:
```json5
{
@ -290,11 +290,11 @@ BlueBubbles Private API etkinleştirildiğinde gelen mesajlar kısa mesaj kimlik
}
```
Tapback tepkileri ve iş parçacıklı yanıtların ikisi de BlueBubbles Private API gerektirir; temel mekanikler için [Gelişmiş eylemler](#advanced-actions) ve [Mesaj kimlikleri](#message-ids-short-vs-full) bölümlerine bakın.
Tapback tepkileri ve zincirlenmiş yanıtların ikisi de BlueBubbles Private API gerektirir; temel mekanikler için [Gelişmiş eylemler](#advanced-actions) ve [Mesaj kimlikleri](#message-ids-short-vs-full) bölümlerine bakın.
## ACP konuşma bağlamaları
BlueBubbles sohbetleri, taşıma katmanını değiştirmeden kalıcı ACP çalışma alanlarına dönüştürülebilir.
BlueBubbles sohbetleri, aktarım katmanını değiştirmeden dayanıklı ACP çalışma alanlarına dönüştürülebilir.
Hızlı operatör akışı:
@ -303,11 +303,11 @@ Hızlı operatör akışı:
- `/new` ve `/reset` aynı bağlı ACP oturumunu yerinde sıfırlar.
- `/acp close` ACP oturumunu kapatır ve bağlamayı kaldırır.
Yapılandırılmış kalıcı bağlamalar, `type: "acp"` ve `match.channel: "bluebubbles"` içeren üst düzey `bindings[]` girişleri aracılığıyla da desteklenir.
Yapılandırılmış kalıcı bağlamalar, `type: "acp"` ve `match.channel: "bluebubbles"` içeren üst düzey `bindings[]` girişleri üzerinden de desteklenir.
`match.peer.id` desteklenen herhangi bir BlueBubbles hedef biçimini kullanabilir:
- `+15555550123` veya `user@example.com` gibi normalleştirilmiş DM tanıtıcısı
- `+15555550123` veya `user@example.com` gibi normalize edilmiş DM tanıtıcısı
- `chat_id:<id>`
- `chat_guid:<guid>`
- `chat_identifier:<identifier>`
@ -344,13 +344,13 @@ Kararlı grup bağlamaları için `chat_id:*` veya `chat_identifier:*` tercih ed
}
```
Paylaşılan ACP bağlama davranışı için [ACP Aracıları](/tr/tools/acp-agents) bölümüne bakın.
Paylaşılan ACP bağlama davranışı için [ACP Agents](/tr/tools/acp-agents) bölümüne bakın.
## Yazıyor + okundu bilgileri
## Yazıyor göstergeleri + okundu bilgileri
- **Yazma göstergeleri**: Yanıt oluşturma öncesinde ve sırasında otomatik olarak gönderilir.
- **Yazma göstergeleri**: Yanıt oluşturulmadan önce ve yanıt oluşturma sırasında otomatik olarak gönderilir.
- **Okundu bilgileri**: `channels.bluebubbles.sendReadReceipts` tarafından kontrol edilir (varsayılan: `true`).
- **Yazma göstergeleri**: OpenClaw yazma başlatma olayları gönderir; BlueBubbles, gönderimde veya zaman aşımında yazma durumunu otomatik olarak temizler (DELETE ile elle durdurma güvenilir değildir).
- **Yazma göstergeleri**: OpenClaw yazma başlangıç olayları gönderir; BlueBubbles gönderimde veya zaman aşımında yazmayı otomatik olarak temizler (DELETE ile elle durdurma güvenilir değildir).
```json5
{
@ -390,64 +390,64 @@ BlueBubbles, yapılandırmada etkinleştirildiğinde gelişmiş ileti eylemlerin
<AccordionGroup>
<Accordion title="Kullanılabilir eylemler">
- **react**: Tapback tepkileri ekleyin/kaldırın (`messageId`, `emoji`, `remove`). iMessage'ın yerel tapback kümesi `love`, `like`, `dislike`, `laugh`, `emphasize` ve `question` değerlerinden oluşur. Bir aracı bu kümenin dışında bir emoji seçtiğinde (örneğin `👀`), tepki aracı `love` değerine geri döner; böylece tüm istek başarısız olmak yerine tapback yine de işlenir. Yapılandırılmış onay tepkileri hâlâ katı biçimde doğrulanır ve bilinmeyen değerlerde hata verir.
- **edit**: Gönderilmiş bir iletiyi düzenleyin (`messageId`, `text`).
- **unsend**: Bir iletiyi geri alın (`messageId`).
- **reply**: Belirli bir iletiye yanıt verin (`messageId`, `text`, `to`).
- **sendWithEffect**: iMessage efektiyle gönderin (`text`, `to`, `effectId`).
- **renameGroup**: Bir grup sohbetini yeniden adlandırın (`chatGuid`, `displayName`).
- **setGroupIcon**: Bir grup sohbetinin simgesini/fotoğrafını ayarlayın (`chatGuid`, `media`) — macOS 26 Tahoe üzerinde sorunlu olabilir (API başarı döndürebilir ancak simge eşitlenmeyebilir).
- **addParticipant**: Bir gruba birini ekleyin (`chatGuid`, `address`).
- **removeParticipant**: Bir gruptan birini kaldırın (`chatGuid`, `address`).
- **leaveGroup**: Bir grup sohbetinden ayrılın (`chatGuid`).
- **upload-file**: Medya/dosya gönderin (`to`, `buffer`, `filename`, `asVoice`).
- Sesli notlar: iMessage sesli mesajı olarak göndermek için **MP3** veya **CAF** ses ile `asVoice: true` ayarlayın. BlueBubbles, sesli not gönderirken MP3 → CAF dönüşümü yapar.
- Eski takma ad: `sendAttachment` hâlâ çalışır, ancak kurallı eylem adı `upload-file` değeridir.
- **react**: Tapback tepkileri ekler/kaldırır (`messageId`, `emoji`, `remove`). iMessage'ın yerel tapback kümesi `love`, `like`, `dislike`, `laugh`, `emphasize` ve `question` değerlerinden oluşur. Bir aracı bu kümenin dışında bir emoji seçtiğinde (örneğin `👀`), tepki aracı tüm isteği başarısız kılmak yerine tapback'in yine de işlenmesi için `love` değerine geri döner. Yapılandırılmış ack tepkileri yine de katı biçimde doğrulanır ve bilinmeyen değerlerde hata verir.
- **edit**: Gönderilmiş bir iletiyi düzenler (`messageId`, `text`).
- **unsend**: Bir iletiyi göndermeyi geri alır (`messageId`).
- **reply**: Belirli bir iletiyi yanıtlar (`messageId`, `text`, `to`).
- **sendWithEffect**: iMessage efektiyle gönderir (`text`, `to`, `effectId`).
- **renameGroup**: Bir grup sohbetini yeniden adlandırır (`chatGuid`, `displayName`).
- **setGroupIcon**: Bir grup sohbetinin simgesini/fotoğrafını ayarlar (`chatGuid`, `media`) — macOS 26 Tahoe'da kararsızdır (API başarı döndürebilir ama simge eşitlenmez).
- **addParticipant**: Bir gruba birini ekler (`chatGuid`, `address`).
- **removeParticipant**: Bir gruptan birini kaldırır (`chatGuid`, `address`).
- **leaveGroup**: Bir grup sohbetinden ayrılır (`chatGuid`).
- **upload-file**: Medya/dosya gönderir (`to`, `buffer`, `filename`, `asVoice`).
- Sesli notlar: iMessage sesli iletisi olarak göndermek için **MP3** veya **CAF** sesle `asVoice: true` ayarlayın. BlueBubbles, sesli not gönderirken MP3 → CAF dönüştürür.
- Eski takma ad: `sendAttachment` hâlâ çalışır, ancak kanonik eylem adı `upload-file` değeridir.
</Accordion>
</AccordionGroup>
### İleti kimlikleri (kısa ve tam)
OpenClaw, token tasarrufu için _kısa_ ileti kimlikleri (ör. `1`, `2`) gösterebilir.
OpenClaw, token tasarrufu için _kısa_ ileti kimliklerini (örn. `1`, `2`) gösterebilir.
- `MessageSid` / `ReplyToId` kısa kimlikler olabilir.
- `MessageSidFull` / `ReplyToIdFull`, sağlayıcının tam kimliklerini içerir.
- Kısa kimlikler bellek içindedir; yeniden başlatmada veya önbellek tahliyesinde süresi dolabilir.
- `MessageSidFull` / `ReplyToIdFull` sağlayıcının tam kimliklerini içerir.
- Kısa kimlikler bellekte tutulur; yeniden başlatmada veya önbellek temizliğinde süresi dolabilir.
- Eylemler kısa veya tam `messageId` kabul eder, ancak kısa kimlikler artık kullanılabilir değilse hata verir.
Kalıcı otomasyonlar ve depolama için tam kimlikler kullanın:
Kalıcı otomasyonlar ve depolama için tam kimlikleri kullanın:
- Şablonlar: `{{MessageSidFull}}`, `{{ReplyToIdFull}}`
- Bağlam: gelen yüklerde `MessageSidFull` / `ReplyToIdFull`
Şablon değişkenleri için bkz. [Yapılandırma](/tr/gateway/configuration).
Şablon değişkenleri için [Yapılandırma](/tr/gateway/configuration) bölümüne bakın.
<a id="coalescing-split-send-dms-command--url-in-one-composition"></a>
## Bölünmüş gönderimli DM'leri birleştirme (tek kompozisyonda komut + URL)
Bir kullanıcı iMessage'da bir komutla bir URL'yi birlikte yazdığında — ör. `Dump https://example.com/article` — Apple gönderimi **iki ayrı webhook teslimatına** böler:
Bir kullanıcı iMessage'da bir komutu ve bir URL'yi birlikte yazdığında — örn. `Dump https://example.com/article` — Apple gönderimi **iki ayrı webhook teslimatına** böler:
1. Bir metin iletisi (`"Dump"`).
2. Ek olarak OG önizleme görselleri içeren bir URL önizleme balonu (`"https://..."`).
2. Ek olarak OG önizleme görselleriyle bir URL önizleme balonu (`"https://..."`).
İki webhook, çoğu kurulumda OpenClaw'a yaklaşık 0,8-2,0 sn arayla ulaşır. Birleştirme olmadan aracı 1. turda yalnızca komutu alır, yanıtlar (çoğunlukla "URL'yi gönder") ve URL'yi ancak 2. turda görür — bu noktada komut bağlamı çoktan kaybolmuştur.
İki Webhook, çoğu kurulumda OpenClaw'a yaklaşık 0,8-2,0 sn arayla ulaşır. Birleştirme olmadan aracı 1. turda yalnızca komutu alır, yanıtlar (çoğunlukla "URL'yi gönder") ve URL'yi yalnızca 2. turda görür — bu noktada komut bağlamı zaten kaybolmuştur.
`channels.bluebubbles.coalesceSameSenderDms`, bir DM'yi aynı gönderenin ardışık webhook'larını tek bir aracı turunda birleştirecek şekilde seçime dahil eder. Grup sohbetleri, çok kullanıcılı tur yapısını korumak için ileti başına anahtarlamaya devam eder.
`channels.bluebubbles.coalesceSameSenderDms`, bir DM'yi aynı göndericiden gelen ardışık webhook'ları tek bir aracı turunda birleştirmeye dahil eder. Grup sohbetleri, çok kullanıcılı tur yapısının korunması için ileti başına anahtarlanmaya devam eder.
<Tabs>
<Tab title="Ne zaman etkinleştirilmeli">
Şu durumlarda etkinleştirin:
- Tek iletide `command + payload` bekleyen Skills gönderiyorsanız (dump, paste, save, queue vb.).
- Kullanıcılarınız komutların yanına URL, görsel veya uzun içerik yapıştırıyorsa.
- Kullanıcılarınız komutlarla birlikte URL, görsel veya uzun içerik yapıştırıyorsa.
- Eklenen DM tur gecikmesini kabul edebiliyorsanız (aşağıya bakın).
Şu durumlarda devre dışı bırakın:
- Tek sözcüklü DM tetikleyicileri için en düşük komut gecikmesine ihtiyacınız varsa.
- Tüm akışlarınız takip yükü olmayan tek seferlik komutlarsa.
- Tüm akışlarınız, yük devamı olmayan tek seferlik komutlarsa.
</Tab>
<Tab title="Etkinleştirme">
@ -461,7 +461,7 @@ Bir kullanıcı iMessage'da bir komutla bir URL'yi birlikte yazdığında — ö
}
```
Bayrak açıkken ve açık bir `messages.inbound.byChannel.bluebubbles` yokken, debounce penceresi **2500 ms** değerine genişler (birleştirme olmayan varsayılan 500 ms'dir). Daha geniş pencere gereklidir — Apple'ın 0,8-2,0 sn'lik bölünmüş gönderim ritmi daha dar varsayılan değere sığmaz.
Bayrak açıkken ve açık bir `messages.inbound.byChannel.bluebubbles` yokken debounce penceresi **2500 ms** değerine genişler (birleştirme olmayan varsayılan 500 ms'dir). Daha geniş pencere gereklidir — Apple'ın 0,8-2,0 sn'lik bölünmüş gönderim temposu daha dar varsayılana sığmaz.
Pencereyi kendiniz ayarlamak için:
@ -481,27 +481,27 @@ Bir kullanıcı iMessage'da bir komutla bir URL'yi birlikte yazdığında — ö
</Tab>
<Tab title="Ödünleşimler">
- **DM denetim komutları için ek gecikme.** Bayrak açıkken, DM denetim-komutu iletileri (`Dump`, `Save` vb.) artık bir yük webhook'u gelebilir diye gönderilmeden önce debounce penceresine kadar bekler. Grup sohbeti komutları anında gönderimi korur.
- **Birleştirilmiş çıktı sınırlıdır** — birleştirilmiş metin, açık bir `…[truncated]` işaretiyle 4000 karakterle sınırlanır; ekler 20 ile sınırlanır; kaynak girdileri 10 ile sınırlanır (bunun ötesinde ilk-artı-en-son korunur). Her kaynak `messageId` yine de gelen tekilleştirmeye ulaşır; böylece daha sonra herhangi bir bireysel olayın MessagePoller tarafından yeniden oynatılması yinelenen olarak tanınır.
- **Seçime bağlı, kanal başına.** Diğer kanallar (Telegram, WhatsApp, Slack, …) etkilenmez.
- **DM denetim komutları için ek gecikme.** Bayrak açıkken, DM denetim komutu iletileri (`Dump`, `Save` vb.) artık olası bir yük webhook'u için gönderimden önce debounce penceresine kadar bekler. Grup sohbeti komutları anında gönderimi korur.
- **Birleştirilmiş çıktı sınırlıdır** — birleştirilmiş metin, açık bir `…[truncated]` işaretiyle 4000 karakterde sınırlandırılır; ekler 20 ile sınırlandırılır; kaynak girdileri 10 ile sınırlandırılır (bunun ötesinde ilk-artı-en-son korunur). Her kaynak `messageId` yine de gelen-dedupe katmanına ulaşır; böylece herhangi bir tekil olayın daha sonraki MessagePoller yeniden oynatımı kopya olarak tanınır.
- **İsteğe bağlı, kanal başına.** Diğer kanallar (Telegram, WhatsApp, Slack, …) etkilenmez.
</Tab>
</Tabs>
### Senaryolar ve aracının gördüğü
### Senaryolar ve aracının gördükleri
| Kullanıcının oluşturduğu | Apple'ın teslim ettiği | Bayrak kapalı (varsayılan) | Bayrak açık + 2500 ms pencere |
| ------------------------------------------------------------------ | -------------------------- | ---------------------------------------- | ----------------------------------------------------------------------- |
| `Dump https://example.com` (tek gönderim) | ~1 sn arayla 2 webhook | İki aracı turu: yalnızca "Dump", sonra URL | Bir tur: birleştirilmiş metin `Dump https://example.com` |
| `Save this 📎image.jpg caption` (ek + metin) | 2 webhook | İki tur | Bir tur: metin + görsel |
| `Dump https://example.com` (tek gönderim) | ~1 sn arayla 2 webhook | İki aracı turu: yalnız "Dump", sonra URL | Tek tur: birleştirilmiş metin `Dump https://example.com` |
| `Save this 📎image.jpg caption` (ek + metin) | 2 webhook | İki tur | Tek tur: metin + görsel |
| `/status` (bağımsız komut) | 1 webhook | Anında gönderim | **Pencereye kadar bekle, sonra gönder** |
| Tek başına yapıştırılmış URL | 1 webhook | Anında gönderim | Anında gönderim (kovada yalnızca bir girdi) |
| Metin + URL, dakikalar arayla kasıtlı ayrı iletiler olarak gönderildi | Pencere dışında 2 webhook | İki tur | İki tur (pencere aralarında sona erer) |
| Hızlı akın (>pencere içinde 10 küçük DM) | N webhook | N tur | Bir tur, sınırlı çıktı (ilk + en son, metin/ek sınırları uygulanır) |
| Tek başına yapıştırılan URL | 1 webhook | Anında gönderim | Anında gönderim (kovada yalnızca bir girdi) |
| Dakikalar arayla kasıtlı iki ayrı ileti olarak gönderilen metin + URL | Pencere dışında 2 webhook | İki tur | İki tur (pencere aralarında sona erer) |
| Hızlı taşma (pencere içinde >10 küçük DM) | N webhook | N tur | Tek tur, sınırlı çıktı (ilk + son, metin/ek sınırları uygulanır) |
### Bölünmüş gönderim birleştirme sorun giderme
Bayrak açıksa ve bölünmüş gönderimler hâlâ iki tur olarak geliyorsa her katmanı kontrol edin:
Bayrak açıksa ve bölünmüş gönderimler hâlâ iki tur olarak geliyorsa, her katmanı kontrol edin:
<AccordionGroup>
<Accordion title="Yapılandırma gerçekten yüklendi">
@ -509,7 +509,7 @@ Bayrak açıksa ve bölünmüş gönderimler hâlâ iki tur olarak geliyorsa her
grep coalesceSameSenderDms ~/.openclaw/openclaw.json
```
Ardından `openclaw gateway restart` — bayrak, debouncer kayıt defteri oluşturulurken okunur.
Ardından `openclaw gateway restart` — bayrak, debouncer-registry oluşturulurken okunur.
</Accordion>
<Accordion title="Debounce penceresi kurulumunuz için yeterince geniş">
@ -519,23 +519,23 @@ Bayrak açıksa ve bölünmüş gönderimler hâlâ iki tur olarak geliyorsa her
grep -E "Dispatching event to webhook" main.log | tail -20
```
`"Dump"` tarzı metin gönderimi ile ardından gelen `"https://..."; Attachments:` gönderimi arasındaki boşluğu ölçün. `messages.inbound.byChannel.bluebubbles` değerini bu boşluğu rahatça kapsayacak şekilde artırın.
`"Dump"` tarzı metin gönderimi ile onu izleyen `"https://..."; Attachments:` gönderimi arasındaki boşluğu ölçün. `messages.inbound.byChannel.bluebubbles` değerini bu boşluğu rahatça kapsayacak şekilde artırın.
</Accordion>
<Accordion title="Oturum JSONL zaman damgaları ≠ webhook varışı">
Oturum olayı zaman damgaları (`~/.openclaw/agents/<id>/sessions/*.jsonl`), webhook'un geldiği zamanı **değil**, Gateway'in iletiyi aracıya verdiği zamanı yansıtır. `[Queued messages while agent was busy]` etiketi taşıyan kuyruğa alınmış ikinci ileti, ikinci webhook geldiğinde ilk turun hâlâ çalıştığı anlamına gelir — birleştirme kovası çoktan boşaltılmıştır. Pencereyi oturum günlüğüne göre değil, BB sunucu günlüğüne göre ayarlayın.
Oturum olay zaman damgaları (`~/.openclaw/agents/<id>/sessions/*.jsonl`), webhook'un ne zaman geldiğini değil, Gateway'in bir iletiyi aracıya ne zaman teslim ettiğini yansıtır. `[Queued messages while agent was busy]` etiketli kuyruğa alınmış ikinci ileti, ikinci webhook geldiğinde ilk turun hâlâ çalıştığı anlamına gelir — birleştirme kovası zaten boşaltılmıştı. Pencereyi oturum günlüğüne değil, BB sunucu günlüğüne göre ayarlayın.
</Accordion>
<Accordion title="Bellek baskısı yanıt gönderimini yavaşlatıyor">
Daha küçük makinelerde (8 GB), aracı turları yanıt tamamlanmadan önce birleştirme kovasının boşalmasına yetecek kadar uzun sürebilir ve URL kuyruğa alınmış ikinci tur olarak düşer. `memory_pressure` ve `ps -o rss -p $(pgrep openclaw-gateway)` değerlerini kontrol edin; Gateway ~500 MB RSS değerinin üzerindeyse ve sıkıştırıcı etkinse, diğer ağır süreçleri kapatın veya daha büyük bir ana makineye geçin.
Daha küçük makinelerde (8 GB), aracı turları yeterince uzun sürebilir; bu durumda birleştirme kovası yanıt tamamlanmadan önce boşalır ve URL kuyruğa alınmış ikinci tur olarak düşer. `memory_pressure` ve `ps -o rss -p $(pgrep openclaw-gateway)` değerlerini kontrol edin; Gateway ~500 MB RSS üstündeyse ve sıkıştırıcı etkinse diğer ağır süreçleri kapatın veya daha büyük bir ana makineye geçin.
</Accordion>
<Accordion title="Yanıt-alıntı gönderimleri farklı bir yoldur">
Kullanıcı `Dump` iletisine mevcut bir URL balonuna **yanıt** olarak dokunduysa (iMessage, Dump balonunda "1 Reply" rozeti gösterir), URL ikinci bir webhook'ta değil `replyToBody` içinde yaşar. Birleştirme uygulanmaz — bu bir debouncer meselesi değil, skill/prompt meselesidir.
Kullanıcı `Dump` öğesine var olan bir URL balonuna **yanıt** olarak dokunduysa (iMessage, Dump balonunda "1 Reply" rozeti gösterir), URL ikinci bir webhook'ta değil `replyToBody` içinde yaşar. Birleştirme uygulanmaz — bu bir debouncer konusu değil, skill/prompt konusudur.
</Accordion>
</AccordionGroup>
## Blok akışı
Yanıtların tek bir ileti olarak mı yoksa bloklar halinde akışla mı gönderileceğini kontrol edin:
Yanıtların tek ileti olarak mı yoksa bloklar halinde akışla mı gönderileceğini kontrol edin:
```json5
{
@ -553,13 +553,13 @@ Yanıtların tek bir ileti olarak mı yoksa bloklar halinde akışla mı gönder
- Gelen ve giden medya için medya sınırı `channels.bluebubbles.mediaMaxMb` üzerinden ayarlanır (varsayılan: 8 MB).
- Giden metin `channels.bluebubbles.textChunkLimit` değerine göre parçalara ayrılır (varsayılan: 4000 karakter).
## Yapılandırma başvurusu
## Yapılandırma referansı
Tam yapılandırma: [Yapılandırma](/tr/gateway/configuration)
<AccordionGroup>
<Accordion title="Bağlantı ve webhook">
- `channels.bluebubbles.enabled`: Kanalı etkinleştirin/devre dışı bırakın.
- `channels.bluebubbles.enabled`: Kanalı etkinleştirir/devre dışı bırakır.
- `channels.bluebubbles.serverUrl`: BlueBubbles REST API temel URL'si.
- `channels.bluebubbles.password`: API parolası.
- `channels.bluebubbles.webhookPath`: Webhook uç noktası yolu (varsayılan: `/bluebubbles-webhook`).
@ -567,27 +567,28 @@ Tam yapılandırma: [Yapılandırma](/tr/gateway/configuration)
</Accordion>
<Accordion title="Erişim ilkesi">
- `channels.bluebubbles.dmPolicy`: `pairing | allowlist | open | disabled` (varsayılan: `pairing`).
- `channels.bluebubbles.allowFrom`: DM izin listesi (tanıtıcılar, e-postalar, E.164 numaraları, `chat_id:*`, `chat_guid:*`).
- `channels.bluebubbles.allowFrom`: DM izin listesi (kullanıcı adları, e-postalar, E.164 numaraları, `chat_id:*`, `chat_guid:*`).
- `channels.bluebubbles.groupPolicy`: `open | allowlist | disabled` (varsayılan: `allowlist`).
- `channels.bluebubbles.groupAllowFrom`: Grup gönderen izin listesi.
- `channels.bluebubbles.enrichGroupParticipantsFromContacts`: macOS üzerinde, geçit denetimleri geçtikten sonra yerel Kişiler'den adsız grup katılımcılarını isteğe bağlı olarak zenginleştirin. Varsayılan: `false`.
- `channels.bluebubbles.enrichGroupParticipantsFromContacts`: macOS'ta, geçit denetimleri geçtikten sonra adsız grup katılımcılarını yerel Kişiler'den isteğe bağlı olarak zenginleştirir. Varsayılan: `false`.
- `channels.bluebubbles.groups`: Grup başına yapılandırma (`requireMention` vb.).
</Accordion>
<Accordion title="Teslim ve parçalama">
- `channels.bluebubbles.sendReadReceipts`: Okundu bilgilerini gönder (varsayılan: `true`).
<Accordion title="Teslim ve parçalara ayırma">
- `channels.bluebubbles.sendReadReceipts`: Okundu bilgileri gönder (varsayılan: `true`).
- `channels.bluebubbles.blockStreaming`: Blok akışını etkinleştir (varsayılan: `false`; akışlı yanıtlar için gereklidir).
- `channels.bluebubbles.textChunkLimit`: Giden parça boyutu, karakter cinsinden (varsayılan: 4000).
- `channels.bluebubbles.sendTimeoutMs`: `/api/v1/message/text` üzerinden giden metin gönderimleri için istek başına zaman aşımı, ms cinsinden (varsayılan: 30000). Private API iMessage gönderimlerinin iMessage çatısı içinde 60+ saniye takılabildiği macOS 26 kurulumlarında artırın; örneğin `45000` veya `60000`. Sondalar, sohbet aramaları, tepkiler, düzenlemeler ve sağlık kontrolleri şu anda daha kısa olan 10 sn varsayılanını korur; kapsamın tepkiler ve düzenlemelere genişletilmesi sonraki adım olarak planlanmaktadır. Hesap başına geçersiz kılma: `channels.bluebubbles.accounts.<accountId>.sendTimeoutMs`.
- `channels.bluebubbles.chunkMode`: `length` (varsayılan), yalnızca `textChunkLimit`ıldığında böler; `newline`, uzunluğa göre parçalamadan önce boş satırlarda (paragraf sınırlarında) böler.
- `channels.bluebubbles.textChunkLimit`: Giden parça boyutu karakter cinsinden (varsayılan: 4000).
- `channels.bluebubbles.sendTimeoutMs`: `/api/v1/message/text` üzerinden yapılan giden metin gönderimleri için istek başına zaman aşımı, ms cinsinden (varsayılan: 30000). Private API iMessage gönderimlerinin iMessage framework içinde 60+ saniye takılabildiği macOS 26 kurulumlarında artırın; örneğin `45000` veya `60000`. Problar, sohbet aramaları, tepkiler, düzenlemeler ve sağlık kontrolleri şu anda daha kısa olan 10 sn varsayılanını korur; kapsamın tepkilere ve düzenlemelere genişletilmesi takip işi olarak planlanmıştır. Hesap başına geçersiz kılma: `channels.bluebubbles.accounts.<accountId>.sendTimeoutMs`.
- `channels.bluebubbles.chunkMode`: `length` (varsayılan) yalnızca `textChunkLimit`ıldığında böler; `newline`, uzunluğa göre parçalara ayırmadan önce boş satırlardan (paragraf sınırları) böler.
</Accordion>
<Accordion title="Medya ve geçmiş">
- `channels.bluebubbles.mediaMaxMb`: Gelen/giden medya sınırı, MB cinsinden (varsayılan: 8).
- `channels.bluebubbles.mediaLocalRoots`: Giden yerel medya yolları için izin verilen mutlak yerel dizinlerin açık izin listesi. Bu yapılandırılmadıkça yerel yol gönderimleri varsayılan olarak reddedilir. Hesap başına geçersiz kılma: `channels.bluebubbles.accounts.<accountId>.mediaLocalRoots`.
- `channels.bluebubbles.coalesceSameSenderDms`: Apple'ın metin+URL bölünmüş gönderiminin tek bir mesaj olarak ulaşması için ardışık aynı göndericili DM webhooks olaylarını tek bir ajan turunda birleştirir (varsayılan: `false`). Senaryolar, pencere ayarı ve ödünler için [Bölünmüş gönderimli DM'leri birleştirme](#coalescing-split-send-dms-command--url-in-one-composition) bölümüne bakın. Açık bir `messages.inbound.byChannel.bluebubbles` olmadan etkinleştirildiğinde varsayılan gelen debounce penceresini 500 ms'den 2500 ms'ye genişletir.
- `channels.bluebubbles.coalesceSameSenderDms`: Apple'ın metin+URL ayrı gönderimi tek bir mesaj olarak gelsin diye aynı gönderenden gelen ardışık DM Webhook'larını tek bir ajan turunda birleştirir (varsayılan: `false`). Senaryolar, pencere ayarı ve ödünleşimler için [bölünmüş gönderim DM'lerini birleştirme](#coalescing-split-send-dms-command--url-in-one-composition) bölümüne bakın. Açık bir `messages.inbound.byChannel.bluebubbles` olmadan etkinleştirildiğinde varsayılan gelen debounce penceresini 500 ms'den 2500 ms'ye genişletir.
- `channels.bluebubbles.historyLimit`: Bağlam için en fazla grup mesajı (0 devre dışı bırakır).
- `channels.bluebubbles.dmHistoryLimit`: DM geçmiş sınırı.
- `channels.bluebubbles.replyContextApiFallback`: Gelen bir yanıt `replyToBody`/`replyToSender` olmadan geldiğinde ve bellek içi yanıt bağlamı önbelleğinde isabet olmadığında, en iyi çaba yedek yolu olarak özgün mesajı BlueBubbles HTTP API'den alır (varsayılan: `false`). Tek bir BlueBubbles hesabını paylaşan çok örnekli dağıtımlar, süreç yeniden başlatmaları veya uzun ömürlü TTL/LRU önbellek tahliyeleri sonrasında kullanışlıdır. Alma işlemi, diğer tüm BlueBubbles istemci istekleriyle aynı ilke tarafından SSRF'ye karşı korunur, asla hata fırlatmaz ve sonraki yanıtların maliyetini yaymak için önbelleği doldurur. Hesap başına geçersiz kılma: `channels.bluebubbles.accounts.<accountId>.replyContextApiFallback`. Kanal düzeyi ayar, bayrağı atlayan hesaplara yayılır.
</Accordion>
<Accordion title="Eylemler ve hesaplar">
@ -597,7 +598,7 @@ Tam yapılandırma: [Yapılandırma](/tr/gateway/configuration)
</Accordion>
</AccordionGroup>
İlgili küresel seçenekler:
İlgili genel seçenekler:
- `agents.list[].groupChat.mentionPatterns` (veya `messages.groupChat.mentionPatterns`).
- `messages.responsePrefix`.
@ -609,29 +610,29 @@ Kararlı yönlendirme için `chat_guid` tercih edin:
- `chat_guid:iMessage;-;+15555550123` (gruplar için tercih edilir)
- `chat_id:123`
- `chat_identifier:...`
- Doğrudan handle'lar: `+15555550123`, `user@example.com`
- Doğrudan bir handle'ın mevcut bir DM sohbeti yoksa OpenClaw, `POST /api/v1/chat/new` üzerinden bir tane oluşturur. Bunun için BlueBubbles Private API'nin etkinleştirilmiş olması gerekir.
- Doğrudan tanıtıcılar: `+15555550123`, `user@example.com`
- Bir doğrudan tanıtıcının mevcut bir DM sohbeti yoksa OpenClaw, `POST /api/v1/chat/new` üzerinden bir tane oluşturur. Bunun için BlueBubbles Private API'nin etkinleştirilmiş olması gerekir.
### iMessage ve SMS yönlendirmesi
Aynı handle Mac üzerinde hem bir iMessage hem de bir SMS sohbetine sahip olduğunda (örneğin iMessage'a kayıtlı olup yeşil balon yedekleri de almış bir telefon numarası), OpenClaw iMessage sohbetini tercih eder ve hiçbir zaman sessizce SMS'e düşmez. SMS sohbetini zorlamak için açık bir `sms:` hedef öneki kullanın (örneğin `sms:+15555550123`). Eşleşen bir iMessage sohbeti olmayan handle'lar yine BlueBubbles'ın bildirdiği sohbet üzerinden gönderilir.
Aynı tanıtıcının Mac üzerinde hem iMessage hem de SMS sohbeti olduğunda (örneğin iMessage'a kayıtlı ancak yeşil balon yedekleri de almış bir telefon numarası), OpenClaw iMessage sohbetini tercih eder ve hiçbir zaman sessizce SMS'e düşürmez. SMS sohbetini zorlamak için açık bir `sms:` hedef öneki kullanın (örneğin `sms:+15555550123`). Eşleşen bir iMessage sohbeti olmayan tanıtıcılar, BlueBubbles'ın bildirdiği sohbet üzerinden gönderilmeye devam eder.
## Güvenlik
- Webhook istekleri, `guid`/`password` sorgu parametreleri veya başlıkları `channels.bluebubbles.password` ile karşılaştırılarak doğrulanır.
- API parolasını ve webhook uç noktasını gizli tutun (bunları kimlik bilgileri gibi ele alın).
- BlueBubbles webhook kimlik doğrulaması için localhost atlaması yoktur. Webhook trafiğini proxy'liyorsanız BlueBubbles parolasını istekte uçtan uca koruyun. `gateway.trustedProxies` burada `channels.bluebubbles.password` yerine geçmez. Bkz. [Gateway güvenliği](/tr/gateway/security#reverse-proxy-configuration).
- BlueBubbles sunucusunu LAN dışınaıyorsanız HTTPS + güvenlik duvarı kurallarını etkinleştirin.
- Webhook istekleri, `guid`/`password` sorgu parametreleri veya üstbilgileri `channels.bluebubbles.password` ile karşılaştırılarak doğrulanır.
- API parolasını ve Webhook uç noktasını gizli tutun (bunlara kimlik bilgileri gibi davranın).
- BlueBubbles Webhook kimlik doğrulaması için localhost atlaması yoktur. Webhook trafiğine proxy uyguluyorsanız BlueBubbles parolasını isteğin uçtan uca üzerinde tutun. `gateway.trustedProxies` burada `channels.bluebubbles.password` yerine geçmez. Bkz. [Gateway güvenliği](/tr/gateway/security#reverse-proxy-configuration).
- LAN dışına açıyorsanız BlueBubbles sunucusunda HTTPS + güvenlik duvarı kurallarını etkinleştirin.
## Sorun giderme
- Yazma/okundu etkinlikleri çalışmayı durdurursa BlueBubbles webhook günlüklerini kontrol edin ve gateway yolunun `channels.bluebubbles.webhookPath` ile eşleştiğini doğrulayın.
- Eşleştirme kodlarının süresi bir saat sonra dolar; `openclaw pairing list bluebubbles` ve `openclaw pairing approve bluebubbles <code>` kullanın.
- Yazma/okundu olayları çalışmayı durdurursa BlueBubbles Webhook günlüklerini kontrol edin ve Gateway yolunun `channels.bluebubbles.webhookPath` ile eşleştiğini doğrulayın.
- Eşleme kodları bir saat sonra sona erer; `openclaw pairing list bluebubbles` ve `openclaw pairing approve bluebubbles <code>` kullanın.
- Tepkiler BlueBubbles private API'sini gerektirir (`POST /api/v1/message/react`); sunucu sürümünün bunu sunduğundan emin olun.
- Düzenleme/göndermeyi geri alma için macOS 13+ ve uyumlu bir BlueBubbles sunucu sürümü gerekir. macOS 26'da (Tahoe), private API değişiklikleri nedeniyle düzenleme şu anda bozuktur.
- Grup simgesi güncellemeleri macOS 26'da (Tahoe) kararsız olabilir: API başarı döndürebilir ancak yeni simge eşitlenmeyebilir.
- Grup simgesi güncellemeleri macOS 26'da (Tahoe) kararsız olabilir: API başarı döndürebilir ancak yeni simge eşitlenmez.
- OpenClaw, BlueBubbles sunucusunun macOS sürümüne göre bozuk olduğu bilinen eylemleri otomatik olarak gizler. Düzenleme macOS 26'da (Tahoe) hâlâ görünüyorsa `channels.bluebubbles.actions.edit=false` ile elle devre dışı bırakın.
- `coalesceSameSenderDms` etkin ancak bölünmüş gönderimler (ör. `Dump` + URL) yine de iki tur olarak geliyorsa: [bölünmüş gönderim birleştirme sorun giderme](#split-send-coalescing-troubleshooting) kontrol listesine bakın — yaygın nedenler çok dar debounce penceresi, oturum günlüğü zaman damgalarının webhook varışı olarak yanlış okunması veya yanıt alıntısı gönderimidir (bu, ikinci bir webhook değil `replyToBody` kullanır).
- `coalesceSameSenderDms` etkin ama bölünmüş gönderimler (örn. `Dump` + URL) hâlâ iki tur olarak geliyorsa: [bölünmüş gönderim birleştirme sorun giderme](#split-send-coalescing-troubleshooting) kontrol listesine bakın — yaygın nedenler çok dar debounce penceresi, oturum günlüğü zaman damgalarının Webhook varış zamanı sanılması veya yanıt alıntısı gönderimidir (bu, ikinci bir Webhook değil `replyToBody` kullanır).
- Durum/sağlık bilgisi için: `openclaw status --all` veya `openclaw status --deep`.
Genel kanal iş akışı başvurusu için [Kanallar](/tr/channels) ve [Plugins](/tr/tools/plugin) kılavuzuna bakın.
@ -640,6 +641,6 @@ Genel kanal iş akışı başvurusu için [Kanallar](/tr/channels) ve [Plugins](
- [Kanal Yönlendirme](/tr/channels/channel-routing) — mesajlar için oturum yönlendirmesi
- [Kanallara Genel Bakış](/tr/channels) — desteklenen tüm kanallar
- [Gruplar](/tr/channels/groups) — grup sohbeti davranışı ve bahsetme geçitlemesi
- [Eşleştirme](/tr/channels/pairing) — DM kimlik doğrulaması ve eşleştirme akışı
- [Güvenlik](/tr/gateway/security) — erişim modeli ve sağlamlaştırma
- [Gruplar](/tr/channels/groups) — grup sohbeti davranışı ve bahsetme kapısı
- [Eşleme](/tr/channels/pairing) — DM kimlik doğrulaması ve eşleme akışı
- [Güvenlik](/tr/gateway/security) — erişim modeli ve sıkılaştırma

View File

@ -1,38 +1,38 @@
---
read_when:
- Grup sohbeti davranışını veya etiketleme kısıtlamasını değiştirme
- Grup sohbeti davranışını veya bahsetme denetimini değiştirme
sidebarTitle: Groups
summary: Yüzeyler genelinde grup sohbeti davranışı (Discord/iMessage/Matrix/Microsoft Teams/Signal/Slack/Telegram/WhatsApp/Zalo)
title: Gruplar
x-i18n:
generated_at: "2026-04-30T16:27:46Z"
generated_at: "2026-05-01T08:58:26Z"
model: gpt-5.5
provider: openai
source_hash: ed9cba03cf4546a20d473e8095a54858530869b27f8934f2680e8dbe987dbf5e
source_hash: a8580f98ab03c89770688102da776627d8ce18b7bd34c4a687009fd4aabb6213
source_path: channels/groups.md
workflow: 16
---
OpenClaw grup sohbetlerini yüzeyler genelinde tutarlı şekilde ele alır: Discord, iMessage, Matrix, Microsoft Teams, Signal, Slack, Telegram, WhatsApp, Zalo.
OpenClaw grup sohbetlerini yüzeyler genelinde tutarlı biçimde ele alır: Discord, iMessage, Matrix, Microsoft Teams, Signal, Slack, Telegram, WhatsApp, Zalo.
## Yeni başlayanlar için giriş (2 dakika)
## Başlangıç tanıtımı (2 dakika)
OpenClaw kendi mesajlaşma hesaplarınızda "yaşar". Ayrı bir WhatsApp bot kullanıcısı yoktur. Bir grupta **siz** varsa, OpenClaw o grubu görebilir ve orada yanıt verebilir.
Varsayılan davranış:
- Gruplar kısıtlıdır (`groupPolicy: "allowlist"`).
- ıkça mention geçidini devre dışı bırakmadığınız sürece yanıtlar bir mention gerektirir.
- Yanıtlar, bahsetme kapısınııkça devre dışı bırakmadığınız sürece bir bahsetme gerektirir.
- Gruplarda/kanallarda normal son yanıtlar varsayılan olarak özeldir. Görünür oda çıktısı `message` aracını kullanır.
Çevirisi: allowlist'e alınmış gönderenler, OpenClaw'dan bahsederek onu tetikleyebilir.
Çeviri: izin listesine alınmış gönderenler, OpenClawdan bahsederek onu tetikleyebilir.
<Note>
**Özet**
**Kısa özet**
- **DM erişimi** `*.allowFrom` ile denetlenir.
- **Grup erişimi** `*.groupPolicy` + allowlist'ler (`*.groups`, `*.groupAllowFrom`) ile denetlenir.
- **Yanıt tetikleme** mention geçidi (`requireMention`, `/activation`) ile denetlenir.
- **DM erişimi** `*.allowFrom` ile kontrol edilir.
- **Grup erişimi** `*.groupPolicy` + izin listeleri (`*.groups`, `*.groupAllowFrom`) ile kontrol edilir.
- **Yanıt tetikleme** bahsetme kapısı (`requireMention`, `/activation`) ile kontrol edilir.
</Note>
@ -48,15 +48,18 @@ otherwise -> reply
## Görünür yanıtlar
Grup/kanal odaları için OpenClaw varsayılan olarak `messages.groupChat.visibleReplies: "message_tool"` kullanır.
Bu, aracının yine de dönüşü işlediği ve bellek/oturum durumunu güncelleyebildiği, ancak normal son yanıtının otomatik olarak odaya geri gönderilmediği anlamına gelir. Görünür şekilde konuşmak için aracı `message(action=send)` kullanır.
Bu, ajanın yine de turu işlediği ve bellek/oturum durumunu güncelleyebildiği, ancak normal son yanıtının odaya otomatik olarak geri gönderilmediği anlamına gelir. Görünür biçimde konuşmak için ajan `message(action=send)` kullanır.
Doğrudan sohbetler ve diğer tüm kaynak dönüşleri için aynı yalnızca araçla görünür yanıt davranışını genel olarak uygulamak üzere `messages.visibleReplies: "message_tool"` kullanın. `messages.groupChat.visibleReplies`, grup/kanal odaları için daha özel geçersiz kılma olarak kalır.
Aktif araç ilkesi altında mesaj aracı kullanılamıyorsa OpenClaw, yanıtı sessizce bastırmak yerine otomatik görünür yanıtlara geri döner.
`openclaw doctor` bu uyumsuzluk hakkında uyarır.
Bu, çoğu dinleme modu dönüşünde modeli `NO_REPLY` yanıtı vermeye zorlama şeklindeki eski kalıbın yerini alır. Yalnızca araç modunda görünür hiçbir şey yapmamak, yalnızca message aracını çağırmamak anlamına gelir.
Doğrudan sohbetler ve diğer tüm kaynak turları için, aynı yalnızca araçla görünür yanıt davranışını genel olarak uygulamak üzere `messages.visibleReplies: "message_tool"` kullanın. `messages.groupChat.visibleReplies`, grup/kanal odaları için daha özel geçersiz kılma olarak kalır.
Aracı yalnızca araç modunda çalışırken yazıyor göstergeleri yine gönderilir. Bu dönüşler için varsayılan grup yazıyor modu "message"tan "instant"a yükseltilir, çünkü aracı message aracını çağırıp çağırmayacağına karar vermeden önce normal asistan mesaj metni hiç olmayabilir. Açık yazıyor modu yapılandırması yine önceliklidir.
Bu, çoğu dinleme modu turunda modeli `NO_REPLY` yanıtı vermeye zorlayan eski kalıbın yerini alır. Yalnızca araç modunda görünür hiçbir şey yapmamak, yalnızca mesaj aracını çağırmamak anlamına gelir.
Grup/kanal odaları için eski otomatik son yanıtları geri yüklemek üzere:
Ajan yalnızca araç modunda çalışırken yazıyor göstergeleri yine de gönderilir. Bu turlarda varsayılan grup yazıyor modu "message" değerinden "instant" değerine yükseltilir, çünkü ajan mesaj aracını çağırıp çağırmamaya karar vermeden önce normal asistan mesaj metni hiç olmayabilir. Açık yazıyor modu yapılandırması yine de önceliklidir.
Grup/kanal odaları için eski otomatik son yanıtları geri yüklemek için:
```json5
{
@ -70,7 +73,7 @@ Grup/kanal odaları için eski otomatik son yanıtları geri yüklemek üzere:
Gateway, dosya kaydedildikten sonra `messages` yapılandırmasını sıcak yeniden yükler. Yalnızca dağıtımda dosya izleme veya yapılandırma yeniden yükleme devre dışıysa yeniden başlatın.
Her kaynak sohbet için görünür çıktının message aracından geçmesini zorunlu kılmak üzere:
Her kaynak sohbet için görünür çıktının mesaj aracı üzerinden gitmesini zorunlu kılmak için:
```json5
{
@ -80,70 +83,70 @@ Her kaynak sohbet için görünür çıktının message aracından geçmesini zo
}
```
Yerel slash komutları (Discord, Telegram ve yerel komut desteği olan diğer yüzeyler) `visibleReplies: "message_tool"` ayarını atlar ve kanalın yerel komut arayüzünün beklediği yanıtı alması için her zaman görünür şekilde yanıt verir. Bu yalnızca doğrulanmış yerel komut dönüşleri için geçerlidir; metin olarak yazılmış `/...` komutları ve sıradan sohbet dönüşleri yapılandırılmış grup varsayılanını izlemeye devam eder.
Yerel eğik çizgi komutları (Discord, Telegram ve yerel komut desteği olan diğer yüzeyler) `visibleReplies: "message_tool"` ayarını atlar ve kanalın yerel komut kullanıcı arayüzünün beklediği yanıtı alması için her zaman görünür biçimde yanıt verir. Bu yalnızca doğrulanmış yerel komut turları için geçerlidir; metin olarak yazılan `/...` komutları ve sıradan sohbet turları yine de yapılandırılmış grup varsayılanını izler.
## Bağlam görünürlüğü ve allowlist'ler
## Bağlam görünürlüğü ve izin listeleri
Grup güvenliğinde iki farklı denetim yer alır:
Grup güvenliğinde iki farklı denetim rol oynar:
- **Tetikleme yetkilendirmesi**: aracıyı kim tetikleyebilir (`groupPolicy`, `groups`, `groupAllowFrom`, kanala özgü allowlist'ler).
- **Bağlam görünürlüğü**: modele hangi ek bağlamın enjekte edildiği (yanıt metni, alıntılar, thread geçmişi, yönlendirilmiş metadata).
- **Tetikleme yetkilendirmesi**: ajanı kimlerin tetikleyebileceği (`groupPolicy`, `groups`, `groupAllowFrom`, kanala özgü izin listeleri).
- **Bağlam görünürlüğü**: modele hangi ek bağlamın enjekte edildiği (yanıt metni, alıntılar, iş parçacığı geçmişi, iletilmiş meta veriler).
OpenClaw varsayılan olarak normal sohbet davranışını önceliklendirir ve bağlamı çoğunlukla alındığı şekilde tutar. Bu, allowlist'lerin esas olarak eylemleri kimin tetikleyebileceğine karar verdiği, her alıntılanmış veya geçmiş parçacık için evrensel bir redaksiyon sınırı olmadığı anlamına gelir.
Varsayılan olarak OpenClaw normal sohbet davranışına öncelik verir ve bağlamı çoğunlukla alındığı gibi tutar. Bu, izin listelerinin öncelikle kimin eylemleri tetikleyebileceğine karar verdiği, her alıntılanan veya geçmiş parçacık için evrensel bir redaksiyon sınırı olmadığı anlamına gelir.
<AccordionGroup>
<Accordion title="Geçerli davranış kanala özgüdür">
- Bazı kanallar belirli yollarda ek bağlam için zaten gönderen tabanlı filtreleme uygular (örneğin Slack thread başlatma, Matrix yanıt/thread aramaları).
- Diğer kanallar alıntı/yanıt/yönlendirme bağlamını hâlâ alındığı şekilde geçirir.
<Accordion title="Geçerli davranış kanala özeldir">
- Bazı kanallar, belirli yollarda ek bağlam için gönderici tabanlı filtrelemeyi zaten uygular (örneğin Slack iş parçacığı başlatma, Matrix yanıt/iş parçacığı aramaları).
- Diğer kanallar alıntı/yanıt/iletme bağlamını hâlâ alındığı gibi geçirir.
</Accordion>
<Accordion title="Sertleştirme yönü (planlanan)">
- `contextVisibility: "all"` (varsayılan) geçerli alındığı gibi davranışı korur.
- `contextVisibility: "allowlist"` ek bağlamı allowlist'e alınmış gönderenlerle sınırlar.
- `contextVisibility: "allowlist_quote"`, `allowlist` davranışına ek olarak açık bir alıntı/yanıt istisnasıdır.
<Accordion title="Sertleştirme yönü (planlandı)">
- `contextVisibility: "all"` (varsayılan) mevcut alındığı gibi davranışı korur.
- `contextVisibility: "allowlist"` ek bağlamı izin listesine alınmış gönderenlerle sınırlar.
- `contextVisibility: "allowlist_quote"`, `allowlist` artı bir açık alıntı/yanıt istisnasıdır.
Bu sertleştirme modeli kanallar genelinde tutarlı şekilde uygulanana kadar yüzeye göre farklılıklar bekleyin.
Bu sertleştirme modeli kanallar genelinde tutarlı biçimde uygulanana kadar yüzeye göre farklılıklar bekleyin.
</Accordion>
</AccordionGroup>
![Grup mesajı akışı](/images/groups-flow.svg)
![Grup mesaj akışı](/images/groups-flow.svg)
İstediğiniz şey...
| Hedef | Ayarlanacak değer |
| -------------------------------------------- | ---------------------------------------------------------- |
| Tüm gruplara izin ver ama yalnızca @mention'larda yanıtla | `groups: { "*": { requireMention: true } }` |
| Tüm gruplara izin ver ama yalnızca @bahsetmelerde yanıtla | `groups: { "*": { requireMention: true } }` |
| Tüm grup yanıtlarını devre dışı bırak | `groupPolicy: "disabled"` |
| Yalnızca belirli gruplar | `groups: { "<group-id>": { ... } }` (`"*"` anahtarı yok) |
| Gruplarda yalnızca siz tetikleyebilirsiniz | `groupPolicy: "allowlist"`, `groupAllowFrom: ["+1555..."]` |
| Yalnızca belirli gruplar | `groups: { "<group-id>": { ... } }` (no `"*"` key) |
| Gruplarda yalnızca siz tetikleyebilirsiniz | `groupPolicy: "allowlist"`, `groupAllowFrom: ["+1555..."]` |
## Oturum anahtarları
- Grup oturumları `agent:<agentId>:<channel>:group:<id>` oturum anahtarlarını kullanır (odalar/kanallar `agent:<agentId>:<channel>:channel:<id>` kullanır).
- Telegram forum konuları, her konunun kendi oturumu olması için grup kimliğine `:topic:<threadId>` ekler.
- Doğrudan sohbetler ana oturumu kullanır (veya yapılandırılmışsa gönderen başına).
- Heartbeat'ler grup oturumları için atlanır.
- Doğrudan sohbetler ana oturumu kullanır (veya yapılandırılmışsa gönderen başına oturum).
- Heartbeatler grup oturumları için atlanır.
<a id="pattern-personal-dms-public-groups-single-agent"></a>
## Kalıp: kişisel DM'ler + herkese açık gruplar (tek aracı)
## Kalıp: kişisel DMler + herkese açık gruplar (tek ajan)
Evet — "kişisel" trafiğiniz **DM'ler** ve "herkese açık" trafiğiniz **gruplar** ise bu iyi çalışır.
Evet — "kişisel" trafiğiniz **DMler**, "herkese açık" trafiğiniz ise **gruplar** ise bu iyi çalışır.
Neden: tek aracı modunda DM'ler genellikle **ana** oturum anahtarına (`agent:main:main`) düşerken, gruplar her zaman **ana olmayan** oturum anahtarlarını (`agent:main:<channel>:group:<id>`) kullanır. `mode: "non-main"` ile sandboxing'i etkinleştirirseniz, bu grup oturumları yapılandırılmış sandbox backend'inde çalışırken ana DM oturumunuz host üzerinde kalır. Bir tane seçmezseniz varsayılan backend Docker'dır.
Neden: tek ajan modunda DMler genellikle **ana** oturum anahtarına (`agent:main:main`) düşer, gruplar ise her zaman **ana olmayan** oturum anahtarlarını (`agent:main:<channel>:group:<id>`) kullanır. `mode: "non-main"` ile sandboxing etkinleştirirseniz, bu grup oturumları yapılandırılmış sandbox arka ucunda çalışırken ana DM oturumunuz ana makinede kalır. Birini seçmezseniz varsayılan arka uç Dockerdır.
Bu size tek bir aracı "beyni" (paylaşılan çalışma alanı + bellek), ancak iki yürütme duruşu verir:
Bu size tek bir ajan "beyni" (paylaşılan çalışma alanı + bellek), ancak iki yürütme duruşu verir:
- **DM'ler**: tüm araçlar (host)
- **DMler**: tam araçlar (ana makine)
- **Gruplar**: sandbox + kısıtlı araçlar
<Note>
Gerçekten ayrı çalışma alanlarına/persona'lara ihtiyacınız varsa ("kişisel" ve "herkese açık" asla karışmamalıysa), ikinci bir aracı + bindings kullanın. Bkz. [Çok Aracılı Yönlendirme](/tr/concepts/multi-agent).
Gerçekten ayrı çalışma alanlarına/personalara ihtiyacınız varsa ("kişisel" ve "herkese açık" hiçbir zaman karışmamalıysa), ikinci bir ajan + bağlamalar kullanın. Bkz. [Çoklu Ajan Yönlendirme](/tr/concepts/multi-agent).
</Note>
<Tabs>
<Tab title="Host üzerinde DM'ler, sandbox'a alınmış gruplar">
<Tab title="DMler ana makinede, gruplar sandboxta">
```json5
{
agents: {
@ -167,8 +170,8 @@ Gerçekten ayrı çalışma alanlarına/persona'lara ihtiyacınız varsa ("kişi
}
```
</Tab>
<Tab title="Gruplar yalnızca allowlist'e alınmış bir klasörü görür">
"Host erişimi yok" yerine "gruplar yalnızca X klasörünü görebilir" istiyor musunuz? `workspaceAccess: "none"` değerini koruyun ve sandbox'a yalnızca allowlist'e alınmış yolları bağlayın:
<Tab title="Gruplar yalnızca izin listesine alınmış bir klasörü görür">
"Gruplar ana makine erişimi olmadan" yerine "gruplar yalnızca X klasörünü görebilir" istiyorsanız `workspaceAccess: "none"` değerini koruyun ve yalnızca izin listesine alınmış yolları sandbox içine bağlayın:
```json5
{
@ -196,17 +199,17 @@ Gerçekten ayrı çalışma alanlarına/persona'lara ihtiyacınız varsa ("kişi
İlgili:
- Yapılandırma anahtarları ve varsayılanlar: [Gateway yapılandırması](/tr/gateway/config-agents#agentsdefaultssandbox)
- Bir aracın neden engellendiğini hata ayıklama: [Sandbox vs Araç İlkesi vs Yükseltilmiş](/tr/gateway/sandbox-vs-tool-policy-vs-elevated)
- Bağlama mount ayrıntıları: [Sandboxing](/tr/gateway/sandboxing#custom-bind-mounts)
- Bir aracın neden engellendiğini hata ayıklama: [Sandbox ve Araç İlkesi ve Yükseltilmiş](/tr/gateway/sandbox-vs-tool-policy-vs-elevated)
- Bağlama bağları ayrıntıları: [Sandboxing](/tr/gateway/sandboxing#custom-bind-mounts)
## Görüntüleme etiketleri
## Görünen etiketler
- UI etiketleri kullanılabilir olduğunda `<channel>:<token>` biçiminde biçimlendirilmiş `displayName` kullanır.
- UI etiketleri, varsa `displayName` kullanır ve `<channel>:<token>` olarak biçimlendirilir.
- `#room` odalar/kanallar için ayrılmıştır; grup sohbetleri `g-<slug>` kullanır (küçük harf, boşluklar -> `-`, `#@+._-` koru).
## Grup ilkesi
Grup/oda mesajlarının kanal başına nasıl ele alınacağını denetleyin:
Grup/oda mesajlarının kanal başına nasıl işleneceğini denetleyin:
```json5
{
@ -253,48 +256,48 @@ Grup/oda mesajlarının kanal başına nasıl ele alınacağını denetleyin:
}
```
| İlke | Davranış |
| İlke | Davranış |
| ------------- | ------------------------------------------------------------ |
| `"open"` | Gruplar allowlist'leri atlar; mention geçidi yine geçerlidir. |
| `"open"` | Gruplar izin listelerini atlar; bahsetme kapısı yine de uygulanır. |
| `"disabled"` | Tüm grup mesajlarını tamamen engeller. |
| `"allowlist"` | Yalnızca yapılandırılmış allowlist ile eşleşen gruplara/odalara izin verir. |
| `"allowlist"` | Yalnızca yapılandırılmış izin listesiyle eşleşen gruplara/odalara izin verir. |
<AccordionGroup>
<Accordion title="Kanal başına notlar">
- `groupPolicy`, mention geçidinden ( @mention gerektirir) ayrıdır.
- WhatsApp/Telegram/Signal/iMessage/Microsoft Teams/Zalo: `groupAllowFrom` kullanın (geri dönüş: açık `allowFrom`).
- `groupPolicy`, bahsetme kapısından ayrıdır (bu @bahsetmeler gerektirir).
- WhatsApp/Telegram/Signal/iMessage/Microsoft Teams/Zalo: `groupAllowFrom` kullanın (yedek: açık `allowFrom`).
- Signal: `groupAllowFrom`, gelen Signal grup kimliğiyle veya gönderen telefon/UUID değeriyle eşleşebilir.
- DM eşleştirme onayları (`*-allowFrom` store entries) yalnızca DM erişimi için geçerlidir; grup gönderen yetkilendirmesi grup allowlist'lerine açık kalır.
- Discord: allowlist `channels.discord.guilds.<id>.channels` kullanır.
- Slack: allowlist `channels.slack.channels` kullanır.
- Matrix: allowlist `channels.matrix.groups` kullanır. Oda kimliklerini veya alias'ları tercih edin; katılınmış oda adı araması en iyi çaba yaklaşımıdır ve çözümlenemeyen adlar runtime'da yok sayılır. Gönderenleri kısıtlamak için `channels.matrix.groupAllowFrom` kullanın; oda başına `users` allowlist'leri de desteklenir.
- Grup DM'leri ayrı denetlenir (`channels.discord.dm.*`, `channels.slack.dm.*`).
- Telegram allowlist kullanıcı kimlikleriyle (`"123456789"`, `"telegram:123456789"`, `"tg:123456789"`) veya kullanıcı adlarıyla (`"@alice"` ya da `"alice"`) eşleşebilir; ön ekler büyük/küçük harfe duyarsızdır.
- Varsayılan `groupPolicy: "allowlist"` değeridir; grup allowlist'iniz boşsa grup mesajları engellenir.
- Runtime güvenliği: bir provider bloğu tamamen eksik olduğunda (`channels.<provider>` yoksa), grup ilkesi `channels.defaults.groupPolicy` değerini devralmak yerine kapalı kalma moduna (genellikle `allowlist`) geri döner.
- DM eşleştirme onayları (`*-allowFrom` depo girdileri) yalnızca DM erişimi için geçerlidir; grup gönderen yetkilendirmesi grup izin listelerinde açık kalır.
- Discord: izin listesi `channels.discord.guilds.<id>.channels` kullanır.
- Slack: izin listesi `channels.slack.channels` kullanır.
- Matrix: izin listesi `channels.matrix.groups` kullanır. Oda kimliklerini veya takma adları tercih edin; katılınmış oda adı araması en iyi çaba düzeyindedir ve çözümlenemeyen adlar çalışma zamanında yok sayılır. Gönderenleri kısıtlamak için `channels.matrix.groupAllowFrom` kullanın; oda başına `users` izin listeleri de desteklenir.
- Grup DMleri ayrı olarak kontrol edilir (`channels.discord.dm.*`, `channels.slack.dm.*`).
- Telegram izin listesi kullanıcı kimlikleriyle (`"123456789"`, `"telegram:123456789"`, `"tg:123456789"`) veya kullanıcı adlarıyla (`"@alice"` ya da `"alice"`) eşleşebilir; önekler büyük/küçük harfe duyarsızdır.
- Varsayılan `groupPolicy: "allowlist"` değeridir; grup izin listeniz boşsa grup mesajları engellenir.
- Çalışma zamanı güvenliği: bir sağlayıcı bloğu tamamen eksik olduğunda (`channels.<provider>` yoksa), grup ilkesi `channels.defaults.groupPolicy` değerini devralmak yerine kapalı kalma moduna (genellikle `allowlist`) geri döner.
</Accordion>
</AccordionGroup>
Hızlı zihinsel model (grup mesajları için değerlendirme sırası):
Grup mesajları için hızlı zihinsel model (değerlendirme sırası):
<Steps>
<Step title="groupPolicy">
`groupPolicy` (open/disabled/allowlist).
</Step>
<Step title="Grup allowlist'leri">
Grup allowlist'leri (`*.groups`, `*.groupAllowFrom`, kanala özgü allowlist).
<Step title="Grup izin listeleri">
Grup izin listeleri (`*.groups`, `*.groupAllowFrom`, kanala özgü izin listesi).
</Step>
<Step title="Mention geçidi">
Mention geçidi (`requireMention`, `/activation`).
<Step title="Bahsetme denetimi">
Bahsetme denetimi (`requireMention`, `/activation`).
</Step>
</Steps>
## Mention geçidi (varsayılan)
## Bahsetme denetimi (varsayılan)
Aksi grup başına geçersiz kılınmadığı sürece grup mesajları bir mention gerektirir. Varsayılanlar `*.groups."*"` altında alt sistem başına bulunur.
Grup mesajları, grup bazında üzerine yazılmadıkça bahsetme gerektirir. Varsayılanlar her alt sistem için `*.groups."*"` altında bulunur.
İletişim kanalı yanıt meta verilerini desteklediğinde, bir bot mesajını yanıtlamak örtük bahsetme sayılır. Bir bot mesajından alıntı yapmak da alıntı meta verilerini açığa çıkaran kanallarda örtük bahsetme sayılabilir. Mevcut yerleşik örnekler arasında Telegram, WhatsApp, Slack, Discord, Microsoft Teams ve ZaloUser bulunur.
Kanal yanıt üst verilerini desteklediğinde, bir bot mesajına yanıt vermek örtük bir bahsetme sayılır. Bot mesajını alıntılamak da alıntı üst verilerini açığa çıkaran kanallarda örtük bahsetme sayılabilir. Mevcut yerleşik durumlar Telegram, WhatsApp, Slack, Discord, Microsoft Teams ve ZaloUser içerir.
```json5
{
@ -333,40 +336,40 @@ Aksi grup başına geçersiz kılınmadığı sürece grup mesajları bir mentio
```
<AccordionGroup>
<Accordion title="Bahsetme geçidi notları">
- `mentionPatterns` büyük/küçük harfe duyarsız güvenli regex desenleridir; geçersiz desenler ve güvenli olmayan iç içe tekrar biçimleri yok sayılır.
- Açık bahsetmeler sağlayan yüzeyler yine de geçer; desenler bir yedektir.
- Agent başına geçersiz kılma: `agents.list[].groupChat.mentionPatterns` (birden çok agent aynı grubu paylaştığında kullanışlıdır).
- Bahsetme geçidi yalnızca bahsetme algılama mümkün olduğunda uygulanır (yerel bahsetmeler veya `mentionPatterns` yapılandırılmışsa).
- Bir grubu veya göndereni izin listesine almak bahsetme geçidini devre dışı bırakmaz; tüm mesajların tetiklemesi gerektiğinde o grubun `requireMention` değerini `false` olarak ayarlayın.
- Grup sohbeti istem bağlamı, çözümlenen sessiz yanıt talimatını her turda taşır; çalışma alanı dosyaları `NO_REPLY` mekaniklerini çoğaltmamalıdır.
- Sessiz yanıtlara izin verilen gruplar, temiz boş veya yalnızca akıl yürütme içeren model turlarını `NO_REPLY` ile eşdeğer şekilde sessiz kabul eder. Doğrudan sohbetler bunu yalnızca doğrudan sessiz yanıtlara açıkça izin verildiğinde yapar; aksi halde boş yanıtlar başarısız agent turları olarak kalır.
- Discord varsayılanları `channels.discord.guilds."*"` içinde bulunur (guild/kanal başına geçersiz kılınabilir).
- Grup geçmişi bağlamı kanallar genelinde tek biçimde sarılır ve **yalnızca bekleyen** kapsamdadır (bahsetme geçidi nedeniyle atlanan mesajlar); küresel varsayılan için `messages.groupChat.historyLimit`, geçersiz kılmalar için `channels.<channel>.historyLimit` (veya `channels.<channel>.accounts.*.historyLimit`) kullanın. Devre dışı bırakmak için `0` ayarlayın.
<Accordion title="Bahsetme denetimi notları">
- `mentionPatterns` büyük/küçük harfe duyarsız güvenli regex kalıplarıdır; geçersiz kalıplar ve güvenli olmayan iç içe tekrar biçimleri yok sayılır.
- Açık bahsetmeler sağlayan yüzeyler yine de geçer; kalıplar bir geri dönüş yoludur.
- Ajan bazında geçersiz kılma: `agents.list[].groupChat.mentionPatterns` (birden fazla ajan aynı grubu paylaştığında kullanışlıdır).
- Bahsetme denetimi yalnızca bahsetme algılaması mümkün olduğunda uygulanır (yerel bahsetmeler veya `mentionPatterns` yapılandırılmıştır).
- Bir grubu veya göndereni izin listesine almak bahsetme denetimini devre dışı bırakmaz; tüm mesajların tetiklemesi gerektiğinde o grubun `requireMention` değerini `false` olarak ayarlayın.
- Grup sohbeti istem bağlamı her turda çözümlenmiş sessiz yanıt talimatını taşır; çalışma alanı dosyaları `NO_REPLY` mekaniklerini çoğaltmamalıdır.
- Sessiz yanıtlara izin verilen gruplar, temiz boş veya yalnızca akıl yürütme içeren model turlarını `NO_REPLY` ile eşdeğer şekilde sessiz sayar. Doğrudan sohbetler bunu yalnızca doğrudan sessiz yanıtlara açıkça izin verildiğinde yapar; aksi halde boş yanıtlar başarısız ajan turları olarak kalır.
- Discord varsayılanları `channels.discord.guilds."*"` içinde bulunur (guild/kanal bazında geçersiz kılınabilir).
- Grup geçmişi bağlamı kanallar genelinde tek biçimde sarılır ve **yalnızca bekleyen** niteliktedir (bahsetme denetimi nedeniyle atlanan mesajlar); genel varsayılan için `messages.groupChat.historyLimit`, geçersiz kılmalar için `channels.<channel>.historyLimit` (veya `channels.<channel>.accounts.*.historyLimit`) kullanın. Devre dışı bırakmak için `0` olarak ayarlayın.
</Accordion>
</AccordionGroup>
## Grup/kanal araç kısıtlamaları (isteğe bağlı)
Bazı kanal yapılandırmaları, **belirli bir grup/oda/kanal içinde** hangi araçların kullanılabileceğini kısıtlamayı destekler.
Bazı kanal yapılandırmaları, **belirli bir grup/oda/kanal içinde** hangi araçların kullanılabilir olduğunu kısıtlamayı destekler.
- `tools`: tüm grup için araçlara izin verin/reddedin.
- `toolsBySender`: grup içinde gönderen başına geçersiz kılmalar. Açık anahtar önekleri kullanın: `id:<senderId>`, `e164:<phone>`, `username:<handle>`, `name:<displayName>` ve `"*"` jokeri. Eski öneksiz anahtarlar hâlâ kabul edilir ve yalnızca `id:` olarak eşleştirilir.
- `tools`: tüm grup için araçlara izin ver/reddet.
- `toolsBySender`: grup içinde gönderen bazında geçersiz kılmalar. Açık anahtar önekleri kullanın: `id:<senderId>`, `e164:<phone>`, `username:<handle>`, `name:<displayName>` ve `"*"` joker karakteri. Eski öneksiz anahtarlar hâlâ kabul edilir ve yalnızca `id:` olarak eşleştirilir.
Çözümleme sırası (en spesifik olan kazanır):
Çözümleme sırası (en özgül olan kazanır):
<Steps>
<Step title="Grup toolsBySender">
Grup/kanal `toolsBySender` eşleşmesi.
</Step>
<Step title="Grup araçları">
<Step title="Grup tools">
Grup/kanal `tools`.
</Step>
<Step title="Varsayılan toolsBySender">
Varsayılan (`"*"`) `toolsBySender` eşleşmesi.
</Step>
<Step title="Varsayılan araçlar">
<Step title="Varsayılan tools">
Varsayılan (`"*"`) `tools`.
</Step>
</Steps>
@ -392,18 +395,18 @@ Bazı kanal yapılandırmaları, **belirli bir grup/oda/kanal içinde** hangi ar
```
<Note>
Grup/kanal araç kısıtlamaları, küresel/agent araç ilkesine ek olarak uygulanır (reddetme yine de kazanır). Bazı kanallar odalar/kanallar için farklı iç içe yapılar kullanır (ör. Discord `guilds.*.channels.*`, Slack `channels.*`, Microsoft Teams `teams.*.channels.*`).
Grup/kanal araç kısıtlamaları global/ajan araç politikasına ek olarak uygulanır (reddetme yine kazanır). Bazı kanallar odalar/kanallar için farklı iç içe yerleşim kullanır (ör. Discord `guilds.*.channels.*`, Slack `channels.*`, Microsoft Teams `teams.*.channels.*`).
</Note>
## Grup izin listeleri
`channels.whatsapp.groups`, `channels.telegram.groups` veya `channels.imessage.groups` yapılandırıldığında anahtarlar grup izin listesi olarak davranır. Varsayılan bahsetme davranışını ayarlamaya devam ederken tüm gruplara izin vermek için `"*"` kullanın.
`channels.whatsapp.groups`, `channels.telegram.groups` veya `channels.imessage.groups` yapılandırıldığında, anahtarlar grup izin listesi gibi davranır. Varsayılan bahsetme davranışını ayarlamaya devam ederken tüm gruplara izin vermek için `"*"` kullanın.
<Warning>
Yaygın karışıklık: DM eşleştirme onayı, grup yetkilendirmesiyle aynı değildir. DM eşleştirmeyi destekleyen kanallarda eşleştirme deposu yalnızca DM'lerin kilidini açar. Grup komutları yine de `groupAllowFrom` gibi yapılandırma izin listelerinden veya ilgili kanal için belgelenmiş yapılandırma yedeğinden açık grup gönderen yetkilendirmesi gerektirir.
Yaygın karışıklık: DM eşleştirme onayı, grup yetkilendirmesiyle aynı şey değildir. DM eşleştirmesini destekleyen kanallarda eşleştirme deposu yalnızca DM'lerin kilidini açar. Grup komutları yine de `groupAllowFrom` gibi yapılandırma izin listelerinden veya o kanal için belgelenmiş yapılandırma geri dönüşünden açık grup gönderen yetkilendirmesi gerektirir.
</Warning>
Yaygın niyetler (kopyala/yapıştır):
Yaygın amaçlar (kopyala/yapıştır):
<Tabs>
<Tab title="Tüm grup yanıtlarını devre dışı bırak">
@ -455,28 +458,28 @@ Yaygın niyetler (kopyala/yapıştır):
## Etkinleştirme (yalnızca sahip)
Grup sahipleri grup başına etkinleştirmeyi açıp kapatabilir:
Grup sahipleri grup bazında etkinleştirmeyi açıp kapatabilir:
- `/activation mention`
- `/activation always`
Sahip, `channels.whatsapp.allowFrom` ile belirlenir (veya ayarlanmamışsa botun kendi E.164 değeriyle). Komutu tek başına bir mesaj olarak gönderin. Diğer yüzeyler şu anda `/activation` komutunu yok sayar.
Sahip, `channels.whatsapp.allowFrom` ile belirlenir (veya ayarlanmamışsa botun kendi E.164 değeriyle). Komutu tek başına bir mesaj olarak gönderin. Diğer yüzeyler şu anda `/activation` değerini yok sayar.
## Bağlam alanları
Gelen grup yükleri şunları ayarlar:
Grup gelen yükleri şunları ayarlar:
- `ChatType=group`
- `GroupSubject` (biliniyorsa)
- `GroupMembers` (biliniyorsa)
- `WasMentioned` (bahsetme geçidi sonucu)
- `WasMentioned` (bahsetme denetimi sonucu)
- Telegram forum konuları ayrıca `MessageThreadId` ve `IsForum` içerir.
Kanala özgü notlar:
- BlueBubbles, `GroupMembers` alanını doldurmadan önce adsız macOS grup katılımcılarını yerel Kişiler veritabanından isteğe bağlı olarak zenginleştirebilir. Bu varsayılan olarak kapalıdır ve yalnızca normal grup geçidi geçtikten sonra çalışır.
- BlueBubbles, `GroupMembers` doldurulmadan önce adlandırılmamış macOS grup katılımcılarını isteğe bağlı olarak yerel Kişiler veritabanından zenginleştirebilir. Bu varsayılan olarak kapalıdır ve yalnızca normal grup denetimi geçtikten sonra çalışır.
Agent sistem istemi, yeni bir grup oturumunun ilk turunda bir grup girişi içerir. Modele insan gibi yanıt vermesini, Markdown tablolarından kaçınmasını, boş satırları en aza indirmesini ve normal sohbet aralığını izlemesini, ayrıca düz `\n` dizileri yazmaktan kaçınmasını hatırlatır. Kanal kaynaklı grup adları ve katılımcı etiketleri satır içi sistem talimatları olarak değil, çitle çevrilmiş güvenilmeyen meta veriler olarak işlenir.
Ajan sistem istemi, yeni bir grup oturumunun ilk turunda bir grup tanıtımı içerir. Modele bir insan gibi yanıt vermesini, Markdown tablolarından kaçınmasını, boş satırları en aza indirmesini ve normal sohbet aralığını izlemesini, ayrıca değişmez `\n` dizileri yazmaktan kaçınmasını hatırlatır. Kanaldan gelen grup adları ve katılımcı etiketleri, satır içi sistem talimatları olarak değil, fenced güvenilmeyen üst veri olarak işlenir.
## iMessage ayrıntıları
@ -486,11 +489,11 @@ Agent sistem istemi, yeni bir grup oturumunun ilk turunda bir grup girişi içer
## WhatsApp sistem istemleri
Grup ve doğrudan istem çözümlemesi, joker davranışı ve hesap geçersiz kılma semantiği dahil olmak üzere kurallı WhatsApp sistem istemi kuralları için [WhatsApp](/tr/channels/whatsapp#system-prompts) bölümüne bakın.
Grup ve doğrudan istem çözümlemesi, joker karakter davranışı ve hesap geçersiz kılma semantiği dahil olmak üzere kanonik WhatsApp sistem istemi kuralları için [WhatsApp](/tr/channels/whatsapp#system-prompts) bölümüne bakın.
## WhatsApp ayrıntıları
Yalnızca WhatsApp'a özgü davranışlar (geçmiş enjeksiyonu, bahsetme işleme ayrıntıları) için [Grup mesajları](/tr/channels/group-messages) bölümüne bakın.
Yalnızca WhatsApp davranışı (geçmiş ekleme, bahsetme işleme ayrıntıları) için [Grup mesajları](/tr/channels/group-messages) bölümüne bakın.
## İlgili

View File

@ -1,29 +1,31 @@
---
read_when:
- Sentetik QA aktarımını yerel veya CI test çalışmasına bağlıyorsunuz
- Sentetik QA taşımasını yerel veya CI test çalıştırmasına bağlıyorsunuz
- Paketle gelen qa-channel yapılandırma yüzeyine ihtiyacınız var
- Uçtan uca QA otomasyonu üzerinde yineleme yapıyorsunuz
summary: Deterministik OpenClaw QA senaryoları için sentetik Slack sınıfı kanal Plugin'i
title: QA kanalı
- Uçtan uca kalite güvencesi otomasyonunu yinelemeli olarak geliştiriyorsunuz
summary: Deterministik OpenClaw kalite güvence senaryoları için sentetik Slack sınıfı kanal Plugin'i
title: Kalite güvence kanalı
x-i18n:
generated_at: "2026-04-30T09:08:28Z"
generated_at: "2026-05-01T08:58:44Z"
model: gpt-5.5
provider: openai
source_hash: e1de1f52da1a14c845cf2a536ddc6f36ab52ed6364f68d9ece32ce272e2a2f96
source_hash: efe057812de1fbc6d89d2b6d5860cd6af4648c3e86913efa3a69267c4e8c57b4
source_path: channels/qa-channel.md
workflow: 16
---
`qa-channel`, otomatik OpenClaw QA için paketlenmiş sentetik bir mesaj aktarımıdır. Üretim kanalı değildir — gerçek aktarımların kullandığı aynı kanal Plugin sınırını çalıştırmak, bu sırada durumu belirlenimci ve tamamen incelenebilir tutmak için vardır.
`qa-channel`, otomatik OpenClaw QA için paketle birlikte gelen sentetik bir mesaj taşımasıdır. Üretim kanalı değildir; durumu deterministik ve tamamen incelenebilir tutarken gerçek taşımalar tarafından kullanılan aynı kanal Plugin sınırını çalıştırmak için vardır.
## Ne yapar
## Ne yapar?
- Slack sınıfı hedef dil bilgisi:
- Slack sınıfı hedef grameri:
- `dm:<user>`
- `channel:<room>`
- `group:<room>`
- `thread:<room>/<thread>`
- Gelen mesaj enjeksiyonu, giden transkript yakalama, iş parçacığı oluşturma, tepkiler, düzenlemeler, silmeler ve arama/okuma eylemleri için HTTP destekli sentetik bus.
- `.artifacts/qa-e2e/` konumuna Markdown raporu yazan host tarafı kendi kendini denetleme çalıştırıcısı.
- Paylaşılan `channel:` ve `group:` konuşmaları ajanlara grup/kanal odası turları olarak gösterilir; böylece Discord, Slack, Telegram ve benzer taşımalar tarafından kullanılan aynı görünür yanıt ve mesaj aracı yönlendirme ilkesini çalıştırırlar.
- Gelen mesaj ekleme, giden transcript yakalama, iş parçacığı oluşturma, tepkiler, düzenlemeler, silmeler ve arama/okuma eylemleri için HTTP destekli sentetik bus.
- `.artifacts/qa-e2e/` konumuna Markdown raporu yazan ana makine tarafı kendini denetleme çalıştırıcısı.
## Yapılandırma
@ -43,51 +45,51 @@ x-i18n:
Hesap anahtarları:
- `enabled` — bu hesap için ana açma/kapama anahtarı.
- `enabled` — bu hesap için ana açma/kapama düğmesi.
- `name` — isteğe bağlı görüntüleme etiketi.
- `baseUrl` — sentetik bus URL'si.
- `botUserId` — hedef dil bilgisinde kullanılan Matrix tarzı bot kullanıcı kimliği.
- `botUserId` — hedef gramerinde kullanılan Matrix tarzı bot kullanıcı kimliği.
- `botDisplayName` — giden mesajlar için görüntüleme adı.
- `pollTimeoutMs` — long-poll bekleme penceresi. 100 ile 30000 arasında tamsayı.
- `pollTimeoutMs` — long-poll bekleme penceresi. 100 ile 30000 arasında bir tam sayı.
- `allowFrom` — gönderen izin listesi (kullanıcı kimlikleri veya `"*"`).
- `defaultTo` — hiçbiri sağlanmadığında yedek hedef.
- `actions.messages` / `actions.reactions` / `actions.search` / `actions.threads` — eylem başına araç geçitleme.
- `actions.messages` / `actions.reactions` / `actions.search` / `actions.threads` — eylem başına araç geçidi.
Üst düzeyde çoklu hesap anahtarları:
- `accounts` — hesap kimliğine göre anahtarlanmış, adlandırılmış hesap başına geçersiz kılmaların kaydı.
- `defaultAccount` — birden fazla yapılandırıldığında tercih edilen hesap kimliği.
- `accounts` — hesap kimliğine göre anahtarlanmış adlandırılmış hesap başına geçersiz kılmaların kaydı.
- `defaultAccount` — birden çok hesap yapılandırıldığında tercih edilen hesap kimliği.
## Çalıştırıcılar
Host tarafı kendi kendini denetleme (`.artifacts/qa-e2e/` altında Markdown raporu yazar):
Ana makine tarafı kendini denetleme (`.artifacts/qa-e2e/` altında bir Markdown raporu yazar):
```bash
pnpm qa:e2e
```
Bu, `qa-lab` üzerinden yönlenir, repo içi QA bus'ını başlatır, paketlenmiş `qa-channel` çalışma zamanı dilimini önyükler ve belirlenimci bir kendi kendini denetleme çalıştırır.
Bu, `qa-lab` üzerinden yönlendirir, depo içi QA bus'ını başlatır, paketle gelen `qa-channel` runtime dilimini başlatır ve deterministik bir kendini denetleme çalıştırır.
Tam repo destekli senaryo paketi:
Tam depo destekli senaryo paketi:
```bash
pnpm openclaw qa suite
```
Senaryoları QA Gateway hattına karşı paralel çalıştırır. Senaryolar, profiller ve sağlayıcı modları için [QA genel bakışına](/tr/concepts/qa-e2e-automation) bakın.
Senaryoları QA gateway hattına karşı paralel çalıştırır. Senaryolar, profiller ve sağlayıcı modları için [QA genel bakışı](/tr/concepts/qa-e2e-automation) bölümüne bakın.
Docker destekli QA sitesi (Gateway + QA Lab hata ayıklayıcı UI tek bir yığında):
Docker destekli QA sitesi (gateway + QA Lab hata ayıklama kullanıcı arayüzü tek bir yığında):
```bash
pnpm qa:lab:up
```
QA sitesini derler, Docker destekli Gateway + QA Lab yığınını başlatır ve QA Lab URL'sini yazdırır. Buradan senaryoları seçebilir, model hattını seçebilir, tekil çalıştırmaları başlatabilir ve sonuçları canlı izleyebilirsiniz. QA Lab hata ayıklayıcısı, yayınlanan Control UI paketinden ayrıdır.
QA sitesini derler, Docker destekli gateway + QA Lab yığınını başlatır ve QA Lab URL'sini yazdırır. Buradan senaryoları seçebilir, model hattını belirleyebilir, tek tek çalıştırmaları başlatabilir ve sonuçları canlı izleyebilirsiniz. QA Lab hata ayıklayıcısı, gönderilen Control UI paketinden ayrıdır.
## İlgili
- [QA genel bakışı](/tr/concepts/qa-e2e-automation) — genel yığın, aktarım adaptörleri, senaryo yazımı
- [Matrix QA](/tr/concepts/qa-matrix) — gerçek bir kanalı süren örnek canlı aktarım çalıştırıcısı
- [Eşleştirme](/tr/channels/pairing)
- [QA genel bakışı](/tr/concepts/qa-e2e-automation) — genel yığın, taşıma bağdaştırıcıları, senaryo yazımı
- [Matrix QA](/tr/concepts/qa-matrix) — gerçek bir kanalı süren örnek canlı taşıma çalıştırıcısı
- [Eşleme](/tr/channels/pairing)
- [Gruplar](/tr/channels/groups)
- [Kanallar genel bakışı](/tr/channels)

View File

@ -3,73 +3,73 @@ read_when:
- Bir CI işinin neden çalıştığını veya çalışmadığını anlamanız gerekir
- Başarısız olan bir GitHub Actions denetiminde hata ayıklıyorsunuz
- Bir sürüm doğrulama çalıştırmasını veya yeniden çalıştırmasını koordine ediyorsunuz
summary: CI iş grafiği, kapsam geçitleri, sürüm şemsiyeleri ve yerel komut eşdeğerleri
summary: CI iş grafiği, kapsam kapıları, sürüm şemsiyeleri ve yerel komut eşdeğerleri
title: CI işlem hattı
x-i18n:
generated_at: "2026-04-30T18:38:50Z"
generated_at: "2026-05-01T08:58:39Z"
model: gpt-5.5
provider: openai
source_hash: a24afc27606ac7f4e9ead89acdd319bffa23336610f8a6cd8b576ea1a5b233dd
source_hash: 679913539743f9495fffa010489ec95e05ce875751afa8a93bf8bf7045d6d9de
source_path: ci.md
workflow: 16
---
OpenClaw CI, `main` dalına yapılan her push ve her pull request üzerinde çalışır. `preflight` işi diffi sınıflandırır ve yalnızca alakasız alanlar değiştiğinde pahalı hatları kapatır. Manuel `workflow_dispatch` çalıştırmaları, release candidatelar ve geniş doğrulama için akıllı kapsam belirlemeyi bilinçli olarak atlar ve tam grafiği genişletir. Android hatları `include_android` aracılığıyla opt-in kalır. Yalnızca releasee özel Plugin kapsamı ayrı [`Plugin Prerelease`](#plugin-prerelease) workflowunda bulunur ve yalnızca [`Full Release Validation`](#full-release-validation) üzerinden ya da açık bir manuel dispatch ile çalışır.
OpenClaw CI, `main` dalına yapılan her push ve her pull request için çalışır. `preflight` işi diffi sınıflandırır ve yalnızca ilgisiz alanlar değiştiğinde pahalı hatları kapatır. Manuel `workflow_dispatch` çalıştırmaları, sürüm adayları ve geniş doğrulama için akıllı kapsamlandırmayı bilinçli olarak atlar ve tam grafiğe yayılır. Android hatları `include_android` üzerinden isteğe bağlı kalır. Yalnızca sürüme özel Plugin kapsamı ayrı [`Plugin Ön Sürüm`](#plugin-prerelease) iş akışında bulunur ve yalnızca [`Tam Sürüm Doğrulaması`](#full-release-validation) üzerinden veya açık bir manuel dispatch ile çalışır.
## Pipeline genel bakışı
## İş Hattı Genel Bakışı
| İş | Amaç | Ne zaman çalışır |
| -------------------------------- | -------------------------------------------------------------------------------------------- | --------------------------------- |
| `preflight` | Yalnızca dokümantasyon değişikliklerini, değişen kapsamları, değişen extensionları algılar ve CI manifestini oluşturur | Draft olmayan push ve PRlarda her zaman |
| `security-scm-fast` | `zizmor` ile özel anahtar algılama ve workflow denetimi | Draft olmayan push ve PRlarda her zaman |
| `security-dependency-audit` | npm advisorylerine karşı dependency-free production lockfile denetimi | Draft olmayan push ve PRlarda her zaman |
| `security-fast` | Hızlı güvenlik işleri için zorunlu toplama | Draft olmayan push ve PRlarda her zaman |
| `preflight` | Yalnızca doküman değişikliklerini, değişen kapsamları, değişen uzantıları algılar ve CI manifestini oluşturur | Taslak olmayan push ve PRlarda her zaman |
| `security-scm-fast` | `zizmor` aracılığıyla özel anahtar algılama ve iş akışı denetimi | Taslak olmayan push ve PRlarda her zaman |
| `security-dependency-audit` | npm uyarılarına karşı bağımlılıksız production lockfile denetimi | Taslak olmayan push ve PRlarda her zaman |
| `security-fast` | Hızlı güvenlik işleri için gerekli toplam sonuç | Taslak olmayan push ve PRlarda her zaman |
| `check-dependencies` | Production Knip yalnızca bağımlılık geçişi ve kullanılmayan dosya allowlist koruması | Node ile ilgili değişiklikler |
| `build-artifacts` | `dist/`, Control UI, derlenmiş artifact denetimleri ve yeniden kullanılabilir downstream artifactlar oluşturur | Node ile ilgili değişiklikler |
| `checks-fast-core` | Paketli/plugin-contract/protokol 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-core-test` | Kanal, paketli, sözleşme ve extension hatları hariç çekirdek Node test parçaları | Node ile ilgili değişiklikler |
| `check` | Parçalanmış ana yerel gate eşdeğeri: prod tipleri, lint, korumalar, test tipleri ve strict smoke | Node ile ilgili değişiklikler |
| `check-additional` | Mimari, sınır, extension-surface korumaları, paket sınırı ve gateway-watch parçaları | Node ile ilgili değişiklikler |
| `build-artifacts` | `dist/`, Control kullanıcı arayüzü, derlenmiş artefakt kontrolleri ve yeniden kullanılabilir aşağı akış artefaktları oluşturur | Node ile ilgili değişiklikler |
| `checks-fast-core` | Paketlenmiş/Plugin sözleşmesi/protokol kontrolleri gibi hızlı Linux doğruluk hatları | Node ile ilgili değişiklikler |
| `checks-fast-contracts-channels` | Kararlı toplam kontrol sonucuyla parçalanmış kanal sözleşmesi kontrolleri | 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 |
| `check` | Parçalanmış ana yerel kapı eşdeğeri: production tipleri, lint, korumalar, test tipleri ve katı 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 | Node ile ilgili değişiklikler |
| `checks` | Derlenmiş artifact kanal testleri için doğrulayıcı | Node ile ilgili değişiklikler |
| `checks-node-compat-node22` | Node 22 uyumluluk build ve smoke hattı | Releaseler için manuel CI dispatch |
| `check-docs` | Dokümantasyon biçimlendirme, lint ve bozuk bağlantı denetimleri | Dokümantasyon değiştiğinde |
| `checks` | Derlenmiş artefakt kanal testleri için doğrulayıcı | Node ile ilgili değişiklikler |
| `checks-node-compat-node22` | Node 22 uyumluluk derleme ve smoke hattı | Sürümler için manuel CI dispatch |
| `check-docs` | Doküman biçimlendirme, lint ve kırık bağlantı kontrolleri | Dokümanlar değiştiğinde |
| `skills-python` | Python destekli Skills için Ruff + pytest | Python-skill ile ilgili değişiklikler |
| `checks-windows` | Windowsa özgü process/path testleri ve paylaşılan runtime import belirteci regresyonları | Windows ile ilgili değişiklikler |
| `macos-node` | Paylaşılan derlenmiş artifactları kullanan macOS TypeScript test hattı | macOS ile ilgili değişiklikler |
| `macos-swift` | macOS uygulaması için Swift lint, build ve testleri | macOS ile ilgili değişiklikler |
| `android` | Her iki flavor için Android unit testleri ve bir debug APK buildi | Android ile ilgili değişiklikler |
| `checks-windows` | Windowsa özgü süreç/yol testleri ve paylaşılan çalışma zamanı import belirteci regresyonları | Windows ile ilgili değişiklikler |
| `macos-node` | Paylaşılan derlenmiş artefaktları 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` | İki flavor için Android birim testleri ve bir debug APK derlemesi | Android ile ilgili değişiklikler |
| `test-performance-agent` | Güvenilir etkinlikten sonra günlük Codex yavaş test optimizasyonu | Ana CI başarısı veya manuel dispatch |
## Fail-fast sırası
## Hızlı Başarısız Olma Sırası
1. `preflight`, hangi hatların var olacağına karar verir. `docs-scope` ve `changed-scope` mantığı bu işin içindeki adımlardır, bağımsız işler değildir.
2. `security-scm-fast`, `security-dependency-audit`, `security-fast`, `check`, `check-additional`, `check-docs` ve `skills-python`, daha ağır artifact ve platform matrix işlerini beklemeden hızlıca başarısız olur.
3. `build-artifacts`, hızlı Linux hatlarıyla çakışır; böylece downstream tüketiciler paylaşılan build hazır olur olmaz başlayabilir.
4. Daha ağır platform ve runtime hatları bundan sonra genişler: `checks-fast-core`, `checks-fast-contracts-channels`, `checks-node-core-test`, `checks`, `checks-windows`, `macos-node`, `macos-swift` ve `android`.
1. `preflight`, hangi hatların gerçekten var olacağına karar verir. `docs-scope` ve `changed-scope` mantığı bu işin içindeki adımlardır, bağımsız işler değildir.
2. `security-scm-fast`, `security-dependency-audit`, `security-fast`, `check`, `check-additional`, `check-docs` ve `skills-python`, daha ağır artefakt ve platform matrisi işlerini beklemeden hızlı başarısız olur.
3. `build-artifacts`, paylaşılan derleme hazır olur olmaz aşağı akış tüketicilerinin başlayabilmesi için hızlı Linux hatlarıyla örtüşür.
4. Daha ağır platform ve çalışma zamanı hatları bundan sonra yayılır: `checks-fast-core`, `checks-fast-contracts-channels`, `checks-node-core-test`, `checks`, `checks-windows`, `macos-node`, `macos-swift` ve `android`.
Aynı PR veya `main` refine daha yeni bir push geldiğinde GitHub, yerini yeni çalıştırma alan işleri `cancelled` olarak işaretleyebilir. Aynı ref için en yeni çalıştırma da başarısız değilse bunu CI gürültüsü olarak değerlendirin. Toplu shard denetimleri `!cancelled() && always()` kullanır; böylece normal shard hatalarını yine raporlar, ancak tüm workflow zaten yerini yeni çalıştırmaya bıraktıktan sonra kuyruğa girmez. Otomatik CI eşzamanlılık anahtarı sürümlüdür (`CI-v7-*`), böylece eski bir kuyruk grubundaki GitHub taraflı zombie daha yeni main çalıştırmalarını süresiz engelleyemez. Manuel tam takım çalıştırmaları `CI-manual-v1-*` kullanır ve sürmekte olan çalıştırmaları iptal etmez.
Aynı PR veya `main` refine daha yeni bir push geldiğinde GitHub, yerine geçen 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. Toplam parça kontrolleri `!cancelled() && always()` kullanır; böylece normal parça hatalarını yine raporlar, ancak tüm iş akışı zaten yerine geçirilmişse sıraya girmez. Otomatik CI eşzamanlılık anahtarı sürümlüdür (`CI-v7-*`), bu nedenle eski bir kuyruk grubundaki GitHub taraflı bir zombi daha yeni main çalıştırmalarını süresiz olarak engelleyemez. Manuel tam paket çalıştırmaları `CI-manual-v1-*` kullanır ve devam eden çalıştırmaları iptal etmez.
## Kapsam ve yönlendirme
## Kapsam ve Yönlendirme
Kapsam mantığı `scripts/ci-changed-scope.mjs` içinde bulunur ve `src/scripts/ci-changed-scope.test.ts` içindeki unit testlerle kapsanır. Manuel dispatch, changed-scope algılamayı atlar ve preflight manifestinin her kapsamlı alan değişmiş gibi davranmasını sağlar.
Kapsam mantığı `scripts/ci-changed-scope.mjs` içinde bulunur ve `src/scripts/ci-changed-scope.test.ts` içindeki birim testleriyle kapsanır. Manuel dispatch, değişen kapsam algılamasını atlar ve preflight manifestinin her kapsamlı alan değişmiş gibi davranmasını sağlar.
- **CI workflow düzenlemeleri** Node CI grafiğini ve workflow lintingi doğrular, ancak tek başına Windows, Android veya macOS native buildlerini zorlamaz; bu platform hatları platform kaynak değişiklikleriyle kapsamlı kalır.
- **CI yalnızca yönlendirme düzenlemeleri, seçili ucuz core-test fixture düzenlemeleri ve dar plugin contract helper/test-routing düzenlemeleri** hızlı bir yalnızca Node manifest yolu kullanır: `preflight`, güvenlik ve tek bir `checks-fast-core` görevi. Bu yol, değişiklik hızlı görevin doğrudan çalıştırdığı yönlendirme veya helper yüzeyleriyle sınırlı olduğunda build artifactlarını, Node 22 uyumluluğunu, kanal sözleşmelerini, tam çekirdek shardlarını, paketli-plugin shardlarını ve ek guard matrixlerini atlar.
- **Windows Node denetimleri** Windowsa özgü process/path wrapperları, npm/pnpm/UI runner helperları, paket yöneticisi configi ve bu hattı çalıştıran CI workflow yüzeyleriyle kapsamlanır; alakasız kaynak, plugin, install-smoke ve yalnızca test değişiklikleri Linux Node hatlarında kalır.
- **CI iş akışı düzenlemeleri** Node CI grafiğini ve iş akışı lintini doğrular, ancak Windows, Android veya macOS yerel derlemelerini tek başına zorlamaz; bu platform hatları platform kaynak değişiklikleriyle kapsamlı kalır.
- **Yalnızca CI yönlendirme düzenlemeleri, seçilmiş ucuz çekirdek test fixture düzenlemeleri ve dar Plugin sözleşmesi yardımcı/test yönlendirme düzenlemeleri** hızlı bir yalnızca Node manifest yolu kullanır: `preflight`, güvenlik ve tek bir `checks-fast-core` görevi. Bu yol, değişiklik hızlı görevin doğrudan çalıştırdığı yönlendirme veya yardımcı yüzeylerle sınırlı olduğunda derleme artefaktlarını, Node 22 uyumluluğunu, kanal sözleşmelerini, tam çekirdek parçalarını, paketlenmiş Plugin parçalarını ve ek koruma matrislerini atlar.
- **Windows Node kontrolleri** Windowsa özgü süreç/yol sarmalayıcılarına, npm/pnpm/UI çalıştırıcı yardımcılarına, paket yöneticisi yapılandırmasına ve bu hattı çalıştıran CI iş akışı yüzeylerine kapsamlanır; ilgisiz kaynak, Plugin, install-smoke ve yalnızca test değişiklikleri Linux Node hatlarında kalır.
En yavaş Node test aileleri, her iş runnerları fazla ayırmadan küçük kalsın diye bölünür veya dengelenir: kanal sözleşmeleri üç ağırlıklı shard olarak çalışır, küçük çekirdek unit hatları eşleştirilir, auto-reply dört dengeli worker olarak çalışır (reply subtreesi agent-runner, dispatch ve commands/state-routing shardlarına bölünür) ve agentic gateway/plugin configleri derlenmiş artifactları beklemek yerine mevcut yalnızca kaynak agentic Node işlerine dağıtılır. Geniş tarayıcı, QA, medya ve çeşitli plugin testleri, paylaşılan plugin catch-all yerine kendilerine ayrılmış Vitest configlerini kullanır. Include-pattern shardları zamanlama girdilerini CI shard adını kullanarak kaydeder; böylece `.artifacts/vitest-shard-timings.json` bütün bir configi filtrelenmiş bir sharddan ayırt edebilir. `check-additional`, paket-sınırı compile/canary işini birlikte tutar ve runtime topology mimarisini gateway watch kapsamından ayırır; boundary guard shardı küçük bağımsız guardlarını tek iş içinde eşzamanlı çalıştırır. Gateway watch, kanal testleri ve çekirdek support-boundary shardı, `dist/` ve `dist-runtime/` zaten derlendikten sonra `build-artifacts` içinde eşzamanlı çalışır.
En yavaş Node test aileleri, her işin koşucularıırı ayırmadan küçük kalması için bölünür veya dengelenir: kanal sözleşmeleri üç ağırlıklı parça olarak çalışır, küçük çekirdek birim hatları eşleştirilir, auto-reply dört dengeli işçi olarak çalışır (reply alt ağacı agent-runner, dispatch ve commands/state-routing parçalarına bölünerek) ve agentic gateway/Plugin yapılandırmaları, derlenmiş artefaktları beklemek yerine mevcut yalnızca kaynak agentic Node işleri arasında dağıtılır. Geniş tarayıcı, QA, medya ve çeşitli Plugin testleri, paylaşılan Plugin toplama yapılandırması yerine kendi özel Vitest yapılandırmalarını kullanır. Include-pattern parçaları zamanlama girişlerini CI parça adını kullanarak kaydeder; böylece `.artifacts/vitest-shard-timings.json` tam bir yapılandırmayı filtrelenmiş bir parçadan ayırt edebilir. `check-additional`, paket sınırı derleme/canary çalışmasını bir arada tutar ve çalışma zamanı topoloji mimarisini gateway watch kapsamından ayırır; sınır koruma parçası, küçük bağımsız korumalarını tek bir iş içinde eşzamanlı çalıştırır. Gateway watch, kanal testleri ve çekirdek destek sınırı parçası, `dist/` ve `dist-runtime/` zaten derlendikten sonra `build-artifacts` içinde eşzamanlı çalışır.
Android CI hem `testPlayDebugUnitTest` hem de `testThirdPartyDebugUnitTest` çalıştırır ve ardından Play debug APKsini derler. Third-party flavorın ayrı bir kaynak seti veya manifesti yoktur; unit-test hattı flavorı SMS/call-log BuildConfig bayraklarıyla yine derlerken, her Android ile ilgili pushta yinelenen bir debug APK paketleme işinden kaçınır.
Android CI hem `testPlayDebugUnitTest` hem de `testThirdPartyDebugUnitTest` çalıştırır ve ardından Play debug APKsını derler. Third-party flavorın ayrı bir kaynak kümesi veya manifesti yoktur; birim test hattı flavorı SMS/arama günlüğü BuildConfig bayraklarıyla yine derlerken, Android ile ilgili her pushta yinelenen bir debug APK paketleme işinden kaçınır.
`check-dependencies` shardı `pnpm deadcode:dependencies` (en yeni Knip sürümüne sabitlenmiş, `dlx` kurulumu için pnpmin minimum release age ayarı devre dışı bırakılmış bir production Knip yalnızca bağımlılık geçişi) ve Knipin production kullanılmayan dosya bulgularını `scripts/deadcode-unused-files.allowlist.mjs` ile karşılaştıran `pnpm deadcode:unused-files` komutunu çalıştırır. Kullanılmayan dosya guardı, bir PR yeni incelenmemiş kullanılmayan dosya eklediğinde veya bayat bir allowlist girdisi bıraktığında başarısız olur; Knipin statik olarak çözemediği kasıtlı dinamik plugin, generated, build, live-test ve package bridge yüzeylerini ise korur.
`check-dependencies` parçası `pnpm deadcode:dependencies` (en güncel Knip sürümüne sabitlenmiş, `dlx` kurulumu için pnpmin minimum sürüm yaşı devre dışı bırakılmış bir production Knip yalnızca bağımlılık geçişi) ve `pnpm deadcode:unused-files` çalıştırır; ikincisi Knipin production kullanılmayan dosya bulgularını `scripts/deadcode-unused-files.allowlist.mjs` ile karşılaştırır. Kullanılmayan dosya koruması, bir PR yeni gözden geçirilmemiş kullanılmayan dosya eklediğinde veya eski bir allowlist girişi bıraktığında başarısız olur; Knipin statik olarak çözemediği kasıtlı dinamik Plugin, üretilmiş, derleme, canlı test ve paket köprü yüzeylerini korur.
## Manuel dispatchler
## Manuel Dispatchler
Manuel CI dispatchleri normal CI ile aynı iş grafiğini çalıştırır, ancak Android dışındaki her kapsamlı hattıık olmaya zorlar: Linux Node shardları, paketli-plugin shardları, kanal sözleşmeleri, Node 22 uyumluluğu, `check`, `check-additional`, build smoke, dokümantasyon denetimleri, Python skills, Windows, macOS ve Control UI i18n. Bağımsız manuel CI dispatchleri Androidi yalnızca `include_android=true` ile çalıştırır; tam release şemsiyesi Androidi `include_android=true` geçirerek etkinleştirir. Plugin prerelease statik denetimleri, yalnızca releasee özel `agentic-plugins` shardı, tam extension toplu taraması ve plugin prerelease Docker hatları CIdan hariç tutulur. Docker prerelease takımı yalnızca `Full Release Validation`, ayrı `Plugin Prerelease` workflowunu release-validation gatei etkinleştirilmiş olarak dispatch ettiğinde çalışır.
Manuel CI dispatchleri normal CI ile aynı iş grafiğini çalıştırır ancak Android dışındaki tüm kapsamlı hatlarıık olmaya zorlar: Linux Node parçaları, paketlenmiş Plugin parçaları, kanal sözleşmeleri, Node 22 uyumluluğu, `check`, `check-additional`, build smoke, doküman kontrolleri, Python skills, Windows, macOS ve Control UI i18n. Bağımsız manuel CI dispatchleri Androidi yalnızca `include_android=true` ile çalıştırır; tam sürüm şemsiyesi Androidi `include_android=true` geçirerek etkinleştirir. Plugin prerelease statik kontrolleri, yalnızca sürüme özel `agentic-plugins` parçası, tam uzantı batch taraması ve Plugin prerelease Docker hatları CIdan hariç tutulur. Docker prerelease paketi yalnızca `Tam Sürüm Doğrulaması`, ayrı `Plugin Prerelease` iş akışını sürüm doğrulama kapısı etkin şekilde dispatch ettiğinde çalışır.
Manuel çalıştırmalar benzersiz bir eşzamanlılık grubu kullanır; böylece release-candidate tam takımı aynı refteki başka bir push veya PR çalıştırması tarafından iptal edilmez. İsteğe bağlı `target_ref` girdisi, güvenilir bir çağırıcının seçili dispatch refinden workflow dosyasını kullanırken bu grafiği bir dal, tag veya tam commit SHA üzerinde çalıştırmasına olanak tanır.
Manuel çalıştırmalar benzersiz bir eşzamanlılık grubu kullanır; böylece bir sürüm adayı tam paketi, aynı ref üzerindeki başka bir push veya PR çalıştırması tarafından iptal edilmez. İsteğe bağlı `target_ref` girdisi, güvenilir bir çağıranın seçilen dispatch refinden iş akışı dosyasını kullanırken bu grafiği bir dal, etiket veya tam commit SHA üzerinde çalıştırmasını sağlar.
```bash
gh workflow run ci.yml --ref release/YYYY.M.D
@ -77,17 +77,17 @@ gh workflow run ci.yml --ref main -f target_ref=<branch-or-sha> -f include_andro
gh workflow run full-release-validation.yml --ref main -f ref=<branch-or-sha>
```
## Runnerlar
## Koşucular
| Çalıştırıcı | İşler |
| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ubuntu-24.04` | `preflight`, hızlı güvenlik işleri ve toplamları (`security-scm-fast`, `security-dependency-audit`, `security-fast`), hızlı protokol/sözleşme/birlikte gelen denetimler, parçalanmış kanal sözleşmesi denetimleri, lint hariç `check` parçaları, `check-additional` parçaları ve toplamları, Node test toplamı doğrulayıcıları, doküman denetimleri, Python Skills, workflow-sanity, labeler, auto-response; install-smoke ön denetimi de GitHub tarafından barındırılan Ubuntu kullanır, böylece Blacksmith matrisi daha erken sıraya girebilir |
| `blacksmith-4vcpu-ubuntu-2404` | `CodeQL Critical Quality`, daha düşük ağırlıklı uzantı parçaları, `checks-fast-core`, `checks-node-compat-node22`, `check-prod-types` ve `check-test-types` |
| `blacksmith-8vcpu-ubuntu-2404` | `build-artifacts`, build-smoke, Linux Node test parçaları, birlikte gelen Plugin test parçaları, `android` |
| `blacksmith-16vcpu-ubuntu-2404` | `check-lint` (CPU'ya yeterince duyarlı olduğundan 8 vCPU tasarruf ettiğinden daha fazla maliyet getirdi); install-smoke Docker derlemeleri (32-vCPU sıra süresi, tasarruf ettiğinden daha fazla maliyet getirdi) |
| `blacksmith-16vcpu-windows-2025` | `checks-windows` |
| `blacksmith-6vcpu-macos-latest` | `openclaw/openclaw` üzerinde `macos-node`; fork'lar `macos-latest`'e geri döner |
| `blacksmith-12vcpu-macos-latest` | `openclaw/openclaw` üzerinde `macos-swift`; fork'lar `macos-latest`'e geri döner |
| Çalıştırıcı | İşler |
| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ubuntu-24.04` | `preflight`, hızlı güvenlik işleri ve toplamları (`security-scm-fast`, `security-dependency-audit`, `security-fast`), hızlı protokol/sözleşme/paketli kontroller, parçalanmış kanal sözleşmesi kontrolleri, lint dışındaki `check` parçaları, `check-additional` parçaları ve toplamları, Node test toplamı doğrulayıcıları, dokümantasyon kontrolleri, Python skills, workflow-sanity, labeler, auto-response; install-smoke preflight da GitHub barındırmalı Ubuntu kullanır, böylece Blacksmith matrisi daha erken kuyruğa alınabilir |
| `blacksmith-4vcpu-ubuntu-2404` | `CodeQL Critical Quality`, daha düşük ağırlıklı extension parçaları, `checks-fast-core`, `checks-node-compat-node22`, `check-prod-types` ve `check-test-types` |
| `blacksmith-8vcpu-ubuntu-2404` | `build-artifacts`, build-smoke, Linux Node test parçaları, paketli plugin test parçaları, `android` |
| `blacksmith-16vcpu-ubuntu-2404` | `check-lint` (CPU duyarlılığı nedeniyle 8 vCPU tasarruf ettiğinden daha pahalıya mal oldu); install-smoke Docker derlemeleri (32 vCPU kuyruk süresi, tasarruf ettiğinden daha pahalıya mal oldu) |
| `blacksmith-16vcpu-windows-2025` | `checks-windows` |
| `blacksmith-6vcpu-macos-latest` | `openclaw/openclaw` üzerinde `macos-node`; forklar `macos-latest` değerine geri döner |
| `blacksmith-12vcpu-macos-latest` | `openclaw/openclaw` üzerinde `macos-swift`; forklar `macos-latest` değerine geri döner |
## Yerel eşdeğerler
@ -117,27 +117,31 @@ pnpm test:perf:groups:compare .artifacts/test-perf/baseline-before.json .artifac
## Tam Sürüm Doğrulaması
`Full Release Validation`, "sürümden önce her şeyi çalıştır" için kullanılan manuel şemsiye iş akışıdır. Bir dal, etiket veya tam commit SHA'sı kabul eder; manuel `CI` iş akışını bu hedefle başlatır, yalnızca sürüme yönelik Plugin/paket/statik/Docker kanıtı için `Plugin Prerelease` iş akışını başlatır ve install smoke, package acceptance, Docker sürüm yolu takımları, canlı/E2E, OpenWebUI, QA Lab eşliği, Matrix ve Telegram hatları için `OpenClaw Release Checks` iş akışını başlatır. Yayımlanmış bir paket belirtimi sağlandığında yayın sonrası `NPM Telegram Beta E2E` iş akışını da çalıştırabilir.
`Full Release Validation`, “sürümden önce her şeyi çalıştır” için kullanılan manuel şemsiye workflowdur. Bir dal, etiket veya tam commit SHA kabul eder; bu hedefle manuel `CI` workflowunu tetikler, yalnızca sürüme yönelik plugin/paket/statik/Docker kanıtı için `Plugin Prerelease` çalıştırır ve install smoke, package acceptance, Docker release-path paketleri, live/E2E, OpenWebUI, QA Lab parity, Matrix ve Telegram hatları için `OpenClaw Release Checks` çalıştırır. Yayınlanmış bir paket belirtimi sağlandığında, yayın sonrası `NPM Telegram Beta E2E` workflowunu da çalıştırabilir.
`release_profile`, sürüm denetimlerine geçirilen canlı/provider kapsamını kontrol eder:
Aşama matrisi, tam workflow iş adları, profil farkları, artifactler ve odaklı yeniden çalıştırma tanıtıcıları için [Tam sürüm doğrulaması](/tr/reference/full-release-validation) bölümüne bakın.
- `minimum`, en hızlı OpenAI/çekirdek sürüm açısından kritik hatları tutar.
`release_profile`, sürüm kontrollerine aktarılan canlı/provider kapsamını denetler. Manuel sürüm workflowları varsayılan olarak `stable` kullanır; `full` değerini yalnızca geniş advisory provider/media matrisini bilerek istediğinizde kullanın.
- `minimum`, en hızlı OpenAI/core sürüm açısından kritik hatları korur.
- `stable`, kararlı provider/backend kümesini ekler.
- `full`, geniş danışma amaçlı provider/medya matrisini çalıştırır.
- `full`, geniş advisory provider/media matrisini çalıştırır.
Şemsiye, başlatılan alt çalışma kimliklerini kaydeder ve son `Verify full validation` işi, mevcut alt çalışma sonuçlarını yeniden denetleyip her alt çalışma için en yavaş iş tablolarını ekler. Bir alt iş akışı yeniden çalıştırılıp yeşile dönerse, şemsiye sonucunu ve zamanlama özetini yenilemek için yalnızca üst doğrulayıcı işi yeniden çalıştırın.
Şemsiye, tetiklenen alt çalıştırma kimliklerini kaydeder ve son `Verify full validation` işi, mevcut alt çalıştırma sonuçlarını yeniden kontrol edip her alt çalıştırma için en yavaş iş tablolarını ekler. Bir alt workflow yeniden çalıştırılır ve yeşile dönerse, şemsiye sonucunu ve zamanlama özetini yenilemek için yalnızca üst doğrulayıcı işi yeniden çalıştırın.
Kurtarma için hem `Full Release Validation` hem de `OpenClaw Release Checks`, `rerun_group` kabul eder. Bir sürüm adayı için `all`, yalnızca normal tam CI alt çalışması için `ci`, her sürüm alt çalışması için `release-checks` veya daha dar bir grup kullanın: şemsiye üzerinde `install-smoke`, `cross-os`, `live-e2e`, `package`, `qa`, `qa-parity`, `qa-live` ya da `npm-telegram`. Bu, odaklı bir düzeltmeden sonra başarısız bir sürüm kutusunun yeniden çalıştırılmasını sınırlı tutar.
Kurtarma için hem `Full Release Validation` hem de `OpenClaw Release Checks`, `rerun_group` kabul eder. Bir sürüm adayı için `all`, yalnızca normal tam CI alt çalıştırması için `ci`, yalnızca plugin prerelease alt çalıştırması için `plugin-prerelease`, her sürüm alt çalıştırması için `release-checks` veya daha dar bir grup kullanın: şemsiye üzerinde `install-smoke`, `cross-os`, `live-e2e`, `package`, `qa`, `qa-parity`, `qa-live` ya da `npm-telegram`. Bu, odaklı bir düzeltmeden sonra başarısız bir sürüm kutusunun yeniden çalıştırmasını sınırlı tutar.
`OpenClaw Release Checks`, seçilen ref'i bir kez `release-package-under-test` tarball'ına çözümlemek için güvenilen iş akışı ref'ini kullanır, ardından bu yapıtı hem canlı/E2E sürüm yolu Docker iş akışına hem de package acceptance parçasına geçirir. Bu, paket baytlarını sürüm kutuları arasında tutarlı tutar ve aynı adayın birden fazla alt işte yeniden paketlenmesini önler.
`OpenClaw Release Checks`, seçilen refi bir kez `release-package-under-test` tarballına çözmek için güvenilen workflow refini kullanır, ardından bu artifacti hem canlı/E2E release-path Docker workflowuna hem de package acceptance parçasına aktarır. Bu, paket baytlarını sürüm kutuları arasında tutarlı tutar ve aynı adayın birden çok alt işte yeniden paketlenmesini önler.
`ref=main` ve `rerun_group=all` için yinelenen `Full Release Validation` çalıştırmaları eski şemsiyenin yerini alır. Üst izleyici, üst çalıştırma iptal edildiğinde önceden tetiklediği tüm alt workflowları iptal eder; böylece daha yeni main doğrulaması, eski iki saatlik bir release-check çalıştırmasının arkasında beklemez. Sürüm dalı/etiket doğrulaması ve odaklı yeniden çalıştırma grupları `cancel-in-progress: false` değerini korur.
## Canlı ve E2E parçaları
Sürüm canlı/E2E alt çalışması geniş yerel `pnpm test:live` kapsamını korur, ancak bunu tek bir seri iş yerine `scripts/test-live-shard.mjs` üzerinden adlandırılmış parçalar olarak çalıştırır:
Sürüm live/E2E alt çalıştırması, geniş yerel `pnpm test:live` kapsamını korur, ancak bunu tek bir seri iş yerine `scripts/test-live-shard.mjs` üzerinden adlandırılmış parçalar olarak çalıştırır:
- `native-live-src-agents`
- `native-live-src-gateway-core`
- provider ile filtrelenmiş `native-live-src-gateway-profiles` işleri
- provider filtreli `native-live-src-gateway-profiles` işleri
- `native-live-src-gateway-backends`
- `native-live-test`
- `native-live-extensions-a-k`
@ -145,57 +149,57 @@ Sürüm canlı/E2E alt çalışması geniş yerel `pnpm test:live` kapsamını k
- `native-live-extensions-openai`
- `native-live-extensions-o-z-other`
- `native-live-extensions-xai`
- bölünmüş medya ses/video parçaları ve provider ile filtrelenmiş müzik parçaları
- bölünmüş medya audio/video parçaları ve provider filtreli music parçaları
Bu, aynı dosya kapsamını korurken yavaş canlı provider hatalarının yeniden çalıştırılmasını ve teşhis edilmesini kolaylaştırır. Toplam `native-live-extensions-o-z`, `native-live-extensions-media` ve `native-live-extensions-media-music` parça adları, manuel tek seferlik yeniden çalıştırmalar için geçerli kalır.
Bu, yavaş canlı provider hatalarını yeniden çalıştırmayı ve tanılamayı kolaylaştırırken aynı dosya kapsamını korur. Toplam `native-live-extensions-o-z`, `native-live-extensions-media` ve `native-live-extensions-media-music` parça adları, manuel tek seferlik yeniden çalıştırmalar için geçerli kalır.
Yerel canlı medya parçaları, `Live Media Runner Image` iş akışı tarafından oluşturulan `ghcr.io/openclaw/openclaw-live-media-runner:ubuntu-24.04` içinde çalışır. Bu imaj `ffmpeg` ve `ffprobe` öğelerini önceden kurar; medya işleri kurulumdan önce yalnızca ikili dosyaları doğrular. Docker destekli canlı takımları normal Blacksmith çalıştırıcılarında tutun — container işleri, iç içe Docker testleri başlatmak için yanlış yerdir.
Yerel canlı medya parçaları, `Live Media Runner Image` workflowu tarafından derlenen `ghcr.io/openclaw/openclaw-live-media-runner:ubuntu-24.04` içinde çalışır. Bu imaj `ffmpeg` ve `ffprobe` önceden kurulu gelir; medya işleri kurulumdan önce yalnızca ikilileri doğrular. Docker destekli canlı paketleri normal Blacksmith çalıştırıcılarında tutun; container işleri iç içe Docker testlerini başlatmak için yanlış yerdir.
Docker destekli canlı model/backend parçaları, seçilen commit başına ayrı bir paylaşılan `ghcr.io/openclaw/openclaw-live-test:<sha>` imajı kullanır. Canlı sürüm iş akışı bu imajı bir kez oluşturup gönderir; ardından Docker canlı model, Gateway, CLI backend, ACP bind ve Codex harness parçaları `OPENCLAW_SKIP_DOCKER_BUILD=1` ile çalışır. Bu parçalar tam kaynak Docker hedefini bağımsız olarak yeniden oluşturursa, sürüm çalışması yanlış yapılandırılmıştır ve yinelenen imaj derlemelerinde duvar saati zamanını boşa harcar.
Docker destekli canlı model/backend parçaları, seçilen commit başına ayrı bir paylaşılan `ghcr.io/openclaw/openclaw-live-test:<sha>` imajı kullanır. Canlı sürüm workflowu bu imajı bir kez derleyip gönderir; ardından Docker canlı model, providera göre parçalanmış Gateway, CLI backend, ACP bind ve Codex harness parçaları `OPENCLAW_SKIP_DOCKER_BUILD=1` ile çalışır. Gateway Docker parçaları, takılmış bir container veya cleanup yolu tüm release-check bütçesini tüketmek yerine hızlı başarısız olsun diye workflow işi timeout değerinin altında açık script düzeyi `timeout` sınırları taşır. Bu parçalar tam kaynak Docker hedefini bağımsız olarak yeniden derlerse, sürüm çalıştırması yanlış yapılandırılmıştır ve yinelenen imaj derlemelerinde duvar saati süresi harcar.
## Package Acceptance
"Bu kurulabilir OpenClaw paketi bir ürün olarak çalışıyor mu?" sorusu için `Package Acceptance` kullanın. Normal CI'dan farklıdır: normal CI kaynak ağacını doğrularken, package acceptance tek bir tarball'ı kullanıcıların kurulum veya güncellemeden sonra kullandığı aynı Docker E2E harness üzerinden doğrular.
Soru “bu kurulabilir OpenClaw paketi ürün olarak çalışıyor mu?” olduğunda `Package Acceptance` kullanın. Normal CIdan farklıdır: normal CI kaynak ağacını doğrularken, package acceptance tek bir tarballı kullanıcıların kurulum veya güncelleme sonrasında kullandığı aynı Docker E2E harness üzerinden doğrular.
### İşler
1. `resolve_package`, `workflow_ref` için checkout yapar, bir paket adayını çözümler, `.artifacts/docker-e2e-package/openclaw-current.tgz` yazar, `.artifacts/docker-e2e-package/package-candidate.json` yazar, ikisini de `package-under-test` yapıtı olarak yükler ve GitHub adım özetinde kaynağı, iş akışı ref'ini, paket ref'ini, sürümü, SHA-256'yı ve profili yazdırır.
2. `docker_acceptance`, `ref=workflow_ref` ve `package_artifact_name=package-under-test` ile `openclaw-live-and-e2e-checks-reusable.yml` öğesini çağırır. Yeniden kullanılabilir iş akışı bu yapıtı indirir, tarball envanterini doğrular, gerektiğinde paket özeti Docker imajlarını hazırlar ve seçilen Docker hatlarını iş akışı checkout'unu paketlemek yerine bu pakete karşı çalıştırır. Bir profil birden fazla hedefli `docker_lanes` seçtiğinde, yeniden kullanılabilir iş akışı paketi ve paylaşılan imajları bir kez hazırlar, ardından bu hatları benzersiz yapıtlarla paralel hedefli Docker işleri olarak dağıtır.
3. `package_telegram`, isteğe bağlı olarak `NPM Telegram Beta E2E` öğesini çağırır. `telegram_mode`, `none` olmadığında çalışır ve Package Acceptance bir paket çözümlediyse aynı `package-under-test` yapıtını kurar; bağımsız Telegram başlatması yine de yayımlanmış bir npm belirtimini kurabilir.
4. `summary`, paket çözümleme, Docker acceptance veya isteğe bağlı Telegram hattı başarısız olursa iş akışını başarısız kılar.
1. `resolve_package`, `workflow_ref` için checkout yapar, bir paket adayını çözümler, `.artifacts/docker-e2e-package/openclaw-current.tgz` dosyasını yazar, `.artifacts/docker-e2e-package/package-candidate.json` dosyasını yazar, ikisini de `package-under-test` artifact'ı olarak yükler ve GitHub adım özetinde kaynak, iş akışı ref'i, paket ref'i, sürüm, SHA-256 ve profili yazdırır.
2. `docker_acceptance`, `ref=workflow_ref` ve `package_artifact_name=package-under-test` ile `openclaw-live-and-e2e-checks-reusable.yml` dosyasını çağırır. Yeniden kullanılabilir iş akışı bu artifact'ı indirir, tar arşivi envanterini doğrular, gerektiğinde paket özetli Docker imajlarını hazırlar ve seçili Docker hatlarını iş akışı checkout'unu paketlemek yerine bu pakete karşı çalıştırır. Bir profil birden çok hedefli `docker_lanes` seçtiğinde, yeniden kullanılabilir iş akışı paketi ve paylaşılan imajları bir kez hazırlar, ardından bu hatları benzersiz artifact'lara sahip paralel hedefli Docker işleri olarak dağıtır.
3. `package_telegram` isteğe bağlı olarak `NPM Telegram Beta E2E` çağırır. `telegram_mode`, `none` olmadığında çalışır ve Package Acceptance bir paket çözümlediyse aynı `package-under-test` artifact'ını kurar; bağımsız Telegram tetiklemesi yayımlanmış bir npm belirtimini kurmaya devam edebilir.
4. `summary`, paket çözümleme, Docker kabulü veya isteğe bağlı Telegram hattı başarısız olursa iş akışını başarısız yapar.
### Aday kaynaklar
- `source=npm` yalnızca `openclaw@beta`, `openclaw@latest` veya `openclaw@2026.4.27-beta.2` gibi tam bir OpenClaw yayın sürümünü kabul eder. Bunu yayımlanmış beta/kararlı kabulü için kullanın.
- `source=ref` güvenilir bir `package_ref` dalını, etiketini veya tam commit SHA değerini paketler. Çözümleyici OpenClaw dallarını/etiketlerini getirir, seçilen commit'in depo dal geçmişinden veya bir yayın etiketinden erişilebilir olduğunu doğrular, bağımlılıkları ayrık bir çalışma ağacına yükler ve `scripts/package-openclaw-for-docker.mjs` ile paketler.
- `source=url` bir HTTPS `.tgz` indirir; `package_sha256` zorunludur.
- `source=artifact` `artifact_run_id` ve `artifact_name` üzerinden bir `.tgz` indirir; `package_sha256` isteğe bağlıdır ancak dışarıyla paylaşılan yapıtlar için sağlanmalıdır.
- `source=ref`, güvenilir bir `package_ref` dalını, etiketini veya tam commit SHA'sını paketler. Çözümleyici OpenClaw dallarını/etiketlerini getirir, seçilen commit'in depo dal geçmişinden veya bir yayın etiketinden erişilebilir olduğunu doğrular, bağımlılıkları ayrılmış bir worktree içinde kurar ve `scripts/package-openclaw-for-docker.mjs` ile paketler.
- `source=url`, bir HTTPS `.tgz` indirir; `package_sha256` zorunludur.
- `source=artifact`, `artifact_run_id` ve `artifact_name` içinden bir `.tgz` indirir; `package_sha256` isteğe bağlıdır ancak dışarıdan paylaşılan artifact'lar için sağlanmalıdır.
`workflow_ref` ve `package_ref` değerlerini ayrı tutun. `workflow_ref`, testi çalıştıran güvenilir workflow/harness kodudur. `package_ref`, `source=ref` olduğunda paketlenen kaynak commit'tir. Bu, mevcut test harness'inin eski workflow mantığını çalıştırmadan daha eski güvenilir kaynak commit'lerini doğrulamasını sağlar.
`workflow_ref` ve `package_ref` değerlerini ayrı tutun. `workflow_ref`, testi çalıştıran güvenilir iş akışı/test düzeneği kodudur. `package_ref`, `source=ref` olduğunda paketlenen kaynak commit'tir. Bu, geçerli test düzeneğinin eski iş akışı mantığını çalıştırmadan daha eski güvenilir kaynak commit'lerini doğrulamasını sağlar.
### Paket profilleri
### Test paketi profilleri
- `smoke``npm-onboard-channel-agent`, `gateway-network`, `config-reload`
- `package``npm-onboard-channel-agent`, `doctor-switch`, `update-channel-switch`, `upgrade-survivor`, `bundled-channel-deps-compat`, `plugins-offline`, `plugin-update`
- `package``npm-onboard-channel-agent`, `doctor-switch`, `update-channel-switch`, `upgrade-survivor`, `published-upgrade-survivor`, `bundled-channel-deps-compat`, `plugins-offline`, `plugin-update`
- `product``package` artı `mcp-channels`, `cron-mcp-cleanup`, `openai-web-search-minimal`, `openwebui`
- `full` — OpenWebUI ile tam Docker yayın yolu parçaları
- `custom` — tam `docker_lanes`; `suite_profile=custom` olduğunda zorunludur
`package` profili çevrimdışı Plugin kapsamı kullanır; böylece yayımlanmış paket doğrulaması canlı ClawHub erişilebilirliğine bağlı kalmaz. İsteğe bağlı Telegram hattı `NPM Telegram Beta E2E` içinde `package-under-test` yapıtını yeniden kullanır; yayımlanmış npm spec yolu bağımsız dispatch'ler için korunur.
`package` profili çevrimdışı plugin kapsamı kullanır, böylece yayımlanmış paket doğrulaması canlı ClawHub erişilebilirliğine bağlı kalmaz. İsteğe bağlı Telegram hattı, `NPM Telegram Beta E2E` içinde `package-under-test` artifact'ını yeniden kullanır; yayımlanmış npm belirtimi yolu bağımsız tetiklemeler için korunur.
Yayın kontrolleri Package Acceptance'ı `source=ref`, `package_ref=<release-ref>`, `workflow_ref=<release workflow ref>`, `suite_profile=custom`, `docker_lanes='bundled-channel-deps-compat plugins-offline'` ve `telegram_mode=mock-openai` ile çağırır. Yayın yolu Docker parçaları çakışan paket/güncelleme/Plugin hatlarını kapsar; Package Acceptance aynı çözümlenmiş paket tarball'ına karşı yapıt odaklı paketli kanal uyumluluğunu, çevrimdışı Plugin'i ve Telegram kanıtını korur. Cross-OS yayın kontrolleri OS'e özgü onboarding, yükleyici ve platform davranışını kapsamaya devam eder; paket/güncelleme ürün doğrulaması Package Acceptance ile başlamalıdır. Windows paketli ve yükleyici temiz kurulum hatları ayrıca kurulu bir paketin ham mutlak Windows yolundan bir browser-control override'ı içe aktarabildiğini doğrular. OpenAI cross-OS agent-turn smoke, ayarlanmışsa varsayılan olarak `OPENCLAW_CROSS_OS_OPENAI_MODEL` kullanır; aksi halde `openai/gpt-5.4-mini` kullanır. Böylece kurulum ve Gateway kanıtı hızlı ve deterministik kalır.
Yayın kontrolleri Package Acceptance'ı `source=ref`, `package_ref=<release-ref>`, `workflow_ref=<release workflow ref>`, `suite_profile=custom`, `docker_lanes='bundled-channel-deps-compat plugins-offline'` ve `telegram_mode=mock-openai` ile çağırır. Yayın yolu Docker parçaları örtüşen paket/güncelleme/plugin hatlarını kapsar; Package Acceptance aynı çözümlenen paket tar arşivine karşı artifact'a özgü yerleşik kanal uyumluluğu, çevrimdışı plugin ve Telegram kanıtını korur. Cross-OS yayın kontrolleri OS'e özgü onboarding, yükleyici ve platform davranışını hâlâ kapsar; paket/güncelleme ürün doğrulaması Package Acceptance ile başlamalıdır. `published-upgrade-survivor` Docker hattı çalıştırma başına bir yayımlanmış paket taban çizgisini doğrular. Package Acceptance içinde çözümlenen `package-under-test` tar arşivi her zaman adaydır ve `published_upgrade_survivor_baseline`, varsayılanı `openclaw@latest` olan yedek yayımlanmış taban çizgisini seçer; başarısız hat yeniden çalıştırma komutları bu taban çizgisini korur. Hattı tekilleştirilmiş bir geçmiş matrisi boyunca genişletmek için `published_upgrade_survivor_baselines=release-history` ayarlayın: en son altı kararlı yayın, `2026.4.23` ve `2026-03-15` öncesindeki en son kararlı yayın. Aynı taban çizgilerini Feishu config/runtime-deps, korunmuş bootstrap/persona dosyaları, tilde log yolları ve eski sürümlü runtime-deps kökleri için issue biçimli fixture'lar boyunca genişletmek üzere `published_upgrade_survivor_scenarios=reported-issues` ayarlayın. Yerel toplu çalıştırmalar, `OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPECS` ile tam paket belirtimleri geçirebilir, `openclaw@2026.4.15` gibi `OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC` ile tek bir hattı koruyabilir veya senaryo matrisi için `OPENCLAW_UPGRADE_SURVIVOR_SCENARIOS` ayarlayabilir. Yayımlanmış hat, taban çizgisini hazır bir `openclaw config set` komut tarifiyle yapılandırır, tarif adımlarını `summary.json` içine kaydeder ve Gateway başladıktan sonra `/healthz`, `/readyz` ile RPC durumunu yoklar. Windows paketlenmiş ve yükleyici taze hatları ayrıca kurulu bir paketin ham mutlak Windows yolundan browser-control override'ı içe aktarabildiğini doğrular. OpenAI Cross-OS agent-turn smoke, ayarlandığında varsayılan olarak `OPENCLAW_CROSS_OS_OPENAI_MODEL` kullanır; aksi halde `openai/gpt-5.4-mini` kullanır, böylece kurulum ve gateway kanıtı hızlı ve deterministik kalır.
### Eski uyumluluk pencereleri
Package Acceptance'ın zaten yayımlanmış paketler için sınırlı eski uyumluluk pencereleri vardır. `2026.4.25` ve `2026.4.25-beta.*` dahil bu sürüme kadar olan paketler uyumluluk yolunu kullanabilir:
Package Acceptance, zaten yayımlanmış paketler için sınırlı eski uyumluluk pencerelerine sahiptir. `2026.4.25` dahil olmak üzere `2026.4.25-beta.*` paketleri uyumluluk yolunu kullanabilir:
- `dist/postinstall-inventory.json` içindeki bilinen özel QA girdileri tarball'dan çıkarılmış dosyaları gösterebilir;
- paket bu flag'i açığa çıkarmıyorsa `doctor-switch`, `gateway install --wrapper` kalıcılık alt senaryosunu atlayabilir;
- `update-channel-switch`, tarball'dan türetilmiş sahte git fixture'ından eksik `pnpm.patchedDependencies` girdilerini budayabilir ve eksik kalıcı `update.channel` kaydını loglayabilir;
- Plugin smokes eski install-record konumlarını okuyabilir veya eksik marketplace install-record kalıcılığını kabul edebilir;
- `plugin-update`, install record ve yeniden kurmama davranışının değişmeden kalmasını hâlâ gerektirirken config metadata migration'a izin verebilir.
- `dist/postinstall-inventory.json` içindeki bilinen özel QA girdileri tar arşivinde atlanmış dosyalara işaret edebilir;
- paket bu bayrağı sunmuyorsa `doctor-switch`, `gateway install --wrapper` kalıcılık alt durumunu atlayabilir;
- `update-channel-switch`, tar arşivinden türetilmiş sahte git fixture'ından eksik `pnpm.patchedDependencies` öğelerini budayabilir ve eksik kalıcı `update.channel` kaydı yazabilir;
- plugin smoke testleri eski kurulum kaydı konumlarını okuyabilir veya eksik marketplace kurulum kaydı kalıcılığını kabul edebilir;
- `plugin-update`, kurulum kaydı ve yeniden kurmama davranışının değişmeden kalmasını hâlâ gerektirirken config meta veri geçişine izin verebilir.
Yayımlanmış `2026.4.26` paketi, zaten gönderilmiş yerel build metadata damga dosyaları için de uyarı verebilir. Daha sonraki paketler modern sözleşmeleri karşılamalıdır; aynı koşullar uyarı veya atlama yerine başarısız olur.
Yayımlanmış `2026.4.26` paketi, daha önce yayımlanmış yerel build meta veri damga dosyaları için de uyarı verebilir. Daha sonraki paketler modern sözleşmeleri karşılamalıdır; aynı koşullar uyarı veya atlama yerine başarısız olur.
### Örnekler
@ -238,152 +242,152 @@ gh workflow run package-acceptance.yml \
-f docker_lanes='install-e2e plugin-update'
```
Başarısız bir paket kabul çalıştırmasını hata ayıklarken paket kaynağını, sürümü ve SHA-256 değerini doğrulamak için `resolve_package` özetinden başlayın. Ardından `docker_acceptance` alt çalıştırmasını ve Docker yapıtlarını inceleyin: `.artifacts/docker-tests/**/summary.json`, `failures.json`, hat logları, aşama zamanlamaları ve yeniden çalıştırma komutları. Tam yayın doğrulamasını yeniden çalıştırmak yerine başarısız paket profilini veya tam Docker hatlarını yeniden çalıştırmayı tercih edin.
Başarısız bir paket kabul çalıştırmasını debug ederken paket kaynağını, sürümünü ve SHA-256 değerini doğrulamak için `resolve_package` özetinden başlayın. Ardından `docker_acceptance` alt çalıştırmasını ve Docker artifact'larını inceleyin: `.artifacts/docker-tests/**/summary.json`, `failures.json`, hat günlükleri, aşama süreleri ve yeniden çalıştırma komutları. Tam yayın doğrulamasını yeniden çalıştırmak yerine başarısız paket profilini veya tam Docker hatlarını yeniden çalıştırmayı tercih edin.
## Kurulum smoke
## Kurulum smoke testi
Ayrı `Install Smoke` workflow'u aynı scope betiğini kendi `preflight` işi üzerinden yeniden kullanır. Smoke kapsamını `run_fast_install_smoke` ve `run_full_install_smoke` olarak böler.
Ayrı `Install Smoke` iş akışı, aynı kapsam betiğini kendi `preflight` işi üzerinden yeniden kullanır. Smoke kapsamını `run_fast_install_smoke` ve `run_full_install_smoke` olarak ayırır.
- **Hızlı yol**, Docker/paket yüzeylerine, paketli Plugin paket/manifest değişikliklerine veya Docker smoke işlerinin çalıştırdığı çekirdek Plugin/kanal/Gateway/Plugin SDK yüzeylerine dokunan pull request'ler için çalışır. Yalnızca kaynak kodu içeren paketli Plugin değişiklikleri, yalnızca test düzenlemeleri ve yalnızca dokümantasyon düzenlemeleri Docker worker ayırmaz. Hızlı yol kök Dockerfile imajını bir kez build eder, CLI'yi kontrol eder, agents delete shared-workspace CLI smoke çalıştırır, container gateway-network e2e çalıştırır, paketli extension build arg'ını doğrular ve 240 saniyelik toplam komut zaman aşımı altında sınırlı paketli-Plugin Docker profilini çalıştırır (her senaryonun Docker çalıştırması ayrı ayrı sınırlandırılır).
- **Tam yol**, QR paket kurulumu ve yükleyici Docker/güncelleme kapsamını gece zamanlanmış çalıştırmalar, manuel dispatch'ler, workflow-call yayın kontrolleri ve gerçekten yükleyici/paket/Docker yüzeylerine dokunan pull request'ler için korur. Tam modda install-smoke, bir hedef-SHA GHCR kök Dockerfile smoke imajı hazırlar veya yeniden kullanır; ardından QR paket kurulumu, kök Dockerfile/Gateway smokes, yükleyici/güncelleme smokes ve hızlı paketli-Plugin Docker E2E'yi ayrı işler olarak çalıştırır. Böylece yükleyici işi kök imaj smokes arkasında beklemez.
- **Hızlı yol**, Docker/paket yüzeylerine, yerleşik plugin paket/manifest değişikliklerine veya Docker smoke işlerinin çalıştırdığı çekirdek plugin/kanal/gateway/Plugin SDK yüzeylerine dokunan pull request'ler için çalışır. Yalnızca kaynak kodlu yerleşik plugin değişiklikleri, yalnızca test düzenlemeleri ve yalnızca doküman düzenlemeleri Docker worker'ları ayırmaz. Hızlı yol kök Dockerfile imajını bir kez oluşturur, CLI'yi denetler, agents delete shared-workspace CLI smoke testini çalıştırır, container gateway-network e2e'yi çalıştırır, yerleşik extension build arg'ını doğrular ve sınırlı yerleşik plugin Docker profilini 240 saniyelik toplu komut zaman aşımı altında çalıştırır (her senaryonun Docker çalıştırması ayrı olarak sınırlandırılır).
- **Tam yol**, QR paket kurulumu ve yükleyici Docker/güncelleme kapsamını gecelik zamanlanmış çalıştırmalar, manuel tetiklemeler, workflow-call yayın kontrolleri ve gerçekten yükleyici/paket/Docker yüzeylerine dokunan pull request'ler için korur. Tam modda install-smoke, bir hedef SHA GHCR kök Dockerfile smoke imajı hazırlar veya yeniden kullanır; ardından QR paket kurulumu, kök Dockerfile/gateway smoke testleri, yükleyici/güncelleme smoke testleri ve hızlı yerleşik plugin Docker E2E'yi ayrı işler olarak çalıştırır, böylece yükleyici işi kök imaj smoke testlerinin arkasında beklemez.
`main` push'ları (merge commit'ler dahil) tam yolu zorlamaz; değişiklik kapsamı mantığı bir push'ta tam kapsam istediğinde workflow hızlı Docker smoke'u korur ve tam install smoke'u gece veya yayın doğrulamasına bırakır.
`main` push'ları (merge commit'leri dahil) tam yolu zorlamaz; değişen kapsam mantığı bir push'ta tam kapsam istediğinde, iş akışı hızlı Docker smoke testini korur ve tam install smoke testini gecelik veya yayın doğrulamasına bırakır.
Yavaş Bun global kurulum image-provider smoke, `run_bun_global_install_smoke` tarafından ayrı şekilde kapılanır. Gece zamanlamasında ve yayın kontrolleri workflow'undan çalışır; manuel `Install Smoke` dispatch'leri buna dahil olmayı seçebilir, ancak pull request'ler ve `main` push'ları çalıştırmaz. QR ve yükleyici Docker testleri kendi kurulum odaklı Dockerfile'larını korur.
Yavaş Bun global kurulum image-provider smoke testi ayrıca `run_bun_global_install_smoke` ile kapılanır. Gecelik zamanlamada ve yayın kontrolleri iş akışından çalışır; manuel `Install Smoke` tetiklemeleri bunu dahil etmeyi seçebilir, ancak pull request'ler ve `main` push'ları çalıştırmaz. QR ve yükleyici Docker testleri kendi kurulum odaklı Dockerfile'larını korur.
## Yerel Docker E2E
`pnpm test:docker:all` tek bir paylaşılan canlı test imajını önceden build eder, OpenClaw'ı bir npm tarball'ı olarak bir kez paketler ve iki paylaşılan `scripts/e2e/Dockerfile` imajı build eder:
`pnpm test:docker:all` bir paylaşılan canlı test imajını önceden oluşturur, OpenClaw'ı npm tar arşivi olarak bir kez paketler ve iki paylaşılan `scripts/e2e/Dockerfile` imajı oluşturur:
- yükleyici/güncelleme/Plugin bağımlılığı hatları için yalın bir Node/Git runner;
- normal işlevsellik hatları için aynı tarball'ı `/app` içine yükleyen işlevsel bir imaj.
- yükleyici/güncelleme/plugin bağımlılığı hatları için yalın bir Node/Git runner;
- aynı tar arşivini normal işlevsellik hatları için `/app` içine kuran işlevsel bir imaj.
Docker hat tanımları `scripts/lib/docker-e2e-scenarios.mjs` içinde, planlayıcı mantığı `scripts/lib/docker-e2e-plan.mjs` içinde bulunur ve runner yalnızca seçilen planı çalıştırır. Zamanlayıcı hat başına imajı `OPENCLAW_DOCKER_E2E_BARE_IMAGE` ve `OPENCLAW_DOCKER_E2E_FUNCTIONAL_IMAGE` ile seçer, ardından hatları `OPENCLAW_SKIP_DOCKER_BUILD=1` ile çalıştırır.
Docker hat tanımları `scripts/lib/docker-e2e-scenarios.mjs` içinde bulunur, planlayıcı mantığı `scripts/lib/docker-e2e-plan.mjs` içinde bulunur ve runner yalnızca seçilen planı yürütür. Zamanlayıcı imajı hat başına `OPENCLAW_DOCKER_E2E_BARE_IMAGE` ve `OPENCLAW_DOCKER_E2E_FUNCTIONAL_IMAGE` ile seçer, ardından hatları `OPENCLAW_SKIP_DOCKER_BUILD=1` ile çalıştırır.
### Ayarlanabilirler
| Değişken | Varsayılan | Amaç |
| ------------------------------------- | ---------- | --------------------------------------------------------------------------------------------- |
| `OPENCLAW_DOCKER_ALL_PARALLELISM` | 10 | Normal hatlar için ana havuz slot sayısı. |
| `OPENCLAW_DOCKER_ALL_TAIL_PARALLELISM` | 10 | Provider'a duyarlı kuyruk havuzu slot sayısı. |
| `OPENCLAW_DOCKER_ALL_LIVE_LIMIT` | 9 | Provider'ların throttle uygulamaması için eşzamanlı canlı hat sınırı. |
| `OPENCLAW_DOCKER_ALL_NPM_LIMIT` | 10 | Eşzamanlı npm kurulum hattı sınırı. |
| `OPENCLAW_DOCKER_ALL_SERVICE_LIMIT` | 7 | Eşzamanlı çok hizmetli hat sınırı. |
| `OPENCLAW_DOCKER_ALL_START_STAGGER_MS` | 2000 | Docker daemon create fırtınalarını önlemek için hat başlangıçları arasındaki gecikme; gecikme istemiyorsanız `0` olarak ayarlayın. |
| `OPENCLAW_DOCKER_ALL_LANE_TIMEOUT_MS` | 7200000 | Hat başına yedek zaman aşımı (120 dakika); seçili canlı/kuyruk hatları daha sıkı sınırlar kullanır. |
| `OPENCLAW_DOCKER_ALL_DRY_RUN` | unset | `1`, hatları çalıştırmadan zamanlayıcı planını yazdırır. |
| `OPENCLAW_DOCKER_ALL_LANES` | unset | Virgülle ayrılmış tam hat listesi; agent'ların tek bir başarısız hattı yeniden üretebilmesi için cleanup smoke'u atlar. |
| Değişken | Varsayılan | Amaç |
| ------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------- |
| `OPENCLAW_DOCKER_ALL_PARALLELISM` | 10 | Normal hatlar için ana havuz yuva sayısı. |
| `OPENCLAW_DOCKER_ALL_TAIL_PARALLELISM` | 10 | Sağlayıcıya duyarlı kuyruk havuzu yuva sayısı. |
| `OPENCLAW_DOCKER_ALL_LIVE_LIMIT` | 9 | Sağlayıcıların kısıtlama uygulamaması için eşzamanlı canlı hat üst sınırı. |
| `OPENCLAW_DOCKER_ALL_NPM_LIMIT` | 10 | Eşzamanlı npm kurulum hattı üst sınırı. |
| `OPENCLAW_DOCKER_ALL_SERVICE_LIMIT` | 7 | Eşzamanlı çok hizmetli hat üst sınırı. |
| `OPENCLAW_DOCKER_ALL_START_STAGGER_MS` | 2000 | Docker daemon oluşturma fırtınalarını önlemek için hat başlangıçları arasındaki kademelendirme; kademelendirme olmaması için `0` ayarlayın. |
| `OPENCLAW_DOCKER_ALL_LANE_TIMEOUT_MS` | 7200000 | Hat başına yedek zaman aşımı (120 dakika); seçili canlı/kuyruk hatları daha sıkı üst sınırlar kullanır. |
| `OPENCLAW_DOCKER_ALL_DRY_RUN` | unset | `1`, hatları çalıştırmadan zamanlayıcı planını yazdırır. |
| `OPENCLAW_DOCKER_ALL_LANES` | unset | Virgülle ayrılmış tam hat listesi; ajanların başarısız olan tek bir hattı yeniden üretebilmesi için temizlik smoke testini atlar. |
Etkin sınırından daha ağır bir hat yine de boş bir havuzdan başlayabilir, ardından kapasiteyi serbest bırakana kadar tek başına çalışır. Yerel toplam preflight'lar Docker'ı kontrol eder, eski OpenClaw E2E container'larını kaldırır, aktif hat durumunu yayımlar, en uzun önce sıralama için hat zamanlamalarını kalıcılaştırır ve varsayılan olarak ilk başarısızlıktan sonra yeni havuz hatları zamanlamayı durdurur.
Etkili üst sınırından daha ağır olan bir hat, boş bir havuzdan yine de başlayabilir ve ardından kapasiteyi serbest bırakana kadar tek başına çalışır. Yerel toplama Docker ön kontrollerini yapar, eski OpenClaw E2E kapsayıcılarını kaldırır, etkin hat durumunu yayımlar, en uzundan önce sıralama için hat sürelerini kalıcı hale getirir ve varsayılan olarak ilk hatadan sonra yeni havuzlanmış hatları zamanlamayı durdurur.
### Yeniden kullanılabilir canlı/E2E workflow
### Yeniden kullanılabilir canlı/E2E iş akışı
Yeniden kullanılabilir canlı/E2E workflow, hangi paket, imaj türü, canlı imaj, hat ve credential kapsamının gerektiğini `scripts/test-docker-all.mjs --plan-json` komutuna sorar. Ardından `scripts/docker-e2e.mjs` bu planı GitHub çıktıları ve özetlerine dönüştürür. OpenClaw'ı `scripts/package-openclaw-for-docker.mjs` üzerinden paketler, mevcut çalıştırma paket yapıtını indirir veya `package_artifact_run_id` inden bir paket yapıtı indirir; tarball envanterini doğrular; plan paket yüklü hatlar gerektirdiğinde Blacksmith'in Docker katman önbelleği üzerinden paket-digest etiketli yalın/işlevsel GHCR Docker E2E imajlarını build edip push eder; sağlanan `docker_e2e_bare_image`/`docker_e2e_functional_image` girdilerini veya mevcut paket-digest imajlarını yeniden build etmek yerine yeniden kullanır. Docker imaj çekmeleri, kayıt/cache akışı takıldığında CI kritik yolunun çoğunu tüketmek yerine hızlıca yeniden denensin diye deneme başına sınırlı 180 saniyelik zaman aşımıyla yeniden denenir.
Yeniden kullanılabilir canlı/E2E iş akışı, hangi paket, görüntü türü, canlı görüntü, hat ve kimlik bilgisi kapsamının gerekli olduğunu `scripts/test-docker-all.mjs --plan-json` ile sorar. Ardından `scripts/docker-e2e.mjs` bu planı GitHub çıktıları ve özetlerine dönüştürür. Plan paket kurulmuş hatlar gerektirdiğinde OpenClaw paketini `scripts/package-openclaw-for-docker.mjs` üzerinden paketler, mevcut çalıştırmadan bir paket yapıtı indirir veya `package_artifact_run_id` üzerinden bir paket yapıtı indirir; tarball envanterini doğrular; Blacksmith'in Docker katman önbelleği üzerinden paket özet etiketiyle etiketlenmiş çıplak/işlevsel GHCR Docker E2E görüntülerini derler ve gönderir; ve yeniden derlemek yerine sağlanan `docker_e2e_bare_image`/`docker_e2e_functional_image` girdilerini ya da mevcut paket özet görüntülerini yeniden kullanır. Docker görüntü çekmeleri, takılı kalan bir kayıt/önbellek akışının CI kritik yolunun çoğunu tüketmek yerine hızla yeniden denenmesi için deneme başına sınırlı 180 saniyelik zaman aşımıyla yeniden denenir.
### Yayın yolu parçaları
Yayın Docker kapsamı `OPENCLAW_SKIP_DOCKER_BUILD=1` ile daha küçük parçalı işler çalıştırır; böylece her parça yalnızca ihtiyaç duyduğu imaj türünü çeker ve aynıırlıklı zamanlayıcı üzerinden birden çok hattı yürütür:
Yayın Docker kapsamı, `OPENCLAW_SKIP_DOCKER_BUILD=1` ile daha küçük parçalanmış işler çalıştırır; böylece her parça yalnızca ihtiyaç duyduğu görüntü türünü çeker ve aynıırlıklı zamanlayıcı üzerinden birden çok hattı yürütür:
- `OPENCLAW_DOCKER_ALL_PROFILE=release-path`
- `OPENCLAW_DOCKER_ALL_CHUNK=core | package-update-openai | package-update-anthropic | package-update-core | plugins-runtime-plugins | plugins-runtime-services | plugins-runtime-install-a..h | bundled-channels`
Geçerli sürüm Docker parçaları `core`, `package-update-openai`, `package-update-anthropic`, `package-update-core`, `plugins-runtime-plugins`, `plugins-runtime-services`, `plugins-runtime-install-a` ile `plugins-runtime-install-h`, `bundled-channels-core`, `bundled-channels-update-a`, `bundled-channels-update-discord`, `bundled-channels-update-b` ve `bundled-channels-contracts` şeklindedir. Toplu `bundled-channels` parçası, manuel tek seferlik yeniden çalıştırmalar için kullanılabilir kalır; `plugins-runtime-core`, `plugins-runtime` ve `plugins-integrations` ise toplu Plugin/runtime takma adları olarak kalır. `install-e2e` hat takma adı, her iki sağlayıcı yükleyici hattı için toplu manuel yeniden çalıştırma takma adı olarak kalır. `bundled-channels` parçası, seri hepsi bir arada `bundled-channel-deps` hattı yerine bölünmüş `bundled-channel-*` ve `bundled-channel-update-*` hatlarını çalıştırır.
Mevcut yayın Docker parçaları `core`, `package-update-openai`, `package-update-anthropic`, `package-update-core`, `plugins-runtime-plugins`, `plugins-runtime-services`, `plugins-runtime-install-a` ile `plugins-runtime-install-h` arası, `bundled-channels-core`, `bundled-channels-update-a`, `bundled-channels-update-discord`, `bundled-channels-update-b` ve `bundled-channels-contracts` şeklindedir. Toplu `bundled-channels` parçası, elle tek seferlik yeniden çalıştırmalar için kullanılabilir kalır; `plugins-runtime-core`, `plugins-runtime` ve `plugins-integrations` ise toplu Plugin/çalışma zamanı takma adları olarak kalır. `install-e2e` hat takma adı, her iki sağlayıcı yükleyici hattı için toplu elle yeniden çalıştırma takma adı olarak kalır. `bundled-channels` parçası, seri tek parça `bundled-channel-deps` hattı yerine bölünmüş `bundled-channel-*` ve `bundled-channel-update-*` hatlarını çalıştırır.
Tam sürüm yolu kapsamı istediğinde OpenWebUI `plugins-runtime-services` içine katlanır ve yalnızca OpenWebUIye özel tetiklemeler için bağımsız bir `openwebui` parçası tutar. Paketlenmiş kanal güncelleme hatları, geçici npm ağ hatalarında bir kez yeniden dener.
Tam yayın yolu kapsamı bunu istediğinde OpenWebUI, `plugins-runtime-services` içine katılır ve yalnızca OpenWebUI'ye özel gönderimler için bağımsız bir `openwebui` parçası tutar. Birlikte gelen kanal güncelleme hatları, geçici npm ağ hataları için bir kez yeniden dener.
Her parça, hat günlükleri, zamanlamalar, `summary.json`, `failures.json`, aşama zamanlamaları, zamanlayıcı planı JSONu, yavaş hat tabloları ve hat başına yeniden çalıştırma komutlarıyla birlikte `.artifacts/docker-tests/` yükler. İş akışı `docker_lanes` girdisi, parça işleri yerine hazırlanmış imajlara karşı seçilen hatları çalıştırır; bu, başarısız hat hata ayıklamasını hedefli tek bir Docker işiyle sınırlı tutar ve o çalıştırma için paket artifactini hazırlar, indirir veya yeniden kullanır. Seçilen bir hat canlı Docker hattıysa, hedefli iş bu yeniden çalıştırma için canlı test imajını yerel olarak oluşturur. Oluşturulan hat başına GitHub yeniden çalıştırma komutları, bu değerler mevcut olduğunda `package_artifact_run_id`, `package_artifact_name` ve hazırlanmış imaj girdilerini içerir; böylece başarısız bir hat, başarısız çalıştırmadaki tam paket ve imajları yeniden kullanabilir.
Her parça, hat günlükleri, zamanlamalar, `summary.json`, `failures.json`, aşama zamanlamaları, zamanlayıcı planı JSON'u, yavaş hat tabloları ve hat başına yeniden çalıştırma komutlarıyla birlikte `.artifacts/docker-tests/` yükler. İş akışı `docker_lanes` girdisi, parça işleri yerine seçili hatları hazırlanmış görüntülere karşı çalıştırır; bu, başarısız hat hata ayıklamasını tek bir hedeflenmiş Docker işiyle sınırlar ve o çalıştırma için paket yapıtını hazırlar, indirir veya yeniden kullanır; seçili bir hat canlı Docker hattıysa, hedeflenmiş iş o yeniden çalıştırma için canlı test görüntüsünü yerel olarak derler. Üretilen hat başına GitHub yeniden çalıştırma komutları, bu değerler mevcut olduğunda `package_artifact_run_id`, `package_artifact_name` ve hazırlanmış görüntü girdilerini içerir; böylece başarısız bir hat, başarısız çalıştırmadaki tam paketi ve görüntüleri yeniden kullanabilir.
```bash
pnpm test:docker:rerun <run-id> # download Docker artifacts and print combined/per-lane targeted rerun commands
pnpm test:docker:timings <summary> # slow-lane and phase critical-path summaries
```
Zamanlanmış canlı/E2E iş akışı, tam sürüm yolu Docker paketini günlük olarak çalıştırır.
Zamanlanmış canlı/E2E iş akışı, tüm yayın yolu Docker paketini günlük olarak çalıştırır.
## Plugin Ön Sürümü
## Plugin Ön Yayını
`Plugin Prerelease` daha maliyetli ürün/paket kapsamıdır, bu nedenle `Full Release Validation` tarafından veya açık bir operatör tarafından tetiklenen ayrı bir iş akışıdır. Normal pull requestler, `main` pushları ve bağımsız manuel CI tetiklemeleri bu paketi kapalı tutar. Paketlenmiş Plugin testlerini sekiz uzantı çalışanı arasında dengeler; bu uzantı shard işleri, içe aktarma ağırlıklı Plugin gruplarının ek CI işleri oluşturmasını önlemek için grup başına bir Vitest çalışanı ve daha büyük bir Node heap ile aynı anda en fazla iki Plugin config grubunu çalıştırır.
`Plugin Prerelease` daha pahalı ürün/paket kapsamıdır; bu nedenle `Full Release Validation` veya açık bir operatör tarafından gönderilen ayrı bir iş akışıdır. Normal çekme istekleri, `main` göndermeleri ve bağımsız elle CI gönderimleri bu paketi kapalı tutar. Birlikte gelen Plugin testlerini sekiz uzantı çalışanı arasında dengeler; bu uzantı shard işleri, içe aktarma açısından ağır Plugin gruplarının ek CI işleri oluşturmaması için grup başına bir Vitest çalışanı ve daha büyük bir Node heap ile aynı anda en fazla iki Plugin yapılandırma grubunu çalıştırır. Yalnızca yayına özel Docker ön yayın yolu, bir ila üç dakikalık işler için onlarca runner ayırmaktan kaçınmak üzere hedeflenmiş Docker hatlarını küçük gruplar halinde toplar.
## QA Lab
QA Lab, ana akıllı kapsamlı iş akışının dışında ayrılmış CI hatlarına sahiptir.
- `Parity gate` iş akışı, eşleşen PR değişikliklerinde ve manuel tetiklemede çalışır; özel QA runtimeını oluşturur ve sahte GPT-5.5 ile Opus 4.6 agentic paketlerini karşılaştırır.
- `QA-Lab - All Lanes` iş akışı her gece `main` üzerinde ve manuel tetiklemede çalışır; sahte parite kapısını, canlı Matrix hattını ve canlı Telegram ile Discord hatlarını paralel işler olarak yayar. Canlı işler `qa-live-shared` ortamını kullanır; Telegram/Discord ise Convex leaselerini kullanır.
- `Parity gate` iş akışı, eşleşen PR değişikliklerinde ve elle gönderimde çalışır; özel QA çalışma zamanını derler ve sahte GPT-5.5 ile Opus 4.6 agentic paketlerini karşılaştırır.
- `QA-Lab - All Lanes` iş akışı gecelik olarak `main` üzerinde ve elle gönderimde çalışır; sahte eşlik kapısını, canlı Matrix hattını ve canlı Telegram ile Discord hatlarını paralel işler olarak yayar. Canlı işler `qa-live-shared` ortamını kullanır, Telegram/Discord ise Convex kiralamalarını kullanır.
Sürüm kontrolleri, canlı model gecikmesinden ve normal sağlayıcı Plugin başlatmasından izole edilmiş kanal kontratı için deterministik sahte sağlayıcı ve sahte nitelikli modellerle (`mock-openai/gpt-5.5` ve `mock-openai/gpt-5.5-alt`) Matrix ve Telegram canlı aktarım hatlarını çalıştırır. Canlı aktarım Gatewayi bellek aramasını devre dışı bırakır çünkü QA paritesi bellek davranışını ayrı olarak kapsar; sağlayıcı bağlantısı ayrı canlı model, yerel sağlayıcı ve Docker sağlayıcı paketleri tarafından kapsanır.
Yayın kontrolleri, canlı model gecikmesinden ve normal sağlayıcı Plugin başlatmasından kanal sözleşmesini izole etmek için deterministik sahte sağlayıcı ve sahte nitelikli modellerle (`mock-openai/gpt-5.5` ve `mock-openai/gpt-5.5-alt`) Matrix ve Telegram canlı aktarım hatlarını çalıştırır. Canlı aktarım Gateway'i bellek aramasını devre dışı bırakır çünkü QA eşliği bellek davranışını ayrı olarak kapsar; sağlayıcı bağlantısı ayrı canlı model, yerel sağlayıcı ve Docker sağlayıcı paketleri tarafından kapsanır.
Matrix, zamanlanmış ve sürüm kapıları için `--profile fast` kullanır ve yalnızca checkout yapılmış CLI bunu desteklediğinde `--fail-fast` ekler. CLI varsayılanı ve manuel iş akışı girdisi `all` olarak kalır; manuel `matrix_profile=all` tetiklemesi, tam Matrix kapsamını her zaman `transport`, `media`, `e2ee-smoke`, `e2ee-deep` ve `e2ee-cli` işlerine shardlar.
Matrix, zamanlanmış ve yayın kapıları için `--profile fast` kullanır ve yalnızca checkout yapılan CLI desteklediğinde `--fail-fast` ekler. CLI varsayılanı ve elle iş akışı girdisi `all` olarak kalır; elle `matrix_profile=all` gönderimi, tam Matrix kapsamını her zaman `transport`, `media`, `e2ee-smoke`, `e2ee-deep` ve `e2ee-cli` işlerine böler.
`OpenClaw Release Checks`, sürüm onayından önce sürüm açısından kritik QA Lab hatlarını da çalıştırır; QA parite kapısı aday ve temel paketleri paralel hat işleri olarak çalıştırır, ardından nihai parite karşılaştırması için iki artifacti de küçük bir rapor işine indirir.
`OpenClaw Release Checks` ayrıca yayın onayından önce yayın açısından kritik QA Lab hatlarını çalıştırır; QA eşlik kapısı aday ve temel paketleri paralel hat işleri olarak çalıştırır, ardından son eşlik karşılaştırması için her iki yapıtı da küçük bir rapor işine indirir.
Değişiklik gerçekten QA runtimeına, model paketi paritesine veya parite iş akışının sahibi olduğu bir yüzeye dokunmuyorsa PR landing yolunu `Parity gate` arkasına koymayın. Normal kanal, config, doküman veya birim testi düzeltmeleri için bunu isteğe bağlı bir sinyal olarak ele alın ve bunun yerine kapsamlı CI/kontrol kanıtını izleyin.
Değişiklik gerçekten QA çalışma zamanına, model paketi eşliğine veya eşlik iş akışının sahip olduğu bir yüzeye dokunmadıkça PR indirme yolunu `Parity gate` arkasına koymayın. Normal kanal, yapılandırma, dokümantasyon veya birim testi düzeltmeleri için bunu isteğe bağlı bir sinyal olarak ele alın ve bunun yerine kapsamlı CI/kontrol kanıtını izleyin.
## CodeQL
`CodeQL` iş akışı, tam depo taraması değil, bilerek dar tutulmuş ilk geçiş güvenlik tarayıcısıdır. Günlük, manuel ve draft olmayan pull request koruma çalıştırmaları, Actions iş akışı kodunu ve en yüksek riskli JavaScript/TypeScript yüzeylerini, yüksek/kritik `security-severity` değerine filtrelenmiş yüksek güven güvenlik sorgularıyla tarar.
`CodeQL` iş akışı, tam depo taraması değil, kasıtlı olarak dar kapsamlı bir ilk geçiş güvenlik tarayıcısıdır. Günlük, elle ve taslak olmayan çekme isteği koruma çalıştırmaları, Actions iş akışı kodunu ve en yüksek riskli JavaScript/TypeScript yüzeylerini, yüksek/kritik `security-severity` değerine filtrelenmiş yüksek güvenli güvenlik sorgularıyla tarar.
Pull request koruması hafif kalır: yalnızca `.github/actions`, `.github/codeql`, `.github/workflows`, `packages` veya `src` altındaki değişiklikler için başlar ve zamanlanmış iş akışıyla aynı yüksek güven güvenlik matrisini çalıştırır. Android ve macOS CodeQL, PR varsayılanlarının dışında kalır.
Çekme isteği koruması hafif kalır: yalnızca `.github/actions`, `.github/codeql`, `.github/workflows`, `packages` veya `src` altındaki değişiklikler için başlar ve zamanlanmış iş akışıyla aynı yüksek güvenli güvenlik matrisini çalıştırır. Android ve macOS CodeQL, PR varsayılanlarının dışında kalır.
### Güvenlik kategorileri
| Kategori | Yüzey |
| ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `/codeql-security-high/core-auth-secrets` | Auth, secrets, sandbox, cron ve gateway temel durumu |
| `/codeql-security-high/channel-runtime-boundary` | Çekirdek kanal uygulama kontratları ile kanal Plugin runtimeı, gateway, Plugin SDK, secrets, audit temas noktaları |
| `/codeql-security-high/network-ssrf-boundary` | Çekirdek SSRF, IP ayrıştırma, ağ koruması, web-fetch ve Plugin SDK SSRF ilke yüzeyleri |
| `/codeql-security-high/mcp-process-tool-boundary` | MCP sunucuları, süreç yürütme yardımcıları, outbound delivery ve ajan araç yürütme kapıları |
| `/codeql-security-high/plugin-trust-boundary` | Plugin yükleme, loader, manifest, registry, runtime dependency hazırlama, kaynak yükleme ve Plugin SDK paket kontratı güven yüzeyleri |
| Kategori | Yüzey |
| ------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `/codeql-security-high/core-auth-secrets` | Auth, secrets, sandbox, cron ve gateway temeli |
| `/codeql-security-high/channel-runtime-boundary` | Çekirdek kanal uygulama sözleşmeleri artı kanal Plugin çalışma zamanı, gateway, Plugin SDK, secrets, audit temas noktaları |
| `/codeql-security-high/network-ssrf-boundary` | Çekirdek SSRF, IP ayrıştırma, ağ koruması, web-fetch ve Plugin SDK SSRF ilkesi yüzeyleri |
| `/codeql-security-high/mcp-process-tool-boundary` | MCP sunucuları, işlem yürütme yardımcıları, dışa teslim ve ajan araç yürütme kapıları |
| `/codeql-security-high/plugin-trust-boundary` | Plugin kurulumu, yükleyici, manifest, kayıt, çalışma zamanı bağımlılığı hazırlama, kaynak yükleme ve Plugin SDK paket sözleşmesi güven yüzeyleri |
### Platforma özel güvenlik shardları
### Platforma özgü güvenlik shard'ları
- `CodeQL Android Critical Security` — zamanlanmış Android güvenlik shardı. Workflow sanity tarafından kabul edilen en küçük Blacksmith Linux runner üzerinde CodeQL için Android uygulamasını manuel olarak oluşturur. `/codeql-critical-security/android` altında yükler.
- `CodeQL macOS Critical Security` — haftalık/manuel macOS güvenlik shardı. Blacksmith macOS üzerinde CodeQL için macOS uygulamasını manuel olarak oluşturur, dependency build sonuçlarını yüklenen SARIF dışına filtreler ve `/codeql-critical-security/macos` altında yükler. Temiz olduğunda bile macOS buildi çalışma süresini domine ettiği için günlük varsayılanların dışında tutulur.
- `CodeQL Android Critical Security` — zamanlanmış Android güvenlik shard'ı. Android uygulamasını, iş akışı sağlamlık kontrolü tarafından kabul edilen en küçük Blacksmith Linux runner üzerinde CodeQL için elle derler. `/codeql-critical-security/android` altında yükler.
- `CodeQL macOS Critical Security` — haftalık/elle macOS güvenlik shard'ı. macOS uygulamasını Blacksmith macOS üzerinde CodeQL için elle derler, bağımlılık derleme sonuçlarını yüklenen SARIF'in dışında filtreler ve `/codeql-critical-security/macos` altında yükler. Temiz olduğunda bile macOS derlemesi çalışma süresine hakim olduğu için günlük varsayılanların dışında tutulur.
### Kritik Kalite kategorileri
`CodeQL Critical Quality` eşleşen güvenlik dışı sharddır. Daha küçük Blacksmith Linux runner üzerinde, dar ve yüksek değerli yüzeyler genelinde yalnızca hata önem seviyeli, güvenlik dışı JavaScript/TypeScript kalite sorgularını çalıştırır. Pull request koruması, zamanlanmış profilden bilerek daha küçüktür: draft olmayan PRlar yalnızca ajan komut/model/araç yürütmesi ve yanıt dispatch kodu; config şeması/migration/IO kodu; auth/secrets/sandbox/security kodu; çekirdek kanal ve paketlenmiş kanal Plugin runtimeı; gateway protokolü/sunucu yöntemi; bellek runtime/SDK bağlantısı; MCP/process/outbound delivery; sağlayıcı runtime/model kataloğu; oturum diagnostics/delivery queueları; Plugin loader; Plugin SDK/paket kontratı; veya Plugin SDK yanıt runtime değişiklikleri için eşleşen `agent-runtime-boundary`, `config-boundary`, `core-auth-secrets`, `channel-runtime-boundary`, `gateway-runtime-boundary`, `memory-runtime-boundary`, `mcp-process-runtime-boundary`, `provider-runtime-boundary`, `session-diagnostics-boundary`, `plugin-boundary`, `plugin-sdk-package-contract` ve `plugin-sdk-reply-runtime` shardlarını çalıştırır. CodeQL config ve kalite iş akışı değişiklikleri on iki PR kalite shardının tamamını çalıştırır.
`CodeQL Critical Quality`, eşleşen güvenlik dışı shard'dır. Daha küçük Blacksmith Linux runner üzerinde, dar ve yüksek değerli yüzeylerde yalnızca hata önem dereceli, güvenlik dışı JavaScript/TypeScript kalite sorgularını çalıştırır. Çekme isteği koruması kasıtlı olarak zamanlanmış profilden daha küçüktür: taslak olmayan PR'lar; ajan komut/model/araç yürütme ve yanıt gönderim kodu, yapılandırma şeması/geçiş/GÇ kodu, auth/secrets/sandbox/security kodu, çekirdek kanal ve birlikte gelen kanal Plugin çalışma zamanı, gateway protokolü/sunucu yöntemi, bellek çalışma zamanı/SDK bağlantısı, MCP/işlem/dışa teslim, sağlayıcı çalışma zamanı/model kataloğu, oturum tanılama/teslim kuyrukları, Plugin yükleyici, Plugin SDK/paket sözleşmesi veya Plugin SDK yanıt çalışma zamanı değişiklikleri için yalnızca eşleşen `agent-runtime-boundary`, `config-boundary`, `core-auth-secrets`, `channel-runtime-boundary`, `gateway-runtime-boundary`, `memory-runtime-boundary`, `mcp-process-runtime-boundary`, `provider-runtime-boundary`, `session-diagnostics-boundary`, `plugin-boundary`, `plugin-sdk-package-contract` ve `plugin-sdk-reply-runtime` shard'larını çalıştırır. CodeQL yapılandırması ve kalite iş akışı değişiklikleri on iki PR kalite shard'ının tamamını çalıştırır.
Manuel tetikleme şunu kabul eder:
Elle gönderim şunları kabul eder:
```
profile=all|agent-runtime-boundary|config-boundary|core-auth-secrets|channel-runtime-boundary|gateway-runtime-boundary|memory-runtime-boundary|mcp-process-runtime-boundary|plugin-boundary|plugin-sdk-package-contract|plugin-sdk-reply-runtime|provider-runtime-boundary|session-diagnostics-boundary
```
Dar profiller, tek bir kalite shardını yalıtılmış şekilde çalıştırmak için öğretme/iterasyon kancalarıdır.
Dar profiller, tek bir kalite dilimini yalıtılmış olarak çalıştırmak için eğitim/yineleme kancalarıdır.
| Kategori | Yüzey |
| ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `/codeql-critical-quality/core-auth-secrets` | Kimlik doğrulama, gizli bilgiler, sandbox, Cron ve Gateway güvenlik sınırı kodu |
| `/codeql-critical-quality/config-boundary` | Yapılandırma şeması, geçiş, normalleştirme ve G/Ç sözleşmeleri |
| `/codeql-critical-quality/gateway-runtime-boundary` | Gateway protokol şemaları ve sunucu yöntemi sözleşmeleri |
| `/codeql-critical-quality/channel-runtime-boundary` | Çekirdek kanal ve paketle gelen kanal plugin uygulama sözleşmeleri |
| `/codeql-critical-quality/agent-runtime-boundary` | Komut yürütme, model/sağlayıcı yönlendirme, otomatik yanıt yönlendirme ve kuyruklar ile ACP denetim düzlemi çalışma zamanı sözleşmeleri |
| `/codeql-critical-quality/mcp-process-runtime-boundary` | MCP sunucuları ve araç köprüleri, süreç gözetimi yardımcıları ve giden teslimat sözleşmeleri |
| `/codeql-critical-quality/memory-runtime-boundary` | Bellek ana bilgisayar SDK'sı, bellek çalışma zamanı cepheleri, bellek Plugin SDK adları, bellek çalışma zamanı etkinleştirme bağlayıcısı ve bellek doctor komutları |
| `/codeql-critical-quality/session-diagnostics-boundary` | Yanıt kuyruğu iç öğeleri, oturum teslimat kuyrukları, giden oturum bağlama/teslimat yardımcıları, tanılama olayı/günlük paketi yüzeyleri ve oturum doctor CLI sözleşmeleri |
| `/codeql-critical-quality/plugin-sdk-reply-runtime` | Plugin SDK gelen yanıt yönlendirme, yanıt yükü/parçalama/çalışma zamanı yardımcıları, kanal yanıt seçenekleri, teslimat kuyrukları ve oturum/iş parçacığı bağlama yardımcıları |
| `/codeql-critical-quality/provider-runtime-boundary` | Model kataloğu normalleştirme, sağlayıcı kimlik doğrulama ve keşif, sağlayıcı çalışma zamanı kaydı, sağlayıcı varsayılanları/katalogları ve web/arama/getirme/gömme kayıtları |
| `/codeql-critical-quality/ui-control-plane` | Denetim UI önyüklemesi, yerel kalıcılık, Gateway denetim akışları ve görev denetim düzlemi çalışma zamanı sözleşmeleri |
| `/codeql-critical-quality/web-media-runtime-boundary` | Çekirdek web getirme/arama, medya G/Ç, medya anlama, görsel oluşturma ve medya oluşturma çalışma zamanı sözleşmeleri |
| `/codeql-critical-quality/plugin-boundary` | Yükleyici, kayıt, herkese açık yüzey ve Plugin SDK giriş noktası sözleşmeleri |
| `/codeql-critical-quality/plugin-sdk-package-contract` | Yayımlanan paket tarafı Plugin SDK kaynağı ve plugin paketi sözleşme yardımcıları |
| Kategori | Yüzey |
| ------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `/codeql-critical-quality/core-auth-secrets` | Kimlik doğrulama, sırlar, sandbox, Cron ve Gateway güvenlik sınırı kodu |
| `/codeql-critical-quality/config-boundary` | Yapılandırma şeması, geçiş, normalleştirme ve IO sözleşmeleri |
| `/codeql-critical-quality/gateway-runtime-boundary` | Gateway protokol şemaları ve sunucu yöntemi sözleşmeleri |
| `/codeql-critical-quality/channel-runtime-boundary` | Çekirdek kanal ve paketli kanal Plugin uygulama sözleşmeleri |
| `/codeql-critical-quality/agent-runtime-boundary` | Komut yürütme, model/sağlayıcı dağıtımı, otomatik yanıt dağıtımı ve kuyrukları, ayrıca ACP denetim düzlemi çalışma zamanı sözleşmeleri |
| `/codeql-critical-quality/mcp-process-runtime-boundary` | MCP sunucuları ve araç köprüleri, süreç gözetimi yardımcıları ve giden teslim sözleşmeleri |
| `/codeql-critical-quality/memory-runtime-boundary` | Bellek ana makine SDK'sı, bellek çalışma zamanı cepheleri, bellek Plugin SDK takma adları, bellek çalışma zamanı etkinleştirme bağlantısı ve bellek doctor komutları |
| `/codeql-critical-quality/session-diagnostics-boundary` | Yanıt kuyruğu iç yapıları, oturum teslim kuyrukları, giden oturum bağlama/teslim yardımcıları, tanılama olayı/günlük paketi yüzeyleri ve oturum doctor CLI sözleşmeleri |
| `/codeql-critical-quality/plugin-sdk-reply-runtime` | Plugin SDK gelen yanıt dağıtımı, yanıt yükü/parçalama/çalışma zamanı yardımcıları, kanal yanıt seçenekleri, teslim kuyrukları ve oturum/iş parçacığı bağlama yardımcıları |
| `/codeql-critical-quality/provider-runtime-boundary` | Model kataloğu normalleştirmesi, sağlayıcı kimlik doğrulaması ve keşfi, sağlayıcı çalışma zamanı kaydı, sağlayıcı varsayılanları/katalogları ve web/arama/getirme/gömme kayıtları |
| `/codeql-critical-quality/ui-control-plane` | Denetim UI önyüklemesi, yerel kalıcılık, Gateway denetim akışları ve görev denetim düzlemi çalışma zamanı sözleşmeleri |
| `/codeql-critical-quality/web-media-runtime-boundary` | Çekirdek web getirme/arama, medya IO, medya anlama, görsel üretimi ve medya üretimi çalışma zamanı sözleşmeleri |
| `/codeql-critical-quality/plugin-boundary` | Yükleyici, kayıt, herkese açık yüzey ve Plugin SDK giriş noktası sözleşmeleri |
| `/codeql-critical-quality/plugin-sdk-package-contract` | Yayımlanan paket tarafı Plugin SDK kaynağı ve plugin paketi sözleşme yardımcıları |
Kalite, güvenlikten ayrı kalır; böylece kalite bulguları güvenlik sinyalini belirsizleştirmeden zamanlanabilir, ölçülebilir, devre dışı bırakılabilir veya genişletilebilir. Swift, Python ve paketle gelen plugin CodeQL genişletmesi, ancak dar profiller kararlı çalışma zamanı ve sinyale sahip olduktan sonra kapsamlı veya parçalanmış takip çalışması olarak geri eklenmelidir.
Kalite, güvenlikten ayrı tutulur; böylece kalite bulguları, güvenlik sinyalini gölgelemeden zamanlanabilir, ölçülebilir, devre dışı bırakılabilir veya genişletilebilir. Swift, Python ve paketli plugin CodeQL genişletmesi, yalnızca dar profiller kararlı çalışma zamanı ve sinyale sahip olduktan sonra kapsamlı veya parçalanmış takip işi olarak geri eklenmelidir.
## Bakım iş akışları
### Docs Agent
`Docs Agent` iş akışı, mevcut dokümanları kısa süre önce ana hatta alınan değişikliklerle hizalı tutmak için olay güdümlü bir Codex bakım hattıdır. Saf bir zamanlaması yoktur: `main` üzerinde başarılı bir bot olmayan push CI çalıştırması bunu tetikleyebilir ve elle dispatch doğrudan çalıştırabilir. Workflow-run çağrıları, `main` ilerlediyse veya son bir saat içinde başka bir atlanmamış Docs Agent çalıştırması oluşturulduysa atlanır. Çalıştığında, önceki atlanmamış Docs Agent kaynak SHA'sından geçerli `main` durumuna kadar olan commit aralığını inceler; böylece saatlik tek bir çalışma, son doküman geçişinden bu yana biriken tüm main değişikliklerini kapsayabilir.
`Docs Agent` iş akışı, mevcut dokümanları yakın zamanda eklenen değişikliklerle uyumlu tutmak için olay güdümlü bir Codex bakım hattıdır. Salt zamanlaması yoktur: `main` üzerinde başarılı bir bot olmayan push CI çalışması bunu tetikleyebilir ve manuel dispatch bunu doğrudan çalıştırabilir. Workflow-run çağrıları, `main` ilerlediyse veya son bir saat içinde atlanmamış başka bir Docs Agent çalışması oluşturulduysa atlanır. Çalıştığında, önceki atlanmamış Docs Agent kaynak SHA'sından geçerli `main` durumuna kadar commit aralığını inceler; böylece saatlik tek bir çalışma, son doküman geçişinden beri biriken tüm main değişikliklerini kapsayabilir.
### Test Performance Agent
`Test Performance Agent` iş akışı, yavaş testler için olay güdümlü bir Codex bakım hattıdır. Saf bir zamanlaması yoktur: `main` üzerinde başarılı bir bot olmayan push CI çalıştırması bunu tetikleyebilir, ancak başka bir workflow-run çağrısı o UTC gününde zaten çalıştıysa veya çalışıyorsa atlanır. Elle dispatch bu günlük etkinlik kapısını atlar. Hat, tam paket gruplandırılmış bir Vitest performans raporu oluşturur, Codex'in geniş refactor'lar yerine yalnızca kapsamı koruyan küçük test performansı düzeltmeleri yapmasına izin verir, ardından tam paket raporu yeniden çalıştırır ve geçen temel test sayısını azaltan değişiklikleri reddeder. Temel durumda başarısız testler varsa, Codex yalnızca bariz hataları düzeltebilir ve ajan sonrası tam paket raporu herhangi bir şey commit edilmeden önce geçmelidir. Bot push ana hatta alınmadan önce `main` ilerlerse, hat doğrulanmış yamayı rebase eder, `pnpm check:changed` komutunu yeniden çalıştırır ve push işlemini tekrar dener; çakışan eski yamalar atlanır. Codex eyleminin doküman ajanıyla aynı drop-sudo güvenlik duruşunu koruyabilmesi için GitHub barındırmalı Ubuntu kullanır.
`Test Performance Agent` iş akışı, yavaş testler için olay güdümlü bir Codex bakım hattıdır. Salt zamanlaması yoktur: `main` üzerinde başarılı bir bot olmayan push CI çalışması bunu tetikleyebilir, ancak aynı UTC gününde başka bir workflow-run çağrısı zaten çalıştıysa veya çalışıyorsa atlanır. Manuel dispatch, bu günlük etkinlik kapısını atlar. Hat, tam paket gruplandırılmış Vitest performans raporu oluşturur, Codex'in geniş refaktörler yerine yalnızca kapsamı koruyan küçük test performansı düzeltmeleri yapmasına izin verir, ardından tam paket raporu yeniden çalıştırır ve geçen temel test sayısını azaltan değişiklikleri reddeder. Temelde başarısız testler varsa Codex yalnızca bariz hataları düzeltebilir ve agent sonrası tam paket raporunun herhangi bir şey commit edilmeden önce geçmesi gerekir. Bot push inmeden önce `main` ilerlerse hat doğrulanmış yamayı rebase eder, `pnpm check:changed` komutunu yeniden çalıştırır ve push'u tekrar dener; çakışan eski yamalar atlanır. Docs agent ile aynı drop-sudo güvenlik duruşunu koruyabilmesi için Codex eylemi GitHub tarafından barındırılan Ubuntu kullanır.
### Birleştirme Sonrası Yinelenen PR'lar
### Birleştirmeden Sonra Yinelenen PR'lar
`Duplicate PRs After Merge` iş akışı, ana hatta alma sonrası yinelenenleri temizlemek için elle çalıştırılan bir maintainer iş akışıdır. Varsayılan olarak dry-run kullanır ve yalnızca `apply=true` olduğunda açıkça listelenen PR'ları kapatır. GitHub üzerinde değişiklik yapmadan önce, ana hatta alınan PR'ın birleştirildiğini ve her yinelemenin ya ortak bir başvurulan issue'ya ya da örtüşen değişmiş hunks'a sahip olduğunu doğrular.
`Duplicate PRs After Merge` iş akışı, iniş sonrası yinelenenleri temizlemek için manuel bir bakımcı iş akışıdır. Varsayılanı dry-run'dır ve yalnızca `apply=true` olduğunda açıkça listelenen PR'ları kapatır. GitHub üzerinde değişiklik yapmadan önce, inen PR'ın birleştirildiğini ve her yinelenenin ya ortak başvurulan bir issue'ya ya da örtüşen değiştirilmiş hunk'lara sahip olduğunu doğrular.
```bash
gh workflow run duplicate-after-merge.yml \
@ -396,23 +400,34 @@ gh workflow run duplicate-after-merge.yml \
Yerel değişiklik hattı mantığı `scripts/changed-lanes.mjs` içinde bulunur ve `scripts/check-changed.mjs` tarafından yürütülür. Bu yerel denetim kapısı, mimari sınırlar konusunda geniş CI platform kapsamından daha katıdır:
- çekirdek üretim değişiklikleri, core prod ve core test typecheck ile core lint/guard'ları çalıştırır;
- yalnızca çekirdek test değişiklikleri, yalnızca core test typecheck ile core lint'i çalıştırır;
- extension üretim değişiklikleri, extension prod ve extension test typecheck ile extension lint'i çalıştırır;
- yalnızca extension test değişiklikleri, extension test typecheck ile extension lint'i çalıştırır;
- herkese açık Plugin SDK veya plugin sözleşmesi değişiklikleri extension typecheck kapsamına genişler, çünkü extension'lar bu çekirdek sözleşmelere bağımlıdır (Vitest extension taramalarıık test çalışması olarak kalır);
- yalnızca release metadata sürüm artırımları, hedefli sürüm/yapılandırma/kök bağımlılık denetimleri çalıştırır;
- bilinmeyen kök/yapılandırma değişiklikleri güvenli kalmak için tüm denetim hatlarına düşer.
- çekirdek üretim değişiklikleri, çekirdek prod ve çekirdek test typecheck ile çekirdek lint/guard çalıştırır;
- yalnızca çekirdek test değişiklikleri, yalnızca çekirdek test typecheck ile çekirdek lint çalıştırır;
- extension üretim değişiklikleri, extension prod ve extension test typecheck ile extension lint çalıştırır;
- yalnızca extension test değişiklikleri, extension test typecheck ile extension lint çalıştırır;
- herkese açık Plugin SDK veya plugin sözleşmesi değişiklikleri, extension'lar bu çekirdek sözleşmelere bağlı olduğu için extension typecheck'e genişler (Vitest extension taramalarıık test işi olarak kalır);
- yalnızca sürüm metadata'sı version bump'ları, hedefli sürüm/yapılandırma/kök-bağımlılık denetimleri çalıştırır;
- bilinmeyen kök/yapılandırma değişiklikleri güvenli şekilde tüm denetim hatlarına düşer.
Yerel değişmiş test yönlendirmesi `scripts/test-projects.test-support.mjs` içinde bulunur ve bilinçli olarak `check:changed` komutundan daha ucuzdur: doğrudan test düzenlemeleri kendilerini çalıştırır, kaynak düzenlemeleri açık eşlemeleri, ardından kardeş testleri ve import grafiği bağımlılarını tercih eder. Paylaşılan grup odası teslimat yapılandırmasıık eşlemelerden biridir: grup görünür yanıt yapılandırmasına, kaynak yanıt teslimat moduna veya mesaj aracı sistem prompt'una yapılan değişiklikler, çekirdek yanıt testleri ile Discord ve Slack teslimat regresyonlarından geçirilir; böylece paylaşılan varsayılan değişiklik ilk PR push işleminden önce başarısız olur. `OPENCLAW_TEST_CHANGED_BROAD=1 pnpm test:changed` komutunu yalnızca değişiklik, ucuz eşlenmiş kümenin güvenilir bir vekil olmayacağı kadar harness genelindeyse kullanın.
Yerel değişmiş-test yönlendirmesi `scripts/test-projects.test-support.mjs` içinde bulunur ve kasıtlı olarak `check:changed` komutundan daha ucuzdur: doğrudan test düzenlemeleri kendilerini çalıştırır, kaynak düzenlemeleri açık eşlemeleri, ardından kardeş testleri ve import grafiği bağımlılarını tercih eder. Paylaşılan grup odası teslim yapılandırmasıık eşlemelerden biridir: gruba görünür yanıt yapılandırması, kaynak yanıt teslim modu veya message-tool sistem prompt'u değişiklikleri, çekirdek yanıt testleri ile Discord ve Slack teslim regresyonlarından geçer; böylece paylaşılan varsayılan değişikliği ilk PR push'undan önce başarısız olur. `OPENCLAW_TEST_CHANGED_BROAD=1 pnpm test:changed` komutunu yalnızca değişiklik harness genelinde, ucuz eşlenen kümenin güvenilir bir vekil olmadığı kadar geniş olduğunda kullanın.
## Testbox doğrulaması
Testbox'ı repo kökünden çalıştırın ve geniş kanıt için yeni ısıtılmış bir kutu tercih edin. Yeniden kullanılan, süresi dolan veya beklenenden büyük bir sync bildiren bir kutuda yavaş bir kapıya zaman harcamadan önce, kutunun içinde önce `pnpm testbox:sanity` çalıştırın.
Testbox'ı repo kökünden çalıştırın ve geniş kanıt için taze ısıtılmış bir box tercih edin. Yeniden kullanılmış, süresi dolmuş veya beklenmedik şekilde büyük bir sync bildirmiş bir box üzerinde yavaş bir kapıya zaman harcamadan önce, önce box içinde `pnpm testbox:sanity` çalıştırın.
Sağlamlık denetimi, `pnpm-lock.yaml` gibi gerekli kök dosyalar kaybolduğunda veya `git status --short` en az 200 izlenen silme gösterdiğinde hızlı başarısız olur. Bu genellikle uzak sync durumunun PR'ın güvenilir bir kopyası olmadığı anlamına gelir; ürün test hatasını debug etmek yerine o kutuyu durdurun ve yeni bir tane ısıtın. Bilerek yapılan büyük silme PR'ları için, o sağlamlık çalıştırmasında `OPENCLAW_TESTBOX_ALLOW_MASS_DELETIONS=1` ayarlayın.
Sanity denetimi, `pnpm-lock.yaml` gibi gerekli kök dosyalar kaybolduğunda veya `git status --short` en az 200 izlenen silme gösterdiğinde hızlı başarısız olur. Bu genellikle uzak sync durumunun PR'ın güvenilir bir kopyası olmadığı anlamına gelir; ürün test hatasını debug etmek yerine o box'ı durdurun ve taze bir tane ısıtın. Kasıtlı büyük silme PR'ları için bu sanity çalıştırmasında `OPENCLAW_TESTBOX_ALLOW_MASS_DELETIONS=1` ayarlayın.
`pnpm testbox:run`, sync aşamasında post-sync çıktısı olmadan beş dakikadan fazla kalan yerel Blacksmith CLI çağrısını da sonlandırır. Bu guard'ı devre dışı bırakmak için `OPENCLAW_TESTBOX_SYNC_TIMEOUT_MS=0` ayarlayın veya alışılmadık derecede büyük yerel diff'ler için daha büyük bir milisaniye değeri kullanın.
`pnpm testbox:run`, sync sonrası çıktı olmadan beş dakikadan uzun süre sync aşamasında kalan yerel Blacksmith CLI çağrısını da sonlandırır. Bu guard'ı devre dışı bırakmak için `OPENCLAW_TESTBOX_SYNC_TIMEOUT_MS=0` ayarlayın veya alışılmadık derecede büyük yerel diff'ler için daha büyük bir milisaniye değeri kullanın.
Crabbox, Blacksmith kullanılamadığında veya sahip olunan bulut kapasitesi tercih edildiğinde Linux kanıtı için repo sahipli ikinci uzak-box yoludur. Bir box ısıtın, proje iş akışı üzerinden hydrate edin, ardından komutları Crabbox CLI üzerinden çalıştırın:
```bash
pnpm crabbox:warmup -- --idle-timeout 90m
pnpm crabbox:hydrate -- --id <cbx_id>
pnpm crabbox:run -- --id <cbx_id> --shell "OPENCLAW_TESTBOX=1 pnpm check:changed"
pnpm crabbox:stop -- <cbx_id>
```
`.crabbox.yaml` sağlayıcı, sync ve GitHub Actions hydration varsayılanlarını sahiplenir. Hydrate edilmiş Actions checkout'un bakımcıya yerel uzak Git metadata'sını ve nesne depolarını sync etmek yerine kendi uzak Git metadata'sını koruması için yerel `.git` dizinini hariç tutar; ayrıca asla aktarılmaması gereken yerel çalışma zamanı/derleme artifact'lerini hariç tutar. `.github/workflows/crabbox-hydrate.yml` checkout, Node/pnpm kurulumu, `origin/main` fetch ve daha sonraki `crabbox run --id <cbx_id>` komutlarının kaynak aldığı gizli olmayan ortam devrini sahiplenir.
## İlgili

View File

@ -1,23 +1,23 @@
---
read_when:
- Kanal hesapları eklemek/kaldırmak istiyorsunuz (WhatsApp/Telegram/Discord/Google Chat/Slack/Mattermost (Plugin)/Signal/iMessage/Matrix)
- Kanal durumunu kontrol etmek veya kanal günlüklerini canlı izlemek istiyorsunuz
summary: '`openclaw channels` için CLI başvurusu (hesaplar, durum, oturum açma/oturumu kapatma, günlükler)'
- Kanal durumunu kontrol etmek veya kanal günlüklerini takip etmek istiyorsunuz
summary: '`openclaw channels` için CLI referansı (hesaplar, durum, oturum açma/oturumu kapatma, günlükler)'
title: Kanallar
x-i18n:
generated_at: "2026-04-30T09:11:27Z"
generated_at: "2026-05-01T08:58:36Z"
model: gpt-5.5
provider: openai
source_hash: 6fc3c5983114c17e0e7284450aa161b658312c05864db65e09d6d764e357cd1f
source_hash: 1f673a626b46cd4c8ba7eb28963d27e7e3f630dd86723332faab9b4c86553da9
source_path: cli/channels.md
workflow: 16
---
# `openclaw channels`
Gateway üzerinde sohbet kanalı hesaplarını ve bunların çalışma zamanı durumunu yönetin.
Gateway üzerinde sohbet kanalı hesaplarını ve çalışma zamanı durumlarını yönetin.
İlgili belgeler:
İlgili dokümanlar:
- Kanal kılavuzları: [Kanallar](/tr/channels)
- Gateway yapılandırması: [Yapılandırma](/tr/gateway/configuration)
@ -41,10 +41,10 @@ openclaw channels logs --channel all
- `channels logs`: `--channel <name|all>`, `--lines <n>`, `--json`
`channels status --probe` canlı yoldur: erişilebilir bir gateway üzerinde hesap başına
`probeAccount` ve isteğe bağlı `auditAccount` denetimleri çalıştırır; bu nedenle çıktı, aktarım
durumunu ve `works`, `probe failed`, `audit ok` veya `audit failed` gibi prob sonuçlarını içerebilir.
Gateway erişilemez durumdaysa, `channels status` canlı prob çıktısı yerine yalnızca yapılandırma özetlerine
geri döner.
`probeAccount` ve isteğe bağlı `auditAccount` denetimlerini çalıştırır; bu nedenle çıktı, aktarım
durumunun yanı sıra `works`, `probe failed`, `audit ok` veya `audit failed` gibi probe sonuçlarını
içerebilir. Gateway erişilemezse, `channels status` canlı probe çıktısı yerine yalnızca yapılandırma
özetlerine geri döner.
## Hesap ekleme / kaldırma
@ -55,9 +55,11 @@ openclaw channels remove --channel telegram --delete
```
<Tip>
`openclaw channels add --help` kanal başına bayrakları gösterir (token, private key, app token, signal-cli paths vb.).
`openclaw channels add --help`, kanal başına bayrakları (token, private key, app token, signal-cli yolları vb.) gösterir.
</Tip>
`channels remove` yalnızca kurulu/yapılandırılmış kanal pluginleri üzerinde çalışır. Kurulabilir katalog kanalları için önce `channels add` kullanın.
Yaygın etkileşimsiz ekleme yüzeyleri şunları içerir:
- bot-token kanalları: `--token`, `--bot-token`, `--app-token`, `--token-file`
@ -66,9 +68,9 @@ Yaygın etkileşimsiz ekleme yüzeyleri şunları içerir:
- Matrix alanları: `--homeserver`, `--user-id`, `--access-token`, `--password`, `--device-name`, `--initial-sync-limit`
- Nostr alanları: `--private-key`, `--relay-urls`
- Tlon alanları: `--ship`, `--url`, `--code`, `--group-channels`, `--dm-allowlist`, `--auto-discover-channels`
- desteklendiği yerlerde varsayılan hesap için ortam destekli kimlik doğrulamada `--use-env`
- desteklendiğinde varsayılan hesap için env destekli kimlik doğrulamasında `--use-env`
Bayraklarla yönlendirilen bir ekleme komutu sırasında bir kanal Plugininin kurulması gerekiyorsa, OpenClaw etkileşimli Plugin kurulum istemini açmadan kanalın varsayılan kurulum kaynağını kullanır.
Bayrakla yönlendirilen bir ekleme komutu sırasında bir kanal plugininin kurulması gerekiyorsa, OpenClaw etkileşimli plugin kurulum istemini açmadan kanalın varsayılan kurulum kaynağını kullanır.
`openclaw channels add` komutunu bayraksız çalıştırdığınızda, etkileşimli sihirbaz şunları sorabilir:
@ -76,19 +78,19 @@ Bayraklarla yönlendirilen bir ekleme komutu sırasında bir kanal Plugininin
- bu hesaplar için isteğe bağlı görünen adlar
- `Bind configured channel accounts to agents now?`
Şimdi bağlamayı onaylarsanız, sihirbaz her yapılandırılmış kanal hesabının hangi aracıya ait olması gerektiğini sorar ve hesap kapsamlı yönlendirme bağlamaları yazar.
Şimdi bağlamayı onaylarsanız, sihirbaz hangi agentın her yapılandırılmış kanal hesabına sahip olması gerektiğini sorar ve hesap kapsamlı yönlendirme bağlamaları yazar.
Aynı yönlendirme kurallarını daha sonra `openclaw agents bindings`, `openclaw agents bind` ve `openclaw agents unbind` ile de yönetebilirsiniz (bkz. [aracılar](/tr/cli/agents)).
Aynı yönlendirme kurallarını daha sonra `openclaw agents bindings`, `openclaw agents bind` ve `openclaw agents unbind` ile de yönetebilirsiniz (bkz. [agentlar](/tr/cli/agents)).
Hâlâ tek hesaplı üst düzey ayarları kullanan bir kanala varsayılan olmayan bir hesap eklediğinizde, OpenClaw yeni hesabı yazmadan önce hesap kapsamlı üst düzey değerleri kanalın hesap eşlemesine yükseltir. Çoğu kanal bu değerleri `channels.<channel>.accounts.default` içine yerleştirir, ancak paketlenmiş kanallar bunun yerine mevcut eşleşen yükseltilmiş bir hesabı koruyabilir. Güncel örnek Matrixtir: bir adlandırılmış hesap zaten varsa veya `defaultAccount` mevcut bir adlandırılmış hesaba işaret ediyorsa, yükseltme yeni bir `accounts.default` oluşturmak yerine o hesabı korur.
Hâlâ tek hesaplı üst düzey ayarlar kullanan bir kanala varsayılan olmayan bir hesap eklediğinizde, OpenClaw yeni hesabı yazmadan önce hesap kapsamlı üst düzey değerleri kanalın hesap haritasına yükseltir. Çoğu kanal bu değerleri `channels.<channel>.accounts.default` içine yerleştirir, ancak paketli kanallar bunun yerine mevcut eşleşen yükseltilmiş bir hesabı koruyabilir. Mevcut örnek Matrixtir: Zaten bir adlandırılmış hesap varsa veya `defaultAccount` mevcut bir adlandırılmış hesaba işaret ediyorsa, yükseltme yeni bir `accounts.default` oluşturmak yerine o hesabı korur.
Yönlendirme davranışı tutarlı kalır:
- Mevcut yalnızca kanal bağlamaları (`accountId` yok) varsayılan hesapla eşleşmeye devam eder.
- `channels add`, etkileşimsiz modda bağlamaları otomatik olarak oluşturmaz veya yeniden yazmaz.
- `channels add`, etkileşimsiz modda bağlamaları otomatik oluşturmaz veya yeniden yazmaz.
- Etkileşimli kurulum isteğe bağlı olarak hesap kapsamlı bağlamalar ekleyebilir.
Yapılandırmanız zaten karışık durumdaysa (adlandırılmış hesaplar mevcut ve üst düzey tek hesap değerleri hâlâ ayarlıysa), hesap kapsamlı değerleri o kanal için seçilen yükseltilmiş hesaba taşımak üzere `openclaw doctor --fix` komutunu çalıştırın. Çoğu kanal `accounts.default` içine yükseltir; Matrix bunun yerine mevcut bir adlandırılmış/varsayılan hedefi koruyabilir.
Yapılandırmanız zaten karma bir durumdaysa (adlandırılmış hesaplar mevcutken üst düzey tek hesap değerleri hâlâ ayarlıysa), hesap kapsamlı değerleri o kanal için seçilen yükseltilmiş hesaba taşımak üzere `openclaw doctor --fix` çalıştırın. Çoğu kanal `accounts.default` içine yükseltir; Matrix bunun yerine mevcut bir adlandırılmış/varsayılan hedefi koruyabilir.
## Oturum açma ve kapatma (etkileşimli)
@ -98,19 +100,19 @@ openclaw channels logout --channel whatsapp
```
- `channels login`, `--verbose` destekler.
- `channels login` ve `logout`, yalnızca bir desteklenen oturum açma hedefi yapılandırıldığında kanalı çıkarımla belirleyebilir.
- `channels login` komutunu Gateway ana makinesindeki bir terminalden çalıştırın. Aracı `exec`, bu etkileşimli oturum açma akışını engeller; kullanılabilir olduğunda sohbetten `whatsapp_login` gibi kanala özgü aracı oturum açma araçları kullanılmalıdır.
- `channels login` ve `logout`, yalnızca bir desteklenen oturum açma hedefi yapılandırılmışsa kanalı çıkarımlayabilir.
- `channels login` komutunu gateway hostundaki bir terminalden çalıştırın. Agent `exec`, bu etkileşimli oturum açma akışını engeller; mevcut olduğunda `whatsapp_login` gibi kanala özgü agent oturum açma araçları sohbetten kullanılmalıdır.
## Sorun giderme
- Geniş kapsamlı bir prob için `openclaw status --deep` çalıştırın.
- Rehberli düzeltmeler için `openclaw doctor` kullanın.
- `openclaw channels list`, `Claude: HTTP 403 ... user:profile` yazdırır → kullanım anlık görüntüsü `user:profile` kapsamını gerektirir. `--no-usage` kullanın veya bir claude.ai oturum anahtarı (`CLAUDE_WEB_SESSION_KEY` / `CLAUDE_WEB_COOKIE`) sağlayın ya da Claude CLI üzerinden yeniden kimlik doğrulaması yapın.
- Gateway erişilemez olduğunda `openclaw channels status` yalnızca yapılandırma özetlerine geri döner. Desteklenen bir kanal kimlik bilgisi SecretRef üzerinden yapılandırılmış ancak geçerli komut yolunda kullanılamıyorsa, hesap yapılandırılmamış olarak gösterilmek yerine zayıflamış notlarla yapılandırılmış olarak raporlanır.
- Geniş bir probe için `openclaw status --deep` çalıştırın.
- Kılavuzlu düzeltmeler için `openclaw doctor` kullanın.
- `openclaw channels list`, `Claude: HTTP 403 ... user:profile` yazdırıyor → kullanım anlık görüntüsünün `user:profile` kapsamına ihtiyacı vardır. `--no-usage` kullanın, bir claude.ai oturum anahtarı (`CLAUDE_WEB_SESSION_KEY` / `CLAUDE_WEB_COOKIE`) sağlayın veya Claude CLI üzerinden yeniden kimlik doğrulaması yapın.
- Gateway erişilemez olduğunda `openclaw channels status`, yalnızca yapılandırma özetlerine geri döner. Desteklenen bir kanal kimlik bilgisi SecretRef üzerinden yapılandırılmış ancak geçerli komut yolunda kullanılamıyorsa, hesabı yapılandırılmamış olarak göstermek yerine bozulmuş notlarla yapılandırılmış olarak raporlar.
## Yetenek probu
## Yetenekler probeu
Sağlayıcı yetenek ipuçlarını (varsa intent/kapsamlar) ve statik özellik desteğini alın:
Sağlayıcı yetenek ipuçlarını (mevcut olduğunda intents/scopes) ve statik özellik desteğini alın:
```bash
openclaw channels capabilities
@ -119,10 +121,10 @@ openclaw channels capabilities --channel discord --target channel:123
Notlar:
- `--channel` isteğe bağlıdır; her kanalı (uzantılar dahil) listelemek için atlayın.
- `--channel` isteğe bağlıdır; her kanalı (extensions dahil) listelemek için atlayın.
- `--account` yalnızca `--channel` ile geçerlidir.
- `--target`, `channel:<id>` veya ham sayısal kanal kimliği kabul eder ve yalnızca Discord için geçerlidir.
- Problar sağlayıcıya özeldir: Discord intentleri + isteğe bağlı kanal izinleri; Slack bot + kullanıcı kapsamları; Telegram bot bayrakları + Webhook; Signal daemon sürümü; Microsoft Teams app token + Graph rolleri/kapsamları (bilinen yerlerde açıklamalı). Probu olmayan kanallar `Probe: unavailable` raporlar.
- Probelar sağlayıcıya özeldir: Discord intents + isteğe bağlı kanal izinleri; Slack bot + kullanıcı kapsamları; Telegram bot bayrakları + Webhook; Signal daemon sürümü; Microsoft Teams app token + Graph rolleri/kapsamları (bilinen yerlerde açıklamalı). Probeu olmayan kanallar `Probe: unavailable` raporlar.
## Adları kimliklere çözümleme
@ -137,10 +139,11 @@ openclaw channels resolve --channel matrix "Project Room"
Notlar:
- Hedef türünü zorlamak için `--kind user|group|auto` kullanın.
- Birden fazla girdi aynı adı paylaştığında çözümleme etkin eşleşmeleri tercih eder.
- `channels resolve` salt okunurdur. Seçili bir hesap SecretRef üzerinden yapılandırılmış ancak bu kimlik bilgisi geçerli komut yolunda kullanılamıyorsa, komut tüm çalıştırmayı iptal etmek yerine notlarla birlikte zayıflamış çözümlenemeyen sonuçlar döndürür.
- Birden çok giriş aynı adı paylaşıyorsa çözümleme aktif eşleşmeleri tercih eder.
- `channels resolve` salt okunurdur. Seçilen bir hesap SecretRef üzerinden yapılandırılmış ancak bu kimlik bilgisi geçerli komut yolunda kullanılamıyorsa, komut tüm çalıştırmayı durdurmak yerine notlarla bozulmuş çözümlenmemiş sonuçlar döndürür.
- `channels resolve`, kanal pluginleri kurmaz. Kurulabilir bir katalog kanalı için adları çözümlemeden önce `channels add --channel <name>` kullanın.
## İlgili
- [CLI başvurusu](/tr/cli)
- [Kanallara genel bakış](/tr/channels)
- [Kanallar genel bakışı](/tr/channels)

View File

@ -1,44 +1,44 @@
---
read_when:
- Kimlik bilgilerini, cihazları veya ajan varsayılanlarını etkileşimli olarak ayarlamak istiyorsunuz
summary: '`openclaw configure` için CLI başvurusu (etkileşimli yapılandırma istemleri)'
summary: '`openclaw configure` için CLI referansı (etkileşimli yapılandırma istemleri)'
title: Yapılandır
x-i18n:
generated_at: "2026-04-30T09:11:26Z"
generated_at: "2026-05-01T08:58:26Z"
model: gpt-5.5
provider: openai
source_hash: 1bde13a139c299879ff13a85c17afdd55dce7ad758418266854428b059d8a05e
source_hash: 437a6ec43a48611bf08bdeb0a6e692581c488fac283f0104b172088db37949bb
source_path: cli/configure.md
workflow: 16
---
# `openclaw configure`
Kimlik bilgilerini, cihazları ve ajan varsayılanlarını ayarlamak için etkileşimli istem.
Kimlik bilgilerini, cihazları ve agent varsayılanlarını ayarlamak için etkileşimli istem.
<Note>
**Model** bölümü, `agents.defaults.models` izin listesi için çoklu seçim içerir (`/model` içinde ve model seçicide görünenler). Sağlayıcı kapsamlı kurulum seçimleri, seçtikleri modelleri yapılandırmada zaten bulunan ilgisiz sağlayıcıları değiştirmek yerine mevcut izin listesiyle birleştirir. Configure içinden sağlayıcı kimlik doğrulamasını yeniden çalıştırmak, mevcut bir `agents.defaults.model.primary` değerini korur. Varsayılan modeli bilerek değiştirmek istediğinizde `openclaw models auth login --provider <id> --set-default` veya `openclaw models set <model>` kullanın.
**Model** bölümü, `agents.defaults.models` izin listesi için çoklu seçim içerir (`/model` içinde ve model seçicide görünenler). Sağlayıcı kapsamlı kurulum seçimleri, seçilen modelleri yapılandırmada zaten bulunan ilgisiz sağlayıcıları değiştirmek yerine mevcut izin listesine birleştirir. Configure üzerinden sağlayıcı kimlik doğrulamasını yeniden çalıştırmak, mevcut `agents.defaults.model.primary` değerini korur. Varsayılan modeli bilinçli olarak değiştirmek istediğinizde `openclaw models auth login --provider <id> --set-default` veya `openclaw models set <model>` kullanın.
</Note>
Configure bir sağlayıcı kimlik doğrulama seçiminden başladığında, varsayılan model ve izin listesi seçicileri otomatik olarak o sağlayıcıyı tercih eder. Volcengine ve BytePlus gibi eşleştirilmiş sağlayıcılarda aynı tercih, bunların kodlama planı varyantlarıyla da eşleşir (`volcengine-plan/*`, `byteplus-plan/*`). Tercih edilen sağlayıcı filtresi boş bir liste üretirse configure boş bir seçici göstermek yerine filtrelenmemiş kataloğa geri döner.
Configure bir sağlayıcı kimlik doğrulaması seçiminden başladığında, varsayılan model ve izin listesi seçicileri otomatik olarak o sağlayıcıyı tercih eder. Volcengine ve BytePlus gibi eşleştirilmiş sağlayıcılarda aynı tercih, onların kodlama planı varyantlarıyla da eşleşir (`volcengine-plan/*`, `byteplus-plan/*`). Tercih edilen sağlayıcı filtresi boş bir liste üretecekse configure, boş bir seçici göstermek yerine filtrelenmemiş kataloğa geri döner.
<Tip>
Alt komut olmadan `openclaw config` aynı sihirbazı açar. Etkileşimsiz düzenlemeler için `openclaw config get|set|unset` kullanın.
</Tip>
Web araması için `openclaw configure --section web`, bir sağlayıcı seçmenize
ve kimlik bilgilerini yapılandırmanıza olanak tanır. Bazı sağlayıcılar ayrıca sağlayıcıya özel
ve kimlik bilgilerini yapılandırmanıza olanak tanır. Bazı sağlayıcılar ayrıca sağlayıcıya öz
takip istemleri de gösterir:
- **Grok**, aynı `XAI_API_KEY` ile isteğe bağlı `x_search` kurulumu sunabilir ve
bir `x_search` modeli seçmenize olanak tanır.
bir `x_search` modeli seçmenize izin verebilir.
- **Kimi**, Moonshot API bölgesini (`api.moonshot.ai` veya
`api.moonshot.cn`) ve varsayılan Kimi web arama modelini sorabilir.
İlgili:
- Gateway yapılandırma başvurusu: [Yapılandırma](/tr/gateway/configuration)
- Yapılandırma CLI: [Yapılandırma](/tr/cli/config)
- Gateway yapılandırma referansı: [Yapılandırma](/tr/gateway/configuration)
- Config CLI: [Config](/tr/cli/config)
## Seçenekler
@ -58,10 +58,11 @@ Kullanılabilir bölümler:
Notlar:
- Gateway'in nerede çalışacağını seçmek her zaman `gateway.mode` değerini günceller. İhtiyacınız olan tek şey buysa diğer bölümler olmadan "Devam" seçeneğini seçebilirsiniz.
- Kanal odaklı hizmetler (Slack/Discord/Matrix/Microsoft Teams), kurulum sırasında kanal/oda izin listeleri için istem gösterir. Adlar veya ID'ler girebilirsiniz; sihirbaz mümkün olduğunda adları ID'lere çözer.
- Daemon kurulum adımını çalıştırırsanız, token kimlik doğrulaması bir token gerektiriyorsa ve `gateway.auth.token` SecretRef tarafından yönetiliyorsa configure SecretRef'i doğrular ancak çözümlenmiş düz metin token değerlerini supervisor hizmet ortamı meta verilerine kalıcı olarak yazmaz.
- Token kimlik doğrulaması bir token gerektiriyorsa ve yapılandırılmış token SecretRef'i çözümlenemiyorsa configure, uygulanabilir düzeltme rehberliğiyle daemon kurulumunu engeller.
- Gateway'in nerede çalışacağını seçmek her zaman `gateway.mode` değerini günceller. İhtiyacınız olan tek şey buysa başka bölümler olmadan "Devam"ı seçebilirsiniz.
- Yerel config yazımlarından sonra configure, yeni gereken paketlenmiş Plugin çalışma zamanı bağımlılıklarını somutlaştırır. Bu dar kapsamlı bir paket yöneticisi onarım adımıdır, tam bir `openclaw doctor` çalıştırması değildir. Uzak gateway config, yerel Plugin bağımlılıklarını kurmaz.
- Kanal odaklı hizmetler (Slack/Discord/Matrix/Microsoft Teams), kurulum sırasında kanal/oda izin listeleri için istem gösterir. Ad veya ID girebilirsiniz; sihirbaz mümkün olduğunda adları ID'lere çözer.
- Daemon kurulum adımını çalıştırırsanız, token kimlik doğrulaması bir token gerektiriyorsa ve `gateway.auth.token` SecretRef tarafından yönetiliyorsa configure, SecretRef'i doğrular ancak çözümlenmiş düz metin token değerlerini supervisor hizmet ortamı meta verilerine kalıcı olarak yazmaz.
- Token kimlik doğrulaması bir token gerektiriyorsa ve yapılandırılmış token SecretRef çözümlenmemişse configure, uygulanabilir düzeltme rehberliğiyle daemon kurulumunu engeller.
- Hem `gateway.auth.token` hem de `gateway.auth.password` yapılandırılmışsa ve `gateway.auth.mode` ayarlanmamışsa configure, mod açıkça ayarlanana kadar daemon kurulumunu engeller.
## Örnekler
@ -75,5 +76,5 @@ openclaw configure --section gateway --section daemon
## İlgili
- [CLI başvurusu](/tr/cli)
- [CLI referansı](/tr/cli)
- [Yapılandırma](/tr/gateway/configuration)

View File

@ -1,37 +1,37 @@
---
read_when:
- CLI üzerinden Gateway çalıştırma (geliştirme veya sunucular)
- Gateway kimlik doğrulaması, bağlama modları ve bağlantı sorunlarını ayıklama
- Bonjour aracılığıyla Gateway'leri keşfetme (yerel + geniş alan DNS-SD)
- Gateway'i CLI üzerinden çalıştırma (geliştirme veya sunucular)
- Gateway kimlik doğrulamasında, bağlama modlarında ve bağlantıda hata ayıklama
- Bonjour ile Gateway'leri keşfetme (yerel + geniş alan DNS-SD)
sidebarTitle: Gateway
summary: OpenClaw Gateway CLI (`openclaw gateway`) — Gateway'leri çalıştırın, sorgulayın ve keşfedin
summary: OpenClaw Gateway CLI (`openclaw gateway`) — Gateway'leri çalıştırma, sorgulama ve keşfetme
title: Gateway
x-i18n:
generated_at: "2026-04-30T09:12:30Z"
generated_at: "2026-05-01T08:58:38Z"
model: gpt-5.5
provider: openai
source_hash: fe53f1ec289bf463766634a9b03bc234e109fdddf35b3fa3958fb8c5255c81a9
source_hash: 127a6ccb4baa1ad5e5051db0bc7ef0ed30d410c4c3d13f36356483a6e03dce4c
source_path: cli/gateway.md
workflow: 16
---
Gateway, OpenClaw'ın WebSocket sunucusudur (kanallar, Node'lar, oturumlar, kancalar). Bu sayfadaki alt komutlar `openclaw gateway …` altında bulunur.
Gateway, OpenClaw'ın WebSocket sunucusudur (kanallar, düğümler, oturumlar, hook'lar). Bu sayfadaki alt komutlar `openclaw gateway …` altında yer alır.
<CardGroup cols={3}>
<Card title="Bonjour keşfi" href="/tr/gateway/bonjour">
<Card title="Bonjour discovery" href="/tr/gateway/bonjour">
Yerel mDNS + geniş alan DNS-SD kurulumu.
</Card>
<Card title="Keşif genel bakışı" href="/tr/gateway/discovery">
OpenClaw'ın Gateway'leri nasıl duyurduğu ve bulduğu.
<Card title="Discovery overview" href="/tr/gateway/discovery">
OpenClaw'ın gateway'leri nasıl duyurduğu ve bulduğu.
</Card>
<Card title="Yapılandırma" href="/tr/gateway/configuration">
Üst düzey Gateway yapılandırma anahtarları.
<Card title="Configuration" href="/tr/gateway/configuration">
Üst düzey gateway yapılandırma anahtarları.
</Card>
</CardGroup>
## Gateway'i Çalıştırma
## Gateway'i çalıştırma
Yerel bir Gateway süreci çalıştırın:
Yerel bir Gateway işlemi çalıştırın:
```bash
openclaw gateway
@ -44,13 +44,13 @@ openclaw gateway run
```
<AccordionGroup>
<Accordion title="Başlatma davranışı">
<Accordion title="Startup behavior">
- Varsayılan olarak Gateway, `~/.openclaw/openclaw.json` içinde `gateway.mode=local` ayarlanmadıkça başlamayı reddeder. Geçici/geliştirme çalıştırmaları için `--allow-unconfigured` kullanın.
- `openclaw onboard --mode local` ve `openclaw setup` komutlarının `gateway.mode=local` yazması beklenir. Dosya varsa ancak `gateway.mode` eksikse, bunu örtük olarak yerel mod varsaymak yerine bozuk veya üzerine yazılmış bir yapılandırma olarak ele alın ve onarın.
- Dosya varsa ve `gateway.mode` eksikse, Gateway bunu şüpheli yapılandırma hasarı olarak görür ve sizin için "yereli tahmin etmeyi" reddeder.
- Kimlik doğrulaması olmadan loopback ötesine bağlama engellenir (güvenlik koruma sınırı).
- Yetkilendirildiğinde `SIGUSR1`, süreç içinde yeniden başlatmayı tetikler (`commands.restart` varsayılan olarak etkindir; manuel yeniden başlatmayı engellemek için `commands.restart: false` ayarlayın, Gateway aracı/yapılandırma apply/update işlemleri izinli kalır).
- `SIGINT`/`SIGTERM` işleyicileri Gateway sürecini durdurur, ancak özel terminal durumlarını geri yüklemez. CLI'yi bir TUI veya raw-mode girişiyle sarmalıyorsanız, çıkmadan önce terminali geri yükleyin.
- `openclaw onboard --mode local` ve `openclaw setup` komutlarının `gateway.mode=local` yazması beklenir. Dosya varsa ancak `gateway.mode` eksikse, bunu local modun örtük olarak varsayılması yerine bozuk veya üzerine yazılmış bir yapılandırma olarak ele alın ve onarın.
- Dosya varsa ve `gateway.mode` eksikse Gateway bunu şüpheli yapılandırma hasarı olarak değerlendirir ve sizin için "local tahmini" yapmayı reddeder.
- Kimlik doğrulama olmadan loopback dışına bağlanma engellenir (güvenlik korkuluğu).
- Yetkilendirildiğinde `SIGUSR1` işlem içinde yeniden başlatmayı tetikler (`commands.restart` varsayılan olarak etkindir; manuel yeniden başlatmayı engellemek için `commands.restart: false` ayarlayın, gateway aracı/yapılandırma uygula/güncelleme izinli kalır).
- `SIGINT`/`SIGTERM` işleyicileri gateway işlemini durdurur, ancak özel terminal durumlarını geri yüklemez. CLI'ı bir TUI veya raw-mode girişle sararsanız, çıkmadan önce terminali geri yükleyin.
</Accordion>
</AccordionGroup>
@ -58,7 +58,7 @@ openclaw gateway run
### Seçenekler
<ParamField path="--port <port>" type="number">
WebSocket portu (varsayılan yapılandırmadan/env'den gelir; genellikle `18789`).
WebSocket portu (varsayılan config/env'den gelir; genellikle `18789`).
</ParamField>
<ParamField path="--bind <loopback|lan|tailnet|auto|custom>" type="string">
Dinleyici bağlama modu.
@ -67,84 +67,84 @@ openclaw gateway run
Kimlik doğrulama modu geçersiz kılması.
</ParamField>
<ParamField path="--token <token>" type="string">
Token geçersiz kılması (süreç için `OPENCLAW_GATEWAY_TOKEN` da ayarlar).
Token geçersiz kılması (işlem için `OPENCLAW_GATEWAY_TOKEN` değerini de ayarlar).
</ParamField>
<ParamField path="--password <password>" type="string">
Parola geçersiz kılması.
</ParamField>
<ParamField path="--password-file <path>" type="string">
Gateway parolasını bir dosyadan okuyun.
Gateway parolasını bir dosyadan oku.
</ParamField>
<ParamField path="--tailscale <off|serve|funnel>" type="string">
Gateway'i Tailscale üzerinden açığa çıkarın.
Gateway'i Tailscale üzerinden açığa çıkar.
</ParamField>
<ParamField path="--tailscale-reset-on-exit" type="boolean">
Kapanışta Tailscale serve/funnel yapılandırmasını sıfırlayın.
Kapanışta Tailscale serve/funnel yapılandırmasını sıfırla.
</ParamField>
<ParamField path="--allow-unconfigured" type="boolean">
Yapılandırmada `gateway.mode=local` olmadan Gateway başlatmaya izin verin. Yalnızca geçici/geliştirme önyüklemesi için başlatma korumasını atlar; yapılandırma dosyasını yazmaz veya onarmaz.
Yapılandırmada `gateway.mode=local` olmadan gateway başlatmaya izin ver. Başlangıç korumasını yalnızca geçici/geliştirme bootstrap için atlar; yapılandırma dosyasını yazmaz veya onarmaz.
</ParamField>
<ParamField path="--dev" type="boolean">
Eksikse bir geliştirme yapılandırması + çalışma alanı oluşturun (`BOOTSTRAP.md` atlanır).
Eksikse geliştirme yapılandırması + çalışma alanı oluşturur (`BOOTSTRAP.md` atlanır).
</ParamField>
<ParamField path="--reset" type="boolean">
Geliştirme yapılandırmasını + kimlik bilgilerini + oturumları + çalışma alanını sıfırlayın (`--dev` gerektirir).
Geliştirme yapılandırmasını + kimlik bilgilerini + oturumları + çalışma alanını sıfırlar (`--dev` gerektirir).
</ParamField>
<ParamField path="--force" type="boolean">
Başlatmadan önce seçili porttaki mevcut dinleyiciyi sonlandırın.
Başlamadan önce seçilen porttaki mevcut dinleyicileri sonlandır.
</ParamField>
<ParamField path="--verbose" type="boolean">
Ayrıntılı günlükler.
</ParamField>
<ParamField path="--cli-backend-logs" type="boolean">
Konsolda yalnızca CLI arka uç günlüklerini gösterin (ve stdout/stderr'yi etkinleştirin).
Konsolda yalnızca CLI arka uç günlüklerini göster (ve stdout/stderr'ı etkinleştir).
</ParamField>
<ParamField path="--ws-log <auto|full|compact>" type="string" default="auto">
Websocket günlük stili.
WebSocket günlük stili.
</ParamField>
<ParamField path="--compact" type="boolean">
`--ws-log compact` için takma ad.
</ParamField>
<ParamField path="--raw-stream" type="boolean">
Ham model akış olaylarını jsonl'ye günlüğe kaydedin.
Ham model stream olaylarını jsonl'ye günlüğe yaz.
</ParamField>
<ParamField path="--raw-stream-path <path>" type="string">
Ham akış jsonl yolu.
Ham stream jsonl yolu.
</ParamField>
<Warning>
Satır içi `--password`, yerel süreç listelerinde açığa çıkabilir. `--password-file`, env veya SecretRef destekli `gateway.auth.password` tercih edin.
Satır içi `--password` yerel işlem listelerinde açığa çıkabilir. `--password-file`, env veya SecretRef destekli `gateway.auth.password` tercih edin.
</Warning>
### Başlatma profillemesi
### Başlangıç profilleme
- Gateway başlatması sırasında faz zamanlamalarını günlüğe kaydetmek için `OPENCLAW_GATEWAY_STARTUP_TRACE=1` ayarlayın; buna faz başına `eventLoopMax` gecikmesi ve installed-index, manifest kayıt defteri, başlatma planlaması ve owner-map çalışması için Plugin arama tablosu zamanlamaları dahildir.
- Harici QA koşumları için en iyi çabayla JSONL başlatma tanılama zaman çizelgesi yazmak üzere `OPENCLAW_DIAGNOSTICS=timeline` ile `OPENCLAW_DIAGNOSTICS_TIMELINE_PATH=<path>` ayarlayın. Bayrağı yapılandırmada `diagnostics.flags: ["timeline"]` ile de etkinleştirebilirsiniz; yol yine env tarafından sağlanır. Olay döngüsü örneklerini dahil etmek için `OPENCLAW_DIAGNOSTICS_EVENT_LOOP=1` ekleyin.
- Gateway başlatmasını kıyaslamak için `pnpm test:startup:gateway -- --runs 5 --warmup 1` çalıştırın. Kıyaslama ilk süreç çıktısını, `/healthz`, `/readyz`, başlatma izleme zamanlamalarını, olay döngüsü gecikmesini ve Plugin arama tablosu zamanlama ayrıntılarını kaydeder.
- Gateway başlangıcı sırasında aşama zamanlamalarını, aşama başına `eventLoopMax` gecikmesini ve kurulu dizin, manifest registry, başlangıç planlaması ve owner-map işleri için plugin arama tablosu zamanlamalarını günlüğe yazmak için `OPENCLAW_GATEWAY_STARTUP_TRACE=1` ayarlayın.
- Harici QA harness'ları için en iyi çaba JSONL başlangıç tanılama zaman çizelgesi yazmak üzere `OPENCLAW_DIAGNOSTICS_TIMELINE_PATH=<path>` ile `OPENCLAW_DIAGNOSTICS=timeline` ayarlayın. Bayrağı yapılandırmada `diagnostics.flags: ["timeline"]` ile de etkinleştirebilirsiniz; yol yine env üzerinden sağlanır. Olay döngüsü örneklerini eklemek için `OPENCLAW_DIAGNOSTICS_EVENT_LOOP=1` ekleyin.
- Gateway başlangıcını benchmark etmek için `pnpm test:startup:gateway -- --runs 5 --warmup 1` çalıştırın. Benchmark ilk işlem çıktısını, `/healthz`, `/readyz`, başlangıç izleme zamanlamalarını, olay döngüsü gecikmesini ve plugin arama tablosu zamanlama ayrıntılarını kaydeder.
## Çalışan bir Gateway'i Sorgulama
## Çalışan bir Gateway'i sorgulama
Tüm sorgu komutları WebSocket RPC kullanır.
<Tabs>
<Tab title="Çıktı modları">
<Tab title="Output modes">
- Varsayılan: insan tarafından okunabilir (TTY'de renkli).
- `--json`: makine tarafından okunabilir JSON (stil/spinner yok).
- `--no-color` (veya `NO_COLOR=1`): insan düzenini korurken ANSI'yi devre dışı bırakır.
</Tab>
<Tab title="Paylaşılan seçenekler">
<Tab title="Shared options">
- `--url <url>`: Gateway WebSocket URL'si.
- `--token <token>`: Gateway token'ı.
- `--password <password>`: Gateway parolası.
- `--timeout <ms>`: zaman aşımı/bütçe (komuta göre değişir).
- `--expect-final`: bir "final" yanıtını bekler (aracı çağrıları).
- `--expect-final`: "final" yanıtını bekle (ajan çağrıları).
</Tab>
</Tabs>
<Note>
`--url` ayarladığınızda CLI, yapılandırma veya ortam kimlik bilgilerine geri dönmez. `--token` veya `--password` değerini açıkça geçirin. Açık kimlik bilgilerinin eksik olması hatadır.
`--url` ayarladığınızda CLI yapılandırmaya veya ortam kimlik bilgilerine geri dönmez. `--token` veya `--password` değerini açıkça iletin. Açık kimlik bilgilerinin eksik olması bir hatadır.
</Note>
### `gateway health`
@ -153,11 +153,11 @@ Tüm sorgu komutları WebSocket RPC kullanır.
openclaw gateway health --url ws://127.0.0.1:18789
```
HTTP `/healthz` uç noktası bir canlılık probudur: sunucu HTTP'ye yanıt verebildiğinde döner. HTTP `/readyz` uç noktası daha katıdır ve başlatma yardımcı süreçleri, kanallar veya yapılandırılmış kancalar hâlâ yerleşirken kırmızı kalır. Yerel veya kimliği doğrulanmış ayrıntılı hazır olma yanıtları; olay döngüsü gecikmesi, olay döngüsü kullanımı, CPU çekirdek oranı ve bir `degraded` bayrağı içeren bir `eventLoop` tanılama bloğu içerir.
HTTP `/healthz` uç noktası bir canlılık denetimidir: sunucu HTTP'ye yanıt verebildiğinde döner. HTTP `/readyz` uç noktası daha katıdır ve başlangıç plugin runtime bağımlılıkları, sidecar'lar, kanallar veya yapılandırılmış hook'lar hâlâ yerleşirken kırmızı kalır. Yerel veya kimliği doğrulanmış ayrıntılı readiness yanıtları, olay döngüsü gecikmesi, olay döngüsü kullanımı, CPU çekirdek oranı ve `degraded` bayrağı içeren bir `eventLoop` tanılama bloğu içerir.
### `gateway usage-cost`
Oturum günlüklerinden kullanım maliyeti özetlerini alın.
Oturum günlüklerinden kullanım maliyeti özetlerini getir.
```bash
openclaw gateway usage-cost
@ -171,7 +171,7 @@ openclaw gateway usage-cost --json
### `gateway stability`
Çalışan bir Gateway'den son tanılama kararlılık kaydedicisini alın.
Çalışan bir Gateway'den son tanılama kararlılığı kaydedicisini getir.
```bash
openclaw gateway stability
@ -182,35 +182,35 @@ openclaw gateway stability --json
```
<ParamField path="--limit <limit>" type="number" default="25">
Dahil edilecek en fazla son olay sayısı (maks. `1000`).
Dahil edilecek en fazla son olay sayısı (maksimum `1000`).
</ParamField>
<ParamField path="--type <type>" type="string">
`payload.large` veya `diagnostic.memory.pressure` gibi tanılama olay türüne göre filtreleyin.
`payload.large` veya `diagnostic.memory.pressure` gibi tanılama olay türüne göre filtrele.
</ParamField>
<ParamField path="--since-seq <seq>" type="number">
Yalnızca bir tanılama sıra numarasından sonraki olayları dahil edin.
Yalnızca bir tanılama sıra numarasından sonraki olayları dahil et.
</ParamField>
<ParamField path="--bundle [path]" type="string">
Çalışan Gateway'i çağırmak yerine kalıcı bir kararlılık paketini okuyun. Durum dizini altındaki en yeni paket için `--bundle latest` (veya yalnızca `--bundle`) kullanın ya da doğrudan bir paket JSON yolu geçirin.
Çalışan Gateway'i çağırmak yerine kalıcı bir kararlılık bundle'ı oku. Durum dizini altındaki en yeni bundle için `--bundle latest` (veya yalnızca `--bundle`) kullanın ya da doğrudan bir bundle JSON yolu iletin.
</ParamField>
<ParamField path="--export" type="boolean">
Kararlılık ayrıntılarını yazdırmak yerine paylaşılabilir bir destek tanılama zip'i yazın.
Kararlılık ayrıntılarını yazdırmak yerine paylaşılabilir bir destek tanılama zip'i yaz.
</ParamField>
<ParamField path="--output <path>" type="string">
`--export` için çıktı yolu.
</ParamField>
<AccordionGroup>
<Accordion title="Gizlilik ve paket davranışı">
- Kayıtlar operasyonel meta verileri tutar: olay adları, sayılar, bayt boyutları, bellek okumaları, kuyruk/oturum durumu, kanal/Plugin adları ve redakte edilmiş oturum özetleri. Sohbet metnini, Webhook gövdelerini, araç çıktılarını, ham istek veya yanıt gövdelerini, token'ları, çerezleri, gizli değerleri, ana makine adlarını veya ham oturum kimliklerini tutmazlar. Kaydediciyi tamamen devre dışı bırakmak için `diagnostics.enabled: false` ayarlayın.
- Ölümcül Gateway çıkışlarında, kapanma zaman aşımlarında ve yeniden başlatma başlatma hatalarında, kaydedicide olaylar varsa OpenClaw aynı tanılama anlık görüntüsünü `~/.openclaw/logs/stability/openclaw-stability-*.json` konumuna yazar. En yeni paketi `openclaw gateway stability --bundle latest` ile inceleyin; `--limit`, `--type` ve `--since-seq` de paket çıktısına uygulanır.
<Accordion title="Privacy and bundle behavior">
- Kayıtlar operasyonel meta verileri tutar: olay adları, sayımlar, bayt boyutları, bellek okumaları, kuyruk/oturum durumu, kanal/plugin adları ve redakte edilmiş oturum özetleri. Sohbet metni, webhook gövdeleri, araç çıktıları, ham istek veya yanıt gövdeleri, token'lar, çerezler, gizli değerler, host adları veya ham oturum kimlikleri tutulmaz. Kaydediciyi tamamen devre dışı bırakmak için `diagnostics.enabled: false` ayarlayın.
- Ölümcül Gateway çıkışlarında, kapanış zaman aşımlarında ve yeniden başlatma başlangıç hatalarında OpenClaw, kaydedicide olaylar varsa aynı tanılama anlık görüntüsünü `~/.openclaw/logs/stability/openclaw-stability-*.json` konumuna yazar. En yeni bundle'ı `openclaw gateway stability --bundle latest` ile inceleyin; `--limit`, `--type` ve `--since-seq` bundle çıktısına da uygulanır.
</Accordion>
</AccordionGroup>
### `gateway diagnostics export`
Hata raporlarına eklenmek üzere tasarlanmış yerel bir tanılama zip'i yazın. Gizlilik modeli ve paket içerikleri için bkz. [Tanılama Dışa Aktarma](/tr/gateway/diagnostics).
Hata raporlarına eklenmek üzere tasarlanmış yerel bir tanılama zip'i yaz. Gizlilik modeli ve bundle içerikleri için [Diagnostics Export](/tr/gateway/diagnostics) bölümüne bakın.
```bash
openclaw gateway diagnostics export
@ -219,10 +219,10 @@ openclaw gateway diagnostics export --json
```
<ParamField path="--output <path>" type="string">
Çıktı zip yolu. Varsayılan olarak durum dizini altında bir destek dışa aktarmasıdır.
Çıktı zip yolu. Varsayılan olarak durum dizini altında bir destek dışa aktarımıdır.
</ParamField>
<ParamField path="--log-lines <count>" type="number" default="5000">
Dahil edilecek en fazla temizlenmiş günlük satırı.
Dahil edilecek en fazla sanitize edilmiş günlük satırı.
</ParamField>
<ParamField path="--log-bytes <bytes>" type="number" default="1000000">
İncelenecek en fazla günlük baytı.
@ -240,19 +240,19 @@ openclaw gateway diagnostics export --json
Durum/sağlık anlık görüntüsü zaman aşımı.
</ParamField>
<ParamField path="--no-stability-bundle" type="boolean">
Kalıcı kararlılık paketi aramasını atlayın.
Kalıcı kararlılık bundle'ı aramasını atla.
</ParamField>
<ParamField path="--json" type="boolean">
Yazılan yolu, boyutu ve manifesti JSON olarak yazdırın.
Yazılan yolu, boyutu ve manifest'i JSON olarak yazdır.
</ParamField>
Dışa aktarma; bir manifest, Markdown özeti, yapılandırma şekli, temizlenmiş yapılandırma ayrıntıları, temizlenmiş günlük özetleri, temizlenmiş Gateway durum/sağlık anlık görüntüleri ve varsa en yeni kararlılık paketini içerir.
Dışa aktarım bir manifest, Markdown özeti, yapılandırma şekli, sanitize edilmiş yapılandırma ayrıntıları, sanitize edilmiş günlük özetleri, sanitize edilmiş Gateway durum/sağlık anlık görüntüleri ve varsa en yeni kararlılık bundle'ını içerir.
Paylaşılmak üzere tasarlanmıştır. Hata ayıklamaya yardımcı olan operasyonel ayrıntıları tutar; güvenli OpenClaw günlük alanları, alt sistem adları, durum kodları, süreler, yapılandırılmış modlar, portlar, Plugin kimlikleri, sağlayıcı kimlikleri, gizli olmayan özellik ayarları ve redakte edilmiş operasyonel günlük mesajları buna dahildir. Sohbet metnini, Webhook gövdelerini, araç çıktılarını, kimlik bilgilerini, çerezleri, hesap/mesaj tanımlayıcılarını, istem/talimat metnini, ana makine adlarını ve gizli değerleri atlar veya redakte eder. LogTape tarzı bir mesaj kullanıcı/sohbet/araç yük metni gibi göründüğünde, dışa aktarma yalnızca bir mesajın atlandığı bilgisini ve bayt sayısını tutar.
Paylaşılmak üzere tasarlanmıştır. Güvenli OpenClaw günlük alanları, alt sistem adları, durum kodları, süreler, yapılandırılmış modlar, portlar, plugin kimlikleri, sağlayıcı kimlikleri, gizli olmayan özellik ayarları ve redakte edilmiş operasyonel günlük mesajları gibi hata ayıklamaya yardımcı operasyonel ayrıntıları tutar. Sohbet metni, webhook gövdeleri, araç çıktıları, kimlik bilgileri, çerezler, hesap/mesaj tanımlayıcıları, prompt/talimat metni, host adları ve gizli değerleri çıkarır veya redakte eder. LogTape tarzı bir mesaj kullanıcı/sohbet/araç payload metnine benzediğinde, dışa aktarım yalnızca mesajın çıkarıldığını ve bayt sayısını tutar.
### `gateway status`
`gateway status`, Gateway hizmetini (launchd/systemd/schtasks) ve isteğe bağlı bir bağlantı/kimlik doğrulama yeteneği probunu gösterir.
`gateway status`, Gateway hizmetini (launchd/systemd/schtasks) ve isteğe bağlı bir bağlantı/kimlik doğrulama yeteneği denetimini gösterir.
```bash
openclaw gateway status
@ -261,63 +261,63 @@ openclaw gateway status --require-rpc
```
<ParamField path="--url <url>" type="string">
ık bir prob hedefi ekleyin. Yapılandırılmış uzak + localhost yine de problanır.
ık bir denetim hedefi ekle. Yapılandırılmış uzak + localhost yine de denetlenir.
</ParamField>
<ParamField path="--token <token>" type="string">
Prob için token kimlik doğrulaması.
Denetim için token kimlik doğrulaması.
</ParamField>
<ParamField path="--password <password>" type="string">
Prob için parola kimlik doğrulaması.
Denetim için parola kimlik doğrulaması.
</ParamField>
<ParamField path="--timeout <ms>" type="number" default="10000">
Prob zaman aşımı.
Denetim zaman aşımı.
</ParamField>
<ParamField path="--no-probe" type="boolean">
Bağlantı probunu atlayın (yalnızca hizmet görünümü).
Bağlantı denetimini atla (yalnızca hizmet görünümü).
</ParamField>
<ParamField path="--deep" type="boolean">
Sistem düzeyi hizmetleri de tarayın.
Sistem düzeyi hizmetleri de tara.
</ParamField>
<ParamField path="--require-rpc" type="boolean">
Varsayılan bağlantı probunu bir okuma probuna yükseltin ve bu okuma probu başarısız olduğunda sıfır olmayan kodla çıkın. `--no-probe` ile birlikte kullanılamaz.
Varsayılan bağlantı denetimini bir okuma denetimine yükselt ve bu okuma denetimi başarısız olduğunda sıfır olmayan kodla çık. `--no-probe` ile birleştirilemez.
</ParamField>
<AccordionGroup>
<Accordion title="Durum semantiği">
<Accordion title="Durum anlamları">
- `gateway status`, yerel CLI yapılandırması eksik veya geçersiz olsa bile tanılama için kullanılabilir kalır.
- Varsayılan `gateway status`, hizmet durumunu, WebSocket bağlantısını ve el sıkışma zamanında görünen kimlik doğrulama yeteneğini kanıtlar. Okuma/yazma/yönetici işlemlerini kanıtlamaz.
- Tanılama yoklamaları, ilk kez cihaz kimlik doğrulaması için değişiklik yapmaz: varsa mevcut önbelleğe alınmış cihaz belirtecini yeniden kullanırlar, ancak yalnızca durumu denetlemek için yeni bir CLI cihaz kimliği veya salt okunur cihaz eşleştirme kaydı oluşturmazlar.
- `gateway status`, mümkün olduğunda yoklama kimlik doğrulaması için yapılandırılmış kimlik doğrulama SecretRef'lerini çözer.
- Bu komut yolunda gerekli bir kimlik doğrulama SecretRef'i çözülemezse, yoklama bağlantısı/kimlik doğrulaması başarısız olduğunda `gateway status --json`, `rpc.authWarning` bildirir; `--token`/`--password` değerlerini açıkça geçin veya önce gizli kaynak kaynağını çözün.
- Yoklama başarılı olursa, yanlış pozitifleri önlemek için çözülemeyen kimlik doğrulama başvurusu uyarıları bastırılır.
- Varsayılan `gateway status`; hizmet durumunu, WebSocket bağlantısını ve el sıkışma anında görünen kimlik doğrulama yeteneğini kanıtlar. Okuma/yazma/yönetici işlemlerini kanıtlamaz.
- Tanılama yoklamaları, ilk kez cihaz kimlik doğrulaması için değişiklik yapmaz: mevcut bir önbelleğe alınmış cihaz token'ı varsa bunu yeniden kullanırlar, ancak yalnızca durumu denetlemek için yeni bir CLI cihaz kimliği veya salt okunur cihaz eşleştirme kaydı oluşturmazlar.
- `gateway status`, mümkün olduğunda yoklama kimlik doğrulaması için yapılandırılmış kimlik doğrulama SecretRef'lerini çözümler.
- Bu komut yolunda gerekli bir kimlik doğrulama SecretRef'i çözümlenmemişse, yoklama bağlantısı/kimlik doğrulaması başarısız olduğunda `gateway status --json` `rpc.authWarning` bildirir; `--token`/`--password` değerini açıkça iletin veya önce gizli kaynak değerini çözümleyin.
- Yoklama başarılı olursa, yanlış pozitifleri önlemek için çözümlenmemiş auth-ref uyarıları bastırılır.
- Dinleyen bir hizmet yeterli olmadığında ve okuma kapsamlı RPC çağrılarının da sağlıklı olması gerektiğinde betiklerde ve otomasyonda `--require-rpc` kullanın.
- `--deep`, ek launchd/systemd/schtasks kurulumları için en iyi çabayla bir tarama ekler. Birden fazla Gateway benzeri hizmet algılandığında, insan çıktısı temizlik ipuçları yazdırır ve çoğu kurulumun makine başına bir Gateway çalıştırması gerektiği konusunda uyarır.
- İnsan çıktısı, profil veya state-dir kaymasını tanılamaya yardımcı olmak için çözümlenen dosya günlük yolunu ve CLI ile hizmet yapılandırma yolları/geçerlilik anlık görüntüsünü içerir.
- `--deep`, ek launchd/systemd/schtasks kurulumları için en iyi çabayla bir tarama ekler. Birden çok Gateway benzeri hizmet algılandığında, insan çıktısı temizlik ipuçları yazdırır ve çoğu kurulumun makine başına bir Gateway çalıştırması gerektiği konusunda uyarır.
- İnsan çıktısı, profil veya state-dir sapmasını tanılamaya yardımcı olmak için çözümlenmiş dosya günlük yolunu ve CLI ile hizmet yapılandırma yolları/geçerlilik anlık görüntüsünü içerir.
</Accordion>
<Accordion title="Linux systemd kimlik doğrulama kayması denetimleri">
- Linux systemd kurulumlarında, hizmet kimlik doğrulama kayması denetimleri unit içindeki hem `Environment=` hem de `EnvironmentFile=` değerlerini okur (`%h`, tırnaklı yollar, birden fazla dosya ve isteğe bağlı `-` dosyaları dahil).
- Kayma denetimleri, birleştirilmiş çalışma zamanı env kullanarak `gateway.auth.token` SecretRef'lerini çözer (önce hizmet komutu env, ardından process env yedeği).
- Belirteç kimlik doğrulaması etkin şekilde aktif değilse (açık `gateway.auth.mode` değeri `password`/`none`/`trusted-proxy` ise veya parola kazanabilirken mod ayarlanmamışsa ve hiçbir belirteç adayı kazanamıyorsa), belirteç kayması denetimleri yapılandırma belirteci çözümünü atlar.
<Accordion title="Linux systemd kimlik doğrulama sapması denetimleri">
- Linux systemd kurulumlarında, hizmet kimlik doğrulama sapması denetimleri birimden hem `Environment=` hem de `EnvironmentFile=` değerlerini okur (`%h`, tırnak içine alınmış yollar, birden çok dosya ve isteğe bağlı `-` dosyaları dahil).
- Sapma denetimleri, birleştirilmiş çalışma zamanı env değerini kullanarak `gateway.auth.token` SecretRef'lerini çözümler (önce hizmet komutu env, ardından süreç env yedeği).
- Token kimlik doğrulaması etkin biçimde aktif değilse (açık `gateway.auth.mode` değeri `password`/`none`/`trusted-proxy` ise veya parola kazanabilirken mod ayarlanmamışsa ve hiçbir token adayı kazanamıyorsa), token sapması denetimleri yapılandırma token çözümlemesini atlar.
</Accordion>
</AccordionGroup>
### `gateway probe`
`gateway probe`, "her şeyin hata ayıklamasını yap" komutudur. Her zaman şunları yoklar:
`gateway probe`, "her şeyi hata ayıkla" komutudur. Her zaman şunları yoklar:
- yapılandırılmış uzak Gateway'iniz (ayarlanmışsa) ve
- yapılandırılmış uzak gateway'iniz (ayarlanmışsa) ve
- localhost (loopback), **uzak yapılandırılmış olsa bile**.
`--url` geçirirseniz, bu açık hedef ikisinin de önüne eklenir. İnsan çıktısı hedefleri şöyle etiketler:
`--url` iletirseniz, bu açık hedef her ikisinin önüne eklenir. İnsan çıktısı hedefleri şöyle etiketler:
- `URL (ık)`
- `Uzak (yapılandırılmış)` veya `Uzak (yapılandırılmış, etkin değil)`
- `URL (explicit)`
- `Remote (configured)` veya `Remote (configured, inactive)`
- `Local loopback`
<Note>
Birden fazla Gateway erişilebilir durumdaysa, hepsini yazdırır. Yalıtılmış profiller/portlar kullandığınızda birden fazla Gateway desteklenir (ör. kurtarma botu), ancak çoğu kurulum yine de tek bir Gateway çalıştırır.
Birden çok gateway erişilebilirse, hepsini yazdırır. Yalıtılmış profiller/portlar kullandığınızda (ör. bir kurtarma botu) birden çok gateway desteklenir, ancak çoğu kurulum yine de tek bir gateway çalıştırır.
</Note>
```bash
@ -328,50 +328,50 @@ openclaw gateway probe --json
<AccordionGroup>
<Accordion title="Yorumlama">
- `Reachable: yes`, en az bir hedefin WebSocket bağlantısını kabul ettiği anlamına gelir.
- `Capability: read-only|write-capable|admin-capable|pairing-pending|connect-only`, yoklamanın kimlik doğrulama hakkında neyi kanıtlayabildiğini bildirir. Erişilebilirlikten ayrıdır.
- `Capability: read-only|write-capable|admin-capable|pairing-pending|connect-only`, yoklamanın kimlik doğrulama hakkında kanıtlayabildiği şeyi bildirir. Erişilebilirlikten ayrıdır.
- `Read probe: ok`, okuma kapsamlı ayrıntı RPC çağrılarının (`health`/`status`/`system-presence`/`config.get`) da başarılı olduğu anlamına gelir.
- `Read probe: limited - missing scope: operator.read`, bağlantının başarılı olduğu ancak okuma kapsamlı RPC'nin sınırlı olduğu anlamına gelir. Bu, tam başarısızlık olarak değil, **bozulmuş** erişilebilirlik olarak bildirilir.
- `Connect: ok` sonrasında `Read probe: failed`, Gateway'in WebSocket bağlantısını kabul ettiği, ancak sonraki okuma tanılamalarının zaman aşımına uğradığı veya başarısız olduğu anlamına gelir. Bu da erişilemez Gateway olarak değil, **bozulmuş** erişilebilirlik olarak değerlendirilir.
- `gateway status` gibi, probe mevcut önbelleğe alınmış cihaz kimlik doğrulamasını yeniden kullanır ancak ilk kez cihaz kimliği veya eşleştirme durumu oluşturmaz.
- Çıkış kodu yalnızca hiçbir yoklanan hedef erişilebilir değilse sıfır dışıdır.
- `Read probe: limited - missing scope: operator.read`, bağlantının başarılı olduğunu ancak okuma kapsamlı RPC'nin sınırlı olduğunu belirtir. Bu, tam başarısızlık olarak değil, **bozulmuş** erişilebilirlik olarak bildirilir.
- `Connect: ok` sonrasında `Read probe: failed`, Gateway'in WebSocket bağlantısını kabul ettiği, ancak takip eden okuma tanılamalarının zaman aşımına uğradığı veya başarısız olduğu anlamına gelir. Bu da erişilemeyen Gateway değil, **bozulmuş** erişilebilirliktir.
- `gateway status` gibi probe da mevcut önbelleğe alınmış cihaz kimlik doğrulamasını yeniden kullanır, ancak ilk kez cihaz kimliği veya eşleştirme durumu oluşturmaz.
- Çıkış kodu yalnızca yoklanan hiçbir hedef erişilebilir olmadığında sıfırdan farklıdır.
</Accordion>
<Accordion title="JSON çıktısı">
Üst düzey:
- `ok`: en az bir hedef erişilebilir.
- `degraded`: en az bir hedef bağlantıyı kabul etti ancak tam ayrıntı RPC tanılamalarını tamamlamadı.
- `capability`: erişilebilir hedefler genelinde görülen en iyi yetenek (`read_only`, `write_capable`, `admin_capable`, `pairing_pending`, `connected_no_operator_scope` veya `unknown`).
- `primaryTargetId`: şu sırayla etkin kazanan olarak ele alınacak en iyi hedef: açık URL, SSH tüneli, yapılandırılmış uzak, ardından local loopback.
- `degraded`: en az bir hedef bağlantı kabul etti ancak tam ayrıntı RPC tanılamalarını tamamlamadı.
- `capability`: erişilebilir hedefler arasında görülen en iyi yetenek (`read_only`, `write_capable`, `admin_capable`, `pairing_pending`, `connected_no_operator_scope` veya `unknown`).
- `primaryTargetId`: bu sırayla etkin kazanan olarak ele alınacak en iyi hedef: açık URL, SSH tüneli, yapılandırılmış uzak, ardından local loopback.
- `warnings[]`: `code`, `message` ve isteğe bağlı `targetIds` içeren en iyi çaba uyarı kayıtları.
- `network`: geçerli yapılandırma ve ana makine ağına göre türetilmiş local loopback/tailnet URL ipuçları.
- `network`: mevcut yapılandırmadan ve ana makine ağ yapılandırmasından türetilen local loopback/tailnet URL ipuçları.
- `discovery.timeoutMs` ve `discovery.count`: bu yoklama geçişi için kullanılan gerçek keşif bütçesi/sonuç sayısı.
Hedef başına (`targets[].connect`):
- `ok`: bağlantı + bozulmuş sınıflandırma sonrası erişilebilirlik.
- `rpcOk`: tam ayrıntı RPC başarısı.
- `scopeLimited`: ayrıntı RPC, eksik operatör kapsamı nedeniyle başarısız oldu.
- `scopeLimited`: eksik operator kapsamı nedeniyle ayrıntı RPC başarısız oldu.
Hedef başına (`targets[].auth`):
- `role`: varsa `hello-ok` içinde bildirilen kimlik doğrulama rolü.
- `scopes`: varsa `hello-ok` içinde bildirilen verilen kapsamlar.
- `capability`: o hedef için yüzeye çıkarılan kimlik doğrulama yeteneği sınıflandırması.
- `scopes`: varsa `hello-ok` içinde bildirilen verilmiş kapsamlar.
- `capability`: ilgili hedef için yüzeye çıkarılan kimlik doğrulama yeteneği sınıflandırması.
</Accordion>
<Accordion title="Yaygın uyarı kodları">
- `ssh_tunnel_failed`: SSH tüneli kurulumu başarısız oldu; komut doğrudan yoklamalara geri döndü.
- `multiple_gateways`: birden fazla hedef erişilebilir durumdaydı; kurtarma botu gibi yalıtılmış profilleri bilerek çalıştırmadığınız sürece bu alışılmadık bir durumdur.
- `auth_secretref_unresolved`: yapılandırılmış bir kimlik doğrulama SecretRef'i, başarısız bir hedef için çözülemedi.
- `multiple_gateways`: birden fazla hedef erişilebilirdi; kurtarma botu gibi yalıtılmış profilleri bilerek çalıştırmadığınız sürece bu olağan dışıdır.
- `auth_secretref_unresolved`: yapılandırılmış bir kimlik doğrulama SecretRef'i başarısız bir hedef için çözümlenemedi.
- `probe_scope_limited`: WebSocket bağlantısı başarılı oldu, ancak okuma yoklaması eksik `operator.read` nedeniyle sınırlıydı.
</Accordion>
</AccordionGroup>
#### SSH üzerinden uzak (Mac uygulaması eşliği)
#### SSH üzerinden uzak (Mac uygulamasıdeğerliği)
macOS uygulamasındaki "Remote over SSH" modu, yerel port yönlendirme kullanır; böylece uzak Gateway (yalnızca loopback'e bağlı olabilir) `ws://127.0.0.1:<port>` adresinde erişilebilir olur.
macOS uygulamasındaki "Remote over SSH" modu, uzak gateway'in (yalnızca loopback'e bağlanmış olabilir) `ws://127.0.0.1:<port>` adresinde erişilebilir olmasını sağlamak için yerel port yönlendirme kullanır.
CLI eşdeğeri:
@ -386,7 +386,7 @@ openclaw gateway probe --ssh user@gateway-host
Kimlik dosyası.
</ParamField>
<ParamField path="--ssh-auto" type="boolean">
Çözümlenen keşif uç noktasından (`local.` artı varsa yapılandırılmış geniş alan etki alanı) ilk keşfedilen Gateway ana makinesini SSH hedefi olarak seçin. Yalnızca TXT ipuçları yok sayılır.
Çözümlenmiş keşif uç noktasından (`local.` artı varsa yapılandırılmış geniş alan etki alanı) ilk keşfedilen gateway ana makinesini SSH hedefi olarak seçer. Yalnızca TXT ipuçları yok sayılır.
</ParamField>
Yapılandırma (isteğe bağlı, varsayılan olarak kullanılır):
@ -396,7 +396,7 @@ Yapılandırma (isteğe bağlı, varsayılan olarak kullanılır):
### `gateway call <method>`
Düşük düzey RPC yardımcısı.
Düşük seviyeli RPC yardımcısı.
```bash
openclaw gateway call status
@ -404,13 +404,13 @@ openclaw gateway call logs.tail --params '{"sinceMs": 60000}'
```
<ParamField path="--params <json>" type="string" default="{}">
Parametreler için JSON nesnesi dizesi.
Parametreler için JSON nesne dizesi.
</ParamField>
<ParamField path="--url <url>" type="string">
Gateway WebSocket URL'si.
</ParamField>
<ParamField path="--token <token>" type="string">
Gateway belirteci.
Gateway token'ı.
</ParamField>
<ParamField path="--password <password>" type="string">
Gateway parolası.
@ -419,7 +419,7 @@ openclaw gateway call logs.tail --params '{"sinceMs": 60000}'
Zaman aşımı bütçesi.
</ParamField>
<ParamField path="--expect-final" type="boolean">
Özellikle son yükten önce ara olaylar akışı yapan ajan tarzı RPC'ler için.
Esas olarak, nihai yükten önce ara olaylar akışı yapan ajan tarzı RPC'ler içindir.
</ParamField>
<ParamField path="--json" type="boolean">
Makine tarafından okunabilir JSON çıktısı.
@ -439,11 +439,9 @@ openclaw gateway restart
openclaw gateway uninstall
```
### Bir sarmalayıcıyla kurulum
### Bir wrapper ile kurulum
Yönetilen hizmetin başka bir yürütülebilir dosya üzerinden başlaması gerektiğinde `--wrapper` kullanın; örneğin bir
gizli anahtar yöneticisi shim'i veya farklı kullanıcıyla çalıştırma yardımcısı. Sarmalayıcı normal Gateway argümanlarını alır ve
sonunda bu argümanlarla `openclaw` veya Node'u exec etmekten sorumludur.
Yönetilen hizmetin başka bir yürütülebilir dosya üzerinden başlatılması gerektiğinde `--wrapper` kullanın; örneğin bir gizli yönetici ara katmanı veya farklı kullanıcıyla çalıştırma yardımcısı. Wrapper, normal Gateway argümanlarını alır ve sonunda bu argümanlarla `openclaw` ya da Node'u exec etmekten sorumludur.
```bash
cat > ~/.local/bin/openclaw-doppler <<'EOF'
@ -457,16 +455,14 @@ openclaw gateway install --wrapper ~/.local/bin/openclaw-doppler --force
openclaw gateway restart
```
Sarmalayıcıyı ortam üzerinden de ayarlayabilirsiniz. `gateway install`, yolun
yürütülebilir bir dosya olduğunu doğrular, sarmalayıcıyı hizmet `ProgramArguments` içine yazar ve sonraki zorunlu yeniden kurulumlar, güncellemeler ve doctor
onarımları için hizmet ortamında `OPENCLAW_WRAPPER` değerini kalıcı kılar.
Wrapper'ı ortam üzerinden de ayarlayabilirsiniz. `gateway install`, yolun yürütülebilir bir dosya olduğunu doğrular, wrapper'ı hizmet `ProgramArguments` içine yazar ve daha sonra zorunlu yeniden kurulumlar, güncellemeler ve doctor onarımları için hizmet ortamında `OPENCLAW_WRAPPER` değerini kalıcı hale getirir.
```bash
OPENCLAW_WRAPPER="$HOME/.local/bin/openclaw-doppler" openclaw gateway install --force
openclaw doctor
```
Kalıcı bir sarmalayıcıyı kaldırmak için yeniden kurulum sırasında `OPENCLAW_WRAPPER` değerini temizleyin:
Kalıcı bir wrapper'ı kaldırmak için yeniden kurulum sırasında `OPENCLAW_WRAPPER` değerini temizleyin:
```bash
OPENCLAW_WRAPPER= openclaw gateway install --force
@ -481,32 +477,32 @@ openclaw gateway restart
</Accordion>
<Accordion title="Yaşam döngüsü davranışı">
- Yönetilen bir hizmeti yeniden başlatmak için `gateway restart` kullanın. Yeniden başlatma yerine `gateway stop` ve `gateway start` komutlarını zincirlemeyin; macOS'te `gateway stop`, LaunchAgent'ı durdurmadan önce bilerek devre dışı bırakır.
- Yönetilen bir hizmeti yeniden başlatmak için `gateway restart` kullanın. Yeniden başlatma yerine `gateway stop` ve `gateway start` komutlarını zincirlemeyin; macOS'te `gateway stop`, durdurmadan önce LaunchAgent'ı kasıtlı olarak devre dışı bırakır.
- Yaşam döngüsü komutları betikleme için `--json` kabul eder.
</Accordion>
<Accordion title="Kurulum sırasında kimlik doğrulama ve SecretRef'ler">
- Belirteç kimlik doğrulaması bir belirteç gerektirdiğinde ve `gateway.auth.token` SecretRef tarafından yönetildiğinde, `gateway install` SecretRef'in çözülebilir olduğunu doğrular ancak çözümlenen belirteci hizmet ortamı meta verilerinde kalıcı hale getirmez.
- Belirteç kimlik doğrulaması bir belirteç gerektiriyorsa ve yapılandırılmış belirteç SecretRef'i çözülemiyorsa, kurulum yedek düz metni kalıcı hale getirmek yerine kapalı şekilde başarısız olur.
<Accordion title="Kurulum zamanında kimlik doğrulama ve SecretRef'ler">
- Token kimlik doğrulaması bir token gerektirdiğinde ve `gateway.auth.token` SecretRef ile yönetildiğinde, `gateway install` SecretRef'in çözümlenebilir olduğunu doğrular ancak çözümlenmiş token'ı hizmet ortamı meta verilerine kalıcı olarak yazmaz.
- Token kimlik doğrulaması bir token gerektiriyorsa ve yapılandırılmış token SecretRef'i çözümlenmemişse, kurulum yedek düz metni kalıcılaştırmak yerine kapalı şekilde başarısız olur.
- `gateway run` üzerinde parola kimlik doğrulaması için satır içi `--password` yerine `OPENCLAW_GATEWAY_PASSWORD`, `--password-file` veya SecretRef destekli `gateway.auth.password` tercih edin.
- Çıkarımlı kimlik doğrulama modunda, yalnızca shell'deki `OPENCLAW_GATEWAY_PASSWORD` kurulum belirteci gereksinimlerini gevşetmez; yönetilen bir hizmet kurarken dayanıklı yapılandırma (`gateway.auth.password` veya yapılandırma `env`) kullanın.
- Çıkarımsal kimlik doğrulama modunda, yalnızca kabuktaki `OPENCLAW_GATEWAY_PASSWORD` kurulum token gereksinimlerini gevşetmez; yönetilen bir hizmet kurarken dayanıklı yapılandırma (`gateway.auth.password` veya config `env`) kullanın.
- Hem `gateway.auth.token` hem de `gateway.auth.password` yapılandırılmışsa ve `gateway.auth.mode` ayarlanmamışsa, mod açıkça ayarlanana kadar kurulum engellenir.
</Accordion>
</AccordionGroup>
## Gateway'leri keşfetme (Bonjour)
## Gateway'leri keşfedin (Bonjour)
`gateway discover`, Gateway işaretlerini (`_openclaw-gw._tcp`) tarar.
`gateway discover`, Gateway beacon'larını (`_openclaw-gw._tcp`) tarar.
- Multicast DNS-SD: `local.`
- Unicast DNS-SD (Geniş Alan Bonjour): bir etki alanı seçin (örnek: `openclaw.internal.`) ve split DNS + bir DNS sunucusu kurun; bkz. [Bonjour](/tr/gateway/bonjour).
Yalnızca Bonjour keşfi etkinleştirilmiş Gateway'ler (varsayılan) işareti duyurur.
Yalnızca Bonjour keşfi etkin olan Gateway'ler (varsayılan) beacon'ın reklamını yapar.
Geniş Alan keşif kayıtları şunları içerir (TXT):
- `role` (Gateway rol ipucu)
- `role` (gateway rol ipucu)
- `transport` (aktarım ipucu, ör. `gateway`)
- `gatewayPort` (WebSocket portu, genellikle `18789`)
- `sshPort` (isteğe bağlı; istemciler yoksa SSH hedeflerini varsayılan olarak `22` yapar)
@ -521,10 +517,10 @@ openclaw gateway discover
```
<ParamField path="--timeout <ms>" type="number" default="2000">
Komut başına zaman aşımı (browse/resolve).
Komut başına zaman aşımı (göz atma/çözümleme).
</ParamField>
<ParamField path="--json" type="boolean">
Makine tarafından okunabilir çıktı (biçimlendirmeyi/spinner'ı da devre dışı bırakır).
Makine tarafından okunabilir çıktı (stil/spinner'ı da devre dışı bırakır).
</ParamField>
Örnekler:
@ -535,13 +531,13 @@ openclaw gateway discover --json | jq '.beacons[].wsUrl'
```
<Note>
- CLI, biri etkinleştirildiğinde `local.` ile yapılandırılmış geniş alan etki alanını tarar.
- CLI, etkinleştirildiğinde `local.` ile yapılandırılmış geniş alan etki alanını tarar.
- JSON çıktısındaki `wsUrl`, `lanHost` veya `tailnetDns` gibi yalnızca TXT ipuçlarından değil, çözümlenen hizmet uç noktasından türetilir.
- `local.` mDNS üzerinde, `sshPort` ve `cliPath` yalnızca `discovery.mdns.mode` değeri `full` olduğunda yayınlanır. Geniş alan DNS-SD yine de `cliPath` yazar; `sshPort` orada da isteğe bağlı kalır.
- `local.` mDNS üzerinde `sshPort` ve `cliPath` yalnızca `discovery.mdns.mode` değeri `full` olduğunda yayınlanır. Geniş alan DNS-SD yine de `cliPath` yazar; `sshPort` orada da isteğe bağlı kalır.
</Note>
## İlgili
- [CLI referansı](/tr/cli)
- [Gateway işletim kılavuzu](/tr/gateway)
- [CLI başvurusu](/tr/cli)
- [Gateway çalışma kitabı](/tr/gateway)

View File

@ -1,21 +1,21 @@
---
read_when:
- Varsayılan modelleri değiştirmek veya sağlayıcının kimlik doğrulama durumunu görüntülemek istiyorsunuz
- Varsayılan modelleri değiştirmek veya sağlayıcı kimlik doğrulama durumunu görüntülemek istiyorsunuz
- Kullanılabilir modelleri/sağlayıcıları taramak ve kimlik doğrulama profillerinde hata ayıklamak istiyorsunuz
summary: '`openclaw models` için CLI başvurusu (status/list/set/scan, takma adlar, geri dönüşler, kimlik doğrulama)'
title: Modeller
x-i18n:
generated_at: "2026-04-30T09:13:38Z"
generated_at: "2026-05-01T08:59:06Z"
model: gpt-5.5
provider: openai
source_hash: 95e2361989b583f7f52947dad1faaaba44dc6a5f58719cc2e83c13fce7c33adc
source_hash: 538d3e4808329737fdc044dc6e14e5c7c78052e75d8a8b3b257b1ebd821c84d1
source_path: cli/models.md
workflow: 16
---
# `openclaw models`
Model keşfi, tarama ve yapılandırma (varsayılan model, geri dönüşler, kimlik doğrulama profilleri).
Model keşfi, tarama ve yapılandırma (varsayılan model, yedekler, kimlik doğrulama profilleri).
İlgili:
@ -32,37 +32,78 @@ openclaw models set <model-or-alias>
openclaw models scan
```
`openclaw models status`, çözümlenmiş varsayılan/geri dönüşleri ve bir kimlik doğrulama genel görünümünü gösterir.
Sağlayıcı kullanım anlık görüntüleri mevcut olduğunda, OAuth/API anahtarı durumu bölümü sağlayıcı kullanım pencerelerini ve kota anlık görüntülerini içerir.
Geçerli kullanım penceresi sağlayıcıları: Anthropic, GitHub Copilot, Gemini CLI, OpenAI Codex, MiniMax, Xiaomi ve z.ai. Kullanım kimlik doğrulaması, mevcut olduğunda sağlayıcıya özgü hook'lardan gelir; aksi halde OpenClaw, kimlik doğrulama profillerinden, env'den veya config'den eşleşen OAuth/API anahtarı kimlik bilgilerine geri döner.
`--json` çıktısında `auth.providers`, env/config/store farkındalığı olan sağlayıcı genel görünümüdür; `auth.oauth` ise yalnızca auth-store profil sağlığıdır.
`openclaw models status`, çözümlenen varsayılanı/yedekleri ve bir kimlik doğrulama genel görünümünü gösterir.
Sağlayıcı kullanım anlık görüntüleri kullanılabilir olduğunda, OAuth/API anahtarı durum bölümü
sağlayıcı kullanım pencerelerini ve kota anlık görüntülerini içerir.
Geçerli kullanım penceresi sağlayıcıları: Anthropic, GitHub Copilot, Gemini CLI, OpenAI
Codex, MiniMax, Xiaomi ve z.ai. Kullanım kimlik doğrulaması, mevcut olduğunda
sağlayıcıya özgü hook'lardan gelir; aksi takdirde OpenClaw, kimlik doğrulama
profillerinden, env'den veya yapılandırmadan eşleşen OAuth/API anahtarı
kimlik bilgilerine geri döner.
`--json` çıktısında `auth.providers`, env/config/store farkındalıklı sağlayıcı
genel görünümüdür; `auth.oauth` ise yalnızca auth-store profil sağlığıdır.
Yapılandırılmış her sağlayıcı profiline karşı canlı kimlik doğrulama yoklamaları çalıştırmak için `--probe` ekleyin.
Yoklamalar gerçek isteklerdir (token tüketebilir ve rate limit'leri tetikleyebilir).
Yapılandırılmış bir agent'ın model/kimlik doğrulama durumunu incelemek için `--agent <id>` kullanın. Atlandığında komut, ayarlıysa `OPENCLAW_AGENT_DIR`/`PI_CODING_AGENT_DIR` değerini, aksi halde yapılandırılmış varsayılan agent'ı kullanır.
Yoklama satırları kimlik doğrulama profillerinden, env kimlik bilgilerinden veya `models.json` dosyasından gelebilir.
Yoklamalar gerçek isteklerdir (token tüketebilir ve hız sınırlarını tetikleyebilir).
Yapılandırılmış bir ajanın model/kimlik doğrulama durumunu incelemek için `--agent <id>` kullanın. Atlanırsa,
komut ayarlanmışsa `OPENCLAW_AGENT_DIR`/`PI_CODING_AGENT_DIR` değerini, aksi takdirde
yapılandırılmış varsayılan ajanı kullanır.
Yoklama satırları kimlik doğrulama profillerinden, env kimlik bilgilerinden veya `models.json` içinden gelebilir.
Notlar:
- `models set <model-or-alias>`, `provider/model` veya bir alias kabul eder.
- `models list` salt okunurdur: config'i, kimlik doğrulama profillerini, mevcut katalog durumunu ve sağlayıcıya ait katalog satırlarını okur, ancak `models.json` dosyasını yeniden yazmaz.
- `Auth` sütunu sağlayıcı düzeyindedir ve salt okunurdur. Yerel kimlik doğrulama profili meta verilerinden, env işaretçilerinden, yapılandırılmış sağlayıcı anahtarlarından, yerel sağlayıcı işaretçilerinden, AWS Bedrock env/profil işaretçilerinden ve Plugin sentetik kimlik doğrulama meta verilerinden hesaplanır; sağlayıcı runtime'ını yüklemez, keychain sırlarını okumaz, sağlayıcı API'lerini çağırmaz veya model başına kesin yürütme hazırlığını kanıtlamaz.
- `models list --all --provider <id>`, o sağlayıcıyla henüz kimlik doğrulaması yapmamış olsanız bile Plugin manifestlerinden veya paketlenmiş sağlayıcı katalog meta verilerinden sağlayıcıya ait statik katalog satırlarını içerebilir. Bu satırlar, eşleşen kimlik doğrulama yapılandırılana kadar yine de kullanılamaz olarak görünür.
- Geniş `models list --all`, sağlayıcı runtime ek hook'larını yüklemeden manifest katalog satırlarını registry satırlarının üzerine birleştirir. Sağlayıcı filtreli manifest hızlı yolları yalnızca `static` olarak işaretlenen sağlayıcıları kullanır; `refreshable` olarak işaretlenen sağlayıcılar registry/cache destekli kalır ve manifest satırlarını ek olarak iliştirir, `runtime` olarak işaretlenen sağlayıcılar ise registry/runtime keşfinde kalır.
- `models list`, yerel model meta verilerini ve runtime sınırlarını ayrı tutar. Tablo çıktısında `Ctx`, etkili bir runtime sınırı yerel context penceresinden farklı olduğunda `contextTokens/contextWindow` gösterir; JSON satırları, bir sağlayıcı bu sınırı sunduğunda `contextTokens` içerir.
- `models list --provider <id>`, `moonshot` veya `openai-codex` gibi sağlayıcı id'sine göre filtreler. Etkileşimli sağlayıcı seçicilerindeki `Moonshot AI` gibi görünen etiketleri kabul etmez.
- Model ref'leri **ilk** `/` üzerinden bölünerek ayrıştırılır. Model ID'si `/` içeriyorsa (OpenRouter tarzı), sağlayıcı önekini dahil edin (örnek: `openrouter/moonshotai/kimi-k2`).
- Sağlayıcıyı atlarsanız OpenClaw girdiyi önce bir alias olarak, ardından bu kesin model id'si için benzersiz bir yapılandırılmış sağlayıcı eşleşmesi olarak çözümler ve ancak bundan sonra bir kullanımdan kaldırma uyarısıyla yapılandırılmış varsayılan sağlayıcıya geri döner. Bu sağlayıcı artık yapılandırılmış varsayılan modeli sunmuyorsa OpenClaw, eskimiş kaldırılmış-sağlayıcı varsayılanını göstermek yerine ilk yapılandırılmış sağlayıcı/model çiftine geri döner.
- `models status`, gizli olmayan placeholder'lar için kimlik doğrulama çıktısında (örneğin `OPENAI_API_KEY`, `secretref-managed`, `minimax-oauth`, `oauth:chutes`, `ollama-local`) bunları sır olarak maskelemek yerine `marker(<value>)` gösterebilir.
- `models set <model-or-alias>`, `provider/model` veya bir takma adı kabul eder.
- `models list` salt okunurdur: yapılandırmayı, kimlik doğrulama profillerini, mevcut katalog
durumunu ve sağlayıcıya ait katalog satırlarını okur, ancak
`models.json` dosyasını yeniden yazmaz.
- `Auth` sütunu sağlayıcı düzeyindedir ve salt okunurdur. Yerel
kimlik doğrulama profili meta verilerinden, env işaretçilerinden, yapılandırılmış sağlayıcı anahtarlarından, yerel sağlayıcı
işaretçilerinden, AWS Bedrock env/profil işaretçilerinden ve Plugin sentetik kimlik doğrulama meta verilerinden hesaplanır;
sağlayıcı runtime'ını yüklemez, keychain gizlerini okumaz, sağlayıcı
API'lerini çağırmaz veya model başına kesin yürütme hazırlığını kanıtlamaz.
- `models list --all --provider <id>`, henüz o sağlayıcıyla kimlik doğrulaması
yapmamış olsanız bile Plugin manifestlerinden veya paketlenmiş sağlayıcı katalog meta verilerinden sağlayıcıya ait statik katalog
satırlarını içerebilir. Bu satırlar, eşleşen kimlik doğrulaması yapılandırılana kadar yine de
kullanılamaz olarak görünür.
- `models list`, sağlayıcı katalog keşfi yavaşken control plane'i duyarlı tutar.
Varsayılan ve yapılandırılmış görünümler, kısa bir beklemeden sonra yapılandırılmış veya
sentetik model satırlarına geri döner ve keşfin arka planda bitmesine izin verir.
Kesin tam keşfedilmiş kataloğa ihtiyaç duyduğunuzda ve sağlayıcı keşfini
beklemeye razı olduğunuzda `--all` kullanın.
- Geniş `models list --all`, sağlayıcı runtime destek hook'larını yüklemeden
manifest katalog satırlarını registry satırlarının üzerine birleştirir. Sağlayıcı filtreli manifest
hızlı yolları yalnızca `static` olarak işaretlenmiş sağlayıcıları kullanır; `refreshable` olarak işaretlenmiş sağlayıcılar
registry/cache destekli kalır ve manifest satırlarını destek olarak eklerken,
`runtime` olarak işaretlenmiş sağlayıcılar registry/runtime keşfinde kalır.
- `models list`, yerel model meta verilerini ve runtime sınırlarını ayrı tutar. Tablo
çıktısında, etkili bir runtime sınırı yerel context penceresinden farklı olduğunda `Ctx`
`contextTokens/contextWindow` gösterir; JSON satırları, bir sağlayıcı bu sınırı sunduğunda
`contextTokens` içerir.
- `models list --provider <id>`, `moonshot` veya
`openai-codex` gibi sağlayıcı kimliğine göre filtreler. Etkileşimli sağlayıcı
seçicilerinden gelen `Moonshot AI` gibi görüntü etiketlerini kabul etmez.
- Model referansları **ilk** `/` karakterine göre bölünerek ayrıştırılır. Model ID'si `/` içeriyorsa (OpenRouter tarzı), sağlayıcı önekini ekleyin (örnek: `openrouter/moonshotai/kimi-k2`).
- Sağlayıcıyı atlarsanız OpenClaw girdiyi önce takma ad olarak, sonra
tam model id'si için benzersiz yapılandırılmış sağlayıcı eşleşmesi olarak çözer ve ancak ondan sonra
kullanımdan kaldırma uyarısıyla yapılandırılmış varsayılan sağlayıcıya geri döner.
Bu sağlayıcı artık yapılandırılmış varsayılan modeli sunmuyorsa OpenClaw,
eski kaldırılmış sağlayıcı varsayılanını göstermek yerine ilk yapılandırılmış
sağlayıcı/modele geri döner.
- `models status`, gizli olmayan yer tutucular için kimlik doğrulama çıktısında bunları gizli olarak maskelemek yerine `marker(<value>)` gösterebilir (örneğin `OPENAI_API_KEY`, `secretref-managed`, `minimax-oauth`, `oauth:chutes`, `ollama-local`).
### Modelleri tara
### Modelleri tarama
`models scan`, OpenRouter'ın herkese açık `:free` kataloğunu okur ve adayları geri dönüş kullanımı için sıralar. Kataloğun kendisi herkese açık olduğundan, yalnızca meta veri taramaları bir OpenRouter anahtarı gerektirmez.
`models scan`, OpenRouter'ın herkese açık `:free` kataloğunu okur ve adayları
yedek kullanım için sıralar. Kataloğun kendisi herkese açıktır; bu nedenle yalnızca meta veri taramaları
OpenRouter anahtarı gerektirmez.
Varsayılan olarak OpenClaw, canlı model çağrılarıyla araç ve görüntü desteğini yoklamaya çalışır. OpenRouter anahtarı yapılandırılmamışsa komut yalnızca meta veri çıktısına geri döner ve `:free` modellerin yoklamalar ve inference için yine de `OPENROUTER_API_KEY` gerektirdiğini açıklar.
Varsayılan olarak OpenClaw, canlı model çağrılarıyla araç ve görüntü desteğini yoklamayı dener.
OpenRouter anahtarı yapılandırılmamışsa komut yalnızca meta veri
çıktısına geri döner ve `:free` modellerin yoklamalar ve çıkarım için yine de
`OPENROUTER_API_KEY` gerektirdiğini açıklar.
Seçenekler:
- `--no-probe` (yalnızca meta veri; config/sır araması yok)
- `--no-probe` (yalnızca meta veri; config/gizli araması yok)
- `--min-params <b>`
- `--max-age-days <days>`
- `--provider <name>`
@ -75,7 +116,8 @@ Seçenekler:
- `--set-image`
- `--json`
`--set-default` ve `--set-image` canlı yoklamalar gerektirir; yalnızca meta veri tarama sonuçları bilgilendirme amaçlıdır ve config'e uygulanmaz.
`--set-default` ve `--set-image` canlı yoklama gerektirir; yalnızca meta veri tarama
sonuçları bilgilendirme amaçlıdır ve yapılandırmaya uygulanmaz.
### Modellerin durumu
@ -85,14 +127,16 @@ Seçenekler:
- `--plain`
- `--check`ıkış 1=süresi dolmuş/eksik, 2=süresi dolmak üzere)
- `--probe` (yapılandırılmış kimlik doğrulama profillerinin canlı yoklaması)
- `--probe-provider <name>` (tek bir sağlayıcıyı yokla)
- `--probe-profile <id>` (tekrarlanabilir veya virgülle ayrılmış profil id'leri)
- `--probe-provider <name>` (tek sağlayıcıyı yokla)
- `--probe-profile <id>` (profil kimliklerini tekrarla veya virgülle ayır)
- `--probe-timeout <ms>`
- `--probe-concurrency <n>`
- `--probe-max-tokens <n>`
- `--agent <id>` (yapılandırılmış agent id'si; `OPENCLAW_AGENT_DIR`/`PI_CODING_AGENT_DIR` değerini geçersiz kılar)
- `--agent <id>` (yapılandırılmış ajan kimliği; `OPENCLAW_AGENT_DIR`/`PI_CODING_AGENT_DIR` değerlerini geçersiz kılar)
`--json`, stdout'u JSON payload'u için ayrılmış tutar. Kimlik doğrulama profili, sağlayıcı ve başlangıç tanılamaları stderr'e yönlendirilir; böylece script'ler stdout'u doğrudan `jq` gibi araçlara aktarabilir.
`--json`, stdout'u JSON yükü için ayrılmış tutar. Kimlik doğrulama profili, sağlayıcı
ve başlangıç tanılamaları stderr'ye yönlendirilir; böylece betikler stdout'u doğrudan
`jq` gibi araçlara pipe edebilir.
Yoklama durumu kovaları:
@ -105,13 +149,17 @@ Yoklama durumu kovaları:
- `unknown`
- `no_model`
Beklenmesi gereken yoklama ayrıntı/neden kodu durumları:
Beklenebilecek yoklama ayrıntısı/neden kodu durumları:
- `excluded_by_auth_order`: depolanmış bir profil vardır, ancak açık `auth.order.<provider>` onu atlamıştır; bu yüzden yoklama denemek yerine dışlamayı bildirir.
- `missing_credential`, `invalid_expires`, `expired`, `unresolved_ref`: profil mevcut ancak uygun/çözümlenebilir değildir.
- `no_model`: sağlayıcı kimlik doğrulaması vardır, ancak OpenClaw bu sağlayıcı için yoklanabilir bir model adayı çözememiştir.
- `excluded_by_auth_order`: saklanan bir profil vardır, ancak açık
`auth.order.<provider>` bunu atlamıştır; bu yüzden yoklama denemek yerine
dışlamayı bildirir.
- `missing_credential`, `invalid_expires`, `expired`, `unresolved_ref`:
profil mevcuttur ancak uygun/çözümlenebilir değildir.
- `no_model`: sağlayıcı kimlik doğrulaması vardır, ancak OpenClaw o sağlayıcı için yoklanabilir
bir model adayını çözememiştir.
## Alias'lar + geri dönüşler
## Takma adlar + yedekler
```bash
openclaw models aliases list
@ -127,10 +175,15 @@ openclaw models auth setup-token --provider <id>
openclaw models auth paste-token
```
`models auth add`, etkileşimli kimlik doğrulama yardımcısıdır. Seçtiğiniz sağlayıcıya bağlı olarak bir sağlayıcı kimlik doğrulama akışı (OAuth/API anahtarı) başlatabilir veya sizi manuel token yapıştırmaya yönlendirebilir.
`models auth add`, etkileşimli kimlik doğrulama yardımcısıdır. Seçtiğiniz
sağlayıcıya bağlı olarak bir sağlayıcı kimlik doğrulama akışı (OAuth/API anahtarı)
başlatabilir veya sizi manuel token yapıştırmaya yönlendirebilir.
`models auth login`, bir sağlayıcı Plugin'inin kimlik doğrulama akışını (OAuth/API anahtarı) çalıştırır. Hangi sağlayıcıların yüklü olduğunu görmek için `openclaw plugins list` kullanın.
Kimlik doğrulama sonuçlarını belirli bir yapılandırılmış agent store'una yazmak için `openclaw models auth --agent <id> <subcommand>` kullanın. Üst `--agent` bayrağı `add`, `login`, `setup-token`, `paste-token` ve `login-github-copilot` tarafından dikkate alınır.
`models auth login`, bir sağlayıcı Plugin'inin kimlik doğrulama akışını (OAuth/API anahtarı) çalıştırır. Hangi sağlayıcıların kurulu olduğunu görmek için
`openclaw plugins list` kullanın.
Kimlik doğrulama sonuçlarını belirli bir yapılandırılmış ajan deposuna yazmak için
`openclaw models auth --agent <id> <subcommand>` kullanın. Üst `--agent` bayrağı
`add`, `login`, `setup-token`, `paste-token` ve `login-github-copilot` tarafından dikkate alınır.
Örnekler:
@ -140,16 +193,22 @@ openclaw models auth login --provider openai-codex --set-default
Notlar:
- `setup-token` ve `paste-token`, token kimlik doğrulama yöntemleri sunan sağlayıcılar için genel token komutları olarak kalır.
- `setup-token`, etkileşimli bir TTY gerektirir ve sağlayıcının token kimlik doğrulama yöntemini çalıştırır (sağlayıcı bir tane sunuyorsa varsayılan olarak o sağlayıcının `setup-token` yöntemi kullanılır).
- `paste-token`, başka yerde veya otomasyondan oluşturulmuş bir token dizesini kabul eder.
- `paste-token`, `--provider` gerektirir, token değerini sorar ve `--profile-id` geçmediğiniz sürece bunu varsayılan profil id'si `<provider>:manual` konumuna yazar.
- `paste-token --expires-in <duration>`, `365d` veya `12h` gibi göreli bir süreden mutlak token süresi sonunu depolar.
- Anthropic notu: Anthropic çalışanları bize OpenClaw tarzı Claude CLI kullanımına tekrar izin verildiğini söyledi; bu yüzden OpenClaw, Anthropic yeni bir ilke yayımlamadığı sürece bu entegrasyon için Claude CLI yeniden kullanımını ve `claude -p` kullanımını onaylanmış kabul eder.
- `setup-token` ve `paste-token`, token kimlik doğrulama yöntemleri sunan sağlayıcılar için
genel token komutları olarak kalır.
- `setup-token` etkileşimli bir TTY gerektirir ve sağlayıcının token-auth
yöntemini çalıştırır (sağlayıcı bir tane sunuyorsa varsayılan olarak o sağlayıcının
`setup-token` yöntemini kullanır).
- `paste-token`, başka yerde veya otomasyondan üretilmiş bir token dizesini kabul eder.
- `paste-token`, `--provider` gerektirir, token değerini ister ve
`--profile-id` geçmediğiniz sürece bunu varsayılan profil kimliği
`<provider>:manual` içine yazar.
- `paste-token --expires-in <duration>`, `365d` veya `12h` gibi göreli bir süreden
mutlak token sona erme zamanını depolar.
- Anthropic notu: Anthropic çalışanları bize OpenClaw tarzı Claude CLI kullanımına tekrar izin verildiğini söyledi; bu nedenle OpenClaw, Anthropic yeni bir politika yayımlamadığı sürece bu entegrasyon için Claude CLI yeniden kullanımını ve `claude -p` kullanımını onaylı kabul eder.
- Anthropic `setup-token` / `paste-token`, desteklenen bir OpenClaw token yolu olarak kullanılabilir kalır; ancak OpenClaw artık mevcut olduğunda Claude CLI yeniden kullanımını ve `claude -p` komutunu tercih eder.
## İlgili
- [CLI başvurusu](/tr/cli)
- [CLI referansı](/tr/cli)
- [Model seçimi](/tr/concepts/model-providers)
- [Model yük devretmesi](/tr/concepts/model-failover)
- [Model yedeklemeye geçişi](/tr/concepts/model-failover)

View File

@ -1,20 +1,20 @@
---
read_when:
- Gateway, çalışma alanı, kimlik doğrulama, kanallar ve Skills için rehberli kurulum istiyorsunuz
- Gateway, çalışma alanı, kimlik doğrulama, kanallar ve Skills için yönlendirmeli kurulum istiyorsunuz
summary: '`openclaw onboard` için CLI referansı (etkileşimli ilk kurulum)'
title: Kullanıma Al
title: İlk Kurulum
x-i18n:
generated_at: "2026-04-30T09:14:05Z"
generated_at: "2026-05-01T08:59:18Z"
model: gpt-5.5
provider: openai
source_hash: 583310458b2e2bc8ddc1513112c960520d972716be0c33e4177d0db30e896504
source_hash: 1276a0b20f37da470bb4d49b38d06bacc38e7d0e85737a22971a2a9a3d90e244
source_path: cli/onboard.md
workflow: 16
---
# `openclaw onboard`
Yerel veya uzak Gateway kurulumu için etkileşimli ilk katılım.
Yerel veya uzak Gateway kurulumu için etkileşimli ilk kurulum.
## İlgili kılavuzlar
@ -23,7 +23,7 @@ Yerel veya uzak Gateway kurulumu için etkileşimli ilk katılım.
Etkileşimli CLI akışının adım adım açıklaması.
</Card>
<Card title="Onboarding overview" href="/tr/start/onboarding-overview" icon="map">
OpenClaw ilk katılımının nasıl bir araya geldiği.
OpenClaw ilk kurulumunun nasıl bir araya geldiği.
</Card>
<Card title="CLI setup reference" href="/tr/start/wizard-cli-reference" icon="book">
Çıktılar, iç işleyiş ve adım bazında davranış.
@ -32,7 +32,7 @@ Yerel veya uzak Gateway kurulumu için etkileşimli ilk katılım.
Etkileşimsiz bayraklar ve betikli kurulumlar.
</Card>
<Card title="macOS app onboarding" href="/tr/start/onboarding" icon="apple">
macOS menü çubuğu uygulaması için ilk katılım akışı.
macOS menü çubuğu uygulaması için ilk kurulum akışı.
</Card>
</CardGroup>
@ -49,11 +49,11 @@ openclaw onboard --skip-bootstrap
openclaw onboard --mode remote --remote-url wss://gateway-host:18789
```
`--flow import`, Hermes gibi plugin tarafından sahiplenilen geçiş sağlayıcılarını kullanır. Yalnızca yeni bir OpenClaw kurulumunda çalışır; mevcut config, credentials, sessions veya çalışma alanı memory/identity dosyaları varsa içe aktarmadan önce sıfırlayın ya da yeni bir kurulum seçin.
`--flow import`, Hermes gibi Plugin sahipli geçiş sağlayıcılarını kullanır. Yalnızca yeni bir OpenClaw kurulumu üzerinde çalışır; mevcut yapılandırma, kimlik bilgileri, oturumlar veya çalışma alanı bellek/kimlik dosyaları varsa içe aktarmadan önce sıfırlayın ya da yeni bir kurulum seçin.
`--modern`, Crestodian konuşmalı ilk katılım önizlemesini başlatır. `--modern` olmadan, `openclaw onboard` klasik ilk katılım akışını korur.
`--modern`, Crestodian konuşmalı ilk kurulum önizlemesini başlatır. `--modern` olmadan `openclaw onboard` klasik ilk kurulum akışını korur.
Düz metin özel ağ `ws://` hedefleri için (yalnızca güvenilir ağlar), ilk katılım süreci ortamında `OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1` ayarını yapın. Bu istemci tarafı taşıma acil durum aşımı için `openclaw.json` eşdeğeri yoktur.
Düz metin özel ağ `ws://` hedefleri için (yalnızca güvenilir ağlar), ilk kurulum süreci ortamında `OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1` ayarlayın. Bu istemci tarafı taşıma acil durum seçeneği için `openclaw.json` eşdeğeri yoktur.
Etkileşimsiz özel sağlayıcı:
@ -68,8 +68,8 @@ openclaw onboard --non-interactive \
--custom-image-input
```
`--custom-api-key`, etkileşimsiz modda isteğe bağlıdır. Atlanırsa ilk katılım `CUSTOM_API_KEY` değişkenini denetler.
OpenClaw, yaygın görme modeli kimliklerini otomatik olarak görüntü destekli şeklinde işaretler. Bilinmeyen özel görme kimlikleri için `--custom-image-input` geçirin veya yalnızca metin meta verilerini zorlamak için `--custom-text-input` kullanın.
`--custom-api-key`, etkileşimsiz modda isteğe bağlıdır. Atlanırsa ilk kurulum `CUSTOM_API_KEY` değerini denetler.
OpenClaw, yaygın görsel model kimliklerini otomatik olarak görüntü destekli olarak işaretler. Bilinmeyen özel görsel kimlikleri için `--custom-image-input`, yalnızca metin meta verilerini zorlamak için `--custom-text-input` iletin.
LM Studio, etkileşimsiz modda sağlayıcıya özgü bir anahtar bayrağını da destekler:
@ -92,7 +92,7 @@ openclaw onboard --non-interactive \
--accept-risk
```
`--custom-base-url` varsayılan olarak `http://127.0.0.1:11434` değerini kullanır. `--custom-model-id` isteğe bağlıdır; atlanırsa ilk katılım Ollama'nın önerilen varsayılanlarını kullanır. `kimi-k2.5:cloud` gibi bulut modeli kimlikleri de burada çalışır.
`--custom-base-url` varsayılan olarak `http://127.0.0.1:11434` kullanır. `--custom-model-id` isteğe bağlıdır; atlanırsa ilk kurulum Ollama'nın önerilen varsayılanlarını kullanır. `kimi-k2.5:cloud` gibi bulut model kimlikleri de burada çalışır.
Sağlayıcı anahtarlarını düz metin yerine ref olarak saklayın:
@ -103,26 +103,28 @@ openclaw onboard --non-interactive \
--accept-risk
```
`--secret-input-mode ref` ile ilk katılım, düz metin anahtar değerleri yerine env destekli ref'ler yazar.
Auth-profile destekli sağlayıcılar için bu, `keyRef` girdileri yazar; özel sağlayıcılar için `models.providers.<id>.apiKey` değerini env ref olarak yazar (örneğin `{ source: "env", provider: "default", id: "CUSTOM_API_KEY" }`).
`--secret-input-mode ref` ile ilk kurulum, düz metin anahtar değerleri yerine ortam destekli ref'ler yazar.
Kimlik doğrulama profili destekli sağlayıcılar için bu, `keyRef` girdileri yazar; özel sağlayıcılar için `models.providers.<id>.apiKey` değerini bir ortam ref'i olarak yazar (örneğin `{ source: "env", provider: "default", id: "CUSTOM_API_KEY" }`).
Etkileşimsiz `ref` modu sözleşmesi:
- Sağlayıcı env var'ını ilk katılım süreci ortamında ayarlayın (örneğin `OPENAI_API_KEY`).
- Bu env var da ayarlanmadıkça satır içi anahtar bayrakları geçirmeyin (örneğin `--openai-api-key`).
- Gerekli env var olmadan satır içi anahtar bayrağı geçirilirse ilk katılım hızlıca başarısız olur ve yönlendirme gösterir.
- Sağlayıcı ortam değişkenini ilk kurulum süreci ortamında ayarlayın (örneğin `OPENAI_API_KEY`).
- Bu ortam değişkeni de ayarlı değilse satır içi anahtar bayrakları (örneğin `--openai-api-key`) iletmeyin.
- Gerekli ortam değişkeni olmadan satır içi anahtar bayrağı iletilirse ilk kurulum rehberlikle hızlıca başarısız olur.
Etkileşimsiz modda Gateway token seçenekleri:
Etkileşimsiz modda Gateway belirteci seçenekleri:
- `--gateway-auth token --gateway-token <token>` düz metin token saklar.
- `--gateway-auth token --gateway-token-ref-env <name>` `gateway.auth.token` değerini env SecretRef olarak saklar.
- `--gateway-auth token --gateway-token <token>` düz metin bir belirteç saklar.
- `--gateway-auth token --gateway-token-ref-env <name>` `gateway.auth.token` değerini bir ortam SecretRef'i olarak saklar.
- `--gateway-token` ve `--gateway-token-ref-env` birbirini dışlar.
- `--gateway-token-ref-env`, ilk katılım süreci ortamında boş olmayan bir env var gerektirir.
- `--install-daemon` ile token auth bir token gerektirdiğinde, SecretRef tarafından yönetilen gateway token'ları doğrulanır ancak supervisor hizmet ortamı meta verilerinde çözümlenmiş düz metin olarak kalıcılaştırılmaz.
- `--install-daemon` ile token modu bir token gerektiriyor ve yapılandırılan token SecretRef çözümlenemiyorsa ilk katılım güvenli şekilde başarısız olur ve düzeltme yönlendirmesi gösterir.
- `--install-daemon` ile hem `gateway.auth.token` hem de `gateway.auth.password` yapılandırılmışsa ve `gateway.auth.mode` ayarlanmamışsa ilk katılım, mod açıkça ayarlanana kadar kurulumu engeller.
- Yerel ilk katılım, config içine `gateway.mode="local"` yazar. Daha sonraki bir config dosyasında `gateway.mode` eksikse bunu geçerli bir yerel mod kısayolu olarak değil, config hasarı veya eksik bir manuel düzenleme olarak ele alın.
- `--allow-unconfigured` ayrı bir gateway çalışma zamanı kaçış yoludur. Bu, ilk katılımın `gateway.mode` değerini atlayabileceği anlamına gelmez.
- `--gateway-token-ref-env`, ilk kurulum süreci ortamında boş olmayan bir ortam değişkeni gerektirir.
- `--install-daemon` ile, belirteç kimlik doğrulaması belirteç gerektirdiğinde, SecretRef ile yönetilen Gateway belirteçleri doğrulanır ancak supervisor hizmet ortamı meta verilerinde çözümlenmiş düz metin olarak kalıcılaştırılmaz.
- `--install-daemon` ile, belirteç modu bir belirteç gerektiriyorsa ve yapılandırılmış belirteç SecretRef'i çözümlenmemişse ilk kurulum düzeltme rehberliğiyle kapalı şekilde başarısız olur.
- `--install-daemon` ile, hem `gateway.auth.token` hem de `gateway.auth.password` yapılandırılmışsa ve `gateway.auth.mode` ayarlanmamışsa ilk kurulum, mod açıkça ayarlanana kadar kurulumu engeller.
- Yerel ilk kurulum, yapılandırmaya `gateway.mode="local"` yazar. Daha sonraki bir yapılandırma dosyasında `gateway.mode` yoksa bunu geçerli bir yerel mod kısayolu olarak değil, yapılandırma hasarı veya eksik bir manuel düzenleme olarak değerlendirin.
- Yerel ilk kurulum, yeni gerekli paketli Plugin çalışma zamanı bağımlılıklarını yapılandırmayı yazdıktan sonra ve çalışma alanı/bootstrap, daemon kurulumu veya sağlık denetimleri devam etmeden önce oluşturur. Bu dar kapsamlı bir paket yöneticisi onarım adımıdır; tam bir `openclaw doctor` çalıştırması değildir.
- Uzak ilk kurulum yalnızca uzak Gateway için bağlantı bilgilerini yazar ve yerel paketli Plugin bağımlılıklarını kurmaz.
- `--allow-unconfigured` ayrı bir Gateway çalışma zamanı kaçış yoludur. Bu, ilk kurulumun `gateway.mode` değerini atlayabileceği anlamına gelmez.
Örnek:
@ -136,27 +138,27 @@ openclaw onboard --non-interactive \
--accept-risk
```
Etkileşimsiz yerel gateway sağlığı:
Etkileşimsiz yerel Gateway sağlığı:
- `--skip-health` geçirmediğiniz sürece ilk katılım, başarıyla çıkmadan önce erişilebilir bir yerel gateway bekler.
- `--install-daemon` önce yönetilen gateway kurulum yolunu başlatır. Onsuz, örneğin `openclaw gateway run` ile zaten çalışan bir yerel gateway'iniz olmalıdır.
- Otomasyonda yalnızca config/çalışma alanı/bootstrap yazımları istiyorsanız `--skip-health` kullanın.
- Çalışma alanı dosyalarını kendiniz yönetiyorsanız `agents.defaults.skipBootstrap: true` ayarlamak ve `AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md` ve `BOOTSTRAP.md` oluşturmayı atlamak için `--skip-bootstrap` geçirin.
- Yerel Windows'ta `--install-daemon` önce Zamanlanmış Görevleri dener ve görev oluşturma reddedilirse kullanıcı bazlı Startup klasörü oturum açma öğesine geri döner.
- `--skip-health` iletmediğiniz sürece ilk kurulum, başarıyla çıkmadan önce erişilebilir bir yerel Gateway bekler.
- `--install-daemon` önce yönetilen Gateway kurulum yolunu başlatır. Onsuz, örneğin `openclaw gateway run` ile zaten çalışan bir yerel Gateway'iniz olmalıdır.
- Otomasyonda yalnızca yapılandırma/çalışma alanı/bootstrap yazımları istiyorsanız `--skip-health` kullanın.
- Çalışma alanı dosyalarını kendiniz yönetiyorsanız `agents.defaults.skipBootstrap: true` ayarlamak ve `AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md` ve `BOOTSTRAP.md` oluşturmayı atlamak için `--skip-bootstrap` iletin.
- Yerel Windows üzerinde `--install-daemon` önce Zamanlanmış Görevler'i dener ve görev oluşturma reddedilirse kullanıcı başına Startup klasörü oturum açma öğesine geri döner.
Reference modu ile etkileşimli ilk katılım davranışı:
Referans moduyla etkileşimli ilk kurulum davranışı:
- Sorulduğunda **Gizli referans kullan** seçeneğini belirleyin.
- İstendiğinde **Gizli referans kullan** seçeneğini seçin.
- Ardından şunlardan birini seçin:
- Ortam değişkeni
- Yapılandırılmış gizli sağlayıcı (`file` veya `exec`)
- İlk katılım, ref'i kaydetmeden önce hızlı bir ön doğrulama gerçekleştirir.
- Doğrulama başarısız olursa ilk katılım hatayı gösterir ve yeniden denemenize izin verir.
- İlk kurulum, ref'i kaydetmeden önce hızlı bir ön doğrulama yapar.
- Doğrulama başarısız olursa ilk kurulum hatayı gösterir ve yeniden denemenize izin verir.
### Etkileşimsiz Z.AI endpoint seçenekleri
### Etkileşimsiz Z.AI uç nokta seçenekleri
<Note>
`--auth-choice zai-api-key`, anahtarınız için en iyi Z.AI endpoint'ini otomatik algılar (genel API'yi `zai/glm-5.1` ile tercih eder). Özellikle GLM Coding Plan endpoint'lerini istiyorsanız `zai-coding-global` veya `zai-coding-cn` seçin.
`--auth-choice zai-api-key`, anahtarınız için en iyi Z.AI uç noktasını otomatik algılar (genel API'yi `zai/glm-5.1` ile tercih eder). Özellikle GLM Coding Plan uç noktalarını istiyorsanız `zai-coding-global` veya `zai-coding-cn` seçin.
</Note>
```bash
@ -183,29 +185,29 @@ openclaw onboard --non-interactive \
<AccordionGroup>
<Accordion title="Flow types">
- `quickstart`: en az istem, otomatik olarak bir gateway token'ı oluşturur.
- `manual`: port, bind ve auth için tam istemler (`advanced` takma adı).
- `import`: algılanan bir geçiş sağlayıcısını çalıştırır, planı önizler, ardından onaydan sonra uygular.
- `quickstart`: en az istem, otomatik olarak bir Gateway belirteci üretir.
- `manual`: bağlantı noktası, bind ve kimlik doğrulama için tam istemler (`advanced` takma adı).
- `import`: algılanan bir geçiş sağlayıcısını çalıştırır, planı önizler, sonra onaydan sonra uygular.
</Accordion>
<Accordion title="Provider prefiltering">
Bir auth seçimi tercih edilen bir sağlayıcıyı ima ettiğinde ilk katılım, varsayılan model ve allowlist seçicilerini o sağlayıcıya göre önceden filtreler. Volcengine ve BytePlus için bu, coding-plan varyantlarıyla da eşleşir (`volcengine-plan/*`, `byteplus-plan/*`).
Bir kimlik doğrulama seçimi tercih edilen bir sağlayıcı ima ettiğinde ilk kurulum, varsayılan model ve izin listesi seçicilerini bu sağlayıcıya ön filtreler. Volcengine ve BytePlus için bu, coding-plan varyantlarını da eşleştirir (`volcengine-plan/*`, `byteplus-plan/*`).
Tercih edilen sağlayıcı filtresi henüz yüklenmiş model üretmezse ilk katılım, seçiciyi boş bırakmak yerine filtresiz kataloğa geri döner.
Tercih edilen sağlayıcı filtresi henüz yüklü model döndürmezse ilk kurulum, seçiciyi boş bırakmak yerine filtrelenmemiş kataloğa geri döner.
</Accordion>
<Accordion title="Web-search follow-ups">
Bazı web-search sağlayıcıları, sağlayıcıya özgü takip istemlerini tetikler:
Bazı web arama sağlayıcıları sağlayıcıya özgü takip istemlerini tetikler:
- **Grok**, aynı `XAI_API_KEY` ve bir `x_search` model seçimiyle isteğe bağlı `x_search` kurulumu sunabilir.
- **Kimi**, Moonshot API bölgesini (`api.moonshot.ai` ve `api.moonshot.cn`) ve varsayılan Kimi web-search modelini sorabilir.
- **Kimi**, Moonshot API bölgesini (`api.moonshot.ai` ve `api.moonshot.cn`) ve varsayılan Kimi web arama modelini sorabilir.
</Accordion>
<Accordion title="Other behaviors">
- Yerel ilk katılım DM kapsamı davranışı: [CLI kurulum başvurusu](/tr/start/wizard-cli-reference#outputs-and-internals).
- Yerel ilk kurulum DM kapsamı davranışı: [CLI setup reference](/tr/start/wizard-cli-reference#outputs-and-internals).
- En hızlı ilk sohbet: `openclaw dashboard` (Control UI, kanal kurulumu yok).
- Özel sağlayıcı: listelenmeyen barındırılan sağlayıcılar dahil, OpenAI veya Anthropic uyumlu herhangi bir endpoint'e bağlanın. Otomatik algılama için Unknown kullanın.
- Hermes durumu algılanırsa ilk katılım bir geçiş akışı sunar. Deneme çalıştırması planları, üzerine yazma modu, raporlar ve kesin eşlemeler için [Geçir](/tr/cli/migrate) kullanın.
- Özel sağlayıcı: listelenmeyen barındırılan sağlayıcılar dahil, herhangi bir OpenAI veya Anthropic uyumlu uç noktayı bağlayın. Otomatik algılama için Unknown kullanın.
- Hermes durumu algılanırsa ilk kurulum bir geçiş akışı sunar. Kuru çalıştırma planları, üzerine yazma modu, raporlar ve tam eşlemeler için [Migrate](/tr/cli/migrate) kullanın.
</Accordion>
</AccordionGroup>
@ -218,5 +220,5 @@ openclaw agents add <name>
```
<Note>
`--json` etkileşimsiz mod anlamına gelmez. Betikler için `--non-interactive` kullanın.
`--json`, etkileşimsiz modu ima etmez. Betikler için `--non-interactive` kullanın.
</Note>

View File

@ -1,24 +1,24 @@
---
read_when:
- Gateway Plugin'lerini veya uyumlu paketleri kurmak ya da yönetmek istiyorsunuz
- Gateway Plugin'lerini veya uyumlu paketleri yüklemek ya da yönetmek istiyorsanız
- Plugin yükleme hatalarında hata ayıklamak istiyorsunuz
sidebarTitle: Plugins
summary: '`openclaw plugins` için CLI referansı (list, install, marketplace, uninstall, enable/disable, deps, doctor)'
title: Plugin'ler
summary: '`openclaw plugins` için CLI başvurusu (list, install, marketplace, uninstall, enable/disable, deps, doctor)'
title: Pluginler
x-i18n:
generated_at: "2026-04-30T09:14:19Z"
generated_at: "2026-05-01T08:59:31Z"
model: gpt-5.5
provider: openai
source_hash: 381e3243eaefb5b5e31db8fd2ba459773649a6ef427080a12018ea92b25f707c
source_hash: cc4b2b753b541dd143e9c2f7e8a2153711a18e15773c65f91756d2729ca3d6fb
source_path: cli/plugins.md
workflow: 16
---
Gateway Pluginlerini, hook paketlerini ve uyumlu paketleri yönetin.
Gateway Plugin'lerini, kanca paketlerini ve uyumlu paketleri yönetin.
<CardGroup cols={2}>
<Card title="Plugin sistemi" href="/tr/tools/plugin">
Pluginleri yükleme, etkinleştirme ve sorunlarını giderme için son kullanıcı kılavuzu.
Plugin'leri yükleme, etkinleştirme ve sorun giderme için son kullanıcı kılavuzu.
</Card>
<Card title="Plugin paketleri" href="/tr/plugins/bundles">
Paket uyumluluk modeli.
@ -27,7 +27,7 @@ Gateway Pluginlerini, hook paketlerini ve uyumlu paketleri yönetin.
Manifest alanları ve yapılandırma şeması.
</Card>
<Card title="Güvenlik" href="/tr/gateway/security">
Plugin yüklemeleri için güvenlik sıkılaştırması.
Plugin yüklemeleri için güvenlik güçlendirmesi.
</Card>
</CardGroup>
@ -40,6 +40,7 @@ openclaw plugins list --verbose
openclaw plugins list --json
openclaw plugins install <path-or-spec>
openclaw plugins inspect <id>
openclaw plugins inspect <id> --runtime
openclaw plugins inspect <id> --json
openclaw plugins inspect --all
openclaw plugins info <id>
@ -59,12 +60,12 @@ openclaw plugins marketplace list <marketplace>
openclaw plugins marketplace list <marketplace> --json
```
Yavaş yükleme, inceleme, kaldırma veya kayıt yenileme araştırmaları için komutu `OPENCLAW_PLUGIN_LIFECYCLE_TRACE=1` ile çalıştırın. İz, aşama zamanlamalarını stderrye yazar ve JSON çıktısını ayrıştırılabilir tutar. Bkz. [Hata Ayıklama](/tr/help/debugging#plugin-lifecycle-trace).
Yavaş yükleme, inceleme, kaldırma veya registry yenileme araştırması için komutu `OPENCLAW_PLUGIN_LIFECYCLE_TRACE=1` ile çalıştırın. İz, aşama zamanlamalarını stderr'ye yazar ve JSON çıktısını ayrıştırılabilir halde tutar. Bkz. [Hata ayıklama](/tr/help/debugging#plugin-lifecycle-trace).
<Note>
Birlikte gelen pluginler OpenClaw ile gönderilir. Bazıları varsayılan olarak etkindir (örneğin birlikte gelen model sağlayıcıları, birlikte gelen konuşma sağlayıcıları ve birlikte gelen tarayıcı Plugini); diğerleri `plugins enable` gerektirir.
Paketlenmiş Plugin'ler OpenClaw ile birlikte gelir. Bazıları varsayılan olarak etkindir (örneğin paketlenmiş model sağlayıcıları, paketlenmiş konuşma sağlayıcıları ve paketlenmiş tarayıcı Plugin'i); diğerleri `plugins enable` gerektirir.
Yerel OpenClaw pluginleri, satır içi JSON Schema (`configSchema`, boş olsa bile) içeren `openclaw.plugin.json` ile gönderilmelidir. Uyumlu paketler bunun yerine kendi paket manifestlerini kullanır.
Yerel OpenClaw Plugin'leri satır içi JSON Schema (`configSchema`, boş olsa bile) içeren `openclaw.plugin.json` ile gelmelidir. Uyumlu paketler bunun yerine kendi paket manifestlerini kullanır.
`plugins list`, `Format: openclaw` veya `Format: bundle` gösterir. Ayrıntılı liste/bilgi çıktısı ayrıca paket alt türünü (`codex`, `claude` veya `cursor`) ve algılanan paket yeteneklerini gösterir.
</Note>
@ -72,64 +73,64 @@ Yerel OpenClaw pluginleri, satır içi JSON Schema (`configSchema`, boş olsa bi
### Yükleme
```bash
openclaw plugins install <package> # ClawHub first, then npm
openclaw plugins install clawhub:<package> # ClawHub only
openclaw plugins install npm:<package> # npm only
openclaw plugins install <package> --force # overwrite existing install
openclaw plugins install <package> --pin # pin version
openclaw plugins install <package> # Önce ClawHub, sonra npm
openclaw plugins install clawhub:<package> # Yalnızca ClawHub
openclaw plugins install npm:<package> # Yalnızca npm
openclaw plugins install <package> --force # mevcut yüklemenin üzerine yaz
openclaw plugins install <package> --pin # sürümü sabitle
openclaw plugins install <package> --dangerously-force-unsafe-install
openclaw plugins install <path> # local path
openclaw plugins install <path> # yerel yol
openclaw plugins install <plugin>@<marketplace> # marketplace
openclaw plugins install <plugin> --marketplace <name> # marketplace (explicit)
openclaw plugins install <plugin> --marketplace <name> # marketplace (ıkça)
openclaw plugins install <plugin> --marketplace https://github.com/<owner>/<repo>
```
<Warning>
Çıplak paket adları önce ClawHuba, ardından npmye göre denetlenir. Plugin yüklemelerini kod çalıştırmak gibi değerlendirin. Sabitlenmiş sürümleri tercih edin.
Yalın paket adları önce ClawHub, sonra npm ile denetlenir. Plugin yüklemelerini kod çalıştırmak gibi değerlendirin. Sabitlenmiş sürümleri tercih edin.
</Warning>
<Note>
ClawHub, çoğu plugin için birincil dağıtım ve keşif yüzeyidir. Npm desteklenen bir yedek ve doğrudan yükleme yolu olarak kalır. ClawHuba geçiş sırasında OpenClaw, OpenClawa ait bazı `@openclaw/*` plugin paketlerini hâlâ npm üzerinde gönderir; bu paket sürümleri, plugin yayın trenleri arasında birlikte gelen kaynağın gerisinde kalabilir. Npm, OpenClawa ait bir plugin paketini kullanımdan kaldırılmış olarak bildirirse, yayımlanan o sürüm eski bir harici yapıdır; daha yeni bir npm paketi yayımlanana kadar mevcut OpenClaw ile birlikte gelen Plugini veya yerel bir checkout kullanın.
ClawHub, çoğu Plugin için birincil dağıtım ve keşif yüzeyidir. Npm desteklenen bir yedek ve doğrudan yükleme yolu olmaya devam eder. ClawHub'a geçiş sırasında OpenClaw, OpenClaw'a ait bazı `@openclaw/*` Plugin paketlerini npm üzerinde yayımlamaya devam eder; bu paket sürümleri, Plugin yayın trenleri arasında paketlenmiş kaynağın gerisinde kalabilir. npm, OpenClaw'a ait bir Plugin paketini kullanımdan kaldırılmış olarak bildirirse bu yayımlanmış sürüm eski bir dış artefakttır; daha yeni bir npm paketi yayımlanana kadar güncel OpenClaw ile paketlenmiş Plugin'i veya yerel bir checkout kullanın.
</Note>
<AccordionGroup>
<Accordion title="Yapılandırma includeları ve geçersiz yapılandırma kurtarma">
`plugins` bölümünüz tek dosyalı bir `$include` tarafından destekleniyorsa, `plugins install/update/enable/disable/uninstall` bu dahil edilen dosyaya yazar ve `openclaw.json` dosyasına dokunmaz. Kök includelar, include dizileri ve kardeş geçersiz kılmaları olan includelar düzleştirilmek yerine kapalı hata verir. Desteklenen biçimler için bkz. [Yapılandırma includeları](/tr/gateway/configuration).
<Accordion title="Yapılandırma include'ları ve geçersiz yapılandırma kurtarma">
`plugins` bölümünüz tek dosyalı bir `$include` ile destekleniyorsa `plugins install/update/enable/disable/uninstall`, bu dahil edilen dosyaya yazar ve `openclaw.json` dosyasına dokunmaz. Kök include'lar, include dizileri ve kardeş override'lara sahip include'lar düzleştirmek yerine kapalı şekilde başarısız olur. Desteklenen biçimler için [Yapılandırma include'ları](/tr/gateway/configuration) bölümüne bakın.
Yükleme sırasında yapılandırma geçersizse, `plugins install` normalde kapalı hata verir ve önce `openclaw doctor --fix` çalıştırmanızı söyler. Gateway başlangıcında, bir plugin için geçersiz yapılandırma o plugine izole edilir; böylece diğer kanallar ve pluginler çalışmaya devam edebilir. `openclaw doctor --fix`, geçersiz plugin girdisini karantinaya alabilir. Belgelenmiş tek yükleme zamanı istisnası, açıkça `openclaw.install.allowInvalidConfigRecovery` seçeneğine dahil olan pluginler için dar kapsamlı bir birlikte gelen plugin kurtarma yoludur.
Yükleme sırasında yapılandırma geçersizse `plugins install` normalde kapalı şekilde başarısız olur ve önce `openclaw doctor --fix` çalıştırmanızı söyler. Gateway başlatılırken bir Plugin için geçersiz yapılandırma o Plugin ile sınırlandırılır, böylece diğer kanallar ve Plugin'ler çalışmaya devam edebilir; `openclaw doctor --fix` geçersiz Plugin girdisini karantinaya alabilir. Belgelenmiş tek yükleme zamanı istisnası, açıkça `openclaw.install.allowInvalidConfigRecovery` seçeneğine katılan Plugin'ler için dar kapsamlı paketlenmiş Plugin kurtarma yoludur.
</Accordion>
<Accordion title="--force ve yeniden yükleme ile güncelleme karşılaştırması">
`--force`, mevcut yükleme hedefini yeniden kullanır ve zaten yüklü olan bir plugini veya hook paketini yerinde üzerine yazar. Aynı kimliği yeni bir yerel yoldan, arşivden, ClawHub paketinden veya npm yapısından kasıtlı olarak yeniden yüklüyorsanız bunu kullanın. Zaten izlenen bir npm plugininin rutin yükseltmeleri için `openclaw plugins update <id-or-npm-spec>` komutunu tercih edin.
`--force`, mevcut yükleme hedefini yeniden kullanır ve zaten yüklenmiş bir Plugin'in veya kanca paketinin üzerine yerinde yazar. Aynı kimliği yeni bir yerel yoldan, arşivden, ClawHub paketinden veya npm artefaktından bilinçli olarak yeniden yüklüyorsanız bunu kullanın. Zaten izlenen bir npm Plugin'inin rutin yükseltmeleri için `openclaw plugins update <id-or-npm-spec>` tercih edin.
Zaten yüklü bir plugin kimliği için `plugins install` çalıştırırsanız OpenClaw durur ve normal yükseltme için sizi `plugins update <id-or-npm-spec>` komutuna, geçerli yüklemeyi farklı bir kaynaktan gerçekten üzerine yazmak istediğinizde ise `plugins install <package> --force` komutuna yönlendirir.
Zaten yüklü olan bir Plugin kimliği için `plugins install` çalıştırırsanız OpenClaw durur ve normal yükseltme için sizi `plugins update <id-or-npm-spec>` komutuna, mevcut yüklemenin üzerine gerçekten farklı bir kaynaktan yazmak istediğinizde ise `plugins install <package> --force` komutuna yönlendirir.
</Accordion>
<Accordion title="--pin kapsamı">
`--pin` yalnızca npm yüklemeleri için geçerlidir. `--marketplace` ile desteklenmez, çünkü marketplace yüklemeleri npm belirtimi yerine marketplace kaynak meta verilerini kalıcı hale getirir.
`--pin` yalnızca npm yüklemeleri için geçerlidir. `--marketplace` ile desteklenmez, çünkü marketplace yüklemeleri npm spec yerine marketplace kaynak metaverilerini kalıcı hale getirir.
</Accordion>
<Accordion title="--dangerously-force-unsafe-install">
`--dangerously-force-unsafe-install`, yerleşik tehlikeli kod tarayıcısındaki hatalı pozitifler için acil durum seçeneğidir. Yerleşik tarayıcı `critical` bulguları bildirdiğinde bile yüklemenin devam etmesine izin verir, ancak plugin `before_install` hook ilke engellerini **atlamaz** ve tarama hatalarını **atlamaz**.
`--dangerously-force-unsafe-install`, yerleşik tehlikeli kod tarayıcısındaki yanlış pozitifler için son çare seçeneğidir. Yerleşik tarayıcı `critical` bulgular bildirse bile yüklemenin devam etmesine izin verir, ancak Plugin `before_install` kanca ilkesi engellerini atlatmaz ve tarama hatalarını atlatmaz.
Bu CLI bayrağı, plugin yükleme/güncelleme akışlarına uygulanır. Gateway destekli skill bağımlılık yüklemeleri eşleşen `dangerouslyForceUnsafeInstall` istek geçersiz kılmasını kullanırken, `openclaw skills install` ayrı bir ClawHub skill indirme/yükleme akışı olarak kalır.
Bu CLI bayrağı, Plugin yükleme/güncelleme akışları için geçerlidir. Gateway destekli skill bağımlılığı yüklemeleri eşleşen `dangerouslyForceUnsafeInstall` istek override'ını kullanırken, `openclaw skills install` ayrı bir ClawHub skill indirme/yükleme akışı olarak kalır.
ClawHubda yayımladığınız bir plugin kayıt taraması tarafından engelleniyorsa [ClawHub](/tr/tools/clawhub) bölümündeki yayıncı adımlarını kullanın.
ClawHub üzerinde yayımladığınız bir Plugin registry taraması tarafından engellenirse [ClawHub](/tr/tools/clawhub) bölümündeki yayımcı adımlarını kullanın.
</Accordion>
<Accordion title="Hook paketleri ve npm belirtimleri">
`plugins install`, `package.json` içinde `openclaw.hooks` sunan hook paketleri için de yükleme yüzeyidir. Paket yüklemesi için değil, filtrelenmiş hook görünürlüğü ve hook başına etkinleştirme için `openclaw hooks` kullanın.
<Accordion title="Kanca paketleri ve npm spec'leri">
`plugins install`, `package.json` içinde `openclaw.hooks` sunan kanca paketleri için de yükleme yüzeyidir. Paket yükleme için değil, filtrelenmiş kanca görünürlüğü ve kanca bazında etkinleştirme için `openclaw hooks` kullanın.
Npm belirtimleri **yalnızca kayıt** içindir (paket adı + isteğe bağlı **tam sürüm** veya **dist-tag**). Git/URL/dosya belirtimleri ve semver aralıkları reddedilir. Bağımlılık yüklemeleri, kabuğunuzda genel npm yükleme ayarları olsa bile güvenlik için `--ignore-scripts` ile proje yerelinde çalışır.
Npm spec'leri **yalnızca registry** içindir (paket adı + isteğe bağlı **tam sürüm** veya **dist-tag**). Git/URL/file spec'leri ve semver aralıkları reddedilir. Bağımlılık yüklemeleri, kabuğunuzda global npm yükleme ayarları olsa bile güvenlik için `--ignore-scripts` ile proje yerelinde çalışır.
ClawHub aramasını atlayıp doğrudan npmden yüklemek istediğinizde `npm:<package>` kullanın. Çıplak paket belirtimleri yine de ClawHubı tercih eder ve yalnızca ClawHubda ilgili paket veya sürüm yoksa npmye geri döner.
ClawHub aramasını atlayıp doğrudan npm'den yüklemek istediğinizde `npm:<package>` kullanın. Yalın paket spec'leri yine ClawHub'ı tercih eder ve yalnızca ClawHub'da o paket veya sürüm yoksa npm'ye geri döner.
Çıplak belirtimler ve `@latest` kararlı kanalda kalır. npm bunlardan birini ön sürüme çözerse OpenClaw durur ve `@beta`/`@rc` gibi bir ön sürüm etiketiyle ya da `@1.2.3-beta.4` gibi tam bir ön sürümle açıkça dahil olmanızı ister.
Yalın spec'ler ve `@latest` kararlı kanalda kalır. npm bunlardan birini bir ön sürüme çözümlerse OpenClaw durur ve `@beta`/`@rc` gibi bir ön sürüm etiketiyle veya `@1.2.3-beta.4` gibi tam bir ön sürümle açıkça katılmanızı ister.
Çıplak bir yükleme belirtimi birlikte gelen bir plugin kimliğiyle eşleşirse (örneğin `diffs`), OpenClaw birlikte gelen plugini doğrudan yükler. Aynı ada sahip bir npm paketi yüklemek için açık kapsamlı bir belirtim kullanın (örneğin `@scope/diffs`).
Yalın yükleme spec'i paketlenmiş bir Plugin kimliğiyle eşleşirse (örneğin `diffs`), OpenClaw paketlenmiş Plugin'i doğrudan yükler. Aynı ada sahip bir npm paketi yüklemek için açık kapsamlı bir spec kullanın (örneğin `@scope/diffs`).
</Accordion>
<Accordion title="Arşivler">
Desteklenen arşivler: `.zip`, `.tgz`, `.tar.gz`, `.tar`. Yerel OpenClaw plugin arşivleri, çıkarılan plugin kökünde geçerli bir `openclaw.plugin.json` içermelidir; yalnızca `package.json` içeren arşivler, OpenClaw yükleme kayıtlarını yazmadan önce reddedilir.
Desteklenen arşivler: `.zip`, `.tgz`, `.tar.gz`, `.tar`. Yerel OpenClaw Plugin arşivleri, çıkarılmış Plugin kökünde geçerli bir `openclaw.plugin.json` içermelidir; yalnızca `package.json` içeren arşivler, OpenClaw yükleme kayıtları yazmadan önce reddedilir.
Claude marketplace yüklemeleri de desteklenir.
@ -143,25 +144,25 @@ openclaw plugins install clawhub:openclaw-codex-app-server
openclaw plugins install clawhub:openclaw-codex-app-server@1.2.3
```
OpenClaw artık çıplak npm güvenli plugin belirtimleri için de ClawHubı tercih eder. Yalnızca ClawHubda ilgili paket veya sürüm yoksa npmye geri döner:
OpenClaw artık yalın npm güvenli Plugin spec'leri için de ClawHub'ı tercih eder. Yalnızca ClawHub'da o paket veya sürüm yoksa npm'ye geri döner:
```bash
openclaw plugins install openclaw-codex-app-server
```
Örneğin ClawHub erişilemez olduğunda veya paketin yalnızca npmde bulunduğunu bildiğinizde npmye özel çözümlemeyi zorlamak için `npm:` kullanın:
Örneğin ClawHub'a erişilemiyorsa veya paketin yalnızca npm'de bulunduğunu biliyorsanız npm'ye özel çözümlemeyi zorlamak için `npm:` kullanın:
```bash
openclaw plugins install npm:openclaw-codex-app-server
openclaw plugins install npm:@scope/plugin-name@1.0.1
```
OpenClaw paket arşivini ClawHubdan indirir, bildirilen plugin API / minimum gateway uyumluluğunu denetler, ardından normal arşiv yolu üzerinden yükler. Kaydedilen yüklemeler, sonraki güncellemeler için ClawHub kaynak meta verilerini korur.
Sürümsüz ClawHub yüklemeleri, `openclaw plugins update` komutunun daha yeni ClawHub sürümlerini izleyebilmesi için sürümsüz kaydedilmiş bir belirtim tutar; `clawhub:pkg@1.2.3` ve `clawhub:pkg@beta` gibi açık sürüm veya etiket seçicileri bu seçiciye sabitlenmiş kalır.
OpenClaw paket arşivini ClawHub'dan indirir, bildirilen Plugin API / minimum Gateway uyumluluğunu denetler, ardından normal arşiv yolu üzerinden yükler. Kaydedilen yüklemeler, sonraki güncellemeler için ClawHub kaynak metaverilerini korur.
Sürümsüz ClawHub yüklemeleri, `openclaw plugins update` komutunun daha yeni ClawHub sürümlerini izleyebilmesi için sürümsüz kaydedilmiş spec'i korur; `clawhub:pkg@1.2.3` ve `clawhub:pkg@beta` gibi açık sürüm veya etiket seçicileri o seçiciye sabitlenmiş olarak kalır.
#### Marketplace kısayolu
#### Marketplace kısaltması
Marketplace adı Claudeun `~/.claude/plugins/known_marketplaces.json` konumundaki yerel kayıt önbelleğinde varsa `plugin@marketplace` kısayolunu kullanın:
Marketplace adı Claude'un `~/.claude/plugins/known_marketplaces.json` konumundaki yerel registry önbelleğinde varsa `plugin@marketplace` kısaltmasını kullanın:
```bash
openclaw plugins marketplace list <marketplace-name>
@ -181,25 +182,25 @@ openclaw plugins install <plugin-name> --marketplace ./my-marketplace
<Tab title="Marketplace kaynakları">
- `~/.claude/plugins/known_marketplaces.json` içinden bir Claude bilinen marketplace adı
- yerel bir marketplace kökü veya `marketplace.json` yolu
- `owner/repo` gibi bir GitHub repo kısayolu
- `https://github.com/owner/repo` gibi bir GitHub repo URLsi
- bir git URLsi
- `owner/repo` gibi bir GitHub repo kısaltması
- `https://github.com/owner/repo` gibi bir GitHub repo URL'si
- bir git URL'si
</Tab>
<Tab title="Uzak marketplace kuralları">
GitHub veya git üzerinden yüklenen uzak marketplaceler için plugin girdileri klonlanan marketplace reposunun içinde kalmalıdır. OpenClaw, o repodan göreli yol kaynaklarını kabul eder; uzak manifestlerden HTTP(S), mutlak yol, git, GitHub ve diğer yol olmayan plugin kaynaklarını reddeder.
GitHub veya git üzerinden yüklenen uzak marketplace'ler için Plugin girdileri klonlanan marketplace repo'sunun içinde kalmalıdır. OpenClaw, o repo'dan göreli yol kaynaklarını kabul eder ve uzak manifestlerden HTTP(S), mutlak yol, git, GitHub ve diğer yol olmayan Plugin kaynaklarını reddeder.
</Tab>
</Tabs>
Yerel yollar ve arşivler için OpenClaw otomatik algılar:
Yerel yollar ve arşivler için OpenClaw otomatik algılama yapar:
- yerel OpenClaw pluginleri (`openclaw.plugin.json`)
- yerel OpenClaw Plugin'leri (`openclaw.plugin.json`)
- Codex uyumlu paketler (`.codex-plugin/plugin.json`)
- Claude uyumlu paketler (`.claude-plugin/plugin.json` veya varsayılan Claude bileşen düzeni)
- Claude uyumlu paketler (`.claude-plugin/plugin.json` veya varsayılan Claude bileşen yerleşimi)
- Cursor uyumlu paketler (`.cursor-plugin/plugin.json`)
<Note>
Uyumlu paketler normal plugin köküne yüklenir ve aynı liste/bilgi/etkinleştirme/devre dışı bırakma akışına katılır. Bugün paket skillleri, Claude command-skillleri, Claude `settings.json` varsayılanları, Claude `.lsp.json` / manifest tarafından bildirilen `lspServers` varsayılanları, Cursor command-skillleri ve uyumlu Codex hook dizinleri desteklenir; algılanan diğer paket yetenekleri tanılama/bilgi içinde gösterilir ancak henüz çalışma zamanı yürütmesine bağlanmamıştır.
Uyumlu paketler normal Plugin köküne yüklenir ve aynı liste/bilgi/etkinleştirme/devre dışı bırakma akışına katılır. Bugün paket skill'leri, Claude komut skill'leri, Claude `settings.json` varsayılanları, Claude `.lsp.json` / manifest beyanlı `lspServers` varsayılanları, Cursor komut skill'leri ve uyumlu Codex kanca dizinleri desteklenir; algılanan diğer paket yetenekleri tanılarda/bilgide gösterilir ancak henüz çalışma zamanı yürütmesine bağlanmamıştır.
</Note>
### Liste
@ -212,30 +213,30 @@ openclaw plugins list --json
```
<ParamField path="--enabled" type="boolean">
Yalnızca etkin pluginleri göster.
Yalnızca etkin Plugin'leri göster.
</ParamField>
<ParamField path="--verbose" type="boolean">
Tablo görünümünden kaynak/köken/sürüm/etkinleştirme meta verilerini içeren plugin başına ayrıntı satırlarına geç.
Tablo görünümünden, kaynak/köken/sürüm/etkinleştirme metaverileri içeren Plugin başına ayrıntı satırlarına geç.
</ParamField>
<ParamField path="--json" type="boolean">
Makine tarafından okunabilir envanter ve kayıt tanılamaları.
Makine tarafından okunabilir envanter ve registry tanılamaları.
</ParamField>
<Note>
`plugins list` önce kalıcı yerel Plugin kayıt defterini okur; kayıt defteri eksik veya geçersiz olduğunda yalnızca manifestten türetilen bir geri dönüş kullanır. Bir Pluginin kurulu, etkin ve soğuk başlangıç planlamasına görünür olup olmadığını denetlemek için yararlıdır, ancak zaten çalışan bir Gateway sürecinin canlı çalışma zamanı yoklaması değildir. Plugin kodunu, etkinleştirmeyi, hook ilkesini veya `plugins.load.paths` değerini değiştirdikten sonra, yeni `register(api)` kodunun veya hookların çalışmasını beklemeden önce kanala hizmet veren Gatewayi yeniden başlatın. Uzak/konteyner dağıtımlarında, yalnızca bir sarmalayıcı süreci değil, gerçek `openclaw gateway run` alt sürecini yeniden başlattığınızı doğrulayın.
`plugins list`, önce kalıcı yerel Plugin kayıt defterini okur; kayıt defteri eksik veya geçersiz olduğunda yalnızca manifestten türetilmiş bir yedeğe döner. Bir Plugin'in kurulu, etkin ve soğuk başlatma planlamasında görünür olup olmadığını kontrol etmek için kullanışlıdır, ancak zaten çalışan bir Gateway işleminin canlı çalışma zamanı yoklaması değildir. Plugin kodunu, etkinleştirmeyi, hook ilkesini veya `plugins.load.paths` değerini değiştirdikten sonra, yeni `register(api)` kodunun veya hook'ların çalışmasını beklemeden önce kanala hizmet veren Gateway'i yeniden başlatın. Uzak/container dağıtımları için yalnızca bir sarmalayıcı işlemi değil, gerçek `openclaw gateway run` alt işlemini yeniden başlattığınızı doğrulayın.
</Note>
Paketlenmiş bir Docker imajı içinde paketle birlikte gelen Plugin çalışması için, Plugin
kaynak dizinini eşleşen paketlenmiş kaynak yolunun üzerine bind-mount edin; örneğin
`/app/extensions/synology-chat`. OpenClaw bu bağlanan kaynak
katmanını `/app/dist/extensions/synology-chat` öncesinde keşfeder; düz kopyalanmış bir kaynak
dizini etkisiz kalır, böylece normal paketlenmiş kurulumlar derlenmiş disti kullanmaya devam eder.
Paketlenmiş bir Docker imajı içinde paketli Plugin çalışması için Plugin
kaynak dizinini, `/app/extensions/synology-chat` gibi eşleşen paketlenmiş kaynak
yolunun üzerine bind-mount edin. OpenClaw, bu bağlanmış kaynak overlay'ini
`/app/dist/extensions/synology-chat` yolundan önce keşfeder; düz şekilde kopyalanmış
bir kaynak dizini etkisiz kalır, böylece normal paketlenmiş kurulumlar derlenmiş dist'i kullanmaya devam eder.
Çalışma zamanı hook hata ayıklaması için:
- `openclaw plugins inspect <id> --json`, modül yüklenmiş bir inceleme geçişinden kayıtlı hookları ve tanıları gösterir.
- `openclaw gateway status --deep --require-rpc`, erişilebilir Gatewayi, hizmet/süreç ipuçlarını, yapılandırma yolunu ve RPC sağlığını doğrular.
- Paketle gelmeyen konuşma hookları (`llm_input`, `llm_output`, `before_agent_finalize`, `agent_end`) `plugins.entries.<id>.hooks.allowConversationAccess=true` gerektirir.
- `openclaw plugins inspect <id> --runtime --json`, modül yüklenmiş bir inceleme geçişinden kayıtlı hook'ları ve tanıları gösterir. Çalışma zamanı incelemesi, eksik paketli çalışma zamanı bağımlılıklarını asla indirmez; onarım gerektiğinde `openclaw plugins deps --repair` kullanın.
- `openclaw gateway status --deep --require-rpc`, erişilebilir Gateway'i, hizmet/işlem ipuçlarını, yapılandırma yolunu ve RPC sağlığını doğrular.
- Paketli olmayan konuşma hook'ları (`llm_input`, `llm_output`, `before_agent_finalize`, `agent_end`) için `plugins.entries.<id>.hooks.allowConversationAccess=true` gerekir.
Yerel bir dizini kopyalamaktan kaçınmak için `--link` kullanın (`plugins.load.paths` içine ekler):
@ -244,16 +245,16 @@ openclaw plugins install -l ./my-plugin
```
<Note>
`--force`, `--link` ile desteklenmez çünkü bağlantılı kurulumlar yönetilen bir kurulum hedefinin üzerine kopyalamak yerine kaynak yolunu yeniden kullanır.
`--force`, `--link` ile desteklenmez çünkü bağlantılı kurulumlar yönetilen kurulum hedefinin üzerine kopyalamak yerine kaynak yolunu yeniden kullanır.
Varsayılan davranışı sabitlenmemiş bırakırken çözümlenen tam speci (`name@version`) yönetilen Plugin dizinine kaydetmek için npm kurulumlarında `--pin` kullanın.
Varsayılan davranışı sabitlenmemiş tutarken çözümlenen kesin spec'i (`name@version`) yönetilen Plugin dizinine kaydetmek için npm kurulumlarında `--pin` kullanın.
</Note>
### Plugin dizini
Plugin kurulum meta verileri kullanıcı yapılandırması değil, makine tarafından yönetilen durumdur. Kurulumlar ve güncellemeler bunu etkin OpenClaw durum dizini altında `plugins/installs.json` içine yazar. Üst düzey `installRecords` haritası, bozuk veya eksik Plugin manifestleri için kayıtlar dahil olmak üzere kurulum meta verilerinin kalıcı kaynağıdır. `plugins` dizisi, manifestten türetilen soğuk kayıt defteri önbelleğidir. Dosya, düzenlemeyin uyarısı içerir ve `openclaw plugins update`, kaldırma, tanılama ve soğuk Plugin kayıt defteri tarafından kullanılır.
Plugin kurulum meta verileri kullanıcı yapılandırması değil, makine tarafından yönetilen durumdur. Kurulumlar ve güncellemeler bunu etkin OpenClaw durum dizini altında `plugins/installs.json` dosyasına yazar. Üst düzey `installRecords` haritası, bozuk veya eksik Plugin manifest kayıtları dahil olmak üzere kurulum meta verilerinin kalıcı kaynağıdır. `plugins` dizisi, manifestten türetilmiş soğuk kayıt defteri önbelleğidir. Dosya bir düzenlemeyin uyarısı içerir ve `openclaw plugins update`, kaldırma, tanılar ve soğuk Plugin kayıt defteri tarafından kullanılır.
OpenClaw yapılandırmada gönderilmiş eski `plugins.installs` kayıtlarını gördüğünde, bunları Plugin dizinine taşır ve yapılandırma anahtarını kaldırır; yazma işlemlerinden biri başarısız olursa kurulum meta verilerinin kaybolmaması için yapılandırma kayıtları korunur.
OpenClaw, yapılandırmada gönderilmiş eski `plugins.installs` kayıtlarını gördüğünde bunları Plugin dizinine taşır ve yapılandırma anahtarını kaldırır; yazma işlemlerinden biri başarısız olursa kurulum meta verileri kaybolmasın diye yapılandırma kayıtları korunur.
### Çalışma zamanı bağımlılıkları
@ -264,9 +265,11 @@ openclaw plugins deps --prune
openclaw plugins deps --json
```
`plugins deps`, Plugin yapılandırması, etkin/yapılandırılmış kanallar, yapılandırılmış model sağlayıcıları veya paketle gelen manifest varsayılanları tarafından seçilen OpenClawa ait paketle gelen Pluginler için paketlenmiş çalışma zamanı bağımlılık aşamasını inceler. Üçüncü taraf npm veya ClawHub Pluginleri için kurulum/güncelleme yolu değildir.
`plugins deps`, Plugin yapılandırması, etkin/yapılandırılmış kanallar, yapılandırılmış model sağlayıcıları veya paketli manifest varsayılanları tarafından seçilen OpenClaw'a ait paketli Plugin'ler için paketlenmiş çalışma zamanı bağımlılık aşamasını inceler. Üçüncü taraf npm veya ClawHub Plugin'leri için kurulum/güncelleme yolu değildir.
Paketlenmiş bir kurulum Gateway başlangıcı sırasında veya `plugins doctor` içinde eksik paketle gelen çalışma zamanı bağımlılıkları bildirdiğinde `--repair` kullanın. Onarım, yalnızca eksik etkin paketle gelen Plugin bağımlılıklarını yaşam döngüsü betikleri devre dışı olarak kurar. Eski paketlenmiş düzenlerden kalan bayat bilinmeyen harici çalışma zamanı bağımlılığı köklerini kaldırmak için `--prune` kullanın.
Paketlenmiş bir kurulum, Gateway başlatma sırasında veya `plugins doctor` içinde eksik paketli çalışma zamanı bağımlılıkları bildirdiğinde `--repair` kullanın. Onarım yalnızca eksik etkin paketli-Plugin bağımlılıklarını yaşam döngüsü betikleri devre dışıyken kurar. Eski paketlenmiş düzenlerden kalan eski bilinmeyen harici çalışma zamanı bağımlılığı köklerini kaldırmak için `--prune` kullanın.
Tam plan, hazırlama ve onarım yaşam döngüsü için bkz. [Plugin bağımlılık çözümleme](/tr/plugins/dependency-resolution).
### Kaldırma
@ -276,7 +279,7 @@ openclaw plugins uninstall <id> --dry-run
openclaw plugins uninstall <id> --keep-files
```
`uninstall`, uygulanabildiğinde Plugin kayıtlarını `plugins.entries` içinden, kalıcı Plugin dizininden, Plugin izin/veri listesi girdilerinden ve bağlantılı `plugins.load.paths` girdilerinden kaldırır. `--keep-files` ayarlanmadıkça kaldırma, OpenClawın Plugin uzantıları kökü içindeyse izlenen yönetilen kurulum dizinini de kaldırır. Active Memory Pluginleri için bellek yuvası `memory-core` değerine sıfırlanır.
`uninstall`, Plugin kayıtlarını `plugins.entries` içinden, kalıcı Plugin dizininden, Plugin izin/engelleme listesi girdilerinden ve geçerliyse bağlantılı `plugins.load.paths` girdilerinden kaldırır. `--keep-files` ayarlanmadığı sürece kaldırma, OpenClaw'ın Plugin uzantıları kökü içindeyse izlenen yönetilen kurulum dizinini de kaldırır. Active Memory Plugin'leri için bellek yuvası `memory-core` değerine sıfırlanır.
<Note>
`--keep-config`, `--keep-files` için kullanımdan kaldırılmış bir takma ad olarak desteklenir.
@ -292,25 +295,25 @@ openclaw plugins update @openclaw/voice-call@beta
openclaw plugins update openclaw-codex-app-server --dangerously-force-unsafe-install
```
Güncellemeler, yönetilen Plugin dizinindeki izlenen Plugin kurulumlarına ve `hooks.internal.installs` içindeki izlenen hook paketi kurulumlarına uygulanır.
Güncellemeler, yönetilen Plugin dizinindeki izlenen Plugin kurulumlarına ve `hooks.internal.installs` içindeki izlenen hook-pack kurulumlarına uygulanır.
<AccordionGroup>
<Accordion title="Plugin id ile npm spec çözümleme">
Bir Plugin idsi verdiğinizde OpenClaw, o Plugin için kaydedilmiş kurulum specini yeniden kullanır. Bu, `@beta` gibi önceden depolanmış dist-taglerin ve tam sabitlenmiş sürümlerin sonraki `update <id>` çalıştırmalarında kullanılmaya devam edeceği anlamına gelir.
Bir Plugin id'si verdiğinizde OpenClaw, o Plugin için kaydedilmiş kurulum spec'ini yeniden kullanır. Bu, `@beta` gibi daha önce saklanmış dist-tag'lerin ve kesin sabitlenmiş sürümlerin sonraki `update <id>` çalıştırmalarında kullanılmaya devam edeceği anlamına gelir.
npm kurulumları için, dist-tag veya tam sürüm içeren açık bir npm paket speci de verebilirsiniz. OpenClaw bu paket adını izlenen Plugin kaydına geri çözümler, kurulu Plugini günceller ve gelecekteki id tabanlı güncellemeler için yeni npm specini kaydeder.
npm kurulumları için dist-tag veya kesin sürüm içeren açık bir npm paket spec'i de verebilirsiniz. OpenClaw bu paket adını izlenen Plugin kaydına geri çözümler, kurulu Plugin'i günceller ve gelecekteki id tabanlı güncellemeler için yeni npm spec'ini kaydeder.
npm paket adını sürüm veya etiket olmadan vermek de izlenen Plugin kaydına geri çözümlenir. Bir Plugin tam bir sürüme sabitlenmişse ve onu kayıt defterinin varsayılan sürüm hattına geri taşımak istiyorsanız bunu kullanın.
npm paket adını sürüm veya etiket olmadan vermek de izlenen Plugin kaydına geri çözümlenir. Bunu, bir Plugin kesin bir sürüme sabitlendiğinde ve onu kayıt defterinin varsayılan yayın hattına geri taşımak istediğinizde kullanın.
</Accordion>
<Accordion title="Sürüm denetimleri ve bütünlük kayması">
Canlı bir npm güncellemesinden önce OpenClaw, kurulu paket sürümünü npm kayıt defteri meta verilerine göre denetler. Kurulu sürüm ve kaydedilmiş yapıt kimliği zaten çözümlenen hedefle eşleşiyorsa güncelleme indirme, yeniden kurma veya `openclaw.json` yeniden yazma yapmadan atlanır.
<Accordion title="Sürüm kontrolleri ve bütünlük sapması">
Canlı bir npm güncellemesinden önce OpenClaw, kurulu paket sürümünü npm kayıt defteri meta verilerine göre kontrol eder. Kurulu sürüm ve kaydedilmiş artifact kimliği çözümlenen hedefle zaten eşleşiyorsa güncelleme indirme, yeniden kurma veya `openclaw.json` dosyasını yeniden yazma olmadan atlanır.
Depolanmış bir bütünlük hashi varsa ve getirilen yapıt hashi değişirse OpenClaw bunu npm yapıt kayması olarak ele alır. Etkileşimli `openclaw plugins update` komutu beklenen ve gerçek hashleri yazdırır ve devam etmeden önce onay ister. Etkileşimsiz güncelleme yardımcıları, çağıran açık bir devam ilkesi sağlamadıkça kapalı şekilde başarısız olur.
Saklanan bir bütünlük hash'i mevcutsa ve getirilen artifact hash'i değişirse OpenClaw bunu npm artifact sapması olarak değerlendirir. Etkileşimli `openclaw plugins update` komutu beklenen ve gerçek hash'leri yazdırır ve devam etmeden önce onay ister. Etkileşimsiz güncelleme yardımcıları, çağıran açık bir devam ilkesi sağlamadığı sürece kapalı şekilde başarısız olur.
</Accordion>
<Accordion title="Güncellemede --dangerously-force-unsafe-install">
`--dangerously-force-unsafe-install`, Plugin güncellemeleri sırasında yerleşik tehlikeli kod taraması yanlış pozitifleri için acil durum geçersiz kılması olarak `plugins update` üzerinde de kullanılabilir. Yine de Plugin `before_install` ilke engellerini veya tarama hatası engellemesini atlamaz ve yalnızca Plugin güncellemelerine uygulanır, hook paketi güncellemelerine uygulanmaz.
`--dangerously-force-unsafe-install`, Plugin güncellemeleri sırasında yerleşik tehlikeli kod taraması yanlış pozitifleri için acil durum geçersiz kılması olarak `plugins update` üzerinde de kullanılabilir. Yine de Plugin `before_install` ilke engellerini veya tarama hatası engellemeyi atlamaz ve yalnızca Plugin güncellemelerine uygulanır, hook-pack güncellemelerine uygulanmaz.
</Accordion>
</AccordionGroup>
@ -318,22 +321,23 @@ Güncellemeler, yönetilen Plugin dizinindeki izlenen Plugin kurulumlarına ve `
```bash
openclaw plugins inspect <id>
openclaw plugins inspect <id> --runtime
openclaw plugins inspect <id> --json
```
Tek bir Plugin için derin içgözlem. Kimliği, yükleme durumunu, kaynağı, kayıtlı yetenekleri, hookları, araçları, komutları, hizmetleri, Gateway yöntemlerini, HTTP rotalarını, ilke bayraklarını, tanıları, kurulum meta verilerini, paket yeteneklerini ve algılanan MCP veya LSP sunucu desteğini gösterir.
Inspect varsayılan olarak Plugin çalışma zamanını içe aktarmadan kimliği, yükleme durumunu, kaynağı, manifest yeteneklerini, ilke bayraklarını, tanıları, kurulum meta verilerini, paket yeteneklerini ve algılanan MCP veya LSP sunucu desteğini gösterir. Plugin modülünü yüklemek ve kayıtlı hook'ları, araçları, komutları, hizmetleri, gateway yöntemlerini ve HTTP rotalarını dahil etmek için `--runtime` ekleyin. Paketli çalışma zamanı bağımlılıkları eksik olduğunda çalışma zamanı incelemesi bir onarım ipucuyla başarısız olur; bunlarııkça onarmak için `openclaw plugins deps --repair` kullanın.
Her Plugin, çalışma zamanında gerçekten kaydettiklerine göre sınıflandırılır:
- **plain-capability** — tek yetenek türü (ör. yalnızca sağlayıcı Plugini)
- **hybrid-capability** — birden çok yetenek türü (ör. metin + konuşma + görüntüler)
- **hook-only** — yalnızca hooklar, yetenek veya yüzey yok
- **plain-capability** — tek yetenek türü (örn. yalnızca sağlayıcı Plugin'i)
- **hybrid-capability** — birden çok yetenek türü (örn. metin + konuşma + görseller)
- **hook-only** — yalnızca hook'lar, yetenek veya yüzey yok
- **non-capability** — araçlar/komutlar/hizmetler var ama yetenek yok
Yetenek modeli hakkında daha fazla bilgi için [Plugin şekilleri](/tr/plugins/architecture#plugin-shapes) bölümüne bakın.
Yetenek modeli hakkında daha fazla bilgi için bkz. [Plugin şekilleri](/tr/plugins/architecture#plugin-shapes).
<Note>
`--json` bayrağı, betik yazma ve denetim için uygun, makine tarafından okunabilir bir rapor çıktılar. `inspect --all`, şekil, yetenek türleri, uyumluluk bildirimleri, paket yetenekleri ve hook özeti sütunlarını içeren filo genelinde bir tablo işler. `info`, `inspect` için bir takma addır.
`--json` bayrağı, betikleme ve denetim için uygun makine tarafından okunabilir bir rapor üretir. `inspect --all`, şekil, yetenek türleri, uyumluluk bildirimleri, paket yetenekleri ve hook özeti sütunları içeren filo genelinde bir tablo oluşturur. `info`, `inspect` için bir takma addır.
</Note>
### Doctor
@ -344,7 +348,7 @@ openclaw plugins doctor
`doctor`, Plugin yükleme hatalarını, manifest/keşif tanılarını ve uyumluluk bildirimlerini raporlar. Her şey temiz olduğunda `No plugin issues detected.` yazdırır.
Eksik `register`/`activate` dışa aktarımları gibi modül şekli hatalarında, tanı çıktısına kompakt bir dışa aktarım şekli özeti eklemek için `OPENCLAW_PLUGIN_LOAD_DEBUG=1` ile yeniden çalıştırın.
Eksik `register`/`activate` dışa aktarımları gibi modül şekli hataları için tanı çıktısına kompakt bir dışa aktarım şekli özeti eklemek üzere `OPENCLAW_PLUGIN_LOAD_DEBUG=1` ile yeniden çalıştırın.
### Kayıt defteri
@ -354,12 +358,12 @@ openclaw plugins registry --refresh
openclaw plugins registry --json
```
Yerel Plugin kayıt defteri, kurulu Plugin kimliği, etkinleştirme, kaynak meta verileri ve katkı sahipliği için OpenClawın kalıcı soğuk okuma modelidir. Normal başlangıç, sağlayıcı sahibi araması, kanal kurulum sınıflandırması ve Plugin envanteri, Plugin çalışma zamanı modüllerini içe aktarmadan bunu okuyabilir.
Yerel Plugin kayıt defteri, kurulu Plugin kimliği, etkinleştirme, kaynak meta verileri ve katkı sahipliği için OpenClaw'ın kalıcı soğuk okuma modelidir. Normal başlatma, sağlayıcı sahibi arama, kanal kurulum sınıflandırması ve Plugin envanteri, Plugin çalışma zamanı modüllerini içe aktarmadan bunu okuyabilir.
Kalıcı kayıt defterinin mevcut, güncel veya bayat olup olmadığını incelemek için `plugins registry` kullanın. Kalıcı Plugin dizininden, yapılandırma ilkesinden ve manifest/paket meta verilerinden yeniden oluşturmak için `--refresh` kullanın. Bu bir onarım yoludur, çalışma zamanı etkinleştirme yolu değildir.
Kalıcı kayıt defterinin mevcut, güncel veya eski olup olmadığını incelemek için `plugins registry` kullanın. Kalıcı Plugin dizininden, yapılandırma ilkesinden ve manifest/paket meta verilerinden yeniden oluşturmak için `--refresh` kullanın. Bu bir onarım yoludur, çalışma zamanı etkinleştirme yolu değildir.
<Warning>
`OPENCLAW_DISABLE_PERSISTED_PLUGIN_REGISTRY=1`, kayıt defteri okuma hataları için kullanımdan kaldırılmış bir acil durum uyumluluk anahtarıdır. `plugins registry --refresh` veya `openclaw doctor --fix` tercih edin; env geri dönüşü yalnızca geçiş yayılırken acil başlangıç kurtarması içindir.
`OPENCLAW_DISABLE_PERSISTED_PLUGIN_REGISTRY=1`, kayıt defteri okuma hataları için kullanımdan kaldırılmış bir acil durum uyumluluk anahtarıdır. `plugins registry --refresh` veya `openclaw doctor --fix` tercih edin; env yedeği yalnızca geçiş yayına alınırken acil başlatma kurtarması içindir.
</Warning>
### Marketplace
@ -369,10 +373,10 @@ openclaw plugins marketplace list <source>
openclaw plugins marketplace list <source> --json
```
Marketplace list yerel bir marketplace yolunu, bir `marketplace.json` yolunu, `owner/repo` gibi bir GitHub kısaltmasını, bir GitHub repo URLsini veya bir git URLsini kabul eder. `--json`, çözümlenen kaynak etiketinin yanı sıra ayrıştırılan marketplace manifestini ve Plugin girdilerini yazdırır.
Marketplace list yerel marketplace yolunu, `marketplace.json` yolunu, `owner/repo` gibi bir GitHub kısaltmasını, GitHub depo URL'sini veya git URL'sini kabul eder. `--json`, çözümlenen kaynak etiketini, ayrıştırılmış marketplace manifestini ve Plugin girdilerini yazdırır.
## İlgili
- [Plugin oluşturma](/tr/plugins/building-plugins)
- [CLI başvurusu](/tr/cli)
- [Topluluk Pluginleri](/tr/plugins/community)
- [Topluluk Plugin'leri](/tr/plugins/community)

View File

@ -1,32 +1,31 @@
---
read_when:
- Hata ayıklama için OpenClaw taşıma trafiğini yerel olarak yakalamanız gerekiyor
- Hata ayıklama proxy oturumlarını, blob'ları veya yerleşik sorgu önayarlarını incelemek istiyorsunuz
summary: Yerel hata ayıklama proxy'si ve yakalama denetleyicisi olan `openclaw proxy` için CLI başvurusu
title: Proxy
- Dağıtımdan önce operatör tarafından yönetilen vekil sunucu yönlendirmesini doğrulamanız gerekir
- Hata ayıklama için OpenClaw taşıma trafiğini yerel olarak yakalamanız gerekir
- Hata ayıklama proxy oturumlarını, blob'ları veya yerleşik sorgu ön ayarlarını incelemek istiyorsunuz
summary: '`openclaw proxy` için CLI referansı; operatör tarafından yönetilen ara sunucu doğrulaması ve yerel hata ayıklama ara sunucu yakalama denetleyicisi dahil'
title: Ara sunucu
x-i18n:
generated_at: "2026-04-24T09:03:36Z"
model: gpt-5.4
generated_at: "2026-05-01T08:59:54Z"
model: gpt-5.5
provider: openai
source_hash: 7af5c596fb36f67e3fcffaff14dcbb4eabbcff0b95174ac6058a097ec9fd715f
source_hash: e0820de861bfe1ec14e0c1624d636d6474b5fedd317e3ba1baaa61f6530e06e9
source_path: cli/proxy.md
workflow: 15
workflow: 16
---
# `openclaw proxy`
Yerel açık hata ayıklama proxy'sini çalıştırın ve yakalanan trafiği inceleyin.
Operatör tarafından yönetilen proxy yönlendirmesini doğrulayın veya yerel açık hata ayıklama proxy'sini çalıştırıp yakalanan trafiği inceleyin.
Bu, taşıma düzeyi inceleme için bir hata ayıklama komutudur. Yerel bir
proxy başlatabilir, yakalama etkinleştirilmiş bir alt komut çalıştırabilir, yakalama oturumlarını listeleyebilir,
yaygın trafik desenlerini sorgulayabilir, yakalanan blob'ları okuyabilir ve yerel yakalama
verilerini temizleyebilir.
OpenClaw proxy yönlendirmesini etkinleştirmeden önce operatör tarafından yönetilen bir ileri proxy için ön kontrol yapmak üzere `validate` kullanın. Diğer komutlar, aktarım düzeyinde inceleme için hata ayıklama araçlarıdır: yerel proxy başlatabilir, yakalama etkinleştirilmiş bir alt komut çalıştırabilir, yakalama oturumlarını listeleyebilir, yaygın trafik kalıplarını sorgulayabilir, yakalanan blobları okuyabilir ve yerel yakalama verilerini temizleyebilirler.
## Komutlar
```bash
openclaw proxy start [--host <host>] [--port <port>]
openclaw proxy run [--host <host>] [--port <port>] -- <cmd...>
openclaw proxy validate [--json] [--proxy-url <url>] [--allowed-url <url>] [--denied-url <url>] [--timeout-ms <ms>]
openclaw proxy coverage
openclaw proxy sessions [--limit <count>]
openclaw proxy query --preset <name> [--session <id>]
@ -34,9 +33,23 @@ openclaw proxy blob --id <blobId>
openclaw proxy purge
```
## Sorgu önayarları
## Doğrulama
`openclaw proxy query --preset <name>` şu değerleri kabul eder:
`openclaw proxy validate`, `--proxy-url`, yapılandırma veya `OPENCLAW_PROXY_URL` üzerinden etkin operatör tarafından yönetilen proxy URL'sini denetler. Hiçbir proxy etkinleştirilip yapılandırılmadığında bir yapılandırma sorunu bildirir; yapılandırmayı değiştirmeden önce tek seferlik ön kontrol için `--proxy-url` kullanın. Varsayılan olarak, herkese açık bir hedefin proxy üzerinden başarılı olduğunu ve proxy'nin geçici bir local loopback kanaryasına erişemediğini doğrular. Özel reddedilen hedefler kapalı varsayılanlıdır: dağıtıma özgü bir reddetme sinyalini ayrı olarak doğrulayamıyorsanız hem HTTP yanıtları hem de belirsiz aktarım hataları başarısız olur.
Seçenekler:
- `--json`: makine tarafından okunabilir JSON yazdırır.
- `--proxy-url <url>`: yapılandırma veya env yerine bu proxy URL'sini doğrular.
- `--allowed-url <url>`: proxy üzerinden başarılı olması beklenen bir hedef ekler. Birden fazla hedefi denetlemek için tekrarlayın.
- `--denied-url <url>`: proxy tarafından engellenmesi beklenen bir hedef ekler. Birden fazla hedefi denetlemek için tekrarlayın.
- `--timeout-ms <ms>`: istek başına milisaniye cinsinden zaman aşımı.
Dağıtım rehberliği ve reddetme semantiği için [Ağ Proxy'si](/tr/security/network-proxy) bölümüne bakın.
## Sorgu ön ayarları
`openclaw proxy query --preset <name>` şunları kabul eder:
- `double-sends`
- `retry-storms`
@ -47,11 +60,13 @@ openclaw proxy purge
## Notlar
- `start`, `--host` ayarlanmadıkça varsayılan olarak `127.0.0.1` kullanır.
- `start`, `--host` ayarlanmadığı sürece varsayılan olarak `127.0.0.1` kullanır.
- `run`, yerel bir hata ayıklama proxy'si başlatır ve ardından `--` sonrasındaki komutu çalıştırır.
- `validate`, proxy yapılandırması veya hedef denetimleri başarısız olduğunda kod 1 ile çıkar.
- Yakalamalar yerel hata ayıklama verileridir; işiniz bittiğinde `openclaw proxy purge` kullanın.
## İlgili
- [CLI reference](/tr/cli)
- [Trusted proxy auth](/tr/gateway/trusted-proxy-auth)
- [CLI başvurusu](/tr/cli)
- [Ağ Proxy'si](/tr/security/network-proxy)
- [Güvenilir proxy kimlik doğrulaması](/tr/gateway/trusted-proxy-auth)

View File

@ -1,14 +1,14 @@
---
read_when:
- Bir kaynak çalışma kopyasını güvenli şekilde güncellemek istiyorsunuz
- Kaynak kod çalışma kopyasını güvenli bir şekilde güncellemek istiyorsunuz
- '`--update` kısaltma davranışını anlamanız gerekir'
summary: '`openclaw update` için CLI referansı (görece güvenli kaynak güncellemesi + Gateway otomatik yeniden başlatma)'
title: Güncelleme
summary: '`openclaw update` için CLI referansı (güvenli sayılabilecek kaynak güncellemesi + Gateway otomatik yeniden başlatma)'
title: Güncelle
x-i18n:
generated_at: "2026-04-30T09:14:46Z"
generated_at: "2026-05-01T09:00:08Z"
model: gpt-5.5
provider: openai
source_hash: 9cd4be6be8f6ae7df501f8bce3d208dd507ae5a1539f9772101cd844dcd93976
source_hash: bc71740dac6b1af8f695ab60d0ffc1b44a10dd40363538c2a8a37ad518790ce9
source_path: cli/update.md
workflow: 16
---
@ -17,8 +17,8 @@ x-i18n:
OpenClawı güvenle güncelleyin ve stable/beta/dev kanalları arasında geçiş yapın.
**npm/pnpm/bun** ile yüklediyseniz (global yükleme, git metadatası yok),
güncellemeler [Updating](/tr/install/updating) içindeki paket yöneticisi akışı üzerinden gerçekleşir.
**npm/pnpm/bun** ile kurduysanız (global kurulum, git meta verisi yok),
güncellemeler [Güncelleme](/tr/install/updating) bölümündeki paket yöneticisi akışıyla yapılır.
## Kullanım
@ -39,15 +39,15 @@ openclaw --update
## Seçenekler
- `--no-restart`: başarılı bir güncellemeden sonra Gateway hizmetini yeniden başlatmayı atlar. Gatewayi yeniden başlatan paket yöneticisi güncellemeleri, komut başarılı olmadan önce yeniden başlatılan hizmetin beklenen güncellenmiş sürümü bildirdiğini doğrular.
- `--channel <stable|beta|dev>`: güncelleme kanalını ayarlar (git + npm; yapılandırmada kalıcı olur).
- `--tag <dist-tag|version|spec>`: paket hedefini yalnızca bu güncelleme için geçersiz kılar. Paket yüklemeleri için `main`, `github:openclaw/openclaw#main` değerine eşlenir.
- `--dry-run`: yapılandırma yazmadan, yükleme yapmadan, Pluginleri senkronize etmeden veya yeniden başlatmadan planlanan güncelleme eylemlerini (kanal/etiket/hedef/yeniden başlatma akışı) önizler.
- `--json`: güncelleme sonrası Plugin senkronizasyonu sırasında npm Plugin yapıtı kayması algılandığında
- `--no-restart`: başarılı bir güncellemeden sonra Gateway hizmetini yeniden başlatmayı atla. Gatewayi yeniden başlatan paket yöneticisi güncellemeleri, komut başarılı olmadan önce yeniden başlatılan hizmetin beklenen güncellenmiş sürümü bildirdiğini doğrular.
- `--channel <stable|beta|dev>`: güncelleme kanalını ayarla (git + npm; yapılandırmada kalıcı olur).
- `--tag <dist-tag|version|spec>`: yalnızca bu güncelleme için paket hedefini geçersiz kıl. Paket kurulumlarında `main`, `github:openclaw/openclaw#main` ile eşleşir.
- `--dry-run`: yapılandırma yazmadan, kurulum yapmadan, Pluginleri eşitlemeden veya yeniden başlatmadan planlanan güncelleme eylemlerini (kanal/etiket/hedef/yeniden başlatma akışı) önizle.
- `--json`: npm Plugin yapıtı sapması güncelleme sonrası Plugin eşitlemesi sırasında algılandığında
`postUpdate.plugins.integrityDrifts` dahil olmak üzere makine tarafından okunabilir
`UpdateRunResult` JSON çıktısı yazdırır.
- `--timeout <seconds>`: adım başına zaman aşımı (varsayılan 1800 sn).
- `--yes`: onay istemlerini atlar (örneğin sürüm düşürme onayı).
`UpdateRunResult` JSON çıktısı yazdır.
- `--timeout <seconds>`: adım başına zaman aşımı (varsayılan 1800s).
- `--yes`: onay istemlerini atla (örneğin sürüm düşürme onayı).
<Warning>
Sürüm düşürmeler onay gerektirir çünkü eski sürümler yapılandırmayı bozabilir.
@ -55,7 +55,7 @@ Sürüm düşürmeler onay gerektirir çünkü eski sürümler yapılandırmayı
## `update status`
Etkin güncelleme kanalını + git etiketini/dalını/SHA değerini (kaynak checkoutlar için) ve güncelleme kullanılabilirliğini gösterir.
Etkin güncelleme kanalını + git etiketi/dalı/SHAsını (kaynak checkoutları için) ve güncelleme kullanılabilirliğini göster.
```bash
openclaw update status
@ -65,13 +65,13 @@ openclaw update status --timeout 10
Seçenekler:
- `--json`: makine tarafından okunabilir durum JSON çıktısı yazdırır.
- `--timeout <seconds>`: kontroller için zaman aşımı (varsayılan 3 sn).
- `--json`: makine tarafından okunabilir durum JSONu yazdır.
- `--timeout <seconds>`: denetimler için zaman aşımı (varsayılan 3s).
## `update wizard`
Bir güncelleme kanalı seçmek ve güncellemeden sonra Gatewayin yeniden başlatılıp başlatılmayacağını
onaylamak için etkileşimli akış (varsayılan yeniden başlatmaktır). Git checkout olmadan `dev` seçerseniz,
Güncelleme kanalını seçmek ve güncellemeden sonra Gatewayin yeniden başlatılıp başlatılmayacağını
onaylamak için etkileşimli akış (varsayılan yeniden başlatmaktır). Git checkoutı olmadan `dev` seçerseniz,
bir tane oluşturmayı teklif eder.
Seçenekler:
@ -80,82 +80,95 @@ Seçenekler:
## Ne yapar
Kanallarııkça değiştirdiğinizde (`--channel ...`), OpenClaw yükleme yöntemini de
Kanallarııkça değiştirdiğinizde (`--channel ...`), OpenClaw kurulum yöntemini de
uyumlu tutar:
- `dev` → bir git checkout olmasını sağlar (varsayılan: `~/openclaw`, `OPENCLAW_GIT_DIR` ile geçersiz kılınır),
bunu günceller ve global CLIı bu checkouttan yükler.
- `stable``latest` kullanarak npmden yükler.
- `beta` → npm dist-tag `beta` değerini tercih eder, ancak beta eksikse veya mevcut stable sürümden
daha eskiyse `latest` değerine geri döner.
- `dev` → bir git checkoutı olduğundan emin olur (varsayılan: `~/openclaw`, `OPENCLAW_GIT_DIR` ile geçersiz kılınabilir),
onu günceller ve global CLIyi bu checkouttan kurar.
- `stable``latest` kullanarak npmden kurar.
- `beta` → npm dist-tag `beta` tercih edilir, ancak beta yoksa veya mevcut stable sürümden
eskiyse `latest` değerine geri döner.
Gateway çekirdek otomatik güncelleyicisi (yapılandırma üzerinden etkinleştirildiğinde) aynı güncelleme yolunu yeniden kullanır.
Gateway çekirdek otomatik güncelleyicisi (yapılandırma üzerinden etkinleştirildiğinde), CLI güncelleme yolunu
canlı Gateway istek işleyicisinin dışında başlatır. Denetim düzlemi `update.run` paket yöneticisi
güncellemeleri, paket değişiminden sonra ertelenmeyen bir güncelleme yeniden başlatmasını zorunlu kılar; çünkü eski
Gateway sürecinde yeni paket tarafından kaldırılmış dosyalara işaret eden bellek içi parçalar hâlâ olabilir.
Paket yöneticisi yüklemelerinde `openclaw update`, paket yöneticisini çağırmadan önce hedef paket
sürümünü çözümler. npm global yüklemeleri aşamalı yükleme kullanır: OpenClaw yeni paketi geçici bir npm prefix içine yükler, paketlenmiş `dist` envanterini orada doğrular, ardından bu temiz paket ağacını gerçek global prefix içine değiştirir. Doğrulama başarısız olursa, güncelleme sonrası doctor, Plugin senkronizasyonu ve yeniden başlatma işi şüpheli ağaçtan çalıştırılmaz. Yüklü sürüm hedefle zaten eşleşse bile komut global paket yüklemesini yeniler, ardından Plugin senkronizasyonu, çekirdek komut tamamlama yenilemesi ve yeniden başlatma işi çalıştırır. Bu, tam Plugin komut tamamlama yeniden derlemelerini açık `openclaw completion --write-state` çalıştırmalarına bırakırken paketlenmiş yardımcı bileşenleri ve kanala ait Plugin kayıtlarını yüklü OpenClaw derlemesiyle uyumlu tutar.
Paket yöneticisi kurulumlarında `openclaw update`, paket yöneticisini çağırmadan önce hedef paket
sürümünü çözer. npm global kurulumları aşamalı kurulum kullanır: OpenClaw yeni paketi geçici bir npm prefixine kurar,
oradaki paketlenmiş `dist` envanterini doğrular, ardından bu temiz paket ağacını gerçek global prefixe taşır.
Doğrulama başarısız olursa güncelleme sonrası doctor, Plugin eşitlemesi ve yeniden başlatma işleri
şüpheli ağaçtan çalıştırılmaz. Kurulu sürüm hedefle zaten eşleşse bile komut global paket kurulumunu yeniler,
ardından Plugin eşitlemesi, çekirdek komut tamamlama yenilemesi ve yeniden başlatma işlerini çalıştırır. Bu,
paketlenmiş yardımcı süreçleri ve kanalın sahip olduğu Plugin kayıtlarını kurulu OpenClaw derlemesiyle uyumlu tutarken
tam Plugin komutu tamamlama yeniden derlemelerini açık `openclaw completion --write-state` çalıştırmalarına bırakır.
Yerel yönetilen bir Gateway hizmeti yüklü olduğunda ve yeniden başlatma etkin olduğunda,
paket yöneticisi güncellemeleri paket ağacını değiştirmeden önce çalışan hizmeti durdurur, ardından hizmet metadatasını güncellenmiş yüklemeden yeniler, hizmeti yeniden başlatır ve yeniden başlatılan Gatewayin beklenen sürümü bildirdiğini doğrular. `--no-restart` ile paket değiştirme yine çalışır ancak yönetilen hizmet durdurulmaz veya yeniden başlatılmaz; bu nedenle çalışan Gateway siz manuel olarak yeniden başlatana kadar eski kodu kullanmaya devam edebilir.
Yerel yönetilen Gateway hizmeti kurulu olduğunda ve yeniden başlatma etkinleştirildiğinde,
paket yöneticisi güncellemeleri paket ağacını değiştirmeden önce çalışan hizmeti durdurur,
ardından güncellenmiş kurulumdan hizmet meta verilerini yeniler, hizmeti yeniden başlatır
ve yeniden başlatılan Gatewayin beklenen sürümü bildirdiğini doğrular. `--no-restart` ile
paket değişimi yine çalışır ancak yönetilen hizmet durdurulmaz veya yeniden başlatılmaz; bu nedenle çalışan Gateway,
siz elle yeniden başlatana kadar eski kodu tutabilir.
## Git checkout akışı
### Kanal seçimi
- `stable`: en son beta olmayan etiketi checkout yapar, ardından derler ve doctor çalıştırır.
- `beta`: en son `-beta` etiketini tercih eder, ancak beta eksikse veya daha eskiyse en son stable etikete geri döner.
- `dev`: `main` checkout yapar, ardından fetch ve rebase yapar.
- `stable`: en son beta olmayan etiketi checkout yap, ardından derle ve doctor çalıştır.
- `beta`: en son `-beta` etiketini tercih et, ancak beta yoksa veya daha eskiyse en son stable etikete geri dön.
- `dev`: `main` checkout yap, ardından fetch ve rebase yap.
### Güncelleme adımları
<Steps>
<Step title="Temiz worktree doğrula">
<Step title="Verify clean worktree">
Commit edilmemiş değişiklik olmamasını gerektirir.
</Step>
<Step title="Kanal değiştir">
<Step title="Switch channel">
Seçilen kanala (etiket veya dal) geçer.
</Step>
<Step title="Upstream fetch et">
<Step title="Fetch upstream">
Yalnızca dev.
</Step>
<Step title="Ön kontrol derlemesi (yalnızca dev)">
Geçici bir worktree içinde lint ve TypeScript derlemesi çalıştırır. Uç başarısız olursa, en yeni temiz derlemeyi bulmak için 10 commite kadar geriye gider.
<Step title="Preflight build (dev only)">
Geçici bir worktreede lint ve TypeScript derlemesi çalıştırır. Uç commit başarısız olursa en yeni temiz derlemeyi bulmak için 10 commite kadar geri gider.
</Step>
<Step title="Rebase">
Seçilen commit üzerine rebase yapar (yalnızca dev).
Seçilen commitin üzerine rebase yapar (yalnızca dev).
</Step>
<Step title="Bağımlılıkları yükle">
Repo paket yöneticisini kullanır. pnpm checkoutları için güncelleyici, pnpm workspace içinde `npm run build` çalıştırmak yerine gerektiğinde `pnpm`i bootstrap eder (önce `corepack` üzerinden, ardından geçici `npm install pnpm@10` geri dönüşüyle).
<Step title="Install dependencies">
Repo paket yöneticisini kullanır. pnpm checkoutlarında güncelleyici, pnpm workspace içinde `npm run build` çalıştırmak yerine `pnpm`i gerektiğinde önyükler (önce `corepack`, ardından geçici `npm install pnpm@10` fallbacki üzerinden).
</Step>
<Step title="Control UI derle">
Gatewayi ve Control UIı derler.
<Step title="Build Control UI">
Gatewayi ve Control UIyi derler.
</Step>
<Step title="Doctor çalıştır">
Son güvenli güncelleme kontrolü olarak `openclaw doctor` çalışır.
<Step title="Run doctor">
Son güvenli güncelleme denetimi olarak `openclaw doctor` çalışır.
</Step>
<Step title="Pluginleri senkronize et">
Pluginleri etkin kanala senkronize eder. Dev paketlenmiş Pluginleri kullanır; stable ve beta npm kullanır. npm ile yüklenmiş Pluginleri günceller.
<Step title="Sync plugins">
Pluginleri etkin kanala eşitler. Dev paketlenmiş Pluginleri kullanır; stable ve beta npm kullanır. npm ile kurulmuş Pluginleri günceller.
</Step>
</Steps>
<Warning>
Tam olarak sabitlenmiş bir npm Plugin güncellemesi, bütünlüğü saklanan yükleme kaydından farklı olan bir yapıta çözümlenirse, `openclaw update` bu Plugin yapıtı güncellemesini yüklemek yerine iptal eder. Yeni yapıta güvendiğinizi doğruladıktan sonra Plugini açıkça yeniden yükleyin veya güncelleyin.
Tam sabitlenmiş bir npm Plugin güncellemesi, bütünlüğü saklanan kurulum kaydından farklı olan bir yapıta çözümlenirse `openclaw update`, bu Plugin yapıtı güncellemesini kurmak yerine iptal eder. Yeni yapıta güvendiğinizi doğruladıktan sonra Plugini açıkça yeniden kurun veya güncelleyin.
</Warning>
<Note>
Güncelleme sonrası Plugin senkronizasyonu hataları güncelleme sonucunu başarısız yapar ve yeniden başlatma takip işini durdurur. Plugin yükleme veya güncelleme hatasını düzeltin, ardından `openclaw update` komutunu yeniden çalıştırın.
Güncelleme sonrası Plugin eşitleme hataları güncelleme sonucunu başarısız yapar ve yeniden başlatma takip işini durdurur. Plugin kurulum veya güncelleme hatasını düzeltin, ardından `openclaw update` komutunu yeniden çalıştırın.
Güncellenmiş Gateway başladığında, etkinleştirilmiş paketlenmiş Plugin çalışma zamanı bağımlılıkları Plugin aktivasyonundan önce aşamalandırılır. Güncelleme tarafından tetiklenen yeniden başlatmalar, Gateway kapatılmadan önce etkin çalışma zamanı bağımlılığı aşamalandırmasını boşaltır; böylece hizmet yöneticisi yeniden başlatmaları devam eden bir npm yüklemesini kesintiye uğratmaz.
Güncellenmiş Gateway başladığında, etkin paketlenmiş Plugin çalışma zamanı bağımlılıkları Plugin etkinleştirmeden önce aşamalandırılır. Paket yöneticisi `update.run` yeniden başlatmaları, paket ağacı değiştirildikten sonra normal boşta ertelemeyi atlar; böylece eski süreç kaldırılmış parçaları tembel biçimde yüklemeye devam edemez. Hizmet yöneticisi yeniden başlatmaları Gatewayi kapatmadan önce çalışma zamanı bağımlılığı aşamalandırmasını yine de boşaltır.
pnpm bootstrap yine başarısız olursa, güncelleyici checkout içinde `npm run build` denemek yerine paket yöneticisine özgü bir hatayla erken durur.
pnpm önyüklemesi hâlâ başarısız olursa güncelleyici, checkout içinde `npm run build` denemek yerine paket yöneticisine özgü bir hatayla erken durur.
</Note>
## `--update` kısaltması
`openclaw --update`, `openclaw update` olarak yeniden yazılır (shelller ve başlatıcı scriptleri için kullanışlıdır).
`openclaw --update`, `openclaw update` olarak yeniden yazılır (shelller ve başlatıcı betikleri için kullanışlıdır).
## İlgili
- `openclaw doctor` (git checkoutlarında önce güncelleme çalıştırmayı teklif eder)
- `openclaw doctor` (git checkoutlarında önce update çalıştırmayı teklif eder)
- [Geliştirme kanalları](/tr/install/development-channels)
- [Updating](/tr/install/updating)
- [CLI referansı](/tr/cli)
- [Güncelleme](/tr/install/updating)
- [CLI başvurusu](/tr/cli)

View File

@ -1,31 +1,37 @@
---
read_when:
- voice-call Plugin'ini kullanıyorsunuz ve CLI giriş noktalarını istiyorsunuz
- voice-call Plugin'ini kullanıyor ve CLI giriş noktalarını istiyorsunuz
- '`voicecall setup|smoke|call|continue|dtmf|status|tail|expose` için hızlı örnekler istiyorsunuz'
summary: '`openclaw voicecall` için CLI başvurusu (voice-call Plugin komut yüzeyi)'
title: Voicecall
summary: '`openclaw voicecall` için CLI referansı (voice-call Plugin komut yüzeyi)'
title: Sesli arama
x-i18n:
generated_at: "2026-04-25T13:44:41Z"
model: gpt-5.4
generated_at: "2026-05-01T09:00:10Z"
model: gpt-5.5
provider: openai
source_hash: 7c8b83ef75f792920024a67b0dee1b07aff9f55486de1149266c6d94854ca0fe
source_hash: c040cf4cd984ad6d6dd302923494a7c8ee131390b803fe20a9894b077f08d5bb
source_path: cli/voicecall.md
workflow: 15
workflow: 16
---
# `openclaw voicecall`
`voicecall`, Plugin tarafından sağlanan bir komuttur. Yalnızca voice-call Plugin'i yüklü ve etkinse görünür.
Birincil belge:
Gateway çalışırken, operasyonel komutlar (`call`, `start`,
`continue`, `speak`, `dtmf`, `end` ve `status`) o Gateway'in
voice-call runtime'ına gönderilir. Ulaşılabilir bir Gateway yoksa, bağımsız bir
CLI runtime'ına geri dönerler.
- Voice-call Plugin'i: [Voice Call](/tr/plugins/voice-call)
Birincil doküman:
- Voice-call Plugin'i: [Sesli Arama](/tr/plugins/voice-call)
## Yaygın komutlar
```bash
openclaw voicecall setup
openclaw voicecall smoke
openclaw voicecall status --json
openclaw voicecall status --call-id <id>
openclaw voicecall call --to "+15555550123" --message "Hello" --mode notify
openclaw voicecall continue --call-id <id> --message "Any questions?"
@ -33,22 +39,26 @@ openclaw voicecall dtmf --call-id <id> --digits "ww123456#"
openclaw voicecall end --call-id <id>
```
`setup`, varsayılan olarak insan tarafından okunabilir hazır olma kontrollerini yazdırır. Betikler için `--json` kullanın:
`setup`, varsayılan olarak insanlar tarafından okunabilir hazırlık denetimlerini yazdırır. Script'ler için `--json` kullanın:
```bash
openclaw voicecall setup --json
```
Harici sağlayıcılar (`twilio`, `telnyx`, `plivo`) için kurulum, `publicUrl`, bir tünel veya Tailscale exposure üzerinden herkese açık bir Webhook URL'si çözümlemelidir. Döngüsel geri adres/özel sunum geri dönüşü reddedilir çünkü taşıyıcılar buna erişemez.
`status`, varsayılan olarak etkin aramaları JSON olarak yazdırır. Tek bir aramayı incelemek için `--call-id <id>` iletin.
`smoke`, aynı hazır olma kontrollerini çalıştırır. Hem `--to` hem de `--yes` mevcut olmadıkça gerçek bir telefon araması yapmaz:
Harici sağlayıcılar (`twilio`, `telnyx`, `plivo`) için setup, `publicUrl`, bir tünel veya Tailscale açıklığı üzerinden herkese açık bir
Webhook URL'si çözümlemelidir. Operatörler buna erişemeyeceği için loopback/özel
serve geri dönüşü reddedilir.
`smoke` aynı hazırlık denetimlerini çalıştırır. Hem `--to` hem de `--yes` mevcut değilse gerçek bir telefon araması yapmaz:
```bash
openclaw voicecall smoke --to "+15555550123" # deneme çalıştırması
openclaw voicecall smoke --to "+15555550123" --yes # canlı bildirim araması
openclaw voicecall smoke --to "+15555550123" # dry run
openclaw voicecall smoke --to "+15555550123" --yes # live notify call
```
## Webhook'ları dışa açma (Tailscale)
## Webhook'ları ığa çıkarma (Tailscale)
```bash
openclaw voicecall expose --mode serve
@ -56,9 +66,9 @@ openclaw voicecall expose --mode funnel
openclaw voicecall expose --mode off
```
Güvenlik notu: Webhook uç noktasını yalnızca güvendiğiniz ağlara açın. Mümkün olduğunda Funnel yerine Tailscale Serve tercih edin.
Güvenlik notu: Webhook uç noktasını yalnızca güvendiğiniz ağlara açığa çıkarın. Mümkün olduğunda Funnel yerine Tailscale Serve kullanmayı tercih edin.
## İlgili
- [CLI başvurusu](/tr/cli)
- [Voice call Plugin'i](/tr/plugins/voice-call)
- [CLI referansı](/tr/cli)
- [Sesli arama Plugin'i](/tr/plugins/voice-call)

View File

@ -1,29 +1,34 @@
---
read_when:
- OpenClaw'un doğal takip sorularını hatırlamasını istiyorsunuz
- Çıkarımsal yoklamaların hatırlatıcılardan nasıl farklı olduğunu anlamak istiyorsunuz
- Takip taahhütlerini gözden geçirmek veya kapatmak istiyorsunuz
- OpenClaw'ın doğal takip sorularını hatırlamasını istiyorsunuz
- Çıkarıma dayalı durum yoklamalarının hatırlatıcılardan nasıl farklı olduğunu anlamak istiyorsunuz
- Takip taahhütlerini gözden geçirmek veya reddetmek istiyorsunuz
sidebarTitle: Commitments
summary: Kesin hatırlatıcı olmayan durum yoklamaları için çıkarımlanan takip belleği
summary: Kesin hatırlatma olmayan durum yoklamaları için çıkarımsal takip belleği
title: Çıkarılan taahhütler
x-i18n:
generated_at: "2026-04-30T09:15:39Z"
generated_at: "2026-05-01T09:00:17Z"
model: gpt-5.5
provider: openai
source_hash: 3f51af0ac2c9841258fbeeb8f2f98dba6f438b8e0c9433f601a0504d6ef27111
source_hash: 78841d87fe749aa5b04a967218396df1c1a7884c5767b09215c96aee34fa2014
source_path: concepts/commitments.md
workflow: 16
---
Taahhütler kısa ömürlü takip bellekleridir. Etkinleştirildiğinde, OpenClaw bir konuşmanın gelecekte kontrol etme fırsatı oluşturduğunu fark edebilir ve bunu daha sonra tekrar gündeme getirmeyi hatırlayabilir.
Taahhütler kısa ömürlü takip bellekleridir. Etkinleştirildiğinde OpenClaw,
bir konuşmanın gelecekte bir kontrol fırsatı oluşturduğunu fark edip bunu
daha sonra yeniden gündeme getirmeyi hatırlayabilir.
Örnekler:
- Yarın bir mülakattan söz edersiniz. OpenClaw sonrasında sizi yoklayabilir.
- Yarın bir görüşmeden bahsedersiniz. OpenClaw sonrasında kontrol edebilir.
- Bitkin olduğunuzu söylersiniz. OpenClaw daha sonra uyuyup uyumadığınızı sorabilir.
- Ajan, bir şey değiştikten sonra takip edeceğini söyler. OpenClaw bu açık döngüyü takip edebilir.
- Ajan, bir şey değiştikten sonra takip edeceğini söyler. OpenClaw bu açık
döngüyü takip edebilir.
Taahhütler `MEMORY.md` gibi kalıcı gerçekler değildir ve tam hatırlatıcılar da değildir. Bellek ile otomasyon arasında yer alırlar: OpenClaw konuşmaya bağlı bir yükümlülüğü hatırlar, sonra zamanı geldiğinde Heartbeat bunu teslim eder.
Taahhütler, `MEMORY.md` gibi kalıcı gerçekler değildir ve kesin hatırlatıcılar
da değildir. Bellek ile otomasyon arasında dururlar: OpenClaw konuşmaya bağlı
bir yükümlülüğü hatırlar, ardından zamanı geldiğinde Heartbeat bunu iletir.
## Taahhütleri etkinleştirme
@ -45,30 +50,44 @@ Eşdeğer `openclaw.json`:
}
```
`commitments.maxPerDay`, kayan bir gün içinde ajan oturumu başına kaç çıkarımsal takibin teslim edilebileceğini sınırlar. Varsayılan değer `3` şeklindedir.
`commitments.maxPerDay`, kayan bir gün içinde ajan oturumu başına kaç çıkarımsal
takibin iletilebileceğini sınırlar. Varsayılan değer `3`'tür.
## Nasıl çalışır
Bir ajan yanıtından sonra OpenClaw, ayrı bir bağlamda gizli bir arka plan çıkarım geçişi çalıştırabilir. Bu geçiş yalnızca çıkarımsal takip taahhütlerini arar. Görünür konuşmaya yazmaz ve ana ajandan çıkarım hakkında akıl yürütmesini istemez.
Bir ajan yanıtından sonra OpenClaw, ayrı bir bağlamda gizli bir arka plan çıkarma
geçişi çalıştırabilir. Bu geçiş yalnızca çıkarımsal takip taahhütlerini arar.
Görünür konuşmaya yazmaz ve ana ajandan çıkarma hakkında akıl yürütmesini istemez.
Yüksek güvenilirlikli bir aday bulduğunda OpenClaw şunlarla birlikte bir taahhüt depolar:
Yüksek güvenilirlikte bir aday bulduğunda OpenClaw şu bilgilerle bir taahhüt saklar:
- ajan kimliği
- oturum anahtarı
- özgün kanal ve teslimat hedefi
- vade aralığı
- kısa önerilen kontrol mesajı
- Heartbeatin bunu gönderip göndermemeye karar vermesi için yeterli kaynak bağlamı
- özgün kanal ve teslim hedefi
- vade penceresi
- kısa bir önerilen kontrol
- Heartbeat'in gönderip göndermemeye karar vermesi için yönerge olmayan meta veriler
Teslimat Heartbeat üzerinden gerçekleşir. Bir taahhüdün zamanı geldiğinde Heartbeat, taahhüdü aynı ajan ve kanal kapsamı için Heartbeat turuna ekler. Model doğal bir kontrol mesajı gönderebilir veya bunu kapatmak için `HEARTBEAT_OK` yanıtını verebilir.
Teslimat Heartbeat aracılığıyla gerçekleşir. Bir taahhüdün zamanı geldiğinde,
Heartbeat taahhüdü aynı ajan ve kanal kapsamı için Heartbeat turuna ekler.
Model doğal bir kontrol mesajı gönderebilir veya bunu kapatmak için `HEARTBEAT_OK`
yanıtını verebilir. Heartbeat `target: "none"` ile yapılandırılmışsa, zamanı
gelen taahhütler dahili kalır ve harici kontrol mesajları göndermez. Taahhüt
teslimi istemleri özgün konuşma metnini yeniden oynatmaz ve zamanı gelen taahhüt
Heartbeat turları OpenClaw araçları olmadan çalışır.
OpenClaw, çıkarımsal bir taahhüdü yazdıktan hemen sonra asla teslim etmez. Vade zamanı, taahhüt oluşturulduktan sonra en az bir Heartbeat aralığına sıkıştırılır; böylece takip, çıkarıldığı anda aynı şekilde geri yankılanamaz.
OpenClaw, çıkarımsal bir taahhüdü yazdıktan hemen sonra asla iletmez. Vade
zamanı, taahhüt oluşturulduktan sonra en az bir Heartbeat aralığı sonrasına
sabitlenir; böylece takip, çıkarıldığı aynı anda geri yankılanamaz.
## Kapsam
Taahhütler, oluşturuldukları tam ajan ve kanal bağlamına kapsamlanır. Discordda bir ajanla konuşurken çıkarılan bir takip, başka bir ajan, başka bir kanal veya ilgisiz bir oturum tarafından teslim edilmez.
Taahhütler, oluşturuldukları tam ajan ve kanal bağlamıyla sınırlıdır. Discord'da
bir ajanla konuşurken çıkarılan bir takip, başka bir ajan, başka bir kanal veya
ilgisiz bir oturum tarafından iletilmez.
Bu kapsam özelliğin bir parçasıdır. Doğal yoklamalar, küresel bir hatırlatıcı sistemi gibi değil, aynı konuşmanın devamı gibi hissettirmelidir.
Bu kapsam özelliğin bir parçasıdır. Doğal kontroller, küresel bir hatırlatma
sistemi gibi değil, aynı konuşmanın devamı gibi hissettirmelidir.
## Taahhütler ve hatırlatıcılar
@ -76,16 +95,18 @@ Bu kapsam özelliğin bir parçasıdır. Doğal yoklamalar, küresel bir hatırl
| ----------------------------------------------- | ---------------------------------------- |
| "Bana saat 15.00'te hatırlat" | [Zamanlanmış görevler](/tr/automation/cron-jobs) |
| "20 dakika içinde bana ping at" | [Zamanlanmış görevler](/tr/automation/cron-jobs) |
| "Bu raporu her hafta içi çalıştır" | [Zamanlanmış görevler](/tr/automation/cron-jobs) |
| "Yarın bir mülakatım var" | Taahhütler |
| "Bu raporu her iş günü çalıştır" | [Zamanlanmış görevler](/tr/automation/cron-jobs) |
| "Yarın bir görüşmem var" | Taahhütler |
| "Bütün gece ayaktaydım" | Taahhütler |
| "Bu açık konuya yanıt vermezsem takip et" | Taahhütler |
| "Bu açık başlığı yanıtlamazsam takip et" | Taahhütler |
Kesin kullanıcı istekleri zaten zamanlayıcı yoluna aittir. Taahhütler yalnızca çıkarımsal takipler içindir: kullanıcının hatırlatıcı istemediği, ancak konuşmanın açıkça yararlı bir gelecekte kontrol etme noktası oluşturduğu anlar.
Kesin kullanıcı istekleri zaten zamanlayıcı yoluna aittir. Taahhütler yalnızca
çıkarımsal takipler içindir: kullanıcının bir hatırlatıcı istemediği, ancak
konuşmanın açıkça yararlı bir gelecek kontrolü oluşturduğu anlar.
## Taahhütleri yönetme
Depolanan taahhütleri incelemek ve temizlemek için CLI kullanın:
Saklanan taahhütleri incelemek ve temizlemek için CLI'ı kullanın:
```bash
openclaw commitments
@ -99,9 +120,13 @@ Komut başvurusu için [`openclaw commitments`](/tr/cli/commitments) bölümüne
## Gizlilik ve maliyet
Taahhüt çıkarımı bir LLM geçişi kullanır; bu nedenle etkinleştirmek, uygun turlardan sonra arka plan model kullanımı ekler. Geçiş, kullanıcının görebildiği konuşmadan gizlidir, ancak bir takibin var olup olmadığına karar vermek için gereken son alışverişi okuyabilir.
Taahhüt çıkarma bir LLM geçişi kullanır; bu nedenle bunu etkinleştirmek, uygun
turlardan sonra arka plan model kullanımı ekler. Geçiş, kullanıcıya görünen
konuşmadan gizlidir, ancak bir takibin var olup olmadığını belirlemek için
gereken son alışverişi okuyabilir.
Depolanan taahhütler yerel OpenClaw durumudur. Bunlar uzun vadeli bellek değil, operasyonel bellektir. Özelliği şu komutla devre dışı bırakın:
Saklanan taahhütler yerel OpenClaw durumudur. Bunlar işletimsel bellektir,
uzun süreli bellek değildir. Özelliği şu komutla devre dışı bırakın:
```bash
openclaw config set commitments.enabled false
@ -112,14 +137,17 @@ openclaw config set commitments.enabled false
Beklenen takipler görünmüyorsa:
- `commitments.enabled` değerinin `true` olduğunu doğrulayın.
- Bekleyen, kapatılmış, ertelenmiş veya süresi dolmuş kayıtlar için `openclaw commitments --all` komutunu kontrol edin.
- Ajan için Heartbeatin çalıştığından emin olun.
- Söz konusu ajan oturumu için `commitments.maxPerDay` değerine zaten ulaşılıp ulaşılmadığını kontrol edin.
- Kesin hatırlatıcıların taahhüt çıkarımı tarafından atlandığını ve bunun yerine [zamanlanmış görevler](/tr/automation/cron-jobs) altında görünmesi gerektiğini unutmayın.
- Bekleyen, kapatılmış, ertelenmiş veya süresi dolmuş kayıtlar için
`openclaw commitments --all` komutunu kontrol edin.
- Heartbeat'in ajan için çalıştığından emin olun.
- `commitments.maxPerDay` sınırına o ajan oturumu için zaten ulaşılıp
ulaşılmadığını kontrol edin.
- Kesin hatırlatıcıların taahhüt çıkarma tarafından atlandığını ve bunun yerine
[zamanlanmış görevler](/tr/automation/cron-jobs) altında görünmesi gerektiğini unutmayın.
## İlgili
- [Belleğe genel bakış](/tr/concepts/memory)
- [Bellek genel bakışı](/tr/concepts/memory)
- [Active Memory](/tr/concepts/active-memory)
- [Heartbeat](/tr/gateway/heartbeat)
- [Zamanlanmış görevler](/tr/automation/cron-jobs)

View File

@ -1,62 +1,65 @@
---
read_when:
- OpenClaw ile iletişim kuran harici bir uygulama, betik, pano, CI işi veya IDE uzantısı oluşturuyorsunuz.
- OpenClaw ile iletişim kuran harici bir uygulama, betik, pano, CI işi veya IDE uzantısı geliştiriyorsunuz
- App SDK ile Plugin SDK arasında seçim yapıyorsunuz
- Gateway ajan çalıştırmaları, oturumları, olayları, onayları, modelleri veya araçlarıyla entegrasyon yapıyorsunuz
sidebarTitle: App SDK
summary: Harici uygulamalar, betikler, panolar, CI işleri ve IDE uzantıları için herkese açık OpenClaw Uygulama SDK'sı
title: OpenClaw Uygulama SDK'si
summary: Harici uygulamalar, betikler, panolar, CI işleri ve IDE uzantıları için herkese açık OpenClaw App SDK
title: OpenClaw Uygulama SDK'sı
x-i18n:
generated_at: "2026-04-30T09:17:37Z"
generated_at: "2026-05-01T09:00:20Z"
model: gpt-5.5
provider: openai
source_hash: 9c46454d172a25d329a796461982dc4307d3720a28df777eda8605996505e38c
source_hash: a6b22e9f4f809a572cfd19fd22f633a706dd23b8bee2f3c244003a0861a41073
source_path: concepts/openclaw-sdk.md
workflow: 16
---
**OpenClaw App SDK**, OpenClaw süreci dışındaki uygulamalar için genel istemci API'sidir. Bir betik, pano, CI işi, IDE eklentisi veya başka bir harici uygulama Gateway'e bağlanmak, agent çalıştırmaları başlatmak, olayları stream etmek, sonuçları beklemek, işi iptal etmek ya da Gateway kaynaklarını incelemek istediğinde `@openclaw/sdk` kullanın.
**OpenClaw App SDK**, OpenClaw sürecinin dışındaki uygulamalar için genel istemci API'sidir. Bir betik, pano, CI işi, IDE eklentisi veya başka bir harici uygulama Gateway'e bağlanmak, agent çalıştırmaları başlatmak, olayları akıtmak, sonuçları beklemek, işi iptal etmek ya da Gateway kaynaklarını incelemek istediğinde `@openclaw/sdk` kullanın.
<Note>
App SDK, [Plugin SDK](/tr/plugins/sdk-overview) ile aynı değildir.
`@openclaw/sdk`, OpenClaw dışından Gateway ile konuşur.
`openclaw/plugin-sdk/*` yalnızca OpenClaw içinde çalışan ve sağlayıcılar,
kanallar, araçlar, hook'lar veya güvenilir runtime'lar kaydeden plugin'ler içindir.
App SDK, [Plugin SDK](/tr/plugins/sdk-overview)'den farklıdır.
`@openclaw/sdk`, Gateway ile OpenClaw dışından konuşur.
`openclaw/plugin-sdk/*` yalnızca OpenClaw içinde çalışan ve sağlayıcıları,
kanalları, araçları, hook'ları veya güvenilir çalışma zamanlarını kaydeden plugin'ler içindir.
</Note>
## Bugün Neler Sunuluyor
`@openclaw/sdk` şunlarla birlikte gelir:
| Yüzey | Durum | Ne yapar |
| ------------------------- | ------- | ---------------------------------------------------------------------------- |
| `OpenClaw` | Hazır | Ana istemci giriş noktası. Taşıma, bağlantı, istekler ve olayları yönetir. |
| `GatewayClientTransport` | Hazır | Gateway istemcisi tarafından desteklenen WebSocket taşıması. |
| `oc.agents` | Hazır | Agent handle'larını listeler, oluşturur, günceller, siler ve getirir. |
| `Agent.run()` | Hazır | Bir Gateway `agent` çalıştırması başlatır ve bir `Run` döndürür. |
| `oc.runs` | Hazır | Çalıştırmaları oluşturur, getirir, bekler, iptal eder ve stream eder. |
| `Run.events()` | Hazır | Hızlı çalıştırmalar için yeniden oynatmayla, normalize edilmiş çalıştırma bazlı olayları stream eder. |
| `Run.wait()` | Hazır | `agent.wait` çağırır ve kararlı bir `RunResult` döndürür. |
| `Run.cancel()` | Hazır | Uygun olduğunda session anahtarıyla, çalıştırma kimliğine göre `sessions.abort` çağırır. |
| `oc.sessions` | Hazır | Session handle'larını oluşturur, çözümler, gönderir, yamalar, compact eder ve getirir. |
| `Session.send()` | Hazır | `sessions.send` çağırır ve bir `Run` döndürür. |
| `oc.models` | Hazır | `models.list` ve geçerli `models.authStatus` durum RPC'sini çağırır. |
| `oc.tools` | Kısmi | Araç kataloğunu ve etkin araçları listeler; doğrudan araç çağırma bağlanmamıştır. |
| `oc.approvals` | Hazır | Gateway onay RPC'leri üzerinden exec onaylarını listeler ve çözümler. |
| `oc.rawEvents()` | Hazır | Gelişmiş tüketiciler için ham Gateway olaylarınıığa çıkarır. |
| `normalizeGatewayEvent()` | Hazır | Ham Gateway olaylarını kararlı SDK olay şekline dönüştürür. |
| Yüzey | Durum | Ne yapar |
| ------------------------- | ------ | -------------------------------------------------------------------------- |
| `OpenClaw` | Hazır | Ana istemci giriş noktası. Taşıma, bağlantı, istekler ve olayları yönetir. |
| `GatewayClientTransport` | Hazır | Gateway istemcisi tarafından desteklenen WebSocket taşıması. |
| `oc.agents` | Hazır | Agent handle'larını listeler, oluşturur, günceller, siler ve getirir. |
| `Agent.run()` | Hazır | Bir Gateway `agent` çalıştırması başlatır ve bir `Run` döndürür. |
| `oc.runs` | Hazır | Çalıştırmaları oluşturur, getirir, bekler, iptal eder ve akıtır. |
| `Run.events()` | Hazır | Hızlı çalıştırmalar için yeniden oynatmayla normalleştirilmiş çalıştırma başına olayları akıtır. |
| `Run.wait()` | Hazır | `agent.wait` çağırır ve kararlı bir `RunResult` döndürür. |
| `Run.cancel()` | Hazır | Kullanılabilir olduğunda oturum anahtarıyla, çalıştırma kimliğine göre `sessions.abort` çağırır. |
| `oc.sessions` | Hazır | Oturum handle'larını oluşturur, çözer, gönderir, yamalar, sıkıştırır ve getirir. |
| `Session.send()` | Hazır | `sessions.send` çağırır ve bir `Run` döndürür. |
| `oc.models` | Hazır | `models.list` ve geçerli `models.authStatus` durum RPC'sini çağırır. |
| `oc.tools` | Hazır | Gateway araçlarını ilke hattı üzerinden listeler, kapsamlandırır ve çağırır. |
| `oc.artifacts` | Hazır | Gateway transkript artifact'lerini listeler, getirir ve indirir. |
| `oc.approvals` | Hazır | Gateway onay RPC'leri üzerinden exec onaylarını listeler ve çözer. |
| `oc.rawEvents()` | Hazır | Gelişmiş tüketiciler için ham Gateway olaylarını sunar. |
| `normalizeGatewayEvent()` | Hazır | Ham Gateway olaylarını kararlı SDK olay biçimine dönüştürür. |
SDK ayrıca bu yüzeylerin kullandığı temel türleri dışa aktarır:
SDK ayrıca bu yüzeylerin kullandığı temel türleri de dışa aktarır:
`AgentRunParams`, `RunResult`, `RunStatus`, `OpenClawEvent`,
`OpenClawEventType`, `GatewayEvent`, `OpenClawTransport`,
`GatewayRequestOptions`, `SessionCreateParams`, `SessionSendParams`,
`RuntimeSelection`, `EnvironmentSelection`, `WorkspaceSelection`,
`ApprovalMode` ve ilişkili sonuç türleri.
`ArtifactSummary`, `ArtifactQuery`, `ArtifactsListResult`,
`ArtifactsGetResult`, `ArtifactsDownloadResult`, `RuntimeSelection`,
`EnvironmentSelection`, `WorkspaceSelection`, `ApprovalMode` ve ilişkili
sonuç türleri.
## Bir Gateway'e Bağlanın
## Bir Gateway'e Bağlanma
ık bir Gateway URL'siyle istemci oluşturun veya testler ve gömülü uygulama
runtime'ları için özel bir taşıma enjekte edin.
ık bir Gateway URL'siyle bir istemci oluşturun ya da testler ve gömülü uygulama
çalışma zamanları için özel bir taşıma enjekte edin.
```typescript
import { OpenClaw } from "@openclaw/sdk";
@ -70,7 +73,10 @@ const oc = new OpenClaw({
await oc.connect();
```
`new OpenClaw({ gateway: "ws://..." })`, `url` ile eşdeğerdir. `gateway: "auto"` seçeneği constructor tarafından kabul edilir, ancak otomatik Gateway keşfi henüz ayrı bir SDK özelliği değildir; uygulama Gateway'i nasıl keşfedeceğini zaten bilmiyorsa `url` iletin.
`new OpenClaw({ gateway: "ws://..." })`, `url` ile eşdeğerdir. `gateway: "auto"`
seçeneği constructor tarafından kabul edilir, ancak otomatik Gateway keşfi henüz
ayrı bir SDK özelliği değildir; uygulama Gateway'i nasıl keşfedeceğini zaten
bilmiyorsa `url` iletin.
Testler için `OpenClawTransport` uygulayan bir nesne iletin:
@ -85,7 +91,7 @@ const oc = new OpenClaw({
});
```
## Bir Agent Çalıştırın
## Bir Agent Çalıştırma
Uygulama bir agent handle'ı istediğinde `oc.agents.get(id)` kullanın, ardından
`agent.run()` çağırın.
@ -111,13 +117,19 @@ const result = await run.wait({ timeoutMs: 120_000 });
console.log(result.status);
```
`openai/gpt-5.5` gibi sağlayıcı nitelemeli model başvuruları Gateway `provider` ve `model` geçersiz kılmalarına ayrılır. `timeoutMs` SDK içinde milisaniye olarak kalır ve `agent` RPC'si için Gateway zaman aşımı saniyelerine dönüştürülür.
`openai/gpt-5.5` gibi sağlayıcı nitelemeli model referansları Gateway `provider`
ve `model` geçersiz kılmalarına ayrılır. `timeoutMs`, SDK içinde milisaniye olarak
kalır ve `agent` RPC'si için Gateway zaman aşımı saniyelerine dönüştürülür.
`run.wait()`, Gateway `agent.wait` RPC'sini kullanır. Çalıştırma hâlâ aktifken süresi dolan bir bekleme son tarihi, çalıştırmanın kendisi zaman aşımına uğramış gibi davranmak yerine `status: "accepted"` döndürür. Runtime zaman aşımları, durdurulan çalıştırmalar ve iptal edilen çalıştırmalar `timed_out` veya `cancelled` olarak normalize edilir.
`run.wait()`, Gateway `agent.wait` RPC'sini kullanır. Çalıştırma hâlâ etkinken
süresi dolan bir bekleme son tarihi, çalıştırmanın kendisinin zaman aşımına
uğradığını varsaymak yerine `status: "accepted"` döndürür. Çalışma zamanı zaman
ımları, durdurulan çalıştırmalar ve iptal edilen çalıştırmalar `timed_out` veya
`cancelled` olarak normalleştirilir.
## Session'lar Oluşturun ve Yeniden Kullanın
## Oturum Oluşturma ve Yeniden Kullanma
Uygulama kalıcı transcript durumu istediğinde session'ları kullanın.
Uygulama kalıcı transkript durumu istediğinde oturumları kullanın.
```typescript
const session = await oc.sessions.create({
@ -129,7 +141,8 @@ const run = await session.send("Prepare release notes from the current diff.");
await run.wait();
```
`Session.send()`, `sessions.send` çağırır ve bir `Run` döndürür. Session handle'ları ayrıca şunları destekler:
`Session.send()`, `sessions.send` çağırır ve bir `Run` döndürür. Oturum handle'ları
şunları da destekler:
```typescript
await session.abort(run.id);
@ -137,9 +150,9 @@ await session.patch({ label: "renamed-session" });
await session.compact({ maxLines: 200 });
```
## Olayları Stream Edin
## Olayları Akıtma
SDK, ham Gateway olaylarını kararlı bir `OpenClawEvent` zarfına normalize eder:
SDK, ham Gateway olaylarını kararlı bir `OpenClawEvent` zarfına normalleştirir:
```typescript
type OpenClawEvent = {
@ -157,32 +170,34 @@ type OpenClawEvent = {
};
```
Yaygın olay türleri şunları içerir:
Yaygın olay türleri şunlardır:
| Olay türü | Kaynak Gateway olayı |
| --------------------- | -------------------------------------------- |
| `run.started` | `agent` yaşam döngüsü başlangıcı |
| `run.completed` | `agent` yaşam döngüsü sonu |
| `run.failed` | `agent` yaşam döngüsü hatası |
| `run.cancelled` | Durdurulmuş/iptal edilmiş yaşam döngüsü sonu |
| `run.timed_out` | Zaman aşımı yaşam döngüsü sonu |
| `assistant.delta` | Assistant streaming delta |
| `assistant.message` | Assistant mesajı |
| `thinking.delta` | Düşünme veya plan stream'i |
| `tool.call.started` | Araç/öğe/komut başlangıcı |
| `tool.call.delta` | Araç/öğe/komut güncellemesi |
| `tool.call.completed` | Araç/öğe/komut tamamlanması |
| Olay türü | Kaynak Gateway olayı |
| --------------------- | ------------------------------------------ |
| `run.started` | `agent` yaşam döngüsü başlangıcı |
| `run.completed` | `agent` yaşam döngüsü sonu |
| `run.failed` | `agent` yaşam döngüsü hatası |
| `run.cancelled` | Durdurulan/iptal edilen yaşam döngüsü sonu |
| `run.timed_out` | Zaman aşımı yaşam döngüsü sonu |
| `assistant.delta` | Assistant akış deltası |
| `assistant.message` | Assistant mesajı |
| `thinking.delta` | Düşünme veya plan akışı |
| `tool.call.started` | Araç/öğe/komut başlangıcı |
| `tool.call.delta` | Araç/öğe/komut güncellemesi |
| `tool.call.completed` | Araç/öğe/komut tamamlanması |
| `tool.call.failed` | Araç/öğe/komut hatası veya engellenmiş durum |
| `approval.requested` | Exec veya plugin onay isteği |
| `approval.resolved` | Exec veya plugin onay çözümü |
| `session.created` | `sessions.changed` oluşturma |
| `session.updated` | `sessions.changed` güncelleme |
| `session.compacted` | `sessions.changed` compaction |
| `task.updated` | Görev güncelleme olayları |
| `artifact.updated` | Yama stream olayları |
| `approval.requested` | Exec veya plugin onay isteği |
| `approval.resolved` | Exec veya plugin onay çözümü |
| `session.created` | `sessions.changed` oluşturma |
| `session.updated` | `sessions.changed` güncelleme |
| `session.compacted` | `sessions.changed` sıkıştırma |
| `task.updated` | Görev güncelleme olayları |
| `artifact.updated` | Yama akışı olayları |
| `raw` | Henüz kararlı SDK eşlemesi olmayan herhangi bir olay |
`Run.events()`, olayları tek bir çalıştırma kimliğine filtreler ve hızlı çalıştırmalar için önceden görülmüş olayları yeniden oynatır. Bu, belgelenen akışın güvenli olduğu anlamına gelir:
`Run.events()`, olayları tek bir çalıştırma kimliğine göre filtreler ve hızlı
çalıştırmalar için önceden görülmüş olayları yeniden oynatır. Bu, belgelenen
akışın güvenli olduğu anlamına gelir:
```typescript
const run = await agent.run("Summarize the latest session.");
@ -194,22 +209,46 @@ for await (const event of run.events()) {
}
```
Uygulama genelindeki stream'ler için `oc.events()` kullanın. Ham Gateway frame'leri için `oc.rawEvents()` kullanın.
Uygulama genelindeki akışlar için `oc.events()` kullanın. Ham Gateway frame'leri
için `oc.rawEvents()` kullanın.
## Modeller, Araçlar ve Onaylar
## Modeller, Araçlar, Artifact'ler ve Onaylar
Model yardımcıları geçerli Gateway yöntemleriyle eşleşir:
Model yardımcıları geçerli Gateway yöntemlerine eşlenir:
```typescript
await oc.models.list();
await oc.models.status({ probe: false }); // calls models.authStatus
```
Araç yardımcıları Gateway kataloğunu ve etkin araç görünümünü açığa çıkarır:
Araç yardımcıları Gateway kataloğunu, etkili araç görünümünü ve doğrudan Gateway
araç çağrısını sunar. `oc.tools.invoke()`, ilke veya onay retlerinde hata fırlatmak
yerine türlendirilmiş bir zarf döndürür.
```typescript
await oc.tools.list();
await oc.tools.effective({ sessionKey: "main" });
await oc.tools.invoke("tool-name", {
args: { input: "value" },
sessionKey: "main",
confirm: false,
idempotencyKey: "tool-call-1",
});
```
Artifact yardımcıları, oturum, çalıştırma veya görev bağlamı için Gateway artifact
projeksiyonunu sunar. Her çağrıık bir `sessionKey`, `runId` veya `taskId`
kapsamı gerektirir:
```typescript
const { artifacts } = await oc.artifacts.list({ sessionKey: "main" });
const first = artifacts[0];
if (first) {
const { artifact } = await oc.artifacts.get(first.id, { sessionKey: "main" });
const download = await oc.artifacts.download(artifact.id, { sessionKey: "main" });
console.log(download.encoding, download.url);
}
```
Onay yardımcıları exec onay RPC'lerini kullanır:
@ -221,36 +260,35 @@ await oc.approvals.respond("approval-id", { decision: "approve" });
## Bugün Açıkça Desteklenmeyenler
SDK, istediğimiz ürün modeli için adlar içerir, ancak Gateway RPC'leri varmış gibi sessizce davranmaz. Bu çağrılar şu anda açık desteklenmiyor hataları fırlatır:
SDK, hedeflediğimiz ürün modeli için adlar içerir, ancak Gateway RPC'leri varmış
gibi sessizce davranmaz. Bu çağrılar şu anda açık desteklenmiyor hataları fırlatır:
```typescript
await oc.tasks.list();
await oc.tasks.get("task-id");
await oc.tasks.cancel("task-id");
await oc.tools.invoke("tool-name", {});
await oc.artifacts.list();
await oc.artifacts.get("artifact-id");
await oc.artifacts.download("artifact-id");
await oc.environments.list();
await oc.environments.create({});
await oc.environments.status("environment-id");
await oc.environments.delete("environment-id");
```
Çalıştırma bazlı `workspace`, `runtime`, `environment` ve `approvals` alanları gelecek şekil olarak tiplendirilmiştir, ancak mevcut Gateway bu geçersiz kılmaları `agent` RPC'sinde desteklemez. Çağıranlar bunları iletirse SDK, işin yanlışlıkla varsayılan workspace, runtime, environment veya onay davranışıyla yürütülmemesi için çalıştırmayı göndermeden önce hata fırlatır.
Çalıştırma başına `workspace`, `runtime`, `environment` ve `approvals` alanları
gelecekteki biçim olarak türlendirilmiştir, ancak geçerli Gateway bu geçersiz
kılmaları `agent` RPC'sinde desteklemez. Çağıranlar bunları iletirse SDK,
çalıştırmayı göndermeden önce hata fırlatır; böylece işler yanlışlıkla varsayılan
workspace, runtime, environment veya approval davranışıyla yürütülmez.
## App SDK ve Plugin SDK Karşılaştırması
Kod OpenClaw dışında bulunduğunda App SDK kullanın:
Kod OpenClaw dışında yaşadığında App SDK kullanın:
- Agent çalıştırmaları başlatan veya gözlemleyen Node betikleri
- Bir Gateway'i çağıran CI işleri
- panolar ve yönetici panelleri
- Bir Gateway çağıran CI işleri
- panolar ve yönetim panelleri
- IDE eklentileri
- kanal plugin'lerine dönüşmesi gerekmeyen harici köprüler
- kanal plugin'i olması gerekmeyen harici köprüler
- sahte veya gerçek Gateway taşımalarıyla entegrasyon testleri
Kod OpenClaw içinde çalıştığında Plugin SDK kullanın:
@ -259,17 +297,19 @@ Kod OpenClaw içinde çalıştığında Plugin SDK kullanın:
- kanal plugin'leri
- araç veya yaşam döngüsü hook'ları
- agent harness plugin'leri
- güvenilir runtime yardımcıları
- güvenilir çalışma zamanı yardımcıları
App SDK kodu `@openclaw/sdk` içinden import etmelidir. Plugin kodu belgelenmiş `openclaw/plugin-sdk/*` alt yollarından import etmelidir. İki sözleşmeyi karıştırmayın.
App SDK kodu `@openclaw/sdk` içinden içe aktarmalıdır. Plugin kodu belgelenmiş
`openclaw/plugin-sdk/*` alt yollarından içe aktarmalıdır. İki sözleşmeyi
karıştırmayın.
## İlgili Belgeler
- [OpenClaw App SDK API tasarımı](/tr/reference/openclaw-sdk-api-design)
- [Gateway RPC referansı](/tr/reference/rpc)
- [Agent loop](/tr/concepts/agent-loop)
- [Agent runtime'ları](/tr/concepts/agent-runtimes)
- [Session'lar](/tr/concepts/session)
- [Agent döngüsü](/tr/concepts/agent-loop)
- [Agent çalışma zamanları](/tr/concepts/agent-runtimes)
- [Oturumlar](/tr/concepts/session)
- [Arka plan görevleri](/tr/automation/tasks)
- [ACP agent'ları](/tr/tools/acp-agents)
- [Plugin SDK genel bakış](/tr/plugins/sdk-overview)
- [Plugin SDK genel bakışı](/tr/plugins/sdk-overview)

View File

@ -1,54 +1,56 @@
---
read_when:
- Bir kanal Plugin'ini yapılandırma (kimlik doğrulama, erişim denetimi, çoklu hesap)
- Kanala özgü yapılandırma anahtarlarında sorun giderme
- DM politikasını, grup politikasını veya bahsetme kısıtlamasını denetleme
- Kanal Plugin'ini yapılandırma (kimlik doğrulama, erişim kontrolü, çoklu hesap)
- Kanal başına yapılandırma anahtarlarında sorun giderme
- Doğrudan mesaj ilkesini, grup ilkesini veya bahsetme kısıtlamasını denetleme
summary: 'Kanal yapılandırması: Slack, Discord, Telegram, WhatsApp, Matrix, iMessage ve daha fazlasında erişim denetimi, eşleştirme ve kanal başına anahtarlar'
title: Yapılandırma — kanallar
x-i18n:
generated_at: "2026-04-30T16:28:58Z"
generated_at: "2026-05-01T09:00:37Z"
model: gpt-5.5
provider: openai
source_hash: aba14cb43e1fe914cc7c03f41bed1b5915cc6b2ad8e0f1d47f58b7e98c1b3915
source_hash: ce1571d51e026182d49b935780a986780a90b05afc0acca027b2541b80a1aac2
source_path: gateway/config-channels.md
workflow: 16
---
`channels.*` altındaki kanal başına yapılandırma anahtarları. DM ve grup erişimini, çok hesaplı kurulumları, bahsetme geçitlemesini ve Slack, Discord, Telegram, WhatsApp, Matrix, iMessage ve diğer birlikte gelen kanal Plugin'leri için kanal başına anahtarları kapsar.
Kanal başına yapılandırma anahtarları `channels.*` altında. DM ve grup erişimini,
çok hesaplı kurulumları, bahsetme kapılamasını ve Slack, Discord,
Telegram, WhatsApp, Matrix, iMessage ve birlikte gelen diğer kanal Plugin'leri için kanal başına anahtarları kapsar.
Ajanlar, araçlar, gateway çalışma zamanı ve diğer üst düzey anahtarlar için bkz.
Aracılar, araçlar, Gateway runtime ve diğer üst düzey anahtarlar için bkz.
[Yapılandırma referansı](/tr/gateway/configuration-reference).
## Kanallar
Her kanal, yapılandırma bölümü mevcut olduğunda otomatik olarak başlar (`enabled: false` değilse).
Her kanal, yapılandırma bölümü mevcut olduğunda otomatik olarak başlar (`enabled: false` olmadığı sürece).
### DM ve grup erişimi
Tüm kanallar DM ilkelerini ve grup ilkelerini destekler:
| DM ilkesi | Davranış |
| -------------------- | --------------------------------------------------------------- |
| `pairing` (varsayılan) | Bilinmeyen gönderenler tek kullanımlık eşleştirme kodu alır; sahibin onaylaması gerekir |
| `allowlist` | Yalnızca `allowFrom` içindeki gönderenler (veya eşleştirilmiş izin deposu) |
| `open` | Tüm gelen DM'lere izin ver (`allowFrom: ["*"]` gerektirir) |
| `disabled` | Tüm gelen DM'leri yok say |
| DM ilkesi | Davranış |
| ------------------- | --------------------------------------------------------------- |
| `pairing` (varsayılan) | Bilinmeyen gönderenler tek kullanımlık bir eşleştirme kodu alır; sahibinin onaylaması gerekir |
| `allowlist` | Yalnızca `allowFrom` içindeki gönderenler (veya eşleştirilmiş izin deposu) |
| `open` | Tüm gelen DM'lere izin ver (`allowFrom: ["*"]` gerektirir) |
| `disabled` | Tüm gelen DM'leri yok say |
| Grup ilkesi | Davranış |
| ---------------------- | ------------------------------------------------------ |
| `allowlist` (varsayılan) | Yalnızca yapılandırılmış izin listesiyle eşleşen gruplar |
| `open` | Grup izin listelerini atla (bahsetme geçitlemesi yine uygulanır) |
| `disabled` | Tüm grup/oda mesajlarını engelle |
| Grup ilkesi | Davranış |
| --------------------- | ------------------------------------------------------ |
| `allowlist` (varsayılan) | Yalnızca yapılandırılmış izin listesiyle eşleşen gruplar |
| `open` | Grup izin listelerini atla (bahsetme kapılaması yine de uygulanır) |
| `disabled` | Tüm grup/oda iletilerini engelle |
<Note>
`channels.defaults.groupPolicy`, bir sağlayıcının `groupPolicy` değeri ayarlanmadığında varsayılanı belirler.
`channels.defaults.groupPolicy`, bir sağlayıcının `groupPolicy` değeri ayarlanmamışsa varsayılanı belirler.
Eşleştirme kodlarının süresi 1 saat sonra dolar. Bekleyen DM eşleştirme istekleri **kanal başına 3** ile sınırlıdır.
Bir sağlayıcı bloğu tamamen eksikse (`channels.<provider>` yoksa), çalışma zamanı grup ilkesi başlangıç uyarısıyla `allowlist` değerine (kapalı başarısızlık) geri döner.
Bir sağlayıcı bloğu tamamen eksikse (`channels.<provider>` yoksa), runtime grup ilkesi başlangıç uyarısıyla birlikte `allowlist` değerine geri döner (fail-closed).
</Note>
### Kanal model geçersiz kılmaları
Belirli kanal ID'lerini bir modele sabitlemek için `channels.modelByChannel` kullanın. Değerler `provider/model` biçimini veya yapılandırılmış model takma adlarını kabul eder. Kanal eşlemesi, bir oturumda zaten bir model geçersiz kılması yoksa uygulanır (örneğin `/model` ile ayarlanmışsa uygulanmaz).
Belirli kanal kimliklerini bir modele sabitlemek için `channels.modelByChannel` kullanın. Değerler `provider/model` veya yapılandırılmış model takma adlarını kabul eder. Kanal eşlemesi, bir oturumda zaten model geçersiz kılması yoksa uygulanır (örneğin `/model` ile ayarlanmışsa uygulanmaz).
```json5
{
@ -89,15 +91,15 @@ Sağlayıcılar arasında paylaşılan grup ilkesi ve Heartbeat davranışı
}
```
- `channels.defaults.groupPolicy`: sağlayıcı düzeyi `groupPolicy` ayarlanmadığında geri dönüş grup ilkesi.
- `channels.defaults.contextVisibility`: tüm kanallar için varsayılan ek bağlam görünürlük modu. Değerler: `all` (varsayılan, tüm alıntılanan/iş parçacığı/geçmiş bağlamını dahil et), `allowlist` (yalnızca izin listesindeki gönderenlerden gelen bağlamı dahil et), `allowlist_quote` (izin listesiyle aynı, ancak açık alıntı/yanıt bağlamını koru). Kanal başına geçersiz kılma: `channels.<channel>.contextVisibility`.
- `channels.defaults.heartbeat.showOk`: Heartbeat çıktısına sağlıklı kanal durumlarını dahil et.
- `channels.defaults.heartbeat.showAlerts`: Heartbeat çıktısına düşürülmüş/hata durumlarını dahil et.
- `channels.defaults.heartbeat.useIndicator`: kompakt gösterge tarzı Heartbeat çıktısı işle.
- `channels.defaults.groupPolicy`: Sağlayıcı düzeyinde `groupPolicy` ayarlanmamışsa geri dönüş grup ilkesi.
- `channels.defaults.contextVisibility`: Tüm kanallar için varsayılan ek bağlam görünürlüğü modu. Değerler: `all` (varsayılan, alıntılanan/konu/geçmiş bağlamının tamamını ekle), `allowlist` (yalnızca izin verilen gönderenlerden gelen bağlamı ekle), `allowlist_quote` (allowlist ile aynı, ancak açık alıntı/yanıt bağlamını koru). Kanal başına geçersiz kılma: `channels.<channel>.contextVisibility`.
- `channels.defaults.heartbeat.showOk`: Sağlıklı kanal durumlarını Heartbeat çıktısına ekle.
- `channels.defaults.heartbeat.showAlerts`: Bozulmuş/hata durumlarını Heartbeat çıktısına ekle.
- `channels.defaults.heartbeat.useIndicator`: Kompakt gösterge tarzı Heartbeat çıktısı oluştur.
### WhatsApp
WhatsApp, gateway'in web kanalı (Baileys Web) üzerinden çalışır. Bağlı bir oturum mevcut olduğunda otomatik olarak başlar.
WhatsApp, Gateway'in web kanalı üzerinden çalışır (Baileys Web). Bağlı bir oturum mevcut olduğunda otomatik olarak başlar.
```json5
{
@ -155,9 +157,9 @@ WhatsApp, gateway'in web kanalı (Baileys Web) üzerinden çalışır. Bağlı b
}
```
- Giden komutlar, mevcutsa varsayılan olarak `default` hesabına gider; aksi takdirde ilk yapılandırılmış hesap id'si (sıralı) kullanılır.
- İsteğe bağlı `channels.whatsapp.defaultAccount`, yapılandırılmış bir hesap id'siyle eşleştiğinde bu geri dönüş varsayılan hesap seçimini geçersiz kılar.
- Eski tek hesaplı Baileys kimlik doğrulama dizini, `openclaw doctor` tarafından `whatsapp/default` içine taşınır.
- Giden komutlar, mevcutsa varsayılan olarak `default` hesabını kullanır; aksi halde ilk yapılandırılmış hesap kimliğini (sıralanmış) kullanır.
- İsteğe bağlı `channels.whatsapp.defaultAccount`, yapılandırılmış bir hesap kimliğiyle eşleştiğinde bu geri dönüş varsayılan hesap seçimini geçersiz kılar.
- Eski tek hesaplı Baileys auth dizini, `openclaw doctor` tarafından `whatsapp/default` içine geçirilir.
- Hesap başına geçersiz kılmalar: `channels.whatsapp.accounts.<id>.sendReadReceipts`, `channels.whatsapp.accounts.<id>.dmPolicy`, `channels.whatsapp.accounts.<id>.allowFrom`.
</Accordion>
@ -217,12 +219,12 @@ WhatsApp, gateway'in web kanalı (Baileys Web) üzerinden çalışır. Bağlı b
}
```
- Bot token'ı: `channels.telegram.botToken` veya `channels.telegram.tokenFile` (yalnızca normal dosya; sembolik bağlantılar reddedilir), varsayılan hesap için geri dönüş olarak `TELEGRAM_BOT_TOKEN`.
- `apiRoot` yalnızca Telegram Bot API köküdür. `https://api.telegram.org/bot<TOKEN>` değil, `https://api.telegram.org` veya kendi barındırdığınız/proxy kökünüzü kullanın; `openclaw doctor --fix` yanlışlıkla eklenmiş sondaki `/bot<TOKEN>` son ekini kaldırır.
- İsteğe bağlı `channels.telegram.defaultAccount`, yapılandırılmış bir hesap id'siyle eşleştiğinde varsayılan hesap seçimini geçersiz kılar.
- Çok hesaplı kurulumlarda (2+ hesap id'si), geri dönüş yönlendirmesinden kaçınmak için açık bir varsayılan (`channels.telegram.defaultAccount` veya `channels.telegram.accounts.default`) ayarlayın; bu eksik veya geçersiz olduğunda `openclaw doctor` uyarır.
- `configWrites: false`, Telegram tarafından başlatılan yapılandırma yazımlarını (süper grup ID taşıma işlemleri, `/config set|unset`) engeller.
- `type: "acp"` içeren üst düzey `bindings[]` girdileri, forum konuları için kalıcı ACP bağlamalarını yapılandırır (`match.peer.id` içinde kurallı `chatId:topic:topicId` kullanın). Alan semantiği [ACP Ajanları](/tr/tools/acp-agents#channel-specific-settings) içinde paylaşılır.
- Bot token: `channels.telegram.botToken` veya `channels.telegram.tokenFile` (yalnızca normal dosya; symlink'ler reddedilir), varsayılan hesap için geri dönüş olarak `TELEGRAM_BOT_TOKEN`.
- `apiRoot` yalnızca Telegram Bot API köküdür. `https://api.telegram.org/bot<TOKEN>` değil, `https://api.telegram.org` veya kendi barındırdığınız/proxy kökünüzü kullanın; `openclaw doctor --fix` yanlışlıkla eklenmiş sondaki `/bot<TOKEN>` sonekini kaldırır.
- İsteğe bağlı `channels.telegram.defaultAccount`, yapılandırılmış bir hesap kimliğiyle eşleştiğinde varsayılan hesap seçimini geçersiz kılar.
- Çok hesaplı kurulumlarda (2+ hesap kimliği), geri dönüş yönlendirmesinden kaçınmak için açık bir varsayılan ayarlayın (`channels.telegram.defaultAccount` veya `channels.telegram.accounts.default`); bu eksik ya da geçersiz olduğunda `openclaw doctor` uyarır.
- `configWrites: false`, Telegram başlatmalı yapılandırma yazmalarını engeller (üst grup kimliği geçişleri, `/config set|unset`).
- `type: "acp"` içeren üst düzey `bindings[]` girdileri, forum konuları için kalıcı ACP bağlamalarını yapılandırır (`match.peer.id` içinde kanonik `chatId:topic:topicId` kullanın). Alan anlamları [ACP Aracıları](/tr/tools/acp-agents#channel-specific-settings) içinde paylaşılır.
- Telegram akış önizlemeleri `sendMessage` + `editMessageText` kullanır (doğrudan ve grup sohbetlerinde çalışır).
- Yeniden deneme ilkesi: bkz. [Yeniden deneme ilkesi](/tr/concepts/retry).
@ -326,37 +328,37 @@ WhatsApp, gateway'in web kanalı (Baileys Web) üzerinden çalışır. Bağlı b
}
```
- Token: Varsayılan hesap için geri dönüş olarak `DISCORD_BOT_TOKEN` ile `channels.discord.token`.
- Açık bir Discord `token` sağlayan doğrudan giden çağrılar, çağrı için bu tokenı kullanır; hesap yeniden deneme/ilke ayarları yine etkin runtime anlık görüntüsündeki seçili hesaptan gelir.
- Token: Varsayılan hesap için yedek olarak `DISCORD_BOT_TOKEN` ile `channels.discord.token`.
- Açık bir Discord `token` sağlayan doğrudan giden çağrılar, çağrı için bu token'ı kullanır; hesap yeniden deneme/ilke ayarları yine etkin çalışma zamanı anlık görüntüsündeki seçili hesaptan gelir.
- İsteğe bağlı `channels.discord.defaultAccount`, yapılandırılmış bir hesap kimliğiyle eşleştiğinde varsayılan hesap seçimini geçersiz kılar.
- Teslim hedefleri için `user:<id>` (DM) veya `channel:<id>` (guild kanalı) kullanın; yalın sayısal kimlikler reddedilir.
- Guild slugları küçük harflidir ve boşluklar `-` ile değiştirilir; kanal anahtarları sluglanmış adı kullanır (`#` olmadan). Guild kimliklerini tercih edin.
- Bot tarafından yazılan mesajlar varsayılan olarak yok sayılır. `allowBots: true` bunları etkinleştirir; yalnızca bottan bahseden bot mesajlarını kabul etmek için `allowBots: "mentions"` kullanın (kendi mesajları yine filtrelenir).
- `channels.discord.guilds.<id>.ignoreOtherMentions` (ve kanal geçersiz kılmaları), bottan bahsetmeyip başka bir kullanıcıdan veya rolden bahseden mesajları düşürür (@everyone/@here hariç).
- `maxLinesPerMessage` (varsayılan 17), 2000 karakterin altında olsa bile uzun mesajları böler.
- `channels.discord.threadBindings`, Discord threade bağlı yönlendirmeyi denetler:
- `enabled`: Threade bağlı oturum özellikleri için Discord geçersiz kılması (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age` ve bağlı teslim/yönlendirme)
- `idleHours`: Saat cinsinden hareketsizlik otomatik odaktan çıkarma için Discord geçersiz kılması (`0` devre dışı bırakır)
- Teslimat hedefleri için `user:<id>` (DM) veya `channel:<id>` (sunucu kanalı) kullanın; yalın sayısal kimlikler reddedilir.
- Sunucu kısaltmaları küçük harflidir ve boşluklar `-` ile değiştirilir; kanal anahtarları kısaltılmış adı kullanır (`#` olmadan). Sunucu kimliklerini tercih edin.
- Bot tarafından yazılan iletiler varsayılan olarak yok sayılır. `allowBots: true` bunları etkinleştirir; yalnızca bottan bahseden bot iletilerini kabul etmek için `allowBots: "mentions"` kullanın (kendi iletileri yine filtrelenir).
- `channels.discord.guilds.<id>.ignoreOtherMentions` (ve kanal geçersiz kılmaları), bottan değil başka bir kullanıcıdan veya rolden bahseden iletileri düşürür (@everyone/@here hariç).
- `maxLinesPerMessage` (varsayılan 17), 2000 karakterin altında olsa bile uzun iletileri böler.
- `channels.discord.threadBindings`, Discord konu başlığına bağlı yönlendirmeyi denetler:
- `enabled`: Konu başlığına bağlı oturum özellikleri için Discord geçersiz kılması (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age` ve bağlı teslimat/yönlendirme)
- `idleHours`: Saat cinsinden hareketsizlikte otomatik odak kaldırma için Discord geçersiz kılması (`0` devre dışı bırakır)
- `maxAgeHours`: Saat cinsinden katı azami yaş için Discord geçersiz kılması (`0` devre dışı bırakır)
- `spawnSubagentSessions`: `sessions_spawn({ thread: true })` otomatik thread oluşturma/bağlama için katılım anahtarı
- `type: "acp"` içeren üst düzey `bindings[]` girdileri, kanallar ve threadler için kalıcı ACP bağlamaları yapılandırır (`match.peer.id` içinde kanal/thread kimliği kullanın). Alan semantiği [ACP Ajanları](/tr/tools/acp-agents#channel-specific-settings) içinde paylaşılır.
- `channels.discord.ui.components.accentColor`, Discord bileşenleri v2 kapsayıcıları için vurgu rengini ayarlar.
- `channels.discord.voice`, Discord ses kanalı konuşmalarını ve isteğe bağlı otomatik katılma + LLM + TTS geçersiz kılmalarını etkinleştirir.
- `spawnSubagentSessions`: `sessions_spawn({ thread: true })` otomatik konu başlığı oluşturma/bağlama için isteğe bağlı anahtar
- `type: "acp"` olan üst düzey `bindings[]` girdileri, kanallar ve konu başlıkları için kalıcı ACP bağlamaları yapılandırır (`match.peer.id` içinde kanal/konu başlığı kimliğini kullanın). Alan semantiklerini [ACP Aracıları](/tr/tools/acp-agents#channel-specific-settings) içinde paylaşılır.
- `channels.discord.ui.components.accentColor`, Discord components v2 kapsayıcıları için vurgu rengini ayarlar.
- `channels.discord.voice`, Discord ses kanalı konuşmalarını ve isteğe bağlı otomatik katılım + LLM + TTS geçersiz kılmalarını etkinleştirir.
- `channels.discord.voice.model`, Discord ses kanalı yanıtları için kullanılan LLM modelini isteğe bağlı olarak geçersiz kılar.
- `channels.discord.voice.daveEncryption` ve `channels.discord.voice.decryptionFailureTolerance`, `@discordjs/voice` DAVE seçeneklerine doğrudan iletilir (varsayılan olarak `true` ve `24`).
- OpenClaw ayrıca, yinelenen şifre çözme hatalarından sonra bir ses oturumundan ayrılıp yeniden katılarak ses alma kurtarmasını dener.
- `channels.discord.streaming`, kanonik akış modu anahtarıdır. Eski `streamMode` ve boolean `streaming` değerleri otomatik olarak taşınır.
- `channels.discord.autoPresence`, runtime kullanılabilirliğini bot durumuna eşler (healthy => online, degraded => idle, exhausted => dnd) ve isteğe bağlı durum metni geçersiz kılmalarına izin verir.
- `channels.discord.voice.daveEncryption` ve `channels.discord.voice.decryptionFailureTolerance`, `@discordjs/voice` DAVE seçeneklerine iletilir (varsayılan olarak `true` ve `24`).
- OpenClaw ayrıca, tekrarlanan şifre çözme hatalarından sonra ses oturumundan ayrılıp yeniden katılarak ses alma kurtarmasını dener.
- `channels.discord.streaming` standart akış modu anahtarıdır. Eski `streamMode` ve boolean `streaming` değerleri otomatik olarak taşınır.
- `channels.discord.autoPresence`, çalışma zamanı kullanılabilirliğini bot varlığına eşler (healthy => online, degraded => idle, exhausted => dnd) ve isteğe bağlı durum metni geçersiz kılmalarına izin verir.
- `channels.discord.dangerouslyAllowNameMatching`, değiştirilebilir ad/etiket eşleştirmesini yeniden etkinleştirir (acil uyumluluk modu).
- `channels.discord.execApprovals`: Discorda özgü exec onayı teslimi ve onaylayıcı yetkilendirmesi.
- `enabled`: `true`, `false` veya `"auto"` (varsayılan). Otomatik modda, onaylayıcılar `approvers` veya `commands.ownerAllowFrom` üzerinden çözümlenebildiğinde exec onayları etkinleşir.
- `channels.discord.execApprovals`: Discord'a özgü exec onayı teslimatı ve onaylayan yetkilendirmesi.
- `enabled`: `true`, `false` veya `"auto"` (varsayılan). Otomatik modda, onaylayanlar `approvers` veya `commands.ownerAllowFrom` üzerinden çözümlenebildiğinde exec onayları etkinleşir.
- `approvers`: Exec isteklerini onaylamasına izin verilen Discord kullanıcı kimlikleri. Atlandığında `commands.ownerAllowFrom` değerine geri döner.
- `agentFilter`: İsteğe bağlı ajan kimliği izin listesi. Tüm ajanlar için onayları iletmek üzere atlayın.
- `agentFilter`: İsteğe bağlı aracı kimliği izin listesi. Tüm aracılar için onayları iletmek üzere atlayın.
- `sessionFilter`: İsteğe bağlı oturum anahtarı desenleri (alt dize veya regex).
- `target`: Onay istemlerinin nereye gönderileceği. `"dm"` (varsayılan) onaylayıcı DMlerine gönderir, `"channel"` kaynak kanala gönderir, `"both"` ikisine de gönderir. Hedef `"channel"` içerdiğinde, düğmeler yalnızca çözümlenmiş onaylayıcılar tarafından kullanılabilir.
- `cleanupAfterResolve`: `true` olduğunda onay, ret veya zaman aşımından sonra onay DMlerini siler.
- `target`: Onay istemlerinin nereye gönderileceği. `"dm"` (varsayılan) onaylayan DM'lerine gönderir, `"channel"` kaynak kanala gönderir, `"both"` ikisine de gönderir. Hedef `"channel"` içerdiğinde, düğmeler yalnızca çözümlenmiş onaylayanlar tarafından kullanılabilir.
- `cleanupAfterResolve`: `true` olduğunda, onay, ret veya zaman aşımından sonra onay DM'lerini siler.
**Tepki bildirim modları:** `off` (yok), `own` (botun mesajları, varsayılan), `all` (tüm mesajlar), `allowlist` (tüm mesajlarda `guilds.<id>.users`inden).
**Tepki bildirimi modları:** `off` (yok), `own` (botun iletileri, varsayılan), `all` (tüm iletiler), `allowlist` (tüm iletilerde `guilds.<id>.users` üzerinden).
### Google Chat
@ -387,10 +389,10 @@ WhatsApp, gateway'in web kanalı (Baileys Web) üzerinden çalışır. Bağlı b
}
```
- Hizmet hesabı JSONu: satır içi (`serviceAccount`) veya dosya tabanlı (`serviceAccountFile`).
- Hizmet hesabı JSON'u: satır içi (`serviceAccount`) veya dosya tabanlı (`serviceAccountFile`).
- Hizmet hesabı SecretRef de desteklenir (`serviceAccountRef`).
- Ortam geri dönüşleri: `GOOGLE_CHAT_SERVICE_ACCOUNT` veya `GOOGLE_CHAT_SERVICE_ACCOUNT_FILE`.
- Teslim hedefleri için `spaces/<spaceId>` veya `users/<userId>` kullanın.
- Ortam yedekleri: `GOOGLE_CHAT_SERVICE_ACCOUNT` veya `GOOGLE_CHAT_SERVICE_ACCOUNT_FILE`.
- Teslimat hedefleri için `spaces/<spaceId>` veya `users/<userId>` kullanın.
- `channels.googlechat.dangerouslyAllowNameMatching`, değiştirilebilir e-posta sorumlusu eşleştirmesini yeniden etkinleştirir (acil uyumluluk modu).
### Slack
@ -463,44 +465,44 @@ WhatsApp, gateway'in web kanalı (Baileys Web) üzerinden çalışır. Bağlı b
}
```
- **Socket modu**, hem `botToken` hem de `appToken` gerektirir (varsayılan hesap ortam geri dönüşü için `SLACK_BOT_TOKEN` + `SLACK_APP_TOKEN`).
- **HTTP modu**, `botToken` artı `signingSecret` gerektirir (kök düzeyde veya hesap başına).
- `socketMode`, Slack SDK Socket Mode taşıma ayarlarını genel Bolt alıcı APIsine doğrudan iletir. Yalnızca ping/pong zaman aşımı veya bayat websocket davranışını araştırırken kullanın.
- `botToken`, `appToken`, `signingSecret` ve `userToken` düz metin
- **Socket mode**, hem `botToken` hem de `appToken` gerektirir (varsayılan hesap ortam yedeği için `SLACK_BOT_TOKEN` + `SLACK_APP_TOKEN`).
- **HTTP modu**, `botToken` ve ayrıca `signingSecret` gerektirir (kökte veya hesap başına).
- `socketMode`, Slack SDK Socket Mode taşıma ayarlarını herkese açık Bolt receiver API'ye iletir. Yalnızca ping/pong zaman aşımı veya eski websocket davranışını araştırırken kullanın.
- `botToken`, `appToken`, `signingSecret` ve `userToken`, düz metin
dizelerini veya SecretRef nesnelerini kabul eder.
- Slack hesap anlık görüntüleri, `botTokenSource`, `botTokenStatus`,
`appTokenStatus` ve HTTP modunda `signingSecretStatus` gibi kimlik bilgisi
başına kaynak/durum alanlarını gösterir. `configured_unavailable`, hesabın
SecretRef üzerinden yapılandırıldığı ancak mevcut komut/runtime yolunun gizli
değeri çözemediği anlamına gelir.
- Slack hesap anlık görüntüleri, kimlik bilgisi başına kaynak/durum alanlarını gösterir; örneğin
`botTokenSource`, `botTokenStatus`, `appTokenStatus` ve HTTP modunda
`signingSecretStatus`. `configured_unavailable`, hesabın
SecretRef üzerinden yapılandırıldığı ancak geçerli komut/çalışma zamanı yolunun
gizli değeri çözemediği anlamına gelir.
- `configWrites: false`, Slack tarafından başlatılan yapılandırma yazmalarını engeller.
- İsteğe bağlı `channels.slack.defaultAccount`, yapılandırılmış bir hesap kimliğiyle eşleştiğinde varsayılan hesap seçimini geçersiz kılar.
- `channels.slack.streaming.mode`, kanonik Slack akış modu anahtarıdır. `channels.slack.streaming.nativeTransport`, Slackin yerel akış taşımasını denetler. Eski `streamMode`, boolean `streaming` ve `nativeStreaming` değerleri otomatik olarak taşınır.
- Teslim hedefleri için `user:<id>` (DM) veya `channel:<id>` kullanın.
- `channels.slack.streaming.mode`, standart Slack akış modu anahtarıdır. `channels.slack.streaming.nativeTransport`, Slack'in yerel akış taşımasını denetler. Eski `streamMode`, boolean `streaming` ve `nativeStreaming` değerleri otomatik olarak taşınır.
- Teslimat hedefleri için `user:<id>` (DM) veya `channel:<id>` kullanın.
**Tepki bildirim modları:** `off`, `own` (varsayılan), `all`, `allowlist` (`reactionAllowlist` inden).
**Tepki bildirimi modları:** `off`, `own` (varsayılan), `all`, `allowlist` (`reactionAllowlist` üzerinden).
**Thread oturumu yalıtımı:** `thread.historyScope`, thread başına (varsayılan) veya kanal genelinde paylaşımlıdır. `thread.inheritParent`, üst kanal dökümünü yeni threadlere kopyalar.
**Konu başlığı oturum izolasyonu:** `thread.historyScope`, konu başlığı başına (varsayılan) veya kanal genelinde paylaşılır. `thread.inheritParent`, üst kanal dökümünü yeni konu başlıklarına kopyalar.
- Slack yerel akışı ve Slack asistan tarzı "is typing..." thread durumu, bir yanıt thread hedefi gerektirir. Üst düzey DMler varsayılan olarak thread dışında kalır; bu yüzden thread tarzı önizleme yerine `typingReaction` veya normal teslim kullanırlar.
- `typingReaction`, yanıt çalışırken gelen Slack mesajına geçici bir tepki ekler, ardından tamamlandığında bunu kaldırır. `"hourglass_flowing_sand"` gibi bir Slack emoji kısa kodu kullanın.
- `channels.slack.execApprovals`: Slacke özgü exec onayı teslimi ve onaylayıcı yetkilendirmesi. Discord ile aynı şema: `enabled` (`true`/`false`/`"auto"`), `approvers` (Slack kullanıcı kimlikleri), `agentFilter`, `sessionFilter` ve `target` (`"dm"`, `"channel"` veya `"both"`).
- Slack yerel akışı ve Slack assistant tarzı "is typing..." konu başlığı durumu, bir yanıt konu başlığı hedefi gerektirir. Üst düzey DM'ler varsayılan olarak konu başlığı dışında kalır, bu nedenle konu başlığı tarzı önizleme yerine `typingReaction` veya normal teslimat kullanırlar.
- `typingReaction`, bir yanıt çalışırken gelen Slack iletisine geçici bir tepki ekler, ardından tamamlandığında kaldırır. `"hourglass_flowing_sand"` gibi bir Slack emoji kısa kodu kullanın.
- `channels.slack.execApprovals`: Slack'e özgü exec onayı teslimatı ve onaylayan yetkilendirmesi. Discord ile aynı şema: `enabled` (`true`/`false`/`"auto"`), `approvers` (Slack kullanıcı kimlikleri), `agentFilter`, `sessionFilter` ve `target` (`"dm"`, `"channel"` veya `"both"`).
| Eylem grubu | Varsayılan | Notlar |
| Eylem grubu | Varsayılan | Notlar |
| ------------ | ------- | ---------------------- |
| reactions | etkin | Tepki ver + tepkileri listele |
| messages | etkin | Oku/gönder/düzenle/sil |
| pins | etkin | Sabitle/sabitlemeyi kaldır/listele |
| pins | etkin | Sabitle/sabitlemeyi kaldır/listele |
| memberInfo | etkin | Üye bilgisi |
| emojiList | etkin | Özel emoji listesi |
### Mattermost
Mattermost, mevcut OpenClaw sürümlerinde paketlenmiş bir Plugin olarak gelir. Daha eski veya
Mattermost, mevcut OpenClaw sürümlerinde birlikte gelen bir Plugin olarak sunulur. Daha eski veya
özel derlemeler, güncel bir npm paketini
`openclaw plugins install @openclaw/mattermost` ile kurabilir; npm
OpenClawa ait paketi kullanımdan kaldırılmış olarak bildirirse, daha yeni bir npm paketi yayımlanana kadar
paketlenmiş Plugini veya yerel bir checkoutu kullanın.
`openclaw plugins install @openclaw/mattermost` ile yükleyebilir; npm
OpenClaw'a ait paketi kullanımdan kaldırılmış olarak bildirirse, daha yeni bir npm paketi yayımlanana kadar
birlikte gelen Plugin'i veya yerel bir checkout'u kullanın.
```json5
{
@ -530,20 +532,20 @@ paketlenmiş Plugini veya yerel bir checkoutu kullanın.
}
```
Sohbet modları: `oncall` (@-mention üzerine yanıt ver, varsayılan), `onmessage` (her mesaj), `onchar` (tetikleyici önekle başlayan mesajlar).
Sohbet modları: `oncall` (@-bahsetmede yanıt ver, varsayılan), `onmessage` (her ileti), `onchar` (tetikleyici önekle başlayan iletiler).
Mattermost yerel komutları etkinleştirildiğinde:
- `commands.callbackPath` tam URL değil, bir yol olmalıdır (örneğin `/api/channels/mattermost/command`).
- `commands.callbackPath`, tam URL değil, bir yol olmalıdır (örneğin `/api/channels/mattermost/command`).
- `commands.callbackUrl`, OpenClaw Gateway uç noktasına çözümlenmeli ve Mattermost sunucusundan erişilebilir olmalıdır.
- Yerel slash geri çağrıları, slash komut kaydı sırasında Mattermost tarafından döndürülen
komut başına tokenlarla doğrulanır. Kayıt başarısız olursa veya hiçbir
komut başına token'larla doğrulanır. Kayıt başarısız olursa veya hiçbir
komut etkinleştirilmezse, OpenClaw geri çağrıları
`Unauthorized: invalid command token.` ile reddeder.
- Özel/tailnet/dahili geri çağrı hostları için Mattermost,
`ServiceSettings.AllowedUntrustedInternalConnections` değerinin geri çağrı hostunu/alan adını içermesini gerektirebilir.
Tam URL değil, host/alan adı değerlerini kullanın.
- `channels.mattermost.configWrites`: Mattermost tarafından başlatılan yapılandırma yazmalarına izin verin veya bunları reddedin.
- Özel/tailnet/dahili geri çağrı ana makineleri için Mattermost,
`ServiceSettings.AllowedUntrustedInternalConnections` değerinin geri çağrı ana makinesini/etki alanını içermesini gerektirebilir.
Tam URL'ler değil, ana makine/etki alanı değerleri kullanın.
- `channels.mattermost.configWrites`: Mattermost tarafından başlatılan yapılandırma yazmalarına izin verin veya reddedin.
- `channels.mattermost.requireMention`: Kanallarda yanıtlamadan önce `@mention` gerektir.
- `channels.mattermost.groups.<channelId>.requireMention`: Kanal başına bahsetme kapısı geçersiz kılması (varsayılan için `"*"`).
- İsteğe bağlı `channels.mattermost.defaultAccount`, yapılandırılmış bir hesap kimliğiyle eşleştiğinde varsayılan hesap seçimini geçersiz kılar.
@ -570,12 +572,12 @@ Mattermost yerel komutları etkinleştirildiğinde:
**Tepki bildirimi modları:** `off`, `own` (varsayılan), `all`, `allowlist` (`reactionAllowlist` içinden).
- `channels.signal.account`: kanal başlangıcını belirli bir Signal hesap kimliğine sabitleyin.
- `channels.signal.configWrites`: Signal tarafından başlatılan yapılandırma yazma işlemlerine izin verin veya bunları reddedin.
- `channels.signal.configWrites`: Signal tarafından başlatılan yapılandırma yazmalarına izin verin veya bunları reddedin.
- İsteğe bağlı `channels.signal.defaultAccount`, yapılandırılmış bir hesap kimliğiyle eşleştiğinde varsayılan hesap seçimini geçersiz kılar.
### BlueBubbles
BlueBubbles önerilen iMessage yoludur (Plugin destekli, `channels.bluebubbles` altında yapılandırılır).
BlueBubbles, önerilen iMessage yoludur (Plugin destekli, `channels.bluebubbles` altında yapılandırılır).
```json5
{
@ -590,14 +592,14 @@ BlueBubbles önerilen iMessage yoludur (Plugin destekli, `channels.bluebubbles`
}
```
- Burada kapsanan çekirdek anahtar yolları: `channels.bluebubbles`, `channels.bluebubbles.dmPolicy`.
- Burada kapsanan temel anahtar yolları: `channels.bluebubbles`, `channels.bluebubbles.dmPolicy`.
- İsteğe bağlı `channels.bluebubbles.defaultAccount`, yapılandırılmış bir hesap kimliğiyle eşleştiğinde varsayılan hesap seçimini geçersiz kılar.
- `type: "acp"` değerine sahip üst düzey `bindings[]` girdileri, BlueBubbles konuşmalarını kalıcı ACP oturumlarına bağlayabilir. `match.peer.id` içinde bir BlueBubbles tanıtıcısı veya hedef dizesi (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) kullanın. Paylaşılan alan semantiği: [ACP Ajanları](/tr/tools/acp-agents#channel-specific-settings).
- `type: "acp"` içeren üst düzey `bindings[]` girdileri, BlueBubbles konuşmalarını kalıcı ACP oturumlarına bağlayabilir. `match.peer.id` içinde bir BlueBubbles tanıtıcısı veya hedef dizesi (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) kullanın. Paylaşılan alan semantiği: [ACP Aracıları](/tr/tools/acp-agents#channel-specific-settings).
- Tam BlueBubbles kanal yapılandırması [BlueBubbles](/tr/channels/bluebubbles) içinde belgelenmiştir.
### iMessage
OpenClaw `imsg rpc` başlatır (stdio üzerinden JSON-RPC). Daemon veya bağlantı noktası gerekmez.
OpenClaw, `imsg rpc` başlatır (stdio üzerinden JSON-RPC). Daemon veya bağlantı noktası gerekmez.
```json5
{
@ -623,13 +625,13 @@ OpenClaw `imsg rpc` başlatır (stdio üzerinden JSON-RPC). Daemon veya bağlant
- İsteğe bağlı `channels.imessage.defaultAccount`, yapılandırılmış bir hesap kimliğiyle eşleştiğinde varsayılan hesap seçimini geçersiz kılar.
- Messages DB için Full Disk Access gerektirir.
- Messages veritabanına Tam Disk Erişimi gerektirir.
- `chat_id:<id>` hedeflerini tercih edin. Sohbetleri listelemek için `imsg chats --limit 20` kullanın.
- `cliPath` bir SSH sarmalayıcısına işaret edebilir; SCP ek alma işlemleri için `remoteHost` (`host` veya `user@host`) ayarlayın.
- `attachmentRoots` ve `remoteAttachmentRoots` gelen ek yollarını sınırlar (varsayılan: `/Users/*/Library/Messages/Attachments`).
- SCP katı ana makine anahtarı denetimi kullanır, bu nedenle aktarma ana makinesinin anahtarının `~/.ssh/known_hosts` içinde zaten bulunduğundan emin olun.
- `channels.imessage.configWrites`: iMessage tarafından başlatılan yapılandırma yazma işlemlerine izin verin veya bunları reddedin.
- `type: "acp"` değerine sahip üst düzey `bindings[]` girdileri, iMessage konuşmalarını kalıcı ACP oturumlarına bağlayabilir. `match.peer.id` içinde normalleştirilmiş bir tanıtıcı veya açık sohbet hedefi (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) kullanın. Paylaşılan alan semantiği: [ACP Ajanları](/tr/tools/acp-agents#channel-specific-settings).
- `cliPath` bir SSH sarmalayıcısına işaret edebilir; SCP ek getirme için `remoteHost` (`host` veya `user@host`) ayarlayın.
- `attachmentRoots` ve `remoteAttachmentRoots`, gelen ek yollarını kısıtlar (varsayılan: `/Users/*/Library/Messages/Attachments`).
- SCP sıkı host-key denetimi kullanır; bu nedenle aktarma ana makinesi anahtarının `~/.ssh/known_hosts` içinde zaten bulunduğundan emin olun.
- `channels.imessage.configWrites`: iMessage tarafından başlatılan yapılandırma yazmalarına izin verin veya bunları reddedin.
- `type: "acp"` içeren üst düzey `bindings[]` girdileri, iMessage konuşmalarını kalıcı ACP oturumlarına bağlayabilir. `match.peer.id` içinde normalleştirilmiş bir tanıtıcı veya açık sohbet hedefi (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) kullanın. Paylaşılan alan semantiği: [ACP Aracıları](/tr/tools/acp-agents#channel-specific-settings).
<Accordion title="iMessage SSH sarmalayıcı örneği">
@ -642,7 +644,7 @@ exec ssh -T gateway-host imsg "$@"
### Matrix
Matrix Plugin desteklidir ve `channels.matrix` altında yapılandırılır.
Matrix, Plugin desteklidir ve `channels.matrix` altında yapılandırılır.
```json5
{
@ -674,23 +676,23 @@ Matrix Plugin desteklidir ve `channels.matrix` altında yapılandırılır.
- Token kimlik doğrulaması `accessToken` kullanır; parola kimlik doğrulaması `userId` + `password` kullanır.
- `channels.matrix.proxy`, Matrix HTTP trafiğini açık bir HTTP(S) proxy üzerinden yönlendirir. Adlandırılmış hesaplar bunu `channels.matrix.accounts.<id>.proxy` ile geçersiz kılabilir.
- `channels.matrix.network.dangerouslyAllowPrivateNetwork` özel/dahili homeserver'lara izin verir. `proxy` ve bu ağ katılımı bağımsız denetimlerdir.
- `channels.matrix.network.dangerouslyAllowPrivateNetwork`, özel/iç homeserver'lara izin verir. `proxy` ve bu ağ tercihi bağımsız denetimlerdir.
- `channels.matrix.defaultAccount`, çok hesaplı kurulumlarda tercih edilen hesabı seçer.
- `channels.matrix.autoJoin` varsayılan olarak `off` değerindedir; bu nedenle davet edilen odalar ve yeni DM tarzı davetler, `autoJoinAllowlist` ile `autoJoin: "allowlist"` veya `autoJoin: "always"` ayarlanana kadar yok sayılır.
- `channels.matrix.execApprovals`: Matrix'e özgü exec onayı teslimi ve onaylayıcı yetkilendirmesi.
- `channels.matrix.execApprovals`: Matrix yerel exec onayı teslimi ve onaylayıcı yetkilendirmesi.
- `enabled`: `true`, `false` veya `"auto"` (varsayılan). Otomatik modda, onaylayıcılar `approvers` veya `commands.ownerAllowFrom` içinden çözümlenebildiğinde exec onayları etkinleşir.
- `approvers`: exec isteklerini onaylamasına izin verilen Matrix kullanıcı kimlikleri (ör. `@owner:example.org`).
- `agentFilter`: isteğe bağlı ajan kimliği izin listesi. Tüm ajanlar için onayları iletmek üzere atlayın.
- `sessionFilter`: isteğe bağlı oturum anahtarı kalıpları (alt dize veya regex).
- `target`: onay istemlerinin gönderileceği yer. `"dm"` (varsayılan), `"channel"` (kaynak oda) veya `"both"`.
- `approvers`: exec isteklerini onaylamasına izin verilen Matrix kullanıcı kimlikleri (örn. `@owner:example.org`).
- `agentFilter`: isteğe bağlı aracı kimliği izin listesi. Tüm aracılar için onayları iletmek üzere atlayın.
- `sessionFilter`: isteğe bağlı oturum anahtarı desenleri (alt dize veya regex).
- `target`: onay istemlerinin nereye gönderileceği. `"dm"` (varsayılan), `"channel"` (kaynak oda) veya `"both"`.
- Hesap başına geçersiz kılmalar: `channels.matrix.accounts.<id>.execApprovals`.
- `channels.matrix.dm.sessionScope`, Matrix DM'lerinin oturumlar halinde nasıl gruplandığını denetler: `per-user` (varsayılan) yönlendirilen eşe göre paylaşırken, `per-room` her DM odasını yalıtır.
- Matrix durum yoklamaları ve canlı dizin aramaları, çalışma zamanı trafiğiyle aynı proxy politikasını kullanır.
- `channels.matrix.dm.sessionScope`, Matrix DM'lerinin oturumlarda nasıl gruplandırılacağını denetler: `per-user` (varsayılan) yönlendirilen eşe göre paylaşır, `per-room` ise her DM odasını yalıtır.
- Matrix durum yoklamaları ve canlı dizin aramaları, çalışma zamanı trafiğiyle aynı proxy ilkesini kullanır.
- Tam Matrix yapılandırması, hedefleme kuralları ve kurulum örnekleri [Matrix](/tr/channels/matrix) içinde belgelenmiştir.
### Microsoft Teams
Microsoft Teams Plugin desteklidir ve `channels.msteams` altında yapılandırılır.
Microsoft Teams, Plugin desteklidir ve `channels.msteams` altında yapılandırılır.
```json5
{
@ -705,12 +707,12 @@ Microsoft Teams Plugin desteklidir ve `channels.msteams` altında yapılandırı
}
```
- Burada kapsanan çekirdek anahtar yolları: `channels.msteams`, `channels.msteams.configWrites`.
- Tam Teams yapılandırması (kimlik bilgileri, Webhook, DM/grup politikası, ekip başına/kanal başına geçersiz kılmalar) [Microsoft Teams](/tr/channels/msteams) içinde belgelenmiştir.
- Burada kapsanan temel anahtar yolları: `channels.msteams`, `channels.msteams.configWrites`.
- Tam Teams yapılandırması (kimlik bilgileri, webhook, DM/grup ilkesi, takım başına/kanal başına geçersiz kılmalar) [Microsoft Teams](/tr/channels/msteams) içinde belgelenmiştir.
### IRC
IRC Plugin desteklidir ve `channels.irc` altında yapılandırılır.
IRC, Plugin desteklidir ve `channels.irc` altında yapılandırılır.
```json5
{
@ -731,13 +733,13 @@ IRC Plugin desteklidir ve `channels.irc` altında yapılandırılır.
}
```
- Burada kapsanan çekirdek anahtar yolları: `channels.irc`, `channels.irc.dmPolicy`, `channels.irc.configWrites`, `channels.irc.nickserv.*`.
- Burada kapsanan temel anahtar yolları: `channels.irc`, `channels.irc.dmPolicy`, `channels.irc.configWrites`, `channels.irc.nickserv.*`.
- İsteğe bağlı `channels.irc.defaultAccount`, yapılandırılmış bir hesap kimliğiyle eşleştiğinde varsayılan hesap seçimini geçersiz kılar.
- Tam IRC kanal yapılandırması (host/port/TLS/kanallar/izin listeleri/bahsetme kapısı) [IRC](/tr/channels/irc) içinde belgelenmiştir.
- Tam IRC kanal yapılandırması (host/port/TLS/kanallar/izin listeleri/bahsetme geçidi) [IRC](/tr/channels/irc) içinde belgelenmiştir.
### Çoklu hesap (tüm kanallar)
Kanal başına birden çok hesap çalıştırın (her biri kendi `accountId` değerine sahip):
Kanal başına birden çok hesap çalıştırın (her birinin kendi `accountId` değeriyle):
```json5
{
@ -760,30 +762,32 @@ Kanal başına birden çok hesap çalıştırın (her biri kendi `accountId` de
- `accountId` atlandığında `default` kullanılır (CLI + yönlendirme).
- Ortam token'ları yalnızca **varsayılan** hesaba uygulanır.
- Temel kanal ayarları, hesap başına geçersiz kılınmadığı sürece tüm hesaplara uygulanır.
- Her hesabı farklı bir ajana yönlendirmek için `bindings[].match.accountId` kullanın.
- Tek hesaplı üst düzey kanal yapılandırmasındayken `openclaw channels add` (veya kanal ilk kurulumu) aracılığıyla varsayılan olmayan bir hesap eklerseniz, OpenClaw önce hesap kapsamlı üst düzey tek hesap değerlerini kanal hesap haritasına yükseltir; böylece özgün hesap çalışmaya devam eder. Çoğu kanal bunları `channels.<channel>.accounts.default` içine taşır; Matrix bunun yerine mevcut eşleşen adlandırılmış/varsayılan hedefi koruyabilir.
- Mevcut yalnızca kanal bağlamaları (`accountId` yok) varsayılan hesapla eşleşmeye devam eder; hesap kapsamlı bağlamalar isteğe bağlı kalır.
- `openclaw doctor --fix`, hesap kapsamlı üst düzey tek hesap değerlerini o kanal için seçilen yükseltilmiş hesaba taşıyarak karışık şekilleri de onarır. Çoğu kanal `accounts.default` kullanır; Matrix bunun yerine mevcut eşleşen adlandırılmış/varsayılan hedefi koruyabilir.
- Temel kanal ayarları, hesap başına geçersiz kılınmadıkça tüm hesaplara uygulanır.
- Her hesabı farklı bir aracıya yönlendirmek için `bindings[].match.accountId` kullanın.
- Tek hesaplı üst düzey kanal yapılandırmasındayken `openclaw channels add` (veya kanal başlangıç yapılandırması) üzerinden varsayılan olmayan bir hesap eklerseniz OpenClaw, özgün hesabın çalışmaya devam etmesi için önce hesap kapsamlı üst düzey tek hesap değerlerini kanal hesap eşlemesine yükseltir. Çoğu kanal bunları `channels.<channel>.accounts.default` içine taşır; Matrix bunun yerine mevcut eşleşen adlandırılmış/varsayılan hedefi koruyabilir.
- Mevcut yalnızca kanal bağlamaları (`accountId` yok), varsayılan hesapla eşleşmeye devam eder; hesap kapsamlı bağlamalar isteğe bağlı kalır.
- `openclaw doctor --fix`, hesap kapsamlı üst düzey tek hesap değerlerini o kanal için seçilen yükseltilmiş hesaba taşıyarak karma şekilleri de onarır. Çoğu kanal `accounts.default` kullanır; Matrix bunun yerine mevcut eşleşen adlandırılmış/varsayılan hedefi koruyabilir.
### Diğer Plugin kanalları
Birçok Plugin kanalı `channels.<id>` olarak yapılandırılır ve kendi özel kanal sayfalarında belgelenir (örneğin Feishu, Matrix, LINE, Nostr, Zalo, Nextcloud Talk, Synology Chat ve Twitch).
Birçok Plugin kanalı `channels.<id>` olarak yapılandırılır ve kendi ayrılmış kanal sayfalarında belgelenir (örneğin Feishu, Matrix, LINE, Nostr, Zalo, Nextcloud Talk, Synology Chat ve Twitch).
Tam kanal dizinine bakın: [Kanallar](/tr/channels).
### Grup sohbeti bahsetme kapısı
### Grup sohbeti bahsetme geçidi
Grup mesajları varsayılan olarak **bahsetme gerektirir** (meta veri bahsetmesi veya güvenli regex kalıpları). WhatsApp, Telegram, Discord, Google Chat ve iMessage grup sohbetlerine uygulanır.
Grup mesajları varsayılan olarak **bahsetme gerektirir** (metadata bahsetmesi veya güvenli regex desenleri). WhatsApp, Telegram, Discord, Google Chat ve iMessage grup sohbetleri için geçerlidir.
Görünür yanıtlar ayrı olarak denetlenir. Grup/kanal odaları varsayılan olarak `messages.groupChat.visibleReplies: "message_tool"` kullanır: OpenClaw turu yine işler, ancak normal son yanıtlar özel kalır ve görünür oda çıktısı `message(action=send)` gerektirir. Normal yanıtların odaya geri gönderildiği eski davranışı yalnızca istediğinizde `"automatic"` ayarlayın. Aynı yalnızca araçla görünür yanıt davranışını doğrudan sohbetlere de uygulamak için `messages.visibleReplies: "message_tool"` ayarlayın.
Görünür yanıtlar ayrı olarak denetlenir. Grup/kanal odaları varsayılan olarak `messages.groupChat.visibleReplies: "message_tool"` kullanır: OpenClaw yine de turu işler, ancak normal nihai yanıtlar özel kalır ve görünür oda çıktısı `message(action=send)` gerektirir. Normal yanıtların odaya geri gönderildiği eski davranışı istediğinizde yalnızca `"automatic"` ayarlayın. Aynı yalnızca araçla görünür yanıt davranışını doğrudan sohbetlere de uygulamak için `messages.visibleReplies: "message_tool"` ayarlayın.
Dosya kaydedildikten sonra gateway `messages` yapılandırmasını hot-reload eder. Yalnızca dağıtımda dosya izleme veya yapılandırma yeniden yükleme devre dışıysa yeniden başlatın.
Mesaj aracı etkin araç ilkesi kapsamında kullanılamıyorsa OpenClaw, yanıtı sessizce bastırmak yerine otomatik görünür yanıtlara geri döner. `openclaw doctor` bu uyumsuzluk hakkında uyarır.
Gateway, dosya kaydedildikten sonra `messages` yapılandırmasını sıcak yeniden yükler. Yalnızca dağıtımda dosya izleme veya yapılandırma yeniden yükleme devre dışıysa yeniden başlatın.
**Bahsetme türleri:**
- **Meta veri bahsetmeleri**: Yerel platform @-bahsetmeleri. WhatsApp kendi kendine sohbet modunda yok sayılır.
- **Metin kalıpları**: `agents.list[].groupChat.mentionPatterns` içindeki güvenli regex kalıpları. Geçersiz kalıplar ve güvenli olmayan iç içe yinelemeler yok sayılır.
- Bahsetme kapısı yalnızca algılama mümkün olduğunda uygulanır (yerel bahsetmeler veya en az bir kalıp).
- **Metadata bahsetmeleri**: Yerel platform @-bahsetmeleri. WhatsApp kendiyle sohbet modunda yok sayılır.
- **Metin desenleri**: `agents.list[].groupChat.mentionPatterns` içindeki güvenli regex desenleri. Geçersiz desenler ve güvenli olmayan iç içe tekrarlar yok sayılır.
- Bahsetme geçidi yalnızca algılama mümkün olduğunda uygulanır (yerel bahsetmeler veya en az bir desen).
```json5
{
@ -800,9 +804,9 @@ Dosya kaydedildikten sonra gateway `messages` yapılandırmasını hot-reload ed
}
```
`messages.groupChat.historyLimit` genel varsayılanı ayarlar. Kanallar bunu `channels.<channel>.historyLimit` (veya hesap başına) ile geçersiz kılabilir. Devre dışı bırakmak için `0` ayarlayın.
`messages.groupChat.historyLimit` genel varsayılanı ayarlar. Kanallar `channels.<channel>.historyLimit` (veya hesap başına) ile geçersiz kılabilir. Devre dışı bırakmak için `0` ayarlayın.
`messages.visibleReplies` genel kaynak turu varsayılanıdır; `messages.groupChat.visibleReplies` grup/kanal kaynak turları için bunu geçersiz kılar. Kanal izin listeleri ve bahsetme kapısı, bir turun işlenip işlenmeyeceğine yine karar verir.
`messages.visibleReplies`, genel kaynak turu varsayılanıdır; `messages.groupChat.visibleReplies` grup/kanal kaynak turları için bunu geçersiz kılar. Kanal izin listeleri ve bahsetme geçidi, bir turun işlenip işlenmeyeceğine yine de karar verir.
#### DM geçmiş sınırları
@ -823,9 +827,9 @@ Dosya kaydedildikten sonra gateway `messages` yapılandırmasını hot-reload ed
Desteklenenler: `telegram`, `whatsapp`, `discord`, `slack`, `signal`, `imessage`, `msteams`.
#### Kendi kendine sohbet modu
#### Kendiyle sohbet modu
Kendi kendine sohbet modunu etkinleştirmek için kendi numaranızı `allowFrom` içine ekleyin (yerel @-bahsetmeleri yok sayar, yalnızca metin kalıplarına yanıt verir):
Kendiyle sohbet modunu etkinleştirmek için kendi numaranızı `allowFrom` içine ekleyin (yerel @-bahsetmeleri yok sayar, yalnızca metin desenlerine yanıt verir):
```json5
{
@ -873,32 +877,32 @@ Kendi kendine sohbet modunu etkinleştirmek için kendi numaranızı `allowFrom`
}
```
<Accordion title="Command details">
<Accordion title="Komut ayrıntıları">
- Bu blok komut yüzeylerini yapılandırır. Geçerli yerleşik + birlikte gelen komut kataloğu için bkz. [Eğik Çizgi Komutları](/tr/tools/slash-commands).
- Bu sayfa, tam komut kataloğu değil, bir **yapılandırma anahtarı başvurusu**dur. QQ Bot `/bot-ping` `/bot-help` `/bot-logs`, LINE `/card`, device-pair `/pair`, bellek `/dreaming`, telefon denetimi `/phone` ve Talk `/voice` gibi kanal/Plugin sahipli komutlar, kendi kanal/Plugin sayfalarında ve [Eğik Çizgi Komutları](/tr/tools/slash-commands) bölümünde belgelenmiştir.
- Metin komutları, başında `/` bulunan **tek başına** mesajlar olmalıdır.
- Bu blok komut yüzeylerini yapılandırır. Geçerli yerleşik + paketli komut kataloğu için bkz. [Eğik Çizgi Komutları](/tr/tools/slash-commands).
- Bu sayfa tam komut kataloğu değil, bir **yapılandırma anahtarı başvurusudur**. QQ Bot `/bot-ping` `/bot-help` `/bot-logs`, LINE `/card`, cihaz eşleme `/pair`, bellek `/dreaming`, telefon denetimi `/phone` ve Talk `/voice` gibi kanal/Plugin sahipli komutlar, kendi kanal/Plugin sayfalarında ve [Eğik Çizgi Komutları](/tr/tools/slash-commands) sayfasında belgelenir.
- Metin komutları, başında `/` bulunan **bağımsız** iletiler olmalıdır.
- `native: "auto"` Discord/Telegram için yerel komutları açar, Slack'i kapalı bırakır.
- `nativeSkills: "auto"` Discord/Telegram için yerel Skills komutlarını açar, Slack'i kapalı bırakır.
- Kanal başına geçersiz kılma: `channels.discord.commands.native` (bool veya `"auto"`). `false` daha önce kaydedilmiş komutları temizler.
- Kanal bazında geçersiz kılın: `channels.discord.commands.native` (bool veya `"auto"`). `false`, daha önce kaydedilmiş komutları temizler.
- Kanal başına yerel Skills kaydını `channels.<provider>.commands.nativeSkills` ile geçersiz kılın.
- `channels.telegram.customCommands` ek Telegram bot menü girdileri ekler.
- `bash: true`, ana makine kabuğu için `! <cmd>` kullanımını etkinleştirir. `tools.elevated.enabled` ve gönderenin `tools.elevated.allowFrom.<channel>` içinde olmasını gerektirir.
- `config: true`, `/config` komutunu etkinleştirir (`openclaw.json` okur/yazar). Gateway `chat.send` istemcileri için kalıcı `/config set|unset` yazmaları ayrıca `operator.admin` gerektirir; salt okunur `/config show`, normal yazma kapsamlı operatör istemcileri için kullanılabilir kalır.
- `channels.telegram.customCommands` ek Telegram bot menü girişleri ekler.
- `bash: true`, ana makine kabuğu için `! <cmd>` özelliğini etkinleştirir. `tools.elevated.enabled` ve gönderenin `tools.elevated.allowFrom.<channel>` içinde olmasını gerektirir.
- `config: true`, `/config` komutunu etkinleştirir (`openclaw.json` okur/yazar). Gateway `chat.send` istemcileri için kalıcı `/config set|unset` yazma işlemleri ayrıca `operator.admin` gerektirir; salt okunur `/config show`, normal yazma kapsamlı operatör istemcileri tarafından kullanılabilir kalır.
- `mcp: true`, `mcp.servers` altındaki OpenClaw tarafından yönetilen MCP sunucu yapılandırması için `/mcp` komutunu etkinleştirir.
- `plugins: true`, Plugin keşfi, kurulum ve etkinleştirme/devre dışı bırakma denetimleri için `/plugins` komutunu etkinleştirir.
- `channels.<provider>.configWrites`, kanal başına yapılandırma değişikliklerini kapılar (varsayılan: true).
- Çok hesaplı kanallar için `channels.<provider>.accounts.<id>.configWrites`, o hesabı hedefleyen yazmaları da kapılar (örneğin `/allowlist --config --account <id>` veya `/config set channels.<provider>.accounts.<id>...`).
- `restart: false`, `/restart` ve Gateway yeniden başlatma aracı eylemlerini devre dışı bırakır. Varsayılan: `true`.
- `channels.<provider>.configWrites`, kanal başına yapılandırma değişikliklerini sınırlar (varsayılan: true).
- Çok hesaplı kanallar için `channels.<provider>.accounts.<id>.configWrites`, o hesabı hedefleyen yazma işlemlerini de sınırlar (örneğin `/allowlist --config --account <id>` veya `/config set channels.<provider>.accounts.<id>...`).
- `restart: false`, `/restart` komutunu ve Gateway yeniden başlatma aracı eylemlerini devre dışı bırakır. Varsayılan: `true`.
- `ownerAllowFrom`, yalnızca sahip komutları/araçları için açık sahip izin listesidir. `allowFrom` değerinden ayrıdır.
- `ownerDisplay: "hash"`, sistem isteminde sahip kimliklerini hash'ler. Hashlemeyi denetlemek için `ownerDisplaySecret` ayarlayın.
- `allowFrom`, sağlayıcı başınadır. Ayarlandığında **tek** yetkilendirme kaynağıdır (kanal izin listeleri/eşleştirme ve `useAccessGroups` yok sayılır).
- `useAccessGroups: false`, `allowFrom` ayarlanmadığında komutların erişim grubu ilkelerini atlamasına izin verir.
- `allowFrom`, sağlayıcı başınadır. Ayarlandığında **tek** yetkilendirme kaynağıdır (kanal izin listeleri/eşleme ve `useAccessGroups` yok sayılır).
- `allowFrom` ayarlanmadığında `useAccessGroups: false`, komutların erişim grubu ilkelerini atlamasına izin verir.
- Komut belgeleri haritası:
- yerleşik + birlikte gelen katalog: [Eğik Çizgi Komutları](/tr/tools/slash-commands)
- yerleşik + paketli katalog: [Eğik Çizgi Komutları](/tr/tools/slash-commands)
- kanala özgü komut yüzeyleri: [Kanallar](/tr/channels)
- QQ Bot komutları: [QQ Bot](/tr/channels/qqbot)
- eşleştirme komutları: [Eşleştirme](/tr/channels/pairing)
- eşleme komutları: [Eşleme](/tr/channels/pairing)
- LINE kart komutu: [LINE](/tr/channels/line)
- bellek Dreaming: [Dreaming](/tr/concepts/dreaming)

View File

@ -4,18 +4,18 @@ read_when:
- Özel sağlayıcıları kaydetme veya temel URL'leri geçersiz kılma
- OpenAI uyumlu, kendi barındırdığınız uç noktaları ayarlama
sidebarTitle: Tools and custom providers
summary: Araç yapılandırması (politika, deneysel aç/kapat seçenekleri, sağlayıcı destekli araçlar) ve özel sağlayıcı/base-URL kurulumu
summary: Araçlar yapılandırması (politika, deneysel geçişler, sağlayıcı destekli araçlar) ve özel sağlayıcı/base-URL kurulumu
title: Yapılandırma — araçlar ve özel sağlayıcılar
x-i18n:
generated_at: "2026-04-30T09:20:22Z"
generated_at: "2026-05-01T09:00:42Z"
model: gpt-5.5
provider: openai
source_hash: 1790c92ecaf822c837326d8e22e9d72cc44e5d4cc0bcc00c154ba5160975002a
source_hash: 97e6bd8c762f6f7a9985b99ec016dde22c8ea8adc925778b11c2ae5103b887a8
source_path: gateway/config-tools.md
workflow: 16
---
`tools.*` yapılandırma anahtarları ve özel sağlayıcı / temel URL kurulumu. Ajanlar, kanallar ve diğer üst düzey yapılandırma anahtarları için bkz. [Yapılandırma başvurusu](/tr/gateway/configuration-reference).
`tools.*` yapılandırma anahtarları ve özel sağlayıcı / temel URL kurulumu. agents, channels ve diğer üst düzey yapılandırma anahtarları için bkz. [Yapılandırma referansı](/tr/gateway/configuration-reference).
## Araçlar
@ -24,15 +24,15 @@ x-i18n:
`tools.profile`, `tools.allow`/`tools.deny` öncesinde temel bir izin listesi ayarlar:
<Note>
Yerel ilk kurulum, ayarlanmamış yeni yerel yapılandırmaları varsayılan olarak `tools.profile: "coding"` yapar (mevcut açık profiller korunur).
Yerel ilk kurulum, ayarlanmamış olduğunda yeni yerel yapılandırmalar için varsayılanı `tools.profile: "coding"` yapar (mevcut açık profiller korunur).
</Note>
| Profil | İçerir |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `minimal` | yalnızca `session_status` |
| `minimal` | Yalnızca `session_status` |
| `coding` | `group:fs`, `group:runtime`, `group:web`, `group:sessions`, `group:memory`, `cron`, `image`, `image_generate`, `video_generate` |
| `messaging` | `group:messaging`, `sessions_list`, `sessions_history`, `sessions_send`, `session_status` |
| `full` | Kısıtlama yok (ayarlanmamışla aynı) |
| `full` | Kısıtlama yok (ayarlanmamış ile aynı) |
### Araç grupları
@ -53,7 +53,7 @@ Yerel ilk kurulum, ayarlanmamış yeni yerel yapılandırmaları varsayılan ola
### `tools.allow` / `tools.deny`
Genel araç izin/verme politikası (engelleme kazanır). Büyük/küçük harfe duyarsızdır, `*` joker karakterlerini destekler. Docker sandbox kapalıyken bile uygulanır.
Genel araç izin/ret ilkesi (ret kazanır). Büyük/küçük harfe duyarsızdır, `*` joker karakterlerini destekler. Docker sandbox kapalı olsa bile uygulanır.
```json5
{
@ -63,7 +63,7 @@ Genel araç izin/verme politikası (engelleme kazanır). Büyük/küçük harfe
### `tools.byProvider`
Belirli sağlayıcılar veya modeller için araçları daha da kısıtlar. Sıra: temel profil → sağlayıcı profili → izin/verme.
Belirli sağlayıcılar veya modeller için araçları daha da kısıtlar. Sıra: temel profil → sağlayıcı profili → izin/ret.
```json5
{
@ -79,7 +79,7 @@ Belirli sağlayıcılar veya modeller için araçları daha da kısıtlar. Sıra
### `tools.elevated`
Sandbox dışındaki yükseltilmiş `exec` erişimini denetler:
Sandbox dışındaki yükseltilmiş exec erişimini denetler:
```json5
{
@ -95,9 +95,9 @@ Sandbox dışındaki yükseltilmiş `exec` erişimini denetler:
}
```
- Ajan başına geçersiz kılma (`agents.list[].tools.elevated`) yalnızca daha fazla kısıtlayabilir.
- `/elevated on|off|ask|full` durumu oturum başına saklar; satır içi yönergeler tek iletiye uygulanır.
- Yükseltilmiş `exec`, sandboxing'i atlar ve yapılandırılmış çıkış yolunu kullanır (varsayılan olarak `gateway` veya exec hedefi `node` olduğunda `node`).
- Ajan başına geçersiz kılma (`agents.list[].tools.elevated`) yalnızca daha fazla kısıtlama getirebilir.
- `/elevated on|off|ask|full` durumu oturum başına saklar; satır içi direktifler tek mesaja uygulanır.
- Yükseltilmiş `exec`, sandboxing'i atlar ve yapılandırılmış çıkış yolunu kullanır (varsayılan olarak `gateway`, exec hedefi `node` olduğunda ise `node`).
### `tools.exec`
@ -121,7 +121,7 @@ Sandbox dışındaki yükseltilmiş `exec` erişimini denetler:
### `tools.loopDetection`
Araç döngüsü güvenlik denetimleri **varsayılan olarak devre dışıdır**. Algılamayı etkinleştirmek için `enabled: true` ayarlayın. Ayarlar genel olarak `tools.loopDetection` içinde tanımlanabilir ve ajan başına `agents.list[].tools.loopDetection` içinde geçersiz kılınabilir.
Araç döngüsü güvenlik kontrolleri **varsayılan olarak devre dışıdır**. Algılamayı etkinleştirmek için `enabled: true` ayarlayın. Ayarlar genel olarak `tools.loopDetection` içinde tanımlanabilir ve ajan başına `agents.list[].tools.loopDetection` içinde geçersiz kılınabilir.
```json5
{
@ -146,22 +146,22 @@ Araç döngüsü güvenlik denetimleri **varsayılan olarak devre dışıdır**.
Döngü analizi için tutulan en fazla araç çağrısı geçmişi.
</ParamField>
<ParamField path="warningThreshold" type="number">
Uyarılar için tekrarlayan ilerleme yok deseni eşiği.
Uyarılar için ilerleme sağlamayan yinelenen kalıp eşiği.
</ParamField>
<ParamField path="criticalThreshold" type="number">
Kritik döngüleri engellemek için daha yüksek tekrarlama eşiği.
Kritik döngüleri engellemek için daha yüksek yineleme eşiği.
</ParamField>
<ParamField path="globalCircuitBreakerThreshold" type="number">
Herhangi bir ilerleme yok çalışması için kesin durdurma eşiği.
İlerleme sağlamayan herhangi bir çalışma için kesin durdurma eşiği.
</ParamField>
<ParamField path="detectors.genericRepeat" type="boolean">
Aynı araç/aynı argüman çağrıları tekrarlandığında uyar.
Aynı araç/aynı bağımsız değişken çağrıları tekrarlandığında uyar.
</ParamField>
<ParamField path="detectors.knownPollNoProgress" type="boolean">
Bilinen yoklama araçlarında (`process.poll`, `command_status` vb.) uyar/engelle.
</ParamField>
<ParamField path="detectors.pingPong" type="boolean">
Değişimli ilerleme yok çift desenlerinde uyar/engelle.
İlerleme sağlamayan dönüşümlü çift kalıplarında uyar/engelle.
</ParamField>
<Warning>
@ -200,7 +200,7 @@ Araç döngüsü güvenlik denetimleri **varsayılan olarak devre dışıdır**.
### `tools.media`
Gelen medya anlama işlemini yapılandırır (görüntü/ses/video):
Gelen medya anlamayı (görüntü/ses/video) yapılandırır:
```json5
{
@ -208,7 +208,7 @@ Gelen medya anlama işlemini yapılandırır (görüntü/ses/video):
media: {
concurrency: 2,
asyncCompletion: {
directSend: false, // opt-in: send finished async music/video directly to the channel
directSend: false, // opt-in: send finished async video directly to the channel
},
audio: {
enabled: true,
@ -238,30 +238,30 @@ Gelen medya anlama işlemini yapılandırır (görüntü/ses/video):
```
<AccordionGroup>
<Accordion title="Media model entry fields">
**Provider girdisi** (`type: "provider"` ya da atlanmış):
<Accordion title="Medya modeli girdi alanları">
**Sağlayıcı girdisi** (`type: "provider"` veya atlanmış):
- `provider`: API provider kimliği (`openai`, `anthropic`, `google`/`gemini`, `groq` vb.)
- `model`: model kimliği geçersiz kılması
- `provider`: API sağlayıcı kimliği (`openai`, `anthropic`, `google`/`gemini`, `groq` vb.)
- `model`: model kimliği geçersiz kılma değeri
- `profile` / `preferredProfile`: `auth-profiles.json` profil seçimi
**CLI girdisi** (`type: "cli"`):
- `command`: çalıştırılacak yürütülebilir dosya
- `args`: şablonlu argümanlar (`{{MediaPath}}`, `{{Prompt}}`, `{{MaxChars}}` vb. desteklenir; `openclaw doctor --fix`, kullanımdan kaldırılmış `{input}` yer tutucularını `{{MediaPath}}` değerine taşır)
- `args`: şablonlu argümanlar (`{{MediaPath}}`, `{{Prompt}}`, `{{MaxChars}}` vb. desteklenir; `openclaw doctor --fix`, kullanım dışı `{input}` yer tutucularını `{{MediaPath}}` değerine geçirir)
**Ortak alanlar:**
- `capabilities`: isteğe bağlı liste (`image`, `audio`, `video`). Varsayılanlar: `openai`/`anthropic`/`minimax` → görüntü, `google` → görüntü+ses+video, `groq` → ses.
- `prompt`, `maxChars`, `maxBytes`, `timeoutSeconds`, `language`: girdi başına geçersiz kılmalar.
- `tools.media.image.timeoutSeconds` ve eşleşen görüntü modeli `timeoutSeconds` girdileri, aracıık `image` aracını çağırdığında da uygulanır.
- Hatalar bir sonraki girdiye geri döner.
- `prompt`, `maxChars`, `maxBytes`, `timeoutSeconds`, `language`: girdi başına geçersiz kılma değerleri.
- `tools.media.image.timeoutSeconds` ve eşleşen görüntü modeli `timeoutSeconds` girdileri, ajanık `image` aracını çağırdığında da uygulanır.
- Hatalarda bir sonraki girdiye geri dönülür.
Provider kimlik doğrulaması standart sırayı izler: `auth-profiles.json` → ortam değişkenleri`models.providers.*.apiKey`.
Sağlayıcı kimlik doğrulaması standart sırayı izler: `auth-profiles.json` → env vars`models.providers.*.apiKey`.
**Eşzamansız tamamlama alanları:**
**Asenkron tamamlama alanları:**
- `asyncCompletion.directSend`: `true` olduğunda, tamamlanan eşzamansız `music_generate` ve `video_generate` görevleri önce doğrudan kanal teslimini dener. Varsayılan: `false` (eski talep eden oturum uyandırma/model teslim yolu).
- `asyncCompletion.directSend`: `true` olduğunda, doğrudan tamamlama teslimini destekleyen tamamlanmış asenkron medya görevleri önce doğrudan kanal teslimini dener. Varsayılan: `false` (isteyen oturumu uyandırma/model teslimi yolu). Bugün bu, asenkron `video_generate` için geçerlidir; asenkron `music_generate` tamamlamaları, bu etkinleştirilmiş olsa bile isteyen oturumu aracılığıyla yürütülmeye devam eder.
</Accordion>
</AccordionGroup>
@ -283,7 +283,7 @@ Gelen medya anlama işlemini yapılandırır (görüntü/ses/video):
Oturum araçları (`sessions_list`, `sessions_history`, `sessions_send`) tarafından hangi oturumların hedeflenebileceğini denetler.
Varsayılan: `tree` (geçerli oturum + onun tarafından başlatılan oturumlar, örneğin alt aracılar).
Varsayılan: `tree` (geçerli oturum + alt ajanlar gibi onun tarafından başlatılan oturumlar).
```json5
{
@ -297,12 +297,12 @@ Varsayılan: `tree` (geçerli oturum + onun tarafından başlatılan oturumlar,
```
<AccordionGroup>
<Accordion title="Visibility scopes">
<Accordion title="Görünürlük kapsamları">
- `self`: yalnızca geçerli oturum anahtarı.
- `tree`: geçerli oturum + geçerli oturum tarafından başlatılan oturumlar (alt aracılar).
- `agent`: geçerli aracı kimliğine ait herhangi bir oturum (aynı aracı kimliği altında gönderene göre oturumlar çalıştırıyorsanız başka kullanıcıları içerebilir).
- `all`: herhangi bir oturum. Aracılar arası hedefleme yine de `tools.agentToAgent` gerektirir.
- Sandbox sıkıştırması: geçerli oturum sandbox içindeyse ve `agents.defaults.sandbox.sessionToolsVisibility="spawned"` ise, `tools.sessions.visibility="all"` olsa bile görünürlük zorunlu olarak `tree` olur.
- `tree`: geçerli oturum + geçerli oturum tarafından başlatılan oturumlar (alt ajanlar).
- `agent`: geçerli ajan kimliğine ait herhangi bir oturum (aynı ajan kimliği altında gönderici başına oturumlar çalıştırıyorsanız diğer kullanıcıları içerebilir).
- `all`: herhangi bir oturum. Ajanlar arası hedefleme yine de `tools.agentToAgent` gerektirir.
- Korumalı alan kısıtlaması: geçerli oturum korumalı alandaysa ve `agents.defaults.sandbox.sessionToolsVisibility="spawned"` ise görünürlük, `tools.sessions.visibility="all"` olsa bile zorunlu olarak `tree` olur.
</Accordion>
</AccordionGroup>
@ -328,13 +328,13 @@ Varsayılan: `tree` (geçerli oturum + onun tarafından başlatılan oturumlar,
```
<AccordionGroup>
<Accordion title="Attachment notes">
- Ekler yalnızca `runtime: "subagent"` için desteklenir. ACP runtime bunları reddeder.
- Dosyalar, alt çalışma alanında `.openclaw/attachments/<uuid>/` konumuna bir `.manifest.json` ile materyalleştirilir.
- Ek içeriği, konuşma dökümü kalıcılığından otomatik olarak sansürlenir.
- Base64 girdileri katı alfabe/dolgu denetimleri ve kod çözme öncesi boyut koruması ile doğrulanır.
- Dosya izinleri dizinler için `0700`, dosyalar için `0600` olur.
- Temizleme, `cleanup` politikasını izler: `delete` ekleri her zaman kaldırır; `keep` bunları yalnızca `retainOnSessionKeep: true` olduğunda saklar.
<Accordion title="Ek notları">
- Ekler yalnızca `runtime: "subagent"` için desteklenir. ACP çalışma zamanı bunları reddeder.
- Dosyalar, alt çalışma alanında `.openclaw/attachments/<uuid>/` konumuna bir `.manifest.json` ile somutlaştırılır.
- Ek içeriği, transkript kalıcılığından otomatik olarak sansürlenir.
- Base64 girdileri, sıkı alfabe/dolgu denetimleri ve kod çözme öncesi boyut korumasıyla doğrulanır.
- Dosya izinleri dizinler için `0700`, dosyalar için `0600` şeklindedir.
- Temizleme, `cleanup` ilkesini izler: `delete` ekleri her zaman kaldırır; `keep` bunları yalnızca `retainOnSessionKeep: true` olduğunda korur.
</Accordion>
</AccordionGroup>
@ -343,7 +343,7 @@ Varsayılan: `tree` (geçerli oturum + onun tarafından başlatılan oturumlar,
### `tools.experimental`
Deneysel yerleşik araç bayrakları. Katı-aracı GPT-5 otomatik etkinleştirme kuralı uygulanmadığı sürece varsayılan olarak kapalıdır.
Deneysel yerleşik araç bayrakları. Katı ajan odaklı GPT-5 otomatik etkinleştirme kuralı uygulanmadığı sürece varsayılan olarak kapalıdır.
```json5
{
@ -356,8 +356,8 @@ Deneysel yerleşik araç bayrakları. Katı-aracı GPT-5 otomatik etkinleştirme
```
- `planTool`: önemsiz olmayan çok adımlı iş takibi için yapılandırılmış `update_plan` aracını etkinleştirir.
- Varsayılan: Bir OpenAI veya OpenAI Codex GPT-5 ailesi çalıştırması için `agents.defaults.embeddedPi.executionContract` (veya ajan başına bir geçersiz kılma) `"strict-agentic"` olarak ayarlanmadığı sürece `false`. Aracı bu kapsamın dışında zorla etkinleştirmek için `true`, strict-agentic GPT-5 çalıştırmalarında bile kapalı tutmak için `false` ayarlayın.
- Etkinleştirildiğinde, sistem istemi kullanım rehberliği de ekler; böylece model bunu yalnızca kapsamlı işler için kullanır ve en fazla bir adımı `in_progress` olarak tutar.
- Varsayılan: OpenAI veya OpenAI Codex GPT-5 ailesi çalıştırması için `agents.defaults.embeddedPi.executionContract` (veya ajan başına geçersiz kılma) `"strict-agentic"` olarak ayarlanmadığı sürece `false`. Aracı bu kapsam dışında zorla açmak için `true`, strict-agentic GPT-5 çalıştırmalarında bile kapalı tutmak için `false` ayarlayın.
- Etkinleştirildiğinde, sistem istemi ayrıca kullanım rehberliği ekler; böylece model bunu yalnızca kapsamlı işler için kullanır ve en fazla bir adımı `in_progress` tutar.
### `agents.defaults.subagents`
@ -377,8 +377,8 @@ Deneysel yerleşik araç bayrakları. Katı-aracı GPT-5 otomatik etkinleştirme
}
```
- `model`: başlatılan alt ajanlar için varsayılan model. Atlanırsa alt ajanlar çağıranın modelini devralır.
- `allowAgents`: istekte bulunan ajan kendi `subagents.allowAgents` değerini ayarlamadığında `sessions_spawn` için hedef ajan kimliklerinin varsayılan izin listesi (`["*"]` = herhangi biri; varsayılan: yalnızca aynı ajan).
- `model`: oluşturulan alt ajanlar için varsayılan model. Atlanırsa alt ajanlar, çağıranın modelini devralır.
- `allowAgents`: istek yapan ajan kendi `subagents.allowAgents` değerini ayarlamadığında `sessions_spawn` için hedef ajan kimliklerinin varsayılan izin listesi (`["*"]` = herhangi biri; varsayılan: yalnızca aynı ajan).
- `runTimeoutSeconds`: araç çağrısı `runTimeoutSeconds` değerini atladığında `sessions_spawn` için varsayılan zaman aşımı (saniye). `0`, zaman aşımı yok anlamına gelir.
- Alt ajan başına araç ilkesi: `tools.subagents.tools.allow` / `tools.subagents.tools.deny`.
@ -417,18 +417,18 @@ OpenClaw yerleşik model kataloğunu kullanır. Özel sağlayıcıları yapılan
<AccordionGroup>
<Accordion title="Kimlik doğrulama ve birleştirme önceliği">
- Özel kimlik doğrulama ihtiyaçları için `authHeader: true` + `headers` kullanın.
- Özel kimlik doğrulama gereksinimleri için `authHeader: true` + `headers` kullanın.
- Ajan yapılandırma kökünü `OPENCLAW_AGENT_DIR` (veya eski ortam değişkeni takma adı olan `PI_CODING_AGENT_DIR`) ile geçersiz kılın.
- Eşleşen sağlayıcı kimlikleri için birleştirme önceliği:
- Boş olmayan ajan `models.json` `baseUrl` değerleri kazanır.
- Boş olmayan ajan `apiKey` değerleri yalnızca ilgili sağlayıcı geçerli yapılandırma/kimlik doğrulama profili bağlamında SecretRef tarafından yönetilmiyorsa kazanır.
- SecretRef tarafından yönetilen sağlayıcı `apiKey` değerleri, çözümlenmiş gizli değerleri kalıcılaştırmak yerine kaynak işaretçilerinden (env başvuruları için `ENV_VAR_NAME`, file/exec başvuruları için `secretref-managed`) yenilenir.
- SecretRef tarafından yönetilen sağlayıcı üst bilgi değerleri kaynak işaretçilerinden yenilenir (env başvuruları için `secretref-env:ENV_VAR_NAME`, file/exec başvuruları için `secretref-managed`).
- Boş olmayan ajan `apiKey` değerleri yalnızca o sağlayıcı mevcut yapılandırma/kimlik doğrulama profili bağlamında SecretRef tarafından yönetilmiyorsa kazanır.
- SecretRef tarafından yönetilen sağlayıcı `apiKey` değerleri, çözümlenmiş sırları kalıcı hale getirmek yerine kaynak işaretçilerinden (ortam referansları için `ENV_VAR_NAME`, dosya/exec referansları için `secretref-managed`) yenilenir.
- SecretRef tarafından yönetilen sağlayıcı üstbilgi değerleri, kaynak işaretçilerinden (ortam referansları için `secretref-env:ENV_VAR_NAME`, dosya/exec referansları için `secretref-managed`) yenilenir.
- Boş veya eksik ajan `apiKey`/`baseUrl`, yapılandırmadaki `models.providers` değerine geri döner.
- Eşleşen model `contextWindow`/`maxTokens`, açık yapılandırma ile örtük katalog değerleri arasındaki daha yüksek değeri kullanır.
- Eşleşen model `contextTokens`, mevcut olduğunda açık bir çalışma zamanı sınırını korur; yerel model üst verisini değiştirmeden etkili bağlamı sınırlamak için bunu kullanın.
- Eşleşen model `contextTokens`, varsa açık bir çalışma zamanı sınırını korur; yerel model üst verilerini değiştirmeden etkili bağlamı sınırlamak için bunu kullanın.
- Yapılandırmanın `models.json` dosyasını tamamen yeniden yazmasını istediğinizde `models.mode: "replace"` kullanın.
- İşaretçi kalıcılığı kaynak açısından otoritatiftir: işaretçiler, çözümlenmiş çalışma zamanı gizli değerlerinden değil, etkin kaynak yapılandırma anlık görüntüsünden (çözümleme öncesi) yazılır.
- İşaretçi kalıcılığı kaynak açısından yetkilidir: işaretçiler, çözümlenmiş çalışma zamanı sır değerlerinden değil, etkin kaynak yapılandırma anlık görüntüsünden (çözümleme öncesi) yazılır.
</Accordion>
</AccordionGroup>
@ -438,62 +438,62 @@ OpenClaw yerleşik model kataloğunu kullanır. Özel sağlayıcıları yapılan
<AccordionGroup>
<Accordion title="Üst düzey katalog">
- `models.mode`: sağlayıcı kataloğu davranışı (`merge` veya `replace`).
- `models.providers`: sağlayıcı kimliğine göre anahtarlanan özel sağlayıcı haritası.
- Güvenli düzenlemeler: eklemeli güncellemeler için `openclaw config set models.providers.<id> '<json>' --strict-json --merge` veya `openclaw config set models.providers.<id>.models '<json-array>' --strict-json --merge` kullanın. `config set`, `--replace` geçmediğiniz sürece yıkıcı değiştirmeleri reddeder.
- `models.providers`: sağlayıcı kimliğine göre anahtarlanmış özel sağlayıcı eşlemi.
- Güvenli düzenlemeler: eklemeli güncellemeler için `openclaw config set models.providers.<id> '<json>' --strict-json --merge` veya `openclaw config set models.providers.<id>.models '<json-array>' --strict-json --merge` kullanın. `config set`, `--replace` iletmediğiniz sürece yıkıcı değiştirmeleri reddeder.
</Accordion>
<Accordion title="Sağlayıcı bağlantısı ve kimlik doğrulama">
- `models.providers.*.api`: istek bağdaştırıcısı (`openai-completions`, `openai-responses`, `anthropic-messages`, `google-generative-ai` vb.). MLX, vLLM, SGLang ve çoğu OpenAI uyumlu yerel sunucu gibi kendi barındırdığınız `/v1/chat/completions` arka uçları için `openai-completions` kullanın. `baseUrl` içeren ancak `api` içermeyen özel bir sağlayıcı varsayılan olarak `openai-completions` kullanır; `openai-responses` değerini yalnızca arka uç `/v1/responses` desteklediğinde ayarlayın.
- `models.providers.*.apiKey`: sağlayıcı kimlik bilgisi (SecretRef/env ikamesini tercih edin).
- `models.providers.*.api`: istek bağdaştırıcısı (`openai-completions`, `openai-responses`, `anthropic-messages`, `google-generative-ai` vb.). MLX, vLLM, SGLang ve çoğu OpenAI uyumlu yerel sunucu gibi kendi barındırdığınız `/v1/chat/completions` arka uçları için `openai-completions` kullanın. `baseUrl` içeren ancak `api` içermeyen özel sağlayıcı varsayılan olarak `openai-completions` kullanır; `openai-responses` değerini yalnızca arka uç `/v1/responses` destekliyorsa ayarlayın.
- `models.providers.*.apiKey`: sağlayıcı kimlik bilgisi (SecretRef/ortam değişkeni yer değiştirmesini tercih edin).
- `models.providers.*.auth`: kimlik doğrulama stratejisi (`api-key`, `token`, `oauth`, `aws-sdk`).
- `models.providers.*.contextWindow`: model girdisi `contextWindow` ayarlamadığında bu sağlayıcı altındaki modeller için varsayılan yerel bağlam penceresi.
- `models.providers.*.contextTokens`: model girdisi `contextTokens` ayarlamadığında bu sağlayıcı altındaki modeller için varsayılan etkili çalışma zamanı bağlam sınırı.
- `models.providers.*.maxTokens`: model girdisi `maxTokens` ayarlamadığında bu sağlayıcı altındaki modeller için varsayılan çıktı belirteci sınırı.
- `models.providers.*.timeoutSeconds`: bağlantı, üst bilgiler, gövde ve toplam istek iptali işlemeyi içeren, saniye cinsinden isteğe bağlı sağlayıcı başına model HTTP isteği zaman aşımı.
- `models.providers.*.injectNumCtxForOpenAICompat`: Ollama + `openai-completions` için isteklere `options.num_ctx` enjekte eder (varsayılan: `true`).
- `models.providers.*.authHeader`: gerektiğinde kimlik bilgisinin `Authorization` üst bilgisinde taşınmasını zorunlu kılar.
- `models.providers.*.timeoutSeconds`: bağlantı, üstbilgiler, gövde ve toplam istek iptali işleme dahil, sağlayıcı başına isteğe bağlı model HTTP isteği zaman aşımı, saniye cinsinden.
- `models.providers.*.injectNumCtxForOpenAICompat`: Ollama + `openai-completions` için isteklere `options.num_ctx` enjekte edin (varsayılan: `true`).
- `models.providers.*.authHeader`: gerektiğinde kimlik bilgisi aktarımını `Authorization` üstbilgisinde zorlayın.
- `models.providers.*.baseUrl`: yukarı akış API temel URL'si.
- `models.providers.*.headers`: proxy/kiracı yönlendirmesi için ek statik üst bilgiler.
- `models.providers.*.headers`: proxy/kiracı yönlendirmesi için ek statik üstbilgiler.
</Accordion>
<Accordion title="İstek taşıma geçersiz kılmaları">
`models.providers.*.request`: model sağlayıcı HTTP istekleri için taşıma geçersiz kılmaları.
`models.providers.*.request`: model sağlayıcısı HTTP istekleri için taşıma geçersiz kılmaları.
- `request.headers`: ek üst bilgiler (sağlayıcı varsayılanlarıyla birleştirilir). Değerler SecretRef kabul eder.
- `request.headers`: ek üstbilgiler (sağlayıcı varsayılanlarıyla birleştirilir). Değerler SecretRef kabul eder.
- `request.auth`: kimlik doğrulama stratejisi geçersiz kılması. Modlar: `"provider-default"` (sağlayıcının yerleşik kimlik doğrulamasını kullan), `"authorization-bearer"` (`token` ile), `"header"` (`headerName`, `value`, isteğe bağlı `prefix` ile).
- `request.proxy`: HTTP proxy geçersiz kılması. Modlar: `"env-proxy"` (`HTTP_PROXY`/`HTTPS_PROXY` env değişkenlerini kullan), `"explicit-proxy"` (`url` ile). Her iki mod da isteğe bağlı bir `tls` alt nesnesi kabul eder.
- `request.proxy`: HTTP proxy geçersiz kılması. Modlar: `"env-proxy"` (`HTTP_PROXY`/`HTTPS_PROXY` ortam değişkenlerini kullan), `"explicit-proxy"` (`url` ile). Her iki mod da isteğe bağlı bir `tls` alt nesnesi kabul eder.
- `request.tls`: doğrudan bağlantılar için TLS geçersiz kılması. Alanlar: `ca`, `cert`, `key`, `passphrase` (tümü SecretRef kabul eder), `serverName`, `insecureSkipVerify`.
- `request.allowPrivateNetwork`: `true` olduğunda, sağlayıcı HTTP fetch koruması üzerinden DNS özel, CGNAT veya benzer aralıklara çözümlendiğinde `baseUrl` adresine HTTPS'ye izin verir (güvenilen, kendi barındırılan OpenAI uyumlu uç noktalar için operatör onayı). `localhost`, `127.0.0.1` ve `[::1]` gibi loopback model sağlayıcı akış URL'lerine, bu açıkça `false` olarak ayarlanmadığı sürece otomatik olarak izin verilir; LAN, tailnet ve özel DNS ana makineleri yine de onay gerektirir. WebSocket üst bilgiler/TLS için aynı `request` değerini kullanır, ancak bu fetch SSRF kapısını kullanmaz. Varsayılan `false`.
- `request.allowPrivateNetwork`: `true` olduğunda, DNS özel, CGNAT veya benzer aralıklara çözümlendiğinde sağlayıcı HTTP fetch koruması üzerinden `baseUrl` için HTTPS'ye izin verin (güvenilir kendi barındırılan OpenAI uyumlu uç noktalar için operatör onayı). `localhost`, `127.0.0.1` ve `[::1]` gibi Loopback model sağlayıcısı akış URL'lerine, bu açıkça `false` olarak ayarlanmadığı sürece otomatik olarak izin verilir; LAN, tailnet ve özel DNS ana bilgisayarları yine de onay gerektirir. WebSocket, üstbilgiler/TLS için aynı `request` değerini kullanır ancak bu fetch SSRF kapısını kullanmaz. Varsayılan `false`.
</Accordion>
<Accordion title="Model kataloğu girdileri">
- `models.providers.*.models`: açık sağlayıcı model kataloğu girdileri.
- `models.providers.*.models.*.input`: model giriş modaliteleri. Yalnızca metin modelleri için `["text"]`, yerel görüntü/vision modelleri için `["text", "image"]` kullanın. Görüntü ekleri, yalnızca seçilen model görüntü destekli olarak işaretlendiğinde ajan turlarına enjekte edilir.
- `models.providers.*.models.*.contextWindow`: yerel model bağlam penceresi üst verisi. Bu, ilgili model için sağlayıcı düzeyindeki `contextWindow` değerini geçersiz kılar.
- `models.providers.*.models.*.contextTokens`: isteğe bağlı çalışma zamanı bağlam sınırı. Bu, sağlayıcı düzeyindeki `contextTokens` değerini geçersiz kılar; modelin yerel `contextWindow` değerinden daha küçük etkili bir bağlam bütçesi istediğinizde kullanın; `openclaw models list`, farklı olduklarında her iki değeri de gösterir.
- `models.providers.*.models.*.compat.supportsDeveloperRole`: isteğe bağlı uyumluluk ipucu. `api: "openai-completions"` ve boş olmayan, yerel olmayan bir `baseUrl` (`api.openai.com` olmayan ana makine) için OpenClaw çalışma zamanında bunu `false` olmaya zorlar. Boş/atlanmış `baseUrl`, varsayılan OpenAI davranışını korur.
- `models.providers.*.models.*.compat.requiresStringContent`: yalnızca dize kullanan OpenAI uyumlu sohbet uç noktaları için isteğe bağlı uyumluluk ipucu. `true` olduğunda OpenClaw, isteği göndermeden önce saf metin `messages[].content` dizilerini düz dizelere indirger.
- `models.providers.*.models.*.input`: model giriş kipleri. Yalnızca metin modelleri için `["text"]`, yerel görüntü/görme modelleri için `["text", "image"]` kullanın. Görsel ekleri yalnızca seçilen model görüntü yetenekli olarak işaretlendiğinde ajan turlarına enjekte edilir.
- `models.providers.*.models.*.contextWindow`: yerel model bağlam penceresi üst verisi. Bu, o model için sağlayıcı düzeyindeki `contextWindow` değerini geçersiz kılar.
- `models.providers.*.models.*.contextTokens`: isteğe bağlı çalışma zamanı bağlam sınırı. Bu, sağlayıcı düzeyindeki `contextTokens` değerini geçersiz kılar; modelin yerel `contextWindow` değerinden daha küçük bir etkili bağlam bütçesi istediğinizde bunu kullanın; `openclaw models list`, değerler farklı olduğunda ikisini de gösterir.
- `models.providers.*.models.*.compat.supportsDeveloperRole`: isteğe bağlı uyumluluk ipucu. Yerel olmayan ve boş olmayan bir `baseUrl` (ana bilgisayar `api.openai.com` değil) ile `api: "openai-completions"` için OpenClaw bunu çalışma zamanında `false` olmaya zorlar. Boş/atlanmış `baseUrl`, varsayılan OpenAI davranışını korur.
- `models.providers.*.models.*.compat.requiresStringContent`: yalnızca dize destekleyen OpenAI uyumlu sohbet uç noktaları için isteğe bağlı uyumluluk ipucu. `true` olduğunda OpenClaw, isteği göndermeden önce salt metin `messages[].content` dizilerini düz dizelere indirger.
</Accordion>
<Accordion title="Amazon Bedrock keşfi">
- `plugins.entries.amazon-bedrock.config.discovery`: Bedrock otomatik keşif ayarları kökü.
- `plugins.entries.amazon-bedrock.config.discovery.enabled`: örtük keşfi açar/kapatır.
- `plugins.entries.amazon-bedrock.config.discovery.enabled`: örtük keşfi aç/kapat.
- `plugins.entries.amazon-bedrock.config.discovery.region`: keşif için AWS bölgesi.
- `plugins.entries.amazon-bedrock.config.discovery.providerFilter`: hedefli keşif için isteğe bağlı sağlayıcı kimliği filtresi.
- `plugins.entries.amazon-bedrock.config.discovery.refreshInterval`: keşif yenilemesi için yoklama aralığı.
- `plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow`: keşfedilen modeller için geri dönüş bağlam penceresi.
- `plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens`: keşfedilen modeller için geri dönüş maksimum çıktı belirteçleri.
- `plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow`: keşfedilen modeller için yedek bağlam penceresi.
- `plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens`: keşfedilen modeller için yedek en fazla çıktı belirteci.
</Accordion>
</AccordionGroup>
Etkileşimli özel sağlayıcı ilk kurulumu, GPT-4o, Claude, Gemini, Qwen-VL, LLaVA, Pixtral, InternVL, Mllama, MiniCPM-V ve GLM-4V gibi yaygın vision model kimlikleri için görüntü girişini çıkarır ve bilinen yalnızca metin aileleri için ek soruyu atlar. Bilinmeyen model kimlikleri yine de görüntü desteği için sorar. Etkileşimsiz ilk kurulum aynı çıkarımı kullanır; görüntü destekli üst veriyi zorlamak için `--custom-image-input` veya yalnızca metin üst verisini zorlamak için `--custom-text-input` geçin.
Etkileşimli özel sağlayıcı başlangıç kurulumu, GPT-4o, Claude, Gemini, Qwen-VL, LLaVA, Pixtral, InternVL, Mllama, MiniCPM-V ve GLM-4V gibi yaygın görme modeli kimlikleri için görüntü girişini çıkarır ve bilinen yalnızca metin aileleri için ek soruyu atlar. Bilinmeyen model kimlikleri yine de görüntü desteğini sorar. Etkileşimsiz başlangıç kurulumu aynı çıkarımı kullanır; görüntü yetenekli üst verileri zorlamak için `--custom-image-input`, yalnızca metin üst verilerini zorlamak için `--custom-text-input` iletin.
### Sağlayıcı örnekleri
<AccordionGroup>
<Accordion title="Cerebras (GLM 4.7 / GPT OSS)">
Paketli `cerebras` sağlayıcı Plugin'i bunu `openclaw onboard --auth-choice cerebras-api-key` ile yapılandırabilir. Açık sağlayıcı yapılandırmasını yalnızca varsayılanları geçersiz kılarken kullanın.
Paketle gelen `cerebras` sağlayıcı Plugin'i bunu `openclaw onboard --auth-choice cerebras-api-key` üzerinden yapılandırabilir. Açık sağlayıcı yapılandırmasını yalnızca varsayılanları geçersiz kılarken kullanın.
```json5
{
@ -547,7 +547,7 @@ Etkileşimli özel sağlayıcı ilk kurulumu, GPT-4o, Claude, Gemini, Qwen-VL, L
</Accordion>
<Accordion title="Yerel modeller (LM Studio)">
Bkz. [Yerel Modeller](/tr/gateway/local-models). Kısaca: ciddi donanımda LM Studio Responses API üzerinden büyük bir yerel model çalıştırın; yedek için barındırılan modelleri birleştirilmiş tutun.
Bkz. [Yerel Modeller](/tr/gateway/local-models). Kısa özet: ciddi donanımda LM Studio Responses API aracılığıyla büyük bir yerel model çalıştırın; yedek için barındırılan modelleri birleştirilmiş tutun.
</Accordion>
<Accordion title="MiniMax M2.7 (doğrudan)">
```json5
@ -584,7 +584,7 @@ Etkileşimli özel sağlayıcı ilk kurulumu, GPT-4o, Claude, Gemini, Qwen-VL, L
}
```
`MINIMAX_API_KEY` ayarlayın. Kısayollar: `openclaw onboard --auth-choice minimax-global-api` veya `openclaw onboard --auth-choice minimax-cn-api`. Model kataloğu varsayılan olarak yalnızca M2.7 içerir. Anthropic uyumlu akış yolunda, `thinking` değerini kendinizıkça ayarlamadığınız sürece OpenClaw varsayılan olarak MiniMax düşünmeyi devre dışı bırakır. `/fast on` veya `params.fastMode: true`, `MiniMax-M2.7` değerini `MiniMax-M2.7-highspeed` olarak yeniden yazar.
`MINIMAX_API_KEY` ayarlayın. Kısayollar: `openclaw onboard --auth-choice minimax-global-api` veya `openclaw onboard --auth-choice minimax-cn-api`. Model kataloğu varsayılan olarak yalnızca M2.7 kullanır. Anthropic uyumlu akış yolunda, `thinking` değerini ıkça kendiniz ayarlamadığınız sürece OpenClaw MiniMax düşünmeyi varsayılan olarak devre dışı bırakır. `/fast on` veya `params.fastMode: true`, `MiniMax-M2.7` değerini `MiniMax-M2.7-highspeed` olarak yeniden yazar.
</Accordion>
<Accordion title="Moonshot AI (Kimi)">
@ -623,7 +623,7 @@ Etkileşimli özel sağlayıcı ilk kurulumu, GPT-4o, Claude, Gemini, Qwen-VL, L
Çin uç noktası için: `baseUrl: "https://api.moonshot.cn/v1"` veya `openclaw onboard --auth-choice moonshot-api-key-cn`.
Yerel Moonshot uç noktaları, paylaşılan `openai-completions` aktarımında akış kullanım uyumluluğunu bildirir ve OpenClaw bunu yalnızca yerleşik sağlayıcı kimliği yerine uç nokta yeteneklerine göre belirler.
Yerel Moonshot uç noktaları, paylaşılan `openai-completions` aktarımında akış kullanım uyumluluğunu duyurur ve OpenClaw bunu yalnızca yerleşik sağlayıcı kimliği yerine uç nokta yeteneklerine göre belirler.
</Accordion>
<Accordion title="OpenCode">
@ -705,5 +705,5 @@ Etkileşimli özel sağlayıcı ilk kurulumu, GPT-4o, Claude, Gemini, Qwen-VL, L
- [Yapılandırma — aracılar](/tr/gateway/config-agents)
- [Yapılandırma — kanallar](/tr/gateway/config-channels)
- [Yapılandırma başvurusu](/tr/gateway/configuration-reference) — diğer üst düzey anahtarlar
- [Yapılandırma referansı](/tr/gateway/configuration-reference) — diğer üst düzey anahtarlar
- [Araçlar ve plugins](/tr/tools)

View File

@ -1,20 +1,20 @@
---
read_when:
- doctor migrasyonları ekleme veya değiştirme
- Uyumluluğu bozan yapılandırma değişikliklerini tanıtma
- doctor geçişleri ekleme veya değiştirme
- Uyumluluğu bozan yapılandırma değişikliklerini kullanıma sunma
sidebarTitle: Doctor
summary: 'Doctor komutu: sağlık kontrolleri, yapılandırma geçişleri ve onarım adımları'
title: Tanılama
x-i18n:
generated_at: "2026-04-30T16:29:08Z"
generated_at: "2026-05-01T09:00:50Z"
model: gpt-5.5
provider: openai
source_hash: 89150fe2b2848f1f168b42ca6b240bc0e6a0edee4f1bcad7f79d297face9c95e
source_hash: eef5715d485609fa60bdb4aa97ee441b053a60519b9dea03b0c8ec09db157474
source_path: gateway/doctor.md
workflow: 16
---
`openclaw doctor`, OpenClaw için onarım + geçiş aracıdır. Eskimiş yapılandırma/durumu düzeltir, sağlığı denetler ve uygulanabilir onarım adımları sağlar.
`openclaw doctor`, OpenClaw için onarım + geçiş aracıdır. Eski yapılandırma/durum verilerini düzeltir, sağlığı denetler ve uygulanabilir onarım adımları sağlar.
## Hızlı başlangıç
@ -30,7 +30,7 @@ openclaw doctor
openclaw doctor --yes
```
Sormadan varsayılanları kabul eder (uygulanabildiğinde yeniden başlatma/hizmet/sandbox onarım adımları dahil).
Sormadan varsayılanları kabul eder (uygulanabilir olduğunda yeniden başlatma/hizmet/sandbox onarım adımları dahil).
</Tab>
<Tab title="--repair">
@ -38,7 +38,7 @@ openclaw doctor
openclaw doctor --repair
```
Önerilen onarımları sormadan uygular (güvenli olduğunda onarımlar + yeniden başlatmalar).
Sormadan önerilen onarımları uygular (güvenli olduğunda onarımlar + yeniden başlatmalar).
</Tab>
<Tab title="--repair --force">
@ -54,7 +54,7 @@ openclaw doctor
openclaw doctor --non-interactive
```
Komut istemleri olmadan çalışır ve yalnızca güvenli geçişleri uygular (yapılandırma normalleştirme + disk üzerindeki durum taşıma işlemleri). İnsan onayı gerektiren yeniden başlatma/hizmet/sandbox eylemlerini atlar. Eski durum geçişleri algılandığında otomatik olarak çalışır.
Sorma olmadan çalışır ve yalnızca güvenli geçişleri uygular (yapılandırma normalleştirmesi + disk üzerindeki durum taşımaları). İnsan onayı gerektiren yeniden başlatma/hizmet/sandbox eylemlerini atlar. Eski durum geçişleri tespit edildiğinde otomatik olarak çalışır.
</Tab>
<Tab title="--deep">
@ -67,7 +67,7 @@ openclaw doctor
</Tab>
</Tabs>
Yazmadan önce değişiklikleri incelemek istiyorsanız, önce yapılandırma dosyasınıın:
Yazmadan önce değişiklikleri gözden geçirmek istiyorsanız önce yapılandırma dosyasınıın:
```bash
cat ~/.openclaw/openclaw.json
@ -76,114 +76,120 @@ cat ~/.openclaw/openclaw.json
## Ne yapar (özet)
<AccordionGroup>
<Accordion title="Sağlık, UI ve güncellemeler">
<Accordion title="Health, UI, and updates">
- Git kurulumları için isteğe bağlı ön uçuş güncellemesi (yalnızca etkileşimli).
- UI protokol güncelliği denetimi (protokol şeması daha yeniyse Control UI'ı yeniden derler).
- UI protokol güncelliği denetimi (protokol şeması daha yeni olduğunda Control UI'yi yeniden derler).
- Sağlık denetimi + yeniden başlatma istemi.
- Skills durum özeti (uygun/eksik/engellenmiş) ve plugin durumu.
- Skills durum özeti (uygun/eksik/engellenmiş) ve Plugin durumu.
</Accordion>
<Accordion title="Yapılandırma ve geçişler">
- Eski değerler için yapılandırma normalleştirme.
- Eski düz `talk.*` alanlarından `talk.provider` + `talk.providers.<provider>` içine Talk yapılandırma geçişi.
- Eski Chrome extension yapılandırmaları ve Chrome MCP hazır olma durumu için tarayıcı geçiş denetimleri.
<Accordion title="Config and migrations">
- Eski değerler için yapılandırma normalleştirmesi.
- Eski düz `talk.*` alanlarından `talk.provider` + `talk.providers.<provider>` yapısına Talk yapılandırması geçişi.
- Eski Chrome uzantısı yapılandırmaları ve Chrome MCP hazır olma durumu için tarayıcı geçiş denetimleri.
- OpenCode sağlayıcı geçersiz kılma uyarıları (`models.providers.opencode` / `models.providers.opencode-go`).
- Codex OAuth gölgeleme uyarıları (`models.providers.openai-codex`).
- OpenAI Codex OAuth profilleri için OAuth TLS ön koşulları denetimi.
- Eski disk üzerindeki durum geçişi (oturumlar/agent dizini/WhatsApp auth).
- Eski plugin manifest sözleşme anahtarı geçişi (`speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders`, `webSearchProviders``contracts`).
- Eski cron deposu geçişi (`jobId`, `schedule.cron`, üst düzey delivery/payload alanları, payload `provider`, basit `notify: true` webhook yedek işleri).
- Eski agent çalışma zamanı ilkesi geçişi: `agents.defaults.agentRuntime` ve `agents.list[].agentRuntime`.
- Plugin'ler etkinleştirildiğinde eskimiş plugin yapılandırma temizliği; `plugins.enabled=false` olduğunda, eskimiş plugin referansları etkisiz kapsama yapılandırması olarak ele alınır ve korunur.
- OpenAI Codex OAuth profilleri için OAuth TLS önkoşulları denetimi.
- `plugins.allow` kısıtlayıcıyken araç ilkesi hâlâ joker karakter veya Plugin'e ait araçlar istediğinde Plugin/araç izin listesi uyarıları.
- Eski disk üzerindeki durum geçişi (oturumlar/ajan dizini/WhatsApp kimlik doğrulaması).
- Eski Plugin manifest sözleşme anahtarı geçişi (`speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders`, `webSearchProviders``contracts`).
- Eski cron deposu geçişi (`jobId`, `schedule.cron`, üst düzey teslim/payload alanları, payload `provider`, basit `notify: true` webhook yedek işleri).
- Eski ajan çalışma zamanı ilkesi geçişi: `agents.defaults.agentRuntime` ve `agents.list[].agentRuntime`.
- Plugin'ler etkin olduğunda eski Plugin yapılandırması temizliği; `plugins.enabled=false` olduğunda eski Plugin başvuruları etkisiz kapsama yapılandırması olarak ele alınır ve korunur.
</Accordion>
<Accordion title="Durum ve bütünlük">
- Oturum kilit dosyası incelemesi ve eskimiş kilit temizliği.
- Etkilenen 2026.4.24 derlemeleri tarafından oluşturulan yinelenmiş prompt-rewrite dalları için oturum dökümü onarımı.
- Yeniden başlatma kurtarma sürecinde takılmış subagent tombstone algılama; başlangıcın child'ı yeniden başlatma iptal edildi olarak ele almaya devam etmemesi için eskimiş iptal edilmiş kurtarma bayraklarını temizlemede `--fix` desteği.
- Durum bütünlüğü ve izin denetimleri (oturumlar, dökümler, durum dizini).
- Yerel çalışırken yapılandırma dosyası izin denetimleri (chmod 600).
- Model auth sağlığı: OAuth süresinin dolmasını denetler, süresi dolmak üzere olan token'ları yenileyebilir ve auth-profile bekleme/devre dışı durumlarını raporlar.
- Ek çalışma alanı dizini algılama (`~/openclaw`).
<Accordion title="State and integrity">
- Oturum kilit dosyası incelemesi ve eski kilit temizliği.
- Etkilenen 2026.4.24 derlemeleri tarafından oluşturulan yinelenmiş prompt yeniden yazma dalları için oturum transcript onarımı.
- Sıkışmış alt ajan yeniden başlatma-kurtarma tombstone tespiti; başlangıcın çocuğu yeniden başlatma nedeniyle iptal edilmiş olarak değerlendirmeyi sürdürmemesi için eski iptal edilmiş kurtarma bayraklarını temizlemeye yönelik `--fix` desteğiyle.
- Durum bütünlüğü ve izin denetimleri (oturumlar, transcript'ler, durum dizini).
- Yerel olarak çalışırken yapılandırma dosyası izin denetimleri (chmod 600).
- Model kimlik doğrulama sağlığı: OAuth süresinin dolmasını denetler, süresi dolmak üzere olan token'ları yenileyebilir ve auth-profile bekleme/disabled durumlarını raporlar.
- Ek çalışma alanı dizini tespiti (`~/openclaw`).
</Accordion>
<Accordion title="Gateway, hizmetler ve supervisor'lar">
- Sandbox etkinleştirildiğinde sandbox imajı onarımı.
- Eski hizmet geçişi ve ek Gateway algılama.
<Accordion title="Gateway, services, and supervisors">
- Sandbox etkinleştirildiğinde sandbox image onarımı.
- Eski hizmet geçişi ve ek Gateway tespiti.
- Matrix kanal eski durum geçişi (`--fix` / `--repair` modunda).
- Gateway çalışma zamanı denetimleri (hizmet kurulmuş ama çalışmıyor; önbelleğe alınmış launchd etiketi).
- Kanal durum uyarıları (çalışan Gateway üzerinden yoklanır).
- İsteğe bağlı onarımla supervisor yapılandırma denetimi (launchd/systemd/schtasks).
- Kurulum veya güncelleme sırasında kabuk `HTTP_PROXY` / `HTTPS_PROXY` / `NO_PROXY` değerlerini yakalamış Gateway hizmetleri için gömülü proxy ortam temizliği.
- Gateway çalışma zamanı en iyi uygulama denetimleri (Node ve Bun, sürüm yöneticisi yolları).
- Gateway çalışma zamanı denetimleri (hizmet kurulu ama çalışmıyor; önbelleğe alınmış launchd etiketi).
- Kanal durum uyarıları (çalışan Gateway'den yoklanır).
- İsteğe bağlı onarımla supervisor yapılandırması denetimi (launchd/systemd/schtasks).
- Kurulum veya güncelleme sırasında shell `HTTP_PROXY` / `HTTPS_PROXY` / `NO_PROXY` değerlerini yakalamış Gateway hizmetleri için gömülü proxy ortamı temizliği.
- Gateway çalışma zamanı en iyi uygulama denetimleri (Node vs Bun, sürüm yöneticisi yolları).
- Gateway port çakışması tanılamaları (varsayılan `18789`).
</Accordion>
<Accordion title="Auth, güvenlik ve eşleştirme">
<Accordion title="Auth, security, and pairing">
- Açık DM ilkeleri için güvenlik uyarıları.
- Yerel token modu için Gateway auth denetimleri (token kaynağı yoksa token oluşturma önerir; token SecretRef yapılandırmalarının üzerine yazmaz).
- Cihaz eşleştirme sorun algılama (bekleyen ilk eşleştirme istekleri, bekleyen rol/kapsam yükseltmeleri, eskimiş yerel cihaz-token önbelleği sapması ve eşleştirilmiş kayıt auth sapması).
- Yerel token modu için Gateway kimlik doğrulama denetimleri (token kaynağı yoksa token oluşturmayı önerir; token SecretRef yapılandırmalarının üzerine yazmaz).
- Cihaz eşleştirme sorun tespiti (bekleyen ilk kez eşleştirme istekleri, bekleyen rol/kapsam yükseltmeleri, eski yerel cihaz-token önbelleği kayması ve eşleştirilmiş kayıt kimlik doğrulama kayması).
</Accordion>
<Accordion title="Çalışma alanı ve kabuk">
<Accordion title="Workspace and shell">
- Linux'ta systemd linger denetimi.
- Çalışma alanı bootstrap dosya boyutu denetimi (bağlam dosyaları için kesilme/sınıra yakın uyarıları).
- Kabuk tamamlama durum denetimi ve otomatik kurulum/yükseltme.
- Çalışma alanı bootstrap dosyası boyutu denetimi (bağlam dosyaları için kesilme/sınıra yaklaşma uyarıları).
- Shell tamamlama durum denetimi ve otomatik kurulum/yükseltme.
- Bellek arama embedding sağlayıcısı hazır olma denetimi (yerel model, uzak API anahtarı veya QMD binary).
- Kaynak kurulum denetimleri (pnpm çalışma alanı uyuşmazlığı, eksik UI varlıkları, eksik tsx binary).
- Güncellenmiş yapılandırmayı + sihirbaz metadatasını yazar.
- Kaynak kurulum denetimleri (pnpm çalışma alanı uyumsuzluğu, eksik UI varlıkları, eksik tsx binary).
- Güncellenmiş yapılandırma + sihirbaz metadata'sı yazar.
</Accordion>
</AccordionGroup>
## Dreams UI geri doldurma ve sıfırlama
Control UI Dreams sahnesi, temellendirilmiş Dreaming iş akışı için **Geri Doldur**, **Sıfırla** ve **Temellendirilmişi Temizle** eylemlerini içerir. Bu eylemler Gateway doctor tarzı RPC yöntemlerini kullanır, ancak `openclaw doctor` CLI onarım/geçişinin parçası **değildir**.
Control UI Dreams sahnesi, grounded dreaming iş akışı için **Backfill**, **Reset** ve **Clear Grounded** eylemlerini içerir. Bu eylemler Gateway doctor tarzı RPC yöntemlerini kullanır, ancak `openclaw doctor` CLI onarım/geçişinin parçası **değildir**.
Yaptıkları:
Ne yaptıkları:
- **Geri Doldur**, etkin çalışma alanındaki geçmiş `memory/YYYY-MM-DD.md` dosyalarını tarar, temellendirilmiş REM günlük geçişini çalıştırır ve tersine çevrilebilir geri doldurma girdilerini `DREAMS.md` içine yazar.
- **Sıfırla**, yalnızca bu işaretli geri doldurma günlük girdilerini `DREAMS.md` içinden kaldırır.
- **Temellendirilmişi Temizle**, yalnızca geçmiş yeniden oynatmadan gelen ve henüz canlı hatırlama veya günlük destek biriktirmemiş, staged temellendirilmişe özel kısa vadeli girdileri kaldırır.
- **Backfill**, etkin çalışma alanındaki geçmiş `memory/YYYY-MM-DD.md` dosyalarını tarar, grounded REM günlük geçişini çalıştırır ve geri alınabilir geri doldurma girdilerini `DREAMS.md` içine yazar.
- **Reset**, yalnızca işaretli geri doldurma günlük girdilerini `DREAMS.md` dosyasından kaldırır.
- **Clear Grounded**, yalnızca geçmiş yeniden oynatmadan gelen ve henüz canlı hatırlama ya da günlük destek biriktirmemiş staged grounded-only kısa vadeli girdileri kaldırır.
Kendi başlarına **yapmadıkları**:
- `MEMORY.md` dosyasını düzenlemezler
- tam doctor geçişlerini çalıştırmazlar
- önce staged CLI yolunu açıkça çalıştırmadığınız sürece temellendirilmiş adayları otomatik olarak canlı kısa vadeli yükseltme deposuna stage etmezler
- önce staged CLI yolunu açıkça çalıştırmadığınız sürece grounded adayları otomatik olarak canlı kısa vadeli promotion deposuna stage etmezler
Temellendirilmiş geçmiş yeniden oynatmanın normal derin yükseltme hattını etkilemesini istiyorsanız, bunun yerine CLI akışını kullanın:
Grounded geçmiş yeniden oynatmasının normal derin promotion hattını etkilemesini istiyorsanız bunun yerine CLI akışını kullanın:
```bash
openclaw memory rem-backfill --path ./memory --stage-short-term
```
Bu, `DREAMS.md` dosyasını inceleme yüzeyi olarak tutarken temellendirilmiş dayanıklı adayları kısa vadeli Dreaming deposuna stage eder.
Bu, `DREAMS.md` dosyasını inceleme yüzeyi olarak tutarken grounded durable adayları kısa vadeli dreaming deposuna stage eder.
## Ayrıntılı davranış ve gerekçe
<AccordionGroup>
<Accordion title="0. İsteğe bağlı güncelleme (git kurulumları)">
Bu bir git checkout ise ve doctor etkileşimli çalışıyorsa, doctor çalıştırılmadan önce güncelleme (fetch/rebase/build) önerir.
<Accordion title="0. Optional update (git installs)">
Bu bir git checkout ise ve doctor etkileşimli çalışıyorsa, doctor çalışmadan önce güncelleme (fetch/rebase/build) yapmayı önerir.
</Accordion>
<Accordion title="1. Yapılandırma normalleştirme">
Yapılandırma eski değer biçimleri içeriyorsa (örneğin kanala özgü geçersiz kılma olmadan `messages.ackReaction`), doctor bunları geçerli şemaya normalleştirir.
<Accordion title="1. Config normalization">
Yapılandırma eski değer biçimleri içeriyorsa (örneğin kanala özgü geçersiz kılma olmadan `messages.ackReaction`), doctor bunları mevcut şemaya normalleştirir.
Buna eski düz Talk alanları dahildir. Geçerli genel Talk yapılandırması `talk.provider` + `talk.providers.<provider>` biçimindedir. Doctor eski `talk.voiceId` / `talk.voiceAliases` / `talk.modelId` / `talk.outputFormat` / `talk.apiKey` biçimlerini sağlayıcı haritasına yeniden yazar.
Buna eski Talk düz alanları da dahildir. Mevcut genel Talk yapılandırması `talk.provider` + `talk.providers.<provider>` biçimindedir. Doctor eski `talk.voiceId` / `talk.voiceAliases` / `talk.modelId` / `talk.outputFormat` / `talk.apiKey` biçimlerini sağlayıcı haritasına yeniden yazar.
Doctor ayrıca `plugins.allow` boş olmadığında ve araç ilkesi
joker karakter veya Plugin'e ait araç girdileri kullandığında uyarır. `tools.allow: ["*"]` yalnızca
gerçekten yüklenen Plugin'lerden gelen araçlarla eşleşir; özel Plugin
izin listesini baypas etmez.
</Accordion>
<Accordion title="2. Eski yapılandırma anahtarı geçişleri">
<Accordion title="2. Legacy config key migrations">
Yapılandırma kullanımdan kaldırılmış anahtarlar içerdiğinde, diğer komutlar çalışmayı reddeder ve sizden `openclaw doctor` çalıştırmanızı ister.
Doctor şunları yapar:
- Hangi eski anahtarların bulunduğunu açıklar.
- Uyguladığı geçişi gösterir.
- Güncellenmiş şemayla `~/.openclaw/openclaw.json` dosyasını yeniden yazar.
- `~/.openclaw/openclaw.json` dosyasını güncellenmiş şemayla yeniden yazar.
Gateway de eski bir yapılandırma biçimi algıladığında başlangıçta doctor geçişlerini otomatik olarak çalıştırır; böylece eskimiş yapılandırmalar manuel müdahale olmadan onarılır. Cron iş deposu geçişleri `openclaw doctor --fix` tarafından işlenir.
Gateway ayrıca eski bir yapılandırma biçimi tespit ettiğinde başlangıçta doctor geçişlerini otomatik çalıştırır, böylece eski yapılandırmalar manuel müdahale olmadan onarılır. Cron iş deposu geçişleri `openclaw doctor --fix` tarafından işlenir.
Geçerli geçişler:
Mevcut geçişler:
- `routing.allowFrom``channels.whatsapp.allowFrom`
- `routing.groupChat.requireMention``channels.whatsapp/telegram/imessage.groups."*".requireMention`
@ -206,70 +212,70 @@ Bu, `DREAMS.md` dosyasını inceleme yüzeyi olarak tutarken temellendirilmiş d
- `plugins.entries.voice-call.config.streaming.sttProvider``plugins.entries.voice-call.config.streaming.provider`
- `plugins.entries.voice-call.config.streaming.openaiApiKey|sttModel|silenceDurationMs|vadThreshold``plugins.entries.voice-call.config.streaming.providers.openai.*`
- `bindings[].match.accountID``bindings[].match.accountId`
- Adlandırılmış `accounts` bulunan ancak kalıcı tek hesap üst düzey kanal değerleri olan kanallar için, bu hesap kapsamlı değerleri ilgili kanal için seçilen yükseltilmiş hesaba taşı (`accounts.default` çoğu kanal için; Matrix mevcut eşleşen adlandırılmış/varsayılan hedefi koruyabilir)
- Adlandırılmış `accounts` bulunan ancak tek hesaplı üst düzey kanal değerleri kalmış kanallar için, bu hesap kapsamlı değerleri o kanal için seçilen yükseltilmiş hesaba taşıyın (çoğu kanal için `accounts.default`; Matrix mevcut eşleşen adlandırılmış/varsayılan hedefi koruyabilir)
- `identity``agents.list[].identity`
- `agent.*``agents.defaults` + `tools.*` (tools/elevated/exec/sandbox/subagents)
- `agent.*``agents.defaults` + `tools.*` (araçlar/yükseltilmiş/exec/sandbox/alt ajanlar)
- `agent.model`/`allowedModels`/`modelAliases`/`modelFallbacks`/`imageModelFallbacks` → `agents.defaults.models` + `agents.defaults.model.primary/fallbacks` + `agents.defaults.imageModel.primary/fallbacks`
- `agents.defaults.llm` öğesini kaldır; yavaş sağlayıcı/model zaman aşımları için `models.providers.<id>.timeoutSeconds` kullan
- `agents.defaults.llm` kaldırılır; yavaş sağlayıcı/model zaman aşımları için `models.providers.<id>.timeoutSeconds` kullanın
- `browser.ssrfPolicy.allowPrivateNetwork``browser.ssrfPolicy.dangerouslyAllowPrivateNetwork`
- `browser.profiles.*.driver: "extension"``"existing-session"`
- `browser.relayBindHost` öğesini kaldır (eski extension relay ayarı)
- eski `models.providers.*.api: "openai"``"openai-completions"` (Gateway başlangıcı ayrıca `api` değeri gelecekteki veya bilinmeyen bir enum değerine ayarlanmış sağlayıcıları kapalı hata vermek yerine atlar)
- `browser.relayBindHost` kaldırılır (eski uzantı relay ayarı)
- eski `models.providers.*.api: "openai"``"openai-completions"` (gateway başlatması ayrıca `api` değeri kapalı biçimde başarısız olmak yerine gelecekteki veya bilinmeyen bir enum değerine ayarlanmış sağlayıcıları atlar)
Doctor uyarıları, çok hesaplı kanallar için hesap varsayılanı rehberliğini de içerir:
Doctor uyarıları, çok hesaplı kanallar için hesap-varsayılanı rehberliğini de içerir:
- İki veya daha fazla `channels.<channel>.accounts` girdisi `channels.<channel>.defaultAccount` veya `accounts.default` olmadan yapılandırılmışsa, doctor yedek yönlendirmenin beklenmeyen bir hesabı seçebileceği konusunda uyarır.
- İki veya daha fazla `channels.<channel>.accounts` girdisi `channels.<channel>.defaultAccount` veya `accounts.default` olmadan yapılandırılmışsa, doctor yedek yönlendirmenin beklenmeyen bir hesap seçebileceği konusunda uyarır.
- `channels.<channel>.defaultAccount` bilinmeyen bir hesap kimliğine ayarlanmışsa, doctor uyarır ve yapılandırılmış hesap kimliklerini listeler.
</Accordion>
<Accordion title="2b. OpenCode sağlayıcı geçersiz kılmaları">
<Accordion title="2b. OpenCode provider overrides">
`models.providers.opencode`, `opencode-zen` veya `opencode-go` değerlerini elle eklediyseniz, bu `@mariozechner/pi-ai` içindeki yerleşik OpenCode kataloğunu geçersiz kılar. Bu, modelleri yanlış API'ye zorlayabilir veya maliyetleri sıfırlayabilir. Doctor, geçersiz kılmayı kaldırıp model başına API yönlendirmesini ve maliyetleri geri yükleyebilmeniz için uyarır.
</Accordion>
<Accordion title="2c. Tarayıcı geçişi ve Chrome MCP hazır olma durumu">
Tarayıcı yapılandırmanız hâlâ kaldırılmış Chrome uzantısı yolunu gösteriyorsa, doctor bunu geçerli ana makine-yerel Chrome MCP bağlanma modeline normalleştirir:
<Accordion title="2c. Browser migration and Chrome MCP readiness">
Tarayıcı yapılandırmanız hâlâ kaldırılmış Chrome uzantısı yolunu gösteriyorsa, doctor bunu mevcut ana makine-yerel Chrome MCP ekleme modeline normalleştirir:
- `browser.profiles.*.driver: "extension"` değeri `"existing-session"` olur
- `browser.profiles.*.driver: "extension"` `"existing-session"` olur
- `browser.relayBindHost` kaldırılır
Doctor ayrıca `defaultProfile: "user"` veya yapılandırılmış bir `existing-session` profili kullandığınızda ana makine-yerel Chrome MCP yolunu denetler:
- varsayılan otomatik bağlanma profilleri için Google Chrome'un aynı ana makinede yüklü olup olmadığını kontrol eder
- varsayılan otomatik bağlanma profilleri için Google Chrome'un aynı ana makinede kurulu olup olmadığını kontrol eder
- algılanan Chrome sürümünü kontrol eder ve Chrome 144'ün altındaysa uyarır
- tarayıcı inceleme sayfasında uzaktan hata ayıklamayı etkinleştirmenizi hatırlatır (örneğin `chrome://inspect/#remote-debugging`, `brave://inspect/#remote-debugging` veya `edge://inspect/#remote-debugging`)
Doctor, Chrome tarafındaki ayarı sizin yerinize etkinleştiremez. Ana makine-yerel Chrome MCP hâlâ şunları gerektirir:
Doctor, Chrome tarafındaki ayarı sizin için etkinleştiremez. Ana makine-yerel Chrome MCP hâlâ şunları gerektirir:
- gateway/node ana makinesinde Chromium tabanlı bir tarayıcı 144+
- tarayıcının yerel olarak çalışması
- o tarayıcıda uzaktan hata ayıklamanın etkinleştirilmiş olması
- tarayıcıdaki ilk bağlanma onay isteminin onaylanması
- gateway/node ana makinesinde Chromium tabanlı 144+ bir tarayıcı
- tarayıcının yerel olarak çalışıyor olması
- o tarayıcıda uzaktan hata ayıklamanın etkin olması
- tarayıcıdaki ilk ekleme onay istemini onaylama
Buradaki hazır olma durumu yalnızca yerel bağlanma ön koşullarıyla ilgilidir. Existing-session geçerli Chrome MCP rota sınırlarını korur; `responsebody`, PDF dışa aktarma, indirme yakalama ve toplu eylemler gibi gelişmiş rotalar hâlâ yönetilen bir tarayıcı veya ham CDP profili gerektirir.
Buradaki hazır olma yalnızca yerel ekleme önkoşullarıyla ilgilidir. Existing-session mevcut Chrome MCP rota sınırlarını korur; `responsebody`, PDF dışa aktarma, indirme yakalama ve toplu eylemler gibi gelişmiş rotalar hâlâ yönetilen bir tarayıcı veya ham CDP profili gerektirir.
Bu kontrol Docker, sandbox, uzak tarayıcı veya diğer başsız akışlar için geçerli **değildir**. Bunlar ham CDP kullanmaya devam eder.
Bu kontrol Docker, sandbox, uzak-tarayıcı veya diğer başsız akışlar için **geçerli değildir**. Bunlar ham CDP kullanmaya devam eder.
</Accordion>
<Accordion title="2d. OAuth TLS ön koşulları">
Bir OpenAI Codex OAuth profili yapılandırıldığında, doctor yerel Node/OpenSSL TLS yığınının sertifika zincirini doğrulayabildiğini doğrulamak için OpenAI yetkilendirme uç noktasını yoklar. Yoklama bir sertifika hatasıyla başarısız olursa (örneğin `UNABLE_TO_GET_ISSUER_CERT_LOCALLY`, süresi dolmuş sertifika veya kendinden imzalı sertifika), doctor platforma özgü düzeltme rehberliği yazdırır. Homebrew Node kullanılan macOS'te düzeltme genellikle `brew postinstall ca-certificates` olur. `--deep` ile gateway sağlıklı olsa bile yoklama çalışır.
<Accordion title="2d. OAuth TLS prerequisites">
Bir OpenAI Codex OAuth profili yapılandırıldığında, doctor yerel Node/OpenSSL TLS yığınının sertifika zincirini doğrulayabildiğini doğrulamak için OpenAI yetkilendirme uç noktasını yoklar. Yoklama bir sertifika hatasıyla başarısız olursa (örneğin `UNABLE_TO_GET_ISSUER_CERT_LOCALLY`, süresi dolmuş sertifika veya kendinden imzalı sertifika), doctor platforma özel düzeltme rehberliği yazdırır. Homebrew Node kullanılan macOS'ta düzeltme genellikle `brew postinstall ca-certificates` komutudur. `--deep` ile, gateway sağlıklı olsa bile yoklama çalışır.
</Accordion>
<Accordion title="2e. Codex OAuth sağlayıcı geçersiz kılmaları">
Daha önce `models.providers.openai-codex` altında eski OpenAI taşıma ayarları eklediyseniz, bunlar yeni sürümlerin otomatik olarak kullandığı yerleşik Codex OAuth sağlayıcı yolunu gölgeleyebilir. Doctor, eski taşıma geçersiz kılmasını kaldırıp veya yeniden yazıp yerleşik yönlendirme/yedek davranışını geri alabilmeniz için Codex OAuth ile birlikte bu eski taşıma ayarlarını gördüğünde uyarır. Özel proxy'ler ve yalnızca başlık geçersiz kılmaları hâlâ desteklenir ve bu uyarıyı tetiklemez.
<Accordion title="2e. Codex OAuth provider overrides">
Daha önce `models.providers.openai-codex` altında eski OpenAI taşıma ayarları eklediyseniz, bunlar yeni sürümlerin otomatik olarak kullandığı yerleşik Codex OAuth sağlayıcı yolunu gölgeleyebilir. Doctor, Codex OAuth ile birlikte bu eski taşıma ayarlarını gördüğünde uyarır; böylece bayat taşıma geçersiz kılmasını kaldırabilir veya yeniden yazabilir ve yerleşik yönlendirme/yedek davranışını geri alabilirsiniz. Özel proxy'ler ve yalnızca başlık geçersiz kılmaları hâlâ desteklenir ve bu uyarıyı tetiklemez.
</Accordion>
<Accordion title="2f. Codex Plugin rota uyarıları">
Paketle gelen Codex Plugin etkinleştirildiğinde, doctor `openai-codex/*` birincil model referanslarının hâlâ varsayılan PI çalıştırıcısı üzerinden çözümlenip çözümlenmediğini de kontrol eder. Codex OAuth/abonelik kimlik doğrulamasını PI üzerinden istediğinizde bu kombinasyon geçerlidir, ancak yerel Codex uygulama sunucusu çalıştırma sistemiyle karıştırılması kolaydır. Doctor uyarır ve açık uygulama sunucusu biçimine işaret eder: `openai/*` artı `agentRuntime.id: "codex"` veya `OPENCLAW_AGENT_RUNTIME=codex`.
<Accordion title="2f. Codex plugin route warnings">
Paketle gelen Codex Plugin etkinleştirildiğinde, doctor `openai-codex/*` birincil model referanslarının hâlâ varsayılan PI çalıştırıcısı üzerinden çözümlenip çözümlenmediğini de kontrol eder. Codex OAuth/abonelik kimlik doğrulamasını PI üzerinden kullanmak istediğinizde bu kombinasyon geçerlidir, ancak yerel Codex uygulama-sunucusu donanımıyla karıştırılması kolaydır. Doctor uyarır ve açık uygulama-sunucusu biçimini işaret eder: `openai/*` artı `agentRuntime.id: "codex"` veya `OPENCLAW_AGENT_RUNTIME=codex`.
Doctor bunu otomatik olarak onarmaz çünkü iki rota da geçerlidir:
- `openai-codex/*` + PI, "normal OpenClaw çalıştırıcısı üzerinden Codex OAuth/abonelik kimlik doğrulamasını kullan" anlamına gelir.
- `openai/*` + `runtime: "codex"`, "yerleşik turu yerel Codex uygulama sunucusu üzerinden çalıştır" anlamına gelir.
- `/codex ...`, "sohbetten yerel bir Codex konuşmasını denetle veya bağla" anlamına gelir.
- `openai/*` + `runtime: "codex"`, "yerleşik dönüşü yerel Codex uygulama-sunucusu üzerinden çalıştır" anlamına gelir.
- `/codex ...`, "sohbetten yerel bir Codex konuşmasını kontrol et veya bağla" anlamına gelir.
- `/acp ...` veya `runtime: "acp"`, "harici ACP/acpx bağdaştırıcısını kullan" anlamına gelir.
Uyarı görünürse, amaçladığınız rotayı seçin ve yapılandırmayı elle düzenleyin. PI Codex OAuth bilinçli olarak kullanılıyorsa uyarıyı olduğu gibi bırakın.
Uyarı görünürse, amaçladığınız rotayı seçin ve yapılandırmayı elle düzenleyin. PI Codex OAuth kasıtlıysa uyarıyı olduğu gibi bırakın.
</Accordion>
<Accordion title="3. Eski durum geçişleri (disk düzeni)">
Doctor, eski disk üzeri düzenleri geçerli yapıya geçirebilir:
<Accordion title="3. Legacy state migrations (disk layout)">
Doctor eski disk üzeri düzenleri mevcut yapıya geçirebilir:
- Oturum deposu + transkriptler:
- `~/.openclaw/sessions/` konumundan `~/.openclaw/agents/<agentId>/sessions/` konumuna
@ -279,214 +285,214 @@ Bu, `DREAMS.md` dosyasını inceleme yüzeyi olarak tutarken temellendirilmiş d
- eski `~/.openclaw/credentials/*.json` konumundan (`oauth.json` hariç)
- `~/.openclaw/credentials/whatsapp/<accountId>/...` konumuna (varsayılan hesap kimliği: `default`)
Bu geçişler en iyi çabayla yapılır ve idempotenttir; doctor herhangi bir eski klasörü yedek olarak geride bıraktığında uyarılar yayımlar. Gateway/CLI ayrıca başlangıçta eski oturumları ve ajan dizinini otomatik olarak geçirir; böylece geçmiş/kimlik doğrulama/modeller elle doctor çalıştırmadan ajan başına yola yerleşir. WhatsApp kimlik doğrulaması bilinçli olarak yalnızca `openclaw doctor` üzerinden geçirilir. Konuşma sağlayıcısı/sağlayıcı haritası normalleştirmesi artık yapısal eşitlikle karşılaştırır, bu nedenle yalnızca anahtar sırası farkları artık yinelenen etkisiz `doctor --fix` değişikliklerini tetiklemez.
Bu geçişler en iyi çabayla yapılır ve idempotenttir; doctor herhangi bir eski klasörü yedek olarak geride bıraktığında uyarılar yayımlar. Gateway/CLI ayrıca başlangıçta eski oturumları ve ajan dizinini otomatik olarak geçirir; böylece geçmiş/kimlik doğrulama/modeller elle doctor çalıştırmadan ajan başına yola iner. WhatsApp kimlik doğrulaması kasıtlı olarak yalnızca `openclaw doctor` ile geçirilir. Konuşma sağlayıcısı/sağlayıcı-haritası normalleştirmesi artık yapısal eşitlikle karşılaştırır; bu nedenle yalnızca anahtar sırasından kaynaklanan farklar artık tekrarlanan işlemsiz `doctor --fix` değişikliklerini tetiklemez.
</Accordion>
<Accordion title="3a. Eski Plugin manifest geçişleri">
Doctor, kullanımdan kaldırılmış üst düzey yetenek anahtarları (`speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders`, `webSearchProviders`) için yüklü tüm Plugin manifestlerini tarar. Bulunduğunda, bunları `contracts` nesnesine taşımayı ve manifest dosyasını yerinde yeniden yazmayı önerir. Bu geçiş idempotenttir; `contracts` anahtarı zaten aynı değerlere sahipse, eski anahtar verileri çoğaltmadan kaldırılır.
<Accordion title="3a. Legacy plugin manifest migrations">
Doctor, kullanımdan kaldırılmış üst düzey yetenek anahtarları (`speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders`, `webSearchProviders`) için kurulu tüm Plugin manifestlerini tarar. Bulunduğunda, bunları `contracts` nesnesine taşımayı ve manifest dosyasını yerinde yeniden yazmayı önerir. Bu geçiş idempotenttir; `contracts` anahtarı zaten aynı değerlere sahipse, eski anahtar veriler çoğaltılmadan kaldırılır.
</Accordion>
<Accordion title="3b. Eski cron deposu geçişleri">
Doctor ayrıca zamanlayıcının uyumluluk için hâlâ kabul ettiği eski iş biçimleri için Cron iş deposunu (varsayılan olarak `~/.openclaw/cron/jobs.json` veya geçersiz kılındığında `cron.store`) kontrol eder.
<Accordion title="3b. Legacy cron store migrations">
Doctor ayrıca cron iş deposunu (varsayılan olarak `~/.openclaw/cron/jobs.json`, geçersiz kılındığında `cron.store`) zamanlayıcının uyumluluk için hâlâ kabul ettiği eski iş biçimleri açısından kontrol eder.
Geçerli cron temizlikleri şunları içerir:
Geçerli cron temizlemeleri şunları içerir:
- `jobId``id`
- `schedule.cron``schedule.expr`
- üst düzey yük alanları (`message`, `model`, `thinking`, ...) → `payload`
- üst düzey teslimat alanları (`deliver`, `channel`, `to`, `provider`, ...) → `delivery`
- yük `provider` teslimat takma adları → açık `delivery.channel`
- üst düzey teslim alanları (`deliver`, `channel`, `to`, `provider`, ...) → `delivery`
- yük `provider` teslim diğer adları → açık `delivery.channel`
- basit eski `notify: true` webhook yedek işleri → `delivery.to=cron.webhook` ile açık `delivery.mode="webhook"`
Doctor, `notify: true` işlerini yalnızca davranışı değiştirmeden yapabildiğinde otomatik olarak geçirir. Bir iş eski bildirim yedeğini mevcut webhook olmayan bir teslimat moduyla birleştirirse, doctor uyarır ve o işi elle inceleme için bırakır.
Doctor, `notify: true` işlerini yalnızca davranışı değiştirmeden yapabildiğinde otomatik geçirir. Bir iş eski bildirim yedeğini mevcut Webhook olmayan bir teslim modu ile birleştirirse, doctor uyarır ve o işi elle inceleme için bırakır.
</Accordion>
<Accordion title="3c. Oturum kilidi temizliği">
Doctor, bayat yazma kilidi dosyaları için her ajan oturum dizinini tarar; bunlar bir oturum anormal biçimde çıktığında geride kalan dosyalardır. Bulunan her kilit dosyası için şunları raporlar: yol, PID, PID'nin hâlâ canlı olup olmadığı, kilit yaşı ve bayat kabul edilip edilmediği (ölü PID veya 30 dakikadan eski). `--fix` / `--repair` modunda bayat kilit dosyalarını otomatik olarak kaldırır; aksi halde bir not yazdırır ve `--fix` ile yeniden çalıştırmanızı söyler.
<Accordion title="3c. Session lock cleanup">
Doctor, her ajan oturum dizinini bayat yazma-kilidi dosyaları için tarar; bunlar bir oturum anormal şekilde çıktığında geride kalan dosyalardır. Bulunan her kilit dosyası için şunları raporlar: yol, PID, PID'nin hâlâ canlı olup olmadığı, kilit yaşı ve bayat kabul edilip edilmediği (ölü PID veya 30 dakikadan eski). `--fix` / `--repair` modunda bayat kilit dosyalarını otomatik kaldırır; aksi takdirde bir not yazdırır ve `--fix` ile yeniden çalıştırmanızı söyler.
</Accordion>
<Accordion title="3d. Oturum transkripti dal onarımı">
Doctor, 2026.4.24 istem transkripti yeniden yazma hatasının oluşturduğu yinelenen dal biçimi için ajan oturumu JSONL dosyalarını tarar: OpenClaw dahili çalışma zamanı bağlamına sahip terk edilmiş bir kullanıcı turu ve aynı görünür kullanıcı istemini içeren etkin bir kardeş. `--fix` / `--repair` modunda, doctor etkilenen her dosyayı özgünün yanına yedekler ve transkripti etkin dala yeniden yazar; böylece gateway geçmişi ve bellek okuyucuları artık yinelenen turları görmez.
<Accordion title="3d. Session transcript branch repair">
Doctor, 2026.4.24 istem transkripti yeniden yazma hatasının oluşturduğu yinelenmiş dal biçimi için ajan oturumu JSONL dosyalarını tarar: OpenClaw dahili çalışma zamanı bağlamı bulunan terk edilmiş bir kullanıcı dönüşü ve aynı görünür kullanıcı istemini içeren etkin bir kardeş. `--fix` / `--repair` modunda, doctor etkilenen her dosyayı özgünün yanında yedekler ve transkripti etkin dala yeniden yazar; böylece gateway geçmişi ve bellek okuyucuları artık yinelenmiş dönüşler görmez.
</Accordion>
<Accordion title="4. Durum bütünlüğü kontrolleri (oturum kalıcılığı, yönlendirme ve güvenlik)">
Durum dizini operasyonel beyin sapıdır. Kaybolursa oturumları, kimlik bilgilerini, günlükleri ve yapılandırmayı kaybedersiniz (başka yerde yedekleriniz yoksa).
<Accordion title="4. State integrity checks (session persistence, routing, and safety)">
Durum dizini operasyonel beyin sapıdır. Kaybolursa, oturumları, kimlik bilgilerini, günlükleri ve yapılandırmayı kaybedersiniz (başka yerde yedekleriniz yoksa).
Doctor şunları kontrol eder:
- **Durum dizini eksik**: yıkıcı durum kaybı hakkında uyarır, dizini yeniden oluşturmayı sorar ve eksik verileri kurtaramayacağını hatırlatır.
- **Durum dizini izinleri**: yazılabilirliği doğrular; izinleri onarmayı önerir (ve sahip/grup uyuşmazlığı algılandığında bir `chown` ipucu yayımlar).
- **macOS bulutla eşitlenen durum dizini**: durum iCloud Drive (`~/Library/Mobile Documents/com~apple~CloudDocs/...`) veya `~/Library/CloudStorage/...` altında çözümlendiğinde uyarır, çünkü eşitleme destekli yollar daha yavaş G/Ç'ye ve kilit/eşitleme yarışlarına neden olabilir.
- **Linux SD veya eMMC durum dizini**: durum bir `mmcblk*` bağlama kaynağına çözümlendiğinde uyarır, çünkü SD veya eMMC destekli rastgele G/Ç oturum ve kimlik bilgisi yazımları altında daha yavaş olabilir ve daha hızlı yıpranabilir.
- **Oturum dizinleri eksik**: geçmişi kalıcı kılmak ve `ENOENT` çökmelerini önlemek için `sessions/` ve oturum deposu dizini gereklidir.
- **Transkript uyuşmazlığı**: son oturum girdilerinin transkript dosyaları eksik olduğunda uyarır.
- **Ana oturum "1 satırlı JSONL"**: ana transkriptte yalnızca bir satır olduğunda işaretler (geçmiş birikmiyor).
- **Durum dizini eksik**: yıkıcı durum kaybı konusunda uyarır, dizini yeniden oluşturmanızı ister ve eksik verileri kurtaramayacağını hatırlatır.
- **Durum dizini izinleri**: yazılabilirliği doğrular; izinleri onarmayı teklif eder (sahip/grup uyumsuzluğu algılandığında bir `chown` ipucu verir).
- **macOS bulutla eşitlenen durum dizini**: durum iCloud Drive (`~/Library/Mobile Documents/com~apple~CloudDocs/...`) veya `~/Library/CloudStorage/...` altında çözümlendiğinde uyarır, çünkü eşitleme destekli yollar daha yavaş G/Ç ve kilit/eşitleme yarışlarına neden olabilir.
- **Linux SD veya eMMC durum dizini**: durum bir `mmcblk*` bağlama kaynağına çözümlendiğinde uyarır, çünkü SD veya eMMC destekli rastgele G/Ç, oturum ve kimlik bilgisi yazmaları sırasında daha yavaş olabilir ve daha hızlı yıpranabilir.
- **Oturum dizinleri eksik**: geçmişi kalıcı tutmak ve `ENOENT` çökmelerini önlemek için `sessions/` ve oturum deposu dizini gereklidir.
- **Transkript uyuşmazlığı**: son oturum girdilerinde eksik transkript dosyaları olduğunda uyarır.
- **Ana oturum "1 satırlık JSONL"**: ana transkript yalnızca bir satıra sahipse işaretler (geçmiş birikmiyordur).
- **Birden çok durum dizini**: ev dizinleri arasında birden fazla `~/.openclaw` klasörü bulunduğunda veya `OPENCLAW_STATE_DIR` başka bir yeri gösterdiğinde uyarır (geçmiş kurulumlar arasında bölünebilir).
- **Uzak mod hatırlatıcısı**: `gateway.mode=remote` ise, doctor bunu uzak ana makinede çalıştırmanızı hatırlatır (durum orada bulunur).
- **Yapılandırma dosyası izinleri**: `~/.openclaw/openclaw.json` grup/dünya tarafından okunabiliyorsa uyarır ve `600` değerine sıkılaştırmayı önerir.
- **Uzak mod hatırlatıcısı**: `gateway.mode=remote` ise doctor, bunu uzak ana makinede çalıştırmanızı hatırlatır (durum orada bulunur).
- **Yapılandırma dosyası izinleri**: `~/.openclaw/openclaw.json` grup/herkes tarafından okunabilir durumdaysa uyarır ve `600` olarak sıkılaştırmayı teklif eder.
</Accordion>
<Accordion title="5. Model kimlik doğrulama sağlığı (OAuth sona ermesi)">
Doctor, kimlik doğrulama deposundaki OAuth profillerini inceler, belirteçlerin süresi dolmak üzereyken/dolduğunda uyarır ve güvenli olduğunda bunları yenileyebilir. Anthropic OAuth/belirteç profili bayatsa, bir Anthropic API anahtarı veya Anthropic kurulum belirteci yolunu önerir. Yenileme istemleri yalnızca etkileşimli çalışırken (TTY) görünür; `--non-interactive` yenileme denemelerini atlar.
<Accordion title="5. Model kimlik doğrulama sağlığı (OAuth süresi dolma)">
Doctor, kimlik doğrulama deposundaki OAuth profillerini inceler, tokenlerin süresi dolmak üzereyken/dolduğunda uyarır ve güvenli olduğunda yenileyebilir. Anthropic OAuth/token profili eskiyse, bir Anthropic API anahtarı veya Anthropic setup-token yolunu önerir. Yenileme istemleri yalnızca etkileşimli çalışırken (TTY) görünür; `--non-interactive` yenileme denemelerini atlar.
Bir OAuth yenilemesi kalıcı olarak başarısız olduğunda (örneğin `refresh_token_reused`, `invalid_grant` veya bir sağlayıcının yeniden oturum açmanızı söylemesi), doctor yeniden kimlik doğrulamanın gerekli olduğunu bildirir ve çalıştırılacak tam `openclaw models auth login --provider ...` komutunu yazdırır.
OAuth yenilemesi kalıcı olarak başarısız olduğunda (örneğin `refresh_token_reused`, `invalid_grant` veya bir sağlayıcının yeniden oturum açmanızı söylemesi), doctor yeniden kimlik doğrulamanın gerekli olduğunu bildirir ve çalıştırılacak tam `openclaw models auth login --provider ...` komutunu yazdırır.
Doctor ayrıca şu nedenlerle geçici olarak kullanılamayan kimlik doğrulama profillerini bildirir:
- kısa bekleme süreleri (hız sınırları/zaman aşımları/kimlik doğrulama hataları)
- daha uzun devre dışı bırakmalar (faturalandırma/kredi hataları)
- daha uzun devre dışı bırakmalar (faturalama/kredi hataları)
</Accordion>
<Accordion title="6. Hooks model doğrulaması">
`hooks.gmail.model` ayarlanmışsa doctor, model başvurusunu katalog ve allowlist'e göre doğrular ve çözümlenmeyeceğinde veya izin verilmediğinde uyarır.
`hooks.gmail.model` ayarlanmışsa doctor, model referansını katalog ve izin listesine göre doğrular ve çözümlenmeyeceğinde veya izin verilmediğinde uyarır.
</Accordion>
<Accordion title="7. Sandbox imajı onarımı">
Sandbox kullanımı etkinleştirildiğinde doctor, Docker imajlarını denetler ve geçerli imaj eksikse oluşturmayı veya eski adlara geçmeyi önerir.
<Accordion title="7. Korumalı alan görüntüsü onarımı">
Korumalı alan etkinleştirildiğinde doctor, Docker görüntülerini denetler ve geçerli görüntü eksikse derlemeyi veya eski adlara geçmeyi teklif eder.
</Accordion>
<Accordion title="7b. Paketle gelen Plugin çalışma zamanı bağımlılıkları">
Doctor, çalışma zamanı bağımlılıklarını yalnızca geçerli yapılandırmada etkin olan veya paketli manifest varsayılanı tarafından etkinleştirilen paketli pluginler için doğrular; örneğin `plugins.entries.discord.enabled: true`, eski `channels.discord.enabled: true`, yapılandırılmış `models.providers.*` / aracı model başvuruları veya sağlayıcı sahipliği olmayan varsayılan olarak etkin bir paketli plugin. Eksik olan varsa doctor paketleri bildirir ve bunları `openclaw doctor --fix` / `openclaw doctor --repair` modunda yükler. Harici pluginler hâlâ `openclaw plugins install` / `openclaw plugins update` kullanır; doctor rastgele plugin yolları için bağımlılık yüklemez.
<Accordion title="7b. Paketli Plugin çalışma zamanı bağımlılıkları">
Doctor, çalışma zamanı bağımlılıklarını yalnızca geçerli yapılandırmada etkin olan veya paketli manifest varsayılanıyla etkinleştirilen paketli Plugin'ler için doğrular; örneğin `plugins.entries.discord.enabled: true`, eski `channels.discord.enabled: true`, yapılandırılmış `models.providers.*` / aracı model referansları veya sağlayıcı sahipliği olmayan varsayılan olarak etkin bir paketli Plugin. Eksik olan varsa doctor paketleri bildirir ve bunları `openclaw doctor --fix` / `openclaw doctor --repair` modunda yükler. Harici Plugin'ler hâlâ `openclaw plugins install` / `openclaw plugins update` kullanır; doctor keyfi Plugin yolları için bağımlılık yüklemez.
Doctor onarımı sırasında, paketli çalışma zamanı bağımlılığı npm yüklemeleri TTY oturumlarında dönen gösterge ilerlemesi, borulanmış/başsız çıktıda ise periyodik satır ilerlemesi bildirir. Gateway ve yerel CLI de paketli bir plugini içe aktarmadan önce etkin paketli plugin çalışma zamanı bağımlılıklarını isteğe bağlı olarak onarabilir. Bu yüklemeler plugin çalışma zamanı yükleme köküyle sınırlıdır, betikler devre dışıyken çalışır, paket kilidi yazmaz ve eşzamanlı CLI veya Gateway başlatmaları aynı `node_modules` ağacını aynı anda değiştirmesin diye yükleme kökü kilidiyle korunur.
Doctor onarımı sırasında, paketli çalışma zamanı bağımlılığı npm yüklemeleri TTY oturumlarında dönen ilerleme göstergesi, borulu/başsız çıktıda ise dönemsel satır ilerlemesi bildirir. Gateway başlatma ve yapılandırma yeniden yükleme, paketli Plugin çalışma zamanı modüllerini içe aktarmadan önce Plugin planı moduna girer; normal çalışma zamanı içe aktarmaları yalnızca doğrulama amaçlıdır ve paket yöneticisi onarımı başlatmaz. Bu yüklemeler Plugin çalışma zamanı yükleme köküyle sınırlıdır, betikler devre dışı çalıştırılır, paket kilidi yazmaz ve eşzamanlı CLI veya Gateway başlatmaları aynı `node_modules` ağacını aynı anda değiştirmesin diye bir yükleme kökü kilidiyle korunur. Öldürülmüş Docker/konteyner başlatmalarından kalan eski kilitler, sahip meta verileri geçerli bir süreç örneğini kanıtlayamadığında ve kilit dosyaları eski olduğunda geri alınır.
</Accordion>
<Accordion title="8. Gateway hizmet geçişleri ve temizleme ipuçları">
Doctor eski gateway hizmetlerini (launchd/systemd/schtasks) algılar ve bunları kaldırıp geçerli gateway bağlantı noktasını kullanarak OpenClaw hizmetini yüklemeyi önerir. Ayrıca ek gateway benzeri hizmetleri tarayabilir ve temizleme ipuçları yazdırabilir. Profil adı verilmiş OpenClaw gateway hizmetleri birinci sınıf kabul edilir ve "ek" olarak işaretlenmez.
<Accordion title="8. Gateway hizmet geçişleri ve temizlik ipuçları">
Doctor, eski Gateway hizmetlerini (launchd/systemd/schtasks) algılar ve bunları kaldırıp geçerli Gateway bağlantı noktasını kullanarak OpenClaw hizmetini yüklemeyi teklif eder. Ayrıca ek Gateway benzeri hizmetleri tarayıp temizlik ipuçları yazdırabilir. Profil adlandırmalı OpenClaw Gateway hizmetleri birinci sınıf kabul edilir ve "ek" olarak işaretlenmez.
Linux'ta, kullanıcı düzeyi gateway hizmeti eksikse ancak sistem düzeyi bir OpenClaw gateway hizmeti varsa doctor otomatik olarak ikinci bir kullanıcı düzeyi hizmet yüklemez. `openclaw gateway status --deep` veya `openclaw doctor --deep` ile inceleyin, ardından yineleneni kaldırın veya sistem denetleyicisi gateway yaşam döngüsüne sahipse `OPENCLAW_SERVICE_REPAIR_POLICY=external` ayarlayın.
Linux'ta, kullanıcı düzeyi Gateway hizmeti eksikse ancak sistem düzeyi bir OpenClaw Gateway hizmeti varsa doctor otomatik olarak ikinci bir kullanıcı düzeyi hizmet yüklemez. `openclaw gateway status --deep` veya `openclaw doctor --deep` ile inceleyin, ardından yineleneni kaldırın ya da Gateway yaşam döngüsünü bir sistem gözetmeni yönetiyorsa `OPENCLAW_SERVICE_REPAIR_POLICY=external` ayarlayın.
</Accordion>
<Accordion title="8b. Başlangıç Matrix geçişi">
Bir Matrix kanal hesabında bekleyen veya işlem yapılabilir eski durum geçişi varsa doctor (`--fix` / `--repair` modunda) geçiş öncesi bir anlık görüntü oluşturur ve ardından en iyi çaba geçiş adımlarını çalıştırır: eski Matrix durum geçişi ve eski şifreli durum hazırlığı. Her iki adım da ölümcül değildir; hatalar günlüğe yazılır ve başlangıç devam eder. Salt okunur modda (`--fix` olmadan `openclaw doctor`) bu denetim tamamen atlanır.
Bir Matrix kanal hesabında bekleyen veya uygulanabilir bir eski durum geçişi olduğunda doctor (`--fix` / `--repair` modunda), geçiş öncesi bir anlık görüntü oluşturur ve ardından en iyi çaba geçiş adımlarını çalıştırır: eski Matrix durum geçişi ve eski şifreli durum hazırlığı. Her iki adım da ölümcül değildir; hatalar günlüğe yazılır ve başlatma devam eder. Salt okunur modda (`--fix` olmadan `openclaw doctor`) bu denetim tamamen atlanır.
</Accordion>
<Accordion title="8c. Cihaz eşleştirme ve kimlik doğrulama sapması">
Doctor artık normal sağlık geçişinin bir parçası olarak cihaz eşleştirme durumunu inceler.
Doctor artık normal sağlık geçişinin parçası olarak cihaz eşleştirme durumunu inceler.
Bildirdikleri:
- bekleyen ilk kez eşleştirme istekleri
- zaten eşleştirilmiş cihazlar için bekleyen rol yükseltmeleri
- zaten eşleştirilmiş cihazlar için bekleyen kapsam yükseltmeleri
- cihaz kimliği hâlâ eşleşirken cihaz kimliğinin artık onaylı kayıtla eşleşmediği public-key uyuşmazlığı onarımları
- onaylı bir rol için etkin token'ı olmayan eşleştirilmiş kayıtlar
- kapsamları onaylı eşleştirme temel çizgisinin dışına kayan eşleştirilmiş token'lar
- geçerli makine için gateway tarafı token rotasyonundan önce gelen veya eski kapsam meta verisi taşıyan yerel önbelleğe alınmış cihaz token'ı girdileri
- cihaz kimliği hâlâ eşleşirken cihaz kimliğinin artık onaylı kayıtla eşleşmediği ortak anahtar uyuşmazlığı onarımları
- onaylı bir rol için etkin tokeni eksik eşleştirilmiş kayıtlar
- kapsamları onaylı eşleştirme taban çizgisinin dışına sapan eşleştirilmiş tokenler
- geçerli makine için Gateway tarafı token rotasyonundan daha eski olan veya eski kapsam meta verisi taşıyan yerel önbelleğe alınmış cihaz-token girdileri
Doctor, eşleştirme isteklerini otomatik onaylamaz veya cihaz token'larını otomatik döndürmez. Bunun yerine kesin sonraki adımları yazdırır:
Doctor eşleştirme isteklerini otomatik onaylamaz veya cihaz tokenlerini otomatik döndürmez. Bunun yerine tam sonraki adımları yazdırır:
- bekleyen istekleri `openclaw devices list` ile inceleyin
- kesin isteği `openclaw devices approve <requestId>` ile onaylayın
- yeni bir token'ı `openclaw devices rotate --device <deviceId> --role <role>` ile döndürün
- tam isteği `openclaw devices approve <requestId>` ile onaylayın
- `openclaw devices rotate --device <deviceId> --role <role>` ile yeni bir token döndürün
- eski bir kaydı `openclaw devices remove <deviceId>` ile kaldırıp yeniden onaylayın
Bu, yaygın "zaten eşleştirilmiş ama hâlâ eşleştirme gerekiyor hatası alınıyor" boşluğunu kapatır: doctor artık ilk kez eşleştirmeyi bekleyen rol/kapsam yükseltmelerinden ve eski token/cihaz kimliği sapmasından ayırır.
Bu, yaygın "zaten eşleştirildi ama hâlâ eşleştirme gerekli alınıyor" boşluğunu kapatır: doctor artık ilk kez eşleştirmeyi bekleyen rol/kapsam yükseltmelerinden ve eski token/cihaz kimliği sapmasından ayırır.
</Accordion>
<Accordion title="9. Güvenlik uyarıları">
Doctor, bir sağlayıcı allowlist olmadan DM'lere açıksa veya bir ilke tehlikeli şekilde yapılandırılmışsa uyarılar yayımlar.
Doctor, bir sağlayıcı izin listesi olmadan DM'lere açık olduğunda veya bir ilke tehlikeli bir şekilde yapılandırıldığında uyarılar verir.
</Accordion>
<Accordion title="10. systemd linger (Linux)">
systemd kullanıcı hizmeti olarak çalışıyorsa doctor, gateway'in oturum kapatıldıktan sonra canlı kalması için lingering'in etkin olmasını sağlar.
systemd kullanıcı hizmeti olarak çalışıyorsa doctor, Gateway oturum kapatma sonrasında canlı kalsın diye linger etkin olduğundan emin olur.
</Accordion>
<Accordion title="11. Çalışma alanı durumu (skills, pluginler ve eski dizinler)">
Doctor, varsayılan aracı için çalışma alanı durumunun özetini yazdırır:
<Accordion title="11. Çalışma alanı durumu (Skills, Plugin'ler ve eski dizinler)">
Doctor, varsayılan aracı için çalışma alanı durumunun bir özetini yazdırır:
- **Skills durumu**: uygun, gereksinimleri eksik ve allowlist tarafından engellenmiş Skills sayılarını verir.
- **Eski çalışma alanı dizinleri**: `~/openclaw` veya diğer eski çalışma alanı dizinleri geçerli çalışma alanıyla birlikte varsa uyarır.
- **Plugin durumu**: etkin/devre dışı/hatalı pluginleri sayar; hatalar için plugin kimliklerini listeler; paket plugin yeteneklerini bildirir.
- **Plugin uyumluluk uyarıları**: geçerli çalışma zamanıyla uyumluluk sorunları olan pluginleri işaretler.
- **Plugin tanılamaları**: plugin kayıt defterinin yükleme zamanında yayımladığı uyarı veya hataları yüzeye çıkarır.
- **Skills durumu**: uygun, gereksinimleri eksik ve izin listesi tarafından engellenmiş Skills sayısını sayar.
- **Eski çalışma alanı dizinleri**: geçerli çalışma alanının yanında `~/openclaw` veya diğer eski çalışma alanı dizinleri bulunduğunda uyarır.
- **Plugin durumu**: etkin/devre dışı/hatalı Plugin'leri sayar; hatalar için Plugin kimliklerini listeler; paket Plugin yeteneklerini bildirir.
- **Plugin uyumluluk uyarıları**: geçerli çalışma zamanı ile uyumluluk sorunları olan Plugin'leri işaretler.
- **Plugin tanılamaları**: Plugin kayıt defteri tarafından yayımlanan yükleme zamanı uyarılarını veya hatalarını yüzeye çıkarır.
</Accordion>
<Accordion title="11b. Bootstrap dosya boyutu">
Doctor, çalışma alanı bootstrap dosyalarının (örneğin `AGENTS.md`, `CLAUDE.md` veya diğer enjekte edilen bağlam dosyaları) yapılandırılmış karakter bütçesine yakın ya da bunun üzerinde olup olmadığını denetler. Dosya başına ham ve enjekte edilmiş karakter sayılarını, kısaltma yüzdesini, kısaltma nedenini (`max/file` veya `max/total`) ve toplam enjekte edilmiş karakterleri toplam bütçenin bir kesri olarak bildirir. Dosyalar kısaltıldığında veya sınıra yakın olduğunda doctor, `agents.defaults.bootstrapMaxChars` ve `agents.defaults.bootstrapTotalMaxChars` ayarlarını düzenlemek için ipuçları yazdırır.
Doctor, çalışma alanı bootstrap dosyalarının (örneğin `AGENTS.md`, `CLAUDE.md` veya diğer enjekte edilen bağlam dosyaları) yapılandırılmış karakter bütçesine yakın veya üzerinde olup olmadığını denetler. Dosya başına ham ve enjekte edilmiş karakter sayılarını, kesilme yüzdesini, kesilme nedenini (`max/file` veya `max/total`) ve toplam enjekte edilmiş karakterleri toplam bütçenin bir oranı olarak bildirir. Dosyalar kesildiğinde veya sınıra yaklaştığında doctor, `agents.defaults.bootstrapMaxChars` ve `agents.defaults.bootstrapTotalMaxChars` ayarlarını düzenlemek için ipuçları yazdırır.
</Accordion>
<Accordion title="11d. Eski kanal plugini temizliği">
`openclaw doctor --fix` eksik bir kanal pluginini kaldırdığında, o plugine başvuran askıda kanal kapsamlı yapılandırmayı da kaldırır: `channels.<id>` girdileri, kanalı adlandıran heartbeat hedefleri ve `agents.*.models["<channel>/*"]` geçersiz kılmaları. Bu, kanal çalışma zamanı yok olmuşken yapılandırmanın hâlâ gateway'den ona bağlanmasını istediği Gateway önyükleme döngülerini önler.
<Accordion title="11d. Eski kanal Plugin temizliği">
`openclaw doctor --fix` eksik bir kanal Plugin'ini kaldırdığında, o Plugin'e başvuran sarkan kanal kapsamlı yapılandırmayı da kaldırır: `channels.<id>` girdileri, kanalı adlandıran Heartbeat hedefleri ve `agents.*.models["<channel>/*"]` geçersiz kılmaları. Bu, kanal çalışma zamanı yokken yapılandırmanın Gateway'den hâlâ ona bağlanmasını istediği Gateway başlatma döngülerini önler.
</Accordion>
<Accordion title="11c. Kabuk tamamlama">
Doctor, geçerli kabuk (zsh, bash, fish veya PowerShell) için sekmeyle tamamlamanın yüklü olup olmadığını denetler:
Doctor, geçerli kabuk (zsh, bash, fish veya PowerShell) için sekme tamamlamanın yüklü olup olmadığını denetler:
- Kabuk profili yavaş bir dinamik tamamlama kalıbı (`source <(openclaw completion ...)`) kullanıyorsa doctor bunu daha hızlı önbelleğe alınmış dosya varyantına yükseltir.
- Tamamlama profilde yapılandırılmışsa ancak önbellek dosyası eksikse doctor önbelleği otomatik olarak yeniden oluşturur.
- Hiç tamamlama yapılandırılmamışsa doctor bunu yüklemeyi ister (yalnızca etkileşimli mod; `--non-interactive` ile atlanır).
- Hiç tamamlama yapılandırılmamışsa doctor yüklemeyi ister (yalnızca etkileşimli mod; `--non-interactive` ile atlanır).
Önbelleği elle yeniden oluşturmak için `openclaw completion --write-state` çalıştırın.
</Accordion>
<Accordion title="12. Gateway kimlik doğrulama denetimleri (yerel token)">
Doctor, yerel gateway token kimlik doğrulama hazırlığını denetler.
Doctor, yerel Gateway token kimlik doğrulama hazır oluşunu denetler.
- Token modu bir token gerektiriyorsa ve hiçbir token kaynağı yoksa doctor bir tane oluşturmayı önerir.
- `gateway.auth.token` SecretRef tarafından yönetiliyor ancak kullanılamıyorsa doctor uyarır ve bunu düz metinle üzerine yazmaz.
- `openclaw doctor --generate-gateway-token`, yalnızca hiçbir token SecretRef yapılandırılmadığında oluşturmayı zorlar.
- Token modunun bir tokene ihtiyacı varsa ve token kaynağı yoksa doctor bir tane oluşturmayı teklif eder.
- `gateway.auth.token` SecretRef tarafından yönetiliyorsa ancak kullanılamıyorsa doctor uyarır ve onu düz metinle üzerine yazmaz.
- `openclaw doctor --generate-gateway-token`, yalnızca yapılandırılmış bir token SecretRef yoksa oluşturmayı zorlar.
</Accordion>
<Accordion title="12b. Salt okunur SecretRef duyarlı onarımlar">
Bazı onarım akışlarının, çalışma zamanı hızlı başarısız olma davranışını zayıflatmadan yapılandırılmış kimlik bilgilerini incelemesi gerekir.
<Accordion title="12b. Salt okunur SecretRef farkındalıklı onarımlar">
Bazı onarım akışlarının, çalışma zamanı fail-fast davranışını zayıflatmadan yapılandırılmış kimlik bilgilerini incelemesi gerekir.
- `openclaw doctor --fix` artık hedefli yapılandırma onarımları için durum ailesi komutlarıyla aynı salt okunur SecretRef özet modelini kullanır.
- Örnek: Telegram `allowFrom` / `groupAllowFrom` `@username` onarımı, kullanılabildiğinde yapılandırılmış bot kimlik bilgilerini kullanmaya çalışır.
- Telegram bot token'ı SecretRef üzerinden yapılandırılmış ancak geçerli komut yolunda kullanılamıyorsa doctor, kimlik bilgisinin yapılandırılmış-ama-kullanılamaz olduğunu bildirir ve token'ı eksikmiş gibi yanlış bildirmek veya çökme yerine otomatik çözümlemeyi atlar.
- Örnek: Telegram `allowFrom` / `groupAllowFrom` `@username` onarımı, mevcut olduğunda yapılandırılmış bot kimlik bilgilerini kullanmayı dener.
- Telegram bot tokeni SecretRef üzerinden yapılandırılmışsa ancak geçerli komut yolunda kullanılamıyorsa doctor, kimlik bilgisinin yapılandırılmış-ama-kullanılamaz olduğunu bildirir ve çökme veya tokeni eksik bildirme yerine otomatik çözümlemeyi atlar.
</Accordion>
<Accordion title="13. Gateway sağlık denetimi + yeniden başlatma">
Doctor bir sağlık denetimi çalıştırır ve gateway sağlıksız görünüyorsa yeniden başlatmayı önerir.
Doctor bir sağlık denetimi çalıştırır ve sağlıksız göründüğünde Gateway'i yeniden başlatmayı teklif eder.
</Accordion>
<Accordion title="13b. Bellek araması hazırlığı">
Doctor, yapılandırılmış bellek arama embedding sağlayıcısının varsayılan aracı için hazır olup olmadığını denetler. Davranış, yapılandırılmış arka uca ve sağlayıcıya bağlıdır:
<Accordion title="13b. Bellek arama hazır oluşu">
Doctor, yapılandırılmış bellek arama gömme sağlayıcısının varsayılan aracı için hazır olup olmadığını denetler. Davranış, yapılandırılmış arka uca ve sağlayıcıya bağlıdır:
- **QMD arka ucu**: `qmd` ikilisinin mevcut ve başlatılabilir olup olmadığını yoklar. Değilse npm paketi ve elle ikili yolu seçeneği dahil düzeltme rehberliği yazdırır.
- **Açık yerel sağlayıcı**: yerel model dosyası veya tanınan bir uzak/indirilebilir model URL'si olup olmadığını denetler. Eksikse uzak sağlayıcıya geçmeyi önerir.
- **Açık uzak sağlayıcı** (`openai`, `voyage` vb.): ortamda veya auth deposunda bir API anahtarının bulunduğunu doğrular. Eksikse işlem yapılabilir düzeltme ipuçları yazdırır.
- **QMD arka ucu**: `qmd` ikilisinin kullanılabilir ve başlatılabilir olup olmadığını yoklar. Değilse npm paketi ve elle ikili yolu seçeneği dahil düzeltme kılavuzu yazdırır.
- **Açık yerel sağlayıcı**: yerel model dosyası veya tanınan bir uzak/indirilebilir model URL'si denetler. Eksikse uzak sağlayıcıya geçmeyi önerir.
- **Açık uzak sağlayıcı** (`openai`, `voyage`, vb.): ortamda veya kimlik doğrulama deposunda bir API anahtarı bulunduğunu doğrular. Eksikse uygulanabilir düzeltme ipuçları yazdırır.
- **Otomatik sağlayıcı**: önce yerel model kullanılabilirliğini denetler, ardından otomatik seçim sırasındaki her uzak sağlayıcıyı dener.
Önbelleğe alınmış bir gateway yoklama sonucu mevcut olduğunda (denetim sırasında gateway sağlıklıydı), doctor sonucunu CLI tarafından görülebilen yapılandırmayla çapraz başvurur ve varsa tutarsızlığı belirtir. Doctor varsayılan yolda yeni bir embedding ping başlatmaz; canlı sağlayıcı denetimi istediğinizde derin bellek durumu komutunu kullanın.
Önbelleğe alınmış bir Gateway yoklama sonucu mevcut olduğunda (Gateway denetim sırasında sağlıklıydı), doctor sonucunu CLI tarafından görülebilen yapılandırmayla çapraz referanslar ve varsa tutarsızlıkları belirtir. Doctor, varsayılan yolda yeni bir embedding pingi başlatmaz; canlı sağlayıcı denetimi istediğinizde derin bellek durumu komutunu kullanın.
Çalışma zamanında embedding hazırlığını doğrulamak için `openclaw memory status --deep` kullanın.
Çalışma zamanında embedding hazır olma durumunu doğrulamak için `openclaw memory status --deep` kullanın.
</Accordion>
<Accordion title="14. Kanal durumu uyarıları">
Gateway sağlıklıysa doctor bir kanal durumu yoklaması çalıştırır ve önerilen düzeltmelerle uyarıları bildirir.
Gateway sağlıklıysa, doctor bir kanal durumu yoklaması çalıştırır ve önerilen düzeltmelerle birlikte uyarıları bildirir.
</Accordion>
<Accordion title="15. Supervisor yapılandırma denetimi + onarım">
Doctor, yüklü supervisor yapılandırmasında (launchd/systemd/schtasks) eksik veya güncel olmayan varsayılanları (ör. systemd network-online bağımlılıkları ve yeniden başlatma gecikmesi) denetler. Bir uyuşmazlık bulduğunda güncelleme önerir ve hizmet dosyasını/görevini geçerli varsayılanlara göre yeniden yazabilir.
Doctor, yüklü supervisor yapılandırmasını (launchd/systemd/schtasks) eksik veya güncel olmayan varsayılanlarısından denetler (ör. systemd network-online bağımlılıkları ve yeniden başlatma gecikmesi). Bir uyumsuzluk bulduğunda güncelleme önerir ve servis dosyasını/görevi geçerli varsayılanlara göre yeniden yazabilir.
Notlar:
- `openclaw doctor`, supervisor yapılandırmasını yeniden yazmadan önce istem gösterir.
- `openclaw doctor`, supervisor yapılandırmasını yeniden yazmadan önce onay ister.
- `openclaw doctor --yes`, varsayılan onarım istemlerini kabul eder.
- `openclaw doctor --repair`, önerilen düzeltmeleri istem göstermeden uygular.
- `openclaw doctor --repair --force`, özel supervisor yapılandırmalarının üzerine yazar.
- `OPENCLAW_SERVICE_REPAIR_POLICY=external`, Gateway hizmet yaşam döngüsü için doctor aracını salt okunur tutar. Hizmet sağlığını yine raporlar ve hizmet dışı onarımları çalıştırır, ancak bu yaşam döngüsüne harici bir supervisor sahip olduğu için hizmet kurma/başlatma/yeniden başlatma/bootstrap, supervisor yapılandırması yeniden yazımları ve eski hizmet temizliğini atlar.
- Linux'ta doctor, eşleşen systemd Gateway birimi etkinken komut/giriş noktası meta verilerini yeniden yazmaz. Ayrıca yinelenen hizmet taraması sırasında etkin olmayan eski olmayan ek Gateway benzeri birimleri yok sayar; böylece eşlikçi hizmet dosyaları temizlik gürültüsü oluşturmaz.
- Jeton kimlik doğrulaması bir jeton gerektiriyorsa ve `gateway.auth.token` SecretRef tarafından yönetiliyorsa, doctor hizmet kurulumu/onarımı SecretRef'i doğrular ancak çözümlenmiş düz metin jeton değerlerini supervisor hizmet ortamı meta verilerine kalıcı olarak yazmaz.
- Doctor, eski LaunchAgent, systemd veya Windows Scheduled Task kurulumlarının satır içine gömdüğü yönetilen `.env`/SecretRef destekli hizmet ortamı değerlerini algılar ve hizmet meta verilerini bu değerler supervisor tanımı yerine çalışma zamanı kaynağından yüklenecek şekilde yeniden yazar.
- Doctor, `gateway.port` değiştikten sonra hizmet komutunun hâlâ eski bir `--port` değerini sabitlediğini algılar ve hizmet meta verilerini geçerli porta yeniden yazar.
- Jeton kimlik doğrulaması bir jeton gerektiriyorsa ve yapılandırılmış jeton SecretRef'i çözümlenemiyorsa, doctor kurulum/onarım yolunu uygulanabilir rehberlikle engeller.
- `OPENCLAW_SERVICE_REPAIR_POLICY=external`, Gateway servis yaşam döngüsü için doctor'ı salt okunur tutar. Servis sağlığını bildirmeye ve servis dışı onarımları çalıştırmaya devam eder, ancak bu yaşam döngüsünün sahibi harici bir supervisor olduğu için servis kurulumunu/başlatmayı/yeniden başlatmayı/bootstrap işlemini, supervisor yapılandırması yeniden yazımlarını ve eski servis temizliğini atlar.
- Linux'ta doctor, eşleşen systemd Gateway birimi etkin durumdayken komut/giriş noktası meta verilerini yeniden yazmaz. Ayrıca, yinelenen servis taraması sırasında etkin olmayan eski olmayan ek Gateway benzeri birimleri yok sayar; böylece eşlikçi servis dosyaları temizleme gürültüsü oluşturmaz.
- Token kimlik doğrulaması bir token gerektiriyorsa ve `gateway.auth.token` SecretRef tarafından yönetiliyorsa, doctor servis kurulumu/onarımı SecretRef'i doğrular ancak çözümlenmiş düz metin token değerlerini supervisor servis ortamı meta verilerine kalıcı olarak yazmaz.
- Doctor, eski LaunchAgent, systemd veya Windows Scheduled Task kurulumlarının satır içine gömdüğü yönetilen `.env`/SecretRef destekli servis ortamı değerlerini algılar ve servis meta verilerini, bu değerler supervisor tanımı yerine çalışma zamanı kaynağından yüklenecek şekilde yeniden yazar.
- Doctor, `gateway.port` değiştikten sonra servis komutunun hâlâ eski bir `--port` sabitlediğini algılar ve servis meta verilerini geçerli porta göre yeniden yazar.
- Token kimlik doğrulaması bir token gerektiriyorsa ve yapılandırılan token SecretRef çözümlenemiyorsa, doctor kurulum/onarım yolunu uygulanabilir yönlendirmeyle engeller.
- Hem `gateway.auth.token` hem de `gateway.auth.password` yapılandırılmışsa ve `gateway.auth.mode` ayarlanmamışsa, doctor mod açıkça ayarlanana kadar kurulum/onarımı engeller.
- Linux kullanıcı systemd birimleri için doctor jeton sapması denetimleri artık hizmet kimlik doğrulama meta verilerini karşılaştırırken hem `Environment=` hem de `EnvironmentFile=` kaynaklarını içerir.
- Doctor hizmet onarımları, yapılandırma en son daha yeni bir sürüm tarafından yazılmışsa eski bir OpenClaw ikilisinden gelen Gateway hizmetini yeniden yazmayı, durdurmayı veya yeniden başlatmayı reddeder. Bkz. [Gateway sorun giderme](/tr/gateway/troubleshooting#split-brain-installs-and-newer-config-guard).
- `openclaw gateway install --force` ile her zaman tam yeniden yazımı zorlayabilirsiniz.
- Linux kullanıcı-systemd birimleri için doctor token sapması denetimleri artık servis kimlik doğrulama meta verilerini karşılaştırırken hem `Environment=` hem de `EnvironmentFile=` kaynaklarını içerir.
- Doctor servis onarımları, yapılandırma en son daha yeni bir sürüm tarafından yazılmışsa daha eski bir OpenClaw ikilisinden gelen Gateway servisini yeniden yazmayı, durdurmayı veya yeniden başlatmayı reddeder. Bkz. [Gateway sorun giderme](/tr/gateway/troubleshooting#split-brain-installs-and-newer-config-guard).
- `openclaw gateway install --force` ile her zaman tam yeniden yazmayı zorlayabilirsiniz.
</Accordion>
<Accordion title="16. Gateway çalışma zamanı + port tanıları">
Doctor, hizmet çalışma zamanını (PID, son çıkış durumu) inceler ve hizmet kurulu olduğu halde gerçekten çalışmıyorsa uyarır. Ayrıca Gateway portunda (varsayılan `18789`) port çakışmalarını denetler ve olası nedenleri (Gateway zaten çalışıyor, SSH tüneli) raporlar.
<Accordion title="16. Gateway çalışma zamanı + port tanılamaları">
Doctor, servis çalışma zamanını (PID, son çıkış durumu) inceler ve servis yüklü olduğu hâlde gerçekten çalışmıyorsa uyarır. Ayrıca Gateway portunda (varsayılan `18789`) port çakışmalarını denetler ve olası nedenleri bildirir (Gateway zaten çalışıyor, SSH tüneli).
</Accordion>
<Accordion title="17. Gateway çalışma zamanı en iyi uygulamaları">
Doctor, Gateway hizmeti Bun üzerinde veya sürüm yönetimli bir Node yolunda (`nvm`, `fnm`, `volta`, `asdf` vb.) çalıştığında uyarır. WhatsApp + Telegram kanalları Node gerektirir ve sürüm yöneticisi yolları yükseltmelerden sonra bozulabilir çünkü hizmet kabuk başlatmanızı yüklemez. Doctor, mevcut olduğunda sistem Node kurulumuna (Homebrew/apt/choco) geçiş önermektedir.
Doctor, Gateway servisi Bun üzerinde veya sürüm yönetimli bir Node yolunda (`nvm`, `fnm`, `volta`, `asdf` vb.) çalıştığında uyarır. WhatsApp + Telegram kanalları Node gerektirir ve sürüm yöneticisi yolları yükseltmelerden sonra bozulabilir çünkü servis shell init dosyanızı yüklemez. Doctor, kullanılabilir olduğunda bir sistem Node kurulumuna geçiş yapmayı önerir (Homebrew/apt/choco).
Yeni kurulan veya onarılan hizmetler açık ortam köklerini (`NVM_DIR`, `FNM_DIR`, `VOLTA_HOME`, `ASDF_DATA_DIR`, `BUN_INSTALL`, `PNPM_HOME`) ve kararlı kullanıcı ikili dizinlerini korur, ancak tahmin edilen sürüm yöneticisi yedek dizinleri yalnızca bu dizinler diskte mevcut olduğunda hizmet PATH'ine yazılır. Bu, oluşturulan supervisor PATH'inin doctor'ın daha sonra çalıştırdığı aynı minimal-PATH denetimiyle hizalı kalmasını sağlar.
Yeni yüklenen veya onarılan servisler açık ortam köklerini (`NVM_DIR`, `FNM_DIR`, `VOLTA_HOME`, `ASDF_DATA_DIR`, `BUN_INSTALL`, `PNPM_HOME`) ve kararlı kullanıcı-bin dizinlerini korur, ancak tahmin edilen sürüm yöneticisi geri dönüş dizinleri yalnızca bu dizinler diskte mevcutsa servis PATH'ine yazılır. Bu, oluşturulan supervisor PATH'inin doctor'ın daha sonra çalıştırdığı aynı minimal-PATH denetimiyle uyumlu kalmasını sağlar.
</Accordion>
<Accordion title="18. Yapılandırma yazımı + sihirbaz meta verileri">
Doctor, tüm yapılandırma değişikliklerini kalıcı hale getirir ve doctor çalıştırmasını kaydetmek için sihirbaz meta verilerini damgalar.
Doctor, yapılandırma değişikliklerini kalıcılaştırır ve doctor çalıştırmasını kaydetmek için sihirbaz meta verilerini damgalar.
</Accordion>
<Accordion title="19. Çalışma alanı ipuçları (yedekleme + bellek sistemi)">
Doctor, eksik olduğunda bir çalışma alanı bellek sistemi önerir ve çalışma alanı zaten git altında değilse bir yedekleme ipucu yazdırır.
Doctor, eksik olduğunda bir çalışma alanı bellek sistemi önerir ve çalışma alanı hâlihazırda git altında değilse bir yedekleme ipucu yazdırır.
Çalışma alanı yapısı ve git yedekleme (önerilen özel GitHub veya GitLab) için tam kılavuz olarak [/concepts/agent-workspace](/tr/concepts/agent-workspace) bölümüne bakın.
Çalışma alanı yapısı ve git yedekleme (önerilen özel GitHub veya GitLab) hakkında tam kılavuz için bkz. [/concepts/agent-workspace](/tr/concepts/agent-workspace).
</Accordion>
</AccordionGroup>
## İlgili
- [Gateway çalışma kitabı](/tr/gateway)
- [Gateway runbook'u](/tr/gateway)
- [Gateway sorun giderme](/tr/gateway/troubleshooting)

View File

@ -1,14 +1,14 @@
---
read_when:
- Günlük çıktısını veya biçimlerini değiştirme
- Günlükleme çıktısını veya biçimlerini değiştirme
- CLI veya Gateway çıktısında hata ayıklama
summary: Günlükleme yüzeyleri, dosya günlükleri, WS günlük stilleri ve konsol biçimlendirmesi
title: Gateway günlük kaydı
x-i18n:
generated_at: "2026-04-30T09:22:49Z"
generated_at: "2026-05-01T09:00:57Z"
model: gpt-5.5
provider: openai
source_hash: 9ce9c78201d2e26760282b08eacb17826b1eac84e80b99d3a9d5cbff4078b5b3
source_hash: f843812a41c25f9ca1884543ad3a5663c8e0bc327027cbd2b58ea6557c466aa9
source_path: gateway/logging.md
workflow: 16
---
@ -17,16 +17,16 @@ x-i18n:
Kullanıcıya yönelik genel bakış (CLI + Control UI + yapılandırma) için bkz. [/logging](/tr/logging).
OpenClawın iki günlük “yüzeyi” vardır:
OpenClaw'ın iki günlük “yüzeyi” vardır:
- **Konsol çıktısı** (terminalde / Debug UIda gördüğünüz).
- Gateway günlükleyicisi tarafından yazılan **dosya günlükleri** (JSON satırları).
- **Konsol çıktısı** (terminalde / Debug UI'de gördüğünüz).
- **Dosya günlükleri** (JSON satırları), Gateway günlükleyicisi tarafından yazılır.
## Dosya tabanlı günlükleyici
- Varsayılan dönen günlük dosyası `/tmp/openclaw/` altındadır (günde bir dosya): `openclaw-YYYY-MM-DD.log`
- Varsayılan dönen günlük dosyası `/tmp/openclaw/` altında bulunur (günde bir dosya): `openclaw-YYYY-MM-DD.log`
- Tarih, Gateway ana makinesinin yerel saat dilimini kullanır.
- Etkin günlük dosyaları `logging.maxFileBytes` değerinde döndürülür (varsayılan: 100 MB); en fazla beş numaralı arşiv tutulur ve yeni bir etkin dosyaya yazmaya devam edilir.
- Etkin günlük dosyaları `logging.maxFileBytes` değerinde döner (varsayılan: 100 MB); en fazla beş numaralı arşiv tutulur ve yeni bir etkin dosyaya yazmaya devam edilir.
- Günlük dosyası yolu ve seviyesi `~/.openclaw/openclaw.json` üzerinden yapılandırılabilir:
- `logging.file`
- `logging.level`
@ -40,32 +40,32 @@ CLI da aynısını yapabilir:
openclaw logs --follow
```
**Ayrıntılı çıktı ve günlük seviyeleri**
**Ayrıntılı ve günlük seviyeleri**
- **Dosya günlükleri** yalnızca `logging.level` tarafından denetlenir.
- `--verbose` yalnızca **konsol ayrıntı düzeyini** (ve WS günlük stilini) etkiler; dosya günlük seviyesini **yükseltmez**.
- Yalnızca ayrıntılı çıktıda görünen ayrıntıları dosya günlüklerinde yakalamak için `logging.level` değerini `debug` veya `trace` olarak ayarlayın.
- Yalnızca ayrıntılı modda görünen ayrıntıları dosya günlüklerinde yakalamak için `logging.level` değerini `debug` veya `trace` olarak ayarlayın.
## Konsol yakalama
CLI, `console.log/info/warn/error/debug/trace` çağrılarını yakalayıp dosya günlüklerine yazar, stdout/stderre yazdırmaya devam eder.
CLI, `console.log/info/warn/error/debug/trace` çağrılarını yakalar ve stdout/stderr'ye yazdırmaya devam ederken bunları dosya günlüklerine yazar.
Konsol ayrıntı düzeyini bağımsız olarak şu seçeneklerle ayarlayabilirsiniz:
Konsol ayrıntı düzeyini bağımsız olarak şu ayarlarla düzenleyebilirsiniz:
- `logging.consoleLevel` (varsayılan `info`)
- `logging.consoleStyle` (`pretty` | `compact` | `json`)
## Redaksiyon
## Gizleme
OpenClaw, günlük veya oturum dökümü çıktısı süreçten ayrılmadan önce hassas belirteçleri maskeleyebilir. Bu günlük redaksiyon ilkesi konsol, dosya günlüğü, OTLP günlük kaydı ve oturum dökümü metin hedeflerinde uygulanır; böylece eşleşen gizli değerler JSONL satırları veya iletiler diske yazılmadan önce maskelenir.
OpenClaw, günlük veya transcript çıktısı süreçten ayrılmadan önce hassas token'ları maskeleyebilir. Bu günlük gizleme ilkesi konsol, dosya günlüğü, OTLP günlük kaydı ve oturum transcript metin çıkışlarına uygulanır; böylece eşleşen gizli değerler JSONL satırları veya iletiler diske yazılmadan önce maskelenir.
- `logging.redactSensitive`: `off` | `tools` (varsayılan: `tools`)
- `logging.redactPatterns`: regex dizeleri dizisi (varsayılanları geçersiz kılar)
- `logging.redactPatterns`: regex dizelerinden oluşan dizi (varsayılanları geçersiz kılar)
- Ham regex dizeleri (otomatik `gi`) kullanın veya özel bayraklara ihtiyacınız varsa `/pattern/flags` kullanın.
- Eşleşmeler, ilk 6 + son 4 karakter korunarak maskelenir (uzunluk >= 18); aksi durumda `***`.
- Varsayılanlar yaygın anahtar atamalarını, CLI bayraklarını, JSON alanlarını, bearer başlıklarını, PEM bloklarını ve popüler belirteç öneklerini kapsar.
- Eşleşmeler, ilk 6 + son 4 karakter korunarak maskelenir (uzunluk >= 18); aksi halde `***`.
- Varsayılanlar yaygın anahtar atamalarını, CLI bayraklarını, JSON alanlarını, bearer üstbilgilerini, PEM bloklarını, popüler token öneklerini ve kart numarası, CVC/CVV, paylaşılan ödeme token'ı ve ödeme kimlik bilgisi gibi ödeme kimlik bilgisi alan adlarını kapsar.
Bazı güvenlik sınırları `logging.redactSensitive` değerinden bağımsız olarak her zaman redaksiyon uygular. Buna Control UI araç çağrısı olayları, `sessions_history` araç çıktısı, tanılama destek dışa aktarımları, sağlayıcı hata gözlemleri, exec onay komutu gösterimi ve Gateway WebSocket protokol günlükleri dahildir. Bu yüzeyler ek desenler olarak yine `logging.redactPatterns` kullanabilir, ancak `redactSensitive: "off"` ham gizli değerler yayımlamalarını sağlamaz.
Bazı güvenlik sınırları, `logging.redactSensitive` değerinden bağımsız olarak her zaman gizleme uygular. Buna Control UI araç çağrısı olayları, `sessions_history` araç çıktısı, tanılama destek dışa aktarımları, sağlayıcı hata gözlemleri, exec onay komutu gösterimi ve Gateway WebSocket protokol günlükleri dahildir. Bu yüzeyler ek desenler olarak yine `logging.redactPatterns` kullanabilir, ancak `redactSensitive: "off"` bunların ham gizli değerleri yaymasına neden olmaz.
## Gateway WebSocket günlükleri
@ -79,12 +79,12 @@ Gateway, WebSocket protokol günlüklerini iki modda yazdırır:
### WS günlük stili
`openclaw gateway`, Gateway başına bir stil anahtarını destekler:
`openclaw gateway`, Gateway başına stil anahtarını destekler:
- `--ws-log auto` (varsayılan): normal mod iyileştirilmiştir; ayrıntılı mod kompakt çıktı kullanır
- `--ws-log auto` (varsayılan): normal mod optimize edilmiştir; ayrıntılı mod kompakt çıktı kullanır
- `--ws-log compact`: ayrıntılı modda kompakt çıktı (eşleştirilmiş istek/yanıt)
- `--ws-log full`: ayrıntılı modda kare başına tam çıktı
- `--compact`: `--ws-log compact` için takma ad
- `--ws-log full`: ayrıntılı modda tam kare başına çıktı
- `--compact`: `--ws-log compact` için alias
Örnekler:
@ -101,24 +101,24 @@ openclaw gateway --verbose --ws-log full
## Konsol biçimlendirme (alt sistem günlükleme)
Konsol biçimlendirici **TTY duyarlıdır** ve tutarlı, önekli satırlar yazdırır. Alt sistem günlükleyicileri çıktıyı gruplanmış ve taranabilir tutar.
Konsol biçimlendiricisi **TTY-aware** çalışır ve tutarlı, önekli satırlar yazdırır. Alt sistem günlükleyicileri çıktıyı gruplanmış ve kolay taranabilir tutar.
Davranış:
- Her satırda **alt sistem önekleri** (örn. `[gateway]`, `[canvas]`, `[tailscale]`)
- **Alt sistem renkleri** (alt sistem başına kararlı) ve seviye renklendirmesi
- **Çıktı TTY olduğunda veya ortam zengin terminal gibi göründüğünde renk** (`TERM`/`COLORTERM`/`TERM_PROGRAM`), `NO_COLOR` değerine uyar
- **Çıktı bir TTY olduğunda veya ortam zengin terminal gibi göründüğünde renk** (`TERM`/`COLORTERM`/`TERM_PROGRAM`), `NO_COLOR` değerine uyar
- **Kısaltılmış alt sistem önekleri**: baştaki `gateway/` + `channels/` bölümlerini düşürür, son 2 segmenti tutar (örn. `whatsapp/outbound`)
- **Alt sisteme göre alt günlükleyiciler** (otomatik önek + yapılandırılmış alan `{ subsystem }`)
- QR/UX çıktısı için **`logRaw()`** (önek yok, biçimlendirme yok)
- **Konsol stilleri** (örn. `pretty | compact | json`)
- Dosya günlük seviyesinden ayrı **konsol günlük seviyesi** (`logging.level` `debug`/`trace` olarak ayarlandığında dosya tam ayrıntıyı korur)
- **WhatsApp ileti gövdeleri** `debug` seviyesinde günlüğe kaydedilir (görmek için `--verbose` kullanın)
- Dosya günlük seviyesinden ayrı **konsol günlük seviyesi** (`logging.level`, `debug`/`trace` olarak ayarlandığında dosya tam ayrıntıyı korur)
- **WhatsApp ileti gövdeleri** `debug` seviyesinde günlüğe yazılır (görmek için `--verbose` kullanın)
Bu, etkileşimli çıktıyı taranabilir hale getirirken mevcut dosya günlüklerini kararlı tutar.
Bu, etkileşimli çıktıyı kolay taranabilir hale getirirken mevcut dosya günlüklerini kararlı tutar.
## İlgili
- [Günlükleme](/tr/logging)
- [OpenTelemetry dışa aktarımı](/tr/gateway/opentelemetry)
- [Tanılama dışa aktarımı](/tr/gateway/diagnostics)
- [OpenTelemetry dışa aktarma](/tr/gateway/opentelemetry)
- [Tanılama dışa aktarma](/tr/gateway/diagnostics)

View File

@ -1,30 +1,30 @@
---
read_when:
- Gateway WS istemcilerini uygulamak veya güncellemek
- Gateway WS istemcilerini uygulama veya güncelleme
- Protokol uyuşmazlıklarında veya bağlantı hatalarında hata ayıklama
- Protokol şemasını/modellerini yeniden oluşturma
summary: 'Gateway WebSocket protokolü: el sıkışma, çerçeveler, sürümleme'
title: Gateway protokolü
x-i18n:
generated_at: "2026-04-30T09:24:20Z"
generated_at: "2026-05-01T09:00:59Z"
model: gpt-5.5
provider: openai
source_hash: c0d922e9b4b778c333873e551498b905461f30f944e809555b45669ae2f5c404
source_hash: 8ea0181fda62326ec835ff1f28ef6079e5afff5ffe3f06e08867bf16fb84f967
source_path: gateway/protocol.md
workflow: 16
---
Gateway WS protokolü, OpenClaw için **tek denetim düzlemi + düğüm aktarımı**dır. Tüm istemciler (CLI, web UI, macOS uygulaması, iOS/Android düğümleri, başsız düğümler) WebSocket üzerinden bağlanır ve el sıkışma sırasında **rol** + **kapsam** bilgilerini bildirir.
Gateway WS protokolü, OpenClaw için **tek kontrol düzlemi + Node taşımasıdır**. Tüm istemciler (CLI, web kullanıcı arayüzü, macOS uygulaması, iOS/Android Node'ları, başsız Node'lar) WebSocket üzerinden bağlanır ve el sıkışma sırasında **rol** + **kapsam** bilgilerini bildirir.
## Aktarım
## Taşıma
- WebSocket, JSON yükleri içeren metin çerçeveleri.
- İlk çerçeve **mutlaka** bir `connect` isteği olmalıdır.
- Bağlantı öncesi çerçeveler 64 KiB ile sınırlıdır. Başarılı bir el sıkışmadan sonra istemciler `hello-ok.policy.maxPayload` ve `hello-ok.policy.maxBufferedBytes` sınırlarına uymalıdır. Tanılama etkinleştirildiğinde, aşırı büyük gelen çerçeveler ve yavaş giden tamponlar, Gateway etkilenen çerçeveyi kapatmadan veya düşürmeden önce `payload.large` olayları yayar. Bu olaylar boyutları, sınırları, yüzeyleri ve güvenli neden kodlarını tutar. Mesaj gövdesini, ek içeriklerini, ham çerçeve gövdesini, tokenları, çerezleri veya gizli değerleri tutmazlar.
- Bağlantı öncesi çerçeveler 64 KiB ile sınırlandırılır. Başarılı bir el sıkışmadan sonra istemciler `hello-ok.policy.maxPayload` ve `hello-ok.policy.maxBufferedBytes` sınırlarını izlemelidir. Tanılama etkinleştirildiğinde, aşırı büyük gelen çerçeveler ve yavaş giden arabellekler, Gateway etkilenen çerçeveyi kapatmadan veya düşürmeden önce `payload.large` olayları yayar. Bu olaylar boyutları, sınırları, yüzeyleri ve güvenli neden kodlarını tutar. Mesaj gövdesini, ek içeriklerini, ham çerçeve gövdesini, belirteçleri, çerezleri veya gizli değerleri tutmaz.
## El Sıkışma (connect)
## El sıkışma (connect)
Gateway → İstemci (bağlantı öncesi challenge):
Gateway → İstemci (bağlantı öncesi sınama):
```json
{
@ -95,11 +95,11 @@ Gateway → İstemci:
}
```
Gateway başlangıç yan görevlerini hâlâ tamamlarken, `connect` isteği `details.reason` değeri `"startup-sidecars"` olarak ayarlanmış ve `retryAfterMs` içeren yeniden denenebilir bir `UNAVAILABLE` hatası döndürebilir. İstemciler bu yanıtı nihai bir el sıkışma hatası olarak göstermemeli, genel bağlantı bütçeleri içinde yeniden denemelidir.
Gateway hâlâ başlangıç yardımcılarını tamamlıyorken, `connect` isteği `details.reason` değeri `"startup-sidecars"` olarak ayarlanmış ve `retryAfterMs` içeren yeniden denenebilir bir `UNAVAILABLE` hatası döndürebilir. İstemciler bu yanıtı nihai bir el sıkışma hatası olarak göstermek yerine genel bağlantı bütçeleri içinde yeniden denemelidir.
`server`, `features`, `snapshot` ve `policy` şema tarafından zorunlu kılınır (`src/gateway/protocol/schema/frames.ts`). `auth` da zorunludur ve üzerinde uzlaşılan rol/kapsamları bildirir. `canvasHostUrl` isteğe bağlıdır.
`server`, `features`, `snapshot` ve `policy` alanlarının tümü şema tarafından zorunludur (`src/gateway/protocol/schema/frames.ts`). `auth` de zorunludur ve uzlaşılan rol/kapsamları bildirir. `canvasHostUrl` isteğe bağlıdır.
Cihaz tokenı verilmediğinde, `hello-ok.auth` token alanları olmadan üzerinde uzlaşılan izinleri bildirir:
Cihaz belirteci verilmediğinde, `hello-ok.auth` belirteç alanları olmadan uzlaşılan izinleri bildirir:
```json
{
@ -110,9 +110,9 @@ Cihaz tokenı verilmediğinde, `hello-ok.auth` token alanları olmadan üzeri
}
```
Güvenilen aynı işlem backend istemcileri (`client.id: "gateway-client"`, `client.mode: "backend"`), paylaşılan Gateway tokenı/parolası ile kimlik doğruladıklarında doğrudan loopback bağlantılarında `device` alanını atlayabilir. Bu yol dahili denetim düzlemi RPCleri için ayrılmıştır ve eski CLI/cihaz eşleştirme temel değerlerinin alt ajan oturum güncellemeleri gibi yerel backend çalışmalarını engellemesini önler. Uzak istemciler, tarayıcı kaynaklı istemciler, düğüm istemcileri ve açık cihaz-tokenı/cihaz-kimliği istemcileri normal eşleştirme ve kapsam yükseltme kontrollerini kullanmaya devam eder.
Güvenilen aynı süreç arka uç istemcileri (`client.id: "gateway-client"`, `client.mode: "backend"`), paylaşılan Gateway belirteci/parolasıyla kimlik doğruladıklarında doğrudan local loopback bağlantılarında `device` alanını atlayabilir. Bu yol dahili kontrol düzlemi RPC'leri için ayrılmıştır ve eski CLI/cihaz eşleştirme taban çizgilerinin alt ajan oturum güncellemeleri gibi yerel arka uç çalışmalarını engellemesini önler. Uzak istemciler, tarayıcı kökenli istemciler, Node istemcileri ve açık cihaz belirteci/cihaz kimliği istemcileri normal eşleştirme ve kapsam yükseltme denetimlerini kullanmaya devam eder.
Bir cihaz tokenı verildiğinde, `hello-ok` ayrıca şunu içerir:
Cihaz belirteci verildiğinde, `hello-ok` ayrıca şunu içerir:
```json
{
@ -124,7 +124,7 @@ Bir cihaz tokenı verildiğinde, `hello-ok` ayrıca şunu içerir:
}
```
Güvenilen bootstrap devri sırasında, `hello-ok.auth` `deviceTokens` içinde ek sınırlı rol girdileri de içerebilir:
Güvenilen bootstrap devir teslimi sırasında, `hello-ok.auth` `deviceTokens` içinde ek sınırlı rol girdileri de içerebilir:
```json
{
@ -143,9 +143,9 @@ Güvenilen bootstrap devri sırasında, `hello-ok.auth` `deviceTokens` içinde e
}
```
Yerleşik düğüm/operator bootstrap akışı için birincil düğüm tokenı `scopes: []` olarak kalır ve devredilen tüm operator tokenları bootstrap operator izin listesiyle sınırlı kalır (`operator.approvals`, `operator.read`, `operator.talk.secrets`, `operator.write`). Bootstrap kapsam kontrolleri rol önekli kalır: operator girdileri yalnızca operator isteklerini karşılar ve operator olmayan roller hâlâ kendi rol önekleri altında kapsam gerektirir.
Yerleşik Node/operator bootstrap akışı için birincil Node belirteci `scopes: []` olarak kalır ve devredilen operator belirteci bootstrap operator izin listesiyle (`operator.approvals`, `operator.read`, `operator.talk.secrets`, `operator.write`) sınırlı kalır. Bootstrap kapsam denetimleri rol önekli kalır: operator girdileri yalnızca operator isteklerini karşılar ve operator olmayan rollerin hâlâ kendi rol önekleri altında kapsamları olması gerekir.
### Düğüm örneği
### Node örneği
```json
{
@ -186,14 +186,14 @@ Yerleşik düğüm/operator bootstrap akışı için birincil düğüm token
- **Yanıt**: `{type:"res", id, ok, payload|error}`
- **Olay**: `{type:"event", event, payload, seq?, stateVersion?}`
Yan etki oluşturan yöntemler **idempotency anahtarları** gerektirir (şemaya bakın).
Yan etkili yöntemler **idempotency anahtarları** gerektirir (şemaya bakın).
## Roller + kapsamlar
### Roller
- `operator` = denetim düzlemi istemcisi (CLI/UI/otomasyon).
- `node` = yetenek konağı (camera/screen/canvas/system.run).
- `operator` = kontrol düzlemi istemcisi (CLI/kullanıcı arayüzü/otomasyon).
- `node` = yetenek ana makinesi (camera/screen/canvas/system.run).
### Kapsamlar (operator)
@ -208,35 +208,36 @@ Yaygın kapsamlar:
`includeSecrets: true` ile `talk.config`, `operator.talk.secrets` (veya `operator.admin`) gerektirir.
Plugin tarafından kaydedilen Gateway RPC yöntemleri kendi operator kapsamlarını isteyebilir, ancak ayrılmış çekirdek yönetici önekleri (`config.*`, `exec.approvals.*`, `wizard.*`, `update.*`) her zaman `operator.admin` olarak çözür.
Plugin tarafından kaydedilmiş Gateway RPC yöntemleri kendi operator kapsamlarını isteyebilir, ancak ayrılmış çekirdek yönetici önekleri (`config.*`, `exec.approvals.*`, `wizard.*`, `update.*`) her zaman `operator.admin` olarak çözümlenir.
Yöntem kapsamı yalnızca ilk kapıdır. `chat.send` üzerinden ulaşılan bazı slash komutları bunun üzerine daha sıkı komut düzeyi kontroller uygular. Örneğin, kalıcı `/config set` ve `/config unset` yazmaları `operator.admin` gerektirir.
Yöntem kapsamı yalnızca ilk kapıdır. `chat.send` üzerinden erişilen bazı slash komutları bunun üzerine daha sıkı komut düzeyi denetimler uygular. Örneğin, kalıcı `/config set` ve `/config unset` yazmaları `operator.admin` gerektirir.
`node.pair.approve`, temel yöntem kapsamının üzerine onay zamanında ek bir kapsam kontrolü de uygular:
`node.pair.approve`, temel yöntem kapsamının üzerine onay zamanında ek bir kapsam denetimine de sahiptir:
- komutsuz istekler: `operator.pairing`
- exec olmayan düğüm komutları içeren istekler: `operator.pairing` + `operator.write`
- `system.run`, `system.run.prepare` veya `system.which` içeren istekler: `operator.pairing` + `operator.admin`
- exec olmayan Node komutları içeren istekler: `operator.pairing` + `operator.write`
- `system.run`, `system.run.prepare` veya `system.which` içeren istekler:
`operator.pairing` + `operator.admin`
### Yetenekler/komutlar/izinler (düğüm)
### Yetenekler/komutlar/izinler (Node)
Düğümler bağlantı sırasında yetenek iddialarını bildirir:
Node'lar bağlantı sırasında yetenek iddialarını bildirir:
- `caps`: üst düzey yetenek kategorileri.
- `commands`: çağırma için komut izin listesi.
- `permissions`: ayrıntılı anahtarlar (örn. `screen.record`, `camera.capture`).
Gateway bunları **iddia** olarak ele alır ve sunucu tarafı izin listelerini uygular.
Gateway bunları **iddialar** olarak değerlendirir ve sunucu tarafı izin listelerini uygular.
## Varlık
- `system-presence`, cihaz kimliğine göre anahtarlanmış girdiler döndürür.
- Varlık girdileri `deviceId`, `roles` ve `scopes` içerir; böylece UIlar bir cihaz hem **operator** hem de **node** olarak bağlandığında bile cihaz başına tek satır gösterebilir.
- `node.list`, isteğe bağlı `lastSeenAtMs` ve `lastSeenReason` alanlarını içerir. Bağlı düğümler mevcut bağlantı zamanlarını `connect` nedeniyle `lastSeenAtMs` olarak bildirir; eşleştirilmiş düğümler, güvenilen bir düğüm olayı eşleştirme meta verilerini güncellediğinde kalıcı arka plan varlığı da bildirebilir.
- Varlık girdileri `deviceId`, `roles` ve `scopes` içerir; böylece kullanıcı arayüzleri, bir cihaz hem **operator** hem de **node** olarak bağlandığında bile cihaz başına tek satır gösterebilir.
- `node.list` isteğe bağlı `lastSeenAtMs` ve `lastSeenReason` alanlarını içerir. Bağlı Node'lar mevcut bağlantı zamanlarını `connect` nedeniyle `lastSeenAtMs` olarak bildirir; eşlenmiş Node'lar güvenilen bir Node olayı eşleştirme meta verilerini güncellediğinde kalıcı arka plan varlığı da bildirebilir.
### Düğüm arka plan alive olayı
### Node arka plan canlı olayı
Düğümler, eşleştirilmiş bir düğümün arka plan uyanışı sırasında bağlı olarak işaretlenmeden canlı olduğunu kaydetmek için `event: "node.presence.alive"` ile `node.event` çağırabilir.
Node'lar, eşlenmiş bir Node'un arka plan uyanması sırasında bağlı olarak işaretlenmeden canlı olduğunu kaydetmek için `event: "node.presence.alive"` ile `node.event` çağırabilir.
```json
{
@ -245,9 +246,9 @@ Düğümler, eşleştirilmiş bir düğümün arka plan uyanışı sırasında b
}
```
`trigger` kapalı bir enumdur: `background`, `silent_push`, `bg_app_refresh`, `significant_location`, `manual` veya `connect`. Bilinmeyen trigger dizeleri kalıcılıktan önce Gateway tarafından `background` olarak normalleştirilir. Olay yalnızca kimliği doğrulanmış düğüm cihaz oturumları için kalıcıdır; cihazsız veya eşleştirilmemiş oturumlar `handled: false` döndürür.
`trigger` kapalı bir enum'dur: `background`, `silent_push`, `bg_app_refresh`, `significant_location`, `manual` veya `connect`. Bilinmeyen trigger dizeleri kalıcılıktan önce Gateway tarafından `background` olarak normalleştirilir. Olay yalnızca kimliği doğrulanmış Node cihaz oturumları için kalıcıdır; cihazsız veya eşlenmemiş oturumlar `handled: false` döndürür.
Başarılı gatewayler yapılandırılmış bir sonuç döndürür:
Başarılı Gateway'ler yapılandırılmış bir sonuç döndürür:
```json
{
@ -258,42 +259,42 @@ Başarılı gatewayler yapılandırılmış bir sonuç döndürür:
}
```
Daha eski gatewayler `node.event` için hâlâ `{ "ok": true }` döndürebilir; istemciler bunu kalıcı varlık saklama olarak değil, onaylanmış bir RPC olarak değerlendirmelidir.
Eski Gateway'ler `node.event` için hâlâ `{ "ok": true }` döndürebilir; istemciler bunu kalıcı varlık saklama olarak değil, onaylanmış bir RPC olarak değerlendirmelidir.
## Yayın olayı kapsamlandırması
Sunucu tarafından gönderilen WebSocket yayın olayları kapsam kapılıdır; böylece eşleştirme kapsamlı veya yalnızca düğüm oturumları oturum içeriğini pasif olarak almaz.
Sunucu tarafından gönderilen WebSocket yayın olayları kapsamla sınırlandırılır; böylece eşleştirme kapsamlı veya yalnızca Node oturumları oturum içeriğini pasif olarak almaz.
- **Sohbet, ajan ve araç sonucu çerçeveleri** (akışlı `agent` olayları ve araç çağrısı sonuçları dahil) en az `operator.read` gerektirir. `operator.read` olmayan oturumlar bu çerçeveleri tamamen atlar.
- **Plugin tanımlı `plugin.*` yayınları**, Pluginin onları nasıl kaydettiğine bağlı olarak `operator.write` veya `operator.admin` ile kapılanır.
- **Durum ve aktarım olayları** (`heartbeat`, `presence`, `tick`, bağlantı/bağlantı kesme yaşam döngüsü vb.) sınırsız kalır; böylece aktarım sağlığı her kimliği doğrulanmış oturum tarafından gözlemlenebilir kalır.
- **Bilinmeyen yayın olayı aileleri**, kayıtlı bir işleyici ıkça gevşetmediği sürece varsayılan olarak kapsam kapılıdır (kapalı hata).
- **Plugin tanımlı `plugin.*` yayınları**, Plugin'in bunları nasıl kaydettiğine bağlı olarak `operator.write` veya `operator.admin` ile sınırlandırılır.
- **Durum ve taşıma olayları** (`heartbeat`, `presence`, `tick`, bağlanma/bağlantı kesme yaşam döngüsü vb.) taşıma sağlığının kimliği doğrulanmış her oturum tarafından gözlemlenebilir kalması için kısıtlanmadan kalır.
- **Bilinmeyen yayın olayı aileleri**, kayıtlı bir işleyici bunlarııkça gevşetmedikçe varsayılan olarak kapsamla sınırlandırılır (kapalı hata davranışı).
Her istemci bağlantısı kendi istemci başına sıra numarasını tutar; böylece farklı istemciler olay akışının farklı kapsam-filtreli alt kümelerini görse bile yayınlar o sokette monoton sıralamayı korur.
Her istemci bağlantısı kendi istemci başına sıra numarasını tutar; böylece farklı istemciler olay akışının farklı kapsamla filtrelenmiş alt kümelerini görse bile yayınlar o sokette monoton sıralamayı korur.
## Yaygın RPC yöntem aileleri
Genel WS yüzeyi yukarıdaki el sıkışma/kimlik doğrulama örneklerinden daha geniştir. Bu oluşturulmuş bir döküm değildir — `hello-ok.features.methods`, `src/gateway/server-methods-list.ts` ile yüklü Plugin/kanal yöntem dışa aktarımlarından oluşturulan muhafazakâr bir keşif listesidir. Bunu `src/gateway/server-methods/*.ts` için tam bir numaralandırma değil, özellik keşfi olarak değerlendirin.
Herkese açık WS yüzeyi yukarıdaki el sıkışma/kimlik doğrulama örneklerinden daha geniştir. Bu, oluşturulmuş bir döküm değildir — `hello-ok.features.methods`, `src/gateway/server-methods-list.ts` ile yüklü Plugin/kanal yöntem dışa aktarımlarından oluşturulan tutucu bir keşif listesidir. Bunu `src/gateway/server-methods/*.ts` için tam bir numaralandırma olarak değil, özellik keşfi olarak değerlendirin.
<AccordionGroup>
<Accordion title="Sistem ve kimlik">
<Accordion title="System and identity">
- `health`, önbelleğe alınmış veya yeni yoklanmış Gateway sağlık anlık görüntüsünü döndürür.
- `diagnostics.stability`, son sınırlı tanılama kararlılığı kaydedicisini döndürür. Olay adları, sayılar, bayt boyutları, bellek okumaları, kuyruk/oturum durumu, kanal/Plugin adları ve oturum kimlikleri gibi operasyonel meta verileri tutar. Sohbet metnini, webhook gövdelerini, araç çıktılarını, ham istek veya yanıt gövdelerini, tokenları, çerezleri veya gizli değerleri tutmaz. Operator okuma kapsamı gereklidir.
- `status`, `/status` tarzı Gateway özetini döndürür; hassas alanlar yalnızca admin kapsamlı operator istemcileri için dahil edilir.
- `diagnostics.stability`, son sınırlı tanılama kararlılığı kaydedicisini döndürür. Olay adları, sayılar, bayt boyutları, bellek okumaları, kuyruk/oturum durumu, kanal/Plugin adları ve oturum kimlikleri gibi operasyonel meta verileri tutar. Sohbet metnini, Webhook gövdelerini, araç çıktılarını, ham istek veya yanıt gövdelerini, belirteçleri, çerezleri ya da gizli değerleri tutmaz. Operator okuma kapsamı gereklidir.
- `status`, `/status` tarzı Gateway özetini döndürür; hassas alanlar yalnızca admin kapsamlı operator istemcileri için eklenir.
- `gateway.identity.get`, relay ve eşleştirme akışları tarafından kullanılan Gateway cihaz kimliğini döndürür.
- `system-presence`, bağlı operator/düğüm cihazları için mevcut varlık anlık görüntüsünü döndürür.
- `system-presence`, bağlı operator/Node cihazları için geçerli varlık anlık görüntüsünü döndürür.
- `system-event`, bir sistem olayı ekler ve varlık bağlamını güncelleyebilir/yayınlayabilir.
- `last-heartbeat`, son kalıcı heartbeat olayını döndürür.
- `set-heartbeats`, Gateway üzerinde heartbeat işlemeyi açıp kapatır.
- `last-heartbeat`, en son kalıcı Heartbeat olayını döndürür.
- `set-heartbeats`, Gateway üzerinde Heartbeat işlemeyi açar veya kapatır.
</Accordion>
<Accordion title="Modeller ve kullanım">
- `models.list`, çalışma zamanında izin verilen model kataloğunu döndürür. Seçici boyutundaki yapılandırılmış modeller için `{ "view": "configured" }` iletin (`agents.defaults.models` önce, ardından `models.providers.*.models`), tam katalog için `{ "view": "all" }` iletin.
- `models.list`, çalışma zamanında izin verilen model kataloğunu döndürür. Seçici boyutundaki yapılandırılmış modeller için (`agents.defaults.models` önce, ardından `models.providers.*.models`) `{ "view": "configured" }`, tam katalog için `{ "view": "all" }` iletin.
- `usage.status`, sağlayıcı kullanım pencerelerini/kalan kota özetlerini döndürür.
- `usage.cost`, bir tarih aralığı için toplulaştırılmış maliyet kullanım özetlerini döndürür.
- `doctor.memory.status`, etkin varsayılan ajan çalışma alanı için vektör belleği / önbelleğe alınmış embedding hazır olma durumunu döndürür. Yalnızca çağıran açıkça canlı bir embedding sağlayıcı ping'i istediğinde `{ "probe": true }` veya `{ "deep": true }` iletin.
- `doctor.memory.remHarness`, uzak kontrol düzlemi istemcileri için sınırlı, salt okunur bir REM harness önizlemesi döndürür. Çalışma alanı yollarını, bellek parçacıklarını, işlenmiş temellendirilmiş markdown'u ve derin yükseltme adaylarını içerebilir; bu nedenle çağıranların `operator.read` iznine ihtiyacı vardır.
- `usage.cost`, bir tarih aralığı için toplu maliyet kullanım özetlerini döndürür.
- `doctor.memory.status`, etkin varsayılan aracı çalışma alanı için vektör belleği / önbelleğe alınmış embedding hazır olma durumunu döndürür. Yalnızca çağıran açıkça canlı embedding sağlayıcısı ping'i istediğinde `{ "probe": true }` veya `{ "deep": true }` iletin.
- `doctor.memory.remHarness`, uzak kontrol düzlemi istemcileri için sınırlı, salt okunur bir REM harness önizlemesi döndürür. Çalışma alanı yollarını, bellek parçacıklarını, işlenmiş dayanaklı markdown'ı ve derin terfi adaylarını içerebilir; bu nedenle çağıranların `operator.read` yetkisine ihtiyacı vardır.
- `sessions.usage`, oturum başına kullanım özetlerini döndürür.
- `sessions.usage.timeseries`, bir oturum için zaman serisi kullanımını döndürür.
- `sessions.usage.logs`, bir oturum için kullanım günlüğü girdilerini döndürür.
@ -302,71 +303,72 @@ Genel WS yüzeyi yukarıdaki el sıkışma/kimlik doğrulama örneklerinden daha
<Accordion title="Kanallar ve oturum açma yardımcıları">
- `channels.status`, yerleşik + paketlenmiş kanal/plugin durum özetlerini döndürür.
- `channels.logout`, kanal oturum kapatmayı destekliyorsa belirli bir kanaldan/hesaptan oturumu kapatır.
- `web.login.start`, geçerli QR özellikli web kanal sağlayıcısı için QR/web oturum açma akışını başlatır.
- `channels.logout`, kanalın oturum kapatmayı desteklediği durumlarda belirli bir kanal/hesap için oturumu kapatır.
- `web.login.start`, geçerli QR destekli web kanalı sağlayıcısı için bir QR/web oturum açma akışı başlatır.
- `web.login.wait`, bu QR/web oturum açma akışının tamamlanmasını bekler ve başarılı olursa kanalı başlatır.
- `push.test`, kayıtlı bir iOS Node'una test APNs push'u gönderir.
- `push.test`, kayıtlı bir iOS node'una test APNs push'u gönderir.
- `voicewake.get`, saklanan uyandırma sözcüğü tetikleyicilerini döndürür.
- `voicewake.set`, uyandırma sözcüğü tetikleyicilerini günceller ve değişikliği yayınlar.
</Accordion>
<Accordion title="Mesajlaşma ve günlükler">
- `send`, sohbet çalıştırıcısı dışında kanal/hesap/ileti dizisi hedefli gönderimler için doğrudan giden teslimat RPC'sidir.
- `logs.tail`, yapılandırılmış Gateway dosya günlüğü kuyruğunu imleç/sınır ve maksimum bayt kontrolleriyle döndürür.
- `send`, sohbet çalıştırıcısının dışındaki kanal/hesap/iş parçacığı hedefli gönderimler için doğrudan giden teslimat RPC'sidir.
- `logs.tail`, yapılandırılmış gateway dosya günlüğü kuyruğunu imleç/sınır ve maksimum bayt denetimleriyle döndürür.
</Accordion>
<Accordion title="Konuşma ve TTS">
- `talk.config`, etkili Talk yapılandırma payload'unu döndürür; `includeSecrets`, `operator.talk.secrets` (veya `operator.admin`) gerektirir.
- `talk.config`, etkin Talk yapılandırma yükünü döndürür; `includeSecrets`, `operator.talk.secrets` (veya `operator.admin`) gerektirir.
- `talk.mode`, WebChat/Control UI istemcileri için geçerli Talk modu durumunu ayarlar/yayınlar.
- `talk.speak`, etkin Talk konuşma sağlayıcısı üzerinden konuşma sentezler.
- `tts.status`, TTS etkin durumunu, etkin sağlayıcıyı, yedek sağlayıcıları ve sağlayıcı yapılandırma durumunu döndürür.
- `tts.providers`, görünür TTS sağlayıcı envanterini döndürür.
- `tts.enable` ve `tts.disable`, TTS tercih durumunu açıp kapatır.
- `tts.enable` ve `tts.disable`, TTS tercihleri durumunu açıp kapatır.
- `tts.setProvider`, tercih edilen TTS sağlayıcısını günceller.
- `tts.convert`, tek seferlik metinden konuşmaya dönüştürme çalıştırır.
</Accordion>
<Accordion title="Sırlar, yapılandırma, güncelleme ve sihirbaz">
- `secrets.reload`, etkin SecretRef'leri yeniden çözer ve çalışma zamanı secret durumunu yalnızca tam başarıda değiştirir.
- `secrets.resolve`, belirli bir komut/hedef kümesi için komut hedefli secret atamalarını çözer.
- `config.get`, geçerli yapılandırma anlık görüntüsünü ve hash'i döndürür.
- `config.set`, doğrulanmış bir yapılandırma payload'u yazar.
<Accordion title="Gizli bilgiler, yapılandırma, güncelleme ve sihirbaz">
- `secrets.reload`, etkin SecretRef'leri yeniden çözer ve çalışma zamanı gizli bilgi durumunu yalnızca tam başarı durumunda değiştirir.
- `secrets.resolve`, belirli bir komut/hedef kümesi için komut hedefli gizli bilgi atamalarını çözer.
- `config.get`, geçerli yapılandırma anlık görüntüsünü ve karmasını döndürür.
- `config.set`, doğrulanmış bir yapılandırma yükü yazar.
- `config.patch`, kısmi bir yapılandırma güncellemesini birleştirir.
- `config.apply`, tam yapılandırma payload'unu doğrular + değiştirir.
- `config.schema`, Control UI ve CLI araçları tarafından kullanılan canlı yapılandırma şeması payload'unu döndürür: şema, `uiHints`, sürüm ve üretim metadatası; çalışma zamanı yükleyebildiğinde plugin + kanal şeması metadatası dahil. Şema, eşleşen alan dokümantasyonu bulunduğunda iç içe nesne, joker karakter, dizi öğesi ve `anyOf` / `oneOf` / `allOf` bileşim dalları dahil olmak üzere UI tarafından kullanılan aynı etiketlerden ve yardım metninden türetilen alan `title` / `description` metadatasını içerir.
- `config.schema.lookup`, bir yapılandırma yolu için yol kapsamlı bir arama payload'u döndürür: normalize edilmiş yol, sığ bir şema düğümü, eşleşen ipucu + `hintPath` ve UI/CLI ayrıntıya inme için doğrudan alt özetler. Arama şeması düğümleri kullanıcıya yönelik dokümanları ve yaygın doğrulama alanlarını (`title`, `description`, `type`, `enum`, `const`, `format`, `pattern`, sayısal/dize/dizi/nesne sınırları ve `additionalProperties`, `deprecated`, `readOnly`, `writeOnly` gibi bayraklar) korur. Alt özetler `key`, normalize edilmiş `path`, `type`, `required`, `hasChildren` ile eşleşen `hint` / `hintPath` değerlerini sunar.
- `update.run`, Gateway güncelleme akışını çalıştırır ve yalnızca güncellemenin kendisi başarılı olduğunda yeniden başlatma zamanlar.
- `update.status`, mevcutsa yeniden başlatma sonrası çalışan sürüm dahil, en son önbelleğe alınmış güncelleme yeniden başlatma sentinel'ini döndürür.
- `wizard.start`, `wizard.next`, `wizard.status` ve `wizard.cancel`, başlangıç sihirbazını WS RPC üzerinden sunar.
- `config.apply`, tam yapılandırma yükünü doğrular + değiştirir.
- `config.schema`, Control UI ve CLI araçları tarafından kullanılan canlı yapılandırma şeması yükünü döndürür: şema, `uiHints`, sürüm ve üretim meta verileri; çalışma zamanı bunları yükleyebildiğinde plugin + kanal şeması meta verileri dahil. Şema, eşleşen alan belgelendirmesi bulunduğunda iç içe nesne, joker karakter, dizi öğesi ve `anyOf` / `oneOf` / `allOf` bileşim dalları dahil olmak üzere UI tarafından kullanılan aynı etiketlerden ve yardım metninden türetilen alan `title` / `description` meta verilerini içerir.
- `config.schema.lookup`, bir yapılandırma yolu için yol kapsamlı bir arama yükü döndürür: normalize edilmiş yol, sığ bir şema düğümü, eşleşen ipucu + `hintPath` ve UI/CLI ayrıntı incelemesi için doğrudan alt özetler. Arama şeması düğümleri kullanıcıya yönelik belgeleri ve yaygın doğrulama alanlarını (`title`, `description`, `type`, `enum`, `const`, `format`, `pattern`, sayısal/dize/dizi/nesne sınırları ve `additionalProperties`, `deprecated`, `readOnly`, `writeOnly` gibi bayraklar) korur. Alt özetler `key`, normalize edilmiş `path`, `type`, `required`, `hasChildren` ile eşleşen `hint` / `hintPath` değerlerini gösterir.
- `update.run`, gateway güncelleme akışını çalıştırır ve yalnızca güncellemenin kendisi başarılı olduğunda yeniden başlatma zamanlar. Paket yöneticisi güncellemeleri, paket değişiminden sonra eski Gateway sürecinin değiştirilmiş bir `dist` ağacından tembel yükleme yapmayı sürdürmemesi için ertelenmeyen bir güncelleme yeniden başlatmasını zorunlu kılar.
- `update.status`, kullanılabilir olduğunda yeniden başlatma sonrası çalışan sürüm dahil olmak üzere en son önbelleğe alınmış güncelleme yeniden başlatma işaretçisini döndürür.
- `wizard.start`, `wizard.next`, `wizard.status` ve `wizard.cancel`, WS RPC üzerinden onboarding sihirbazını sunar.
</Accordion>
<Accordion title="Ajan ve çalışma alanı yardımcıları">
- `agents.list`, etkili model ve çalışma zamanı metadatası dahil yapılandırılmış ajan girdilerini döndürür.
- `agents.create`, `agents.update` ve `agents.delete`, ajan kayıtlarını ve çalışma alanı bağlantılarını yönetir.
- `agents.files.list`, `agents.files.get` ve `agents.files.set`, bir ajan için sunulan bootstrap çalışma alanı dosyalarını yönetir.
- `agent.identity.get`, bir ajan veya oturum için etkili asistan kimliğini döndürür.
- `agent.wait`, bir çalıştırmanın bitmesini bekler ve mevcutsa son anlık görüntüyü döndürür.
<Accordion title="Aracı ve çalışma alanı yardımcıları">
- `agents.list`, etkin model ve çalışma zamanı meta verileri dahil olmak üzere yapılandırılmış aracı girdilerini döndürür.
- `agents.create`, `agents.update` ve `agents.delete`, aracı kayıtlarını ve çalışma alanı bağlantılarını yönetir.
- `agents.files.list`, `agents.files.get` ve `agents.files.set`, bir aracı için sunulan bootstrap çalışma alanı dosyalarını yönetir.
- `artifacts.list`, `artifacts.get` ve `artifacts.download`, açık bir `sessionKey`, `runId` veya `taskId` kapsamı için transkriptten türetilmiş yapıt özetlerini ve indirmelerini sunar. Çalıştırma ve görev sorguları, sahip oturumu sunucu tarafında çözer ve yalnızca eşleşen kökene sahip transkript medyasını döndürür; güvenli olmayan veya yerel URL kaynakları, sunucu tarafında getirmek yerine desteklenmeyen indirmeler döndürür.
- `agent.identity.get`, bir aracı veya oturum için etkin asistan kimliğini döndürür.
- `agent.wait`, bir çalıştırmanın bitmesini bekler ve kullanılabilir olduğunda terminal anlık görüntüsünü döndürür.
</Accordion>
<Accordion title="Oturum kontrolü">
- `sessions.list`, bir ajan çalışma zamanı backend'i yapılandırıldığında satır başına `agentRuntime` metadatası dahil geçerli oturum dizinini döndürür.
- `sessions.subscribe` ve `sessions.unsubscribe`, geçerli WS istemcisi için oturum değişikliği olayı aboneliklerini açıp kapatır.
<Accordion title="Oturum denetimi">
- `sessions.list`, bir aracı çalışma zamanı arka ucu yapılandırıldığında satır başına `agentRuntime` meta verileri dahil olmak üzere geçerli oturum dizinini döndürür.
- `sessions.subscribe` ve `sessions.unsubscribe`, geçerli WS istemcisi için oturum değişikliği olay aboneliklerini açıp kapatır.
- `sessions.messages.subscribe` ve `sessions.messages.unsubscribe`, bir oturum için transkript/mesaj olayı aboneliklerini açıp kapatır.
- `sessions.preview`, belirli oturum anahtarları için sınırlı transkript önizlemeleri döndürür.
- `sessions.resolve`, bir oturum hedefini çözer veya kanonikleştirir.
- `sessions.create`, yeni bir oturum girdisi oluşturur.
- `sessions.send`, mevcut bir oturuma mesaj gönderir.
- `sessions.steer`, etkin bir oturum için kesme-ve-yönlendirme varyantıdır.
- `sessions.abort`, bir oturum için etkin işi iptal eder. Çağıran, `key` ile birlikte isteğe bağlı `runId` iletebilir veya Gateway'in bir oturuma çözebildiği etkin çalıştırmalar için yalnızca `runId` iletebilir.
- `sessions.patch`, oturum metadatasını/geçersiz kılmalarını günceller ve çözümlenen kanonik modeli artı etkili `agentRuntime` değerini raporlar.
- `sessions.steer`, etkin bir oturum için kesme ve yönlendirme varyantıdır.
- `sessions.abort`, bir oturum için etkin işi iptal eder. Çağıran, `key` ile isteğe bağlı `runId` iletebilir veya Gateway'in bir oturuma çözebildiği etkin çalıştırmalar için yalnızca `runId` iletebilir.
- `sessions.patch`, oturum meta verilerini/geçersiz kılmalarını günceller ve çözümlenen kanonik modeli artı etkin `agentRuntime` değerini bildirir.
- `sessions.reset`, `sessions.delete` ve `sessions.compact`, oturum bakımını gerçekleştirir.
- `sessions.get`, saklanan tam oturum satırını döndürür.
- Sohbet yürütmesi hâlâ `chat.history`, `chat.send`, `chat.abort` ve `chat.inject` kullanır. `chat.history`, UI istemcileri için görüntüleme açısından normalize edilir: satır içi yönerge etiketleri görünür metinden çıkarılır, düz metin araç çağrısı XML payload'ları (`<tool_call>...</tool_call>`, `<function_call>...</function_call>`, `<tool_calls>...</tool_calls>`, `<function_calls>...</function_calls>` ve kesilmiş araç çağrısı blokları dahil) ve sızmış ASCII/tam genişlikli model kontrol token'ları çıkarılır, tam `NO_REPLY` / `no_reply` gibi saf sessiz-token asistan satırları atlanır ve çok büyük satırlar yer tutucularla değiştirilebilir.
- `sessions.get`, tam saklanan oturum satırını döndürür.
- Sohbet yürütmesi hâlâ `chat.history`, `chat.send`, `chat.abort` ve `chat.inject` kullanır. `chat.history`, UI istemcileri için görüntüleme açısından normalize edilir: satır içi yönerge etiketleri görünür metinden çıkarılır, düz metin araç çağrısı XML yükleri (`<tool_call>...</tool_call>`, `<function_call>...</function_call>`, `<tool_calls>...</tool_calls>`, `<function_calls>...</function_calls>` ve kesilmiş araç çağrısı blokları dahil) ve sızmış ASCII/tam genişlikli model denetim token'ları çıkarılır, tam `NO_REPLY` / `no_reply` gibi yalnızca sessiz token içeren asistan satırları atlanır ve aşırı büyük satırlar yer tutucularla değiştirilebilir.
</Accordion>
@ -379,214 +381,257 @@ Genel WS yüzeyi yukarıdaki el sıkışma/kimlik doğrulama örneklerinden daha
</Accordion>
<Accordion title="Node eşleştirme, çağırma ve bekleyen iş">
- `node.pair.request`, `node.pair.list`, `node.pair.approve`, `node.pair.reject`, `node.pair.remove` ve `node.pair.verify`, Node eşleştirme ve bootstrap doğrulamasını kapsar.
- `node.list` ve `node.describe`, bilinen/bağlı Node durumunu döndürür.
- `node.rename`, eşleştirilmiş bir Node etiketini günceller.
- `node.invoke`, bağlı bir Node'a komut iletir.
- `node.invoke.result`, bir çağırma isteği için sonucu döndürür.
- `node.event`, Node kaynaklı olayları Gateway'e geri taşır.
- `node.pair.request`, `node.pair.list`, `node.pair.approve`, `node.pair.reject`, `node.pair.remove` ve `node.pair.verify`, node eşleştirme ve bootstrap doğrulamasını kapsar.
- `node.list` ve `node.describe`, bilinen/bağlı node durumunu döndürür.
- `node.rename`, eşleştirilmiş bir node etiketini günceller.
- `node.invoke`, bağlı bir node'a komut iletir.
- `node.invoke.result`, bir invoke isteğinin sonucunu döndürür.
- `node.event`, node kaynaklı olayları gateway'e geri taşır.
- `node.canvas.capability.refresh`, kapsamlı canvas yeteneği token'larını yeniler.
- `node.pending.pull` ve `node.pending.ack`, bağlı Node kuyruk API'leridir.
- `node.pending.enqueue` ve `node.pending.drain`, çevrimdışı/bağlantısı kesilmiş Node'lar için kalıcı bekleyen işi yönetir.
- `node.pending.pull` ve `node.pending.ack`, bağlı node kuyruğu API'leridir.
- `node.pending.enqueue` ve `node.pending.drain`, çevrimdışı/bağlantısı kesilmiş node'lar için kalıcı bekleyen işi yönetir.
</Accordion>
<Accordion title="Onay aileleri">
- `exec.approval.request`, `exec.approval.get`, `exec.approval.list` ve `exec.approval.resolve`, tek seferlik exec onay isteklerini ve bekleyen onay arama/yeniden oynatmayı kapsar.
- `exec.approval.request`, `exec.approval.get`, `exec.approval.list` ve `exec.approval.resolve`, tek seferlik exec onayı isteklerini ve bekleyen onay arama/yeniden oynatmasını kapsar.
- `exec.approval.waitDecision`, bekleyen bir exec onayını bekler ve nihai kararı döndürür (veya zaman aşımında `null`).
- `exec.approvals.get` ve `exec.approvals.set`, Gateway exec onay politikası anlık görüntülerini yönetir.
- `exec.approvals.node.get` ve `exec.approvals.node.set`, Node aktarma komutları üzerinden Node yerel exec onay politikasını yönetir.
- `exec.approvals.get` ve `exec.approvals.set`, gateway exec onay ilkesi anlık görüntülerini yönetir.
- `exec.approvals.node.get` ve `exec.approvals.node.set`, node aktarma komutları aracılığıyla node yerel exec onay ilkesini yönetir.
- `plugin.approval.request`, `plugin.approval.list`, `plugin.approval.waitDecision` ve `plugin.approval.resolve`, plugin tanımlı onay akışlarını kapsar.
</Accordion>
<Accordion title="Otomasyon, skills ve araçlar">
- Otomasyon: `wake`, anlık veya sonraki heartbeat uyandırma metni enjeksiyonunu zamanlar; `cron.list`, `cron.status`, `cron.add`, `cron.update`, `cron.remove`, `cron.run`, `cron.runs` zamanlanmış işi yönetir.
- Skills ve araçlar: `commands.list`, `skills.*`, `tools.catalog`, `tools.effective`.
<Accordion title="Otomasyon, Skills ve araçlar">
- Otomasyon: `wake`, anlık veya sonraki heartbeat uyandırma metni enjeksiyonu zamanlar; `cron.list`, `cron.status`, `cron.add`, `cron.update`, `cron.remove`, `cron.run`, `cron.runs` zamanlanmış işi yönetir.
- Skills ve araçlar: `commands.list`, `skills.*`, `tools.catalog`, `tools.effective`, `tools.invoke`.
</Accordion>
</AccordionGroup>
### Yaygın olay aileleri
- `chat`: `chat.inject` gibi UI sohbet güncellemeleri ve diğer yalnızca transkript sohbet
- `chat`: `chat.inject` gibi UI sohbet güncellemeleri ve yalnızca transkript içeren diğer sohbet
olayları.
- `session.message` ve `session.tool`: abone olunan bir oturum için transkript/olay akışı
- `session.message` ve `session.tool`: abone olunmuş bir oturum için transkript/olay akışı
güncellemeleri.
- `sessions.changed`: oturum dizini veya metadatası değişti.
- `presence`: sistem presence anlık görüntüsü güncellemeleri.
- `sessions.changed`: oturum dizini veya meta verileri değişti.
- `presence`: sistem varlık anlık görüntüsü güncellemeleri.
- `tick`: periyodik keepalive / canlılık olayı.
- `health`: Gateway sağlık anlık görüntüsü güncellemesi.
- `health`: gateway sağlık anlık görüntüsü güncellemesi.
- `heartbeat`: heartbeat olay akışı güncellemesi.
- `cron`: cron çalıştırma/iş değişikliği olayı.
- `shutdown`: Gateway kapatma bildirimi.
- `node.pair.requested` / `node.pair.resolved`: Node eşleştirme yaşam döngüsü.
- `node.invoke.request`: Node çağırma isteği yayını.
- `cron`: cron çalıştırması/iş değişikliği olayı.
- `shutdown`: gateway kapatma bildirimi.
- `node.pair.requested` / `node.pair.resolved`: node eşleştirme yaşam döngüsü.
- `node.invoke.request`: node invoke isteği yayını.
- `device.pair.requested` / `device.pair.resolved`: eşleştirilmiş cihaz yaşam döngüsü.
- `voicewake.changed`: uyandırma sözcüğü tetikleyici yapılandırması değişti.
- `exec.approval.requested` / `exec.approval.resolved`: exec onay
- `exec.approval.requested` / `exec.approval.resolved`: exec onayı
yaşam döngüsü.
- `plugin.approval.requested` / `plugin.approval.resolved`: plugin onay
- `plugin.approval.requested` / `plugin.approval.resolved`: plugin onayı
yaşam döngüsü.
### Node yardımcı yöntemleri
- Node'lar, otomatik izin kontrolleri için geçerli skill yürütülebilirleri listesini almak üzere `skills.bins` çağırabilir.
- Node'lar, otomatik izin denetimleri için güncel skill yürütülebilirleri listesini almak üzere `skills.bins` çağırabilir.
### Operatör yardımcı yöntemleri
- Operatörler, bir ajan için çalışma zamanı komut envanterini almak üzere `commands.list` (`operator.read`) çağırabilir.
- `agentId` isteğe bağlıdır; varsayılan ajan çalışma alanını okumak için bunu atlayın.
- `scope`, birincil `name` değerinin hangi yüzeyi hedeflediğini denetler:
- `text`, baştaki `/` olmadan birincil metin komutu belirtecini döndürür
- `native` ve varsayılan `both` yolu, varsa sağlayıcıya duyarlı yerel adları döndürür
- `textAliases`, `/model` ve `/m` gibi tam slash takma adlarını taşır.
- `nativeName`, varsa sağlayıcıya duyarlı yerel komut adını taşır.
- `provider` isteğe bağlıdır ve yalnızca yerel adlandırmayı ve yerel plugin komutu kullanılabilirliğini etkiler.
- `includeArgs=false`, yanıttan serileştirilmiş argüman meta verilerini çıkarır.
- Operatörler, bir ajan için çalışma zamanı araç kataloğunu almak üzere `tools.catalog` (`operator.read`) çağırabilir. Yanıt, gruplanmış araçları ve köken meta verilerini içerir:
- `agentId` isteğe bağlıdır; varsayılan ajan çalışma alanını okumak için atlayın.
- `scope`, birincil `name` hedefinin hangi yüzeyi hedeflediğini kontrol eder:
- `text`, başındaki `/` olmadan birincil metin komutu belirtecini döndürür
- `native` ve varsayılan `both` yolu, mevcut olduğunda sağlayıcı farkındalığı olan yerel adları döndürür
- `textAliases`, `/model` ve `/m` gibi tam eğik çizgili takma adları taşır.
- `nativeName`, varsa sağlayıcı farkındalığı olan yerel komut adını taşır.
- `provider` isteğe bağlıdır ve yalnızca yerel adlandırmayı ve yerel Plugin komutu kullanılabilirliğini etkiler.
- `includeArgs=false`, serileştirilmiş argüman meta verilerini yanıttan çıkarır.
- Operatörler, bir ajan için çalışma zamanı araç kataloğunu almak üzere `tools.catalog` (`operator.read`) çağırabilir. Yanıt, gruplanmış araçları ve kaynak meta verilerini içerir:
- `source`: `core` veya `plugin`
- `pluginId`: `source="plugin"` olduğunda plugin sahibi
- `optional`: bir plugin aracının isteğe bağlı olup olmadığı
- `pluginId`: `source="plugin"` olduğunda Plugin sahibi
- `optional`: bir Plugin aracının isteğe bağlı olup olmadığı
- Operatörler, bir oturum için çalışma zamanında etkin araç envanterini almak üzere `tools.effective` (`operator.read`) çağırabilir.
- `sessionKey` zorunludur.
- Gateway, çağıranın sağladığı kimlik doğrulama veya teslimat bağlamını kabul etmek yerine güvenilir çalışma zamanı bağlamını sunucu tarafında oturumdan türetir.
- Yanıt oturum kapsamındadır ve çekirdek, plugin ve kanal araçları dahil olmak üzere etkin konuşmanın şu anda kullanabileceklerini yansıtır.
- Operatörler, bir ajan için görünür yetenek envanterini almak üzere `skills.status` (`operator.read`) çağırabilir.
- `agentId` isteğe bağlıdır; varsayılan ajan çalışma alanını okumak için bunu atlayın.
- Yanıt, ham gizli değerleri açığa çıkarmadan uygunluğu, eksik gereksinimleri, yapılandırma denetimlerini ve temizlenmiş kurulum seçeneklerini içerir.
- Gateway, çağıranın sağladığı kimlik doğrulama veya teslim bağlamını kabul etmek yerine, güvenilir çalışma zamanı bağlamını sunucu tarafında oturumdan türetir.
- Yanıt oturum kapsamlıdır ve etkin konuşmanın şu anda kullanabileceği core, Plugin ve kanal araçlarını yansıtır.
- Operatörler, `/tools/invoke` ile aynı Gateway ilkesi yolundan kullanılabilir bir aracı çağırmak için `tools.invoke` (`operator.write`) çağırabilir.
- `name` zorunludur. `args`, `sessionKey`, `agentId`, `confirm` ve `idempotencyKey` isteğe bağlıdır.
- Hem `sessionKey` hem de `agentId` mevcutsa, çözümlenen oturum ajanı `agentId` ile eşleşmelidir.
- Yanıt, `ok`, `toolName`, isteğe bağlı `output` ve türlendirilmiş `error` alanlarıyla SDK'ya yönelik bir zarftır. Onay veya ilke retleri, Gateway araç ilkesi işlem hattını atlamak yerine yük içinde `ok:false` döndürür.
- Operatörler, bir ajan için görünür Skills envanterini almak üzere `skills.status` (`operator.read`) çağırabilir.
- `agentId` isteğe bağlıdır; varsayılan ajan çalışma alanını okumak için atlayın.
- Yanıt, ham gizli değerleri açığa çıkarmadan uygunluğu, eksik gereksinimleri, yapılandırma kontrollerini ve temizlenmiş kurulum seçeneklerini içerir.
- Operatörler, ClawHub keşif meta verileri için `skills.search` ve `skills.detail` (`operator.read`) çağırabilir.
- Operatörler, iki modda `skills.install` (`operator.admin`) çağırabilir:
- ClawHub modu: `{ source: "clawhub", slug, version?, force? }`, varsayılan ajan çalışma alanındaki `skills/` dizinine bir yetenek klasörü kurar.
- Operatörler, `skills.install` (`operator.admin`) komutunu iki modda çağırabilir:
- ClawHub modu: `{ source: "clawhub", slug, version?, force? }`, varsayılan ajan çalışma alanındaki `skills/` dizinine bir Skills klasörü kurar.
- Gateway kurucu modu: `{ name, installId, dangerouslyForceUnsafeInstall?, timeoutMs? }`, Gateway ana makinesinde bildirilmiş bir `metadata.openclaw.install` eylemi çalıştırır.
- Operatörler, iki modda `skills.update` (`operator.admin`) çağırabilir:
- ClawHub modu, izlenen tek bir slug'ı veya varsayılan ajan çalışma alanındaki tüm izlenen ClawHub kurulumlarını günceller.
- Operatörler, `skills.update` (`operator.admin`) komutunu iki modda çağırabilir:
- ClawHub modu, varsayılan ajan çalışma alanında izlenen tek bir slug'ı veya izlenen tüm ClawHub kurulumlarını günceller.
- Yapılandırma modu, `enabled`, `apiKey` ve `env` gibi `skills.entries.<skillKey>` değerlerini yamalar.
### `models.list` görünümleri
`models.list`, isteğe bağlı bir `view` parametresi kabul eder:
`models.list`, isteğe bağlı bir `view` parametresini kabul eder:
- Atlanmış veya `"default"`: geçerli çalışma zamanı davranışı. `agents.defaults.models` yapılandırılmışsa yanıt izin verilen katalogdur; aksi halde yanıt tam Gateway kataloğudur.
- `"configured"`: seçici boyutunda davranış. `agents.defaults.models` yapılandırılmışsa yine önceliklidir. Aksi halde yanıt,ık `models.providers.*.models` girişlerini kullanır ve yalnızca yapılandırılmış model satırları yoksa tam kataloğa geri döner.
- `"all"`: `agents.defaults.models` değerini atlayarak tam Gateway kataloğu. Bunu normal model seçiciler için değil, tanılama ve keşif arayüzleri için kullanın.
- `"configured"`: seçici boyutlu davranış. `agents.defaults.models` yapılandırılmışsa yine önceliklidir. Aksi halde yanıt açık `models.providers.*.models` girdilerini kullanır ve yalnızca yapılandırılmış model satırları yoksa tam kataloğa geri döner.
- `"all"`: `agents.defaults.models` değerini atlayarak tam Gateway kataloğu. Bunu normal model seçicileri için değil, tanılama ve keşif kullanıcı arayüzleri için kullanın.
## Exec onayları
- Bir exec isteği onay gerektirdiğinde Gateway `exec.approval.requested` yayınlar.
- Operatör istemcileri, `exec.approval.resolve` çağırarak çözümler (`operator.approvals` kapsamı gerekir).
- `host=node` için `exec.approval.request`, `systemRunPlan` içermelidir (kanonik `argv`/`cwd`/`rawCommand`/oturum meta verileri). `systemRunPlan` eksik istekler reddedilir.
- Onaydan sonra iletilen `node.invoke system.run` çağrıları, yetkili komut/cwd/oturum bağlamı olarak bu kanonik `systemRunPlan` değerini yeniden kullanır.
- Bir çağıran, prepare ile nihai onaylı `system.run` iletimi arasında `command`, `rawCommand`, `cwd`, `agentId` veya `sessionKey` değerini değiştirirse Gateway, değiştirilmiş yük verisine güvenmek yerine çalıştırmayı reddeder.
- Bir exec isteğinin onaya ihtiyacı olduğunda Gateway `exec.approval.requested` yayınlar.
- Operatör istemcileri `exec.approval.resolve` çağırarak çözer (`operator.approvals` kapsamı gerekir).
- `host=node` için `exec.approval.request`, `systemRunPlan` (kanonik `argv`/`cwd`/`rawCommand`/oturum meta verileri) içermelidir. `systemRunPlan` eksik olan istekler reddedilir.
- Onaydan sonra, iletilen `node.invoke system.run` çağrıları, yetkili komut/cwd/oturum bağlamı olarak bu kanonik `systemRunPlan` değerini yeniden kullanır.
- Bir çağıran, hazırlama ile son onaylanmış `system.run` iletimi arasında `command`, `rawCommand`, `cwd`, `agentId` veya `sessionKey` değerlerini değiştirirse Gateway, değiştirilen yüke güvenmek yerine çalıştırmayı reddeder.
## Ajan teslimat geri dönüşü
## Ajan teslim geri dönüşü
- `agent` istekleri, giden teslimat istemek için `deliver=true` içerebilir.
- `bestEffortDeliver=false` katı davranışı korur: çözülemeyen veya yalnızca dahili teslimat hedefleri `INVALID_REQUEST` döndürür.
- `bestEffortDeliver=true`, harici olarak teslim edilebilir bir rota çözülemediğinde oturumla sınırlı yürütmeye geri dönüşe izin verir (örneğin dahili/webchat oturumları veya belirsiz çok kanallı yapılandırmalar).
- `agent` istekleri, giden teslim istemek için `deliver=true` içerebilir.
- `bestEffortDeliver=false` katı davranışı korur: çözümlenemeyen veya yalnızca dahili teslim hedefleri `INVALID_REQUEST` döndürür.
- `bestEffortDeliver=true`, harici olarak teslim edilebilir bir rota çözümlenemediğinde oturumla sınırlı yürütmeye geri dönüşe izin verir (örneğin dahili/webchat oturumları veya belirsiz çok kanallı yapılandırmalar).
## Sürümleme
- `PROTOCOL_VERSION`, `src/gateway/protocol/schema/protocol-schemas.ts` içinde bulunur.
- İstemciler `minProtocol` + `maxProtocol` gönderir; sunucu uyuşmazlıkları reddeder.
- Şemalar + modeller TypeBox tanımlarından üretilir:
- İstemciler `minProtocol` + `maxProtocol` gönderir; sunucu uyumsuzlukları reddeder.
- Şemalar + modeller TypeBox tanımlarından oluşturulur:
- `pnpm protocol:gen`
- `pnpm protocol:gen:swift`
- `pnpm protocol:check`
### İstemci sabitleri
`src/gateway/client.ts` içindeki referans istemci bu varsayılanları kullanır. Değerler protocol v3 genelinde kararlıdır ve üçüncü taraf istemciler için beklenen başlangıç temelidir.
`src/gateway/client.ts` içindeki referans istemci bu varsayılanları kullanır. Değerler protokol v3 boyunca kararlıdır ve üçüncü taraf istemciler için beklenen temel çizgidir.
| Sabit | Varsayılan | Kaynak |
| ---------------------------------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| `PROTOCOL_VERSION` | `3` | `src/gateway/protocol/schema/protocol-schemas.ts` |
| İstek zaman aşımı (RPC başına) | `30_000` ms | `src/gateway/client.ts` (`requestTimeoutMs`) |
| Ön kimlik doğrulama / connect-challenge zaman aşımı | `15_000` ms | `src/gateway/handshake-timeouts.ts` (config/env eşleştirilmiş sunucu/istemci bütçesini artırabilir) |
| İlk yeniden bağlanma backoff'u | `1_000` ms | `src/gateway/client.ts` (`backoffMs`) |
| En yüksek yeniden bağlanma backoff'u | `30_000` ms | `src/gateway/client.ts` (`scheduleReconnect`) |
| Device-token kapanışından sonra hızlı yeniden deneme sınırı | `250` ms | `src/gateway/client.ts` |
| `terminate()` öncesi zorla durdurma ek süresi | `250` ms | `FORCE_STOP_TERMINATE_GRACE_MS` |
| `stopAndWait()` varsayılan zaman aşımı | `1_000` ms | `STOP_AND_WAIT_TIMEOUT_MS` |
| Varsayılan tick aralığı (`hello-ok` öncesi) | `30_000` ms | `src/gateway/client.ts` |
| Tick zaman aşımı kapanışı | sessizlik `tickIntervalMs * 2` değerini aştığında kod `4000` | `src/gateway/client.ts` |
| `MAX_PAYLOAD_BYTES` | `25 * 1024 * 1024` (25 MB) | `src/gateway/server-constants.ts` |
| Sabit | Varsayılan | Kaynak |
| ----------------------------------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| `PROTOCOL_VERSION` | `3` | `src/gateway/protocol/schema/protocol-schemas.ts` |
| İstek zaman aşımı (RPC başına) | `30_000` ms | `src/gateway/client.ts` (`requestTimeoutMs`) |
| Ön kimlik doğrulama / bağlantı-sınaması zaman aşımı | `15_000` ms | `src/gateway/handshake-timeouts.ts` (config/env eşleştirilmiş sunucu/istemci bütçesini artırabilir) |
| İlk yeniden bağlanma geri çekilmesi | `1_000` ms | `src/gateway/client.ts` (`backoffMs`) |
| En fazla yeniden bağlanma geri çekilmesi | `30_000` ms | `src/gateway/client.ts` (`scheduleReconnect`) |
| Cihaz belirteci kapanışından sonra hızlı yeniden deneme sınırı | `250` ms | `src/gateway/client.ts` |
| `terminate()` öncesi zorla durdurma ek süresi | `250` ms | `FORCE_STOP_TERMINATE_GRACE_MS` |
| `stopAndWait()` varsayılan zaman aşımı | `1_000` ms | `STOP_AND_WAIT_TIMEOUT_MS` |
| Varsayılan tick aralığı (`hello-ok` öncesi) | `30_000` ms | `src/gateway/client.ts` |
| Tick zaman aşımı kapanışı | sessizlik `tickIntervalMs * 2` değerini aştığında kod `4000` | `src/gateway/client.ts` |
| `MAX_PAYLOAD_BYTES` | `25 * 1024 * 1024` (25 MB) | `src/gateway/server-constants.ts` |
Sunucu, etkin `policy.tickIntervalMs`, `policy.maxPayload` ve `policy.maxBufferedBytes` değerlerini `hello-ok` içinde duyurur; istemciler el sıkışma öncesi varsayılanlar yerine bu değerlere uymalıdır.
Sunucu etkin `policy.tickIntervalMs`, `policy.maxPayload` ve
`policy.maxBufferedBytes` değerlerini `hello-ok` içinde duyurur; istemciler
el sıkışma öncesi varsayılanlar yerine bu değerlere uymalıdır.
## Kimlik doğrulama
- Paylaşılan gizli Gateway kimlik doğrulaması, yapılandırılmış kimlik doğrulama moduna bağlı olarak `connect.params.auth.token` veya `connect.params.auth.password` kullanır.
- Tailscale Serve (`gateway.auth.allowTailscale: true`) veya local loopback olmayan `gateway.auth.mode: "trusted-proxy"` gibi kimlik taşıyan modlar, connect kimlik doğrulama denetimini `connect.params.auth.*` yerine istek başlıklarından karşılar.
- Özel giriş `gateway.auth.mode: "none"`, paylaşılan gizli connect kimlik doğrulamasını tamamen atlar; bu modu herkese açık/güvenilmeyen girişlerde açığa çıkarmayın.
- Eşleştirmeden sonra Gateway, bağlantı rolü + kapsamlarıyla sınırlı bir **cihaz belirteci** verir. Bu belirteç `hello-ok.auth.deviceToken` içinde döndürülür ve istemci tarafından gelecekteki bağlantılar için kalıcı hale getirilmelidir.
- İstemciler, başarılı her bağlantıdan sonra birincil `hello-ok.auth.deviceToken` değerini kalıcı hale getirmelidir.
- Bu **saklanan** cihaz belirteciyle yeniden bağlanırken, o belirteç için saklanan onaylı kapsam kümesi de yeniden kullanılmalıdır. Bu, zaten verilmiş olan okuma/yoklama/durum erişimini korur ve yeniden bağlantıların sessizce daha dar bir örtük yalnızca yönetici kapsamına düşmesini önler.
- İstemci tarafı connect kimlik doğrulaması derlemesi (`src/gateway/client.ts` içindeki `selectConnectAuth`):
- `auth.password` ortogonaldir ve ayarlandığında her zaman iletilir.
- `auth.token` öncelik sırasına göre doldurulur: önce açık paylaşılan belirteç, ardından açık bir `deviceToken`, ardından saklanan cihaz başına belirteç (`deviceId` + `role` ile anahtarlanır).
- `auth.bootstrapToken`, yalnızca yukarıdakilerin hiçbiri bir `auth.token` çözmediğinde gönderilir. Paylaşılan belirteç veya çözülen herhangi bir cihaz belirteci bunu bastırır.
- Tek seferlik `AUTH_TOKEN_MISMATCH` yeniden denemesinde saklanan cihaz belirtecinin otomatik yükseltilmesi yalnızca **güvenilir uç noktalarla** sınırlıdır: loopback veya sabitlenmiş `tlsFingerprint` içeren `wss://`. Sabitleme olmayan herkese açık `wss://` uygun değildir.
- Ek `hello-ok.auth.deviceTokens` girişleri bootstrap devir belirteçleridir. Bunları yalnızca connect, `wss://` veya loopback/yerel eşleştirme gibi güvenilir bir aktarım üzerinde bootstrap kimlik doğrulaması kullandığında kalıcı hale getirin.
- Bir istemci **açık** bir `deviceToken` veya açık `scopes` sağlarsa, çağıranın istediği kapsam kümesi yetkili kalır; önbelleğe alınmış kapsamlar yalnızca istemci saklanan cihaz başına belirteci yeniden kullandığında yeniden kullanılır.
- Cihaz belirteçleri `device.token.rotate` ve `device.token.revoke` ile döndürülebilir/iptal edilebilir (`operator.pairing` kapsamı gerekir).
- `device.token.rotate`, döndürme meta verilerini döndürür. Yedek taşıyıcı belirteci yalnızca aynı cihazdan, zaten o cihaz belirteciyle kimliği doğrulanmış çağrılar için yankılar; böylece yalnızca belirteç kullanan istemciler yeniden bağlanmadan önce yedeklerini kalıcı hale getirebilir. Paylaşılan/yönetici döndürmeleri taşıyıcı belirteci yankılamaz.
- Belirteç verme, döndürme ve iptal etme, o cihazın eşleştirme girişinde kaydedilmiş onaylı rol kümesiyle sınırlı kalır; belirteç mutasyonu, eşleştirme onayının hiç vermediği bir cihaz rolünü genişletemez veya hedefleyemez.
- Eşleştirilmiş cihaz belirteci oturumları için, çağıranda ayrıca `operator.admin` yoksa cihaz yönetimi kendi kapsamındadır: yönetici olmayan çağıranlar yalnızca **kendi** cihaz girişlerini kaldırabilir/iptal edebilir/döndürebilir.
- `device.token.rotate` ve `device.token.revoke`, hedef operatör belirteci kapsam kümesini çağıranın geçerli oturum kapsamlarına göre de denetler. Yönetici olmayan çağıranlar, zaten sahip olduklarından daha geniş bir operatör belirtecini döndüremez veya iptal edemez.
- Kimlik doğrulama hataları, `error.details.code` ve kurtarma ipuçlarını içerir:
- Paylaşılan gizli Gateway kimlik doğrulaması, yapılandırılmış kimlik doğrulama moduna bağlı olarak `connect.params.auth.token` veya
`connect.params.auth.password` kullanır.
- Tailscale Serve (`gateway.auth.allowTailscale: true`) veya geri döngü olmayan
`gateway.auth.mode: "trusted-proxy"` gibi kimlik taşıyan modlar, bağlantı kimlik doğrulaması denetimini
`connect.params.auth.*` yerine istek üstbilgilerinden karşılar.
- Özel giriş `gateway.auth.mode: "none"`, paylaşılan gizli bağlantı kimlik doğrulamasını
tamamen atlar; bu modu herkese açık/güvenilmeyen girişlerde açığa çıkarmayın.
- Eşleştirmeden sonra Gateway, bağlantı rolü + kapsamlarıyla sınırlı bir **cihaz belirteci** verir.
Bu belirteç `hello-ok.auth.deviceToken` içinde döndürülür ve istemci tarafından gelecekteki bağlantılar için
kalıcı olarak saklanmalıdır.
- İstemciler, başarılı herhangi bir bağlantıdan sonra birincil `hello-ok.auth.deviceToken` değerini kalıcı olarak saklamalıdır.
- Bu **saklanan** cihaz belirteciyle yeniden bağlanmak, o belirteç için saklanan
onaylanmış kapsam kümesini de yeniden kullanmalıdır. Bu, daha önce verilmiş
okuma/yoklama/durum erişimini korur ve yeniden bağlantıların sessizce daha dar
bir örtük yalnızca yönetici kapsamına daralmasını önler.
- İstemci tarafı bağlantı kimlik doğrulaması derleme işlemi (`src/gateway/client.ts` içindeki
`selectConnectAuth`):
- `auth.password` bağımsızdır ve ayarlandığında her zaman iletilir.
- `auth.token` öncelik sırasına göre doldurulur: önce açık paylaşılan belirteç,
ardından açık bir `deviceToken`, ardından saklanan cihaz başına belirteç (`deviceId` + `role` ile anahtarlanır).
- `auth.bootstrapToken` yalnızca yukarıdakilerin hiçbiri bir `auth.token`
çözemediğinde gönderilir. Paylaşılan belirteç veya çözümlenen herhangi bir cihaz belirteci bunu bastırır.
- Tek seferlik `AUTH_TOKEN_MISMATCH` yeniden denemesinde saklanan bir cihaz belirtecinin
otomatik yükseltilmesi **yalnızca güvenilir uç noktalarla** sınırlıdır —
loopback veya sabitlenmiş bir `tlsFingerprint` ile `wss://`. Sabitleme olmadan herkese açık `wss://`
uygun değildir.
- Ek `hello-ok.auth.deviceTokens` girdileri önyükleme devir belirteçleridir.
Bunları yalnızca bağlantı, `wss://` veya loopback/yerel eşleştirme gibi güvenilir bir taşıma üzerinde
önyükleme kimlik doğrulaması kullandığında kalıcı olarak saklayın.
- Bir istemci **açık** bir `deviceToken` veya açık `scopes` sağlarsa, çağıranın istediği
kapsam kümesi yetkili kalır; önbelleğe alınmış kapsamlar yalnızca istemci saklanan cihaz başına belirteci
yeniden kullandığında yeniden kullanılır.
- Cihaz belirteçleri `device.token.rotate` ve
`device.token.revoke` aracılığıyla döndürülebilir/iptal edilebilir (`operator.pairing` kapsamı gerekir).
- `device.token.rotate` döndürme meta verisi döndürür. Yedek taşıyıcı belirteci yalnızca aynı cihazdan yapılan
ve zaten o cihaz belirteciyle kimliği doğrulanmış çağrılar için tekrarlar; böylece yalnızca belirteç kullanan
istemciler yeniden bağlanmadan önce yedeklerini kalıcı olarak saklayabilir. Paylaşılan/yönetici döndürmeleri
taşıyıcı belirteci tekrar etmez.
- Belirteç verme, döndürme ve iptal işlemleri, ilgili cihazın eşleştirme girdisinde
kaydedilmiş onaylı rol kümesiyle sınırlı kalır; belirteç mutasyonu, eşleştirme onayının hiç vermediği
bir cihaz rolünü genişletemez veya hedefleyemez.
- Eşleştirilmiş cihaz belirteci oturumlarında, çağıranda ayrıca `operator.admin` yoksa
cihaz yönetimi kendi kendine kapsamlıdır: yönetici olmayan çağıranlar yalnızca **kendi** cihaz girdilerini
kaldırabilir/iptal edebilir/döndürebilir.
- `device.token.rotate` ve `device.token.revoke`, hedef operatör belirteci kapsam kümesini
çağıranın geçerli oturum kapsamlarına göre de denetler. Yönetici olmayan çağıranlar
halihazırda sahip olduklarından daha geniş bir operatör belirtecini döndüremez veya iptal edemez.
- Kimlik doğrulama hataları `error.details.code` ve kurtarma ipuçlarını içerir:
- `error.details.canRetryWithDeviceToken` (boolean)
- `error.details.recommendedNextStep` (`retry_with_device_token`, `update_auth_configuration`, `update_auth_credentials`, `wait_then_retry`, `review_auth_configuration`)
- `AUTH_TOKEN_MISMATCH` için istemci davranışı:
- Güvenilir istemciler, önbelleğe alınmış cihaz başına belirteçle sınırlı bir yeniden deneme girişiminde bulunabilir.
- Bu yeniden deneme başarısız olursa istemciler otomatik yeniden bağlanma döngülerini durdurmalı ve operatör eylemi yönergesini göstermelidir.
- Güvenilir istemciler, önbelleğe alınmış cihaz başına belirteçle bir sınırlı yeniden deneme yapmayı deneyebilir.
- Bu yeniden deneme başarısız olursa, istemciler otomatik yeniden bağlanma döngülerini durdurmalı ve operatör eylemi rehberliğini göstermelidir.
## Cihaz kimliği + eşleştirme
- Node'lar, anahtar çifti parmak izinden türetilen kararlı bir cihaz kimliği (`device.id`) içermelidir.
- Gateway'ler cihaz + rol başına token yayınlar.
- Gateway'ler cihaz + rol başına belirteç verir.
- Yerel otomatik onay etkin değilse yeni cihaz kimlikleri için eşleştirme onayları gerekir.
- Eşleştirme otomatik onayı, doğrudan local loopback bağlantılarına odaklanır.
- OpenClaw ayrıca güvenilir paylaşılan gizli yardımcı akışları için dar bir backend/container-local kendi kendine bağlanma yoluna sahiptir.
- Aynı ana bilgisayardaki tailnet veya LAN bağlantıları, eşleştirme için yine uzak olarak değerlendirilir ve onay gerektirir.
- WS istemcileri normalde `connect` sırasında `device` kimliğini içerir (operatör + node). Cihazsız tek operatör istisnalarıık güven yollarıdır:
- Yalnızca localhost'a yönelik güvensiz HTTP uyumluluğu için `gateway.controlUi.allowInsecureAuth=true`.
- Başarılı `gateway.auth.mode: "trusted-proxy"` operatör Control UI kimlik doğrulaması.
- `gateway.controlUi.dangerouslyDisableDeviceAuth=true` (son çare, ciddi güvenlik düşüşü).
- Paylaşılan gateway token/parolasıyla kimliği doğrulanmış direct-loopback `gateway-client` backend RPC'leri.
- Eşleştirme otomatik onayı, doğrudan local loopback bağlantıları etrafında merkezlenir.
- OpenClaw ayrıca güvenilir paylaşılan gizli yardımcı akışları için dar bir arka uç/kapsayıcı yerel kendi kendine bağlantı yoluna sahiptir.
- Aynı ana makine tailnet veya LAN bağlantıları eşleştirme açısından yine uzak kabul edilir ve
onay gerektirir.
- WS istemcileri normalde `connect` sırasında `device` kimliğini içerir (operatör +
node). Cihazsız tek operatör istisnalarıık güven yollarıdır:
- localhost'a özel güvensiz HTTP uyumluluğu için `gateway.controlUi.allowInsecureAuth=true`.
- başarılı `gateway.auth.mode: "trusted-proxy"` operatör Control UI kimlik doğrulaması.
- `gateway.controlUi.dangerouslyDisableDeviceAuth=true` (acil durum, ciddi güvenlik düşürmesi).
- paylaşılan Gateway belirteci/parolasıyla kimliği doğrulanmış doğrudan loopback `gateway-client` arka uç RPC'leri.
- Tüm bağlantılar, sunucunun sağladığı `connect.challenge` nonce değerini imzalamalıdır.
### Cihaz kimlik doğrulaması geçiş tanıları
Hala challenge öncesi imzalama davranışını kullanan eski istemciler için `connect` artık kararlı bir `error.details.reason` ile `error.details.code` altında `DEVICE_AUTH_*` ayrıntı kodları döndürür.
Hâlâ zorluk öncesi imzalama davranışını kullanan eski istemciler için `connect` artık
`error.details.code` altında kararlı bir `error.details.reason` ile `DEVICE_AUTH_*` ayrıntı kodları döndürür.
Yaygın geçiş hataları:
| Mesaj | details.code | details.reason | Anlam |
| --------------------------- | -------------------------------- | ------------------------ | -------------------------------------------------- |
| `device nonce required` | `DEVICE_AUTH_NONCE_REQUIRED` | `device-nonce-missing` | İstemci `device.nonce` değerini atladı (veya boş gönderdi). |
| `device nonce mismatch` | `DEVICE_AUTH_NONCE_MISMATCH` | `device-nonce-mismatch` | İstemci eski/yanlış nonce ile imzaladı. |
| `device nonce mismatch` | `DEVICE_AUTH_NONCE_MISMATCH` | `device-nonce-mismatch` | İstemci eski/yanlış bir nonce ile imzaladı. |
| `device signature invalid` | `DEVICE_AUTH_SIGNATURE_INVALID` | `device-signature` | İmza yükü v2 yüküyle eşleşmiyor. |
| `device signature expired` | `DEVICE_AUTH_SIGNATURE_EXPIRED` | `device-signature-stale` | İmzalı zaman damgası izin verilen sapmanın dışında. |
| `device identity mismatch` | `DEVICE_AUTH_DEVICE_ID_MISMATCH` | `device-id-mismatch` | `device.id`, açık anahtar parmak iziyle eşleşmiyor. |
| `device public key invalid` | `DEVICE_AUTH_PUBLIC_KEY_INVALID` | `device-public-key` | Açık anahtar biçimi/standartlaştırması başarısız oldu. |
| `device public key invalid` | `DEVICE_AUTH_PUBLIC_KEY_INVALID` | `device-public-key` | Açık anahtar biçimi/kanonikleştirme başarısız oldu. |
Geçiş hedefi:
- Her zaman `connect.challenge` değerini bekleyin.
- Sunucu nonce değerini içeren v2 yükünü imzalayın.
- Aynı nonce değerini `connect.params.device.nonce` içinde gönderin.
- Tercih edilen imza yükü, cihaz/istemci/rol/kapsamlar/token/nonce alanlarına ek olarak `platform` ve `deviceFamily` değerlerini de bağlayan `v3` değeridir.
- Eski `v2` imzaları uyumluluk için kabul edilmeye devam eder, ancak eşleştirilmiş cihaz metadata sabitlemesi yeniden bağlantıda komut politikasını denetlemeye devam eder.
- Tercih edilen imza yükü `v3` değeridir; bu, cihaz/istemci/rol/kapsamlar/belirteç/nonce alanlarına ek olarak
`platform` ve `deviceFamily` değerlerini bağlar.
- Eski `v2` imzaları uyumluluk için kabul edilmeye devam eder, ancak eşleştirilmiş cihaz
meta veri sabitlemesi yeniden bağlantıda komut ilkesini yine denetler.
## TLS + sabitleme
- WS bağlantıları için TLS desteklenir.
- İstemciler isteğe bağlı olarak gateway sertifika parmak izini sabitleyebilir (`gateway.tls` yapılandırmasına ve `gateway.remote.tlsFingerprint` veya CLI `--tls-fingerprint` değerine bakın).
- TLS, WS bağlantıları için desteklenir.
- İstemciler isteğe bağlı olarak Gateway sertifika parmak izini sabitleyebilir (`gateway.tls`
yapılandırmasına ek olarak `gateway.remote.tlsFingerprint` veya CLI `--tls-fingerprint` bölümüne bakın).
## Kapsam
Bu protokol **tam gateway API**'sini (durum, kanallar, modeller, sohbet, ajan, oturumlar, node'lar, onaylar vb.) açığa çıkarır. Kesin yüzey, `src/gateway/protocol/schema.ts` içindeki TypeBox şemaları tarafından tanımlanır.
Bu protokol **tam Gateway API'sini**ığa çıkarır (durum, kanallar, modeller, sohbet,
aracı, oturumlar, node'lar, onaylar vb.). Tam yüzey
`src/gateway/protocol/schema.ts` içindeki TypeBox şemaları tarafından tanımlanır.
## İlgili

View File

@ -1,24 +1,24 @@
---
read_when:
- Sorun giderme merkezi, daha ayrıntılı tanılama için sizi buraya yönlendirdi
- Kesin komutlar içeren, semptom temelli kararlı operasyon kılavuzu bölümlerine ihtiyacınız var.
- Kesin komutlar içeren kararlı, belirti temelli runbook bölümlerine ihtiyacınız var
sidebarTitle: Troubleshooting
summary: Gateway, kanallar, otomasyon, Node'lar ve tarayıcı için derinlemesine sorun giderme çalıştırma kitabı
summary: Gateway, kanallar, otomasyon, düğümler ve tarayıcı için derinlemesine sorun giderme kılavuzu
title: Sorun giderme
x-i18n:
generated_at: "2026-04-30T09:25:22Z"
generated_at: "2026-05-01T09:01:01Z"
model: gpt-5.5
provider: openai
source_hash: 48735a68daa92678867a9cafb3ceeb37063bb91dee8c4c94e185f74eb0296fcb
source_hash: a808dcfd8527b041f629cff24308550f961e9eeb4d7d4ce6f1ce84dff6bbef89
source_path: gateway/troubleshooting.md
workflow: 16
---
Bu sayfa ayrıntılı çalışma kılavuzudur. Önce hızlı triyaj akışını istiyorsanız [/help/troubleshooting](/tr/help/troubleshooting) ile başlayın.
Bu sayfa derin çalıştırma kitabıdır. Önce hızlı triyaj akışını istiyorsanız [/help/troubleshooting](/tr/help/troubleshooting) sayfasından başlayın.
## Komut merdiveni
Bunları önce, bu sırayla çalıştırın:
Önce bunları, bu sırayla çalıştırın:
```bash
openclaw status
@ -31,14 +31,14 @@ openclaw channels status --probe
Beklenen sağlıklı sinyaller:
- `openclaw gateway status`, `Runtime: running`, `Connectivity probe: ok` ve bir `Capability: ...` satırı gösterir.
- `openclaw doctor` engelleyici yapılandırma/hizmet sorunu bildirmez.
- `openclaw doctor`, engelleyici yapılandırma/hizmet sorunu bildirmez.
- `openclaw channels status --probe`, hesap başına canlı aktarım durumunu ve desteklendiği yerlerde `works` veya `audit ok` gibi yoklama/denetim sonuçlarını gösterir.
## Bölünmüş kurulumlar ve daha yeni yapılandırma koruması
Bunu, bir güncellemeden sonra Gateway hizmeti beklenmedik şekilde durduğunda veya günlükler bir `openclaw` ikilisinin `openclaw.json` dosyasını en son yazan sürümden daha eski olduğunu gösterdiğinde kullanın.
Bunu, bir Gateway hizmeti güncellemeden sonra beklenmedik şekilde durduğunda veya günlükler bir `openclaw` ikilisinin `openclaw.json` dosyasını en son yazan sürümden daha eski olduğunu gösterdiğinde kullanın.
OpenClaw, yapılandırma yazma işlemlerini `meta.lastTouchedVersion` ile damgalar. Salt okunur komutlar daha yeni bir OpenClaw tarafından yazılmış yapılandırmayı yine de inceleyebilir, ancak işlem ve hizmet değişiklikleri daha eski bir ikiliyle devam etmeyi reddeder. Engellenen eylemler arasında Gateway hizmetini başlatma, durdurma, yeniden başlatma, kaldırma, zorunlu hizmet yeniden kurulumu, hizmet modu Gateway başlatma ve `gateway --force` bağlantı noktası temizliği bulunur.
OpenClaw, yapılandırma yazımlarını `meta.lastTouchedVersion` ile damgalar. Salt okunur komutlar daha yeni bir OpenClaw tarafından yazılmış yapılandırmayı yine de inceleyebilir, ancak süreç ve hizmet değişiklikleri eski bir ikiliden devam etmeyi reddeder. Engellenen eylemler arasında Gateway hizmetini başlatma, durdurma, yeniden başlatma, kaldırma, zorunlu hizmet yeniden kurulumu, hizmet modunda Gateway başlatma ve `gateway --force` port temizliği bulunur.
```bash
which openclaw
@ -49,10 +49,10 @@ openclaw config get meta.lastTouchedVersion
<Steps>
<Step title="PATH'i düzelt">
`openclaw` daha yeni kuruluma çözümlenecek şekilde `PATH` değerini düzeltin, sonra eylemi yeniden çalıştırın.
`openclaw` daha yeni kuruluma çözümlenecek şekilde `PATH` değerini düzeltin, ardından eylemi yeniden çalıştırın.
</Step>
<Step title="Gateway hizmetini yeniden kur">
Hedeflenen Gateway hizmetini daha yeni kurulumdan yeniden kurun:
Amaçlanan Gateway hizmetini daha yeni kurulumdan yeniden kurun:
```bash
openclaw gateway install --force
@ -66,12 +66,12 @@ openclaw config get meta.lastTouchedVersion
</Steps>
<Warning>
Yalnızca kasıtlı sürüm düşürme veya acil kurtarma için, tek komutta `OPENCLAW_ALLOW_OLDER_BINARY_DESTRUCTIVE_ACTIONS=1` ayarlayın. Normal kullanımda ayarsız bırakın.
Yalnızca kasıtlı sürüm düşürme veya acil kurtarma için, tek komutta `OPENCLAW_ALLOW_OLDER_BINARY_DESTRUCTIVE_ACTIONS=1` ayarını yapın. Normal işlem için ayarı boş bırakın.
</Warning>
## Uzun bağlam için Anthropic 429 ek kullanım gerekli
## Uzun bağlam için Anthropic 429 ek kullanım gerektirir
Bunu günlükler/hatalar şunu içerdiğinde kullanın: `HTTP 429: rate_limit_error: Extra usage is required for long context requests`.
Günlükler/hatalar şunu içerdiğinde bunu kullanın: `HTTP 429: rate_limit_error: Extra usage is required for long context requests`.
```bash
openclaw logs --follow
@ -79,17 +79,17 @@ openclaw models status
openclaw config get agents.defaults.models
```
Şunlara bakın:
Şunları arayın:
- Seçili Anthropic Opus/Sonnet modelinde `params.context1m: true` var.
- Geçerli Anthropic kimlik bilgisi uzun bağlam kullanımı için uygun değil.
- İstekler yalnızca 1M beta yoluna ihtiyaç duyan uzun oturumlarda/model çalıştırmalarında başarısız oluyor.
- Mevcut Anthropic kimlik bilgisi uzun bağlam kullanımına uygun değil.
- İstekler yalnızca 1M beta yolunu gerektiren uzun oturumlarda/model çalıştırmalarında başarısız oluyor.
Düzeltme seçenekleri:
<Steps>
<Step title="context1m'yi devre dışı bırak">
Normal bağlam penceresine geri dönmek için o modelde `context1m` değerini devre dışı bırakın.
<Step title="context1m ayarını devre dışı bırak">
Normal bağlam penceresine geri dönmek için o modelde `context1m` ayarını devre dışı bırakın.
</Step>
<Step title="Uygun bir kimlik bilgisi kullan">
Uzun bağlam istekleri için uygun bir Anthropic kimlik bilgisi kullanın veya bir Anthropic API anahtarına geçin.
@ -103,15 +103,15 @@ Düzeltme seçenekleri:
- [Anthropic](/tr/providers/anthropic)
- [Token kullanımı ve maliyetler](/tr/reference/token-use)
- [Anthropic'ten neden HTTP 429 görüyorum?](/tr/help/faq-first-run#why-am-i-seeing-http-429-ratelimiterror-from-anthropic)
- [Neden Anthropic'ten HTTP 429 görüyorum?](/tr/help/faq-first-run#why-am-i-seeing-http-429-ratelimiterror-from-anthropic)
## Yerel OpenAI uyumlu backend doğrudan yoklamaları geçiyor ancak agent çalıştırmaları başarısız oluyor
## Yerel OpenAI uyumlu arka uç doğrudan yoklamalardan geçiyor ancak ajan çalıştırmaları başarısız oluyor
Bunu şu durumlarda kullanın:
- `curl ... /v1/models` çalışıyor
- küçük doğrudan `/v1/chat/completions` çağrıları çalışıyor
- OpenClaw model çalıştırmaları yalnızca normal agent turlarında başarısız oluyor
- OpenClaw model çalıştırmaları yalnızca normal ajan turlarında başarısız oluyor
```bash
curl http://127.0.0.1:1234/v1/models
@ -122,29 +122,29 @@ openclaw infer model run --model <provider/model> --prompt "hi" --json
openclaw logs --follow
```
Şunlara bakın:
Şunları arayın:
- doğrudan küçük çağrılar başarılı oluyor, ancak OpenClaw çalıştırmaları yalnızca daha büyük istemlerde başarısız oluyor
- aynı çıplak model kimliğiyle doğrudan `/v1/chat/completions`
- aynı yalın model kimliğiyle doğrudan `/v1/chat/completions`
çalışmasına rağmen `model_not_found` veya 404 hataları
- `messages[].content` için dize bekleyen backend hataları
- OpenAI uyumlu yerel backend ile aralıklı `incomplete turn detected ... stopReason=stop payloads=0` uyarıları
- yalnızca daha büyük istem-token sayıları veya tam agent çalışma zamanı istemleriyle ortaya çıkan backend çökmeleri
- `messages[].content` için dize beklediğini belirten arka uç hataları
- OpenAI uyumlu yerel arka uçla aralıklı `incomplete turn detected ... stopReason=stop payloads=0` uyarıları
- yalnızca daha büyük istem-token sayıları veya tam ajan çalışma zamanı istemleriyle ortaya çıkan arka uç çökmeleri
<AccordionGroup>
<Accordion title="Yaygın imzalar">
- Yerel MLX/vLLM tarzı bir sunucuda `model_not_found``baseUrl` değerinin `/v1` içerdiğini, `/v1/chat/completions` backend'leri için `api` değerinin `"openai-completions"` olduğunu ve `models.providers.<provider>.models[].id` değerinin çıplak sağlayıcı-yerel kimlik olduğunu doğrulayın. Bunu sağlayıcı önekiyle bir kez seçin, örneğin `mlx/mlx-community/Qwen3-30B-A3B-6bit`; katalog girdisini `mlx-community/Qwen3-30B-A3B-6bit` olarak tutun.
- `messages[...].content: invalid type: sequence, expected a string`backend yapılandırılmış Chat Completions içerik parçalarını reddediyor. Düzeltme: `models.providers.<provider>.models[].compat.requiresStringContent: true` ayarlayın.
- `incomplete turn detected ... stopReason=stop payloads=0`backend Chat Completions isteğini tamamladı ancak o tur için kullanıcıya görünür asistan metni döndürmedi. OpenClaw, yeniden oynatması güvenli boş OpenAI uyumlu turları bir kez yeniden dener; kalıcı hatalar genellikle backend'in boş/metin dışı içerik yayımladığı veya son yanıt metnini bastırdığı anlamına gelir.
- doğrudan küçük istekler başarılı oluyor, ancak OpenClaw agent çalıştırmaları backend/model çökmeleriyle başarısız oluyor (örneğin bazı `inferrs` derlemelerinde Gemma) → OpenClaw aktarımı büyük olasılıkla zaten doğru; backend daha büyük agent çalışma zamanı istem biçiminde başarısız oluyor.
- araçları devre dışı bıraktıktan sonra hatalar azalıyor ama kaybolmuyor → araç şemaları baskının bir parçasıydı, ancak kalan sorun hâlâ upstream model/sunucu kapasitesi veya bir backend hatasıdır.
- Yerel MLX/vLLM tarzı sunucuda `model_not_found``baseUrl` değerinin `/v1` içerdiğini, `/v1/chat/completions` arka uçları için `api` değerinin `"openai-completions"` olduğunu ve `models.providers.<provider>.models[].id` değerinin yalın sağlayıcı-yerel kimlik olduğunu doğrulayın. Örneğin `mlx/mlx-community/Qwen3-30B-A3B-6bit` gibi sağlayıcı önekiyle bir kez seçin; katalog girdisini `mlx-community/Qwen3-30B-A3B-6bit` olarak tutun.
- `messages[...].content: invalid type: sequence, expected a string`arka uç yapılandırılmış Chat Completions içerik parçalarını reddediyor. Düzeltme: `models.providers.<provider>.models[].compat.requiresStringContent: true` ayarlayın.
- `incomplete turn detected ... stopReason=stop payloads=0`arka uç Chat Completions isteğini tamamladı ancak o tur için kullanıcıya görünür asistan metni döndürmedi. OpenClaw, yeniden oynatılması güvenli boş OpenAI uyumlu turları bir kez yeniden dener; kalıcı hatalar genellikle arka ucun boş/metin dışı içerik ürettiği veya son yanıt metnini bastırdığı anlamına gelir.
- doğrudan küçük istekler başarılı oluyor, ancak OpenClaw ajan çalıştırmaları arka uç/model çökmeleriyle başarısız oluyor (örneğin bazı `inferrs` derlemelerinde Gemma) → OpenClaw aktarımı büyük olasılıkla zaten doğru; arka uç daha büyük ajan çalışma zamanı istem biçiminde başarısız oluyor.
- araçları devre dışı bıraktıktan sonra hatalar azalıyor ancak kaybolmuyor → araç şemaları baskının bir parçasıydı, ancak kalan sorun hâlâ üst akış model/sunucu kapasitesi veya arka uç hatasıdır.
</Accordion>
<Accordion title="Düzeltme seçenekleri">
1. Yalnızca dize kabul eden Chat Completions backend'leri için `compat.requiresStringContent: true` ayarlayın.
2. OpenClaw'ın araç şeması yüzeyini güvenilir şekilde işleyemeyen modeller/backend'ler için `compat.supportsTools: false` ayarlayın.
3. Mümkün olduğunda istem baskısını azaltın: daha küçük çalışma alanı önyüklemesi, daha kısa oturum geçmişi, daha hafif yerel model veya daha güçlü uzun bağlam desteğine sahip bir backend.
4. Küçük doğrudan istekler geçmeye devam ederken OpenClaw agent turları backend içinde hâlâ çöküyorsa, bunu upstream sunucu/model sınırlaması olarak ele alın ve kabul edilen yük biçimiyle oraya bir yeniden üretim örneği gönderin.
1. Yalnızca dize destekleyen Chat Completions arka uçları için `compat.requiresStringContent: true` ayarlayın.
2. OpenClaw'ın araç şeması yüzeyini güvenilir şekilde işleyemeyen modeller/arka uçlar için `compat.supportsTools: false` ayarlayın.
3. Mümkün olan yerlerde istem baskısını azaltın: daha küçük çalışma alanı başlangıcı, daha kısa oturum geçmişi, daha hafif yerel model veya daha güçlü uzun bağlam desteğine sahip bir arka uç.
4. Küçük doğrudan istekler geçmeye devam ederken OpenClaw ajan turları hâlâ arka uç içinde çöküyorsa, bunu üst akış sunucu/model sınırlaması olarak ele alın ve kabul edilen yük biçimiyle birlikte oraya bir yeniden üretim kaydıın.
</Accordion>
</AccordionGroup>
@ -152,11 +152,11 @@ openclaw logs --follow
- [Yapılandırma](/tr/gateway/configuration)
- [Yerel modeller](/tr/gateway/local-models)
- [OpenAI uyumlu endpoint'ler](/tr/gateway/configuration-reference#openai-compatible-endpoints)
- [OpenAI uyumlu uç noktalar](/tr/gateway/configuration-reference#openai-compatible-endpoints)
## Yanıt yok
Kanallar ayakta ancak hiçbir şey yanıt vermiyorsa, herhangi bir şeyi yeniden bağlamadan önce yönlendirmeyi ve ilkeyi kontrol edin.
Kanallar çalışır durumdaysa ancak hiçbir şey yanıt vermiyorsa, herhangi bir şeyi yeniden bağlamadan önce yönlendirme ve politikayı kontrol edin.
```bash
openclaw status
@ -166,17 +166,17 @@ openclaw config get channels
openclaw logs --follow
```
Şunlara bakın:
Şunları arayın:
- DM gönderenleri için eşleştirme beklemede.
- Grup bahsetme kapısı (`requireMention`, `mentionPatterns`).
- Grup bahsetme geçidi (`requireMention`, `mentionPatterns`).
- Kanal/grup izin listesi uyumsuzlukları.
Yaygın imzalar:
- `drop guild message (mention required` → grup mesajı bahsetme yapılana kadar yok sayılır.
- `drop guild message (mention required` → grup mesajı bahsetme yapılana kadar yok sayıldı.
- `pairing request` → gönderenin onaya ihtiyacı var.
- `blocked` / `allowlist` → gönderen/kanal ilke tarafından filtrelendi.
- `blocked` / `allowlist` → gönderen/kanal politika tarafından filtrelendi.
İlgili:
@ -184,9 +184,9 @@ Yaygın imzalar:
- [Gruplar](/tr/channels/groups)
- [Eşleştirme](/tr/channels/pairing)
## Pano denetim arayüzü bağlantısı
## Pano kontrol kullanıcı arayüzü bağlantısı
Pano/denetim arayüzü bağlanmadığında URL, kimlik doğrulama modu ve güvenli bağlam varsayımlarını doğrulayın.
Pano/kontrol kullanıcı arayüzü bağlanmadığında URL'yi, kimlik doğrulama modunu ve güvenli bağlam varsayımlarını doğrulayın.
```bash
openclaw gateway status
@ -196,25 +196,25 @@ openclaw doctor
openclaw gateway status --json
```
Şunlara bakın:
Şunları arayın:
- Doğru yoklama URL'si ve pano URL'si.
- İstemci ile Gateway arasında kimlik doğrulama modu/token uyumsuzluğu.
- İstemci ve Gateway arasında kimlik doğrulama modu/token uyuşmazlığı.
- Cihaz kimliğinin gerekli olduğu yerde HTTP kullanımı.
<AccordionGroup>
<Accordion title="Bağlantı / kimlik doğrulama imzaları">
- `device identity required` → güvenli olmayan bağlam veya eksik cihaz kimlik doğrulaması.
- `origin not allowed` → tarayıcı `Origin` değeri `gateway.controlUi.allowedOrigins` içinde değil (veya açık bir izin listesi olmadan local loopback olmayan bir tarayıcı kaynağından bağlanıyorsunuz).
- `device nonce required` / `device nonce mismatch` → istemci, sınama tabanlı cihaz kimlik doğrulama akışını tamamlamıyor (`connect.challenge` + `device.nonce`).
- `device signature invalid` / `device signature expired` → istemci geçerli el sıkışma için yanlış yükü (veya eski zaman damgasını) imzaladı.
- `AUTH_TOKEN_MISMATCH` ve `canRetryWithDeviceToken=true` → istemci önbelleğe alınmış cihaz token'ıyla güvenilir bir yeniden deneme yapabilir.
- Bu önbelleğe alınmış token yeniden denemesi, eşleştirilmiş cihaz token'ıyla depolanan önbelleğe alınmış kapsam kümesini yeniden kullanır. Açık `deviceToken` / açık `scopes` çağıranları bunun yerine istenen kapsam kümesini korur.
- Bu yeniden deneme yolu dışında, bağlantı kimlik doğrulama önceliği önce açık paylaşılan token/parola, sonra açık `deviceToken`, sonra depolanmış cihaz token'ı, sonra önyükleme token'ıdır.
- Zaman uyumsuz Tailscale Serve Control UI yolunda, aynı `{scope, ip}` için başarısız girişimler, sınırlayıcı hatayı kaydetmeden önce serileştirilir. Bu nedenle aynı istemciden iki kötü eşzamanlı yeniden deneme, iki düz uyumsuzluk yerine ikinci denemede `retry later` gösterebilir.
- Tarayıcı kaynaklı bir local loopback istemcisinden `too many failed authentication attempts (retry later)` → aynı normalleştirilmiş `Origin` kaynaklı tekrarlanan hatalar geçici olarak kilitlenir; başka bir localhost kaynağı ayrı bir kova kullanır.
- bu yeniden denemeden sonra tekrarlanan `unauthorized` → paylaşılan token/cihaz token'ı kayması; token yapılandırmasını yenileyin ve gerekirse cihaz token'ını yeniden onaylayın/döndürün.
- `gateway connect failed:` → yanlış ana makine/bağlantı noktası/url hedefi.
- `device nonce required` / `device nonce mismatch` → istemci, sınamaya dayalı cihaz kimlik doğrulama akışını tamamlamıyor (`connect.challenge` + `device.nonce`).
- `device signature invalid` / `device signature expired` → istemci mevcut el sıkışma için yanlış yükü (veya eski zaman damgasını) imzaladı.
- `AUTH_TOKEN_MISMATCH` ile `canRetryWithDeviceToken=true` → istemci önbelleğe alınmış cihaz token'ı ile güvenilir bir yeniden deneme yapabilir.
- Bu önbelleğe alınmış token yeniden denemesi, eşleştirilmiş cihaz token'ıyla depolanan önbelleğe alınmış kapsam kümesini yeniden kullanır. Açık `deviceToken` / açık `scopes` çağırıcıları bunun yerine kendi istenen kapsam kümesini korur.
- Bu yeniden deneme yolunun dışında, bağlantı kimlik doğrulama önceliği önce açık paylaşılan token/parola, sonra açık `deviceToken`, sonra depolanmış cihaz token'ı, sonra başlangıç token'ıdır.
- Eşzamansız Tailscale Serve Control UI yolunda, aynı `{scope, ip}` için başarısız denemeler, sınırlayıcı başarısızlığı kaydetmeden önce serileştirilir. Bu nedenle aynı istemciden iki hatalı eşzamanlı yeniden deneme, iki düz uyuşmazlık yerine ikinci denemede `retry later` olarak görünebilir.
- Tarayıcı kaynaklı local loopback istemcisinden `too many failed authentication attempts (retry later)` → aynı normalleştirilmiş `Origin` üzerinden tekrarlanan hatalar geçici olarak kilitlenir; başka bir localhost kaynağı ayrı bir kova kullanır.
- bu yeniden denemeden sonra tekrarlanan `unauthorized` → paylaşılan token/cihaz token'ı sapması; token yapılandırmasını yenileyin ve gerekirse cihaz token'ını yeniden onaylayın/döndürün.
- `gateway connect failed:` → yanlış ana makine/port/url hedefi.
</Accordion>
</AccordionGroup>
@ -223,18 +223,18 @@ openclaw gateway status --json
Sonraki eylemi seçmek için başarısız `connect` yanıtındaki `error.details.code` değerini kullanın:
| Ayrıntı kodu | Anlamı | Önerilen eylem |
| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `AUTH_TOKEN_MISSING` | İstemci, gerekli paylaşılan tokenı göndermedi. | İstemcide tokenı yapıştırın/ayarlayın ve yeniden deneyin. Pano yolları için: `openclaw config get gateway.auth.token`, ardından Control UI ayarlarına yapıştırın. |
| `AUTH_TOKEN_MISMATCH` | Paylaşılan token, Gateway kimlik doğrulama tokenıyla eşleşmedi. | `canRetryWithDeviceToken=true` ise güvenilen tek bir yeniden denemeye izin verin. Önbelleğe alınmış token yeniden denemeleri, saklanan onaylı kapsamları yeniden kullanır; açık `deviceToken` / `scopes` çağıranları istenen kapsamları korur. Hâlâ başarısız oluyorsa [token kayması kurtarma kontrol listesini](/tr/cli/devices#token-drift-recovery-checklist) çalıştırın. |
| `AUTH_DEVICE_TOKEN_MISMATCH` | Önbelleğe alınmış cihaz başına token eski veya iptal edilmiş. | [Cihazlar CLI](/tr/cli/devices) ile cihaz tokenını döndürün/yeniden onaylayın, ardından yeniden bağlanın. |
| `PAIRING_REQUIRED` | Cihaz kimliğinin onaylanması gerekiyor. `not-paired`, `scope-upgrade`, `role-upgrade` veya `metadata-upgrade` için `error.details.reason` değerini kontrol edin ve varsa `requestId` / `remediationHint` kullanın. | Bekleyen isteği onaylayın: `openclaw devices list`, ardından `openclaw devices approve <requestId>`. Kapsam/rol yükseltmeleri, istenen erişimi inceledikten sonra aynı akışı kullanır. |
| Ayrıntı kodu | Anlamı | Önerilen eylem |
| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `AUTH_TOKEN_MISSING` | İstemci gerekli paylaşılan belirteci göndermedi. | İstemcide belirteci yapıştırın/ayarlayın ve yeniden deneyin. Pano yolları için: `openclaw config get gateway.auth.token`, ardından Control UI ayarlarına yapıştırın. |
| `AUTH_TOKEN_MISMATCH` | Paylaşılan belirteç Gateway kimlik doğrulama belirteciyle eşleşmedi. | `canRetryWithDeviceToken=true` ise bir güvenilir yeniden denemeye izin verin. Önbelleğe alınmış belirteç yeniden denemeleri saklanan onaylı kapsamları yeniden kullanır; açık `deviceToken` / `scopes` çağıranları istenen kapsamları korur. Hâlâ başarısız oluyorsa [belirteç sapması kurtarma kontrol listesini](/tr/cli/devices#token-drift-recovery-checklist) çalıştırın. |
| `AUTH_DEVICE_TOKEN_MISMATCH` | Önbelleğe alınmış cihaz başına belirteç eski veya iptal edilmiş. | [devices CLI](/tr/cli/devices) kullanarak cihaz belirtecini döndürün/yeniden onaylayın, ardından yeniden bağlanın. |
| `PAIRING_REQUIRED` | Cihaz kimliğinin onaylanması gerekiyor. `not-paired`, `scope-upgrade`, `role-upgrade` veya `metadata-upgrade` için `error.details.reason` değerini kontrol edin ve varsa `requestId` / `remediationHint` kullanın. | Bekleyen isteği onaylayın: `openclaw devices list`, ardından `openclaw devices approve <requestId>`. Kapsam/rol yükseltmeleri, istenen erişimi gözden geçirdikten sonra aynı akışı kullanır. |
<Note>
Paylaşılan Gateway tokenı/parolasıyla kimliği doğrulanan doğrudan loopback arka uç RPC'leri, CLI'ın eşleştirilmiş cihaz kapsam taban çizgisine bağlı olmamalıdır. Alt ajanlar veya diğer dahili çağrılar hâlâ `scope-upgrade` ile başarısız oluyorsa, çağıranın `client.id: "gateway-client"` ve `client.mode: "backend"` kullandığını ve açık bir `deviceIdentity` ya da cihaz tokenı zorlamadığını doğrulayın.
Paylaşılan Gateway belirteci/parolasıyla kimliği doğrulanan doğrudan geri döngü arka uç RPC'leri, CLI'nin eşlenmiş cihaz kapsam temel çizgisine bağlı olmamalıdır. Alt ajanlar veya diğer dahili çağrılar hâlâ `scope-upgrade` ile başarısız oluyorsa, çağıranın `client.id: "gateway-client"` ve `client.mode: "backend"` kullandığını ve açık bir `deviceIdentity` veya cihaz belirteci zorlamadığını doğrulayın.
</Note>
Cihaz kimlik doğrulaması v2 geçiş kontrolü:
Cihaz kimlik doğrulaması v2 geçiş denetimi:
```bash
openclaw --version
@ -245,20 +245,20 @@ openclaw gateway status
Günlükler nonce/imza hataları gösteriyorsa, bağlanan istemciyi güncelleyin ve doğrulayın:
<Steps>
<Step title="connect.challenge bekleyin">
<Step title="Wait for connect.challenge">
İstemci, Gateway tarafından verilen `connect.challenge` değerini bekler.
</Step>
<Step title="Payload'u imzalayın">
İstemci, challenge'a bağlı payload'u imzalar.
<Step title="Sign the payload">
İstemci, challenge'a bağlı yükü imzalar.
</Step>
<Step title="Cihaz nonce'unu gönderin">
<Step title="Send the device nonce">
İstemci, aynı challenge nonce'u ile `connect.params.device.nonce` gönderir.
</Step>
</Steps>
`openclaw devices rotate` / `revoke` / `remove` beklenmedik şekilde reddedilirse:
- eşleştirilmiş cihaz token oturumları, çağıranda ayrıca `operator.admin` yoksa yalnızca **kendi** cihazını yönetebilir
- eşlenmiş cihaz belirteci oturumları, çağıranın ayrıca `operator.admin` yetkisi yoksa yalnızca **kendi** cihazını yönetebilir
- `openclaw devices rotate --scope ...` yalnızca çağıran oturumun zaten sahip olduğu operatör kapsamlarını isteyebilir
İlgili:
@ -267,36 +267,36 @@ Günlükler nonce/imza hataları gösteriyorsa, bağlanan istemciyi güncelleyin
- [Control UI](/tr/web/control-ui)
- [Cihazlar](/tr/cli/devices)
- [Uzaktan erişim](/tr/gateway/remote)
- [Güvenilen proxy kimlik doğrulaması](/tr/gateway/trusted-proxy-auth)
- [Güvenilir proxy kimlik doğrulaması](/tr/gateway/trusted-proxy-auth)
## Gateway hizmeti çalışmıyor
Hizmet kuruluysa ancak süreç ayakta kalmıyorsa bunu kullanın.
Hizmet kurulu olduğu halde süreç ayakta kalmıyorsa bunu kullanın.
```bash
openclaw gateway status
openclaw status
openclaw logs --follow
openclaw doctor
openclaw gateway status --deep # sistem düzeyi hizmetleri de tara
openclaw gateway status --deep # also scan system-level services
```
Şunları arayın:
Şunlara bakın:
- Çıkış ipuçlarıyla birlikte `Runtime: stopped`.
- Hizmet yapılandırması uyumsuzluğu (`Config (cli)` ile `Config (service)`).
- Port/dinleyici çakışmaları.
- Hizmet yapılandırması uyuşmazlığı (`Config (cli)` ile `Config (service)`).
- Bağlantı noktası/dinleyici çakışmaları.
- `--deep` kullanıldığında ek launchd/systemd/schtasks kurulumları.
- `Other gateway-like services detected (best effort)` temizleme ipuçları.
<AccordionGroup>
<Accordion title="Yaygın imzalar">
- `Gateway start blocked: set gateway.mode=local` veya `existing config is missing gateway.mode` → yerel Gateway modu etkin değil ya da yapılandırma dosyasının üzerine yazılmış ve `gateway.mode` kaybolmuş. Düzeltme: yapılandırmanızda `gateway.mode="local"` ayarlayın veya beklenen yerel mod yapılandırmasını yeniden damgalamak için `openclaw onboard --mode local` / `openclaw setup` komutunu yeniden çalıştırın. OpenClaw'ı Podman ile çalıştırıyorsanız varsayılan yapılandırma yolu `~/.openclaw/openclaw.json` olur.
- `refusing to bind gateway ... without auth` → geçerli bir Gateway kimlik doğrulama yolu olmadan loopback dışı bağlama (token/parola veya yapılandırılmışsa güvenilen proxy).
- `another gateway instance is already listening` / `EADDRINUSE`port çakışması.
- `Other gateway-like services detected (best effort)` → eski veya paralel launchd/systemd/schtasks birimleri var. Çoğu kurulum makine başına tek Gateway tutmalıdır; birden fazlasına gerçekten ihtiyacınız varsa portları + yapılandırma/durum/çalışma alanını yalıtın. Bkz. [/gateway#multiple-gateways-same-host](/tr/gateway#multiple-gateways-same-host).
- Doctor'dan `System-level OpenClaw gateway service detected` → kullanıcı düzeyi hizmet eksikken bir systemd sistem birimi var. Doctor'ın kullanıcı hizmeti kurmasına izin vermeden önce kopyayı kaldırın veya devre dışı bırakın ya da sistem birimi amaçlanan yönetici ise `OPENCLAW_SERVICE_REPAIR_POLICY=external` ayarlayın.
- `Gateway service port does not match current gateway config` → kurulu yönetici hâlâ eski `--port` değerini sabitliyor. `openclaw doctor --fix` veya `openclaw gateway install --force` çalıştırın, ardından Gateway hizmetini yeniden başlatın.
<Accordion title="Common signatures">
- `Gateway start blocked: set gateway.mode=local` veya `existing config is missing gateway.mode` → yerel Gateway modu etkin değil ya da yapılandırma dosyasının üzerine yazılmış ve `gateway.mode` kaybolmuş. Düzeltme: yapılandırmanızda `gateway.mode="local"` ayarlayın veya beklenen yerel mod yapılandırmasını yeniden damgalamak için `openclaw onboard --mode local` / `openclaw setup` komutunu yeniden çalıştırın. OpenClaw'ı Podman üzerinden çalıştırıyorsanız varsayılan yapılandırma yolu `~/.openclaw/openclaw.json` olur.
- `refusing to bind gateway ... without auth` → geçerli bir Gateway kimlik doğrulama yolu (belirteç/parola veya yapılandırılmışsa güvenilir proxy) olmadan geri döngü dışı bağlama.
- `another gateway instance is already listening` / `EADDRINUSE`bağlantı noktası çakışması.
- `Other gateway-like services detected (best effort)` → eski veya paralel launchd/systemd/schtasks birimleri var. Çoğu kurulum makine başına tek Gateway tutmalıdır; birden fazlasına gerçekten ihtiyacınız varsa bağlantı noktalarını + yapılandırmayı/durumu/çalışma alanını yalıtın. Bkz. [/gateway#multiple-gateways-same-host](/tr/gateway#multiple-gateways-same-host).
- Doctor'dan `System-level OpenClaw gateway service detected` → kullanıcı düzeyi hizmet yokken bir systemd sistem birimi var. Doctor'ın kullanıcı hizmeti kurmasına izin vermeden önce yinelenen birimi kaldırın veya devre dışı bırakın ya da sistem birimi amaçlanan denetleyiciyse `OPENCLAW_SERVICE_REPAIR_POLICY=external` ayarlayın.
- `Gateway service port does not match current gateway config` → kurulu denetleyici hâlâ eski `--port` değerini sabitliyor. `openclaw doctor --fix` veya `openclaw gateway install --force` çalıştırın, ardından Gateway hizmetini yeniden başlatın.
</Accordion>
</AccordionGroup>
@ -309,7 +309,7 @@ openclaw gateway status --deep # sistem düzeyi hizmetleri de tara
## Gateway bilinen son iyi yapılandırmayı geri yükledi
Gateway başlıyorsa ancak günlükler `openclaw.json` dosyasını geri yüklediğini söylüyorsa bunu kullanın.
Gateway başlıyor ancak günlükler `openclaw.json` dosyasının geri yüklendiğini söylüyorsa bunu kullanın.
```bash
openclaw logs --follow
@ -318,7 +318,7 @@ openclaw config validate
openclaw doctor
```
Şunları arayın:
Şunlara bakın:
- `Config auto-restored from last-known-good`
- `gateway: invalid config was restored from last-known-good backup`
@ -327,15 +327,15 @@ openclaw doctor
- `Config recovery warning` ile başlayan bir ana ajan sistem olayı
<AccordionGroup>
<Accordion title="Ne oldu">
- Reddedilen yapılandırma başlatma veya sıcak yeniden yükleme sırasında doğrulanmadı.
- OpenClaw reddedilen payload'u `.clobbered.*` olarak korudu.
- Etkin yapılandırma, son doğrulanmış bilinen son iyi kopyadan geri yüklendi.
- Sonraki ana ajan turu, reddedilen yapılandırmayı körü körüne yeniden yazmaması için uyarılır.
- Tüm doğrulama sorunları `plugins.entries.<id>...` altındaysa OpenClaw tüm dosyayı geri yüklemezdi. Plugin'e yerel hatalar görünür kalırken ilgisiz kullanıcı ayarları etkin yapılandırmada kalır.
<Accordion title="What happened">
- Reddedilen yapılandırma, başlatma veya sıcak yeniden yükleme sırasında doğrulanmadı.
- OpenClaw reddedilen yükü `.clobbered.*` olarak korudu.
- Etkin yapılandırma, doğrulanmış son bilinen iyi kopyadan geri yüklendi.
- Sonraki ana ajan turu, reddedilen yapılandırmayı körlemesine yeniden yazmaması için uyarılır.
- Tüm doğrulama sorunları `plugins.entries.<id>...` altında olsaydı OpenClaw dosyanın tamamını geri yüklemezdi. Plugin yerelindeki hatalar görünür kalırken ilgisiz kullanıcı ayarları etkin yapılandırmada kalır.
</Accordion>
<Accordion title="İnceleyin ve onarın">
<Accordion title="Inspect and repair">
```bash
CONFIG="$(openclaw config file)"
ls -lt "$CONFIG".clobbered.* "$CONFIG".rejected.* 2>/dev/null | head
@ -344,19 +344,20 @@ openclaw doctor
openclaw doctor
```
</Accordion>
<Accordion title="Yaygın imzalar">
<Accordion title="Common signatures">
- `.clobbered.*` var → harici doğrudan düzenleme veya başlatma okuması geri yüklendi.
- `.rejected.*` var → OpenClaw'a ait bir yapılandırma yazımı, commit öncesinde şema veya üzerine yazma denetimlerinde başarısız oldu.
- `Config write rejected:` → yazma, gerekli şekli düşürmeye, dosyayı keskin biçimde küçültmeye veya geçersiz yapılandırmayı kalıcılaştırmaya çalıştı.
- `missing-meta-vs-last-good`, `gateway-mode-missing-vs-last-good` veya `size-drop-vs-last-good:*` → başlatma, mevcut dosyayı son bilinen iyi yedeğe kıyasla alanları veya boyutu kaybettiği için üzerine yazılmış olarak ele aldı.
- `Config last-known-good promotion skipped` → aday, `***` gibi sansürlenmiş gizli yer tutucular içeriyordu.
- `.rejected.*` var → OpenClaw'a ait bir yapılandırma yazımı, işleme alınmadan önce şema veya üzerine yazma denetimlerinde başarısız oldu.
- `Config write rejected:` → yazma işlemi gerekli şekli kaldırmaya, dosyayı keskin biçimde küçültmeye veya geçersiz yapılandırmayı kalıcılaştırmaya çalıştı.
- `Rejected validation details:` → kurtarma günlüğü veya ana ajan bildirimi, geri yüklemeye neden olan şema yolunu içerir; örneğin `agents.defaults.execution` veya `gateway.auth.password.source`.
- `missing-meta-vs-last-good`, `gateway-mode-missing-vs-last-good` veya `size-drop-vs-last-good:*` → başlatma, mevcut dosyayı son bilinen iyi yedeğe kıyasla alan veya boyut kaybettiği için üzerine yazılmış kabul etti.
- `Config last-known-good promotion skipped` → aday, `***` gibi maskelenmiş gizli yer tutucuları içeriyordu.
</Accordion>
<Accordion title="Düzeltme seçenekleri">
<Accordion title="Fix options">
1. Doğruysa geri yüklenen etkin yapılandırmayı koruyun.
2. Yalnızca amaçlanan anahtarları `.clobbered.*` veya `.rejected.*` içinden kopyalayın, ardından `openclaw config set` ya da `config.patch` ile uygulayın.
2. Yalnızca amaçlanan anahtarları `.clobbered.*` veya `.rejected.*` içinden kopyalayın, ardından bunları `openclaw config set` veya `config.patch` ile uygulayın.
3. Yeniden başlatmadan önce `openclaw config validate` çalıştırın.
4. Elle düzenliyorsanız yalnızca değiştirmek istediğiniz kısmi nesneyi değil, tam JSON5 yapılandırmasını koruyun.
4. Elle düzenliyorsanız, değiştirmek istediğiniz kısmi nesneyi değil tam JSON5 yapılandırmasını koruyun.
</Accordion>
</AccordionGroup>
@ -377,29 +378,29 @@ openclaw gateway probe --json
openclaw gateway probe --ssh user@gateway-host
```
Şunları arayın:
Şunlara bakın:
- JSON çıktısında `warnings[].code` ve `primaryTargetId`.
- Uyarının SSH geri dönüşü, birden çok Gateway, eksik kapsamlar veya çözümlenmemiş kimlik doğrulama başvuruları hakkında olup olmadığı.
- Uyarının SSH geri dönüşü, birden fazla Gateway, eksik kapsamlar veya çözümlenmemiş kimlik doğrulama başvuruları hakkında olup olmadığı.
Yaygın imzalar:
- `SSH tunnel failed to start; falling back to direct probes.` → SSH kurulumu başarısız oldu, ancak komut yine de doğrudan yapılandırılmış/loopback hedeflerini denedi.
- `multiple reachable gateways detected` → birden fazla hedef yanıt verdi. Bu genellikle amaçlı bir çoklu Gateway kurulumu veya eski/kopya dinleyiciler anlamına gelir.
- `Read-probe diagnostics are limited by gateway scopes (missing operator.read)` → bağlantı çalıştı, ancak ayrıntı RPC kapsamla sınırlı; cihaz kimliğini eşleştirin veya `operator.read` ile kimlik bilgileri kullanın.
- `Gateway accepted the WebSocket connection, but follow-up read diagnostics failed` → bağlantı çalıştı, ancak tam tanılama RPC seti zaman aşımına uğradı veya başarısız oldu. Bunu zayıflamış tanılamalara sahip erişilebilir bir Gateway olarak ele alın; `--json` çıktısında `connect.ok` ve `connect.rpcOk` değerlerini karşılaştırın.
- `Capability: pairing-pending` veya `gateway closed (1008): pairing required` → Gateway yanıt verdi, ancak bu istemcinin normal operatör erişiminden önce hâlâ eşleştirme/onaya ihtiyacı var.
- `SSH tunnel failed to start; falling back to direct probes.` → SSH kurulumu başarısız oldu, ancak komut yine de doğrudan yapılandırılmış/geri döngü hedeflerini denedi.
- `multiple reachable gateways detected` → birden fazla hedef yanıt verdi. Genellikle bu, kasıtlı bir çoklu Gateway kurulumu veya eski/yinelenen dinleyiciler anlamına gelir.
- `Read-probe diagnostics are limited by gateway scopes (missing operator.read)` → bağlantı çalıştı, ancak ayrıntı RPC'si kapsamla sınırlı; cihaz kimliğini eşleyin veya `operator.read` içeren kimlik bilgileri kullanın.
- `Gateway accepted the WebSocket connection, but follow-up read diagnostics failed` → bağlantı çalıştı, ancak tam tanılama RPC seti zaman aşımına uğradı veya başarısız oldu. Bunu, tanılamaları kısıtlı olan erişilebilir bir Gateway olarak değerlendirin; `--json` çıktısında `connect.ok` ve `connect.rpcOk` değerlerini karşılaştırın.
- `Capability: pairing-pending` veya `gateway closed (1008): pairing required` → Gateway yanıt verdi, ancak bu istemcinin normal operatör erişiminden önce hâlâ eşleme/onay alması gerekiyor.
- çözümlenmemiş `gateway.auth.*` / `gateway.remote.*` SecretRef uyarı metni → başarısız hedef için bu komut yolunda kimlik doğrulama materyali kullanılamadı.
İlgili:
- [Gateway](/tr/cli/gateway)
- [Aynı ana makinede birden çok Gateway](/tr/gateway#multiple-gateways-same-host)
- [Aynı ana bilgisayarda birden fazla Gateway](/tr/gateway#multiple-gateways-same-host)
- [Uzaktan erişim](/tr/gateway/remote)
## Kanal bağlı, mesajlar akmıyor
## Kanal bağlı, iletiler akmıyor
Kanal durumu bağlıysa ancak mesaj akışı durmuşsa, ilkeye, izinlere ve kanala özgü teslim kurallarına odaklanın.
Kanal durumu bağlıysa ancak ileti akışı durmuşsa ilkeye, izinlere ve kanala özgü teslim kurallarına odaklanın.
```bash
openclaw channels status --probe
@ -409,7 +410,7 @@ openclaw logs --follow
openclaw config get channels
```
Şunları arayın:
Şunlara bakın:
- DM ilkesi (`pairing`, `allowlist`, `open`, `disabled`).
- Grup izin listesi ve bahsetme gereksinimleri.
@ -417,7 +418,7 @@ openclaw config get channels
Yaygın imzalar:
- `mention required` → ileti grup bahsetme ilkesi nedeniyle yok sayıldı.
- `mention required` → ileti, grup bahsetme ilkesi tarafından yok sayıldı.
- `pairing` / bekleyen onay izleri → gönderen onaylı değil.
- `missing_scope`, `not_in_channel`, `Forbidden`, `401/403` → kanal kimlik doğrulama/izin sorunu.
@ -440,21 +441,21 @@ openclaw system heartbeat last
openclaw logs --follow
```
Şunlara bakın:
Şunları arayın:
- Cron etkin ve sonraki uyanma mevcut.
- İş çalıştırma geçmişi durumu (`ok`, `skipped`, `error`).
- Heartbeat atlama nedenleri (`quiet-hours`, `requests-in-flight`, `cron-in-progress`, `lanes-busy`, `alerts-disabled`, `empty-heartbeat-file`, `no-tasks-due`).
<AccordionGroup>
<Accordion title="Yaygın imzalar">
- `cron: scheduler disabled; jobs will not run automatically`Cron devre dışı.
- `cron: timer tick failed` → zamanlayıcı tıkı başarısız oldu; dosya/günlük/çalışma zamanı hatalarını kontrol edin.
- `heartbeat skipped` ve `reason=quiet-hours` → etkin saatler penceresinin dışında.
- `heartbeat skipped` ve `reason=empty-heartbeat-file``HEARTBEAT.md` var ancak yalnızca boş satırlar / Markdown başlıkları içeriyor; bu yüzden OpenClaw model çağrısını atlar.
- `heartbeat skipped` ve `reason=no-tasks-due``HEARTBEAT.md` bir `tasks:` bloğu içeriyor, ancak bu tıkta hiçbir görevin zamanı gelmemiş.
<Accordion title="Common signatures">
- `cron: scheduler disabled; jobs will not run automatically`cron devre dışı.
- `cron: timer tick failed` → zamanlayıcı tik işlemi başarısız oldu; dosya/günlük/çalışma zamanı hatalarını denetleyin.
- `heartbeat skipped` with `reason=quiet-hours` → etkin saatler penceresinin dışında.
- `heartbeat skipped` with `reason=empty-heartbeat-file``HEARTBEAT.md` var ancak yalnızca boş satırlar / markdown başlıkları içeriyor, bu yüzden OpenClaw model çağrısını atlar.
- `heartbeat skipped` with `reason=no-tasks-due``HEARTBEAT.md` bir `tasks:` bloğu içeriyor, ancak bu tikte görevlerin hiçbiri gelmiş değil.
- `heartbeat: unknown accountId` → Heartbeat teslim hedefi için geçersiz hesap kimliği.
- `heartbeat skipped` ve `reason=dm-blocked` → Heartbeat hedefi, `agents.defaults.heartbeat.directPolicy` (veya ajan bazında geçersiz kılma) `block` olarak ayarlanmışken DM tarzı bir hedefe çözümlendi.
- `heartbeat skipped` with `reason=dm-blocked` → Heartbeat hedefi, `agents.defaults.heartbeat.directPolicy` (veya aracı başına geçersiz kılma) `block` olarak ayarlıyken DM tarzı bir hedefe çözümlendi.
</Accordion>
</AccordionGroup>
@ -467,7 +468,7 @@ openclaw logs --follow
## Node eşleştirildi, araç başarısız oluyor
Bir Node eşleştirilmişse ancak araçlar başarısız oluyorsa ön plan, izin ve onay durumunu yalıtın.
Bir Node eşleştirilmişse ancak araçlar başarısız oluyorsa ön plan, izin ve onay durumunu izole edin.
```bash
openclaw nodes status
@ -477,28 +478,28 @@ openclaw logs --follow
openclaw status
```
Şunlara bakın:
Şunları arayın:
- Beklenen yeteneklere sahip çevrimiçi Node.
- Beklenen yeteneklerle Node çevrimiçi.
- Kamera/mikrofon/konum/ekran için işletim sistemi izinleri.
- Exec onayları ve izin listesi durumu.
Yaygın imzalar:
- `NODE_BACKGROUND_UNAVAILABLE` → Node uygulaması ön planda olmalı.
- `*_PERMISSION_REQUIRED` / `LOCATION_PERMISSION_REQUIRED` → işletim sistemi izni eksik.
- `SYSTEM_RUN_DENIED: approval required`Exec onayı bekliyor.
- `NODE_BACKGROUND_UNAVAILABLE` → Node uygulaması ön planda olmalıdır.
- `*_PERMISSION_REQUIRED` / `LOCATION_PERMISSION_REQUIRED`eksik işletim sistemi izni.
- `SYSTEM_RUN_DENIED: approval required`exec onayı bekliyor.
- `SYSTEM_RUN_DENIED: allowlist miss` → komut izin listesi tarafından engellendi.
İlgili:
- [Exec onayları](/tr/tools/exec-approvals)
- [Node sorun giderme](/tr/nodes/troubleshooting)
- [Node'lar](/tr/nodes/index)
- [Nodes](/tr/nodes/index)
## Tarayıcı aracı başarısız oluyor
Gateway sağlıklı olmasına rağmen tarayıcı aracı eylemleri başarısız olduğunda bunu kullanın.
Gateway'in kendisi sağlıklıyken tarayıcı aracı eylemleri başarısız olduğunda bunu kullanın.
```bash
openclaw browser status
@ -508,41 +509,41 @@ openclaw logs --follow
openclaw doctor
```
Şunlara bakın:
Şunları arayın:
- `plugins.allow` ayarlı mı ve `browser` içeriyor mu.
- Geçerli tarayıcı yürütülebilir dosya yolu.
- `plugins.allow` ayarlanmış mı ve `browser` içeriyor mu.
- Geçerli tarayıcı çalıştırılabilir dosya yolu.
- CDP profil erişilebilirliği.
- `existing-session` / `user` profilleri için yerel Chrome kullanılabilirliği.
<AccordionGroup>
<Accordion title="Plugin / yürütülebilir dosya imzaları">
- `unknown command "browser"` veya `unknown command 'browser'` → paketle gelen tarayıcı Plugin'i `plugins.allow` tarafından hariç tutulmuş.
- `browser.enabled=true` iken tarayıcı aracı eksik / kullanılamıyor → `plugins.allow`, `browser` öğesini hariç tutuyor; bu yüzden Plugin hiç yüklenmedi.
- `Failed to start Chrome CDP on port` → tarayıcı süreci başlatılamadı.
<Accordion title="Plugin / executable signatures">
- `unknown command "browser"` or `unknown command 'browser'` → paketli tarayıcı Plugin'i `plugins.allow` tarafından dışlanmış.
- tarayıcı aracı eksik / kullanılamıyor, `browser.enabled=true` iken`plugins.allow`, `browser` öğesini dışlıyor, bu yüzden Plugin hiç yüklenmedi.
- `Failed to start Chrome CDP on port` → tarayıcı işlemi başlatılamadı.
- `browser.executablePath not found` → yapılandırılmış yol geçersiz.
- `browser.cdpUrl must be http(s) or ws(s)` → yapılandırılmış CDP URL'si `file:` veya `ftp:` gibi desteklenmeyen bir şema kullanıyor.
- `browser.cdpUrl has invalid port` → yapılandırılmış CDP URL'sinde hatalı veya aralık dışında bir port var.
- `Playwright is not available in this gateway build; '<feature>' is unsupported.` → geçerli Gateway kurulumu, paketle gelen tarayıcı Plugin'inin `playwright-core` çalışma zamanı bağımlılığından yoksun; `openclaw doctor --fix` çalıştırın, ardından Gateway'i yeniden başlatın. ARIA anlık görüntüleri ve temel sayfa ekran görüntüleri çalışmaya devam edebilir, ancak gezinme, AI anlık görüntüleri, CSS seçici öğe ekran görüntüleri ve PDF dışa aktarma kullanılamaz kalır.
- `browser.cdpUrl has invalid port` → yapılandırılmış CDP URL'sinde hatalı veya aralık dışında bir bağlantı noktası var.
- `Playwright is not available in this gateway build; '<feature>' is unsupported.` → geçerli Gateway kurulumu, paketli tarayıcı Plugin'inin `playwright-core` çalışma zamanı bağımlılığından yoksun; `openclaw doctor --fix` çalıştırın, ardından Gateway'i yeniden başlatın. ARIA anlık görüntüleri ve temel sayfa ekran görüntüleri yine de çalışabilir, ancak gezinme, AI anlık görüntüleri, CSS seçici öğe ekran görüntüleri ve PDF dışa aktarma kullanılamaz kalır.
</Accordion>
<Accordion title="Chrome MCP / mevcut oturum imzaları">
- `Could not find DevToolsActivePort for chrome` → Chrome MCP mevcut oturumu, seçilen tarayıcı veri dizinine henüz bağlanamadı. Tarayıcı inceleme sayfasınıın, uzaktan hata ayıklamayı etkinleştirin, tarayıcıyıık tutun, ilk bağlanma istemini onaylayın, ardından yeniden deneyin. Oturum açılmış durum gerekmiyorsa yönetilen `openclaw` profilini tercih edin.
<Accordion title="Chrome MCP / existing-session signatures">
- `Could not find DevToolsActivePort for chrome` → Chrome MCP existing-session henüz seçilen tarayıcı veri dizinine bağlanamadı. Tarayıcı inceleme sayfasınıın, uzaktan hata ayıklamayı etkinleştirin, tarayıcıyıık tutun, ilk bağlanma istemini onaylayın, ardından yeniden deneyin. Oturum açılmış durum gerekli değilse yönetilen `openclaw` profilini tercih edin.
- `No Chrome tabs found for profile="user"` → Chrome MCP bağlanma profilinde açık yerel Chrome sekmesi yok.
- `Remote CDP for profile "<name>" is not reachable` → yapılandırılmış uzak CDP uç noktasına Gateway ana makinesinden erişilemiyor.
- `Browser attachOnly is enabled ... not reachable` veya `Browser attachOnly is enabled and CDP websocket ... is not reachable` → yalnızca bağlanma profilinin erişilebilir hedefi yok ya da HTTP uç noktası yanıt verdi ancak CDP WebSocket yine de açılamadı.
- `Browser attachOnly is enabled ... not reachable` or `Browser attachOnly is enabled and CDP websocket ... is not reachable` → yalnızca bağlanma profili için erişilebilir hedef yok veya HTTP uç noktası yanıt verdi ancak CDP WebSocket yine de açılamadı.
</Accordion>
<Accordion title="Öğe / ekran görüntüsü / yükleme imzaları">
<Accordion title="Element / screenshot / upload signatures">
- `fullPage is not supported for element screenshots` → ekran görüntüsü isteği `--full-page` ile `--ref` veya `--element` öğesini birlikte kullandı.
- `element screenshots are not supported for existing-session profiles; use ref from snapshot.` → Chrome MCP / `existing-session` ekran görüntüsü çağrıları CSS `--element` değil, sayfa yakalama veya anlık görüntü `--ref` kullanmalıdır.
- `existing-session file uploads do not support element selectors; use ref/inputRef.` → Chrome MCP yükleme kancaları CSS seçicileri değil, anlık görüntü ref'leri gerektirir.
- `existing-session file uploads do not support element selectors; use ref/inputRef.` → Chrome MCP yükleme kancaları CSS seçicileri değil, anlık görüntü referansları gerektirir.
- `existing-session file uploads currently support one file at a time.` → Chrome MCP profillerinde çağrı başına bir yükleme gönderin.
- `existing-session dialog handling does not support timeoutMs.` → Chrome MCP profillerindeki iletişim kutusu kancaları zaman aşımı geçersiz kılmalarını desteklemez.
- `existing-session type does not support timeoutMs overrides.``profile="user"` / Chrome MCP mevcut oturum profillerinde `act:type` için `timeoutMs` değerini çıkarın veya özel zaman aşımı gerektiğinde yönetilen/CDP tarayıcı profili kullanın.
- `existing-session evaluate does not support timeoutMs overrides.``profile="user"` / Chrome MCP mevcut oturum profillerinde `act:evaluate` için `timeoutMs` değerini çıkarın veya özel zaman aşımı gerektiğinde yönetilen/CDP tarayıcı profili kullanın.
- `response body is not supported for existing-session profiles yet.``responsebody` hâlâ yönetilen bir tarayıcı veya ham CDP profili gerektirir.
- yalnızca bağlanma veya uzak CDP profillerinde eski görüntü alanı / koyu mod / yerel ayar / çevrimdışı geçersiz kılmaları → etkin denetim oturumunu kapatmak ve tüm Gateway'i yeniden başlatmadan Playwright/CDP öykünme durumunu serbest bırakmak için `openclaw browser stop --browser-profile <name>` çalıştırın.
- `existing-session type does not support timeoutMs overrides.``profile="user"` / Chrome MCP existing-session profillerinde `act:type` için `timeoutMs` öğesini atlayın veya özel zaman aşımı gerekiyorsa yönetilen/CDP tarayıcı profili kullanın.
- `existing-session evaluate does not support timeoutMs overrides.``profile="user"` / Chrome MCP existing-session profillerinde `act:evaluate` için `timeoutMs` öğesini atlayın veya özel zaman aşımı gerekiyorsa yönetilen/CDP tarayıcı profili kullanın.
- `response body is not supported for existing-session profiles yet.``responsebody` hâlâ yönetilen tarayıcı veya ham CDP profili gerektirir.
- yalnızca bağlanma veya uzak CDP profillerinde eski viewport / koyu mod / yerel ayar / çevrimdışı geçersiz kılmalarıtüm Gateway'i yeniden başlatmadan etkin denetim oturumunu kapatmak ve Playwright/CDP öykünme durumunu serbest bırakmak için `openclaw browser stop --browser-profile <name>` çalıştırın.
</Accordion>
</AccordionGroup>
@ -552,12 +553,12 @@ openclaw doctor
- [Tarayıcı (OpenClaw tarafından yönetilen)](/tr/tools/browser)
- [Tarayıcı sorun giderme](/tr/tools/browser-linux-troubleshooting)
## Yükseltme yaptıysanız ve bir şey aniden bozulduysa
## Yükselttiyseniz ve bir şey aniden bozulduysa
Yükseltme sonrası bozulmaların çoğu yapılandırma kayması veya artık zorunlu tutulan daha sıkı varsayılanlardır.
Yükseltme sonrası bozulmaların çoğu yapılandırma sapması veya artık uygulanan daha katı varsayılanlardır.
<AccordionGroup>
<Accordion title="1. Kimlik doğrulama ve URL geçersiz kılma davranışı değişti">
<Accordion title="1. Auth and URL override behavior changed">
```bash
openclaw gateway status
openclaw config get gateway.mode
@ -565,18 +566,18 @@ Yükseltme sonrası bozulmaların çoğu yapılandırma kayması veya artık zor
openclaw config get gateway.auth.mode
```
Kontrol edilecekler:
Denetlenecekler:
- `gateway.mode=remote` ise yerel hizmetiniz sorunsuzken CLI çağrıları uzağı hedefliyor olabilir.
- Açık `--url` çağrıları saklanan kimlik bilgilerine geri dönmez.
- `gateway.mode=remote` ise CLI çağrıları, yerel hizmetiniz sorunsuzken uzak hedefe gidiyor olabilir.
- Açık `--url` çağrıları kayıtlı kimlik bilgilerine geri dönmez.
Yaygın imzalar:
- `gateway connect failed:` → yanlış URL hedefi.
- `unauthorized` → uç nokta erişilebilir ancak kimlik doğrulama yanlış.
- `unauthorized` → uç nokta erişilebilir ancak auth yanlış.
</Accordion>
<Accordion title="2. Bağlama ve kimlik doğrulama korumaları daha sıkı">
<Accordion title="2. Bind and auth guardrails are stricter">
```bash
openclaw config get gateway.bind
openclaw config get gateway.auth.mode
@ -585,18 +586,18 @@ Yükseltme sonrası bozulmaların çoğu yapılandırma kayması veya artık zor
openclaw logs --follow
```
Kontrol edilecekler:
Denetlenecekler:
- local loopback dışı bağlamalar (`lan`, `tailnet`, `custom`) geçerli bir Gateway kimlik doğrulama yolu gerektirir: paylaşılan belirteç/parola kimlik doğrulaması veya doğru yapılandırılmış local loopback dışı `trusted-proxy` dağıtımı.
- local loopback dışı bağlamalar (`lan`, `tailnet`, `custom`) geçerli bir Gateway auth yolu gerektirir: paylaşılan token/parola auth ya da doğru yapılandırılmış local loopback dışı `trusted-proxy` dağıtımı.
- `gateway.token` gibi eski anahtarlar `gateway.auth.token` yerine geçmez.
Yaygın imzalar:
- `refusing to bind gateway ... without auth` → geçerli bir Gateway kimlik doğrulama yolu olmadan local loopback dışı bağlama.
- çalışma zamanı çalışırken `Connectivity probe: failed` → Gateway çalışıyor ancak geçerli kimlik doğrulama/URL ile erişilemiyor.
- `refusing to bind gateway ... without auth` → geçerli Gateway auth yolu olmadan local loopback dışı bağlama.
- `Connectivity probe: failed` çalışma zamanı çalışırken → Gateway canlı ancak geçerli auth/url ile erişilemez.
</Accordion>
<Accordion title="3. Eşleştirme ve cihaz kimliği durumu değişti">
<Accordion title="3. Pairing and device identity state changed">
```bash
openclaw devices list
openclaw pairing list --channel <channel> [--account <id>]
@ -604,20 +605,20 @@ Yükseltme sonrası bozulmaların çoğu yapılandırma kayması veya artık zor
openclaw doctor
```
Kontrol edilecekler:
Denetlenecekler:
- Pano/Node'lar için bekleyen cihaz onayları.
- pano/Node'lar için bekleyen cihaz onayları.
- İlke veya kimlik değişikliklerinden sonra bekleyen DM eşleştirme onayları.
Yaygın imzalar:
- `device identity required` → cihaz kimlik doğrulaması karşılanmadı.
- `pairing required` → gönderen/cihaz onaylanmalı.
- `device identity required` → cihaz auth karşılanmadı.
- `pairing required` → gönderen/cihaz onaylanmalıdır.
</Accordion>
</AccordionGroup>
Kontrollerden sonra hizmet yapılandırması ve çalışma zamanı hâlâ uyuşmuyorsa hizmet meta verilerini aynı profil/durum dizininden yeniden yükleyin:
Denetimlerden sonra hizmet yapılandırması ve çalışma zamanı hâlâ uyuşmuyorsa hizmet meta verilerini aynı profil/durum dizininden yeniden kurun:
```bash
openclaw gateway install --force
@ -626,12 +627,12 @@ openclaw gateway restart
İlgili:
- [Kimlik doğrulama](/tr/gateway/authentication)
- [Arka plan Exec ve süreç aracı](/tr/gateway/background-process)
- [Gateway'in sahip olduğu eşleştirme](/tr/gateway/pairing)
- [Authentication](/tr/gateway/authentication)
- [Arka plan exec ve işlem aracı](/tr/gateway/background-process)
- [Gateway sahipli eşleştirme](/tr/gateway/pairing)
## İlgili
- [Doctor](/tr/gateway/doctor)
- [SSS](/tr/help/faq)
- [Gateway çalışma kılavuzu](/tr/gateway)
- [Gateway runbook](/tr/gateway)

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +1,14 @@
---
read_when:
- OpenClaw'ı Güncelleme
- Güncellemeden sonra bir şey bozuluyor
summary: OpenClaw'ı güvenli şekilde güncelleme (global kurulum veya kaynak), ayrıca geri alma stratejisi
- Bir güncellemeden sonra bir şey bozuluyor
summary: OpenClaw'u güvenli şekilde güncelleme (sistem geneli kurulum veya kaynak koddan) ve geri alma stratejisi
title: Güncelleme
x-i18n:
generated_at: "2026-04-30T09:30:46Z"
generated_at: "2026-05-01T09:01:33Z"
model: gpt-5.5
provider: openai
source_hash: 17d4839002b153976e014e0eefcb44f92dcb9bb45b81bf30efb1e8e8c0f30ec3
source_hash: 98631ce432a28af244ec22ce0cf4a23ded356dd93e9c154f502347683eef52d1
source_path: install/updating.md
workflow: 16
---
@ -29,41 +29,41 @@ Kanalları değiştirmek veya belirli bir sürümü hedeflemek için:
openclaw update --channel beta
openclaw update --channel dev
openclaw update --tag main
openclaw update --dry-run # preview without applying
openclaw update --dry-run # uygulamadan önizle
```
`--channel beta` beta sürümü tercih eder, ancak beta etiketi eksikse veya en son kararlı sürümden daha eskiyse çalışma zamanı stable/latest sürümüne geri döner. Tek seferlik paket güncellemesi için ham npm beta dist-tag değerini istiyorsanız `--tag beta` kullanın.
`--channel beta` beta sürümü tercih eder, ancak beta etiketi eksikse veya en son kararlı sürümden eskiyse çalışma zamanı stable/latest sürümüne geri döner. Tek seferlik bir paket güncellemesi için ham npm beta dist-tag değerini istiyorsanız `--tag beta` kullanın.
Kanal semantiği için [Geliştirme kanalları](/tr/install/development-channels) bölümüne bakın.
## npm ve git kurulumları arasında geçiş yapma
## npm ve git kurulumları arasında geçiş yapın
Kurulum türünü değiştirmek istediğinizde kanalları kullanın. Güncelleyici `~/.openclaw` içindeki durumunuzu, yapılandırmanızı, kimlik bilgilerinizi ve çalışma alanınızı korur; yalnızca CLI ve Gateway'in hangi OpenClaw kod kurulumunu kullandığını değiştirir.
Kurulum türünü değiştirmek istediğinizde kanalları kullanın. Güncelleyici `~/.openclaw` içindeki durumunuzu, yapılandırmanızı, kimlik bilgilerinizi ve çalışma alanınızı korur; yalnızca CLI ve Gateway'in hangi OpenClaw kod kurulumunu kullanacağını değiştirir.
```bash
# npm package install -> editable git checkout
# npm paket kurulumu -> düzenlenebilir git checkout
openclaw update --channel dev
# git checkout -> npm package install
# git checkout -> npm paket kurulumu
openclaw update --channel stable
```
Tam kurulum modu geçişini önizlemek için önce `--dry-run` ile çalıştırın:
Kesin kurulum modu geçişini önizlemek için önce `--dry-run` ile çalıştırın:
```bash
openclaw update --channel dev --dry-run
openclaw update --channel stable --dry-run
```
`dev` kanalı bir git checkout olmasını sağlar, onu derler ve global CLI'ı bu checkout'tan kurar. `stable` ve `beta` kanalları paket kurulumlarını kullanır. Gateway zaten kuruluysa, `openclaw update` servis meta verilerini yeniler ve `--no-restart` geçmediğiniz sürece yeniden başlatır.
`dev` kanalı bir git checkout olmasını sağlar, bunu derler ve global CLI'ı bu checkout'tan kurar. `stable` ve `beta` kanalları paket kurulumlarını kullanır. Gateway zaten kuruluysa, `openclaw update` servis meta verilerini yeniler ve `--no-restart` iletmediğiniz sürece yeniden başlatır.
## Alternatif: yükleyiciyi yeniden çalıştırma
## Alternatif: yükleyiciyi yeniden çalıştırın
```bash
curl -fsSL https://openclaw.ai/install.sh | bash
```
İlk kurulumu atlamak için `--no-onboard` ekleyin. Yükleyici üzerinden belirli bir kurulum türünü zorlamak için `--install-method git --no-onboard` veya `--install-method npm --no-onboard` geçin.
Onboarding'i atlamak için `--no-onboard` ekleyin. Yükleyici aracılığıyla belirli bir kurulum türünü zorlamak için `--install-method git --no-onboard` veya `--install-method npm --no-onboard` iletin.
`openclaw update`, npm paket kurulum aşamasından sonra başarısız olursa yükleyiciyi yeniden çalıştırın. Yükleyici eski güncelleyiciyi çağırmaz; global paket kurulumunu doğrudan çalıştırır ve kısmen güncellenmiş bir npm kurulumunu kurtarabilir.
@ -83,7 +83,7 @@ curl -fsSL https://openclaw.ai/install.sh | bash -s -- --install-method npm --ve
npm i -g openclaw@latest
```
`openclaw update` global bir npm kurulumunu yönettiğinde, hedefi önce geçici bir npm prefix içine kurar, paketlenmiş `dist` envanterini doğrular, ardından temiz paket ağacını gerçek global prefix içine taşır. Bu, npm'in yeni paketi eski paketten kalan bayat dosyaların üzerine bindirmesini önler. Kurulum komutu başarısız olursa, OpenClaw `--omit=optional` ile bir kez daha dener. Bu yeniden deneme, yerel optional bağımlılıkların derlenemediği host'larda yardımcı olurken, geri dönüş de başarısız olursa özgün hatayı görünür tutar.
`openclaw update` global bir npm kurulumunu yönettiğinde, hedefi önce geçici bir npm prefix içine kurar, paketlenmiş `dist` envanterini doğrular, ardından temiz paket ağacını gerçek global prefix içine değiştirir. Bu, npm'in yeni bir paketi eski paketten kalan bayat dosyaların üzerine bindirmesini önler. Kurulum komutu başarısız olursa OpenClaw `--omit=optional` ile bir kez yeniden dener. Bu yeniden deneme, yerel optional bağımlılıkların derlenemediği ana makinelerde yardımcı olurken, geri dönüş de başarısız olursa özgün hatayı görünür tutar.
```bash
pnpm add -g openclaw@latest
@ -97,9 +97,9 @@ bun add -g openclaw@latest
<AccordionGroup>
<Accordion title="Salt okunur paket ağacı">
OpenClaw, global paket dizini geçerli kullanıcı tarafından yazılabilir olsa bile, paketlenmiş global kurulumları çalışma zamanında salt okunur kabul eder. Paketle birlikte gelen Plugin çalışma zamanı bağımlılıkları, paket ağacını değiştirmek yerine yazılabilir bir çalışma zamanı dizinine hazırlanır. Bu, `openclaw update` işleminin aynı kurulum sırasında Plugin bağımlılıklarını onaran çalışan bir Gateway veya yerel agent ile yarışmasını önler.
OpenClaw, paketlenmiş global kurulumları, global paket dizini geçerli kullanıcı tarafından yazılabilir olsa bile çalışma zamanında salt okunur olarak ele alır. Paketle birlikte gelen Plugin çalışma zamanı bağımlılıkları, paket ağacını değiştirmek yerine yazılabilir bir çalışma zamanı dizinine hazırlanır. Bu, `openclaw update` komutunun aynı kurulum sırasında Plugin bağımlılıklarını onaran çalışan bir Gateway veya yerel ajanla yarışmasını önler.
Bazı Linux npm kurulumları global paketleri `/usr/lib/node_modules/openclaw` gibi root sahipli dizinlerin altına kurar. OpenClaw bu düzeni aynı dış hazırlama yolu üzerinden destekler.
Bazı Linux npm kurulumları global paketleri `/usr/lib/node_modules/openclaw` gibi root'a ait dizinlerin altına kurar. OpenClaw bu düzeni aynı harici hazırlama yolu üzerinden destekler.
</Accordion>
<Accordion title="Güçlendirilmiş systemd birimleri">
@ -110,23 +110,23 @@ bun add -g openclaw@latest
ReadWritePaths=/var/lib/openclaw /home/openclaw/.openclaw /tmp
```
`OPENCLAW_PLUGIN_STAGE_DIR` bir yol listesini de kabul eder. OpenClaw, paketle gelen Plugin çalışma zamanı bağımlılıklarını listelenen kökler boyunca soldan sağa çözer, önceki kökleri salt okunur önceden kurulmuş katmanlar olarak kabul eder ve yalnızca son yazılabilir köke kurar veya onarır:
`OPENCLAW_PLUGIN_STAGE_DIR` bir yol listesini de kabul eder. OpenClaw, paketle gelen Plugin çalışma zamanı bağımlılıklarını listelenen kökler boyunca soldan sağa çözer, önceki kökleri salt okunur önceden kurulmuş katmanlar olarak ele alır ve yalnızca son yazılabilir köke kurar veya orada onarır:
```ini
Environment=OPENCLAW_PLUGIN_STAGE_DIR=/opt/openclaw/plugin-runtime-deps:/var/lib/openclaw/plugin-runtime-deps
ReadWritePaths=/var/lib/openclaw /home/openclaw/.openclaw /tmp
```
`OPENCLAW_PLUGIN_STAGE_DIR` ayarlanmamışsa, OpenClaw systemd sağladığında `$STATE_DIRECTORY` kullanır, ardından `~/.openclaw/plugin-runtime-deps` konumuna geri döner. Onarım adımı bu hazırlama alanını OpenClaw'a ait yerel paket kökü olarak kabul eder ve kullanıcı npm prefix ile global ayarlarını yok sayar; böylece global kurulum npm yapılandırması, paketle gelen Plugin bağımlılıklarını `~/node_modules` içine veya global paket ağacına yönlendirmez.
`OPENCLAW_PLUGIN_STAGE_DIR` ayarlanmadıysa, OpenClaw systemd sağladığında `$STATE_DIRECTORY` kullanır, ardından `~/.openclaw/plugin-runtime-deps` konumuna geri döner. Onarım adımı bu hazırlama alanını OpenClaw'a ait yerel bir paket kökü olarak ele alır ve kullanıcı npm prefix ve global ayarlarını yok sayar; böylece global kurulum npm yapılandırması, paketle gelen Plugin bağımlılıklarını `~/node_modules` veya global paket ağacına yönlendirmez.
</Accordion>
<Accordion title="Disk alanı ön denetimi">
Paket güncellemelerinden ve paketle gelen çalışma zamanı bağımlılığı onarımlarından önce OpenClaw, hedef birim için en iyi çabayla disk alanı denetimi yapmayı dener. Düşük alan, denetlenen yolu içeren bir uyarı üretir ancak güncellemeyi engellemez; çünkü dosya sistemi kotaları, snapshot'lar ve ağ birimleri denetimden sonra değişebilir. Gerçek npm kurulumu, kopyalama ve kurulum sonrası doğrulama yetkili kaynak olmaya devam eder.
<Accordion title="Disk alanı ön kontrolü">
Paket güncellemelerinden ve paketle gelen çalışma zamanı bağımlılığı onarımlarından önce OpenClaw, hedef birim için en iyi çabayla bir disk alanı denetimi yapmayı dener. Düşük alan, denetlenen yolu içeren bir uyarı üretir, ancak dosya sistemi kotaları, anlık görüntüler ve ağ birimleri denetimden sonra değişebileceği için güncellemeyi engellemez. Asıl npm kurulumu, kopyalama ve kurulum sonrası doğrulama yetkili kaynak olmaya devam eder.
</Accordion>
<Accordion title="Paketle gelen Plugin çalışma zamanı bağımlılıkları">
Paketlenmiş kurulumlar, paketle gelen Plugin çalışma zamanı bağımlılıklarını salt okunur paket ağacının dışında tutar. Başlatma sırasında ve `openclaw doctor --fix` çalışırken OpenClaw, çalışma zamanı bağımlılıklarını yalnızca yapılandırmada aktif olan, eski kanal yapılandırması üzerinden aktif olan veya paketle gelen manifest varsayılanı tarafından etkinleştirilen paketli Plugin'ler için onarır. Kalıcı kanal kimlik doğrulama durumu tek başına Gateway başlatma çalışma zamanı bağımlılığı onarımını tetiklemez.
Paketlenmiş kurulumlar, paketle gelen Plugin çalışma zamanı bağımlılıklarını salt okunur paket ağacının dışında tutar. Başlangıçta ve `openclaw doctor --fix` sırasında OpenClaw, çalışma zamanı bağımlılıklarını yalnızca yapılandırmada etkin olan, eski kanal yapılandırması üzerinden etkin olan veya paketle gelen manifest varsayılanı tarafından etkinleştirilen paketle gelen Plugin'ler için onarır. Kalıcı kanal kimlik doğrulama durumu tek başına Gateway başlangıç çalışma zamanı bağımlılığı onarımını tetiklemez.
ık devre dışı bırakma önceliklidir. Devre dışı bırakılmış bir Plugin veya kanal, yalnızca pakette bulunduğu için çalışma zamanı bağımlılıklarını onartmaz. Harici Plugin'ler ve özel yükleme yolları yine `openclaw plugins install` veya `openclaw plugins update` kullanır.
ık devre dışı bırakma önceliklidir. Devre dışı bırakılmış bir Plugin veya kanal, yalnızca pakette bulunduğu için çalışma zamanı bağımlılıklarının onarılmasını sağlamaz. Harici Plugin'ler ve özel yükleme yolları hâlâ `openclaw plugins install` veya `openclaw plugins update` kullanır.
</Accordion>
</AccordionGroup>
@ -151,12 +151,14 @@ Otomatik güncelleyici varsayılan olarak kapalıdır. `~/.openclaw/openclaw.jso
| Kanal | Davranış |
| -------- | ------------------------------------------------------------------------------------------------------------- |
| `stable` | `stableDelayHours` kadar bekler, ardından `stableJitterHours` boyunca deterministik jitter ile uygular (yayılmış dağıtım). |
| `beta` | Her `betaCheckIntervalHours` aralığında denetler (varsayılan: saatlik) ve hemen uygular. |
| `dev` | Otomatik uygulama yoktur. `openclaw update` komutunu manuel kullanın. |
| `stable` | `stableDelayHours` kadar bekler, ardından `stableJitterHours` boyunca belirleyici jitter ile uygular (yayılmış dağıtım). |
| `beta` | Her `betaCheckIntervalHours` değerinde denetler (varsayılan: saatlik) ve hemen uygular. |
| `dev` | Otomatik uygulama yoktur. `openclaw update` komutunu elle kullanın. |
Gateway ayrıca başlangıçta bir güncelleme ipucu günlüğe yazar (`update.checkOnStart: false` ile devre dışı bırakın).
Sürüm düşürme veya olay kurtarma için, `update.auto.enabled` yapılandırılmış olsa bile otomatik uygulamaları engellemek üzere Gateway ortamında `OPENCLAW_NO_AUTO_UPDATE=1` ayarlayın. `update.checkOnStart` da devre dışı bırakılmadıkça başlangıç güncelleme ipuçları yine çalışabilir.
Sürüm düşürme veya olay kurtarma için, `update.auto.enabled` yapılandırılmış olsa bile otomatik uygulamaları engellemek üzere Gateway ortamında `OPENCLAW_NO_AUTO_UPDATE=1` ayarlayın. Başlangıç güncelleme ipuçları, `update.checkOnStart` de devre dışı bırakılmadıkça çalışmaya devam edebilir.
Canlı Gateway kontrol düzlemi işleyicisi aracılığıyla istenen paket yöneticisi güncellemeleri, paket değişiminden sonra ertelenmemiş bir güncelleme yeniden başlatmasını zorunlu kılar. Bu, eski bir bellek içi sürecin zaten değiştirilmiş bir paket ağacından chunk'ları lazy-load edecek kadar uzun süre ortada kalmasını önler. Shell `openclaw update`, servisi güncelleme etrafında durdurup yeniden başlatabildiği için denetimli kurulumlar için tercih edilen yol olmaya devam eder.
## Güncellemeden sonra
@ -168,7 +170,7 @@ Sürüm düşürme veya olay kurtarma için, `update.auto.enabled` yapılandır
openclaw doctor
```
Yapılandırmayı taşır, DM politikalarını denetler ve Gateway sağlığını kontrol eder. Ayrıntılar: [Doctor](/tr/gateway/doctor)
Yapılandırmayı migrate eder, DM ilkelerini denetler ve Gateway sağlığını kontrol eder. Ayrıntılar: [Doctor](/tr/gateway/doctor)
### Gateway'i yeniden başlatın
@ -186,7 +188,7 @@ openclaw health
## Geri alma
### Bir sürümü sabitleme (npm)
### Bir sürümü sabitleyin (npm)
```bash
npm i -g openclaw@<version>
@ -198,7 +200,7 @@ openclaw gateway restart
`npm view openclaw version` geçerli yayımlanmış sürümü gösterir.
</Tip>
### Bir commit'i sabitleme (kaynak)
### Bir commit'i sabitleyin (kaynak)
```bash
git fetch origin
@ -211,13 +213,13 @@ En son sürüme dönmek için: `git checkout main && git pull`.
## Takılırsanız
- `openclaw doctor` komutunu yeniden çalıştırın ve çıktıyı dikkatle okuyun.
- Kaynak checkout'larda `openclaw update --channel dev` için güncelleyici gerektiğinde `pnpm` için otomatik bootstrap yapar. Bir pnpm/corepack bootstrap hatası görürseniz, `pnpm`'i manuel kurun (veya `corepack`'i yeniden etkinleştirin) ve güncellemeyi tekrar çalıştırın.
- `openclaw doctor` komutunu yeniden çalıştırın ve çıktıyı dikkatlice okuyun.
- Kaynak checkout'larında `openclaw update --channel dev` için güncelleyici gerektiğinde `pnpm` önyüklemesini otomatik yapar. Bir pnpm/corepack önyükleme hatası görürseniz `pnpm` öğesini elle kurun (veya `corepack` öğesini yeniden etkinleştirin) ve güncellemeyi yeniden çalıştırın.
- Kontrol edin: [Sorun giderme](/tr/gateway/troubleshooting)
- Discord'da sorun: [https://discord.gg/clawd](https://discord.gg/clawd)
## İlgili
- [Kurulum özeti](/tr/install): tüm kurulum yöntemleri.
- [Doctor](/tr/gateway/doctor): güncellemelerden sonra sağlık denetimleri.
- [Geçiş](/tr/install/migrating): ana sürüm geçiş kılavuzları.
- [Kurulum genel bakışı](/tr/install): tüm kurulum yöntemleri.
- [Doctor](/tr/gateway/doctor): güncellemelerden sonra sağlık kontrolleri.
- [Migrating](/tr/install/migrating): büyük sürüm migration kılavuzları.

View File

@ -1,35 +1,35 @@
---
read_when:
- OpenClaw günlükleme hakkında başlangıç seviyesindekiler için anlaşılır bir genel bakışa ihtiyacınız var
- Günlük düzeylerini, biçimlerini veya maskelemeyi yapılandırmak istiyorsunuz
- OpenClaw günlük kaydı hakkında başlangıç düzeyine uygun bir genel bakışa ihtiyacınız var
- Günlük seviyelerini, biçimlerini veya gizlemeyi yapılandırmak istiyorsunuz
- Sorun gideriyorsunuz ve günlükleri hızlıca bulmanız gerekiyor
summary: Dosya günlükleri, konsol çıktısı, CLI kuyruk takibi ve Control UI Günlükler sekmesi
summary: Dosya günlükleri, konsol çıktısı, CLI ile günlük izleme ve Control UI Günlükler sekmesi
title: Günlükleme
x-i18n:
generated_at: "2026-04-30T09:31:08Z"
generated_at: "2026-05-01T09:01:46Z"
model: gpt-5.5
provider: openai
source_hash: 916fb03219d571f0302560a4cb6755940575c92fff0b4eab024b9dad53f841ce
source_hash: d41ce5b1ae30fe1ca65577abe387fc266bd281686acb10098f82b8e78dfaa357
source_path: logging.md
workflow: 16
---
OpenClaw'ın iki ana günlük yüzeyi vardır:
OpenClawın iki ana günlük yüzeyi vardır:
- Gateway tarafından yazılan **dosya günlükleri** (JSON satırları).
- Terminallerde ve Gateway Debug UI'da gösterilen **konsol çıktısı**.
- Terminallerde ve Gateway Hata Ayıklama Kullanıcı Arayüzünde gösterilen **konsol çıktısı**.
Control UI **Logs** sekmesi gateway dosya günlüğünü takip eder. Bu sayfa günlüklerin nerede bulunduğunu, nasıl okunacağını ve günlük seviyeleri ile biçimlerinin nasıl yapılandırılacağınııklar.
Kontrol Kullanıcı Arayüzünün **Günlükler** sekmesi gateway dosya günlüğünü canlı izler. Bu sayfa günlüklerin nerede bulunduğunu, nasıl okunacağını ve günlük düzeyleri ile biçimlerinin nasıl yapılandırılacağınııklar.
## Günlüklerin bulunduğu yer
Varsayılan olarak Gateway, dönen bir günlük dosyasını şuraya yazar:
Varsayılan olarak Gateway, şunun altında dönen bir günlük dosyası yazar:
`/tmp/openclaw/openclaw-YYYY-MM-DD.log`
Tarih, gateway ana makinesinin yerel saat dilimini kullanır.
Her dosya `logging.maxFileBytes` değerine ulaştığında döner (varsayılan: 100 MB). OpenClaw, etkin dosyanın yanında en fazla beş numaralı arşiv tutar, örneğin `openclaw-YYYY-MM-DD.1.log`, ve tanılamaları bastırmak yerine yeni bir etkin günlüğe yazmaya devam eder.
Her dosya `logging.maxFileBytes` değerine ulaştığında döndürülür (varsayılan: 100 MB). OpenClaw etkin dosyanın yanında `openclaw-YYYY-MM-DD.1.log` gibi en fazla beş numaralı arşiv tutar ve tanılamaları bastırmak yerine yeni bir etkin günlüğe yazmaya devam eder.
Bunu `~/.openclaw/openclaw.json` içinde geçersiz kılabilirsiniz:
@ -43,52 +43,52 @@ Bunu `~/.openclaw/openclaw.json` içinde geçersiz kılabilirsiniz:
## Günlükler nasıl okunur
### CLI: canlı takip (önerilir)
### CLI: canlı izleme (önerilir)
Gateway günlük dosyasını RPC üzerinden takip etmek için CLI'ı kullanın:
Gateway günlük dosyasını RPC üzerinden canlı izlemek için CLIyi kullanın:
```bash
openclaw logs --follow
```
Kullanışlı mevcut seçenekler:
Yararlı güncel seçenekler:
- `--local-time`: zaman damgalarını yerel saat diliminizde işler
- `--url <url>` / `--token <token>` / `--timeout <ms>`: standart Gateway RPC bayrakları
- `--expect-final`: agent destekli RPC son yanıt bekleme bayrağı (paylaşılan istemci katmanı üzerinden burada kabul edilir)
- `--expect-final`: ajan destekli RPC son yanıt bekleme bayrağı (paylaşılan istemci katmanı üzerinden burada kabul edilir)
Çıktı modları:
- **TTY oturumları**: güzel biçimlendirilmiş, renklendirilmiş, yapılandırılmış günlük satırları.
- **TTY oturumları**: okunaklı, renklendirilmiş, yapılandırılmış günlük satırları.
- **TTY olmayan oturumlar**: düz metin.
- `--json`: satırla ayrılmış JSON (satır başına bir günlük olayı).
- `--plain`: TTY oturumlarında düz metni zorunlu kılar.
- `--no-color`: ANSI renklerini devre dışı bırakır.
- `--json`: satırlarla ayrılmış JSON (satır başına bir günlük olayı).
- `--plain`: TTY oturumlarında düz metni zorla.
- `--no-color`: ANSI renklerini devre dışı bırak.
ık bir `--url` ilettiğinizde CLI, yapılandırma veya ortam kimlik bilgilerini otomatik olarak uygulamaz; hedef Gateway kimlik doğrulaması gerektiriyorsa `--token` değerini kendiniz ekleyin.
ık bir `--url` verdiğinizde CLI yapılandırma veya ortam kimlik bilgilerini otomatik uygulamaz; hedef Gateway kimlik doğrulaması gerektiriyorsa `--token` seçeneğini kendiniz ekleyin.
JSON modunda CLI, `type` etiketli nesneler üretir:
JSON modunda CLI, `type` etiketi taşıyan nesneler yayar:
- `meta`: akış meta verileri (dosya, imleç, boyut)
- `log`: ayrıştırılmış günlük girdisi
- `notice`: kesilme / döndürme ipuçları
- `notice`: kısaltma / döndürme ipuçları
- `raw`: ayrıştırılmamış günlük satırı
Örtük local loopback Gateway eşleştirme isterse, bağlantı sırasında kapanırsa veya `logs.tail` yanıt vermeden önce zaman aşımına uğrarsa `openclaw logs`, yapılandırılmış Gateway dosya günlüğüne otomatik olarak geri döner. Açık `--url` hedefleri bu geri dönüşü kullanmaz.
Örtük local loopback Gateway eşleştirme isterse, bağlantı sırasında kapanırsa veya `logs.tail` yanıt vermeden önce zaman aşımına uğrarsa, `openclaw logs` otomatik olarak yapılandırılmış Gateway dosya günlüğüne geri döner. Açık `--url` hedefleri bu geri dönüşü kullanmaz.
Gateway erişilemezse CLI, şunu çalıştırmak için kısa bir ipucu yazdırır:
Gatewaye ulaşılamıyorsa CLI şu komutu çalıştırmanız için kısa bir ipucu yazdırır:
```bash
openclaw doctor
```
### Control UI (web)
### Kontrol Kullanıcı Arayüzü (web)
Control UI'nin **Logs** sekmesi aynı dosyayı `logs.tail` kullanarak takip eder. Nasıl açılacağını görmek için [/web/control-ui](/tr/web/control-ui) sayfasına bakın.
Kontrol Kullanıcı Arayüzünün **Günlükler** sekmesi aynı dosyayı `logs.tail` kullanarak canlı izler. Nasıl açılacağını görmek için [/web/control-ui](/tr/web/control-ui) bölümüne bakın.
### Yalnızca kanal günlükleri
Kanal etkinliğini filtrelemek için (WhatsApp/Telegram/vb) şunu kullanın:
Kanal etkinliğini (WhatsApp/Telegram/vb.) filtrelemek için şunu kullanın:
```bash
openclaw channels logs --channel whatsapp
@ -98,36 +98,36 @@ openclaw channels logs --channel whatsapp
### Dosya günlükleri (JSONL)
Günlük dosyasındaki her satır bir JSON nesnesidir. CLI ve Control UI, yapılandırılmış çıktıyı (saat, seviye, alt sistem, ileti) işlemek için bu girdileri ayrıştırır.
Günlük dosyasındaki her satır bir JSON nesnesidir. CLI ve Kontrol Kullanıcı Arayüzü bu girdileri ayrıştırarak yapılandırılmış çıktı (zaman, düzey, alt sistem, ileti) işler.
Dosya günlüğü JSONL kayıtları, kullanılabilir olduğunda makine tarafından filtrelenebilir üst düzey alanlar da içerir:
Dosya günlüğü JSONL kayıtları, kullanılabildiğinde makine tarafından filtrelenebilir üst düzey alanlar da içerir:
- `hostname`: gateway ana makine adı.
- `message`: tam metin arama için düzleştirilmiş günlük iletisi metni.
- `agent_id`: günlük çağrısı agent bağlamı taşıdığında etkin agent kimliği.
- `message`: tam metin araması için düzleştirilmiş günlük iletisi metni.
- `agent_id`: günlük çağrısı ajan bağlamı taşıdığında etkin ajan kimliği.
- `session_id`: günlük çağrısı oturum bağlamı taşıdığında etkin oturum kimliği/anahtarı.
- `channel`: günlük çağrısı kanal bağlamı taşıdığında etkin kanal.
OpenClaw, özgün yapılandırılmış günlük argümanlarını bu alanların yanında korur; böylece numaralı tslog argüman anahtarlarını okuyan mevcut ayrıştırıcılar çalışmaya devam eder.
OpenClaw, bu alanların yanında özgün yapılandırılmış günlük argümanlarını korur; böylece numaralı tslog argüman anahtarlarını okuyan mevcut ayrıştırıcılar çalışmaya devam eder.
### Konsol çıktısı
Konsol günlükleri **TTY uyumludur** ve okunabilirlik için biçimlendirilir:
Konsol günlükleri **TTYye duyarlıdır** ve okunabilirlik için biçimlendirilir:
- Alt sistem önekleri (ör. `gateway/channels/whatsapp`)
- Seviye renklendirme (info/warn/error)
- Alt sistem önekleri (örn. `gateway/channels/whatsapp`)
- Düzey renklendirmesi (info/warn/error)
- İsteğe bağlı kompakt veya JSON modu
Konsol biçimlendirmesi `logging.consoleStyle` tarafından denetlenir.
### Gateway WebSocket günlükleri
`openclaw gateway`, RPC trafiği için WebSocket protokol günlüğüne de sahiptir:
`openclaw gateway`, RPC trafiği için WebSocket protokol günlüğü de tutar:
- normal mod: yalnızca ilginç sonuçlar (hatalar, ayrıştırma hataları, yavaş çağrılar)
- `--verbose`: tüm istek/yanıt trafiği
- `--ws-log auto|compact|full`: ayrıntılı işleme stilini seçer
- `--compact`: `--ws-log compact` için takma ad
- `--ws-log auto|compact|full`: ayrıntılı gösterim stilini seçer
- `--compact`: `--ws-log compact` için diğer ad
Örnekler:
@ -137,9 +137,9 @@ openclaw gateway --verbose --ws-log compact
openclaw gateway --verbose --ws-log full
```
## Günlüğe kaydetmeyi yapılandırma
## Günlük kaydını yapılandırma
Tüm günlük yapılandırması `~/.openclaw/openclaw.json` içinde `logging` altında bulunur.
Tüm günlük yapılandırması, `~/.openclaw/openclaw.json` içindeki `logging` altında bulunur.
```json
{
@ -154,31 +154,42 @@ Tüm günlük yapılandırması `~/.openclaw/openclaw.json` içinde `logging` al
}
```
### Günlük seviyeleri
### Günlük düzeyleri
- `logging.level`: **dosya günlükleri** (JSONL) seviyesi.
- `logging.consoleLevel`: **konsol** ayrıntı seviyesi.
- `logging.level`: **dosya günlükleri** (JSONL) düzeyi.
- `logging.consoleLevel`: **konsol** ayrıntı düzeyi.
İkisini de **`OPENCLAW_LOG_LEVEL`** ortam değişkeniyle geçersiz kılabilirsiniz (ör. `OPENCLAW_LOG_LEVEL=debug`). Ortam değişkeni yapılandırma dosyasına göre önceliklidir, böylece `openclaw.json` dosyasını düzenlemeden tek bir çalıştırma için ayrıntı seviyesini artırabilirsiniz. Ayrıca genel CLI seçeneği **`--log-level <level>`** değerini de iletebilirsiniz (örneğin, `openclaw --log-level debug gateway run`); bu, ilgili komut için ortam değişkenini geçersiz kılar.
Her ikisini de **`OPENCLAW_LOG_LEVEL`** ortam değişkeniyle geçersiz kılabilirsiniz (örn. `OPENCLAW_LOG_LEVEL=debug`). Ortam değişkeni yapılandırma dosyasına göre önceliklidir; böylece `openclaw.json` dosyasını düzenlemeden tek bir çalıştırma için ayrıntı düzeyini artırabilirsiniz. Ayrıca genel CLI seçeneği **`--log-level <level>`** değerini de geçirebilirsiniz (örneğin, `openclaw --log-level debug gateway run`); bu, ilgili komut için ortam değişkenini geçersiz kılar.
`--verbose` yalnızca konsol çıktısını ve WS günlük ayrıntı düzeyini etkiler; dosya günlük seviyelerini değiştirmez.
`--verbose` yalnızca konsol çıktısını ve WS günlük ayrıntı düzeyini etkiler; dosya
günlük düzeylerini değiştirmez.
### İz korelasyonu
Dosya günlükleri JSONL'dir. Bir günlük çağrısı geçerli bir tanılama iz bağlamı taşıdığında OpenClaw, iz alanlarını üst düzey JSON anahtarları olarak yazar (`traceId`, `spanId`, `parentSpanId`, `traceFlags`); böylece harici günlük işleyiciler satırı OTEL span'leri ve sağlayıcı `traceparent` yayılımıyla ilişkilendirebilir.
Dosya günlükleri JSONL biçimindedir. Bir günlük çağrısı geçerli bir tanılama iz bağlamı taşıdığında,
OpenClaw iz alanlarını üst düzey JSON anahtarları (`traceId`, `spanId`,
`parentSpanId`, `traceFlags`) olarak yazar; böylece harici günlük işleyiciler satırı
OTEL span'leri ve sağlayıcı `traceparent` yayılımıyla ilişkilendirebilir.
Gateway HTTP istekleri ve Gateway WebSocket çerçeveleri dahili bir istek iz kapsamı oluşturur. Bu async kapsam içinde yayımlanan günlükler ve tanılama olayları, açık bir iz bağlamı iletmediklerinde istek izini devralır. Agent çalıştırma ve model çağrısı izleri etkin istek izinin çocukları olur; böylece yerel günlükler, tanılama anlık görüntüleri, OTEL span'leri ve güvenilir sağlayıcı `traceparent` başlıkları ham istek veya model içeriği günlüğe kaydedilmeden `traceId` ile birleştirilebilir.
Gateway HTTP istekleri ve Gateway WebSocket çerçeveleri dahili bir istek
iz kapsamı oluşturur. Bu async kapsam içinde yayımlanan günlükler ve tanılama olayları,
ık bir iz bağlamı geçirmediklerinde istek izini devralır. Ajan çalıştırma ve
model çağrısı izleri etkin istek izinin alt öğeleri haline gelir; böylece yerel günlükler,
tanılama anlık görüntüleri, OTEL span'leri ve güvenilir sağlayıcı `traceparent` başlıkları,
ham istek veya model içeriğini günlüğe yazmadan `traceId` ile birleştirilebilir.
### Model çağrısı boyutu ve zamanlaması
Model çağrısı tanılamaları, ham istem veya yanıt içeriğini yakalamadan sınırlı istek/yanıt ölçümleri kaydeder:
Model çağrısı tanılamaları, ham prompt veya yanıt içeriğini yakalamadan
sınırlı istek/yanıt ölçümlerini kaydeder:
- `requestPayloadBytes`: son model istek yükünün UTF-8 bayt boyutu
- `responseStreamBytes`: akışa alınan model yanıt olaylarının UTF-8 bayt boyutu
- `timeToFirstByteMs`: ilk akışa alınan yanıt olayından önce geçen süre
- `responseStreamBytes`: akışla gelen model yanıt olaylarının UTF-8 bayt boyutu
- `timeToFirstByteMs`: akışla gelen ilk yanıt olayından önce geçen süre
- `durationMs`: toplam model çağrısı süresi
Tanılama dışa aktarımı etkinleştirildiğinde bu alanlar tanılama anlık görüntüleri, model çağrısı Plugin kancaları ve OTEL model çağrısı span'leri/metrikleri için kullanılabilir.
Bu alanlar, tanılama dışa aktarımı etkinleştirildiğinde tanılama anlık görüntüleri,
model çağrısı Plugin hook'ları ve OTEL model çağrısı span'leri/metrikleri için kullanılabilir.
### Konsol stilleri
@ -190,25 +201,52 @@ Tanılama dışa aktarımı etkinleştirildiğinde bu alanlar tanılama anlık g
### Redaksiyon
OpenClaw, hassas token'ları konsol çıktısına, dosya günlüklerine, OTLP günlük kayıtlarına, kalıcı oturum transkript metnine veya Control UI araç olayı yüklerine (araç başlangıç argümanları, kısmi/son sonuç yükleri, türetilmiş exec çıktısı ve yama özetleri) ulaşmadan önce redakte edebilir:
OpenClaw, hassas belirteçler konsol çıktısına, dosya günlüklerine,
OTLP günlük kayıtlarına, kalıcı oturum transkript metnine veya Control UI araç
olay yüklerine (araç başlangıç argümanları, kısmi/nihai sonuç yükleri, türetilmiş
exec çıktısı ve yama özetleri) ulaşmadan önce bunları redakte edebilir:
- `logging.redactSensitive`: `off` | `tools` (varsayılan: `tools`)
- `logging.redactPatterns`: varsayılan kümeyi geçersiz kılacak regex dizeleri listesi. Özel desenler, Control UI araç yükleri için yerleşik varsayılanların üzerine uygulanır; bu nedenle desen eklemek, varsayılanların zaten yakaladığı değerlerin redaksiyonunu asla zayıflatmaz.
- `logging.redactPatterns`: varsayılan kümeyi geçersiz kılacak regex dizeleri listesi. Özel desenler, Control UI araç yükleri için yerleşik varsayılanların üzerine uygulanır; bu nedenle bir desen eklemek, varsayılanlar tarafından zaten yakalanan değerlerin redaksiyonunu asla zayıflatmaz.
Dosya günlükleri ve oturum transkriptleri JSONL olarak kalır, ancak eşleşen gizli değerler satır veya ileti diske yazılmadan önce maskelenir. Redaksiyon en iyi çaba ilkesine dayanır: metin içeren ileti içeriğine ve günlük dizelerine uygulanır, her tanımlayıcıya veya ikili yük alanına değil.
Dosya günlükleri ve oturum transkriptleri JSONL olarak kalır, ancak eşleşen gizli değerler
satır veya ileti diske yazılmadan önce maskelenir. Redaksiyon en iyi çaba esasına dayanır:
her tanımlayıcıya veya ikili yük alanına değil, metin taşıyan ileti içeriğine ve günlük dizelerine
uygulanır.
`logging.redactSensitive: "off"` yalnızca bu genel günlük/transkript politikasını devre dışı bırakır. OpenClaw, UI istemcilerine, destek paketlerine, tanılama gözlemcilerine, onay istemlerine veya agent araçlarına gösterilebilecek güvenlik sınırı yüklerini yine de redakte eder. Örnekler arasında Control UI araç çağrısı olayları, `sessions_history` çıktısı, tanılama destek dışa aktarımları, sağlayıcı hata gözlemleri, exec onay komutu gösterimi ve Gateway WebSocket protokol günlükleri bulunur. Özel `logging.redactPatterns`, bu yüzeylerde projeye özgü desenler eklemeye devam edebilir.
Yerleşik varsayılanlar; kart numarası, CVC/CVV, paylaşılan ödeme belirteci ve ödeme kimlik bilgisi
gibi yaygın API kimlik bilgilerini ve ödeme kimlik bilgisi alan adlarını,
JSON alanları, URL parametreleri, CLI bayrakları veya atamalar olarak göründüklerinde kapsar.
`logging.redactSensitive: "off"` yalnızca bu genel günlük/transkript
ilkesini devre dışı bırakır. OpenClaw, UI istemcilerine, destek paketlerine, tanılama gözlemcilerine,
onay istemlerine veya ajan araçlarına gösterilebilecek güvenlik sınırı yüklerini
redakte etmeye devam eder. Örnekler arasında Control UI araç çağrısı olayları, `sessions_history` çıktısı,
tanılama destek dışa aktarımları, sağlayıcı hata gözlemleri, exec onay komutu
gösterimi ve Gateway WebSocket protokol günlükleri bulunur. Özel `logging.redactPatterns`
bu yüzeylere proje özelinde desenler eklemeye devam edebilir.
## Tanılamalar ve OpenTelemetry
Tanılamalar, model çalıştırmaları ve ileti akışı telemetrisi (Webhook'lar, kuyruğa alma, oturum durumu) için yapılandırılmış, makine tarafından okunabilir olaylardır. Günlüklerin yerini **almazlar**; metrikleri, izleri ve dışa aktarıcıları beslerler. Olaylar, dışa aktarılıp aktarılmadıklarına bakılmaksızın işlem içinde yayımlanır.
Tanılamalar; model çalıştırmaları ve ileti akışı telemetrisi (Webhook'lar, kuyruğa alma, oturum durumu) için
yapılandırılmış, makine tarafından okunabilir olaylardır. Günlüklerin yerini **almazlar**
metrikleri, izleri ve dışa aktarıcıları beslerler. Olaylar, dışa aktarılıp aktarılmadıklarından bağımsız olarak
süreç içinde yayımlanır.
İki bitişik yüzey:
- **OpenTelemetry dışa aktarımı** — metrikleri, izleri ve günlükleri OTLP/HTTP üzerinden herhangi bir OpenTelemetry uyumlu toplayıcıya veya arka uca (Grafana, Datadog, Honeycomb, New Relic, Tempo, vb.) gönderin. Tam yapılandırma, sinyal kataloğu, metrik/span adları, ortam değişkenleri ve gizlilik modeli ayrılmış bir sayfada bulunur: [OpenTelemetry dışa aktarımı](/tr/gateway/opentelemetry).
- **Tanılama bayrakları**`logging.level` yükseltilmeden ek günlükleri `logging.file` konumuna yönlendiren hedefli debug günlük bayrakları. Bayraklar büyük/küçük harfe duyarsızdır ve joker karakterleri destekler (`telegram.*`, `*`). `diagnostics.flags` altında veya `OPENCLAW_DIAGNOSTICS=...` ortam geçersiz kılmasıyla yapılandırın. Tam kılavuz: [Tanılama bayrakları](/tr/diagnostics/flags).
- **OpenTelemetry dışa aktarımı** — metrikleri, izleri ve günlükleri OTLP/HTTP üzerinden
herhangi bir OpenTelemetry uyumlu toplayıcıya veya arka uca (Grafana, Datadog,
Honeycomb, New Relic, Tempo vb.) gönderin. Tam yapılandırma, sinyal kataloğu,
metrik/span adları, ortam değişkenleri ve gizlilik modeli özel bir sayfada bulunur:
[OpenTelemetry dışa aktarımı](/tr/gateway/opentelemetry).
- **Tanılama bayrakları**`logging.level` değerini yükseltmeden ek günlükleri
`logging.file` konumuna yönlendiren hedefli hata ayıklama günlüğü bayrakları. Bayraklar büyük/küçük harfe duyarsızdır
ve joker karakterleri (`telegram.*`, `*`) destekler. `diagnostics.flags` altında
veya `OPENCLAW_DIAGNOSTICS=...` ortam geçersiz kılmasıyla yapılandırın. Tam kılavuz:
[Tanılama bayrakları](/tr/diagnostics/flags).
OTLP dışa aktarımı olmadan Plugin'ler veya özel hedefler için tanılama olaylarını etkinleştirmek üzere:
OTLP dışa aktarımı olmadan Plugin'ler veya özel alıcılar için tanılama olaylarını etkinleştirmek için:
```json5
{
@ -216,17 +254,18 @@ OTLP dışa aktarımı olmadan Plugin'ler veya özel hedefler için tanılama ol
}
```
Bir toplayıcıya OTLP dışa aktarımı için [OpenTelemetry dışa aktarımı](/tr/gateway/opentelemetry) sayfasına bakın.
Bir toplayıcıya OTLP dışa aktarımı için bkz. [OpenTelemetry dışa aktarımı](/tr/gateway/opentelemetry).
## Sorun giderme ipuçları
- **Gateway erişilebilir değil mi?** Önce `openclaw doctor` çalıştırın.
- **Günlükler boş mu?** Gateway'in çalıştığını ve `logging.file` içindeki dosya yoluna yazdığını kontrol edin.
- **Günlükler boş mu?** Gateway'in çalıştığını ve `logging.file` içindeki dosya yoluna
yazdığını kontrol edin.
- **Daha fazla ayrıntı mı gerekiyor?** `logging.level` değerini `debug` veya `trace` olarak ayarlayın ve yeniden deneyin.
## İlgili
- [OpenTelemetry dışa aktarımı](/tr/gateway/opentelemetry) — OTLP/HTTP dışa aktarımı, metrik/span kataloğu, gizlilik modeli
- [Tanılama bayrakları](/tr/diagnostics/flags) — hedefli debug günlük bayrakları
- [Gateway günlükleme iç yapısı](/tr/gateway/logging) — WS günlük stilleri, alt sistem önekleri ve konsol yakalama
- [Tanılama bayrakları](/tr/diagnostics/flags) — hedefli hata ayıklama günlüğü bayrakları
- [Gateway günlük kaydı iç ayrıntıları](/tr/gateway/logging) — WS günlük stilleri, alt sistem önekleri ve konsol yakalama
- [Yapılandırma referansı](/tr/gateway/configuration-reference#diagnostics) — tam `diagnostics.*` alan referansı

View File

@ -1,30 +1,31 @@
---
read_when:
- mac menü UI'ını veya durum mantığını ayarlama
summary: Menü çubuğu durum mantığı ve kullanıcılara nelerin gösterildiği
- Mac menüsü arayüzünde veya durum mantığında ince ayar yapma
summary: Menü çubuğu durum mantığı ve kullanıcılara gösterilenler
title: Menü çubuğu
x-i18n:
generated_at: "2026-04-24T09:19:53Z"
model: gpt-5.4
generated_at: "2026-05-01T09:02:18Z"
model: gpt-5.5
provider: openai
source_hash: 89b03f3b0f9e56057d4cbf10bd1252372c65a2b2ae5e0405a844e9a59b51405d
source_hash: 340b86a2e222fb1fe7fda4f0f0434127af1393a64348ea033ea284ba52866beb
source_path: platforms/mac/menu-bar.md
workflow: 15
workflow: 16
---
# Menü Çubuğu Durum Mantığı
## Ne gösterilir
## Gösterilenler
- Geçerli aracı iş durumunu menü çubuğu simgesinde ve menünün ilk durum satırında gösteriyoruz.
- Sağlık durumu, iş etkin olduğunda gizlenir; tüm oturumlar boştayken geri gelir.
- Menüdeki “Nodes” bloğu, istemci/presence girdilerini değil, yalnızca **cihazları** ( `node.list` üzerinden eşleştirilmiş Node'lar) listeler.
- Sağlayıcı kullanım anlık görüntüleri mevcut olduğunda Context altında bir “Usage” bölümü görünür.
- Mevcut ajan çalışma durumunu menü çubuğu simgesinde ve menünün ilk durum satırında gösteririz.
- Çalışma etkinken sağlık durumu gizlenir; tüm oturumlar boştayken geri döner.
- Kök “Bağlam” alt menüsü, son oturumları doğrudan kök menüde genişletmek yerine içerir.
- Kök menüdeki “Node'lar” bloğu yalnızca **cihazları** listeler (`node.list` üzerinden eşleştirilmiş Node'lar); istemci/varlık girdilerini listelemez.
- Sağlayıcı kullanım anlık görüntüleri mevcut olduğunda Bağlam'ın altında kök “Kullanım” bölümü görünür; mevcutsa bunu kullanım maliyeti ayrıntıları izler.
## Durum modeli
- Oturumlar: olaylar `runId` (çalıştırma başına) ile birlikte payload içinde `sessionKey` ile gelir. “main” oturumu `main` anahtarıdır; yoksa en son güncellenen oturuma fallback yaparız.
- Öncelik: main her zaman kazanır. Main etkinse durumu hemen gösterilir. Main boşta ise en son etkin olan main olmayan oturum gösterilir. Etkinliğin ortasında flip-flop yapmayız; yalnızca geçerli oturum boşa geçtiğinde veya main etkin olduğunda değiştiririz.
- Oturumlar: olaylar yük içinde `runId` (çalıştırma başına) ve `sessionKey` ile gelir. “Ana” oturum `main` anahtarıdır; yoksa en son güncellenen oturuma geri döneriz.
- Öncelik: ana her zaman kazanır. Ana etkinse durumu hemen gösterilir. Ana boştaysa en son etkin olan ana olmayan oturum gösterilir. Etkinlik ortasında sürekli gidip gelmeyiz; yalnızca geçerli oturum boşa geçtiğinde veya ana etkin olduğunda geçiş yaparız.
- Etkinlik türleri:
- `job`: üst düzey komut yürütme (`state: started|streaming|done|error`).
- `tool`: `toolName` ve `meta/args` ile `phase: start|result`.
@ -36,7 +37,7 @@ x-i18n:
- `workingOther(ActivityKind)`
- `overridden(ActivityKind)` (hata ayıklama geçersiz kılması)
### `ActivityKind` → glif
### ActivityKind → glif
- `exec` → 💻
- `read` → 📄
@ -47,47 +48,55 @@ x-i18n:
### Görsel eşleme
- `idle`: normal yaratık.
- `workingMain`: glifli rozet, tam tonlama, bacak “çalışıyor” animasyonu.
- `workingOther`: glifli rozet, sönük tonlama, koşturma yok.
- `overridden`: etkinlikten bağımsız olarak seçilen glifi/tonlamayı kullanır.
- `idle`: normal karakter.
- `workingMain`: glifli rozet, tam renk tonu, bacak “çalışıyor” animasyonu.
- `workingOther`: glifli rozet, soluk renk tonu, koşuşturma yok.
- `overridden`: etkinlikten bağımsız olarak seçilen glifi/renk tonunu kullanır.
## Bağlam alt menüsü
- Kök menü, oturum sayısı/durumuyla birlikte tek bir “Bağlam” satırı gösterir ve bir alt menü açar.
- Bağlam alt menüsü başlığı, son 24 saatin etkin oturum sayısını gösterir.
- Her oturum satırı kendi token çubuğunu, yaşını, önizlemesini, düşünme/ayrıntılı modunu, sıfırlama, compact ve silme eylemlerini korur.
- Yükleme, bağlantı kesildi ve oturum yükleme hatası mesajları Bağlam alt menüsünde görünür.
- Sağlayıcı kullanımı ve kullanım maliyeti ayrıntıları, alt menüyü açmadan hızlıca görülebilmeleri için Bağlam'ın altında kök düzeyinde kalır.
## Durum satırı metni (menü)
- İş etkin olduğunda: `<Session role> · <activity label>`
- Çalışma etkinken: `<Session role> · <activity label>`
- Örnekler: `Main · exec: pnpm test`, `Other · read: apps/macos/Sources/OpenClaw/AppState.swift`.
- Boştayken: sağlık özetine fallback yapar.
- Boştayken: sağlık özetine geri döner.
## Olay alma
## Olay alımı
- Kaynak: denetim kanalı `agent` olayları (`ControlChannel.handleAgentEvent`).
- Kaynak: control-channel `agent` olayları (`ControlChannel.handleAgentEvent`).
- Ayrıştırılan alanlar:
- başlat/durdur için `data.state` ile `stream: "job"`.
- Başlatma/durdurma için `data.state` ile `stream: "job"`.
- `data.phase`, `name`, isteğe bağlı `meta`/`args` ile `stream: "tool"`.
- Etiketler:
- `exec`: `args.command` öğesinin ilk satırı.
- `read`/`write`: kısaltılmış yol.
- `edit`: yol artı `meta`/diff sayılarından çıkarılan değişiklik türü.
- fallback: araç adı.
- `edit`: yol artı `meta`/diff sayımlarından çıkarılan değişiklik türü.
- geri dönüş: araç adı.
## Hata ayıklama geçersiz kılması
- Ayarlar ▸ Hata Ayıklama ▸ “Icon override” seçici:
- Ayarlar ▸ Hata Ayıklama ▸ “Simge geçersiz kılması” seçici:
- `System (auto)` (varsayılan)
- `Working: main` (araç türü başına)
- `Working: other` (araç türü başına)
- `Idle`
- `@AppStorage("iconOverride")` ile saklanır; `IconState.overridden`ine eşlenir.
- `@AppStorage("iconOverride")` üzerinden saklanır; `IconState.overridden` değerine eşlenir.
## Test kontrol listesi
- Main oturumunda bir iş tetikleyin: simgenin hemen değiştiğini ve durum satırının main etiketini gösterdiğini doğrulayın.
- Main boştayken main olmayan bir oturum işi tetikleyin: simge/durum main olmayanı gösterir; bitene kadar kararlı kalır.
- Diğeri etkinken main'i başlatın: simge anında main'e döner.
- Hızlı araç patlamaları: rozetin titremediğinden emin olun (araç sonuçlarında TTL geçiş süresi).
- Ana oturum işini tetikleyin: simgenin hemen değiştiğini ve durum satırının ana etiketi gösterdiğini doğrulayın.
- Ana boştayken ana olmayan oturum işini tetikleyin: simge/durum ana olmayanı gösterir; bitene kadar kararlı kalır.
- Diğeri etkinken anayı başlatın: simge anında anaya döner.
- Hızlı araç patlamaları: rozetin titremediğinden emin olun (araç sonuçlarında TTL ek süresi).
- Tüm oturumlar boşa geçtiğinde sağlık satırı yeniden görünür.
## İlgili
- [macOS app](/tr/platforms/macos)
- [Menu bar icon](/tr/platforms/mac/icon)
- [macOS uygulaması](/tr/platforms/macos)
- [Menü çubuğu simgesi](/tr/platforms/mac/icon)

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,152 @@
---
read_when:
- Birlikte gelen Plugin çalışma zamanı bağımlılığı onarımında hata ayıklıyorsunuz
- Plugin başlatma, doctor veya paket yöneticisi kurulum davranışını değiştiriyorsunuz
- Paketlenmiş OpenClaw kurulumlarının veya birlikte gelen Plugin manifestlerinin bakımını yapıyorsunuz
sidebarTitle: Dependencies
summary: OpenClaw, paketle birlikte gelen Plugin çalışma zamanı bağımlılıklarını nasıl planlar, hazırlar ve onarır
title: Plugin bağımlılık çözümlemesi
x-i18n:
generated_at: "2026-05-01T09:03:01Z"
model: gpt-5.5
provider: openai
source_hash: e09245c2b7e2f1fb2a61d64f0f9dc77e7df7da58fd71608c391e3865345b7bc9
source_path: plugins/dependency-resolution.md
workflow: 16
---
OpenClaw, paket kurulum zamanında her birlikte gelen Plugin bağımlılık ağacını kurmaz. Önce yapılandırma ve Plugin meta verilerinden etkili bir Plugin planı çıkarır, ardından yalnızca planın gerçekten yükleyebileceği, birlikte gelen OpenClawa ait Pluginler için çalışma zamanı bağımlılıklarını hazırlar.
Bu sayfa, birlikte gelen OpenClaw Pluginleri için paketlenmiş çalışma zamanı bağımlılıklarını kapsar. Üçüncü taraf Pluginler ve özel Plugin yolları yine `openclaw plugins install` ve `openclaw plugins update` gibi açık Plugin kurulum komutlarını kullanır.
## Sorumluluk ayrımı
OpenClaw planın ve politikanın sahibidir:
- bu yapılandırma için hangi Pluginlerin etkin olduğu
- hangi bağımlılık köklerinin yazılabilir veya salt okunur olduğu
- onarıma ne zaman izin verildiği
- başlangıç için hangi Plugin kimliklerinin hazırlandığı
- Plugin çalışma zamanı modüllerini içe aktarmadan önceki son kontroller
Paket yöneticisi bağımlılık yakınsamasının sahibidir:
- paket grafiği çözümlemesi
- üretim, isteğe bağlı ve eş bağımlılık işleme
- `node_modules` düzeni
- paket bütünlüğü
- kilit ve kurulum meta verileri
Pratikte OpenClaw neyin var olması gerektiğine karar vermelidir. `pnpm` veya `npm` dosya sistemini bu kararla eşleştirmelidir.
OpenClaw ayrıca kurulum kökü başına koordinasyon kilidinin sahibidir. Paket yöneticileri kendi kurulum işlemlerini korur, ancak OpenClawın manifest yazımlarını, yalıtılmış hazırlama kopyalama/yeniden adlandırma işlemini, son doğrulamayı veya Plugin içe aktarmayı aynı çalışma zamanı bağımlılık köküne dokunan başka bir Gateway, doctor ya da CLI sürecine karşı sıraya koymaz.
## Etkili Plugin planı
Etkili Plugin planı, yapılandırma ve keşfedilen Plugin meta verilerinden türetilir. Bu girdiler birlikte gelen Plugin çalışma zamanı bağımlılıklarını etkinleştirebilir:
- `plugins.entries.<id>.enabled`
- `plugins.allow`, `plugins.deny` ve `plugins.enabled`
- `channels.telegram.enabled` gibi eski kanal yapılandırması
- bir Plugin gerektiren yapılandırılmış sağlayıcılar, modeller veya CLI arka uç referansları
- `enabledByDefault` gibi birlikte gelen manifest varsayılanları
- kurulu Plugin dizini ve birlikte gelen manifest meta verileri
ık devre dışı bırakma önceliklidir. Devre dışı bırakılmış bir Plugin, reddedilmiş Plugin kimliği, devre dışı bırakılmış Plugin sistemi veya devre dışı bırakılmış kanal çalışma zamanı bağımlılığı onarımını tetiklemez. Kalıcı kimlik doğrulama durumu tek başına birlikte gelen bir kanalı veya sağlayıcıyı da etkinleştirmez.
Plugin planı kararlı girdidir. Oluşturulan bağımlılık somutlaştırması bu planın çıktısıdır.
## Başlangıç akışı
Gateway başlangıcı, Plugin çalışma zamanı modülleri yüklenmeden önce yapılandırmayı ayrıştırır ve başlangıç Plugin arama tablosunu oluşturur. Ardından başlangıç, yalnızca bu plan tarafından seçilen `startupPluginIds` için çalışma zamanı bağımlılıklarını hazırlar.
Paketlenmiş kurulumlarda, bağımlılık hazırlamaya Plugin içe aktarmadan önce izin verilir. Hazırlamadan sonra çalışma zamanı yükleyicisi, kurulum onarımı devre dışı olacak şekilde başlangıç Pluginlerini içe aktarır; bu noktada eksik bağımlılık somutlaştırması başka bir onarım döngüsü değil, yükleme hatası olarak ele alınır.
Başlangıç bağımlılığı hazırlama HTTP bağlamasının arkasına ertelendiğinde, seçilen başlangıç Plugin bağımlılıkları somutlaştırılana ve başlangıç Plugin çalışma zamanı yüklenene kadar Gateway hazır olma durumu `plugin-runtime-deps` nedeni üzerinde engelli kalır.
## Onarım ne zaman çalışır
Çalışma zamanı bağımlılığı onarımı şunlardan biri doğru olduğunda çalışmalıdır:
- etkili Plugin planı değişmiş ve çalışma zamanı bağımlılıklarına ihtiyaç duyan birlikte gelen Pluginler eklemiştir
- oluşturulan bağımlılık manifesti artık etkili planla eşleşmiyordur
- beklenen kurulu paket sentinelleri eksik veya tamamlanmamıştır
- `openclaw doctor --fix` veya `openclaw plugins deps --repair` istenmiştir
Çalışma zamanı bağımlılığı onarımı yalnızca OpenClaw başladı diye çalışmamalıdır. Değişmemiş planı ve eksiksiz bağımlılık somutlaştırması olan normal bir başlangıç, paket yöneticisi işini atlamalıdır.
Yapılandırmayı düzenleyen, Pluginleri etkinleştiren veya doctor bulgularını onaran komutlar Plugin plan moduna bir kez girebilir, yeni gerekli birlikte gelen bağımlılıkları somutlaştırabilir ve ardından normal komut akışına dönebilir. Yerel `openclaw onboard` ve `openclaw configure`, yapılandırmayı başarıyla yazdıktan sonra bunu otomatik olarak yapar; böylece bir sonraki Gateway çalıştırması, başlangıç zaten başladıktan sonra eksik birlikte gelen Plugin paketlerini keşfetmez. Uzak onboarding/yapılandırma, yerel çalışma zamanı bağımlılıkları için salt okunur kalır.
## Sıcak yeniden yükleme kuralı
Etkin Pluginleri değiştirebilen sıcak yeniden yükleme yolları, Plugin çalışma zamanını yüklemeden önce yeniden Plugin plan modundan geçmelidir. Yeniden yükleme, yeni etkili Plugin planını önceki planla karşılaştırmalı, yeni etkin hale gelen birlikte gelen Pluginler için eksik bağımlılıkları hazırlamalı, ardından etkilenen çalışma zamanını yüklemeli veya yeniden başlatmalıdır.
Bir yapılandırma yeniden yüklemesi etkili Plugin planını değiştirmiyorsa, birlikte gelen çalışma zamanı bağımlılıklarını onarmamalıdır.
## Paket yöneticisi yürütmesi
OpenClaw, seçilen birlikte gelen çalışma zamanı bağımlılıkları için oluşturulmuş bir kurulum manifesti yazar ve paket yöneticisini çalışma zamanı bağımlılığı kurulum kökünde çalıştırır. Mevcut olduğunda `pnpm` tercih eder ve Node ile birlikte gelen `npm` çalıştırıcısına geri döner.
`pnpm` yolu üretim bağımlılıklarını kullanır, yaşam döngüsü betiklerini devre dışı bırakır, çalışma alanını yok sayar ve depoyu kurulum kökü içinde tutar:
```bash
pnpm install \
--prod \
--ignore-scripts \
--ignore-workspace \
--config.frozen-lockfile=false \
--config.minimum-release-age=0 \
--config.store-dir=<install-root>/.openclaw-pnpm-store \
--config.node-linker=hoisted \
--config.virtual-store-dir=.pnpm
```
`npm` geri dönüşü; üretim bağımlılıkları, yaşam döngüsü betikleri devre dışı, çalışma alanı modu devre dışı, denetim devre dışı, fon çıktısı devre dışı, eski eş bağımlılık davranışı ve oluşturulan kurulum kökü için package-lock çıktısı etkin olacak şekilde güvenli npm kurulum sarmalayıcısını kullanır.
Kurulumdan sonra OpenClaw, çalışma zamanı bağımlılık kökü tarafından görünür hale getirmeden önce hazırlanmış bağımlılık ağacını doğrular. Yalıtılmış hazırlama çalışma zamanı bağımlılık köküne kopyalanır ve yeniden doğrulanır.
Tüm onarım/somutlaştırma bölümü bir kurulum kökü kilidiyle korunur. Geçerli kilit sahipleri PIDyi, mevcut olduğunda süreç başlangıç zamanını ve oluşturma zamanını kaydeder. Süreç başlangıç zamanı veya oluşturma zamanı kanıtı olmayan eski kilitler yalnızca dosya sistemi yaşına göre geri alınır; böylece yeniden kullanılan Docker PID 1 kilitleri, normal uzun süren geçerli kurulumları yalnızca yaşa göre süresi dolmuş saymadan toparlanır.
## Kurulum kökleri
Paketlenmiş kurulumlar salt okunur paket dizinlerini değiştirmemelidir. OpenClaw paketlenmiş katmanlardan bağımlılık köklerini okuyabilir, ancak oluşturulan çalışma zamanı bağımlılıklarını şu gibi yazılabilir bir hazırlama alanına yazar:
- `OPENCLAW_PLUGIN_STAGE_DIR`
- `$STATE_DIRECTORY`
- `~/.openclaw/plugin-runtime-deps`
- kapsayıcı tarzı kurulumlarda `/var/lib/openclaw/plugin-runtime-deps`
Yazılabilir kök, son somutlaştırma hedefidir. Daha eski salt okunur kökler yalnızca gerektiğinde uyumluluk katmanları olarak tutulur.
Paketlenmiş bir OpenClaw güncellemesi sürümlü yazılabilir kökü değiştirdiğinde, ancak seçilen birlikte gelen Plugin bağımlılık planı önceki bir hazırlanmış kök tarafından hâlâ karşılanıyorsa, onarım paket yöneticisini yeniden çalıştırmak yerine önceki `node_modules` ağacını yeniden kullanır. Yeni sürümlü kök yine kendi geçerli paket çalışma zamanı aynasına sahip olur; böylece Plugin kodu geçerli OpenClaw paketinden gelirken değişmemiş bağımlılık ağaçları güncellemeler arasında paylaşılır. Yeniden kullanım, etkin OpenClaw çalışma zamanı bağımlılık kilidi olan önceki kökleri atlar; böylece yeni bir kök, başka bir Gateway, doctor veya CLI sürecinin o anda onardığı bir bağımlılık ağacına bağlanmaz.
## Doctor ve CLI komutları
Birlikte gelen Plugin çalışma zamanı bağımlılığı somutlaştırmasını incelemek veya onarmak için `plugins deps` kullanın:
```bash
openclaw plugins deps
openclaw plugins deps --json
openclaw plugins deps --repair
openclaw plugins deps --prune
```
Bağımlılık durumu daha geniş kurulum sağlığının bir parçası olduğunda doctor kullanın:
```bash
openclaw doctor
openclaw doctor --fix
```
`plugins deps` ve doctor, etkili Plugin planı tarafından seçilen OpenClawa ait birlikte gelen Plugin çalışma zamanı bağımlılıkları üzerinde çalışır. Bunlar üçüncü taraf Plugin kurulum veya güncelleme komutları değildir.
## Sorun giderme
Paketlenmiş bir kurulum eksik birlikte gelen çalışma zamanı bağımlılıkları bildirirse:
1. Seçilen planı ve eksik paketleri incelemek için `openclaw plugins deps --json` çalıştırın.
2. Yazılabilir bağımlılık hazırlamasını onarmak için `openclaw plugins deps --repair` veya `openclaw doctor --fix` çalıştırın.
3. Kurulum kökü salt okunursa, `OPENCLAW_PLUGIN_STAGE_DIR` değerini yazılabilir bir yola ayarlayın ve onarımı yeniden çalıştırın.
4. Eksik bağımlılık başlangıç Plugin yüklemesini engellediyse onarımdan sonra Gatewayi yeniden başlatın.
Kaynak checkoutlarında çalışma alanı kurulumu genellikle birlikte gelen Plugin bağımlılıklarını sağlar. İlk adım olarak paketlenmiş çalışma zamanı bağımlılığı onarımını kullanmak yerine kaynak bağımlılığı onarımı için `pnpm install` çalıştırın.

File diff suppressed because it is too large Load Diff

View File

@ -1,32 +1,36 @@
---
read_when:
- Yeni bir model sağlayıcı Plugin oluşturuyorsunuz
- OpenClaw'a OpenAI uyumlu bir proxy veya özel LLM eklemek istiyorsunuz
- Yeni bir model sağlayıcı Plugin'i oluşturuyorsunuz
- OpenClaw'a OpenAI uyumlu bir proxy veya özel bir LLM eklemek istiyorsunuz
- Sağlayıcı kimlik doğrulamasını, katalogları ve çalışma zamanı kancalarını anlamanız gerekir
sidebarTitle: Provider plugins
summary: OpenClaw için model sağlayıcı Plugin oluşturmaya yönelik adım adım kılavuz
title: Sağlayıcı Plugin'leri oluşturma
x-i18n:
generated_at: "2026-04-30T09:37:06Z"
generated_at: "2026-05-01T09:03:08Z"
model: gpt-5.5
provider: openai
source_hash: 1404594fe1d1e11a612f903512c1002c8f3a804dee53d4204457b534eae93381
source_hash: 3f9d721673bdfef0b9c1979b4b8b4c86f19d114374d6b941facb928c3574cd1b
source_path: plugins/sdk-provider-plugins.md
workflow: 16
---
Bu kılavuz, OpenClaw'a bir model sağlayıcısı (LLM) ekleyen bir provider Plugin oluşturmayı adım adım gösterir. Sonunda model kataloğu, API anahtarı kimlik doğrulaması ve dinamik model çözümlemesi olan bir sağlayıcınız olacak.
Bu kılavuz, OpenClaw'a bir model sağlayıcısı (LLM) ekleyen bir sağlayıcı Plugin'i oluşturmayı anlatır. Sonunda bir model kataloğu, API anahtarı kimlik doğrulaması ve dinamik model çözümlemesi olan bir sağlayıcınız olacak.
<Info>
Daha önce hiç OpenClaw Plugin oluşturmadıysanız, temel paket yapısı ve manifest kurulumu için önce
Daha önce hiç OpenClaw Plugin'i oluşturmadıysanız, temel paket
yapısı ve manifest kurulumu için önce
[Başlarken](/tr/plugins/building-plugins) bölümünü okuyun.
</Info>
<Tip>
Provider Plugin'ler, OpenClaw'ın normal çıkarım döngüsüne modeller ekler. Modelin iş parçacıklarını, Compaction'ı veya araç olaylarını sahiplenen yerel bir agent daemon üzerinden çalışması gerekiyorsa, daemon protokolü ayrıntılarını core'a koymak yerine sağlayıcıyı bir [agent harness](/tr/plugins/sdk-agent-harness) ile eşleştirin.
Sağlayıcı Plugin'leri, OpenClaw'ın normal çıkarım döngüsüne modeller ekler. Model,
iş parçacıklarını, compaction'ı veya araç olaylarını sahiplenen yerel bir agent daemon üzerinden
çalışmak zorundaysa, daemon protokol ayrıntılarını core'a koymak yerine sağlayıcıyı bir [ajan koşumuyla](/tr/plugins/sdk-agent-harness)
eşleştirin.
</Tip>
## İzlenecek yol
## İzlenecek Yol
<Steps>
<Step title="Paket ve manifest">
@ -87,11 +91,16 @@ Bu kılavuz, OpenClaw'a bir model sağlayıcısı (LLM) ekleyen bir provider Plu
```
</CodeGroup>
Manifest, OpenClaw'ın Plugin çalışma zamanınızı yüklemeden kimlik bilgilerini algılayabilmesi için `providerAuthEnvVars` bildirir. Bir sağlayıcı varyantı başka bir sağlayıcı kimliğinin kimlik doğrulamasını yeniden kullanmalıysa `providerAuthAliases` ekleyin. `modelSupport` isteğe bağlıdır ve çalışma zamanı hook'ları var olmadan önce OpenClaw'ın sağlayıcı Plugin'inizi `acme-large` gibi kısa model kimliklerinden otomatik yüklemesini sağlar. Sağlayıcıyı ClawHub üzerinde yayımlarsanız, bu `openclaw.compat` ve `openclaw.build` alanları `package.json` içinde zorunludur.
Manifest, OpenClaw'ın Plugin çalışma zamanınızı yüklemeden
kimlik bilgilerini algılayabilmesi için `providerAuthEnvVars` bildirir. Bir sağlayıcı varyantı başka bir sağlayıcı kimliğinin kimlik doğrulamasını yeniden kullanmalıysa `providerAuthAliases`
ekleyin. `modelSupport` isteğe bağlıdır ve OpenClaw'ın çalışma zamanı hook'ları var olmadan önce `acme-large` gibi kısaltılmış
model kimliklerinden sağlayıcı Plugin'inizi otomatik yüklemesini sağlar. Sağlayıcıyı
ClawHub'da yayımlarsanız, bu `openclaw.compat` ve `openclaw.build` alanları
`package.json` içinde zorunludur.
</Step>
<Step title="Sağlayıcıyı kaydedin">
<Step title="Sağlayıcıyı kaydetme">
Minimal bir sağlayıcının `id`, `label`, `auth` ve `catalog` alanlarına ihtiyacı vardır:
```typescript index.ts
@ -164,10 +173,11 @@ Bu kılavuz, OpenClaw'a bir model sağlayıcısı (LLM) ekleyen bir provider Plu
```
Bu, çalışan bir sağlayıcıdır. Kullanıcılar artık
`openclaw onboard --acme-ai-api-key <key>` çalıştırabilir ve modelleri olarak
`openclaw onboard --acme-ai-api-key <key>` çalıştırabilir ve model olarak
`acme-ai/acme-large` seçebilir.
Upstream sağlayıcı OpenClaw'dan farklı denetim token'ları kullanıyorsa, akış yolunu değiştirmek yerine küçük bir çift yönlü metin dönüşümü ekleyin:
Upstream sağlayıcı OpenClaw'dan farklı kontrol token'ları kullanıyorsa, stream yolunu değiştirmek yerine
küçük bir çift yönlü metin dönüşümü ekleyin:
```typescript
api.registerTextTransforms({
@ -184,9 +194,10 @@ Bu kılavuz, OpenClaw'a bir model sağlayıcısı (LLM) ekleyen bir provider Plu
});
```
`input`, taşıma öncesinde nihai sistem istemini ve metin mesajı içeriğini yeniden yazar. `output`, OpenClaw kendi denetim işaretleyicilerini veya kanal teslimini ayrıştırmadan önce asistan metin deltalarını ve nihai metni yeniden yazar.
`input`, taşıma öncesinde nihai system prompt'u ve metin mesajı içeriğini yeniden yazar.
`output`, OpenClaw kendi kontrol işaretleyicilerini veya kanal teslimini ayrıştırmadan önce assistant metin deltalarını ve nihai metni yeniden yazar.
Yalnızca API anahtarı kimlik doğrulaması ve tek bir katalog destekli çalışma zamanı ile bir metin sağlayıcısı kaydeden paketli sağlayıcılar için daha dar kapsamlı
Yalnızca API anahtarlı kimlik doğrulamasına sahip tek bir metin sağlayıcısı ve katalog destekli tek bir çalışma zamanı kaydeden paketli sağlayıcılar için, daha dar kapsamlı
`defineSingleProviderPluginEntry(...)` yardımcısını tercih edin:
```typescript
@ -227,20 +238,29 @@ Bu kılavuz, OpenClaw'a bir model sağlayıcısı (LLM) ekleyen bir provider Plu
});
```
`buildProvider`, OpenClaw gerçek sağlayıcı kimlik doğrulamasını çözümleyebildiğinde kullanılan canlı katalog yoludur. Sağlayıcıya özel keşif yapabilir. `buildStaticProvider` öğesini yalnızca kimlik doğrulama yapılandırılmadan önce gösterilmesi güvenli olan çevrimdışı satırlar için kullanın; kimlik bilgileri gerektirmemeli veya ağ isteği yapmamalıdır. OpenClaw'ın `models list --all` görünümü şu anda statik katalogları yalnızca paketli provider Plugin'ler için, boş yapılandırma, boş env ve agent/çalışma alanı yolları olmadan çalıştırır.
`buildProvider`, OpenClaw gerçek sağlayıcı kimlik doğrulamasını çözümleyebildiğinde kullanılan canlı katalog yoludur.
Sağlayıcıya özgü keşif gerçekleştirebilir. `buildStaticProvider` yalnızca kimlik doğrulaması yapılandırılmadan önce gösterilmesi güvenli olan çevrimdışı satırlar için kullanın;
kimlik bilgileri gerektirmemeli veya ağ istekleri yapmamalıdır.
OpenClaw'ın `models list --all` görünümü şu anda statik katalogları
yalnızca paketli sağlayıcı Plugin'leri için, boş config, boş env ve agent/workspace yolları olmadan çalıştırır.
Kimlik doğrulama akışınızın onboarding sırasında `models.providers.*`, takma adlar ve agent varsayılan modelini de yamaması gerekiyorsa, `openclaw/plugin-sdk/provider-onboard` içindeki preset yardımcılarını kullanın. En dar yardımcılar
Kimlik doğrulama akışınızın onboarding sırasında `models.providers.*`, aliases ve
agent varsayılan modelini de yamaması gerekiyorsa,
`openclaw/plugin-sdk/provider-onboard` içindeki preset yardımcılarını kullanın. En dar kapsamlı yardımcılar
`createDefaultModelPresetAppliers(...)`,
`createDefaultModelsPresetAppliers(...)` ve
`createModelCatalogPresetAppliers(...)` öğeleridir.
Bir sağlayıcının yerel endpoint'i normal `openai-completions` taşıması üzerinde akışlı kullanım bloklarını destekliyorsa, sağlayıcı kimliği denetimlerini sabit kodlamak yerine `openclaw/plugin-sdk/provider-catalog-shared` içindeki paylaşılan katalog yardımcılarını tercih edin. `supportsNativeStreamingUsageCompat(...)` ve
`applyProviderNativeStreamingUsageCompat(...)`, desteği endpoint yetenek haritasından algılar; bu nedenle yerel Moonshot/DashScope tarzı endpoint'ler, bir Plugin özel bir sağlayıcı kimliği kullansa bile yine de etkinleştirilir.
Bir sağlayıcının yerel endpoint'i normal `openai-completions` taşıması üzerinde stream edilen kullanım bloklarını destekliyorsa, provider-id kontrollerini hardcode etmek yerine
`openclaw/plugin-sdk/provider-catalog-shared` içindeki paylaşılan katalog yardımcılarını tercih edin.
`supportsNativeStreamingUsageCompat(...)` ve
`applyProviderNativeStreamingUsageCompat(...)`, desteği endpoint capability map'ten algılar; böylece yerel Moonshot/DashScope tarzı endpoint'ler,
bir Plugin özel sağlayıcı kimliği kullansa bile yine de opt in olur.
</Step>
<Step title="Dinamik model çözümlemesi ekleyin">
Sağlayıcınız rastgele model kimliklerini kabul ediyorsa (proxy veya router gibi),
<Step title="Dinamik model çözümlemesi ekleme">
Sağlayıcınız keyfi model kimliklerini kabul ediyorsa (proxy veya router gibi),
`resolveDynamicModel` ekleyin:
```typescript
@ -262,14 +282,17 @@ Bu kılavuz, OpenClaw'a bir model sağlayıcısı (LLM) ekleyen bir provider Plu
});
```
Çözümleme bir ağ çağrısı gerektiriyorsa, async warm-up için `prepareDynamicModel` kullanın — tamamlandıktan sonra `resolveDynamicModel` yeniden çalışır.
Çözümleme ağ çağrısı gerektiriyorsa, async ısıtma için `prepareDynamicModel` kullanın —
`resolveDynamicModel` tamamlandıktan sonra tekrar çalışır.
</Step>
<Step title="Çalışma zamanı hook'ları ekleyin (gerektiğinde)">
Çoğu sağlayıcının yalnızca `catalog` + `resolveDynamicModel` öğelerine ihtiyacı vardır. Sağlayıcınız gerektirdikçe hook'ları kademeli olarak ekleyin.
<Step title="Çalışma zamanı hook'ları ekleme (gerektiğinde)">
Çoğu sağlayıcının yalnızca `catalog` + `resolveDynamicModel` öğelerine ihtiyacı vardır. Sağlayıcınız gerektirdikçe hook'ları
kademeli olarak ekleyin.
Paylaşılan yardımcı oluşturucular artık en yaygın replay/tool-compat ailelerini kapsar; bu nedenle Plugin'lerin genellikle her hook'u tek tek elle bağlaması gerekmez:
Paylaşılan yardımcı builder'lar artık en yaygın replay/tool-compat
ailelerini kapsar, bu nedenle Plugin'lerin genellikle her hook'u tek tek elle bağlamasına gerek yoktur:
```typescript
import { buildProviderReplayFamilyHooks } from "openclaw/plugin-sdk/provider-model-shared";
@ -289,43 +312,43 @@ Bu kılavuz, OpenClaw'a bir model sağlayıcısı (LLM) ekleyen bir provider Plu
});
```
Bugün kullanılabilen replay aileleri:
Bugün kullanılabilir replay aileleri:
| Aile | Neyi bağlar | Paketli örnekler |
| Aile | Neleri bağlar | Paketli örnekler |
| --- | --- | --- |
| `openai-compatible` | OpenAI uyumlu taşımalar için, tool-call-id temizliği, assistant-first sıralama düzeltmeleri ve taşımanın ihtiyaç duyduğu yerlerde genel Gemini-turn doğrulaması dahil paylaşılan OpenAI tarzı replay policy | `moonshot`, `ollama`, `xai`, `zai` |
| `anthropic-by-model` | `modelId` tarafından seçilen Claude farkındalıklı replay policy; böylece Anthropic-message taşımaları, yalnızca çözümlenen model gerçekten bir Claude kimliği olduğunda Claude'a özel thinking-block temizliği alır | `amazon-bedrock`, `anthropic-vertex` |
| `google-gemini` | Yerel Gemini replay policy ile bootstrap replay temizliği ve etiketli reasoning-output modu | `google`, `google-gemini-cli` |
| `openai-compatible` | OpenAI uyumlu taşımalar için paylaşılan OpenAI tarzı replay ilkesi; tool-call-id temizleme, assistant-first sıralama düzeltmeleri ve taşımanın ihtiyaç duyduğu yerlerde genel Gemini-turn doğrulaması dahil | `moonshot`, `ollama`, `xai`, `zai` |
| `anthropic-by-model` | `modelId` tarafından seçilen Claude-aware replay ilkesi; böylece Anthropic-message taşımaları, yalnızca çözümlenen model gerçekten bir Claude kimliği olduğunda Claude'a öz thinking-block temizliği alır | `amazon-bedrock`, `anthropic-vertex` |
| `google-gemini` | Yerel Gemini replay ilkesi, bootstrap replay temizliği ve etiketli reasoning-output modu | `google`, `google-gemini-cli` |
| `passthrough-gemini` | OpenAI uyumlu proxy taşımaları üzerinden çalışan Gemini modelleri için Gemini thought-signature temizliği; yerel Gemini replay doğrulamasını veya bootstrap yeniden yazımlarını etkinleştirmez | `openrouter`, `kilocode`, `opencode`, `opencode-go` |
| `hybrid-anthropic-openai` | Tek bir Plugin içinde Anthropic-message ve OpenAI uyumlu model yüzeylerini karıştıran sağlayıcılar için hibrit policy; isteğe bağlı Claude-only thinking-block bırakma, Anthropic tarafıyla sınırlı kalır | `minimax` |
| `hybrid-anthropic-openai` | Tek bir Plugin içinde Anthropic-message ve OpenAI uyumlu model yüzeylerini karıştıran sağlayıcılar için hibrit ilke; isteğe bağlı yalnızca-Claude thinking-block düşürme Anthropic tarafıyla sınırlı kalır | `minimax` |
Bugün kullanılabilen stream aileleri:
Bugün kullanılabilir stream aileleri:
| Aile | Neyi bağlar | Birlikte gelen örnekler |
| Aile | Bağladığı şey | Birlikte gelen örnekler |
| --- | --- | --- |
| `google-thinking` | Paylaşılan akış yolunda Gemini düşünme yükü normalleştirmesi | `google`, `google-gemini-cli` |
| `kilocode-thinking` | Paylaşılan proxy akış yolunda Kilo akıl yürütme sarmalayıcısı; `kilo/auto` ve desteklenmeyen proxy akıl yürütme kimlikleri enjekte edilen düşünmeyi atlar | `kilocode` |
| `moonshot-thinking` | Yapılandırmadan + `/think` düzeyinden Moonshot ikili yerel düşünme yükü eşlemesi | `moonshot` |
| `google-thinking` | Paylaşılan akış yolunda Gemini thinking yük normalizasyonu | `google`, `google-gemini-cli` |
| `kilocode-thinking` | Paylaşılan proxy akış yolunda Kilo akıl yürütme sarmalayıcısı; `kilo/auto` ve desteklenmeyen proxy akıl yürütme kimlikleri enjekte edilen thinkingi atlar | `kilocode` |
| `moonshot-thinking` | Yapılandırma + `/think` düzeyinden Moonshot ikili yerel thinking yük eşlemesi | `moonshot` |
| `minimax-fast-mode` | Paylaşılan akış yolunda MiniMax hızlı mod model yeniden yazımı | `minimax`, `minimax-portal` |
| `openai-responses-defaults` | Paylaşılan yerel OpenAI/Codex Responses sarmalayıcıları: ilişkilendirme üstbilgileri, `/fast`/`serviceTier`, metin ayrıntı düzeyi, yerel Codex web araması, akıl yürütme uyumluluğu yük şekillendirmesi ve Responses bağlam yönetimi | `openai`, `openai-codex` |
| `openai-responses-defaults` | Paylaşılan yerel OpenAI/Codex Responses sarmalayıcıları: atıf üstbilgileri, `/fast`/`serviceTier`, metin ayrıntı düzeyi, yerel Codex web araması, akıl yürütme uyumluluğu yük şekillendirmesi ve Responses bağlam yönetimi | `openai`, `openai-codex` |
| `openrouter-thinking` | Proxy rotaları için OpenRouter akıl yürütme sarmalayıcısı; desteklenmeyen model/`auto` atlamaları merkezi olarak işlenir | `openrouter` |
| `tool-stream-default-on` | Açıkça devre dışı bırakılmadığı sürece araç akışı isteyen Z.AI gibi sağlayıcılar için varsayılan olarakık `tool_stream` sarmalayıcısı | `zai` |
| `tool-stream-default-on` | Açıkça devre dışı bırakılmadıkça araç akışını isteyen Z.AI gibi sağlayıcılar için varsayılan açık `tool_stream` sarmalayıcısı | `zai` |
<Accordion title="SDK seams powering the family builders">
<Accordion title="Aile oluşturucuları destekleyen SDK temas noktaları">
Her aile oluşturucu, aynı paketten dışa aktarılan daha düşük düzeyli herkese açık yardımcılarla oluşturulur; bir sağlayıcının ortak kalıbın dışına çıkması gerektiğinde bunları kullanabilirsiniz:
- `openclaw/plugin-sdk/provider-model-shared``ProviderReplayFamily`, `buildProviderReplayFamilyHooks(...)` ve ham yeniden oynatma oluşturucuları (`buildOpenAICompatibleReplayPolicy`, `buildAnthropicReplayPolicyForModel`, `buildGoogleGeminiReplayPolicy`, `buildHybridAnthropicOrOpenAIReplayPolicy`). Ayrıca Gemini yeniden oynatma yardımcılarını (`sanitizeGoogleGeminiReplayHistory`, `resolveTaggedReasoningOutputMode`) ve uç nokta/model yardımcılarını (`resolveProviderEndpoint`, `normalizeProviderId`, `normalizeGooglePreviewModelId`, `normalizeNativeXaiModelId`) dışa aktarır.
- `openclaw/plugin-sdk/provider-stream``ProviderStreamFamily`, `buildProviderStreamFamilyHooks(...)`, `composeProviderStreamWrappers(...)`; ayrıca paylaşılan OpenAI/Codex sarmalayıcıları (`createOpenAIAttributionHeadersWrapper`, `createOpenAIFastModeWrapper`, `createOpenAIServiceTierWrapper`, `createOpenAIResponsesContextManagementWrapper`, `createCodexNativeWebSearchWrapper`), DeepSeek V4 OpenAI uyumlu sarmalayıcısı (`createDeepSeekV4OpenAICompatibleThinkingWrapper`), Anthropic Messages düşünme ön doldurma temizliği (`createAnthropicThinkingPrefillPayloadWrapper`) ve paylaşılan proxy/sağlayıcı sarmalayıcıları (`createOpenRouterWrapper`, `createToolStreamWrapper`, `createMinimaxFastModeWrapper`).
- `openclaw/plugin-sdk/provider-tools``ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks("gemini")`, temel Gemini şema yardımcıları (`normalizeGeminiToolSchemas`, `inspectGeminiToolSchemas`) ve xAI uyumluluk yardımcıları (`resolveXaiModelCompatPatch()`, `applyXaiModelCompat(model)`). Birlikte gelen xAI Plugin'i, xAI kurallarını sağlayıcıya ait tutmak için bunlarla birlikte `normalizeResolvedModel` + `contributeResolvedModelCompat` kullanır.
- `openclaw/plugin-sdk/provider-stream``ProviderStreamFamily`, `buildProviderStreamFamilyHooks(...)`, `composeProviderStreamWrappers(...)`, ayrıca paylaşılan OpenAI/Codex sarmalayıcıları (`createOpenAIAttributionHeadersWrapper`, `createOpenAIFastModeWrapper`, `createOpenAIServiceTierWrapper`, `createOpenAIResponsesContextManagementWrapper`, `createCodexNativeWebSearchWrapper`), DeepSeek V4 OpenAI uyumlu sarmalayıcı (`createDeepSeekV4OpenAICompatibleThinkingWrapper`), Anthropic Messages thinking ön doldurma temizliği (`createAnthropicThinkingPrefillPayloadWrapper`) ve paylaşılan proxy/sağlayıcı sarmalayıcıları (`createOpenRouterWrapper`, `createToolStreamWrapper`, `createMinimaxFastModeWrapper`).
- `openclaw/plugin-sdk/provider-tools``ProviderToolCompatFamily`, `buildProviderToolCompatFamilyHooks("gemini")`, alttaki Gemini şema yardımcıları (`normalizeGeminiToolSchemas`, `inspectGeminiToolSchemas`) ve xAI uyumluluk yardımcıları (`resolveXaiModelCompatPatch()`, `applyXaiModelCompat(model)`). Birlikte gelen xAI Plugini, xAI kurallarının sağlayıcıya ait kalmasını sağlamak için bunlarla birlikte `normalizeResolvedModel` + `contributeResolvedModelCompat` kullanır.
Bazı akış yardımcıları özellikle sağlayıcı yerelinde kalır. `@openclaw/anthropic-provider`, Claude OAuth beta işlemeyi ve `context1m` kapısını kodladıkları için `wrapAnthropicProviderStream`, `resolveAnthropicBetas`, `resolveAnthropicFastMode`, `resolveAnthropicServiceTier` ve daha düşük düzeyli Anthropic sarmalayıcı oluşturucularını kendi herkese açık `api.ts` / `contract-api.ts` sınırında tutar. Benzer şekilde xAI Plugin'i, yerel xAI Responses şekillendirmesini kendi `wrapStreamFn` içinde tutar (`/fast` takma adları, varsayılan `tool_stream`, desteklenmeyen katı araç temizliği, xAI'ye özgü akıl yürütme yükü kaldırma).
Bazı akış yardımcıları bilinçli olarak sağlayıcıya yerel kalır. `@openclaw/anthropic-provider`, Claude OAuth beta işleme ve `context1m` geçitlemesini kodladıkları için `wrapAnthropicProviderStream`, `resolveAnthropicBetas`, `resolveAnthropicFastMode`, `resolveAnthropicServiceTier` ve daha düşük düzeyli Anthropic sarmalayıcı oluşturucularını kendi herkese açık `api.ts` / `contract-api.ts` temas noktasında tutar. xAI Plugini de yerel xAI Responses şekillendirmesini kendi `wrapStreamFn` içinde tutar (`/fast` takma adları, varsayılan `tool_stream`, desteklenmeyen katı araç temizliği, xAIye özgü akıl yürütme yükü kaldırma).
Aynı paket kökü kalıbı `@openclaw/openai-provider` (sağlayıcı oluşturucuları, varsayılan model yardımcıları, gerçek zamanlı sağlayıcı oluşturucuları) ve `@openclaw/openrouter-provider` (sağlayıcı oluşturucu ve işe başlatma/yapılandırma yardımcıları) için de temel sağlar.
Aynı paket kökü kalıbı `@openclaw/openai-provider` (sağlayıcı oluşturucuları, varsayılan model yardımcıları, gerçek zamanlı sağlayıcı oluşturucuları) ve `@openclaw/openrouter-provider` (sağlayıcı oluşturucu ve onboarding/yapılandırma yardımcıları) için de temel sağlar.
</Accordion>
<Tabs>
<Tab title="Token exchange">
Her çıkarım çağrısından önce belirteç değişimi gerektiren sağlayıcılar için:
<Tab title="Token değişimi">
Her çıkarım çağrısından önce token değişimi gerektiren sağlayıcılar için:
```typescript
prepareRuntimeAuth: async (ctx) => {
@ -338,7 +361,7 @@ Bu kılavuz, OpenClaw'a bir model sağlayıcısı (LLM) ekleyen bir provider Plu
},
```
</Tab>
<Tab title="Custom headers">
<Tab title="Özel üstbilgiler">
Özel istek üstbilgileri veya gövde değişiklikleri gerektiren sağlayıcılar için:
```typescript
@ -356,9 +379,8 @@ Bu kılavuz, OpenClaw'a bir model sağlayıcısı (LLM) ekleyen bir provider Plu
},
```
</Tab>
<Tab title="Native transport identity">
Genel HTTP veya WebSocket aktarımlarında yerel istek/oturum üstbilgileri
ya da meta veriler gerektiren sağlayıcılar için:
<Tab title="Yerel taşıma kimliği">
Genel HTTP veya WebSocket taşımalarında yerel istek/oturum üstbilgileri ya da meta veri gerektiren sağlayıcılar için:
```typescript
resolveTransportTurnState: (ctx) => ({
@ -378,8 +400,8 @@ Bu kılavuz, OpenClaw'a bir model sağlayıcısı (LLM) ekleyen bir provider Plu
}),
```
</Tab>
<Tab title="Usage and billing">
Kullanım/faturalama verisi sunan sağlayıcılar için:
<Tab title="Kullanım ve faturalandırma">
Kullanım/faturalandırma verisi sunan sağlayıcılar için:
```typescript
resolveUsageAuth: async (ctx) => {
@ -393,77 +415,76 @@ Bu kılavuz, OpenClaw'a bir model sağlayıcısı (LLM) ekleyen bir provider Plu
</Tab>
</Tabs>
<Accordion title="All available provider hooks">
OpenClaw hook'ları bu sırayla çağırır. Çoğu sağlayıcı yalnızca 2-3 tanesini kullanır:
OpenClaw'ın artık çağırmadığı, `ProviderPlugin.capabilities` ve
`suppressBuiltInModel` gibi yalnızca uyumluluk amaçlı sağlayıcı alanları
burada listelenmez.
<Accordion title="Kullanılabilir tüm sağlayıcı hookları">
OpenClaw hookları bu sırayla çağırır. Çoğu sağlayıcı yalnızca 2-3 tanesini kullanır:
OpenClawın artık çağırmadığı, yalnızca uyumluluk amaçlı sağlayıcı alanları; örneğin
`ProviderPlugin.capabilities` ve `suppressBuiltInModel`, burada listelenmez.
| # | Hook | Ne zaman kullanılır |
| --- | --- | --- |
| 1 | `catalog` | Model kataloğu veya temel URL varsayılanları |
| 2 | `applyConfigDefaults` | Yapılandırma somutlaştırması sırasında sağlayıcıya ait küresel varsayılanlar |
| 2 | `applyConfigDefaults` | Yapılandırma somutlaştırması sırasında sağlayıcıya ait genel varsayılanlar |
| 3 | `normalizeModelId` | Aramadan önce eski/önizleme model kimliği takma adı temizliği |
| 4 | `normalizeTransport` | Genel model montajından önce sağlayıcı ailesi `api` / `baseUrl` temizliği |
| 5 | `normalizeConfig` | `models.providers.<id>` yapılandırmasını normalleştir |
| 6 | `applyNativeStreamingUsageCompat` | Yapılandırma sağlayıcıları için yerel akış kullanımı uyumluluk yeniden yazımları |
| 4 | `normalizeTransport` | Genel model derlemesinden önce sağlayıcı ailesi `api` / `baseUrl` temizliği |
| 5 | `normalizeConfig` | `models.providers.<id>` yapılandırmasını normalleştirir |
| 6 | `applyNativeStreamingUsageCompat` | Yapılandırma sağlayıcıları için yerel akış kullanım uyumluluğu yeniden yazımları |
| 7 | `resolveConfigApiKey` | Sağlayıcıya ait env işaretçisi kimlik doğrulama çözümlemesi |
| 8 | `resolveSyntheticAuth` | Yerel/kendi barındırılan veya yapılandırma destekli sentetik kimlik doğrulama |
| 9 | `shouldDeferSyntheticProfileAuth` | Env/yapılandırma kimlik doğrulamasının arkasında sentetik depolanmış profil yer tutucularını düşür |
| 10 | `resolveDynamicModel` | Rastgele upstream model kimliklerini kabul et |
| 11 | `prepareDynamicModel` | Çözümlemeden önce eşzamansız meta veri getirme |
| 12 | `normalizeResolvedModel` | Çalıştırıcıdan önce aktarım yeniden yazımları |
| 13 | `contributeResolvedModelCompat` | Başka bir uyumlu aktarımın arkasındaki satıcı modelleri için uyumluluk bayrakları |
| 9 | `shouldDeferSyntheticProfileAuth` | Sentetik saklanan profil yer tutucularını env/yapılandırma kimlik doğrulamasının arkasına indirir |
| 10 | `resolveDynamicModel` | Rastgele yukarı akış model kimliklerini kabul eder |
| 11 | `prepareDynamicModel` | Çözümlemeden önce asenkron meta veri alma |
| 12 | `normalizeResolvedModel` | Çalıştırıcıdan önce taşıma yeniden yazımları |
| 13 | `contributeResolvedModelCompat` | Başka bir uyumlu taşımanın arkasındaki satıcı modelleri için uyumluluk bayrakları |
| 14 | `normalizeToolSchemas` | Kayıttan önce sağlayıcıya ait araç şeması temizliği |
| 15 | `inspectToolSchemas` | Sağlayıcıya ait araç şeması tanıları |
| 15 | `inspectToolSchemas` | Sağlayıcıya ait araç şeması tanılamaları |
| 16 | `resolveReasoningOutputMode` | Etiketli ve yerel akıl yürütme çıktısı sözleşmesi |
| 17 | `prepareExtraParams` | Varsayılan istek parametreleri |
| 18 | `createStreamFn` | Tamamen özel StreamFn aktarımı |
| 18 | `createStreamFn` | Tamamen özel StreamFn taşıması |
| 19 | `wrapStreamFn` | Normal akış yolunda özel üstbilgi/gövde sarmalayıcıları |
| 20 | `resolveTransportTurnState` | Yerel dönüş başına üstbilgiler/meta veriler |
| 21 | `resolveWebSocketSessionPolicy` | Yerel WS oturum üstbilgileri/soğuma süresi |
| 22 | `formatApiKey` | Özel çalışma zamanı belirteç şekli |
| 20 | `resolveTransportTurnState` | Yerel tur başına üstbilgiler/meta veri |
| 21 | `resolveWebSocketSessionPolicy` | Yerel WS oturum üstbilgileri/bekleme süresi |
| 22 | `formatApiKey` | Özel çalışma zamanı token şekli |
| 23 | `refreshOAuth` | Özel OAuth yenileme |
| 24 | `buildAuthDoctorHint` | Kimlik doğrulama onarım rehberliği |
| 25 | `matchesContextOverflowError` | Sağlayıcıya ait taşma algılama |
| 26 | `classifyFailoverReason` | Sağlayıcıya ait hız sınırı/aşırı yük sınıflandırması |
| 27 | `isCacheTtlEligible` | İstem önbelleği TTL kapısı |
| 27 | `isCacheTtlEligible` | İstem önbelleği TTL geçitlemesi |
| 28 | `buildMissingAuthMessage` | Özel eksik kimlik doğrulama ipucu |
| 29 | `augmentModelCatalog` | Sentetik ileri uyumluluk satırları |
| 29 | `augmentModelCatalog` | Sentetik ileriye uyumluluk satırları |
| 30 | `resolveThinkingProfile` | Modele özgü `/think` seçenek kümesi |
| 31 | `isBinaryThinking` | İkili düşünmeık/kapalı uyumluluğu |
| 31 | `isBinaryThinking` | İkili thinkingık/kapalı uyumluluğu |
| 32 | `supportsXHighThinking` | `xhigh` akıl yürütme desteği uyumluluğu |
| 33 | `resolveDefaultThinkingLevel` | Varsayılan `/think` ilkesi uyumluluğu |
| 34 | `isModernModelRef` | Canlı/smoke model eşleştirme |
| 35 | `prepareRuntimeAuth` | Çıkarımdan önce belirteç değişimi |
| 35 | `prepareRuntimeAuth` | Çıkarımdan önce token değişimi |
| 36 | `resolveUsageAuth` | Özel kullanım kimlik bilgisi ayrıştırma |
| 37 | `fetchUsageSnapshot` | Özel kullanım uç noktası |
| 38 | `createEmbeddingProvider` | Bellek/arama için sağlayıcıya ait embedding bağdaştırıcısı |
| 39 | `buildReplayPolicy` | Özel konuşma metni yeniden oynatma/Compaction ilkesi |
| 38 | `createEmbeddingProvider` | Bellek/arama için sağlayıcıya ait embedding adaptörü |
| 39 | `buildReplayPolicy` | Özel transkript yeniden oynatma/Compaction ilkesi |
| 40 | `sanitizeReplayHistory` | Genel temizlikten sonra sağlayıcıya özgü yeniden oynatma yeniden yazımları |
| 41 | `validateReplayTurns` | Gömülü çalıştırıcıdan önce katı yeniden oynatma dönüşü doğrulaması |
| 42 | `onModelSelected` | Seçim sonrası geri çağırma (örn. telemetri) |
| 41 | `validateReplayTurns` | Gömülü çalıştırıcıdan önce katı yeniden oynatma turu doğrulaması |
| 42 | `onModelSelected` | Seçim sonrası geri çağrı (ör. telemetri) |
Çalışma zamanı geri dönüş notları:
Çalışma zamanı yedek davranış notları:
- `normalizeConfig` önce eşleşen sağlayıcıyı, ardından yapılandırmayı gerçekten değiştirene kadar hook destekli diğer sağlayıcı Plugin'lerini kontrol eder. Hiçbir sağlayıcı hook'u desteklenen bir Google ailesi yapılandırma girdisini yeniden yazmazsa, birlikte gelen Google yapılandırma normalleştiricisi yine de uygulanır.
- `resolveConfigApiKey`, sunulduğunda sağlayıcı hook'unu kullanır. Birlikte gelen `amazon-bedrock` yolunda burada yerleşik bir AWS env işaretçisi çözümleyicisi de vardır; Bedrock çalışma zamanı kimlik doğrulamasının kendisi hâlâ AWS SDK varsayılan zincirini kullansa bile.
- `resolveSystemPromptContribution`, bir sağlayıcının bir model ailesi için önbellek duyarlı sistem istemi rehberliği enjekte etmesine olanak tanır. Davranış tek bir sağlayıcı/model ailesine ait olduğunda ve kararlı/dinamik önbellek ayrımını koruması gerektiğinde bunu `before_prompt_build` yerine tercih edin.
- `normalizeConfig`, önce eşleşen sağlayıcıyı, ardından yapılandırmayı gerçekten değiştirene kadar diğer hook destekli sağlayıcı Pluginlerini kontrol eder. Hiçbir sağlayıcı hooku desteklenen bir Google ailesi yapılandırma girdisini yeniden yazmazsa, birlikte gelen Google yapılandırma normalleştiricisi yine de uygulanır.
- `resolveConfigApiKey`, sunulduğunda sağlayıcı hookunu kullanır. Birlikte gelen `amazon-bedrock` yolu burada yerleşik bir AWS env işaretçisi çözümleyicisine de sahiptir; ancak Bedrock çalışma zamanı kimlik doğrulamasının kendisi hâlâ AWS SDK varsayılan zincirini kullanır.
- `resolveSystemPromptContribution`, bir sağlayıcının model ailesi için önbellek farkındalığı olan sistem istemi rehberliği enjekte etmesini sağlar. Davranış tek bir sağlayıcı/model ailesine ait olduğunda ve kararlı/dinamik önbellek ayrımını koruması gerektiğinde bunu `before_prompt_build` yerine tercih edin.
Ayrıntılııklamalar ve gerçek dünya örnekleri için bkz. [İç Yapı: Sağlayıcı Çalışma Zamanı Hook'ları](/tr/plugins/architecture-internals#provider-runtime-hooks).
Ayrıntılııklamalar ve gerçek dünya örnekleri için bkz. [İç Yapı: Sağlayıcı Çalışma Zamanı Hookları](/tr/plugins/architecture-internals#provider-runtime-hooks).
</Accordion>
</Step>
<Step title="Add extra capabilities (optional)">
Bir sağlayıcı Plugin'i, metin çıkarımının yanı sıra konuşma, gerçek zamanlı transkripsiyon, gerçek zamanlı
<Step title="Ek yetenekler ekleyin (isteğe bağlı)">
Bir sağlayıcı Plugini metin çıkarımının yanında konuşma, gerçek zamanlı transkripsiyon, gerçek zamanlı
ses, medya anlama, görüntü oluşturma, video oluşturma, web getirme
ve web araması kaydedebilir. OpenClaw bunu bir
**hibrit yetenek** Plugin'i olarak sınıflandırır; şirket Plugin'leri
için önerilen kalıp budur (satıcı başına bir Plugin). Bkz.
ve web araması kaydedebilir. OpenClaw bunu
**hibrit yetenekli** Plugin olarak sınıflandırır — şirket Pluginleri için önerilen kalıp
budur (satıcı başına bir Plugin). Bkz.
[İç Yapı: Yetenek Sahipliği](/tr/plugins/architecture#capability-ownership-model).
Her yeteneği mevcut `api.registerProvider(...)` çağrınızla birlikte `register(api)` içinde kaydedin. Yalnızca ihtiyacınız olan sekmeleri seçin:
Her yeteneği mevcut `api.registerProvider(...)` çağrınızın yanında `register(api)` içinde kaydedin. Yalnızca ihtiyacınız olan sekmeleri seçin:
<Tabs>
<Tab title="Konuşma (TTS)">
@ -502,14 +523,14 @@ Bu kılavuz, OpenClaw'a bir model sağlayıcısı (LLM) ekleyen bir provider Plu
```
Sağlayıcı HTTP hataları için `assertOkOrThrowProviderError(...)` kullanın; böylece
pluginler sınırlı hata gövdesi okumalarını, JSON hata ayrıştırmayı ve
plugin'ler sınırlandırılmış hata gövdesi okumalarını, JSON hata ayrıştırmasını ve
istek kimliği soneklerini paylaşır.
</Tab>
<Tab title="Gerçek zamanlı transkripsiyon">
`createRealtimeTranscriptionWebSocketSession(...)` tercih edin paylaşılan
yardımcı proxy yakalamayı, yeniden bağlanma geri çekilmesini, kapanış boşaltmayı, hazır
el sıkışmalarını, ses kuyruğa almayı ve kapanış olayı tanılamalarını yönetir. Plugininiz
yalnızca yukarı akış olaylarını eşler.
`createRealtimeTranscriptionWebSocketSession(...)` tercih edin; paylaşılan
yardımcı proxy yakalamayı, yeniden bağlanma geri çekilmesini, kapatma temizlemesini, hazır
el sıkışmalarını, ses kuyruğa almayı ve kapatma olayı tanılamalarını yönetir. Plugin'iniz
yalnızca üst akış olaylarını eşler.
```typescript
api.registerRealtimeTranscriptionProvider({
@ -549,9 +570,9 @@ Bu kılavuz, OpenClaw'a bir model sağlayıcısı (LLM) ekleyen bir provider Plu
Çok parçalı ses POST eden toplu STT sağlayıcıları,
`openclaw/plugin-sdk/provider-http` içindeki
`buildAudioTranscriptionFormData(...)` işlevini kullanmalıdır. Yardımcı,
uyumlu transkripsiyon APIleri için M4A tarzı dosya adına ihtiyaç duyan
AAC yüklemeleri de dahil olmak üzere yükleme dosya adlarını normalleştirir.
`buildAudioTranscriptionFormData(...)` işlevini kullanmalıdır. Yardımcı, uyumlu
transkripsiyon API'leri için M4A tarzı bir dosya adına ihtiyaç duyan AAC yüklemeleri dahil
yükleme dosya adlarını normalleştirir.
</Tab>
<Tab title="Gerçek zamanlı ses">
```typescript
@ -567,6 +588,7 @@ Bu kılavuz, OpenClaw'a bir model sağlayıcısı (LLM) ekleyen bir provider Plu
connect: async () => {},
sendAudio: () => {},
setMediaTimestamp: () => {},
handleBargeIn: () => {},
submitToolResult: () => {},
acknowledgeMark: () => {},
close: () => {},
@ -574,6 +596,10 @@ Bu kılavuz, OpenClaw'a bir model sağlayıcısı (LLM) ekleyen bir provider Plu
}),
});
```
Bir taşıma katmanı bir insanın asistan oynatmasını böldüğünü algılayabiliyor
ve sağlayıcı etkin ses yanıtını kırpmayı veya temizlemeyi destekliyorsa
`handleBargeIn` uygulayın.
</Tab>
<Tab title="Medya anlama">
```typescript
@ -586,11 +612,12 @@ Bu kılavuz, OpenClaw'a bir model sağlayıcısı (LLM) ekleyen bir provider Plu
```
</Tab>
<Tab title="Görüntü ve video üretimi">
Video yetenekleri **mod farkında** bir şekil kullanır: `generate`,
Video yetenekleri **mod farkındalıklı** bir yapı kullanır: `generate`,
`imageToVideo` ve `videoToVideo`. `maxInputImages` / `maxInputVideos` /
`maxDurationSeconds` gibi düz toplu alanlar, dönüştürme modu desteğini
veya devre dışı modları temiz biçimde duyurmak için yeterli değildir.
Müzik üretimi de açık `generate` / `edit` bloklarıyla aynı örüntüyü izler.
`maxDurationSeconds` gibi düz toplu alanlar, dönüştürme modu desteğini veya devre dışı
modları temiz biçimde duyurmak için yeterli değildir.
Müzik üretimi de açık `generate` /
`edit` bloklarıyla aynı kalıbı izler.
```typescript
api.registerImageGenerationProvider({
@ -684,9 +711,9 @@ Bu kılavuz, OpenClaw'a bir model sağlayıcısı (LLM) ekleyen bir provider Plu
</Step>
</Steps>
## ClawHuba yayımlama
## ClawHub'da yayımlama
Sağlayıcı pluginleri, diğer tüm harici kod pluginleriyle aynı şekilde yayımlanır:
Sağlayıcı plugin'leri, diğer tüm harici kod plugin'leriyle aynı şekilde yayımlanır:
```bash
clawhub package publish your-org/your-plugin --dry-run
@ -708,27 +735,27 @@ Burada eski yalnızca skill yayımlama takma adını kullanmayın; plugin paketl
└── usage.ts # Usage endpoint (optional)
```
## Katalog sırası referansı
## Katalog sırası başvurusu
`catalog.order`, kataloğunuzun yerleşik sağlayıcılara göre ne zaman birleştirileceğini
denetler:
| Sıra | Ne zaman | Kullanım durumu |
| --------- | ------------- | ----------------------------------------------- |
| `simple` | İlk geçiş | Düz API anahtarı sağlayıcıları |
| `profile` | simple sonrası | Kimlik doğrulama profillerine bağlı sağlayıcılar |
| `paired` | profile sonrası | Birden fazla ilişkili girdiyi sentezleme |
| `late` | Son geçiş | Mevcut sağlayıcıları geçersiz kılma (çakışmada kazanır) |
| Sıra | Zaman | Kullanım durumu |
| --------- | ------------- | --------------------------------------------- |
| `simple` | İlk geçiş | Düz API anahtarlı sağlayıcılar |
| `profile` | simple sonrası| Kimlik doğrulama profillerine bağlı sağlayıcılar |
| `paired` | profile sonrası | Birden çok ilişkili girdiyi sentezle |
| `late` | Son geçiş | Mevcut sağlayıcıları geçersiz kıl (çakışmada kazanır) |
## Sonraki adımlar
- [Kanal Pluginleri](/tr/plugins/sdk-channel-plugins) — plugininiz ayrıca bir kanal sağlıyorsa
- [SDK Runtime](/tr/plugins/sdk-runtime) — `api.runtime` yardımcıları (TTS, arama, alt aracı)
- [SDK Genel Bakış](/tr/plugins/sdk-overview) — tam alt yol içe aktarma referansı
- [Plugin İç Yapısı](/tr/plugins/architecture-internals#provider-runtime-hooks) — hook ayrıntıları ve paketli örnekler
- [Kanal Plugin'leri](/tr/plugins/sdk-channel-plugins) — plugin'iniz ayrıca bir kanal sağlıyorsa
- [SDK Çalışma Zamanı](/tr/plugins/sdk-runtime) — `api.runtime` yardımcıları (TTS, arama, alt ajan)
- [SDK Genel Bakış](/tr/plugins/sdk-overview) — tam alt yol içe aktarma başvurusu
- [Plugin İç Yapısı](/tr/plugins/architecture-internals#provider-runtime-hooks) — hook ayrıntıları ve paketlenmiş örnekler
## İlgili
- [Plugin SDK kurulumu](/tr/plugins/sdk-setup)
- [Plugin oluşturma](/tr/plugins/building-plugins)
- [Kanal pluginleri oluşturma](/tr/plugins/sdk-channel-plugins)
- [Kanal plugin'leri oluşturma](/tr/plugins/sdk-channel-plugins)

View File

@ -1,27 +1,27 @@
---
read_when:
- OpenClaw üzerinden giden bir sesli arama yapmak istiyorsunuz
- voice-call Plugin'ini yapılandırıyor veya geliştiriyorsunuz
- Telefon sistemlerinde gerçek zamanlı sese veya akışlı transkripsiyona ihtiyacınız var
- OpenClaw'dan giden bir sesli arama yapmak istiyorsunuz
- Sesli arama Plugin'ini yapılandırıyor veya geliştiriyorsunuz
- Telefon altyapısında gerçek zamanlı sese veya akış halinde transkripsiyona ihtiyacınız var
sidebarTitle: Voice call
summary: Twilio, Telnyx veya Plivo aracılığıyla giden sesli aramalar yapın ve gelen sesli aramaları kabul edin; isteğe bağlı gerçek zamanlı ses ve akış transkripsiyonu desteğiyle
title: Sesli arama Plugin'i
summary: Twilio, Telnyx veya Plivo üzerinden giden sesli aramalar yapın ve gelen sesli aramaları kabul edin; isteğe bağlı gerçek zamanlı ses ve akışlı transkripsiyon desteğiyle
title: Sesli arama Plugin
x-i18n:
generated_at: "2026-04-30T09:38:46Z"
generated_at: "2026-05-01T09:03:07Z"
model: gpt-5.5
provider: openai
source_hash: 7976b84ce1ee6e29706e595a4a25337632b34a9bb8f7cecdee1d6f833a8ce932
source_hash: 6334e5418e0fb530fc5d372ee1ada06ba987ce86bbf70746ee4ffe4c3ed4844e
source_path: plugins/voice-call.md
workflow: 16
---
Bir Plugin aracılığıyla OpenClaw için sesli aramalar. Giden bildirimleri,
çok turlu konuşmaları, tam çift yönlü gerçek zamanlı sesi, akışlı
transkripsiyonu ve izin listesi politikalarıyla gelen aramaları destekler.
OpenClaw için bir Plugin aracılığıyla sesli aramalar. Giden bildirimleri,
çok turlu konuşmaları, tam çift yönlü gerçek zamanlı sesi, akış
transkripsiyonunu ve izin listesi politikalarıyla gelen aramaları destekler.
**Geçerli sağlayıcılar:** `twilio` (Programmable Voice + Media Streams),
`telnyx` (Call Control v2), `plivo` (Voice API + XML transfer + GetInput
speech), `mock` (dev/ağ yok).
**Mevcut sağlayıcılar:** `twilio` (Programmable Voice + Media Streams),
`telnyx` (Call Control v2), `plivo` (Voice API + XML aktarımı + GetInput
konuşma), `mock` (geliştirme/ağ yok).
<Note>
Voice Call Plugin'i **Gateway sürecinin içinde** çalışır. Uzak bir
@ -32,14 +32,14 @@ yapılandırın, ardından yüklenmesi için Gateway'i yeniden başlatın.
## Hızlı başlangıç
<Steps>
<Step title="Plugin'i yükleyin">
<Step title="Plugin'i kurun">
<Tabs>
<Tab title="npm'den">
```bash
openclaw plugins install @openclaw/voice-call
```
</Tab>
<Tab title="Yerel klasörden (dev)">
<Tab title="Yerel bir klasörden (geliştirme)">
```bash
PLUGIN_SRC=./path/to/local/voice-call-plugin
openclaw plugins install "$PLUGIN_SRC"
@ -48,18 +48,18 @@ yapılandırın, ardından yüklenmesi için Gateway'i yeniden başlatın.
</Tab>
</Tabs>
npm, OpenClaw'a ait paketi kullanımdan kaldırılmış olarak bildirirse bu paket sürümü
npm, OpenClaw'a ait paketi kullanımdan kaldırılmış olarak bildirirse, bu paket sürümü
daha eski bir harici paket serisindendir; daha yeni bir npm paketi yayımlanana kadar
güncel paketlenmiş bir OpenClaw derlemesi veya yerel klasör yolunu kullanın.
güncel paketlenmiş bir OpenClaw derlemesi veya yerel klasör yolu kullanın.
Ardından Plugin'in yüklenmesi için Gateway'i yeniden başlatın.
</Step>
<Step title="Sağlayıcıyı ve webhook'u yapılandırın">
<Step title="Sağlayıcıyı ve Webhook'u yapılandırın">
Yapılandırmayı `plugins.entries.voice-call.config` altında ayarlayın (tam yapı için
aşağıdaki [Yapılandırma](#configuration) bölümüne bakın). En az şunlar gerekir:
`provider`, sağlayıcı kimlik bilgileri, `fromNumber` ve herkesçe erişilebilir
bir webhook URL'si.
`provider`, sağlayıcı kimlik bilgileri, `fromNumber` ve herkese açık olarak
erişilebilen bir Webhook URL'si.
</Step>
<Step title="Kurulumu doğrulayın">
```bash
@ -67,19 +67,19 @@ yapılandırın, ardından yüklenmesi için Gateway'i yeniden başlatın.
```
Varsayılan çıktı sohbet günlüklerinde ve terminallerde okunabilir. Plugin'in
etkinleştirilmesini, sağlayıcı kimlik bilgilerini, webhook erişimini ve yalnızca
etkinleştirilmesini, sağlayıcı kimlik bilgilerini, Webhook erişimini ve yalnızca
bir ses modunun (`streaming` veya `realtime`) etkin olduğunu denetler. Betikler için
`--json` kullanın.
</Step>
<Step title="Smoke testi">
<Step title="Duman testi">
```bash
openclaw voicecall smoke
openclaw voicecall smoke --to "+15555550123"
```
İkisi de varsayılan olarak deneme çalıştırmasıdır. Kısa bir giden bildirim
aramasını gerçekten başlatmak için `--yes` ekleyin:
araması gerçekten başlatmak için `--yes` ekleyin:
```bash
openclaw voicecall smoke --to "+15555550123" --yes
@ -89,21 +89,21 @@ yapılandırın, ardından yüklenmesi için Gateway'i yeniden başlatın.
</Steps>
<Warning>
Twilio, Telnyx ve Plivo için kurulumun **herkesçe erişilebilir bir webhook URL'sine**
çözülmesi gerekir. `publicUrl`, tünel URL'si, Tailscale URL'si veya sunma geri dönüşü
loopback ya da özel ağ alanına çözümlenirse kurulum, taşıyıcı webhook'larını alamayacak
bir sağlayıcı başlatmak yerine başarısız olur.
Twilio, Telnyx ve Plivo için kurulumun **herkese açık bir Webhook URL'sine**
çözümlenmesi gerekir. `publicUrl`, tünel URL'si, Tailscale URL'si veya sunum
geri dönüşü loopback ya da özel ağ alanına çözümlenirse kurulum, operatör
Webhook'larını alamayacak bir sağlayıcıyı başlatmak yerine başarısız olur.
</Warning>
## Yapılandırma
`enabled: true` ise ancak seçilen sağlayıcının kimlik bilgileri eksikse,
Gateway başlangıcı eksik anahtarlarla birlikte kurulum eksik uyarısı günlüğe yazar ve
çalışma zamanını başlatmayı atlar. Komutlar, RPC çağrıları ve ajan araçları
kullanıldığında yine de eksik sağlayıcı yapılandırmasını aynen döndürür.
`enabled: true` ise ancak seçili sağlayıcıda kimlik bilgileri eksikse,
Gateway başlangıcı eksik anahtarlarla birlikte setup-incomplete uyarısı günlüğe yazar ve
çalışma zamanını başlatmayı atlar. Komutlar, RPC çağrıları ve agent araçları
kullanıldığında eksik sağlayıcı yapılandırmasını yine tam olarak döndürür.
<Note>
Voice-call kimlik bilgileri SecretRefs kabul eder. `plugins.entries.voice-call.config.twilio.authToken` ve `plugins.entries.voice-call.config.tts.providers.*.apiKey`, standart SecretRef yüzeyi üzerinden çözümlenir; bkz. [SecretRef kimlik bilgisi yüzeyi](/tr/reference/secretref-credential-surface).
Voice-call kimlik bilgileri SecretRef kabul eder. `plugins.entries.voice-call.config.twilio.authToken`, `plugins.entries.voice-call.config.realtime.providers.*.apiKey`, `plugins.entries.voice-call.config.streaming.providers.*.apiKey` ve `plugins.entries.voice-call.config.tts.providers.*.apiKey` standart SecretRef yüzeyi üzerinden çözümlenir; bkz. [SecretRef kimlik bilgisi yüzeyi](/tr/reference/secretref-credential-surface).
</Note>
```json5
@ -165,30 +165,30 @@ Voice-call kimlik bilgileri SecretRefs kabul eder. `plugins.entries.voice-call.c
<AccordionGroup>
<Accordion title="Sağlayıcı erişimi ve güvenlik notları">
- Twilio, Telnyx ve Plivo'nun tümü **herkesçe erişilebilir** bir webhook URL'si gerektirir.
- `mock`, yerel dev sağlayıcısıdır (ağ çağrısı yoktur).
- Telnyx, `skipSignatureVerification` true olmadığı sürece `telnyx.publicKey` (veya `TELNYX_PUBLIC_KEY`) gerektirir.
- Twilio, Telnyx ve Plivo'nun tamamı **herkese açık olarak erişilebilen** bir Webhook URL'si gerektirir.
- `mock` yerel bir geliştirme sağlayıcısıdır (ağ çağrısı yok).
- `skipSignatureVerification` true değilse Telnyx `telnyx.publicKey` (veya `TELNYX_PUBLIC_KEY`) gerektirir.
- `skipSignatureVerification` yalnızca yerel test içindir.
- ngrok ücretsiz katmanında `publicUrl` değerini tam ngrok URL'sine ayarlayın; imza doğrulama her zaman zorunlu tutulur.
- `tunnel.allowNgrokFreeTierLoopbackBypass: true`, geçersiz imzalı Twilio webhook'larına **yalnızca** `tunnel.provider="ngrok"` ve `serve.bind` loopback olduğunda izin verir (ngrok yerel ajanı). Yalnızca yerel dev.
- Ngrok ücretsiz katman URL'leri değişebilir veya ara sayfa davranışı ekleyebilir; `publicUrl` kayarsa Twilio imzaları başarısız olur. Üretim: kararlı bir alan adı veya Tailscale funnel tercih edin.
- ngrok ücretsiz katmanında `publicUrl` değerini tam ngrok URL'sine ayarlayın; imza doğrulaması her zaman uygulanır.
- `tunnel.allowNgrokFreeTierLoopbackBypass: true`, Twilio Webhook'larına geçersiz imzalarla **yalnızca** `tunnel.provider="ngrok"` olduğunda ve `serve.bind` loopback olduğunda (ngrok yerel aracısı) izin verir. Yalnızca yerel geliştirme içindir.
- Ngrok ücretsiz katman URL'leri değişebilir veya ara sayfa davranışı ekleyebilir; `publicUrl` saparsa Twilio imzaları başarısız olur. Üretim: kararlı bir etki alanı veya Tailscale funnel tercih edin.
</Accordion>
<Accordion title="Akış bağlantısı sınırları">
- `streaming.preStartTimeoutMs`, hiçbir zaman geçerli bir `start` karesi göndermeyen soketleri kapatır.
- `streaming.maxPendingConnections`, kimliği doğrulanmamış başlatma öncesi soketlerin toplamını sınırlar.
- `streaming.preStartTimeoutMs`, hiçbir zaman geçerli bir `start` çerçevesi göndermeyen soketleri kapatır.
- `streaming.maxPendingConnections`, toplam kimliği doğrulanmamış başlatma öncesi soket sayısını sınırlar.
- `streaming.maxPendingConnectionsPerIp`, kaynak IP başına kimliği doğrulanmamış başlatma öncesi soketleri sınırlar.
- `streaming.maxConnections`, toplam açık medya akışı soketlerini sınırlar (bekleyen + etkin).
- `streaming.maxConnections`, toplam açık medya akışı soketlerini (bekleyen + etkin) sınırlar.
</Accordion>
<Accordion title="Eski yapılandırma geçişleri">
`provider: "log"`, `twilio.from` veya eski
`streaming.*` OpenAI anahtarlarını kullanan eski yapılandırmalar `openclaw doctor --fix`
tarafından yeniden yazılır. Çalışma zamanı geri dönüşü eski voice-call anahtarlarını
şimdilik hâlâ kabul eder, ancak yeniden yazma yolu `openclaw doctor --fix` ve
uyumluluk shim'i geçicidir.
tarafından yeniden yazılır. Çalışma zamanı geri dönüşü şimdilik eski voice-call anahtarlarını
kabul etmeye devam eder, ancak yeniden yazma yolu `openclaw doctor --fix` komutudur ve uyumluluk katmanı
geçicidir.
Otomatik geçirilen akış anahtarları:
Otomatik geçirilmiş akış anahtarları:
- `streaming.sttProvider``streaming.provider`
- `streaming.openaiApiKey``streaming.providers.openai.apiKey`
@ -201,23 +201,24 @@ Voice-call kimlik bilgileri SecretRefs kabul eder. `plugins.entries.voice-call.c
## Gerçek zamanlı sesli konuşmalar
`realtime`, canlı arama sesi için tam çift yönlü bir gerçek zamanlı ses sağlayıcısı seçer.
Bu, sesi yalnızca gerçek zamanlı transkripsiyon sağlayıcılarına ileten `streaming`den ayrıdır.
`realtime`, canlı arama sesi için tam çift yönlü gerçek zamanlı bir ses sağlayıcısı seçer.
Yalnızca sesi gerçek zamanlı transkripsiyon sağlayıcılarına ileten `streaming`den ayrıdır.
<Warning>
`realtime.enabled`, `streaming.enabled` ile birleştirilemez. Arama başına bir
`realtime.enabled`, `streaming.enabled` ile birlikte kullanılamaz. Arama başına bir
ses modu seçin.
</Warning>
Geçerli çalışma zamanı davranışı:
Mevcut çalışma zamanı davranışı:
- `realtime.enabled`, Twilio Media Streams için desteklenir.
- `realtime.provider` isteğe bağlıdır. Ayarlanmazsa Voice Call, kayıtlı ilk gerçek zamanlı ses sağlayıcısını kullanır.
- Birlikte gelen gerçek zamanlı ses sağlayıcıları: Google Gemini Live (`google`) ve OpenAI (`openai`), kendi sağlayıcı Plugin'leri tarafından kaydedilir.
- `realtime.provider` isteğe bağlıdır. Ayarlanmazsa Voice Call, ilk kayıtlı gerçek zamanlı ses sağlayıcısını kullanır.
- Paketle gelen gerçek zamanlı ses sağlayıcıları: Google Gemini Live (`google`) ve OpenAI (`openai`), kendi sağlayıcı Plugin'leri tarafından kaydedilir.
- Sağlayıcıya ait ham yapılandırma `realtime.providers.<providerId>` altında bulunur.
- Voice Call, paylaşılan `openclaw_agent_consult` gerçek zamanlı aracını varsayılan olarak sunar. Arayan daha derin akıl yürütme, güncel bilgi veya normal OpenClaw araçları istediğinde gerçek zamanlı model bunu çağırabilir.
- `realtime.provider` kayıtlı olmayan bir sağlayıcıyı gösterirse veya hiç gerçek zamanlı ses sağlayıcısı kayıtlı değilse Voice Call, tüm Plugin'i başarısız kılmak yerine bir uyarı günlüğe yazar ve gerçek zamanlı medyayı atlar.
- Danışma oturumu anahtarları, mevcut olduğunda var olan ses oturumunu yeniden kullanır; ardından arama sırasında takip danışma çağrılarının bağlamı koruması için arayan/aranan telefon numarasına geri döner.
- Voice Call, paylaşılan `openclaw_agent_consult` gerçek zamanlı aracını varsayılan olarak kullanıma sunar. Gerçek zamanlı model, arayan daha derin akıl yürütme, güncel bilgi veya normal OpenClaw araçları istediğinde bunu çağırabilir.
- `realtime.fastContext.enabled` varsayılan olarak kapalıdır. Etkinleştirildiğinde Voice Call önce danışma sorusu için indekslenmiş bellek/oturum bağlamında arama yapar ve tam danışma agent'ına yalnızca `realtime.fastContext.fallbackToConsult` true ise geri dönmeden önce bu parçaları `realtime.fastContext.timeoutMs` içinde gerçek zamanlı modele döndürür.
- `realtime.provider` kayıtlı olmayan bir sağlayıcıyı gösteriyorsa veya hiçbir gerçek zamanlı ses sağlayıcısı kayıtlı değilse Voice Call, tüm Plugin'i başarısız yapmak yerine bir uyarı günlüğe yazar ve gerçek zamanlı medyayı atlar.
- Danışma oturumu anahtarları mevcut olduğunda var olan ses oturumunu yeniden kullanır, ardından takip danışma çağrılarının arama sırasında bağlamı koruması için arayan/aranan telefon numarasına geri döner.
### Araç politikası
@ -225,16 +226,16 @@ Geçerli çalışma zamanı davranışı:
| Politika | Davranış |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `safe-read-only` | Danışma aracını sunar ve normal ajanı `read`, `web_search`, `web_fetch`, `x_search`, `memory_search` ve `memory_get` ile sınırlar. |
| `owner` | Danışma aracını sunar ve normal ajanın normal ajan araç politikasını kullanmasına izin verir. |
| `none` | Danışma aracını sunmaz. Özel `realtime.tools` yine de gerçek zamanlı sağlayıcıya geçirilir. |
| `safe-read-only` | Danışma aracını kullanıma sunar ve normal agent'ı `read`, `web_search`, `web_fetch`, `x_search`, `memory_search` ve `memory_get` ile sınırlar. |
| `owner` | Danışma aracını kullanıma sunar ve normal agent'ın normal agent araç politikasını kullanmasına izin verir. |
| `none` | Danışma aracını kullanıma sunmaz. Özel `realtime.tools` yine de gerçek zamanlı sağlayıcıya geçirilir. |
### Gerçek zamanlı sağlayıcı örnekleri
<Tabs>
<Tab title="Google Gemini Live">
Varsayılanlar: `realtime.providers.google.apiKey`,
`GEMINI_API_KEY` veya `GOOGLE_GENERATIVE_AI_API_KEY` üzerinden API anahtarı; model
Varsayılanlar: API anahtarı `realtime.providers.google.apiKey`,
`GEMINI_API_KEY` veya `GOOGLE_GENERATIVE_AI_API_KEY` içinden; model
`gemini-2.5-flash-native-audio-preview-12-2025`; ses `Kore`.
```json5
@ -290,21 +291,23 @@ Geçerli çalışma zamanı davranışı:
</Tab>
</Tabs>
Sağlayıcıya özgü gerçek zamanlı ses seçenekleri için [Google sağlayıcısı](/tr/providers/google) ve
Sağlayıcıya özgü gerçek zamanlı ses seçenekleri için
[Google sağlayıcısı](/tr/providers/google) ve
[OpenAI sağlayıcısı](/tr/providers/openai) bölümlerine bakın.
## Akışlı transkripsiyon
## Akış transkripsiyonu
`streaming`, canlı arama sesi için gerçek zamanlı bir transkripsiyon sağlayıcısı seçer.
Geçerli çalışma zamanı davranışı:
Mevcut çalışma zamanı davranışı:
- `streaming.provider` isteğe bağlıdır. Ayarlanmazsa Voice Call, kayıtlı ilk gerçek zamanlı transkripsiyon sağlayıcısını kullanır.
- Birlikte gelen gerçek zamanlı transkripsiyon sağlayıcıları: Deepgram (`deepgram`), ElevenLabs (`elevenlabs`), Mistral (`mistral`), OpenAI (`openai`) ve xAI (`xai`), kendi sağlayıcı Plugin'leri tarafından kaydedilir.
- Sağlayıcıya ait ham yapılandırma `streaming.providers.<providerId>` altında bulunur.
- `streaming.provider` kayıtlı olmayan bir sağlayıcıyı gösterirse veya hiçbiri kayıtlı değilse Voice Call, tüm Plugin'i başarısız kılmak yerine bir uyarı günlüğe yazar ve medya akışını atlar.
- Paketle gelen gerçek zamanlı transkripsiyon sağlayıcıları: Deepgram (`deepgram`), ElevenLabs (`elevenlabs`), Mistral (`mistral`), OpenAI (`openai`) ve xAI (`xai`); bunlar kendi sağlayıcı Plugin'leri tarafından kaydedilir.
- Sağlayıcının sahibi olduğu ham yapılandırma `streaming.providers.<providerId>` altında bulunur.
- Twilio kabul edilen bir akış `start` mesajı gönderdikten sonra Voice Call akışı hemen kaydeder, sağlayıcı bağlanırken gelen medyayı transkripsiyon sağlayıcısı üzerinden kuyruğa alır ve ilk selamlamayı yalnızca gerçek zamanlı transkripsiyon hazır olduktan sonra başlatır.
- `streaming.provider` kayıtlı olmayan bir sağlayıcıyı gösteriyorsa veya hiç sağlayıcı kayıtlı değilse Voice Call bir uyarı günlüğe yazar ve tüm Plugin'i başarısız yapmak yerine medya akışını atlar.
### Akış sağlayıcı örnekleri
### Akış sağlayıcısı örnekleri
<Tabs>
<Tab title="OpenAI">
@ -372,9 +375,11 @@ Geçerli çalışma zamanı davranışı:
</Tab>
</Tabs>
## Çağrılar için TTS
## Aramalar için TTS
Voice Call, çağrılarda akış konuşması için çekirdek `messages.tts` yapılandırmasını kullanır. Bunu Plugin yapılandırmasının altında **aynı şekille** geçersiz kılabilirsiniz; `messages.tts` ile derin birleştirme yapılır.
Voice Call, aramalarda akış konuşması için çekirdek `messages.tts`
yapılandırmasını kullanır. Bunu Plugin yapılandırması altında **aynı şekille**
geçersiz kılabilirsiniz; `messages.tts` ile derin birleştirme yapılır.
```json5
{
@ -391,22 +396,22 @@ Voice Call, çağrılarda akış konuşması için çekirdek `messages.tts` yap
```
<Warning>
**Microsoft konuşma, sesli çağrılar için yoksayılır.** Telefon sesi PCM gerektirir;
mevcut Microsoft aktarımı telefon PCM çıktısını sunmaz.
**Microsoft speech, sesli aramalar için yok sayılır.** Telefon sesinin PCM'ye ihtiyacı vardır;
mevcut Microsoft taşıması telefon PCM çıktısını sunmaz.
</Warning>
Davranış notları:
- Plugin yapılandırması içindeki eski `tts.<provider>` anahtarları (`openai`, `elevenlabs`, `microsoft`, `edge`) `openclaw doctor --fix` tarafından onarılır; commit edilen yapılandırma `tts.providers.<provider>` kullanmalıdır.
- Çekirdek TTS, Twilio medya akışı etkinleştirildiğinde kullanılır; aksi halde çağrılar sağlayıcıya özgü seslere geri döner.
- Bir Twilio medya akışı zaten etkinse, Voice Call TwiML `<Say>` kullanımına geri dönmez. Bu durumda telefon TTS kullanılamıyorsa, oynatma isteği iki oynatma yolunu karıştırmak yerine başarısız olur.
- Telefon TTS ikincil bir sağlayıcıya geri döndüğünde, Voice Call hata ayıklama için sağlayıcı zinciriyle (`from`, `to`, `attempts`) bir uyarı günlüğe yazar.
- Twilio araya girme veya akış sonlandırma bekleyen TTS kuyruğunu temizlediğinde, kuyruktaki oynatma istekleri oynatma tamamlanmasını bekleyen arayanları askıda bırakmak yerine sonuçlanır.
- Plugin yapılandırması içindeki eski `tts.<provider>` anahtarları (`openai`, `elevenlabs`, `microsoft`, `edge`) `openclaw doctor --fix` tarafından onarılır; commit edilmiş yapılandırma `tts.providers.<provider>` kullanmalıdır.
- Twilio medya akışı etkinleştirildiğinde çekirdek TTS kullanılır; aksi halde aramalar sağlayıcıya özgü seslere geri döner.
- Bir Twilio medya akışı zaten etkinse Voice Call, TwiML `<Say>` seçeneğine geri dönmez. Bu durumda telefon TTS kullanılamıyorsa oynatma isteği iki oynatma yolunu karıştırmak yerine başarısız olur.
- Telefon TTS ikincil bir sağlayıcıya geri döndüğünde Voice Call, hata ayıklama için sağlayıcı zinciriyle (`from`, `to`, `attempts`) birlikte bir uyarı günlüğe yazar.
- Twilio araya girme veya akış sökümü bekleyen TTS kuyruğunu temizlediğinde, kuyruğa alınmış oynatma istekleri arayanları oynatma tamamlanmasını bekler durumda bırakmak yerine sonuçlanır.
### TTS örnekleri
<Tabs>
<Tab title="Core TTS only">
<Tab title="Yalnızca çekirdek TTS">
```json5
{
messages: {
@ -420,7 +425,7 @@ Davranış notları:
}
```
</Tab>
<Tab title="Override to ElevenLabs (calls only)">
<Tab title="ElevenLabs'e geçersiz kıl (yalnızca aramalar)">
```json5
{
plugins: {
@ -444,7 +449,7 @@ Davranış notları:
}
```
</Tab>
<Tab title="OpenAI model override (deep-merge)">
<Tab title="OpenAI model geçersiz kılması (derin birleştirme)">
```json5
{
plugins: {
@ -468,9 +473,9 @@ Davranış notları:
</Tab>
</Tabs>
## Gelen çağrılar
## Gelen aramalar
Gelen ilke varsayılan olarak `disabled` değerindedir. Gelen çağrıları etkinleştirmek için şunu ayarlayın:
Gelen arama ilkesi varsayılan olarak `disabled` değerindedir. Gelen aramaları etkinleştirmek için şunu ayarlayın:
```json5
{
@ -481,15 +486,21 @@ Gelen ilke varsayılan olarak `disabled` değerindedir. Gelen çağrıları etki
```
<Warning>
`inboundPolicy: "allowlist"` düşük güvence sağlayan bir arayan kimliği filtresidir. Plugin, sağlayıcı tarafından sağlanan `From` değerini normalleştirir ve `allowFrom` ile karşılaştırır. Webhook doğrulaması sağlayıcı teslimini ve yük bütünlüğünü doğrular, ancak PSTN/VoIP arayan numarası sahipliğini **kanıtlamaz**. `allowFrom` değerini güçlü arayan kimliği olarak değil, arayan kimliği filtreleme olarak ele alın.
`inboundPolicy: "allowlist"` düşük güvenceli bir arayan kimliği filtresidir.
Plugin, sağlayıcı tarafından sağlanan `From` değerini normalleştirir ve bunu
`allowFrom` ile karşılaştırır. Webhook doğrulaması sağlayıcı teslimini ve
yük bütünlüğünü doğrular, ancak PSTN/VoIP arayan numarası sahipliğini
**kanıtlamaz**. `allowFrom` değerini güçlü arayan kimliği olarak değil,
arayan kimliği filtrelemesi olarak değerlendirin.
</Warning>
Otomatik yanıtlar ajan sistemini kullanır. `responseModel`,
Otomatik yanıtlar aracı sistemini kullanır. `responseModel`,
`responseSystemPrompt` ve `responseTimeoutMs` ile ayarlayın.
### Sözlü çıktı sözleşmesi
### Konuşulan çıktı sözleşmesi
Otomatik yanıtlar için Voice Call, sistem istemine katı bir sözlü çıktı sözleşmesi ekler:
Otomatik yanıtlar için Voice Call, sistem istemine katı bir konuşulan çıktı
sözleşmesi ekler:
```text
{"spoken":"..."}
@ -497,37 +508,41 @@ Otomatik yanıtlar için Voice Call, sistem istemine katı bir sözlü çıktı
Voice Call konuşma metnini savunmalı biçimde çıkarır:
- Akıl yürütme/hata içeriği olarak işaretlenen yükleri yoksayar.
- Doğrudan JSON, çit içine alınmış JSON veya satır içi `"spoken"` anahtarlarını ayrıştırır.
- Düz metne geri döner ve olası planlama/meta giriş paragraflarını kaldırır.
- Akıl yürütme/hata içeriği olarak işaretlenmiş yükleri yok sayar.
- Doğrudan JSON'u, çit içine alınmış JSON'u veya satır içi `"spoken"` anahtarlarını ayrıştırır.
- Düz metne geri döner ve muhtemel planlama/meta giriş paragraflarını kaldırır.
Bu, sözlü oynatmanın arayana yönelik metne odaklanmasını sağlar ve planlama metninin sese sızmasını önler.
Bu, konuşulan oynatmanın arayana dönük metne odaklanmasını sağlar ve
planlama metninin sese sızmasını önler.
### Konuşma başlatma davranışı
Giden `conversation` çağrıları için ilk mesaj işleme canlı oynatma durumuna bağlıdır:
Giden `conversation` aramaları için ilk mesaj işleme canlı oynatma durumuna bağlıdır:
- Araya girme kuyruğu temizleme ve otomatik yanıt yalnızca ilk karşılama etkin olarak konuşulurken bastırılır.
- İlk oynatma başarısız olursa, çağrı `listening` durumuna döner ve ilk mesaj yeniden deneme için kuyrukta kalır.
- Araya girme kuyruğu temizleme ve otomatik yanıt yalnızca ilk selamlama aktif olarak konuşulurken bastırılır.
- İlk oynatma başarısız olursa arama `listening` durumuna döner ve ilk mesaj yeniden deneme için kuyrukta kalır.
- Twilio akışı için ilk oynatma, akış bağlantısında ek gecikme olmadan başlar.
- Araya girme etkin oynatmayı iptal eder ve kuyrukta olan ancak henüz oynatılmayan Twilio TTS girişlerini temizler. Temizlenen girişler atlanmış olarak çözülür, böylece takip yanıt mantığı hiç oynatılmayacak sesi beklemeden devam edebilir.
- Gerçek zamanlı sesli konuşmalar, gerçek zamanlı akışın kendi açılış sırasını kullanır. Voice Call, bu ilk mesaj için eski bir `<Say>` TwiML güncellemesi göndermez, bu nedenle giden `<Connect><Stream>` oturumları bağlı kalır.
- Araya girme aktif oynatmayı iptal eder ve kuyruğa alınmış ancak henüz oynatılmayan Twilio TTS girişlerini temizler. Temizlenen girişler atlanmış olarak çözümlenir; böylece takip yanıt mantığı, hiç oynatılmayacak sesi beklemeden devam edebilir.
- Gerçek zamanlı sesli konuşmalar, gerçek zamanlı akışın kendi açılış sırasını kullanır. Voice Call bu ilk mesaj için eski bir `<Say>` TwiML güncellemesi göndermez; bu nedenle giden `<Connect><Stream>` oturumları bağlı kalır.
### Twilio akış bağlantı kesme toleransı
### Twilio akış bağlantısı kesilme ek süresi
Bir Twilio medya akışının bağlantısı kesildiğinde, Voice Call çağrıyı otomatik sonlandırmadan önce **2000 ms** bekler:
Bir Twilio medya akışının bağlantısı kesildiğinde Voice Call, aramayı
otomatik sonlandırmadan önce **2000 ms** bekler:
- Akış bu süre içinde yeniden bağlanırsa, otomatik sonlandırma iptal edilir.
- Tolerans süresinden sonra hiçbir akış yeniden kaydolmazsa, takılı kalmış etkin çağrıları önlemek için çağrı sonlandırılır.
- Akış bu pencere sırasında yeniden bağlanırsa otomatik sonlandırma iptal edilir.
- Ek süreden sonra hiçbir akış yeniden kaydolmazsa takılı kalan aktif aramaları önlemek için arama sonlandırılır.
## Eski çağrı temizleyici
## Bayat arama temizleyici
Hiçbir zaman terminal Webhook almayan çağrıları sonlandırmak için `staleCallReaperSeconds` kullanın (örneğin, hiç tamamlanmayan bildirim modu çağrıları). Varsayılan değer `0` (devre dışı) şeklindedir.
Hiçbir terminal Webhook almayan aramaları (örneğin hiç tamamlanmayan bildirim modu
aramaları) sonlandırmak için `staleCallReaperSeconds` kullanın. Varsayılan
`0` değeridir (devre dışı).
Önerilen aralıklar:
- **Üretim:** Bildirim tarzı akışlar için `120``300` saniye.
- Normal çağrıların tamamlanabilmesi için bu değeri **`maxDurationSeconds` değerinden yüksek** tutun. İyi bir başlangıç noktası `maxDurationSeconds + 3060` saniyedir.
- **Production:** Bildirim tarzı akışlar için `120`-`300` saniye.
- Normal aramaların tamamlanabilmesi için bu değeri **`maxDurationSeconds` değerinden yüksek** tutun. İyi bir başlangıç noktası `maxDurationSeconds + 30-60` saniyedir.
```json5
{
@ -546,26 +561,28 @@ Hiçbir zaman terminal Webhook almayan çağrıları sonlandırmak için `staleC
## Webhook güvenliği
Gateway önünde bir proxy veya tünel bulunduğunda, Plugin imza doğrulaması için genel URL'yi yeniden oluşturur. Bu seçenekler hangi iletilen başlıklara güvenileceğini denetler:
Gateway'in önünde bir proxy veya tünel bulunduğunda Plugin, imza doğrulaması
için genel URL'yi yeniden oluşturur. Bu seçenekler hangi yönlendirilmiş
başlıkların güvenilir olduğunu denetler:
<ParamField path="webhookSecurity.allowedHosts" type="string[]">
İletme başlıklarından gelen ana makineleri izin listesine alır.
Yönlendirme başlıklarından gelen konaklara izin listesi uygula.
</ParamField>
<ParamField path="webhookSecurity.trustForwardingHeaders" type="boolean">
İzin listesi olmadan iletilen başlıklara güvenir.
Yönlendirilmiş başlıklara izin listesi olmadan güven.
</ParamField>
<ParamField path="webhookSecurity.trustedProxyIPs" type="string[]">
Yalnızca istek uzak IP'si listeyle eşleştiğinde iletilen başlıklara güvenir.
Yalnızca isteğin uzak IP'si listeyle eşleştiğinde yönlendirilmiş başlıklara güven.
</ParamField>
Ek korumalar:
- Webhook **yeniden oynatma koruması** Twilio ve Plivo için etkindir. Yeniden oynatılan geçerli Webhook istekleri onaylanır ancak yan etkiler için atlanır.
- Twilio konuşma sıraları `<Gather>` geri çağrılarında sıra başına bir belirteç içerir, böylece eski/yeniden oynatılan konuşma geri çağrıları daha yeni bekleyen bir transkript sırasını karşılayamaz.
- Kimliği doğrulanmamış Webhook istekleri, sağlayıcının gerekli imza başlıkları eksik olduğunda gövde okumalarından önce reddedilir.
- voice-call Webhook'u, imza doğrulamasından önce paylaşılan ön kimlik doğrulama gövde profilini (64 KB / 5 saniye) ve IP başına eşzamanlı sınırı kullanır.
- Twilio konuşma turları, `<Gather>` geri çağrılarında tur başına bir belirteç içerir; böylece bayat/yeniden oynatılmış konuşma geri çağrıları daha yeni bekleyen bir transkript turunu karşılayamaz.
- Sağlayıcının gerekli imza başlıkları eksik olduğunda kimliği doğrulanmamış Webhook istekleri gövde okumalarından önce reddedilir.
- voice-call Webhook'u, imza doğrulamasından önce paylaşılan ön kimlik doğrulama gövde profilini (64 KB / 5 saniye) ve IP başına uçuşta sınırını kullanır.
Kararlı bir genel ana makineyle örnek:
Kararlı bir genel konakla örnek:
```json5
{
@ -599,34 +616,201 @@ openclaw voicecall latency # summarize turn latency from lo
openclaw voicecall expose --mode funnel
```
`latency`, varsayılan voice-call depolama yolundan `calls.jsonl` dosyasını okur.
Farklı bir günlüğü göstermek için `--file <path>`, analizi son N kayıtla sınırlamak için `--last <n>` kullanın (varsayılan 200). Çıktı, sıra gecikmesi ve dinleme-bekleme süreleri için p50/p90/p99 içerir.
Gateway zaten çalışırken operasyonel `voicecall` komutları, CLI'ın ikinci bir
Webhook sunucusu bağlamaması için Gateway'in sahibi olduğu voice-call çalışma
zamanına devreder. Erişilebilir bir Gateway yoksa komutlar bağımsız CLI çalışma
zamanına geri döner.
## Ajan aracı
`latency`, varsayılan voice-call depolama yolundan `calls.jsonl` dosyasını okur.
Farklı bir günlüğü işaret etmek için `--file <path>`, analizi son N kayıtla
(varsayılan 200) sınırlamak için `--last <n>` kullanın. Çıktı, tur gecikmesi ve
dinleme-bekleme süreleri için p50/p90/p99 içerir.
## Aracı aracı
Araç adı: `voice_call`.
| Eylem | Bağımsız değişkenler |
| --------------- | ------------------------- |
| `initiate_call` | `message`, `to?`, `mode?` |
| `continue_call` | `callId`, `message` |
| `speak_to_user` | `callId`, `message` |
| `send_dtmf` | `callId`, `digits` |
| `end_call` | `callId` |
| `get_status` | `callId` |
| Eylem | Argümanlar |
| --------------- | ------------------------------------------ |
| `initiate_call` | `message`, `to?`, `mode?`, `dtmfSequence?` |
| `continue_call` | `callId`, `message` |
| `speak_to_user` | `callId`, `message` |
| `send_dtmf` | `callId`, `digits` |
| `end_call` | `callId` |
| `get_status` | `callId` |
Bu repo `skills/voice-call/SKILL.md` konumunda eşleşen bir Skills belgesi sunar.
Bu repo `skills/voice-call/SKILL.md` konumunda eşleşen bir skill dokümanı gönderir.
## Gateway RPC
| Yöntem | Bağımsız değişkenler |
| ------------------- | ------------------------- |
| `voicecall.initiate` | `to?`, `message`, `mode?` |
| `voicecall.continue` | `callId`, `message` |
| `voicecall.speak` | `callId`, `message` |
| `voicecall.dtmf` | `callId`, `digits` |
| `voicecall.end` | `callId` |
| `voicecall.status` | `callId` |
| Yöntem | Argümanlar |
| -------------------- | ------------------------------------------ |
| `voicecall.initiate` | `to?`, `message`, `mode?`, `dtmfSequence?` |
| `voicecall.continue` | `callId`, `message` |
| `voicecall.speak` | `callId`, `message` |
| `voicecall.dtmf` | `callId`, `digits` |
| `voicecall.end` | `callId` |
| `voicecall.status` | `callId` |
`dtmfSequence` yalnızca `mode: "conversation"` ile geçerlidir. Bildirim modu aramaları
bağlantı sonrası rakamlara ihtiyaç duyuyorsa arama oluştuktan sonra
`voicecall.dtmf` kullanmalıdır.
## Sorun giderme
### Kurulum Webhook yayınını başarısız yapıyor
Kurulumu Gateway'i çalıştıran aynı ortamdan çalıştırın:
```bash
openclaw voicecall setup
openclaw voicecall setup --json
```
`twilio`, `telnyx` ve `plivo` için `webhook-exposure` yeşil olmalıdır.
Yapılandırılmış bir `publicUrl`, yerel veya özel ağ alanını işaret ettiğinde
yine de başarısız olur, çünkü taşıyıcı bu adreslere geri çağrı yapamaz.
`publicUrl` olarak `localhost`, `127.0.0.1`, `0.0.0.0`, `10.x`,
`172.16.x`-`172.31.x`, `192.168.x`, `169.254.x`, `fc00::/7` veya
`fd00::/8` kullanmayın.
Bir genel erişim yolu kullanın:
```json5
{
plugins: {
entries: {
"voice-call": {
config: {
publicUrl: "https://voice.example.com/voice/webhook",
// or
tunnel: { provider: "ngrok" },
// or
tailscale: { mode: "funnel", path: "/voice/webhook" },
},
},
},
},
}
```
Yapılandırmayı değiştirdikten sonra Gateway'i yeniden başlatın veya yeniden
yükleyin, ardından şunu çalıştırın:
```bash
openclaw voicecall setup
openclaw voicecall smoke
```
`voicecall smoke`, `--yes` iletmediğiniz sürece bir deneme çalıştırmasıdır.
### Sağlayıcı kimlik bilgileri başarısız oluyor
Seçili sağlayıcıyı ve gerekli kimlik bilgisi alanlarını kontrol edin:
- Twilio: `twilio.accountSid`, `twilio.authToken` ve `fromNumber`, veya
`TWILIO_ACCOUNT_SID`, `TWILIO_AUTH_TOKEN` ve `TWILIO_FROM_NUMBER`.
- Telnyx: `telnyx.apiKey`, `telnyx.connectionId`, `telnyx.publicKey` ve
`fromNumber`.
- Plivo: `plivo.authId`, `plivo.authToken` ve `fromNumber`.
Kimlik bilgileri Gateway ana makinesinde bulunmalıdır. Yerel bir kabuk profilini
düzenlemek, halihazırda çalışan bir Gateway yeniden başlatılana veya ortamını
yeniden yükleyene kadar onu etkilemez.
### Çağrılar başlıyor ancak sağlayıcı Webhook'ları ulaşmıyor
Sağlayıcı konsolunun tam genel Webhook URL'sini işaret ettiğini doğrulayın:
```text
https://voice.example.com/voice/webhook
```
Ardından çalışma zamanı durumunu inceleyin:
```bash
openclaw voicecall status --call-id <id>
openclaw voicecall tail
openclaw logs --follow
```
Yaygın nedenler:
- `publicUrl`, `serve.path` değerinden farklı bir yolu işaret eder.
- Gateway başladıktan sonra tünel URL'si değişmiştir.
- Bir proxy isteği iletir ancak host/proto üst bilgilerini kaldırır veya yeniden yazar.
- Güvenlik duvarı veya DNS, genel ana makine adını Gateway dışında bir yere yönlendirir.
- Gateway, Voice Call Plugin etkinleştirilmeden yeniden başlatılmıştır.
Gateway'in önünde bir ters proxy veya tünel olduğunda,
`webhookSecurity.allowedHosts` değerini genel ana makine adına ayarlayın veya
bilinen bir proxy adresi için `webhookSecurity.trustedProxyIPs` kullanın.
`webhookSecurity.trustForwardingHeaders` değerini yalnızca proxy sınırı sizin
kontrolünüz altındaysa kullanın.
### İmza doğrulaması başarısız oluyor
Sağlayıcı imzaları, OpenClaw'ın gelen istekten yeniden oluşturduğu genel URL'ye
göre kontrol edilir. İmzalar başarısız olursa:
- Sağlayıcı Webhook URL'sinin şema, ana makine ve yol dahil olmak üzere
`publicUrl` ile tam olarak eşleştiğini doğrulayın.
- Ücretsiz ngrok katmanı URL'leri için tünel ana makine adı değiştiğinde
`publicUrl` değerini güncelleyin.
- Proxy'nin özgün host ve proto üst bilgilerini koruduğundan emin olun veya
`webhookSecurity.allowedHosts` yapılandırın.
- Yerel test dışında `skipSignatureVerification` etkinleştirmeyin.
### Google Meet Twilio katılımları başarısız oluyor
Google Meet, Twilio aramayla katılımlar için bu Plugin'i kullanır. Önce Voice Call'u doğrulayın:
```bash
openclaw voicecall setup
openclaw voicecall smoke --to "+15555550123"
```
Ardından Google Meet taşımasınııkça doğrulayın:
```bash
openclaw googlemeet setup --transport twilio
```
Voice Call yeşilse ancak Meet katılımcısı hiç katılmıyorsa Meet aramayla katılım
numarasını, PIN'i ve `--dtmf-sequence` değerini kontrol edin. Telefon çağrısı
sağlıklı olabilir, ancak toplantı hatalı bir DTMF dizisini reddedebilir veya
yok sayabilir.
Google Meet, Meet DTMF dizisini ve giriş metnini `voicecall.start` öğesine
iletir. Twilio çağrıları için Voice Call önce DTMF TwiML'i sunar, Webhook'a
geri yönlendirir, ardından gerçek zamanlı medya akışını açar; böylece kaydedilen
giriş, telefon katılımcısı toplantıya katıldıktan sonra oluşturulur.
Canlı aşama izi için `openclaw logs --follow` kullanın. Sağlıklı bir Twilio Meet
katılımı bu sırayı günlüğe kaydeder:
- Google Meet, Twilio katılımını Voice Call'a devreder.
- Voice Call, bağlantı öncesi DTMF TwiML'ini depolar.
- Twilio başlangıç TwiML'i gerçek zamanlı işlemden önce tüketilir ve sunulur.
- Voice Call, Twilio çağrısı için gerçek zamanlı TwiML sunar.
- Gerçek zamanlı köprü, ilk selamlama kuyruğa alınmış şekilde başlar.
`openclaw voicecall tail` kalıcı çağrı kayıtlarını yine de gösterir; çağrı
durumu ve transkriptler için kullanışlıdır, ancak her Webhook/gerçek zamanlı
geçiş orada görünmez.
### Gerçek zamanlı çağrıda konuşma yok
Yalnızca bir ses modunun etkin olduğunu doğrulayın. `realtime.enabled` ve
`streaming.enabled` aynı anda true olamaz.
Gerçek zamanlı Twilio çağrıları için ayrıca şunları doğrulayın:
- Bir gerçek zamanlı sağlayıcı Plugin yüklü ve kaydedilmiş.
- `realtime.provider` ayarlanmamış ya da kayıtlı bir sağlayıcının adını veriyor.
- Sağlayıcı API anahtarı Gateway süreci için kullanılabilir.
- `openclaw logs --follow`, gerçek zamanlı TwiML'in sunulduğunu, gerçek zamanlı
köprünün başladığını ve ilk selamlamanın kuyruğa alındığını gösteriyor.
## İlgili

View File

@ -1,24 +1,24 @@
---
read_when:
- Genel kullanımaık sürüm kanalı tanımları aranıyor
- Herkeseık sürüm kanalı tanımları aranıyor
- Sürüm doğrulamasını veya paket kabulünü çalıştırma
- Sürüm adlandırması ve yayın temposunu arama
summary: Sürüm hatları, operatör kontrol listesi, doğrulama kutuları, sürüm adlandırması ve tempo
- Sürüm adlandırması ve yayın temposu aranıyor
summary: Sürüm hatları, operatör kontrol listesi, doğrulama kutuları, sürüm adlandırması ve yayın temposu
title: Sürüm politikası
x-i18n:
generated_at: "2026-04-30T09:43:24Z"
generated_at: "2026-05-01T09:03:18Z"
model: gpt-5.5
provider: openai
source_hash: 54dc9ad7918ac95ec535a0404bbcbc04461a2b977151db0c2039b91e7e69c15c
source_hash: dfe579099a9580e2d0400cd0b24f26d3fa3ee917899423604ebc13aa2519b4ee
source_path: reference/RELEASING.md
workflow: 16
---
OpenClaw'ın üç herkese açık yayın hattı vardır:
OpenClaw'ın üç herkese açık yayın kanalı vardır:
- kararlı: varsayılan olarak npm `beta`'ya veya açıkça istendiğinde npm `latest`'a yayımlanan etiketli yayınlar
- beta: npm `beta`'ya yayımlanan ön yayın etiketleri
- geliştirme: `main` dalının hareketli başı
- kararlı: varsayılan olarak npm `beta` üzerinde, açıkça istendiğinde ise npm `latest` üzerinde yayımlanan etiketli yayınlar
- beta: npm `beta` üzerinde yayımlanan ön yayın etiketleri
- geliştirme: `main` dalının hareketli son noktası
## Sürüm adlandırma
@ -28,138 +28,139 @@ OpenClaw'ın üç herkese açık yayın hattı vardır:
- Git etiketi: `vYYYY.M.D-N`
- Beta ön yayın sürümü: `YYYY.M.D-beta.N`
- Git etiketi: `vYYYY.M.D-beta.N`
- Ayı veya günü sıfırla doldurmayın
- `latest`, güncel yükseltilmiş kararlı npm yayını anlamına gelir
- `beta`, güncel beta kurulum hedefi anlamına gelir
- Kararlı ve kararlı düzeltme yayınları varsayılan olarak npm `beta`'ya yayımlanır; yayın operatörleri açıkça `latest`'ı hedefleyebilir veya incelenmiş bir beta derlemesini daha sonra yükseltebilir
- Her kararlı OpenClaw yayını, npm paketini ve macOS uygulamasını birlikte sunar;
- Ay veya günü sıfırla doldurmayın
- `latest`, mevcut yükseltilmiş kararlı npm yayını anlamına gelir
- `beta`, mevcut beta kurulum hedefi anlamına gelir
- Kararlı ve kararlı düzeltme yayınları varsayılan olarak npm `beta` üzerinde yayımlanır; yayın operatörleri açıkça `latest` hedefleyebilir veya incelenmiş bir beta derlemesini daha sonra yükseltebilir
- Her kararlı OpenClaw yayını npm paketini ve macOS uygulamasını birlikte sunar;
beta yayınları normalde önce npm/paket yolunu doğrular ve yayımlar; mac
uygulaması derleme/imzalama/noter onayı, açıkça istenmedie kararlı yayınlara ayrılır
uygulama derleme/imzalama/noter onayı, açıkça istenmediği sürece kararlı yayınlara ayrılır
## Yayın sıklığı
## Yayın temposu
- Yayınlar önce beta olarak ilerler
- Kararlı yayın, yalnızca en son beta doğrulandıktan sonra gelir
- Bakımcılar yayınları normalde güncel `main`'den oluşturulan bir
`release/YYYY.M.D` dalından çıkarır; böylece yayın doğrulaması ve düzeltmeler
`main` üzerindeki yeni geliştirmeyi engellemez
- Bir beta etiketi gönderilmiş veya yayımlanmışsa ve düzeltme gerekiyorsa,
bakımcılar eski beta etiketini silmek veya yeniden oluşturmak yerine sonraki
`-beta.N` etiketini çıkarır
- Bakımcılar yayınları normalde mevcut `main` üzerinden oluşturulan bir `release/YYYY.M.D` dalından çıkarır;
böylece yayın doğrulaması ve düzeltmeler `main` üzerindeki yeni geliştirmeyi
engellemez
- Bir beta etiketi itilmiş veya yayımlanmışsa ve düzeltme gerekiyorsa, bakımcılar
eski beta etiketini silmek veya yeniden oluşturmak yerine sonraki `-beta.N` etiketini çıkarır
- Ayrıntılı yayın prosedürü, onaylar, kimlik bilgileri ve kurtarma notları
yalnızca bakımcılara özeldir
## Yayın operatörü kontrol listesi
Bu kontrol listesi, yayın akışının herkese açık biçimidir. Özel kimlik bilgileri,
Bu kontrol listesi yayın akışının herkese açık biçimidir. Özel kimlik bilgileri,
imzalama, noter onayı, dist-tag kurtarma ve acil geri alma ayrıntıları
yalnızca bakımcılara özel yayın çalıştırma kitabında kalır.
yalnızca bakımcılara özel yayın çalışma kitabında kalır.
1. Güncel `main`'den başlayın: en son değişiklikleri çekin, hedef commit'in gönderildiğini
doğrulayın ve güncel `main` CI durumunun dal oluşturmak için yeterince yeşil olduğunu doğrulayın.
2. Üstteki `CHANGELOG.md` bölümünü gerçek commit geçmişinden `/changelog` ile
yeniden yazın, girdileri kullanıcı odaklı tutun, commit edin, gönderin ve dal oluşturmadan
önce bir kez daha rebase/pull yapın.
1. Mevcut `main` üzerinden başlayın: en son değişiklikleri çekin, hedef commit'in itilmiş olduğunu
doğrulayın ve mevcut `main` CI durumunun dal almak için yeterince yeşil olduğunu doğrulayın.
2. Üstteki `CHANGELOG.md` bölümünü gerçek commit geçmişinden `/changelog` ile yeniden yazın,
girdileri kullanıcıya dönük tutun, bunu commit'leyin, itin ve dallanmadan önce bir kez daha rebase/pull
yapın.
3. Yayın uyumluluk kayıtlarını
`src/plugins/compat/registry.ts` ve
`src/commands/doctor/shared/deprecation-compat.ts` içinde inceleyin. Süresi dolmuş
uyumluluğu yalnızca yükseltme yolu kapsanmaya devam ettiğinde kaldırın veya neden
`src/commands/doctor/shared/deprecation-compat.ts` içinde gözden geçirin. Süresi dolmuş
uyumluluğu yalnızca yükseltme yolu kapsanmaya devam ediyorsa kaldırın veya neden
bilerek taşındığını kaydedin.
4. Güncel `main`'den `release/YYYY.M.D` oluşturun; normal yayın işini doğrudan
`main` üzerinde yapmayın.
5. Amaçlanan etiket için gereken her sürüm konumunu yükseltin, ardından
4. Mevcut `main` üzerinden `release/YYYY.M.D` oluşturun; normal yayın çalışmasını
doğrudan `main` üzerinde yapmayın.
5. Amaçlanan etiket için gerekli her sürüm konumunu yükseltin, ardından
yerel deterministik ön kontrolü çalıştırın:
`pnpm check:test-types`, `pnpm check:architecture`,
`pnpm build && pnpm ui:build` ve `pnpm release:check`.
6. `OpenClaw NPM Release` işini `preflight_only=true` ile çalıştırın. Etiket oluşmadan önce,
yalnızca doğrulama amaçlı ön kontrol için tam 40 karakterlik yayın dalı SHA'sına izin verilir.
Başarılı `preflight_run_id` değerini kaydedin.
7. Yayın dalı, etiket veya tam commit SHA'sı için `Full Release Validation` ile
tüm yayın öncesi testleri başlatın. Bu, dört büyük yayın test kutusu için tek manuel
giriş noktasıdır: Vitest, Docker, QA Lab ve Package.
8. Doğrulama başarısız olursa yayın dalında düzeltin ve düzeltmeyi kanıtlayan en küçük başarısız
dosyayı, hattı, workflow işini, paket profilini, sağlayıcıyı veya model allowlist'ini yeniden çalıştırın.
Tam kapsamlı şemsiyeyi yalnızca değişen yüzey önceki kanıtı bayatlattığında yeniden çalıştırın.
7. Yayın dalı, etiket veya tam commit SHA'sı için `Full Release Validation` ile tüm
yayın öncesi testleri başlatın. Bu, dört büyük yayın test kutusu için tek manuel giriş noktasıdır:
Vitest, Docker, QA Lab ve Package.
8. Doğrulama başarısız olursa, yayın dalında düzeltin ve düzeltmeyi kanıtlayan en küçük başarısız
dosyayı, kanalı, iş akışı işini, paket profilini, sağlayıcıyı veya model izin listesini yeniden çalıştırın.
Tam şemsiyeyi yalnızca değişen yüzey önceki kanıtı geçersiz kıldığında yeniden çalıştırın.
9. Beta için `vYYYY.M.D-beta.N` etiketini oluşturun, npm dist-tag `beta` ile yayımlayın, ardından
yayımlanan `openclaw@YYYY.M.D-beta.N` veya `openclaw@beta` paketine karşı yayımlama sonrası
paket kabulünü çalıştırın. Gönderilmiş veya yayımlanmış bir beta düzeltme gerektirirse
sonraki `-beta.N` etiketini çıkarın; eski betayı silmeyin veya yeniden yazmayın.
10. Kararlı yayın için yalnızca incelenmiş beta veya yayın adayında gerekli doğrulama kanıtı olduktan sonra devam edin.
Kararlı npm yayını, başarılı ön kontrol yapıtını `preflight_run_id` üzerinden yeniden kullanır;
kararlı macOS yayın hazırlığı ayrıca paketlenmiş `.zip`, `.dmg`, `.dSYM.zip` ve güncellenmiş
yayımlanan `openclaw@YYYY.M.D-beta.N` veya `openclaw@beta` paketi üzerinde
yayın sonrası paket kabulünü çalıştırın. İtilmiş veya yayımlanmış bir betada düzeltme gerekiyorsa,
sonraki `-beta.N` sürümünü çıkarın; eski betayı silmeyin veya yeniden yazmayın.
10. Kararlı yayın için yalnızca incelenmiş beta veya yayın adayı gerekli doğrulama kanıtına sahipse
devam edin. Kararlı npm yayını, başarılı ön kontrol yapıtını
`preflight_run_id` üzerinden yeniden kullanır; kararlı macOS yayın hazırlığı ayrıca paketlenmiş
`.zip`, `.dmg`, `.dSYM.zip` ve güncellenmiş
`appcast.xml` dosyasının `main` üzerinde olmasını gerektirir.
11. Yayımdan sonra npm yayımlama sonrası doğrulayıcısını, yayımlama sonrası kanal kanıtı gerektiğinde isteğe bağlı
bağımsız yayımlanmış-npm Telegram E2E'yi, gerektiğinde dist-tag yükseltmesini, eksiksiz eşleşen
`CHANGELOG.md` bölümünden GitHub release/prerelease notlarını ve yayın duyurusu
adımlarını çalıştırın.
11. Yayından sonra npm yayın sonrası doğrulayıcısını, yayın sonrası kanal kanıtına ihtiyacınız olduğunda
isteğe bağlı bağımsız yayımlanmış npm Telegram E2E'yi,
gerektiğinde dist-tag yükseltmesini, eksiksiz eşleşen `CHANGELOG.md` bölümünden GitHub yayın/ön yayın notlarını
ve yayın duyurusu adımlarını çalıştırın.
## Yayın ön kontrolü
- Sürüm ön kontrolünden önce `pnpm check:test-types` çalıştırın; böylece test TypeScript kapsamı daha hızlı yerel `pnpm check` geçidinin dışında kalmaya devam eder
- Sürüm ön kontrolünden önce `pnpm check:architecture` çalıştırın; böylece daha geniş içe aktarma döngüsü ve mimari sınır denetimleri daha hızlı yerel geçidin dışında yeşil kalır
- `pnpm release:check` öncesinde `pnpm build && pnpm ui:build` çalıştırın; böylece beklenen `dist/*` sürüm yapıtları ve Control UI paketi, paket doğrulama adımı için mevcut olur
- Sürüm onayından önce manuel `Full Release Validation` iş akışını çalıştırarak tüm sürüm öncesi test kutularını tek giriş noktasından başlatın. Bir dal, etiket veya tam commit SHA kabul eder, manuel `CI` başlatır ve yükleme smoke, paket kabulü, Docker sürüm yolu paketleri, canlı/E2E, OpenWebUI, QA Lab paritesi, Matrix ve Telegram hatları için `OpenClaw Release Checks` başlatır. `npm_telegram_package_spec` değerini yalnızca bir paket yayımlandıktan ve yayın sonrası Telegram E2E de çalıştırılacaksa sağlayın. Özel kanıt raporunun doğrulamanın yayımlanmış bir npm paketiyle eşleştiğini Telegram E2Eyi zorlamadan kanıtlaması gerektiğinde `evidence_package_spec` sağlayın.
- Yayın ön uçuşundan önce `pnpm check:test-types` çalıştırın; böylece test TypeScript kapsamı daha hızlı yerel `pnpm check` kapısının dışında da korunur
- Yayın ön uçuşundan önce `pnpm check:architecture` çalıştırın; böylece daha geniş import döngüsü ve mimari sınır denetimleri daha hızlı yerel kapının dışında yeşil olur
- `pnpm release:check` öncesinde `pnpm build && pnpm ui:build` çalıştırın; böylece beklenen `dist/*` yayın yapıları ve Control UI paketi paket doğrulama adımı için mevcut olur
- Yayın onayından önce manuel `Full Release Validation` iş akışını çalıştırarak tüm yayın öncesi test kutularını tek bir giriş noktasından başlatın. Bir branch, etiket veya tam commit SHA kabul eder, manuel `CI` başlatır ve kurulum smoke, paket kabulü, Docker yayın yolu paketleri, canlı/E2E, OpenWebUI, QA Lab paritesi, Matrix ve Telegram hatları için `OpenClaw Release Checks` başlatır. `npm_telegram_package_spec` değerini yalnızca bir paket yayımlandıktan ve yayımlama sonrası Telegram E2E de çalıştırılacaksa sağlayın. Özel kanıt raporunun, doğrulamanın Telegram E2E çalıştırmayı zorunlu kılmadan yayımlanmış bir npm paketiyle eşleştiğini kanıtlaması gerektiğinde `evidence_package_spec` sağlayın.
Örnek:
`gh workflow run full-release-validation.yml --ref main -f ref=release/YYYY.M.D`
- Sürüm çalışması devam ederken bir paket adayı için yan kanal kanıtı istediğinizde manuel `Package Acceptance` iş akışını çalıştırın. `openclaw@beta`, `openclaw@latest` veya tam bir sürüm versiyonu için `source=npm`; mevcut `workflow_ref` test düzeneğiyle güvenilir bir `package_ref` dalını/etiketini/SHAsını paketlemek için `source=ref`; zorunlu SHA-256 içeren bir HTTPS tarball için `source=url`; ya da başka bir GitHub Actions çalıştırması tarafından yüklenen tarball için `source=artifact` kullanın. İş akışı adayı `package-under-test` olarak çözer, Docker E2E sürüm zamanlayıcısını bu tarballa karşı yeniden kullanır ve aynı tarballa karşı `telegram_mode=mock-openai` veya `telegram_mode=live-frontier` ile Telegram QA çalıştırabilir.
Örnek: `gh workflow run package-acceptance.yml --ref main -f workflow_ref=main -f source=npm -f package_spec=openclaw@beta -f suite_profile=product -f telegram_mode=mock-openai`
- Yayın çalışması devam ederken bir paket adayı için yan kanal kanıtı istediğinizde manuel `Package Acceptance` iş akışını çalıştırın. `openclaw@beta`, `openclaw@latest` veya tam bir yayın sürümü için `source=npm`; geçerli `workflow_ref` test düzeneğiyle güvenilir bir `package_ref` branch/etiket/SHA paketlemek için `source=ref`; zorunlu SHA-256 içeren bir HTTPS tarball için `source=url`; ya da başka bir GitHub Actions çalıştırması tarafından yüklenen bir tarball için `source=artifact` kullanın. İş akışı adayı `package-under-test` olarak çözümler, Docker E2E yayın zamanlayıcısını bu tarball üzerinde yeniden kullanır ve aynı tarball üzerinde `telegram_mode=mock-openai` veya `telegram_mode=live-frontier` ile Telegram QA çalıştırabilir. Seçilen Docker hatları `published-upgrade-survivor` içerdiğinde paket yapısı adaydır ve `published_upgrade_survivor_baseline` yayımlanmış tabanı seçer.
Örnek: `gh workflow run package-acceptance.yml --ref main -f workflow_ref=main -f source=npm -f package_spec=openclaw@beta -f suite_profile=product -f published_upgrade_survivor_baseline=openclaw@2026.4.26 -f telegram_mode=mock-openai`
Yaygın profiller:
- `smoke`: yükleme/kanal/ajan, Gateway ağı ve yapılandırma yeniden yükleme hatları
- `package`: OpenWebUI veya canlı ClawHub olmadan yapıt yerel paket/güncelleme/Plugin hatları
- `product`: paket profiline ek olarak MCP kanalları, cron/alt ajan temizliği, OpenAI web araması ve OpenWebUI
- `full`: OpenWebUI ile Docker sürüm yolu parçaları
- `smoke`: kurulum/kanal/ajan, Gateway ağı ve yapılandırma yeniden yükleme hatları
- `package`: OpenWebUI veya canlı ClawHub olmadan yapıya özgü paket/güncelleme/Plugin hatları
- `product`: paket profiline ek olarak MCP kanalları, cron/alt ajan temizliği,
OpenAI web araması ve OpenWebUI
- `full`: OpenWebUI ile Docker yayın yolu parçaları
- `custom`: odaklı yeniden çalıştırma için tam `docker_lanes` seçimi
- Sürüm adayı için yalnızca tam normal CI kapsamına ihtiyacınız olduğunda manuel `CI` iş akışını doğrudan çalıştırın. Manuel CI başlatmaları değişiklik kapsamlandırmasını atlar ve Linux Node parçalarını, paketlenmiş Plugin parçalarını, kanal sözleşmelerini, Node 22 uyumluluğunu, `check`, `check-additional`, derleme smoke, doküman denetimlerini, Python skills, Windows, macOS, Android ve Control UI i18n hatlarını zorlar.
- Yayın adayı için yalnızca tam normal CI kapsamına ihtiyacınız olduğunda manuel `CI` iş akışını doğrudan çalıştırın. Manuel CI başlatmaları değişiklik kapsamını atlar ve Linux Node parçalarını, paketlenmiş Plugin parçalarını, kanal sözleşmelerini, Node 22 uyumluluğunu, `check`, `check-additional`, build smoke, dokümantasyon denetimlerini, Python skills, Windows, macOS, Android ve Control UI i18n hatlarını zorlar.
Örnek: `gh workflow run ci.yml --ref release/YYYY.M.D`
- Sürüm telemetrisini doğrularken `pnpm qa:otel:smoke` çalıştırın. QA-labi yerel bir OTLP/HTTP alıcısı üzerinden çalıştırır ve dışa aktarılan iz span adlarını, sınırlı öznitelikleri ve içerik/tanımlayıcı redaksiyonunu Opik, Langfuse veya başka bir harici toplayıcı gerektirmeden doğrular.
- Her etiketli sürümden önce `pnpm release:check` çalıştırın
- Sürüm denetimleri artık ayrı bir manuel iş akışında çalışır:
- Yayın telemetrisini doğrularken `pnpm qa:otel:smoke` çalıştırın. QA-labi yerel bir OTLP/HTTP alıcısı üzerinden çalıştırır ve dışa aktarılan trace span adlarını, sınırlı öznitelikleri ve içerik/tanımlayıcı redaksiyonunu Opik, Langfuse veya başka bir dış toplayıcı gerektirmeden doğrular.
- Her etiketli yayından önce `pnpm release:check` çalıştırın
- Yayın denetimleri artık ayrı bir manuel iş akışında çalışır:
`OpenClaw Release Checks`
- `OpenClaw Release Checks`, sürüm onayından önce QA Lab mock parite geçidini, hızlı canlı Matrix profilini ve Telegram QA hattını da çalıştırır. Canlı hatlar `qa-live-shared` ortamını kullanır; Telegram ayrıca Convex CI kimlik bilgisi kiralarını kullanır. Tam Matrix taşıma, medya ve E2EE envanterini paralel istediğinizde manuel `QA-Lab - All Lanes` iş akışını `matrix_profile=all` ve `matrix_shards=true` ile çalıştırın.
- Platformlar arası yükleme ve yükseltme çalışma zamanı doğrulaması, yeniden kullanılabilir iş akışını doğrudan çağıran herkese açık `OpenClaw Release Checks` ve `Full Release Validation` parçalarının bir parçasıdır
- `OpenClaw Release Checks`, yayın onayından önce QA Lab mock parite kapısını, hızlı canlı Matrix profilini ve Telegram QA hattını da çalıştırır. Canlı hatlar `qa-live-shared` ortamını kullanır; Telegram ayrıca Convex CI kimlik bilgisi kiralamalarını kullanır. Tam Matrix taşıma, medya ve E2EE envanterini paralel istediğinizde manuel `QA-Lab - All Lanes` iş akışını `matrix_profile=all` ve `matrix_shards=true` ile çalıştırın.
- Çapraz işletim sistemi kurulum ve yükseltme çalışma zamanı doğrulaması, yeniden kullanılabilir iş akışını doğrudan çağıran herkese açık `OpenClaw Release Checks` ve `Full Release Validation` parçalarının bir parçasıdır:
`.github/workflows/openclaw-cross-os-release-checks-reusable.yml`
- Bu ayrım kasıtlıdır: gerçek npm sürüm yolunu kısa, deterministik ve yapıt odaklı tutarken daha yavaş canlı denetimler, yayımlamayı durdurmamak veya engellememek için kendi hatlarında kalır
- Gizli bilgi içeren sürüm denetimleri `Full Release Validation` üzerinden veya `main`/sürüm iş akışı refinden başlatılmalıdır; böylece iş akışı mantığı ve gizli bilgiler denetim altında kalır
- `OpenClaw Release Checks`, çözümlenen commit bir OpenClaw dalından veya sürüm etiketinden erişilebilir olduğu sürece dal, etiket veya tam commit SHA kabul eder
- `OpenClaw NPM Release` yalnızca doğrulama ön kontrolü, itilmiş bir etiket gerektirmeden mevcut tam 40 karakterli iş akışı dalı commit SHAsını da kabul eder
- Bu SHA yolu yalnızca doğrulama amaçlıdır ve gerçek bir yayıma yükseltilemez
- SHA modunda iş akışı yalnızca paket meta verisi denetimi için `v<package.json version>` üretir; gerçek yayımlama hâlâ gerçek bir sürüm etiketi gerektirir
- Her iki iş akışı da gerçek yayımlama ve yükseltme yolunu GitHub tarafından barındırılan çalıştırıcılarda tutarken, değiştirme yapmayan doğrulama yolu daha büyük Blacksmith Linux çalıştırıcılarını kullanabilir
- Bu iş akışı
- Bu ayrım kasıtlıdır: gerçek npm yayın yolunu kısa, deterministik ve yapı odaklı tutarken daha yavaş canlı denetimler kendi hattında kalır; böylece yayımlamayı geciktirmez veya engellemezler
- Gizli içeren yayın denetimleri `Full Release Validation` üzerinden ya da `main`/yayın iş akışı refinden başlatılmalıdır; böylece iş akışı mantığı ve gizliler kontrollü kalır
- `OpenClaw Release Checks`, çözümlenen commit bir OpenClaw branchinden veya yayın etiketinden erişilebilir olduğu sürece branch, etiket veya tam commit SHA kabul eder
- `OpenClaw NPM Release` yalnızca doğrulama ön uçuşu, itilmiş bir etiket gerektirmeden geçerli tam 40 karakterli iş akışı branch commit SHAsını da kabul eder
- Bu SHA yolu yalnızca doğrulama içindir ve gerçek yayımlamaya yükseltilemez
- SHA modunda iş akışı yalnızca paket meta veri denetimi için `v<package.json version>` üretir; gerçek yayımlama yine de gerçek bir yayın etiketi gerektirir
- Her iki iş akışı da gerçek yayımlama ve yükseltme yolunu GitHub-hosted runnerlarda tutar; değişiklik yapmayan doğrulama yolu ise daha büyük Blacksmith Linux runnerları kullanabilir
- Bu iş akışı hem `OPENAI_API_KEY` hem de `ANTHROPIC_API_KEY` iş akışı gizlilerini kullanarak
`OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cache`
komutunu hem `OPENAI_API_KEY` hem de `ANTHROPIC_API_KEY` iş akışı gizli bilgilerini kullanarak çalıştırır
- npm sürüm ön kontrolü artık ayrı sürüm denetimleri hattını beklemez
çalıştırır
- npm yayın ön uçuşu artık ayrı yayın denetimleri hattını beklemez
- Onaydan önce `RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts`
(veya eşleşen beta/düzeltme etiketi) çalıştırın
- npm yayımlandıktan sonra, yayımlanmış registry yükleme yolunu temiz bir geçici prefix içinde doğrulamak için
- npm yayımlamasından sonra, yayımlanmış registry kurulum yolunu taze bir geçici prefix içinde doğrulamak için
`node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.D`
(veya eşleşen beta/düzeltme versiyonu) çalıştırın
- Bir beta yayımlamadan sonra, paylaşılan kiralanmış Telegram kimlik bilgisi havuzunu kullanarak yayımlanmış npm paketine karşı yüklenmiş paket onboardingini, Telegram kurulumunu ve gerçek Telegram E2Eyi doğrulamak için `OPENCLAW_NPM_TELEGRAM_PACKAGE_SPEC=openclaw@YYYY.M.D-beta.N OPENCLAW_NPM_TELEGRAM_CREDENTIAL_SOURCE=convex OPENCLAW_NPM_TELEGRAM_CREDENTIAL_ROLE=ci pnpm test:docker:npm-telegram-live` çalıştırın. Yerel bakımcı tek seferlik çalıştırmaları Convex değişkenlerini atlayabilir ve üç `OPENCLAW_QA_TELEGRAM_*` ortam kimlik bilgisini doğrudan geçebilir.
- Bakımcılar aynı yayın sonrası denetimi GitHub Actions üzerinden manuel `NPM Telegram Beta E2E` iş akışıyla çalıştırabilir. Bu bilinçli olarak yalnızca manueldir ve her birleştirmede çalışmaz.
- Bakımcı sürüm otomasyonu artık önce ön kontrol, sonra yükseltme kullanır:
- gerçek npm yayımlama başarılı bir npm `preflight_run_id` değerini geçmelidir
- gerçek npm yayımlama, başarılı ön kontrol çalıştırmasıyla aynı `main` veya `release/YYYY.M.D` dalından başlatılmalıdır
- kararlı npm sürümleri varsayılan olarak `beta` kullanır
- kararlı npm yayımlama, iş akışı girdisiyle açıkça `latest` hedefleyebilir
(veya eşleşen beta/düzeltme sürümü) çalıştırın
- Beta yayımlamasından sonra, yayımlanmış npm paketine karşı paylaşılan kiralık Telegram kimlik bilgisi havuzunu kullanarak kurulu paket onboardingi, Telegram kurulumunu ve gerçek Telegram E2Eyi doğrulamak için `OPENCLAW_NPM_TELEGRAM_PACKAGE_SPEC=openclaw@YYYY.M.D-beta.N OPENCLAW_NPM_TELEGRAM_CREDENTIAL_SOURCE=convex OPENCLAW_NPM_TELEGRAM_CREDENTIAL_ROLE=ci pnpm test:docker:npm-telegram-live` çalıştırın. Yerel bakımcı tek seferlik çalıştırmaları Convex değişkenlerini atlayabilir ve üç `OPENCLAW_QA_TELEGRAM_*` env kimlik bilgisini doğrudan geçebilir.
- Bakımcılar aynı yayımlama sonrası denetimi GitHub Actions üzerinden manuel `NPM Telegram Beta E2E` iş akışıyla çalıştırabilir. Bu bilerek yalnızca manueldir ve her mergede çalışmaz.
- Bakımcı yayın otomasyonu artık ön uçuş-sonra-yükselt modelini kullanır:
- gerçek npm yayımlaması başarılı bir npm `preflight_run_id` geçmelidir
- gerçek npm yayımlaması, başarılı ön uçuş çalıştırmasıyla aynı `main` veya `release/YYYY.M.D` branchinden başlatılmalıdır
- kararlı npm yayınları varsayılan olarak `beta` kullanır
- kararlı npm yayımlaması iş akışı girdisiyle açıkça `latest` hedefleyebilir
- token tabanlı npm dist-tag mutasyonu artık güvenlik için
`openclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.yml`
içinde yaşar, çünkü `npm dist-tag add` hâlâ `NPM_TOKEN` gerektirirken herkese açık repo yalnızca OIDC yayımlamayı korur
- herkese açık `macOS Release` yalnızca doğrulamadır
- gerçek özel mac yayımlama başarılı özel mac `preflight_run_id` ve `validate_run_id` değerlerini geçmelidir
- gerçek yayımlama yolları, hazırlanmış yapıtları yeniden derlemek yerine yükseltir
- `YYYY.M.D-N` gibi kararlı düzeltme sürümleri için yayın sonrası doğrulayıcı, aynı geçici prefix yükseltme yolunu `YYYY.M.D` versiyonundan `YYYY.M.D-N` versiyonuna da denetler; böylece sürüm düzeltmeleri eski global yüklemeleri sessizce temel kararlı yükte bırakamaz
- npm sürüm ön kontrolü, tarball hem `dist/control-ui/index.html` hem de boş olmayan `dist/control-ui/assets/` yükünü içermedikçe kapalı şekilde başarısız olur; böylece bir daha boş tarayıcı panosu göndermeyiz
- Yayın sonrası doğrulama, yayımlanmış registry yüklemesinin kök `dist/*` düzeni altında boş olmayan paketlenmiş Plugin çalışma zamanı bağımlılıkları içerdiğini de denetler. Eksik veya boş paketlenmiş Plugin bağımlılık yükleriyle gelen bir sürüm, yayın sonrası doğrulayıcıda başarısız olur ve `latest` değerine yükseltilemez.
- `pnpm test:install:smoke`, aday güncelleme tarballı üzerinde npm pack `unpackedSize` bütçesini de zorunlu kılar; böylece yükleyici e2e, yanlışlıkla oluşan paket şişmesini sürüm yayımlama yolundan önce yakalar
- Sürüm çalışması CI planlamasına, Plugin zamanlama manifestlerine veya Plugin test matrislerine dokunduysa, onaydan önce `.github/workflows/plugin-prerelease.yml` içindeki planlayıcı sahipli `plugin-prerelease-extension-shard` matris çıktılarını yeniden oluşturup gözden geçirin; böylece sürüm notları bayat bir CI düzenini tarif etmez
- Kararlı macOS sürüm hazırlığı güncelleyici yüzeylerini de içerir:
- GitHub sürümü paketlenmiş `.zip`, `.dmg` ve `.dSYM.zip` ile sonuçlanmalıdır
- `main` üzerindeki `appcast.xml`, yayımlamadan sonra yeni kararlı zipe işaret etmelidir
- paketlenmiş uygulama hata ayıklama olmayan bir bundle id, boş olmayan bir Sparkle feed URLsi ve o sürüm versiyonu için kanonik Sparkle derleme tabanına eşit veya üzerinde bir `CFBundleVersion` korumalıdır
içinde yaşar; çünkü herkese açık repo OIDC-only yayımlamayı korurken `npm dist-tag add` hâlâ `NPM_TOKEN` gerektirir
- herkese açık `macOS Release` yalnızca doğrulamadır; bir etiket yalnızca yayın branchinde bulunuyor ancak iş akışı `main` üzerinden başlatılıyorsa `public_release_branch=release/YYYY.M.D` ayarlayın
- gerçek özel mac yayımlaması başarılı özel mac `preflight_run_id` ve `validate_run_id` geçmelidir
- gerçek yayımlama yolları, yapıları yeniden inşa etmek yerine hazırlanmış yapıları yükseltir
- `YYYY.M.D-N` gibi kararlı düzeltme yayınları için yayımlama sonrası doğrulayıcı aynı geçici prefix yükseltme yolunu `YYYY.M.D` sürümünden `YYYY.M.D-N` sürümüne de denetler; böylece yayın düzeltmeleri eski global kurulumları sessizce temel kararlı yükte bırakamaz
- Tarball hem `dist/control-ui/index.html` hem de boş olmayan bir `dist/control-ui/assets/` yükü içermedikçe npm yayın ön uçuşu kapalı başarısız olur; böylece yeniden boş bir tarayıcı panosu göndermeyiz
- Yayımlama sonrası doğrulama, yayımlanmış registry kurulumunun kök `dist/*` düzeni altında boş olmayan paketlenmiş Plugin çalışma zamanı bağımlılıkları içerdiğini de denetler. Eksik veya boş paketlenmiş Plugin bağımlılık yükleriyle gönderilen bir yayın, postpublish doğrulayıcısında başarısız olur ve `latest` konumuna yükseltilemez.
- `pnpm test:install:smoke`, aday güncelleme tarballında npm pack `unpackedSize` bütçesini de zorunlu kılar; böylece installer e2e, yayın yayımlama yolundan önce yanlışlıkla oluşan paket şişmesini yakalar
- Yayın çalışması CI planlamasına, Plugin zamanlama manifestlerine veya Plugin test matrislerine dokunduysa, onaydan önce `.github/workflows/plugin-prerelease.yml` içindeki planlayıcı sahipli `plugin-prerelease-extension-shard` matris çıktılarını yeniden üretin ve gözden geçirin; böylece yayın notları eski bir CI düzenini tarif etmez
- Kararlı macOS yayın hazırlığı güncelleyici yüzeylerini de içerir:
- GitHub yayını paketlenmiş `.zip`, `.dmg` ve `.dSYM.zip` ile sonuçlanmalıdır
- `main` üzerindeki `appcast.xml` yayımlamadan sonra yeni kararlı zipi göstermelidir
- paketlenmiş uygulama debug olmayan bir bundle id, boş olmayan bir Sparkle feed URLsi ve o yayın sürümü için kanonik Sparkle build tabanına eşit veya daha yüksek bir `CFBundleVersion` korumalıdır
## Sürüm test kutuları
## Yayın test kutuları
`Full Release Validation`, operatörlerin tüm sürüm öncesi testleri tek giriş noktasından başlatma yoludur. Bunu güvenilir `main` iş akışı refinden çalıştırın ve sürüm dalını, etiketini veya tam commit SHAsını `ref` olarak geçin:
`Full Release Validation`, operatörlerin tüm yayın öncesi testleri tek bir giriş noktasından başlatma yoludur. Güvenilir `main` iş akışı refinden çalıştırın ve yayın branchini, etiketini veya tam commit SHAsını `ref` olarak geçin:
```bash
gh workflow run full-release-validation.yml \
@ -167,23 +168,23 @@ gh workflow run full-release-validation.yml \
-f ref=release/YYYY.M.D \
-f provider=openai \
-f mode=both \
-f release_profile=full \
-f release_profile=stable \
-f evidence_package_spec=openclaw@YYYY.M.D-beta.N
```
İş akışı hedef refi çözer, `target_ref=<release-ref>` ile manuel `CI` başlatır, `OpenClaw Release Checks` başlatır ve `npm_telegram_package_spec` ayarlandığında isteğe bağlı olarak bağımsız yayın sonrası Telegram E2E başlatır. `OpenClaw Release Checks` daha sonra yükleme smoke, platformlar arası sürüm denetimleri, canlı/E2E Docker sürüm yolu kapsamı, Telegram paket QA ile Package Acceptance, QA Lab paritesi, canlı Matrix ve canlı Telegram hatlarına dallanır. Tam bir çalıştırma yalnızca `Full Release Validation` özeti `normal_ci` ve `release_checks` öğelerini başarılı gösterdiğinde ve isteğe bağlı herhangi bir `npm_telegram` alt çalıştırması başarılı ya da bilinçli olarak atlanmış olduğunda kabul edilebilir. Son doğrulayıcı özeti, her alt çalıştırma için en yavaş iş tablolarını içerir; böylece sürüm yöneticisi günlükleri indirmeden mevcut kritik yolu görebilir.
Alt iş akışları, hedef `ref` daha eski bir sürüm dalını veya etiketi işaret etse bile `Full Release Validation` çalıştıran güvenilir reften, normalde `--ref main` üzerinden başlatılır. Ayrı bir Full Release Validation workflow-ref girdisi yoktur; güvenilir test düzeneğini iş akışı çalıştırma refini seçerek seçin.
İş akışı hedef refi çözümler, `target_ref=<release-ref>` ile manuel `CI` başlatır, `OpenClaw Release Checks` başlatır ve `npm_telegram_package_spec` ayarlandığında isteğe bağlı olarak bağımsız yayımlama sonrası Telegram E2E başlatır. Ardından `OpenClaw Release Checks` kurulum smoke, çapraz işletim sistemi yayın denetimleri, canlı/E2E Docker yayın yolu kapsamı, Telegram paket QA ile Package Acceptance, QA Lab paritesi, canlı Matrix ve canlı Telegram hatlarına yayılır. Tam bir çalıştırma yalnızca `Full Release Validation` özetinde `normal_ci` ve `release_checks` başarılı görünüyorsa ve isteğe bağlı `npm_telegram` alt çalıştırması başarılı ya da bilerek atlanmışsa kabul edilebilir. Son doğrulayıcı özeti, her alt çalıştırma için en yavaş iş tablolarını içerir; böylece yayın yöneticisi günlükleri indirmeden geçerli kritik yolu görebilir.
Tam aşama matrisi, kesin iş akışı job adları, kararlı ve tam profil farkları, yapılar ve odaklı yeniden çalıştırma tutamaçları için [Tam yayın doğrulaması](/tr/reference/full-release-validation) bölümüne bakın.
Alt iş akışları, hedef `ref` daha eski bir yayın branchine veya etikete işaret etse bile `Full Release Validation` çalıştıran güvenilir reften, normalde `--ref main` üzerinden başlatılır. Ayrı bir Full Release Validation workflow-ref girdisi yoktur; güvenilir test düzeneğini iş akışı çalıştırma refini seçerek belirleyin.
Canlı/sağlayıcı genişliğini seçmek için `release_profile` kullanın:
Canlı/provider genişliğini seçmek için `release_profile` kullanın:
- `minimum`: en hızlı sürüm açısından kritik OpenAI/çekirdek canlı ve Docker yolu
- `stable`: sürüm onayı için minimuma ek olarak kararlı sağlayıcı/backend kapsamı
- `full`: kararlıya ek olarak geniş danışma sağlayıcısı/medya kapsamı
- `minimum`: en hızlı yayın açısından kritik OpenAI/core canlı ve Docker yolu
- `stable`: minimuma ek olarak yayın onayı için kararlı provider/backend kapsamı
- `full`: kararlı profile ek olarak geniş advisory provider/medya kapsamı
`OpenClaw Release Checks`, hedef refi bir kez `release-package-under-test` olarak çözmek için güvenilir iş akışı refini kullanır ve bu yapıtı hem sürüm yolu Docker denetimlerinde hem de Package Acceptance içinde yeniden kullanır. Bu, paketle yüzleşen tüm kutuları aynı baytlar üzerinde tutar ve tekrarlı paket derlemelerini önler.
Platformlar arası OpenAI yükleme smoke, repo/org değişkeni ayarlandığında `OPENCLAW_CROSS_OS_OPENAI_MODEL` kullanır, aksi halde `openai/gpt-5.4-mini` kullanır; çünkü bu hat en yavaş varsayılan modeli kıyaslamak yerine paket yüklemeyi, onboardingi, Gateway başlatmayı ve bir canlı ajan turunu kanıtlar. Daha geniş canlı sağlayıcı matrisi, modele özgü kapsam için yer olmaya devam eder.
`OpenClaw Release Checks`, hedef ref'i bir kez `release-package-under-test` olarak çözmek ve bu artifact'i hem release-path Docker kontrollerinde hem de Package Acceptance'ta yeniden kullanmak için güvenilir workflow ref'ini kullanır. Bu, paketle ilgili tüm kutuları aynı baytlar üzerinde tutar ve tekrarlanan paket derlemelerini önler. Cross-OS OpenAI kurulum duman testi, repo/org değişkeni ayarlandığında `OPENCLAW_CROSS_OS_OPENAI_MODEL` değerini, aksi halde `openai/gpt-5.4-mini` değerini kullanır; çünkü bu hat en yavaş varsayılan modeli kıyaslamak yerine paket kurulumunu, onboarding'i, gateway başlangıcını ve bir canlı ajan turunu kanıtlar. Daha geniş canlı sağlayıcı matrisi, modele özgü kapsamın yeri olmaya devam eder.
Sürüm aşamasına bağlı olarak bu varyantları kullanın:
Release aşamasına bağlı olarak bu varyantları kullanın:
```bash
# Validate an unpublished release candidate branch.
@ -212,38 +213,22 @@ gh workflow run full-release-validation.yml \
-f npm_telegram_provider_mode=mock-openai
```
Odaklanmış bir düzeltmeden sonraki ilk yeniden çalıştırma olarak tam şemsiyeyi kullanmayın. Bir kutu
başarısız olursa, bir sonraki kanıt için başarısız alt iş akışını, işi, Docker hattını, paket profilini, model
sağlayıcısını veya QA hattını kullanın. Tam şemsiyeyi yalnızca düzeltme paylaşılan sürüm orkestrasyonunu
değiştirdiyse veya önceki tüm kutu kanıtlarını bayat hale getirdiyse yeniden çalıştırın. Şemsiyenin son doğrulayıcısı kaydedilen alt iş akışı çalıştırma
kimliklerini yeniden kontrol eder; bu nedenle bir alt iş akışı başarıyla yeniden çalıştırıldıktan sonra yalnızca başarısız
`Verify full validation` üst işini yeniden çalıştırın.
Odaklı bir düzeltmeden sonraki ilk yeniden çalıştırma olarak tam şemsiyeyi kullanmayın. Bir kutu başarısız olursa, sonraki kanıt için başarısız alt workflow'u, işi, Docker hattını, paket profilini, model sağlayıcısını veya QA hattını kullanın. Tam şemsiyeyi yeniden yalnızca düzeltme paylaşılan release orkestrasyonunu değiştirdiyse veya önceki tüm-kutu kanıtını bayatlattıysa çalıştırın. Şemsiyenin son doğrulayıcısı kaydedilen alt workflow çalıştırma kimliklerini yeniden kontrol eder; bu yüzden bir alt workflow başarıyla yeniden çalıştırıldıktan sonra yalnızca başarısız `Verify full validation` üst işini yeniden çalıştırın.
Sınırlı kurtarma için şemsiyeye `rerun_group` geçin. `all` gerçek
sürüm adayı çalıştırmasıdır, `ci` yalnızca normal CI altını çalıştırır, `plugin-prerelease`
yalnızca sürüme özel Plugin altını çalıştırır, `release-checks` her sürüm
kutusunu çalıştırır ve daha dar sürüm grupları bağımsız paket Telegram hattı sağlandığında
`install-smoke`, `cross-os`,
`live-e2e`, `package`, `qa`, `qa-parity`, `qa-live` ve `npm-telegram` olur.
Sınırlı kurtarma için şemsiyeye `rerun_group` geçirin. `all` gerçek release-candidate çalıştırmasıdır, `ci` yalnızca normal CI altını çalıştırır, `plugin-prerelease` yalnızca release'e özel Plugin altını çalıştırır, `release-checks` her release kutusunu çalıştırır ve daha dar release grupları, bağımsız paket Telegram hattı sağlandığında `install-smoke`, `cross-os`, `live-e2e`, `package`, `qa`, `qa-parity`, `qa-live` ve `npm-telegram` olur.
### Vitest
Vitest kutusu manuel `CI` alt iş akışıdır. Manuel CI bilinçli olarak
değişiklik kapsamını atlar ve sürüm adayı için normal test grafiğini zorlar:
Linux Node shard'ları, paketlenmiş Plugin shard'ları, kanal sözleşmeleri, Node 22
uyumluluğu, `check`, `check-additional`, derleme smoke testi, doküman kontrolleri, Python
Skills, Windows, macOS, Android ve Control UI i18n.
Vitest kutusu manuel `CI` alt workflow'udur. Manuel CI, changed scoping'i bilerek atlar ve release candidate için normal test grafiğini zorlar: Linux Node shard'ları, paketlenmiş Plugin shard'ları, kanal sözleşmeleri, Node 22 uyumluluğu, `check`, `check-additional`, build duman testi, doküman kontrolleri, Python Skills, Windows, macOS, Android ve Control UI i18n.
Bu kutuyu "kaynak ağacı tam normal test paketinden geçti mi?" sorusunu yanıtlamak için kullanın.
Bu, sürüm yolu ürün doğrulamasıyla aynı değildir. Saklanacak kanıtlar:
Bu kutuyu "kaynak ağacı tam normal test paketinden geçti mi?" sorusunu yanıtlamak için kullanın. Release-path ürün doğrulamasıyla aynı şey değildir. Saklanacak kanıtlar:
- Gönderilen `CI` çalıştırma URL'sini gösteren `Full Release Validation` özeti
- Kesin hedef SHA üzerinde yeşil `CI` çalıştırması
- Tam hedef SHA üzerinde yeşil `CI` çalıştırması
- Regresyonları araştırırken CI işlerindeki başarısız veya yavaş shard adları
- Bir çalıştırmanın performans analizi gerektirdiği durumlarda `.artifacts/vitest-shard-timings.json` gibi Vitest zamanlama yapıtları
- Bir çalıştırmanın performans analizi gerektiğinde `.artifacts/vitest-shard-timings.json` gibi Vitest zamanlama artifact'leri
Manuel CI'ı doğrudan yalnızca sürümün belirleyici normal CI'a ihtiyacı olduğunda, ancak
Docker, QA Lab, canlı, cross-OS veya paket kutularına ihtiyacı olmadığında çalıştırın:
Manuel CI'ı doğrudan yalnızca release deterministik normal CI gerektiriyor ama Docker, QA Lab, canlı, cross-OS veya paket kutularını gerektirmiyorsa çalıştırın:
```bash
gh workflow run ci.yml --ref main -f target_ref=release/YYYY.M.D
@ -251,19 +236,14 @@ gh workflow run ci.yml --ref main -f target_ref=release/YYYY.M.D
### Docker
Docker kutusu `OpenClaw Release Checks` içinde
`openclaw-live-and-e2e-checks-reusable.yml` aracılığıyla ve sürüm modu
`install-smoke` iş akışında bulunur. Sürüm adayını yalnızca kaynak düzeyi testler yerine paketlenmiş
Docker ortamları üzerinden doğrular.
Docker kutusu, `openclaw-live-and-e2e-checks-reusable.yml` üzerinden `OpenClaw Release Checks` içinde ve release modu `install-smoke` workflow'unda yaşar. Release candidate'ı yalnızca kaynak seviyesindeki testler yerine paketlenmiş Docker ortamları üzerinden doğrular.
Sürüm Docker kapsamı şunları içerir:
Release Docker kapsamı şunları içerir:
- yavaş Bun global kurulum smoke testi etkinleştirilmiş tam kurulum smoke testi
- hedef SHA'ya göre kök Dockerfile smoke imajı hazırlama/yeniden kullanımı; QR,
kök/gateway ve installer/Bun smoke işleri ayrı install-smoke
shard'ları olarak çalışır
- yavaş Bun global kurulum duman testi etkinleştirilmiş tam kurulum duman testi
- QR, root/gateway ve installer/Bun duman işlerinin ayrı install-smoke shard'ları olarak çalıştığı, hedef SHA'ya göre kök Dockerfile duman imajı hazırlama/yeniden kullanma
- depo E2E hatları
- sürüm yolu Docker parçaları: `core`, `package-update-openai`,
- release-path Docker parçaları: `core`, `package-update-openai`,
`package-update-anthropic`, `package-update-core`, `plugins-runtime-plugins`,
`plugins-runtime-services`,
`plugins-runtime-install-a`, `plugins-runtime-install-b`,
@ -274,76 +254,43 @@ Sürüm Docker kapsamı şunları içerir:
`bundled-channels-update-discord`, `bundled-channels-update-b` ve
`bundled-channels-contracts`
- istendiğinde `plugins-runtime-services` parçası içinde OpenWebUI kapsamı
- paketlenmiş kanal bağımlılığı hatlarının tek büyük bir paketlenmiş kanal işi yerine channel-smoke, update-target
ve setup/runtime sözleşme parçalarına bölünmesi
- paketlenmiş Plugin kurulum/kaldırma hatlarının
- büyük tek bir paketlenmiş kanal işi yerine kanal-smoke, update-target ve setup/runtime sözleşme parçaları arasında bölünmüş paketlenmiş-kanal bağımlılık hatları
- bölünmüş paketlenmiş Plugin kurulum/kaldırma hatları
`bundled-plugin-install-uninstall-0` ile
`bundled-plugin-install-uninstall-23` arasında bölünmesi
- sürüm kontrolleri canlı paketleri içerdiğinde canlı/E2E sağlayıcı paketleri ve Docker canlı model kapsamı
`bundled-plugin-install-uninstall-23` arası
- release kontrolleri canlı paketleri içerdiğinde canlı/E2E sağlayıcı paketleri ve Docker canlı model kapsamı
Yeniden çalıştırmadan önce Docker yapıtlarını kullanın. Sürüm yolu zamanlayıcısı
hat günlükleri, `summary.json`, `failures.json`,
aşama zamanlamaları, zamanlayıcı planı JSON'u ve yeniden çalıştırma komutlarıyla `.artifacts/docker-tests/` yükler. Odaklanmış kurtarma için
tüm sürüm parçalarını yeniden çalıştırmak yerine yeniden kullanılabilir canlı/E2E iş akışında
`docker_lanes=<lane[,lane]>` kullanın. Oluşturulan yeniden çalıştırma komutları, mevcut olduğunda önceki
`package_artifact_run_id` ve hazırlanmış Docker imajı girdilerini içerir; böylece
başarısız bir hat aynı tarball ve GHCR imajlarını yeniden kullanabilir.
Yeniden çalıştırmadan önce Docker artifact'lerini kullanın. Release-path zamanlayıcısı, hat logları, `summary.json`, `failures.json`, aşama zamanlamaları, zamanlayıcı plan JSON'u ve yeniden çalıştırma komutlarıyla `.artifacts/docker-tests/` yükler. Odaklı kurtarma için tüm release parçalarını yeniden çalıştırmak yerine yeniden kullanılabilir canlı/E2E workflow'unda `docker_lanes=<lane[,lane]>` kullanın. Üretilen yeniden çalıştırma komutları, mevcut olduğunda önceki `package_artifact_run_id` ve hazırlanmış Docker imajı girdilerini içerir; böylece başarısız bir hat aynı tarball'u ve GHCR imajlarını yeniden kullanabilir.
### QA Lab
QA Lab kutusu da `OpenClaw Release Checks` parçasıdır. Bu, Vitest ve Docker
paket mekaniklerinden ayrı, ajan davranışı ve kanal düzeyi sürüm kapısıdır.
QA Lab kutusu da `OpenClaw Release Checks` kapsamındadır. Vitest ve Docker paket mekaniklerinden ayrı olarak ajan davranışı ve kanal seviyesi release kapısıdır.
Sürüm QA Lab kapsamı şunları içerir:
Release QA Lab kapsamı şunları içerir:
- ajan parity paketi kullanarak OpenAI aday hattını Opus 4.6
taban çizgisiyle karşılaştıran mock parity kapısı
- ajan parity paketi kullanılarak OpenAI candidate hattını Opus 4.6 baseline'ı ile karşılaştıran mock parity kapısı
- `qa-live-shared` ortamını kullanan hızlı canlı Matrix QA profili
- Convex CI kimlik bilgisi kiralamalarını kullanan canlı Telegram QA hattı
- sürüm telemetrisinin açık yerel kanıt gerektirdiği durumlarda `pnpm qa:otel:smoke`
- Convex CI credential lease'lerini kullanan canlı Telegram QA hattı
- release telemetry açık yerel kanıt gerektirdiğinde `pnpm qa:otel:smoke`
Bu kutuyu "sürüm QA senaryolarında ve canlı kanal akışlarında doğru davranıyor mu?"
sorusunu yanıtlamak için kullanın. Sürümü onaylarken parity, Matrix ve Telegram
hatları için yapıt URL'lerini saklayın. Tam Matrix kapsamı, varsayılan sürüm açısından kritik hat yerine
manuel shard'lı QA-Lab çalıştırması olarak kullanılabilir kalır.
Bu kutuyu "release, QA senaryolarında ve canlı kanal akışlarında doğru davranıyor mu?" sorusunu yanıtlamak için kullanın. Release onaylanırken parity, Matrix ve Telegram hatları için artifact URL'lerini saklayın. Tam Matrix kapsamı, varsayılan release açısından kritik hat yerine manuel shard'lı QA-Lab çalıştırması olarak kullanılabilir kalır.
### Paket
Paket kutusu kurulabilir ürün kapısıdır. Bu kapı
`Package Acceptance` ve çözümleyici
`scripts/resolve-openclaw-package-candidate.mjs` tarafından desteklenir. Çözümleyici bir adayı Docker E2E tarafından tüketilen
`package-under-test` tarball'una normalleştirir, paket envanterini doğrular,
paket sürümünü ve SHA-256'yı kaydeder ve iş akışı yürütme ref'ini paket kaynak ref'inden ayrı tutar.
Paket kutusu kurulabilir-ürün kapısıdır. `Package Acceptance` ve `scripts/resolve-openclaw-package-candidate.mjs` çözücüsüyle desteklenir. Çözücü bir candidate'ı Docker E2E tarafından tüketilen `package-under-test` tarball'una normalleştirir, paket envanterini doğrular, paket sürümünü ve SHA-256 değerini kaydeder ve workflow harness ref'ini paket kaynak ref'inden ayrı tutar.
Desteklenen aday kaynakları:
Desteklenen candidate kaynakları:
- `source=npm`: `openclaw@beta`, `openclaw@latest` veya kesin bir OpenClaw sürüm
sürümü
- `source=ref`: seçili `workflow_ref` yürütmesiyle güvenilir bir `package_ref` dalını, etiketini veya tam commit SHA'sını paketle
- `source=url`: gerekli `package_sha256` ile HTTPS `.tgz` indir
- `source=artifact`: başka bir GitHub Actions çalıştırması tarafından yüklenen `.tgz` dosyasını yeniden kullan
- `source=npm`: `openclaw@beta`, `openclaw@latest` veya tam bir OpenClaw release sürümü
- `source=ref`: seçilen `workflow_ref` harness'iyle güvenilir bir `package_ref` dalını, etiketini veya tam commit SHA'sını paketle
- `source=url`: gerekli `package_sha256` ile bir HTTPS `.tgz` indir
- `source=artifact`: başka bir GitHub Actions çalıştırması tarafından yüklenen bir `.tgz` dosyasını yeniden kullan
`OpenClaw Release Checks`, Package Acceptance'ı `source=ref`,
`package_ref=<release-ref>`, `suite_profile=custom`,
`docker_lanes=bundled-channel-deps-compat plugins-offline` ve
`telegram_mode=mock-openai` ile çalıştırır. Sürüm yolu Docker parçaları örtüşen
kurulum, güncelleme ve Plugin güncelleme hatlarını kapsar; Package Acceptance aynı çözümlenmiş tarball'a karşı
yapıt yerel paketlenmiş kanal uyumluluğunu, çevrimdışı Plugin fixture'larını ve Telegram
paket QA'yı korur. Daha önce
Parallels gerektiren paket/güncelleme kapsamının çoğu için GitHub yerel
yerine geçendir. Cross-OS sürüm kontrolleri OS'e özel onboarding,
installer ve platform davranışı için hâlâ önemlidir, ancak paket/güncelleme ürün doğrulaması
Package Acceptance'ı tercih etmelidir.
`OpenClaw Release Checks`, Package Acceptance'ı `source=ref`, `package_ref=<release-ref>`, `suite_profile=custom`, `docker_lanes=bundled-channel-deps-compat plugins-offline` ve `telegram_mode=mock-openai` ile çalıştırır. Release-path Docker parçaları çakışan kurulum, güncelleme ve Plugin güncelleme hatlarını kapsar; Package Acceptance artifact-native paketlenmiş-kanal uyumluluğunu, çevrimdışı Plugin fixture'larını ve aynı çözümlenmiş tarball'a karşı Telegram paket QA'sını korur. Daha önce Parallels gerektiren paket/güncelleme kapsamının çoğu için GitHub-native alternatiftir. Cross-OS release kontrolleri OS'ye özgü onboarding, installer ve platform davranışı için hâlâ önemlidir; ancak paket/güncelleme ürün doğrulaması Package Acceptance'ı tercih etmelidir.
Eski package-acceptance esnekliği bilinçli olarak zamanla sınırlandırılmıştır. `2026.4.25` dahil paketler, npm'e zaten yayımlanmış metadata boşlukları için uyumluluk yolunu kullanabilir: tarball'da eksik private QA envanter girdileri, eksik
`gateway install --wrapper`, tarball'dan türetilmiş git
fixture'ında eksik yama dosyaları, eksik kalıcı `update.channel`, eski Plugin install-record
konumları, eksik marketplace install-record kalıcılığı ve `plugins update` sırasında config metadata
migration. Yayımlanan `2026.4.26` paketi, zaten gönderilmiş yerel derleme metadata damga dosyaları için uyarı verebilir. Daha sonraki paketler
modern paket sözleşmelerini karşılamalıdır; aynı boşluklar sürüm
doğrulamasını başarısız kılar.
Eski package-acceptance esnekliği bilerek zaman sınırlıdır. `2026.4.25` dahil paketler, npm'e zaten yayımlanmış metadata eksikleri için uyumluluk yolunu kullanabilir: tarball'da eksik private QA inventory girdileri, eksik `gateway install --wrapper`, tarball'dan türetilmiş git fixture'ında eksik patch dosyaları, eksik kalıcı `update.channel`, eski Plugin kurulum kaydı konumları, eksik marketplace kurulum kaydı kalıcılığı ve `plugins update` sırasında config metadata migration. Yayımlanmış `2026.4.26` paketi, zaten gönderilmiş yerel build metadata stamp dosyaları için uyarı verebilir. Daha sonraki paketler modern paket sözleşmelerini karşılamalıdır; aynı eksikler release doğrulamasını başarısız kılar.
Sürüm sorusu gerçek bir kurulabilir paketle ilgili olduğunda daha geniş Package Acceptance profillerini kullanın:
Release sorusu gerçek bir kurulabilir paketle ilgili olduğunda daha geniş Package Acceptance profillerini kullanın:
```bash
gh workflow run package-acceptance.yml \
@ -351,89 +298,82 @@ gh workflow run package-acceptance.yml \
-f workflow_ref=main \
-f source=npm \
-f package_spec=openclaw@beta \
-f suite_profile=product
-f suite_profile=product \
-f published_upgrade_survivor_baseline=openclaw@2026.4.26
```
Yaygın paket profilleri:
- `smoke`: hızlı paket kurulum/kanal/ajan, gateway ağı ve config
yeniden yükleme hatları
- `package`: canlı ClawHub olmadan kurulum/güncelleme/Plugin paket sözleşmeleri; bu, release-check
varsayılanıdır
- `product`: `package` artı MCP kanalları, cron/subagent temizliği, OpenAI web
araması ve OpenWebUI
- `full`: OpenWebUI ile Docker sürüm yolu parçaları
- `custom`: odaklanmış yeniden çalıştırmalar için kesin `docker_lanes` listesi
- `smoke`: hızlı paket kurulum/kanal/ajan, Gateway ağı ve config yeniden yükleme hatları
- `package`: canlı ClawHub olmadan kurulum/güncelleme/Plugin paket sözleşmeleri; release-check varsayılanı budur
- `product`: `package` artı MCP kanalları, cron/subagent cleanup, OpenAI web araması ve OpenWebUI
- `full`: OpenWebUI ile Docker release-path parçaları
- `custom`: odaklı yeniden çalıştırmalar için tam `docker_lanes` listesi
Paket adayı Telegram kanıtı için Package Acceptance üzerinde `telegram_mode=mock-openai` veya
`telegram_mode=live-frontier` etkinleştirin. İş akışı çözümlenmiş
`package-under-test` tarball'unu Telegram hattına geçirir; bağımsız
Telegram iş akışı yayın sonrası kontroller için yayımlanmış bir npm spec'ini hâlâ kabul eder.
Paket-candidate Telegram kanıtı için Package Acceptance üzerinde `telegram_mode=mock-openai` veya `telegram_mode=live-frontier` etkinleştirin. Workflow çözümlenmiş `package-under-test` tarball'unu Telegram hattına geçirir; bağımsız Telegram workflow'u, publish sonrası kontroller için hâlâ yayımlanmış bir npm spec kabul eder.
## NPM iş akışı girdileri
## NPM workflow girdileri
`OpenClaw NPM Release` şu operatör kontrollü girdileri kabul eder:
- `tag`: `v2026.4.2`, `v2026.4.2-1` veya
`v2026.4.2-beta.1` gibi gerekli sürüm etiketi; `preflight_only=true` olduğunda, yalnızca doğrulama amaçlı preflight için mevcut
tam 40 karakterlik iş akışı dalı commit SHA'sı da olabilir
- `preflight_only`: yalnızca doğrulama/derleme/paket için `true`, gerçek yayımlama yolu için `false`
- `preflight_run_id`: gerçek yayımlama yolunda gereklidir; böylece iş akışı başarılı preflight çalıştırmasından hazırlanan tarball'u yeniden kullanır
- `npm_dist_tag`: yayımlama yolu için npm hedef etiketi; varsayılan `beta`
- `tag`: `v2026.4.2`, `v2026.4.2-1` veya `v2026.4.2-beta.1` gibi gerekli release etiketi; `preflight_only=true` olduğunda, yalnızca doğrulama preflight'ı için geçerli tam 40 karakterlik workflow-branch commit SHA'sı da olabilir
- `preflight_only`: yalnızca doğrulama/build/paket için `true`, gerçek publish yolu için `false`
- `preflight_run_id`: workflow'un başarılı preflight çalıştırmasından hazırlanmış tarball'u yeniden kullanması için gerçek publish yolunda gereklidir
- `npm_dist_tag`: publish yolu için npm hedef etiketi; varsayılan `beta`
`OpenClaw Release Checks` şu operatör kontrollü girdileri kabul eder:
- `ref`: doğrulanacak dal, etiket veya tam commit SHA'sı. Secret taşıyan kontroller
çözümlenen commit'in bir OpenClaw dalından veya
sürüm etiketinden erişilebilir olmasını gerektirir.
- `ref`: doğrulanacak dal, etiket veya tam commit SHA. Secret içeren kontroller, çözümlenmiş commit'in bir OpenClaw dalından veya release etiketinden erişilebilir olmasını gerektirir.
Kurallar:
- Stabil ve düzeltme etiketleri `beta` veya `latest` etiketlerinden herhangi birine yayımlanabilir
- Beta ön sürüm etiketleri yalnızca `beta` etiketine yayımlanabilir
- `OpenClaw NPM Release` için tam commit SHA girdisine yalnızca
`preflight_only=true` olduğunda izin verilir
- `OpenClaw Release Checks` ve `Full Release Validation` her zaman
yalnızca doğrulama içindir
- Gerçek yayımlama yolu preflight sırasında kullanılan aynı `npm_dist_tag` değerini kullanmalıdır;
iş akışı yayımlamadan önce metadata'nın devam ettiğini doğrular
- Stable ve correction etiketleri `beta` veya `latest` değerine publish edilebilir
- Beta prerelease etiketleri yalnızca `beta` değerine publish edilebilir
- `OpenClaw NPM Release` için tam commit SHA girdisine yalnızca `preflight_only=true` olduğunda izin verilir
- `OpenClaw Release Checks` ve `Full Release Validation` her zaman yalnızca doğrulama içindir
- Gerçek publish yolu, preflight sırasında kullanılan aynı `npm_dist_tag` değerini kullanmalıdır; workflow publish öncesinde metadata'nın devam ettiğini doğrular
## Stabil npm sürüm sırası
## Stable npm release sırası
Stabil bir npm sürümü çıkarırken:
Stable bir npm release çıkarırken:
1. `OpenClaw NPM Release` iş akışını `preflight_only=true` ile çalıştırın
- Etiket henüz yoksa, preflight iş akışının yalnızca doğrulama amaçlı kuru çalıştırması için mevcut tam iş akışı dalı commit
- Etiket oluşmadan önce, preflight iş akışının yalnızca doğrulama amaçlı
deneme çalıştırması için geçerli tam iş akışı dalı commit
SHA'sını kullanabilirsiniz
2. Normal beta-öncelikli akış için `npm_dist_tag=beta` seçin veya yalnızca
bilinçli olarak doğrudan stabil yayımlama istediğinizde `latest` seçin
3. Tek bir manuel iş akışından normal CI artı canlı prompt cache, Docker, QA Lab,
Matrix ve Telegram kapsamı istediğinizde `Full Release Validation` iş akışını sürüm dalı, sürüm etiketi veya tam
commit SHA üzerinde çalıştırın
4. Bilinçli olarak yalnızca belirleyici normal test grafiğine ihtiyacınız varsa,
bunun yerine sürüm ref'i üzerinde manuel `CI` iş akışını çalıştırın
2. Normal önce beta akışı için `npm_dist_tag=beta` seçin; doğrudan kararlı
yayınlamayı bilinçli olarak istediğinizde yalnızca `latest` seçin
3. Normal CI ile canlı prompt önbelleği, Docker, QA Lab, Matrix ve Telegram
kapsamını tek bir manuel iş akışından istediğinizde yayın dalında, yayın
etiketinde veya tam commit SHA'sında `Full Release Validation` çalıştırın
4. Bilinçli olarak yalnızca deterministik normal test grafiğine ihtiyacınız
varsa, bunun yerine yayın ref'i üzerinde manuel `CI` iş akışını çalıştırın
5. Başarılı `preflight_run_id` değerini kaydedin
6. `OpenClaw NPM Release` iş akışını `preflight_only=false`, aynı
`tag`, aynı `npm_dist_tag` ve kaydedilen `preflight_run_id` ile yeniden çalıştırın
7. Sürüm `beta` üzerine indiyse, bu stabil sürümü `beta` etiketinden `latest` etiketine yükseltmek için private
6. `OpenClaw NPM Release` iş akışını aynı `tag`, aynı `npm_dist_tag` ve
kaydedilmiş `preflight_run_id` ile, bu kez `preflight_only=false` olarak
tekrar çalıştırın
7. Yayın `beta` üzerine indiyse, bu kararlı sürümü `beta`'dan `latest`'e
yükseltmek için özel
`openclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.yml`
iş akışını kullanın
8. Sürüm bilinçli olarak doğrudan `latest` üzerine yayımlandıysa ve `beta`
aynı stabil derlemeyi hemen izlemeliyse, her iki dist-tag'i stabil sürüme yönlendirmek için aynı private
iş akışını kullanın veya zamanlanmış kendi kendini iyileştiren sync işleminin `beta` etiketini daha sonra taşımasına izin verin
8. Yayın bilinçli olarak doğrudan `latest` üzerine yapıldıysa ve `beta`
hemen aynı kararlı derlemeyi izlemeliyse, iki dist-tag'i de kararlı sürüme
yönlendirmek için aynı özel iş akışını kullanın veya zamanlanmış kendi
kendini iyileştiren eşitlemenin `beta`'yı daha sonra taşımasına izin verin
Dist-tag mutasyonu güvenlik nedeniyle private depoda bulunur; çünkü hâlâ
`NPM_TOKEN` gerektirir, public depo ise yalnızca OIDC yayımlamayı korur.
dist-tag değişikliği güvenlik nedeniyle özel repoda bulunur, çünkü hâlâ
`NPM_TOKEN` gerektirir; public repo ise yalnızca OIDC ile yayınlamayı korur.
Bu, doğrudan yayımlama yolunu ve beta-öncelikli yükseltme yolunu hem
dokümante edilmiş hem de operatörün görebileceği durumda tutar.
Bu, doğrudan yayın yolunu ve önce beta yükseltme yolunu hem belgelenmiş hem de
operatör tarafından görülebilir tutar.
Bir bakımcının yerel npm kimlik doğrulamasına geri dönmesi gerekirse, 1Password
CLI (`op`) komutlarını yalnızca ayrılmış bir tmux oturumu içinde çalıştırın. `op`
komutunu ana agent kabuğundan doğrudan çağırmayın; bunu tmux içinde tutmak istemleri,
uyarıları ve OTP işlemeyi gözlemlenebilir kılar ve yinelenen ana makine uyarılarını önler.
Bir maintainer yerel npm kimlik doğrulamasına geri dönmek zorunda kalırsa,
1Password CLI (`op`) komutlarını yalnızca ayrılmış bir tmux oturumu içinde
çalıştırın. `op` komutunu doğrudan ana agent shell içinden çağırmayın; onu
tmux içinde tutmak prompt'ları, uyarıları ve OTP işlemeyi gözlemlenebilir kılar
ve tekrarlanan host uyarılarını önler.
## Genel başvuru kaynakları
## Public referanslar
- [`.github/workflows/full-release-validation.yml`](https://github.com/openclaw/openclaw/blob/main/.github/workflows/full-release-validation.yml)
- [`.github/workflows/package-acceptance.yml`](https://github.com/openclaw/openclaw/blob/main/.github/workflows/package-acceptance.yml)
@ -445,10 +385,10 @@ uyarıları ve OTP işlemeyi gözlemlenebilir kılar ve yinelenen ana makine uya
- [`scripts/package-mac-dist.sh`](https://github.com/openclaw/openclaw/blob/main/scripts/package-mac-dist.sh)
- [`scripts/make_appcast.sh`](https://github.com/openclaw/openclaw/blob/main/scripts/make_appcast.sh)
Bakımcılar, gerçek çalışma kılavuzu için
Maintainer'lar gerçek runbook için
[`openclaw/maintainers/release/README.md`](https://github.com/openclaw/maintainers/blob/main/release/README.md)
konumundaki özel sürüm belgelerini kullanır.
içindeki özel yayın belgelerini kullanır.
## İlgili
- [Sürüm kanalları](/tr/install/development-channels)
- [Yayın kanalları](/tr/install/development-channels)

View File

@ -0,0 +1,156 @@
---
read_when:
- Tam Sürüm Doğrulamasını çalıştırma veya yeniden çalıştırma
- Kararlı ve tam sürüm doğrulama profillerini karşılaştırma
- Sürüm doğrulama aşaması hatalarında hata ayıklama
summary: Tam Sürüm Doğrulama aşamaları, alt iş akışları, sürüm profilleri, yeniden çalıştırma tanıtıcıları ve kanıtlar
title: Tam sürüm doğrulaması
x-i18n:
generated_at: "2026-05-01T09:03:30Z"
model: gpt-5.5
provider: openai
source_hash: dcbfafd744437c160c09a9c508a639781549193669b300e5249023f9f5dd4afe
source_path: reference/full-release-validation.md
workflow: 16
---
`Full Release Validation`, sürüm doğrulama şemsiyesidir. Yayın öncesi kanıt için tek manuel
giriş noktasıdır, ancak işlerin çoğu alt workflow'larda gerçekleşir; böylece
başarısız olan bir kutu tüm sürümü yeniden başlatmadan tekrar çalıştırılabilir.
Bunu güvenilir bir workflow ref'inden, normalde `main` üzerinden çalıştırın ve sürüm branch'ini,
tag'ini veya tam commit SHA'sını `ref` olarak iletin:
```bash
gh workflow run full-release-validation.yml \
--ref main \
-f ref=release/YYYY.M.D \
-f provider=openai \
-f mode=both \
-f release_profile=stable
```
Alt workflow'lar, harness için güvenilir workflow ref'ini ve test edilen aday için
`ref` girdisini kullanır. Bu, daha eski bir sürüm branch'i veya tag'i doğrulanırken
yeni doğrulama mantığının kullanılabilir kalmasını sağlar.
## Üst düzey aşamalar
| Aşama | Ayrıntılar |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Hedef çözümleme | **Job:** `Resolve target ref`<br />**Alt workflow:** yok<br />**Kanıtlar:** sürüm branch'ini, tag'ini veya tam commit SHA'sını çözümler ve seçilen girdileri kaydeder.<br />**Tekrar çalıştırma:** bu başarısız olursa şemsiyeyi tekrar çalıştırın. |
| Vitest ve normal CI | **Job:** `Run normal full CI`<br />**Alt workflow:** `CI`<br />**Kanıtlar:** Linux Node hatları, bundled plugin shard'ları, kanal sözleşmeleri, Node 22 uyumluluğu, `check`, `check-additional`, build smoke, doküman kontrolleri, Python skills, Windows, macOS, Control UI i18n ve şemsiye üzerinden Android dahil hedef ref'e karşı manuel tam CI grafiği.<br />**Tekrar çalıştırma:** `rerun_group=ci`. |
| Plugin ön sürümü | **Job:** `Run plugin prerelease validation`<br />**Alt workflow:** `Plugin Prerelease`<br />**Kanıtlar:** yalnızca sürüme ait Plugin statik kontrolleri, agentic Plugin kapsamı, tam extension batch shard'ları ve Plugin ön sürüm Docker hatları.<br />**Tekrar çalıştırma:** `rerun_group=plugin-prerelease`. |
| Sürüm kontrolleri | **Job:** `Run release/live/Docker/QA validation`<br />**Alt workflow:** `OpenClaw Release Checks`<br />**Kanıtlar:** install smoke, çapraz işletim sistemi paket kontrolleri, live/E2E paketleri, Docker sürüm yolu parçaları, Package Acceptance, QA Lab parity, live Matrix ve live Telegram.<br />**Tekrar çalıştırma:** `rerun_group=release-checks` veya daha dar bir release-checks tanıtıcısı. |
| Yayın sonrası Telegram | **Job:** `Run post-publish Telegram E2E`<br />**Alt workflow:** `NPM Telegram Beta E2E`<br />**Kanıtlar:** `npm_telegram_package_spec` ayarlandığında isteğe bağlı yayımlanmış paket Telegram kanıtı.<br />**Tekrar çalıştırma:** `rerun_group=npm-telegram`. |
| Şemsiye doğrulayıcı | **Job:** `Verify full validation`<br />**Alt workflow:** yok<br />**Kanıtlar:** kaydedilmiş alt çalıştırma sonuçlarını yeniden kontrol eder ve alt workflow'lardan en yavaş job tablolarını ekler.<br />**Tekrar çalıştırma:** başarısız bir alt workflow'u yeşile getirmek için yeniden çalıştırdıktan sonra yalnızca bu job'ı tekrar çalıştırın. |
`ref=main` ve `rerun_group=all` için daha yeni bir şemsiye daha eski olanın yerini alır.
Üst öğe iptal edildiğinde, monitörü zaten başlattığı tüm alt workflow'ları iptal eder.
Sürüm branch'i ve tag doğrulama çalıştırmaları varsayılan olarak birbirini iptal etmez.
## Sürüm kontrolleri aşamaları
`OpenClaw Release Checks` en büyük alt workflow'dur. Hedefi bir kez çözümler
ve paket ya da Docker odaklı aşamalar gerektiğinde paylaşılan bir `release-package-under-test`
artifact'ı hazırlar.
| Aşama | Ayrıntılar |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Sürüm hedefi | **Job:** `Resolve target ref`<br />**Destekleyen workflow:** yok<br />**Testler:** seçilen ref, isteğe bağlı beklenen SHA, profil, tekrar çalıştırma grubu ve odaklanmış live paket filtresi.<br />**Tekrar çalıştırma:** `rerun_group=release-checks`. |
| Paket artifact'ı | **Job:** `Prepare release package artifact`<br />**Destekleyen workflow:** yok<br />**Testler:** tek bir aday tarball'ı paketler veya çözümler ve downstream paket odaklı kontroller için `release-package-under-test` yükler.<br />**Tekrar çalıştırma:** etkilenen paket, çapraz işletim sistemi veya live/E2E grubu. |
| Install smoke | **Job:** `Run install smoke`<br />**Destekleyen workflow:** `Install Smoke`<br />**Testler:** root Dockerfile smoke image yeniden kullanımı, QR paket kurulumu, root ve Gateway Docker smoke'ları, installer Docker testleri, Bun global install image-provider smoke ve hızlı bundled-plugin Docker E2E ile tam kurulum yolu.<br />**Tekrar çalıştırma:** `rerun_group=install-smoke`. |
| Çapraz işletim sistemi | **Job:** `cross_os_release_checks`<br />**Destekleyen workflow:** `OpenClaw Cross-OS Release Checks (Reusable)`<br />**Testler:** aday tarball ve bir baseline paket kullanarak seçilen sağlayıcı ve mod için Linux, Windows ve macOS üzerinde yeni kurulum ve yükseltme hatları.<br />**Tekrar çalıştırma:** `rerun_group=cross-os`. |
| Repo ve live E2E | **Job:** `Run repo/live E2E validation`<br />**Destekleyen workflow:** `OpenClaw Live And E2E Checks (Reusable)`<br />**Testler:** depo E2E, live cache, OpenAI websocket streaming, native live provider ve Plugin shard'ları ve `release_profile` tarafından seçilen Docker-backed live model/backend/Gateway harness'ları.<br />**Tekrar çalıştırma:** `rerun_group=live-e2e`, isteğe bağlı olarak `live_suite_filter` ile. |
| Docker sürüm yolu | **Job:** `Run Docker release-path validation`<br />**Destekleyen workflow:** `OpenClaw Live And E2E Checks (Reusable)`<br />**Testler:** paylaşılan paket artifact'ına karşı release-path Docker parçaları.<br />**Tekrar çalıştırma:** `rerun_group=live-e2e`. |
| Package Acceptance | **Job:** `Run package acceptance`<br />**Destekleyen workflow:** `Package Acceptance`<br />**Testler:** artifact-native bundled-channel bağımlılık uyumluluğu, offline Plugin paket fixture'ları ve aynı tarball'a karşı mock-OpenAI Telegram paket kabulü.<br />**Tekrar çalıştırma:** `rerun_group=package`. |
| QA parity | **Job:** `Run QA Lab parity lane` ve `Run QA Lab parity report`<br />**Destekleyen workflow:** doğrudan job'lar<br />**Testler:** aday ve baseline agentic parity paketleri, ardından parity raporu.<br />**Tekrar çalıştırma:** `rerun_group=qa-parity` veya `rerun_group=qa`. |
| QA live Matrix | **Job:** `Run QA Lab live Matrix lane`<br />**Destekleyen workflow:** doğrudan job<br />**Testler:** `qa-live-shared` ortamında hızlı live Matrix QA profili.<br />**Tekrar çalıştırma:** `rerun_group=qa-live` veya `rerun_group=qa`. |
| QA live Telegram | **Job:** `Run QA Lab live Telegram lane`<br />**Destekleyen workflow:** doğrudan job<br />**Testler:** Convex CI credential lease'leriyle live Telegram QA.<br />**Tekrar çalıştırma:** `rerun_group=qa-live` veya `rerun_group=qa`. |
| Sürüm doğrulayıcı | **Job:** `Verify release checks`<br />**Destekleyen workflow:** yok<br />**Testler:** seçilen tekrar çalıştırma grubu için gerekli release-check job'ları.<br />**Tekrar çalıştırma:** odaklanmış alt job'lar geçtikten sonra tekrar çalıştırın. |
## Docker sürüm yolu parçaları
Docker sürüm yolu aşaması, `live_suite_filter` boş olduğunda şu parçaları çalıştırır:
| Parça | Kapsam |
| ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| `core` | Core Docker release-path smoke hatları. |
| `package-update-openai` | OpenAI paket kurulumu ve güncelleme davranışı. |
| `package-update-anthropic` | Anthropic paket kurulumu ve güncelleme davranışı. |
| `package-update-core` | Sağlayıcıdan bağımsız paket ve güncelleme davranışı. |
| `plugins-runtime-plugins` | Plugin davranışını çalıştıran Plugin runtime hatları. |
| `plugins-runtime-services` | Hizmet destekli Plugin runtime hatları; istendiğinde OpenWebUI içerir. |
| `plugins-runtime-install-a` ile `plugins-runtime-install-h` arası | Paralel sürüm doğrulaması için bölünmüş Plugin install/runtime batch'leri. |
| `bundled-channels-core` | Bundled channel Docker davranışı. |
| `bundled-channels-update-a`, `bundled-channels-update-discord`, `bundled-channels-update-b` | Bundled channel güncelleme davranışı. |
| `bundled-channels-contracts` | Docker sürüm yolunda bundled channel sözleşme kontrolleri. |
Yalnızca bir Docker yolu başarısız olduğunda yeniden kullanılabilir canlı/E2E iş akışında hedefli `docker_lanes=<lane[,lane]>` kullanın. Sürüm yapıtları, mevcut olduğunda paket yapıtı ve imaj yeniden kullanım girdileriyle birlikte yol başına yeniden çalıştırma komutları içerir.
## Sürüm profilleri
`release_profile` yalnızca sürüm kontrolleri içindeki canlı/sağlayıcı kapsamını denetler. Normal tam CI, Plugin Prerelease, kurulum duman testi, paket kabulü, QA Lab veya Docker sürüm yolu parçalarını kaldırmaz.
| Profil | Amaçlanan kullanım | Dahil edilen canlı/sağlayıcı kapsamı |
| --------- | ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `minimum` | En hızlı sürüm açısından kritik duman testi. | OpenAI/çekirdek canlı yolu, OpenAI için Docker canlı modelleri, yerel Gateway çekirdeği, yerel OpenAI Gateway profili, yerel OpenAI Plugin ve Docker canlı Gateway OpenAI. |
| `stable` | Varsayılan sürüm onay profili. | `minimum` artı Anthropic, Google, MiniMax, arka uç, yerel canlı test düzeneği, Docker canlı CLI arka ucu, Docker ACP bağlama, Docker Codex düzeneği ve bir OpenCode Go duman parçası. |
| `full` | Geniş danışma taraması. | `stable` artı danışma sağlayıcıları, Plugin canlı parçaları ve medya canlı parçaları. |
## Yalnızca tam profile eklenenler
Bu paketler `stable` tarafından atlanır ve `full` tarafından dahil edilir:
| Alan | Yalnızca tam profil kapsamı |
| -------------------------------- | ------------------------------------------------------------------------------- |
| Docker canlı modelleri | OpenCode Go, OpenRouter, xAI, Z.ai ve Fireworks. |
| Docker canlı Gateway | DeepSeek, Fireworks, OpenCode Go, OpenRouter, xAI ve Z.ai için danışma parçası. |
| Yerel Gateway sağlayıcı profilleri | Fireworks, DeepSeek, tam OpenCode Go model parçaları, OpenRouter, xAI ve Z.ai. |
| Yerel Plugin canlı parçaları | Pluginler A-K, L-N, O-Z diğer, Moonshot ve xAI. |
| Yerel medya canlı parçaları | Ses, Google müzik, MiniMax müzik ve video grupları A-D. |
`stable`, `native-live-src-gateway-profiles-opencode-go-smoke` içerir; `full` bunun yerine daha geniş OpenCode Go model parçalarını kullanır.
## Odaklı yeniden çalıştırmalar
İlgisiz sürüm kutularını yinelemekten kaçınmak için `rerun_group` kullanın:
| Tanıtıcı | Kapsam |
| ------------------- | ------------------------------------------------- |
| `all` | Tüm Full Release Validation aşamaları. |
| `ci` | Yalnızca manuel tam CI alt işi. |
| `plugin-prerelease` | Yalnızca Plugin Prerelease alt işi. |
| `release-checks` | Tüm OpenClaw Release Checks aşamaları. |
| `install-smoke` | Sürüm kontrolleri üzerinden Install Smoke. |
| `cross-os` | Çapraz işletim sistemi sürüm kontrolleri. |
| `live-e2e` | Repo/canlı E2E ve Docker sürüm yolu doğrulaması. |
| `package` | Package Acceptance. |
| `qa` | QA paritesi artı QA canlı yolları. |
| `qa-parity` | Yalnızca QA parite yolları ve raporu. |
| `qa-live` | Yalnızca QA canlı Matrix ve Telegram. |
| `npm-telegram` | Yalnızca isteğe bağlı yayın sonrası Telegram E2E. |
Bir canlı paket başarısız olduğunda `rerun_group=live-e2e` ile `live_suite_filter` kullanın. Geçerli filtre kimlikleri, yeniden kullanılabilir canlı/E2E iş akışında tanımlanır ve şunları içerir: `docker-live-models`, `live-gateway-docker`, `live-gateway-anthropic-docker`, `live-gateway-google-docker`, `live-gateway-minimax-docker`, `live-gateway-advisory-docker`, `live-cli-backend-docker`, `live-acp-bind-docker` ve `live-codex-harness-docker`.
## Saklanacak kanıtlar
Sürüm düzeyi dizin olarak `Full Release Validation` özetini saklayın. Bu özet alt çalışma kimliklerine bağlantı verir ve en yavaş iş tablolarını içerir. Hatalar için önce alt iş akışını inceleyin, ardından yukarıdaki en küçük eşleşen tanıtıcıyı yeniden çalıştırın.
Yararlı yapıtlar:
- `OpenClaw Release Checks` içinden `release-package-under-test`
- `.artifacts/docker-tests/` altındaki Docker sürüm yolu yapıtları
- Package Acceptance `package-under-test` ve Docker kabul yapıtları
- Her işletim sistemi ve paket için Cross-OS sürüm kontrolü yapıtları
- QA paritesi, Matrix ve Telegram yapıtları
## İş akışı dosyaları
- `.github/workflows/full-release-validation.yml`
- `.github/workflows/openclaw-release-checks.yml`
- `.github/workflows/openclaw-live-and-e2e-checks-reusable.yml`
- `.github/workflows/plugin-prerelease.yml`
- `.github/workflows/install-smoke.yml`
- `.github/workflows/openclaw-cross-os-release-checks-reusable.yml`
- `.github/workflows/package-acceptance.yml`

View File

@ -1,15 +1,15 @@
---
read_when:
- SecretRef kimlik bilgisi kapsamını doğrulama
- SecretRef kimlik bilgileri kapsamını doğrulama
- Bir kimlik bilgisinin `secrets configure` veya `secrets apply` için uygun olup olmadığını denetleme
- Bir kimlik bilgisinin neden desteklenen kapsamın dışında olduğunu doğrulama
summary: Kanonik desteklenen ve desteklenmeyen SecretRef kimlik bilgisi yüzeyi
title: SecretRef kimlik bilgileri yüzeyi
- Bir kimlik bilgisinin neden desteklenen yüzeyin dışında olduğunu doğrulama
summary: Desteklenen ve desteklenmeyen SecretRef kimlik bilgisi yüzeyinin kanonik kapsamı
title: SecretRef kimlik bilgisi yüzeyi
x-i18n:
generated_at: "2026-04-30T09:44:18Z"
generated_at: "2026-05-01T09:04:03Z"
model: gpt-5.5
provider: openai
source_hash: b04902427e9851cc36c1dfd07ed44b46b55450c251075e9955af6696f08bc334
source_hash: 41111ac82142c906005e0f585c86f2ff0b454afdaec07343c295e6b83571718e
source_path: reference/secretref-credential-surface.md
workflow: 16
---
@ -18,8 +18,8 @@ Bu sayfa kanonik SecretRef kimlik bilgisi yüzeyini tanımlar.
Kapsam amacı:
- Kapsam içinde: yalnızca kullanıcı tarafından sağlanan ve OpenClaw'ın üretmediği veya döndürmediği kimlik bilgileri.
- Kapsam dışında: çalışma zamanında üretilen veya dönen kimlik bilgileri, OAuth yenileme materyali ve oturum benzeri yapılar.
- Kapsam içinde: OpenClaw tarafından oluşturulmayan veya döndürülmeyen, kesinlikle kullanıcı tarafından sağlanan kimlik bilgileri.
- Kapsam dışında: çalışma zamanında oluşturulan veya dönen kimlik bilgileri, OAuth yenileme materyali ve oturum benzeri yapılar.
## Desteklenen kimlik bilgileri
@ -57,6 +57,8 @@ Kapsam amacı:
- `plugins.entries.firecrawl.config.webSearch.apiKey`
- `plugins.entries.minimax.config.webSearch.apiKey`
- `plugins.entries.tavily.config.webSearch.apiKey`
- `plugins.entries.voice-call.config.realtime.providers.*.apiKey`
- `plugins.entries.voice-call.config.streaming.providers.*.apiKey`
- `plugins.entries.voice-call.config.tts.providers.*.apiKey`
- `plugins.entries.voice-call.config.twilio.authToken`
- `tools.web.search.apiKey`
@ -123,17 +125,17 @@ Kapsam amacı:
Notlar:
- Auth-profile plan hedefleri `agentId` gerektirir.
- Plan girdileri `profiles.*.key` / `profiles.*.token` hedefler ve kardeş ref'leri (`keyRef` / `tokenRef`) yazar.
- Auth-profile ref'leri çalışma zamanı çözümlemesine ve denetim kapsamına dahildir.
- `openclaw.json` içinde SecretRef'ler `{"source":"env","provider":"default","id":"DISCORD_BOT_TOKEN"}` gibi yapılandırılmış nesneler kullanmalıdır. Eski `secretref-env:<ENV_VAR>` işaretleyici dizeleri SecretRef kimlik bilgisi yollarında reddedilir; geçerli işaretleyicileri taşımak için `openclaw doctor --fix` çalıştırın.
- OAuth ilke koruması: `auth.profiles.<id>.mode = "oauth"` bu profil için SecretRef girdileriyle birleştirilemez. Bu ilke ihlal edildiğinde başlatma/yeniden yükleme ve auth-profile çözümlemesi hızla başarısız olur.
- SecretRef ile yönetilen model sağlayıcıları için oluşturulan `agents/*/agent/models.json` girdileri, `apiKey`/başlık yüzeyleri için gizli olmayan işaretleyicileri (çözümlenmiş gizli değerleri değil) kalıcı hale getirir.
- İşaretleyici kalıcılığında kaynak yetkilidir: OpenClaw işaretleyicileri çözümlenmiş çalışma zamanı gizli değerlerinden değil, etkin kaynak yapılandırma anlık görüntüsünden (çözümleme öncesi) yazar.
- Plan girdileri `profiles.*.key` / `profiles.*.token` hedefler ve kardeş referansları (`keyRef` / `tokenRef`) yazar.
- Auth-profile referansları çalışma zamanı çözümlemesine ve denetim kapsamına dahildir.
- `openclaw.json` içinde SecretRef'ler `{"source":"env","provider":"default","id":"DISCORD_BOT_TOKEN"}` gibi yapılandırılmış nesneler kullanmalıdır. Eski `secretref-env:<ENV_VAR>` işaretçi dizeleri SecretRef kimlik bilgisi yollarında reddedilir; geçerli işaretçileri taşımak için `openclaw doctor --fix` komutunu çalıştırın.
- OAuth ilke koruması: `auth.profiles.<id>.mode = "oauth"` bu profil için SecretRef girdileriyle birleştirilemez. Bu ilke ihlal edildiğinde başlatma/yeniden yükleme ve auth-profile çözümlemesi hızlı şekilde başarısız olur.
- SecretRef tarafından yönetilen model sağlayıcıları için oluşturulan `agents/*/agent/models.json` girdileri, `apiKey`/üst bilgi yüzeyleri için gizli olmayan işaretçileri (çözümlenmiş gizli değerleri değil) kalıcı hale getirir.
- İşaretçi kalıcılığı kaynak açısından yetkilidir: OpenClaw işaretçileri çözümlenmiş çalışma zamanı gizli değerlerinden değil, etkin kaynak yapılandırma anlık görüntüsünden (çözümleme öncesi) yazar.
- Web araması için:
- Açık sağlayıcı modunda (`tools.web.search.provider` ayarlı), yalnızca seçili sağlayıcı anahtarı etkindir.
- Otomatik modda (`tools.web.search.provider` ayarlı değil), yalnızca önceliğe göre çözümlenen ilk sağlayıcı anahtarı etkindir.
- Otomatik modda, seçilmeyen sağlayıcı ref'leri seçilene kadar etkin değil olarak değerlendirilir.
- Eski `tools.web.search.*` sağlayıcı yolları uyumluluk penceresi boyunca çözümlenmeye devam eder, ancak kanonik SecretRef yüzeyi `plugins.entries.<plugin>.config.webSearch.*` şeklindedir.
- Açık sağlayıcı modunda (`tools.web.search.provider` ayarlı), yalnızca seçilen sağlayıcı anahtarı etkindir.
- Otomatik modda (`tools.web.search.provider` ayarsız), önceliğe göre çözümlenen yalnızca ilk sağlayıcı anahtarı etkindir.
- Otomatik modda, seçilmeyen sağlayıcı referansları seçilene kadar etkin değil kabul edilir.
- Eski `tools.web.search.*` sağlayıcı yolları uyumluluk penceresi sırasında hâlâ çözümlenir, ancak kanonik SecretRef yüzeyi `plugins.entries.<plugin>.config.webSearch.*` şeklindedir.
## Desteklenmeyen kimlik bilgileri
@ -155,7 +157,7 @@ Kapsam dışı kimlik bilgileri şunları içerir:
Gerekçe:
- Bu kimlik bilgileri; üretilen, döndürülen, oturum taşıyan veya OAuth ile kalıcı sınıflardır ve salt okunur harici SecretRef çözümlemesine uymaz.
- Bu kimlik bilgileri salt okunur harici SecretRef çözümlemesine uymayan, oluşturulan, döndürülen, oturum taşıyan veya OAuth açısından kalıcı sınıflardır.
## İlgili

View File

@ -1,59 +1,60 @@
---
read_when:
- Testleri çalıştırma veya düzeltme
summary: Testleri yerel olarak nasıl çalıştırırsınız (vitest) ve force/coverage modlarını ne zaman kullanmalısınız
summary: Testleri yerel olarak (vitest) çalıştırma ve force/coverage modlarını ne zaman kullanma
title: Testler
x-i18n:
generated_at: "2026-04-30T18:38:35Z"
generated_at: "2026-05-01T09:04:24Z"
model: gpt-5.5
provider: openai
source_hash: 131f2bad3b2806d28394213cec38d632d106ddbf8ff04d06345ab8046fb8bcf2
source_hash: 07ca45e6c21016ad403ea010bd2e5460acc059c004138e04a714a3506f0e5cda
source_path: reference/test.md
workflow: 16
---
- Tam test kiti (test takımları, canlı, Docker): [Test](/tr/help/testing)
- Tam test kiti (paketler, canlı, Docker): [Test Etme](/tr/help/testing)
- `pnpm test:force`: Varsayılan kontrol portunu tutan kalmış Gateway işlemlerini sonlandırır, ardından sunucu testlerinin çalışan bir örnekle çakışmaması için tam Vitest paketini yalıtılmış bir Gateway portuyla çalıştırır. Önceki bir Gateway çalıştırması 18789 portunu dolu bıraktığında bunu kullanın.
- `pnpm test:coverage`: Birim paketini V8 kapsamıyla (`vitest.unit.config.ts` üzerinden) çalıştırır. Bu, tüm depo ve tüm dosyalar için kapsam değil, yüklenen dosyalara yönelik birim kapsam geçididir. Eşikler satırlar/işlevler/ifadeler için %70 ve dallar için %55tir. `coverage.all` false olduğundan geçit, her bölünmüş şerit kaynak dosyasını kapsanmamış saymak yerine birim kapsam paketi tarafından yüklenen dosyaları ölçer.
- `pnpm test:coverage:changed`: Yalnızca `origin/main` sonrasında değişen dosyalar için birim kapsamını çalıştırır.
- `pnpm test:force`: Varsayılan kontrol bağlantı noktasını tutan kalıcı Gateway süreçlerini sonlandırır, ardından sunucu testlerinin çalışan bir örnekle çakışmaması için tam Vitest paketini yalıtılmış bir Gateway bağlantı noktasıyla çalıştırır. Önceki bir Gateway çalıştırması 18789 bağlantı noktasını dolu bıraktığında bunu kullanın.
- `pnpm test:coverage`: Birim paketini V8 kapsamıyla (`vitest.unit.config.ts` üzerinden) çalıştırır. Bu, tüm depo tüm dosya kapsamı değil, yüklenmiş dosya birim kapsamı kapısıdır. Eşikler satırlar/fonksiyonlar/ifadeler için %70 ve dallar için %55'tir. `coverage.all` false olduğundan, kapı her bölünmüş kulvar kaynak dosyasını kapsanmamış saymak yerine birim kapsam paketi tarafından yüklenen dosyaları ölçer.
- `pnpm test:coverage:changed`: Birim kapsamını yalnızca `origin/main` sonrasında değişen dosyalar için çalıştırır.
- `pnpm test:changed`: ucuz akıllı değişen test çalıştırması. Doğrudan test düzenlemelerinden, kardeş `*.test.ts` dosyalarından, açık kaynak eşlemelerinden ve yerel içe aktarma grafiğinden kesin hedefleri çalıştırır. Geniş/config/paket değişiklikleri, kesin testlere eşlenmedikçe atlanır.
- `OPENCLAW_TEST_CHANGED_BROAD=1 pnpm test:changed`: açık geniş değişen test çalıştırması. Bir test altyapısı/config/paket düzenlemesinin Vitestin daha geniş değişen test davranışına geri dönmesi gerektiğinde bunu kullanın.
- `pnpm changed:lanes`: `origin/main` ile diff tarafından tetiklenen mimari şeritleri gösterir.
- `pnpm check:changed`: `origin/main` ile diff için akıllı değişen kontrol geçidini çalıştırır. Etkilenen mimari şeritler için typecheck, lint ve guard komutlarını çalıştırır, ancak Vitest testlerini çalıştırmaz. Test kanıtı için `pnpm test:changed` veya açık `pnpm test <target>` kullanın.
- `pnpm test`: açık dosya/dizin hedeflerini kapsamlı Vitest şeritleri üzerinden yönlendirir. Hedefsiz çalıştırmalar sabit shard gruplarını kullanır ve yerel paralel yürütme için yaprak configlere genişler; extension grubu her zaman tek bir dev kök-proje işlemi yerine extension başına shard configlerine genişler.
- Test wrapper çalıştırmaları kısa bir `[test] passed|failed|skipped ... in ...` özetiyle biter. Vitestin kendi süre satırı shard başına ayrıntı olarak kalır.
- Paylaşılan OpenClaw test durumu: bir test yalıtılmış `HOME`, `OPENCLAW_STATE_DIR`, `OPENCLAW_CONFIG_PATH`, config fikstürü, çalışma alanı, ajan dizini veya auth-profile deposu gerektirdiğinde Vitestten `src/test-utils/openclaw-test-state.ts` kullanın.
- İşlem E2E yardımcıları: bir Vitest işlem düzeyi E2E testi tek yerde çalışan bir Gateway, CLI env, log yakalama ve cleanup gerektirdiğinde `test/helpers/openclaw-test-instance.ts` kullanın.
- Docker/Bash E2E yardımcıları: `scripts/lib/docker-e2e-image.sh` kaynaklayan şeritler, container içine `docker_e2e_test_state_shell_b64 <label> <scenario>` geçirebilir ve bunu `scripts/lib/openclaw-e2e-instance.sh` ile çözebilir; çoklu-home scriptler `docker_e2e_test_state_function_b64` geçirebilir ve her akışta `openclaw_test_state_create <label> <scenario>` çağırabilir. Daha düşük düzey çağırıcılar, container içi shell snippeti için `scripts/lib/openclaw-test-state.mjs shell --label <name> --scenario <name>` veya source edilebilir host env dosyası için `node scripts/lib/openclaw-test-state.mjs -- create --label <name> --scenario <name> --env-file <path> --json` kullanabilir. `create` öncesindeki `--`, daha yeni Node runtimelarının `--env-file` değerini Node flagi olarak ele almasını engeller. Gateway başlatan Docker/Bash şeritleri, entrypoint çözümleme, mock OpenAI başlatma, Gateway ön plan/arka plan başlatma, readiness probeları, durum env exportu, log dökümleri ve işlem cleanupı için container içinde `scripts/lib/openclaw-e2e-instance.sh` kaynaklayabilir.
- Tam, extension ve include-pattern shard çalıştırmaları yerel zamanlama verilerini `.artifacts/vitest-shard-timings.json` içinde günceller; sonraki tüm-config çalıştırmaları bu zamanlamaları yavaş ve hızlı shardları dengelemek için kullanır. Include-pattern CI shardları zamanlama anahtarına shard adını ekler; bu, filtrelenmiş shard zamanlamalarını tüm-config zamanlama verilerini değiştirmeden görünür tutar. Yerel zamanlama artifactını yok saymak için `OPENCLAW_TEST_PROJECTS_TIMINGS=0` ayarlayın.
- Seçili `plugin-sdk` ve `commands` test dosyaları artık yalnızca `test/setup.ts` tutan özel hafif şeritlerden yönlenir; runtime açısından ağır durumlar mevcut şeritlerinde kalır.
- Kardeş testleri olan kaynak dosyaları, daha geniş dizin globlarına geri dönmeden önce o kardeşe eşlenir. `src/channels/plugins/contracts/test-helpers`, `src/plugin-sdk/test-helpers` ve `src/plugins/contracts` altındaki yardımcı düzenlemeleri, bağımlılık yolu kesin olduğunda her shardı geniş çalıştırmak yerine içe aktaran testleri çalıştırmak için yerel bir içe aktarma grafiği kullanır.
- `auto-reply` artık üç özel confige (`core`, `top-level`, `reply`) de ayrılır, böylece reply altyapısı daha hafif top-level durum/token/yardımcı testlerini domine etmez.
- Temel Vitest configi artık varsayılan olarak `pool: "threads"` ve `isolate: false` kullanır; paylaşılan yalıtımsız runner repo configleri genelinde etkindir.
- `OPENCLAW_TEST_CHANGED_BROAD=1 pnpm test:changed`: açık geniş değişen test çalıştırması. Bir test düzeneği/config/paket düzenlemesinin Vitest'in daha geniş değişen-test davranışına geri dönmesi gerektiğinde bunu kullanın.
- `pnpm changed:lanes`: `origin/main` ile fark tarafından tetiklenen mimari kulvarları gösterir.
- `pnpm check:changed`: `origin/main` ile fark için akıllı değişen kontrol kapısını çalıştırır. Etkilenen mimari kulvarlar için tip denetimi, lint ve koruma komutlarını çalıştırır, ancak Vitest testlerini çalıştırmaz. Test kanıtı için `pnpm test:changed` veya açık `pnpm test <target>` kullanın.
- `pnpm test`: açık dosya/dizin hedeflerini kapsamlı Vitest kulvarları üzerinden yönlendirir. Hedefsiz çalıştırmalar sabit shard gruplarını kullanır ve yerel paralel yürütme için yaprak config'lere genişler; extension grubu her zaman tek büyük kök-proje süreci yerine extension başına shard config'lerine genişler.
- Test sarmalayıcı çalıştırmaları kısa bir `[test] passed|failed|skipped ... in ...` özetiyle biter. Vitest'in kendi süre satırı shard başına ayrıntı olarak kalır.
- Paylaşılan OpenClaw test durumu: Bir testin yalıtılmış `HOME`, `OPENCLAW_STATE_DIR`, `OPENCLAW_CONFIG_PATH`, config fixture'ı, workspace'i, agent dizini veya auth-profile deposuna ihtiyacı olduğunda Vitest'ten `src/test-utils/openclaw-test-state.ts` kullanın.
- Süreç E2E yardımcıları: Bir Vitest süreç düzeyi E2E testinin çalışan bir Gateway'e, CLI ortamına, günlük yakalamaya ve temizliğe tek yerde ihtiyacı olduğunda `test/helpers/openclaw-test-instance.ts` kullanın.
- Docker/Bash E2E yardımcıları: `scripts/lib/docker-e2e-image.sh` kaynaklayan kulvarlar container'a `docker_e2e_test_state_shell_b64 <label> <scenario>` geçirebilir ve bunu `scripts/lib/openclaw-e2e-instance.sh` ile çözebilir; çoklu-home betikleri `docker_e2e_test_state_function_b64` geçirebilir ve her akışta `openclaw_test_state_create <label> <scenario>` çağırabilir. Daha düşük düzeyli çağıranlar container içi shell parçası için `scripts/lib/openclaw-test-state.mjs shell --label <name> --scenario <name>` kullanabilir veya kaynaklanabilir host env dosyası için `node scripts/lib/openclaw-test-state.mjs -- create --label <name> --scenario <name> --env-file <path> --json` kullanabilir. `create` öncesindeki `--`, daha yeni Node runtime'larının `--env-file` değerini Node bayrağı olarak ele almasını engeller. Gateway başlatan Docker/Bash kulvarları, entrypoint çözümleme, sahte OpenAI başlatma, Gateway ön plan/arka plan başlatma, hazır olma yoklamaları, durum env dışa aktarımı, günlük dökümleri ve süreç temizliği için container içinde `scripts/lib/openclaw-e2e-instance.sh` kaynaklayabilir.
- Tam, extension ve include-pattern shard çalıştırmaları yerel zamanlama verilerini `.artifacts/vitest-shard-timings.json` içinde günceller; sonraki tam-config çalıştırmaları yavaş ve hızlı shard'ları dengelemek için bu zamanlamaları kullanır. Include-pattern CI shard'ları zamanlama anahtarına shard adını ekler; bu da filtrelenmiş shard zamanlamalarını tam-config zamanlama verilerini değiştirmeden görünür tutar. Yerel zamanlama artifact'ini yok saymak için `OPENCLAW_TEST_PROJECTS_TIMINGS=0` ayarlayın.
- Seçili `plugin-sdk` ve `commands` test dosyaları artık yalnızca `test/setup.ts` dosyasını tutan özel hafif kulvarlardan yönlendirilir; runtime açısından ağır durumlar mevcut kulvarlarında kalır.
- Kardeş testleri olan kaynak dosyaları, daha geniş dizin glob'larına geri dönmeden önce bu kardeşe eşlenir. `src/channels/plugins/contracts/test-helpers`, `src/plugin-sdk/test-helpers` ve `src/plugins/contracts` altındaki yardımcı düzenlemeleri, bağımlılık yolu kesin olduğunda her shard'ı geniş çalıştırmak yerine içe aktaran testleri çalıştırmak için yerel içe aktarma grafiği kullanır.
- `auto-reply` artık üç özel config'e (`core`, `top-level`, `reply`) de bölünür; böylece yanıt düzeneği daha hafif üst düzey durum/token/yardımcı testlerine baskın gelmez.
- Temel Vitest config'i artık varsayılan olarak `pool: "threads"` ve `isolate: false` kullanır; paylaşılan yalıtılmamış çalıştırıcı depo config'leri genelinde etkindir.
- `pnpm test:channels`, `vitest.channels.config.ts` çalıştırır.
- `pnpm test:extensions` ve `pnpm test extensions`, tüm extension/Plugin shardlarını çalıştırır. Ağır kanal Pluginleri, browser Plugini ve OpenAI özel shardlar olarak çalışır; diğer Plugin grupları toplu kalır. Tek bir paketli Plugin şeridi için `pnpm test extensions/<id>` kullanın.
- `pnpm test:perf:imports`: açık dosya/dizin hedefleri için kapsamlı şerit yönlendirmesini kullanmaya devam ederken Vitest içe aktarma süresi + içe aktarma dökümü raporlamasını etkinleştirir.
- `pnpm test:perf:imports:changed`: aynı içe aktarma profillemesi, ancak yalnızca `origin/main` sonrasında değişen dosyalar için.
- `pnpm test:perf:changed:bench -- --ref <git-ref>` yönlendirilmiş changed-mode yolunu aynı commitlenmiş git diffi için native kök-proje çalıştırmasına karşı benchmark eder.
- `pnpm test:perf:changed:bench -- --worktree` mevcut worktree değişiklik kümesini önce commit etmeden benchmark eder.
- `pnpm test:perf:profile:main`: Vitest ana threadi için CPU profili yazar (`.artifacts/vitest-main-profile`).
- `pnpm test:perf:profile:runner`: birim runner için CPU + heap profilleri yazar (`.artifacts/vitest-runner-profile`).
- `pnpm test:perf:groups --full-suite --allow-failures --output .artifacts/test-perf/baseline-before.json`: her tam paket Vitest yaprak configini seri çalıştırır ve gruplanmış süre verileri ile config başına JSON/log artifactları yazar. Test Performance Agent bunu yavaş test düzeltmelerini denemeden önce baseline olarak kullanır.
- `pnpm test:extensions` ve `pnpm test extensions`, tüm extension/plugin shard'larını çalıştırır. Ağır kanal plugin'leri, tarayıcı plugin'i ve OpenAI özel shard'lar olarak çalışır; diğer plugin grupları toplu kalır. Tek bir paketli plugin kulvarı için `pnpm test extensions/<id>` kullanın.
- `pnpm test:perf:imports`: açık dosya/dizin hedefleri için kapsamlı kulvar yönlendirmeyi kullanmaya devam ederken Vitest içe aktarma-süresi + içe aktarma-dökümü raporlamasını etkinleştirir.
- `pnpm test:perf:imports:changed`: aynı içe aktarma profilini çıkarır, ancak yalnızca `origin/main` sonrasında değişen dosyalar için.
- `pnpm test:perf:changed:bench -- --ref <git-ref>`, yönlendirilen changed-mode yolunu aynı commit'lenmiş git farkı için yerel kök-proje çalıştırmasına karşı benchmark eder.
- `pnpm test:perf:changed:bench -- --worktree`, mevcut worktree değişiklik kümesini önce commit'lemeden benchmark eder.
- `pnpm test:perf:profile:main`: Vitest ana thread'i için CPU profili yazar (`.artifacts/vitest-main-profile`).
- `pnpm test:perf:profile:runner`: birim çalıştırıcısı için CPU + heap profilleri yazar (`.artifacts/vitest-runner-profile`).
- `pnpm test:perf:groups --full-suite --allow-failures --output .artifacts/test-perf/baseline-before.json`: her tam-paket Vitest yaprak config'ini seri olarak çalıştırır ve config başına JSON/günlük artifact'leriyle birlikte gruplanmış süre verilerini yazar. Test Performance Agent bunu yavaş-test düzeltmelerini denemeden önce baseline olarak kullanır.
- `pnpm test:perf:groups:compare .artifacts/test-perf/baseline-before.json .artifacts/test-perf/after-agent.json`: performans odaklı bir değişiklikten sonra gruplanmış raporları karşılaştırır.
- Gateway entegrasyonu: `OPENCLAW_TEST_INCLUDE_GATEWAY=1 pnpm test` veya `pnpm test:gateway` ile opt-in yapılır.
- `pnpm test:e2e`: Gateway uçtan uca smoke testlerini çalıştırır (çoklu örnek WS/HTTP/node eşleştirme). Varsayılan olarak `vitest.e2e.config.ts` içinde uyarlanabilir workerlarla `threads` + `isolate: false` kullanır; `OPENCLAW_E2E_WORKERS=<n>` ile ayarlayın ve ayrıntılı loglar için `OPENCLAW_E2E_VERBOSE=1` ayarlayın.
- `pnpm test:live`: sağlayıcı canlı testlerini (minimax/zai) çalıştırır. Atlamayı kaldırmak için API anahtarları ve `LIVE=1` (veya sağlayıcıya özel `*_LIVE_TEST=1`) gerektirir.
- `pnpm test:docker:all`: Paylaşılan canlı test imajını oluşturur, OpenClawı bir kez npm tarball olarak paketler, çıplak bir Node/Git runner imajı ile bu tarballı `/app` içine kuran işlevsel bir imajı oluşturur/yeniden kullanır, ardından Docker smoke şeritlerini ağırlıklı bir zamanlayıcı üzerinden `OPENCLAW_SKIP_DOCKER_BUILD=1` ile çalıştırır. Çıplak imaj (`OPENCLAW_DOCKER_E2E_BARE_IMAGE`) installer/update/plugin-dependency şeritleri için kullanılır; bu şeritler kopyalanmış repo kaynaklarını kullanmak yerine önceden oluşturulmuş tarballı mount eder. İşlevsel imaj (`OPENCLAW_DOCKER_E2E_FUNCTIONAL_IMAGE`) normal built-app işlevsellik şeritleri için kullanılır. `scripts/package-openclaw-for-docker.mjs` tek yerel/CI paketleyicisidir ve Docker kullanmadan önce tarball ile `dist/postinstall-inventory.json` doğrulaması yapar. Docker şerit tanımları `scripts/lib/docker-e2e-scenarios.mjs` içindedir; planlayıcı mantığı `scripts/lib/docker-e2e-plan.mjs` içindedir; `scripts/test-docker-all.mjs` seçili planı yürütür. `node scripts/test-docker-all.mjs --plan-json`, seçili şeritler, imaj türleri, paket/canlı imaj gereksinimleri, durum senaryoları ve kimlik bilgisi kontrolleri için zamanlayıcıya ait CI planını Docker oluşturmadan veya çalıştırmadan yayar. `OPENCLAW_DOCKER_ALL_PARALLELISM=<n>` işlem slotlarını kontrol eder ve varsayılanı 10dur; `OPENCLAW_DOCKER_ALL_TAIL_PARALLELISM=<n>` sağlayıcıya duyarlı tail poolu kontrol eder ve varsayılanı 10dur. Ağır şerit sınırları varsayılan olarak `OPENCLAW_DOCKER_ALL_LIVE_LIMIT=9`, `OPENCLAW_DOCKER_ALL_NPM_LIMIT=10` ve `OPENCLAW_DOCKER_ALL_SERVICE_LIMIT=7` değerleridir; sağlayıcı sınırları `OPENCLAW_DOCKER_ALL_LIVE_CLAUDE_LIMIT=4`, `OPENCLAW_DOCKER_ALL_LIVE_CODEX_LIMIT=4` ve `OPENCLAW_DOCKER_ALL_LIVE_GEMINI_LIMIT=4` üzerinden sağlayıcı başına bir ağır şerit varsayar. Daha büyük hostlar için `OPENCLAW_DOCKER_ALL_WEIGHT_LIMIT` veya `OPENCLAW_DOCKER_ALL_DOCKER_LIMIT` kullanın. Düşük paralellikli bir hostta bir şerit etkin ağırlık veya kaynak sınırını aşarsa yine de boş bir pooldan başlayabilir ve kapasiteyi serbest bırakana kadar tek başına çalışır. Yerel Docker daemon oluşturma fırtınalarını önlemek için şerit başlangıçları varsayılan olarak 2 saniye aralıklandırılır; `OPENCLAW_DOCKER_ALL_START_STAGGER_MS=<ms>` ile geçersiz kılın. Runner varsayılan olarak Docker preflight yapar, eski OpenClaw E2E containerlarını temizler, her 30 saniyede etkin şerit durumunu yayar, uyumlu şeritler arasında sağlayıcı CLI araç cachelerini paylaşır, geçici canlı sağlayıcı hatalarını varsayılan olarak bir kez yeniden dener (`OPENCLAW_DOCKER_ALL_LIVE_RETRIES=<n>`) ve sonraki çalıştırmalarda en uzundan önce sıralama için şerit zamanlamalarını `.artifacts/docker-tests/lane-timings.json` içinde saklar. Docker çalıştırmadan şerit manifestini yazdırmak için `OPENCLAW_DOCKER_ALL_DRY_RUN=1`, durum çıktısını ayarlamak için `OPENCLAW_DOCKER_ALL_STATUS_INTERVAL_MS=<ms>` veya zamanlama yeniden kullanımını devre dışı bırakmak için `OPENCLAW_DOCKER_ALL_TIMINGS=0` kullanın. Yalnızca deterministik/yerel şeritler için `OPENCLAW_DOCKER_ALL_LIVE_MODE=skip` veya yalnızca canlı sağlayıcı şeritleri için `OPENCLAW_DOCKER_ALL_LIVE_MODE=only` kullanın; paket aliasları `pnpm test:docker:local:all` ve `pnpm test:docker:live:all` şeklindedir. Yalnızca canlı modu, ana ve tail canlı şeritlerini tek bir en uzundan önce poolda birleştirir, böylece sağlayıcı bucketları Claude, Codex ve Gemini işlerini birlikte paketleyebilir. Runner, `OPENCLAW_DOCKER_ALL_FAIL_FAST=0` ayarlanmadıkça ilk hatadan sonra yeni pool şeritleri zamanlamayı durdurur ve her şeridin `OPENCLAW_DOCKER_ALL_LANE_TIMEOUT_MS` ile geçersiz kılınabilen 120 dakikalık fallback timeoutu vardır; seçili canlı/tail şeritler daha sıkı şerit başına sınırlar kullanır. CLI backend Docker kurulum komutlarının `OPENCLAW_LIVE_CLI_BACKEND_SETUP_TIMEOUT_SECONDS` üzerinden kendi timeoutu vardır (varsayılan 180). Şerit başına loglar, `summary.json`, `failures.json` ve faz zamanlamaları `.artifacts/docker-tests/<run-id>/` altına yazılır; yavaş şeritleri incelemek için `pnpm test:docker:timings <summary.json>` ve ucuz hedefli yeniden çalıştırma komutlarını yazdırmak için `pnpm test:docker:rerun <run-id|summary.json|failures.json>` kullanın.
- `pnpm test:docker:browser-cdp-snapshot`: Chromium destekli bir kaynak E2E containerı oluşturur, ham CDP ile yalıtılmış bir Gateway başlatır, `browser doctor --deep` çalıştırır ve CDP rol snapshotlarının link URLleri, cursor-promoted tıklanabilir öğeler, iframe refleri ve frame metadata içerdiğini doğrular.
- CLI backend canlı Docker probeları odaklı şeritler olarak çalıştırılabilir; örneğin `pnpm test:docker:live-cli-backend:codex`, `pnpm test:docker:live-cli-backend:codex:resume` veya `pnpm test:docker:live-cli-backend:codex:mcp`. Claude ve Gemini için eşleşen `:resume` ve `:mcp` aliasları vardır.
- `pnpm test:docker:openwebui`: Dockerize OpenClaw + Open WebUI başlatır, Open WebUI üzerinden oturum açar, `/api/models` kontrol eder, ardından `/api/chat/completions` üzerinden gerçek proxied chat çalıştırır. Kullanılabilir canlı model anahtarı gerektirir (örneğin `~/.profile` içinde OpenAI), harici bir Open WebUI imajı çeker ve normal unit/e2e paketleri kadar CI-kararlı olması beklenmez.
- `pnpm test:docker:mcp-channels`: Seed edilmiş bir Gateway containerı ve `openclaw mcp serve` başlatan ikinci bir istemci containerı başlatır; ardından gerçek stdio köprüsü üzerinden yönlendirilmiş konuşma keşfini, transcript okumalarını, ek metadatasını, canlı event queue davranışını, outbound gönderim yönlendirmesini ve Claude tarzı kanal + izin bildirimlerini doğrular. Claude bildirimi assertionı ham stdio MCP framelerini doğrudan okur, böylece smoke köprünün gerçekte ne yaydığını yansıtır.
- `pnpm test:docker:upgrade-survivor`: Paketlenmiş OpenClaw tarball'ını kirli bir eski kullanıcı fixture'ı üzerine yükler, canlı sağlayıcı veya kanal anahtarları olmadan paket güncellemesini ve etkileşimsiz doctor'ı çalıştırır, ardından bir loopback Gateway başlatır ve aracıların, kanal yapılandırmasının, Plugin izin listelerinin, çalışma alanı/oturum dosyalarının, eski Plugin runtime-deps durumunun, başlangıcın ve RPC durumunun korunduğunu denetler.
- Gateway entegrasyonu: `OPENCLAW_TEST_INCLUDE_GATEWAY=1 pnpm test` veya `pnpm test:gateway` ile isteğe bağlı etkinleştirin.
- `pnpm test:e2e`: Gateway uçtan uca duman testlerini çalıştırır (çoklu örnek WS/HTTP/node eşleştirme). `vitest.e2e.config.ts` içinde uyarlanabilir worker'larla varsayılan olarak `threads` + `isolate: false` kullanır; `OPENCLAW_E2E_WORKERS=<n>` ile ayarlayın ve ayrıntılı günlükler için `OPENCLAW_E2E_VERBOSE=1` ayarlayın.
- `pnpm test:live`: Sağlayıcı canlı testlerini (minimax/zai) çalıştırır. Atlamayı kaldırmak için API anahtarları ve `LIVE=1` (veya sağlayıcıya özgü `*_LIVE_TEST=1`) gerekir.
- `pnpm test:docker:all`: Paylaşılan canlı-test imajını oluşturur, OpenClaw'ı npm tarball olarak bir kez paketler, çıplak Node/Git çalıştırıcı imajı ile bu tarball'ı `/app` içine kuran işlevsel imajı oluşturur/yeniden kullanır, ardından ağırlıklı zamanlayıcı üzerinden `OPENCLAW_SKIP_DOCKER_BUILD=1` ile Docker duman kulvarlarını çalıştırır. Çıplak imaj (`OPENCLAW_DOCKER_E2E_BARE_IMAGE`) installer/update/plugin-dependency kulvarları için kullanılır; bu kulvarlar kopyalanmış depo kaynakları kullanmak yerine önceden oluşturulmuş tarball'ı mount eder. İşlevsel imaj (`OPENCLAW_DOCKER_E2E_FUNCTIONAL_IMAGE`) normal oluşturulmuş uygulama işlevsellik kulvarları için kullanılır. `scripts/package-openclaw-for-docker.mjs` tek yerel/CI paket paketleyicisidir ve Docker tüketmeden önce tarball ile `dist/postinstall-inventory.json` dosyasını doğrular. Docker kulvar tanımları `scripts/lib/docker-e2e-scenarios.mjs` içinde bulunur; planlayıcı mantığı `scripts/lib/docker-e2e-plan.mjs` içindedir; `scripts/test-docker-all.mjs` seçilen planı yürütür. `node scripts/test-docker-all.mjs --plan-json`, seçili kulvarlar, imaj türleri, paket/canlı-imaj ihtiyaçları, durum senaryoları ve kimlik bilgisi kontrolleri için zamanlayıcının sahip olduğu CI planını Docker oluşturmadan veya çalıştırmadan üretir. `OPENCLAW_DOCKER_ALL_PARALLELISM=<n>` süreç slotlarını kontrol eder ve varsayılanı 10'dur; `OPENCLAW_DOCKER_ALL_TAIL_PARALLELISM=<n>` sağlayıcıya duyarlı tail havuzunu kontrol eder ve varsayılanı 10'dur. Ağır kulvar sınırları varsayılan olarak `OPENCLAW_DOCKER_ALL_LIVE_LIMIT=9`, `OPENCLAW_DOCKER_ALL_NPM_LIMIT=10` ve `OPENCLAW_DOCKER_ALL_SERVICE_LIMIT=7` değerindedir; sağlayıcı sınırları `OPENCLAW_DOCKER_ALL_LIVE_CLAUDE_LIMIT=4`, `OPENCLAW_DOCKER_ALL_LIVE_CODEX_LIMIT=4` ve `OPENCLAW_DOCKER_ALL_LIVE_GEMINI_LIMIT=4` üzerinden sağlayıcı başına varsayılan olarak bir ağır kulvardır. Daha büyük host'lar için `OPENCLAW_DOCKER_ALL_WEIGHT_LIMIT` veya `OPENCLAW_DOCKER_ALL_DOCKER_LIMIT` kullanın. Bir kulvar düşük paralellikli host'ta etkili ağırlık veya kaynak sınırını aşarsa, yine de boş bir havuzdan başlayabilir ve kapasiteyi bırakana kadar tek başına çalışır. Yerel Docker daemon oluşturma fırtınalarını önlemek için kulvar başlangıçları varsayılan olarak 2 saniye aralıklandırılır; `OPENCLAW_DOCKER_ALL_START_STAGGER_MS=<ms>` ile geçersiz kılın. Çalıştırıcı varsayılan olarak Docker ön denetimi yapar, eski OpenClaw E2E container'larını temizler, her 30 saniyede aktif-kulvar durumunu üretir, uyumlu kulvarlar arasında sağlayıcı CLI araç cache'lerini paylaşır, geçici canlı-sağlayıcı hatalarını varsayılan olarak bir kez yeniden dener (`OPENCLAW_DOCKER_ALL_LIVE_RETRIES=<n>`) ve sonraki çalıştırmalarda en uzundan önce sıralama için kulvar zamanlamalarını `.artifacts/docker-tests/lane-timings.json` içinde depolar. Docker çalıştırmadan kulvar manifest'ini yazdırmak için `OPENCLAW_DOCKER_ALL_DRY_RUN=1`, durum çıktısını ayarlamak için `OPENCLAW_DOCKER_ALL_STATUS_INTERVAL_MS=<ms>` veya zamanlama yeniden kullanımını devre dışı bırakmak için `OPENCLAW_DOCKER_ALL_TIMINGS=0` kullanın. Yalnızca deterministik/yerel kulvarlar için `OPENCLAW_DOCKER_ALL_LIVE_MODE=skip` veya yalnızca canlı-sağlayıcı kulvarları için `OPENCLAW_DOCKER_ALL_LIVE_MODE=only` kullanın; paket alias'ları `pnpm test:docker:local:all` ve `pnpm test:docker:live:all` şeklindedir. Yalnızca-canlı mod, ana ve tail canlı kulvarlarını tek bir en-uzundan-önce havuzunda birleştirir; böylece sağlayıcı bucket'ları Claude, Codex ve Gemini işlerini birlikte paketleyebilir. Çalıştırıcı, `OPENCLAW_DOCKER_ALL_FAIL_FAST=0` ayarlanmadıkça ilk hatadan sonra yeni havuzlanmış kulvarları zamanlamayı durdurur ve her kulvarın `OPENCLAW_DOCKER_ALL_LANE_TIMEOUT_MS` ile geçersiz kılınabilen 120 dakikalık fallback zaman aşımı vardır; seçili canlı/tail kulvarlar daha sıkı kulvar başına sınırlar kullanır. CLI backend Docker kurulum komutlarının `OPENCLAW_LIVE_CLI_BACKEND_SETUP_TIMEOUT_SECONDS` (varsayılan 180) üzerinden kendi zaman aşımı vardır. Kulvar başına günlükler, `summary.json`, `failures.json` ve faz zamanlamaları `.artifacts/docker-tests/<run-id>/` altında yazılır; yavaş kulvarları incelemek için `pnpm test:docker:timings <summary.json>` ve ucuz hedefli yeniden çalıştırma komutlarını yazdırmak için `pnpm test:docker:rerun <run-id|summary.json|failures.json>` kullanın.
- `pnpm test:docker:browser-cdp-snapshot`: Chromium destekli bir kaynak E2E container'ı oluşturur, ham CDP ile yalıtılmış Gateway'i başlatır, `browser doctor --deep` çalıştırır ve CDP rol anlık görüntülerinin bağlantı URL'leri, imleçle yükseltilmiş tıklanabilirler, iframe ref'leri ve frame metadata'sı içerdiğini doğrular.
- CLI backend canlı Docker yoklamaları odaklı kulvarlar olarak çalıştırılabilir; örneğin `pnpm test:docker:live-cli-backend:codex`, `pnpm test:docker:live-cli-backend:codex:resume` veya `pnpm test:docker:live-cli-backend:codex:mcp`. Claude ve Gemini için eşleşen `:resume` ve `:mcp` alias'ları vardır.
- `pnpm test:docker:openwebui`: Docker'laştırılmış OpenClaw + Open WebUI başlatır, Open WebUI üzerinden oturum açar, `/api/models` kontrol eder, ardından `/api/chat/completions` üzerinden gerçek proxied chat çalıştırır. Kullanılabilir bir canlı model anahtarı (örneğin `~/.profile` içindeki OpenAI) gerektirir, harici bir Open WebUI imajı çeker ve normal birim/e2e paketleri kadar CI-kararlı olması beklenmez.
- `pnpm test:docker:mcp-channels`: Seed edilmiş bir Gateway container'ı ve `openclaw mcp serve` başlatan ikinci bir istemci container'ı başlatır, ardından yönlendirilmiş konuşma keşfini, transcript okumalarını, ek metadata'sını, canlı olay kuyruğu davranışını, giden gönderim yönlendirmesini ve gerçek stdio köprüsü üzerinden Claude tarzı kanal + izin bildirimlerini doğrular. Claude bildirim assertion'ı ham stdio MCP frame'lerini doğrudan okur; böylece duman testi köprünün gerçekte ürettiğini yansıtır.
- `pnpm test:docker:upgrade-survivor`: Paketlenmiş OpenClaw tarball'ını kirli bir eski kullanıcı test fikstürünün üzerine kurar, canlı sağlayıcı veya kanal anahtarları olmadan paket güncellemesini ve etkileşimsiz doctor'ı çalıştırır, ardından bir loopback Gateway başlatır ve ajanların, kanal yapılandırmasının, Plugin izin listelerinin, çalışma alanı/oturum dosyalarının, eski Plugin runtime-deps durumunun, başlangıcın ve RPC durumunun korunduğunu denetler.
- `pnpm test:docker:published-upgrade-survivor`: Varsayılan olarak `openclaw@latest` kurar, canlı sağlayıcı veya kanal anahtarları olmadan gerçekçi mevcut kullanıcı dosyalarını tohumlar, bu temeli yerleşik bir `openclaw config set` komut tarifiyle yapılandırır, yayımlanmış bu kurulumu paketlenmiş OpenClaw tarball'ına günceller, etkileşimsiz doctor'ı çalıştırır, `.artifacts/upgrade-survivor/summary.json` yazar, ardından bir loopback Gateway başlatır ve yapılandırılmış amaçların, çalışma alanı/oturum dosyalarının, eski Plugin yapılandırması/runtime-deps durumunun, başlangıcın, `/healthz`, `/readyz` ve RPC durumunun korunduğunu veya temiz biçimde onarıldığını denetler. Tek bir temeli `OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC` ile geçersiz kılın, kesin bir matrisi `OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPECS` ile genişletin veya `OPENCLAW_UPGRADE_SURVIVOR_SCENARIOS=reported-issues` ile senaryo fikstürleri ekleyin; Package Acceptance bunları `published_upgrade_survivor_baseline`, `published_upgrade_survivor_baselines` ve `published_upgrade_survivor_scenarios` olarak sunar.
## Yerel PR geçidi
Yerel PR land/geçit denetimleri için şunu çalıştırın:
Yerel PR birleştirme/geçit kontrolleri için şunu çalıştırın:
- `pnpm check:changed`
- `pnpm check`
@ -62,27 +63,27 @@ Yerel PR land/geçit denetimleri için şunu çalıştırın:
- `pnpm test`
- `pnpm check:docs`
`pnpm test` yük altındaki bir ana makinede kararsız başarısız olursa, bunu bir regresyon olarak değerlendirmeden önce bir kez yeniden çalıştırın, ardından `pnpm test <path/to/test>` ile izole edin. Bellek kısıtlı ana makineler için şunu kullanın:
`pnpm test` yüklü bir makinede kararsız sonuç verirse, bunu regresyon olarak değerlendirmeden önce bir kez yeniden çalıştırın, ardından `pnpm test <path/to/test>` ile izole edin. Belleği kısıtlı makineler için şunları kullanın:
- `OPENCLAW_VITEST_MAX_WORKERS=1 pnpm test`
- `OPENCLAW_VITEST_FS_MODULE_CACHE_PATH=/tmp/openclaw-vitest-cache pnpm test:changed`
## Model gecikme karşılaştırması (yerel anahtarlar)
## Model gecikme süresi kıyaslaması (yerel anahtarlar)
Betik: [`scripts/bench-model.ts`](https://github.com/openclaw/openclaw/blob/main/scripts/bench-model.ts)
Kullanım:
- `source ~/.profile && pnpm tsx scripts/bench-model.ts --runs 10`
- İsteğe bağlı ortam: `MINIMAX_API_KEY`, `MINIMAX_BASE_URL`, `MINIMAX_MODEL`, `ANTHROPIC_API_KEY`
- Varsayılan istem: “Tek bir sözcükle yanıt ver: ok. Noktalama işareti veya ek metin yok.”
- İsteğe bağlı ortam değişkenleri: `MINIMAX_API_KEY`, `MINIMAX_BASE_URL`, `MINIMAX_MODEL`, `ANTHROPIC_API_KEY`
- Varsayılan istem: “Tek bir sözcükle yanıt ver: ok. Noktalama işareti veya ekstra metin kullanma.”
Son çalıştırma (2025-12-31, 20 çalıştırma):
- minimax medyanı 1279 ms (min 1114, maks 2431)
- opus medyanı 2454 ms (min 1224, maks 3170)
- minimax medyanı 1279ms (min 1114, maks 2431)
- opus medyanı 2454ms (min 1224, maks 3170)
## CLI başlatma karşılaştırması
## CLI başlatma kıyaslaması
Betik: [`scripts/bench-cli-startup.ts`](https://github.com/openclaw/openclaw/blob/main/scripts/bench-cli-startup.ts)
@ -110,35 +111,35 @@ Kullanım:
- `real`: `health`, `status`, `status --json`, `sessions`, `sessions --json`, `tasks --json`, `tasks list --json`, `tasks audit --json`, `agents list --json`, `gateway status`, `gateway status --json`, `gateway health --json`, `config get gateway.port`
- `all`: iki ön ayar da
Çıktı, her komut için `sampleCount`, ortalama, p50, p95, min/maks, çıkış kodu/sinyal dağılımı ve maks RSS özetlerini içerir. İsteğe bağlı `--cpu-prof-dir` / `--heap-prof-dir`, çalıştırma başına V8 profilleri yazar; böylece zamanlama ve profil yakalama aynı harness'i kullanır.
Çıktı, her komut için `sampleCount`, ortalama, p50, p95, min/maks, çıkış kodu/sinyal dağılımı ve maksimum RSS özetlerini içerir. İsteğe bağlı `--cpu-prof-dir` / `--heap-prof-dir`, zamanlama ve profil yakalamanın aynı koşum takımını kullanması için her çalıştırma başına V8 profilleri yazar.
Kaydedilen çıktı kuralları:
- `pnpm test:startup:bench:smoke`, hedefli smoke yapıtını `.artifacts/cli-startup-bench-smoke.json` konumuna yazar
- `pnpm test:startup:bench:smoke`, hedeflenen duman testi yapıtını `.artifacts/cli-startup-bench-smoke.json` konumuna yazar
- `pnpm test:startup:bench:save`, `runs=5` ve `warmup=1` kullanarak tam paket yapıtını `.artifacts/cli-startup-bench-all.json` konumuna yazar
- `pnpm test:startup:bench:update`, `runs=5` ve `warmup=1` kullanarak depoya işlenmiş temel fixture'ı `test/fixtures/cli-startup-bench.json` konumunda yeniler
- `pnpm test:startup:bench:update`, `runs=5` ve `warmup=1` kullanarak depoya eklenmiş temel çizgi fikstürünü `test/fixtures/cli-startup-bench.json` konumunda yeniler
Depoya işlenmiş fixture:
Depoya eklenmiş fikstür:
- `test/fixtures/cli-startup-bench.json`
- `pnpm test:startup:bench:update` ile yenileyin
- Mevcut sonuçları `pnpm test:startup:bench:check` ile fixture'a karşı karşılaştırın
- Geçerli sonuçları fikstürle `pnpm test:startup:bench:check` kullanarak karşılaştırın
## Onboarding E2E (Docker)
Docker isteğe bağlıdır; bu yalnızca konteynerleştirilmiş onboarding smoke testleri için gereklidir.
Docker isteğe bağlıdır; bu yalnızca konteynerleştirilmiş onboarding duman testleri için gereklidir.
Temiz bir Linux konteynerinde tam cold-start akışı:
Temiz bir Linux konteynerinde tam soğuk başlatma akışı:
```bash
scripts/e2e/onboard-docker.sh
```
Bu betik, etkileşimli sihirbazı bir pseudo-tty üzerinden sürer, yapılandırma/çalışma alanı/oturum dosyalarını doğrular, ardından Gateway'i başlatır ve `openclaw health` çalıştırır.
Bu betik, etkileşimli sihirbazı bir sözde TTY üzerinden yürütür, config/workspace/session dosyalarını doğrular, ardından Gatewayi başlatır ve `openclaw health` çalıştırır.
## QR içe aktarma smoke testi (Docker)
## QR içe aktarma duman testi (Docker)
Bakımı yapılan QR runtime yardımcısının desteklenen Docker Node runtime'ları altında yüklendiğinden emin olur (Node 24 varsayılan, Node 22 uyumlu):
Bakımı sürdürülen QR çalışma zamanı yardımcısının desteklenen Docker Node çalışma zamanlarında (varsayılan Node 24, uyumlu Node 22) yüklendiğinden emin olur:
```bash
pnpm test:docker:qr
@ -147,4 +148,4 @@ pnpm test:docker:qr
## İlgili
- [Test Etme](/tr/help/testing)
- [Canlı test etme](/tr/help/testing-live)
- [Canlı Test Etme](/tr/help/testing-live)

View File

@ -1,40 +1,40 @@
---
read_when:
- SSRF ve DNS yeniden bağlama saldırılarına karşı derinlemesine savunma istiyorsunuz
- SSRF ve DNS yeniden bağlama saldırılarına karşı çok katmanlı savunma istiyorsunuz
- OpenClaw çalışma zamanı trafiği için harici bir ileri proxy yapılandırma
summary: OpenClaw çalışma zamanı HTTP ve WebSocket trafiğini operatör tarafından yönetilen bir filtreleme proxy'si üzerinden yönlendirme
title: Ağ vekil sunucusu
title: Ağ proxy'si
x-i18n:
generated_at: "2026-04-30T09:45:50Z"
generated_at: "2026-05-01T09:04:46Z"
model: gpt-5.5
provider: openai
source_hash: c4e879f787571410acdda55dcdbb5fd77aef1d24045af5c9208cba51330a70ca
source_hash: 9207d349e4410e38631ae7665be19b536e4a4128a4e80dd095e802804dfd66a3
source_path: security/network-proxy.md
workflow: 16
---
# Ağ Proxysi
# Ağ Proxy'si
OpenClaw, çalışma zamanı HTTP ve WebSocket trafiğini operatör tarafından yönetilen bir ileri proxy üzerinden yönlendirebilir. Bu, merkezi çıkış denetimi, daha güçlü SSRF koruması ve daha iyi ağ denetlenebilirliği isteyen dağıtımlar için isteğe bağlı katmanlı savunmadır.
OpenClaw, çalışma zamanı HTTP ve WebSocket trafiğini operatör tarafından yönetilen bir forward proxy üzerinden yönlendirebilir. Bu, merkezi çıkış denetimi, daha güçlü SSRF koruması ve daha iyi ağ denetlenebilirliği isteyen dağıtımlar için isteğe bağlı katmanlı savunmadır.
OpenClaw bir proxy göndermez, indirmez, başlatmaz, yapılandırmaz veya sertifikalandırmaz. Ortamınıza uygun proxy teknolojisini siz çalıştırırsınız; OpenClaw da normal süreç içi HTTP ve WebSocket istemcilerini bunun üzerinden yönlendirir.
OpenClaw bir proxy göndermez, indirmez, başlatmaz, yapılandırmaz veya sertifikalandırmaz. Ortamınıza uygun proxy teknolojisini siz çalıştırırsınız ve OpenClaw normal süreç yerel HTTP ve WebSocket istemcilerini bunun üzerinden yönlendirir.
## Neden Proxy Kullanılır?
## Neden Proxy Kullanılmalı?
Proxy, operatörlere giden HTTP ve WebSocket trafiği için tek bir ağ denetim noktası sağlar. Bu, SSRF sertleştirmesi dışında da yararlı olabilir:
Proxy, operatörlere giden HTTP ve WebSocket trafiği için tek bir ağ denetim noktası sağlar. Bu, SSRF güçlendirmesi dışında da yararlı olabilir:
- Merkezi ilke: her uygulama HTTP çağrı noktasının ağ kurallarını doğru uygulamasına güvenmek yerine tek bir çıkış ilkesini sürdürün.
- Bağlantı zamanı kontrolleri: hedefi DNS çözümlemesinden sonra ve proxy yukarı akış bağlantısını açmadan hemen önce değerlendirin.
- DNS rebinding savunması: uygulama düzeyindeki DNS kontrolü ile gerçek giden bağlantı arasındaki boşluğu azaltın.
- Daha geniş JavaScript kapsaması: sıradan `fetch`, `node:http`, `node:https`, WebSocket, axios, got, node-fetch ve benzer istemcileri aynı yol üzerinden yönlendirin.
- Merkezi politika: ağ kurallarını doğru uygulaması için her uygulama HTTP çağrı noktasına güvenmek yerine tek bir çıkış politikası sürdürün.
- Bağlantı zamanı denetimleri: DNS çözümlemesinden sonra ve proxy yukarı akış bağlantısını açmadan hemen önce hedefi değerlendirin.
- DNS yeniden bağlama savunması: uygulama düzeyindeki DNS denetimi ile gerçek giden bağlantı arasındaki boşluğu azaltın.
- Daha geniş JavaScript kapsamı: sıradan `fetch`, `node:http`, `node:https`, WebSocket, axios, got, node-fetch ve benzeri istemcileri aynı yol üzerinden yönlendirin.
- Denetlenebilirlik: çıkış sınırında izin verilen ve reddedilen hedefleri günlüğe kaydedin.
- Operasyonel denetim: OpenClawı yeniden oluşturmadan hedef kurallarını, ağ segmentasyonunu, hız sınırlarını veya giden izin listelerini uygulayın.
- Operasyonel denetim: OpenClaw'ı yeniden oluşturmadan hedef kurallarını, ağ segmentasyonunu, hız sınırlarını veya giden izin listelerini uygulayın.
Proxy yönlendirmesi, normal HTTP ve WebSocket çıkışı için süreç düzeyinde bir korkuluktur. Operatörlere, desteklenen JavaScript HTTP istemcilerini kendi filtreleme proxyleri üzerinden yönlendirmek için hata durumunda kapalı bir yol sağlar; ancak işletim sistemi düzeyinde bir ağ sanal alanı değildir ve OpenClawın proxynin hedef ilkesini sertifikalandırmasını sağlamaz.
Proxy yönlendirme, normal HTTP ve WebSocket çıkışı için süreç düzeyinde bir güvenlik korkuluğudur. Operatörlere desteklenen JavaScript HTTP istemcilerini kendi filtreleme proxy'leri üzerinden yönlendirmek için hata durumunda kapalı bir yol sağlar, ancak işletim sistemi düzeyinde bir ağ sandbox'ı değildir ve OpenClaw'ın proxy'nin hedef politikasını sertifikalandırmasını sağlamaz.
## OpenClaw Trafiği Nasıl Yönlendirir?
`proxy.enabled=true` olduğunda ve bir proxy URLsi yapılandırıldığında, `openclaw gateway run`, `openclaw node run` ve `openclaw agent --local` gibi korumalı çalışma zamanı süreçleri normal HTTP ve WebSocket çıkışını yapılandırılmış proxy üzerinden yönlendirir:
`proxy.enabled=true` olduğunda ve bir proxy URL'si yapılandırıldığında, `openclaw gateway run`, `openclaw node run` ve `openclaw agent --local` gibi korumalı çalışma zamanı süreçleri normal HTTP ve WebSocket çıkışını yapılandırılan proxy üzerinden yönlendirir:
```text
OpenClaw process
@ -43,27 +43,27 @@ OpenClaw process
WebSocket clients -> operator-managed filtering proxy -> public internet
```
Genel sözleşme, bunu uygulamak için kullanılan dahili Node kancaları değil, yönlendirme davranışıdır. OpenClaw Gateway denetim düzlemi WebSocket istemcileri, Gateway URLsi `localhost` veya `127.0.0.1` ya da `[::1]` gibi gerçek bir loopback IP kullandığında local loopback Gateway RPC trafiği için dar bir doğrudan yol kullanır. Bu denetim düzlemi yolu, operatör proxysi loopback hedeflerini engellese bile loopback Gatewaylere ulaşabilmelidir. Normal çalışma zamanı HTTP ve WebSocket istekleri yine de yapılandırılmış proxyyi kullanır.
Genel sözleşme, bunu uygulamak için kullanılan dahili Node hook'ları değil, yönlendirme davranışıdır. OpenClaw Gateway denetim düzlemi WebSocket istemcileri, Gateway URL'si `localhost` veya `127.0.0.1` ya da `[::1]` gibi gerçek bir loopback IP kullandığında local loopback Gateway RPC trafiği için dar bir doğrudan yol kullanır. Bu denetim düzlemi yolu, operatör proxy'si loopback hedeflerini engellese bile loopback Gateway'lerine ulaşabilmelidir. Normal çalışma zamanı HTTP ve WebSocket istekleri yine de yapılandırılan proxy'yi kullanır.
OpenClaw, bu özellik için dahili olarak iki süreç düzeyinde yönlendirme kancası kullanır:
Dahili olarak OpenClaw, bu özellik için süreç düzeyinde iki yönlendirme hook'u kullanır:
- Undici gönderici yönlendirmesi `fetch`, undici destekli istemciler ve kendi undici göndericisini sağlayan aktarımları kapsar.
- `global-agent` yönlendirmesi, `http.request`, `https.request`, `http.get` ve `https.get` üzerine katmanlanan birçok kitaplık dahil olmak üzere Node çekirdeği `node:http` ve `node:https` çağıranlarını kapsar. Yönetilen proxy modu bu global agentı zorunlu kılar, böylece açık Node HTTP agentları operatör proxysini yanlışlıkla atlamaz.
- Undici dispatcher yönlendirmesi `fetch`, undici destekli istemcileri ve kendi undici dispatcher'ını sağlayan aktarımları kapsar.
- `global-agent` yönlendirmesi, `http.request`, `https.request`, `http.get` ve `https.get` üzerine katmanlanan birçok kitaplık dahil olmak üzere Node çekirdeği `node:http` ve `node:https` çağıranlarını kapsar. Yönetilen proxy modu bu global agent'ı zorunlu kılar; böylece açık Node HTTP agent'ları operatör proxy'sini kazara atlayamaz.
Bazı Pluginler, süreç düzeyinde yönlendirme mevcut olsa bile açık proxy bağlantısı gerektiren özel aktarımlara sahiptir. Örneğin, Telegramın Bot API aktarımı kendi HTTP/1 undici göndericisini kullanır ve bu nedenle süreç proxy env değerlerine ek olarak o sahiplik alanına özgü aktarım yolunda yönetilen `OPENCLAW_PROXY_URL` yedeğine uyar.
Bazı plugin'ler, süreç düzeyinde yönlendirme mevcut olsa bile açık proxy bağlantısı gerektiren özel aktarımlara sahiptir. Örneğin Telegram'ın Bot API aktarımı kendi HTTP/1 undici dispatcher'ını kullanır ve bu nedenle süreç proxy ortamını ve bu sahip özel aktarım yolunda yönetilen `OPENCLAW_PROXY_URL` yedeğini dikkate alır.
Proxy URLsinin kendisi `http://` kullanmalıdır. HTTPS hedefleri proxy üzerinden HTTP `CONNECT` ile hâlâ desteklenir; bu yalnızca OpenClawın `http://127.0.0.1:3128` gibi düz bir HTTP ileri proxy dinleyicisi beklediği anlamına gelir.
Proxy URL'sinin kendisi `http://` kullanmalıdır. HTTPS hedefleri proxy üzerinden HTTP `CONNECT` ile hâlâ desteklenir; bu yalnızca OpenClaw'ın `http://127.0.0.1:3128` gibi düz HTTP forward-proxy dinleyicisi beklediği anlamına gelir.
Proxy etkinken OpenClaw `no_proxy`, `NO_PROXY` ve `GLOBAL_AGENT_NO_PROXY` değerlerini temizler. Bu atlama listeleri hedef tabanlıdır; bu nedenle `localhost` veya `127.0.0.1` değerlerini orada bırakmak, yüksek riskli SSRF hedeflerinin filtreleme proxysini atlamasına izin verir.
Proxy etkinken OpenClaw `no_proxy`, `NO_PROXY` ve `GLOBAL_AGENT_NO_PROXY` değerlerini temizler. Bu atlama listeleri hedef tabanlıdır; bu nedenle `localhost` veya `127.0.0.1` değerlerini orada bırakmak, yüksek riskli SSRF hedeflerinin filtreleme proxy'sini atlamasına izin verirdi.
Kapanışta OpenClaw önceki proxy ortamını geri yükler ve önbelleğe alınmış süreç yönlendirme durumunu sıfırlar.
## İlgili Proxy Terimleri
- `proxy.enabled` / `proxy.proxyUrl`: OpenClaw çalışma zamanı çıkışı için giden ileri proxy yönlendirmesi. Bu sayfa bu özelliği belgeler.
- `gateway.auth.mode: "trusted-proxy"`: Gateway erişimi için gelen kimlik farkındalıklı ters proxy kimlik doğrulaması. Bkz. [Güvenilen proxy kimlik doğrulaması](/tr/gateway/trusted-proxy-auth).
- `openclaw proxy`: geliştirme ve destek için yerel hata ayıklama proxysi ve yakalama inceleyicisi. Bkz. [openclaw proxy](/tr/cli/proxy).
- Kanala veya sağlayıcıya özgü proxy ayarları: belirli bir aktarım için sahiplik alanına özgü geçersiz kılmalar. Amaç çalışma zamanı genelinde merkezi çıkış denetimiyse yönetilen ağ proxysini tercih edin.
- `proxy.enabled` / `proxy.proxyUrl`: OpenClaw çalışma zamanı çıkışı için giden forward-proxy yönlendirmesi. Bu sayfa bu özelliği belgeler.
- `gateway.auth.mode: "trusted-proxy"`: Gateway erişimi için gelen kimlik farkında reverse-proxy kimlik doğrulaması. Bkz. [Güvenilen proxy kimlik doğrulaması](/tr/gateway/trusted-proxy-auth).
- `openclaw proxy`: geliştirme ve destek için yerel hata ayıklama proxy'si ve yakalama inceleyicisi. Bkz. [openclaw proxy](/tr/cli/proxy).
- Kanala veya sağlayıcıya özgü proxy ayarları: belirli bir aktarım için sahip özel geçersiz kılmaları. Amaç çalışma zamanı genelinde merkezi çıkış denetimi olduğunda yönetilen ağ proxy'sini tercih edin.
## Yapılandırma
@ -73,17 +73,17 @@ proxy:
proxyUrl: http://127.0.0.1:3128
```
URLyi ortam üzerinden de sağlayabilir, yapılandırmada `proxy.enabled=true` değerini koruyabilirsiniz:
URL'yi ortam üzerinden de sağlayabilirsiniz; yapılandırmada `proxy.enabled=true` tutulur:
```bash
OPENCLAW_PROXY_URL=http://127.0.0.1:3128 openclaw gateway run
```
`proxy.proxyUrl`, `OPENCLAW_PROXY_URL` değerinden önceliklidir.
`proxy.proxyUrl`, `OPENCLAW_PROXY_URL` değerine göre önceliklidir.
`enabled=true` ise ancak geçerli bir proxy URLsi yapılandırılmamışsa, korumalı komutlar doğrudan ağ erişimine geri dönmek yerine başlangıçta başarısız olur.
`enabled=true` ise ancak geçerli bir proxy URL'si yapılandırılmamışsa, korumalı komutlar doğrudan ağ erişimine geri dönmek yerine başlatmada başarısız olur.
`openclaw gateway start` ile başlatılan yönetilen Gateway hizmetleri için URLyi yapılandırmada saklamayı tercih edin:
`openclaw gateway start` ile başlatılan yönetilen Gateway hizmetleri için URL'yi yapılandırmada saklamayı tercih edin:
```bash
openclaw config set proxy.enabled true
@ -92,55 +92,85 @@ openclaw gateway install --force
openclaw gateway start
```
Ortam yedeği ön planda çalıştırmalar için en uygunudur. Bunu yüklü bir hizmetle kullanırsanız, `OPENCLAW_PROXY_URL` değerini `$OPENCLAW_STATE_DIR/.env` veya `~/.openclaw/.env` gibi hizmetin kalıcı ortamına koyun, ardından launchd, systemd veya Scheduled Tasksın gatewayi bu değerle başlatması için hizmeti yeniden yükleyin.
Ortam yedeği en çok ön plan çalıştırmaları için uygundur. Kurulu bir hizmetle kullanırsanız, `OPENCLAW_PROXY_URL` değerini `$OPENCLAW_STATE_DIR/.env` veya `~/.openclaw/.env` gibi hizmetin kalıcı ortamına koyun, ardından launchd, systemd veya Scheduled Tasks Gateway'i bu değerle başlatsın diye hizmeti yeniden kurun.
`openclaw --container ...` komutları için OpenClaw, ayarlı olduğunda `OPENCLAW_PROXY_URL` değerini container hedefli alt CLIye iletir. URL container içinden erişilebilir olmalıdır; `127.0.0.1` ana makineyi değil containerın kendisini ifade eder. OpenClaw, bu güvenlik kontrolünü açıkça geçersiz kılmadığınız sürece container hedefli komutlar için loopback proxy URLlerini reddeder.
`openclaw --container ...` komutları için OpenClaw, ayarlandığında `OPENCLAW_PROXY_URL` değerini container hedefli alt CLI'ye iletir. URL, container içinden erişilebilir olmalıdır; `127.0.0.1` ana bilgisayarı değil container'ın kendisini ifade eder. OpenClaw, bu güvenlik denetimini açıkça geçersiz kılmadığınız sürece container hedefli komutlar için loopback proxy URL'lerini reddeder.
## Proxy Gereksinimleri
Proxy ilkesi güvenlik sınırıdır. OpenClaw, proxynin doğru hedefleri engellediğini doğrulayamaz.
Proxy politikası güvenlik sınırıdır. OpenClaw, proxy'nin doğru hedefleri engellediğini doğrulayamaz.
Proxyyi şu şekilde yapılandırın:
Proxy'yi şu şekilde yapılandırın:
- Yalnızca loopbacke veya özel güvenilen bir arayüze bağlansın.
- Erişimi, yalnızca OpenClaw süreci, ana makine, container veya hizmet hesabı kullanabilecek şekilde kısıtlasın.
- Hedefleri kendisi çözümlesin ve DNS çözümlemesinden sonra hedef IPleri engellesin.
- Hem düz HTTP istekleri hem de HTTPS `CONNECT` tünelleri için ilkeyi bağlantı zamanında uygulasın.
- Loopback, özel, link-local, metadata, multicast, ayrılmış veya dokümantasyon aralıkları için hedef tabanlı atlamaları reddetsin.
- DNS çözümleme yoluna tamamen güvenmiyorsanız ana makine adı izin listelerinden kaçının.
- İstek gövdelerini, yetkilendirme üst bilgilerini, çerezleri veya diğer sırları günlüğe kaydetmeden hedefi, kararı, durumu ve nedeni günlüğe kaydetsin.
- Proxy ilkesini sürüm denetiminde tutun ve değişiklikleri güvenlik açısından hassas yapılandırma gibi inceleyin.
- Yalnızca loopback'e veya özel güvenilir bir arayüze bağlanın.
- Erişimi yalnızca OpenClaw süreci, ana bilgisayar, container veya hizmet hesabı kullanabilecek şekilde kısıtlayın.
- Hedefleri kendisi çözümlesin ve DNS çözümlemesinden sonra hedef IP'leri engellesin.
- Hem düz HTTP istekleri hem de HTTPS `CONNECT` tünelleri için politikayı bağlantı zamanında uygulayın.
- Loopback, özel, link-local, metadata, multicast, ayrılmış veya dokümantasyon aralıkları için hedef tabanlı atlamaları reddedin.
- DNS çözümleme yoluna tamamen güvenmediğiniz sürece ana bilgisayar adı izin listelerinden kaçının.
- İstek gövdelerini, yetkilendirme başlıklarını, çerezleri veya diğer gizli bilgileri günlüğe kaydetmeden hedefi, kararı, durumu ve nedeni günlüğe kaydedin.
- Proxy politikasını sürüm denetimi altında tutun ve değişiklikleri güvenlik açısından hassas yapılandırma gibi gözden geçirin.
## Önerilen Engellenen Hedefler
## Önerilen Engellenmiş Hedefler
Bu reddetme listesini herhangi bir ileri proxy, güvenlik duvarı veya çıkış ilkesi için başlangıç noktası olarak kullanın.
Bu reddetme listesini herhangi bir forward proxy, güvenlik duvarı veya çıkış politikası için başlangıç noktası olarak kullanın.
OpenClaw uygulama düzeyindeki sınıflandırıcı mantığı `src/infra/net/ssrf.ts` ve `src/shared/net/ip.ts` içinde bulunur. İlgili parite kancaları `BLOCKED_HOSTNAMES`, `BLOCKED_IPV4_SPECIAL_USE_RANGES`, `BLOCKED_IPV6_SPECIAL_USE_RANGES`, `RFC2544_BENCHMARK_PREFIX` ve NAT64, 6to4, Teredo, ISATAP ve IPv4 eşlemeli biçimler için gömülü IPv4 sentinel işlemedir. Bu dosyalar, harici bir proxy ilkesini sürdürürken yararlı başvuru kaynaklarıdır; ancak OpenClaw bu kuralları proxynize otomatik olarak dışa aktarmaz veya orada uygulamaz.
OpenClaw uygulama düzeyi sınıflandırıcı mantığı `src/infra/net/ssrf.ts` ve `src/shared/net/ip.ts` içinde bulunur. İlgili parite hook'ları `BLOCKED_HOSTNAMES`, `BLOCKED_IPV4_SPECIAL_USE_RANGES`, `BLOCKED_IPV6_SPECIAL_USE_RANGES`, `RFC2544_BENCHMARK_PREFIX` ve NAT64, 6to4, Teredo, ISATAP ve IPv4 eşlemeli biçimler için gömülü IPv4 sentinel işlemesidir. Bu dosyalar harici bir proxy politikası sürdürürken yararlı referanslardır, ancak OpenClaw bu kuralları proxy'nize otomatik olarak dışa aktarmaz veya proxy'nizde uygulamaz.
| Aralık veya ana makine | Engelleme nedeni |
| Aralık veya ana bilgisayar | Neden engellenmeli |
| ------------------------------------------------------------------------------------ | ---------------------------------------------------- |
| `127.0.0.0/8`, `localhost`, `localhost.localdomain` | IPv4 loopback |
| `::1/128` | IPv6 loopback |
| `0.0.0.0/8`, `::/128` | Belirtilmemiş ve bu ağ adresleri |
| `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16` | RFC1918 özel ağları |
| `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16` | RFC1918 özel ağlar |
| `169.254.0.0/16`, `fe80::/10` | Link-local adresler ve yaygın bulut metadata yolları |
| `169.254.169.254`, `metadata.google.internal` | Bulut metadata hizmetleri |
| `100.64.0.0/10` | Operatör sınıfı NAT paylaşımlı adres alanı |
| `198.18.0.0/15`, `2001:2::/48` | Karşılaştırma testi aralıkları |
| `100.64.0.0/10` | Taşıyıcı sınıfı NAT paylaşımlı adres alanı |
| `198.18.0.0/15`, `2001:2::/48` | Kıyaslama aralıkları |
| `192.0.0.0/24`, `192.0.2.0/24`, `198.51.100.0/24`, `203.0.113.0/24`, `2001:db8::/32` | Özel kullanım ve dokümantasyon aralıkları |
| `224.0.0.0/4`, `ff00::/8` | Multicast |
| `240.0.0.0/4` | Ayrılmış IPv4 |
| `fc00::/7`, `fec0::/10` | IPv6 yerel/özel aralıkları |
| `fc00::/7`, `fec0::/10` | IPv6 yerel/özel aralıklar |
| `100::/64`, `2001:20::/28` | IPv6 discard ve ORCHIDv2 aralıkları |
| `64:ff9b::/96`, `64:ff9b:1::/48` | Gömülü IPv4 içeren NAT64 önekleri |
| `2002::/16`, `2001::/32` | Gömülü IPv4 içeren 6to4 ve Teredo |
| `::/96`, `::ffff:0:0/96` | IPv4 uyumlu ve IPv4 eşlemeli IPv6 |
Bulut sağlayıcınız veya ağ platformunuz ek metadata ana makineleri ya da ayrılmış aralıklar belgeliyorsa, bunları da ekleyin.
Bulut sağlayıcınız veya ağ platformunuz ek metadata ana bilgisayarları ya da ayrılmış aralıklar belgeliyorsa, bunları da ekleyin.
## Doğrulama
Proxyyi OpenClawı çalıştıran aynı ana makineden, containerdan veya hizmet hesabından doğrulayın:
Proxy'yi OpenClaw'ı çalıştıran aynı ana bilgisayardan, container'dan veya hizmet hesabından doğrulayın:
```bash
openclaw proxy validate --proxy-url http://127.0.0.1:3128
```
Varsayılan olarak, özel hedef sağlanmadığında komut `https://example.com/` adresinin başarılı olduğunu denetler ve proxy'nin ulaşmaması gereken geçici bir loopback canary başlatır. Varsayılan reddedilen denetim, proxy 2xx olmayan bir reddetme yanıtı döndürdüğünde veya canary'yi bir aktarım hatasıyla engellediğinde geçer; başarılı bir yanıt canary'ye ulaşırsa başarısız olur. Proxy etkinleştirilmemiş ve yapılandırılmamışsa doğrulama bir yapılandırma sorunu bildirir; yapılandırmayı değiştirmeden önce tek seferlik ön denetim için `--proxy-url` kullanın. Dağıtıma özgü beklentileri test etmek için `--allowed-url` ve `--denied-url` kullanın. Özel reddedilen hedefler hata durumunda kapalıdır: herhangi bir HTTP yanıtı, hedefe proxy üzerinden ulaşılabildiği anlamına gelir ve herhangi bir aktarım hatası sonuçsuz olarak bildirilir çünkü OpenClaw proxy'nin ulaşılabilir bir origin'i engellediğini kanıtlayamaz. Doğrulama hatasında komut kod 1 ile çıkar.
Otomasyon için `--json` kullanın. JSON çıktısı genel sonucu, etkin proxy yapılandırma kaynağını, yapılandırma hatalarını ve her hedef denetimini içerir. Proxy URL kimlik bilgileri metin ve JSON çıktısında sansürlenir:
```json
{
"ok": true,
"config": {
"enabled": true,
"proxyUrl": "http://127.0.0.1:3128/",
"source": "override",
"errors": []
},
"checks": [
{
"kind": "allowed",
"url": "https://example.com/",
"ok": true,
"status": 200
}
]
}
```
`curl` ile manuel olarak da doğrulayabilirsiniz:
```bash
curl -x http://127.0.0.1:3128 https://example.com/
@ -148,7 +178,7 @@ curl -x http://127.0.0.1:3128 http://127.0.0.1/
curl -x http://127.0.0.1:3128 http://169.254.169.254/
```
Genel istek başarılı olmalıdır. Loopback ve metadata istekleri proxyde başarısız olmalıdır.
Genel istek başarılı olmalıdır. Loopback ve meta veri istekleri proxy tarafından engellenmelidir. `openclaw proxy validate` için yerleşik loopback kanaryası, proxy reddini erişilebilir bir kaynaktan ayırt edebilir. Özel `--denied-url` kontrollerinde bu kanarya yoktur; bu nedenle proxyniz ayrı olarak doğrulayabileceğiniz dağıtıma özgü bir red sinyali sunmadığı sürece hem HTTP yanıtlarını hem de belirsiz aktarım hatalarını doğrulama hataları olarak ele alın.
Ardından OpenClaw proxy yönlendirmesini etkinleştirin:
@ -168,9 +198,9 @@ proxy:
## Sınırlar
- Proxy, süreç içi JavaScript HTTP ve WebSocket istemcileri için kapsamı iyileştirir; ancak işletim sistemi düzeyinde bir ağ sanal alanı değildir.
- Proxy, süreç yerelindeki JavaScript HTTP ve WebSocket istemcileri için kapsamı iyileştirir, ancak işletim sistemi düzeyinde bir ağ korumalı alanı değildir.
- Ham `net`, `tls` ve `http2` soketleri, yerel eklentiler ve alt süreçler, proxy ortam değişkenlerini devralıp bunlara uymadıkları sürece Node düzeyindeki proxy yönlendirmesini atlayabilir.
- Kullanıcı yerel WebUIleri ve yerel model sunucuları, gerektiğinde operatör proxy ilkesinde izin listesine alınmalıdır; OpenClaw bunlar için genel bir yerel ağ atlaması sunmaz.
- Gateway denetim düzlemi proxy atlaması kasıtlı olarak `localhost` ve gerçek loopback IP URLleriyle sınırlıdır. Yerel doğrudan Gateway denetim düzlemi bağlantıları için `ws://127.0.0.1:18789`, `ws://[::1]:18789` veya `ws://localhost:18789` kullanın; diğer ana makine adları sıradan ana makine adı tabanlı trafik gibi yönlendirilir.
- OpenClaw proxy ilkenizi incelemez, test etmez veya sertifikalandırmaz.
- Kullanıcı yerel WebUIleri ve yerel model sunucuları gerektiğinde operatör proxy ilkesinde izin verilenler listesine alınmalıdır; OpenClaw bunlar için genel bir yerel ağ atlaması sunmaz.
- Gateway kontrol düzlemi proxy atlaması, kasıtlı olarak `localhost` ve açık loopback IP URLleriyle sınırlıdır. Yerel doğrudan Gateway kontrol düzlemi bağlantıları için `ws://127.0.0.1:18789`, `ws://[::1]:18789` veya `ws://localhost:18789` kullanın; diğer ana makine adları sıradan ana makine adı tabanlı trafik gibi yönlendirilir.
- OpenClaw, proxy ilkenizi incelemez, test etmez veya sertifikalandırmaz.
- Proxy ilkesi değişikliklerini güvenlik açısından hassas operasyonel değişiklikler olarak ele alın.

File diff suppressed because it is too large Load Diff

View File

@ -1,38 +1,38 @@
---
read_when:
- Plugin yükleme veya yapılandırma
- Pluginleri yükleme veya yapılandırma
- Plugin keşfini ve yükleme kurallarını anlama
- Codex/Claude uyumlu Plugin paketleriyle çalışma
sidebarTitle: Install and Configure
summary: OpenClaw Plugin'lerini yükleyin, yapılandırın ve yönetin
title: Pluginler
title: Pluginler
x-i18n:
generated_at: "2026-04-30T09:50:29Z"
generated_at: "2026-05-01T09:05:02Z"
model: gpt-5.5
provider: openai
source_hash: 7a12d158053c13b47a56d8d6b382818962e9b5109fdf8ededd3ecf92b83089e6
source_hash: 2df8aca086aafbd8f268820f1ccc2425079c69f1a673a4c2ea163aba1358ff51
source_path: tools/plugin.md
workflow: 16
---
Plugin'lar OpenClaw'a yeni yetenekler ekler: kanallar, model sağlayıcıları,
ajan çalıştırma ortamları, araçlar, Skills, konuşma, gerçek zamanlı transkripsiyon, gerçek zamanlı
ses, medya anlama, görüntü üretimi, video üretimi, web getirme, web
arama ve daha fazlası. Bazı Plugin'lar **core** olarak gelir (OpenClaw ile birlikte gönderilir), diğerleri
**external**dır. Çoğu external Plugin yayımlanır ve
[ClawHub](/tr/tools/clawhub) üzerinden keşfedilir. Npm, doğrudan kurulumlar ve bu geçiş tamamlanana kadar
OpenClaw'a ait geçici bir Plugin paketi kümesi için desteklenmeye devam eder.
Plugin'ler OpenClaw'ı yeni yeteneklerle genişletir: kanallar, model sağlayıcıları,
ajan çalışma koşumları, araçlar, skills, konuşma, gerçek zamanlı transkripsiyon,
gerçek zamanlı ses, medya anlama, görüntü üretimi, video üretimi, web fetch, web
search ve daha fazlası. Bazı Plugin'ler **çekirdek**tir (OpenClaw ile birlikte gönderilir), bazıları
**harici**dir. Çoğu harici Plugin, [ClawHub](/tr/tools/clawhub) üzerinden yayımlanır
ve keşfedilir. Npm, doğrudan kurulumlar ve bu geçiş tamamlanırken OpenClaw'ın
sahip olduğu geçici bir Plugin paketi kümesi için desteklenmeye devam eder.
## Hızlı başlangıç
<Steps>
<Step title="See what is loaded">
<Step title="Nelerin yüklü olduğunu görün">
```bash
openclaw plugins list
```
</Step>
<Step title="Install a plugin">
<Step title="Bir Plugin kurun">
```bash
# From npm
openclaw plugins install npm:@acme/openclaw-plugin
@ -44,7 +44,7 @@ OpenClaw'a ait geçici bir Plugin paketi kümesi için desteklenmeye devam eder.
</Step>
<Step title="Restart the Gateway">
<Step title="Gateway'i yeniden başlatın">
```bash
openclaw gateway restart
```
@ -54,7 +54,7 @@ OpenClaw'a ait geçici bir Plugin paketi kümesi için desteklenmeye devam eder.
</Step>
</Steps>
Sohbet yerel denetimi tercih ediyorsanız `commands.plugins: true` değerini etkinleştirin ve şunları kullanın:
Sohbete yerel denetimi tercih ediyorsanız `commands.plugins: true` seçeneğini etkinleştirip şunu kullanın:
```text
/plugin install clawhub:<package>
@ -63,68 +63,74 @@ Sohbet yerel denetimi tercih ediyorsanız `commands.plugins: true` değerini etk
```
Kurulum yolu CLI ile aynı çözümleyiciyi kullanır: yerel yol/arşiv, açık
`clawhub:<pkg>`, açık `npm:<pkg>` veya çıplak paket belirtimi (önce ClawHub, ardından
`clawhub:<pkg>`, açık `npm:<pkg>` veya yalın paket belirtimi (önce ClawHub, sonra
npm yedeği).
Yapılandırma geçersizse kurulum normalde kapalı şekilde başarısız olur ve sizi
Yapılandırma geçersizse kurulum normalde kapalı başarısız olur ve sizi
`openclaw doctor --fix` komutuna yönlendirir. Tek kurtarma istisnası,
`openclaw.install.allowInvalidConfigRecovery` seçeneğine katılan Plugin'lar için dar kapsamlı bir paketli Plugin
yeniden kurulum yoludur.
Gateway başlatılırken, bir Plugin için geçersiz yapılandırma o Plugin ile yalıtılır:
başlatma `plugins.entries.<id>.config` sorununu günlüğe yazar, yükleme sırasında o Plugin'ı
atlar ve diğer Plugin'ları ve kanalları çevrimiçi tutar. Hatalı Plugin yapılandırmasını
o Plugin girdisini devre dışı bırakıp geçersiz yapılandırma yükünü kaldırarak karantinaya almak için
`openclaw doctor --fix` komutunu çalıştırın; normal yapılandırma yedeği önceki değerleri korur.
Bir kanal yapılandırması artık keşfedilemeyen bir Plugin'a başvuruyorsa ancak aynı eski Plugin kimliği
Plugin yapılandırmasında veya kurulum kayıtlarında kalıyorsa Gateway başlatması
uyarıları günlüğe yazar ve diğer tüm kanalları engellemek yerine o kanalı atlar.
Eski kanal/Plugin girdilerini kaldırmak için `openclaw doctor --fix` komutunu çalıştırın; eski Plugin kanıtı olmayan bilinmeyen
kanal anahtarları yazım hatalarının görünür kalması için yine de doğrulamadan geçemez.
`openclaw.install.allowInvalidConfigRecovery` seçeneğine katılan Plugin'ler için
dar kapsamlı bir birlikte gelen Plugin yeniden kurulum yoludur.
Gateway başlatılırken, bir Plugin'e ait geçersiz yapılandırma yalnızca o Plugin'e
izole edilir: başlatma, `plugins.entries.<id>.config` sorununu günlüğe yazar,
yükleme sırasında o Plugin'i atlar ve diğer Plugin'leri ve kanalları çevrimiçi
tutar. Kötü Plugin yapılandırmasını, o Plugin girdisini devre dışı bırakarak ve
geçersiz yapılandırma yükünü kaldırarak karantinaya almak için `openclaw doctor --fix`
çalıştırın; normal yapılandırma yedeği önceki değerleri korur.
Bir kanal yapılandırması artık keşfedilemeyen bir Plugin'e başvuruyorsa ancak
aynı eski Plugin kimliği Plugin yapılandırmasında veya kurulum kayıtlarında
kalıyorsa, Gateway başlatması uyarılar yazar ve diğer tüm kanalları engellemek
yerine o kanalı atlar. Eski kanal/Plugin girdilerini kaldırmak için
`openclaw doctor --fix` çalıştırın; eski Plugin kanıtı olmayan bilinmeyen kanal
anahtarları doğrulamada yine de başarısız olur, böylece yazım hataları görünür kalır.
`plugins.enabled: false` ayarlanmışsa eski Plugin başvuruları etkisiz kabul edilir:
Gateway başlatması Plugin keşif/yükleme işini atlar ve `openclaw doctor`,
devre dışı Plugin yapılandırmasını otomatik kaldırmak yerine korur. Eski Plugin kimliklerinin kaldırılmasını
istiyorsanız doctor temizliğini çalıştırmadan önce Plugin'ları yeniden etkinleştirin.
Gateway başlatması Plugin keşif/yükleme işini atlar ve `openclaw doctor`, devre
dışı Plugin yapılandırmasını otomatik kaldırmak yerine korur. Eski Plugin kimliklerinin
kaldırılmasını istiyorsanız doctor temizliğini çalıştırmadan önce Plugin'leri yeniden etkinleştirin.
Paketlenmiş OpenClaw kurulumları, her paketli Plugin'ın çalışma zamanı bağımlılık ağacını
hemen kurmaz. OpenClaw'a ait paketli bir Plugin,
Plugin yapılandırmasından, eski kanal yapılandırmasından veya varsayılan etkin bir manifestten etkin olduğunda,
başlatma yalnızca o Plugin'ın bildirdiği çalışma zamanı bağımlılıklarını içe aktarmadan önce onarır.
Kalıcı kanal kimlik doğrulama durumu tek başına, Gateway başlatma çalışma zamanı bağımlılık onarımı için
paketli bir kanalı etkinleştirmez.
ık devre dışı bırakma yine önceliklidir: `plugins.entries.<id>.enabled: false`,
`plugins.deny`, `plugins.enabled: false` ve `channels.<id>.enabled: false`
bu Plugin/kanal için otomatik paketli çalışma zamanı bağımlılığı onarımını engeller.
Boş olmayan bir `plugins.allow` da varsayılan etkin paketli çalışma zamanı bağımlılığı
onarımını sınırlar; açık paketli kanal etkinleştirmesi (`channels.<id>.enabled: true`) yine de
o kanalın Plugin bağımlılıklarını onarabilir.
External Plugin'lar ve özel yükleme yolları yine de
`openclaw plugins install` üzerinden kurulmalıdır.
Paketlenmiş OpenClaw kurulumları, birlikte gelen her Plugin'in çalışma zamanı
bağımlılık ağacını istekli biçimde kurmaz. OpenClaw'ın sahip olduğu birlikte gelen
bir Plugin, Plugin yapılandırmasından, eski kanal yapılandırmasından veya varsayılan
olarak etkin bir manifestten etkin olduğunda, başlatma yalnızca o Plugin'in
bildirdiği çalışma zamanı bağımlılıklarını içe aktarmadan önce onarır.
Kalıcı kanal kimlik doğrulama durumu tek başına Gateway başlatma çalışma zamanı
bağımlılığı onarımı için birlikte gelen bir kanalı etkinleştirmez.
ık devre dışı bırakma yine üstün gelir: `plugins.entries.<id>.enabled: false`,
`plugins.deny`, `plugins.enabled: false` ve `channels.<id>.enabled: false`,
o Plugin/kanal için otomatik birlikte gelen çalışma zamanı bağımlılığı onarımını
engeller.
Boş olmayan bir `plugins.allow` da varsayılan etkin birlikte gelen çalışma zamanı
bağımlılığı onarımını sınırlar; açık birlikte gelen kanal etkinleştirmesi
(`channels.<id>.enabled: true`) yine de o kanalın Plugin bağımlılıklarını onarabilir.
Harici Plugin'ler ve özel yükleme yolları yine `openclaw plugins install`
üzerinden kurulmalıdır.
Tam planlama ve hazırlama yaşam döngüsü için
[Plugin bağımlılık çözümlemesi](/tr/plugins/dependency-resolution) bölümüne bakın.
## Plugin türleri
OpenClaw iki Plugin biçimini tanır:
| Biçim | Nasıl çalışır | Örnekler |
| Biçim | Nasıl çalışır | Örnekler |
| ---------- | ------------------------------------------------------------------ | ------------------------------------------------------ |
| **Native** | `openclaw.plugin.json` + çalışma zamanı modülü; süreç içinde çalışır | Resmi Plugin'lar, topluluk npm paketleri |
| **Bundle** | Codex/Claude/Cursor uyumlu düzen; OpenClaw özelliklerine eşlenir | `.codex-plugin/`, `.claude-plugin/`, `.cursor-plugin/` |
| **Yerel** | `openclaw.plugin.json` + çalışma zamanı modülü; süreç içinde çalışır | Resmi Plugin'ler, topluluk npm paketleri |
| **Paket** | Codex/Claude/Cursor uyumlu düzen; OpenClaw özelliklerine eşlenir | `.codex-plugin/`, `.claude-plugin/`, `.cursor-plugin/` |
İkisi de `openclaw plugins list` altında görünür. Paket ayrıntıları için [Plugin Bundles](/tr/plugins/bundles) sayfasına bakın.
İkisi de `openclaw plugins list` altında görünür. Paket ayrıntıları için [Plugin Paketleri](/tr/plugins/bundles) bölümüne bakın.
Native bir Plugin yazıyorsanız [Building Plugins](/tr/plugins/building-plugins)
ve [Plugin SDK Overview](/tr/plugins/sdk-overview) ile başlayın.
Yerel bir Plugin yazıyorsanız [Plugin Oluşturma](/tr/plugins/building-plugins)
ve [Plugin SDK Genel Bakışı](/tr/plugins/sdk-overview) ile başlayın.
## Paket giriş noktaları
Native Plugin npm paketleri `package.json` içinde `openclaw.extensions` bildirmelidir.
Yerel Plugin npm paketleri `package.json` içinde `openclaw.extensions` bildirmelidir.
Her girdi paket dizininin içinde kalmalı ve okunabilir bir çalışma zamanı dosyasına
ya da `src/index.ts` ile `dist/index.js` gibi çıkarımlanmış derlenmiş JavaScript
eş dosyası olan bir TypeScript kaynak dosyasına çözülmelidir.
ya da `src/index.ts` için `dist/index.js` gibi çıkarımsal olarak oluşturulmuş
JavaScript eş dosyası olan bir TypeScript kaynak dosyasına çözülmelidir.
Yayımlanan çalışma zamanı dosyaları kaynak girdilerle aynı yollarda bulunmadığında
`openclaw.runtimeExtensions` kullanın. Varsa `runtimeExtensions`, her `extensions`
girdisi için tam olarak bir girdi içermelidir. Eşleşmeyen listeler, sessizce kaynak yollara
geri dönmek yerine kurulumu ve Plugin keşfini başarısız kılar.
`openclaw.runtimeExtensions` kullanın. Varsa, `runtimeExtensions` her `extensions`
girdisi için tam olarak bir girdi içermelidir. Eşleşmeyen listeler, sessizce kaynak
yollarına geri dönmek yerine kurulumu ve Plugin keşfini başarısız kılar.
```json
{
@ -136,21 +142,23 @@ geri dönmek yerine kurulumu ve Plugin keşfini başarısız kılar.
}
```
## Resmi Plugin'lar
## Resmi Plugin'ler
### Geçiş sırasında OpenClaw'a ait npm paketleri
### Geçiş sırasında OpenClaw'ın sahip olduğu npm paketleri
ClawHub çoğu Plugin için birincil dağıtım yoludur. Güncel paketlenmiş
OpenClaw sürümleri zaten birçok resmi Plugin içerir, bu nedenle normal kurulumlarda bunlar için
ayrı npm kurulumu gerekmez. OpenClaw'a ait tüm Plugin'lar
ClawHub'a taşınana kadar OpenClaw, eski/özel kurulumlar ve doğrudan npm iş akışları için
bazı `@openclaw/*` Plugin paketlerini npm üzerinde göndermeye devam eder.
ClawHub çoğu Plugin için birincil dağıtım yoludur. Güncel paketlenmiş OpenClaw
sürümleri halihazırda birçok resmi Plugin'i birlikte getirir, bu nedenle normal
kurulumlarda bunlar için ayrı npm kurulumu gerekmez. OpenClaw'ın sahip olduğu her
Plugin ClawHub'a taşınana kadar OpenClaw, eski/özel kurulumlar ve doğrudan npm
iş akışları için npm üzerinde bazı `@openclaw/*` Plugin paketleri göndermeye
devam eder.
npm bir `@openclaw/*` Plugin paketini kullanım dışı olarak bildirirse, o paket
sürümü eski bir external paket hattındandır. Daha yeni bir npm paketi yayımlanana kadar
güncel OpenClaw'daki paketli Plugin'ı veya yerel bir checkout'ı kullanın.
npm bir `@openclaw/*` Plugin paketini kullanımdan kaldırılmış olarak bildirirse,
o paket sürümü daha eski bir harici paket hattındandır. Daha yeni bir npm paketi
yayımlanana kadar güncel OpenClaw'daki birlikte gelen Plugin'i veya yerel bir
checkout kullanın.
| Plugin | Paket | Belgeler |
| Plugin | Paket | Dokümanlar |
| --------------- | -------------------------- | ------------------------------------------ |
| BlueBubbles | `@openclaw/bluebubbles` | [BlueBubbles](/tr/channels/bluebubbles) |
| Discord | `@openclaw/discord` | [Discord](/tr/channels/discord) |
@ -166,10 +174,10 @@ güncel OpenClaw'daki paketli Plugin'ı veya yerel bir checkout'ı kullanın.
| Zalo | `@openclaw/zalo` | [Zalo](/tr/channels/zalo) |
| Zalo Personal | `@openclaw/zalouser` | [Zalo Personal](/tr/plugins/zalouser) |
### Core (OpenClaw ile gönderilir)
### Çekirdek (OpenClaw ile birlikte gönderilir)
<AccordionGroup>
<Accordion title="Model providers (enabled by default)">
<Accordion title="Model sağlayıcıları (varsayılan olarak etkin)">
`anthropic`, `byteplus`, `cloudflare-ai-gateway`, `github-copilot`, `google`,
`huggingface`, `kilocode`, `kimi-coding`, `minimax`, `mistral`, `qwen`,
`moonshot`, `nvidia`, `openai`, `opencode`, `opencode-go`, `openrouter`,
@ -177,27 +185,27 @@ güncel OpenClaw'daki paketli Plugin'ı veya yerel bir checkout'ı kullanın.
`vercel-ai-gateway`, `volcengine`, `xiaomi`, `zai`
</Accordion>
<Accordion title="Memory plugins">
- `memory-core`paketli bellek araması (`plugins.slots.memory` üzerinden varsayılan)
- `memory-lancedb` — otomatik geri çağırma/yakalama ile isteğe bağlı kurulan uzun süreli bellek (`plugins.slots.memory = "memory-lancedb"` ayarlayın)
<Accordion title="Bellek Plugin'leri">
- `memory-core`birlikte gelen bellek araması (`plugins.slots.memory` üzerinden varsayılan)
- `memory-lancedb` — otomatik hatırlama/yakalama ile isteğe bağlı kurulan uzun vadeli bellek (`plugins.slots.memory = "memory-lancedb"` ayarlayın)
OpenAI uyumlu embedding kurulumu, Ollama örnekleri, geri çağırma sınırları ve sorun giderme için
[Memory LanceDB](/tr/plugins/memory-lancedb) sayfasına bakın.
OpenAI uyumlu embedding kurulumu, Ollama örnekleri, hatırlama sınırları ve
sorun giderme için [Memory LanceDB](/tr/plugins/memory-lancedb) bölümüne bakın.
</Accordion>
<Accordion title="Speech providers (enabled by default)">
<Accordion title="Konuşma sağlayıcıları (varsayılan olarak etkin)">
`elevenlabs`, `microsoft`
</Accordion>
<Accordion title="Other">
- `browser` — tarayıcı aracı, `openclaw browser` CLI, `browser.request` Gateway yöntemi, tarayıcı çalışma zamanı ve varsayılan tarayıcı denetim hizmeti için paketli tarayıcı Plugin'ı (varsayılan olarak etkin; değiştirmeden önce devre dışı bırakın)
<Accordion title="Diğer">
- `browser` — tarayıcı aracı, `openclaw browser` CLI, `browser.request` gateway yöntemi, tarayıcı çalışma zamanı ve varsayılan tarayıcı denetim hizmeti için birlikte gelen tarayıcı Plugin'i (varsayılan olarak etkin; değiştirmeden önce devre dışı bırakın)
- `copilot-proxy` — VS Code Copilot Proxy köprüsü (varsayılan olarak devre dışı)
</Accordion>
</AccordionGroup>
Üçüncü taraf Plugin'ları mı arıyorsunuz? [Community Plugins](/tr/plugins/community) sayfasına bakın.
Üçüncü taraf Plugin'ler mi arıyorsunuz? [Topluluk Plugin'leri](/tr/plugins/community) bölümüne bakın.
## Yapılandırma
@ -215,103 +223,116 @@ güncel OpenClaw'daki paketli Plugin'ı veya yerel bir checkout'ı kullanın.
}
```
| Alan | Açıklama |
| Alan | Açıklama |
| ---------------- | --------------------------------------------------------- |
| `enabled` | Ana anahtar (varsayılan: `true`) |
| `allow` | Plugin izin listesi (isteğe bağlı) |
| `deny` | Plugin engelleme listesi (isteğe bağlı; engelleme kazanır) |
| `load.paths` | Ek Plugin dosyaları/dizinleri |
| `slots` | Özel slot seçicileri (örn. `memory`, `contextEngine`) |
| `entries.\<id\>` | Plugin başına anahtarlar + yapılandırma |
| `enabled` | Ana geçiş düğmesi (varsayılan: `true`) |
| `allow` | Plugin izin listesi (isteğe bağlı) |
| `deny` | Plugin engelleme listesi (isteğe bağlı; engelleme üstün gelir) |
| `load.paths` | Ek Plugin dosyaları/dizinleri |
| `slots` | Özel yuva seçicileri (örn. `memory`, `contextEngine`) |
| `entries.\<id\>` | Plugin başına geçiş düğmeleri + yapılandırma |
Yapılandırma değişiklikleri **Gateway yeniden başlatması gerektirir**. Gateway, yapılandırma
izleme + süreç içi yeniden başlatma etkin şekilde çalışıyorsa (varsayılan `openclaw gateway` yolu),
bu yeniden başlatma genellikle yapılandırma yazımı tamamlandıktan kısa süre sonra otomatik yapılır.
Native Plugin çalışma zamanı kodu veya yaşam döngüsü
hook'ları için desteklenen bir sıcak yeniden yükleme yolu yoktur; güncellenmiş `register(api)` kodu, `api.on(...)` hook'ları, araçlar, hizmetler veya
sağlayıcı/çalışma zamanı hook'larının çalışmasını beklemeden önce canlı kanala hizmet veren Gateway sürecini
yeniden başlatın.
`plugins.allow` münhasırdır. Boş değilse yalnızca listelenen Plugin'ler yüklenebilir
veya araçlarıığa çıkarabilir; `tools.allow` `"*"` ya da belirli bir Plugin'e
ait araç adı içerse bile. Bir araç izin listesi Plugin araçlarına başvuruyorsa,
sahip Plugin kimliklerini `plugins.allow` içine ekleyin veya `plugins.allow`u
kaldırın; `openclaw doctor` bu şekil hakkında uyarır.
`openclaw plugins list` yerel bir Plugin kayıt defteri/yapılandırma anlık görüntüsüdür. Oradaki
`enabled` Plugin, kalıcı kayıt defteri ve mevcut yapılandırmanın
Plugin'ın katılmasına izin verdiği anlamına gelir. Bu, zaten çalışan uzak bir Gateway
alt sürecinin aynı Plugin koduna yeniden başladığını kanıtlamaz. Sarmalayıcı süreçleri olan VPS/konteyner kurulumlarında
yeniden başlatmaları gerçek `openclaw gateway run` sürecine gönderin
veya çalışan Gateway'e karşı `openclaw gateway restart` kullanın.
Yapılandırma değişiklikleri **gateway yeniden başlatması gerektirir**. Gateway,
yapılandırma izleme + süreç içi yeniden başlatma etkin olarak çalışıyorsa
(varsayılan `openclaw gateway` yolu), bu yeniden başlatma genellikle yapılandırma
yazımı tamamlandıktan kısa süre sonra otomatik olarak yapılır.
Yerel Plugin çalışma zamanı kodu veya yaşam döngüsü hook'ları için desteklenen
bir hot-reload yolu yoktur; güncellenmiş `register(api)` kodunun, `api.on(...)`
hook'larının, araçların, hizmetlerin veya sağlayıcı/çalışma zamanı hook'larının
çalışmasını beklemeden önce canlı kanala hizmet eden Gateway sürecini yeniden başlatın.
<Accordion title="Plugin states: disabled vs missing vs invalid">
- **Disabled**: Plugin vardır ancak etkinleştirme kuralları onu kapatmıştır. Yapılandırma korunur.
- **Missing**: yapılandırma, keşfin bulamadığı bir Plugin kimliğine başvurur.
- **Invalid**: Plugin vardır ancak yapılandırması bildirilen şemayla eşleşmez. Gateway başlatması yalnızca o Plugin'ı atlar; `openclaw doctor --fix` geçersiz girdiyi devre dışı bırakarak ve yapılandırma yükünü kaldırarak karantinaya alabilir.
`openclaw plugins list`, yerel bir Plugin kayıt/yapılandırma anlık görüntüsüdür.
Burada bir Plugin'in `enabled` olması, kalıcı kayıt defterinin ve geçerli
yapılandırmanın Plugin'in katılmasına izin verdiği anlamına gelir. Halihazırda
çalışan uzak bir Gateway alt sürecinin aynı Plugin koduyla yeniden başlatıldığını
kanıtlamaz. Sarmalayıcı süreçleri olan VPS/konteyner kurulumlarında yeniden
başlatmaları gerçek `openclaw gateway run` sürecine gönderin veya çalışan Gateway'e
karşı `openclaw gateway restart` kullanın.
<Accordion title="Plugin durumları: devre dışı, eksik, geçersiz">
- **Devre dışı**: Plugin vardır ancak etkinleştirme kuralları onu kapatmıştır. Yapılandırma korunur.
- **Eksik**: yapılandırma, keşfin bulamadığı bir Plugin kimliğine başvurur.
- **Geçersiz**: Plugin vardır ancak yapılandırması bildirilen şemayla eşleşmez. Gateway başlatması yalnızca o Plugin'i atlar; `openclaw doctor --fix`, geçersiz girdiyi devre dışı bırakarak ve yapılandırma yükünü kaldırarak karantinaya alabilir.
</Accordion>
## Keşif ve öncelik
OpenClaw Plugin'ları şu sırayla tarar (ilk eşleşme kazanır):
OpenClaw Plugin'leri şu sırayla tarar (ilk eşleşme kazanır):
<Steps>
<Step title="Config paths">
`plugins.load.paths` — açık dosya veya dizin yolları. OpenClaw'ın kendi paketlenmiş paketli Plugin dizinlerine
<Step title="Yapılandırma yolları">
`plugins.load.paths` — açık dosya veya dizin yolları. OpenClaw'ın kendi paketlenmiş gömülü Plugin dizinlerine
geri işaret eden yollar yok sayılır;
eski takma adları kaldırmak için `openclaw doctor --fix` çalıştırın.
bu eski takma adları kaldırmak için `openclaw doctor --fix` çalıştırın.
</Step>
<Step title="Workspace plugins">
<Step title="Çalışma alanı Plugin'leri">
`\<workspace\>/.openclaw/<plugin-root>/*.ts` ve `\<workspace\>/.openclaw/<plugin-root>/*/index.ts`.
</Step>
<Step title="Global plugins">
<Step title="Genel Plugin'ler">
`~/.openclaw/<plugin-root>/*.ts` ve `~/.openclaw/<plugin-root>/*/index.ts`.
</Step>
<Step title="Bundled plugins">
<Step title="Gömülü Plugin'ler">
OpenClaw ile birlikte gönderilir. Birçoğu varsayılan olarak etkindir (model sağlayıcıları, konuşma).
Diğerleri açıkça etkinleştirme gerektirir.
</Step>
</Steps>
Paketlenmiş kurulumlar ve Docker imajları normalde yerleşik Plugin'leri
derlenmiş `dist/extensions` ağacından çözümler. Yerleşik bir Plugin kaynak dizini,
örneğin `/app/extensions/synology-chat`, eşleşen paketlenmiş kaynak yolunun
üzerine bind-mounted edilirse, OpenClaw bu bağlanmış kaynak dizinini yerleşik
kaynak örtüşmesi olarak ele alır ve paketlenmiş
Paketlenmiş kurulumlar ve Docker görüntüleri normalde gömülü Plugin'leri
derlenmiş `dist/extensions` ağacından çözümler. Gömülü bir Plugin kaynak dizini
eşleşen paketlenmiş kaynak yolunun üzerine bind mount edilirse, örneğin
`/app/extensions/synology-chat`, OpenClaw bu bağlanmış kaynak dizinini
gömülü bir kaynak kaplaması olarak ele alır ve onu paketlenmiş
`/app/dist/extensions/synology-chat` paketinden önce keşfeder. Bu, bakımcı
container döngülerinin, her yerleşik Plugin'i yeniden TypeScript kaynağına
geçirmeden çalışmasını sağlar. Kaynak örtüşmesi bağlamaları mevcut olsa bile
paketlenmiş dist paketlerini zorlamak için `OPENCLAW_DISABLE_BUNDLED_SOURCE_OVERLAYS=1` ayarlayın.
konteyner döngülerinin her gömülü Plugin'i TypeScript kaynağına geri çevirmeden
çalışmasını sağlar. Kaynak kaplama bağlamaları mevcut olsa bile paketlenmiş dist
paketlerini zorlamak için `OPENCLAW_DISABLE_BUNDLED_SOURCE_OVERLAYS=1` ayarlayın.
### Etkinleştirme kuralları
- `plugins.enabled: false` tüm Plugin'leri devre dışı bırakır ve Plugin keşif/yükleme işini atlar
- `plugins.deny` her zaman allow üzerinde önceliklidir
- `plugins.entries.\<id\>.enabled: false` o Plugin'i devre dışı bırakır
- `plugins.enabled: false` tüm Plugin'leri devre dışı bırakır ve Plugin keşfi/yükleme işini atlar
- `plugins.deny` her zaman allow'a üstün gelir
- `plugins.entries.\<id\>.enabled: false` bu Plugin'i devre dışı bırakır
- Çalışma alanı kökenli Plugin'ler **varsayılan olarak devre dışıdır** (açıkça etkinleştirilmelidir)
- Yerleşik Plugin'ler, geçersiz kılınmadıkça yerleşik varsayılan-açık kümesini izler
- Özel slotlar, o slot için seçilen Plugin'i zorla etkinleştirebilir
- Bazı yerleşik opt-in Plugin'ler, yapılandırma bir Plugin'e ait yüzeyi adlandırdığında otomatik olarak etkinleştirilir; örneğin bir sağlayıcı model referansı, kanal yapılandırması veya harness runtime
- Eski Plugin yapılandırması `plugins.enabled: false` etkinken korunur; eski id'lerin kaldırılmasını istiyorsanız doctor temizliği çalıştırmadan önce Plugin'leri yeniden etkinleştirin
- Gömülü Plugin'ler, üzerine yazılmadıkça yerleşik varsayılan-açık kümesini izler
- Özel yuvalar, seçilen Plugin'i o yuva için zorla etkinleştirebilir
- Bazı gömülü opt-in Plugin'ler, yapılandırma Plugin'e ait bir yüzeyi adlandırdığında
otomatik olarak etkinleştirilir; örneğin sağlayıcı model başvurusu, kanal yapılandırması veya harness
çalışma zamanı
- `plugins.enabled: false` etkin durumdayken eski Plugin yapılandırması korunur;
eski kimliklerin kaldırılmasını istiyorsanız doctor temizliğini çalıştırmadan önce Plugin'leri yeniden etkinleştirin
- OpenAI ailesi Codex rotaları ayrı Plugin sınırlarını korur:
`openai-codex/*` OpenAI Plugin'ine aittir; yerleşik Codex
`openai-codex/*` OpenAI Plugin'ine aittir; gömülü Codex
app-server Plugin'i ise `agentRuntime.id: "codex"` veya eski
`codex/*` model referanslarıyla seçilir
`codex/*` model başvuruları tarafından seçilir
## Runtime hook'larında sorun giderme
## Çalışma zamanı hook'larında sorun giderme
Bir Plugin `plugins list` içinde görünüyor ancak `register(api)` yan etkileri veya hook'ları
canlı sohbet trafiğinde çalışmıyorsa, önce şunları kontrol edin:
canlı sohbet trafiğinde çalışmıyorsa önce şunları kontrol edin:
- `openclaw gateway status --deep --require-rpc` çalıştırın ve etkin
Gateway URL'sinin, profilin, yapılandırma yolunun ve sürecin düzenlediğiniz değerler olduğunu doğrulayın.
- Plugin kurulum/yapılandırma/kod değişikliklerinden sonra canlı Gateway'i yeniden başlatın. Wrapper
container'larda PID 1 yalnızca bir supervisor olabilir; alt
Gateway URL'sinin, profilin, yapılandırma yolunun ve sürecin düzenledikleriniz olduğunu doğrulayın.
- Plugin kurulumu/yapılandırma/kod değişikliklerinden sonra canlı Gateway'i yeniden başlatın. Sarmalayıcı
konteynerlerde PID 1 yalnızca bir supervisor olabilir; alt
`openclaw gateway run` sürecini yeniden başlatın veya ona sinyal gönderin.
- Hook kayıtlarını ve tanılamaları doğrulamak için `openclaw plugins inspect <id> --json` kullanın.
`llm_input`, `llm_output`, `before_agent_finalize` ve `agent_end` gibi yerleşik olmayan konuşma hook'ları
- Hook kayıtlarını ve tanılamaları doğrulamak için `openclaw plugins inspect <id> --runtime --json` kullanın.
`llm_input`,
`llm_output`, `before_agent_finalize` ve `agent_end` gibi gömülü olmayan konuşma hook'ları
`plugins.entries.<id>.hooks.allowConversationAccess=true` gerektirir.
- Model değiştirme için `before_model_resolve` tercih edin. Agent turn'leri için model çözümlemeden önce çalışır;
`llm_output` yalnızca bir model denemesi assistant çıktısı ürettikten sonra çalışır.
- Etkin oturum modelini kanıtlamak için `openclaw sessions` veya
- Model değiştirme için `before_model_resolve` tercih edin. Ajan dönüşleri için model
çözümlemesinden önce çalışır; `llm_output` yalnızca bir model denemesi
assistant çıktısı ürettikten sonra çalışır.
- Etkili oturum modelini kanıtlamak için `openclaw sessions` veya
Gateway oturum/durum yüzeylerini kullanın ve sağlayıcı payload'larında hata ayıklarken
Gateway'i `--raw-stream --raw-stream-path <path>` ile başlatın.
@ -323,30 +344,32 @@ Belirtiler:
- `channel setup already registered: <channel-id> (<plugin-id>)`
- `plugin tool name conflict (<plugin-id>): <tool-name>`
Bunlar, birden fazla etkin Plugin'in aynı kanalın,
kurulum akışının veya araç adının sahibi olmaya çalıştığı anlamına gelir. En yaygın neden,
aynı kanal id'sini artık sağlayan yerleşik bir Plugin'in yanında kurulu olan harici bir kanal Plugin'idir.
Bunlar, birden fazla etkin Plugin'in aynı kanala, kurulum akışına veya araç adına
sahip olmaya çalıştığı anlamına gelir. En yaygın neden, artık aynı kanal kimliğini
sağlayan gömülü bir Plugin'in yanında harici bir kanal Plugin'inin kurulu olmasıdır.
Hata ayıklama adımları:
- Her etkin Plugin'i ve kökenini görmek için `openclaw plugins list --enabled --verbose` çalıştırın.
- Şüpheli her Plugin için `openclaw plugins inspect <id> --json` çalıştırın ve
`channels`, `channelConfigs`, `tools` ile tanılamaları karşılaştırın.
- Plugin paketlerini kurduktan veya kaldırdıktan sonra kalıcı metadata'nın geçerli kurulumu yansıtması için
- Şüphelenilen her Plugin için `openclaw plugins inspect <id> --runtime --json` çalıştırın ve
`channels`, `channelConfigs`, `tools` ve tanılamaları karşılaştırın.
- Kalıcı metadata'nın mevcut kurulumu yansıtması için Plugin paketlerini kurduktan veya kaldırdıktan sonra
`openclaw plugins registry --refresh` çalıştırın.
- Kurulum, registry veya yapılandırma değişikliklerinden sonra Gateway'i yeniden başlatın.
Düzeltme seçenekleri:
- Bir Plugin aynı kanal id'si için bilerek başka birinin yerini alıyorsa,
tercih edilen Plugin, düşük öncelikli Plugin id'siyle `channelConfigs.<channel-id>.preferOver` tanımlamalıdır. Bkz. [/plugins/manifest#replacing-another-channel-plugin](/tr/plugins/manifest#replacing-another-channel-plugin).
- Yineleme kazara olduysa, bir tarafı
`plugins.entries.<plugin-id>.enabled: false` ile devre dışı bırakın veya eski Plugin kurulumunu kaldırın.
- Bir Plugin aynı kanal kimliği için bilerek başka birinin yerini alıyorsa,
tercih edilen Plugin, daha düşük öncelikli Plugin kimliğiyle
`channelConfigs.<channel-id>.preferOver` bildirmelidir. Bkz. [/plugins/manifest#replacing-another-channel-plugin](/tr/plugins/manifest#replacing-another-channel-plugin).
- Yineleme kazara oluştuysa bir tarafı
`plugins.entries.<plugin-id>.enabled: false` ile devre dışı bırakın veya eski Plugin
kurulumunu kaldırın.
- Her iki Plugin'i de açıkça etkinleştirdiyseniz, OpenClaw bu isteği korur ve
çakışmayı bildirir. Kanal için tek bir sahip seçin veya runtime yüzeyi açık olacak şekilde Plugin'e ait
araçları yeniden adlandırın.
çakışmayı bildirir. Kanal için bir sahip seçin veya çalışma zamanı yüzeyinin
belirsiz olmaması için Plugin'e ait araçları yeniden adlandırın.
## Plugin slotları (özel kategoriler)
## Plugin yuvaları (özel kategoriler)
Bazı kategoriler özeldir (aynı anda yalnızca biri etkin olabilir):
@ -361,10 +384,10 @@ Bazı kategoriler özeldir (aynı anda yalnızca biri etkin olabilir):
}
```
| Slot | Neyi kontrol eder | Varsayılan |
| Yuva | Neyi denetler | Varsayılan |
| --------------- | --------------------- | ------------------- |
| `memory` | Active memory Plugin'i | `memory-core` |
| `contextEngine` | Etkin context engine | `legacy` (yerleşik) |
| `memory` | Etkin bellek Plugin'i | `memory-core` |
| `contextEngine` | Etkin bağlam motoru | `legacy` (yerleşik) |
## CLI başvurusu
@ -373,7 +396,8 @@ openclaw plugins list # compact inventory
openclaw plugins list --enabled # only enabled plugins
openclaw plugins list --verbose # per-plugin detail lines
openclaw plugins list --json # machine-readable inventory
openclaw plugins inspect <id> # deep detail
openclaw plugins inspect <id> # static detail
openclaw plugins inspect <id> --runtime # registered hooks/tools/diagnostics
openclaw plugins inspect <id> --json # machine-readable
openclaw plugins inspect --all # fleet-wide table
openclaw plugins info <id> # inspect alias
@ -404,72 +428,78 @@ openclaw plugins enable <id>
openclaw plugins disable <id>
```
Yerleşik Plugin'ler OpenClaw ile birlikte gelir. Birçoğu varsayılan olarak etkindir (örneğin
yerleşik model sağlayıcıları, yerleşik konuşma sağlayıcıları ve yerleşik tarayıcı
Plugin'i). Diğer yerleşik Plugin'ler yine de `openclaw plugins enable <id>` gerektirir.
Gömülü Plugin'ler OpenClaw ile birlikte gönderilir. Birçoğu varsayılan olarak etkindir (örneğin
gömülü model sağlayıcıları, gömülü konuşma sağlayıcıları ve gömülü tarayıcı
Plugin'i). Diğer gömülü Plugin'ler yine de `openclaw plugins enable <id>` gerektirir.
`--force`, mevcut kurulu bir Plugin'i veya hook pack'i yerinde üzerine yazar. İzlenen npm
`--force`, mevcut kurulu bir Plugin'in veya hook paketinin üzerine yerinde yazar. İzlenen npm
Plugin'lerinin rutin yükseltmeleri için `openclaw plugins update <id-or-npm-spec>` kullanın.
Yönetilen kurulum hedefinin üzerine kopyalamak yerine kaynak yolunu yeniden kullanan `--link` ile desteklenmez.
Yönetilen kurulum hedefinin üzerine kopyalamak yerine kaynak yolunu yeniden kullanan
`--link` ile desteklenmez.
`plugins.allow` zaten ayarlanmışsa, `openclaw plugins install` kurulan
Plugin id'sini etkinleştirmeden önce bu allowlist'e ekler. Aynı Plugin id'si
`plugins.deny` içinde varsa, açık kurulumun yeniden başlatmadan sonra hemen yüklenebilmesi için install bu eski deny girdisini kaldırır.
`plugins.allow` zaten ayarlanmışsa, `openclaw plugins install`
kurulu Plugin kimliğini etkinleştirmeden önce bu allowlist'e ekler. Aynı Plugin kimliği
`plugins.deny` içinde mevcutsa kurulum, açık kurulumun yeniden başlatmadan sonra
hemen yüklenebilir olması için bu eski deny girdisini kaldırır.
OpenClaw, Plugin envanteri, katkı sahipliği ve başlangıç planlaması için cold read modeli olarak
kalıcı bir yerel Plugin registry'si tutar. Install, update,
uninstall, enable ve disable akışları Plugin durumunu değiştirdikten sonra bu registry'yi yeniler.
Aynı `plugins/installs.json` dosyası, üst düzey `installRecords` içinde kalıcı kurulum metadata'sını ve
`plugins` içinde yeniden oluşturulabilir manifest metadata'sını tutar. Registry eksik, eski veya geçersizse,
`openclaw plugins registry --refresh`, Plugin runtime modüllerini yüklemeden manifest görünümünü kurulum kayıtlarından, yapılandırma politikasından ve
manifest/package metadata'sından yeniden oluşturur.
`openclaw plugins update <id-or-npm-spec>` izlenen kurulumlara uygulanır. Dist-tag veya tam sürüm içeren bir npm paket spec'i vermek,
paket adını izlenen Plugin kaydına geri çözer ve gelecekteki güncellemeler için yeni spec'i kaydeder.
Paket adını sürüm olmadan vermek, tam pin'lenmiş kurulumu registry'nin varsayılan yayın hattına geri taşır.
Kurulu npm Plugin'i zaten çözümlenen sürüm ve kayıtlı artifact kimliğiyle eşleşiyorsa, OpenClaw güncellemeyi
OpenClaw, Plugin envanteri, katkı sahipliği ve başlatma planlaması için soğuk okuma modeli olarak
kalıcı bir yerel Plugin registry'si tutar. Kurulum, güncelleme,
kaldırma, etkinleştirme ve devre dışı bırakma akışları, Plugin
durumunu değiştirdikten sonra bu registry'yi yeniler. Aynı `plugins/installs.json` dosyası,
üst düzey `installRecords` içinde kalıcı kurulum metadata'sını ve `plugins` içinde yeniden oluşturulabilir manifest metadata'sını tutar. Registry
eksik, eski veya geçersizse, `openclaw plugins registry
--refresh`, Plugin çalışma zamanı modüllerini yüklemeden manifest görünümünü kurulum kayıtlarından, yapılandırma politikasından ve
manifest/paket metadata'sından yeniden oluşturur.
`openclaw plugins update <id-or-npm-spec>` izlenen kurulumlara uygulanır. Dist-tag veya tam sürüm içeren
bir npm paket belirtimi iletmek, paket adını
izlenen Plugin kaydına geri çözümler ve gelecekteki güncellemeler için yeni belirtimi kaydeder.
Paket adını sürümsüz iletmek, tam sabitlenmiş kurulumu
registry'nin varsayılan yayın çizgisine geri taşır. Kurulu npm Plugin'i çözülmüş sürümle
ve kayıtlı artifact kimliğiyle zaten eşleşiyorsa, OpenClaw güncellemeyi
indirmeden, yeniden kurmadan veya yapılandırmayı yeniden yazmadan atlar.
`--pin` yalnızca npm içindir. `--marketplace` ile desteklenmez; çünkü
marketplace kurulumları npm spec'i yerine marketplace kaynak metadata'sını kalıcılaştırır.
`--pin` yalnızca npm içindir. `--marketplace` ile desteklenmez, çünkü
marketplace kurulumları npm belirtimi yerine marketplace kaynak metadata'sını kalıcılaştırır.
`--dangerously-force-unsafe-install`, yerleşik tehlikeli kod tarayıcısının false positive'leri için bir break-glass geçersiz kılmadır.
Plugin kurulumlarının ve Plugin güncellemelerinin yerleşik `critical` bulguları geçerek devam etmesine izin verir, ancak yine de
Plugin `before_install` policy bloklarını veya scan-failure engellemesini bypass etmez.
Install taramaları, paketlenmiş test mock'larını engellemekten kaçınmak için `tests/`,
`--dangerously-force-unsafe-install`, yerleşik tehlikeli kod tarayıcısından gelen yanlış
pozitifler için bir acil durum geçersiz kılma seçeneğidir. Plugin kurulumlarının
ve Plugin güncellemelerinin yerleşik `critical` bulgularını geçerek devam etmesine izin verir,
ancak yine de Plugin `before_install` politika bloklarını veya tarama hatası engellemesini
atlamaz. Kurulum taramaları, paketlenmiş test mock'larını engellememek için `tests/`,
`__tests__/`, `*.test.*` ve `*.spec.*` gibi yaygın test dosyalarını ve dizinlerini yok sayar;
tanımlanmış Plugin runtime giriş noktaları, bu adlardan birini kullansalar bile taranmaya devam eder.
bildirilen Plugin çalışma zamanı giriş noktaları, bu adlardan birini kullansalar bile yine de taranır.
Bu CLI bayrağı yalnızca Plugin install/update akışları için geçerlidir. Gateway destekli skill
Bu CLI bayrağı yalnızca Plugin kurulum/güncelleme akışlarına uygulanır. Gateway destekli skill
bağımlılık kurulumları bunun yerine eşleşen `dangerouslyForceUnsafeInstall` istek
geçersiz kılmasını kullanır; `openclaw skills install` ise ayrı ClawHub
skill indirme/kurma akışı olarak kalır.
geçersiz kılmasını kullanırken, `openclaw skills install` ayrı ClawHub
skill indirme/kurulum akışı olarak kalır.
ClawHub'da yayımladığınız bir Plugin bir tarama nedeniyle gizlenmiş veya engellenmişse,
ClawHub dashboard'u açın ya da ClawHub'dan yeniden kontrol etmesini istemek için
ClawHub'da yayımladığınız bir Plugin bir tarama tarafından gizlendiyse veya engellendiyse,
ClawHub panosunu açın ya da ClawHub'ın onu yeniden kontrol etmesini istemek için
`clawhub package rescan <name>` çalıştırın. `--dangerously-force-unsafe-install` yalnızca kendi
makinenizdeki kurulumları etkiler; ClawHub'dan Plugin'i yeniden taramasını veya engellenmiş bir sürümü
public yapmasını istemez.
herkese açık yapmasını istemez.
Uyumlu paketler aynı Plugin list/inspect/enable/disable akışına katılır.
Geçerli runtime desteği; bundle skills, Claude command-skills,
Claude `settings.json` varsayılanları, Claude `.lsp.json` ve manifest tarafından tanımlanan
`lspServers` varsayılanları, Cursor command-skills ve uyumlu Codex hook
Uyumlu paketler aynı Plugin listeleme/inceleme/etkinleştirme/devre dışı bırakma
akışına katılır. Mevcut çalışma zamanı desteği paket Skills'leri, Claude command-skills'leri,
Claude `settings.json` varsayılanlarını, Claude `.lsp.json` ve manifest tarafından bildirilen
`lspServers` varsayılanlarını, Cursor command-skills'leri ve uyumlu Codex hook
dizinlerini içerir.
`openclaw plugins inspect <id>` ayrıca algılanan bundle yeteneklerini ve bundle destekli Plugin'ler için
desteklenen veya desteklenmeyen MCP ve LSP server girdilerini raporlar.
`openclaw plugins inspect <id>` ayrıca tespit edilen paket yeteneklerini ve
paket destekli Plugin'ler için desteklenen veya desteklenmeyen MCP ve LSP sunucu girdilerini raporlar.
Marketplace kaynakları, `~/.claude/plugins/known_marketplaces.json` içinden bir Claude known-marketplace adı,
yerel bir marketplace kökü veya `marketplace.json` yolu, `owner/repo` gibi bir GitHub kısaltması,
bir GitHub repo URL'si ya da bir git URL'si olabilir. Uzak marketplace'ler için Plugin girdileri klonlanan
marketplace repo'su içinde kalmalı ve yalnızca göreli yol kaynakları kullanmalıdır.
Marketplace kaynakları, `~/.claude/plugins/known_marketplaces.json` içinden bir Claude bilinen marketplace adı,
yerel marketplace kökü veya `marketplace.json` yolu, `owner/repo` gibi bir GitHub kısaltması,
bir GitHub depo URL'si veya bir git URL'si olabilir. Uzak marketplace'ler için Plugin girdileri
klonlanmış marketplace deposunun içinde kalmalı ve yalnızca göreli yol kaynakları kullanmalıdır.
Tüm ayrıntılar için [`openclaw plugins` CLI başvurusuna](/tr/cli/plugins) bakın.
Tam ayrıntılar için [`openclaw plugins` CLI başvurusuna](/tr/cli/plugins) bakın.
## Plugin API genel bakışı
## Plugin API'ye genel bakış
Native Plugin'ler `register(api)`ığa çıkaran bir entry nesnesi export eder. Eski
Plugin'ler hâlâ legacy alias olarak `activate(api)` kullanabilir, ancak yeni Plugin'ler
Yerel Plugin'ler, `register(api)` öğesini açığa çıkaran bir giriş nesnesi dışa aktarır. Eski
Plugin'ler, eski uyumluluk takma adı olarak hâlâ `activate(api)` kullanabilir, ancak yeni Plugin'ler
`register` kullanmalıdır.
```typescript
@ -490,76 +520,75 @@ export default definePluginEntry({
});
```
OpenClaw entry nesnesini yükler ve Plugin aktivasyonu sırasında `register(api)` çağırır.
Loader, eski Plugin'ler için hâlâ `activate(api)` fallback'i kullanır, ancak yerleşik Plugin'ler ve yeni harici Plugin'ler
`register` değerini public contract olarak ele almalıdır.
OpenClaw, giriş nesnesini yükler ve Plugin
etkinleştirme sırasında `register(api)` çağırır. Yükleyici, eski Plugin'ler için hâlâ `activate(api)` öğesine geri döner,
ancak paketle gelen Plugin'ler ve yeni harici Plugin'ler `register` öğesini
genel sözleşme olarak kabul etmelidir.
`api.registrationMode`, bir Plugin'e entry'sinin neden yüklendiğini bildirir:
`api.registrationMode`, bir Plugin'e girişinin neden yüklendiğini bildirir:
| Mod | Anlam |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `full` | Çalışma zamanı etkinleştirmesi. Araçları, kancaları, hizmetleri, komutları, rotaları ve diğer canlı yan etkileri kaydeder. |
| `discovery` | Salt okunur yetenek keşfi. Sağlayıcıları ve meta verileri kaydeder; güvenilir Plugin giriş kodu yüklenebilir, ancak canlı yan etkiler atlanır. |
| `setup-only` | Hafif bir kurulum girişi üzerinden kanal kurulum meta verisi yükleme. |
| `setup-runtime` | Çalışma zamanı girişini de gerektiren kanal kurulumu yükleme. |
| `cli-metadata` | Yalnızca CLI komut meta verisi toplama. |
| Mod | Anlam |
| --------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `full` | Çalışma zamanı etkinleştirmesi. Araçları, hook'ları, servisleri, komutları, rotaları ve diğer canlı yan etkileri kaydedin. |
| `discovery` | Salt okunur yetenek keşfi. Sağlayıcıları ve meta verileri kaydedin; güvenilen Plugin giriş kodu yüklenebilir, ancak canlı yan etkileri atlayın. |
| `setup-only` | Hafif bir kurulum girişi üzerinden kanal kurulum meta verisi yükleme. |
| `setup-runtime` | Çalışma zamanı girişine de ihtiyaç duyan kanal kurulum yüklemesi. |
| `cli-metadata` | Yalnızca CLI komut meta verisi toplama. |
Soketleri, veritabanlarını, arka plan çalışanlarını veya uzun ömürlü
istemcileri açan Plugin girişleri, bu yan etkileri `api.registrationMode === "full"`
ile korumalıdır. Keşif yüklemeleri, etkinleştirme yüklemelerinden ayrı olarak
önbelleğe alınır ve çalışan Gateway kayıt defterinin yerini almaz. Keşif,
etkinleştirici değildir, içe aktarmasız da değildir: OpenClaw anlık görüntüyü
oluşturmak için güvenilir Plugin girişini veya kanal Plugin modülünü değerlendirebilir.
Modül üst düzeylerini hafif ve yan etkisiz tutun; ağ istemcilerini, alt süreçleri,
dinleyicileri, kimlik bilgisi okumalarını ve hizmet başlatmayı tam çalışma zamanı
yollarının arkasına taşıyın.
istemcileri açan Plugin girişleri, bu yan etkileri `api.registrationMode === "full"` ile korumalıdır.
Keşif yüklemeleri, etkinleştirme yüklemelerinden ayrı olarak önbelleğe alınır ve
çalışan Gateway kayıt defterinin yerine geçmez. Keşif etkinleştirici değildir, içe aktarmasız da değildir:
OpenClaw, anlık görüntüyü oluşturmak için güvenilen Plugin girişini veya kanal Plugin modülünü değerlendirebilir.
Modül üst seviyelerini hafif ve yan etkisiz tutun; ağ istemcilerini,
alt süreçleri, dinleyicileri, kimlik bilgisi okumalarını ve servis başlatmayı
tam çalışma zamanı yollarının arkasına taşıyın.
Yaygın kayıt yöntemleri:
| Yöntem | Kaydettiği şey |
| --------------------------------------- | ---------------------------- |
| `registerProvider` | Model sağlayıcısı (LLM) |
| Yöntem | Kaydettiği şey |
| --------------------------------------- | --------------------------- |
| `registerProvider` | Model sağlayıcısı (LLM) |
| `registerChannel` | Sohbet kanalı |
| `registerTool` | Aracı aracı |
| `registerHook` / `on(...)` | Yaşam döngüsü kancaları |
| `registerSpeechProvider` | Metinden sese / STT |
| `registerRealtimeTranscriptionProvider` | Akış STT |
| `registerRealtimeVoiceProvider` | Çift yönlü gerçek zamanlı ses |
| `registerMediaUnderstandingProvider` | Görüntü/ses analizi |
| `registerImageGenerationProvider` | Görüntü oluşturma |
| `registerMusicGenerationProvider` | Müzik oluşturma |
| `registerVideoGenerationProvider` | Video oluşturma |
| `registerTool` | Ajan aracı |
| `registerHook` / `on(...)` | Yaşam döngüsü hook'ları |
| `registerSpeechProvider` | Metinden konuşmaya / STT |
| `registerRealtimeTranscriptionProvider` | Akışlı STT |
| `registerRealtimeVoiceProvider` | Çift yönlü gerçek zamanlı ses |
| `registerMediaUnderstandingProvider` | Görüntü/ses analizi |
| `registerImageGenerationProvider` | Görüntü üretimi |
| `registerMusicGenerationProvider` | Müzik üretimi |
| `registerVideoGenerationProvider` | Video üretimi |
| `registerWebFetchProvider` | Web getirme / kazıma sağlayıcısı |
| `registerWebSearchProvider` | Web araması |
| `registerHttpRoute` | HTTP uç noktası |
| `registerWebSearchProvider` | Web arama |
| `registerHttpRoute` | HTTP uç noktası |
| `registerCommand` / `registerCli` | CLI komutları |
| `registerContextEngine` | Bağlam motoru |
| `registerService` | Arka plan hizmeti |
| `registerContextEngine` | Bağlam motoru |
| `registerService` | Arka plan servisi |
Türlü yaşam döngüsü kancaları için kanca koruma davranışı:
Türlendirilmiş yaşam döngüsü hook'ları için hook koruma davranışı:
- `before_tool_call`: `{ block: true }` sonlandırıcıdır; daha düşük öncelikli işleyiciler atlanır.
- `before_tool_call`: `{ block: false }` işlem yapmaz ve önceki bir engellemeyi temizlemez.
- `before_tool_call`: `{ block: false }` işlem yapmaz ve daha önceki bir engellemeyi temizlemez.
- `before_install`: `{ block: true }` sonlandırıcıdır; daha düşük öncelikli işleyiciler atlanır.
- `before_install`: `{ block: false }` işlem yapmaz ve önceki bir engellemeyi temizlemez.
- `before_install`: `{ block: false }` işlem yapmaz ve daha önceki bir engellemeyi temizlemez.
- `message_sending`: `{ cancel: true }` sonlandırıcıdır; daha düşük öncelikli işleyiciler atlanır.
- `message_sending`: `{ cancel: false }` işlem yapmaz ve önceki bir iptali temizlemez.
- `message_sending`: `{ cancel: false }` işlem yapmaz ve daha önceki bir iptali temizlemez.
Yerel Codex uygulama sunucusu çalıştırmaları, Codexe özgü araç olaylarını bu
kanca yüzeyine geri köprüler. Pluginler, `before_tool_call` üzerinden yerel
Codex araçlarını engelleyebilir, `after_tool_call` üzerinden sonuçları
gözlemleyebilir ve Codex `PermissionRequest` onaylarına katılabilir. Köprü,
Codexe özgü araç bağımsız değişkenlerini henüz yeniden yazmaz. Kesin Codex
çalışma zamanı destek sınırı [Codex harness v1 destek sözleşmesi](/tr/plugins/codex-harness#v1-support-contract)
içinde yer alır.
Yerel Codex uygulama sunucusu, Codex'e özgü araç olaylarını bu
hook yüzeyine geri köprüler. Plugin'ler, `before_tool_call` üzerinden yerel Codex araçlarını engelleyebilir,
`after_tool_call` üzerinden sonuçları gözlemleyebilir ve Codex
`PermissionRequest` onaylarına katılabilir. Köprü, Codex'e özgü araç
argümanlarını henüz yeniden yazmaz. Kesin Codex çalışma zamanı destek sınırı,
[Codex harness v1 destek sözleşmesi](/tr/plugins/codex-harness#v1-support-contract) içinde yer alır.
Tam türlü kanca davranışı için bkz. [SDK genel bakışı](/tr/plugins/sdk-overview#hook-decision-semantics).
Tam türlendirilmiş hook davranışı için [SDK genel bakışı](/tr/plugins/sdk-overview#hook-decision-semantics) bölümüne bakın.
## İlgili
- [Plugin oluşturma](/tr/plugins/building-plugins) — kendi Plugininizi oluşturun
- [Plugin oluşturma](/tr/plugins/building-plugins) — kendi Plugin'inizi oluşturun
- [Plugin paketleri](/tr/plugins/bundles) — Codex/Claude/Cursor paket uyumluluğu
- [Plugin manifestosu](/tr/plugins/manifest) — manifesto şeması
- [Araçları kaydetme](/tr/plugins/building-plugins#registering-agent-tools) — bir Plugine aracı araçları ekleyin
- [Plugin manifesti](/tr/plugins/manifest) — manifest şeması
- [Araçları kaydetme](/tr/plugins/building-plugins#registering-agent-tools) — bir Plugin'e ajan araçları ekleyin
- [Plugin iç yapısı](/tr/plugins/architecture) — yetenek modeli ve yükleme işlem hattı
- [Topluluk Pluginleri](/tr/plugins/community) — üçüncü taraf listeleri
- [Topluluk Plugin'leri](/tr/plugins/community) — üçüncü taraf listelemeleri