From 84ad3b85d6b862a2c968eec84d575e72f04c3933 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Fri, 10 Apr 2026 08:58:49 +0000 Subject: [PATCH] chore(i18n): refresh tr translations --- docs/tr/automation/tasks.md | 215 +-- docs/tr/concepts/active-memory.md | 577 ++++++ docs/tr/concepts/agent-loop.md | 163 +- docs/tr/concepts/memory-search.md | 59 +- docs/tr/concepts/qa-e2e-automation.md | 132 +- docs/tr/gateway/configuration-reference.md | 1942 +++++++++++++++----- docs/tr/gateway/protocol.md | 469 ++--- docs/tr/help/testing.md | 658 +++---- docs/tr/reference/memory-config.md | 382 ++-- docs/tr/tools/browser.md | 571 +++--- docs/tr/tools/exec-approvals.md | 549 +++--- 11 files changed, 3638 insertions(+), 2079 deletions(-) create mode 100644 docs/tr/concepts/active-memory.md diff --git a/docs/tr/automation/tasks.md b/docs/tr/automation/tasks.md index d1cfbd3f4..4f7faaf13 100644 --- a/docs/tr/automation/tasks.md +++ b/docs/tr/automation/tasks.md @@ -1,44 +1,44 @@ --- read_when: - - Devam eden veya kısa süre önce tamamlanan arka plan işlerini incelerken - - Ayrılmış temsilci çalıştırmaları için teslimat hatalarını ayıklarken - - Arka plan çalıştırmalarının oturumlar, cron ve heartbeat ile nasıl ilişkili olduğunu anlamak için -summary: ACP çalıştırmaları, alt temsilciler, yalıtılmış cron işleri ve CLI işlemleri için arka plan görev takibi + - Devam eden veya yakın zamanda tamamlanmış arka plan çalışmasının incelenmesi + - Ayrılmış aracı çalıştırmaları için teslim başarısızlıklarını ayıklama + - Arka plan çalıştırmalarının oturumlar, cron ve heartbeat ile nasıl ilişkili olduğunu anlama +summary: ACP çalıştırmaları, alt aracılar, yalıtılmış cron işleri ve CLI işlemleri için arka plan görev takibi title: Arka Plan Görevleri x-i18n: - generated_at: "2026-04-06T03:06:50Z" + generated_at: "2026-04-10T08:50:13Z" model: gpt-5.4 provider: openai - source_hash: 2f56c1ac23237907a090c69c920c09578a2f56f5d8bf750c7f2136c603c8a8ff + source_hash: d7b5ba41f1025e0089986342ce85698bc62f676439c3ccf03f3ed146beb1b1ac source_path: automation/tasks.md workflow: 15 --- # Arka Plan Görevleri -> **Zamanlama mı arıyorsunuz?** Doğru mekanizmayı seçmek için [Automation & Tasks](/tr/automation) bölümüne bakın. Bu sayfa arka plan işlerinin **izlenmesini** kapsar, planlanmasını değil. +> **Zamanlama mı arıyorsunuz?** Doğru mekanizmayı seçmek için [Otomasyon ve Görevler](/tr/automation) sayfasına bakın. Bu sayfa arka plan çalışmalarının **takibini** kapsar, zamanlanmasını değil. Arka plan görevleri, **ana konuşma oturumunuzun dışında** çalışan işleri izler: -ACP çalıştırmaları, alt temsilci başlatmaları, yalıtılmış cron işi yürütmeleri ve CLI ile başlatılan işlemler. +ACP çalıştırmaları, alt aracı başlatmaları, yalıtılmış cron işi yürütmeleri ve CLI tarafından başlatılan işlemler. -Görevler oturumların, cron işlerinin veya heartbeat'lerin yerini **almaz** — bunlar, ayrılmış olarak hangi işin gerçekleştiğini, ne zaman gerçekleştiğini ve başarılı olup olmadığını kaydeden **etkinlik kayıt defteridir**. +Görevler oturumların, cron işlerinin veya heartbeat'lerin **yerini almaz** — bunlar, ayrılmış işlerin ne yaptığını, ne zaman yaptığını ve başarılı olup olmadığını kaydeden **etkinlik defteridir**. -Her temsilci çalıştırması bir görev oluşturmaz. Heartbeat dönüşleri ve normal etkileşimli sohbetler oluşturmaz. Tüm cron yürütmeleri, ACP başlatmaları, alt temsilci başlatmaları ve CLI temsilci komutları oluşturur. +Her aracı çalıştırması bir görev oluşturmaz. Heartbeat dönüşleri ve normal etkileşimli sohbet oluşturmaz. Tüm cron yürütmeleri, ACP başlatmaları, alt aracı başlatmaları ve CLI aracı komutları oluşturur. ## Kısa özet -- Görevler zamanlayıcı değil, **kayıttır** — cron ve heartbeat işin _ne zaman_ çalışacağını belirler, görevler _ne olduğunu_ izler. -- ACP, alt temsilciler, tüm cron işleri ve CLI işlemleri görev oluşturur. Heartbeat dönüşleri oluşturmaz. -- Her görev `queued → running → terminal` aşamalarından geçer (`succeeded`, `failed`, `timed_out`, `cancelled` veya `lost`). -- Cron görevleri, cron çalışma zamanı işi hâlâ sahipleniyorsa etkin kalır; sohbet destekli CLI görevleri yalnızca sahibi olan çalıştırma bağlamı hâlâ etkinse etkin kalır. -- Tamamlanma itme temellidir: ayrılmış işler doğrudan bildirim gönderebilir veya bittiğinde istekte bulunan oturumu/heartbeat'i uyandırabilir; bu nedenle durum yoklama döngüleri genellikle yanlış yaklaşımdır. -- Yalıtılmış cron çalıştırmaları ve alt temsilci tamamlanmaları, son temizleme muhasebesinden önce alt oturumları için izlenen tarayıcı sekmelerini/süreçlerini en iyi çabayla temizler. -- Yalıtılmış cron teslimatı, soy alt temsilci işleri hâlâ boşalırken eski ara üst yanıtları bastırır ve teslimattan önce gelirse son soy çıktısını tercih eder. +- Görevler zamanlayıcı değil, **kayıttır** — işin _ne zaman_ çalışacağına cron ve heartbeat karar verir, görevler _ne olduğunu_ izler. +- ACP, alt aracılar, tüm cron işleri ve CLI işlemleri görev oluşturur. Heartbeat dönüşleri oluşturmaz. +- Her görev `queued → running → terminal` üzerinden ilerler (`succeeded`, `failed`, `timed_out`, `cancelled` veya `lost`). +- Cron görevleri, cron çalışma zamanı işi hâlâ sahipleniyorsa canlı kalır; sohbet destekli CLI görevleri yalnızca sahip olan çalıştırma bağlamı hâlâ etkinken canlı kalır. +- Tamamlanma push tabanlıdır: ayrılmış işler tamamlandığında doğrudan bildirim yapabilir veya istekte bulunan oturumu/heartbeat'i uyandırabilir, bu nedenle durum yoklama döngüleri genellikle yanlış yaklaşımdır. +- Yalıtılmış cron çalıştırmaları ve alt aracı tamamlanmaları, son temizleme kayıtları yapılmadan önce alt oturumları için izlenen tarayıcı sekmelerini/süreçlerini en iyi gayretle temizler. +- Yalıtılmış cron teslimi, alt soy alt aracı işi hâlâ boşalırken eski ara üst yanıtları bastırır ve teslimden önce gelirse son alt soy çıktısını tercih eder. - Tamamlanma bildirimleri doğrudan bir kanala teslim edilir veya bir sonraki heartbeat için kuyruğa alınır. - `openclaw tasks list` tüm görevleri gösterir; `openclaw tasks audit` sorunları ortaya çıkarır. -- Terminal kayıtları 7 gün tutulur, ardından otomatik olarak temizlenir. +- Terminal kayıtları 7 gün tutulur, ardından otomatik olarak budanır. ## Hızlı başlangıç @@ -50,7 +50,7 @@ openclaw tasks list openclaw tasks list --runtime acp openclaw tasks list --status running -# Belirli bir görevin ayrıntılarını göster (kimlik, çalışma kimliği veya oturum anahtarıyla) +# Belirli bir görevin ayrıntılarını göster (ID, çalıştırma ID'si veya oturum anahtarıyla) openclaw tasks show # Çalışan bir görevi iptal et (alt oturumu sonlandırır) @@ -74,19 +74,19 @@ openclaw tasks flow cancel ## Bir görevi ne oluşturur -| Kaynak | Çalışma zamanı türü | Görev kaydının oluşturulduğu an | Varsayılan bildirim ilkesi | -| ---------------------- | ------------------- | ---------------------------------------------------- | -------------------------- | -| ACP arka plan çalıştırmaları | `acp` | Bir alt ACP oturumu başlatıldığında | `done_only` | -| Alt temsilci orkestrasyonu | `subagent` | `sessions_spawn` ile bir alt temsilci başlatıldığında | `done_only` | -| Cron işleri (tüm türler) | `cron` | Her cron yürütmesinde (ana oturum ve yalıtılmış) | `silent` | -| CLI işlemleri | `cli` | Ağ geçidi üzerinden çalışan `openclaw agent` komutlarında | `silent` | -| Temsilci medya işleri | `cli` | Oturum destekli `video_generate` çalıştırmalarında | `silent` | +| Kaynak | Çalışma zamanı türü | Görev kaydının oluşturulduğu an | Varsayılan bildirim ilkesi | +| ---------------------- | ------------------- | ------------------------------------------------------ | -------------------------- | +| ACP arka plan çalıştırmaları | `acp` | Alt ACP oturumu başlatılırken | `done_only` | +| Alt aracı orkestrasyonu | `subagent` | `sessions_spawn` ile bir alt aracı başlatılırken | `done_only` | +| Cron işleri (tüm türler) | `cron` | Her cron yürütmesinde (ana oturum ve yalıtılmış) | `silent` | +| CLI işlemleri | `cli` | Ağ geçidi üzerinden çalışan `openclaw agent` komutları | `silent` | +| Aracı medya işleri | `cli` | Oturum destekli `video_generate` çalıştırmaları | `silent` | Ana oturum cron görevleri varsayılan olarak `silent` bildirim ilkesi kullanır — izleme için kayıt oluştururlar ancak bildirim üretmezler. Yalıtılmış cron görevleri de varsayılan olarak `silent` kullanır, ancak kendi oturumlarında çalıştıkları için daha görünürdür. -Oturum destekli `video_generate` çalıştırmaları da `silent` bildirim ilkesi kullanır. Yine de görev kayıtları oluştururlar, ancak tamamlanma orijinal temsilci oturumuna dahili bir uyandırma olarak geri verilir; böylece temsilci takip mesajını yazabilir ve tamamlanan videoyu kendisi ekleyebilir. `tools.media.asyncCompletion.directSend` seçeneğini etkinleştirirseniz, asenkron `music_generate` ve `video_generate` tamamlanmaları, istekte bulunan oturum uyandırma yoluna geri dönmeden önce önce doğrudan kanal teslimatını dener. +Oturum destekli `video_generate` çalıştırmaları da `silent` bildirim ilkesi kullanır. Yine de görev kaydı oluştururlar, ancak tamamlanma özgün aracı oturumuna iç uyandırma olarak geri verilir; böylece aracı takip mesajını yazabilir ve tamamlanan videoyu kendisi ekleyebilir. `tools.media.asyncCompletion.directSend` seçeneğini etkinleştirirseniz, eşzamansız `music_generate` ve `video_generate` tamamlanmaları, istek sahibi oturumu uyandırma yoluna geri dönmeden önce önce doğrudan kanal teslimini dener. -Bir oturum destekli `video_generate` görevi hâlâ etkinken araç aynı zamanda bir koruma da görevi görür: aynı oturumda yinelenen `video_generate` çağrıları ikinci bir eşzamanlı üretim başlatmak yerine etkin görev durumunu döndürür. Temsilci tarafında açık bir ilerleme/durum sorgusu istediğinizde `action: "status"` kullanın. +Oturum destekli bir `video_generate` görevi hâlâ etkin durumdayken, araç aynı zamanda bir koruma mekanizması gibi davranır: aynı oturumda tekrarlanan `video_generate` çağrıları, ikinci bir eşzamanlı üretim başlatmak yerine etkin görevin durumunu döndürür. Aracı tarafında açık bir ilerleme/durum sorgusu istediğinizde `action: "status"` kullanın. **Görev oluşturmayanlar:** @@ -99,59 +99,59 @@ Bir oturum destekli `video_generate` görevi hâlâ etkinken araç aynı zamanda ```mermaid stateDiagram-v2 [*] --> queued - queued --> running : temsilci başlar - running --> succeeded : başarıyla tamamlanır - running --> failed : hata - running --> timed_out : zaman aşımı aşıldı - running --> cancelled : operatör iptal eder - queued --> lost : oturum > 5 dk yok - running --> lost : oturum > 5 dk yok + queued --> running : agent starts + running --> succeeded : completes ok + running --> failed : error + running --> timed_out : timeout exceeded + running --> cancelled : operator cancels + queued --> lost : session gone > 5 min + running --> lost : session gone > 5 min ``` -| Durum | Anlamı | +| Durum | Anlamı | | ----------- | -------------------------------------------------------------------------- | -| `queued` | Oluşturuldu, temsilcinin başlaması bekleniyor | -| `running` | Temsilci dönüşü etkin olarak yürütülüyor | -| `succeeded` | Başarıyla tamamlandı | -| `failed` | Bir hata ile tamamlandı | -| `timed_out` | Yapılandırılmış zaman aşımı aşıldı | -| `cancelled` | Operatör tarafından `openclaw tasks cancel` ile durduruldu | -| `lost` | Çalışma zamanı, 5 dakikalık ek süreden sonra yetkili arka plan durumunu kaybetti | +| `queued` | Oluşturuldu, aracının başlaması bekleniyor | +| `running` | Aracı dönüşü etkin olarak yürütülüyor | +| `succeeded` | Başarıyla tamamlandı | +| `failed` | Bir hatayla tamamlandı | +| `timed_out` | Yapılandırılan zaman aşımı aşıldı | +| `cancelled` | Operatör tarafından `openclaw tasks cancel` ile durduruldu | +| `lost` | Çalışma zamanı, 5 dakikalık tolerans süresinden sonra yetkili arka durumunu kaybetti | -Geçişler otomatik gerçekleşir — ilişkili temsilci çalıştırması bittiğinde görev durumu buna uygun olarak güncellenir. +Geçişler otomatik gerçekleşir — ilişkili aracı çalıştırması bittiğinde görev durumu da buna göre güncellenir. `lost` çalışma zamanına duyarlıdır: -- ACP görevleri: destekleyici ACP alt oturum meta verisi kayboldu. -- Alt temsilci görevleri: destekleyici alt oturum hedef temsilci deposundan kayboldu. -- Cron görevleri: cron çalışma zamanı artık işi etkin olarak izlemiyor. -- CLI görevleri: yalıtılmış alt oturum görevleri alt oturumu kullanır; sohbet destekli CLI görevleri ise canlı çalıştırma bağlamını kullanır, bu nedenle kalıcı kanal/grup/doğrudan oturum satırları onları etkin tutmaz. +- ACP görevleri: arka plandaki ACP alt oturum meta verisi kayboldu. +- Alt aracı görevleri: arka plandaki alt oturum hedef aracı deposundan kayboldu. +- Cron görevleri: cron çalışma zamanı işi artık etkin olarak izlemiyor. +- CLI görevleri: yalıtılmış alt oturum görevleri alt oturumu kullanır; sohbet destekli CLI görevleri bunun yerine canlı çalıştırma bağlamını kullanır, bu nedenle uzun süre kalan kanal/grup/doğrudan oturum satırları onları canlı tutmaz. -## Teslimat ve bildirimler +## Teslim ve bildirimler -Bir görev terminal duruma ulaştığında OpenClaw sizi bilgilendirir. İki teslimat yolu vardır: +Bir görev terminal duruma ulaştığında OpenClaw size bildirim gönderir. İki teslim yolu vardır: -**Doğrudan teslimat** — görevin bir kanal hedefi varsa (`requesterOrigin`), tamamlanma mesajı doğrudan o kanala gider (Telegram, Discord, Slack vb.). Alt temsilci tamamlanmalarında OpenClaw ayrıca mevcut olduğunda bağlı iş parçacığı/konu yönlendirmesini korur ve doğrudan teslimattan vazgeçmeden önce istekte bulunan oturumun saklanan rotasından (`lastChannel` / `lastTo` / `lastAccountId`) eksik bir `to` / hesap bilgisini doldurabilir. +**Doğrudan teslim** — görevin bir kanal hedefi varsa (`requesterOrigin`), tamamlanma mesajı doğrudan o kanala gider (Telegram, Discord, Slack vb.). Alt aracı tamamlanmalarında OpenClaw, varsa bağlı ileti dizisi/konu yönlendirmesini de korur ve doğrudan teslimden vazgeçmeden önce istekte bulunan oturumun kayıtlı rotasından (`lastChannel` / `lastTo` / `lastAccountId`) eksik `to` / hesap bilgisini doldurabilir. -**Oturum kuyruğuna alınmış teslimat** — doğrudan teslimat başarısız olursa veya kaynak ayarlanmadıysa 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ınmış teslim** — doğrudan teslim başarısız olursa veya bir origin ayarlı değilse, güncelleme istekte bulunan oturumda sistem olayı olarak kuyruğa alınır ve bir sonraki heartbeat'te görünür. -Görev tamamlanması anında bir heartbeat uyandırması tetikler, böylece sonucu hızlıca görürsünüz — bir sonraki planlı heartbeat işaretini beklemeniz gerekmez. +Görev tamamlanması, sonucu hızlıca görebilmeniz için heartbeat'i hemen uyandırır — bir sonraki zamanlanmış heartbeat tikini beklemeniz gerekmez. -Bu, olağan iş akışının itme tabanlı olduğu anlamına gelir: ayrılmış işi bir kez başlatın, ardından çalışma zamanının tamamlandığında sizi uyandırmasına veya bilgilendirmesine izin verin. Görev durumunu yalnızca hata ayıklama, müdahale veya açık bir denetim gerektiğinde yoklayın. +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 tamamlanınca çalışma zamanının sizi uyandırmasına veya size bildirim göndermesine izin verin. Görev durumunu yalnızca ayıklama, müdahale veya açık bir denetim gerektiğinde sorgulayın. ### Bildirim ilkeleri -Her görev hakkında ne kadar bilgi alacağınızı denetleyin: +Her görev hakkında ne kadar bilgi almak istediğinizi kontrol edin: -| İlke | Teslim edilen içerik | -| --------------------- | ----------------------------------------------------------------------- | +| İlke | Teslim edilen | +| --------------------- | -------------------------------------------------------------------------- | | `done_only` (varsayılan) | Yalnızca terminal durum (`succeeded`, `failed` vb.) — **varsayılan budur** | -| `state_changes` | Her durum geçişi ve ilerleme güncellemesi | -| `silent` | Hiçbir şey | +| `state_changes` | Her durum geçişi ve ilerleme güncellemesi | +| `silent` | Hiçbir şey | -Bir görev çalışırken ilkeyi değiştirin: +Görev çalışırken ilkeyi değiştirin: ```bash openclaw tasks notify state_changes @@ -165,7 +165,7 @@ openclaw tasks notify state_changes openclaw tasks list [--runtime ] [--status ] [--json] ``` -Çıktı sütunları: Görev Kimliği, Tür, Durum, Teslimat, Ç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. ### `tasks show` @@ -173,7 +173,7 @@ openclaw tasks list [--runtime ] [--status ] [--j openclaw tasks show ``` -Arama belirteci bir görev kimliğini, çalışma kimliğini veya oturum anahtarını kabul eder. Zamanlama, teslimat durumu, hata ve terminal özet dahil olmak üzere 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 özet dahil tam kaydı gösterir. ### `tasks cancel` @@ -181,7 +181,7 @@ Arama belirteci bir görev kimliğini, çalışma kimliğini veya oturum anahtar openclaw tasks cancel ``` -ACP ve alt temsilci görevleri için bu, alt oturumu sonlandırır. Durum `cancelled` olarak geçiş yapar ve bir teslimat bildirimi gönderilir. +ACP ve alt aracı görevlerinde 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` durumuna geçer ve uygulanabilirse bir teslim bildirimi gönderilir. ### `tasks notify` @@ -195,16 +195,16 @@ openclaw tasks notify openclaw tasks audit [--json] ``` -Operasyonel sorunları ortaya çıkarır. Sorunlar tespit edildiğinde bulgular `openclaw status` içinde de görünür. +Operasyonel sorunları ortaya çıkarır. Sorun tespit edildiğinde bulgular `openclaw status` içinde de görünür. -| Bulgu | Önem derecesi | Tetikleyici | -| ------------------------- | -------- | ----------------------------------------------------- | -| `stale_queued` | warn | 10 dakikadan uzun süredir kuyrukta | -| `stale_running` | error | 30 dakikadan uzun süredir çalışıyor | -| `lost` | error | Çalışma zamanı destekli görev sahipliği kayboldu | -| `delivery_failed` | warn | Teslimat başarısız oldu ve bildirim ilkesi `silent` değil | -| `missing_cleanup` | warn | Temizleme zaman damgası olmayan terminal görev | -| `inconsistent_timestamps` | warn | Zaman çizelgesi ihlali (örneğin başlamadan önce bitmiş) | +| Bulgu | Önem derecesi | Tetikleyici | +| ------------------------- | ------------- | ---------------------------------------------------- | +| `stale_queued` | warn | 10 dakikadan uzun süredir kuyrukta | +| `stale_running` | error | 30 dakikadan uzun süredir çalışıyor | +| `lost` | error | Çalışma zamanı destekli görev sahipliği kayboldu | +| `delivery_failed` | warn | Teslim başarısız oldu ve bildirim ilkesi `silent` değil | +| `missing_cleanup` | warn | Temizleme zaman damgası olmayan terminal görev | +| `inconsistent_timestamps` | warn | Zaman çizelgesi ihlali (örneğin başlamadan bitmiş) | ### `tasks maintenance` @@ -213,22 +213,21 @@ openclaw tasks maintenance [--json] openclaw tasks maintenance --apply [--json] ``` -Bunu, görevler ve Task Flow durumu için mutabakat, temizleme damgalama ve budamayı önizlemek veya uygulamak için kullanın. +Bunu görevler ve Task Flow durumu için uzlaştırma, temizleme damgalaması ve budamayı önizlemek veya uygulamak için kullanın. -Mutabakat çalışma zamanına duyarlıdır: +Uzlaştırma çalışma zamanına duyarlıdır: -- ACP/alt temsilci görevleri, destekleyici alt oturumlarını kontrol eder. -- Cron görevleri, cron çalışma zamanının işi hâlâ sahiplenip sahiplenmediğini kontrol eder. -- Sohbet destekli CLI görevleri, yalnızca sohbet oturumu satırını değil, sahip olan canlı çalıştırma bağlamını kontrol eder. +- ACP/alt aracı görevleri arka plandaki alt oturumlarını kontrol eder. +- Cron görevleri, cron çalışma zamanının işe hâlâ sahip olup olmadığını kontrol eder. +- Sohbet destekli CLI görevleri yalnızca sohbet oturumu satırını değil, sahip olan canlı çalıştırma bağlamını kontrol eder. Tamamlanma temizliği de çalışma zamanına duyarlıdır: -- Alt temsilci 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 sonlanmadan önce cron oturumu için izlenen tarayıcı sekmelerini/süreçlerini en iyi çabayla kapatır. -- Yalıtılmış cron teslimatı, gerektiğinde soy alt temsilci takibini bekler ve - eski üst onay metnini duyurmak yerine bastırır. -- Alt temsilci tamamlanma teslimatı, en son görünür yardımcı metnini tercih eder; bu boşsa temizlenmiş en son tool/toolResult metnine geri döner ve yalnızca zaman aşımına uğramış araç çağrısı çalıştırmaları kısa bir kısmi ilerleme özetine indirgenebilir. -- Temizleme hataları gerçek görev sonucunu gizlemez. +- Alt aracı tamamlanması, duyuru temizliği devam etmeden önce alt oturum için izlenen tarayıcı sekmelerini/süreçlerini en iyi gayretle kapatır. +- Yalıtılmış cron tamamlanması, çalıştırma tamamen sonlanmadan önce cron oturumu için izlenen tarayıcı sekmelerini/süreçlerini en iyi gayretle kapatır. +- Yalıtılmış cron teslimi, gerektiğinde alt soy alt aracı takibini bekler ve eski üst onay metnini duyurmak yerine bastırır. +- Alt aracı tamamlanma teslimi en son görünür yardımcı metni tercih eder; bu boşsa temizlenmiş en son tool/toolResult metnine geri döner ve yalnızca zaman aşımına uğramış tool-call çalıştırmaları kısa bir kısmi ilerleme özetine indirgenebilir. +- Temizleme hataları gerçek görev sonucunu maskelemez. ### `tasks flow list|show|cancel` @@ -238,19 +237,19 @@ openclaw tasks flow show [--json] openclaw tasks flow cancel ``` -Bunları, tek bir arka plan görev kaydı yerine ilgilendiğiniz şey orkestre eden Task Flow olduğunda kullanın. +Bunları, tek bir arka plan görev kaydından ziyade ilgilendiğiniz şey orkestrasyon yapan Task Flow olduğunda kullanın. ## Sohbet görev panosu (`/tasks`) -Herhangi bir sohbet oturumunda, o oturuma bağlı arka plan görevlerini görmek için `/tasks` kullanın. Pano etkin ve kısa süre önce tamamlanmış görevleri çalışma zamanı, durum, zamanlama ve ilerleme veya hata ayrıntılarıyla gösterir. +Herhangi bir sohbet oturumunda, o oturuma bağlı arka plan görevlerini görmek için `/tasks` kullanın. Pano etkin ve yakın zamanda tamamlanmış görevleri çalışma zamanı, durum, zamanlama ve ilerleme veya hata ayrıntısıyla gösterir. -Geçerli oturumda görünür bağlı görev yoksa, `/tasks` diğer oturum ayrıntılarını sızdırmadan yine de genel bir görünüm alabilmeniz için temsilci-yerel görev sayılarına geri döner. +Geçerli oturumda görünür bağlı görev yoksa, `/tasks` diğer oturum ayrıntılarını sızdırmadan yine de genel bir görünüm elde edebilmeniz için aracı yerel görev sayılarına geri döner. -Tam operatör kayıt defteri için CLI kullanın: `openclaw tasks list`. +Tam operatör defteri için CLI'yi kullanın: `openclaw tasks list`. ## Durum entegrasyonu (görev baskısı) -`openclaw status` hızlı bakışta bir görev özeti içerir: +`openclaw status`, tek bakışta görülebilen bir görev özeti içerir: ``` Tasks: 3 queued · 2 running · 1 issues @@ -260,13 +259,15 @@ Tasks: 3 queued · 2 running · 1 issues - **active** — `queued` + `running` sayısı - **failures** — `failed` + `timed_out` + `lost` sayısı -- **byRuntime** — `acp`, `subagent`, `cron`, `cli` dağılımı +- **byRuntime** — `acp`, `subagent`, `cron`, `cli` kırılımı -Hem `/status` hem de `session_status` aracı temizlemeye duyarlı bir görev anlık görüntüsü kullanır: etkin görevler tercih edilir, eski tamamlanmış satırlar gizlenir ve son hatalar yalnızca etkin iş kalmadığında gösterilir. Bu, durum kartının şu anda önemli olana odaklanmasını sağlar. +Hem `/status` hem de `session_status` aracı, temizleme farkındalığı olan bir görev anlık görüntüsü kullanır: etkin görevler +tercih edilir, eski tamamlanmış satırlar gizlenir ve yakın tarihli başarısızlıklar yalnızca etkin çalışma +kalmadığında gösterilir. Bu, durum kartının şu anda önemli olana odaklı kalmasını sağlar. ## Depolama ve bakım -### Görevler nerede yaşar +### Görevlerin bulunduğu yer Görev kayıtları SQLite içinde şu konumda kalıcı olarak saklanır: @@ -274,50 +275,50 @@ Görev kayıtları SQLite içinde şu konumda kalıcı olarak saklanır: $OPENCLAW_STATE_DIR/tasks/runs.sqlite ``` -Kayıt defteri ağ geçidi başlangıcında belleğe yüklenir ve yeniden başlatmalar arasında dayanıklılık için yazmaları SQLite ile eşzamanlar. +Kayıt defteri, ağ geçidi başlatılırken belleğe yüklenir ve yeniden başlatmalar arasında dayanıklılık sağlamak için yazmaları SQLite ile eşzamanlar. ### Otomatik bakım -Her **60 saniyede** bir temizleyici çalışır ve üç şeyi ele alır: +Bir süpürücü her **60 saniyede** bir çalışır ve üç işi yerine getirir: -1. **Mutabakat** — etkin görevlerin hâlâ yetkili çalışma zamanı desteğine sahip olup olmadığını kontrol eder. ACP/alt temsilci 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 destekleyici durum 5 dakikadan uzun süre kayıpsa görev `lost` olarak işaretlenir. -2. **Temizleme damgalama** — terminal görevlerde bir `cleanupAfter` zaman damgası ayarlar (`endedAt + 7 days`). +1. **Uzlaştırma** — etkin görevlerin hâlâ yetkili çalışma zamanı arka durumuna sahip olup olmadığını kontrol eder. 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 arka durum 5 dakikadan uzun süre yoksa, görev `lost` olarak işaretlenir. +2. **Temizleme damgalaması** — terminal görevlerde `cleanupAfter` zaman damgasını ayarlar (`endedAt + 7 days`). 3. **Budama** — `cleanupAfter` tarihini geçmiş kayıtları siler. -**Saklama süresi**: terminal görev kayıtları **7 gün** tutulur, ardından otomatik olarak temizlenir. Yapılandırma gerekmez. +**Saklama süresi**: terminal görev kayıtları **7 gün** tutulur, ardından otomatik olarak budanır. Yapılandırma gerekmez. ## Görevlerin diğer sistemlerle ilişkisi ### Görevler ve Task Flow -[Task Flow](/tr/automation/taskflow), arka plan görevlerinin üzerindeki akış orkestrasyon katmanıdır. Tek bir akış, yaşam süresi boyunca yönetilen veya yansıtılmış eşzamanlama kiplerini kullanarak birden fazla görevi koordine edebilir. Tek tek görev kayıtlarını incelemek için `openclaw tasks`, orkestre eden akışı incelemek için `openclaw tasks flow` kullanın. +[Task Flow](/tr/automation/taskflow), arka plan görevlerinin üzerindeki akış orkestrasyon katmanıdır. Tek bir akış, yönetilen veya yansıtılmış senkronizasyon kiplerini kullanarak yaşam döngüsü boyunca birden çok görevi koordine edebilir. Tek tek görev kayıtlarını incelemek için `openclaw tasks`, orkestrasyonu yapan akışı incelemek için `openclaw tasks flow` kullanın. Ayrıntılar için [Task Flow](/tr/automation/taskflow) bölümüne bakın. ### Görevler ve cron -Bir cron işi **tanımı** `~/.openclaw/cron/jobs.json` içinde bulunur. **Her** cron yürütmesi bir görev kaydı oluşturur — hem ana oturum hem de yalıtılmış. Ana oturum cron görevleri varsayılan olarak `silent` bildirim ilkesi kullanır, böylece bildirim üretmeden izleme sağlar. +Bir cron işi **tanımı** `~/.openclaw/cron/jobs.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 ilkesi kullanır; böylece bildirim üretmeden izleme yapılır. -Bkz. [Cron Jobs](/tr/automation/cron-jobs). +Bkz. [Cron İşleri](/tr/automation/cron-jobs). ### Görevler ve heartbeat -Heartbeat çalıştırmaları ana oturum dönüşleridir — görev kaydı oluşturmazlar. Bir görev tamamlandığında sonucu hızlı görmeniz için bir heartbeat uyandırması tetikleyebilir. +Heartbeat çalıştırmaları ana oturum dönüşleridir — görev kaydı oluşturmazlar. Bir görev tamamlandığında, sonucu hızlıca görebilmeniz için bir heartbeat uyandırmasını tetikleyebilir. Bkz. [Heartbeat](/tr/gateway/heartbeat). ### Görevler ve oturumlar -Bir görev bir `childSessionKey` (işin çalıştığı yer) ve bir `requesterSessionKey` (onu kimin başlattığı) değerine başvurabilir. Oturumlar konuşma bağlamıdır; görevler bunun üzerindeki etkinlik izlemesidir. +Bir görev `childSessionKey` (işin çalıştığı yer) ve `requesterSessionKey` (onu kimin başlattığı) değerlerine başvurabilir. Oturumlar konuşma bağlamıdır; görevler ise bunun üzerindeki etkinlik takibidir. -### Görevler ve temsilci çalıştırmaları +### Görevler ve aracı çalıştırmaları -Bir görevin `runId` değeri, işi yapan temsilci çalıştırmasına bağlanır. Temsilci yaşam döngüsü olayları (başlangıç, bitiş, hata) görev durumunu otomatik olarak günceller — yaşam döngüsünü elle yönetmeniz gerekmez. +Bir görevin `runId` değeri, işi yapan aracı çalıştırmasına bağlanır. Aracı yaşam döngüsü olayları (başlangıç, bitiş, hata) görev durumunu otomatik olarak günceller — yaşam döngüsünü elle yönetmeniz gerekmez. ## İlgili -- [Automation & Tasks](/tr/automation) — tüm otomasyon mekanizmalarına hızlı bakış +- [Otomasyon ve Görevler](/tr/automation) — tüm otomasyon mekanizmaları tek bakışta - [Task Flow](/tr/automation/taskflow) — görevlerin üzerindeki akış orkestrasyonu -- [Scheduled Tasks](/tr/automation/cron-jobs) — arka plan işlerini planlama -- [Heartbeat](/tr/gateway/heartbeat) — düzenli ana oturum dönüşleri -- [CLI: Tasks](/cli/index#tasks) — CLI komut başvurusu +- [Zamanlanmış Görevler](/tr/automation/cron-jobs) — arka plan çalışmasını zamanlama +- [Heartbeat](/tr/gateway/heartbeat) — periyodik ana oturum dönüşleri +- [CLI: Görevler](/cli/index#tasks) — CLI komut başvurusu diff --git a/docs/tr/concepts/active-memory.md b/docs/tr/concepts/active-memory.md new file mode 100644 index 000000000..2a4913bc1 --- /dev/null +++ b/docs/tr/concepts/active-memory.md @@ -0,0 +1,577 @@ +--- +read_when: + - Etkin belleğin ne işe yaradığını anlamak istiyorsunuz + - Bir konuşma aracısı için etkin belleği açmak istiyorsunuz + - Etkin bellek davranışını her yerde etkinleştirmeden ayarlamak istiyorsunuz +summary: Etkileşimli sohbet oturumlarına ilgili belleği enjekte eden, eklentiye ait engelleyici bir bellek alt aracısı +title: Etkin Bellek +x-i18n: + generated_at: "2026-04-10T08:50:02Z" + model: gpt-5.4 + provider: openai + source_hash: 6a51437df4ae4d9d57764601dfcfcdadb269e2895bf49dc82b9f496c1b3cb341 + source_path: concepts/active-memory.md + workflow: 15 +--- + +# Etkin Bellek + +Etkin bellek, uygun konuşma oturumları için ana yanıttan önce çalışan, eklentiye ait isteğe bağlı engelleyici bir bellek alt aracısıdır. + +Bu özellik vardır çünkü çoğu bellek sistemi yeteneklidir ama tepkiseldir. Belleği ne zaman arayacağına karar vermek için ana aracıya ya da kullanıcının "bunu hatırla" veya "bellekte ara" gibi şeyler söylemesine dayanırlar. O noktada, belleğin yanıtı doğal hissettireceği an çoktan geçmiş olur. + +Etkin bellek, ana yanıt oluşturulmadan önce sistemin ilgili belleği öne çıkarması için tek ve sınırlı bir fırsat verir. + +## Bunu Aracınıza Yapıştırın + +Etkin Bellek'i kendi kendine yeterli ve güvenli varsayılanlara sahip bir kurulumla etkinleştirmesini istiyorsanız bunu aracınıza yapıştırın: + +```json5 +{ + plugins: { + entries: { + "active-memory": { + enabled: true, + config: { + enabled: true, + agents: ["main"], + allowedChatTypes: ["direct"], + modelFallbackPolicy: "default-remote", + queryMode: "recent", + promptStyle: "balanced", + timeoutMs: 15000, + maxSummaryChars: 220, + persistTranscripts: false, + logging: true, + }, + }, + }, + }, +} +``` + +Bu, eklentiyi `main` aracısı için açar, varsayılan olarak yalnızca doğrudan mesaj tarzı oturumlarla sınırlı tutar, önce geçerli oturum modelini devralmasına izin verir ve açık veya devralınmış bir model yoksa yerleşik uzak yedeğe yine de izin verir. + +Ardından ağ geçidini yeniden başlatın: + +```bash +node scripts/run-node.mjs gateway --profile dev +``` + +Bunu bir konuşmada canlı olarak incelemek için: + +```text +/verbose on +``` + +## Etkin belleği açın + +En güvenli kurulum şudur: + +1. eklentiyi etkinleştirin +2. bir konuşma aracısını hedefleyin +3. ayarlama yaparken günlüğü açık tutun + +`openclaw.json` içinde şununla başlayın: + +```json5 +{ + plugins: { + entries: { + "active-memory": { + enabled: true, + config: { + agents: ["main"], + allowedChatTypes: ["direct"], + modelFallbackPolicy: "default-remote", + queryMode: "recent", + promptStyle: "balanced", + timeoutMs: 15000, + maxSummaryChars: 220, + persistTranscripts: false, + logging: true, + }, + }, + }, + }, +} +``` + +Ardından ağ geçidini yeniden başlatın: + +```bash +node scripts/run-node.mjs gateway --profile dev +``` + +Bunun anlamı: + +- `plugins.entries.active-memory.enabled: true` eklentiyi açar +- `config.agents: ["main"]` yalnızca `main` aracısını etkin belleğe dahil eder +- `config.allowedChatTypes: ["direct"]` etkin belleği varsayılan olarak yalnızca doğrudan mesaj tarzı oturumlarda açık tutar +- `config.model` ayarlanmamışsa, etkin bellek önce geçerli oturum modelini devralır +- `config.modelFallbackPolicy: "default-remote"` açık veya devralınmış bir model yoksa yerleşik uzak yedeği varsayılan olarak korur +- `config.promptStyle: "balanced"` `recent` modu için varsayılan genel amaçlı istem stilini kullanır +- etkin bellek yine de yalnızca uygun etkileşimli kalıcı sohbet oturumlarında çalışır + +## Nasıl görebilirsiniz + +Etkin bellek, model için gizli sistem bağlamı enjekte eder. Ham `...` etiketlerini istemciye göstermez. + +## Oturum geçişi + +Yapılandırmayı düzenlemeden geçerli sohbet oturumu için etkin belleği duraklatmak veya sürdürmek istediğinizde eklenti komutunu kullanın: + +```text +/active-memory status +/active-memory off +/active-memory on +``` + +Bu, oturum kapsamındadır. `plugins.entries.active-memory.enabled`, aracı hedefleme veya diğer genel yapılandırmaları değiştirmez. + +Komutun yapılandırmaya yazmasını ve tüm oturumlar için etkin belleği duraklatmasını veya sürdürmesini istiyorsanız açık genel biçimi kullanın: + +```text +/active-memory status --global +/active-memory off --global +/active-memory on --global +``` + +Genel biçim `plugins.entries.active-memory.config.enabled` değerini yazar. Etkin belleği daha sonra yeniden açmak için komut kullanılabilir kalsın diye `plugins.entries.active-memory.enabled` değerini açık bırakır. + +Canlı bir oturumda etkin belleğin ne yaptığını görmek istiyorsanız, o oturum için ayrıntılı modu açın: + +```text +/verbose on +``` + +Ayrıntılı mod etkinken OpenClaw şunları gösterebilir: + +- `Active Memory: ok 842ms recent 34 chars` gibi bir etkin bellek durum satırı +- `Active Memory Debug: Lemon pepper wings with blue cheese.` gibi okunabilir bir hata ayıklama özeti + +Bu satırlar, gizli sistem bağlamını besleyen aynı etkin bellek geçişinden türetilir, ancak ham istem işaretlemesini göstermek yerine insanlar için biçimlendirilir. + +Varsayılan olarak engelleyici bellek alt aracısı dökümü geçicidir ve çalışma tamamlandıktan sonra silinir. + +Örnek akış: + +```text +/verbose on +hangi tavuk kanadını sipariş etmeliyim? +``` + +Beklenen görünür yanıt biçimi: + +```text +...normal assistant reply... + +🧩 Active Memory: ok 842ms recent 34 chars +🔎 Active Memory Debug: Lemon pepper wings with blue cheese. +``` + +## Ne zaman çalışır + +Etkin bellek iki geçit kullanır: + +1. **Yapılandırma ile dahil etme** + Eklenti etkinleştirilmiş olmalıdır ve geçerli aracı kimliği `plugins.entries.active-memory.config.agents` içinde görünmelidir. +2. **Sıkı çalışma zamanı uygunluğu** + Etkinleştirilmiş ve hedeflenmiş olsa bile etkin bellek yalnızca uygun etkileşimli kalıcı sohbet oturumlarında çalışır. + +Asıl kural şöyledir: + +```text +plugin enabled ++ +agent id targeted ++ +allowed chat type ++ +eligible interactive persistent chat session += +active memory runs +``` + +Bunlardan biri başarısız olursa etkin bellek çalışmaz. + +## Oturum türleri + +`config.allowedChatTypes`, hangi konuşma türlerinin Etkin Bellek'i hiç çalıştırabileceğini kontrol eder. + +Varsayılan değer şöyledir: + +```json5 +allowedChatTypes: ["direct"] +``` + +Bu, Etkin Bellek'in varsayılan olarak doğrudan mesaj tarzı oturumlarda çalıştığı, ancak siz açıkça dahil etmedikçe grup veya kanal oturumlarında çalışmadığı anlamına gelir. + +Örnekler: + +```json5 +allowedChatTypes: ["direct"] +``` + +```json5 +allowedChatTypes: ["direct", "group"] +``` + +```json5 +allowedChatTypes: ["direct", "group", "channel"] +``` + +## Nerede çalışır + +Etkin bellek, platform genelinde bir çıkarım özelliği değil, konuşmayı zenginleştirme özelliğidir. + +| Yüzey | Etkin bellek çalışır mı? | +| ------------------------------------------------------------------- | ------------------------------------------------------- | +| Control UI / web sohbeti kalıcı oturumları | Evet, eklenti etkinse ve aracı hedeflenmişse | +| Aynı kalıcı sohbet yolu üzerindeki diğer etkileşimli kanal oturumları | Evet, eklenti etkinse ve aracı hedeflenmişse | +| Başsız tek seferlik çalıştırmalar | Hayır | +| Heartbeat/arka plan çalıştırmaları | Hayır | +| Genel dahili `agent-command` yolları | Hayır | +| Alt aracı/dahili yardımcı yürütmesi | Hayır | + +## Neden kullanılır + +Etkin belleği şu durumlarda kullanın: + +- oturum kalıcı ve kullanıcıya dönükse +- aracının aranacak anlamlı uzun vadeli belleği varsa +- süreklilik ve kişiselleştirme, ham istem belirlenimliliğinden daha önemliyse + +Özellikle şunlar için iyi çalışır: + +- kalıcı tercihler +- tekrarlayan alışkanlıklar +- doğal biçimde öne çıkması gereken uzun vadeli kullanıcı bağlamı + +Şunlar için uygun değildir: + +- otomasyon +- dahili çalışanlar +- tek seferlik API görevleri +- gizli kişiselleştirmenin şaşırtıcı olacağı yerler + +## Nasıl çalışır + +Çalışma zamanı biçimi şöyledir: + +```mermaid +flowchart LR + U["User Message"] --> Q["Build Memory Query"] + Q --> R["Active Memory Blocking Memory Sub-Agent"] + R -->|NONE or empty| M["Main Reply"] + R -->|relevant summary| I["Append Hidden active_memory_plugin System Context"] + I --> M["Main Reply"] +``` + +Engelleyici bellek alt aracısı yalnızca şunları kullanabilir: + +- `memory_search` +- `memory_get` + +Bağlantı zayıfsa `NONE` döndürmelidir. + +## Sorgu modları + +`config.queryMode`, engelleyici bellek alt aracısının konuşmanın ne kadarını göreceğini kontrol eder. + +## İstem stilleri + +`config.promptStyle`, engelleyici bellek alt aracısının belleği döndürüp döndürmemeye karar verirken ne kadar istekli veya katı olacağını kontrol eder. + +Kullanılabilir stiller: + +- `balanced`: `recent` modu için genel amaçlı varsayılan +- `strict`: en az istekli; yakındaki bağlamdan çok az sızıntı istediğinizde en iyisi +- `contextual`: sürekliliğe en uygun; konuşma geçmişi daha önemli olduğunda en iyisi +- `recall-heavy`: daha yumuşak ama yine de makul eşleşmelerde belleği öne çıkarmaya daha istekli +- `precision-heavy`: eşleşme bariz değilse agresif biçimde `NONE` tercih eder +- `preference-only`: favoriler, alışkanlıklar, rutinler, zevkler ve tekrarlayan kişisel olgular için optimize edilmiştir + +`config.promptStyle` ayarlanmamışsa varsayılan eşleme: + +```text +message -> strict +recent -> balanced +full -> contextual +``` + +`config.promptStyle` değerini açıkça ayarlarsanız, bu geçersiz kılma kazanır. + +Örnek: + +```json5 +promptStyle: "preference-only" +``` + +## Model yedek ilkesi + +`config.model` ayarlanmamışsa Etkin Bellek bir modeli şu sırayla çözmeye çalışır: + +```text +explicit plugin model +-> current session model +-> agent primary model +-> optional built-in remote fallback +``` + +`config.modelFallbackPolicy` son adımı kontrol eder. + +Varsayılan: + +```json5 +modelFallbackPolicy: "default-remote" +``` + +Diğer seçenek: + +```json5 +modelFallbackPolicy: "resolved-only" +``` + +Açık veya devralınmış bir model yoksa, yerleşik uzak varsayılanına dönmek yerine Etkin Bellek'in hatırlamayı atlamasını istiyorsanız `resolved-only` kullanın. + +## Gelişmiş kaçış kapıları + +Bu seçenekler bilerek önerilen kurulumun bir parçası değildir. + +`config.thinking`, engelleyici bellek alt aracısının düşünme düzeyini geçersiz kılabilir: + +```json5 +thinking: "medium" +``` + +Varsayılan: + +```json5 +thinking: "off" +``` + +Bunu varsayılan olarak etkinleştirmeyin. Etkin Bellek yanıt yolunda çalışır, bu nedenle ek düşünme süresi doğrudan kullanıcının gördüğü gecikmeyi artırır. + +`config.promptAppend`, varsayılan Etkin Bellek isteminden sonra ve konuşma bağlamından önce ek işletmen yönergeleri ekler: + +```json5 +promptAppend: "Tek seferlik olaylar yerine kalıcı uzun vadeli tercihleri tercih et." +``` + +`config.promptOverride`, varsayılan Etkin Bellek isteminin yerine geçer. OpenClaw yine de ardından konuşma bağlamını ekler: + +```json5 +promptOverride: "Bir bellek arama aracısısın. NONE veya tek bir kısa kullanıcı olgusu döndür." +``` + +Farklı bir hatırlama sözleşmesini kasıtlı olarak test etmiyorsanız istem özelleştirmesi önerilmez. Varsayılan istem, ana model için ya `NONE` ya da kısa kullanıcı-olgusu bağlamı döndürecek şekilde ayarlanmıştır. + +### `message` + +Yalnızca en son kullanıcı mesajı gönderilir. + +```text +Latest user message only +``` + +Bunu şu durumlarda kullanın: + +- en hızlı davranışı istiyorsanız +- kalıcı tercihlerin hatırlanmasına en güçlü önyargıyı istiyorsanız +- takip eden turların konuşma bağlamına ihtiyacı yoksa + +Önerilen zaman aşımı: + +- yaklaşık `3000` ile `5000` ms arasında başlayın + +### `recent` + +En son kullanıcı mesajı ile birlikte son konuşmalardan küçük bir kuyruk gönderilir. + +```text +Recent conversation tail: +user: ... +assistant: ... +user: ... + +Latest user message: +... +``` + +Bunu şu durumlarda kullanın: + +- hız ile konuşma temellendirmesi arasında daha iyi bir denge istiyorsanız +- takip soruları çoğu zaman son birkaç tura bağlıysa + +Önerilen zaman aşımı: + +- yaklaşık `15000` ms civarında başlayın + +### `full` + +Tüm konuşma, engelleyici bellek alt aracısına gönderilir. + +```text +Full conversation context: +user: ... +assistant: ... +user: ... +... +``` + +Bunu şu durumlarda kullanın: + +- en güçlü hatırlama kalitesi gecikmeden daha önemliyse +- konuşma, dizinin çok gerisinde önemli bir hazırlık içeriyorsa + +Önerilen zaman aşımı: + +- `message` veya `recent` ile karşılaştırıldığında önemli ölçüde artırın +- dizinin boyutuna bağlı olarak yaklaşık `15000` ms veya daha yüksek bir değerle başlayın + +Genel olarak, bağlam boyutu arttıkça zaman aşımı da artmalıdır: + +```text +message < recent < full +``` + +## Döküm kalıcılığı + +Engelleyici bellek alt aracısı çalıştırmaları, engelleyici bellek alt aracısı çağrısı sırasında gerçek bir `session.jsonl` dökümü oluşturur. + +Varsayılan olarak bu döküm geçicidir: + +- geçici bir dizine yazılır +- yalnızca engelleyici bellek alt aracısı çalıştırması için kullanılır +- çalışma biter bitmez hemen silinir + +Hata ayıklama veya inceleme için bu engelleyici bellek alt aracısı dökümlerini diskte tutmak istiyorsanız, kalıcılığı açıkça etkinleştirin: + +```json5 +{ + plugins: { + entries: { + "active-memory": { + enabled: true, + config: { + agents: ["main"], + persistTranscripts: true, + transcriptDir: "active-memory", + }, + }, + }, + }, +} +``` + +Etkinleştirildiğinde, etkin bellek dökümleri ana kullanıcı konuşması dökümü yolunda değil, hedef aracının oturumlar klasörü altında ayrı bir dizinde saklar. + +Varsayılan düzen kavramsal olarak şöyledir: + +```text +agents//sessions/active-memory/.jsonl +``` + +Göreli alt dizini `config.transcriptDir` ile değiştirebilirsiniz. + +Bunu dikkatli kullanın: + +- engelleyici bellek alt aracısı dökümleri yoğun oturumlarda hızla birikebilir +- `full` sorgu modu çok fazla konuşma bağlamını çoğaltabilir +- bu dökümler gizli istem bağlamı ve hatırlanan anıları içerir + +## Yapılandırma + +Tüm etkin bellek yapılandırması şunun altında bulunur: + +```text +plugins.entries.active-memory +``` + +En önemli alanlar şunlardır: + +| Anahtar | Tür | Anlam | +| --------------------------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | +| `enabled` | `boolean` | Eklentinin kendisini etkinleştirir | +| `config.agents` | `string[]` | Etkin belleği kullanabilecek aracı kimlikleri | +| `config.model` | `string` | İsteğe bağlı engelleyici bellek alt aracısı model başvurusu; ayarlanmamışsa etkin bellek geçerli oturum modelini kullanır | +| `config.queryMode` | `"message" \| "recent" \| "full"` | Engelleyici bellek alt aracısının konuşmanın ne kadarını göreceğini kontrol eder | +| `config.promptStyle` | `"balanced" \| "strict" \| "contextual" \| "recall-heavy" \| "precision-heavy" \| "preference-only"` | Belleği döndürüp döndürmemeye karar verirken engelleyici bellek alt aracısının ne kadar istekli veya katı olacağını kontrol eder | +| `config.thinking` | `"off" \| "minimal" \| "low" \| "medium" \| "high" \| "xhigh" \| "adaptive"` | Engelleyici bellek alt aracısı için gelişmiş düşünme geçersiz kılması; hız için varsayılan `off` | +| `config.promptOverride` | `string` | Gelişmiş tam istem değiştirme; normal kullanım için önerilmez | +| `config.promptAppend` | `string` | Varsayılan veya geçersiz kılınmış isteme eklenen gelişmiş ek yönergeler | +| `config.timeoutMs` | `number` | Engelleyici bellek alt aracısı için katı zaman aşımı | +| `config.maxSummaryChars` | `number` | Etkin bellek özeti içinde izin verilen en fazla toplam karakter | +| `config.logging` | `boolean` | Ayarlama sırasında etkin bellek günlüklerini yayar | +| `config.persistTranscripts` | `boolean` | Geçici dosyaları silmek yerine engelleyici bellek alt aracısı dökümlerini diskte tutar | +| `config.transcriptDir` | `string` | Aracı oturumlar klasörü altındaki göreli engelleyici bellek alt aracısı döküm dizini | + +Yararlı ayarlama alanları: + +| Anahtar | Tür | Anlam | +| ----------------------------- | -------- | ------------------------------------------------------------- | +| `config.maxSummaryChars` | `number` | Etkin bellek özetinde izin verilen en fazla toplam karakter | +| `config.recentUserTurns` | `number` | `queryMode` değeri `recent` olduğunda eklenecek önceki kullanıcı turları | +| `config.recentAssistantTurns` | `number` | `queryMode` değeri `recent` olduğunda eklenecek önceki asistan turları | +| `config.recentUserChars` | `number` | Son kullanıcı turu başına en fazla karakter | +| `config.recentAssistantChars` | `number` | Son asistan turu başına en fazla karakter | +| `config.cacheTtlMs` | `number` | Tekrarlanan aynı sorgular için önbellek yeniden kullanımı | + +## Önerilen kurulum + +`recent` ile başlayın. + +```json5 +{ + plugins: { + entries: { + "active-memory": { + enabled: true, + config: { + agents: ["main"], + queryMode: "recent", + promptStyle: "balanced", + timeoutMs: 15000, + maxSummaryChars: 220, + logging: true, + }, + }, + }, + }, +} +``` + +Ayarlama sırasında canlı davranışı incelemek istiyorsanız, ayrı bir active-memory hata ayıklama komutu aramak yerine oturumda `/verbose on` kullanın. + +Ardından şunlara geçin: + +- daha düşük gecikme istiyorsanız `message` +- ek bağlamın daha yavaş engelleyici bellek alt aracısına değdiğine karar verirseniz `full` + +## Hata ayıklama + +Etkin bellek beklediğiniz yerde görünmüyorsa: + +1. Eklentinin `plugins.entries.active-memory.enabled` altında etkin olduğunu doğrulayın. +2. Geçerli aracı kimliğinin `config.agents` içinde listelendiğini doğrulayın. +3. Etkileşimli kalıcı bir sohbet oturumu üzerinden test yaptığınızı doğrulayın. +4. `config.logging: true` özelliğini açın ve ağ geçidi günlüklerini izleyin. +5. Bellek aramasının kendisinin `openclaw memory status --deep` ile çalıştığını doğrulayın. + +Bellek eşleşmeleri gürültülüyse, şunu sıkılaştırın: + +- `maxSummaryChars` + +Etkin bellek çok yavaşsa: + +- `queryMode` değerini düşürün +- `timeoutMs` değerini düşürün +- son tur sayılarını azaltın +- tur başına karakter sınırlarını azaltın + +## İlgili sayfalar + +- [Bellek Arama](/tr/concepts/memory-search) +- [Bellek yapılandırması başvurusu](/tr/reference/memory-config) +- [Plugin SDK kurulumu](/tr/plugins/sdk-setup) diff --git a/docs/tr/concepts/agent-loop.md b/docs/tr/concepts/agent-loop.md index 23eb3696f..1de71f120 100644 --- a/docs/tr/concepts/agent-loop.md +++ b/docs/tr/concepts/agent-loop.md @@ -1,23 +1,26 @@ --- read_when: - - Aracı döngüsü veya yaşam döngüsü olayları için tam ve adım adım bir açıklamaya ihtiyacınız var -summary: Aracı döngüsü yaşam döngüsü, akışlar ve bekleme semantiği -title: Aracı Döngüsü + - Ajan döngüsünün veya yaşam döngüsü olaylarının tam bir adım adım açıklamasına ihtiyacınız var +summary: Ajan döngüsü yaşam döngüsü, akışlar ve bekleme semantiği +title: Ajan Döngüsü x-i18n: - generated_at: "2026-04-09T01:28:00Z" + generated_at: "2026-04-10T08:50:04Z" model: gpt-5.4 provider: openai - source_hash: 32d3a73df8dabf449211a6183a70dcfd2a9b6f584dc76d0c4c9147582b2ca6a1 + source_hash: b6831a5b11e9100e49f650feca51ab44a2bef242ce1b5db2766d0b3b5c5ba729 source_path: concepts/agent-loop.md workflow: 15 --- -# Aracı Döngüsü (OpenClaw) +# Ajan Döngüsü (OpenClaw) -Aracı odaklı bir döngü, bir aracının tam “gerçek” çalıştırmasıdır: alım → bağlam birleştirme → model çıkarımı → -araç yürütme → akış halinde yanıtlar → kalıcılık. Bu, bir mesajı eylemlere ve son bir yanıta dönüştüren, aynı zamanda oturum durumunu tutarlı tutan yetkili yoldur. +Ajanik döngü, bir ajanın tam “gerçek” çalıştırmasıdır: alım → bağlam oluşturma → model çıkarımı → +araç yürütme → akış halinde yanıtlar → kalıcılık. Bu, bir mesajı eylemlere ve nihai yanıta dönüştüren, +oturum durumunu tutarlı tutarken bunu yapan yetkili yoldur. -OpenClaw içinde bir döngü, model düşünürken, araç çağırırken ve çıktı akışı sağlarken yaşam döngüsü ve akış olayları yayan, oturum başına tek ve serileştirilmiş bir çalıştırmadır. Bu belge, bu özgün döngünün uçtan uca nasıl bağlandığını açıklar. +OpenClaw’da bir döngü, model düşünürken, araç çağırırken ve çıktı akışı sağlarken yaşam döngüsü ve akış olayları +yayan, oturum başına tek ve serileştirilmiş bir çalıştırmadır. Bu belge, bu gerçek döngünün uçtan uca nasıl +bağlandığını açıklar. ## Giriş noktaları @@ -26,148 +29,148 @@ OpenClaw içinde bir döngü, model düşünürken, araç çağırırken ve çı ## Nasıl çalışır (üst düzey) -1. `agent` RPC parametreleri doğrular, oturumu çözümler (sessionKey/sessionId), oturum meta verilerini kalıcı hale getirir ve hemen `{ runId, acceptedAt }` döndürür. -2. `agentCommand` aracıyı çalıştırır: - - model + thinking/verbose varsayılanlarını çözümler +1. `agent` RPC parametreleri doğrular, oturumu çözer (`sessionKey/sessionId`), oturum meta verilerini kalıcılaştırır, hemen `{ runId, acceptedAt }` döndürür. +2. `agentCommand` ajanı çalıştırır: + - model + thinking/verbose varsayılanlarını çözer - Skills anlık görüntüsünü yükler - `runEmbeddedPiAgent` çağırır (pi-agent-core çalışma zamanı) - - gömülü döngü bir tane yaymazsa **yaşam döngüsü end/error** yayar + - gömülü döngü bir tane yayımlamazsa **yaşam döngüsü end/error** yayar 3. `runEmbeddedPiAgent`: - - çalıştırmaları oturum başına ve genel kuyruklar üzerinden serileştirir - - modeli + auth profilini çözümler ve pi oturumunu oluşturur + - çalıştırmaları oturum başına + genel kuyruklar aracılığıyla serileştirir + - model + auth profilini çözer ve pi oturumunu oluşturur - pi olaylarına abone olur ve assistant/tool deltalarını akış halinde iletir - - zaman aşımını zorunlu kılar -> aşılırsa çalıştırmayı iptal eder - - yükleri + kullanım meta verilerini döndürür + - zaman aşımını uygular -> aşılırsa çalıştırmayı iptal eder + - payload’ları + kullanım meta verilerini döndürür 4. `subscribeEmbeddedPiSession`, pi-agent-core olaylarını OpenClaw `agent` akışına köprüler: - araç olayları => `stream: "tool"` - assistant deltaları => `stream: "assistant"` - yaşam döngüsü olayları => `stream: "lifecycle"` (`phase: "start" | "end" | "error"`) 5. `agent.wait`, `waitForAgentRun` kullanır: - - `runId` için **yaşam döngüsü end/error** durumunu bekler + - `runId` için **yaşam döngüsü end/error** olayını bekler - `{ status: ok|error|timeout, startedAt, endedAt, error? }` döndürür ## Kuyruklama + eşzamanlılık -- Çalıştırmalar, oturum anahtarı başına (oturum şeridi) ve isteğe bağlı olarak genel bir şerit üzerinden serileştirilir. +- Çalıştırmalar oturum anahtarı başına (oturum hattı) ve isteğe bağlı olarak genel bir hat üzerinden serileştirilir. - Bu, araç/oturum yarışlarını önler ve oturum geçmişini tutarlı tutar. -- Mesajlaşma kanalları, bu şerit sistemine beslenen kuyruk modlarını (collect/steer/followup) seçebilir. +- Mesajlaşma kanalları, bu hat sistemine beslenen kuyruk modlarını (collect/steer/followup) seçebilir. Bkz. [Komut Kuyruğu](/tr/concepts/queue). ## Oturum + çalışma alanı hazırlığı -- Çalışma alanı çözümlenir ve oluşturulur; korumalı alan çalıştırmaları bir korumalı alan çalışma alanı köküne yönlendirilebilir. +- Çalışma alanı çözülür ve oluşturulur; sandbox’lı çalıştırmalar bir sandbox çalışma alanı köküne yeniden yönlendirilebilir. - Skills yüklenir (veya bir anlık görüntüden yeniden kullanılır) ve env ile prompt içine enjekte edilir. -- Bootstrap/context dosyaları çözümlenir ve sistem prompt raporuna enjekte edilir. +- Bootstrap/context dosyaları çözülür ve sistem prompt raporuna enjekte edilir. - Bir oturum yazma kilidi alınır; `SessionManager`, akış başlamadan önce açılır ve hazırlanır. -## Prompt birleştirme + sistem promptu +## Prompt oluşturma + sistem prompt -- Sistem promptu, OpenClaw’ın temel promptu, skills promptu, bootstrap bağlamı ve çalıştırma başına geçersiz kılmalar kullanılarak oluşturulur. -- Modele özgü sınırlar ve sıkıştırma için ayrılan token sayıları uygulanır. -- Modelin ne gördüğü için bkz. [Sistem promptu](/tr/concepts/system-prompt). +- Sistem prompt, OpenClaw’ın temel prompt’u, Skills prompt’u, bootstrap bağlamı ve çalıştırma başına geçersiz kılmalarla oluşturulur. +- Modele özgü sınırlar ve compaction için ayrılan token’lar uygulanır. +- Modelin ne gördüğü için bkz. [Sistem prompt](/tr/concepts/system-prompt). ## Hook noktaları (nerede araya girebilirsiniz) -OpenClaw iki hook sistemine sahiptir: +OpenClaw’ın iki hook sistemi vardır: -- **Dahili hook'lar** (Gateway hook'ları): komutlar ve yaşam döngüsü olayları için olay güdümlü komut dosyaları. -- **Plugin hook'ları**: aracı/araç yaşam döngüsü ve gateway ardışık düzeni içindeki uzatma noktaları. +- **İç hook’lar** (Gateway hook’ları): komutlar ve yaşam döngüsü olayları için olay güdümlü script’ler. +- **Plugin hook’ları**: ajan/araç yaşam döngüsü ve gateway işlem hattı içindeki uzatma noktaları. -### Dahili hook'lar (Gateway hook'ları) +### İç hook’lar (Gateway hook’ları) -- **`agent:bootstrap`**: bootstrap dosyaları oluşturulurken, sistem promptu son halini almadan önce çalışır. - Bunu bootstrap bağlam dosyaları eklemek/kaldırmak için kullanın. -- **Komut hook'ları**: `/new`, `/reset`, `/stop` ve diğer komut olayları (bkz. Hooks belgesi). +- **`agent:bootstrap`**: bootstrap dosyaları oluşturulurken, sistem prompt tamamlanmadan önce çalışır. + Bunu bootstrap bağlam dosyaları eklemek/çıkarmak için kullanın. +- **Komut hook’ları**: `/new`, `/reset`, `/stop` ve diğer komut olayları (bkz. Hooks belgesi). Kurulum ve örnekler için bkz. [Hooks](/tr/automation/hooks). -### Plugin hook'ları (aracı + gateway yaşam döngüsü) +### Plugin hook’ları (ajan + gateway yaşam döngüsü) -Bunlar aracı döngüsü veya gateway ardışık düzeni içinde çalışır: +Bunlar ajan döngüsü veya gateway işlem hattı içinde çalışır: -- **`before_model_resolve`**: model çözümlemesinden önce provider/modeli belirlenimci biçimde geçersiz kılmak için oturum öncesinde (`messages` olmadan) çalışır. -- **`before_prompt_build`**: oturum yüklendikten sonra (`messages` ile) prompt gönderiminden önce `prependContext`, `systemPrompt`, `prependSystemContext` veya `appendSystemContext` enjekte etmek için çalışır. Tur başına dinamik metin için `prependContext`, sistem promptu alanında yer alması gereken kararlı yönlendirme için sistem bağlamı alanlarını kullanın. -- **`before_agent_start`**: eski uyumluluk hook'udur; her iki aşamada da çalışabilir; bunun yerine yukarıdaki açık hook'ları tercih edin. -- **`before_agent_reply`**: satır içi eylemlerden sonra ve LLM çağrısından önce çalışır; bir plugin'in turu sahiplenmesine ve sentetik bir yanıt döndürmesine veya turu tamamen sessize almasına izin verir. -- **`agent_end`**: tamamlandıktan sonra son mesaj listesini ve çalışma meta verilerini inceler. -- **`before_compaction` / `after_compaction`**: sıkıştırma döngülerini gözlemler veya not ekler. -- **`before_tool_call` / `after_tool_call`**: araç parametrelerine/sonuçlarına araya girer. +- **`before_model_resolve`**: model çözümlemesinden önce sağlayıcıyı/modeli deterministik olarak geçersiz kılmak için oturum öncesinde (`messages` olmadan) çalışır. +- **`before_prompt_build`**: oturum yüklendikten sonra (`messages` ile) prompt gönderiminden önce `prependContext`, `systemPrompt`, `prependSystemContext` veya `appendSystemContext` enjekte etmek için çalışır. Tur başına dinamik metin için `prependContext`, sistem prompt alanında kalması gereken kararlı yönlendirme için sistem bağlamı alanlarını kullanın. +- **`before_agent_start`**: eski uyumluluk hook’u; her iki aşamada da çalışabilir; bunun yerine yukarıdaki açık hook’ları tercih edin. +- **`before_agent_reply`**: satır içi eylemlerden sonra ve LLM çağrısından önce çalışır; bir plugin’in turu sahiplenmesine ve sentetik bir yanıt döndürmesine veya turu tamamen sessize almasına izin verir. +- **`agent_end`**: tamamlandıktan sonra nihai mesaj listesini ve çalıştırma meta verilerini inceler. +- **`before_compaction` / `after_compaction`**: compaction döngülerini gözlemler veya not ekler. +- **`before_tool_call` / `after_tool_call`**: araç parametrelerine/sonuçlarına müdahale eder. - **`before_install`**: yerleşik tarama bulgularını inceler ve isteğe bağlı olarak skill veya plugin kurulumlarını engeller. -- **`tool_result_persist`**: araç sonuçları oturum dökümüne yazılmadan önce bunları eşzamanlı olarak dönüştürür. -- **`message_received` / `message_sending` / `message_sent`**: gelen + giden mesaj hook'ları. +- **`tool_result_persist`**: araç sonuçlarını oturum transkriptine yazılmadan önce eşzamanlı olarak dönüştürür. +- **`message_received` / `message_sending` / `message_sent`**: gelen + giden mesaj hook’ları. - **`session_start` / `session_end`**: oturum yaşam döngüsü sınırları. - **`gateway_start` / `gateway_stop`**: gateway yaşam döngüsü olayları. Giden/araç korumaları için hook karar kuralları: -- `before_tool_call`: `{ block: true }` kesindir ve daha düşük öncelikli işleyicileri durdurur. -- `before_tool_call`: `{ block: false }` bir no-op'tur ve önceki bir engeli temizlemez. -- `before_install`: `{ block: true }` kesindir ve daha düşük öncelikli işleyicileri durdurur. -- `before_install`: `{ block: false }` bir no-op'tur ve önceki bir engeli temizlemez. -- `message_sending`: `{ cancel: true }` kesindir ve daha düşük öncelikli işleyicileri durdurur. -- `message_sending`: `{ cancel: false }` bir no-op'tur ve önceki bir iptali temizlemez. +- `before_tool_call`: `{ block: true }` terminaldir ve daha düşük öncelikli işleyicileri durdurur. +- `before_tool_call`: `{ block: false }` etkisizdir ve önceki bir engellemeyi temizlemez. +- `before_install`: `{ block: true }` terminaldir ve daha düşük öncelikli işleyicileri durdurur. +- `before_install`: `{ block: false }` etkisizdir ve önceki bir engellemeyi temizlemez. +- `message_sending`: `{ cancel: true }` terminaldir ve daha düşük öncelikli işleyicileri durdurur. +- `message_sending`: `{ cancel: false }` etkisizdir ve önceki bir iptali temizlemez. -Hook API'si ve kayıt ayrıntıları için bkz. [Plugin hook'ları](/tr/plugins/architecture#provider-runtime-hooks). +Hook API’si ve kayıt ayrıntıları için bkz. [Plugin hook’ları](/tr/plugins/architecture#provider-runtime-hooks). ## Akış + kısmi yanıtlar -- Assistant deltaları pi-agent-core'dan akış halinde iletilir ve `assistant` olayları olarak yayılır. -- Blok akışı, kısmi yanıtları `text_end` veya `message_end` anında yayabilir. -- Akıl yürütme akışı ayrı bir akış olarak veya blok yanıtları olarak yayılabilir. +- Assistant deltaları pi-agent-core’dan akış halinde iletilir ve `assistant` olayları olarak yayımlanır. +- Blok akışı, kısmi yanıtları `text_end` veya `message_end` üzerinde yayımlayabilir. +- Akıl yürütme akışı ayrı bir akış olarak veya blok yanıtlar olarak yayımlanabilir. - Parçalama ve blok yanıt davranışı için bkz. [Akış](/tr/concepts/streaming). ## Araç yürütme + mesajlaşma araçları -- Araç start/update/end olayları `tool` akışında yayılır. -- Araç sonuçları, günlüğe kaydedilmeden/yayılmadan önce boyut ve görsel yükleri açısından temizlenir. +- Araç start/update/end olayları `tool` akışında yayımlanır. +- Araç sonuçları, günlüğe kaydedilmeden/yayımlanmadan önce boyut ve görüntü payload’ları açısından temizlenir. - Mesajlaşma aracı gönderimleri, yinelenen assistant onaylarını bastırmak için izlenir. ## Yanıt şekillendirme + bastırma -- Son yükler şunlardan birleştirilir: +- Nihai payload’lar şunlardan oluşturulur: - assistant metni (ve isteğe bağlı akıl yürütme) - - satır içi araç özetleri (verbose + izinliyse) + - satır içi araç özetleri (verbose + izin verildiyse) - model hata verdiğinde assistant hata metni -- Tam sessizlik belirteci `NO_REPLY` / `no_reply`, giden - yüklerden filtrelenir. -- Mesajlaşma aracı yinelenmeleri son yük listesinden kaldırılır. -- Görüntülenebilir hiçbir yük kalmazsa ve bir araç hata verdiyse, yedek bir araç hata yanıtı yayılır +- Tam sessiz belirteç `NO_REPLY` / `no_reply`, giden + payload’lardan filtrelenir. +- Mesajlaşma aracı yinelemeleri nihai payload listesinden kaldırılır. +- Görüntülenebilir payload kalmazsa ve bir araç hata verdiyse, yedek bir araç hata yanıtı yayımlanır (bir mesajlaşma aracı zaten kullanıcıya görünür bir yanıt göndermediyse). -## Sıkıştırma + yeniden denemeler +## Compaction + yeniden denemeler -- Otomatik sıkıştırma `compaction` akış olayları yayar ve bir yeniden denemeyi tetikleyebilir. -- Yeniden denemede, yinelenen çıktıyı önlemek için bellek içi arabellekler ve araç özetleri sıfırlanır. -- Sıkıştırma ardışık düzeni için bkz. [Sıkıştırma](/tr/concepts/compaction). +- Otomatik compaction, `compaction` akış olayları yayımlar ve bir yeniden denemeyi tetikleyebilir. +- Yeniden denemede, yinelenen çıktıyı önlemek için bellek içi tamponlar ve araç özetleri sıfırlanır. +- Compaction işlem hattı için bkz. [Compaction](/tr/concepts/compaction). ## Olay akışları (bugün) -- `lifecycle`: `subscribeEmbeddedPiSession` tarafından yayılır (ve yedek olarak `agentCommand` tarafından) -- `assistant`: pi-agent-core'dan akış halinde gelen deltalar -- `tool`: pi-agent-core'dan akış halinde gelen araç olayları +- `lifecycle`: `subscribeEmbeddedPiSession` tarafından yayımlanır (ve yedek olarak `agentCommand` tarafından) +- `assistant`: pi-agent-core’dan akış halinde gelen deltalar +- `tool`: pi-agent-core’dan akış halinde gelen araç olayları ## Sohbet kanalı işleme -- Assistant deltaları, sohbet `delta` mesajları içinde arabelleğe alınır. -- Bir sohbet `final`, **yaşam döngüsü end/error** anında yayılır. +- Assistant deltaları sohbet `delta` mesajları içine tamponlanır. +- Sohbet `final`, **yaşam döngüsü end/error** üzerinde yayımlanır. ## Zaman aşımları -- `agent.wait` varsayılanı: 30 sn (yalnızca bekleme). `timeoutMs` parametresi geçersiz kılar. -- Aracı çalışma zamanı: `agents.defaults.timeoutSeconds` varsayılanı 172800 sn (48 saat); `runEmbeddedPiAgent` içindeki iptal zamanlayıcısında uygulanır. -- LLM boşta kalma zaman aşımı: `agents.defaults.llm.idleTimeoutSeconds`, boşta kalma penceresi dolmadan önce hiçbir yanıt parçası gelmezse model isteğini iptal eder. Bunu yavaş yerel modeller veya akıl yürütme/araç çağrısı provider'ları için açıkça ayarlayın; devre dışı bırakmak için 0 yapın. Ayarlanmamışsa OpenClaw, yapılandırılmışsa `agents.defaults.timeoutSeconds`, aksi halde 60 sn kullanır. Açık bir LLM veya aracı zaman aşımı olmayan cron tetiklemeli çalıştırmalar, boşta izleme mekanizmasını devre dışı bırakır ve cron dış zaman aşımına güvenir. +- `agent.wait` varsayılanı: 30 sn (yalnızca bekleme). `timeoutMs` parametresi bunu geçersiz kılar. +- Ajan çalışma zamanı: `agents.defaults.timeoutSeconds` varsayılanı 172800 sn (48 saat); `runEmbeddedPiAgent` içindeki iptal zamanlayıcısı tarafından uygulanır. +- LLM boşta kalma zaman aşımı: `agents.defaults.llm.idleTimeoutSeconds`, boşta kalma penceresi içinde yanıt parçaları gelmezse model isteğini iptal eder. Bunu yavaş yerel modeller veya akıl yürütme/araç çağrısı sağlayıcıları için açıkça ayarlayın; devre dışı bırakmak için `0` yapın. Ayarlanmazsa OpenClaw, yapılandırılmışsa `agents.defaults.timeoutSeconds`, aksi takdirde 120 sn kullanır. Açık bir LLM veya ajan zaman aşımı olmayan cron tetiklemeli çalıştırmalar, boşta kalma bekçisini devre dışı bırakır ve cron dış zaman aşımına güvenir. ## İşlerin erken bitebileceği yerler -- Aracı zaman aşımı (iptal) +- Ajan zaman aşımı (iptal) - AbortSignal (iptal) - Gateway bağlantısının kesilmesi veya RPC zaman aşımı -- `agent.wait` zaman aşımı (yalnızca bekleme, aracıyı durdurmaz) +- `agent.wait` zaman aşımı (yalnızca bekleme, ajanı durdurmaz) ## İlgili -- [Araçlar](/tr/tools) — kullanılabilir aracı araçları -- [Hooks](/tr/automation/hooks) — aracı yaşam döngüsü olayları tarafından tetiklenen olay güdümlü komut dosyaları -- [Sıkıştırma](/tr/concepts/compaction) — uzun konuşmaların nasıl özetlendiği -- [Exec Onayları](/tr/tools/exec-approvals) — kabuk komutları için onay geçitleri +- [Araçlar](/tr/tools) — kullanılabilir ajan araçları +- [Hooks](/tr/automation/hooks) — ajan yaşam döngüsü olayları tarafından tetiklenen olay güdümlü script’ler +- [Compaction](/tr/concepts/compaction) — uzun konuşmaların nasıl özetlendiği +- [Exec Approvals](/tr/tools/exec-approvals) — kabuk komutları için onay kapıları - [Thinking](/tr/tools/thinking) — thinking/akıl yürütme seviyesi yapılandırması diff --git a/docs/tr/concepts/memory-search.md b/docs/tr/concepts/memory-search.md index 424eee16f..b30a97c33 100644 --- a/docs/tr/concepts/memory-search.md +++ b/docs/tr/concepts/memory-search.md @@ -1,26 +1,26 @@ --- read_when: - - '`memory_search` işleyişini anlamak istiyorsunuz' - - Bir embedding sağlayıcısı seçmek istiyorsunuz - - Arama kalitesini ayarlamak istiyorsunuz -summary: Bellek aramasının, gömmeler ve hibrit getirme kullanarak ilgili notları nasıl bulduğu + - '`memory_search` işleyişini anlamak istiyorsunuz.' + - Bir gömme sağlayıcısı seçmek istiyorsunuz. + - Arama kalitesini ayarlamak istiyorsunuz. +summary: Bellek araması, ilgili notları gömmeler ve hibrit erişim kullanarak nasıl bulur? title: Bellek Araması x-i18n: - generated_at: "2026-04-06T03:06:38Z" + generated_at: "2026-04-10T08:50:06Z" model: gpt-5.4 provider: openai - source_hash: b6541cd702bff41f9a468dad75ea438b70c44db7c65a4b793cbacaf9e583c7e9 + source_hash: ca0237f4f1ee69dcbfb12e6e9527a53e368c0bf9b429e506831d4af2f3a3ac6f source_path: concepts/memory-search.md workflow: 15 --- # Bellek Araması -`memory_search`, ifade biçimi özgün metinden farklı olsa bile bellek dosyalarınızdan ilgili notları bulur. Bunu, belleği küçük parçalara dizinleyip bunları embedding'ler, anahtar kelimeler veya her ikisiyle arayarak yapar. +`memory_search`, ifade biçimi özgün metinden farklı olsa bile bellek dosyalarınızdan ilgili notları bulur. Bunu, belleği küçük parçalara ayırarak dizinleyip gömmeler, anahtar kelimeler ya da her ikisini kullanarak arayarak yapar. ## Hızlı başlangıç -Bir OpenAI, Gemini, Voyage veya Mistral API anahtarınız yapılandırılmışsa bellek araması otomatik olarak çalışır. Bir sağlayıcıyı açıkça ayarlamak için: +Yapılandırılmış bir OpenAI, Gemini, Voyage veya Mistral API anahtarınız varsa bellek araması otomatik olarak çalışır. Bir sağlayıcıyı açıkça ayarlamak için: ```json5 { @@ -34,7 +34,7 @@ Bir OpenAI, Gemini, Voyage veya Mistral API anahtarınız yapılandırılmışsa } ``` -API anahtarı olmadan yerel embedding'ler için `provider: "local"` kullanın (`node-llama-cpp` gerektirir). +API anahtarı olmadan yerel gömmeler için `provider: "local"` kullanın (`node-llama-cpp` gerektirir). ## Desteklenen sağlayıcılar @@ -46,49 +46,49 @@ API anahtarı olmadan yerel embedding'ler için `provider: "local"` kullanın (` | Mistral | `mistral` | Evet | Otomatik algılanır | | Bedrock | `bedrock` | Hayır | AWS kimlik bilgisi zinciri çözümlendiğinde otomatik algılanır | | Ollama | `ollama` | Hayır | Yerel, açıkça ayarlanmalıdır | -| Local | `local` | Hayır | GGUF modeli, ~0.6 GB indirme | +| Local | `local` | Hayır | GGUF model, ~0.6 GB indirme | ## Arama nasıl çalışır -OpenClaw iki getirme yolunu paralel çalıştırır ve sonuçları birleştirir: +OpenClaw iki erişim yolunu paralel olarak çalıştırır ve sonuçları birleştirir: ```mermaid flowchart LR - Q["Query"] --> E["Embedding"] - Q --> T["Tokenize"] - E --> VS["Vector Search"] - T --> BM["BM25 Search"] - VS --> M["Weighted Merge"] + Q["Sorgu"] --> E["Gömme"] + Q --> T["Tokenleştir"] + E --> VS["Vektör Araması"] + T --> BM["BM25 Araması"] + VS --> M["Ağırlıklı Birleştirme"] BM --> M - M --> R["Top Results"] + M --> R["En İyi Sonuçlar"] ``` -- **Vektör araması**, anlam olarak benzer notları bulur ("gateway host", "OpenClaw'ı çalıştıran makine" ile eşleşir). +- **Vektör araması**, benzer anlama sahip notları bulur ("gateway host", "OpenClaw çalıştıran makine" ile eşleşir). - **BM25 anahtar kelime araması**, tam eşleşmeleri bulur (kimlikler, hata dizeleri, yapılandırma anahtarları). -Yalnızca bir yol kullanılabiliyorsa (embedding yoksa veya FTS yoksa), diğeri tek başına çalışır. +Yalnızca bir yol kullanılabiliyorsa (gömme yoksa veya FTS yoksa), diğeri tek başına çalışır. ## Arama kalitesini iyileştirme -İsteğe bağlı iki özellik, geniş bir not geçmişiniz olduğunda yardımcı olur: +Büyük bir not geçmişiniz varsa iki isteğe bağlı özellik yardımcı olur: ### Zamansal azalma -Eski notlar sıralama ağırlığını kademeli olarak kaybeder, böylece son bilgiler önce öne çıkar. Varsayılan 30 günlük yarı ömür ile geçen aydan bir not özgün ağırlığının %50'siyle puanlanır. `MEMORY.md` gibi her zaman geçerli dosyalara hiçbir zaman azalma uygulanmaz. +Eski notlar sıralama ağırlığını kademeli olarak kaybeder, böylece son bilgiler önce görünür. Varsayılan 30 günlük yarı ömürle, geçen aydan bir not özgün ağırlığının %50’siyle puanlanır. `MEMORY.md` gibi her zaman geçerli dosyalar hiçbir zaman azaltılmaz. -Aracınızın aylara yayılan günlük notları varsa ve eski bilgiler sürekli daha yeni bağlamın önüne geçiyorsa zamansal azalmayı etkinleştirin. +Aracınızın aylarca günlük notu varsa ve eski bilgiler sürekli son bağlamın önüne geçiyorsa zamansal azalmayı etkinleştirin. ### MMR (çeşitlilik) -Tekrarlayan sonuçları azaltır. Beş notun da aynı yönlendirici yapılandırmasından söz etmesi durumunda MMR, üst sonuçların tekrar etmek yerine farklı konuları kapsamasını sağlar. +Tekrarlayan sonuçları azaltır. Beş notun hepsi aynı yönlendirici yapılandırmasından söz ediyorsa MMR, en üstteki sonuçların tekrar etmek yerine farklı konuları kapsamasını sağlar. -`memory_search`, farklı günlük notlardan sürekli birbirine çok benzeyen parçaları döndürüyorsa MMR'yi etkinleştirin. +`memory_search`, farklı günlük notlardan birbirine çok benzeyen parçaları sürekli döndürüyorsa MMR’yi etkinleştirin. -### Her ikisini de etkinleştirme +### İkisini de etkinleştirme ```json5 { @@ -107,23 +107,24 @@ Tekrarlayan sonuçları azaltır. Beş notun da aynı yönlendirici yapılandır } ``` -## Çok modlu bellek +## Çok kipli bellek -Gemini Embedding 2 ile görselleri ve ses dosyalarını Markdown ile birlikte dizinleyebilirsiniz. Arama sorguları metin olarak kalır, ancak görsel ve ses içeriğiyle eşleşir. Kurulum için [Bellek yapılandırma başvurusu](/tr/reference/memory-config) sayfasına bakın. +Gemini Embedding 2 ile görselleri ve ses dosyalarını Markdown ile birlikte dizinleyebilirsiniz. Arama sorguları metin olarak kalır, ancak görsel ve ses içeriğiyle eşleşir. Kurulum için [Bellek yapılandırma başvurusu](/tr/reference/memory-config) bölümüne bakın. ## Oturum belleği araması -İsterseniz oturum dökümlerini dizinleyebilirsiniz; böylece `memory_search` önceki konuşmaları geri çağırabilir. Bu, `memorySearch.experimental.sessionMemory` ile isteğe bağlı olarak etkinleştirilir. Ayrıntılar için [yapılandırma başvurusu](/tr/reference/memory-config) sayfasına bakın. +İsteğe bağlı olarak oturum dökümlerini dizinleyebilirsiniz; böylece `memory_search` önceki konuşmaları hatırlayabilir. Bu özellik `memorySearch.experimental.sessionMemory` üzerinden isteğe bağlı olarak etkinleştirilir. Ayrıntılar için [yapılandırma başvurusu](/tr/reference/memory-config) bölümüne bakın. ## Sorun giderme **Sonuç yok mu?** Dizini kontrol etmek için `openclaw memory status` çalıştırın. Boşsa `openclaw memory index --force` çalıştırın. -**Yalnızca anahtar kelime eşleşmeleri mi var?** Embedding sağlayıcınız yapılandırılmamış olabilir. `openclaw memory status --deep` ile kontrol edin. +**Yalnızca anahtar kelime eşleşmeleri mi var?** Gömme sağlayıcınız yapılandırılmamış olabilir. `openclaw memory status --deep` ile kontrol edin. **CJK metni bulunamıyor mu?** FTS dizinini `openclaw memory index --force` ile yeniden oluşturun. ## Daha fazla bilgi +- [Etkin Bellek](/tr/concepts/active-memory) -- etkileşimli sohbet oturumları için alt aracı belleği - [Bellek](/tr/concepts/memory) -- dosya düzeni, arka uçlar, araçlar - [Bellek yapılandırma başvurusu](/tr/reference/memory-config) -- tüm yapılandırma seçenekleri diff --git a/docs/tr/concepts/qa-e2e-automation.md b/docs/tr/concepts/qa-e2e-automation.md index f4596021e..7b8d591a4 100644 --- a/docs/tr/concepts/qa-e2e-automation.md +++ b/docs/tr/concepts/qa-e2e-automation.md @@ -1,37 +1,38 @@ --- read_when: - - qa-lab veya qa-channel genişletilirken - - depo destekli QA senaryoları eklenirken - - Gateway panosu etrafında daha yüksek gerçekçiliğe sahip QA otomasyonu oluşturulurken + - qa-lab veya qa-channel genişletme + - Depo destekli QA senaryoları ekleme + - Gateway panosu etrafında daha yüksek gerçekçilikte QA otomasyonu oluşturma summary: qa-lab, qa-channel, tohumlanmış senaryolar ve protokol raporları için özel QA otomasyon yapısı -title: QA Uçtan Uca Otomasyonu +title: QA E2E Otomasyonu x-i18n: - generated_at: "2026-04-09T01:27:46Z" + generated_at: "2026-04-10T08:50:01Z" model: gpt-5.4 provider: openai - source_hash: c922607d67e0f3a2489ac82bc9f510f7294ced039c1014c15b676d826441d833 + source_hash: 357d6698304ff7a8c4aa8a7be97f684d50f72b524740050aa761ac0ee68266de source_path: concepts/qa-e2e-automation.md workflow: 15 --- -# QA Uçtan Uca Otomasyonu +# QA E2E Otomasyonu -Özel QA yığını, OpenClaw'ı tek birim testinin yapabileceğinden daha gerçekçi, -kanal biçimli bir şekilde çalıştırmayı amaçlar. +Özel QA yığını, OpenClaw’u tek birim testinin yapabileceğinden daha gerçekçi, +kanal biçimli bir şekilde çalıştırmak için tasarlanmıştır. Mevcut parçalar: -- `extensions/qa-channel`: DM, kanal, ileti dizisi, - tepki, düzenleme ve silme yüzeylerine sahip sentetik mesaj kanalı. -- `extensions/qa-lab`: dökümü gözlemlemek, - gelen mesajları enjekte etmek ve bir Markdown raporu dışa aktarmak için hata ayıklayıcı arayüzü ve QA veri yolu. +- `extensions/qa-channel`: DM, kanal, iş parçacığı, tepki, + düzenleme ve silme yüzeylerine sahip sentetik mesaj kanalı. +- `extensions/qa-lab`: transkripti gözlemlemek, + gelen mesajları enjekte etmek ve bir Markdown raporu dışa aktarmak için + hata ayıklayıcı arayüzü ve QA veri yolu. - `qa/`: başlangıç görevi ve temel QA senaryoları için depo destekli tohum varlıkları. -Mevcut QA operatörü akışı iki bölmeli bir QA sitesidir: +Mevcut QA operatörü akışı iki panelli bir QA sitesidir: -- Sol: aracıyla birlikte Gateway panosu (Control UI). -- Sağ: Slack benzeri dökümü ve senaryo planını gösteren QA Lab. +- Sol: ajan ile Gateway panosu (Control UI). +- Sağ: Slack benzeri transkripti ve senaryo planını gösteren QA Lab. Şununla çalıştırın: @@ -40,12 +41,12 @@ pnpm qa:lab:up ``` Bu, QA sitesini derler, Docker destekli gateway hattını başlatır ve -bir operatörün veya otomasyon döngüsünün aracıya bir QA -görevi verebileceği, gerçek kanal davranışını gözlemleyebileceği ve nelerin işe yaradığını, başarısız olduğunu veya -engel olarak kaldığını kaydedebileceği QA Lab sayfasını açar. +bir operatörün veya otomasyon döngüsünün ajana bir QA görevi verebildiği, +gerçek kanal davranışını gözlemleyebildiği ve neyin çalıştığını, neyin başarısız olduğunu +veya neyin engelli kaldığını kaydedebildiği QA Lab sayfasını erişime açar. Docker imajını her seferinde yeniden derlemeden daha hızlı QA Lab arayüzü yinelemesi için, -yığını bağlamalı bir QA Lab paketiyle başlatın: +yığını bind-mount edilmiş bir QA Lab paketiyle başlatın: ```bash pnpm openclaw qa docker-build-image @@ -54,10 +55,25 @@ pnpm qa:lab:up:fast pnpm qa:lab:watch ``` -`qa:lab:up:fast`, Docker servislerini önceden derlenmiş bir imaj üzerinde tutar ve -`extensions/qa-lab/web/dist` dizinini `qa-lab` container'ına bağlar. `qa:lab:watch` -bu paketi değişikliklerde yeniden derler ve QA Lab -varlık karması değiştiğinde tarayıcı otomatik olarak yeniden yüklenir. +`qa:lab:up:fast`, Docker hizmetlerini önceden derlenmiş bir imaj üzerinde tutar ve +`extensions/qa-lab/web/dist` dizinini `qa-lab` container’ına bind-mount eder. `qa:lab:watch` +bu paketi değişiklikte yeniden derler ve QA Lab varlık karması değiştiğinde +tarayıcı otomatik olarak yeniden yüklenir. + +QA yoluna Docker’ı dahil etmeden tek kullanımlık bir Linux VM hattı için şunu çalıştırın: + +```bash +pnpm openclaw qa suite --runner multipass --scenario channel-chat-baseline +``` + +Bu, yeni bir Multipass konuğu başlatır, bağımlılıkları kurar, konuğun içinde OpenClaw’u derler, +`qa suite` çalıştırır, ardından normal QA raporunu ve +özetini ana makinedeki `.artifacts/qa-e2e/...` içine geri kopyalar. +Ana makinedeki `qa suite` ile aynı senaryo seçme davranışını yeniden kullanır. +Canlı çalıştırmalar, konuk için pratik olan desteklenen QA kimlik doğrulama girdilerini iletir: +env tabanlı sağlayıcı anahtarları, QA canlı sağlayıcı yapılandırma yolu ve +varsa `CODEX_HOME`. Konuğun bağlı çalışma alanı üzerinden geri yazabilmesi için +`--output-dir` değerini depo kökü altında tutun. ## Depo destekli tohumlar @@ -66,31 +82,31 @@ Tohum varlıkları `qa/` içinde bulunur: - `qa/scenarios/index.md` - `qa/scenarios/*.md` -Bunlar kasıtlı olarak git içindedir; böylece QA planı hem insanlar hem de -aracı tarafından görünür olur. Temel liste, şunları kapsayacak kadar geniş kalmalıdır: +Bunlar kasıtlı olarak git içinde tutulur; böylece QA planı hem insanlar hem de +ajan tarafından görünür olur. Temel listenin, şu alanları kapsayacak kadar geniş kalması gerekir: - DM ve kanal sohbeti -- ileti dizisi davranışı +- iş parçacığı davranışı - mesaj eylemi yaşam döngüsü - cron geri çağrıları -- bellekten geri çağırma +- bellek geri çağırma - model değiştirme -- alt aracı devri -- depoyu okuma ve belgeleri okuma +- alt ajan devri +- depo okuma ve dokümantasyon okuma - Lobster Invaders gibi küçük bir derleme görevi ## Raporlama `qa-lab`, gözlemlenen veri yolu zaman çizelgesinden bir Markdown protokol raporu dışa aktarır. -Rapor şunlara yanıt vermelidir: +Rapor şu sorulara yanıt vermelidir: -- Neler işe yaradı +- Neler çalıştı - Neler başarısız oldu - Neler engelli kaldı -- Hangi takip senaryolarını eklemeye değer olduğu +- Hangi takip senaryolarını eklemeye değer -Karakter ve stil kontrolleri için, aynı senaryoyu birden çok canlı model -referansı üzerinde çalıştırın ve değerlendirilmiş bir Markdown raporu yazın: +Karakter ve stil kontrolleri için, aynı senaryoyu birden fazla canlı model +başvurusu üzerinde çalıştırın ve değerlendirilmiş bir Markdown raporu yazın: ```bash pnpm openclaw qa character-eval \ @@ -109,37 +125,39 @@ pnpm openclaw qa character-eval \ --judge-concurrency 16 ``` -Komut Docker değil, yerel QA gateway alt süreçleri çalıştırır. Karakter değerlendirme -senaryoları kişiliği `SOUL.md` aracılığıyla ayarlamalı, ardından sohbet, çalışma alanı yardımı ve küçük dosya görevleri gibi -sıradan kullanıcı dönüşlerini çalıştırmalıdır. Aday modele -değerlendirildiği söylenmemelidir. Komut her tam -dökümü korur, temel çalıştırma istatistiklerini kaydeder, ardından yargıç modellerden hızlı modda -`xhigh` akıl yürütme ile çalıştırmaları doğallık, hava ve mizaha göre sıralamalarını ister. -Sağlayıcıları karşılaştırırken `--blind-judge-models` kullanın: yargıç istemi yine de -her dökümü ve çalıştırma durumunu alır, ancak aday referansları -`candidate-01` gibi nötr etiketlerle değiştirilir; rapor sıralamaları ayrıştırmadan sonra gerçek referanslara geri eşler. -Aday çalıştırmaları varsayılan olarak `high` düşünme kullanır; bunu destekleyen OpenAI modelleri için `xhigh` kullanılır. -Belirli bir adayı satır içinde -`--model provider/model,thinking=` ile geçersiz kılın. `--thinking ` yine de genel bir geri dönüş değeri ayarlar ve eski `--model-thinking ` biçimi +Komut Docker değil, yerel QA gateway alt süreçlerini çalıştırır. Karakter değerlendirme +senaryoları personayı `SOUL.md` üzerinden ayarlamalı, ardından sohbet, çalışma alanı yardımı +ve küçük dosya görevleri gibi sıradan kullanıcı turlarını çalıştırmalıdır. Aday modele, +değerlendirildiği söylenmemelidir. Komut her tam transkripti korur, temel çalışma istatistiklerini kaydeder, +ardından değerlendirme modellerinden `xhigh` akıl yürütmeli hızlı modda +doğallık, hava ve mizaha göre çalıştırmaları sıralamasını ister. +Sağlayıcıları karşılaştırırken `--blind-judge-models` kullanın: değerlendirme istemi yine de +her transkripti ve çalışma durumunu alır, ancak aday başvurular +`candidate-01` gibi nötr etiketlerle değiştirilir; rapor, ayrıştırmadan sonra sıralamaları gerçek başvurularla eşler. +Aday çalıştırmalar varsayılan olarak `high` düşünme kullanır; bunu destekleyen OpenAI modelleri için +`xhigh` kullanılır. Belirli bir adayı satır içinde +`--model provider/model,thinking=` ile geçersiz kılın. `--thinking ` hâlâ +genel bir yedek ayar belirler ve eski `--model-thinking ` biçimi uyumluluk için korunur. -OpenAI aday referansları varsayılan olarak hızlı mod kullanır; böylece sağlayıcının desteklediği yerlerde öncelikli işleme kullanılır. Tek bir -aday veya yargıç için geçersiz kılma gerektiğinde satır içinde `,fast`, `,no-fast` veya `,fast=false` ekleyin. Yalnızca -her aday model için hızlı modu zorla açmak istediğinizde `--fast` geçin. Aday ve yargıç süreleri -kıyaslama analizi için rapora kaydedilir, ancak yargıç istemleri açıkça +OpenAI aday başvuruları varsayılan olarak hızlı modu kullanır; böylece sağlayıcının desteklediği yerlerde +öncelikli işleme kullanılır. Tek bir aday veya değerlendirici için geçersiz kılma gerektiğinde +satır içinde `,fast`, `,no-fast` veya `,fast=false` ekleyin. Hızlı modu +her aday model için zorla açmak istediğinizde yalnızca `--fast` geçin. Aday ve değerlendirici süreleri +karşılaştırmalı analiz için rapora kaydedilir, ancak değerlendirici istemleri açıkça hıza göre sıralama yapılmamasını söyler. -Aday ve yargıç model çalıştırmalarının ikisi de varsayılan olarak 16 eşzamanlılık kullanır. -Sağlayıcı sınırları veya yerel gateway -yükü bir çalıştırmayı fazla gürültülü hale getiriyorsa `--concurrency` veya `--judge-concurrency` değerini düşürün. -Hiç aday `--model` geçirilmediğinde, karakter değerlendirmesi varsayılan olarak +Aday ve değerlendirici model çalıştırmaları varsayılan olarak 16 eşzamanlılık kullanır. Sağlayıcı sınırları +veya yerel gateway yükü bir çalıştırmayı fazla gürültülü hâle getiriyorsa +`--concurrency` veya `--judge-concurrency` değerini düşürün. +Hiç aday `--model` geçirilmezse, karakter değerlendirmesi varsayılan olarak `openai/gpt-5.4`, `openai/gpt-5.2`, `openai/gpt-5`, `anthropic/claude-opus-4-6`, `anthropic/claude-sonnet-4-6`, `zai/glm-5.1`, `moonshot/kimi-k2.5` ve `google/gemini-3.1-pro-preview` kullanır. -Hiç `--judge-model` geçirilmediğinde, yargıçlar varsayılan olarak +Hiç `--judge-model` geçirilmezse, değerlendiriciler varsayılan olarak `openai/gpt-5.4,thinking=xhigh,fast` ve `anthropic/claude-opus-4-6,thinking=high` olur. -## İlgili belgeler +## İlgili dokümanlar - [Testing](/tr/help/testing) - [QA Channel](/tr/channels/qa-channel) diff --git a/docs/tr/gateway/configuration-reference.md b/docs/tr/gateway/configuration-reference.md index 59115a982..7543a5802 100644 --- a/docs/tr/gateway/configuration-reference.md +++ b/docs/tr/gateway/configuration-reference.md @@ -1,70 +1,70 @@ --- read_when: - - Tam alan düzeyinde yapılandırma anlamlarını veya varsayılanları gerektiğinde - - Kanal, model, gateway veya araç yapılandırma bloklarını doğrularken -summary: Temel OpenClaw anahtarları, varsayılanlar ve özel alt sistem referanslarına bağlantılar için gateway yapılandırma başvurusu + - Tam alan düzeyinde yapılandırma anlamları veya varsayılanları gerekiyor + - Kanal, model, gateway veya araç yapılandırma bloklarını doğruluyorsunuz +summary: Temel OpenClaw anahtarları, varsayılanlar ve özel alt sistem başvurularına bağlantılar için Gateway yapılandırma başvurusu title: Yapılandırma Başvurusu x-i18n: - generated_at: "2026-04-09T01:34:54Z" + generated_at: "2026-04-10T08:50:03Z" model: gpt-5.4 provider: openai - source_hash: a9d6d0c542b9874809491978fdcf8e1a7bb35a4873db56aa797963d03af4453c + source_hash: c6aa34e3a9096c4dabef26b9cdfda4bd7693e16da43a88c1641cfad8ba1ec237 source_path: gateway/configuration-reference.md workflow: 15 --- # Yapılandırma Başvurusu -`~/.openclaw/openclaw.json` için temel yapılandırma başvurusu. Görev odaklı bir genel bakış için bkz. [Configuration](/tr/gateway/configuration). +`~/.openclaw/openclaw.json` için temel yapılandırma başvurusu. Görev odaklı bir genel bakış için bkz. [Yapılandırma](/tr/gateway/configuration). -Bu sayfa, ana OpenClaw yapılandırma yüzeylerini kapsar ve bir alt sistemin kendine ait daha derin bir başvurusu olduğunda dışarı bağlantı verir. **Her** kanal/eklentiye ait komut kataloğunu veya her derin bellek/QMD ayarını tek bir sayfada satır içine almaya çalışmaz. +Bu sayfa, ana OpenClaw yapılandırma yüzeylerini kapsar ve bir alt sistemin kendi daha ayrıntılı başvurusu olduğunda ilgili yere bağlantı verir. Her kanala/eklentiye ait komut kataloğunu veya her derin bellek/QMD ayarını tek bir sayfada satır içine almaya **çalışmaz**. -Kod doğruluğu: +Kod doğruluğu kaynakları: -- `openclaw config schema`, doğrulama ve Control UI için kullanılan canlı JSON Schema'yı yazdırır; mevcut olduğunda paketlenmiş/eklenti/kanal meta verileri de birleştirilir -- `config.schema.lookup`, ayrıntılı inceleme araçları için bir yol kapsamlı şema düğümü döndürür -- `pnpm config:docs:check` / `pnpm config:docs:gen`, yapılandırma dokümanı temel hash'ini geçerli şema yüzeyine karşı doğrular +- `openclaw config schema`, doğrulama ve Control UI için kullanılan canlı JSON Schema'yı yazdırır; mevcut olduğunda paketlenmiş/eklenti/kanal meta verileriyle birleştirilmiş olarak +- `config.schema.lookup`, ayrıntılı inceleme araçları için yol kapsamlı tek bir şema düğümü döndürür +- `pnpm config:docs:check` / `pnpm config:docs:gen`, yapılandırma dokümantasyonu temel hash'ini mevcut şema yüzeyine karşı doğrular -Ayrı derin başvurular: +Özel ayrıntılı başvurular: -- `agents.defaults.memorySearch.*`, `memory.qmd.*`, `memory.citations` ve `plugins.entries.memory-core.config.dreaming` altındaki dreaming yapılandırması için [Memory configuration reference](/tr/reference/memory-config) -- Güncel yerleşik + paketlenmiş komut kataloğu için [Slash Commands](/tr/tools/slash-commands) -- Kanala özgü komut yüzeyleri için ilgili kanal/eklenti sayfaları +- `agents.defaults.memorySearch.*`, `memory.qmd.*`, `memory.citations` ve `plugins.entries.memory-core.config.dreaming` altındaki dreaming yapılandırması için [Bellek yapılandırma başvurusu](/tr/reference/memory-config) +- Geçerli yerleşik + paketlenmiş komut kataloğu için [Slash Commands](/tr/tools/slash-commands) +- Kanala/eklentiye özgü komut yüzeyleri için ilgili kanal/eklenti sayfaları -Yapılandırma biçimi **JSON5**'tir (yorumlara + sondaki virgüllere izin verilir). Tüm alanlar isteğe bağlıdır — OpenClaw belirtilmediğinde güvenli varsayılanlar kullanır. +Yapılandırma biçimi **JSON5**'tir (yorumlara + sondaki virgüllere izin verilir). Tüm alanlar isteğe bağlıdır — OpenClaw atlandıklarında güvenli varsayılanları kullanır. --- ## Kanallar -Her kanal, yapılandırma bölümü mevcut olduğunda otomatik olarak başlar (`enabled: false` olmadığı sürece). +Her kanal, yapılandırma bölümü mevcut olduğunda otomatik olarak başlatılır (`enabled: false` olmadıkça). ### DM ve grup erişimi Tüm kanallar DM ilkelerini ve grup ilkelerini destekler: -| DM ilkesi | Davranış | -| ------------------- | -------------------------------------------------------------- | -| `pairing` (varsayılan) | Bilinmeyen gönderenler tek seferlik bir eşleştirme kodu alır; sahibi onaylamalıdır | -| `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 seferlik bir eşleştirme kodu alır; sahibin onaylaması gerekir | +| `allowlist` | Yalnızca `allowFrom` içindeki (veya eşleştirilmiş izin deposundaki) gönderenler | +| `open` | Tüm gelen DM'lere izin ver (`allowFrom: ["*"]` gerektirir) | +| `disabled` | Tüm gelen DM'leri yok say | -| Grup ilkesi | Davranış | -| --------------------- | ----------------------------------------------------- | +| 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çidi yine de uygulanır) | -| `disabled` | Tüm grup/oda mesajlarını engelle | +| `open` | Grup izin listelerini atla (bahsetme geçitlemesi yine de uygulanır) | +| `disabled` | Tüm grup/oda mesajlarını engelle | -`channels.defaults.groupPolicy`, bir sağlayıcının `groupPolicy` değeri ayarlanmadığında varsayılanı belirler. -Eşleştirme kodlarının süresi 1 saat sonra dolur. Bekleyen DM eşleştirme istekleri **kanal başına 3** ile sınırlıdır. -Bir sağlayıcı bloğu tamamen yoksa (`channels.` yoksa), çalışma zamanındaki grup ilkesi başlangıç uyarısıyla birlikte `allowlist` (fail-closed) olarak geri döner. +`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.` yoksa), çalışma zamanındaki grup ilkesi bir başlangıç uyarısıyla birlikte `allowlist` (fail-closed) olarak geri döner. ### Kanal model geçersiz kılmaları -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. Bir oturumda zaten model geçersiz kılma yoksa kanal eşlemesi uygulanır (örneğin `/model` ile ayarlanmışsa). +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). ```json5 { @@ -105,15 +105,15 @@ Sağlayıcılar arasında paylaşılan grup ilkesi ve heartbeat davranışı iç } ``` -- `channels.defaults.groupPolicy`: bir sağlayıcı düzeyindeki `groupPolicy` ayarlı değilse 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, tüm alıntı/konu/geçmiş bağlamını dahil et), `allowlist` (yalnızca izin verilen gönderenlerden gelen bağlamı dahil et), `allowlist_quote` (allowlist ile aynı ama açık alıntı/yanıt bağlamını koru). Kanal başına geçersiz kılma: `channels..contextVisibility`. -- `channels.defaults.heartbeat.showOk`: heartbeat çıktısında sağlıklı kanal durumlarını dahil et. -- `channels.defaults.heartbeat.showAlerts`: heartbeat çıktısında bozulmuş/hata durumlarını dahil et. +- `channels.defaults.groupPolicy`: sağlayıcı düzeyindeki `groupPolicy` ayarlanmamış olduğunda 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/ileti dizisi/geçmiş bağlamının tümünü dahil et), `allowlist` (yalnızca izin listesindeki gönderenlerden gelen bağlamı dahil et), `allowlist_quote` (allowlist ile aynı, ancak açık alıntı/yanıt bağlamını korur). Kanal başına geçersiz kılma: `channels..contextVisibility`. +- `channels.defaults.heartbeat.showOk`: sağlıklı kanal durumlarını heartbeat çıktısına dahil et. +- `channels.defaults.heartbeat.showAlerts`: bozulmuş/hata durumlarını heartbeat çıktısına dahil et. - `channels.defaults.heartbeat.useIndicator`: kompakt gösterge tarzı heartbeat çıktısı oluştur. ### WhatsApp -WhatsApp, gateway'in web kanalı üzerinden çalışır (Baileys Web). Bağlı bir oturum mevcut olduğunda otomatik başlar. +WhatsApp, gateway'nin web kanalı (Baileys Web) üzerinden çalışır. Bağlı bir oturum mevcut olduğunda otomatik olarak başlar. ```json5 { @@ -164,7 +164,7 @@ WhatsApp, gateway'in web kanalı üzerinden çalışır (Baileys Web). Bağlı b } ``` -- 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. +- Giden komutlar, varsa varsayılan olarak `default` hesabını kullanır; aksi halde ilk yapılandırılmış hesap kimliği kullanılır (sıralanmış olarak). - İ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 kimlik doğrulama dizini, `openclaw doctor` tarafından `whatsapp/default` içine taşınır. - Hesap başına geçersiz kılmalar: `channels.whatsapp.accounts..sendReadReceipts`, `channels.whatsapp.accounts..dmPolicy`, `channels.whatsapp.accounts..allowFrom`. @@ -202,7 +202,7 @@ WhatsApp, gateway'in web kanalı üzerinden çalışır (Baileys Web). Bağlı b historyLimit: 50, replyToMode: "first", // off | first | all | batched linkPreview: true, - streaming: "partial", // off | partial | block | progress (varsayılan: off; preview-edit hız sınırlarını önlemek için açıkça etkinleştirin) + streaming: "partial", // off | partial | block | progress (varsayılan: off; önizleme-düzenleme oran sınırlarından kaçınmak için açıkça etkinleştirin) actions: { reactions: true, sendMessage: true }, reactionNotifications: "own", // off | own | all mediaMaxMb: 100, @@ -225,13 +225,13 @@ WhatsApp, gateway'in web kanalı üzerinden çalışır (Baileys Web). Bağlı b } ``` -- 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`. +- 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` ile. - İ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önlendirmesini önlemek için açık bir varsayılan ayarlayın (`channels.telegram.defaultAccount` veya `channels.telegram.accounts.default`); bu eksik veya geçersizse `openclaw doctor` uyarır. -- `configWrites: false`, Telegram tarafından başlatılan yapılandırma yazımlarını engeller (supergroup 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 Agents](/tr/tools/acp-agents#channel-specific-settings) içinde paylaşılır. +- Ç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 veya geçersiz olduğunda `openclaw doctor` uyarı verir. +- `configWrites: false`, Telegram tarafından başlatılan yapılandırma yazımlarını engeller (supergroup ID taşımaları, `/config set|unset`). +- `type: "acp"` içeren üst düzey `bindings[]` girdileri, forum konuları için kalıcı ACP bağlamaları yapılandırır (`match.peer.id` içinde standart `chatId:topic:topicId` kullanın). Alan anlamları [ACP Agents](/tr/tools/acp-agents#channel-specific-settings) içinde ortaktır. - Telegram akış önizlemeleri `sendMessage` + `editMessageText` kullanır (doğrudan ve grup sohbetlerinde çalışır). -- Yeniden deneme ilkesi: bkz. [Retry policy](/tr/concepts/retry). +- Yeniden deneme ilkesi: bkz. [Yeniden deneme ilkesi](/tr/concepts/retry). ### Discord @@ -286,7 +286,7 @@ WhatsApp, gateway'in web kanalı üzerinden çalışır (Baileys Web). Bağlı b historyLimit: 20, textChunkLimit: 2000, chunkMode: "length", // length | newline - streaming: "off", // off | partial | block | progress (progress, Discord'da partial'a eşlenir) + streaming: "off", // off | partial | block | progress (progress, Discord üzerinde partial ile eşlenir) maxLinesPerMessage: 17, ui: { components: { @@ -297,7 +297,7 @@ WhatsApp, gateway'in web kanalı üzerinden çalışır (Baileys Web). Bağlı b enabled: true, idleHours: 24, maxAgeHours: 0, - spawnSubagentSessions: false, // sessions_spawn({ thread: true }) için açık katılım + spawnSubagentSessions: false, // sessions_spawn({ thread: true }) için isteğe bağlı etkinleştirme }, voice: { enabled: true, @@ -333,36 +333,36 @@ WhatsApp, gateway'in web kanalı üzerinden çalışır (Baileys Web). Bağlı b } ``` -- Token: `channels.discord.token`, varsayılan hesap için geri dönüş olarak `DISCORD_BOT_TOKEN`. -- Açık bir Discord `token` sağlayan doğrudan giden çağrılar, çağrı için o tokenı kullanır; hesap yeniden deneme/ilke ayarları yine de etkin çalışma zamanı anlık görüntüsünde seçilen hesaptan gelir. +- Token: `channels.discord.token`; varsayılan hesap için geri dönüş olarak `DISCORD_BOT_TOKEN` kullanılır. +- 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ı ise etkin çalışma zamanı anlık görüntüsünde seçilen hesaptan gelmeye devam eder. - İ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:` (DM) veya `channel:` (guild kanalı) kullanın; çıplak sayısal kimlikler reddedilir. -- Guild slug'ları küçük harflidir ve boşluklar `-` ile değiştirilir; kanal anahtarları slug'lanmış adı kullanır (`#` yok). Guild kimliklerini tercih edin. -- Bot tarafından yazılmış 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 de filtrelenir). -- `channels.discord.guilds..ignoreOtherMentions` (ve kanal geçersiz kılmaları), başka bir kullanıcı veya rolden bahseden ancak bottan bahsetmeyen 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 konuya bağlı yönlendirmeyi kontrol eder: - - `enabled`: konuya 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 nedeniyle otomatik odak kaldırma için Discord geçersiz kılması (`0` devre dışı bırakır) - - `maxAgeHours`: saat cinsinden kesin maksimum yaş için Discord geçersiz kılması (`0` devre dışı bırakır) - - `spawnSubagentSessions`: `sessions_spawn({ thread: true })` otomatik konu oluşturma/bağlama için açık katılım anahtarı -- `type: "acp"` içeren üst düzey `bindings[]` girdileri, kanallar ve konular için kalıcı ACP bağlamalarını yapılandırır (`match.peer.id` içinde kanal/konu kimliğini kullanın). Alan anlamları [ACP Agents](/tr/tools/acp-agents#channel-specific-settings) içinde paylaşılır. +- Teslim hedefleri için `user:` (DM) veya `channel:` (sunucu kanalı) kullanın; tek başına sayısal kimlikler reddedilir. +- Sunucu slug'ları küçük harflidir ve boşluklar `-` ile değiştirilir; kanal anahtarları slug biçimindeki adı kullanır (`#` olmadan). Sunucu 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 (botun kendi mesajları yine filtrelenir). +- `channels.discord.guilds..ignoreOtherMentions` (ve kanal geçersiz kılmaları), bottan bahsetmeyen ancak başka bir kullanıcıdan veya rolden bahseden mesajları kaldırır (`@everyone`/`@here` hariç). +- `maxLinesPerMessage` (varsayılan 17), mesajlar 2000 karakterin altında olsa bile uzun mesajları böler. +- `channels.discord.threadBindings`, Discord ileti dizisi bağlı yönlendirmeyi kontrol eder: + - `enabled`: ileti dizisi 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`: etkinliksizlik nedeniyle otomatik odak kaldırma için saat cinsinden Discord geçersiz kılması (`0` devre dışı bırakır) + - `maxAgeHours`: saat cinsinden sabit azami yaş için Discord geçersiz kılması (`0` devre dışı bırakır) + - `spawnSubagentSessions`: `sessions_spawn({ thread: true })` otomatik ileti dizisi oluşturma/bağlama için isteğe bağlı etkinleştirme anahtarı +- `type: "acp"` içeren üst düzey `bindings[]` girdileri, kanallar ve ileti dizileri için kalıcı ACP bağlamalarını yapılandırır (`match.peer.id` içinde kanal/ileti dizisi kimliğini kullanın). Alan anlamları [ACP Agents](/tr/tools/acp-agents#channel-specific-settings) içinde ortaktı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ılma + TTS geçersiz kılmalarını etkinleştirir. -- `channels.discord.voice.daveEncryption` ve `channels.discord.voice.decryptionFailureTolerance`, `@discordjs/voice` DAVE seçeneklerine doğrudan aktarılır (varsayılan olarak `true` ve `24`). -- OpenClaw ayrıca, tekrarlanan şifre çözme hatalarından sonra bir ses oturumundan ayrılıp yeniden katılarak ses alımını kurtarmayı dener. -- `channels.discord.streaming`, kanonik akış modu anahtarıdır. Eski `streamMode` ve boolean `streaming` değerleri otomatik taşınır. -- `channels.discord.autoPresence`, çalışma zamanı erişilebilirliğini bot varlığına eşler (sağlıklı => online, bozulmuş => 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 (cam kırma uyumluluk modu). +- `channels.discord.voice.daveEncryption` ve `channels.discord.voice.decryptionFailureTolerance`, `@discordjs/voice` DAVE seçeneklerine doğrudan geçirilir (varsayılan olarak `true` ve `24`). +- OpenClaw ayrıca, yinelenen çözme hatalarından sonra bir ses oturumundan ayrılıp yeniden katılarak ses alma kurtarmasını denemektedir. +- `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 mevcudiyetine 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 durum uyumluluk modu). - `channels.discord.execApprovals`: Discord yerel exec onay teslimi ve onaylayıcı yetkilendirmesi. - - `enabled`: `true`, `false` veya `"auto"` (varsayılan). Otomatik modda exec onayları, `approvers` veya `commands.ownerAllowFrom` içinden onaylayıcılar çözümlenebildiğinde etkinleşir. - - `approvers`: exec isteklerini onaylamasına izin verilen Discord kullanıcı kimlikleri. Belirtilmezse `commands.ownerAllowFrom`'a geri döner. - - `agentFilter`: isteğe bağlı ajan kimliği izin listesi. Tüm ajanlar için onay iletmek üzere boş bırakın. - - `sessionFilter`: isteğe bağlı oturum anahtarı kalıpları (alt dizgi veya regex). - - `target`: onay istemlerinin nereye gönderileceği. `"dm"` (varsayılan) onaylayıcı DM'lerine gönderir, `"channel"` kaynağın kanalına gönderir, `"both"` her ikisine gönderir. Hedef `"channel"` içerdiğinde düğmeler yalnızca çözümlenmiş onaylayıcılar tarafından kullanılabilir. + - `enabled`: `true`, `false` veya `"auto"` (varsayılan). Otomatik modda exec onayları, onaylayıcılar `approvers` veya `commands.ownerAllowFrom` içinden çözümlenebildiğinde etkinleşir. + - `approvers`: exec isteklerini onaylamasına izin verilen Discord kullanıcı kimlikleri. Belirtilmezse `commands.ownerAllowFrom` değerine geri döner. + - `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ı desenleri (alt dize veya regex). + - `target`: onay istemlerinin nereye gönderileceği. `"dm"` (varsayılan) onaylayıcı DM'lerine gönderir, `"channel"` kaynak kanala gönderir, `"both"` her 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, red veya zaman aşımından sonra onay DM'lerini siler. -**Tepki bildirim modları:** `off` (hiçbiri), `own` (botun mesajları, varsayılan), `all` (tüm mesajlar), `allowlist` (`guilds..users` içinden tüm mesajlarda). +**Tepki bildirim modları:** `off` (yok), `own` (botun mesajları, varsayılan), `all` (tüm mesajlar), `allowlist` (tüm mesajlarda `guilds..users` içinden). ### Google Chat @@ -395,9 +395,9 @@ WhatsApp, gateway'in web kanalı üzerinden çalışır (Baileys Web). Bağlı b - Hizmet hesabı JSON'u: satır içi (`serviceAccount`) veya dosya tabanlı (`serviceAccountFile`). - Hizmet hesabı SecretRef de desteklenir (`serviceAccountRef`). -- Çevre geri dönüşleri: `GOOGLE_CHAT_SERVICE_ACCOUNT` veya `GOOGLE_CHAT_SERVICE_ACCOUNT_FILE`. +- Ortam geri dönüşleri: `GOOGLE_CHAT_SERVICE_ACCOUNT` veya `GOOGLE_CHAT_SERVICE_ACCOUNT_FILE`. - Teslim hedefleri için `spaces/` veya `users/` kullanın. -- `channels.googlechat.dangerouslyAllowNameMatching`, değiştirilebilir e-posta principal eşleştirmesini yeniden etkinleştirir (cam kırma uyumluluk modu). +- `channels.googlechat.dangerouslyAllowNameMatching`, değiştirilebilir e-posta asıl eşleştirmesini yeniden etkinleştirir (acil durum uyumluluk modu). ### Slack @@ -464,36 +464,30 @@ WhatsApp, gateway'in web kanalı üzerinden çalışır (Baileys Web). Bağlı b } ``` -- **Socket mode** hem `botToken` hem `appToken` gerektirir (varsayılan hesap çevre geri dönüşü için `SLACK_BOT_TOKEN` + `SLACK_APP_TOKEN`). -- **HTTP mode** `botToken` artı `signingSecret` gerektirir (kök düzeyde veya hesap başına). -- `botToken`, `appToken`, `signingSecret` ve `userToken` düz metin - dizeleri veya SecretRef nesnelerini kabul eder. -- Slack hesap anlık görüntüleri, - `botTokenSource`, `botTokenStatus`, `appTokenStatus` ve HTTP modunda - `signingSecretStatus` gibi kimlik bilgisi kaynağı/durumu alanlarını açığa çıkarır. - `configured_unavailable`, hesabın - SecretRef üzerinden yapılandırıldığı ancak mevcut komut/çalışma zamanı yolunun - gizli değerini çözemediği anlamına gelir. +- **Socket mode** hem `botToken` hem `appToken` gerektirir (varsayılan hesap ortam geri dönüşü için `SLACK_BOT_TOKEN` + `SLACK_APP_TOKEN`). +- **HTTP mode** `botToken` ile birlikte `signingSecret` gerektirir (kök düzeyde veya hesap başına). +- `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 ile yapılandırıldığı ancak mevcut komut/çalışma zamanı yolunun gizli değerini çözemediği anlamına gelir. - `configWrites: false`, Slack tarafından başlatılan yapılandırma yazımları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`, Slack'in yerel akış aktarımını kontrol eder. Eski `streamMode`, boolean `streaming` ve `nativeStreaming` değerleri otomatik taşınır. +- `channels.slack.streaming.mode`, standart Slack akış modu anahtarıdır. `channels.slack.streaming.nativeTransport`, Slack'in yerel akış taşımasını kontrol eder. Eski `streamMode`, boolean `streaming` ve `nativeStreaming` değerleri otomatik olarak taşınır. - Teslim hedefleri için `user:` (DM) veya `channel:` kullanın. **Tepki bildirim modları:** `off`, `own` (varsayılan), `all`, `allowlist` (`reactionAllowlist` içinden). -**Konu oturumu yalıtımı:** `thread.historyScope` konu başına (varsayılan) veya kanal genelinde paylaşılır. `thread.inheritParent`, üst kanal dökümünü yeni konulara kopyalar. +**İleti dizisi oturum yalıtımı:** `thread.historyScope` ileti dizisi başına (varsayılan) veya kanal genelinde paylaşımlı olabilir. `thread.inheritParent`, üst kanal transkriptini yeni ileti dizilerine kopyalar. -- Slack yerel akışı ve Slack asistan tarzı "is typing..." konu durumu bir yanıt konu hedefi gerektirir. Üst düzey DM'ler varsayılan olarak konu dışında kalır; bu nedenle konu tarzı önizleme yerine `typingReaction` veya normal teslim kullanırlar. -- `typingReaction`, bir yanıt çalışırken gelen Slack mesajına geçici bir tepki ekler, ardından tamamlandığında kaldırır. `"hourglass_flowing_sand"` gibi bir Slack emoji kısa kodu kullanın. +- Slack yerel akışı ve Slack assistant tarzı "is typing..." ileti dizisi durumu, bir yanıt ileti dizisi hedefi gerektirir. Üst düzey DM'ler varsayılan olarak ileti dizisi dışında kalır; bu nedenle ileti dizisi tarzı önizleme yerine `typingReaction` veya normal teslim kullanırlar. +- `typingReaction`, bir 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`: Slack yerel 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"`). -| 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/kaldır/listele | -| memberInfo | etkin | Üye bilgisi | -| emojiList | etkin | Özel emoji listesi | +| messages | etkin | Oku/gönder/düzenle/sil | +| pins | etkin | Sabitle/sabitlemeyi kaldır/listele | +| memberInfo | etkin | Üye bilgisi | +| emojiList | etkin | Özel emoji listesi | ### Mattermost @@ -514,10 +508,10 @@ Mattermost bir eklenti olarak gelir: `openclaw plugins install @openclaw/matterm "team-channel-id": { requireMention: false }, }, commands: { - native: true, // açık katılım + native: true, // isteğe bağlı etkinleştirme nativeSkills: true, callbackPath: "/api/channels/mattermost/command", - // Ters proxy/genel dağıtımlar için isteğe bağlı açık URL + // Ters proxy/public dağıtımlar için isteğe bağlı açık URL callbackUrl: "https://gateway.example.com/api/channels/mattermost/command", }, textChunkLimit: 4000, @@ -527,22 +521,19 @@ Mattermost bir eklenti olarak gelir: `openclaw plugins install @openclaw/matterm } ``` -Sohbet modları: `oncall` (@-mention olduğunda yanıt ver, varsayılan), `onmessage` (her mesaj), `onchar` (tetikleyici önekle başlayan mesajlar). +Sohbet modları: `oncall` (@-mention olduğunda yanıt verir, varsayılan), `onmessage` (her mesaj), `onchar` (tetikleyici önekle başlayan mesajlar). Mattermost yerel komutları etkin olduğunda: - `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ülmeli ve Mattermost sunucusundan erişilebilir olmalıdır. -- Yerel slash callback'leri, 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 etkinleştirilmezse OpenClaw callback'leri - `Unauthorized: invalid command token.` ile reddeder. -- Özel/tailnet/iç callback barındırıcıları için Mattermost, - `ServiceSettings.AllowedUntrustedInternalConnections` içinde callback barındırıcısını/alanını gerektirebilir. - Tam URL değil, barındırıcı/alan değerleri kullanın. -- `channels.mattermost.configWrites`: Mattermost tarafından başlatılan yapılandırma yazımlarına izin ver veya engelle. +- Yerel slash callback'leri, Mattermost tarafından slash komut kaydı sırasında döndürülen komut başına token'larla kimlik doğrulaması yapar. Kayıt başarısız olursa veya hiçbir komut etkinleştirilmezse OpenClaw callback'leri şu hatayla reddeder: + `Unauthorized: invalid command token.` +- Özel/tailnet/iç callback ana bilgisayarları için Mattermost, callback ana bilgisayarının/alan adının `ServiceSettings.AllowedUntrustedInternalConnections` içinde bulunmasını gerektirebilir. + Tam URL değil, ana bilgisayar/alan adı değerleri kullanın. +- `channels.mattermost.configWrites`: Mattermost tarafından başlatılan yapılandırma yazımlarına izin ver veya reddet. - `channels.mattermost.requireMention`: kanallarda yanıt vermeden önce `@mention` gerektir. -- `channels.mattermost.groups..requireMention`: kanal başına bahsetme geçidi geçersiz kılması (varsayılan için `"*"`). +- `channels.mattermost.groups..requireMention`: kanal başına bahsetme geçitlemesi 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. ### Signal @@ -552,7 +543,7 @@ Mattermost yerel komutları etkin olduğunda: channels: { signal: { enabled: true, - account: "+15555550123", // isteğe bağlı hesap bağlama + account: "+15555550123", // isteğe bağlı hesap bağlaması dmPolicy: "pairing", allowFrom: ["+15551234567", "uuid:123e4567-e89b-12d3-a456-426614174000"], configWrites: true, @@ -566,13 +557,13 @@ Mattermost yerel komutları etkin olduğunda: **Tepki bildirim modları:** `off`, `own` (varsayılan), `all`, `allowlist` (`reactionAllowlist` içinden). -- `channels.signal.account`: kanal başlangıcını belirli bir Signal hesap kimliğine sabitle. -- `channels.signal.configWrites`: Signal tarafından başlatılan yapılandırma yazımlarına izin ver veya engelle. +- `channels.signal.account`: kanal başlangıcını belirli bir Signal hesap kimliğine sabitler. +- `channels.signal.configWrites`: Signal tarafından başlatılan yapılandırma yazımlarına izin verir veya reddeder. - İ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 (eklenti desteklidir, `channels.bluebubbles` altında yapılandırılır). +BlueBubbles, önerilen iMessage yoludur (eklenti destekli, `channels.bluebubbles` altında yapılandırılır). ```json5 { @@ -580,7 +571,7 @@ BlueBubbles önerilen iMessage yoludur (eklenti desteklidir, `channels.bluebubbl bluebubbles: { enabled: true, dmPolicy: "pairing", - // serverUrl, password, webhookPath, grup denetimleri ve gelişmiş eylemler: + // serverUrl, password, webhookPath, group controls ve gelişmiş actions: // bkz. /channels/bluebubbles }, }, @@ -594,7 +585,7 @@ BlueBubbles önerilen iMessage yoludur (eklenti desteklidir, `channels.bluebubbl ### iMessage -OpenClaw, `imsg rpc` çalıştırır (stdio üzerinden JSON-RPC). Daemon veya port gerekmez. +OpenClaw `imsg rpc` başlatır (stdio üzerinden JSON-RPC). Daemon veya port gerekmez. ```json5 { @@ -622,11 +613,11 @@ OpenClaw, `imsg rpc` çalıştırır (stdio üzerinden JSON-RPC). Daemon veya po - Messages DB için Full Disk Access gerekir. - `chat_id:` hedeflerini tercih edin. Sohbetleri listelemek için `imsg chats --limit 20` kullanın. -- `cliPath`, SSH sarmalayıcısına işaret edebilir; SCP ek dosya alma için `remoteHost` ayarlayın (`host` veya `user@host`). +- `cliPath` bir SSH sarmalayıcısını işaret edebilir; SCP ek dosya getirme için `remoteHost` (`host` veya `user@host`) ayarlayın. - `attachmentRoots` ve `remoteAttachmentRoots`, gelen ek dosya yollarını sınırlar (varsayılan: `/Users/*/Library/Messages/Attachments`). -- SCP sıkı ana bilgisayar anahtarı denetimi kullanır; bu nedenle geçiş barındırıcısı anahtarının zaten `~/.ssh/known_hosts` içinde bulunduğundan emin olun. -- `channels.imessage.configWrites`: iMessage tarafından başlatılan yapılandırma yazımlarına izin ver veya engelle. -- `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 normalize edilmiş handle veya açık sohbet hedefi (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) kullanın. Paylaşılan alan anlamları: [ACP Agents](/tr/tools/acp-agents#channel-specific-settings). +- SCP katı host-key denetimi kullanır, bu nedenle relay ana bilgisayar anahtarının zaten `~/.ssh/known_hosts` içinde bulunduğundan emin olun. +- `channels.imessage.configWrites`: iMessage tarafından başlatılan yapılandırma yazımlarına izin ver veya reddet. +- `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 normalize edilmiş bir handle veya açık sohbet hedefi (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) kullanın. Paylaşılan alan anlamları: [ACP Agents](/tr/tools/acp-agents#channel-specific-settings). @@ -639,7 +630,7 @@ exec ssh -T gateway-host imsg "$@" ### Matrix -Matrix uzantı desteklidir ve `channels.matrix` altında yapılandırılır. +Matrix eklenti desteklidir ve `channels.matrix` altında yapılandırılır. ```json5 { @@ -671,23 +662,23 @@ Matrix uzantı 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..proxy` ile geçersiz kılabilir. -- `channels.matrix.network.dangerouslyAllowPrivateNetwork`, özel/iç homeserver'lara izin verir. `proxy` ve bu ağ açık katılımı bağımsız denetimlerdir. +- `channels.matrix.network.dangerouslyAllowPrivateNetwork`, özel/iç homeserver'lara izin verir. `proxy` ve bu ağ için isteğe bağlı etkinleştirme birbirinden bağımsız denetimlerdir. - `channels.matrix.defaultAccount`, çok hesaplı kurulumlarda tercih edilen hesabı seçer. -- `channels.matrix.autoJoin` varsayılan olarak `off` olduğundan davet edilen odalar ve yeni DM tarzı davetler, `autoJoin: "allowlist"` ile `autoJoinAllowlist` veya `autoJoin: "always"` ayarlanana kadar yok sayılır. +- `channels.matrix.autoJoin` varsayılan olarak `off` durumundadır; bu nedenle davet edilen odalar ve yeni DM tarzı davetler, siz `autoJoin: "allowlist"` ile `autoJoinAllowlist` ayarlayana veya `autoJoin: "always"` yapana kadar yok sayılır. - `channels.matrix.execApprovals`: Matrix yerel exec onay teslimi ve onaylayıcı yetkilendirmesi. - - `enabled`: `true`, `false` veya `"auto"` (varsayılan). Otomatik modda exec onayları, `approvers` veya `commands.ownerAllowFrom` içinden onaylayıcılar çözümlenebildiğinde etkinleşir. + - `enabled`: `true`, `false` veya `"auto"` (varsayılan). Otomatik modda exec onayları, onaylayıcılar `approvers` veya `commands.ownerAllowFrom` içinden çözümlenebildiğinde 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 onay iletmek üzere boş bırakın. - - `sessionFilter`: isteğe bağlı oturum anahtarı kalıpları (alt dizgi veya regex). + - `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ı 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..execApprovals`. -- `channels.matrix.dm.sessionScope`, Matrix DM'lerinin oturumlar hâlinde nasıl gruplandığını kontrol eder: `per-user` (varsayılan) yönlendirilen eşe göre paylaşır, `per-room` ise her DM odasını yalıtır. +- `channels.matrix.dm.sessionScope`, Matrix DM'lerinin oturumlara nasıl gruplanacağını kontrol eder: `per-user` (varsayılan) yönlendirilen eşe göre paylaşır, `per-room` ise her DM odasını ayrı tutar. - Matrix durum probları 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 uzantı desteklidir ve `channels.msteams` altında yapılandırılır. +Microsoft Teams eklenti desteklidir ve `channels.msteams` altında yapılandırılır. ```json5 { @@ -695,7 +686,7 @@ Microsoft Teams uzantı desteklidir ve `channels.msteams` altında yapılandır msteams: { enabled: true, configWrites: true, - // appId, appPassword, tenantId, webhook, takım/kanal ilkeleri: + // appId, appPassword, tenantId, webhook, team/channel policies: // bkz. /channels/msteams }, }, @@ -707,7 +698,7 @@ Microsoft Teams uzantı desteklidir ve `channels.msteams` altında yapılandır ### IRC -IRC uzantı desteklidir ve `channels.irc` altında yapılandırılır. +IRC eklenti desteklidir ve `channels.irc` altında yapılandırılır. ```json5 { @@ -730,11 +721,11 @@ IRC uzantı desteklidir ve `channels.irc` altında yapılandırılır. - 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 geçidi) [IRC](/tr/channels/irc) içinde belgelenmiştir. +- Tam IRC kanal yapılandırması (host/port/TLS/channels/allowlists/mention gating) [IRC](/tr/channels/irc) içinde belgelenmiştir. ### Çok hesaplı (tüm kanallar) -Kanal başına birden fazla hesap çalıştırın (her birinin kendi `accountId` değeri vardır): +Kanal başına birden fazla hesap çalıştırın (her biri kendi `accountId` değeriyle): ```json5 { @@ -755,28 +746,28 @@ Kanal başına birden fazla hesap çalıştırın (her birinin kendi `accountId` } ``` -- `default`, `accountId` belirtilmediğinde kullanılır (CLI + yönlendirme). -- Çevre tokenları yalnızca **varsayılan** hesap için geçerlidir. +- `accountId` atlandığında `default` kullanılır (CLI + yönlendirme). +- Ortam token'ları yalnızca **default** hesap için geçerlidir. - Temel kanal ayarları, hesap başına geçersiz kılınmadıkça 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 onboarding) ile varsayılan olmayan bir hesap eklerseniz, OpenClaw önce hesap kapsamındaki üst düzey tek hesap değerlerini kanal hesap eşlemesine terfi ettirir; böylece özgün hesap çalışmaya devam eder. Çoğu kanal bunları `channels..accounts.default` içine taşır; Matrix bunun yerine mevcut eşleşen adlandırılmış/varsayılan hedefi koruyabilir. +- Tek hesaplı üst düzey kanal yapılandırmasındayken `openclaw channels add` (veya kanal onboarding) ile varsayılan olmayan bir hesap eklerseniz, OpenClaw önce hesap kapsamlı üst düzey tek hesap değerlerini kanal hesap eşlemesine taşır, böylece özgün hesap çalışmaya devam eder. Çoğu kanal bunları `channels..accounts.default` içine taşır; Matrix ise bunun yerine mevcut eşleşen bir named/default hedefini koruyabilir. - Mevcut yalnızca kanal düzeyindeki bağlamalar (`accountId` olmadan) varsayılan hesapla eşleşmeye devam eder; hesap kapsamlı bağlamalar isteğe bağlı olmaya devam eder. -- `openclaw doctor --fix` ayrıca karışık şekilleri de onarır; hesap kapsamındaki üst düzey tek hesap değerlerini o kanal için seçilen terfi ettirilmiş hesaba taşır. Çoğu kanal `accounts.default` kullanır; Matrix mevcut eşleşen adlandırılmış/varsayılan hedefi koruyabilir. +- `openclaw doctor --fix` de karışık şekilleri onarır; hesap kapsamlı üst düzey tek hesap değerlerini o kanal için seçilen yükseltilmiş hesaba taşır. Çoğu kanal `accounts.default` kullanır; Matrix ise mevcut eşleşen bir named/default hedefini koruyabilir. -### Diğer uzantı kanalları +### Diğer eklenti kanalları -Birçok uzantı kanalı `channels.` olarak yapılandırılır ve özel kanal sayfalarında belgelenir (örneğin Feishu, Matrix, LINE, Nostr, Zalo, Nextcloud Talk, Synology Chat ve Twitch). +Birçok eklenti kanalı `channels.` 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). Tam kanal dizinine bakın: [Channels](/tr/channels). -### Grup sohbeti bahsetme geçidi +### Grup sohbeti bahsetme geçitlemesi -Grup mesajları varsayılan olarak **bahsetme gerektirir** (meta veri bahsetmesi veya güvenli regex kalıpları). WhatsApp, Telegram, Discord, Google Chat ve iMessage grup sohbetleri için geçerlidir. +Grup mesajlarında varsayılan olarak **bahsetme gereklidir** (meta veri bahsetmesi veya güvenli regex desenleri). WhatsApp, Telegram, Discord, Google Chat ve iMessage grup sohbetleri için geçerlidir. **Bahsetme türleri:** - **Meta veri bahsetmeleri**: Yerel platform @-bahsetmeleri. WhatsApp self-chat 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üvensiz iç içe tekrarlar yok sayılır. -- Bahsetme geçidi yalnızca tespit mümkün olduğunda uygulanır (yerel bahsetmeler veya en az bir kalıp). +- **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çitlemesi yalnızca algılamanın mümkün olduğu durumlarda uygulanır (yerel bahsetmeler veya en az bir desen). ```json5 { @@ -789,7 +780,7 @@ Grup mesajları varsayılan olarak **bahsetme gerektirir** (meta veri bahsetmesi } ``` -`messages.groupChat.historyLimit` genel varsayılanı ayarlar. Kanallar `channels..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 bunu `channels..historyLimit` ile (veya hesap başına) geçersiz kılabilir. Devre dışı bırakmak için `0` ayarlayın. #### DM geçmiş sınırları @@ -806,13 +797,13 @@ Grup mesajları varsayılan olarak **bahsetme gerektirir** (meta veri bahsetmesi } ``` -Çözümleme: DM başına geçersiz kılma → sağlayıcı varsayılanı → sınır yok (tamamı tutulur). +Çözümleme: DM başına geçersiz kılma → sağlayıcı varsayılanı → sınır yok (tümü tutulur). Desteklenenler: `telegram`, `whatsapp`, `discord`, `slack`, `signal`, `imessage`, `msteams`. #### Self-chat modu -Self-chat 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): +Self-chat modunu etkinleştirmek için kendi numaranızı `allowFrom` içine ekleyin (yerel @-bahsetmelerini yok sayar, yalnızca metin desenlerine yanıt verir): ```json5 { @@ -839,15 +830,15 @@ Self-chat modunu etkinleştirmek için kendi numaranızı `allowFrom` içine ekl { commands: { native: "auto", // desteklendiğinde yerel komutları kaydet - nativeSkills: "auto", // desteklendiğinde yerel skill komutlarını kaydet + nativeSkills: "auto", // desteklendiğinde yerel Skills komutlarını kaydet text: true, // sohbet mesajlarında /commands ayrıştır - bash: false, // ! izin ver (takma ad: /bash) + bash: false, // ! izni ver (takma ad: /bash) bashForegroundMs: 2000, - config: false, // /config izin ver - mcp: false, // /mcp izin ver - plugins: false, // /plugins izin ver - debug: false, // /debug izin ver - restart: true, // /restart + gateway yeniden başlatma aracı izin ver + config: false, // /config izni ver + mcp: false, // /mcp izni ver + plugins: false, // /plugins izni ver + debug: false, // /debug izni ver + restart: true, // /restart + gateway restart aracına izin ver ownerAllowFrom: ["discord:123456789012345678"], ownerDisplay: "raw", // raw | hash ownerDisplaySecret: "${OWNER_ID_HASH_SECRET}", @@ -862,26 +853,26 @@ Self-chat modunu etkinleştirmek için kendi numaranızı `allowFrom` içine ekl -- Bu blok komut yüzeylerini yapılandırır. Güncel yerleşik + paketlenmiş komut kataloğu için bkz. [Slash Commands](/tr/tools/slash-commands). -- Bu sayfa bir **yapılandırma anahtarı başvurusu**dur, tam komut kataloğu değildir. QQ Bot `/bot-ping` `/bot-help` `/bot-logs`, LINE `/card`, device-pair `/pair`, memory `/dreaming`, phone-control `/phone` ve Talk `/voice` gibi kanal/eklentiye ait komutlar kanal/eklenti sayfalarında ve [Slash Commands](/tr/tools/slash-commands) içinde belgelenmiştir. +- Bu blok komut yüzeylerini yapılandırır. Geçerli yerleşik + paketlenmiş komut kataloğu için bkz. [Slash Commands](/tr/tools/slash-commands). +- Bu sayfa bir **yapılandırma anahtarı başvurusu**dur, tam komut kataloğu değildir. QQ Bot `/bot-ping` `/bot-help` `/bot-logs`, LINE `/card`, device-pair `/pair`, memory `/dreaming`, phone-control `/phone` ve Talk `/voice` gibi kanala/eklentiye ait komutlar, kanal/eklenti sayfalarında ve [Slash Commands](/tr/tools/slash-commands) içinde belgelenmiştir. - Metin komutları, başında `/` bulunan **bağımsız** mesajlar 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 skill komutlarını açar, Slack'i kapalı bırakı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. -- Yerel skill kaydını `channels..commands.nativeSkills` ile kanal başına geçersiz kılın. +- Yerel skill kaydını kanal başına `channels..commands.nativeSkills` ile geçersiz kılın. - `channels.telegram.customCommands`, ek Telegram bot menü girdileri ekler. -- `bash: true`, ana bilgisayar kabuğu için `! ` etkinleştirir. `tools.elevated.enabled` ve gönderenin `tools.elevated.allowFrom.` içinde olması gerekir. -- `config: true`, `/config` etkinleştirir (`openclaw.json` okur/yazar). Gateway `chat.send` istemcileri için kalıcı `/config set|unset` yazımları ayrıca `operator.admin` gerektirir; salt okunur `/config show` normal yazma kapsamlı operator istemcileri için kullanılabilir kalır. -- `mcp: true`, `mcp.servers` altındaki OpenClaw tarafından yönetilen MCP sunucu yapılandırması için `/mcp` etkinleştirir. -- `plugins: true`, eklenti keşfi, kurulum ve etkinleştirme/devre dışı bırakma denetimleri için `/plugins` etkinleştirir. -- `channels..configWrites`, kanal başına yapılandırma değişikliklerini denetler (varsayılan: true). -- Çok hesaplı kanallar için `channels..accounts..configWrites`, o hesabı hedefleyen yazımları da denetler (örneğin `/allowlist --config --account ` veya `/config set channels..accounts....`). +- `bash: true`, ana makine shell'i için `! ` kullanımını etkinleştirir. `tools.elevated.enabled` ve gönderenin `tools.elevated.allowFrom.` 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` yazımları ayrıca `operator.admin` gerektirir; salt okunur `/config show` normal yazma kapsamlı operator istemcileri için kullanılabilir olmaya devam eder. +- `mcp: true`, `mcp.servers` altındaki OpenClaw tarafından yönetilen MCP sunucu yapılandırması için `/mcp` komutunu etkinleştirir. +- `plugins: true`, eklenti keşfi, kurulum ve etkinleştirme/devre dışı bırakma denetimleri için `/plugins` komutunu etkinleştirir. +- `channels..configWrites`, kanal başına yapılandırma değişikliklerini geçitler (varsayılan: true). +- Çok hesaplı kanallar için `channels..accounts..configWrites`, bu hesabı hedefleyen yazımları da geçitler (örneğin `/allowlist --config --account ` veya `/config set channels..accounts....`). - `restart: false`, `/restart` ve gateway yeniden başlatma aracı eylemlerini devre dışı bırakır. Varsayılan: `true`. -- `ownerAllowFrom`, yalnızca sahip için olan komutlar/araçlar için açık sahip izin listesidir. `allowFrom`'dan ayrıdır. +- `ownerAllowFrom`, yalnızca sahip için olan 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ğı budur (kanal izin listeleri/eşleştirme ve `useAccessGroups` yok sayılır). -- `useAccessGroups: false`, `allowFrom` ayarlı değilken komutların erişim grubu ilkelerini atlamasına izin verir. -- Komut dokümanları eşlemesi: +- `allowFrom`, sağlayıcı başınadır. Ayarlandığında **tek** yetkilendirme kaynağı budur (kanal izin listeleri/eşleştirme ve `useAccessGroups` yok sayılır). +- `useAccessGroups: false`, `allowFrom` ayarlanmamışsa komutların erişim grubu ilkelerini atlamasına izin verir. +- Komut belge eşlemesi: - yerleşik + paketlenmiş katalog: [Slash Commands](/tr/tools/slash-commands) - kanala özgü komut yüzeyleri: [Channels](/tr/channels) - QQ Bot komutları: [QQ Bot](/tr/channels/qqbot) @@ -907,7 +898,7 @@ Varsayılan: `~/.openclaw/workspace`. ### `agents.defaults.repoRoot` -Sistem isteminin Runtime satırında gösterilen isteğe bağlı depo kökü. Ayarlanmazsa OpenClaw, çalışma alanından yukarı doğru ilerleyerek otomatik algılar. +Sistem isteminin Runtime satırında gösterilen isteğe bağlı depo kökü. Ayarlanmazsa OpenClaw, workspace'ten yukarı doğru yürüyerek otomatik algılar. ```json5 { @@ -924,7 +915,7 @@ Sistem isteminin Runtime satırında gösterilen isteğe bağlı depo kökü. Ay agents: { defaults: { skills: ["github", "weather"] }, list: [ - { id: "writer" }, // github, weather devralır + { id: "writer" }, // github, weather değerlerini devralır { id: "docs", skills: ["docs-search"] }, // varsayılanların yerine geçer { id: "locked-down", skills: [] }, // skill yok ], @@ -932,15 +923,14 @@ Sistem isteminin Runtime satırında gösterilen isteğe bağlı depo kökü. Ay } ``` -- Varsayılan olarak kısıtlanmamış skills için `agents.defaults.skills` alanını atlayın. -- Varsayılanları devralmak için `agents.list[].skills` alanını atlayın. +- Varsayılan olarak sınırsız skill için `agents.defaults.skills` değerini atlayın. +- Varsayılanları devralmak için `agents.list[].skills` değerini atlayın. - Hiç skill olmaması için `agents.list[].skills: []` ayarlayın. -- Boş olmayan bir `agents.list[].skills` listesi, o ajan için son kümedir; - varsayılanlarla birleştirilmez. +- Boş olmayan bir `agents.list[].skills` listesi, o ajan için nihai kümedir; varsayılanlarla birleşmez. ### `agents.defaults.skipBootstrap` -Çalışma alanı bootstrap dosyalarının (`AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`, `BOOTSTRAP.md`) otomatik oluşturulmasını devre dışı bırakır. +Workspace bootstrap dosyalarının (`AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`, `BOOTSTRAP.md`) otomatik oluşturulmasını devre dışı bırakır. ```json5 { @@ -950,9 +940,9 @@ Sistem isteminin Runtime satırında gösterilen isteğe bağlı depo kökü. Ay ### `agents.defaults.contextInjection` -Çalışma alanı bootstrap dosyalarının sistem istemine ne zaman enjekte edildiğini denetler. Varsayılan: `"always"`. +Workspace bootstrap dosyalarının sistem istemine ne zaman ekleneceğini denetler. Varsayılan: `"always"`. -- `"continuation-skip"`: güvenli devam turları (tamamlanmış bir assistant yanıtından sonra), çalışma alanı bootstrap yeniden enjeksiyonunu atlar ve istem boyutunu azaltır. Heartbeat çalışmaları ve sıkıştırma sonrası yeniden denemeler yine de bağlamı yeniden kurar. +- `"continuation-skip"`: güvenli devam turlarında (tamamlanmış bir assistant yanıtından sonra) workspace bootstrap yeniden eklemesi atlanır, böylece istem boyutu küçülür. Heartbeat çalıştırmaları ve sıkıştırma sonrası yeniden denemeler yine de bağlamı yeniden oluşturur. ```json5 { @@ -962,7 +952,7 @@ Sistem isteminin Runtime satırında gösterilen isteğe bağlı depo kökü. Ay ### `agents.defaults.bootstrapMaxChars` -Kesmeden önce çalışma alanı bootstrap dosyası başına maksimum karakter sayısı. Varsayılan: `20000`. +Kısaltmadan önce workspace bootstrap dosyası başına azami karakter sayısı. Varsayılan: `20000`. ```json5 { @@ -972,7 +962,7 @@ Kesmeden önce çalışma alanı bootstrap dosyası başına maksimum karakter s ### `agents.defaults.bootstrapTotalMaxChars` -Tüm çalışma alanı bootstrap dosyalarından enjekte edilen toplam maksimum karakter sayısı. Varsayılan: `150000`. +Tüm workspace bootstrap dosyaları arasında eklenen toplam azami karakter sayısı. Varsayılan: `150000`. ```json5 { @@ -982,12 +972,12 @@ Tüm çalışma alanı bootstrap dosyalarından enjekte edilen toplam maksimum k ### `agents.defaults.bootstrapPromptTruncationWarning` -Bootstrap bağlamı kesildiğinde ajana görünür uyarı metnini denetler. +Bootstrap bağlamı kısaltıldığında ajana görünen uyarı metnini denetler. Varsayılan: `"once"`. -- `"off"`: sistem istemine hiçbir zaman uyarı metni enjekte etme. -- `"once"`: benzersiz her kesme imzası için uyarıyı bir kez enjekte et (önerilir). -- `"always"`: kesme mevcut olduğunda her çalıştırmada uyarıyı enjekte et. +- `"off"`: uyarı metnini sistem istemine asla ekleme. +- `"once"`: uyarıyı benzersiz her kısaltma imzası için bir kez ekle (önerilir). +- `"always"`: kısaltma varsa her çalıştırmada uyarıyı ekle. ```json5 { @@ -997,10 +987,10 @@ Varsayılan: `"once"`. ### `agents.defaults.imageMaxDimensionPx` -Sağlayıcı çağrılarından önce döküm/araç görsel bloklarında en uzun görsel kenarı için maksimum piksel boyutu. +Sağlayıcı çağrılarından önce transcript/tool image bloklarında, görüntünün en uzun kenarı için azami piksel boyutu. Varsayılan: `1200`. -Daha düşük değerler genellikle ekran görüntüsü yoğun çalıştırmalarda vision-token kullanımını ve istek yük boyutunu azaltır. +Daha düşük değerler genellikle görsel token kullanımını ve ekran görüntüsü ağırlıklı çalıştırmalarda istek yükü boyutunu azaltır. Daha yüksek değerler daha fazla görsel ayrıntıyı korur. ```json5 @@ -1011,7 +1001,7 @@ Daha yüksek değerler daha fazla görsel ayrıntıyı korur. ### `agents.defaults.userTimezone` -Sistem istemi bağlamı için saat dilimi (mesaj zaman damgaları değil). Ana makinenin saat dilimine geri döner. +Sistem istemi bağlamı için saat dilimi (mesaj zaman damgaları için değil). Ana makine saat dilimine geri döner. ```json5 { @@ -1021,7 +1011,7 @@ Sistem istemi bağlamı için saat dilimi (mesaj zaman damgaları değil). Ana m ### `agents.defaults.timeFormat` -Sistem istemindeki saat biçimi. Varsayılan: `auto` (OS tercihi). +Sistem istemindeki zaman biçimi. Varsayılan: `auto` (işletim sistemi tercihi). ```json5 { @@ -1074,43 +1064,43 @@ Sistem istemindeki saat biçimi. Varsayılan: `auto` (OS tercihi). } ``` -- `model`: ya bir dize (`"provider/model"`) ya da bir nesne (`{ primary, fallbacks }`) kabul eder. +- `model`: bir dize (`"provider/model"`) veya bir nesne (`{ primary, fallbacks }`) kabul eder. - Dize biçimi yalnızca birincil modeli ayarlar. - - Nesne biçimi birincil modeli artı sıralı failover modellerini ayarlar. -- `imageModel`: ya bir dize (`"provider/model"`) ya da bir nesne (`{ primary, fallbacks }`) kabul eder. - - `image` araç yolu tarafından vision-model yapılandırması olarak kullanılır. - - Ayrıca seçili/varsayılan model görsel girdiyi kabul edemediğinde geri dönüş yönlendirmesi olarak kullanılır. -- `imageGenerationModel`: ya bir dize (`"provider/model"`) ya da bir nesne (`{ primary, fallbacks }`) kabul eder. - - Paylaşılan görsel üretimi yeteneği ve görsel üreten tüm gelecekteki araç/eklenti yüzeyleri tarafından kullanılır. - - Tipik değerler: yerel Gemini görsel üretimi için `google/gemini-3.1-flash-image-preview`, fal için `fal/fal-ai/flux/dev` veya OpenAI Images için `openai/gpt-image-1`. - - Doğrudan bir sağlayıcı/model seçerseniz eşleşen sağlayıcı auth/API anahtarını da yapılandırın (örneğin `google/*` için `GEMINI_API_KEY` veya `GOOGLE_API_KEY`, `openai/*` için `OPENAI_API_KEY`, `fal/*` için `FAL_KEY`). - - Belirtilmezse `image_generate` yine de auth destekli bir sağlayıcı varsayılanı çıkarabilir. Önce mevcut varsayılan sağlayıcıyı, ardından sağlayıcı kimliği sırasına göre kayıtlı kalan görsel üretim sağlayıcılarını dener. -- `musicGenerationModel`: ya bir dize (`"provider/model"`) ya da bir nesne (`{ primary, fallbacks }`) kabul eder. - - Paylaşılan müzik üretimi yeteneği ve yerleşik `music_generate` aracı tarafından kullanılır. + - Nesne biçimi, sıralı failover modelleriyle birlikte birincil modeli ayarlar. +- `imageModel`: bir dize (`"provider/model"`) veya bir nesne (`{ primary, fallbacks }`) kabul eder. + - `image` araç yolunda görsel model yapılandırması olarak kullanılır. + - Ayrıca seçili/varsayılan model görüntü girdisini kabul edemediğinde geri dönüş yönlendirmesi için de kullanılır. +- `imageGenerationModel`: bir dize (`"provider/model"`) veya bir nesne (`{ primary, fallbacks }`) kabul eder. + - Paylaşılan görüntü üretme yeteneği ve görüntü üreten gelecekteki tüm araç/eklenti yüzeyleri tarafından kullanılır. + - Tipik değerler: yerel Gemini görüntü üretimi için `google/gemini-3.1-flash-image-preview`, fal için `fal/fal-ai/flux/dev` veya OpenAI Images için `openai/gpt-image-1`. + - Doğrudan bir provider/model seçerseniz, eşleşen sağlayıcı kimlik doğrulamasını/API anahtarını da yapılandırın (örneğin `google/*` için `GEMINI_API_KEY` veya `GOOGLE_API_KEY`, `openai/*` için `OPENAI_API_KEY`, `fal/*` için `FAL_KEY`). + - Atlanırsa `image_generate`, yine de kimlik doğrulama destekli bir sağlayıcı varsayılanı çıkarabilir. Önce geçerli varsayılan sağlayıcıyı, ardından provider kimliği sırasına göre kalan kayıtlı görüntü üretme sağlayıcılarını dener. +- `musicGenerationModel`: bir dize (`"provider/model"`) veya bir nesne (`{ primary, fallbacks }`) kabul eder. + - Paylaşılan müzik üretme yeteneği ve yerleşik `music_generate` aracı tarafından kullanılır. - Tipik değerler: `google/lyria-3-clip-preview`, `google/lyria-3-pro-preview` veya `minimax/music-2.5+`. - - Belirtilmezse `music_generate` yine de auth destekli bir sağlayıcı varsayılanı çıkarabilir. Önce mevcut varsayılan sağlayıcıyı, ardından sağlayıcı kimliği sırasına göre kayıtlı kalan müzik üretim sağlayıcılarını dener. - - Doğrudan bir sağlayıcı/model seçerseniz eşleşen sağlayıcı auth/API anahtarını da yapılandırın. -- `videoGenerationModel`: ya bir dize (`"provider/model"`) ya da bir nesne (`{ primary, fallbacks }`) kabul eder. - - Paylaşılan video üretimi yeteneği ve yerleşik `video_generate` aracı tarafından kullanılır. + - Atlanırsa `music_generate`, yine de kimlik doğrulama destekli bir sağlayıcı varsayılanı çıkarabilir. Önce geçerli varsayılan sağlayıcıyı, ardından provider kimliği sırasına göre kalan kayıtlı müzik üretme sağlayıcılarını dener. + - Doğrudan bir provider/model seçerseniz, eşleşen sağlayıcı kimlik doğrulamasını/API anahtarını da yapılandırın. +- `videoGenerationModel`: bir dize (`"provider/model"`) veya bir nesne (`{ primary, fallbacks }`) kabul eder. + - Paylaşılan video üretme yeteneği ve yerleşik `video_generate` aracı tarafından kullanılır. - Tipik değerler: `qwen/wan2.6-t2v`, `qwen/wan2.6-i2v`, `qwen/wan2.6-r2v`, `qwen/wan2.6-r2v-flash` veya `qwen/wan2.7-r2v`. - - Belirtilmezse `video_generate` yine de auth destekli bir sağlayıcı varsayılanı çıkarabilir. Önce mevcut varsayılan sağlayıcıyı, ardından sağlayıcı kimliği sırasına göre kayıtlı kalan video üretim sağlayıcılarını dener. - - Doğrudan bir sağlayıcı/model seçerseniz eşleşen sağlayıcı auth/API anahtarını da yapılandırın. - - Paketlenmiş Qwen video üretim sağlayıcısı en fazla 1 çıktı videosu, 1 giriş görseli, 4 giriş videosu, 10 saniye süre ve sağlayıcı düzeyinde `size`, `aspectRatio`, `resolution`, `audio` ve `watermark` seçeneklerini destekler. -- `pdfModel`: ya bir dize (`"provider/model"`) ya da bir nesne (`{ primary, fallbacks }`) kabul eder. - - `pdf` aracı tarafından model yönlendirmesi için kullanılır. - - Belirtilmezse PDF aracı önce `imageModel`'e, sonra çözümlenmiş oturum/varsayılan modele geri döner. -- `pdfMaxBytesMb`: çağrı anında `maxBytesMb` geçirilmediğinde `pdf` aracı için varsayılan PDF boyut sınırı. -- `pdfMaxPages`: `pdf` aracında çıkarım geri dönüş modu tarafından dikkate alınan varsayılan maksimum sayfa sayısı. + - Atlanırsa `video_generate`, yine de kimlik doğrulama destekli bir sağlayıcı varsayılanı çıkarabilir. Önce geçerli varsayılan sağlayıcıyı, ardından provider kimliği sırasına göre kalan kayıtlı video üretme sağlayıcılarını dener. + - Doğrudan bir provider/model seçerseniz, eşleşen sağlayıcı kimlik doğrulamasını/API anahtarını da yapılandırın. + - Paketlenmiş Qwen video üretme sağlayıcısı en fazla 1 çıktı videosu, 1 girdi görüntüsü, 4 girdi videosu, 10 saniye süre ve sağlayıcı düzeyinde `size`, `aspectRatio`, `resolution`, `audio` ve `watermark` seçeneklerini destekler. +- `pdfModel`: bir dize (`"provider/model"`) veya bir nesne (`{ primary, fallbacks }`) kabul eder. + - `pdf` aracında model yönlendirmesi için kullanılır. + - Atlanırsa PDF aracı önce `imageModel`e, ardından çözümlenen oturum/varsayılan modele geri döner. +- `pdfMaxBytesMb`: çağrı sırasında `maxBytesMb` geçirilmediğinde `pdf` aracı için varsayılan PDF boyut sınırı. +- `pdfMaxPages`: `pdf` aracında çıkarım geri dönüş modu tarafından dikkate alınan varsayılan azami sayfa sayısı. - `verboseDefault`: ajanlar için varsayılan ayrıntı düzeyi. Değerler: `"off"`, `"on"`, `"full"`. Varsayılan: `"off"`. - `elevatedDefault`: ajanlar için varsayılan elevated-output düzeyi. Değerler: `"off"`, `"on"`, `"ask"`, `"full"`. Varsayılan: `"on"`. -- `model.primary`: `provider/model` biçimi (ör. `openai/gpt-5.4`). Sağlayıcıyı atarsanız OpenClaw önce bir takma adı, sonra tam o model kimliği için benzersiz yapılandırılmış sağlayıcı eşleşmesini dener ve ancak sonrasında yapılandırılmış varsayılan sağlayıcıya geri döner (kullanımdan kaldırılmış uyumluluk davranışı, bu yüzden açık `provider/model` tercih edin). 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ı yüzeye çıkarmak yerine ilk yapılandırılmış sağlayıcı/modele geri döner. -- `models`: `/model` için yapılandırılmış model kataloğu ve izin listesi. Her giriş `alias` (kısayol) ve `params` (sağlayıcıya özgü; örneğin `temperature`, `maxTokens`, `cacheRetention`, `context1m`) içerebilir. +- `model.primary`: `provider/model` biçimi (ör. `openai/gpt-5.4`). Sağlayıcıyı atlarsanız OpenClaw önce bir takma adı, sonra tam bu model kimliği için yapılandırılmış sağlayıcılar içinde benzersiz bir eşleşmeyi dener ve ancak ondan sonra yapılandırılmış varsayılan sağlayıcıya geri döner (kullanımdan kaldırılmış uyumluluk davranışı, bu yüzden açık `provider/model` tercih edilir). O 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 yapılandırılmış ilk sağlayıcı/modele geri döner. +- `models`: `/model` için yapılandırılmış model kataloğu ve izin listesi. Her girdi `alias` (kısayol) ve `params` (sağlayıcıya özgü, örneğin `temperature`, `maxTokens`, `cacheRetention`, `context1m`) içerebilir. - `params`: tüm modellere uygulanan genel varsayılan sağlayıcı parametreleri. `agents.defaults.params` altında ayarlanır (ör. `{ cacheRetention: "long" }`). -- `params` birleştirme önceliği (yapılandırma): `agents.defaults.params` (genel taban), `agents.defaults.models["provider/model"].params` (model başına) tarafından geçersiz kılınır, ardından `agents.list[].params` (eşleşen ajan kimliği) anahtar başına geçersiz kılar. Ayrıntılar için bkz. [Prompt Caching](/tr/reference/prompt-caching). -- Bu alanları değiştiren yapılandırma yazıcıları (örneğin `/models set`, `/models set-image` ve fallback ekle/kaldır komutları) kanonik nesne biçimini kaydeder ve mümkün olduğunda mevcut fallback listelerini korur. -- `maxConcurrent`: oturumlar arasında en fazla paralel ajan çalışması (her oturum yine de seri hâlde). Varsayılan: 4. +- `params` birleştirme önceliği (yapılandırma): `agents.defaults.params` (genel taban), `agents.defaults.models["provider/model"].params` (model başına) tarafından geçersiz kılınır, ardından `agents.list[].params` (eşleşen ajan kimliği) anahtar bazında geçersiz kılar. Ayrıntılar için bkz. [Prompt Caching](/tr/reference/prompt-caching). +- Bu alanları değiştiren yapılandırma yazıcıları (örneğin `/models set`, `/models set-image` ve fallback ekleme/kaldırma komutları), standart nesne biçimini kaydeder ve mümkün olduğunda mevcut fallback listelerini korur. +- `maxConcurrent`: oturumlar arasında paralel en fazla ajan çalıştırma sayısıdır (her oturum yine de seri hale getirilir). Varsayılan: 4. -**Yerleşik takma ad kısaltmaları** (`agents.defaults.models` içinde model varsa uygulanır): +**Yerleşik takma ad kısayolları** (`agents.defaults.models` içinde yalnızca model bulunduğunda uygulanır): | Takma ad | Model | | ------------------- | -------------------------------------- | @@ -1123,11 +1113,11 @@ Sistem istemindeki saat biçimi. Varsayılan: `auto` (OS tercihi). | `gemini-flash` | `google/gemini-3-flash-preview` | | `gemini-flash-lite` | `google/gemini-3.1-flash-lite-preview` | -Yapılandırdığınız takma adlar her zaman varsayılanları geçersiz kılar. +Yapılandırdığınız takma adlar her zaman varsayılanlardan önceliklidir. -Z.AI GLM-4.x modelleri, `--thinking off` ayarlamadığınız veya `agents.defaults.models["zai/"].params.thinking` değerini kendiniz tanımlamadığınız sürece thinking modunu otomatik etkinleştirir. -Z.AI modelleri, araç çağrısı akışı için varsayılan olarak `tool_stream` etkinleştirir. Devre dışı bırakmak için `agents.defaults.models["zai/"].params.tool_stream` değerini `false` ayarlayın. -Anthropic Claude 4.6 modelleri, açık bir thinking düzeyi ayarlanmadığında varsayılan olarak `adaptive` thinking kullanır. +Z.AI GLM-4.x modelleri, `--thinking off` ayarlamadığınız veya `agents.defaults.models["zai/"].params.thinking` değerini kendiniz tanımlamadığınız sürece otomatik olarak düşünme modunu etkinleştirir. +Z.AI modelleri, araç çağrısı akışı için varsayılan olarak `tool_stream` etkinleştirir. Devre dışı bırakmak için `agents.defaults.models["zai/"].params.tool_stream` değerini `false` yapın. +Anthropic Claude 4.6 modelleri, açık bir düşünme düzeyi ayarlanmadığında varsayılan olarak `adaptive` düşünmeyi kullanır. ### `agents.defaults.cliBackends` @@ -1159,13 +1149,13 @@ Yalnızca metin tabanlı geri dönüş çalıştırmaları için isteğe bağlı } ``` -- CLI arka uçları önce metne yöneliktir; araçlar her zaman devre dışıdır. -- `sessionArg` ayarlanmışsa oturumlar desteklenir. -- `imageArg` dosya yollarını kabul ediyorsa görsel geçişi desteklenir. +- CLI arka uçları öncelikle metin içindir; araçlar her zaman devre dışıdır. +- `sessionArg` ayarlı olduğunda oturumlar desteklenir. +- `imageArg` dosya yollarını kabul ettiğinde görüntü geçişi desteklenir. ### `agents.defaults.systemPromptOverride` -OpenClaw tarafından oluşturulan tüm sistem istemini sabit bir dizeyle değiştirin. Varsayılan düzeyde (`agents.defaults.systemPromptOverride`) veya ajan başına (`agents.list[].systemPromptOverride`) ayarlayın. Ajan başına değerler önceliklidir; boş veya yalnızca boşluk içeren değer yok sayılır. Kontrollü istem deneyleri için kullanışlıdır. +OpenClaw tarafından oluşturulan sistem isteminin tamamını sabit bir dizeyle değiştirir. Varsayılan düzeyde (`agents.defaults.systemPromptOverride`) veya ajan başına (`agents.list[].systemPromptOverride`) ayarlayın. Ajan başına değerler önceliklidir; boş veya yalnızca boşluk içeren bir değer yok sayılır. Denetimli istem deneyleri için kullanışlıdır. ```json5 { @@ -1179,7 +1169,7 @@ OpenClaw tarafından oluşturulan tüm sistem istemini sabit bir dizeyle değiş ### `agents.defaults.heartbeat` -Dönemsel heartbeat çalışmaları. +Periyodik heartbeat çalıştırmaları. ```json5 { @@ -1189,9 +1179,9 @@ Dönemsel heartbeat çalışmaları. every: "30m", // 0m devre dışı bırakır model: "openai/gpt-5.4-mini", includeReasoning: false, - includeSystemPromptSection: true, // varsayılan: true; false Heartbeat bölümünü sistem isteminden çıkarır - lightContext: false, // varsayılan: false; true çalışma alanı bootstrap dosyalarından yalnızca HEARTBEAT.md dosyasını tutar - isolatedSession: false, // varsayılan: false; true her heartbeat'i yeni bir oturumda çalıştırır (konuşma geçmişi yok) + includeSystemPromptSection: true, // varsayılan: true; false, Heartbeat bölümünü sistem isteminden çıkarır + lightContext: false, // varsayılan: false; true, workspace bootstrap dosyalarından yalnızca HEARTBEAT.md dosyasını tutar + isolatedSession: false, // varsayılan: false; true, her heartbeat'i yeni bir oturumda çalıştırır (konuşma geçmişi yok) session: "main", to: "+15555550123", directPolicy: "allow", // allow (varsayılan) | block @@ -1205,13 +1195,13 @@ Dönemsel heartbeat çalışmaları. } ``` -- `every`: süre dizesi (ms/s/m/h). Varsayılan: `30m` (API-key auth) veya `1h` (OAuth auth). Devre dışı bırakmak için `0m` ayarlayın. -- `includeSystemPromptSection`: false olduğunda Heartbeat bölümünü sistem isteminden çıkarır ve `HEARTBEAT.md` enjeksiyonunu bootstrap bağlamından atlar. Varsayılan: `true`. -- `suppressToolErrorWarnings`: true olduğunda heartbeat çalışmaları sırasında araç hata uyarı yüklerini bastırır. -- `directPolicy`: doğrudan/DM teslim ilkesi. `allow` (varsayılan) doğrudan hedef teslimine izin verir. `block` doğrudan hedef teslimini bastırır ve `reason=dm-blocked` üretir. -- `lightContext`: true olduğunda heartbeat çalışmaları hafif bootstrap bağlamı kullanır ve çalışma alanı bootstrap dosyalarından yalnızca `HEARTBEAT.md` kalır. -- `isolatedSession`: true olduğunda her heartbeat, önceki konuşma geçmişi olmadan taze bir oturumda çalışır. Cron `sessionTarget: "isolated"` ile aynı yalıtım düzeni. Heartbeat başına token maliyetini yaklaşık ~100K'dan ~2-5K tokene düşürür. -- Ajan başına: `agents.list[].heartbeat` ayarlayın. Herhangi bir ajan `heartbeat` tanımlarsa, heartbeat'leri **yalnızca o ajanlar** çalıştırır. +- `every`: süre dizesi (ms/s/m/h). Varsayılan: `30m` (API anahtarı kimlik doğrulaması) veya `1h` (OAuth kimlik doğrulaması). Devre dışı bırakmak için `0m` ayarlayın. +- `includeSystemPromptSection`: false olduğunda Heartbeat bölümünü sistem isteminden çıkarır ve `HEARTBEAT.md` eklenmesini bootstrap bağlamından atlar. Varsayılan: `true`. +- `suppressToolErrorWarnings`: true olduğunda heartbeat çalıştırmaları sırasında araç hata uyarısı yüklerini bastırır. +- `directPolicy`: doğrudan/DM teslim ilkesi. `allow` (varsayılan) doğrudan hedef teslimine izin verir. `block`, doğrudan hedef teslimini bastırır ve `reason=dm-blocked` üretir. +- `lightContext`: true olduğunda heartbeat çalıştırmaları hafif bootstrap bağlamı kullanır ve workspace bootstrap dosyalarından yalnızca `HEARTBEAT.md` dosyasını tutar. +- `isolatedSession`: true olduğunda her heartbeat, önceki konuşma geçmişi olmayan yeni bir oturumda çalışır. Cron `sessionTarget: "isolated"` ile aynı yalıtım deseni. Heartbeat başına token maliyetini yaklaşık ~100K'den ~2-5K token'a düşürür. +- Ajan başına: `agents.list[].heartbeat` ayarlayın. Herhangi bir ajan `heartbeat` tanımlarsa heartbeat yalnızca **o ajanlar** için çalışır. - Heartbeat'ler tam ajan turları çalıştırır — daha kısa aralıklar daha fazla token tüketir. ### `agents.defaults.compaction` @@ -1222,14 +1212,14 @@ Dönemsel heartbeat çalışmaları. defaults: { compaction: { mode: "safeguard", // default | safeguard - provider: "my-provider", // kayıtlı bir compaction sağlayıcı eklentisinin kimliği (isteğe bağlı) + provider: "my-provider", // kayıtlı bir compaction provider plugin kimliği (isteğe bağlı) timeoutSeconds: 900, reserveTokensFloor: 24000, identifierPolicy: "strict", // strict | off | custom identifierInstructions: "Preserve deployment IDs, ticket IDs, and host:port pairs exactly.", // identifierPolicy=custom olduğunda kullanılır - postCompactionSections: ["Session Startup", "Red Lines"], // [] yeniden enjeksiyonu devre dışı bırakır - model: "openrouter/anthropic/claude-sonnet-4-6", // isteğe bağlı yalnızca compaction model geçersiz kılması - notifyUser: true, // compaction başladığında kullanıcıya kısa bildirim gönder (varsayılan: false) + postCompactionSections: ["Session Startup", "Red Lines"], // [] yeniden eklemeyi devre dışı bırakır + model: "openrouter/anthropic/claude-sonnet-4-6", // isteğe bağlı yalnızca-compaction model geçersiz kılması + notifyUser: true, // compaction başladığında kısa bir bildirim gönder (varsayılan: false) memoryFlush: { enabled: true, softThresholdTokens: 6000, @@ -1243,14 +1233,14 @@ Dönemsel heartbeat çalışmaları. ``` - `mode`: `default` veya `safeguard` (uzun geçmişler için parçalı özetleme). Bkz. [Compaction](/tr/concepts/compaction). -- `provider`: kayıtlı bir compaction sağlayıcı eklentisinin kimliği. Ayarlandığında sağlayıcının `summarize()` işlevi yerleşik LLM özetlemesi yerine çağrılır. Başarısızlıkta yerleşiğe geri döner. Bir sağlayıcı ayarlamak `mode: "safeguard"` değerini zorunlu kılar. Bkz. [Compaction](/tr/concepts/compaction). -- `timeoutSeconds`: OpenClaw'ın bir compaction işlemini iptal etmeden önce izin verdiği tek bir compaction işlemi için azami saniye sayısı. Varsayılan: `900`. +- `provider`: kayıtlı bir compaction provider plugin kimliği. Ayarlandığında yerleşik LLM özetlemesi yerine sağlayıcının `summarize()` işlevi çağrılır. Başarısızlık durumunda yerleşiğe geri döner. Bir sağlayıcı ayarlamak `mode: "safeguard"` kullanımını zorunlu kılar. Bkz. [Compaction](/tr/concepts/compaction). +- `timeoutSeconds`: OpenClaw bunu iptal etmeden önce tek bir compaction işlemi için izin verilen azami saniye sayısı. Varsayılan: `900`. - `identifierPolicy`: `strict` (varsayılan), `off` veya `custom`. `strict`, compaction özetlemesi sırasında yerleşik opak tanımlayıcı koruma yönergesini başa ekler. -- `identifierInstructions`: `identifierPolicy=custom` olduğunda kullanılan isteğe bağlı özel tanımlayıcı koruma metni. -- `postCompactionSections`: compaction sonrası yeniden enjekte edilecek isteğe bağlı AGENTS.md H2/H3 bölüm adları. Varsayılan: `["Session Startup", "Red Lines"]`; devre dışı bırakmak için `[]` ayarlayın. Ayarlanmamışsa veya açıkça bu varsayılan ikiliye ayarlanmışsa eski `Every Session`/`Safety` başlıkları da eski uyumluluk geri dönüşü olarak kabul edilir. -- `model`: yalnızca compaction özetlemesi için isteğe bağlı `provider/model-id` geçersiz kılması. Ana oturum bir modeli kullanırken compaction özetlerinin başka bir modelde çalışmasını istiyorsanız bunu kullanın; ayarlanmazsa compaction oturumun birincil modelini kullanır. -- `notifyUser`: `true` olduğunda compaction başladığında kullanıcıya kısa bir bildirim gönderir (örneğin `"Compacting context..."`). Compaction'ı sessiz tutmak için varsayılan olarak devre dışıdır. -- `memoryFlush`: dayanıklı anıları depolamak için otomatik compaction öncesi sessiz ajan dönüşü. Çalışma alanı salt okunursa atlanır. +- `identifierInstructions`: `identifierPolicy=custom` olduğunda kullanılan isteğe bağlı özel tanımlayıcı-koruma metni. +- `postCompactionSections`: compaction sonrasında yeniden eklenecek isteğe bağlı AGENTS.md H2/H3 bölüm adları. Varsayılan olarak `["Session Startup", "Red Lines"]`; yeniden eklemeyi devre dışı bırakmak için `[]` kullanın. Ayarlanmadığında veya açıkça bu varsayılan çift olarak ayarlandığında, eski `Every Session`/`Safety` başlıkları da eski uyumluluk geri dönüşü olarak kabul edilir. +- `model`: yalnızca compaction özetlemesi için isteğe bağlı `provider/model-id` geçersiz kılması. Ana oturumun bir modeli koruması, compaction özetlerinin ise başka bir modelde çalışması gerektiğinde bunu kullanın; ayarlanmadığında compaction, oturumun birincil modelini kullanır. +- `notifyUser`: `true` olduğunda compaction başladığında kullanıcıya kısa bir bildirim gönderir (örneğin, "Compacting context..."). Compaction'ın sessiz kalması için varsayılan olarak devre dışıdır. +- `memoryFlush`: kalıcı anıları depolamak için otomatik compaction öncesi sessiz agentic tur. Workspace salt okunursa atlanır. ### `agents.defaults.contextPruning` @@ -1276,21 +1266,21 @@ LLM'ye göndermeden önce bellek içi bağlamdan **eski araç sonuçlarını** b } ``` - + - `mode: "cache-ttl"` budama geçişlerini etkinleştirir. -- `ttl`, budamanın ne sıklıkla tekrar çalışabileceğini denetler (son önbellek dokunuşundan sonra). -- Budama önce büyük araç sonuçlarını yumuşak keser, sonra gerekirse eski araç sonuçlarını sert temizler. +- `ttl`, budamanın ne sıklıkla yeniden çalışabileceğini denetler (son önbellek dokunuşundan sonra). +- Budama önce büyük araç sonuçlarını yumuşak şekilde kısaltır, gerekirse daha eski araç sonuçlarını tamamen temizler. -**Yumuşak kesme** başı + sonu tutar ve ortaya `...` ekler. +**Yumuşak kısaltma**, başlangıcı + sonu korur ve ortaya `...` ekler. -**Sert temizleme** tüm araç sonucunu yer tutucuyla değiştirir. +**Tam temizleme**, araç sonucunun tamamını yer tutucuyla değiştirir. Notlar: -- Görsel blokları asla kırpılmaz/temizlenmez. -- Oranlar tam token sayıları değil, karakter tabanlıdır (yaklaşık). -- `keepLastAssistants` kadar assistant mesajı yoksa budama atlanır. +- Görüntü blokları asla kısaltılmaz/temizlenmez. +- Oranlar tam token sayısı değil, karakter tabanlıdır (yaklaşık). +- `keepLastAssistants` değerinden daha az assistant mesajı varsa budama atlanır. @@ -1312,11 +1302,11 @@ Davranış ayrıntıları için bkz. [Session Pruning](/tr/concepts/session-prun } ``` -- Telegram dışındaki kanallar, blok yanıtları etkinleştirmek için açık `*.blockStreaming: true` gerektirir. -- Kanal geçersiz kılmaları: `channels..blockStreamingCoalesce` (ve hesap başına varyantlar). Signal/Slack/Discord/Google Chat varsayılanı `minChars: 1500`. -- `humanDelay`: blok yanıtlar arasında rastgele duraklama. `natural` = 800–2500ms. Ajan başına geçersiz kılma: `agents.list[].humanDelay`. +- Telegram dışındaki kanallarda blok yanıtlarını etkinleştirmek için açık `*.blockStreaming: true` gerekir. +- Kanal geçersiz kılmaları: `channels..blockStreamingCoalesce` (ve hesap başına varyantları). Signal/Slack/Discord/Google Chat varsayılanı `minChars: 1500`. +- `humanDelay`: blok yanıtlar arasındaki rastgele duraklama. `natural` = 800–2500ms. Ajan başına geçersiz kılma: `agents.list[].humanDelay`. -Davranış + parçalara ayırma ayrıntıları için bkz. [Streaming](/tr/concepts/streaming). +Davranış + parçalama ayrıntıları için bkz. [Streaming](/tr/concepts/streaming). ### Yazıyor göstergeleri @@ -1331,7 +1321,7 @@ Davranış + parçalara ayırma ayrıntıları için bkz. [Streaming](/tr/concep } ``` -- Varsayılanlar: doğrudan sohbetler/bahsetmeler için `instant`, bahsetilmeyen grup sohbetleri için `message`. +- Varsayılanlar: doğrudan sohbetler/bahsetmeler için `instant`, bahsedilmeyen grup sohbetleri için `message`. - Oturum başına geçersiz kılmalar: `session.typingMode`, `session.typingIntervalSeconds`. Bkz. [Typing Indicators](/tr/concepts/typing-indicators). @@ -1386,7 +1376,7 @@ Gömülü ajan için isteğe bağlı sandboxing. Tam kılavuz için bkz. [Sandbo identityFile: "~/.ssh/id_ed25519", certificateFile: "~/.ssh/id_ed25519-cert.pub", knownHostsFile: "~/.ssh/known_hosts", - // SecretRefs / satır içi içerikler de desteklenir: + // SecretRef'ler / satır içi içerikler de desteklenir: // identityData: { source: "env", provider: "default", id: "SSH_IDENTITY" }, // certificateData: { source: "env", provider: "default", id: "SSH_CERTIFICATE" }, // knownHostsData: { source: "env", provider: "default", id: "SSH_KNOWN_HOSTS" }, @@ -1443,44 +1433,44 @@ Gömülü ajan için isteğe bağlı sandboxing. Tam kılavuz için bkz. [Sandbo - `ssh`: genel SSH destekli uzak çalışma zamanı - `openshell`: OpenShell çalışma zamanı -`backend: "openshell"` seçildiğinde çalışma zamanına özgü ayarlar +`backend: "openshell"` seçildiğinde, çalışma zamanına özgü ayarlar `plugins.entries.openshell.config` altına taşınır. **SSH arka uç yapılandırması:** - `target`: `user@host[:port]` biçiminde SSH hedefi - `command`: SSH istemci komutu (varsayılan: `ssh`) -- `workspaceRoot`: kapsam başına çalışma alanları için kullanılan mutlak uzak kök +- `workspaceRoot`: kapsam başına workspace'ler için kullanılan mutlak uzak kök - `identityFile` / `certificateFile` / `knownHostsFile`: OpenSSH'ye geçirilen mevcut yerel dosyalar - `identityData` / `certificateData` / `knownHostsData`: OpenClaw'un çalışma zamanında geçici dosyalara dönüştürdüğü satır içi içerikler veya SecretRef'ler - `strictHostKeyChecking` / `updateHostKeys`: OpenSSH host-key ilkesi ayarları -**SSH auth önceliği:** +**SSH kimlik doğrulama önceliği:** -- `identityData`, `identityFile` değerini geçersiz kılar -- `certificateData`, `certificateFile` değerini geçersiz kılar -- `knownHostsData`, `knownHostsFile` değerini geçersiz kılar -- SecretRef destekli `*Data` değerleri, sandbox oturumu başlamadan önce etkin gizli bilgiler çalışma zamanı anlık görüntüsünden çözümlenir +- `identityData`, `identityFile` üzerinde önceliklidir +- `certificateData`, `certificateFile` üzerinde önceliklidir +- `knownHostsData`, `knownHostsFile` üzerinde önceliklidir +- SecretRef destekli `*Data` değerleri, sandbox oturumu başlamadan önce etkin secrets çalışma zamanı anlık görüntüsünden çözülür **SSH arka uç davranışı:** -- oluşturma veya yeniden oluşturma sonrası uzak çalışma alanını bir kez tohumlar -- ardından uzak SSH çalışma alanını kanonik tutar +- oluşturma veya yeniden oluşturmadan sonra uzak workspace'i bir kez tohumlar +- ardından uzak SSH workspace'ini standart tutar - `exec`, dosya araçları ve medya yollarını SSH üzerinden yönlendirir -- uzak değişiklikleri ana makineye otomatik eşitlemez +- uzak değişiklikleri otomatik olarak ana makineye geri eşitlemez - sandbox tarayıcı kapsayıcılarını desteklemez -**Çalışma alanı erişimi:** +**Workspace erişimi:** -- `none`: `~/.openclaw/sandboxes` altında kapsam başına sandbox çalışma alanı -- `ro`: `/workspace` altında sandbox çalışma alanı, `/agent` altında salt okunur bağlı ajan çalışma alanı -- `rw`: `/workspace` altında okuma/yazma bağlı ajan çalışma alanı +- `none`: `~/.openclaw/sandboxes` altında kapsam başına sandbox workspace +- `ro`: `/workspace` konumunda sandbox workspace, `/agent` konumunda salt okunur bağlı ajan workspace +- `rw`: `/workspace` konumunda okuma/yazma bağlı ajan workspace **Kapsam:** -- `session`: oturum başına kapsayıcı + çalışma alanı -- `agent`: ajan başına bir kapsayıcı + çalışma alanı (varsayılan) -- `shared`: paylaşılan kapsayıcı ve çalışma alanı (oturumlar arası yalıtım yok) +- `session`: oturum başına kapsayıcı + workspace +- `agent`: ajan başına bir kapsayıcı + workspace (varsayılan) +- `shared`: paylaşımlı kapsayıcı ve workspace (oturumlar arası yalıtım yok) **OpenShell eklenti yapılandırması:** @@ -1497,7 +1487,7 @@ Gömülü ajan için isteğe bağlı sandboxing. Tam kılavuz için bkz. [Sandbo remoteAgentWorkspaceDir: "/agent", gateway: "lab", // isteğe bağlı gatewayEndpoint: "https://lab.example", // isteğe bağlı - policy: "strict", // isteğe bağlı OpenShell policy id + policy: "strict", // isteğe bağlı OpenShell ilke kimliği providers: ["openai"], // isteğe bağlı autoProviders: true, timeoutSeconds: 120, @@ -1510,31 +1500,30 @@ Gömülü ajan için isteğe bağlı sandboxing. Tam kılavuz için bkz. [Sandbo **OpenShell modu:** -- `mirror`: exec öncesi yerelden uzağa tohumla, exec sonrası geri eşitle; yerel çalışma alanı kanonik kalır -- `remote`: sandbox oluşturulduğunda uzak tarafı bir kez tohumla, ardından uzak çalışma alanını kanonik tut +- `mirror`: exec'ten önce uzağı yerelden tohumla, exec'ten sonra geri eşitle; yerel workspace standart kalır +- `remote`: sandbox oluşturulduğunda uzağı bir kez tohumla, ardından uzak workspace'i standart tut -`remote` modunda, OpenClaw dışında yapılan ana makine yerel düzenlemeleri tohumlama adımından sonra sandbox içine otomatik eşitlenmez. -Taşıma SSH üzerinden OpenShell sandbox içine yapılır, ancak sandbox yaşam döngüsü ve isteğe bağlı mirror eşitleme eklenti tarafından yönetilir. +`remote` modunda, OpenClaw dışında yapılan ana makine yerel düzenlemeleri tohumlama adımından sonra sandbox içine otomatik olarak eşitlenmez. +Taşıma SSH ile OpenShell sandbox'ına yapılır, ancak sandbox yaşam döngüsü ve isteğe bağlı mirror eşitlemesi eklentiye aittir. -**`setupCommand`** kapsayıcı oluşturulduktan sonra bir kez çalışır (`sh -lc` üzerinden). Ağ çıkışı, yazılabilir kök ve root kullanıcı gerektirir. +**`setupCommand`**, kapsayıcı oluşturulduktan sonra bir kez çalışır (`sh -lc` aracılığıyla). Ağ çıkışı, yazılabilir kök ve root kullanıcı gerekir. -**Kapsayıcılar varsayılan olarak `network: "none"`** ile gelir — ajan dış erişime ihtiyaç duyuyorsa `"bridge"` (veya özel bir bridge ağı) olarak ayarlayın. -`"host"` engellenir. `"container:"`, yalnızca açıkça -`sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true` ayarlarsanız -varsayılan olarak izin verilir (cam kırma). +**Kapsayıcılar varsayılan olarak `network: "none"` kullanır** — ajan çıkış erişimine ihtiyaç duyuyorsa `"bridge"` (veya özel bir bridge ağı) ayarlayın. +`"host"` engellenir. Varsayılan olarak `"container:"` de engellenir; yalnızca açıkça +`sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true` ayarlarsanız izin verilir (acil durum). -**Gelen ek dosyalar**, etkin çalışma alanında `media/inbound/*` içine hazırlanır. +**Gelen ekler**, etkin workspace içindeki `media/inbound/*` konumuna hazırlanır. -**`docker.binds`**, ek ana makine dizinlerini bağlar; genel ve ajan başına bağlamalar birleştirilir. +**`docker.binds`**, ek ana makine dizinlerini bağlar; genel ve ajan başına bind'ler birleştirilir. -**Sandboxed browser** (`sandbox.browser.enabled`): kapsayıcı içinde Chromium + CDP. noVNC URL'si sistem istemine enjekte edilir. `openclaw.json` içinde `browser.enabled` gerektirmez. -noVNC gözlemci erişimi varsayılan olarak VNC auth kullanır ve OpenClaw, parolayı paylaşılan URL'de açığa çıkarmak yerine kısa ömürlü bir token URL üretir. +**Sandbox tarayıcı** (`sandbox.browser.enabled`): kapsayıcı içinde Chromium + CDP. noVNC URL'si sistem istemine eklenir. `openclaw.json` içinde `browser.enabled` gerektirmez. +noVNC gözlemci erişimi varsayılan olarak VNC kimlik doğrulaması kullanır ve OpenClaw, paylaşılan URL'de parolayı göstermek yerine kısa ömürlü bir token URL'si üretir. -- `allowHostControl: false` (varsayılan), sandbox'lı oturumların ana makine tarayıcısını hedeflemesini engeller. -- `network` varsayılan olarak `openclaw-sandbox-browser` olur (özel bridge ağı). Genel bridge bağlantısı istiyorsanız yalnızca o durumda `bridge` ayarlayın. -- `cdpSourceRange`, isteğe bağlı olarak CDP girişini kapsayıcı kenarında bir CIDR aralığıyla sınırlar (örneğin `172.21.0.1/32`). -- `sandbox.browser.binds`, ek ana makine dizinlerini yalnızca sandbox tarayıcı kapsayıcısına bağlar. Ayarlandığında (`[]` dahil) tarayıcı kapsayıcısı için `docker.binds` yerine geçer. -- Başlatma varsayılanları `scripts/sandbox-browser-entrypoint.sh` içinde tanımlanır ve kapsayıcı barındırıcıları için ayarlanmıştır: +- `allowHostControl: false` (varsayılan), sandbox içindeki oturumların ana makine tarayıcısını hedeflemesini engeller. +- `network` varsayılan olarak `openclaw-sandbox-browser` kullanır (özel bridge ağı). Yalnızca genel bridge bağlantısını açıkça istediğinizde `bridge` olarak ayarlayın. +- `cdpSourceRange`, CDP girişini isteğe bağlı olarak kapsayıcı sınırında bir CIDR aralığıyla sınırlar (örneğin `172.21.0.1/32`). +- `sandbox.browser.binds`, ek ana makine dizinlerini yalnızca sandbox tarayıcı kapsayıcısına bağlar. Ayarlandığında (`[]` dahil), tarayıcı kapsayıcısı için `docker.binds` değerinin yerine geçer. +- Başlatma varsayılanları `scripts/sandbox-browser-entrypoint.sh` içinde tanımlanır ve kapsayıcı ana makineleri için ayarlanmıştır: - `--remote-debugging-address=127.0.0.1` - `--remote-debugging-port=` - `--user-data-dir=${HOME}/.chrome` @@ -1553,27 +1542,26 @@ noVNC gözlemci erişimi varsayılan olarak VNC auth kullanır ve OpenClaw, paro - `--metrics-recording-only` - `--disable-extensions` (varsayılan olarak etkin) - `--disable-3d-apis`, `--disable-software-rasterizer` ve `--disable-gpu` - varsayılan olarak etkindir ve - WebGL/3D kullanımı gerektiriyorsa + varsayılan olarak etkindir ve WebGL/3D kullanımı bunu gerektiriyorsa `OPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0` ile devre dışı bırakılabilir. - - `OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0`, iş akışınız - bunlara bağlıysa uzantıları yeniden etkinleştirir. + - İş akışınız bunlara bağlıysa `OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0` + uzantıları yeniden etkinleştirir. - `--renderer-process-limit=2`, - `OPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=` ile değiştirilebilir; - Chromium'un varsayılan süreç sınırını kullanmak için `0` ayarlayın. + `OPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=` ile değiştirilebilir; Chromium'un + varsayılan süreç sınırını kullanmak için `0` ayarlayın. - ayrıca `noSandbox` etkin olduğunda `--no-sandbox` ve `--disable-setuid-sandbox`. - - Varsayılanlar kapsayıcı imajının temelidir; kapsayıcı varsayılanlarını değiştirmek için - özel giriş noktasına sahip özel tarayıcı imajı kullanın. + - Varsayılanlar kapsayıcı görüntüsü temelidir; kapsayıcı varsayılanlarını değiştirmek için + özel bir entrypoint içeren özel bir tarayıcı görüntüsü kullanın. Tarayıcı sandboxing ve `sandbox.docker.binds` yalnızca Docker içindir. -İmajları oluşturun: +Görüntüleri oluşturun: ```bash -scripts/sandbox-setup.sh # ana sandbox imajı -scripts/sandbox-browser-setup.sh # isteğe bağlı tarayıcı imajı +scripts/sandbox-setup.sh # ana sandbox görüntüsü +scripts/sandbox-browser-setup.sh # isteğe bağlı tarayıcı görüntüsü ``` ### `agents.list` (ajan başına geçersiz kılmalar) @@ -1589,11 +1577,11 @@ scripts/sandbox-browser-setup.sh # isteğe bağlı tarayıcı imajı workspace: "~/.openclaw/workspace", agentDir: "~/.openclaw/agents/main/agent", model: "anthropic/claude-opus-4-6", // veya { primary, fallbacks } - thinkingDefault: "high", // ajan başına thinking düzeyi geçersiz kılması - reasoningDefault: "on", // ajan başına reasoning görünürlüğü geçersiz kılması - fastModeDefault: false, // ajan başına fast mode geçersiz kılması - params: { cacheRetention: "none" }, // eşleşen defaults.models parametrelerini anahtar başına geçersiz kılar - skills: ["docs-search"], // ayarlandığında agents.defaults.skills yerine geçer + thinkingDefault: "high", // ajan başına düşünme düzeyi geçersiz kılması + reasoningDefault: "on", // ajan başına muhakeme görünürlüğü geçersiz kılması + fastModeDefault: false, // ajan başına hızlı mod geçersiz kılması + params: { cacheRetention: "none" }, // eşleşen defaults.models parametrelerini anahtar bazında geçersiz kılar + skills: ["docs-search"], // ayarlandığında agents.defaults.skills değerinin yerine geçer identity: { name: "Samantha", theme: "helpful sloth", @@ -1624,26 +1612,26 @@ scripts/sandbox-browser-setup.sh # isteğe bağlı tarayıcı imajı } ``` -- `id`: sabit ajan kimliği (gerekli). -- `default`: birden fazlası ayarlanırsa ilki kazanır (uyarı kaydedilir). Hiçbiri ayarlanmazsa listenin ilk girdisi varsayılandır. -- `model`: dize biçimi yalnızca `primary` değerini geçersiz kılar; nesne biçimi `{ primary, fallbacks }` her ikisini de geçersiz kılar (`[]` genel fallback'leri devre dışı bırakır). Yalnızca `primary` geçersiz kılan cron işleri, `fallbacks: []` ayarlamadıkça varsayılan fallback'leri yine de devralır. -- `params`: `agents.defaults.models` içindeki seçili model girdisi üzerine birleştirilen ajan başına akış parametreleri. Tüm model kataloğunu kopyalamadan `cacheRetention`, `temperature` veya `maxTokens` gibi ajana özgü geçersiz kılmalar için kullanın. -- `skills`: isteğe bağlı ajan başına skill izin listesi. Atlanırsa ajan, ayarlıysa `agents.defaults.skills` değerini devralır; açık bir liste varsayılanlarla birleşmek yerine onların yerine geçer ve `[]` hiç skill olmadığı anlamına gelir. -- `thinkingDefault`: isteğe bağlı ajan başına varsayılan thinking düzeyi (`off | minimal | low | medium | high | xhigh | adaptive`). İleti başına veya oturum geçersiz kılması ayarlı değilse bu ajan için `agents.defaults.thinkingDefault` değerini geçersiz kılar. -- `reasoningDefault`: isteğe bağlı ajan başına varsayılan reasoning görünürlüğü (`on | off | stream`). İleti başına veya oturum reasoning geçersiz kılması ayarlı değilse uygulanır. -- `fastModeDefault`: fast mode için isteğe bağlı ajan başına varsayılan (`true | false`). İleti başına veya oturum fast-mode geçersiz kılması ayarlı değilse uygulanır. -- `runtime`: isteğe bağlı ajan başına çalışma zamanı tanımlayıcısı. Ajanın varsayılan olarak ACP harness oturumları kullanması gerekiyorsa `type: "acp"` ve `runtime.acp` varsayılanları (`agent`, `backend`, `mode`, `cwd`) kullanın. -- `identity.avatar`: çalışma alanı göreli yol, `http(s)` URL'si veya `data:` URI. -- `identity`, varsayılanları türetir: `ackReaction` `emoji`den, `mentionPatterns` `name`/`emoji`den. -- `subagents.allowAgents`: `sessions_spawn` için ajan kimlikleri izin listesi (`["*"]` = herhangi biri; varsayılan: yalnızca aynı ajan). -- Sandbox devralma koruması: istekçi oturum sandbox içindeyse `sessions_spawn`, sandboxsız çalışacak hedefleri reddeder. -- `subagents.requireAgentId`: true olduğunda `agentId` içermeyen `sessions_spawn` çağrılarını engeller (açık profil seçimini zorlar; varsayılan: false). +- `id`: kararlı ajan kimliği (zorunlu). +- `default`: birden fazla ayarlanmışsa ilki kazanır (uyarı günlüğe yazılır). Hiçbiri ayarlanmamışsa ilk liste girdisi varsayılandır. +- `model`: dize biçimi yalnızca `primary` değerini geçersiz kılar; nesne biçimi `{ primary, fallbacks }` her ikisini de geçersiz kılar (`[]`, genel fallback'leri devre dışı bırakır). Yalnızca `primary` geçersiz kılan cron işleri, `fallbacks: []` ayarlamadığınız sürece yine de varsayılan fallback'leri devralır. +- `params`: `agents.defaults.models` içindeki seçili model girdisinin üzerine birleştirilen ajan başına akış parametreleri. Tüm model kataloğunu yinelemeden `cacheRetention`, `temperature` veya `maxTokens` gibi ajana özgü geçersiz kılmalar için bunu kullanın. +- `skills`: isteğe bağlı ajan başına skill izin listesi. Atlanırsa ajan, ayarlıysa `agents.defaults.skills` değerini devralır; açık bir liste birleşmek yerine varsayılanların yerine geçer ve `[]` hiçbir skill olmadığı anlamına gelir. +- `thinkingDefault`: isteğe bağlı ajan başına varsayılan düşünme düzeyi (`off | minimal | low | medium | high | xhigh | adaptive`). Mesaj başına veya oturum geçersiz kılması ayarlanmadığında bu ajan için `agents.defaults.thinkingDefault` değerinin yerine geçer. +- `reasoningDefault`: isteğe bağlı ajan başına varsayılan muhakeme görünürlüğü (`on | off | stream`). Mesaj başına veya oturum muhakeme geçersiz kılması ayarlanmadığında uygulanır. +- `fastModeDefault`: isteğe bağlı ajan başına hızlı mod varsayılanı (`true | false`). Mesaj başına veya oturum hızlı mod geçersiz kılması ayarlanmadığında uygulanır. +- `runtime`: isteğe bağlı ajan başına çalışma zamanı tanımlayıcısı. Ajan varsayılan olarak ACP harness oturumlarını kullanacaksa `runtime.acp` varsayılanlarıyla (`agent`, `backend`, `mode`, `cwd`) birlikte `type: "acp"` kullanın. +- `identity.avatar`: workspace'e göreli yol, `http(s)` URL'si veya `data:` URI. +- `identity` varsayılanlar türetir: `emoji` değerinden `ackReaction`, `name`/`emoji` değerlerinden `mentionPatterns`. +- `subagents.allowAgents`: `sessions_spawn` için ajan kimliği izin listesi (`["*"]` = herhangi biri; varsayılan: yalnızca aynı ajan). +- Sandbox devralma koruması: istek yapan oturum sandbox içindeyse `sessions_spawn`, sandbox olmadan çalışacak hedefleri reddeder. +- `subagents.requireAgentId`: true olduğunda `agentId` belirtmeyen `sessions_spawn` çağrılarını engeller (açık profil seçimini zorunlu kılar; varsayılan: false). --- ## Çok ajanlı yönlendirme -Bir Gateway içinde birden çok yalıtılmış ajan çalıştırın. Bkz. [Multi-Agent](/tr/concepts/multi-agent). +Tek bir Gateway içinde birden çok yalıtılmış ajan çalıştırın. Bkz. [Multi-Agent](/tr/concepts/multi-agent). ```json5 { @@ -1660,27 +1648,27 @@ Bir Gateway içinde birden çok yalıtılmış ajan çalıştırın. Bkz. [Multi } ``` -### Binding eşleşme alanları +### Bağlama eşleşme alanları -- `type` (isteğe bağlı): normal yönlendirme için `route` (eksik type varsayılan olarak route olur), kalıcı ACP konuşma bağlamaları için `acp`. -- `match.channel` (gerekli) +- `type` (isteğe bağlı): normal yönlendirme için `route` (type eksikse varsayılan route olur), kalıcı ACP konuşma bağlamaları için `acp`. +- `match.channel` (zorunlu) - `match.accountId` (isteğe bağlı; `*` = herhangi bir hesap; atlanırsa = varsayılan hesap) - `match.peer` (isteğe bağlı; `{ kind: direct|group|channel, id }`) - `match.guildId` / `match.teamId` (isteğe bağlı; kanala özgü) - `acp` (isteğe bağlı; yalnızca `type: "acp"` için): `{ mode, label, cwd, backend }` -**Belirleyici eşleşme sırası:** +**Belirlenimci eşleşme sırası:** 1. `match.peer` 2. `match.guildId` 3. `match.teamId` -4. `match.accountId` (tam eşleşme, peer/guild/team yok) +4. `match.accountId` (tam eşleşme, peer/guild/team olmadan) 5. `match.accountId: "*"` (kanal genelinde) 6. Varsayılan ajan -Her katman içinde ilk eşleşen `bindings` girdisi kazanır. +Her katmanda ilk eşleşen `bindings` girdisi kazanır. -`type: "acp"` girdileri için OpenClaw tam konuşma kimliğine göre çözümler (`match.channel` + hesap + `match.peer.id`) ve yukarıdaki route binding katman sırasını kullanmaz. +`type: "acp"` girdileri için OpenClaw, tam konuşma kimliğine göre çözümler (`match.channel` + hesap + `match.peer.id`) ve yukarıdaki route bağlama katman sırasını kullanmaz. ### Ajan başına erişim profilleri @@ -1702,7 +1690,7 @@ Her katman içinde ilk eşleşen `bindings` girdisi kazanır. - + ```json5 { @@ -1803,20 +1791,20 @@ Her katman içinde ilk eşleşen `bindings` girdisi kazanır. }, resetTriggers: ["/new", "/reset"], store: "~/.openclaw/agents/{agentId}/sessions/sessions.json", - parentForkMaxTokens: 100000, // bunun üzerindeki token sayısında üst konu fork'u atlanır (0 devre dışı bırakır) + parentForkMaxTokens: 100000, // bu token sayısının üstünde parent-thread fork atlanır (0 devre dışı bırakır) maintenance: { mode: "warn", // warn | enforce pruneAfter: "30d", maxEntries: 500, rotateBytes: "10mb", resetArchiveRetention: "30d", // süre veya false - maxDiskBytes: "500mb", // isteğe bağlı kesin bütçe + maxDiskBytes: "500mb", // isteğe bağlı sabit bütçe highWaterBytes: "400mb", // isteğe bağlı temizleme hedefi }, threadBindings: { enabled: true, - idleHours: 24, // varsayılan hareketsizlikten sonra otomatik odak kaldırma saat cinsinden (`0` devre dışı bırakır) - maxAgeHours: 0, // varsayılan kesin maksimum yaş saat cinsinden (`0` devre dışı bırakır) + idleHours: 24, // etkinliksizlik nedeniyle otomatik odak kaldırma için varsayılan saat sayısı (`0` devre dışı bırakır) + maxAgeHours: 0, // sabit azami yaş için varsayılan saat sayısı (`0` devre dışı bırakır) }, mainKey: "main", // eski (çalışma zamanı her zaman "main" kullanır) agentToAgent: { maxPingPongTurns: 5 }, @@ -1831,34 +1819,34 @@ Her katman içinde ilk eşleşen `bindings` girdisi kazanır. - **`scope`**: grup sohbeti bağlamları için temel oturum gruplama stratejisi. - - `per-sender` (varsayılan): her gönderen bir kanal bağlamı içinde yalıtılmış bir oturum alır. - - `global`: bir kanal bağlamındaki tüm katılımcılar tek bir oturumu paylaşır (yalnızca paylaşılan bağlam amaçlandığında kullanın). + - `per-sender` (varsayılan): her gönderici, bir kanal bağlamı içinde yalıtılmış bir oturum alır. + - `global`: bir kanal bağlamındaki tüm katılımcılar tek bir oturumu paylaşır (yalnızca paylaşılan bağlam amaçlanıyorsa kullanın). - **`dmScope`**: DM'lerin nasıl gruplandığı. - `main`: tüm DM'ler ana oturumu paylaşır. - - `per-peer`: kanallar arasında gönderen kimliğine göre yalıt. - - `per-channel-peer`: kanal + gönderen başına yalıt (çok kullanıcılı inbox'lar için önerilir). - - `per-account-channel-peer`: hesap + kanal + gönderen başına yalıt (çok hesaplı kullanım için önerilir). -- **`identityLinks`**: kanallar arası oturum paylaşımı için sağlayıcı önekli eşlere kanonik kimlik eşlemesi. -- **`reset`**: birincil sıfırlama ilkesi. `daily`, yerel saatte `atHour` zamanında sıfırlar; `idle`, `idleMinutes` sonrasında sıfırlar. İkisi de yapılandırılmışsa hangisinin süresi önce dolarsa o kazanır. + - `per-peer`: kanallar arasında gönderici kimliğine göre yalıtır. + - `per-channel-peer`: kanal + gönderici başına yalıtır (çok kullanıcılı gelen kutuları için önerilir). + - `per-account-channel-peer`: hesap + kanal + gönderici başına yalıtır (çok hesaplı kullanım için önerilir). +- **`identityLinks`**: kanallar arası oturum paylaşımı için standart kimlikleri sağlayıcı önekli eşlere eşler. +- **`reset`**: birincil sıfırlama ilkesi. `daily`, yerel saate göre `atHour` zamanında sıfırlar; `idle`, `idleMinutes` sonrasında sıfırlar. Her ikisi de yapılandırıldığında, süresi önce dolan kazanır. - **`resetByType`**: tür başına geçersiz kılmalar (`direct`, `group`, `thread`). Eski `dm`, `direct` için takma ad olarak kabul edilir. -- **`parentForkMaxTokens`**: çatallı konu oturumu oluşturulurken üst oturum `totalTokens` için izin verilen maksimum değer (varsayılan `100000`). - - Üst `totalTokens` bu değerin üzerindeyse OpenClaw üst döküm geçmişini devralmak yerine yeni bir konu oturumu başlatır. - - Bu korumayı devre dışı bırakmak ve her zaman üst fork'a izin vermek için `0` ayarlayın. -- **`mainKey`**: eski alan. Çalışma zamanı ana doğrudan sohbet kovası için her zaman `"main"` kullanır. -- **`agentToAgent.maxPingPongTurns`**: ajanlar arası değişim sırasında ajanlar arasındaki azami geri yanıt turu sayısı (tam sayı, aralık: `0`–`5`). `0`, ping-pong zincirini devre dışı bırakır. -- **`sendPolicy`**: `channel`, `chatType` (`direct|group|channel`, eski `dm` takma adıyla), `keyPrefix` veya `rawKeyPrefix` ile eşleştir. İlk deny kazanır. +- **`parentForkMaxTokens`**: çatallanmış bir ileti dizisi oturumu oluştururken izin verilen en yüksek üst oturum `totalTokens` değeri (varsayılan `100000`). + - Üst `totalTokens` bu değerin üzerindeyse OpenClaw, üst transcript geçmişini devralmak yerine yeni bir ileti dizisi oturumu başlatır. + - Bu korumayı devre dışı bırakmak ve her zaman üst çatallamaya izin vermek için `0` ayarlayın. +- **`mainKey`**: eski alan. Çalışma zamanı, ana doğrudan sohbet kovası için her zaman `"main"` kullanır. +- **`agentToAgent.maxPingPongTurns`**: ajanlar arası alışverişler sırasında ajanlar arasındaki en yüksek geri yanıt turu sayısıdır (tamsayı, aralık: `0`–`5`). `0`, ping-pong zincirlemeyi devre dışı bırakır. +- **`sendPolicy`**: `channel`, `chatType` (`direct|group|channel`, eski `dm` takma adıyla), `keyPrefix` veya `rawKeyPrefix` ile eşleştirir. İlk reddetme kazanır. - **`maintenance`**: oturum deposu temizleme + saklama denetimleri. - - `mode`: `warn` yalnızca uyarı verir; `enforce` temizliği uygular. - - `pruneAfter`: eski girdiler için yaş kesim noktası (varsayılan `30d`). - - `maxEntries`: `sessions.json` içindeki maksimum girdi sayısı (varsayılan `500`). - - `rotateBytes`: `sessions.json` bu boyutu aşınca döndürülür (varsayılan `10mb`). - - `resetArchiveRetention`: `*.reset.` döküm arşivleri için saklama süresi. Varsayılan olarak `pruneAfter` değerini kullanır; devre dışı bırakmak için `false` ayarlayın. - - `maxDiskBytes`: oturum dizini için isteğe bağlı disk bütçesi. `warn` modunda uyarı kaydeder; `enforce` modunda önce en eski artifaktları/oturumları kaldırır. - - `highWaterBytes`: bütçe temizliği sonrası isteğe bağlı hedef. Varsayılan olarak `maxDiskBytes` değerinin `%80`idir. -- **`threadBindings`**: konuya bağlı oturum özellikleri için genel varsayılanlar. + - `mode`: `warn` yalnızca uyarı üretir; `enforce` temizliği uygular. + - `pruneAfter`: eski girdiler için yaş sınırı (varsayılan `30d`). + - `maxEntries`: `sessions.json` içindeki azami girdi sayısı (varsayılan `500`). + - `rotateBytes`: `sessions.json` bu boyutu aştığında döndürür (varsayılan `10mb`). + - `resetArchiveRetention`: `*.reset.` transcript arşivleri için saklama süresi. Varsayılan olarak `pruneAfter` kullanır; devre dışı bırakmak için `false` ayarlayın. + - `maxDiskBytes`: isteğe bağlı oturum dizini disk bütçesi. `warn` modunda uyarı günlüğü yazar; `enforce` modunda en eski yapıtları/oturumları önce kaldırır. + - `highWaterBytes`: bütçe temizliğinden sonraki isteğe bağlı hedef. Varsayılan olarak `maxDiskBytes` değerinin `%80`'idir. +- **`threadBindings`**: ileti dizisi bağlı oturum özellikleri için genel varsayılanlar. - `enabled`: ana varsayılan anahtar (sağlayıcılar geçersiz kılabilir; Discord `channels.discord.threadBindings.enabled` kullanır) - - `idleHours`: saat cinsinden varsayılan hareketsizlik nedeniyle otomatik odak kaldırma (`0` devre dışı bırakır; sağlayıcılar geçersiz kılabilir) - - `maxAgeHours`: saat cinsinden varsayılan kesin maksimum yaş (`0` devre dışı bırakır; sağlayıcılar geçersiz kılabilir) + - `idleHours`: etkinliksizlik nedeniyle otomatik odak kaldırma için varsayılan saat değeri (`0` devre dışı bırakır; sağlayıcılar geçersiz kılabilir) + - `maxAgeHours`: katı azami yaş için varsayılan saat değeri (`0` devre dışı bırakır; sağlayıcılar geçersiz kılabilir) @@ -1898,36 +1886,36 @@ Her katman içinde ilk eşleşen `bindings` girdisi kazanır. Kanal/hesap başına geçersiz kılmalar: `channels..responsePrefix`, `channels..accounts..responsePrefix`. -Çözümleme (en özeli kazanır): hesap → kanal → genel. `""` devre dışı bırakır ve zinciri durdurur. `"auto"` değeri `[{identity.name}]` türetir. +Çözümleme (en özel olan kazanır): hesap → kanal → genel. `""` devre dışı bırakır ve zinciri durdurur. `"auto"` değeri `[{identity.name}]` biçiminde türetilir. **Şablon değişkenleri:** -| Değişken | Açıklama | Örnek | -| ---------------- | -------------------- | -------------------------- | -| `{model}` | Kısa model adı | `claude-opus-4-6` | +| Değişken | Açıklama | Örnek | +| ---------------- | --------------------- | --------------------------- | +| `{model}` | Kısa model adı | `claude-opus-4-6` | | `{modelFull}` | Tam model tanımlayıcısı | `anthropic/claude-opus-4-6` | -| `{provider}` | Sağlayıcı adı | `anthropic` | -| `{thinkingLevel}`| Geçerli thinking düzeyi | `high`, `low`, `off` | -| `{identity.name}`| Ajan kimlik adı | (`"auto"` ile aynı) | +| `{provider}` | Sağlayıcı adı | `anthropic` | +| `{thinkingLevel}` | Geçerli düşünme düzeyi | `high`, `low`, `off` | +| `{identity.name}` | Ajan kimlik adı | (`"auto"` ile aynı) | Değişkenler büyük/küçük harfe duyarsızdır. `{think}`, `{thinkingLevel}` için takma addır. -### Ack tepkisi +### Onay tepkisi -- Varsayılan olarak etkin ajanın `identity.emoji` değeri, yoksa `"👀"`. Devre dışı bırakmak için `""` ayarlayın. +- Varsayılan olarak etkin ajanın `identity.emoji` değeri, aksi halde `"👀"` kullanılır. Devre dışı bırakmak için `""` ayarlayın. - Kanal başına geçersiz kılmalar: `channels..ackReaction`, `channels..accounts..ackReaction`. -- Çözüm sırası: hesap → kanal → `messages.ackReaction` → kimlik geri dönüşü. +- Çözümleme sırası: hesap → kanal → `messages.ackReaction` → kimlik geri dönüşü. - Kapsam: `group-mentions` (varsayılan), `group-all`, `direct`, `all`. -- `removeAckAfterReply`: Slack, Discord ve Telegram'da yanıt sonrası ack'i kaldırır. -- `messages.statusReactions.enabled`: Slack, Discord ve Telegram'da yaşam döngüsü durum tepkilerini etkinleştirir. - Slack ve Discord'da ayarlanmazsa, ack tepkileri etkinken durum tepkileri etkin kalır. - Telegram'da yaşam döngüsü durum tepkilerini etkinleştirmek için bunu açıkça `true` yapın. +- `removeAckAfterReply`, Slack, Discord ve Telegram'da yanıttan sonra onayı kaldırır. +- `messages.statusReactions.enabled`, Slack, Discord ve Telegram'da yaşam döngüsü durum tepkilerini etkinleştirir. + Slack ve Discord'da ayarlanmamışsa, onay tepkileri etkin olduğunda durum tepkilerini etkin tutar. + Telegram'da yaşam döngüsü durum tepkilerini etkinleştirmek için bunu açıkça `true` olarak ayarlayın. ### Gelen debounce -Aynı gönderenden hızlı metin tabanlı mesajları tek bir ajan turunda toplar. Medya/ekler hemen flush edilir. Denetim komutları debounce'u atlar. +Aynı göndericiden gelen hızlı, yalnızca metin içeren mesajları tek bir ajan turunda toplar. Medya/ekler hemen boşaltılır. Denetim komutları debounce'u atlar. -### TTS (text-to-speech) +### TTS (metinden sese) ```json5 { @@ -1969,11 +1957,11 @@ Aynı gönderenden hızlı metin tabanlı mesajları tek bir ajan turunda toplar ``` - `auto`, varsayılan otomatik TTS modunu denetler: `off`, `always`, `inbound` veya `tagged`. `/tts on|off` yerel tercihleri geçersiz kılabilir ve `/tts status` etkin durumu gösterir. -- `summaryModel`, otomatik özet için `agents.defaults.model.primary` değerini geçersiz kılar. -- `modelOverrides` varsayılan olarak etkindir; `modelOverrides.allowProvider` varsayılanı `false`tur (açık katılım). -- API anahtarları `ELEVENLABS_API_KEY`/`XI_API_KEY` ve `OPENAI_API_KEY` değerlerine geri döner. -- `openai.baseUrl`, OpenAI TTS uç noktasını geçersiz kılar. Çözümleme sırası yapılandırma, sonra `OPENAI_TTS_BASE_URL`, sonra `https://api.openai.com/v1`. -- `openai.baseUrl`, OpenAI dışı bir uç noktaya işaret ettiğinde OpenClaw bunu OpenAI uyumlu bir TTS sunucusu olarak değerlendirir ve model/ses doğrulamasını gevşetir. +- `summaryModel`, otomatik özet için `agents.defaults.model.primary` değerinin yerine geçer. +- `modelOverrides` varsayılan olarak etkindir; `modelOverrides.allowProvider` varsayılan olarak `false` değerindedir (isteğe bağlı etkinleştirme gerekir). +- API anahtarları için geri dönüş olarak `ELEVENLABS_API_KEY`/`XI_API_KEY` ve `OPENAI_API_KEY` kullanılır. +- `openai.baseUrl`, OpenAI TTS uç noktasının yerine geçer. Çözümleme sırası yapılandırma, ardından `OPENAI_TTS_BASE_URL`, ardından `https://api.openai.com/v1` şeklindedir. +- `openai.baseUrl` OpenAI dışı bir uç noktayı işaret ettiğinde OpenClaw bunu OpenAI uyumlu bir TTS sunucusu olarak değerlendirir ve model/ses doğrulamasını gevşetir. --- @@ -2003,13 +1991,13 @@ Talk modu için varsayılanlar (macOS/iOS/Android). } ``` -- `talk.provider`, birden çok Talk sağlayıcısı yapılandırıldığında `talk.providers` içindeki bir anahtarla eşleşmelidir. -- Eski düz Talk anahtarları (`talk.voiceId`, `talk.voiceAliases`, `talk.modelId`, `talk.outputFormat`, `talk.apiKey`) yalnızca uyumluluk içindir ve `talk.providers.` içine otomatik taşınır. -- Ses kimlikleri `ELEVENLABS_VOICE_ID` veya `SAG_VOICE_ID` değerlerine geri döner. -- `providers.*.apiKey`, düz metin dizelerini veya SecretRef nesnelerini kabul eder. +- Birden fazla Talk sağlayıcısı yapılandırıldığında `talk.provider`, `talk.providers` içindeki bir anahtarla eşleşmelidir. +- Eski düz Talk anahtarları (`talk.voiceId`, `talk.voiceAliases`, `talk.modelId`, `talk.outputFormat`, `talk.apiKey`) yalnızca uyumluluk içindir ve otomatik olarak `talk.providers.` içine taşınır. +- Ses kimlikleri için geri dönüş olarak `ELEVENLABS_VOICE_ID` veya `SAG_VOICE_ID` kullanılır. +- `providers.*.apiKey`, düz metin dizeleri veya SecretRef nesnelerini kabul eder. - `ELEVENLABS_API_KEY` geri dönüşü yalnızca hiçbir Talk API anahtarı yapılandırılmadığında uygulanır. -- `providers.*.voiceAliases`, Talk yönergelerinin dostça adlar kullanmasını sağlar. -- `silenceTimeoutMs`, Talk modunun kullanıcı sessizliğinden sonra dökümü göndermeden önce ne kadar beklediğini kontrol eder. Ayarlanmamışsa platform varsayılan bekleme penceresi korunur (`macOS ve Android'de 700 ms, iOS'ta 900 ms`). +- `providers.*.voiceAliases`, Talk yönergelerinin kolay adlar kullanmasına izin verir. +- `silenceTimeoutMs`, Talk modunun transcript'i göndermeden önce kullanıcı sessizliğinden sonra ne kadar bekleyeceğini denetler. Ayarlanmamışsa platform varsayılan duraklama penceresi korunur (`macOS ve Android'de 700 ms, iOS'ta 900 ms`). --- @@ -2017,37 +2005,37 @@ Talk modu için varsayılanlar (macOS/iOS/Android). ### Araç profilleri -`tools.profile`, `tools.allow`/`tools.deny` öncesinde temel bir izin listesi ayarlar: +`tools.profile`, `tools.allow`/`tools.deny` öncesinde temel bir izin listesi belirler: -Yerel onboarding, ayarlanmamış yeni yerel yapılandırmalarda varsayılan olarak `tools.profile: "coding"` kullanır (mevcut açık profiller korunur). +Yerel onboarding, ayarlanmamış yeni yerel yapılandırmaları varsayılan olarak `tools.profile: "coding"` ile ayarlar (mevcut açık profiller korunur). | Profil | İçerir | | ----------- | ------------------------------------------------------------------------------------------------------------------------------- | | `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ı -| Grup | Araçlar | -| ------------------ | ----------------------------------------------------------------------------------------------------------------------- | -| `group:runtime` | `exec`, `process`, `code_execution` (`bash`, `exec` için takma ad olarak kabul edilir) | -| `group:fs` | `read`, `write`, `edit`, `apply_patch` | +| Grup | Araçlar | +| ------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| `group:runtime` | `exec`, `process`, `code_execution` (`bash`, `exec` için takma ad olarak kabul edilir) | +| `group:fs` | `read`, `write`, `edit`, `apply_patch` | | `group:sessions` | `sessions_list`, `sessions_history`, `sessions_send`, `sessions_spawn`, `sessions_yield`, `subagents`, `session_status` | -| `group:memory` | `memory_search`, `memory_get` | -| `group:web` | `web_search`, `x_search`, `web_fetch` | -| `group:ui` | `browser`, `canvas` | -| `group:automation` | `cron`, `gateway` | -| `group:messaging` | `message` | -| `group:nodes` | `nodes` | -| `group:agents` | `agents_list` | -| `group:media` | `image`, `image_generate`, `video_generate`, `tts` | -| `group:openclaw` | Tüm yerleşik araçlar (sağlayıcı eklentileri hariç) | +| `group:memory` | `memory_search`, `memory_get` | +| `group:web` | `web_search`, `x_search`, `web_fetch` | +| `group:ui` | `browser`, `canvas` | +| `group:automation` | `cron`, `gateway` | +| `group:messaging` | `message` | +| `group:nodes` | `nodes` | +| `group:agents` | `agents_list` | +| `group:media` | `image`, `image_generate`, `video_generate`, `tts` | +| `group:openclaw` | Tüm yerleşik araçlar (sağlayıcı eklentileri hariç) | ### `tools.allow` / `tools.deny` -Genel araç izin/engelleme ilkesi (deny kazanır). Büyük/küçük harfe duyarsızdır, `*` joker karakterlerini destekler. Docker sandbox kapalı olsa bile uygulanır. +Genel araç izin/verme reddetme ilkesi (reddetme kazanır). Büyük/küçük harfe duyarsızdır, `*` joker karakterlerini destekler. Docker sandbox kapalı olsa bile uygulanır. ```json5 { @@ -2057,7 +2045,7 @@ Genel araç izin/engelleme ilkesi (deny kazanır). Büyük/küçük harfe duyars ### `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 → allow/deny. +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 reddetme. ```json5 { @@ -2090,8 +2078,8 @@ Sandbox dışındaki elevated exec erişimini denetler: ``` - 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 depolar; satır içi yönergeler tek mesaja uygulanır. -- Elevated `exec`, sandboxing'i atlar ve yapılandırılmış kaçış yolunu kullanır (`gateway` varsayılan, exec hedefi `node` olduğunda `node`). +- `/elevated on|off|ask|full` durumu oturum başına depolar; satır içi yönergeler tek mesaj için uygulanır. +- Elevated `exec`, sandboxing'i atlar ve yapılandırılmış kaçış yolunu kullanır (varsayılan olarak `gateway`, veya exec hedefi `node` olduğunda `node`). ### `tools.exec` @@ -2115,7 +2103,7 @@ Sandbox dışındaki elevated exec erişimini denetler: ### `tools.loopDetection` -Araç döngüsü güvenlik kontrolleri varsayılan olarak **devre dışıdır**. Tespiti etkinleştirmek için `enabled: true` ayarlayın. +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` altında tanımlanabilir ve ajan başına `agents.list[].tools.loopDetection` altında geçersiz kılınabilir. ```json5 @@ -2137,13 +2125,13 @@ Ayarlar genel olarak `tools.loopDetection` altında tanımlanabilir ve ajan baş } ``` -- `historySize`: döngü analizi için tutulan azami araç çağrısı geçmişi. -- `warningThreshold`: uyarılar için tekrarlayan ilerleme yok kalıp eşiği. +- `historySize`: döngü analizi için tutulan en yüksek araç çağrısı geçmişi. +- `warningThreshold`: uyarılar için tekrar eden ilerleme yok deseni eşiği. - `criticalThreshold`: kritik döngüleri engellemek için daha yüksek tekrar eşiği. -- `globalCircuitBreakerThreshold`: herhangi bir ilerleme yok çalıştırma için kesin durdurma eşiği. -- `detectors.genericRepeat`: aynı araç/aynı argüman çağrılarının tekrarında uyarı verir. -- `detectors.knownPollNoProgress`: bilinen poll araçlarında (`process.poll`, `command_status` vb.) uyarı/ver engelle. -- `detectors.pingPong`: dönüşümlü ilerleme yok çift kalıplarında uyarı/ver engelle. +- `globalCircuitBreakerThreshold`: ilerleme olmayan herhangi bir çalışma için kesin durdurma eşiği. +- `detectors.genericRepeat`: aynı araç/aynı argüman çağrılarının tekrarında uyarır. +- `detectors.knownPollNoProgress`: bilinen yoklama araçlarında (`process.poll`, `command_status` vb.) ilerleme yoksa uyarır/engeller. +- `detectors.pingPong`: dönüşümlü ilerleme olmayan çift desenlerinde uyarır/engeller. - `warningThreshold >= criticalThreshold` veya `criticalThreshold >= globalCircuitBreakerThreshold` ise doğrulama başarısız olur. ### `tools.web` @@ -2178,7 +2166,7 @@ Ayarlar genel olarak `tools.loopDetection` altında tanımlanabilir ve ajan baş ### `tools.media` -Gelen medya anlamlandırmasını yapılandırır (görsel/ses/video): +Gelen medya anlamlandırmasını yapılandırır (görüntü/ses/video): ```json5 { @@ -2186,7 +2174,7 @@ Gelen medya anlamlandırmasını yapılandırır (görsel/ses/video): media: { concurrency: 2, asyncCompletion: { - directSend: false, // açık katılım: tamamlanan async müzik/videoyu doğrudan kanala gönder + directSend: false, // isteğe bağlı etkinleştirme: tamamlanan async music/video içeriğini doğrudan kanala gönder }, audio: { enabled: true, @@ -2227,15 +2215,15 @@ Gelen medya anlamlandırmasını yapılandırır (görsel/ses/video): - `capabilities`: isteğe bağlı liste (`image`, `audio`, `video`). Varsayılanlar: `openai`/`anthropic`/`minimax` → image, `google` → image+audio+video, `groq` → audio. - `prompt`, `maxChars`, `maxBytes`, `timeoutSeconds`, `language`: girdi başına geçersiz kılmalar. -- Hatalar sonraki girdiye geri döner. +- Hatalar bir sonraki girdiye geri döner. -Sağlayıcı auth, standart sırayı izler: `auth-profiles.json` → env vars → `models.providers.*.apiKey`. +Sağlayıcı kimlik doğrulaması standart sırayı izler: `auth-profiles.json` → ortam değişkenleri → `models.providers.*.apiKey`. **Async completion alanları:** -- `asyncCompletion.directSend`: `true` olduğunda, tamamlanan async `music_generate` +- `asyncCompletion.directSend`: `true` olduğunda tamamlanan async `music_generate` ve `video_generate` görevleri önce doğrudan kanal teslimini dener. Varsayılan: `false` - (eski istekçi-oturum uyandırma/model-teslim yolu). + (eski istek yapan-oturum uyandırma/model-teslim yolu). @@ -2254,9 +2242,9 @@ Sağlayıcı auth, standart sırayı izler: `auth-profiles.json` → env vars ### `tools.sessions` -Hangi oturumların oturum araçları tarafından hedeflenebileceğini denetler (`sessions_list`, `sessions_history`, `sessions_send`). +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 oluşturulmuş oturumlar, örneğin subagents). +Varsayılan: `tree` (mevcut oturum + onun tarafından başlatılan oturumlar, örneğin alt ajanlar). ```json5 { @@ -2271,11 +2259,11 @@ Varsayılan: `tree` (geçerli oturum + onun tarafından oluşturulmuş oturumlar Notlar: -- `self`: yalnızca geçerli oturum anahtarı. -- `tree`: geçerli oturum + geçerli oturum tarafından oluşturulmuş oturumlar (subagents). -- `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). +- `self`: yalnızca mevcut oturum anahtarı. +- `tree`: mevcut oturum + mevcut oturumun başlattığı oturumlar (alt ajanlar). +- `agent`: mevcut ajan kimliğine ait herhangi bir oturum (aynı ajan kimliği altında gönderici başına oturumlar çalıştırıyorsanız başka kullanıcıları da içerebilir). - `all`: herhangi bir oturum. Ajanlar arası hedefleme yine de `tools.agentToAgent` gerektirir. -- Sandbox clamp: geçerli oturum sandbox içindeyse ve `agents.defaults.sandbox.sessionToolsVisibility="spawned"` ise `tools.sessions.visibility="all"` olsa bile görünürlük `tree` olarak zorlanır. +- Sandbox sınırlandırması: mevcut oturum sandbox içindeyse ve `agents.defaults.sandbox.sessionToolsVisibility="spawned"` ise, `tools.sessions.visibility="all"` olsa bile görünürlük `tree` olmaya zorlanır. ### `tools.sessions_spawn` @@ -2286,11 +2274,11 @@ Notlar: tools: { sessions_spawn: { attachments: { - enabled: false, // açık katılım: satır içi dosya eklerine izin vermek için true yapın - maxTotalBytes: 5242880, // tüm dosyalar için toplam 5 MB + enabled: false, // isteğe bağlı etkinleştirme: satır içi dosya eklerine izin vermek için true yapın + maxTotalBytes: 5242880, // tüm dosyalarda toplam 5 MB maxFiles: 50, maxFileBytes: 1048576, // dosya başına 1 MB - retainOnSessionKeep: false, // cleanup="keep" olduğunda ekleri tut + retainOnSessionKeep: false, // cleanup="keep" olduğunda ekleri koru }, }, }, @@ -2300,21 +2288,21 @@ Notlar: Notlar: - Ekler yalnızca `runtime: "subagent"` için desteklenir. ACP çalışma zamanı bunları reddeder. -- Dosyalar alt çalışma alanında `.openclaw/attachments//` içine `.manifest.json` ile somutlaştırılır. -- Ek içeriği döküm kalıcılığından otomatik olarak redakte edilir. -- Base64 girişleri katı alfabe/padding denetimleri ve decode öncesi boyut koruması ile doğrulanır. -- Dosya izinleri dizinler için `0700`, dosyalar için `0600` olur. -- Temizleme `cleanup` ilkesini izler: `delete` her zaman ekleri kaldırır; `keep`, bunları yalnızca `retainOnSessionKeep: true` olduğunda tutar. +- Dosyalar, alt workspace içine `.openclaw/attachments//` konumunda `.manifest.json` ile birlikte oluşturulur. +- Ek içeriği transcript kalıcılığından otomatik olarak redakte edilir. +- Base64 girdileri, sıkı alfabe/padding denetimleri ve çözümleme öncesi boyut koruması ile 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`, yalnızca `retainOnSessionKeep: true` olduğunda korur. ### `tools.experimental` -Deneysel yerleşik araç bayrakları. Çalışma zamanına özgü otomatik etkinleştirme kuralı uygulanmadıkça varsayılan olarak kapalıdır. +Deneysel yerleşik araç bayrakları. Çalışma zamanına özgü bir otomatik etkinleştirme kuralı uygulanmadıkça varsayılan olarak kapalıdır. ```json5 { tools: { experimental: { - planTool: true, // deneysel update_plan etkinleştir + planTool: true, // deneysel update_plan aracını etkinleştir }, }, } @@ -2323,8 +2311,8 @@ Deneysel yerleşik araç bayrakları. Çalışma zamanına özgü otomatik etkin Notlar: - `planTool`: önemsiz olmayan çok adımlı iş takibi için yapılandırılmış `update_plan` aracını etkinleştirir. -- Varsayılan: OpenAI dışı sağlayıcılar için `false`. OpenAI ve OpenAI Codex çalışmaları, ayarlanmamışsa bunu otomatik etkinleştirir; otomatik etkinleştirmeyi kapatmak için `false` ayarlayın. -- Etkinleştirildiğinde sistem istemi ayrıca kullanım rehberi ekler; böylece model bunu yalnızca önemli işler için kullanır ve en fazla bir adımı `in_progress` tutar. +- Varsayılan: OpenAI dışı sağlayıcılar için `false`. Ayarlanmamışsa OpenAI ve OpenAI Codex çalıştırmaları bunu otomatik etkinleştirir; bu otomatik etkinleştirmeyi devre dışı bırakmak için `false` ayarlayın. +- Etkin olduğunda sistem istemi, modelin bunu yalnızca önemli işler için kullanması ve en fazla bir adımı `in_progress` durumda tutması için kullanım yönergeleri de ekler. ### `agents.defaults.subagents` @@ -2344,16 +2332,16 @@ Notlar: } ``` -- `model`: oluşturulan alt ajanlar için varsayılan model. Belirtilmezse alt ajanlar çağıranın modelini devralır. -- `allowAgents`: istekçi ajan kendi `subagents.allowAgents` değerini ayarlamadığında `sessions_spawn` için varsayılan hedef ajan kimliği izin listesi (`["*"]` = herhangi biri; varsayılan: yalnızca aynı ajan). -- `runTimeoutSeconds`: araç çağrısı `runTimeoutSeconds` atladığında `sessions_spawn` için varsayılan zaman aşımı (saniye). `0`, zaman aşımı yok anlamına gelir. +- `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 ayarlamıyorsa, `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` atladığında `sessions_spawn` için varsayılan zaman aşımı (saniye). `0`, zaman aşımı olmadığı anlamına gelir. - Alt ajan başına araç ilkesi: `tools.subagents.tools.allow` / `tools.subagents.tools.deny`. --- ## Özel sağlayıcılar ve base URL'ler -OpenClaw yerleşik model kataloğunu kullanır. `models.providers` üzerinden yapılandırmada veya `~/.openclaw/agents//agent/models.json` içinde özel sağlayıcılar ekleyin. +OpenClaw yerleşik model kataloğunu kullanır. Yapılandırmadaki `models.providers` veya `~/.openclaw/agents//agent/models.json` aracılığıyla özel sağlayıcılar ekleyin. ```json5 { @@ -2382,47 +2370,48 @@ OpenClaw yerleşik model kataloğunu kullanır. `models.providers` üzerinden ya } ``` -- Özel auth ihtiyaçları için `authHeader: true` + `headers` kullanın. -- Ajan yapılandırma kökünü `OPENCLAW_AGENT_DIR` ile geçersiz kılın (veya eski çevre değişkeni takma adı olan `PI_CODING_AGENT_DIR`). +- Özel kimlik doğrulama gereksinimleri için `authHeader: true` + `headers` kullanın. +- Ajan yapılandırma kökünü `OPENCLAW_AGENT_DIR` ile geçersiz kılın (`PI_CODING_AGENT_DIR` da eski ortam değişkeni takma adıdır). - 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 o sağlayıcı mevcut yapılandırma/auth-profile bağlamında SecretRef ile yönetilmiyorsa kazanır. - - SecretRef ile yönetilen sağlayıcı `apiKey` değerleri, çözümlenmiş gizli değerleri kalıcılaştırmak yerine kaynak işaretleyicilerden (`ENV_VAR_NAME` env başvuruları için, `secretref-managed` file/exec başvuruları için) yenilenir. - - SecretRef ile yönetilen sağlayıcı header değerleri, kaynak işaretleyicilerden (`secretref-env:ENV_VAR_NAME` env başvuruları için, `secretref-managed` file/exec başvuruları için) yenilenir. + - Boş olmayan ajan `apiKey` değerleri yalnızca o sağlayıcı mevcut yapılandırma/auth-profile bağlamında SecretRef ile yönetilmiyorsa kazanır. + - SecretRef ile yönetilen sağlayıcı `apiKey` değerleri, çözümlenmiş gizli bilgileri kalıcılaştırmak yerine kaynak belirteçlerinden (`env` başvuruları için `ENV_VAR_NAME`, dosya/exec başvuruları için `secretref-managed`) yenilenir. + - SecretRef ile yönetilen sağlayıcı başlık değerleri, kaynak belirteçlerinden (`env` başvuruları için `secretref-env:ENV_VAR_NAME`, dosya/exec başvuruları için `secretref-managed`) yenilenir. - Boş veya eksik ajan `apiKey`/`baseUrl` değerleri, yapılandırmadaki `models.providers` değerlerine 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`, varsa açık çalışma zamanı üst sınırını korur; yerel model meta verisini değiştirmeden etkin bağlamı sınırlamak için bunu kullanın. - - Yapılandırmanın `models.json` dosyasını tamamen yeniden yazmasını istiyorsanız `models.mode: "replace"` kullanın. - - İşaretleyici kalıcılığı kaynak açısından yetkilidir: işaretleyiciler, çö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. + - Eşleşen model `contextWindow`/`maxTokens` değerleri, 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`, varsa açık çalışma zamanı sınırını korur; yerel model meta verisini değiştirmeden etkin bağlamı sınırlandırmak için bunu kullanın. + - Yapılandırmanın `models.json` dosyasını tamamen yeniden yazmasını istediğinizde `models.mode: "replace"` kullanın. + - Belirteç kalıcılığı kaynak açısından yetkilidir: belirteçler, çö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. ### Sağlayıcı alanı ayrıntıları - `models.mode`: sağlayıcı katalog davranışı (`merge` veya `replace`). - `models.providers`: sağlayıcı kimliğine göre anahtarlanmış özel sağlayıcı eşlemesi. - `models.providers.*.api`: istek bağdaştırıcısı (`openai-completions`, `openai-responses`, `anthropic-messages`, `google-generative-ai` vb.). -- `models.providers.*.apiKey`: sağlayıcı kimlik bilgisi (SecretRef/env substitution tercih edin). -- `models.providers.*.auth`: auth stratejisi (`api-key`, `token`, `oauth`, `aws-sdk`). -- `models.providers.*.injectNumCtxForOpenAICompat`: Ollama + `openai-completions` için isteklere `options.num_ctx` enjekte et (varsayılan: `true`). -- `models.providers.*.authHeader`: gerektiğinde kimlik bilgisini `Authorization` başlığında taşımayı zorla. -- `models.providers.*.baseUrl`: üst akış API base URL'si. -- `models.providers.*.headers`: proxy/tenant yönlendirmesi için ek statik başlıklar. +- `models.providers.*.apiKey`: sağlayıcı kimlik bilgisi (SecretRef/env değiştirmesi tercih edilir). +- `models.providers.*.auth`: kimlik doğrulama stratejisi (`api-key`, `token`, `oauth`, `aws-sdk`). +- `models.providers.*.injectNumCtxForOpenAICompat`: Ollama + `openai-completions` için isteklere `options.num_ctx` ekler (varsayılan: `true`). +- `models.providers.*.authHeader`: gerektiğinde kimlik bilgisinin `Authorization` üst bilgisinde taşınmasını zorunlu kılar. +- `models.providers.*.baseUrl`: üst API base URL'si. +- `models.providers.*.headers`: proxy/tenant yönlendirmesi için ek statik üst bilgiler. - `models.providers.*.request`: model-sağlayıcı HTTP istekleri için taşıma geçersiz kılmaları. - - `request.headers`: ek başlıklar (sağlayıcı varsayılanlarıyla birleştirilir). Değerler SecretRef kabul eder. - - `request.auth`: auth stratejisi geçersiz kılması. Modlar: `"provider-default"` (sağlayıcının yerleşik auth'unu 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 vars kullan), `"explicit-proxy"` (`url` ile). Her iki mod da isteğe bağlı `tls` alt nesnesini kabul eder. + - `request.headers`: ek üst bilgiler (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` ortam değişkenlerini kullan), `"explicit-proxy"` (`url` ile). Her iki mod da isteğe bağlı bir `tls` alt nesnesini kabul eder. - `request.tls`: doğrudan bağlantılar için TLS geçersiz kılması. Alanlar: `ca`, `cert`, `key`, `passphrase` (tamamı SecretRef kabul eder), `serverName`, `insecureSkipVerify`. -- `models.providers.*.models`: açık sağlayıcı model katalog girdileri. + - `request.allowPrivateNetwork`: `true` olduğunda, sağlayıcı HTTP fetch koruması üzerinden DNS özel, CGNAT veya benzeri aralıklara çözüldüğünde `baseUrl` için HTTPS'e izin verir (güvenilen self-hosted OpenAI uyumlu uç noktalar için operator isteğe bağlı etkinleştirmesi). WebSocket, üst bilgiler/TLS için aynı `request` yapısını kullanır ancak bu fetch SSRF geçidini kullanmaz. Varsayılan `false`. +- `models.providers.*.models`: açık sağlayıcı model kataloğu girdileri. - `models.providers.*.models.*.contextWindow`: yerel model bağlam penceresi meta verisi. -- `models.providers.*.models.*.contextTokens`: isteğe bağlı çalışma zamanı bağlam üst sınırı. Modelin yerel `contextWindow` değerinden daha küçük etkin bağlam bütçesi istiyorsanız bunu kullanın. -- `models.providers.*.models.*.compat.supportsDeveloperRole`: isteğe bağlı uyumluluk ipucu. `api: "openai-completions"` ve boş olmayan yerel olmayan `baseUrl` (host `api.openai.com` değil) için OpenClaw bunu çalışma zamanında `false` zorlar. Boş/atlanmış `baseUrl`, varsayılan OpenAI davranışını korur. -- `models.providers.*.models.*.compat.requiresStringContent`: yalnızca dize kabul eden OpenAI uyumlu sohbet uç noktaları için isteğe bağlı uyumluluk ipucu. `true` olduğunda OpenClaw, saf metin `messages[].content` dizilerini göndermeden önce düz dizelere indirger. -- `plugins.entries.amazon-bedrock.config.discovery`: Bedrock otomatik keşif ayarları kökü. +- `models.providers.*.models.*.contextTokens`: isteğe bağlı çalışma zamanı bağlam sınırı. Modelin yerel `contextWindow` değerinden daha küçük etkin bağlam bütçesi istediğinizde bunu kullanın. +- `models.providers.*.models.*.compat.supportsDeveloperRole`: isteğe bağlı uyumluluk ipucu. `api: "openai-completions"` ve boş olmayan yerel olmayan `baseUrl` (host `api.openai.com` değil) için OpenClaw bunu çalışma zamanında zorla `false` yapar. Boş/atlanmış `baseUrl`, varsayılan OpenAI davranışını korur. +- `models.providers.*.models.*.compat.requiresStringContent`: yalnızca dize kabul eden OpenAI uyumlu sohbet uç noktaları için isteğe bağlı uyumluluk ipucu. `true` olduğunda OpenClaw, isteği göndermeden önce yalnızca metin içeren `messages[].content` dizilerini düz dizelere indirger. +- `plugins.entries.amazon-bedrock.config.discovery`: Bedrock otomatik keşif ayarlarının kökü. - `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ı provider-id filtresi. -- `plugins.entries.amazon-bedrock.config.discovery.refreshInterval`: keşif yenileme için yoklama aralığı. +- `plugins.entries.amazon-bedrock.config.discovery.providerFilter`: hedeflenmiş keşif için isteğe bağlı provider-id 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ı tokenı. +- `plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens`: keşfedilen modeller için geri dönüş azami çıktı token sayısı. ### Sağlayıcı örnekleri @@ -2460,7 +2449,7 @@ OpenClaw yerleşik model kataloğunu kullanır. `models.providers` üzerinden ya } ``` -Cerebras için `cerebras/zai-glm-4.7`; Z.AI doğrudan için `zai/glm-4.7` kullanın. +Cerebras için `cerebras/zai-glm-4.7`; doğrudan Z.AI için `zai/glm-4.7` kullanın. @@ -2477,7 +2466,7 @@ Cerebras için `cerebras/zai-glm-4.7`; Z.AI doğrudan için `zai/glm-4.7` kullan } ``` -`OPENCODE_API_KEY` (veya `OPENCODE_ZEN_API_KEY`) ayarlayın. Zen kataloğu için `opencode/...` referanslarını veya Go kataloğu için `opencode-go/...` referanslarını kullanın. Kısayol: `openclaw onboard --auth-choice opencode-zen` veya `openclaw onboard --auth-choice opencode-go`. +`OPENCODE_API_KEY` (veya `OPENCODE_ZEN_API_KEY`) ayarlayın. Zen kataloğu için `opencode/...`, Go kataloğu için `opencode-go/...` başvurularını kullanın. Kısayol: `openclaw onboard --auth-choice opencode-zen` veya `openclaw onboard --auth-choice opencode-go`. @@ -2498,7 +2487,7 @@ Cerebras için `cerebras/zai-glm-4.7`; Z.AI doğrudan için `zai/glm-4.7` kullan - Genel uç nokta: `https://api.z.ai/api/paas/v4` - Kodlama uç noktası (varsayılan): `https://api.z.ai/api/coding/paas/v4` -- Genel uç nokta için base URL geçersiz kılmalı özel sağlayıcı tanımlayın. +- Genel uç nokta için base URL geçersiz kılmasıyla özel bir sağlayıcı tanımlayın. @@ -2540,8 +2529,8 @@ Cerebras için `cerebras/zai-glm-4.7`; Z.AI doğrudan için `zai/glm-4.7` kullan Ç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` taşımasında akış kullanım uyumluluğu ilan eder ve OpenClaw, -bunu yalnızca yerleşik sağlayıcı kimliğine değil uç nokta yeteneklerine göre anahtarlayarak işler. +`openai-completions` taşıması üzerinde akış kullanımı uyumluluğunu bildirir ve OpenClaw bunu yalnızca yerleşik sağlayıcı kimliğine göre değil +uç nokta yeteneklerine göre anahtarlar. @@ -2563,7 +2552,7 @@ Anthropic uyumlu, yerleşik sağlayıcı. Kısayol: `openclaw onboard --auth-cho - + ```json5 { @@ -2642,16 +2631,14 @@ Base URL `/v1` içermemelidir (Anthropic istemcisi bunu ekler). Kısayol: `openc `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 OpenClaw, siz açıkça `thinking` -ayarlamadığınız sürece MiniMax thinking'i varsayılan olarak devre dışı bırakır. `/fast on` veya -`params.fastMode: true`, `MiniMax-M2.7` değerini +Anthropic uyumlu akış yolunda OpenClaw, `thinking` değerini açıkça kendiniz ayarlamadığınız sürece MiniMax düşünmesini varsayılan olarak devre dışı bırakır. `/fast on` veya `params.fastMode: true`, `MiniMax-M2.7` modelini `MiniMax-M2.7-highspeed` olarak yeniden yazar. -Bkz. [Local Models](/tr/gateway/local-models). Kısacası: güçlü donanımda LM Studio Responses API üzerinden büyük bir yerel model çalıştırın; geri dönüş için barındırılan modelleri birleştirilmiş tutun. +Bkz. [Local Models](/tr/gateway/local-models). Kısaca: ciddi donanım üzerinde LM Studio Responses API ile büyük bir yerel model çalıştırın; geri dönüş için barındırılan modelleri birleşik tutun. @@ -2672,7 +2659,7 @@ Bkz. [Local Models](/tr/gateway/local-models). Kısacası: güçlü donanımda L }, entries: { "image-lab": { - apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, // veya düz metin dize + apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, // veya düz metin dizesi env: { GEMINI_API_KEY: "GEMINI_KEY_HERE" }, }, peekaboo: { enabled: true }, @@ -2682,14 +2669,14 @@ Bkz. [Local Models](/tr/gateway/local-models). Kısacası: güçlü donanımda L } ``` -- `allowBundled`: yalnızca paketlenmiş skills için isteğe bağlı izin listesi (yönetilen/çalışma alanı skills etkilenmez). +- `allowBundled`: yalnızca paketlenmiş Skills için isteğe bağlı izin listesi (yönetilen/workspace Skills etkilenmez). - `load.extraDirs`: ek paylaşılan skill kökleri (en düşük öncelik). -- `install.preferBrew`: `brew` mevcut olduğunda diğer yükleyici türlerine geri dönmeden önce - Homebrew yükleyicilerini tercih eder. +- `install.preferBrew`: `true` olduğunda ve `brew` + kullanılabiliyorsa, diğer yükleyici türlerine geri dönmeden önce Homebrew yükleyicilerini tercih eder. - `install.nodeManager`: `metadata.openclaw.install` - tanımları için node yükleyici tercihi (`npm` | `pnpm` | `yarn` | `bun`). -- `entries..enabled: false`, bir skill'i paketlenmiş/kurulu olsa bile devre dışı bırakır. -- `entries..apiKey`: birincil env değişkeni bildiren skills için kolaylık alanı (düz metin dize veya SecretRef nesnesi). + özellikleri için node yükleyici tercihi (`npm` | `pnpm` | `yarn` | `bun`). +- `entries..enabled: false`, bir skill paketlenmiş/kurulu olsa bile onu devre dışı bırakır. +- `entries..apiKey`: birincil ortam değişkeni tanımlayan Skills için kolaylık sağlar (düz metin dizesi veya SecretRef nesnesi). --- @@ -2718,9 +2705,996 @@ Bkz. [Local Models](/tr/gateway/local-models). Kısacası: güçlü donanımda L ``` - `~/.openclaw/extensions`, `/.openclaw/extensions` ve `plugins.load.paths` içinden yüklenir. -- Keşif, yerel OpenClaw eklentilerini ve uyumlu Codex paketlerini ve Claude paketlerini, manifest'siz Claude varsayılan düzen paketleri dahil olacak şekilde kabul eder. +- Keşif; yerel OpenClaw eklentilerini, uyumlu Codex paketlerini ve manifest'siz Claude varsayılan düzen paketleri dahil uyumlu Claude paketlerini kabul eder. - **Yapılandırma değişiklikleri gateway yeniden başlatması gerektirir.** - `allow`: isteğe bağlı izin listesi (yalnızca listelenen eklentiler yüklenir). `deny` kazanır. -- `plugins.entries..apiKey`: eklenti düzeyi API anahtarı kolaylık alanı (eklenti destekliyorsa). -- `plugins.entries..env`: eklenti kapsamlı env değişken eşlemesi. -- `plugins.entries..hooks.allowPromptInjection`: `false` olduğunda çekirdek `before_prompt_build` işlemini engeller ve eski `before_agent_start` içindeki istem değiştiren alanları yok sayar, ancak eski `modelOverride` ve `providerOverride` değerlerini korur. Yerel \ No newline at end of file +- `plugins.entries..apiKey`: eklenti düzeyinde API anahtarı kolaylık alanı (eklenti destekliyorsa). +- `plugins.entries..env`: eklenti kapsamlı ortam değişkeni eşlemesi. +- `plugins.entries..hooks.allowPromptInjection`: `false` olduğunda çekirdek, `before_prompt_build` işlemini engeller ve eski `before_agent_start` içindeki istem değiştirici alanları yok sayar; eski `modelOverride` ve `providerOverride` korunur. Yerel eklenti hook'larına ve desteklenen paket tarafından sağlanan hook dizinlerine uygulanır. +- `plugins.entries..subagent.allowModelOverride`: bu eklentiye arka plan alt ajan çalıştırmaları için çalışma başına `provider` ve `model` geçersiz kılmaları isteme konusunda açıkça güven. +- `plugins.entries..subagent.allowedModels`: güvenilen alt ajan geçersiz kılmaları için isteğe bağlı standart `provider/model` hedef izin listesi. Yalnızca herhangi bir modele izin vermek istediğinizde `"*"` kullanın. +- `plugins.entries..config`: eklenti tanımlı yapılandırma nesnesi (mevcutsa yerel OpenClaw eklenti şemasıyla doğrulanır). +- `plugins.entries.firecrawl.config.webFetch`: Firecrawl web-fetch sağlayıcı ayarları. + - `apiKey`: Firecrawl API anahtarı (SecretRef kabul eder). `plugins.entries.firecrawl.config.webSearch.apiKey`, eski `tools.web.fetch.firecrawl.apiKey` veya `FIRECRAWL_API_KEY` ortam değişkenine geri döner. + - `baseUrl`: Firecrawl API base URL'si (varsayılan: `https://api.firecrawl.dev`). + - `onlyMainContent`: sayfalardan yalnızca ana içeriği çıkar (varsayılan: `true`). + - `maxAgeMs`: en yüksek önbellek yaşı, milisaniye cinsinden (varsayılan: `172800000` / 2 gün). + - `timeoutSeconds`: scrape isteği zaman aşımı, saniye cinsinden (varsayılan: `60`). +- `plugins.entries.xai.config.xSearch`: xAI X Search (Grok web search) ayarları. + - `enabled`: X Search sağlayıcısını etkinleştir. + - `model`: arama için kullanılacak Grok modeli (örn. `"grok-4-1-fast"`). +- `plugins.entries.memory-core.config.dreaming`: memory dreaming (deneysel) ayarları. Fazlar ve eşikler için bkz. [Dreaming](/tr/concepts/dreaming). + - `enabled`: ana dreaming anahtarı (varsayılan `false`). + - `frequency`: her tam dreaming taraması için cron sıklığı (varsayılan olarak `"0 3 * * *"`). + - faz ilkesi ve eşikler uygulama ayrıntılarıdır (kullanıcıya dönük yapılandırma anahtarları değildir). +- Tam bellek yapılandırması [Bellek yapılandırma başvurusu](/tr/reference/memory-config) içinde yer alır: + - `agents.defaults.memorySearch.*` + - `memory.backend` + - `memory.citations` + - `memory.qmd.*` + - `plugins.entries.memory-core.config.dreaming` +- Etkin Claude paket eklentileri, `settings.json` içinden gömülü Pi varsayılanları da katkıda bulunabilir; OpenClaw bunları ham OpenClaw yapılandırma yamaları olarak değil, temizlenmiş ajan ayarları olarak uygular. +- `plugins.slots.memory`: etkin bellek eklentisi kimliğini seçin veya bellek eklentilerini devre dışı bırakmak için `"none"` kullanın. +- `plugins.slots.contextEngine`: etkin context engine eklentisi kimliğini seçin; başka bir motor kurup seçmediğiniz sürece varsayılan `"legacy"` olur. +- `plugins.installs`: `openclaw plugins update` tarafından kullanılan CLI yönetimli kurulum meta verileri. + - `source`, `spec`, `sourcePath`, `installPath`, `version`, `resolvedName`, `resolvedVersion`, `resolvedSpec`, `integrity`, `shasum`, `resolvedAt`, `installedAt` içerir. + - `plugins.installs.*` alanlarını yönetilen durum olarak değerlendirin; el ile düzenleme yerine CLI komutlarını tercih edin. + +Bkz. [Plugins](/tr/tools/plugin). + +--- + +## Tarayıcı + +```json5 +{ + browser: { + enabled: true, + evaluateEnabled: true, + defaultProfile: "user", + ssrfPolicy: { + dangerouslyAllowPrivateNetwork: true, // varsayılan güvenilen-ağ modu + // allowPrivateNetwork: true, // eski takma ad + // hostnameAllowlist: ["*.example.com", "example.com"], + // allowedHostnames: ["localhost"], + }, + profiles: { + openclaw: { cdpPort: 18800, color: "#FF4500" }, + work: { cdpPort: 18801, color: "#0066CC" }, + user: { driver: "existing-session", attachOnly: true, color: "#00AA00" }, + brave: { + driver: "existing-session", + attachOnly: true, + userDataDir: "~/Library/Application Support/BraveSoftware/Brave-Browser", + color: "#FB542B", + }, + remote: { cdpUrl: "http://10.0.0.42:9222", color: "#00AA00" }, + }, + color: "#FF4500", + // headless: false, + // noSandbox: false, + // extraArgs: [], + // executablePath: "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser", + // attachOnly: false, + }, +} +``` + +- `evaluateEnabled: false`, `act:evaluate` ve `wait --fn` özelliklerini devre dışı bırakır. +- `ssrfPolicy.dangerouslyAllowPrivateNetwork`, ayarlanmamışsa varsayılan olarak `true` olur (güvenilen-ağ modeli). +- Katı yalnızca-genel tarayıcı gezintisi için `ssrfPolicy.dangerouslyAllowPrivateNetwork: false` ayarlayın. +- Katı modda, uzak CDP profil uç noktaları (`profiles.*.cdpUrl`) da erişilebilirlik/keşif denetimleri sırasında aynı özel ağ engellemesine tabidir. +- `ssrfPolicy.allowPrivateNetwork` eski takma ad olarak desteklenmeye devam eder. +- Katı modda, açık istisnalar için `ssrfPolicy.hostnameAllowlist` ve `ssrfPolicy.allowedHostnames` kullanın. +- Uzak profiller yalnızca bağlanma modundadır (başlat/durdur/sıfırla devre dışı). +- `profiles.*.cdpUrl`, `http://`, `https://`, `ws://` ve `wss://` kabul eder. + OpenClaw'un `/json/version` keşfetmesini istediğinizde HTTP(S) kullanın; sağlayıcınız doğrudan bir DevTools WebSocket URL'si veriyorsa WS(S) + kullanın. +- `existing-session` profilleri yalnızca ana makine içindir ve CDP yerine Chrome MCP kullanır. +- `existing-session` profilleri, Brave veya Edge gibi belirli bir + Chromium tabanlı tarayıcı profilini hedeflemek için `userDataDir` ayarlayabilir. +- `existing-session` profilleri, mevcut Chrome MCP yol sınırlamalarını korur: + CSS seçici hedefleme yerine snapshot/ref tabanlı eylemler, tek dosya yükleme + hook'ları, iletişim kutusu zaman aşımı geçersiz kılmaları yok, `wait --load networkidle` yok ve + `responsebody`, PDF dışa aktarma, indirme yakalama veya toplu eylemler yok. +- Yerel yönetilen `openclaw` profilleri `cdpPort` ve `cdpUrl` değerlerini otomatik atar; yalnızca + uzak CDP için `cdpUrl` değerini açıkça ayarlayın. +- Otomatik algılama sırası: varsayılan tarayıcı Chromium tabanlıysa → Chrome → Brave → Edge → Chromium → Chrome Canary. +- Kontrol hizmeti: yalnızca loopback (port `gateway.port` değerinden türetilir, varsayılan `18791`). +- `extraArgs`, yerel Chromium başlatmasına ek başlatma bayrakları ekler (örneğin + `--disable-gpu`, pencere boyutlandırma veya hata ayıklama bayrakları). + +--- + +## UI + +```json5 +{ + ui: { + seamColor: "#FF4500", + assistant: { + name: "OpenClaw", + avatar: "CB", // emoji, kısa metin, görüntü URL'si veya data URI + }, + }, +} +``` + +- `seamColor`: yerel uygulama UI chrome için vurgu rengi (Talk Mode baloncuk tonu vb.). +- `assistant`: Control UI kimlik geçersiz kılması. Etkin ajan kimliğine geri döner. + +--- + +## Gateway + +```json5 +{ + gateway: { + mode: "local", // local | remote + port: 18789, + bind: "loopback", + auth: { + mode: "token", // none | token | password | trusted-proxy + token: "your-token", + // password: "your-password", // veya OPENCLAW_GATEWAY_PASSWORD + // trustedProxy: { userHeader: "x-forwarded-user" }, // mode=trusted-proxy için; bkz. /gateway/trusted-proxy-auth + allowTailscale: true, + rateLimit: { + maxAttempts: 10, + windowMs: 60000, + lockoutMs: 300000, + exemptLoopback: true, + }, + }, + tailscale: { + mode: "off", // off | serve | funnel + resetOnExit: false, + }, + controlUi: { + enabled: true, + basePath: "/openclaw", + // root: "dist/control-ui", + // allowedOrigins: ["https://control.example.com"], // loopback olmayan Control UI için zorunlu + // dangerouslyAllowHostHeaderOriginFallback: false, // tehlikeli Host-header origin fallback modu + // allowInsecureAuth: false, + // dangerouslyDisableDeviceAuth: false, + }, + remote: { + url: "ws://gateway.tailnet:18789", + transport: "ssh", // ssh | direct + token: "your-token", + // password: "your-password", + }, + trustedProxies: ["10.0.0.1"], + // İsteğe bağlı. Varsayılan false. + allowRealIpFallback: false, + tools: { + // Ek /tools/invoke HTTP reddetmeleri + deny: ["browser"], + // Varsayılan HTTP reddetme listesinden araçları kaldır + allow: ["gateway"], + }, + push: { + apns: { + relay: { + baseUrl: "https://relay.example.com", + timeoutMs: 10000, + }, + }, + }, + }, +} +``` + + + +- `mode`: `local` (gateway'yi çalıştır) veya `remote` (uzak gateway'ye bağlan). Gateway, `local` olmadıkça başlatılmayı reddeder. +- `port`: WS + HTTP için tek çoklanmış port. Öncelik: `--port` > `OPENCLAW_GATEWAY_PORT` > `gateway.port` > `18789`. +- `bind`: `auto`, `loopback` (varsayılan), `lan` (`0.0.0.0`), `tailnet` (yalnızca Tailscale IP) veya `custom`. +- **Eski bind takma adları**: `gateway.bind` içinde host takma adlarını (`0.0.0.0`, `127.0.0.1`, `localhost`, `::`, `::1`) değil, bind modu değerlerini (`auto`, `loopback`, `lan`, `tailnet`, `custom`) kullanın. +- **Docker notu**: varsayılan `loopback` bind, kapsayıcı içinde `127.0.0.1` üzerinde dinler. Docker bridge ağıyla (`-p 18789:18789`) trafik `eth0` üzerinden gelir, bu yüzden gateway erişilemez olur. `--network host` kullanın veya tüm arayüzlerde dinlemek için `bind: "lan"` (ya da `customBindHost: "0.0.0.0"` ile `bind: "custom"`) ayarlayın. +- **Kimlik doğrulama**: varsayılan olarak gereklidir. Loopback dışı bind'ler gateway kimlik doğrulaması gerektirir. Pratikte bu, paylaşılan bir token/parola veya `gateway.auth.mode: "trusted-proxy"` kullanan kimlik farkında bir ters proxy anlamına gelir. Onboarding sihirbazı varsayılan olarak bir token üretir. +- Hem `gateway.auth.token` hem de `gateway.auth.password` yapılandırılmışsa (SecretRef dahil), `gateway.auth.mode` değerini açıkça `token` veya `password` olarak ayarlayın. Her ikisi yapılandırılmış ve mod ayarlanmamışsa başlatma ile hizmet kurulum/onarma akışları başarısız olur. +- `gateway.auth.mode: "none"`: açık no-auth modu. Bunu yalnızca güvenilen yerel loopback kurulumlarında kullanın; onboarding istemlerinde bilerek sunulmaz. +- `gateway.auth.mode: "trusted-proxy"`: kimlik doğrulamayı kimlik farkında bir ters proxy'ye devredin ve `gateway.trustedProxies` içinden gelen kimlik üst bilgilerine güvenin (bkz. [Trusted Proxy Auth](/tr/gateway/trusted-proxy-auth)). Bu mod **loopback olmayan** bir proxy kaynağı bekler; aynı ana makinedeki loopback ters proxy'ler trusted-proxy kimlik doğrulamasını karşılamaz. +- `gateway.auth.allowTailscale`: `true` olduğunda Tailscale Serve kimlik üst bilgileri, Control UI/WebSocket kimlik doğrulamasını karşılayabilir (`tailscale whois` ile doğrulanır). HTTP API uç noktaları bu Tailscale üst bilgi kimlik doğrulamasını **kullanmaz**; bunun yerine gateway'nin normal HTTP kimlik doğrulama modunu izler. Bu tokensız akış, gateway ana makinesinin güvenilir olduğunu varsayar. `tailscale.mode = "serve"` olduğunda varsayılan olarak `true` olur. +- `gateway.auth.rateLimit`: isteğe bağlı başarısız kimlik doğrulama sınırlayıcısı. İstemci IP'si ve auth scope başına uygulanır (paylaşılan gizli anahtar ve device-token ayrı ayrı izlenir). Engellenen denemeler `429` + `Retry-After` döndürür. + - Async Tailscale Serve Control UI yolunda, aynı `{scope, clientIp}` için başarısız denemeler, başarısızlık yazımından önce seri hale getirilir. Bu nedenle aynı istemciden eşzamanlı kötü denemeler, ikisinin de düz uyumsuzluk olarak geçmesi yerine ikinci istekte sınırlayıcıyı tetikleyebilir. + - `gateway.auth.rateLimit.exemptLoopback` varsayılan olarak `true` olur; localhost trafiğinin de rate-limit uygulanmasını özellikle istiyorsanız (`test` kurulumları veya katı proxy dağıtımları için) `false` ayarlayın. +- Tarayıcı kaynaklı WS kimlik doğrulama denemeleri, loopback muafiyeti devre dışı olacak şekilde her zaman kısıtlanır (tarayıcı tabanlı localhost kaba kuvvet saldırılarına karşı ek savunma). +- Loopback üzerinde, bu tarayıcı kaynaklı kilitlemeler normalize edilmiş `Origin` + değeri başına yalıtılır; böylece bir localhost origin'inden tekrarlanan hatalar, + farklı bir origin'i otomatik olarak kilitlemez. +- `tailscale.mode`: `serve` (yalnızca tailnet, loopback bind) veya `funnel` (genel, kimlik doğrulama gerektirir). +- `controlUi.allowedOrigins`: Gateway WebSocket bağlantıları için açık tarayıcı origin izin listesi. Tarayıcı istemcilerinin loopback olmayan origin'lerden gelmesi beklendiğinde gereklidir. +- `controlUi.dangerouslyAllowHostHeaderOriginFallback`: Host-header origin ilkesine bilerek dayanan dağıtımlar için Host-header origin fallback'i etkinleştiren tehlikeli mod. +- `remote.transport`: `ssh` (varsayılan) veya `direct` (ws/wss). `direct` için `remote.url`, `ws://` veya `wss://` olmalıdır. +- `OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1`: güvenilen özel ağ IP'lerine düz metin `ws://` erişimine izin veren istemci taraflı acil durum geçersiz kılmasıdır; düz metin için varsayılan yine yalnızca loopback olmaya devam eder. +- `gateway.remote.token` / `.password`, uzak istemci kimlik bilgisi alanlarıdır. Bunlar tek başına gateway kimlik doğrulamasını yapılandırmaz. +- `gateway.push.apns.relay.baseUrl`: resmi/TestFlight iOS sürümleri relay destekli kayıtları gateway'ye yayımladıktan sonra kullanılan harici APNs relay için temel HTTPS URL'si. Bu URL, iOS sürümüne derlenmiş relay URL'siyle eşleşmelidir. +- `gateway.push.apns.relay.timeoutMs`: gateway'den relay'e gönderim zaman aşımı, milisaniye cinsinden. Varsayılan `10000`. +- Relay destekli kayıtlar belirli bir gateway kimliğine devredilir. Eşlenmiş iOS uygulaması `gateway.identity.get` çağrısını alır, bu kimliği relay kaydına dahil eder ve kayıt kapsamlı bir gönderim iznini gateway'ye iletir. Başka bir gateway bu saklanan kaydı yeniden kullanamaz. +- `OPENCLAW_APNS_RELAY_BASE_URL` / `OPENCLAW_APNS_RELAY_TIMEOUT_MS`: yukarıdaki relay yapılandırması için geçici env geçersiz kılmaları. +- `OPENCLAW_APNS_RELAY_ALLOW_HTTP=true`: loopback HTTP relay URL'leri için yalnızca geliştirme amaçlı kaçış kapağı. Üretim relay URL'leri HTTPS üzerinde kalmalıdır. +- `gateway.channelHealthCheckMinutes`: kanal sağlık izleme aralığı, dakika cinsinden. Sağlık izleyici yeniden başlatmalarını genel olarak devre dışı bırakmak için `0` ayarlayın. Varsayılan: `5`. +- `gateway.channelStaleEventThresholdMinutes`: bayat soket eşiği, dakika cinsinden. Bunu `gateway.channelHealthCheckMinutes` değerine eşit veya ondan büyük tutun. Varsayılan: `30`. +- `gateway.channelMaxRestartsPerHour`: kayan bir saat içinde kanal/hesap başına en yüksek sağlık izleyici yeniden başlatma sayısı. Varsayılan: `10`. +- `channels..healthMonitor.enabled`: genel izleyiciyi etkin tutarken sağlık izleyici yeniden başlatmalarından kanal başına çıkış. +- `channels..accounts..healthMonitor.enabled`: çok hesaplı kanallar için hesap başına geçersiz kılma. Ayarlandığında kanal düzeyi geçersiz kılmadan önceliklidir. +- Yerel gateway çağrı yolları, yalnızca `gateway.auth.*` ayarlanmamışsa geri dönüş olarak `gateway.remote.*` kullanabilir. +- `gateway.auth.token` / `gateway.auth.password` SecretRef ile açıkça yapılandırılmış ancak çözümlenmemişse, çözümleme fail-closed olarak başarısız olur (uzak geri dönüş bunu maskeleyemez). +- `trustedProxies`: TLS sonlandıran veya iletilmiş istemci üst bilgileri ekleyen ters proxy IP'leri. Yalnızca denetlediğiniz proxy'leri listeleyin. Loopback girdileri, aynı ana makinedeki proxy/yerel algılama kurulumları için yine geçerlidir (örneğin Tailscale Serve veya yerel ters proxy), ancak loopback isteklerini `gateway.auth.mode: "trusted-proxy"` için uygun hale **getirmez**. +- `allowRealIpFallback`: `true` olduğunda gateway, `X-Forwarded-For` eksikse `X-Real-IP` kabul eder. Fail-closed davranış için varsayılan `false`. +- `gateway.tools.deny`: HTTP `POST /tools/invoke` için engellenen ek araç adlarıdır (varsayılan reddetme listesini genişletir). +- `gateway.tools.allow`: varsayılan HTTP reddetme listesinden araç adlarını kaldırır. + + + +### OpenAI uyumlu uç noktalar + +- Chat Completions: varsayılan olarak devre dışıdır. `gateway.http.endpoints.chatCompletions.enabled: true` ile etkinleştirin. +- Responses API: `gateway.http.endpoints.responses.enabled`. +- Responses URL girdi sertleştirmesi: + - `gateway.http.endpoints.responses.maxUrlParts` + - `gateway.http.endpoints.responses.files.urlAllowlist` + - `gateway.http.endpoints.responses.images.urlAllowlist` + Boş izin listeleri ayarlanmamış kabul edilir; URL getirmeyi devre dışı bırakmak için + `gateway.http.endpoints.responses.files.allowUrl=false` + ve/veya `gateway.http.endpoints.responses.images.allowUrl=false` kullanın. +- İsteğe bağlı yanıt sertleştirme üst bilgisi: + - `gateway.http.securityHeaders.strictTransportSecurity` (yalnızca denetlediğiniz HTTPS origin'leri için ayarlayın; bkz. [Trusted Proxy Auth](/tr/gateway/trusted-proxy-auth#tls-termination-and-hsts)) + +### Çok örnekli yalıtım + +Tek bir ana makinede benzersiz portlar ve durum dizinleriyle birden fazla gateway çalıştırın: + +```bash +OPENCLAW_CONFIG_PATH=~/.openclaw/a.json \ +OPENCLAW_STATE_DIR=~/.openclaw-a \ +openclaw gateway --port 19001 +``` + +Kolaylık bayrakları: `--dev` (`~/.openclaw-dev` + port `19001` kullanır), `--profile ` (`~/.openclaw-` kullanır). + +Bkz. [Multiple Gateways](/tr/gateway/multiple-gateways). + +### `gateway.tls` + +```json5 +{ + gateway: { + tls: { + enabled: false, + autoGenerate: false, + certPath: "/etc/openclaw/tls/server.crt", + keyPath: "/etc/openclaw/tls/server.key", + caPath: "/etc/openclaw/tls/ca-bundle.crt", + }, + }, +} +``` + +- `enabled`: gateway dinleyicisinde TLS sonlandırmasını (HTTPS/WSS) etkinleştirir (varsayılan: `false`). +- `autoGenerate`: açık dosyalar yapılandırılmadığında yerel self-signed cert/key çifti otomatik oluşturur; yalnızca yerel/dev kullanım içindir. +- `certPath`: TLS sertifika dosyasının dosya sistemi yolu. +- `keyPath`: TLS özel anahtar dosyasının dosya sistemi yolu; izinleri kısıtlı tutun. +- `caPath`: istemci doğrulaması veya özel güven zincirleri için isteğe bağlı CA paketi yolu. + +### `gateway.reload` + +```json5 +{ + gateway: { + reload: { + mode: "hybrid", // off | restart | hot | hybrid + debounceMs: 500, + deferralTimeoutMs: 300000, + }, + }, +} +``` + +- `mode`: yapılandırma düzenlemelerinin çalışma zamanında nasıl uygulanacağını denetler. + - `"off"`: canlı düzenlemeleri yok say; değişiklikler açık bir yeniden başlatma gerektirir. + - `"restart"`: yapılandırma değiştiğinde her zaman gateway sürecini yeniden başlat. + - `"hot"`: yeniden başlatmadan değişiklikleri süreç içinde uygula. + - `"hybrid"` (varsayılan): önce hot reload dene; gerekirse restart'a geri dön. +- `debounceMs`: yapılandırma değişiklikleri uygulanmadan önce ms cinsinden debounce penceresi (negatif olmayan tamsayı). +- `deferralTimeoutMs`: yeniden başlatmayı zorlamadan önce devam eden işlemlerin tamamlanmasını beklemek için en yüksek süre, ms cinsinden (varsayılan: `300000` = 5 dakika). + +--- + +## Hook'lar + +```json5 +{ + hooks: { + enabled: true, + token: "shared-secret", + path: "/hooks", + maxBodyBytes: 262144, + defaultSessionKey: "hook:ingress", + allowRequestSessionKey: false, + allowedSessionKeyPrefixes: ["hook:"], + allowedAgentIds: ["hooks", "main"], + presets: ["gmail"], + transformsDir: "~/.openclaw/hooks/transforms", + mappings: [ + { + match: { path: "gmail" }, + action: "agent", + agentId: "hooks", + wakeMode: "now", + name: "Gmail", + sessionKey: "hook:gmail:{{messages[0].id}}", + messageTemplate: "From: {{messages[0].from}}\nSubject: {{messages[0].subject}}\n{{messages[0].snippet}}", + deliver: true, + channel: "last", + model: "openai/gpt-5.4-mini", + }, + ], + }, +} +``` + +Kimlik doğrulama: `Authorization: Bearer ` veya `x-openclaw-token: `. +Sorgu dizesi hook token'ları reddedilir. + +Doğrulama ve güvenlik notları: + +- `hooks.enabled=true` için boş olmayan bir `hooks.token` gerekir. +- `hooks.token`, `gateway.auth.token` değerinden **farklı** olmalıdır; aynı Gateway token'ını yeniden kullanmak reddedilir. +- `hooks.path`, `/` olamaz; `/hooks` gibi özel bir alt yol kullanın. +- `hooks.allowRequestSessionKey=true` ise `hooks.allowedSessionKeyPrefixes` değerini sınırlayın (örneğin `["hook:"]`). + +**Uç noktalar:** + +- `POST /hooks/wake` → `{ text, mode?: "now"|"next-heartbeat" }` +- `POST /hooks/agent` → `{ message, name?, agentId?, sessionKey?, wakeMode?, deliver?, channel?, to?, model?, thinking?, timeoutSeconds? }` + - İstek yükündeki `sessionKey`, yalnızca `hooks.allowRequestSessionKey=true` olduğunda kabul edilir (varsayılan: `false`). +- `POST /hooks/` → `hooks.mappings` üzerinden çözülür + + + +- `match.path`, `/hooks` sonrasındaki alt yolu eşleştirir (ör. `/hooks/gmail` → `gmail`). +- `match.source`, genel yollar için bir yük alanını eşleştirir. +- `{{messages[0].subject}}` gibi şablonlar yükten okunur. +- `transform`, bir hook eylemi döndüren JS/TS modülünü işaret edebilir. + - `transform.module` göreli bir yol olmalıdır ve `hooks.transformsDir` içinde kalır (mutlak yollar ve dizin gezintisi reddedilir). +- `agentId`, belirli bir ajana yönlendirir; bilinmeyen kimlikler varsayılan ajana geri döner. +- `allowedAgentIds`: açık yönlendirmeyi kısıtlar (`*` veya atlanmış = hepsine izin ver, `[]` = hepsini reddet). +- `defaultSessionKey`: açık `sessionKey` olmadan hook ajan çalıştırmaları için isteğe bağlı sabit oturum anahtarı. +- `allowRequestSessionKey`: `/hooks/agent` çağıranlarının `sessionKey` ayarlamasına izin verir (varsayılan: `false`). +- `allowedSessionKeyPrefixes`: açık `sessionKey` değerleri için isteğe bağlı önek izin listesi (istek + eşleme), ör. `["hook:"]`. +- `deliver: true`, son yanıtı bir kanala gönderir; `channel` varsayılan olarak `last` olur. +- `model`, bu hook çalıştırması için LLM'i geçersiz kılar (model kataloğu ayarlıysa izinli olmalıdır). + + + +### Gmail entegrasyonu + +```json5 +{ + hooks: { + gmail: { + account: "openclaw@gmail.com", + topic: "projects//topics/gog-gmail-watch", + subscription: "gog-gmail-watch-push", + pushToken: "shared-push-token", + hookUrl: "http://127.0.0.1:18789/hooks/gmail", + includeBody: true, + maxBytes: 20000, + renewEveryMinutes: 720, + serve: { bind: "127.0.0.1", port: 8788, path: "/" }, + tailscale: { mode: "funnel", path: "/gmail-pubsub" }, + model: "openrouter/meta-llama/llama-3.3-70b-instruct:free", + thinking: "off", + }, + }, +} +``` + +- Gateway, yapılandırıldığında açılışta `gog gmail watch serve` işlemini otomatik başlatır. Devre dışı bırakmak için `OPENCLAW_SKIP_GMAIL_WATCHER=1` ayarlayın. +- Gateway ile birlikte ayrı bir `gog gmail watch serve` çalıştırmayın. + +--- + +## Canvas host + +```json5 +{ + canvasHost: { + root: "~/.openclaw/workspace/canvas", + liveReload: true, + // enabled: false, // veya OPENCLAW_SKIP_CANVAS_HOST=1 + }, +} +``` + +- Ajan tarafından düzenlenebilir HTML/CSS/JS ve A2UI'yi Gateway portu altında HTTP üzerinden sunar: + - `http://:/__openclaw__/canvas/` + - `http://:/__openclaw__/a2ui/` +- Yalnızca yerel: `gateway.bind: "loopback"` (varsayılan) olarak tutun. +- Loopback olmayan bind'lerde: canvas yolları, diğer Gateway HTTP yüzeyleri gibi Gateway kimlik doğrulaması gerektirir (token/password/trusted-proxy). +- Node WebView'lar genellikle kimlik doğrulama üst bilgileri göndermez; bir node eşleştirilip bağlandıktan sonra Gateway, canvas/A2UI erişimi için node kapsamlı capability URL'leri duyurur. +- Capability URL'leri etkin node WS oturumuna bağlıdır ve kısa sürede sona erer. IP tabanlı geri dönüş kullanılmaz. +- Sunulan HTML içine canlı yeniden yükleme istemcisi ekler. +- Boş olduğunda başlangıç `index.html` dosyasını otomatik oluşturur. +- A2UI'yi ayrıca `/__openclaw__/a2ui/` altında sunar. +- Değişiklikler gateway yeniden başlatması gerektirir. +- Büyük dizinler veya `EMFILE` hataları için canlı yeniden yüklemeyi devre dışı bırakın. + +--- + +## Keşif + +### mDNS (Bonjour) + +```json5 +{ + discovery: { + mdns: { + mode: "minimal", // minimal | full | off + }, + }, +} +``` + +- `minimal` (varsayılan): TXT kayıtlarından `cliPath` + `sshPort` alanlarını çıkarır. +- `full`: `cliPath` + `sshPort` alanlarını içerir. +- Ana makine adı varsayılan olarak `openclaw` olur. `OPENCLAW_MDNS_HOSTNAME` ile geçersiz kılın. + +### Geniş alan (DNS-SD) + +```json5 +{ + discovery: { + wideArea: { enabled: true }, + }, +} +``` + +`~/.openclaw/dns/` altında bir unicast DNS-SD alanı yazar. Ağlar arası keşif için bunu bir DNS sunucusu (CoreDNS önerilir) + Tailscale split DNS ile eşleyin. + +Kurulum: `openclaw dns setup --apply`. + +--- + +## Ortam + +### `env` (satır içi ortam değişkenleri) + +```json5 +{ + env: { + OPENROUTER_API_KEY: "sk-or-...", + vars: { + GROQ_API_KEY: "gsk-...", + }, + shellEnv: { + enabled: true, + timeoutMs: 15000, + }, + }, +} +``` + +- Satır içi ortam değişkenleri yalnızca süreç ortamında anahtar eksikse uygulanır. +- `.env` dosyaları: geçerli çalışma dizini `.env` + `~/.openclaw/.env` (ikisi de mevcut değişkenleri geçersiz kılmaz). +- `shellEnv`: eksik beklenen anahtarları login shell profilinizden içe aktarır. +- Tam öncelik için bkz. [Environment](/tr/help/environment). + +### Ortam değişkeni yer değiştirmesi + +Herhangi bir yapılandırma dizesinde ortam değişkenlerine `${VAR_NAME}` ile başvurun: + +```json5 +{ + gateway: { + auth: { token: "${OPENCLAW_GATEWAY_TOKEN}" }, + }, +} +``` + +- Yalnızca şu desene uyan büyük harfli adlar eşleşir: `[A-Z_][A-Z0-9_]*`. +- Eksik/boş değişkenler yapılandırma yüklemede hata verir. +- Gerçek bir `${VAR}` için `$${VAR}` ile kaçış yapın. +- `$include` ile çalışır. + +--- + +## Secrets + +SecretRef'ler eklemelidir: düz metin değerler hâlâ çalışır. + +### `SecretRef` + +Tek bir nesne biçimi kullanın: + +```json5 +{ source: "env" | "file" | "exec", provider: "default", id: "..." } +``` + +Doğrulama: + +- `provider` deseni: `^[a-z][a-z0-9_-]{0,63}$` +- `source: "env"` için `id` deseni: `^[A-Z][A-Z0-9_]{0,127}$` +- `source: "file"` için `id`: mutlak JSON pointer (örneğin `"/providers/openai/apiKey"`) +- `source: "exec"` için `id` deseni: `^[A-Za-z0-9][A-Za-z0-9._:/-]{0,255}$` +- `source: "exec"` kimlikleri `.` veya `..` eğik çizgiyle ayrılmış yol segmentleri içermemelidir (örneğin `a/../b` reddedilir) + +### Desteklenen kimlik bilgisi yüzeyi + +- Standart matris: [SecretRef Credential Surface](/tr/reference/secretref-credential-surface) +- `secrets apply`, desteklenen `openclaw.json` kimlik bilgisi yollarını hedefler. +- `auth-profiles.json` başvuruları çalışma zamanı çözümlemesi ve denetim kapsamına dahildir. + +### Secret sağlayıcıları yapılandırması + +```json5 +{ + secrets: { + providers: { + default: { source: "env" }, // isteğe bağlı açık env sağlayıcısı + filemain: { + source: "file", + path: "~/.openclaw/secrets.json", + mode: "json", + timeoutMs: 5000, + }, + vault: { + source: "exec", + command: "/usr/local/bin/openclaw-vault-resolver", + passEnv: ["PATH", "VAULT_ADDR"], + }, + }, + defaults: { + env: "default", + file: "filemain", + exec: "vault", + }, + }, +} +``` + +Notlar: + +- `file` sağlayıcısı `mode: "json"` ve `mode: "singleValue"` destekler (`singleValue` modunda `id` değeri `"value"` olmalıdır). +- `exec` sağlayıcısı mutlak `command` yolu gerektirir ve stdin/stdout üzerinde protokol yükleri kullanır. +- Varsayılan olarak symlink komut yolları reddedilir. Çözümlenen hedef yolu doğrularken symlink yollarına izin vermek için `allowSymlinkCommand: true` ayarlayın. +- `trustedDirs` yapılandırılmışsa, trusted-dir denetimi çözümlenen hedef yola uygulanır. +- `exec` alt süreç ortamı varsayılan olarak minimumdur; gerekli değişkenleri `passEnv` ile açıkça geçirin. +- SecretRef'ler etkinleştirme sırasında bellek içi bir anlık görüntüye çözülür, ardından istek yolları yalnızca bu anlık görüntüyü okur. +- Etkin yüzey filtreleme etkinleştirme sırasında uygulanır: etkin yüzeylerde çözümlenmemiş başvurular başlatma/yeniden yüklemeyi başarısız kılar, etkin olmayan yüzeyler ise tanılarla birlikte atlanır. + +--- + +## Kimlik doğrulama deposu + +```json5 +{ + auth: { + profiles: { + "anthropic:default": { provider: "anthropic", mode: "api_key" }, + "anthropic:work": { provider: "anthropic", mode: "api_key" }, + "openai-codex:personal": { provider: "openai-codex", mode: "oauth" }, + }, + order: { + anthropic: ["anthropic:default", "anthropic:work"], + "openai-codex": ["openai-codex:personal"], + }, + }, +} +``` + +- Ajan başına profiller `/auth-profiles.json` içinde saklanır. +- `auth-profiles.json`, statik kimlik bilgisi modları için değer düzeyinde başvuruları (`api_key` için `keyRef`, `token` için `tokenRef`) destekler. +- OAuth modundaki profiller (`auth.profiles..mode = "oauth"`), SecretRef destekli auth-profile kimlik bilgilerini desteklemez. +- Statik çalışma zamanı kimlik bilgileri, çözülmüş bellek içi anlık görüntülerden gelir; eski statik `auth.json` girdileri bulunduğunda temizlenir. +- Eski OAuth içe aktarmaları `~/.openclaw/credentials/oauth.json` içinden yapılır. +- Bkz. [OAuth](/tr/concepts/oauth). +- Secrets çalışma zamanı davranışı ve `audit/configure/apply` araçları: [Secrets Management](/tr/gateway/secrets). + +### `auth.cooldowns` + +```json5 +{ + auth: { + cooldowns: { + billingBackoffHours: 5, + billingBackoffHoursByProvider: { anthropic: 3, openai: 8 }, + billingMaxHours: 24, + authPermanentBackoffMinutes: 10, + authPermanentMaxMinutes: 60, + failureWindowHours: 24, + overloadedProfileRotations: 1, + overloadedBackoffMs: 0, + rateLimitedProfileRotations: 1, + }, + }, +} +``` + +- `billingBackoffHours`: bir profil gerçek + faturalama/yetersiz kredi hataları nedeniyle başarısız olduğunda saat cinsinden temel geri çekilme süresi (varsayılan: `5`). Açık faturalama metni, + `401`/`403` yanıtlarında bile buraya düşebilir, ancak sağlayıcıya özgü metin + eşleyicileri bunların sahibi olan sağlayıcıyla sınırlı kalır (örneğin OpenRouter + `Key limit exceeded`). Yeniden denenebilir HTTP `402` kullanım penceresi veya + organizasyon/workspace harcama sınırı mesajları bunun yerine `rate_limit` yolunda + kalır. +- `billingBackoffHoursByProvider`: faturalama geri çekilme süresi için isteğe bağlı sağlayıcı başına geçersiz kılmalar. +- `billingMaxHours`: faturalama geri çekilme üstel büyümesi için saat cinsinden üst sınır (varsayılan: `24`). +- `authPermanentBackoffMinutes`: yüksek güvenli `auth_permanent` hataları için dakika cinsinden temel geri çekilme süresi (varsayılan: `10`). +- `authPermanentMaxMinutes`: `auth_permanent` geri çekilme büyümesi için dakika cinsinden üst sınır (varsayılan: `60`). +- `failureWindowHours`: geri çekilme sayaçları için kullanılan kayan pencere, saat cinsinden (varsayılan: `24`). +- `overloadedProfileRotations`: model geri dönüşüne geçmeden önce aşırı yüklü hatalarda aynı sağlayıcı auth-profile rotasyonlarının azami sayısı (varsayılan: `1`). `ModelNotReadyException` gibi sağlayıcı meşgul şekilleri buraya düşer. +- `overloadedBackoffMs`: aşırı yüklü sağlayıcı/profil rotasyonunu yeniden denemeden önce sabit gecikme (varsayılan: `0`). +- `rateLimitedProfileRotations`: model geri dönüşüne geçmeden önce rate-limit hatalarında aynı sağlayıcı auth-profile rotasyonlarının azami sayısı (varsayılan: `1`). Bu rate-limit kovası; `Too many concurrent requests`, `ThrottlingException`, `concurrency limit reached`, `workers_ai ... quota limit exceeded` ve `resource exhausted` gibi sağlayıcı biçimli metinleri içerir. + +--- + +## Günlükleme + +```json5 +{ + logging: { + level: "info", + file: "/tmp/openclaw/openclaw.log", + consoleLevel: "info", + consoleStyle: "pretty", // pretty | compact | json + redactSensitive: "tools", // off | tools + redactPatterns: ["\\bTOKEN\\b\\s*[=:]\\s*([\"']?)([^\\s\"']+)\\1"], + }, +} +``` + +- Varsayılan günlük dosyası: `/tmp/openclaw/openclaw-YYYY-MM-DD.log`. +- Kararlı bir yol için `logging.file` ayarlayın. +- `consoleLevel`, `--verbose` olduğunda `debug` düzeyine çıkar. +- `maxFileBytes`: yazmalar bastırılmadan önce en büyük günlük dosyası boyutu, bayt cinsinden (pozitif tamsayı; varsayılan: `524288000` = 500 MB). Üretim dağıtımları için harici günlük döndürme kullanın. + +--- + +## Tanılama + +```json5 +{ + diagnostics: { + enabled: true, + flags: ["telegram.*"], + stuckSessionWarnMs: 30000, + + otel: { + enabled: false, + endpoint: "https://otel-collector.example.com:4318", + protocol: "http/protobuf", // http/protobuf | grpc + headers: { "x-tenant-id": "my-org" }, + serviceName: "openclaw-gateway", + traces: true, + metrics: true, + logs: false, + sampleRate: 1.0, + flushIntervalMs: 5000, + }, + + cacheTrace: { + enabled: false, + filePath: "~/.openclaw/logs/cache-trace.jsonl", + includeMessages: true, + includePrompt: true, + includeSystem: true, + }, + }, +} +``` + +- `enabled`: araçsal çıktı için ana anahtar (varsayılan: `true`). +- `flags`: hedefli günlük çıktısını etkinleştiren bayrak dizeleri dizisi ( `"telegram.*"` veya `"*"` gibi joker karakterleri destekler). +- `stuckSessionWarnMs`: bir oturum işleniyor durumunda kalırken takılmış oturum uyarıları üretmek için ms cinsinden yaş eşiği. +- `otel.enabled`: OpenTelemetry dışa aktarma işlem hattını etkinleştirir (varsayılan: `false`). +- `otel.endpoint`: OTel dışa aktarması için collector URL'si. +- `otel.protocol`: `"http/protobuf"` (varsayılan) veya `"grpc"`. +- `otel.headers`: OTel dışa aktarma istekleriyle gönderilen ek HTTP/gRPC meta veri üst bilgileri. +- `otel.serviceName`: kaynak öznitelikleri için hizmet adı. +- `otel.traces` / `otel.metrics` / `otel.logs`: iz, metrik veya günlük dışa aktarmasını etkinleştirir. +- `otel.sampleRate`: `0`–`1` arası iz örnekleme oranı. +- `otel.flushIntervalMs`: ms cinsinden periyodik telemetri boşaltma aralığı. +- `cacheTrace.enabled`: gömülü çalıştırmalar için önbellek iz anlık görüntülerini günlüğe kaydeder (varsayılan: `false`). +- `cacheTrace.filePath`: önbellek iz JSONL çıktısı yolu (varsayılan: `$OPENCLAW_STATE_DIR/logs/cache-trace.jsonl`). +- `cacheTrace.includeMessages` / `includePrompt` / `includeSystem`: önbellek iz çıktısına nelerin dahil edileceğini denetler (tümü varsayılan olarak `true`). + +--- + +## Güncelleme + +```json5 +{ + update: { + channel: "stable", // stable | beta | dev + checkOnStart: true, + + auto: { + enabled: false, + stableDelayHours: 6, + stableJitterHours: 12, + betaCheckIntervalHours: 1, + }, + }, +} +``` + +- `channel`: npm/git kurulumları için sürüm kanalı — `"stable"`, `"beta"` veya `"dev"`. +- `checkOnStart`: gateway başladığında npm güncellemelerini denetler (varsayılan: `true`). +- `auto.enabled`: paket kurulumları için arka plan otomatik güncellemeyi etkinleştirir (varsayılan: `false`). +- `auto.stableDelayHours`: stable kanalında otomatik uygulamadan önce minimum gecikme, saat cinsinden (varsayılan: `6`; en fazla: `168`). +- `auto.stableJitterHours`: stable kanalındaki dağıtımı yaymak için ek pencere, saat cinsinden (varsayılan: `12`; en fazla: `168`). +- `auto.betaCheckIntervalHours`: beta kanalındaki denetimlerin ne sıklıkta çalışacağı, saat cinsinden (varsayılan: `1`; en fazla: `24`). + +--- + +## ACP + +```json5 +{ + acp: { + enabled: false, + dispatch: { enabled: true }, + backend: "acpx", + defaultAgent: "main", + allowedAgents: ["main", "ops"], + maxConcurrentSessions: 10, + + stream: { + coalesceIdleMs: 50, + maxChunkChars: 1000, + repeatSuppression: true, + deliveryMode: "live", // live | final_only + hiddenBoundarySeparator: "paragraph", // none | space | newline | paragraph + maxOutputChars: 50000, + maxSessionUpdateChars: 500, + }, + + runtime: { + ttlMinutes: 30, + }, + }, +} +``` + +- `enabled`: genel ACP özellik geçidi (varsayılan: `false`). +- `dispatch.enabled`: ACP oturum turu dağıtımı için bağımsız geçit (varsayılan: `true`). ACP komutlarını kullanılabilir tutarken yürütmeyi engellemek için `false` ayarlayın. +- `backend`: varsayılan ACP çalışma zamanı arka uç kimliği (kayıtlı bir ACP runtime plugin ile eşleşmelidir). +- `defaultAgent`: spawn işlemleri açık bir hedef belirtmediğinde geri dönüş ACP hedef ajan kimliği. +- `allowedAgents`: ACP çalışma zamanı oturumları için izin verilen ajan kimlikleri izin listesi; boş olması ek kısıtlama olmadığı anlamına gelir. +- `maxConcurrentSessions`: eşzamanlı etkin ACP oturumlarının azami sayısı. +- `stream.coalesceIdleMs`: akıştaki metin için ms cinsinden boşta birleştirme penceresi. +- `stream.maxChunkChars`: akıştaki blok projeksiyonu bölünmeden önce azami parça boyutu. +- `stream.repeatSuppression`: tur başına tekrarlanan durum/araç satırlarını bastırır (varsayılan: `true`). +- `stream.deliveryMode`: `"live"` artımlı akış yapar; `"final_only"` tur sonlandırıcı olaylara kadar tamponlar. +- `stream.hiddenBoundarySeparator`: gizli araç olaylarından sonra görünür metinden önceki ayırıcı (varsayılan: `"paragraph"`). +- `stream.maxOutputChars`: ACP turu başına yansıtılan azami assistant çıktı karakteri sayısı. +- `stream.maxSessionUpdateChars`: yansıtılan ACP durum/güncelleme satırları için azami karakter sayısı. +- `stream.tagVisibility`: akış olayları için etiket adlarından boolean görünürlük geçersiz kılmalarına kayıt. +- `runtime.ttlMinutes`: ACP oturum işleyicilerinin temizliğe uygun hale gelmeden önce boşta kalma TTL'si, dakika cinsinden. +- `runtime.installCommand`: ACP çalışma zamanı ortamı bootstrap edilirken çalıştırılacak isteğe bağlı kurulum komutu. + +--- + +## CLI + +```json5 +{ + cli: { + banner: { + taglineMode: "off", // random | default | off + }, + }, +} +``` + +- `cli.banner.taglineMode`, banner slogan stilini denetler: + - `"random"` (varsayılan): dönüşümlü komik/mevsimsel sloganlar. + - `"default"`: sabit nötr slogan (`All your chats, one OpenClaw.`). + - `"off"`: slogan metni yok (banner başlığı/sürüm yine gösterilir). +- Tüm banner'ı gizlemek için (yalnızca sloganları değil) `OPENCLAW_HIDE_BANNER=1` env değerini ayarlayın. + +--- + +## Wizard + +CLI rehberli kurulum akışları (`onboard`, `configure`, `doctor`) tarafından yazılan meta veriler: + +```json5 +{ + wizard: { + lastRunAt: "2026-01-01T00:00:00.000Z", + lastRunVersion: "2026.1.4", + lastRunCommit: "abc1234", + lastRunCommand: "configure", + lastRunMode: "local", + }, +} +``` + +--- + +## Kimlik + +[Agent defaults](#agent-defaults) altındaki `agents.list` kimlik alanlarına bakın. + +--- + +## Bridge (eski, kaldırıldı) + +Geçerli sürümler artık TCP bridge içermez. Node'lar Gateway WebSocket üzerinden bağlanır. `bridge.*` anahtarları artık yapılandırma şemasının parçası değildir (kaldırılana kadar doğrulama başarısız olur; `openclaw doctor --fix` bilinmeyen anahtarları temizleyebilir). + + + +```json +{ + "bridge": { + "enabled": true, + "port": 18790, + "bind": "tailnet", + "tls": { + "enabled": true, + "autoGenerate": true + } + } +} +``` + + + +--- + +## Cron + +```json5 +{ + cron: { + enabled: true, + maxConcurrentRuns: 2, + webhook: "https://example.invalid/legacy", // deperecated fallback for stored notify:true jobs + webhookToken: "replace-with-dedicated-token", // giden webhook auth için isteğe bağlı bearer token + sessionRetention: "24h", // süre dizesi veya false + runLog: { + maxBytes: "2mb", // varsayılan 2_000_000 bayt + keepLines: 2000, // varsayılan 2000 + }, + }, +} +``` + +- `sessionRetention`: tamamlanmış yalıtılmış cron çalıştırma oturumlarının `sessions.json` içinden budanmadan önce ne kadar süre saklanacağını belirler. Ayrıca arşivlenmiş silinmiş cron transcript'lerinin temizlenmesini de denetler. Varsayılan: `24h`; devre dışı bırakmak için `false` ayarlayın. +- `runLog.maxBytes`: budama başlamadan önce çalıştırma günlüğü dosyası başına azami boyut (`cron/runs/.jsonl`). Varsayılan: `2_000_000` bayt. +- `runLog.keepLines`: çalıştırma günlüğü budaması tetiklendiğinde saklanan en yeni satırlar. Varsayılan: `2000`. +- `webhookToken`: cron webhook POST teslimi için kullanılan bearer token (`delivery.mode = "webhook"`); atlanırsa auth üst bilgisi gönderilmez. +- `webhook`: yalnızca hâlâ `notify: true` olan saklanan işler için kullanılan eski, kullanımdan kaldırılmış geri dönüş webhook URL'si (`http/https`). + +### `cron.retry` + +```json5 +{ + cron: { + retry: { + maxAttempts: 3, + backoffMs: [30000, 60000, 300000], + retryOn: ["rate_limit", "overloaded", "network", "timeout", "server_error"], + }, + }, +} +``` + +- `maxAttempts`: geçici hatalarda tek seferlik işler için en yüksek yeniden deneme sayısı (varsayılan: `3`; aralık: `0`–`10`). +- `backoffMs`: her yeniden deneme girişimi için ms cinsinden geri çekilme gecikmeleri dizisi (varsayılan: `[30000, 60000, 300000]`; 1–10 girdi). +- `retryOn`: yeniden denemeyi tetikleyen hata türleri — `"rate_limit"`, `"overloaded"`, `"network"`, `"timeout"`, `"server_error"`. Tüm geçici türleri yeniden denemek için atlayın. + +Yalnızca tek seferlik cron işlerine uygulanır. Yinelenen işler ayrı hata işleme kullanır. + +### `cron.failureAlert` + +```json5 +{ + cron: { + failureAlert: { + enabled: false, + after: 3, + cooldownMs: 3600000, + mode: "announce", + accountId: "main", + }, + }, +} +``` + +- `enabled`: cron işleri için hata uyarılarını etkinleştirir (varsayılan: `false`). +- `after`: bir uyarı tetiklenmeden önce ardışık hata sayısı (pozitif tamsayı, en az: `1`). +- `cooldownMs`: aynı iş için yinelenen uyarılar arasında en az milisaniye süresi (negatif olmayan tamsayı). +- `mode`: teslim modu — `"announce"` bir kanal mesajı üzerinden gönderir; `"webhook"` yapılandırılmış webhook'a POST eder. +- `accountId`: uyarı teslimini kapsamlandırmak için isteğe bağlı hesap veya kanal kimliği. + +### `cron.failureDestination` + +```json5 +{ + cron: { + failureDestination: { + mode: "announce", + channel: "last", + to: "channel:C1234567890", + accountId: "main", + }, + }, +} +``` + +- Tüm işler genelinde cron hata bildirimleri için varsayılan hedef. +- `mode`: `"announce"` veya `"webhook"`; yeterli hedef verisi olduğunda varsayılan `"announce"` olur. +- `channel`: announce teslimi için kanal geçersiz kılması. `"last"`, bilinen son teslim kanalını yeniden kullanır. +- `to`: açık announce hedefi veya webhook URL'si. Webhook modu için zorunludur. +- `accountId`: teslim için isteğe bağlı hesap geçersiz kılması. +- İş başına `delivery.failureDestination`, bu genel varsayılanın yerine geçer. +- Genel veya iş başına hata hedefi ayarlanmamışsa, zaten `announce` üzerinden teslim yapan işler hata durumunda bu birincil announce hedefine geri döner. +- `delivery.failureDestination`, işin birincil `delivery.mode` değeri `"webhook"` olmadığı sürece yalnızca `sessionTarget="isolated"` işleri için desteklenir. + +Bkz. [Cron Jobs](/tr/automation/cron-jobs). Yalıtılmış cron yürütmeleri [background tasks](/tr/automation/tasks) olarak izlenir. + +--- + +## Medya model şablon değişkenleri + +`tools.media.models[].args` içinde genişletilen şablon yer tutucuları: + +| Değişken | Açıklama | +| ----------------- | --------------------------------------------- | +| `{{Body}}` | Tam gelen mesaj gövdesi | +| `{{RawBody}}` | Ham gövde (geçmiş/gönderen sarmalayıcıları olmadan) | +| `{{BodyStripped}}` | Grup bahsetmeleri çıkarılmış gövde | +| `{{From}}` | Gönderen tanımlayıcısı | +| `{{To}}` | Hedef tanımlayıcısı | +| `{{MessageSid}}` | Kanal mesaj kimliği | +| `{{SessionId}}` | Geçerli oturum UUID'si | +| `{{IsNewSession}}` | Yeni oturum oluşturulduğunda `"true"` | +| `{{MediaUrl}}` | Gelen medya pseudo-URL'si | +| `{{MediaPath}}` | Yerel medya yolu | +| `{{MediaType}}` | Medya türü (image/audio/document/…) | +| `{{Transcript}}` | Ses transcript'i | +| `{{Prompt}}` | CLI girdileri için çözümlenen medya istemi | +| `{{MaxChars}}` | CLI girdileri için çözümlenen azami çıktı karakteri | +| `{{ChatType}}` | `"direct"` veya `"group"` | +| `{{GroupSubject}}` | Grup konusu (best effort) | +| `{{GroupMembers}}` | Grup üyeleri önizlemesi (best effort) | +| `{{SenderName}}` | Gönderen görünen adı (best effort) | +| `{{SenderE164}}` | Gönderen telefon numarası (best effort) | +| `{{Provider}}` | Sağlayıcı ipucu (whatsapp, telegram, discord vb.) | + +--- + +## Yapılandırma include'ları (`$include`) + +Yapılandırmayı birden fazla dosyaya bölün: + +```json5 +// ~/.openclaw/openclaw.json +{ + gateway: { port: 18789 }, + agents: { $include: "./agents.json5" }, + broadcast: { + $include: ["./clients/mueller.json5", "./clients/schmidt.json5"], + }, +} +``` + +**Birleştirme davranışı:** + +- Tek dosya: içeren nesnenin yerine geçer. +- Dosya dizisi: sırayla derin birleştirilir (sonraki, öncekini geçersiz kılar). +- Kardeş anahtarlar: include'lardan sonra birleştirilir (include edilen değerleri geçersiz kılar). +- İç içe include'lar: en fazla 10 seviye derinlik. +- Yollar: include eden dosyaya göre çözülür, ancak üst düzey yapılandırma dizininin içinde kalmalıdır (`openclaw.json` dosyasının `dirname` değeri). Mutlak/`../` biçimlerine yalnızca hâlâ bu sınır içinde çözülüyorlarsa izin verilir. +- Hatalar: eksik dosyalar, ayrıştırma hataları ve döngüsel include'lar için açık mesajlar. + +--- + +_İlgili: [Yapılandırma](/tr/gateway/configuration) · [Yapılandırma Örnekleri](/tr/gateway/configuration-examples) · [Doctor](/tr/gateway/doctor)_ diff --git a/docs/tr/gateway/protocol.md b/docs/tr/gateway/protocol.md index 4d473f46c..4f60b3ccf 100644 --- a/docs/tr/gateway/protocol.md +++ b/docs/tr/gateway/protocol.md @@ -1,25 +1,25 @@ --- read_when: - - Gateway WS istemcilerini uyguluyor veya güncelliyorsunuz - - Protokol uyumsuzluklarında veya bağlantı hatalarında hata ayıklıyorsunuz - - Protokol şemasını/modellerini yeniden oluşturuyorsunuz + - Gateway WS istemcilerini uygulama veya güncelleme + - Protokol uyumsuzlukları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-08T02:15:52Z" + generated_at: "2026-04-10T08:50:09Z" model: gpt-5.4 provider: openai - source_hash: 8635e3ac1dd311dbd3a770b088868aa1495a8d53b3ebc1eae0dfda3b2bf4694a + source_hash: 83c820c46d4803d571c770468fd6782619eaa1dca253e156e8087dec735c127f source_path: gateway/protocol.md workflow: 15 --- # Gateway protokolü (WebSocket) -Gateway WS protokolü, OpenClaw için **tek denetim düzlemi + düğüm taşımasıdır**. -Tüm istemciler (CLI, web UI, macOS uygulaması, iOS/Android düğümleri, headless -düğümler) WebSocket üzerinden bağlanır ve el sıkışma sırasında -**rollerini** + **kapsamlarını** bildirir. +Gateway WS protokolü, OpenClaw için **tek kontrol düzlemi + düğüm taşıma katmanı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 **rollerini** + +**kapsamlarını** bildirir. ## Taşıma @@ -28,7 +28,7 @@ düğümler) WebSocket üzerinden bağlanır ve el sıkışma sırasında ## El sıkışma (`connect`) -Gateway → İstemci (bağlantı öncesi sınama): +Gateway → İstemci (bağlantı öncesi challenge): ```json { @@ -84,7 +84,7 @@ Gateway → İstemci: } ``` -Bir cihaz token'ı verildiğinde, `hello-ok` ayrıca şunları da içerir: +Bir cihaz token’ı verildiğinde, `hello-ok` ayrıca şunu da içerir: ```json { @@ -96,8 +96,8 @@ Bir cihaz token'ı verildiğinde, `hello-ok` ayrıca şunları da içerir: } ``` -Güvenilir bootstrap devri sırasında `hello-ok.auth`, `deviceTokens` içinde -ek sınırlı rol girdileri de içerebilir: +Güvenilir önyükleme devri sırasında, `hello-ok.auth` ayrıca `deviceTokens` +içinde ek sınırlı rol girdileri de içerebilir: ```json { @@ -116,15 +116,15 @@ ek sınırlı rol girdileri de içerebilir: } ``` -Yerleşik node/operator bootstrap akışında birincil node token'ı -`scopes: []` olarak kalır ve devredilen tüm operator token'ları bootstrap -operator izin listesiyle (`operator.approvals`, `operator.read`, -`operator.talk.secrets`, `operator.write`) sınırlı kalır. Bootstrap kapsam -denetimleri rol önekli olmaya devam eder: operator girdileri yalnızca operator -isteklerini karşılar ve operator olmayan roller için yine kendi rol önekleri -altında kapsamlar gerekir. +Yerleşik düğüm/operatör önyükleme akışında, birincil düğüm token’ı +`scopes: []` olarak kalır ve devredilen tüm operatör token’ları önyükleme +operatörü izin listesiyle sınırlı kalır (`operator.approvals`, `operator.read`, +`operator.talk.secrets`, `operator.write`). Önyükleme kapsam denetimleri rol +önekli olmaya devam eder: operatör girdileri yalnızca operatör isteklerini +karşılar ve operatör olmayan rollerin de kendi rol önekleri altında kapsamları +olması gerekir. -### Node örneği +### Düğüm örneği ```json { @@ -171,10 +171,10 @@ Yan etki oluşturan yöntemler için **idempotency key** gerekir (şemaya bakın ### Roller -- `operator` = denetim düzlemi istemcisi (CLI/UI/otomasyon). -- `node` = yetenek ana makinesi (`camera`/`screen`/`canvas`/`system.run`). +- `operator` = kontrol düzlemi istemcisi (CLI/UI/otomasyon). +- `node` = yetenek barındırıcısı (camera/screen/canvas/system.run). -### Kapsamlar (`operator`) +### Kapsamlar (operatör) Yaygın kapsamlar: @@ -185,61 +185,59 @@ Yaygın kapsamlar: - `operator.pairing` - `operator.talk.secrets` -`talk.config` içinde `includeSecrets: true`, `operator.talk.secrets` +`includeSecrets: true` ile `talk.config`, `operator.talk.secrets` (veya `operator.admin`) gerektirir. -Eklenti 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ülür. +Eklenti tarafından kaydedilen gateway RPC yöntemleri kendi operatör 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 geçittir. `chat.send` üzerinden ulaşılan 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. +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 ek bir onay zamanı kapsam -denetimine de sahiptir: +`node.pair.approve` için temel yöntem kapsamına ek olarak onay anında bir kapsam +denetimi daha vardır: - komutsuz istekler: `operator.pairing` -- exec olmayan node komutları içeren istekler: `operator.pairing` + `operator.write` +- 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` -### Yetenekler/komutlar/izinler (`node`) +### Caps/commands/permissions (düğüm) -Node'lar bağlantı sırasında yetenek beyanlarını bildirir: +Düğümler bağlantı sırasında yetenek iddialarını bildirir: - `caps`: üst düzey yetenek kategorileri. -- `commands`: invoke için komut izin listesi. -- `permissions`: ayrıntılı anahtarlar (`screen.record`, `camera.capture` gibi). +- `commands`: `invoke` için komut izin listesi. +- `permissions`: ayrıntılı açma/kapama seçenekleri (ör. `screen.record`, `camera.capture`). -Gateway bunları **beyan** olarak ele alır ve sunucu tarafı izin listelerini uygular. +Gateway bunları **iddia** olarak değerlendirir ve sunucu tarafı izin listelerini uygular. ## Varlık durumu - `system-presence`, cihaz kimliğine göre anahtarlanmış girdiler döndürür. -- Varlık girdileri `deviceId`, `roles` ve `scopes` içerir; böylece UI'ler aynı cihaz - hem **operator** hem de **node** olarak bağlandığında tek bir satır gösterebilir. +- Varlık durumu girdileri `deviceId`, `roles` ve `scopes` içerir; böylece UI’lar bir cihaz hem **operator** hem de **node** olarak bağlandığında bile cihaz başına tek bir satır gösterebilir. ## Yaygın RPC yöntem aileleri -Bu sayfa, oluşturulmuş tam bir döküm değildir; ancak genel WS yüzeyi yukarıdaki -el sıkışma/kimlik doğrulama örneklerinden daha geniştir. Bunlar Gateway'in bugün -sunduğu başlıca yöntem aileleridir. +Bu sayfa oluşturulmuş tam bir döküm değildir, ancak genel WS yüzeyi yukarıdaki +el sıkışma/kimlik doğrulama örneklerinden daha geniştir. Gateway’in bugün sunduğu +başlıca yöntem aileleri bunlardır. -`hello-ok.features.methods`, `src/gateway/server-methods-list.ts` ile yüklenmiş -eklenti/kanal yöntem dışa aktarımlarından oluşturulan muhafazakâr bir keşif listesidir. -Bunu özellik keşfi olarak değerlendirin; `src/gateway/server-methods/*.ts` -içinde uygulanan çağrılabilir her yardımcı işlevin oluşturulmuş dökümü olarak değil. +`hello-ok.features.methods`, `src/gateway/server-methods-list.ts` ile yüklenen +eklenti/kanal yöntem dışa aktarımlarından oluşturulan muhafazakâr bir keşif +listesidir. Bunu özellik keşfi olarak ele alın; `src/gateway/server-methods/*.ts` +içinde uygulanan her çağrılabilir yardımcı işlevin oluşturulmuş bir dökümü olarak değil. ### Sistem ve kimlik - `health`, önbelleğe alınmış veya yeni yoklanmış gateway sağlık anlık görüntüsünü döndürür. -- `status`, `/status` tarzı gateway özetini döndürür; hassas alanlar yalnızca - yönetici kapsamlı operator istemcilerine dahil edilir. +- `status`, `/status` tarzı gateway özetini döndürür; hassas alanlar yalnızca yönetici kapsamlı operatör istemcilerine dahil edilir. - `gateway.identity.get`, relay ve eşleştirme akışlarında kullanılan gateway cihaz kimliğini 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üncelleyip - yayınlayabilir. +- `system-presence`, bağlı operatör/düğüm cihazları için geçerli varlık durumu anlık görüntüsünü döndürür. +- `system-event`, bir sistem olayı ekler ve varlık durumu bağlamını güncelleyip yayınlayabilir. - `last-heartbeat`, kalıcı hale getirilmiş en son heartbeat olayını döndürür. - `set-heartbeats`, gateway üzerinde heartbeat işlemeyi açıp kapatır. @@ -248,38 +246,32 @@ içinde uygulanan çağrılabilir her yardımcı işlevin oluşturulmuş döküm - `models.list`, çalışma zamanında izin verilen model kataloğunu döndürür. - `usage.status`, sağlayıcı kullanım pencerelerini/kalan kota özetlerini döndürür. - `usage.cost`, bir tarih aralığı için toplu maliyet kullanım özetlerini döndürür. -- `doctor.memory.status`, etkin varsayılan agent çalışma alanı için - vector-memory / embedding hazır olma durumunu döndürür. +- `doctor.memory.status`, etkin varsayılan ajan çalışma alanı için vektör bellek / embedding hazır olma durumunu döndürür. - `sessions.usage`, oturum başına kullanım özetlerini döndürür. -- `sessions.usage.timeseries`, tek bir oturum için zaman serisi kullanımını döndürür. -- `sessions.usage.logs`, tek bir oturum için kullanım günlük girdilerini 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ük girdilerini döndürür. ### Kanallar ve giriş yardımcıları - `channels.status`, yerleşik + paketlenmiş kanal/eklenti durum özetlerini döndürür. -- `channels.logout`, kanal destekliyorsa belirli bir kanal/hesap oturumunu kapatır. -- `web.login.start`, geçerli QR destekli web kanalı sağlayıcısı için bir QR/web giriş akışı başlatır. -- `web.login.wait`, bu QR/web giriş akışının tamamlanmasını bekler ve başarı durumunda - kanalı başlatır. -- `push.test`, kayıtlı bir iOS node'una test APNs bildirimi gönderir. +- `channels.logout`, kanal destekliyorsa belirli bir kanal/hesabın oturumunu kapatır. +- `web.login.start`, geçerli QR destekli web kanal sağlayıcısı için bir QR/web giriş akışı başlatır. +- `web.login.wait`, bu QR/web giriş akışının tamamlanmasını bekler ve başarı durumunda kanalı başlatır. +- `push.test`, kayıtlı bir iOS düğümüne test amaçlı bir APNs bildirimi gönderir. - `voicewake.get`, depolanan 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. ### Mesajlaşma ve günlükler -- `send`, chat çalıştırıcısının dışında kanal/hesap/thread hedefli gönderimler için - doğrudan giden teslim RPC'sidir. -- `logs.tail`, yapılandırılmış gateway dosya günlüğü kuyruğunu imleç/sınır ve - en yüksek bayt denetimleriyle döndürür. +- `send`, sohbet çalıştırıcısı dışındaki kanal/hesap/iş parçacığı hedefli gönderimler için doğrudan giden teslim RPC’sidir. +- `logs.tail`, imleç/sınır ve maksimum bayt denetimleriyle yapılandırılmış gateway dosya günlüğü son kısmını döndürür. ### Talk ve TTS -- `talk.config`, etkili Talk yapılandırma yükünü döndürür; `includeSecrets` - için `operator.talk.secrets` (veya `operator.admin`) gerekir. +- `talk.config`, etkili 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ı, geri dönüş sağlayıcılarını - ve sağlayıcı yapılandırma durumunu döndürür. +- `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.setProvider`, tercih edilen TTS sağlayıcısını günceller. @@ -287,108 +279,81 @@ içinde uygulanan çağrılabilir her yardımcı işlevin oluşturulmuş döküm ### Gizli bilgiler, yapılandırma, güncelleme ve sihirbaz -- `secrets.reload`, etkin SecretRef'leri yeniden çözümler ve çalışma zamanı gizli bilgi durumunu - yalnızca tam başarıda değiştirir. +- `secrets.reload`, etkin SecretRef’leri yeniden çözümler 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ı çözümler. -- `config.get`, geçerli yapılandırma anlık görüntüsünü ve hash değerini döndürür. +- `config.get`, geçerli yapılandırma anlık görüntüsünü ve hash’ini 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 yükünü doğrular + değiştirir. -- `config.schema`, Control UI ve CLI araçlarının kullandığı canlı yapılandırma şeması yükünü - döndürür: şema, `uiHints`, sürüm ve oluşturma meta verileri; buna çalışma zamanı - bunları yükleyebildiğinde eklenti + kanal şema meta verileri de dahildir. Şema, - eşleşen alan belgeleri mevcut olduğunda, UI'nin kullandığı aynı etiketler - ve yardım metninden türetilen `title` / `description` meta verilerini içerir; - buna iç içe nesne, joker karakter, dizi öğesi ve `anyOf` / `oneOf` / `allOf` - bileşim dalları da dahildir. -- `config.schema.lookup`, tek bir yapılandırma yolu için yol kapsamlı bir lookup yükü döndürür: - normalize edilmiş yol, sığ bir şema düğümü, eşleşen hint + `hintPath` ve - UI/CLI ayrıntılı inceleme için doğrudan alt özetler. - - Lookup şema düğümleri kullanıcıya dönük belgeleri ve yaygın doğrulama alanlarını korur: +- `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 oluşturma meta verileri; buna çalışma zamanı yükleyebildiğinde eklenti + kanal şeması meta verileri de dahildir. Şema, aynı etiketlerden türetilen alan `title` / `description` meta verilerini ve UI tarafından kullanılan yardım metnini içerir; buna eşleşen alan belgeleri mevcut olduğunda iç içe nesne, wildcard, dizi öğesi ve `anyOf` / `oneOf` / `allOf` bileşim dalları da dahildir. +- `config.schema.lookup`, tek bir yapılandırma yolu için yol kapsamlı bir arama yükü döndürür: normalleştirilmiş yol, sığ bir şema düğümü, eşleşen hint + `hintPath` ve UI/CLI ayrıntılı inceleme için doğrudan alt öge özetleri. + - Arama şeması düğümleri kullanıcıya dönük belgeleri ve yaygın doğrulama alanlarını korur: `title`, `description`, `type`, `enum`, `const`, `format`, `pattern`, - sayısal/dize/dizi/nesne sınırları ve `additionalProperties`, `deprecated`, - `readOnly`, `writeOnly` gibi boolean bayraklar. - - Alt özetler `key`, normalize edilmiş `path`, `type`, `required`, - `hasChildren` ile eşleşen `hint` / `hintPath` bilgilerini açığa çıkarır. -- `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. -- `wizard.start`, `wizard.next`, `wizard.status` ve `wizard.cancel`, onboarding - sihirbazını WS RPC üzerinden sunar. + sayısal/dize/dizi/nesne sınırları ve + `additionalProperties`, `deprecated`, `readOnly`, `writeOnly` gibi boolean bayraklar. + - Alt öge özetleri `key`, normalleştirilmiş `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ı olduysa yeniden başlatma planlar. +- `wizard.start`, `wizard.next`, `wizard.status` ve `wizard.cancel`, önyükleme sihirbazını WS RPC üzerinden sunar. ### Mevcut başlıca aileler -#### Agent ve çalışma alanı yardımcıları +#### Ajan ve çalışma alanı yardımcıları -- `agents.list`, yapılandırılmış agent girdilerini döndürür. -- `agents.create`, `agents.update` ve `agents.delete`, agent kayıtlarını ve - çalışma alanı bağlantılarını yönetir. -- `agents.files.list`, `agents.files.get` ve `agents.files.set`, bir agent için açığa çıkarılan - bootstrap çalışma alanı dosyalarını yönetir. -- `agent.identity.get`, bir agent veya oturum için etkili asistan kimliğini döndürür. -- `agent.wait`, bir çalışmanın tamamlanmasını bekler ve varsa son anlık görüntüyü döndürür. +- `agents.list`, 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 önyükleme ç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 mevcut olduğunda terminal anlık görüntüsünü döndürür. #### Oturum denetimi - `sessions.list`, 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`, tek bir oturum için - transkript/mesaj olay aboneliklerini açıp kapatı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`, tek 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 çözümler veya kanonik hale getirir. +- `sessions.resolve`, bir oturum hedefini çözümler 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 kesip yönlendirme varyantıdır. -- `sessions.abort`, bir oturum için etkin işleri iptal eder. +- `sessions.steer`, etkin bir oturum için kes ve yönlendir varyantıdır. +- `sessions.abort`, bir oturum için etkin çalışmayı durdurur. - `sessions.patch`, oturum meta verilerini/geçersiz kılmaları günceller. -- `sessions.reset`, `sessions.delete` ve `sessions.compact`, oturum bakımı gerçekleştirir. -- `sessions.get`, depolanan tam oturum satırını döndürür. -- chat yürütmesi hâlâ `chat.history`, `chat.send`, `chat.abort` ve - `chat.inject` kullanır. -- `chat.history`, UI istemcileri için ekran-normalize edilmiştir: 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 (şunlar dahil: - `...`, `...`, - `...`, `...` ve - kısaltılmış araç çağrısı blokları) ile sızmış ASCII/tam genişlikli model denetim token'ları - çıkarılır; tam olarak `NO_REPLY` / - `no_reply` olan saf sessiz token asistan satırları atlanır ve - aşırı büyük satırlar yer tutucularla değiştirilebilir. +- `sessions.reset`, `sessions.delete` ve `sessions.compact`, oturum bakım işlemleri gerçekleştirir. +- `sessions.get`, tam depolanmış 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österim açısından normalleştirilir: satır içi yönerge etiketleri görünür metinden çıkarılır, düz metin tool-call XML yükleri (şunlar dahil: `...`, `...`, `...`, `...` ve kısaltılmış tool-call blokları) ile sızan ASCII/tam genişlikli model denetim token’ları çıkarılır, tam olarak `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. -#### Cihaz eşleştirme ve cihaz token'ları +#### Cihaz eşleştirme ve cihaz token’ları - `device.pair.list`, bekleyen ve onaylanmış eşleştirilmiş cihazları döndürür. -- `device.pair.approve`, `device.pair.reject` ve `device.pair.remove`, - cihaz eşleştirme kayıtlarını yönetir. -- `device.token.rotate`, eşleştirilmiş bir cihaz token'ını onaylanmış rolü - ve kapsam sınırları içinde döndürür. -- `device.token.revoke`, eşleştirilmiş bir cihaz token'ını iptal eder. +- `device.pair.approve`, `device.pair.reject` ve `device.pair.remove`, cihaz eşleştirme kayıtlarını yönetir. +- `device.token.rotate`, eşleştirilmiş bir cihaz token’ını onaylanmış rol ve kapsam sınırları içinde döndürür. +- `device.token.revoke`, eşleştirilmiş bir cihaz token’ını iptal eder. -#### Node eşleştirme, invoke ve bekleyen işler +#### Düğüm eşleştirme, invoke ve bekleyen işler - `node.pair.request`, `node.pair.list`, `node.pair.approve`, - `node.pair.reject` 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`, bir komutu bağlı bir node'a iletir. + `node.pair.reject` ve `node.pair.verify`, düğüm eşleştirme ve önyükleme doğrulamasını kapsar. +- `node.list` ve `node.describe`, bilinen/bağlı düğüm durumunu döndürür. +- `node.rename`, eşleştirilmiş bir düğüm etiketini günceller. +- `node.invoke`, bir komutu bağlı bir düğüme 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 yetenek token'larını yeniler. -- `node.pending.pull` ve `node.pending.ack`, bağlı node kuyruk API'leridir. -- `node.pending.enqueue` ve `node.pending.drain`, çevrim dışı/bağlı olmayan node'lar için - kalıcı bekleyen işleri yönetir. +- `node.event`, düğüm kaynaklı olayları gateway’e geri taşır. +- `node.canvas.capability.refresh`, kapsamlı canvas yetenek token’larını yeniler. +- `node.pending.pull` ve `node.pending.ack`, bağlı düğüm kuyruk API’leridir. +- `node.pending.enqueue` ve `node.pending.drain`, çevrimdışı/bağlantısı kesilmiş düğümler için kalıcı bekleyen işleri yönetir. #### Onay aileleri - `exec.approval.request`, `exec.approval.get`, `exec.approval.list` ve - `exec.approval.resolve`, tek seferlik exec onay istekleri ile bekleyen - onay arama/yeniden oynatmayı kapsar. -- `exec.approval.waitDecision`, tek bir bekleyen exec onayını bekler ve - son kararı döndürür (veya zaman aşımında `null`). -- `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 relay komutları - aracılığıyla node-yerel exec onay ilkesini yönetir. + `exec.approval.resolve`, tek seferlik exec onay isteklerini ve bekleyen + onay arama/yeniden oynatma işlemlerini kapsar. +- `exec.approval.waitDecision`, tek bir bekleyen 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 ilkesi + anlık görüntülerini yönetir. +- `exec.approvals.node.get` ve `exec.approvals.node.set`, düğüm yerel exec + onay ilkesini düğüm relay komutları aracılığıyla yönetir. - `plugin.approval.request`, `plugin.approval.list`, `plugin.approval.waitDecision` ve `plugin.approval.resolve`, eklenti tanımlı onay akışlarını kapsar. @@ -396,93 +361,84 @@ içinde uygulanan çağrılabilir her yardımcı işlevin oluşturulmuş döküm #### Diğer başlıca aileler - otomasyon: - - `wake`, anında veya sonraki heartbeat'te bir uyandırma metni ekleme zamanlar + - `wake`, anında veya bir sonraki heartbeat sırasında bir uyandırma metni enjeksiyonu planlar - `cron.list`, `cron.status`, `cron.add`, `cron.update`, `cron.remove`, `cron.run`, `cron.runs` -- Skills/araçlar: `skills.*`, `tools.catalog`, `tools.effective` +- skills/tools: `commands.list`, `skills.*`, `tools.catalog`, `tools.effective` ### Yaygın olay aileleri -- `chat`: `chat.inject` ve diğer yalnızca transkript chat - olayları gibi UI chat güncellemeleri. +- `chat`: `chat.inject` ve yalnızca transkript içeren diğer sohbet olayları gibi UI sohbet güncellemeleri. - `session.message` ve `session.tool`: abone olunan bir oturum için transkript/olay akışı güncellemeleri. -- `sessions.changed`: oturum dizini veya meta verisi değişti. -- `presence`: sistem varlık anlık görüntüsü güncellemeleri. +- `sessions.changed`: oturum dizini veya meta verileri değişti. +- `presence`: sistem varlık durumu 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. - `heartbeat`: heartbeat olay akışı güncellemesi. -- `cron`: cron çalışması/iş değişikliği olayı. -- `shutdown`: gateway kapanış 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ı. +- `cron`: cron çalıştırma/görev değişikliği olayı. +- `shutdown`: gateway kapanma bildirimi. +- `node.pair.requested` / `node.pair.resolved`: düğüm eşleştirme yaşam döngüsü. +- `node.invoke.request`: düğüm 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 - yaşam döngüsü. -- `plugin.approval.requested` / `plugin.approval.resolved`: eklenti onayı - yaşam döngüsü. +- `exec.approval.requested` / `exec.approval.resolved`: exec onay yaşam döngüsü. +- `plugin.approval.requested` / `plugin.approval.resolved`: eklenti onay yaşam döngüsü. -### Node yardımcı yöntemleri +### Düğüm yardımcı yöntemleri -- Node'lar, otomatik izin denetimleri için geçerli skill yürütülebilir dosya - listesini almak üzere `skills.bins` çağırabilir. +- Düğümler, otomatik izin denetimleri için geçerli skill yürütülebilir dosyaları listesini almak üzere `skills.bins` çağırabilir. -### Operator yardımcı yöntemleri +### Operatör yardımcı yöntemleri -- Operator'lar, bir - agent 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: +- Operatörler, bir ajan için çalışma zamanı komut envanterini almak amacıyla `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` alanının hangi yüzeyi hedeflediğini denetler: + - `text`, başında `/` olmadan birincil metin komut token’ını döndürür + - `native` ve varsayılan `both` yolu, mevcut olduğunda sağlayıcıya duyarlı yerel adları döndürür + - `textAliases`, `/model` ve `/m` gibi tam slash takma adlarını taşır. + - `nativeName`, mevcut olduğunda 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 eklenti 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ı tool kataloğunu almak amacıyla `tools.catalog` (`operator.read`) çağırabilir. Yanıt, gruplanmış tool’ları ve kaynak meta verilerini içerir: - `source`: `core` veya `plugin` - `pluginId`: `source="plugin"` olduğunda eklenti sahibi - - `optional`: bir eklenti aracının isteğe bağlı olup olmadığı -- Operator'lar, bir oturum için çalışma zamanında etkili araç - envanterini almak üzere `tools.effective` (`operator.read`) çağırabilir. + - `optional`: bir eklenti tool’unun isteğe bağlı olup olmadığı +- Operatörler, bir oturum için çalışma zamanında etkili tool envanterini almak amacıyla `tools.effective` (`operator.read`) çağırabilir. - `sessionKey` zorunludur. - - Gateway, çağıranın sağladığı auth veya teslim bağlamını kabul etmek yerine - güvenilir çalışma zamanı bağlamını oturumdan sunucu tarafında türetir. - - Yanıt oturum kapsamlıdır ve etkin konuşmanın şu anda kullanabileceği şeyleri - yansıtır; buna çekirdek, eklenti ve kanal araçları dahildir. -- Operator'lar, bir - agent için görünür skill envanterini almak üzere `skills.status` (`operator.read`) çağırabilir. - - `agentId` isteğe bağlıdır; varsayılan agent çalışma alanını okumak için belirtmeyin. - - Yanıt; uygunluk, eksik gereksinimler, yapılandırma denetimleri ve - ham gizli değerleri açığa çıkarmadan temizlenmiş kurulum seçeneklerini içerir. -- Operator'lar, ClawHub keşif meta verileri için - `skills.search` ve `skills.detail` (`operator.read`) çağırabilir. -- Operator'lar, iki modda `skills.install` (`operator.admin`) çağırabilir: - - ClawHub modu: `{ source: "clawhub", slug, version?, force? }`, varsayılan - agent çalışma alanı `skills/` dizinine bir skill klasörü kurar. - - Gateway installer modu: `{ name, installId, dangerouslyForceUnsafeInstall?, timeoutMs? }` - gateway ana makinesinde bildirilmiş bir `metadata.openclaw.install` eylemi çalıştırır. -- Operator'lar, iki modda `skills.update` (`operator.admin`) çağırabilir: - - ClawHub modu, izlenen tek bir slug'ı veya varsayılan agent çalışma alanındaki - tüm izlenen ClawHub kurulumlarını günceller. - - Config modu, `enabled`, - `apiKey` ve `env` gibi `skills.entries.` değerlerini yamalar. + - Gateway, çağıran tarafından sağlanan kimlik doğrulama veya teslim bağlamını kabul etmek yerine güvenilir çalışma zamanı bağlamını oturumdan sunucu tarafında türetir. + - Yanıt oturum kapsamlıdır ve etkin konuşmanın şu anda kullanabildiklerini yansıtır; buna çekirdek, eklenti ve kanal tool’ları dahildir. +- Operatörler, bir ajan için görünür skill envanterini almak amacıyla `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, uygunluğu, eksik gereksinimleri, yapılandırma denetimlerini ve ham gizli değerleri açığa çıkarmadan 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, `skills.install` (`operator.admin`) çağrısını iki modda yapabilir: + - ClawHub modu: `{ source: "clawhub", slug, version?, force? }`, varsayılan ajan çalışma alanı `skills/` dizinine bir skill klasörü kurar. + - Gateway yükleyici modu: `{ name, installId, dangerouslyForceUnsafeInstall?, timeoutMs? }` + gateway ana bilgisayarında bildirilmiş bir `metadata.openclaw.install` eylemi çalıştırır. +- Operatörler, `skills.update` (`operator.admin`) çağrısını iki modda yapabilir: + - ClawHub modu, varsayılan ajan çalışma alanındaki izlenen tek bir slug’ı veya tüm izlenen ClawHub kurulumlarını günceller. + - Yapılandırma modu, `enabled`, `apiKey` ve `env` gibi `skills.entries.` değerlerini yama olarak uygular. ## Exec onayları -- Bir exec isteği onay gerektirdiğinde gateway `exec.approval.requested` yayınlar. -- Operator istemcileri `exec.approval.resolve` çağırarak çözümler (`operator.approvals` kapsamı gerekir). -- `host=node` için `exec.approval.request`, `systemRunPlan` - (kanonik `argv`/`cwd`/`rawCommand`/oturum meta verileri) içermelidir. `systemRunPlan` içermeyen istekler reddedilir. -- Onaydan sonra iletilen `node.invoke system.run` çağrıları, yetkili komut/cwd/oturum bağlamı olarak - bu kanonik `systemRunPlan`'ı yeniden kullanır. -- Bir çağıran, hazırlık ile son onaylı `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. +- 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ı gerektirir). +- `host=node` için `exec.approval.request`, `systemRunPlan` (kanonik `argv`/`cwd`/`rawCommand`/oturum meta verileri) içermelidir. `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, hazırlık ile son onaylanmış `system.run` iletimi arasında + `command`, `rawCommand`, `cwd`, `agentId` veya `sessionKey` alanlarını değiştirirse, + gateway değiştirilmiş yüke güvenmek yerine çalıştırmayı reddeder. -## Agent teslim geri dönüşü +## Ajan teslim yedeği -- `agent` istekleri, giden teslim istemek için `deliver=true` içerebilir. -- `bestEffortDeliver=false` katı davranışı korur: çözümlenmemiş veya yalnızca iç kullanım teslim hedefleri `INVALID_REQUEST` döndürür. -- `bestEffortDeliver=true`, harici teslim edilebilir bir rota çözümlenemediğinde - yalnızca oturum yürütmesine geri dönüşe izin verir (örneğin iç/webchat oturumları veya belirsiz çok kanallı yapılandırmalar). +- `agent` istekleri, giden teslim isteğinde bulunmak 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 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.ts` içinde bulunur. -- İstemciler `minProtocol` + `maxProtocol` gönderir; sunucu uyumsuzlukları reddeder. +- İstemciler `minProtocol` + `maxProtocol` gönderir; sunucu uyuşmazlıkları reddeder. - Şemalar + modeller TypeBox tanımlarından oluşturulur: - `pnpm protocol:gen` - `pnpm protocol:gen:swift` @@ -490,100 +446,77 @@ içinde uygulanan çağrılabilir her yardımcı işlevin oluşturulmuş döküm ## Kimlik doğrulama -- Paylaşılan gizli gateway kimlik doğrulaması, yapılandırılmış auth moduna bağlı olarak - `connect.params.auth.token` veya `connect.params.auth.password` kullanır. -- Tailscale Serve +- Paylaşılan gizli anahtar kullanan 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 gibi kimlik taşıyan modlar (`gateway.auth.allowTailscale: true`) veya loopback olmayan - `gateway.auth.mode: "trusted-proxy"` gibi kimlik taşıyan modlar, connect auth denetimini - `connect.params.auth.*` yerine istek başlıklarından karşılar. -- Özel giriş `gateway.auth.mode: "none"`, paylaşılan gizli connect auth denetimini - tamamen atlar; bu modu genel/güvenilmeyen girişte açığa çıkarmayın. -- Eşleştirmeden sonra Gateway, bağlantı rolü + kapsamlarına göre sınırlı bir **device token** - verir. Bu değer `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 **depolanmış** device token ile yeniden bağlanmak, o token için onaylanmış - depolanmış kapsam kümesini de yeniden kullanmalıdır. Bu, zaten verilmiş olan - read/probe/status erişimini korur ve yeniden bağlantıların sessizce - daha dar örtük bir yalnızca yönetici kapsamına çökmesini önler. -- Normal connect auth önceliği sırasıyla açık paylaşılan token/parola, sonra - açık `deviceToken`, sonra cihaz başına depolanmış token, sonra bootstrap token'dır. -- Ek `hello-ok.auth.deviceTokens` girdileri bootstrap devri token'larıdır. - Bunları yalnızca bağlantı bootstrap auth ile güvenilir bir taşıma üzerinden - yapıldıysa, örneğin `wss://` veya loopback/yerel eşleştirme, kalıcı hale getirin. -- Bir istemci açık bir `deviceToken` veya açık `scopes` sağlarsa, bu - çağıran tarafından istenen kapsam kümesi yetkili olmaya devam eder; önbelleğe alınmış kapsamlar yalnızca - istemci depolanmış cihaz başı token'ı yeniden kullandığında yeniden kullanılır. -- Device token'lar `device.token.rotate` ve - `device.token.revoke` ile döndürülebilir/iptal edilebilir (`operator.pairing` kapsamı gerekir). -- Token verme/döndürme, o cihazın eşleştirme girdisinde kaydedilmiş onaylı rol kümesiyle - sınırlı kalır; bir token'ı döndürmek, cihazı eşleştirme onayının hiç vermediği - bir role genişletemez. -- Eşleştirilmiş cihaz token oturumlarında cihaz yönetimi, çağıran ayrıca - `operator.admin` yetkisine sahip değilse kendine kapsamlıdır: yönetici olmayan çağıranlar - yalnızca **kendi** cihaz girdilerini kaldırabilir/iptal edebilir/döndürebilir. -- `device.token.rotate`, istenen operator kapsam kümesini ayrıca çağıranın geçerli - oturum kapsamlarıyla karşılaştırır. Yönetici olmayan çağıranlar, bir token'ı - zaten sahip olduklarından daha geniş bir operator kapsam kümesine döndüremez. + `gateway.auth.mode: "trusted-proxy"`, bağlantı kimlik doğrulama denetimini + `connect.params.auth.*` yerine istek üst bilgileri üzerinden karşılar. +- Özel giriş `gateway.auth.mode: "none"`, paylaşılan gizli anahtar bağlantı kimlik doğrulamasını tamamen atlar; bu modu herkese açık/güvenilmeyen girişte açığa çıkarmayın. +- Eşleştirmeden sonra Gateway, bağlantı rolü + kapsamlarına göre kapsamlandırılmış bir **cihaz token’ı** verir. Bu değer `hello-ok.auth.deviceToken` içinde döner ve istemci tarafından sonraki bağlantılar için kalıcı olarak saklanmalıdır. +- İstemciler, başarılı her bağlantıdan sonra birincil `hello-ok.auth.deviceToken` değerini kalıcı olarak saklamalıdır. +- Bu **saklanan** cihaz token’ı ile yeniden bağlanırken, o token için saklanan onaylı kapsam kümesi de yeniden kullanılmalıdır. Bu, daha önce verilmiş okuma/yoklama/durum erişimini korur ve yeniden bağlantıların sessizce daha dar örtük bir yalnızca yönetici kapsamına çökmesini önler. +- Normal bağlantı kimlik doğrulama önceliği şu şekildedir: önce açık paylaşılan token/parola, sonra açık `deviceToken`, sonra cihaz başına saklanan token, sonra önyükleme token’ı. +- Ek `hello-ok.auth.deviceTokens` girdileri, önyükleme devri token’larıdır. + Bunları yalnızca bağlantı `wss://` veya loopback/yerel eşleştirme gibi güvenilir bir taşıma üzerinden ö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 bu kapsam kümesi yetkili kalır; önbelleğe alınmış kapsamlar yalnızca istemci cihaz başına saklanan token’ı yeniden kullanıyorsa yeniden kullanılır. +- Cihaz token’ları `device.token.rotate` ve `device.token.revoke` ile döndürülebilir/iptal edilebilir (`operator.pairing` kapsamı gerektirir). +- Token verme/döndürme işlemleri, cihazın eşleştirme girdisinde kaydedilen onaylı rol kümesiyle sınırlı kalır; bir token’ı döndürmek, cihazı eşleştirme onayının hiç vermediği bir role genişletemez. +- Eşleştirilmiş cihaz token oturumları için, çağıranın ayrıca `operator.admin` yetkisi yoksa cihaz yönetimi kendisiyle sınırlıdır: yönetici olmayan çağıranlar yalnızca **kendi** cihaz girdilerini kaldırabilir/iptal edebilir/döndürebilir. +- `device.token.rotate`, istenen operatör kapsam kümesini de çağıranın geçerli oturum kapsamlarına göre denetler. Yönetici olmayan çağıranlar, bir token’ı zaten sahip olduklarından daha geniş bir operatör kapsam kümesine döndüremez. - Kimlik doğrulama hataları `error.details.code` ile birlikte kurtarma ipuçları 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şı token ile bir sınırlı yeniden deneme yapabilir. - - Bu yeniden deneme başarısız olursa istemciler otomatik yeniden bağlanma döngülerini durdurmalı ve operator eylem yönergelerini göstermelidir. + - Güvenilir istemciler, önbelleğe alınmış cihaz başına token ile tek bir sınırlı yeniden deneme yapabilir. + - Bu yeniden deneme başarısız olursa, istemciler otomatik yeniden bağlanma döngülerini durdurmalı ve operatör eylem kılavuzunu göstermelidir. ## Cihaz kimliği + eşleştirme -- Node'lar, bir anahtar çiftinin parmak izinden türetilmiş kararlı bir cihaz kimliği (`device.id`) içermelidir. -- Gateway'ler cihaz + rol başına token verir. +- Düğümler, anahtar çifti parmak izinden türetilmiş kararlı bir cihaz kimliği (`device.id`) içermelidir. +- Gateway’ler cihaz + rol başına token verir. - Yerel otomatik onay etkin değilse yeni cihaz kimlikleri için eşleştirme onayı gerekir. -- Eşleştirme otomatik onayı, doğrudan yerel loopback bağlantıları etrafında merkezlenmiştir. -- OpenClaw ayrıca güvenilir paylaşılan gizli yardımcı akışları için dar bir - arka uç/container-yerel self-connect yoluna da sahiptir. -- Aynı ana makinedeki tailnet veya LAN bağlantıları eşleştirme açısından hâlâ uzak kabul edilir - ve onay gerektirir. +- Eşleştirme otomatik onayı, doğrudan yerel local loopback bağlantıları etrafında şekillenir. +- OpenClaw ayrıca güvenilir paylaşılan gizli anahtar yardımcı akışları için dar kapsamlı bir backend/kapsayıcı-yerel self-connect yoluna da sahiptir. +- Aynı ana bilgisayar üzerindeki tailnet veya LAN bağlantıları, eşleştirme açısından yine uzak olarak değerlendirilir ve onay gerektirir. - Tüm WS istemcileri `connect` sırasında `device` kimliğini içermelidir (operator + node). - Control UI bunu yalnızca şu modlarda atlayabilir: - - yalnızca localhost için güvensiz HTTP uyumluluğu sağlayan `gateway.controlUi.allowInsecureAuth=true`. - - başarılı `gateway.auth.mode: "trusted-proxy"` operator Control UI auth. - - `gateway.controlUi.dangerouslyDisableDeviceAuth=true` (break-glass, ciddi güvenlik düşüşü). + Control UI yalnızca şu modlarda bunu atlayabilir: + - yalnızca localhost için güvensiz HTTP uyumluluğunda `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üşüşü). - Tüm bağlantılar, sunucu tarafından sağlanan `connect.challenge` nonce değerini imzalamalıdır. ### Cihaz kimlik doğrulama geçiş tanılamaları -Hâlâ challenge öncesi imzalama davranışı kullanan eski istemciler için `connect`, -sabit bir `error.details.reason` ile birlikte artık `error.details.code` altında -`DEVICE_AUTH_*` ayrıntı kodları döndürür. +Hâlâ challenge öncesi imzalama davranışını kullanan eski istemciler için `connect`, +artık `error.details.reason` altında kararlı bir değerle birlikte `error.details.code` +içinde `DEVICE_AUTH_*` ayrıntı kodları döndürür. Yaygın geçiş hataları: -| Mesaj | details.code | details.reason | Anlamı | -| --------------------------- | -------------------------------- | ------------------------ | ------------------------------------------------- | +| Mesaj | details.code | details.reason | Anlamı | +| --------------------------- | -------------------------------- | ------------------------ | -------------------------------------------------- | | `device nonce required` | `DEVICE_AUTH_NONCE_REQUIRED` | `device-nonce-missing` | İstemci `device.nonce` alanını atladı (veya boş gönderdi). | -| `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ü ile eşleşmiyor. | -| `device signature expired` | `DEVICE_AUTH_SIGNATURE_EXPIRED` | `device-signature-stale` | İmzalanan zaman damgası izin verilen kaymanın dışında. | +| `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` | İmzalanmış zaman damgası izin verilen kaymanı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/kanonikleştirme başarısız oldu. | +| `device public key invalid` | `DEVICE_AUTH_PUBLIC_KEY_INVALID` | `device-public-key` | Açık anahtar biçimi/kanonikleştirmesi başarısız oldu. | Geçiş hedefi: - Her zaman `connect.challenge` 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ü `v3`'tür; bu, `platform` ve `deviceFamily` alanlarını, - device/client/role/scopes/token/nonce alanlarına ek olarak 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 kontrol etmeyi sürdürür. +- Tercih edilen imza yükü `v3`’tür; bu, device/client/role/scopes/token/nonce alanlarına ek olarak `platform` ve `deviceFamily` alanlarını da bağlar. +- Eski `v2` imzaları uyumluluk için kabul edilmeye devam eder, ancak eşleştirilmiş cihaz meta verisi sabitlemesi yeniden bağlantıda komut ilkesini yine de denetler. ## TLS + pinleme - WS bağlantıları için TLS desteklenir. -- İstemciler isteğe bağlı olarak gateway sertifika parmak izini pinleyebilir - (`gateway.tls` yapılandırması ile `gateway.remote.tlsFingerprint` veya CLI `--tls-fingerprint` değerlerine bakın). +- İstemciler isteğe bağlı olarak gateway sertifika parmak izini pinleyebilir (`gateway.tls` yapılandırmasına ve ayrıca `gateway.remote.tlsFingerprint` veya CLI `--tls-fingerprint` seçeneğine bakın). ## Kapsam -Bu protokol **tam gateway API'sini** açığa çıkarır (durum, kanallar, modeller, chat, -agent, oturumlar, node'lar, onaylar vb.). Tam yüzey, -`src/gateway/protocol/schema.ts` içindeki TypeBox şemalarıyla tanımlanır. +Bu protokol **tam gateway API’sini** açığa çıkarır (durum, kanallar, modeller, sohbet, +ajan, oturumlar, düğümler, onaylar vb.). Kesin yüzey, `src/gateway/protocol/schema.ts` +içindeki TypeBox şemaları tarafından tanımlanır. diff --git a/docs/tr/help/testing.md b/docs/tr/help/testing.md index 641faeceb..8563ef74d 100644 --- a/docs/tr/help/testing.md +++ b/docs/tr/help/testing.md @@ -1,284 +1,303 @@ --- read_when: - - Testleri yerelde veya CI içinde çalıştırma - - Model/sağlayıcı hataları için regresyon ekleme - - Gateway + ajan davranışını hata ayıklama -summary: 'Test kiti: unit/e2e/live paketleri, Docker çalıştırıcıları ve her testin neyi kapsadığı' -title: Testler + - Testleri yerel olarak veya CI içinde çalıştırma + - Model/sağlayıcı hataları için regresyonlar ekleme + - Gateway + agent davranışında hata ayıklama +summary: 'Test kiti: birim/e2e/canlı paketleri, Docker çalıştırıcıları ve her testin neleri kapsadığı' +title: Test Etme x-i18n: - generated_at: "2026-04-09T01:30:43Z" + generated_at: "2026-04-10T08:50:02Z" model: gpt-5.4 provider: openai - source_hash: 01117f41d8b171a4f1da11ed78486ee700e70ae70af54eb6060c57baf64ab21b + source_hash: 21b78e59a5189f4e8e6e1b490d350f4735c0395da31d21fc5d10b825313026b4 source_path: help/testing.md workflow: 15 --- -# Testler +# Test Etme -OpenClaw'ın üç Vitest paketi (unit/integration, e2e, live) ve küçük bir Docker çalıştırıcı kümesi vardır. +OpenClaw'ın üç Vitest paketi (birim/entegrasyon, e2e, canlı) ve küçük bir Docker çalıştırıcıları kümesi vardır. Bu belge bir “nasıl test ediyoruz” kılavuzudur: -- Her paketin neyi kapsadığı (ve bilerek neyi _kapsamadığı_) +- Her paketin neleri kapsadığı (ve özellikle neleri _kapsamadığı_) - Yaygın iş akışları için hangi komutların çalıştırılacağı (yerel, push öncesi, hata ayıklama) -- Live testlerin kimlik bilgilerini nasıl keşfettiği ve modelleri/sağlayıcıları nasıl seçtiği +- Canlı testlerin kimlik bilgilerini nasıl bulduğu ve model/sağlayıcıları nasıl seçtiği - Gerçek dünyadaki model/sağlayıcı sorunları için nasıl regresyon ekleneceği ## Hızlı başlangıç Çoğu gün: -- Tam kapı (push öncesinde beklenir): `pnpm build && pnpm check && pnpm test` +- Tam kapı (push öncesinde beklenen): `pnpm build && pnpm check && pnpm test` - Geniş kaynaklı bir makinede daha hızlı yerel tam paket çalıştırması: `pnpm test:max` - Doğrudan Vitest izleme döngüsü: `pnpm test:watch` -- Doğrudan dosya hedefleme artık extension/channel yollarını da yönlendiriyor: `pnpm test extensions/discord/src/monitor/message-handler.preflight.test.ts` +- Doğrudan dosya hedefleme artık extension/channel yollarını da yönlendirir: `pnpm test extensions/discord/src/monitor/message-handler.preflight.test.ts` +- Tek bir hata üzerinde yineleme yapıyorsanız önce hedefli çalıştırmaları tercih edin. - Docker destekli QA sitesi: `pnpm qa:lab:up` +- Linux VM destekli QA hattı: `pnpm openclaw qa suite --runner multipass --scenario channel-chat-baseline` -Testlere dokunduğunuzda veya daha fazla güven istediğinizde: +Testlere dokunduğunuzda veya ek güven istediğinizde: -- Kapsam kapısı: `pnpm test:coverage` +- Kapsama kapısı: `pnpm test:coverage` - E2E paketi: `pnpm test:e2e` -Gerçek sağlayıcıları/modelleri hata ayıklarken (gerçek kimlik bilgileri gerekir): +Gerçek sağlayıcılar/modeller üzerinde hata ayıklarken (gerçek kimlik bilgileri gerekir): -- Live paketi (modeller + gateway tool/image yoklamaları): `pnpm test:live` -- Tek bir live dosyasını sessizce hedefleme: `pnpm test:live -- src/agents/models.profiles.live.test.ts` +- Canlı paket (modeller + gateway araç/görüntü probları): `pnpm test:live` +- Tek bir canlı dosyayı sessizce hedefleyin: `pnpm test:live -- src/agents/models.profiles.live.test.ts` -İpucu: yalnızca tek bir başarısız duruma ihtiyacınız olduğunda, aşağıda açıklanan izin listesi ortam değişkenleriyle live testleri daraltmayı tercih edin. +İpucu: yalnızca tek bir başarısız duruma ihtiyacınız varsa, aşağıda açıklanan allowlist ortam değişkenleriyle canlı testleri daraltmayı tercih edin. -## Test paketleri (hangisi nerede çalışır) +## QA'ya özel çalıştırıcılar -Paketleri “artan gerçeklik” (ve artan oynaklık/maliyet) olarak düşünün: +QA-lab gerçekçiliğine ihtiyaç duyduğunuzda bu komutlar ana test paketlerinin yanında yer alır: -### Unit / integration (varsayılan) +- `pnpm openclaw qa suite` + - Repo destekli QA senaryolarını doğrudan host üzerinde çalıştırır. +- `pnpm openclaw qa suite --runner multipass` + - Aynı QA paketini tek kullanımlık bir Multipass Linux VM içinde çalıştırır. + - Host üzerindeki `qa suite` ile aynı senaryo seçim davranışını korur. + - `qa suite` ile aynı sağlayıcı/model seçim bayraklarını yeniden kullanır. + - Canlı çalıştırmalar, misafir için pratik olan desteklenen QA kimlik doğrulama girdilerini iletir: + ortam tabanlı sağlayıcı anahtarları, QA canlı sağlayıcı yapılandırma yolu ve mevcutsa `CODEX_HOME`. + - Çıktı dizinleri repo kökü altında kalmalıdır; böylece misafir bağlanmış çalışma alanı üzerinden geri yazabilir. + - Normal QA raporunu + özeti ve ayrıca Multipass günlüklerini `.artifacts/qa-e2e/...` altında yazar. +- `pnpm qa:lab:up` + - Operatör tarzı QA çalışması için Docker destekli QA sitesini başlatır. + +## Test paketleri (nerede ne çalışır) + +Paketleri “artan gerçekçilik” (ve artan kararsızlık/maliyet) olarak düşünün: + +### Birim / entegrasyon (varsayılan) - Komut: `pnpm test` - Yapılandırma: mevcut kapsamlı Vitest projeleri üzerinde on sıralı shard çalıştırması (`vitest.full-*.config.ts`) -- Dosyalar: `src/**/*.test.ts`, `packages/**/*.test.ts`, `test/**/*.test.ts` altındaki core/unit envanterleri ve `vitest.unit.config.ts` kapsamında yer alan izinli `ui` node testleri +- Dosyalar: `src/**/*.test.ts`, `packages/**/*.test.ts`, `test/**/*.test.ts` altındaki core/birim envanterleri ve `vitest.unit.config.ts` tarafından kapsanan allowlist içindeki `ui` node testleri - Kapsam: - - Saf unit testleri - - Süreç içi integration testleri (gateway auth, routing, araçlar, ayrıştırma, yapılandırma) + - Saf birim testleri + - Süreç içi entegrasyon testleri (gateway auth, routing, tooling, parsing, config) - Bilinen hatalar için deterministik regresyonlar - Beklentiler: - CI içinde çalışır - - Gerçek anahtarlar gerekmez + - Gerçek anahtar gerekmez - Hızlı ve kararlı olmalıdır - Projeler notu: - - Hedeflenmemiş `pnpm test`, artık tek bir devasa yerel root-project süreci yerine on bir daha küçük shard yapılandırması (`core-unit-src`, `core-unit-security`, `core-unit-ui`, `core-unit-support`, `core-support-boundary`, `core-contracts`, `core-bundled`, `core-runtime`, `agentic`, `auto-reply`, `extensions`) çalıştırır. Bu, yoğun makinelerde en yüksek RSS'yi azaltır ve auto-reply/extension işlerinin ilgisiz paketleri aç bırakmasını önler. - - `pnpm test --watch`, çok shard'lı bir izleme döngüsü pratik olmadığı için yine de yerel root `vitest.config.ts` proje grafiğini kullanır. - - `pnpm test`, `pnpm test:watch` ve `pnpm test:perf:imports`, açık dosya/dizin hedeflerini önce kapsamlı hatlar üzerinden yönlendirir; böylece `pnpm test extensions/discord/src/monitor/message-handler.preflight.test.ts` tam root proje başlangıç maliyetini ödemez. - - `pnpm test:changed`, fark yalnızca yönlendirilebilir kaynak/test dosyalarına dokunuyorsa değişen git yollarını aynı kapsamlı hatlara genişletir; config/setup düzenlemeleri ise yine geniş root-project yeniden çalıştırmasına döner. - - Seçili `plugin-sdk` ve `commands` testleri de `test/setup-openclaw-runtime.ts` dosyasını atlayan özel hafif hatlar üzerinden yönlendirilir; durumlu/çalışma zamanı açısından ağır dosyalar mevcut hatlarda kalır. - - Seçili `plugin-sdk` ve `commands` yardımcı kaynak dosyaları da changed-mode çalıştırmalarını bu hafif hatlardaki açık kardeş testlere eşler; böylece yardımcı düzenlemeleri o dizin için tam ağır paketi yeniden çalıştırmaz. - - `auto-reply` artık üç özel kovaya sahiptir: üst düzey core yardımcıları, üst düzey `reply.*` integration testleri ve `src/auto-reply/reply/**` alt ağacı. Bu, en ağır reply harness işini ucuz status/chunk/token testlerinden uzak tutar. + - Hedeflenmemiş `pnpm test` artık tek büyük native root-project süreci yerine on bir küçük shard yapılandırması (`core-unit-src`, `core-unit-security`, `core-unit-ui`, `core-unit-support`, `core-support-boundary`, `core-contracts`, `core-bundled`, `core-runtime`, `agentic`, `auto-reply`, `extensions`) çalıştırır. Bu, yüklü makinelerde tepe RSS değerini düşürür ve auto-reply/extension işlerinin ilgisiz paketleri aç bırakmasını önler. + - `pnpm test --watch` hâlâ native root `vitest.config.ts` proje grafiğini kullanır; çünkü çok shard'lı bir izleme döngüsü pratik değildir. + - `pnpm test`, `pnpm test:watch` ve `pnpm test:perf:imports`, açık dosya/dizin hedeflerini önce kapsamlı hatlar üzerinden yönlendirir; bu yüzden `pnpm test extensions/discord/src/monitor/message-handler.preflight.test.ts` tam root proje başlangıç maliyetini ödemez. + - `pnpm test:changed`, fark yalnızca yönlendirilebilir kaynak/test dosyalarına dokunuyorsa değişen git yollarını aynı kapsamlı hatlara genişletir; config/setup düzenlemeleri yine geniş root-project yeniden çalıştırmasına geri döner. + - Seçili `plugin-sdk` ve `commands` testleri de artık `test/setup-openclaw-runtime.ts` dosyasını atlayan özel hafif hatlar üzerinden yönlendirilir; durum bilgili/runtime açısından ağır dosyalar mevcut hatlarda kalır. + - Seçili `plugin-sdk` ve `commands` yardımcı kaynak dosyaları da değişmiş mod çalıştırmalarını bu hafif hatlardaki açık kardeş testlere eşler; böylece yardımcı düzenlemeleri o dizin için tam ağır paketi yeniden çalıştırmaz. + - `auto-reply` artık üç özel kovaya sahiptir: üst düzey core yardımcıları, üst düzey `reply.*` entegrasyon testleri ve `src/auto-reply/reply/**` alt ağacı. Bu, en ağır reply harness işini ucuz status/chunk/token testlerinden uzak tutar. - Gömülü çalıştırıcı notu: - - Mesaj-tool keşif girdilerini veya compaction çalışma zamanı bağlamını değiştirdiğinizde, her iki kapsama düzeyini de koruyun. - - Saf routing/normalization sınırları için odaklı yardımcı regresyonlar ekleyin. - - Ayrıca gömülü çalıştırıcı integration paketlerini de sağlıklı tutun: + - Mesaj aracı keşif girdilerini veya compaction runtime bağlamını değiştirdiğinizde, her iki kapsama düzeyini de koruyun. + - Saf routing/normalization sınırları için odaklı yardımcı regresyonları ekleyin. + - Ayrıca gömülü çalıştırıcı entegrasyon paketlerini de sağlıklı tutun: `src/agents/pi-embedded-runner/compact.hooks.test.ts`, `src/agents/pi-embedded-runner/run.overflow-compaction.test.ts` ve `src/agents/pi-embedded-runner/run.overflow-compaction.loop.test.ts`. - - Bu paketler, kapsamlı kimliklerin ve compaction davranışının gerçek `run.ts` / `compact.ts` yollarından geçmeye devam ettiğini doğrular; yalnızca yardımcı testleri bu integration yolları için yeterli bir ikame değildir. -- Havuz notu: + - Bu paketler, kapsamlı id'lerin ve compaction davranışının gerçek `run.ts` / `compact.ts` yolları boyunca akmaya devam ettiğini doğrular; yalnızca yardımcı testleri bu entegrasyon yollarının yeterli bir yerine geçmez. +- Pool notu: - Temel Vitest yapılandırması artık varsayılan olarak `threads` kullanır. - - Paylaşılan Vitest yapılandırması ayrıca `isolate: false` ayarlar ve yalıtılmamış çalıştırıcıyı root projeleri, e2e ve live yapılandırmaları genelinde kullanır. - - Root UI hattı kendi `jsdom` kurulumunu ve optimizer'ını korur, ancak artık paylaşılan yalıtılmamış çalıştırıcıda çalışır. - - Her `pnpm test` shard'ı, paylaşılan Vitest yapılandırmasından aynı `threads` + `isolate: false` varsayılanlarını devralır. - - Paylaşılan `scripts/run-vitest.mjs` başlatıcısı artık büyük yerel çalıştırmalar sırasında V8 derleme çalkantısını azaltmak için varsayılan olarak Vitest alt Node süreçlerine `--no-maglev` de ekler. Stok V8 davranışıyla karşılaştırmanız gerekiyorsa `OPENCLAW_VITEST_ENABLE_MAGLEV=1` ayarlayın. + - Paylaşılan Vitest yapılandırması ayrıca `isolate: false` sabitler ve root projeleri, e2e ve canlı yapılandırmalarda izole edilmemiş çalıştırıcıyı kullanır. + - Root UI hattı `jsdom` kurulumunu ve optimizer'ını korur, ancak artık paylaşılan izole edilmemiş çalıştırıcı üzerinde çalışır. + - Her `pnpm test` shard'ı paylaşılan Vitest yapılandırmasından aynı `threads` + `isolate: false` varsayılanlarını devralır. + - Paylaşılan `scripts/run-vitest.mjs` başlatıcısı artık büyük yerel çalıştırmalarda V8 derleme dalgalanmasını azaltmak için Vitest alt Node süreçlerine varsayılan olarak `--no-maglev` de ekler. Stok V8 davranışıyla karşılaştırmanız gerekiyorsa `OPENCLAW_VITEST_ENABLE_MAGLEV=1` ayarlayın. - Hızlı yerel yineleme notu: - - `pnpm test:changed`, değişen yollar daha küçük bir pakete temiz şekilde eşleniyorsa kapsamlı hatlar üzerinden yönlendirilir. - - `pnpm test:max` ve `pnpm test:changed:max` aynı yönlendirme davranışını korur; yalnızca daha yüksek bir worker sınırıyla. - - Yerel worker otomatik ölçeklendirmesi artık bilerek daha tutucudur ve ana makinenin yük ortalaması zaten yüksek olduğunda da geri çekilir; böylece aynı anda çalışan birden çok Vitest süreci varsayılan olarak daha az zarar verir. - - Temel Vitest yapılandırması, test kablolaması değiştiğinde changed-mode yeniden çalıştırmaların doğru kalması için projeleri/yapılandırma dosyalarını `forceRerunTriggers` olarak işaretler. - - Yapılandırma, desteklenen ana makinelerde `OPENCLAW_VITEST_FS_MODULE_CACHE` özelliğini etkin tutar; doğrudan profiling için tek bir açık önbellek konumu istiyorsanız `OPENCLAW_VITEST_FS_MODULE_CACHE_PATH=/abs/path` ayarlayın. + - `pnpm test:changed`, değişen yollar daha küçük bir pakete temiz biçimde eşleniyorsa kapsamlı hatlar üzerinden yönlendirilir. + - `pnpm test:max` ve `pnpm test:changed:max` aynı yönlendirme davranışını korur; yalnızca daha yüksek çalışan sınırıyla. + - Yerel çalışan otomatik ölçeklendirmesi artık bilerek daha tutucudur ve host yük ortalaması zaten yüksek olduğunda da geri çekilir; böylece birden fazla eşzamanlı Vitest çalıştırması varsayılan olarak daha az zarar verir. + - Temel Vitest yapılandırması, test kablolaması değiştiğinde changed-mode yeniden çalıştırmalar doğru kalsın diye proje/yapılandırma dosyalarını `forceRerunTriggers` olarak işaretler. + - Yapılandırma desteklenen host'larda `OPENCLAW_VITEST_FS_MODULE_CACHE` özelliğini etkin tutar; doğrudan profil çıkarmak için tek bir açık önbellek konumu istiyorsanız `OPENCLAW_VITEST_FS_MODULE_CACHE_PATH=/abs/path` ayarlayın. - Performans hata ayıklama notu: - - `pnpm test:perf:imports`, Vitest import-duration raporlamasını ve import-breakdown çıktısını etkinleştirir. - - `pnpm test:perf:imports:changed`, aynı profiling görünümünü `origin/main` sonrası değişen dosyalarla sınırlar. -- `pnpm test:perf:changed:bench -- --ref `, yönlendirilmiş `test:changed` ile o commit edilmiş fark için yerel root-project yolunu karşılaştırır ve duvar saati süresi ile macOS maksimum RSS'yi yazdırır. -- `pnpm test:perf:changed:bench -- --worktree`, mevcut kirli ağacı değişen dosya listesini `scripts/test-projects.mjs` ve root Vitest yapılandırması üzerinden yönlendirerek kıyaslar. - - `pnpm test:perf:profile:main`, Vitest/Vite başlangıcı ve transform yükü için bir ana iş parçacığı CPU profili yazar. - - `pnpm test:perf:profile:runner`, unit paketi için dosya paralelliği devre dışıyken çalıştırıcı CPU+heap profilleri yazar. + - `pnpm test:perf:imports`, Vitest içe aktarma süresi raporlamasını ve içe aktarma kırılımı çıktısını etkinleştirir. + - `pnpm test:perf:imports:changed`, aynı profil görünümünü `origin/main` üzerinden değişen dosyalarla sınırlar. +- `pnpm test:perf:changed:bench -- --ref `, yönlendirilmiş `test:changed` ile o commit edilmiş fark için native root-project yolunu karşılaştırır ve duvar saati süresini artı macOS azami RSS'i yazdırır. +- `pnpm test:perf:changed:bench -- --worktree`, değişen dosya listesini `scripts/test-projects.mjs` ve root Vitest yapılandırması üzerinden yönlendirerek mevcut kirli ağacı kıyaslar. + - `pnpm test:perf:profile:main`, Vitest/Vite başlangıcı ve dönüştürme ek yükü için bir main-thread CPU profili yazar. + - `pnpm test:perf:profile:runner`, birim paketi için dosya paralelliği kapalıyken çalıştırıcı CPU+heap profilleri yazar. ### E2E (gateway smoke) - Komut: `pnpm test:e2e` - Yapılandırma: `vitest.e2e.config.ts` - Dosyalar: `src/**/*.e2e.test.ts`, `test/**/*.e2e.test.ts` -- Çalışma zamanı varsayılanları: - - Deponun geri kalanıyla eşleşecek şekilde Vitest `threads` ile `isolate: false` kullanır. - - Uyarlanabilir worker'lar kullanır (CI: en fazla 2, yerel: varsayılan 1). +- Runtime varsayılanları: + - Repo'nun geri kalanıyla eşleşecek şekilde Vitest `threads` ile `isolate: false` kullanır. + - Uyarlanabilir çalışanlar kullanır (CI: en fazla 2, yerel: varsayılan olarak 1). - Konsol G/Ç yükünü azaltmak için varsayılan olarak sessiz modda çalışır. - Yararlı geçersiz kılmalar: - - Worker sayısını zorlamak için `OPENCLAW_E2E_WORKERS=` (üst sınır 16). + - Çalışan sayısını zorlamak için `OPENCLAW_E2E_WORKERS=` (üst sınır 16). - Ayrıntılı konsol çıktısını yeniden etkinleştirmek için `OPENCLAW_E2E_VERBOSE=1`. - Kapsam: - Çok örnekli gateway uçtan uca davranışı - - WebSocket/HTTP yüzeyleri, node eşleme ve daha ağır ağ işlemleri + - WebSocket/HTTP yüzeyleri, node eşleştirme ve daha ağır ağ kullanımı - Beklentiler: - CI içinde çalışır (boru hattında etkinleştirildiğinde) - - Gerçek anahtarlar gerekmez - - Unit testlerinden daha fazla hareketli parça vardır (daha yavaş olabilir) + - Gerçek anahtar gerekmez + - Birim testlerinden daha fazla hareketli parçaya sahiptir (daha yavaş olabilir) -### E2E: OpenShell arka uç smoke +### E2E: OpenShell backend smoke - Komut: `pnpm test:e2e:openshell` - Dosya: `test/openshell-sandbox.e2e.test.ts` - Kapsam: - - Docker aracılığıyla ana makinede yalıtılmış bir OpenShell gateway başlatır - - Geçici bir yerel Dockerfile'dan bir sandbox oluşturur - - OpenClaw'ın OpenShell arka ucunu gerçek `sandbox ssh-config` + SSH exec üzerinden çalıştırır - - Uzak-kanonik dosya sistemi davranışını sandbox fs bridge üzerinden doğrular + - Docker aracılığıyla host üzerinde yalıtılmış bir OpenShell gateway başlatır + - Geçici bir yerel Dockerfile'dan sandbox oluşturur + - OpenClaw'ın OpenShell backend'ini gerçek `sandbox ssh-config` + SSH exec üzerinden çalıştırır + - Sandbox fs bridge üzerinden remote-canonical dosya sistemi davranışını doğrular - Beklentiler: - - Yalnızca isteğe bağlıdır; varsayılan `pnpm test:e2e` çalıştırmasının parçası değildir + - Yalnızca isteğe bağlıdır; varsayılan `pnpm test:e2e` çalıştırmasının bir parçası değildir - Yerel bir `openshell` CLI ve çalışan bir Docker daemon gerektirir - - Yalıtılmış `HOME` / `XDG_CONFIG_HOME` kullanır, ardından test gateway'ini ve sandbox'ı yok eder + - Yalıtılmış `HOME` / `XDG_CONFIG_HOME` kullanır, ardından test gateway ve sandbox'ını yok eder - Yararlı geçersiz kılmalar: - Daha geniş e2e paketini elle çalıştırırken testi etkinleştirmek için `OPENCLAW_E2E_OPENSHELL=1` - - Varsayılan olmayan bir CLI binary'si veya wrapper script'ine işaret etmek için `OPENCLAW_E2E_OPENSHELL_COMMAND=/path/to/openshell` + - Varsayılan olmayan bir CLI ikilisi veya wrapper script işaret etmek için `OPENCLAW_E2E_OPENSHELL_COMMAND=/path/to/openshell` -### Live (gerçek sağlayıcılar + gerçek modeller) +### Canlı (gerçek sağlayıcılar + gerçek modeller) - Komut: `pnpm test:live` - Yapılandırma: `vitest.live.config.ts` - Dosyalar: `src/**/*.live.test.ts` - Varsayılan: `pnpm test:live` tarafından **etkinleştirilir** (`OPENCLAW_LIVE_TEST=1` ayarlar) - Kapsam: - - “Bu sağlayıcı/model _bugün_ gerçek kimlik bilgileriyle gerçekten çalışıyor mu?” - - Sağlayıcı biçim değişikliklerini, tool-calling tuhaflıklarını, auth sorunlarını ve rate limit davranışını yakalar + - “Bu sağlayıcı/model bugün gerçek kimlik bilgileriyle gerçekten çalışıyor mu?” + - Sağlayıcı biçim değişikliklerini, araç çağırma tuhaflıklarını, auth sorunlarını ve rate limit davranışını yakalar - Beklentiler: - - Tasarım gereği CI'da kararlı değildir (gerçek ağlar, gerçek sağlayıcı politikaları, kotalar, kesintiler) + - Tasarım gereği CI içinde kararlı değildir (gerçek ağlar, gerçek sağlayıcı politikaları, kotalar, kesintiler) - Para harcar / rate limit kullanır - - “Her şeyi” yerine daraltılmış alt kümeleri çalıştırmak tercih edilmelidir -- Live çalıştırmalar, eksik API anahtarlarını almak için `~/.profile` dosyasını source eder. -- Varsayılan olarak live çalıştırmalar yine de `HOME` dizinini yalıtır ve config/auth materyallerini geçici bir test home'una kopyalar; böylece unit fixture'ları gerçek `~/.openclaw` dizininizi değiştiremez. -- Live testlerin gerçek home dizininizi kullanmasını kasıtlı olarak istediğiniz durumlarda yalnızca `OPENCLAW_LIVE_USE_REAL_HOME=1` ayarlayın. -- `pnpm test:live` artık daha sessiz bir modda varsayılandır: `[live] ...` ilerleme çıktısını korur, ancak ek `~/.profile` bildirimini bastırır ve gateway bootstrap loglarını/Bonjour gürültüsünü susturur. Tam başlangıç loglarını geri istiyorsanız `OPENCLAW_LIVE_TEST_QUIET=0` ayarlayın. -- API anahtarı rotasyonu (sağlayıcıya özgü): virgül/noktalı virgül biçimiyle `*_API_KEYS` veya `*_API_KEY_1`, `*_API_KEY_2` ayarlayın (örneğin `OPENAI_API_KEYS`, `ANTHROPIC_API_KEYS`, `GEMINI_API_KEYS`) ya da live başına geçersiz kılma için `OPENCLAW_LIVE_*_KEY`; testler rate limit yanıtlarında yeniden dener. + - “Her şeyi” çalıştırmak yerine daraltılmış alt kümeleri çalıştırmak tercih edilir +- Canlı çalıştırmalar eksik API anahtarlarını almak için `~/.profile` kaynağını yükler. +- Varsayılan olarak canlı çalıştırmalar yine de `HOME` dizinini yalıtır ve yapılandırma/auth materyalini geçici bir test home dizinine kopyalar; böylece birim fixture'ları gerçek `~/.openclaw` dizininizi değiştiremez. +- Canlı testlerin gerçek home dizininizi kullanmasını özellikle istediğinizde yalnızca `OPENCLAW_LIVE_USE_REAL_HOME=1` ayarlayın. +- `pnpm test:live` artık varsayılan olarak daha sessiz bir mod kullanır: `[live] ...` ilerleme çıktısını korur, ancak ek `~/.profile` bildirimini bastırır ve gateway bootstrap günlükleri/Bonjour gürültüsünü susturur. Tam başlangıç günlüklerini yeniden görmek istiyorsanız `OPENCLAW_LIVE_TEST_QUIET=0` ayarlayın. +- API anahtarı rotasyonu (sağlayıcıya özel): virgül/noktalı virgül biçimiyle `*_API_KEYS` veya `*_API_KEY_1`, `*_API_KEY_2` ayarlayın (örneğin `OPENAI_API_KEYS`, `ANTHROPIC_API_KEYS`, `GEMINI_API_KEYS`) ya da canlı başına geçersiz kılma için `OPENCLAW_LIVE_*_KEY`; testler rate limit yanıtlarında yeniden dener. - İlerleme/heartbeat çıktısı: - - Live paketleri artık uzun sağlayıcı çağrılarının Vitest konsol yakalaması sessiz olsa bile görünür şekilde etkin kalması için stderr'e ilerleme satırları yazar. - - `vitest.live.config.ts`, sağlayıcı/gateway ilerleme satırlarının live çalıştırmalar sırasında hemen akması için Vitest konsol yakalamasını devre dışı bırakır. + - Canlı paketler artık ilerleme satırlarını stderr'e yazar; böylece Vitest konsol yakalaması sessiz olduğunda bile uzun sağlayıcı çağrılarının etkin olduğu görünür. + - `vitest.live.config.ts`, sağlayıcı/gateway ilerleme satırlarının canlı çalıştırmalar sırasında anında akması için Vitest konsol yakalamasını devre dışı bırakır. - Doğrudan model heartbeat'lerini `OPENCLAW_LIVE_HEARTBEAT_MS` ile ayarlayın. - Gateway/probe heartbeat'lerini `OPENCLAW_LIVE_GATEWAY_HEARTBEAT_MS` ile ayarlayın. ## Hangi paketi çalıştırmalıyım? -Bu karar tablosunu kullanın: +Şu karar tablosunu kullanın: -- Mantığı/testleri düzenliyorsanız: `pnpm test` çalıştırın (ve çok şey değiştirdiyseniz `pnpm test:coverage`) -- Gateway ağı / WS protokolü / eşleme yüzeyine dokunuyorsanız: `pnpm test:e2e` ekleyin -- “Botum çalışmıyor” / sağlayıcıya özgü hatalar / tool calling hata ayıklaması yapıyorsanız: daraltılmış bir `pnpm test:live` çalıştırın +- Mantık/testler düzenleniyorsa: `pnpm test` çalıştırın (çok şey değiştirdiyseniz `pnpm test:coverage` da) +- Gateway ağ iletişimine / WS protokolüne / eşleştirmeye dokunuyorsanız: `pnpm test:e2e` ekleyin +- “Botum çalışmıyor” / sağlayıcıya özel hatalar / araç çağırma hata ayıklaması yapıyorsanız: daraltılmış bir `pnpm test:live` çalıştırın -## Live: Android node capability sweep +## Canlı: Android node yetenek taraması - Test: `src/gateway/android-node.capabilities.live.test.ts` -- Script: `pnpm android:test:integration` -- Amaç: bağlı bir Android node tarafından şu anda reklamı yapılan **her komutu** çağırmak ve komut sözleşmesi davranışını doğrulamak. +- Betik: `pnpm android:test:integration` +- Amaç: bağlı bir Android node tarafından şu anda **ilan edilen her komutu** çağırmak ve komut sözleşmesi davranışını doğrulamak. - Kapsam: - - Önkoşullu/manuel kurulum (paket uygulamayı kurmaz/çalıştırmaz/eşlemez). + - Ön koşullu/manuel kurulum (paket uygulamayı yüklemez/çalıştırmaz/eşleştirmez). - Seçilen Android node için komut bazında gateway `node.invoke` doğrulaması. - Gerekli ön kurulum: - - Android uygulaması zaten bağlanmış ve gateway ile eşlenmiş olmalı. - - Uygulama ön planda tutulmalı. - - Geçmesini beklediğiniz yetenekler için izinler/yakalama onayı verilmiş olmalı. + - Android uygulaması zaten gateway'e bağlı ve eşleştirilmiş olmalıdır. + - Uygulama ön planda tutulmalıdır. + - Başarılı olmasını beklediğiniz yetenekler için izinler/ekran yakalama onayı verilmiş olmalıdır. - İsteğe bağlı hedef geçersiz kılmaları: - `OPENCLAW_ANDROID_NODE_ID` veya `OPENCLAW_ANDROID_NODE_NAME`. - `OPENCLAW_ANDROID_GATEWAY_URL` / `OPENCLAW_ANDROID_GATEWAY_TOKEN` / `OPENCLAW_ANDROID_GATEWAY_PASSWORD`. -- Tüm Android kurulum ayrıntıları: [Android App](/tr/platforms/android) +- Tam Android kurulum ayrıntıları: [Android Uygulaması](/tr/platforms/android) -## Live: model smoke (profil anahtarları) +## Canlı: model smoke (profil anahtarları) -Live testler, hataları izole edebilmek için iki katmana ayrılmıştır: +Canlı testler, hataları izole edebilmek için iki katmana ayrılmıştır: -- “Doğrudan model”, sağlayıcının/modelin verilen anahtarla gerçekten yanıt verebildiğini gösterir. -- “Gateway smoke”, tam gateway+ajan hattının o model için çalıştığını gösterir (oturumlar, geçmiş, araçlar, sandbox politikası vb.). +- “Doğrudan model”, sağlayıcının/modelin verilen anahtarla en azından yanıt verip veremediğini gösterir. +- “Gateway smoke”, tam gateway+agent hattının bu model için çalıştığını gösterir (oturumlar, geçmiş, araçlar, sandbox ilkesi vb.). ### Katman 1: Doğrudan model tamamlama (gateway yok) - Test: `src/agents/models.profiles.live.test.ts` - Amaç: - - Keşfedilen modelleri listelemek - - Kimlik bilgilerinizin olduğu modelleri seçmek için `getApiKeyForModel` kullanmak + - Keşfedilen modelleri numaralandırmak + - Kimlik bilgileriniz olan modelleri seçmek için `getApiKeyForModel` kullanmak - Model başına küçük bir tamamlama çalıştırmak (ve gerektiğinde hedefli regresyonlar) - Nasıl etkinleştirilir: - - `pnpm test:live` (veya Vitest'i doğrudan çağırıyorsanız `OPENCLAW_LIVE_TEST=1`) -- Bu paketi gerçekten çalıştırmak için `OPENCLAW_LIVE_MODELS=modern` (veya `all`, modern için takma ad) ayarlayın; aksi halde `pnpm test:live` odağını gateway smoke üzerinde tutmak için atlanır + - `pnpm test:live` (veya Vitest doğrudan çağrılıyorsa `OPENCLAW_LIVE_TEST=1`) +- Bu paketi gerçekten çalıştırmak için `OPENCLAW_LIVE_MODELS=modern` (veya `all`, modern için takma ad) ayarlayın; aksi takdirde `pnpm test:live` komutunu gateway smoke üzerinde odaklı tutmak için atlanır - Modeller nasıl seçilir: - - Modern izin listesini çalıştırmak için `OPENCLAW_LIVE_MODELS=modern` (Opus/Sonnet 4.6+, GPT-5.x + Codex, Gemini 3, GLM 4.7, MiniMax M2.7, Grok 4) - - `OPENCLAW_LIVE_MODELS=all`, modern izin listesi için bir takma addır - - veya `OPENCLAW_LIVE_MODELS="openai/gpt-5.4,anthropic/claude-opus-4-6,..."` (virgülle ayrılmış izin listesi) + - Modern allowlist'i çalıştırmak için `OPENCLAW_LIVE_MODELS=modern` (Opus/Sonnet 4.6+, GPT-5.x + Codex, Gemini 3, GLM 4.7, MiniMax M2.7, Grok 4) + - `OPENCLAW_LIVE_MODELS=all`, modern allowlist için bir takma addır + - veya `OPENCLAW_LIVE_MODELS="openai/gpt-5.4,anthropic/claude-opus-4-6,..."` (virgülle ayrılmış allowlist) - Modern/all taramaları varsayılan olarak özenle seçilmiş yüksek sinyalli bir üst sınır kullanır; kapsamlı bir modern tarama için `OPENCLAW_LIVE_MAX_MODELS=0`, daha küçük bir üst sınır için pozitif bir sayı ayarlayın. - Sağlayıcılar nasıl seçilir: - - `OPENCLAW_LIVE_PROVIDERS="google,google-antigravity,google-gemini-cli"` (virgülle ayrılmış izin listesi) + - `OPENCLAW_LIVE_PROVIDERS="google,google-antigravity,google-gemini-cli"` (virgülle ayrılmış allowlist) - Anahtarlar nereden gelir: - - Varsayılan olarak: profil deposu ve env geri dönüşleri + - Varsayılan olarak: profil deposu ve env yedekleri - Yalnızca **profil deposunu** zorunlu kılmak için `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1` ayarlayın -- Bunun varlık nedeni: - - “Sağlayıcı API'si bozuk / anahtar geçersiz” ile “gateway ajan hattı bozuk” durumlarını ayırır +- Bunun var olma nedeni: + - “sağlayıcı API'si bozuk / anahtar geçersiz” ile “gateway agent hattı bozuk” durumlarını ayırır - Küçük, yalıtılmış regresyonlar içerir (örnek: OpenAI Responses/Codex Responses reasoning replay + tool-call akışları) -### Katman 2: Gateway + dev agent smoke (`@openclaw` gerçekten ne yapıyor) +### Katman 2: Gateway + geliştirme agent smoke (`@openclaw` gerçekte ne yapar) - Test: `src/gateway/gateway-models.profiles.live.test.ts` - Amaç: - - Süreç içi bir gateway başlatmak - - Bir `agent:dev:*` oturumu oluşturmak/yamalamak (çalıştırma başına model geçersiz kılma) - - Anahtarı olan modeller arasında dolaşmak ve şunları doğrulamak: + - Süreç içinde bir gateway başlatmak + - Bir `agent:dev:*` oturumu oluşturmak/yamalamak (çalıştırma başına model geçersiz kılması) + - Anahtarı olan modeller üzerinde gezinmek ve şunları doğrulamak: - “anlamlı” yanıt (araç yok) - - gerçek bir tool invocation çalışır (`read` probe) - - isteğe bağlı ek tool probe'ları (`exec+read` probe) - - OpenAI regresyon yolları (yalnızca tool-call → devam) çalışmaya devam eder + - gerçek bir araç çağrısı çalışıyor (okuma probu) + - isteğe bağlı ek araç probları (exec+read probu) + - OpenAI regresyon yolları (yalnızca tool-call → takip) çalışmaya devam ediyor - Probe ayrıntıları (böylece hataları hızlıca açıklayabilirsiniz): - - `read` probe: test çalışma alanına nonce içeren bir dosya yazar ve ajandan onu `read` ile okuyup nonce'u geri yankılamasını ister. - - `exec+read` probe: test ajandan nonce'u geçici bir dosyaya `exec` ile yazmasını, ardından `read` ile geri okumasını ister. - - image probe: test oluşturulmuş bir PNG (kedi + rastgele kod) ekler ve modelin `cat ` döndürmesini bekler. + - `read` probu: test çalışma alanına bir nonce dosyası yazar ve agent'tan onu `read` edip nonce'u geri yankılamasını ister. + - `exec+read` probu: test agent'tan bir temp dosyasına nonce yazmasını `exec` ile ister, ardından onu geri `read` etmesini ister. + - image probu: test oluşturulmuş bir PNG (cat + rastgele kod) ekler ve modelin `cat ` döndürmesini bekler. - Uygulama başvurusu: `src/gateway/gateway-models.profiles.live.test.ts` ve `src/gateway/live-image-probe.ts`. - Nasıl etkinleştirilir: - - `pnpm test:live` (veya Vitest'i doğrudan çağırıyorsanız `OPENCLAW_LIVE_TEST=1`) + - `pnpm test:live` (veya Vitest doğrudan çağrılıyorsa `OPENCLAW_LIVE_TEST=1`) - Modeller nasıl seçilir: - - Varsayılan: modern izin listesi (Opus/Sonnet 4.6+, GPT-5.x + Codex, Gemini 3, GLM 4.7, MiniMax M2.7, Grok 4) - - `OPENCLAW_LIVE_GATEWAY_MODELS=all`, modern izin listesi için bir takma addır - - Ya da daraltmak için `OPENCLAW_LIVE_GATEWAY_MODELS="provider/model"` (veya virgüllü liste) ayarlayın + - Varsayılan: modern allowlist (Opus/Sonnet 4.6+, GPT-5.x + Codex, Gemini 3, GLM 4.7, MiniMax M2.7, Grok 4) + - `OPENCLAW_LIVE_GATEWAY_MODELS=all`, modern allowlist için bir takma addır + - Ya da daraltmak için `OPENCLAW_LIVE_GATEWAY_MODELS="provider/model"` (veya virgülle ayrılmış liste) ayarlayın - Modern/all gateway taramaları varsayılan olarak özenle seçilmiş yüksek sinyalli bir üst sınır kullanır; kapsamlı bir modern tarama için `OPENCLAW_LIVE_GATEWAY_MAX_MODELS=0`, daha küçük bir üst sınır için pozitif bir sayı ayarlayın. -- Sağlayıcılar nasıl seçilir (“OpenRouter her şey” yaklaşımından kaçının): - - `OPENCLAW_LIVE_GATEWAY_PROVIDERS="google,google-antigravity,google-gemini-cli,openai,anthropic,zai,minimax"` (virgülle ayrılmış izin listesi) -- Tool + image probe'ları bu live testte her zaman açıktır: - - `read` probe + `exec+read` probe (tool stress) - - model image input desteği bildiriyorsa image probe çalışır - - Akış (yüksek seviye): +- Sağlayıcılar nasıl seçilir (“OpenRouter her şey”den kaçının): + - `OPENCLAW_LIVE_GATEWAY_PROVIDERS="google,google-antigravity,google-gemini-cli,openai,anthropic,zai,minimax"` (virgülle ayrılmış allowlist) +- Bu canlı testte araç + görüntü probları her zaman açıktır: + - `read` probu + `exec+read` probu (araç stresi) + - image probu, model görüntü girdisi desteği ilan ettiğinde çalışır + - Akış (üst düzey): - Test, “CAT” + rastgele kod içeren küçük bir PNG üretir (`src/gateway/live-image-probe.ts`) - - Bunu `agent` `attachments: [{ mimeType: "image/png", content: "" }]` üzerinden gönderir + - Bunu `agent` üzerinden `attachments: [{ mimeType: "image/png", content: "" }]` ile gönderir - Gateway ekleri `images[]` içine ayrıştırır (`src/gateway/server-methods/agent.ts` + `src/gateway/chat-attachments.ts`) - - Gömülü ajan modele çok kipli bir kullanıcı mesajı iletir + - Gömülü agent modele çok kipli bir kullanıcı mesajı iletir - Doğrulama: yanıt `cat` + kodu içerir (OCR toleransı: küçük hatalara izin verilir) -İpucu: makinenizde neyi test edebileceğinizi (ve tam `provider/model` kimliklerini) görmek için şunu çalıştırın: +İpucu: makinenizde neyi test edebileceğinizi (ve tam `provider/model` id'lerini) görmek için şunu çalıştırın: ```bash openclaw models list openclaw models list --json ``` -## Live: CLI arka uç smoke (Claude, Codex, Gemini veya diğer yerel CLI'lar) +## Canlı: CLI backend smoke (Claude, Codex, Gemini veya diğer yerel CLI'lar) - Test: `src/gateway/gateway-cli-backend.live.test.ts` -- Amaç: varsayılan yapılandırmanıza dokunmadan, Gateway + ajan hattını yerel bir CLI arka ucu kullanarak doğrulamak. -- Arka uca özgü smoke varsayılanları, sahibi olan extension'ın `cli-backend.ts` tanımı içinde bulunur. +- Amaç: varsayılan config'inize dokunmadan, yerel bir CLI backend kullanarak Gateway + agent hattını doğrulamak. +- Backend'e özgü smoke varsayılanları, sahibi olan extension'ın `cli-backend.ts` tanımıyla birlikte yaşar. - Etkinleştirme: - - `pnpm test:live` (veya Vitest'i doğrudan çağırıyorsanız `OPENCLAW_LIVE_TEST=1`) + - `pnpm test:live` (veya Vitest doğrudan çağrılıyorsa `OPENCLAW_LIVE_TEST=1`) - `OPENCLAW_LIVE_CLI_BACKEND=1` - Varsayılanlar: - Varsayılan sağlayıcı/model: `claude-cli/claude-sonnet-4-6` - - Komut/argüman/image davranışı sahibi olan CLI arka uç plugin metadata'sından gelir. + - Komut/argümanlar/görüntü davranışı, sahibi olan CLI backend plugin metadata'sından gelir. - Geçersiz kılmalar (isteğe bağlı): - `OPENCLAW_LIVE_CLI_BACKEND_MODEL="codex-cli/gpt-5.4"` - `OPENCLAW_LIVE_CLI_BACKEND_COMMAND="/full/path/to/codex"` - `OPENCLAW_LIVE_CLI_BACKEND_ARGS='["exec","--json","--color","never","--sandbox","read-only","--skip-git-repo-check"]'` - - Gerçek bir image attachment göndermek için `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_PROBE=1` (yollar prompt içine enjekte edilir). + - Gerçek bir görüntü eki göndermek için `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_PROBE=1` (yollar prompt içine enjekte edilir). - Görüntü dosya yollarını prompt enjeksiyonu yerine CLI argümanları olarak geçirmek için `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_ARG="--image"`. - - `IMAGE_ARG` ayarlandığında görüntü argümanlarının nasıl geçirileceğini denetlemek için `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_MODE="repeat"` (veya `"list"`). + - `IMAGE_ARG` ayarlandığında görüntü argümanlarının nasıl geçirileceğini kontrol etmek için `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_MODE="repeat"` (veya `"list"`). - İkinci bir tur göndermek ve resume akışını doğrulamak için `OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1`. - - Varsayılan Claude Sonnet -> Opus aynı oturum sürekliliği probe'unu devre dışı bırakmak için `OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=0` (seçilen model bir geçiş hedefini desteklediğinde bunu açıkça zorlamak için `1`). + - Varsayılan Claude Sonnet -> Opus aynı oturum sürekliliği probunu devre dışı bırakmak için `OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=0` (seçili model bir geçiş hedefini desteklediğinde zorla açmak için `1` olarak ayarlayın). Örnek: @@ -305,27 +324,27 @@ pnpm test:docker:live-cli-backend:gemini Notlar: - Docker çalıştırıcısı `scripts/test-live-cli-backend-docker.sh` konumundadır. -- Live CLI-backend smoke'u repo Docker imajı içinde root olmayan `node` kullanıcısı olarak çalıştırır. +- Canlı CLI-backend smoke testini repo Docker görüntüsü içinde root olmayan `node` kullanıcısı olarak çalıştırır. - CLI smoke metadata'sını sahibi olan extension'dan çözer, ardından eşleşen Linux CLI paketini (`@anthropic-ai/claude-code`, `@openai/codex` veya `@google/gemini-cli`) `OPENCLAW_DOCKER_CLI_TOOLS_DIR` içindeki önbelleğe alınmış yazılabilir bir öneke kurar (varsayılan: `~/.cache/openclaw/docker-cli-tools`). -- Live CLI-backend smoke artık Claude, Codex ve Gemini için aynı uçtan uca akışı çalıştırır: metin turu, görüntü sınıflandırma turu, sonra gateway CLI üzerinden doğrulanan MCP `cron` tool call. -- Claude'un varsayılan smoke'u ayrıca oturumu Sonnet'ten Opus'a yamalar ve sürdürülen oturumun daha önceki bir notu hâlâ hatırladığını doğrular. +- Canlı CLI-backend smoke artık Claude, Codex ve Gemini için aynı uçtan uca akışı çalıştırır: metin turu, görüntü sınıflandırma turu, ardından gateway CLI üzerinden doğrulanan MCP `cron` araç çağrısı. +- Claude'un varsayılan smoke testi ayrıca oturumu Sonnet'ten Opus'a yamar ve devam eden oturumun önceki bir notu hâlâ hatırladığını doğrular. -## Live: ACP bind smoke (`/acp spawn ... --bind here`) +## Canlı: ACP bind smoke (`/acp spawn ... --bind here`) - Test: `src/gateway/gateway-acp-bind.live.test.ts` -- Amaç: canlı bir ACP ajanıyla gerçek ACP conversation-bind akışını doğrulamak: +- Amaç: gerçek ACP konuşma-bind akışını canlı bir ACP agent ile doğrulamak: - `/acp spawn --bind here` gönder - sentetik bir message-channel konuşmasını yerinde bağla - - aynı konuşma üzerinde normal bir devam mesajı gönder - - devamın bağlı ACP oturum dökümüne indiğini doğrula + - aynı konuşmada normal bir takip mesajı gönder + - takibin bağlı ACP oturum dökümüne ulaştığını doğrula - Etkinleştirme: - `pnpm test:live src/gateway/gateway-acp-bind.live.test.ts` - `OPENCLAW_LIVE_ACP_BIND=1` - Varsayılanlar: - - Docker içindeki ACP ajanları: `claude,codex,gemini` - - Doğrudan `pnpm test:live ...` için ACP ajanı: `claude` - - Sentetik channel: Slack DM tarzı konuşma bağlamı - - ACP arka ucu: `acpx` + - Docker içindeki ACP agent'ları: `claude,codex,gemini` + - Doğrudan `pnpm test:live ...` için ACP agent: `claude` + - Sentetik kanal: Slack DM tarzı konuşma bağlamı + - ACP backend: `acpx` - Geçersiz kılmalar: - `OPENCLAW_LIVE_ACP_BIND_AGENT=claude` - `OPENCLAW_LIVE_ACP_BIND_AGENT=codex` @@ -333,8 +352,8 @@ Notlar: - `OPENCLAW_LIVE_ACP_BIND_AGENTS=claude,codex,gemini` - `OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND='npx -y @agentclientprotocol/claude-agent-acp@'` - Notlar: - - Bu hat, testlerin haricen teslim ediliyormuş gibi yapmadan message-channel bağlamı ekleyebilmesi için yöneticiye özel sentetik originating-route alanlarıyla gateway `chat.send` yüzeyini kullanır. - - `OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND` ayarlı değilse test, seçilen ACP harness ajanı için gömülü `acpx` plugin'inin yerleşik ajan kaydını kullanır. + - Bu hat, testlerin harici teslimatı taklit etmeden message-channel bağlamı ekleyebilmesi için yöneticiye özel sentetik originating-route alanlarıyla gateway `chat.send` yüzeyini kullanır. + - `OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND` ayarlanmadığında test, seçilen ACP harness agent için gömülü `acpx` plugin'inin yerleşik agent kayıt defterini kullanır. Örnek: @@ -350,7 +369,7 @@ Docker tarifi: pnpm test:docker:live-acp-bind ``` -Tek ajanlı Docker tarifleri: +Tek agent'lı Docker tarifleri: ```bash pnpm test:docker:live-acp-bind:claude @@ -361,14 +380,14 @@ pnpm test:docker:live-acp-bind:gemini Docker notları: - Docker çalıştırıcısı `scripts/test-live-acp-bind-docker.sh` konumundadır. -- Varsayılan olarak ACP bind smoke'u desteklenen tüm live CLI ajanlarına sırayla karşı çalıştırır: `claude`, `codex`, ardından `gemini`. +- Varsayılan olarak ACP bind smoke testini desteklenen tüm canlı CLI agent'larına karşı sırayla çalıştırır: `claude`, `codex`, ardından `gemini`. - Matrisi daraltmak için `OPENCLAW_LIVE_ACP_BIND_AGENTS=claude`, `OPENCLAW_LIVE_ACP_BIND_AGENTS=codex` veya `OPENCLAW_LIVE_ACP_BIND_AGENTS=gemini` kullanın. -- `~/.profile` dosyasını source eder, eşleşen CLI auth materyalini konteynere hazırlar, `acpx`'i yazılabilir bir npm önekine kurar, ardından eksikse istenen live CLI'ı (`@anthropic-ai/claude-code`, `@openai/codex` veya `@google/gemini-cli`) kurar. -- Docker içinde çalıştırıcı, source edilen profilden sağlayıcı env değişkenlerinin alt harness CLI için kullanılabilir kalması amacıyla `OPENCLAW_LIVE_ACP_BIND_ACPX_COMMAND=$HOME/.npm-global/bin/acpx` ayarlar. +- `~/.profile` kaynağını yükler, eşleşen CLI auth materyalini container içine hazırlar, `acpx`'i yazılabilir bir npm önekine kurar, ardından yoksa istenen canlı CLI'ı (`@anthropic-ai/claude-code`, `@openai/codex` veya `@google/gemini-cli`) kurar. +- Docker içinde çalıştırıcı `OPENCLAW_LIVE_ACP_BIND_ACPX_COMMAND=$HOME/.npm-global/bin/acpx` ayarlar; böylece acpx, kaynak olarak yüklenen profildeki sağlayıcı env değişkenlerini alt harness CLI için kullanılabilir durumda tutar. -### Önerilen live tarifleri +### Önerilen canlı tarifler -Dar, açık izin listeleri en hızlısı ve en az oynak olanıdır: +Dar, açık allowlist'ler en hızlı ve en az kararsız olanlardır: - Tek model, doğrudan (gateway yok): - `OPENCLAW_LIVE_MODELS="openai/gpt-5.4" pnpm test:live src/agents/models.profiles.live.test.ts` @@ -376,7 +395,7 @@ Dar, açık izin listeleri en hızlısı ve en az oynak olanıdır: - Tek model, gateway smoke: - `OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.4" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts` -- Birden çok sağlayıcıda tool calling: +- Birkaç sağlayıcıda araç çağırma: - `OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.4,anthropic/claude-opus-4-6,google/gemini-3-flash-preview,zai/glm-4.7,minimax/MiniMax-M2.7" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts` - Google odağı (Gemini API anahtarı + Antigravity): @@ -385,22 +404,22 @@ Dar, açık izin listeleri en hızlısı ve en az oynak olanıdır: Notlar: -- `google/...`, Gemini API'sini kullanır (API anahtarı). -- `google-antigravity/...`, Antigravity OAuth köprüsünü kullanır (Cloud Code Assist tarzı ajan uç noktası). -- `google-gemini-cli/...`, makinenizdeki yerel Gemini CLI'ı kullanır (ayrı auth + tooling tuhaflıkları). -- Gemini API ile Gemini CLI: +- `google/...` Gemini API'yi kullanır (API anahtarı). +- `google-antigravity/...` Antigravity OAuth bridge'i kullanır (Cloud Code Assist tarzı agent uç noktası). +- `google-gemini-cli/...` makinenizdeki yerel Gemini CLI'ı kullanır (ayrı auth + tooling tuhaflıkları). +- Gemini API ile Gemini CLI arasındaki fark: - API: OpenClaw, Google'ın barındırılan Gemini API'sini HTTP üzerinden çağırır (API anahtarı / profil auth); çoğu kullanıcının “Gemini” derken kastettiği budur. - - CLI: OpenClaw yerel `gemini` binary'sini shell üzerinden çalıştırır; kendi auth'una sahiptir ve farklı davranabilir (streaming/tool desteği/sürüm kayması). + - CLI: OpenClaw, yerel bir `gemini` ikilisine shell out yapar; kendi auth yapısı vardır ve farklı davranabilir (streaming/tool desteği/sürüm kayması). -## Live: model matrisi (neleri kapsıyoruz) +## Canlı: model matrisi (neleri kapsıyoruz) -Sabit bir “CI model listesi” yoktur (live isteğe bağlıdır), ancak anahtarları olan bir geliştirici makinesinde düzenli olarak kapsanması **önerilen** modeller bunlardır. +Sabit bir “CI model listesi” yoktur (canlı testler isteğe bağlıdır), ancak bunlar anahtarlara sahip bir geliştirme makinesinde düzenli olarak kapsanması **önerilen** modellerdir. -### Modern smoke kümesi (tool calling + image) +### Modern smoke kümesi (araç çağırma + görüntü) -Bu, çalışır durumda kalmasını beklediğimiz “yaygın modeller” çalıştırmasıdır: +Bu, çalışmaya devam etmesini beklediğimiz “yaygın modeller” çalıştırmasıdır: -- OpenAI (Codex olmayan): `openai/gpt-5.4` (isteğe bağlı: `openai/gpt-5.4-mini`) +- OpenAI (Codex dışı): `openai/gpt-5.4` (isteğe bağlı: `openai/gpt-5.4-mini`) - OpenAI Codex: `openai-codex/gpt-5.4` - Anthropic: `anthropic/claude-opus-4-6` (veya `anthropic/claude-sonnet-4-6`) - Google (Gemini API): `google/gemini-3.1-pro-preview` ve `google/gemini-3-flash-preview` (eski Gemini 2.x modellerinden kaçının) @@ -408,12 +427,12 @@ Bu, çalışır durumda kalmasını beklediğimiz “yaygın modeller” çalı - Z.AI (GLM): `zai/glm-4.7` - MiniMax: `minimax/MiniMax-M2.7` -Araçlar + image ile gateway smoke çalıştırın: +Araçlar + görüntü ile gateway smoke çalıştırın: `OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.4,openai-codex/gpt-5.4,anthropic/claude-opus-4-6,google/gemini-3.1-pro-preview,google/gemini-3-flash-preview,google-antigravity/claude-opus-4-6-thinking,google-antigravity/gemini-3-flash,zai/glm-4.7,minimax/MiniMax-M2.7" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts` -### Temel çizgi: tool calling (Read + isteğe bağlı Exec) +### Temel çizgi: araç çağırma (Read + isteğe bağlı Exec) -Sağlayıcı ailesi başına en az birini seçin: +Her sağlayıcı ailesinden en az birini seçin: - OpenAI: `openai/gpt-5.4` (veya `openai/gpt-5.4-mini`) - Anthropic: `anthropic/claude-opus-4-6` (veya `anthropic/claude-sonnet-4-6`) @@ -421,81 +440,81 @@ Sağlayıcı ailesi başına en az birini seçin: - Z.AI (GLM): `zai/glm-4.7` - MiniMax: `minimax/MiniMax-M2.7` -İsteğe bağlı ek kapsam (olursa iyi olur): +İsteğe bağlı ek kapsama (olsa iyi olur): -- xAI: `xai/grok-4` (veya mevcut en yeni sürüm) +- xAI: `xai/grok-4` (veya mevcut en güncel sürüm) - Mistral: `mistral/`… (etkinleştirdiğiniz “tools” yetenekli bir model seçin) - Cerebras: `cerebras/`… (erişiminiz varsa) -- LM Studio: `lmstudio/`… (yerel; tool calling API moduna bağlıdır) +- LM Studio: `lmstudio/`… (yerel; araç çağırma API moduna bağlıdır) -### Vision: görüntü gönderme (ek → çok kipli mesaj) +### Vision: görüntü gönderimi (ek → çok kipli mesaj) -Image probe'u çalıştırmak için `OPENCLAW_LIVE_GATEWAY_MODELS` içine en az bir image-capable model ekleyin (Claude/Gemini/OpenAI'nin image destekli varyantları vb.). +Görüntü probunu çalıştırmak için `OPENCLAW_LIVE_GATEWAY_MODELS` içine görüntü destekli en az bir model ekleyin (Claude/Gemini/OpenAI görüntü destekli varyantları vb.). -### Aggregator'lar / alternatif gateway'ler +### Toplayıcılar / alternatif gateway'ler -Anahtarlarınız etkinse şunlar üzerinden test etmeyi de destekliyoruz: +Anahtarlarınız etkinse şu yollarla da test etmeyi destekliyoruz: -- OpenRouter: `openrouter/...` (yüzlerce model; tool+image destekli adayları bulmak için `openclaw models scan` kullanın) -- OpenCode: Zen için `opencode/...` ve Go için `opencode-go/...` (`OPENCODE_API_KEY` / `OPENCODE_ZEN_API_KEY` ile auth) +- OpenRouter: `openrouter/...` (yüzlerce model; araç+görüntü yetenekli adayları bulmak için `openclaw models scan` kullanın) +- OpenCode: Zen için `opencode/...`, Go için `opencode-go/...` (`OPENCODE_API_KEY` / `OPENCODE_ZEN_API_KEY` ile auth) -Live matrisine dahil edebileceğiniz daha fazla sağlayıcı (kimlik bilgileriniz/yapılandırmanız varsa): +Canlı matrise dahil edebileceğiniz daha fazla sağlayıcı (kimlik bilgileriniz/config'iniz varsa): - Yerleşik: `openai`, `openai-codex`, `anthropic`, `google`, `google-vertex`, `google-antigravity`, `google-gemini-cli`, `zai`, `openrouter`, `opencode`, `opencode-go`, `xai`, `groq`, `cerebras`, `mistral`, `github-copilot` -- `models.providers` aracılığıyla (özel uç noktalar): `minimax` (bulut/API), ayrıca OpenAI/Anthropic uyumlu tüm proxy'ler (LM Studio, vLLM, LiteLLM vb.) +- `models.providers` aracılığıyla (özel uç noktalar): `minimax` (cloud/API) ve ayrıca herhangi bir OpenAI/Anthropic uyumlu proxy (LM Studio, vLLM, LiteLLM vb.) -İpucu: belgelerde “tüm modelleri” sabit kodlamaya çalışmayın. Yetkili liste, makinenizde `discoverModels(...)` ne döndürüyorsa ve hangi anahtarlar mevcutsa odur. +İpucu: dokümanlarda “tüm modelleri” sabit kodlamaya çalışmayın. Yetkili liste, makinenizde `discoverModels(...)` ne döndürüyorsa ve hangi anahtarlar mevcutsa odur. ## Kimlik bilgileri (asla commit etmeyin) -Live testler kimlik bilgilerini CLI ile aynı şekilde keşfeder. Pratik sonuçları: +Canlı testler kimlik bilgilerini CLI ile aynı şekilde bulur. Pratik sonuçları: -- CLI çalışıyorsa, live testler aynı anahtarları bulmalıdır. -- Bir live test “kimlik bilgisi yok” diyorsa, bunu `openclaw models list` / model seçimi hata ayıklamasıyla aynı şekilde ayıklayın. +- CLI çalışıyorsa, canlı testler de aynı anahtarları bulabilmelidir. +- Bir canlı test “kimlik bilgisi yok” diyorsa, bunu `openclaw models list` / model seçimini nasıl hata ayıklıyorsanız aynı şekilde hata ayıklayın. -- Ajan başına auth profilleri: `~/.openclaw/agents//agent/auth-profiles.json` (live testlerde “profil anahtarları” ile kastedilen budur) -- Yapılandırma: `~/.openclaw/openclaw.json` (veya `OPENCLAW_CONFIG_PATH`) -- Eski durum dizini: `~/.openclaw/credentials/` (varsa hazırlanan live home içine kopyalanır, ancak ana profil-anahtarı deposu değildir) -- Yerel live çalıştırmalar varsayılan olarak etkin config'i, ajan başına `auth-profiles.json` dosyalarını, eski `credentials/` dizinini ve desteklenen harici CLI auth dizinlerini geçici bir test home'una kopyalar; hazırlanan live home'lar `workspace/` ve `sandboxes/` dizinlerini atlar ve probe'ların gerçek ana makine çalışma alanınızdan uzak kalması için `agents.*.workspace` / `agentDir` yol geçersiz kılmaları çıkarılır. +- Agent başına auth profilleri: `~/.openclaw/agents//agent/auth-profiles.json` (canlı testlerde “profil anahtarları” denen şey budur) +- Config: `~/.openclaw/openclaw.json` (veya `OPENCLAW_CONFIG_PATH`) +- Eski durum dizini: `~/.openclaw/credentials/` (mevcut olduğunda hazırlanan canlı home içine kopyalanır, ancak ana profil-anahtarı deposu değildir) +- Yerel canlı çalıştırmalar varsayılan olarak etkin config'i, agent başına `auth-profiles.json` dosyalarını, eski `credentials/` dizinini ve desteklenen harici CLI auth dizinlerini geçici bir test home dizinine kopyalar; hazırlanan canlı home dizinleri `workspace/` ve `sandboxes/` dizinlerini atlar ve probların gerçek host çalışma alanınızın dışında kalması için `agents.*.workspace` / `agentDir` yol geçersiz kılmaları kaldırılır. -Env anahtarlarına güvenmek istiyorsanız (örneğin `~/.profile` dosyanızda export edilmişlerse), yerel testleri `source ~/.profile` sonrasında çalıştırın veya aşağıdaki Docker çalıştırıcılarını kullanın (bunlar `~/.profile` dosyasını konteynere bağlayabilir). +Env anahtarlarına güvenmek istiyorsanız (örneğin `~/.profile` içinde export edildiyse), yerel testleri `source ~/.profile` sonrasında çalıştırın veya aşağıdaki Docker çalıştırıcılarını kullanın (bunlar `~/.profile` dosyasını container içine bağlayabilir). -## Deepgram live (ses transkripsiyonu) +## Deepgram canlı (ses transkripsiyonu) - Test: `src/media-understanding/providers/deepgram/audio.live.test.ts` - Etkinleştirme: `DEEPGRAM_API_KEY=... DEEPGRAM_LIVE_TEST=1 pnpm test:live src/media-understanding/providers/deepgram/audio.live.test.ts` -## BytePlus coding plan live +## BytePlus coding plan canlı - Test: `src/agents/byteplus.live.test.ts` - Etkinleştirme: `BYTEPLUS_API_KEY=... BYTEPLUS_LIVE_TEST=1 pnpm test:live src/agents/byteplus.live.test.ts` - İsteğe bağlı model geçersiz kılması: `BYTEPLUS_CODING_MODEL=ark-code-latest` -## ComfyUI workflow media live +## ComfyUI workflow media canlı - Test: `extensions/comfy/comfy.live.test.ts` - Etkinleştirme: `OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.ts` - Kapsam: - - Birlikte gelen comfy image, video ve `music_generate` yollarını çalıştırır + - Paketlenmiş comfy görüntü, video ve `music_generate` yollarını çalıştırır - `models.providers.comfy.` yapılandırılmadıkça her yeteneği atlar - - Comfy workflow gönderimi, polling, indirmeler veya plugin kaydı değiştirildikten sonra kullanışlıdır + - Comfy workflow gönderimi, polling, indirmeler veya plugin kaydı değiştirildikten sonra yararlıdır -## Görüntü oluşturma live +## Görüntü oluşturma canlı - Test: `src/image-generation/runtime.live.test.ts` - Komut: `pnpm test:live src/image-generation/runtime.live.test.ts` - Harness: `pnpm test:live:media image` - Kapsam: - - Kayıtlı her image-generation sağlayıcı plugin'ini listeler - - Yoklamadan önce eksik sağlayıcı env değişkenlerini login shell'inizden (`~/.profile`) yükler - - Varsayılan olarak saklanan auth profillerinden önce live/env API anahtarlarını kullanır; böylece `auth-profiles.json` içindeki eski test anahtarları gerçek shell kimlik bilgilerini maskelemez + - Kayıtlı tüm görüntü oluşturma sağlayıcı plugin'lerini numaralandırır + - Problardan önce eksik sağlayıcı env değişkenlerini login shell'inizden (`~/.profile`) yükler + - Varsayılan olarak kaydedilmiş auth profillerinden önce canlı/env API anahtarlarını kullanır; böylece `auth-profiles.json` içindeki bayat test anahtarları gerçek shell kimlik bilgilerini maskelemez - Kullanılabilir auth/profil/model olmayan sağlayıcıları atlar - - Stok image-generation varyantlarını paylaşılan runtime capability üzerinden çalıştırır: + - Standart görüntü oluşturma varyantlarını paylaşılan runtime capability üzerinden çalıştırır: - `google:flash-generate` - `google:pro-generate` - `google:pro-edit` - `openai:default-generate` -- Şu anda kapsanan birlikte gelen sağlayıcılar: +- Şu anda kapsanan paketlenmiş sağlayıcılar: - `openai` - `google` - İsteğe bağlı daraltma: @@ -503,70 +522,70 @@ Env anahtarlarına güvenmek istiyorsanız (örneğin `~/.profile` dosyanızda e - `OPENCLAW_LIVE_IMAGE_GENERATION_MODELS="openai/gpt-image-1,google/gemini-3.1-flash-image-preview"` - `OPENCLAW_LIVE_IMAGE_GENERATION_CASES="google:flash-generate,google:pro-edit"` - İsteğe bağlı auth davranışı: - - Yalnızca profil-deposu auth'unu zorlamak ve yalnızca env geçersiz kılmalarını yok saymak için `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1` + - Profil deposu auth'unu zorlamak ve yalnızca env geçersiz kılmalarını yok saymak için `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1` -## Müzik oluşturma live +## Müzik oluşturma canlı - Test: `extensions/music-generation-providers.live.test.ts` - Etkinleştirme: `OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.ts` - Harness: `pnpm test:live:media music` - Kapsam: - - Paylaşılan birlikte gelen music-generation sağlayıcı yolunu çalıştırır - - Şu anda Google ve MiniMax'ı kapsar - - Yoklamadan önce sağlayıcı env değişkenlerini login shell'inizden (`~/.profile`) yükler - - Varsayılan olarak saklanan auth profillerinden önce live/env API anahtarlarını kullanır; böylece `auth-profiles.json` içindeki eski test anahtarları gerçek shell kimlik bilgilerini maskelemez + - Paylaşılan paketlenmiş müzik oluşturma sağlayıcı yolunu çalıştırır + - Şu anda Google ve MiniMax'i kapsar + - Problardan önce sağlayıcı env değişkenlerini login shell'inizden (`~/.profile`) yükler + - Varsayılan olarak kaydedilmiş auth profillerinden önce canlı/env API anahtarlarını kullanır; böylece `auth-profiles.json` içindeki bayat test anahtarları gerçek shell kimlik bilgilerini maskelemez - Kullanılabilir auth/profil/model olmayan sağlayıcıları atlar - - Mevcut olduğunda bildirilen her iki runtime modunu da çalıştırır: - - prompt-only girdi ile `generate` - - sağlayıcı `capabilities.edit.enabled` bildiriyorsa `edit` - - Şu anki paylaşılan hat kapsamı: + - Mevcut olduğunda bildirilen iki runtime modunu da çalıştırır: + - Yalnızca prompt girdili `generate` + - Sağlayıcı `capabilities.edit.enabled` ilan ettiğinde `edit` + - Mevcut paylaşılan hat kapsaması: - `google`: `generate`, `edit` - `minimax`: `generate` - - `comfy`: ayrı Comfy live dosyası, bu paylaşılan tarama değil + - `comfy`: ayrı Comfy canlı dosyası, bu paylaşılan tarama değil - İsteğe bağlı daraltma: - `OPENCLAW_LIVE_MUSIC_GENERATION_PROVIDERS="google,minimax"` - `OPENCLAW_LIVE_MUSIC_GENERATION_MODELS="google/lyria-3-clip-preview,minimax/music-2.5+"` - İsteğe bağlı auth davranışı: - - Yalnızca profil-deposu auth'unu zorlamak ve yalnızca env geçersiz kılmalarını yok saymak için `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1` + - Profil deposu auth'unu zorlamak ve yalnızca env geçersiz kılmalarını yok saymak için `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1` -## Video oluşturma live +## Video oluşturma canlı - Test: `extensions/video-generation-providers.live.test.ts` - Etkinleştirme: `OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts` - Harness: `pnpm test:live:media video` - Kapsam: - - Paylaşılan birlikte gelen video-generation sağlayıcı yolunu çalıştırır - - Yoklamadan önce sağlayıcı env değişkenlerini login shell'inizden (`~/.profile`) yükler - - Varsayılan olarak saklanan auth profillerinden önce live/env API anahtarlarını kullanır; böylece `auth-profiles.json` içindeki eski test anahtarları gerçek shell kimlik bilgilerini maskelemez + - Paylaşılan paketlenmiş video oluşturma sağlayıcı yolunu çalıştırır + - Problardan önce sağlayıcı env değişkenlerini login shell'inizden (`~/.profile`) yükler + - Varsayılan olarak kaydedilmiş auth profillerinden önce canlı/env API anahtarlarını kullanır; böylece `auth-profiles.json` içindeki bayat test anahtarları gerçek shell kimlik bilgilerini maskelemez - Kullanılabilir auth/profil/model olmayan sağlayıcıları atlar - - Mevcut olduğunda bildirilen her iki runtime modunu da çalıştırır: - - prompt-only girdi ile `generate` - - sağlayıcı `capabilities.imageToVideo.enabled` bildiriyorsa ve seçilen sağlayıcı/model paylaşılan taramada buffer destekli yerel image input kabul ediyorsa `imageToVideo` - - sağlayıcı `capabilities.videoToVideo.enabled` bildiriyorsa ve seçilen sağlayıcı/model paylaşılan taramada buffer destekli yerel video input kabul ediyorsa `videoToVideo` - - Paylaşılan taramada şu anda bildirilen ancak atlanan `imageToVideo` sağlayıcıları: - - `vydra`, çünkü birlikte gelen `veo3` yalnızca metindir ve birlikte gelen `kling` uzak bir image URL'si gerektirir - - Sağlayıcıya özgü Vydra kapsamı: + - Mevcut olduğunda bildirilen iki runtime modunu da çalıştırır: + - Yalnızca prompt girdili `generate` + - Sağlayıcı `capabilities.imageToVideo.enabled` ilan ettiğinde ve seçilen sağlayıcı/model paylaşılan taramada buffer destekli yerel görüntü girdisini kabul ettiğinde `imageToVideo` + - Sağlayıcı `capabilities.videoToVideo.enabled` ilan ettiğinde ve seçilen sağlayıcı/model paylaşılan taramada buffer destekli yerel video girdisini kabul ettiğinde `videoToVideo` + - Paylaşılan taramada şu anda bildirilmiş ama atlanan `imageToVideo` sağlayıcıları: + - `vydra`, çünkü paketlenmiş `veo3` yalnızca metindir ve paketlenmiş `kling` uzak görüntü URL'si gerektirir + - Sağlayıcıya özgü Vydra kapsaması: - `OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_VYDRA_VIDEO=1 pnpm test:live -- extensions/vydra/vydra.live.test.ts` - - bu dosya varsayılan olarak uzak image URL fixture'ı kullanan `kling` hattıyla birlikte `veo3` text-to-video çalıştırır - - Mevcut `videoToVideo` live kapsamı: + - bu dosya varsayılan olarak uzak görüntü URL fixture'ı kullanan bir `kling` hattı ile birlikte `veo3` metinden videoya yolunu çalıştırır + - Mevcut `videoToVideo` canlı kapsaması: - yalnızca seçilen model `runway/gen4_aleph` olduğunda `runway` - - Paylaşılan taramada şu anda bildirilen ancak atlanan `videoToVideo` sağlayıcıları: - - `alibaba`, `qwen`, `xai`; çünkü bu yollar şu anda uzak `http(s)` / MP4 referans URL'leri gerektiriyor - - `google`; çünkü mevcut paylaşılan Gemini/Veo hattı yerel buffer destekli girdi kullanıyor ve bu yol paylaşılan taramada kabul edilmiyor - - `openai`; çünkü mevcut paylaşılan hattın org'a özgü video inpaint/remix erişim garantileri yok + - Paylaşılan taramada şu anda bildirilmiş ama atlanan `videoToVideo` sağlayıcıları: + - `alibaba`, `qwen`, `xai`, çünkü bu yollar şu anda uzak `http(s)` / MP4 referans URL'leri gerektiriyor + - `google`, çünkü mevcut paylaşılan Gemini/Veo hattı yerel buffer destekli girdi kullanıyor ve bu yol paylaşılan taramada kabul edilmiyor + - `openai`, çünkü mevcut paylaşılan hatta org'a özgü video inpaint/remix erişimi garantileri yok - İsteğe bağlı daraltma: - `OPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="google,openai,runway"` - `OPENCLAW_LIVE_VIDEO_GENERATION_MODELS="google/veo-3.1-fast-generate-preview,openai/sora-2,runway/gen4_aleph"` - İsteğe bağlı auth davranışı: - - Yalnızca profil-deposu auth'unu zorlamak ve yalnızca env geçersiz kılmalarını yok saymak için `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1` + - Profil deposu auth'unu zorlamak ve yalnızca env geçersiz kılmalarını yok saymak için `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1` -## Medya live harness +## Medya canlı harness - Komut: `pnpm test:live:media` - Amaç: - - Paylaşılan image, music ve video live paketlerini depo-yerel tek bir giriş noktası üzerinden çalıştırır - - Eksik sağlayıcı env değişkenlerini `~/.profile` dosyasından otomatik yükler - - Varsayılan olarak her paketi şu anda kullanılabilir auth'a sahip sağlayıcılara otomatik daraltır + - Paylaşılan görüntü, müzik ve video canlı paketlerini repo-native tek bir entrypoint üzerinden çalıştırır + - Eksik sağlayıcı env değişkenlerini `~/.profile` içinden otomatik yükler + - Varsayılan olarak her paketi şu anda kullanılabilir auth'a sahip sağlayıcılara otomatik olarak daraltır - `scripts/test-live.mjs` dosyasını yeniden kullanır; böylece heartbeat ve sessiz mod davranışı tutarlı kalır - Örnekler: - `pnpm test:live:media` @@ -576,155 +595,156 @@ Env anahtarlarına güvenmek istiyorsanız (örneğin `~/.profile` dosyanızda e ## Docker çalıştırıcıları (isteğe bağlı “Linux'ta çalışıyor” kontrolleri) -Bu Docker çalıştırıcıları iki kovaya ayrılır: +Bu Docker çalıştırıcıları iki gruba ayrılır: -- Live-model çalıştırıcıları: `test:docker:live-models` ve `test:docker:live-gateway`, yalnızca eşleşen profil-anahtarı live dosyalarını repo Docker imajı içinde çalıştırır (`src/agents/models.profiles.live.test.ts` ve `src/gateway/gateway-models.profiles.live.test.ts`), yerel config dizininizi ve çalışma alanınızı bağlar (ve bağlandıysa `~/.profile` dosyasını source eder). Eşleşen yerel giriş noktaları `test:live:models-profiles` ve `test:live:gateway-profiles`'tır. -- Docker live çalıştırıcıları, tam bir Docker taramasının pratik kalması için varsayılan olarak daha küçük bir smoke sınırı kullanır: - `test:docker:live-models` varsayılan olarak `OPENCLAW_LIVE_MAX_MODELS=12`, ve +- Canlı model çalıştırıcıları: `test:docker:live-models` ve `test:docker:live-gateway`, yalnızca eşleşen profil anahtarlı canlı dosyalarını repo Docker görüntüsü içinde çalıştırır (`src/agents/models.profiles.live.test.ts` ve `src/gateway/gateway-models.profiles.live.test.ts`); yerel config dizininizi ve çalışma alanınızı bağlar (ve bağlanmışsa `~/.profile` dosyasını kaynağa alır). Eşleşen yerel entrypoint'ler `test:live:models-profiles` ve `test:live:gateway-profiles`'dır. +- Docker canlı çalıştırıcıları varsayılan olarak daha küçük bir smoke üst sınırı kullanır; böylece tam bir Docker taraması pratik kalır: + `test:docker:live-models` varsayılan olarak `OPENCLAW_LIVE_MAX_MODELS=12` kullanır ve `test:docker:live-gateway` varsayılan olarak `OPENCLAW_LIVE_GATEWAY_SMOKE=1`, `OPENCLAW_LIVE_GATEWAY_MAX_MODELS=8`, `OPENCLAW_LIVE_GATEWAY_STEP_TIMEOUT_MS=45000` ve - `OPENCLAW_LIVE_GATEWAY_MODEL_TIMEOUT_MS=90000` kullanır. Daha büyük kapsamlı taramayı açıkça istediğinizde bu env değişkenlerini geçersiz kılın. -- `test:docker:all`, canlı Docker imajını bir kez `test:docker:live-build` ile oluşturur, ardından iki live Docker hattı için onu yeniden kullanır. -- Konteyner smoke çalıştırıcıları: `test:docker:openwebui`, `test:docker:onboard`, `test:docker:gateway-network`, `test:docker:mcp-channels` ve `test:docker:plugins`; bunlar bir veya daha fazla gerçek konteyner başlatır ve daha üst düzey integration yollarını doğrular. + `OPENCLAW_LIVE_GATEWAY_MODEL_TIMEOUT_MS=90000` ayarlar. Daha büyük kapsamlı taramayı özellikle istediğinizde bu env değişkenlerini geçersiz kılın. +- `test:docker:all`, canlı Docker görüntüsünü bir kez `test:docker:live-build` ile oluşturur, ardından iki canlı Docker hattı için aynı görüntüyü yeniden kullanır. +- Container smoke çalıştırıcıları: `test:docker:openwebui`, `test:docker:onboard`, `test:docker:gateway-network`, `test:docker:mcp-channels` ve `test:docker:plugins`, bir veya daha fazla gerçek container başlatır ve daha üst düzey entegrasyon yollarını doğrular. -Live-model Docker çalıştırıcıları ayrıca yalnızca gerekli CLI auth home'larını bağlayarak bağlar (veya çalıştırma daraltılmadıysa desteklenenlerin tümünü), ardından harici CLI OAuth'un host auth deposunu değiştirmeden token yenileyebilmesi için çalıştırma öncesi bunları konteyner home'una kopyalar: +Canlı model Docker çalıştırıcıları ayrıca yalnızca gerekli CLI auth home dizinlerini bağlayarak mount eder (ya da çalıştırma daraltılmamışsa desteklenenlerin tümünü), ardından çalıştırmadan önce bunları container home dizinine kopyalar; böylece harici CLI OAuth, host auth deposunu değiştirmeden token'ları yenileyebilir: -- Doğrudan modeller: `pnpm test:docker:live-models` (script: `scripts/test-live-models-docker.sh`) -- ACP bind smoke: `pnpm test:docker:live-acp-bind` (script: `scripts/test-live-acp-bind-docker.sh`) -- CLI arka uç smoke: `pnpm test:docker:live-cli-backend` (script: `scripts/test-live-cli-backend-docker.sh`) -- Gateway + dev agent: `pnpm test:docker:live-gateway` (script: `scripts/test-live-gateway-models-docker.sh`) -- Open WebUI live smoke: `pnpm test:docker:openwebui` (script: `scripts/e2e/openwebui-docker.sh`) -- Onboarding wizard (TTY, tam iskelet kurulum): `pnpm test:docker:onboard` (script: `scripts/e2e/onboard-docker.sh`) -- Gateway ağı (iki konteyner, WS auth + health): `pnpm test:docker:gateway-network` (script: `scripts/e2e/gateway-network-docker.sh`) -- MCP channel bridge (tohumlanmış Gateway + stdio bridge + ham Claude notification-frame smoke): `pnpm test:docker:mcp-channels` (script: `scripts/e2e/mcp-channels-docker.sh`) -- Plugins (kurulum smoke + `/plugin` takma adı + Claude-bundle yeniden başlatma semantiği): `pnpm test:docker:plugins` (script: `scripts/e2e/plugins-docker.sh`) +- Doğrudan modeller: `pnpm test:docker:live-models` (betik: `scripts/test-live-models-docker.sh`) +- ACP bind smoke: `pnpm test:docker:live-acp-bind` (betik: `scripts/test-live-acp-bind-docker.sh`) +- CLI backend smoke: `pnpm test:docker:live-cli-backend` (betik: `scripts/test-live-cli-backend-docker.sh`) +- Gateway + geliştirme agent'ı: `pnpm test:docker:live-gateway` (betik: `scripts/test-live-gateway-models-docker.sh`) +- Open WebUI canlı smoke: `pnpm test:docker:openwebui` (betik: `scripts/e2e/openwebui-docker.sh`) +- Onboarding sihirbazı (TTY, tam scaffolding): `pnpm test:docker:onboard` (betik: `scripts/e2e/onboard-docker.sh`) +- Gateway ağı (iki container, WS auth + health): `pnpm test:docker:gateway-network` (betik: `scripts/e2e/gateway-network-docker.sh`) +- MCP kanal köprüsü (seed edilmiş Gateway + stdio bridge + ham Claude notification-frame smoke): `pnpm test:docker:mcp-channels` (betik: `scripts/e2e/mcp-channels-docker.sh`) +- Plugins (install smoke + `/plugin` takma adı + Claude bundle yeniden başlatma semantiği): `pnpm test:docker:plugins` (betik: `scripts/e2e/plugins-docker.sh`) -Live-model Docker çalıştırıcıları ayrıca mevcut checkout'u salt okunur olarak bağlar ve bunu konteyner içinde geçici bir workdir'e hazırlar. Bu, runtime imajını ince tutarken yine de Vitest'i tam olarak yerel kaynak/yapılandırmanız üzerinde çalıştırır. -Hazırlama adımı; `.pnpm-store`, `.worktrees`, `__openclaw_vitest__` ve uygulamaya özgü `.build` veya Gradle çıktı dizinleri gibi büyük yerel önbellekleri ve uygulama derleme çıktılarını atlar; böylece Docker live çalıştırmaları makineye özgü yapıtları kopyalamak için dakikalar harcamaz. -Ayrıca `OPENCLAW_SKIP_CHANNELS=1` ayarlarlar; böylece gateway live probe'ları konteyner içinde gerçek Telegram/Discord/vb. channel worker'ları başlatmaz. -`test:docker:live-models` yine de `pnpm test:live` çalıştırır, bu yüzden bu Docker hattında gateway live kapsamını daraltmanız veya hariç tutmanız gerektiğinde `OPENCLAW_LIVE_GATEWAY_*` değişkenlerini de geçirin. -`test:docker:openwebui`, daha üst düzey bir uyumluluk smoke testidir: OpenAI uyumlu HTTP uç noktaları etkinleştirilmiş bir OpenClaw gateway konteyneri başlatır, bu gateway'e karşı sabitlenmiş bir Open WebUI konteyneri başlatır, Open WebUI üzerinden oturum açar, `/api/models` içinde `openclaw/default` modelinin gösterildiğini doğrular, ardından Open WebUI'nin `/api/chat/completions` proxy'si üzerinden gerçek bir chat isteği gönderir. -İlk çalıştırma belirgin biçimde daha yavaş olabilir; çünkü Docker'ın Open WebUI imajını çekmesi gerekebilir ve Open WebUI'nin kendi soğuk başlangıç kurulumunu tamamlaması gerekebilir. -Bu hat kullanılabilir bir live model anahtarı bekler ve Docker'lı çalıştırmalarda bunu sağlamak için birincil yöntem `OPENCLAW_PROFILE_FILE` (`~/.profile` varsayılan) değişkenidir. +Canlı model Docker çalıştırıcıları ayrıca mevcut checkout'u salt okunur olarak bind-mount eder ve container içinde geçici bir workdir içine hazırlar. +Bu, runtime görüntüsünü ince tutarken Vitest'i tam olarak yerel kaynak/config'iniz üzerinde çalıştırmaya devam eder. +Hazırlama adımı `.pnpm-store`, `.worktrees`, `__openclaw_vitest__` ve uygulamaya özel `.build` ya da Gradle çıktı dizinleri gibi büyük yerel önbellekleri ve uygulama derleme çıktılarını atlar; böylece Docker canlı çalıştırmaları makineye özgü artifact'leri kopyalamak için dakikalar harcamaz. +Ayrıca `OPENCLAW_SKIP_CHANNELS=1` ayarlarlar; böylece gateway canlı probları container içinde gerçek Telegram/Discord/vb. kanal çalışanlarını başlatmaz. +`test:docker:live-models` yine de `pnpm test:live` çalıştırır; bu nedenle bu Docker hattından gateway canlı kapsamını daraltmanız veya hariç tutmanız gerektiğinde `OPENCLAW_LIVE_GATEWAY_*` değişkenlerini de geçirin. +`test:docker:openwebui`, daha üst düzey bir uyumluluk smoke testidir: OpenAI uyumlu HTTP uç noktaları etkin bir OpenClaw gateway container'ı başlatır, bu gateway'e karşı sabitlenmiş bir Open WebUI container'ı başlatır, Open WebUI üzerinden oturum açar, `/api/models` içinde `openclaw/default`'un göründüğünü doğrular, ardından Open WebUI'nin `/api/chat/completions` proxy'si üzerinden gerçek bir sohbet isteği gönderir. +İlk çalıştırma belirgin biçimde daha yavaş olabilir; çünkü Docker'ın Open WebUI görüntüsünü çekmesi gerekebilir ve Open WebUI'nin kendi soğuk başlangıç kurulumunu tamamlaması gerekebilir. +Bu hat kullanılabilir bir canlı model anahtarı bekler ve `OPENCLAW_PROFILE_FILE` (varsayılan olarak `~/.profile`) Docker tabanlı çalıştırmalarda bunu sağlamak için birincil yöntemdir. Başarılı çalıştırmalar `{ "ok": true, "model": "openclaw/default", ... }` gibi küçük bir JSON yükü yazdırır. -`test:docker:mcp-channels` bilerek deterministiktir ve gerçek bir Telegram, Discord veya iMessage hesabına ihtiyaç duymaz. Tohumlanmış bir Gateway konteyneri başlatır, `openclaw mcp serve` başlatan ikinci bir konteyner çalıştırır, ardından gerçek stdio MCP bridge üzerinden yönlendirilmiş konuşma keşfini, döküm okumalarını, ek metadata'sını, canlı olay kuyruğu davranışını, giden gönderim yönlendirmesini ve Claude tarzı channel + izin bildirimlerini doğrular. Bildirim kontrolü ham stdio MCP frame'lerini doğrudan inceler; böylece smoke testi yalnızca belirli bir istemci SDK'sının yüzeye çıkardığını değil, bridge'in gerçekten ne yaydığını doğrular. +`test:docker:mcp-channels` bilerek deterministiktir ve gerçek bir Telegram, Discord veya iMessage hesabına ihtiyaç duymaz. Seed edilmiş bir Gateway container'ı başlatır, `openclaw mcp serve` oluşturan ikinci bir 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 MCP bridge üzerinden Claude tarzı kanal + izin bildirimlerini doğrular. Bildirim kontrolü ham stdio MCP frame'lerini doğrudan inceler; böylece smoke testi belirli bir istemci SDK'sının tesadüfen yüzeye çıkardığı şeyi değil, bridge'in gerçekte ne yaydığını doğrular. -Manuel ACP düz dil thread smoke (CI değil): +Manuel ACP düz dil iş parçacığı smoke testi (CI değil): - `bun scripts/dev/discord-acp-plain-language-smoke.ts --channel ...` -- Bu script'i regresyon/hata ayıklama iş akışları için koruyun. ACP thread yönlendirme doğrulaması için yeniden gerekebilir, bu nedenle silmeyin. +- Bu betiği regresyon/hata ayıklama iş akışları için koruyun. ACP iş parçacığı yönlendirme doğrulaması için yeniden gerekebilir, bu yüzden silmeyin. Yararlı env değişkenleri: -- `OPENCLAW_CONFIG_DIR=...` (varsayılan: `~/.openclaw`) `/home/node/.openclaw` konumuna bağlanır -- `OPENCLAW_WORKSPACE_DIR=...` (varsayılan: `~/.openclaw/workspace`) `/home/node/.openclaw/workspace` konumuna bağlanır -- `OPENCLAW_PROFILE_FILE=...` (varsayılan: `~/.profile`) `/home/node/.profile` konumuna bağlanır ve testler çalıştırılmadan önce source edilir -- `OPENCLAW_DOCKER_CLI_TOOLS_DIR=...` (varsayılan: `~/.cache/openclaw/docker-cli-tools`) Docker içinde önbelleğe alınmış CLI kurulumları için `/home/node/.npm-global` konumuna bağlanır -- `$HOME` altındaki harici CLI auth dizinleri/dosyaları salt okunur olarak `/host-auth...` altına bağlanır, ardından testler başlamadan önce `/home/node/...` altına kopyalanır +- `OPENCLAW_CONFIG_DIR=...` (varsayılan: `~/.openclaw`), `/home/node/.openclaw` konumuna mount edilir +- `OPENCLAW_WORKSPACE_DIR=...` (varsayılan: `~/.openclaw/workspace`), `/home/node/.openclaw/workspace` konumuna mount edilir +- `OPENCLAW_PROFILE_FILE=...` (varsayılan: `~/.profile`), `/home/node/.profile` konumuna mount edilir ve testleri çalıştırmadan önce kaynağa alınır +- `OPENCLAW_DOCKER_CLI_TOOLS_DIR=...` (varsayılan: `~/.cache/openclaw/docker-cli-tools`), Docker içindeki önbelleğe alınmış CLI kurulumları için `/home/node/.npm-global` konumuna mount edilir +- `$HOME` altındaki harici CLI auth dizinleri/dosyaları `/host-auth...` altında salt okunur olarak mount edilir, ardından testler başlamadan önce `/home/node/...` içine kopyalanır - Varsayılan dizinler: `.minimax` - Varsayılan dosyalar: `~/.codex/auth.json`, `~/.codex/config.toml`, `.claude.json`, `~/.claude/.credentials.json`, `~/.claude/settings.json`, `~/.claude/settings.local.json` - - Daraltılmış sağlayıcı çalıştırmaları yalnızca `OPENCLAW_LIVE_PROVIDERS` / `OPENCLAW_LIVE_GATEWAY_PROVIDERS` üzerinden çıkarılan gerekli dizinleri/dosyaları bağlar - - Elle geçersiz kılmak için `OPENCLAW_DOCKER_AUTH_DIRS=all`, `OPENCLAW_DOCKER_AUTH_DIRS=none` veya `OPENCLAW_DOCKER_AUTH_DIRS=.claude,.codex` gibi virgüllü bir liste kullanın + - Daraltılmış sağlayıcı çalıştırmaları yalnızca `OPENCLAW_LIVE_PROVIDERS` / `OPENCLAW_LIVE_GATEWAY_PROVIDERS` içinden çıkarılan gerekli dizinleri/dosyaları mount eder + - Elle geçersiz kılmak için `OPENCLAW_DOCKER_AUTH_DIRS=all`, `OPENCLAW_DOCKER_AUTH_DIRS=none` veya `OPENCLAW_DOCKER_AUTH_DIRS=.claude,.codex` gibi virgülle ayrılmış bir liste kullanın - Çalıştırmayı daraltmak için `OPENCLAW_LIVE_GATEWAY_MODELS=...` / `OPENCLAW_LIVE_MODELS=...` -- Konteyner içindeki sağlayıcıları filtrelemek için `OPENCLAW_LIVE_GATEWAY_PROVIDERS=...` / `OPENCLAW_LIVE_PROVIDERS=...` +- Container içindeki sağlayıcıları filtrelemek için `OPENCLAW_LIVE_GATEWAY_PROVIDERS=...` / `OPENCLAW_LIVE_PROVIDERS=...` - Kimlik bilgilerinin env'den değil profil deposundan gelmesini zorlamak için `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1` - Open WebUI smoke testinde gateway tarafından sunulan modeli seçmek için `OPENCLAW_OPENWEBUI_MODEL=...` -- Open WebUI smoke testinde kullanılan nonce-kontrol prompt'unu geçersiz kılmak için `OPENCLAW_OPENWEBUI_PROMPT=...` -- Sabitlenmiş Open WebUI imaj etiketini geçersiz kılmak için `OPENWEBUI_IMAGE=...` +- Open WebUI smoke testinde kullanılan nonce-check prompt'unu geçersiz kılmak için `OPENCLAW_OPENWEBUI_PROMPT=...` +- Sabitlenmiş Open WebUI görüntü etiketini geçersiz kılmak için `OPENWEBUI_IMAGE=...` -## Belge sağlıklılık kontrolü +## Doküman sağlamlık kontrolü -Belge düzenlemelerinden sonra belge kontrollerini çalıştırın: `pnpm check:docs`. -Sayfa içi başlık kontrollerine de ihtiyacınız olduğunda tam Mintlify anchor doğrulamasını çalıştırın: `pnpm docs:check-links:anchors`. +Doküman düzenlemelerinden sonra doküman kontrollerini çalıştırın: `pnpm check:docs`. +Sayfa içi başlık kontrollerine de ihtiyaç duyduğunuzda tam Mintlify anchor doğrulamasını çalıştırın: `pnpm docs:check-links:anchors`. -## Çevrimdışı regresyon (CI-güvenli) +## Çevrimdışı regresyon (CI için güvenli) Bunlar gerçek sağlayıcılar olmadan “gerçek hat” regresyonlarıdır: -- Gateway tool calling (sahte OpenAI, gerçek gateway + ajan döngüsü): `src/gateway/gateway.test.ts` (durum: "runs a mock OpenAI tool call end-to-end via gateway agent loop") -- Gateway wizard (WS `wizard.start`/`wizard.next`, config + auth enforced yazımı): `src/gateway/gateway.test.ts` (durum: "runs wizard over ws and writes auth token config") +- Gateway araç çağırma (sahte OpenAI, gerçek gateway + agent döngüsü): `src/gateway/gateway.test.ts` (durum: "runs a mock OpenAI tool call end-to-end via gateway agent loop") +- Gateway sihirbazı (WS `wizard.start`/`wizard.next`, config + auth enforced yazar): `src/gateway/gateway.test.ts` (durum: "runs wizard over ws and writes auth token config") -## Ajan güvenilirliği değerlendirmeleri (Skills) +## Agent güvenilirlik değerlendirmeleri (Skills) -Zaten “ajan güvenilirliği değerlendirmeleri” gibi davranan birkaç CI-güvenli testimiz var: +Zaten “agent güvenilirlik değerlendirmeleri” gibi davranan birkaç CI-güvenli testimiz var: -- Gerçek gateway + ajan döngüsü üzerinden sahte tool-calling (`src/gateway/gateway.test.ts`). -- Oturum kablolamasını ve config etkilerini doğrulayan uçtan uca wizard akışları (`src/gateway/gateway.test.ts`). +- Gerçek gateway + agent döngüsü üzerinden sahte araç çağırma (`src/gateway/gateway.test.ts`). +- Oturum kablolamasını ve config etkilerini doğrulayan uçtan uca sihirbaz akışları (`src/gateway/gateway.test.ts`). -Skills için hâlâ eksik olanlar (bkz. [Skills](/tr/tools/skills)): +Skills için hâlâ eksik olanlar ([Skills](/tr/tools/skills) bölümüne bakın): -- **Karar verme:** prompt içinde skills listelendiğinde, ajan doğru skill'i seçiyor mu (ya da ilgisiz olanlardan kaçınıyor mu)? -- **Uyumluluk:** ajan kullanmadan önce `SKILL.md` dosyasını okuyor ve gerekli adımları/argümanları izliyor mu? -- **İş akışı sözleşmeleri:** tool sırasını, oturum geçmişi devrini ve sandbox sınırlarını doğrulayan çok turlu senaryolar. +- **Karar verme:** Skills prompt'ta listelendiğinde agent doğru Skill'i seçiyor mu (veya ilgisiz olanlardan kaçınıyor mu)? +- **Uyumluluk:** agent kullanımdan önce `SKILL.md` dosyasını okuyor ve gerekli adımları/argümanları izliyor mu? +- **İş akışı sözleşmeleri:** araç sırasını, oturum geçmişi devrini ve sandbox sınırlarını doğrulayan çok turlu senaryolar. Gelecekteki değerlendirmeler önce deterministik kalmalıdır: -- Tool çağrılarını + sırasını, skill dosyası okumalarını ve oturum kablolamasını doğrulamak için sahte sağlayıcılar kullanan bir senaryo çalıştırıcısı. +- Araç çağrılarını + sırasını, Skill dosya okumalarını ve oturum kablolamasını doğrulamak için sahte sağlayıcılar kullanan bir senaryo çalıştırıcısı. - Skill odaklı küçük bir senaryo paketi (kullan vs kaçın, geçitleme, prompt injection). -- İsteğe bağlı live değerlendirmeler (opt-in, env kontrollü), ancak CI-güvenli paket hazır olduktan sonra. +- Yalnızca CI-güvenli paket yerleştikten sonra isteğe bağlı canlı değerlendirmeler (opt-in, env-gated). -## Sözleşme testleri (plugin ve channel yapısı) +## Sözleşme testleri (plugin ve channel şekli) -Sözleşme testleri, kayıtlı her plugin ve channel'ın arayüz sözleşmesine uyduğunu doğrular. Keşfedilen tüm plugin'ler üzerinde dolaşır ve bir dizi yapı ve davranış doğrulaması çalıştırır. Varsayılan `pnpm test` unit hattı bu paylaşılan seam ve smoke dosyalarını bilerek atlar; paylaşılan channel veya sağlayıcı yüzeylerine dokunduğunuzda sözleşme komutlarını açıkça çalıştırın. +Sözleşme testleri, kayıtlı her plugin ve channel'ın arayüz sözleşmesine uyduğunu doğrular. Keşfedilen tüm plugin'ler üzerinde gezinir ve bir şekil ile davranış doğrulamaları paketi çalıştırırlar. Varsayılan `pnpm test` birim hattı, bilerek bu paylaşılan seam ve smoke dosyalarını atlar; paylaşılan channel veya sağlayıcı yüzeylerine dokunduğunuzda sözleşme komutlarını açıkça çalıştırın. ### Komutlar - Tüm sözleşmeler: `pnpm test:contracts` - Yalnızca channel sözleşmeleri: `pnpm test:contracts:channels` -- Yalnızca sağlayıcı sözleşmeleri: `pnpm test:contracts:plugins` +- Yalnızca provider sözleşmeleri: `pnpm test:contracts:plugins` ### Channel sözleşmeleri -`src/channels/plugins/contracts/*.contract.test.ts` konumundadır: +`src/channels/plugins/contracts/*.contract.test.ts` içinde bulunur: -- **plugin** - Temel plugin yapısı (id, name, capabilities) -- **setup** - Kurulum wizard sözleşmesi +- **plugin** - Temel plugin şekli (id, name, capabilities) +- **setup** - Kurulum sihirbazı sözleşmesi - **session-binding** - Oturum bağlama davranışı -- **outbound-payload** - Mesaj payload yapısı +- **outbound-payload** - Mesaj yükü yapısı - **inbound** - Gelen mesaj işleme -- **actions** - Channel action handler'ları +- **actions** - Kanal eylem işleyicileri - **threading** - Thread ID işleme - **directory** - Dizin/roster API -- **group-policy** - Grup politikası uygulaması +- **group-policy** - Grup ilkesi uygulaması ### Sağlayıcı durum sözleşmeleri -`src/plugins/contracts/*.contract.test.ts` konumundadır. +`src/plugins/contracts/*.contract.test.ts` içinde bulunur. -- **status** - Channel durum probe'ları -- **registry** - Plugin registry yapısı +- **status** - Kanal durum probları +- **registry** - Plugin kayıt defteri şekli ### Sağlayıcı sözleşmeleri -`src/plugins/contracts/*.contract.test.ts` konumundadır: +`src/plugins/contracts/*.contract.test.ts` içinde bulunur: - **auth** - Auth akışı sözleşmesi -- **auth-choice** - Auth seçimi/seçiciliği -- **catalog** - Model katalog API'si +- **auth-choice** - Auth seçimi/tercihi +- **catalog** - Model kataloğu API'si - **discovery** - Plugin keşfi - **loader** - Plugin yükleme -- **runtime** - Sağlayıcı çalışma zamanı -- **shape** - Plugin yapısı/arayüzü -- **wizard** - Kurulum wizard'ı +- **runtime** - Sağlayıcı runtime'ı +- **shape** - Plugin şekli/arayüzü +- **wizard** - Kurulum sihirbazı ### Ne zaman çalıştırılmalı -- plugin-sdk export'larını veya alt yollarını değiştirdikten sonra -- Bir channel veya sağlayıcı plugin'i ekledikten ya da değiştirdikten sonra -- Plugin kaydını veya keşfini yeniden düzenledikten sonra +- `plugin-sdk` dışa aktarımlarını veya alt yollarını değiştirdikten sonra +- Bir channel veya provider plugin'i ekledikten ya da değiştirdikten sonra +- Plugin kaydı veya keşfini yeniden düzenledikten sonra Sözleşme testleri CI içinde çalışır ve gerçek API anahtarları gerektirmez. -## Regresyon ekleme (rehberlik) +## Regresyon ekleme (rehber) -Live içinde keşfedilen bir sağlayıcı/model sorununu düzelttiğinizde: +Canlı ortamda keşfedilen bir sağlayıcı/model sorununu düzelttiğinizde: -- Mümkünse CI-güvenli bir regresyon ekleyin (sağlayıcıyı mock/stub yapın veya tam request-shape dönüşümünü yakalayın) -- Doğası gereği yalnızca live ise (rate limit'ler, auth politikaları), live testi dar ve env değişkenleriyle opt-in tutun +- Mümkünse CI-güvenli bir regresyon ekleyin (sağlayıcıyı mock/stub yapın veya tam istek şekli dönüşümünü yakalayın) +- Doğası gereği yalnızca canlı ortamda görülebiliyorsa (rate limit, auth ilkeleri), canlı testi dar ve env değişkenleriyle opt-in olacak şekilde tutun - Hatayı yakalayan en küçük katmanı hedeflemeyi tercih edin: - - sağlayıcı request dönüşümü/replay hatası → doğrudan models testi - - gateway session/history/tool pipeline hatası → gateway live smoke veya CI-güvenli gateway mock testi -- SecretRef traversal guardrail: - - `src/secrets/exec-secret-ref-id-parity.test.ts`, kayıt metadata'sından (`listSecretTargetRegistryEntries()`) SecretRef sınıfı başına örneklenmiş bir hedef türetir, ardından traversal-segment exec kimliklerinin reddedildiğini doğrular. - - `src/secrets/target-registry-data.ts` içinde yeni bir `includeInPlan` SecretRef hedef ailesi eklerseniz, o testteki `classifyTargetClass` işlevini güncelleyin. Test, yeni sınıfların sessizce atlanamaması için sınıflandırılmamış hedef kimliklerinde bilerek başarısız olur. + - sağlayıcı istek dönüşümü/replay hatası → doğrudan model testi + - gateway oturum/geçmiş/araç hattı hatası → gateway canlı smoke veya CI-güvenli gateway mock testi +- SecretRef traversal korkuluğu: + - `src/secrets/exec-secret-ref-id-parity.test.ts`, kayıt defteri metadata'sından (`listSecretTargetRegistryEntries()`) SecretRef sınıfı başına örneklenmiş bir hedef türetir, ardından traversal-segment exec id'lerinin reddedildiğini doğrular. + - `src/secrets/target-registry-data.ts` içinde yeni bir `includeInPlan` SecretRef hedef ailesi eklerseniz, o testte `classifyTargetClass` fonksiyonunu güncelleyin. Yeni sınıflar sessizce atlanamasın diye test bilerek sınıflandırılmamış hedef id'lerinde başarısız olur. diff --git a/docs/tr/reference/memory-config.md b/docs/tr/reference/memory-config.md index b29a7e553..f9be8e8a0 100644 --- a/docs/tr/reference/memory-config.md +++ b/docs/tr/reference/memory-config.md @@ -1,84 +1,91 @@ --- read_when: - - Bellek araması provider’larını veya embedding modellerini yapılandırmak istiyorsunuz - - QMD backend’ini kurmak istiyorsunuz - - Hibrit arama, MMR veya zamansal çürümeyi ayarlamak istiyorsunuz - - Multimodal bellek indekslemeyi etkinleştirmek istiyorsunuz -summary: Bellek araması, embedding provider’ları, QMD, hibrit arama ve multimodal indeksleme için tüm yapılandırma ayarları + - Bellek araması sağlayıcılarını veya gömme modellerini yapılandırmak istiyorsunuz. + - QMD arka ucunu kurmak istiyorsunuz. + - Hibrit aramayı, MMR’yi veya zamansal azalmayı ayarlamak istiyorsunuz. + - Çok kipli bellek dizinlemeyi etkinleştirmek istiyorsunuz. +summary: Bellek araması, gömme sağlayıcıları, QMD, hibrit arama ve çok kipli dizinleme için tüm yapılandırma seçenekleri title: Bellek yapılandırma başvurusu x-i18n: - generated_at: "2026-04-06T03:13:01Z" + generated_at: "2026-04-10T08:50:29Z" model: gpt-5.4 provider: openai - source_hash: 0de0b85125443584f4e575cf673ca8d9bd12ecd849d73c537f4a17545afa93fd + source_hash: 5f9076bdfad95b87bd70625821bf401326f8eaeb53842b70823881419dbe43cb source_path: reference/memory-config.md workflow: 15 --- # Bellek yapılandırma başvurusu -Bu sayfa, OpenClaw bellek araması için tüm yapılandırma ayarlarını listeler. Kavramsal genel bakışlar için bkz.: +Bu sayfa, OpenClaw bellek araması için tüm yapılandırma seçeneklerini listeler. Kavramsal genel bakışlar için bkz.: - [Belleğe Genel Bakış](/tr/concepts/memory) -- belleğin nasıl çalıştığı -- [Yerleşik Motor](/tr/concepts/memory-builtin) -- varsayılan SQLite backend’i -- [QMD Motoru](/tr/concepts/memory-qmd) -- local-first yan hizmet -- [Bellek Araması](/tr/concepts/memory-search) -- arama işlem hattı ve ince ayar +- [Yerleşik Motor](/tr/concepts/memory-builtin) -- varsayılan SQLite arka ucu +- [QMD Motoru](/tr/concepts/memory-qmd) -- local-first sidecar +- [Bellek Araması](/tr/concepts/memory-search) -- arama işlem hattı ve ayarlama +- [Etkin Bellek](/tr/concepts/active-memory) -- etkileşimli oturumlar için bellek alt aracısını etkinleştirme -Aksi belirtilmedikçe tüm bellek araması ayarları `openclaw.json` içinde -`agents.defaults.memorySearch` altında bulunur. +Aksi belirtilmedikçe tüm bellek araması ayarları, `openclaw.json` içinde `agents.defaults.memorySearch` altında bulunur. + +**Etkin bellek** özellik anahtarını ve alt aracı yapılandırmasını arıyorsanız, bunlar `memorySearch` yerine `plugins.entries.active-memory` altında bulunur. + +Etkin bellek iki kapılı bir model kullanır: + +1. eklentinin etkin olması ve geçerli aracı kimliğini hedeflemesi gerekir +2. isteğin uygun bir etkileşimli kalıcı sohbet oturumu olması gerekir + +Etkinleştirme modeli, eklentiye ait yapılandırma, döküm kalıcılığı ve güvenli dağıtım deseni için [Etkin Bellek](/tr/concepts/active-memory) bölümüne bakın. --- -## Provider seçimi +## Sağlayıcı seçimi -| Anahtar | Tür | Varsayılan | Açıklama | -| --------- | --------- | -------------- | -------------------------------------------------------------------------------------------- | -| `provider` | `string` | otomatik algılanır | Embedding bağdaştırıcı kimliği: `openai`, `gemini`, `voyage`, `mistral`, `bedrock`, `ollama`, `local` | -| `model` | `string` | provider varsayılanı | Embedding model adı | -| `fallback` | `string` | `"none"` | Birincil başarısız olduğunda geri dönüş bağdaştırıcı kimliği | -| `enabled` | `boolean` | `true` | Bellek aramasını etkinleştir veya devre dışı bırak | +| Anahtar | Tür | Varsayılan | Açıklama | +| --------- | ---------- | --------------- | -------------------------------------------------------------------------------------------- | +| `provider` | `string` | otomatik algılanır | Gömme bağdaştırıcısı kimliği: `openai`, `gemini`, `voyage`, `mistral`, `bedrock`, `ollama`, `local` | +| `model` | `string` | sağlayıcı varsayılanı | Gömme modeli adı | +| `fallback` | `string` | `"none"` | Birincil başarısız olduğunda kullanılacak yedek bağdaştırıcı kimliği | +| `enabled` | `boolean` | `true` | Bellek aramasını etkinleştirir veya devre dışı bırakır | ### Otomatik algılama sırası -`provider` ayarlanmadığında, OpenClaw kullanılabilir ilk seçeneği seçer: +`provider` ayarlanmamışsa OpenClaw kullanılabilir ilk seçeneği seçer: -1. `local` -- `memorySearch.local.modelPath` yapılandırılmışsa ve dosya varsa. +1. `local` -- `memorySearch.local.modelPath` yapılandırılmışsa ve dosya mevcutsa. 2. `openai` -- bir OpenAI anahtarı çözümlenebiliyorsa. 3. `gemini` -- bir Gemini anahtarı çözümlenebiliyorsa. 4. `voyage` -- bir Voyage anahtarı çözümlenebiliyorsa. 5. `mistral` -- bir Mistral anahtarı çözümlenebiliyorsa. -6. `bedrock` -- AWS SDK kimlik bilgisi zinciri çözümleniyorsa (instance role, access key’ler, profile, SSO, web identity veya paylaşılan config). +6. `bedrock` -- AWS SDK kimlik bilgisi zinciri çözümleniyorsa (instance role, access keys, profile, SSO, web identity veya shared config). `ollama` desteklenir ancak otomatik algılanmaz (açıkça ayarlayın). ### API anahtarı çözümleme -Uzak embedding’ler bir API anahtarı gerektirir. Bedrock bunun yerine AWS SDK varsayılan -kimlik bilgisi zincirini kullanır (instance role’ler, SSO, access key’ler). +Uzak gömmeler bir API anahtarı gerektirir. Bunun yerine Bedrock, AWS SDK varsayılan kimlik bilgisi zincirini kullanır (instance role, SSO, access keys). -| Provider | Env değişkeni | Yapılandırma anahtarı | -| -------- | ------------------------------ | --------------------------------- | -| OpenAI | `OPENAI_API_KEY` | `models.providers.openai.apiKey` | -| Gemini | `GEMINI_API_KEY` | `models.providers.google.apiKey` | -| Voyage | `VOYAGE_API_KEY` | `models.providers.voyage.apiKey` | -| Mistral | `MISTRAL_API_KEY` | `models.providers.mistral.apiKey` | -| Bedrock | AWS kimlik bilgisi zinciri | API anahtarı gerekmez | -| Ollama | `OLLAMA_API_KEY` (yer tutucu) | -- | +| Sağlayıcı | Ortam değişkeni | Yapılandırma anahtarı | +| --------- | ----------------------------- | -------------------------------- | +| OpenAI | `OPENAI_API_KEY` | `models.providers.openai.apiKey` | +| Gemini | `GEMINI_API_KEY` | `models.providers.google.apiKey` | +| Voyage | `VOYAGE_API_KEY` | `models.providers.voyage.apiKey` | +| Mistral | `MISTRAL_API_KEY` | `models.providers.mistral.apiKey` | +| Bedrock | AWS kimlik bilgisi zinciri | API anahtarı gerekmez | +| Ollama | `OLLAMA_API_KEY` (yer tutucu) | -- | -Codex OAuth yalnızca chat/completions kapsamını kapsar ve embedding -isteklerini karşılamaz. +Codex OAuth yalnızca chat/completions işlemlerini kapsar ve gömme isteklerini karşılamaz. --- -## Uzak endpoint yapılandırması +## Uzak uç nokta yapılandırması -Özel OpenAI uyumlu endpoint’ler veya provider varsayılanlarını geçersiz kılmak için: +Özel OpenAI uyumlu uç noktalar veya sağlayıcı varsayılanlarını geçersiz kılmak için: -| Anahtar | Tür | Açıklama | -| ----------------- | -------- | -------------------------------------------- | -| `remote.baseUrl` | `string` | Özel API base URL | -| `remote.apiKey` | `string` | API anahtarını geçersiz kıl | -| `remote.headers` | `object` | Ek HTTP üstbilgileri (provider varsayılanlarıyla birleştirilir) | +| Anahtar | Tür | Açıklama | +| ----------------- | -------- | ---------------------------------------------------- | +| `remote.baseUrl` | `string` | Özel API temel URL’si | +| `remote.apiKey` | `string` | API anahtarını geçersiz kılar | +| `remote.headers` | `object` | Ek HTTP üstbilgileri (sağlayıcı varsayılanlarıyla birleştirilir) | ```json5 { @@ -99,24 +106,23 @@ isteklerini karşılamaz. --- -## Gemini’ye özgü yapılandırma +## Gemini'ye özgü yapılandırma -| Anahtar | Tür | Varsayılan | Açıklama | -| ---------------------- | -------- | ---------------------- | ----------------------------------------- | +| Anahtar | Tür | Varsayılan | Açıklama | +| ---------------------- | -------- | ---------------------- | ------------------------------------------ | | `model` | `string` | `gemini-embedding-001` | Ayrıca `gemini-embedding-2-preview` desteklenir | -| `outputDimensionality` | `number` | `3072` | Embedding 2 için: 768, 1536 veya 3072 | +| `outputDimensionality` | `number` | `3072` | Embedding 2 için: 768, 1536 veya 3072 | -Model veya `outputDimensionality` değiştirildiğinde otomatik tam yeniden indeksleme tetiklenir. +`model` veya `outputDimensionality` değiştirilirse otomatik olarak tam yeniden dizinleme tetiklenir. --- -## Bedrock embedding yapılandırması +## Bedrock gömme yapılandırması Bedrock, AWS SDK varsayılan kimlik bilgisi zincirini kullanır -- API anahtarı gerekmez. -OpenClaw, Bedrock etkin bir instance role ile EC2 üzerinde çalışıyorsa yalnızca -provider ve modeli ayarlamanız yeterlidir: +OpenClaw, Bedrock etkin bir instance role ile EC2 üzerinde çalışıyorsa sağlayıcıyı ve modeli ayarlamanız yeterlidir: ```json5 { @@ -131,47 +137,45 @@ provider ve modeli ayarlamanız yeterlidir: } ``` -| Anahtar | Tür | Varsayılan | Açıklama | -| ---------------------- | -------- | ---------------------------- | ------------------------------- | -| `model` | `string` | `amazon.titan-embed-text-v2:0` | Herhangi bir Bedrock embedding model kimliği | +| Anahtar | Tür | Varsayılan | Açıklama | +| ---------------------- | -------- | ---------------------------- | --------------------------------- | +| `model` | `string` | `amazon.titan-embed-text-v2:0` | Herhangi bir Bedrock gömme modeli kimliği | | `outputDimensionality` | `number` | model varsayılanı | Titan V2 için: 256, 512 veya 1024 | ### Desteklenen modeller -Aşağıdaki modeller desteklenir (family algılama ve boyut varsayılanlarıyla): +Aşağıdaki modeller desteklenir (aile algılama ve boyut varsayılanlarıyla birlikte): -| Model ID | Provider | Varsayılan Boyut | Yapılandırılabilir Boyutlar | +| Model kimliği | Sağlayıcı | Varsayılan Boyut | Yapılandırılabilir Boyutlar | | ------------------------------------------ | ---------- | ---------------- | --------------------------- | -| `amazon.titan-embed-text-v2:0` | Amazon | 1024 | 256, 512, 1024 | +| `amazon.titan-embed-text-v2:0` | Amazon | 1024 | 256, 512, 1024 | | `amazon.titan-embed-text-v1` | Amazon | 1536 | -- | | `amazon.titan-embed-g1-text-02` | Amazon | 1536 | -- | | `amazon.titan-embed-image-v1` | Amazon | 1024 | -- | -| `amazon.nova-2-multimodal-embeddings-v1:0` | Amazon | 1024 | 256, 384, 1024, 3072 | +| `amazon.nova-2-multimodal-embeddings-v1:0` | Amazon | 1024 | 256, 384, 1024, 3072 | | `cohere.embed-english-v3` | Cohere | 1024 | -- | | `cohere.embed-multilingual-v3` | Cohere | 1024 | -- | -| `cohere.embed-v4:0` | Cohere | 1536 | 256-1536 | +| `cohere.embed-v4:0` | Cohere | 1536 | 256-1536 | | `twelvelabs.marengo-embed-3-0-v1:0` | TwelveLabs | 512 | -- | | `twelvelabs.marengo-embed-2-7-v1:0` | TwelveLabs | 1024 | -- | -Verim eki bulunan varyantlar (ör. `amazon.titan-embed-text-v1:2:8k`), temel -modelin yapılandırmasını devralır. +Aktarım hızı sonekli varyantlar (ör. `amazon.titan-embed-text-v1:2:8k`) temel modelin yapılandırmasını devralır. ### Kimlik doğrulama -Bedrock auth, standart AWS SDK kimlik bilgisi çözümleme sırasını kullanır: +Bedrock kimlik doğrulaması, standart AWS SDK kimlik bilgisi çözümleme sırasını kullanır: 1. Ortam değişkenleri (`AWS_ACCESS_KEY_ID` + `AWS_SECRET_ACCESS_KEY`) -2. SSO token önbelleği -3. Web identity token kimlik bilgileri -4. Paylaşılan kimlik bilgileri ve config dosyaları +2. SSO belirteç önbelleği +3. Web kimliği belirteci kimlik bilgileri +4. Paylaşılan kimlik bilgisi ve yapılandırma dosyaları 5. ECS veya EC2 meta veri kimlik bilgileri -Bölge, `AWS_REGION`, `AWS_DEFAULT_REGION`, `amazon-bedrock` -provider `baseUrl` değerinden çözülür veya varsayılan olarak `us-east-1` kullanılır. +Bölge; `AWS_REGION`, `AWS_DEFAULT_REGION`, `amazon-bedrock` sağlayıcısının `baseUrl` değeri üzerinden çözülür veya varsayılan olarak `us-east-1` kullanılır. ### IAM izinleri -IAM role veya kullanıcısının şuna ihtiyacı vardır: +IAM rolü veya kullanıcısının şuna ihtiyacı vardır: ```json { @@ -181,7 +185,7 @@ IAM role veya kullanıcısının şuna ihtiyacı vardır: } ``` -En az ayrıcalık için `InvokeModel` iznini belirli modele sınırlandırın: +En az ayrıcalık için `InvokeModel` iznini belirli modele daraltın: ``` arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0 @@ -189,12 +193,12 @@ arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0 --- -## Yerel embedding yapılandırması +## Yerel gömme yapılandırması -| Anahtar | Tür | Varsayılan | Açıklama | -| ---------------------- | -------- | ------------------------ | ------------------------------ | -| `local.modelPath` | `string` | otomatik indirilir | GGUF model dosyasının yolu | -| `local.modelCacheDir` | `string` | node-llama-cpp varsayılanı | İndirilen modeller için önbellek dizini | +| Anahtar | Tür | Varsayılan | Açıklama | +| --------------------- | -------- | ---------------------- | -------------------------------- | +| `local.modelPath` | `string` | otomatik indirilir | GGUF model dosyasının yolu | +| `local.modelCacheDir` | `string` | node-llama-cpp varsayılanı | İndirilen modeller için önbellek dizini | Varsayılan model: `embeddinggemma-300m-qat-Q8_0.gguf` (~0.6 GB, otomatik indirilir). Yerel derleme gerektirir: `pnpm approve-builds` ardından `pnpm rebuild node-llama-cpp`. @@ -203,11 +207,11 @@ Yerel derleme gerektirir: `pnpm approve-builds` ardından `pnpm rebuild node-lla ## Hibrit arama yapılandırması -Hepsi `memorySearch.query.hybrid` altındadır: +Tamamı `memorySearch.query.hybrid` altında bulunur: | Anahtar | Tür | Varsayılan | Açıklama | | --------------------- | --------- | ---------- | --------------------------------- | -| `enabled` | `boolean` | `true` | Hibrit BM25 + vektör aramayı etkinleştir | +| `enabled` | `boolean` | `true` | Hibrit BM25 + vektör aramasını etkinleştirir | | `vectorWeight` | `number` | `0.7` | Vektör puanları için ağırlık (0-1) | | `textWeight` | `number` | `0.3` | BM25 puanları için ağırlık (0-1) | | `candidateMultiplier` | `number` | `4` | Aday havuzu boyutu çarpanı | @@ -216,17 +220,17 @@ Hepsi `memorySearch.query.hybrid` altındadır: | Anahtar | Tür | Varsayılan | Açıklama | | ------------- | --------- | ---------- | -------------------------------------- | -| `mmr.enabled` | `boolean` | `false` | MMR yeniden sıralamayı etkinleştir | -| `mmr.lambda` | `number` | `0.7` | 0 = en yüksek çeşitlilik, 1 = en yüksek alaka | +| `mmr.enabled` | `boolean` | `false` | MMR yeniden sıralamayı etkinleştirir | +| `mmr.lambda` | `number` | `0.7` | 0 = en yüksek çeşitlilik, 1 = en yüksek ilgi | -### Zamansal çürüme (güncellik) +### Zamansal azalma (güncellik) -| Anahtar | Tür | Varsayılan | Açıklama | -| --------------------------- | --------- | ---------- | --------------------------- | -| `temporalDecay.enabled` | `boolean` | `false` | Güncellik artışını etkinleştir | -| `temporalDecay.halfLifeDays`| `number` | `30` | Puan her N günde yarıya iner | +| Anahtar | Tür | Varsayılan | Açıklama | +| ---------------------------- | --------- | ---------- | --------------------------- | +| `temporalDecay.enabled` | `boolean` | `false` | Güncellik artırmasını etkinleştirir | +| `temporalDecay.halfLifeDays` | `number` | `30` | Puan her N günde yarıya iner | -Evergreen dosyalar (`MEMORY.md`, `memory/` içindeki tarih içermeyen dosyalar) asla çürütülmez. +Her zaman geçerli dosyalar (`MEMORY.md`, `memory/` içindeki tarih içermeyen dosyalar) hiçbir zaman azaltılmaz. ### Tam örnek @@ -253,9 +257,9 @@ Evergreen dosyalar (`MEMORY.md`, `memory/` içindeki tarih içermeyen dosyalar) ## Ek bellek yolları -| Anahtar | Tür | Açıklama | -| ------------ | ---------- | ------------------------------------------- | -| `extraPaths` | `string[]` | İndekslenecek ek dizinler veya dosyalar | +| Anahtar | Tür | Açıklama | +| ----------- | ---------- | ----------------------------------------- | +| `extraPaths` | `string[]` | Dizinlenecek ek dizinler veya dosyalar | ```json5 { @@ -269,31 +273,24 @@ Evergreen dosyalar (`MEMORY.md`, `memory/` içindeki tarih içermeyen dosyalar) } ``` -Yollar mutlak veya çalışma alanına göreli olabilir. Dizinler `.md` dosyaları için -özyinelemeli taranır. Symlink işleme etkin backend’e bağlıdır: -yerleşik motor symlink’leri yok sayar, QMD ise alttaki QMD tarayıcı -davranışını izler. +Yollar mutlak veya çalışma alanına göreli olabilir. Dizinler, `.md` dosyaları için özyinelemeli olarak taranır. Sembolik bağlantı işleme, etkin arka uca bağlıdır: yerleşik motor sembolik bağlantıları yok sayarken, QMD alttaki QMD tarayıcı davranışını izler. -Agent kapsamlı agent’lar arası transcript araması için -`memory.qmd.paths` yerine `agents.list[].memorySearch.qmd.extraCollections` -kullanın. Bu ek koleksiyonlar aynı `{ path, name, pattern? }` biçimini izler, -ancak agent başına birleştirilir ve yol mevcut çalışma alanının dışına -işaret ettiğinde açık paylaşılan adları koruyabilir. -Aynı çözümlenmiş yol hem `memory.qmd.paths` hem de -`memorySearch.qmd.extraCollections` içinde görünürse, QMD ilk girdiyi tutar ve -yineleneni atlar. +Aracı kapsamlı çapraz aracı döküm araması için `memory.qmd.paths` yerine `agents.list[].memorySearch.qmd.extraCollections` kullanın. +Bu ek koleksiyonlar aynı `{ path, name, pattern? }` biçimini izler, ancak aracı başına birleştirilir ve yol geçerli çalışma alanının dışına işaret ettiğinde açık paylaşılan adları koruyabilir. + +Aynı çözümlenmiş yol hem `memory.qmd.paths` hem de `memorySearch.qmd.extraCollections` içinde görünürse, QMD ilk girişi tutar ve yineleneni atlar. --- -## Multimodal bellek (Gemini) +## Çok kipli bellek (Gemini) -Markdown ile birlikte görsel ve sesi Gemini Embedding 2 kullanarak indeksleyin: +Gemini Embedding 2 kullanarak görselleri ve sesleri Markdown ile birlikte dizinleyin: -| Anahtar | Tür | Varsayılan | Açıklama | -| ------------------------- | ---------- | ---------- | ---------------------------------------- | -| `multimodal.enabled` | `boolean` | `false` | Multimodal indekslemeyi etkinleştir | -| `multimodal.modalities` | `string[]` | -- | `["image"]`, `["audio"]` veya `["all"]` | -| `multimodal.maxFileBytes` | `number` | `10000000` | İndeksleme için en büyük dosya boyutu | +| Anahtar | Tür | Varsayılan | Açıklama | +| ------------------------- | ---------- | ---------- | ------------------------------------------ | +| `multimodal.enabled` | `boolean` | `false` | Çok kipli dizinlemeyi etkinleştirir | +| `multimodal.modalities` | `string[]` | -- | `["image"]`, `["audio"]` veya `["all"]` | +| `multimodal.maxFileBytes` | `number` | `10000000` | Dizinleme için en büyük dosya boyutu | Yalnızca `extraPaths` içindeki dosyalara uygulanır. Varsayılan bellek kökleri yalnızca Markdown olarak kalır. `gemini-embedding-2-preview` gerektirir. `fallback` değeri `"none"` olmalıdır. @@ -303,119 +300,109 @@ Desteklenen biçimler: `.jpg`, `.jpeg`, `.png`, `.webp`, `.gif`, `.heic`, `.heif --- -## Embedding önbelleği +## Gömme önbelleği -| Anahtar | Tür | Varsayılan | Açıklama | -| ----------------- | --------- | ---------- | ------------------------------------- | -| `cache.enabled` | `boolean` | `false` | Parça embedding’lerini SQLite içinde önbelleğe al | -| `cache.maxEntries`| `number` | `50000` | En fazla önbelleğe alınan embedding | +| Anahtar | Tür | Varsayılan | Açıklama | +| ------------------ | --------- | ---------- | -------------------------------------- | +| `cache.enabled` | `boolean` | `false` | Parça gömmelerini SQLite içinde önbelleğe alır | +| `cache.maxEntries` | `number` | `50000` | En fazla önbelleğe alınan gömme sayısı | -Yeniden indeksleme veya transcript güncellemeleri sırasında değişmemiş metnin yeniden embedding yapılmasını önler. +Yeniden dizinleme veya döküm güncellemeleri sırasında değişmemiş metnin yeniden gömülmesini önler. --- -## Toplu indeksleme +## Toplu dizinleme -| Anahtar | Tür | Varsayılan | Açıklama | -| ---------------------------- | --------- | ---------- | --------------------------- | -| `remote.batch.enabled` | `boolean` | `false` | Toplu embedding API’yi etkinleştir | -| `remote.batch.concurrency` | `number` | `2` | Paralel toplu işler | -| `remote.batch.wait` | `boolean` | `true` | Toplu işin tamamlanmasını bekle | -| `remote.batch.pollIntervalMs`| `number` | -- | Yoklama aralığı | -| `remote.batch.timeoutMinutes`| `number` | -- | Toplu iş zaman aşımı | +| Anahtar | Tür | Varsayılan | Açıklama | +| ----------------------------- | --------- | ---------- | ---------------------------- | +| `remote.batch.enabled` | `boolean` | `false` | Toplu gömme API’sini etkinleştirir | +| `remote.batch.concurrency` | `number` | `2` | Paralel toplu işler | +| `remote.batch.wait` | `boolean` | `true` | Toplu işin tamamlanmasını bekler | +| `remote.batch.pollIntervalMs` | `number` | -- | Yoklama aralığı | +| `remote.batch.timeoutMinutes` | `number` | -- | Toplu iş zaman aşımı | -`openai`, `gemini` ve `voyage` için kullanılabilir. OpenAI batch genellikle -büyük geri doldurmalar için en hızlı ve en ucuz olanıdır. +`openai`, `gemini` ve `voyage` için kullanılabilir. OpenAI toplu işleme, büyük geri doldurmalar için genellikle en hızlı ve en ucuz seçenektir. --- -## Oturum bellek araması (deneysel) +## Oturum belleği araması (deneysel) -Oturum transcript’lerini indeksleyin ve bunları `memory_search` üzerinden gösterin: +Oturum dökümlerini dizinleyin ve bunları `memory_search` üzerinden gösterin: -| Anahtar | Tür | Varsayılan | Açıklama | -| ---------------------------- | ---------- | ------------- | ------------------------------------------- | -| `experimental.sessionMemory` | `boolean` | `false` | Oturum indekslemeyi etkinleştir | -| `sources` | `string[]` | `["memory"]` | Transcript’leri dahil etmek için `"sessions"` ekleyin | -| `sync.sessions.deltaBytes` | `number` | `100000` | Yeniden indeksleme için bayt eşiği | -| `sync.sessions.deltaMessages`| `number` | `50` | Yeniden indeksleme için mesaj eşiği | +| Anahtar | Tür | Varsayılan | Açıklama | +| --------------------------- | ---------- | ------------ | --------------------------------------- | +| `experimental.sessionMemory` | `boolean` | `false` | Oturum dizinlemeyi etkinleştirir | +| `sources` | `string[]` | `["memory"]` | Dökümleri dahil etmek için `"sessions"` ekleyin | +| `sync.sessions.deltaBytes` | `number` | `100000` | Yeniden dizinleme için bayt eşiği | +| `sync.sessions.deltaMessages` | `number` | `50` | Yeniden dizinleme için ileti eşiği | -Oturum indeksleme isteğe bağlıdır ve eşzamansız çalışır. Sonuçlar biraz eski olabilir. -Oturum günlükleri diskte yaşar, bu yüzden dosya sistemi erişimini güven sınırı olarak değerlendirin. +Oturum dizinleme isteğe bağlıdır ve eşzamansız çalışır. Sonuçlar biraz eski olabilir. Oturum günlükleri diskte bulunduğundan, dosya sistemi erişimini güven sınırı olarak değerlendirin. --- ## SQLite vektör hızlandırma (sqlite-vec) -| Anahtar | Tür | Varsayılan | Açıklama | -| --------------------------- | --------- | ---------- | --------------------------------- | -| `store.vector.enabled` | `boolean` | `true` | Vektör sorguları için sqlite-vec kullan | -| `store.vector.extensionPath`| `string` | bundled | sqlite-vec yolunu geçersiz kıl | +| Anahtar | Tür | Varsayılan | Açıklama | +| -------------------------- | --------- | ---------- | ---------------------------------- | +| `store.vector.enabled` | `boolean` | `true` | Vektör sorguları için sqlite-vec kullanır | +| `store.vector.extensionPath` | `string` | bundled | sqlite-vec yolunu geçersiz kılar | -sqlite-vec kullanılamadığında OpenClaw otomatik olarak süreç içi kosinüs -benzerliğine geri döner. +sqlite-vec kullanılamadığında OpenClaw otomatik olarak işlem içi kosinüs benzerliğine geri döner. --- -## İndeks depolama +## Dizin depolama -| Anahtar | Tür | Varsayılan | Açıklama | -| -------------------- | -------- | ------------------------------------- | ------------------------------------------ | -| `store.path` | `string` | `~/.openclaw/memory/{agentId}.sqlite` | İndeks konumu (`{agentId}` token’ını destekler) | -| `store.fts.tokenizer`| `string` | `unicode61` | FTS5 tokenizer (`unicode61` veya `trigram`) | +| Anahtar | Tür | Varsayılan | Açıklama | +| -------------------- | -------- | ------------------------------------- | ----------------------------------------- | +| `store.path` | `string` | `~/.openclaw/memory/{agentId}.sqlite` | Dizin konumu (`{agentId}` belirteçini destekler) | +| `store.fts.tokenizer` | `string` | `unicode61` | FTS5 tokenleştiricisi (`unicode61` veya `trigram`) | --- -## QMD backend yapılandırması +## QMD arka uç yapılandırması -Etkinleştirmek için `memory.backend = "qmd"` ayarlayın. Tüm QMD ayarları -`memory.qmd` altında bulunur: +Etkinleştirmek için `memory.backend = "qmd"` ayarlayın. Tüm QMD ayarları `memory.qmd` altında bulunur: -| Anahtar | Tür | Varsayılan | Açıklama | -| ----------------------- | --------- | ---------- | -------------------------------------------- | -| `command` | `string` | `qmd` | QMD çalıştırılabilir dosya yolu | -| `searchMode` | `string` | `search` | Arama komutu: `search`, `vsearch`, `query` | -| `includeDefaultMemory` | `boolean` | `true` | `MEMORY.md` + `memory/**/*.md` otomatik indeksle | -| `paths[]` | `array` | -- | Ek yollar: `{ name, path, pattern? }` | -| `sessions.enabled` | `boolean` | `false` | Oturum transcript’lerini indeksle | -| `sessions.retentionDays`| `number` | -- | Transcript saklama süresi | -| `sessions.exportDir` | `string` | -- | Dışa aktarma dizini | +| Anahtar | Tür | Varsayılan | Açıklama | +| ----------------------- | --------- | ---------- | ---------------------------------------------- | +| `command` | `string` | `qmd` | QMD yürütülebilir dosya yolu | +| `searchMode` | `string` | `search` | Arama komutu: `search`, `vsearch`, `query` | +| `includeDefaultMemory` | `boolean` | `true` | `MEMORY.md` + `memory/**/*.md` otomatik dizinleme | +| `paths[]` | `array` | -- | Ek yollar: `{ name, path, pattern? }` | +| `sessions.enabled` | `boolean` | `false` | Oturum dökümlerini dizinler | +| `sessions.retentionDays` | `number` | -- | Döküm saklama süresi | +| `sessions.exportDir` | `string` | -- | Dışa aktarma dizini | -OpenClaw, mevcut QMD koleksiyonu ve MCP sorgu şekillerini tercih eder, ancak -gerektiğinde eski `--mask` koleksiyon bayraklarına ve eski MCP araç adlarına -geri dönerek eski QMD sürümlerini de çalışır halde tutar. +OpenClaw, geçerli QMD koleksiyonu ve MCP sorgu şekillerini tercih eder, ancak gerektiğinde eski `--mask` koleksiyon bayraklarına ve daha eski MCP araç adlarına geri dönerek eski QMD sürümlerini de çalışır durumda tutar. -QMD model geçersiz kılmaları OpenClaw config tarafında değil, QMD tarafında kalır. -QMD’nin modellerini global olarak geçersiz kılmanız gerekiyorsa, -gateway çalışma zamanı ortamında `QMD_EMBED_MODEL`, `QMD_RERANK_MODEL` ve `QMD_GENERATE_MODEL` -gibi ortam değişkenlerini ayarlayın. +QMD model geçersiz kılmaları OpenClaw yapılandırmasında değil, QMD tarafında kalır. QMD modellerini genel olarak geçersiz kılmanız gerekiyorsa ağ geçidi çalışma zamanı ortamında `QMD_EMBED_MODEL`, `QMD_RERANK_MODEL` ve `QMD_GENERATE_MODEL` gibi ortam değişkenlerini ayarlayın. ### Güncelleme takvimi -| Anahtar | Tür | Varsayılan | Açıklama | -| ------------------------- | --------- | ---------- | -------------------------------------- | -| `update.interval` | `string` | `5m` | Yenileme aralığı | -| `update.debounceMs` | `number` | `15000` | Dosya değişikliklerini debounce et | -| `update.onBoot` | `boolean` | `true` | Başlangıçta yenile | -| `update.waitForBootSync` | `boolean` | `false` | Yenileme tamamlanana kadar başlangıcı engelle | -| `update.embedInterval` | `string` | -- | Ayrı embedding kadansı | -| `update.commandTimeoutMs` | `number` | -- | QMD komutları için zaman aşımı | -| `update.updateTimeoutMs` | `number` | -- | QMD update işlemleri için zaman aşımı | -| `update.embedTimeoutMs` | `number` | -- | QMD embedding işlemleri için zaman aşımı | +| Anahtar | Tür | Varsayılan | Açıklama | +| ------------------------ | --------- | ---------- | -------------------------------------- | +| `update.interval` | `string` | `5m` | Yenileme aralığı | +| `update.debounceMs` | `number` | `15000` | Dosya değişikliklerini debounce eder | +| `update.onBoot` | `boolean` | `true` | Başlangıçta yeniler | +| `update.waitForBootSync` | `boolean` | `false` | Yenileme tamamlanana kadar başlangıcı engeller | +| `update.embedInterval` | `string` | -- | Ayrı gömme sıklığı | +| `update.commandTimeoutMs` | `number` | -- | QMD komutları için zaman aşımı | +| `update.updateTimeoutMs` | `number` | -- | QMD güncelleme işlemleri için zaman aşımı | +| `update.embedTimeoutMs` | `number` | -- | QMD gömme işlemleri için zaman aşımı | ### Sınırlar -| Anahtar | Tür | Varsayılan | Açıklama | -| ------------------------ | -------- | ---------- | ---------------------------- | -| `limits.maxResults` | `number` | `6` | En fazla arama sonucu | -| `limits.maxSnippetChars` | `number` | -- | Snippet uzunluğunu sınırla | -| `limits.maxInjectedChars`| `number` | -- | Toplam enjekte edilen karakteri sınırla | -| `limits.timeoutMs` | `number` | `4000` | Arama zaman aşımı | +| Anahtar | Tür | Varsayılan | Açıklama | +| ----------------------- | -------- | ---------- | ---------------------------- | +| `limits.maxResults` | `number` | `6` | En fazla arama sonucu | +| `limits.maxSnippetChars` | `number` | -- | Parça uzunluğunu sınırlar | +| `limits.maxInjectedChars` | `number` | -- | Toplam eklenen karakterleri sınırlar | +| `limits.timeoutMs` | `number` | `4000` | Arama zaman aşımı | ### Kapsam -Hangi oturumların QMD arama sonuçlarını alabileceğini denetler. Şeması, -[`session.sendPolicy`](/tr/gateway/configuration-reference#session) ile aynıdır: +Hangi oturumların QMD arama sonuçları alabileceğini kontrol eder. Şeması [`session.sendPolicy`](/tr/gateway/configuration-reference#session) ile aynıdır: ```json5 { @@ -430,18 +417,17 @@ Hangi oturumların QMD arama sonuçlarını alabileceğini denetler. Şeması, } ``` -Varsayılan yalnızca DM’dir. `match.keyPrefix`, normalize edilmiş oturum anahtarıyla eşleşir; -`match.rawKeyPrefix`, `agent::` dahil ham anahtarla eşleşir. +Varsayılan yalnızca DM’dir. `match.keyPrefix`, normalize edilmiş oturum anahtarıyla eşleşir; `match.rawKeyPrefix` ise `agent::` dahil ham anahtarla eşleşir. ### Atıflar -`memory.citations`, tüm backend’lere uygulanır: +`memory.citations` tüm arka uçlara uygulanır: -| Değer | Davranış | -| ----------------- | -------------------------------------------------- | -| `auto` (varsayılan) | Snippet’lere `Source: ` altbilgisi ekle | -| `on` | Altbilgiyi her zaman ekle | -| `off` | Altbilgiyi çıkar (yol yine de agent’a dahili olarak iletilir) | +| Değer | Davranış | +| ---------------- | ---------------------------------------------------- | +| `auto` (varsayılan) | Parçalara `Source: ` alt bilgisini ekler | +| `on` | Alt bilgiyi her zaman ekler | +| `off` | Alt bilgiyi çıkarır (yol yine de aracıya dahili olarak iletilir) | ### Tam QMD örneği @@ -468,20 +454,18 @@ Varsayılan yalnızca DM’dir. `match.keyPrefix`, normalize edilmiş oturum ana ## Dreaming (deneysel) -Dreaming, `agents.defaults.memorySearch` altında değil, -`plugins.entries.memory-core.config.dreaming` altında yapılandırılır. +Dreaming, `agents.defaults.memorySearch` altında değil, `plugins.entries.memory-core.config.dreaming` altında yapılandırılır. -Dreaming tek bir zamanlanmış tarama olarak çalışır ve dahili light/deep/REM aşamalarını -uygulama ayrıntısı olarak kullanır. +Dreaming, tek bir zamanlanmış tarama olarak çalışır ve içsel hafif/derin/REM aşamalarını bir uygulama ayrıntısı olarak kullanır. -Kavramsal davranış ve slash komutları için bkz. [Dreaming](/concepts/dreaming). +Kavramsal davranış ve slash komutları için bkz. [Dreaming](/tr/concepts/dreaming). ### Kullanıcı ayarları -| Anahtar | Tür | Varsayılan | Açıklama | -| ---------- | --------- | ----------- | ------------------------------------------ | -| `enabled` | `boolean` | `false` | Dreaming’i tamamen etkinleştir veya devre dışı bırak | -| `frequency`| `string` | `0 3 * * *` | Tam dreaming taraması için isteğe bağlı cron aralığı | +| Anahtar | Tür | Varsayılan | Açıklama | +| ----------- | --------- | ----------- | ----------------------------------------- | +| `enabled` | `boolean` | `false` | Dreaming’i tamamen etkinleştirir veya devre dışı bırakır | +| `frequency` | `string` | `0 3 * * *` | Tam dreaming taraması için isteğe bağlı cron sıklığı | ### Örnek @@ -504,6 +488,6 @@ Kavramsal davranış ve slash komutları için bkz. [Dreaming](/concepts/dreamin Notlar: -- Dreaming makine durumunu `memory/.dreams/` içine yazar. -- Dreaming insan tarafından okunabilir anlatı çıktısını `DREAMS.md` (veya mevcut `dreams.md`) içine yazar. -- Light/deep/REM aşama ilkesi ve eşikleri, kullanıcıya dönük config değil dahili davranıştır. +- Dreaming, makine durumunu `memory/.dreams/` içine yazar. +- Dreaming, insanlar tarafından okunabilir anlatı çıktısını `DREAMS.md` içine (veya mevcutsa `dreams.md`) yazar. +- Hafif/derin/REM aşama ilkesi ve eşikleri, kullanıcıya dönük yapılandırma değil, içsel davranıştır. diff --git a/docs/tr/tools/browser.md b/docs/tr/tools/browser.md index 99365af32..aac8ee1c3 100644 --- a/docs/tr/tools/browser.md +++ b/docs/tr/tools/browser.md @@ -1,41 +1,41 @@ --- read_when: - - Aracı tarafından kontrol edilen tarayıcı otomasyonu ekleme - - openclaw'ın kendi Chrome'unuza neden müdahale ettiğini hata ayıklama - - macOS uygulamasında tarayıcı ayarlarını + yaşam döngüsünü uygulama + - Ajan kontrollü tarayıcı otomasyonu ekleme + - openclaw’un kendi Chrome’unuza neden müdahale ettiğini hata ayıklama + - macOS uygulamasında tarayıcı ayarları ve yaşam döngüsü uygulama summary: Entegre tarayıcı kontrol hizmeti + eylem komutları title: Tarayıcı (OpenClaw tarafından yönetilen) x-i18n: - generated_at: "2026-04-05T14:14:34Z" + generated_at: "2026-04-10T08:50:35Z" model: gpt-5.4 provider: openai - source_hash: a41162efd397ea918469e16aa67e554bcbb517b3112df1d3e7927539b6a0926a + source_hash: cd3424f62178bbf25923b8bc8e4d9f70e330f35428d01fe153574e5fa45d7604 source_path: tools/browser.md workflow: 15 --- # Tarayıcı (openclaw tarafından yönetilen) -OpenClaw, aracının kontrol ettiği **özel bir Chrome/Brave/Edge/Chromium profili** çalıştırabilir. -Bu profil kişisel tarayıcınızdan izole edilir ve Gateway içindeki küçük bir yerel +OpenClaw, ajanın kontrol ettiği **özel bir Chrome/Brave/Edge/Chromium profili** çalıştırabilir. +Bu, kişisel tarayıcınızdan izoledir ve Gateway içindeki küçük bir yerel kontrol hizmeti üzerinden yönetilir (yalnızca loopback). Başlangıç düzeyi görünüm: -- Bunu **ayrı, yalnızca aracıya özel bir tarayıcı** olarak düşünün. +- Bunu **ayrı, yalnızca ajana ait bir tarayıcı** olarak düşünün. - `openclaw` profili kişisel tarayıcı profilinize **dokunmaz**. -- Aracı güvenli bir alanda **sekme açabilir, sayfaları okuyabilir, tıklayabilir ve yazı yazabilir**. +- Ajan güvenli bir hat üzerinde **sekme açabilir, sayfa okuyabilir, tıklayabilir ve yazı yazabilir**. - Yerleşik `user` profili, Chrome MCP aracılığıyla gerçek oturum açılmış Chrome oturumunuza bağlanır. ## Elde ettikleriniz - **openclaw** adlı ayrı bir tarayıcı profili (varsayılan olarak turuncu vurgu). -- Deterministik sekme kontrolü (listele/aç/odaklan/kapat). -- Aracı eylemleri (tıkla/yaz/sürükle/seç), snapshot'lar, ekran görüntüleri, PDF'ler. +- Deterministik sekme kontrolü (listeleme/açma/odaklama/kapatma). +- Ajan eylemleri (tıklama/yazma/sürükleme/seçme), anlık görüntüler, ekran görüntüleri, PDF’ler. - İsteğe bağlı çoklu profil desteği (`openclaw`, `work`, `remote`, ...). -Bu tarayıcı günlük kullandığınız ana tarayıcı **değildir**. Bu, aracı otomasyonu -ve doğrulaması için güvenli, izole bir yüzeydir. +Bu tarayıcı günlük kullandığınız tarayıcı **değildir**. Bu, ajan otomasyonu ve doğrulaması için +güvenli, izole bir yüzeydir. ## Hızlı başlangıç @@ -46,18 +46,16 @@ openclaw browser --browser-profile openclaw open https://example.com openclaw browser --browser-profile openclaw snapshot ``` -“Browser disabled” alırsanız, yapılandırmada etkinleştirin (aşağıya bakın) ve -Gateway'i yeniden başlatın. +“Browser disabled” alırsanız, bunu yapılandırmada etkinleştirin (aşağıya bakın) ve +Gateway’i yeniden başlatın. -`openclaw browser` tamamen yoksa veya aracı tarayıcı aracının -kullanılamadığını söylüyorsa, [Eksik browser komutu veya aracı](/tools/browser#missing-browser-command-or-tool) -bölümüne gidin. +`openclaw browser` tamamen yoksa veya ajan tarayıcı aracının +kullanılamadığını söylüyorsa, [Eksik browser komutu veya aracı](/tr/tools/browser#missing-browser-command-or-tool) bölümüne gidin. ## Plugin kontrolü -Varsayılan `browser` aracı artık varsayılan olarak etkin gelen paketlenmiş bir -plugin'dir. Bu, OpenClaw'ın geri kalan plugin sistemini kaldırmadan onu devre -dışı bırakabileceğiniz veya değiştirebileceğiniz anlamına gelir: +Varsayılan `browser` aracı artık varsayılan olarak etkin gelen paketlenmiş bir plugin’dir. +Bu, OpenClaw’un plugin sisteminin geri kalanını kaldırmadan onu devre dışı bırakabileceğiniz veya değiştirebileceğiniz anlamına gelir: ```json5 { @@ -71,32 +69,30 @@ dışı bırakabileceğiniz veya değiştirebileceğiniz anlamına gelir: } ``` -Aynı `browser` araç adını sağlayan başka bir plugin yüklemeden önce paketlenmiş -plugin'i devre dışı bırakın. Varsayılan tarayıcı deneyimi için her ikisi de gerekir: +Aynı `browser` araç adını sağlayan başka bir plugin kurmadan önce paketlenmiş plugin’i devre dışı bırakın. +Varsayılan tarayıcı deneyimi şu ikisini de gerektirir: - `plugins.entries.browser.enabled` devre dışı bırakılmamış olmalı - `browser.enabled=true` -Yalnızca plugin'i kapatırsanız, paketlenmiş tarayıcı CLI'si (`openclaw browser`), -gateway yöntemi (`browser.request`), aracı aracı ve varsayılan tarayıcı kontrol -hizmeti birlikte kaybolur. `browser.*` yapılandırmanız ise yedek bir plugin'in -yeniden kullanabilmesi için olduğu gibi kalır. +Yalnızca plugin’i kapatırsanız, paketlenmiş tarayıcı CLI’si (`openclaw browser`), +gateway yöntemi (`browser.request`), ajan aracı ve varsayılan tarayıcı kontrol +hizmeti birlikte ortadan kalkar. `browser.*` yapılandırmanız, bunu yeniden kullanacak +bir yedek plugin için olduğu gibi kalır. -Paketlenmiş tarayıcı plugin'i artık tarayıcı çalışma zamanı uygulamasının da -sahibidir. Çekirdek tarafta yalnızca paylaşılan Plugin SDK yardımcıları ve eski -dahili içe aktarma yolları için uyumluluk yeniden dışa aktarımları kalır. -Pratikte, tarayıcı plugin paketini kaldırmak veya değiştirmek, geride çekirdeğe -ait ikinci bir çalışma zamanı bırakmak yerine tarayıcı özellik kümesini kaldırır. +Paketlenmiş tarayıcı plugin’i artık tarayıcı çalışma zamanı uygulamasının da sahibidir. +Çekirdek, yalnızca paylaşılan Plugin SDK yardımcılarını ve eski dahili içe aktarma yolları için +uyumluluk yeniden dışa aktarmalarını tutar. Uygulamada, tarayıcı plugin paketinin kaldırılması veya değiştirilmesi, +arkada ikinci bir çekirdek sahipli çalışma zamanı bırakmak yerine tarayıcı özellik kümesini kaldırır. -Tarayıcı yapılandırma değişiklikleri yine de Gateway yeniden başlatması -gerektirir; böylece paketlenmiş plugin yeni ayarlarla tarayıcı hizmetini yeniden -kaydedebilir. +Tarayıcı yapılandırma değişiklikleri, paketlenmiş plugin’in yeni ayarlarla tarayıcı +hizmetini yeniden kaydedebilmesi için hâlâ Gateway yeniden başlatması gerektirir. ## Eksik browser komutu veya aracı -Bir yükseltmeden sonra `openclaw browser` aniden bilinmeyen bir komut haline -gelirse veya aracı tarayıcı aracının eksik olduğunu bildirirse, en yaygın neden -`browser` içermeyen kısıtlayıcı bir `plugins.allow` listesidir. +Bir yükseltmeden sonra `openclaw browser` aniden bilinmeyen bir komut hâline gelirse veya +ajan tarayıcı aracının eksik olduğunu bildirirse, en yaygın neden `browser` içermeyen +kısıtlayıcı bir `plugins.allow` listesidir. Bozuk yapılandırma örneği: @@ -120,28 +116,29 @@ Bunu, plugin izin listesine `browser` ekleyerek düzeltin: Önemli notlar: -- `plugins.allow` ayarlıysa tek başına `browser.enabled=true` yeterli değildir. -- `plugins.allow` ayarlıysa tek başına `plugins.entries.browser.enabled=true` de yeterli değildir. -- `tools.alsoAllow: ["browser"]` paketlenmiş tarayıcı plugin'ini **yüklemez**. Yalnızca plugin zaten yüklendikten sonra araç ilkesini ayarlar. -- Kısıtlayıcı bir plugin izin listesine ihtiyacınız yoksa, `plugins.allow` kaldırmak da varsayılan paketlenmiş tarayıcı davranışını geri getirir. +- `plugins.allow` ayarlandığında tek başına `browser.enabled=true` yeterli değildir. +- `plugins.allow` ayarlandığında tek başına `plugins.entries.browser.enabled=true` de yeterli değildir. +- `tools.alsoAllow: ["browser"]`, paketlenmiş tarayıcı plugin’ini yüklemez. Yalnızca plugin zaten yüklendikten sonra araç ilkesini ayarlar. +- Kısıtlayıcı bir plugin izin listesine ihtiyacınız yoksa, `plugins.allow` değerini kaldırmak da varsayılan paketlenmiş tarayıcı davranışını geri getirir. Tipik belirtiler: - `openclaw browser` bilinmeyen bir komuttur. - `browser.request` eksiktir. -- Aracı, tarayıcı aracının kullanılamadığını veya eksik olduğunu bildirir. +- Ajan, tarayıcı aracını kullanılamaz veya eksik olarak bildirir. ## Profiller: `openclaw` ve `user` -- `openclaw`: yönetilen, izole tarayıcı (uzantı gerekmez). -- `user`: gerçek **oturum açılmış Chrome** oturumunuz için yerleşik Chrome MCP bağlanma profili. +- `openclaw`: yönetilen, izole tarayıcı (eklenti gerekmez). +- `user`: **gerçek oturum açılmış Chrome** + oturumunuz için yerleşik Chrome MCP bağlanma profili. -Aracı tarayıcı aracı çağrıları için: +Ajan tarayıcı aracı çağrıları için: - Varsayılan: izole `openclaw` tarayıcısını kullanın. -- Mevcut oturum açılmış oturumlar önemliyse ve kullanıcı bilgisayar başındaysa, - herhangi bir bağlanma istemine tıklayıp onaylayabilmesi için `profile="user"` tercih edin. -- Belirli bir tarayıcı modu istediğinizde açık geçersiz kılma `profile` olur. +- Mevcut oturum açılmış oturumlar önemliyse ve kullanıcı + bağlanma istemini tıklayıp onaylamak için bilgisayar başındaysa `profile="user"` tercih edin. +- Belirli bir tarayıcı modu istediğinizde `profile` açık geçersiz kılmadır. Varsayılan olarak yönetilen modu istiyorsanız `browser.defaultProfile: "openclaw"` ayarlayın. @@ -159,7 +156,7 @@ Tarayıcı ayarları `~/.openclaw/openclaw.json` içinde bulunur. // hostnameAllowlist: ["*.example.com", "example.com"], // allowedHostnames: ["localhost"], }, - // cdpUrl: "http://127.0.0.1:18792", // eski tek profil geçersiz kılması + // cdpUrl: "http://127.0.0.1:18792", // eski tek profil geçersiz kılma remoteCdpTimeoutMs: 1500, // uzak CDP HTTP zaman aşımı (ms) remoteCdpHandshakeTimeoutMs: 3000, // uzak CDP WebSocket el sıkışma zaman aşımı (ms) defaultProfile: "openclaw", @@ -190,26 +187,26 @@ Tarayıcı ayarları `~/.openclaw/openclaw.json` içinde bulunur. Notlar: -- Tarayıcı kontrol hizmeti, `gateway.port` değerinden türetilen bir portta loopback'e bağlanır - (varsayılan: `18791`, yani gateway + 2). -- Gateway portunu geçersiz kılarsanız (`gateway.port` veya `OPENCLAW_GATEWAY_PORT`), - türetilen tarayıcı portları aynı “ailede” kalacak şekilde kayar. -- `cdpUrl`, ayarlanmadığında yönetilen yerel CDP portuna varsayılan olur. -- `remoteCdpTimeoutMs`, uzak (loopback olmayan) CDP erişilebilirlik kontrollerine uygulanır. -- `remoteCdpHandshakeTimeoutMs`, uzak CDP WebSocket erişilebilirlik kontrollerine uygulanır. -- Tarayıcı gezinmesi/sekme açma, gezinmeden önce SSRF korumasından geçer ve gezinmeden sonra son `http(s)` URL'si üzerinde en iyi çabayla yeniden kontrol edilir. -- Katı SSRF modunda, uzak CDP uç noktası keşfi/probları (`cdpUrl`, `/json/version` aramaları dahil) da kontrol edilir. -- `browser.ssrfPolicy.dangerouslyAllowPrivateNetwork` varsayılan olarak `true` olur (güvenilir ağ modeli). Katı yalnızca herkese açık gezinti için bunu `false` yapın. +- Tarayıcı kontrol hizmeti, `gateway.port` üzerinden türetilen bir bağlantı noktasında + loopback’e bağlanır (`varsayılan: 18791`, yani gateway + 2). +- Gateway bağlantı noktasını (`gateway.port` veya `OPENCLAW_GATEWAY_PORT`) geçersiz kılarsanız, + türetilmiş tarayıcı bağlantı noktaları aynı “ailede” kalacak şekilde kayar. +- `cdpUrl`, ayarlanmadığında yönetilen yerel CDP bağlantı noktasına varsayılan olur. +- `remoteCdpTimeoutMs`, uzak (loopback olmayan) CDP erişilebilirlik denetimlerine uygulanır. +- `remoteCdpHandshakeTimeoutMs`, uzak CDP WebSocket erişilebilirlik denetimlerine uygulanır. +- Tarayıcı gezinmesi/sekme açma, gezinmeden önce SSRF korumalıdır ve gezinme sonrası nihai `http(s)` URL’sinde en iyi çabayla yeniden denetlenir. +- Sıkı SSRF modunda, uzak CDP uç noktası keşfi/probları (`cdpUrl`, `/json/version` aramaları dahil) da denetlenir. +- `browser.ssrfPolicy.dangerouslyAllowPrivateNetwork` varsayılan olarak `true` olur (güvenilir ağ modeli). Sıkı yalnızca genel gezinme için bunu `false` yapın. - `browser.ssrfPolicy.allowPrivateNetwork`, uyumluluk için eski bir takma ad olarak desteklenmeye devam eder. -- `attachOnly: true`, “asla yerel bir tarayıcı başlatma; yalnızca zaten çalışıyorsa bağlan” anlamına gelir. +- `attachOnly: true`, “asla yerel tarayıcı başlatma; yalnızca zaten çalışıyorsa bağlan” anlamına gelir. - `color` + profil başına `color`, hangi profilin etkin olduğunu görebilmeniz için tarayıcı arayüzünü renklendirir. -- Varsayılan profil `openclaw` olur (OpenClaw tarafından yönetilen bağımsız tarayıcı). Oturum açılmış kullanıcı tarayıcısına geçmek için `defaultProfile: "user"` kullanın. -- Otomatik algılama sırası: sistem varsayılan tarayıcısı Chromium tabanlıysa o; değilse Chrome → Brave → Edge → Chromium → Chrome Canary. +- Varsayılan profil `openclaw`’dır (OpenClaw tarafından yönetilen bağımsız tarayıcı). Oturum açılmış kullanıcı tarayıcısını tercih etmek için `defaultProfile: "user"` kullanın. +- Otomatik algılama sırası: Chromium tabanlıysa sistem varsayılan tarayıcısı; değilse Chrome → Brave → Edge → Chromium → Chrome Canary. - Yerel `openclaw` profilleri `cdpPort`/`cdpUrl` değerlerini otomatik atar — bunları yalnızca uzak CDP için ayarlayın. -- `driver: "existing-session"`, ham CDP yerine Chrome DevTools MCP kullanır. Bu - sürücü için `cdpUrl` ayarlamayın. -- Mevcut bir oturum profili, Brave veya Edge gibi varsayılan olmayan bir Chromium kullanıcı profiline - bağlanacaksa `browser.profiles..userDataDir` ayarlayın. +- `driver: "existing-session"`, ham CDP yerine Chrome DevTools MCP kullanır. Bu sürücü için + `cdpUrl` ayarlamayın. +- Var olan bir oturum profilinin Brave veya Edge gibi varsayılan olmayan bir Chromium kullanıcı profiline + bağlanması gerekiyorsa `browser.profiles..userDataDir` ayarlayın. ## Brave kullanın (veya başka bir Chromium tabanlı tarayıcı) @@ -248,51 +245,50 @@ openclaw config set browser.executablePath "/usr/bin/google-chrome" ## Yerel ve uzak kontrol -- **Yerel kontrol (varsayılan):** Gateway, loopback kontrol hizmetini başlatır ve yerel bir tarayıcı başlatabilir. -- **Uzak kontrol (düğüm ana makinesi):** Tarayıcının bulunduğu makinede bir düğüm ana makinesi çalıştırın; Gateway tarayıcı eylemlerini ona proxy'ler. -- **Uzak CDP:** Uzak bir Chromium tabanlı tarayıcıya bağlanmak için `browser.profiles..cdpUrl` (veya `browser.cdpUrl`) ayarlayın. +- **Yerel kontrol (varsayılan):** Gateway loopback kontrol hizmetini başlatır ve yerel bir tarayıcı başlatabilir. +- **Uzak kontrol (düğüm ana makinesi):** tarayıcının bulunduğu makinede bir düğüm ana makinesi çalıştırın; Gateway tarayıcı eylemlerini ona proxy’ler. +- **Uzak CDP:** uzak bir Chromium tabanlı tarayıcıya bağlanmak için `browser.profiles..cdpUrl` (veya `browser.cdpUrl`) ayarlayın. Bu durumda OpenClaw yerel bir tarayıcı başlatmaz. -Durdurma davranışı profil moduna göre farklıdır: +Durdurma davranışı profil moduna göre değişir: -- yerel yönetilen profiller: `openclaw browser stop`, OpenClaw'ın başlattığı tarayıcı işlemini durdurur +- yerel yönetilen profiller: `openclaw browser stop`, OpenClaw’un başlattığı tarayıcı sürecini durdurur - yalnızca bağlanma ve uzak CDP profilleri: `openclaw browser stop`, etkin - kontrol oturumunu kapatır ve Playwright/CDP öykünme geçersiz kılmalarını - (görünüm alanı, renk şeması, yerel ayar, saat dilimi, çevrimdışı mod ve benzer durumlar) - serbest bırakır; OpenClaw tarafından herhangi bir tarayıcı işlemi başlatılmamış olsa bile + kontrol oturumunu kapatır ve Playwright/CDP öykünme geçersiz kılmalarını serbest bırakır (görüntü alanı, + renk düzeni, yerel ayar, saat dilimi, çevrimdışı mod ve benzer durumlar), + ancak OpenClaw tarafından hiçbir tarayıcı süreci başlatılmamış olabilir -Uzak CDP URL'leri kimlik doğrulama içerebilir: +Uzak CDP URL’leri kimlik doğrulama içerebilir: - Sorgu belirteçleri (ör. `https://provider.example?token=`) -- HTTP Basic auth (ör. `https://user:pass@provider.example`) +- HTTP Basic kimlik doğrulama (ör. `https://user:pass@provider.example`) -OpenClaw, `/json/*` uç noktalarını çağırırken ve CDP WebSocket'ine bağlanırken -kimlik doğrulamayı korur. Belirteçleri yapılandırma dosyalarına commit etmek -yerine ortam değişkenlerini veya gizli bilgi yöneticilerini tercih edin. +OpenClaw, `/json/*` uç noktalarını çağırırken ve +CDP WebSocket’e bağlanırken kimlik doğrulamayı korur. Belirteçleri yapılandırma dosyalarına kaydetmek yerine +ortam değişkenlerini veya gizli bilgi yöneticilerini tercih edin. -## Düğüm tarayıcı proxy'si (varsayılan sıfır yapılandırma) +## Düğüm tarayıcı proxy’si (sıfır yapılandırmalı varsayılan) -Tarayıcınızın bulunduğu makinede bir **düğüm ana makinesi** çalıştırırsanız, -OpenClaw herhangi bir ek tarayıcı yapılandırması olmadan tarayıcı aracı -çağrılarını bu düğüme otomatik yönlendirebilir. Bu, uzak gateway'ler için -varsayılan yoldur. +Tarayıcınızın bulunduğu makinede bir **düğüm ana makinesi** çalıştırırsanız, OpenClaw +ek tarayıcı yapılandırması olmadan tarayıcı aracı çağrılarını otomatik olarak o düğüme yönlendirebilir. +Bu, uzak gateway’ler için varsayılan yoldur. Notlar: -- Düğüm ana makinesi, yerel tarayıcı kontrol sunucusunu bir **proxy komutu** üzerinden açığa çıkarır. -- Profiller, düğümün kendi `browser.profiles` yapılandırmasından gelir (yerel ile aynı). -- `nodeHost.browserProxy.allowProfiles` isteğe bağlıdır. Eski/varsayılan davranış için boş bırakın: yapılandırılmış tüm profillere, profil oluşturma/silme rotaları dahil, proxy üzerinden erişilebilir olmaya devam eder. -- `nodeHost.browserProxy.allowProfiles` ayarlarsanız, OpenClaw bunu en az ayrıcalık sınırı olarak ele alır: yalnızca izin verilen profiller hedeflenebilir ve kalıcı profil oluşturma/silme rotaları proxy yüzeyinde engellenir. +- Düğüm ana makinesi, yerel tarayıcı kontrol sunucusunu bir **proxy komutu** aracılığıyla açığa çıkarır. +- Profiller, düğümün kendi `browser.profiles` yapılandırmasından gelir (yereldekiyle aynı). +- `nodeHost.browserProxy.allowProfiles` isteğe bağlıdır. Eski/varsayılan davranış için bunu boş bırakın: yapılandırılmış tüm profiller, profil oluşturma/silme yolları dahil proxy üzerinden erişilebilir kalır. +- `nodeHost.browserProxy.allowProfiles` ayarlarsanız, OpenClaw bunu en az ayrıcalık sınırı olarak ele alır: yalnızca izin listesindeki profiller hedeflenebilir ve kalıcı profil oluşturma/silme yolları proxy yüzeyinde engellenir. - İstemiyorsanız devre dışı bırakın: - Düğümde: `nodeHost.browserProxy.enabled=false` - - Gateway'de: `gateway.nodes.browser.mode="off"` + - Gateway’de: `gateway.nodes.browser.mode="off"` ## Browserless (barındırılan uzak CDP) [Browserless](https://browserless.io), HTTPS ve WebSocket üzerinden -CDP bağlantı URL'leri sunan, barındırılan bir Chromium hizmetidir. OpenClaw -her iki biçimi de kullanabilir, ancak uzak tarayıcı profili için en basit -seçenek Browserless'ın bağlantı belgelerindeki doğrudan WebSocket URL'sidir. +CDP bağlantı URL’leri sunan barındırılan bir Chromium hizmetidir. OpenClaw her iki biçimi de kullanabilir, ancak +uzak tarayıcı profili için en basit seçenek Browserless bağlantı dokümanlarındaki +doğrudan WebSocket URL’sidir. Örnek: @@ -315,29 +311,29 @@ seçenek Browserless'ın bağlantı belgelerindeki doğrudan WebSocket URL'sidir Notlar: -- `` yerine gerçek Browserless belirtecinizi yazın. -- Browserless hesabınıza uyan bölge uç noktasını seçin (belgelerine bakın). -- Browserless size bir HTTPS temel URL'si verirse, doğrudan CDP bağlantısı için - bunu `wss://` biçimine dönüştürebilir veya HTTPS URL'sini koruyup OpenClaw'ın +- `` yerine gerçek Browserless belirtecinizi koyun. +- Browserless hesabınıza uyan bölge uç noktasını seçin (dokümanlarına bakın). +- Browserless size bir HTTPS taban URL’si verirse, bunu doğrudan CDP bağlantısı için + `wss://` biçimine dönüştürebilir veya HTTPS URL’sini koruyup OpenClaw’un `/json/version` keşfi yapmasına izin verebilirsiniz. ## Doğrudan WebSocket CDP sağlayıcıları -Bazı barındırılan tarayıcı hizmetleri, standart HTTP tabanlı CDP keşfi -(` /json/version`) yerine **doğrudan WebSocket** uç noktası sunar. OpenClaw her ikisini de destekler: +Bazı barındırılan tarayıcı hizmetleri, standart HTTP tabanlı CDP keşfi (`/json/version`) yerine +**doğrudan bir WebSocket** uç noktası sunar. OpenClaw her ikisini de destekler: -- **HTTP(S) uç noktaları** — OpenClaw WebSocket hata ayıklayıcı URL'sini - keşfetmek için `/json/version` çağırır, ardından bağlanır. +- **HTTP(S) uç noktaları** — OpenClaw, WebSocket hata ayıklayıcı URL’sini keşfetmek için + `/json/version` çağrısı yapar, ardından bağlanır. - **WebSocket uç noktaları** (`ws://` / `wss://`) — OpenClaw doğrudan bağlanır, `/json/version` adımını atlar. Bunu [Browserless](https://browserless.io), - [Browserbase](https://www.browserbase.com) veya size bir - WebSocket URL'si veren herhangi bir sağlayıcı için kullanın. + [Browserbase](https://www.browserbase.com) gibi hizmetler veya size + bir WebSocket URL’si veren herhangi bir sağlayıcı için kullanın. ### Browserbase [Browserbase](https://www.browserbase.com), yerleşik CAPTCHA çözme, gizlilik modu ve konut tipi -proxy'lerle headless tarayıcılar çalıştırmak için bir bulut platformudur. +proxy’lerle headless tarayıcılar çalıştırmaya yönelik bir bulut platformudur. ```json5 { @@ -358,60 +354,60 @@ proxy'lerle headless tarayıcılar çalıştırmak için bir bulut platformudur. Notlar: -- [Kaydolun](https://www.browserbase.com/sign-up) ve **API Anahtarınızı** +- [Kaydolun](https://www.browserbase.com/sign-up) ve **API Key** değerinizi [Overview dashboard](https://www.browserbase.com/overview) üzerinden kopyalayın. - `` yerine gerçek Browserbase API anahtarınızı yazın. - Browserbase, WebSocket bağlantısında otomatik olarak bir tarayıcı oturumu oluşturur; bu nedenle elle oturum oluşturma adımı gerekmez. -- Ücretsiz katman, aynı anda bir oturum ve ayda bir tarayıcı saati sağlar. +- Ücretsiz katman ayda bir eşzamanlı oturuma ve bir tarayıcı saatine izin verir. Ücretli plan sınırları için [pricing](https://www.browserbase.com/pricing) sayfasına bakın. -- Tam API başvurusu, - SDK kılavuzları ve entegrasyon örnekleri için [Browserbase docs](https://docs.browserbase.com) bölümüne bakın. +- Tam API + başvurusu, SDK kılavuzları ve entegrasyon örnekleri için [Browserbase docs](https://docs.browserbase.com) sayfasına bakın. ## Güvenlik Temel fikirler: -- Tarayıcı kontrolü yalnızca loopback'tir; erişim Gateway'in auth mekanizması veya düğüm eşleştirmesi üzerinden akar. -- Bağımsız loopback tarayıcı HTTP API'si **yalnızca paylaşılan gizli anahtar auth** kullanır: - gateway bearer token auth, `x-openclaw-password` veya yapılandırılmış gateway parolasıyla HTTP Basic auth. -- Tailscale Serve kimlik başlıkları ve `gateway.auth.mode: "trusted-proxy"`, - bu bağımsız loopback tarayıcı API'sinin kimliğini **doğrulamaz**. -- Tarayıcı kontrolü etkinse ve yapılandırılmış paylaşılan gizli anahtar auth yoksa, OpenClaw - başlangıçta otomatik olarak `gateway.auth.token` üretir ve bunu yapılandırmaya kalıcı olarak yazar. +- Tarayıcı kontrolü yalnızca loopback’tir; erişim Gateway’in kimlik doğrulaması veya düğüm eşleştirmesi üzerinden akar. +- Bağımsız loopback tarayıcı HTTP API’si yalnızca **shared-secret auth** kullanır: + gateway bearer token kimlik doğrulaması, `x-openclaw-password` veya + yapılandırılmış gateway parolasıyla HTTP Basic auth. +- Tailscale Serve kimlik üstbilgileri ve `gateway.auth.mode: "trusted-proxy"` + bu bağımsız loopback tarayıcı API’sini **kimlik doğrulamaz**. +- Tarayıcı kontrolü etkinse ve yapılandırılmış bir shared-secret auth yoksa, OpenClaw + başlangıçta otomatik olarak `gateway.auth.token` üretir ve bunu yapılandırmaya kaydeder. - `gateway.auth.mode` zaten - `password`, `none` veya `trusted-proxy` ise OpenClaw bu belirteci otomatik oluşturmaz. -- Gateway'i ve tüm düğüm ana makinelerini özel bir ağda (Tailscale) tutun; herkese açık erişimden kaçının. -- Uzak CDP URL'lerini/belirteçlerini gizli bilgi olarak değerlendirin; ortam değişkenlerini veya bir gizli bilgi yöneticisini tercih edin. + `password`, `none` veya `trusted-proxy` ise OpenClaw bu belirteci otomatik olarak üretmez. +- Gateway’i ve tüm düğüm ana makinelerini özel bir ağda (Tailscale) tutun; herkese açık erişimden kaçının. +- Uzak CDP URL’lerini/belirteçlerini gizli bilgi olarak değerlendirin; ortam değişkenlerini veya gizli bilgi yöneticisini tercih edin. Uzak CDP ipuçları: -- Mümkün olduğunda şifrelenmiş uç noktaları (HTTPS veya WSS) ve kısa ömürlü belirteçleri tercih edin. +- Mümkün olduğunda şifreli uç noktaları (HTTPS veya WSS) ve kısa ömürlü belirteçleri tercih edin. - Uzun ömürlü belirteçleri doğrudan yapılandırma dosyalarına gömmekten kaçının. ## Profiller (çoklu tarayıcı) OpenClaw birden çok adlandırılmış profili (yönlendirme yapılandırmaları) destekler. Profiller şunlar olabilir: -- **openclaw-managed**: kendi kullanıcı veri dizini + CDP portu olan özel bir Chromium tabanlı tarayıcı örneği -- **remote**: açık bir CDP URL'si (başka yerde çalışan Chromium tabanlı tarayıcı) -- **existing session**: Chrome DevTools MCP otomatik bağlanma üzerinden mevcut Chrome profiliniz +- **OpenClaw tarafından yönetilen**: kendi kullanıcı veri dizini + CDP bağlantı noktasına sahip özel bir Chromium tabanlı tarayıcı örneği +- **uzak**: açık bir CDP URL’si (başka yerde çalışan Chromium tabanlı tarayıcı) +- **mevcut oturum**: Chrome DevTools MCP otomatik bağlanma üzerinden mevcut Chrome profiliniz Varsayılanlar: - `openclaw` profili eksikse otomatik oluşturulur. - `user` profili, Chrome MCP mevcut-oturum bağlanması için yerleşiktir. - Mevcut-oturum profilleri `user` dışında isteğe bağlıdır; bunları `--driver existing-session` ile oluşturun. -- Yerel CDP portları varsayılan olarak **18800–18899** aralığından ayrılır. -- Bir profil silindiğinde yerel veri dizini Çöp Kutusu'na taşınır. +- Yerel CDP bağlantı noktaları varsayılan olarak **18800–18899** aralığından atanır. +- Bir profil silindiğinde yerel veri dizini Çöp Kutusu’na taşınır. Tüm kontrol uç noktaları `?profile=` kabul eder; CLI ise `--browser-profile` kullanır. -## Chrome DevTools MCP üzerinden existing-session +## Chrome DevTools MCP üzerinden mevcut oturum -OpenClaw ayrıca resmi Chrome DevTools MCP sunucusu üzerinden çalışan bir -Chromium tabanlı tarayıcı profiline bağlanabilir. Bu, o tarayıcı profilinde -zaten açık olan sekmeleri ve oturum bilgilerini yeniden kullanır. +OpenClaw ayrıca resmi Chrome DevTools MCP sunucusu üzerinden çalışan bir Chromium tabanlı tarayıcı profiline bağlanabilir. Bu, o tarayıcı profilinde +zaten açık olan sekmeleri ve oturum durumunu yeniden kullanır. Resmi arka plan ve kurulum başvuruları: @@ -422,13 +418,12 @@ Yerleşik profil: - `user` -İsteğe bağlı: farklı bir ad, renk veya tarayıcı veri dizini istiyorsanız kendi özel -existing-session profilinizi oluşturun. +İsteğe bağlı: farklı bir ad, renk veya tarayıcı veri dizini istiyorsanız +kendi özel mevcut-oturum profilinizi oluşturun. Varsayılan davranış: -- Yerleşik `user` profili Chrome MCP otomatik bağlanma kullanır; bu da - varsayılan yerel Google Chrome profilini hedefler. +- Yerleşik `user` profili, varsayılan yerel Google Chrome profilini hedefleyen Chrome MCP auto-connect kullanır. Brave, Edge, Chromium veya varsayılan olmayan bir Chrome profili için `userDataDir` kullanın: @@ -449,7 +444,7 @@ Brave, Edge, Chromium veya varsayılan olmayan bir Chrome profili için `userDat Ardından eşleşen tarayıcıda: -1. Uzak hata ayıklama için o tarayıcının inspect sayfasını açın. +1. O tarayıcının uzak hata ayıklama için inspect sayfasını açın. 2. Uzak hata ayıklamayı etkinleştirin. 3. Tarayıcıyı çalışır durumda tutun ve OpenClaw bağlandığında bağlantı istemini onaylayın. @@ -468,69 +463,71 @@ openclaw browser --browser-profile user tabs openclaw browser --browser-profile user snapshot --format ai ``` -Başarılı durumda görünmesi gerekenler: +Başarılı durumda görülecekler: - `status`, `driver: existing-session` gösterir - `status`, `transport: chrome-mcp` gösterir - `status`, `running: true` gösterir - `tabs`, zaten açık olan tarayıcı sekmelerinizi listeler -- `snapshot`, seçilen canlı sekmeden ref'ler döndürür +- `snapshot`, seçili canlı sekmeden başvuruları döndürür Bağlanma çalışmıyorsa kontrol edilecekler: - hedef Chromium tabanlı tarayıcı sürümü `144+` olmalı -- o tarayıcının inspect sayfasında uzak hata ayıklama etkin olmalı -- tarayıcı bağlanma onay istemini göstermiş olmalı ve siz de kabul etmiş olmalısınız -- `openclaw doctor`, eski uzantı tabanlı tarayıcı yapılandırmasını taşır ve - varsayılan otomatik bağlanma profilleri için Chrome'un yerel olarak yüklü - olduğunu denetler, ancak tarayıcı tarafında uzak hata ayıklamayı sizin yerinize - etkinleştiremez +- uzak hata ayıklama, o tarayıcının inspect sayfasında etkin olmalı +- tarayıcı bağlanma izin istemini göstermiş olmalı ve siz kabul etmiş olmalısınız +- `openclaw doctor`, eski eklenti tabanlı tarayıcı yapılandırmasını taşır ve + varsayılan otomatik bağlanma profilleri için Chrome’un yerel olarak kurulu olup olmadığını denetler, ancak + tarayıcı tarafı uzak hata ayıklamayı sizin için etkinleştiremez -Aracı kullanımı: +Ajan kullanımı: -- Kullanıcının oturum açmış tarayıcı durumuna ihtiyaç duyduğunuzda `profile="user"` kullanın. -- Özel bir existing-session profili kullanıyorsanız, o açık profil adını geçin. -- Bu modu yalnızca kullanıcı bağlanma istemini onaylamak için bilgisayarın başındaysa seçin. -- Gateway veya düğüm ana makinesi `npx chrome-devtools-mcp@latest --autoConnect` çalıştırabilir +- Kullanıcının oturum açmış tarayıcı durumuna ihtiyacınız varsa `profile="user"` kullanın. +- Özel bir mevcut-oturum profili kullanıyorsanız, o açık profil adını geçin. +- Bu modu yalnızca kullanıcı bağlanma + istemini onaylamak için bilgisayar başındayken seçin. +- Gateway veya düğüm ana makinesi `npx chrome-devtools-mcp@latest --autoConnect` başlatabilir Notlar: -- Bu yol, oturum açılmış tarayıcı oturumunuz içinde işlem yapabildiği için izole `openclaw` profiline göre daha yüksek risklidir. -- OpenClaw bu sürücü için tarayıcı başlatmaz; yalnızca mevcut bir oturuma bağlanır. -- OpenClaw burada resmi Chrome DevTools MCP `--autoConnect` akışını kullanır. `userDataDir` - ayarlıysa, bunu o açık Chromium kullanıcı veri dizinini hedeflemek için iletir. -- Existing-session ekran görüntüleri, sayfa yakalamalarını ve snapshot'lardan - `--ref` öğe yakalamalarını destekler, ancak CSS `--element` seçicilerini desteklemez. -- Existing-session sayfa ekran görüntüleri, Playwright olmadan Chrome MCP - üzerinden çalışır. Ref tabanlı öğe ekran görüntüleri (`--ref`) de burada çalışır, - ancak `--full-page`, `--ref` veya `--element` ile birlikte kullanılamaz. -- Existing-session eylemleri, yönetilen tarayıcı yoluna göre hâlâ daha sınırlıdır: - - `click`, `type`, `hover`, `scrollIntoView`, `drag` ve `select`, CSS seçicileri yerine - snapshot ref'leri gerektirir +- Bu yol, oturum açılmış tarayıcı oturumunuz içinde + işlem yapabildiği için izole `openclaw` profiline göre daha yüksek risklidir. +- OpenClaw bu sürücü için tarayıcı başlatmaz; yalnızca mevcut bir + oturuma bağlanır. +- OpenClaw burada resmi Chrome DevTools MCP `--autoConnect` akışını kullanır. Eğer + `userDataDir` ayarlıysa, OpenClaw hedeflenen açık + Chromium kullanıcı veri dizinine yönelmek için bunu aktarır. +- Mevcut-oturum ekran görüntüleri, sayfa yakalamalarını ve anlık görüntülerden `--ref` + öğe yakalamalarını destekler, ancak CSS `--element` seçicilerini desteklemez. +- Mevcut-oturum sayfa ekran görüntüleri, Chrome MCP üzerinden Playwright olmadan çalışır. + Başvuru tabanlı öğe ekran görüntüleri (`--ref`) de burada çalışır, ancak `--full-page` + ile `--ref` veya `--element` birlikte kullanılamaz. +- Mevcut-oturum eylemleri, yönetilen tarayıcı + yoluna göre hâlâ daha sınırlıdır: + - `click`, `type`, `hover`, `scrollIntoView`, `drag` ve `select`, CSS seçiciler yerine + anlık görüntü başvuruları gerektirir - `click` yalnızca sol düğme içindir (düğme geçersiz kılmaları veya değiştiriciler yok) - `type`, `slowly=true` desteklemez; `fill` veya `press` kullanın - `press`, `delayMs` desteklemez - - `hover`, `scrollIntoView`, `drag`, `select`, `fill` ve `evaluate`, çağrı başına zaman aşımı geçersiz kılmalarını desteklemez + - `hover`, `scrollIntoView`, `drag`, `select`, `fill` ve `evaluate`, + çağrı başına zaman aşımı geçersiz kılmalarını desteklemez - `select` şu anda yalnızca tek bir değeri destekler -- Existing-session `wait --url`, diğer tarayıcı sürücüleri gibi tam eşleşme, alt dize ve glob desenlerini destekler. - `wait --load networkidle` henüz desteklenmiyor. -- Existing-session yükleme hook'ları `ref` veya `inputRef` gerektirir, aynı anda tek dosyayı destekler - ve CSS `element` hedeflemeyi desteklemez. -- Existing-session iletişim kutusu hook'ları zaman aşımı geçersiz kılmalarını desteklemez. -- Toplu eylemler, PDF dışa aktarma, indirme yakalama ve `responsebody` - gibi bazı özellikler hâlâ yönetilen tarayıcı yolunu gerektirir. -- Existing-session ana makineye özeldir. Chrome başka bir makinede veya - başka bir ağ ad alanında bulunuyorsa, bunun yerine uzak CDP veya düğüm ana makinesi kullanın. +- Mevcut-oturum `wait --url`, diğer tarayıcı sürücüler gibi tam eşleşme, alt dize ve glob desenlerini destekler. `wait --load networkidle` henüz desteklenmez. +- Mevcut-oturum yükleme kancaları `ref` veya `inputRef` gerektirir, aynı anda tek dosyayı destekler ve CSS `element` hedeflemeyi desteklemez. +- Mevcut-oturum iletişim kutusu kancaları zaman aşımı geçersiz kılmalarını desteklemez. +- Toplu eylemler, PDF dışa aktarma, indirme kesme ve `responsebody` dahil bazı özellikler hâlâ yönetilen tarayıcı yolu gerektirir. +- Mevcut-oturum ana makineye özeldir. Chrome farklı bir makinede veya + farklı bir ağ ad alanındaysa, bunun yerine uzak CDP veya düğüm ana makinesi kullanın. -## İzolasyon garantileri +## Yalıtım garantileri -- **Ayrılmış kullanıcı veri dizini**: kişisel tarayıcı profilinize asla dokunmaz. -- **Ayrılmış portlar**: geliştirme iş akışlarıyla çakışmaları önlemek için `9222` kullanmaz. -- **Deterministik sekme kontrolü**: sekmeleri “son sekme” yerine `targetId` ile hedefler. +- **Özel kullanıcı veri dizini**: kişisel tarayıcı profilinize asla dokunmaz. +- **Özel bağlantı noktaları**: geliştirme iş akışlarıyla çakışmayı önlemek için `9222` kullanmaz. +- **Deterministik sekme kontrolü**: sekmeleri “son sekme” ile değil, `targetId` ile hedefler. ## Tarayıcı seçimi -Yerel olarak başlatırken OpenClaw mevcut olan ilk tarayıcıyı seçer: +Yerelde başlatırken OpenClaw ilk kullanılabilir olanı seçer: 1. Chrome 2. Brave @@ -542,19 +539,19 @@ Bunu `browser.executablePath` ile geçersiz kılabilirsiniz. Platformlar: -- macOS: `/Applications` ve `~/Applications` dizinlerini kontrol eder. -- Linux: `google-chrome`, `brave`, `microsoft-edge`, `chromium` vb. arar. -- Windows: yaygın kurulum konumlarını kontrol eder. +- macOS: `/Applications` ve `~/Applications` denetlenir. +- Linux: `google-chrome`, `brave`, `microsoft-edge`, `chromium` vb. aranır. +- Windows: yaygın kurulum konumları denetlenir. -## Kontrol API'si (isteğe bağlı) +## Kontrol API’si (isteğe bağlı) -Yalnızca yerel entegrasyonlar için Gateway küçük bir loopback HTTP API'si açığa çıkarır: +Yalnızca yerel entegrasyonlar için Gateway küçük bir loopback HTTP API’si sunar: - Durum/başlat/durdur: `GET /`, `POST /start`, `POST /stop` - Sekmeler: `GET /tabs`, `POST /tabs/open`, `POST /tabs/focus`, `DELETE /tabs/:targetId` -- Snapshot/ekran görüntüsü: `GET /snapshot`, `POST /screenshot` +- Anlık görüntü/ekran görüntüsü: `GET /snapshot`, `POST /screenshot` - Eylemler: `POST /navigate`, `POST /act` -- Hook'lar: `POST /hooks/file-chooser`, `POST /hooks/dialog` +- Kancalar: `POST /hooks/file-chooser`, `POST /hooks/dialog` - İndirmeler: `POST /download`, `POST /wait/download` - Hata ayıklama: `GET /console`, `POST /pdf` - Hata ayıklama: `GET /errors`, `GET /requests`, `POST /trace/start`, `POST /trace/stop`, `POST /highlight` @@ -565,60 +562,81 @@ Yalnızca yerel entegrasyonlar için Gateway küçük bir loopback HTTP API'si a Tüm uç noktalar `?profile=` kabul eder. -Paylaşılan gizli anahtar gateway auth yapılandırılmışsa, tarayıcı HTTP rotaları da auth gerektirir: +Shared-secret gateway kimlik doğrulaması yapılandırılmışsa, tarayıcı HTTP yolları da kimlik doğrulama gerektirir: - `Authorization: Bearer ` -- `x-openclaw-password: ` veya bu parolayla HTTP Basic auth +- `x-openclaw-password: ` veya bu parola ile HTTP Basic auth Notlar: -- Bu bağımsız loopback tarayıcı API'si `trusted-proxy` veya - Tailscale Serve kimlik başlıklarını **kullanmaz**. +- Bu bağımsız loopback tarayıcı API’si `trusted-proxy` veya + Tailscale Serve kimlik üstbilgilerini kullanmaz. - `gateway.auth.mode` değeri `none` veya `trusted-proxy` ise, bu loopback tarayıcı - rotaları bu kimlik taşıyan modları devralmaz; bunları yalnızca loopback'te tutun. + yolları bu kimlik taşıyan modları devralmaz; bunları yalnızca loopback olarak tutun. + +### `/act` hata sözleşmesi + +`POST /act`, rota düzeyi doğrulama ve +ilke hataları için yapılandırılmış bir hata yanıtı kullanır: + +```json +{ "error": "", "code": "ACT_*" } +``` + +Geçerli `code` değerleri: + +- `ACT_KIND_REQUIRED` (HTTP 400): `kind` eksik veya tanınmıyor. +- `ACT_INVALID_REQUEST` (HTTP 400): eylem yükü normalleştirme veya doğrulamadan geçemedi. +- `ACT_SELECTOR_UNSUPPORTED` (HTTP 400): desteklenmeyen bir eylem türüyle `selector` kullanıldı. +- `ACT_EVALUATE_DISABLED` (HTTP 403): `evaluate` (veya `wait --fn`) yapılandırma tarafından devre dışı bırakıldı. +- `ACT_TARGET_ID_MISMATCH` (HTTP 403): üst düzey veya toplu `targetId`, istek hedefiyle çakışıyor. +- `ACT_EXISTING_SESSION_UNSUPPORTED` (HTTP 501): eylem, mevcut-oturum profilleri için desteklenmiyor. + +Diğer çalışma zamanı hataları yine de `code` +alanı olmadan `{ "error": "" }` döndürebilir. ### Playwright gereksinimi Bazı özellikler (navigate/act/AI snapshot/role snapshot, öğe ekran görüntüleri, -PDF) Playwright gerektirir. Playwright yüklü değilse, bu uç noktalar açık bir -501 hatası döndürür. +PDF) Playwright gerektirir. Playwright kurulu değilse, bu uç noktalar +açık bir 501 hatası döndürür. Playwright olmadan hâlâ çalışanlar: -- ARIA snapshot'ları -- Sekme başına CDP WebSocket mevcut olduğunda yönetilen `openclaw` tarayıcısı için sayfa ekran görüntüleri +- ARIA anlık görüntüleri +- Sekme başına CDP + WebSocket mevcut olduğunda yönetilen `openclaw` tarayıcısı için sayfa ekran görüntüleri - `existing-session` / Chrome MCP profilleri için sayfa ekran görüntüleri -- Snapshot çıktısından `existing-session` ref tabanlı ekran görüntüleri (`--ref`) +- Anlık görüntü çıktısından `existing-session` başvuru tabanlı ekran görüntüleri (`--ref`) Hâlâ Playwright gerektirenler: - `navigate` - `act` -- AI snapshot'ları / role snapshot'ları -- CSS seçicili öğe ekran görüntüleri (`--element`) +- AI anlık görüntüleri / rol anlık görüntüleri +- CSS seçici öğe ekran görüntüleri (`--element`) - tam tarayıcı PDF dışa aktarma -Öğe ekran görüntüleri `--full-page` seçeneğini de reddeder; rota `fullPage is +Öğe ekran görüntüleri ayrıca `--full-page` seçeneğini reddeder; rota `fullPage is not supported for element screenshots` döndürür. `Playwright is not available in this gateway build` görürseniz, tam -Playwright paketini (`playwright-core` değil) yükleyip gateway'i yeniden -başlatın veya OpenClaw'ı tarayıcı desteğiyle yeniden kurun. +Playwright paketini (`playwright-core` değil) kurun ve gateway’i yeniden başlatın veya +OpenClaw’u tarayıcı desteğiyle yeniden kurun. #### Docker Playwright kurulumu -Gateway'iniz Docker içinde çalışıyorsa `npx playwright` kullanmaktan kaçının -(npm override çakışmaları). Bunun yerine paketlenmiş CLI'yi kullanın: +Gateway’iniz Docker içinde çalışıyorsa `npx playwright` kullanmaktan kaçının (npm override çakışmaları). +Bunun yerine paketlenmiş CLI’yi kullanın: ```bash docker compose run --rm openclaw-cli \ node /app/node_modules/playwright-core/cli.js install chromium ``` -Tarayıcı indirmelerini kalıcı kılmak için `PLAYWRIGHT_BROWSERS_PATH` ayarlayın (örneğin, -`/home/node/.cache/ms-playwright`) ve `/home/node` yolunun -`OPENCLAW_HOME_VOLUME` veya bir bind mount ile kalıcı olduğundan emin olun. -Bkz. [Docker](/tr/install/docker). +Tarayıcı indirmelerini kalıcı tutmak için `PLAYWRIGHT_BROWSERS_PATH` ayarlayın (örneğin, +`/home/node/.cache/ms-playwright`) ve `/home/node` dizininin +`OPENCLAW_HOME_VOLUME` veya bir bind mount ile kalıcı olduğundan emin olun. Bkz. [Docker](/tr/install/docker). ## Nasıl çalışır (dahili) @@ -626,16 +644,16 @@ Yüksek düzey akış: - Küçük bir **kontrol sunucusu** HTTP isteklerini kabul eder. - Chromium tabanlı tarayıcılara (Chrome/Brave/Edge/Chromium) **CDP** üzerinden bağlanır. -- Gelişmiş eylemler için (tıkla/yaz/snapshot/PDF), CDP üzerinde **Playwright** kullanır. +- Gelişmiş eylemler (tıklama/yazma/anlık görüntü/PDF) için CDP’nin üstünde **Playwright** kullanır. - Playwright eksik olduğunda yalnızca Playwright gerektirmeyen işlemler kullanılabilir. -Bu tasarım, aracıyı kararlı ve deterministik bir arayüz üzerinde tutarken -yerel/uzak tarayıcıları ve profilleri değiştirmenize olanak tanır. +Bu tasarım, yerel/uzak tarayıcılar ve profiller arasında geçiş yapmanıza izin verirken +ajanı kararlı, deterministik bir arayüz üzerinde tutar. ## CLI hızlı başvuru Tüm komutlar belirli bir profili hedeflemek için `--browser-profile ` kabul eder. -Tüm komutlar ayrıca makine tarafından okunabilir çıktı için `--json` kabul eder (kararlı payload'lar). +Tüm komutlar ayrıca makine tarafından okunabilir çıktı için `--json` kabul eder (kararlı payload’lar). Temeller: @@ -668,10 +686,10 @@ Temeller: Yaşam döngüsü notu: -- Yalnızca bağlanma ve uzak CDP profilleri için `openclaw browser stop`, - testlerden sonra hâlâ doğru temizleme komutudur. Alt taraftaki - tarayıcıyı öldürmek yerine etkin kontrol oturumunu kapatır ve geçici - öykünme geçersiz kılmalarını temizler. +- Yalnızca bağlanma ve uzak CDP profilleri için, testlerden sonra + `openclaw browser stop` hâlâ doğru temizleme komutudur. Alttaki + tarayıcıyı öldürmek yerine etkin kontrol oturumunu kapatır ve + geçici emülasyon geçersiz kılmalarını temizler. - `openclaw browser errors --clear` - `openclaw browser requests --filter api --clear` - `openclaw browser pdf` @@ -722,55 +740,55 @@ Durum: Notlar: -- `upload` ve `dialog` **hazırlama** çağrılarıdır; dosya seçiciyi/iletişim kutusunu - tetikleyen tıklama/basma işleminden önce bunları çalıştırın. -- İndirme ve trace çıktı yolları OpenClaw geçici kökleriyle sınırlıdır: - - trace'ler: `/tmp/openclaw` (yedek: `${os.tmpdir()}/openclaw`) +- `upload` ve `dialog` **hazırlama** çağrılarıdır; seçiciyi/iletişim kutusunu tetikleyen + tıklama/basma işleminden önce bunları çalıştırın. +- İndirme ve iz çıktısı yolları OpenClaw geçici kökleriyle sınırlandırılmıştır: + - izler: `/tmp/openclaw` (yedek: `${os.tmpdir()}/openclaw`) - indirmeler: `/tmp/openclaw/downloads` (yedek: `${os.tmpdir()}/openclaw/downloads`) -- Yükleme yolları bir OpenClaw geçici uploads köküyle sınırlıdır: - - uploads: `/tmp/openclaw/uploads` (yedek: `${os.tmpdir()}/openclaw/uploads`) -- `upload`, `--input-ref` veya `--element` ile dosya girişlerini doğrudan da ayarlayabilir. +- Yükleme yolları bir OpenClaw geçici yükleme köküyle sınırlandırılmıştır: + - yüklemeler: `/tmp/openclaw/uploads` (yedek: `${os.tmpdir()}/openclaw/uploads`) +- `upload`, dosya girdilerini doğrudan `--input-ref` veya `--element` ile de ayarlayabilir. - `snapshot`: - - `--format ai` (Playwright kuruluysa varsayılan): sayısal ref'ler (`aria-ref=""`) içeren bir AI snapshot döndürür. - - `--format aria`: erişilebilirlik ağacını döndürür (ref yoktur; yalnızca inceleme içindir). - - `--efficient` (veya `--mode efficient`): kompakt role snapshot ön ayarıdır (interactive + compact + depth + daha düşük maxChars). - - Yapılandırma varsayılanı (yalnızca araç/CLI): çağıran taraf bir mod geçmezse verimli snapshot'ları kullanmak için `browser.snapshotDefaults.mode: "efficient"` ayarlayın (bkz. [Gateway configuration](/tr/gateway/configuration-reference#browser)). - - Role snapshot seçenekleri (`--interactive`, `--compact`, `--depth`, `--selector`), `ref=e12` gibi ref'lerle rol tabanlı bir snapshot'ı zorlar. - - `--frame "