chore(i18n): refresh tr translations
This commit is contained in:
parent
37adedfa62
commit
84ad3b85d6
@ -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**.
|
||||
|
||||
<Note>
|
||||
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.
|
||||
</Note>
|
||||
|
||||
## 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 <lookup>
|
||||
|
||||
# Çalışan bir görevi iptal et (alt oturumu sonlandırır)
|
||||
@ -74,19 +74,19 @@ openclaw tasks flow cancel <lookup>
|
||||
|
||||
## 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.
|
||||
|
||||
<Tip>
|
||||
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.
|
||||
</Tip>
|
||||
|
||||
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 <lookup> state_changes
|
||||
@ -165,7 +165,7 @@ openclaw tasks notify <lookup> state_changes
|
||||
openclaw tasks list [--runtime <acp|subagent|cron|cli>] [--status <status>] [--json]
|
||||
```
|
||||
|
||||
Çıktı sütunları: Görev Kimliği, Tür, Durum, Teslimat, Çalıştırma Kimliği, 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 <acp|subagent|cron|cli>] [--status <status>] [--j
|
||||
openclaw tasks show <lookup>
|
||||
```
|
||||
|
||||
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 <lookup>
|
||||
```
|
||||
|
||||
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 <lookup> <done_only|state_changes|silent>
|
||||
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 <lookup> [--json]
|
||||
openclaw tasks flow cancel <lookup>
|
||||
```
|
||||
|
||||
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
|
||||
|
||||
577
docs/tr/concepts/active-memory.md
Normal file
577
docs/tr/concepts/active-memory.md
Normal file
@ -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 `<active_memory_plugin>...</active_memory_plugin>` 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/<agent>/sessions/active-memory/<blocking-memory-sub-agent-session-id>.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)
|
||||
@ -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ı
|
||||
|
||||
@ -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.
|
||||
|
||||
<Tip>
|
||||
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.
|
||||
</Tip>
|
||||
|
||||
### 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.
|
||||
|
||||
<Tip>
|
||||
`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.
|
||||
</Tip>
|
||||
|
||||
### 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
|
||||
|
||||
@ -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=<level>` ile geçersiz kılın. `--thinking <level>` yine de genel bir geri dönüş değeri ayarlar ve eski `--model-thinking <provider/model=level>` 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=<level>` ile geçersiz kılın. `--thinking <level>` hâlâ
|
||||
genel bir yedek ayar belirler ve eski `--model-thinking <provider/model=level>` 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)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -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:
|
||||
`<tool_call>...</tool_call>`, `<function_call>...</function_call>`,
|
||||
`<tool_calls>...</tool_calls>`, `<function_calls>...</function_calls>` 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: `<tool_call>...</tool_call>`, `<function_call>...</function_call>`, `<tool_calls>...</tool_calls>`, `<function_calls>...</function_calls>` 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.<skillKey>` 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.<skillKey>` 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.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -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 |
|
||||
|
||||
<Warning>
|
||||
Model veya `outputDimensionality` değiştirildiğinde otomatik tam yeniden indeksleme tetiklenir.
|
||||
`model` veya `outputDimensionality` değiştirilirse otomatik olarak tam yeniden dizinleme tetiklenir.
|
||||
</Warning>
|
||||
|
||||
---
|
||||
|
||||
## 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:<id>:` 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:<id>:` 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: <path#line>` 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: <path#line>` 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.
|
||||
|
||||
@ -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.<name>.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.<name>.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.<name>.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.<name>.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=<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:
|
||||
|
||||
- `<BROWSERLESS_API_KEY>` 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
|
||||
- `<BROWSERLESS_API_KEY>` 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.
|
||||
- `<BROWSERBASE_API_KEY>` 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=<name>` 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=<name>` 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 <gateway token>`
|
||||
- `x-openclaw-password: <gateway password>` veya bu parolayla HTTP Basic auth
|
||||
- `x-openclaw-password: <gateway 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": "<message>", "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": "<message>" }` 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 <name>` 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="<n>"`) 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 "<iframe selector>"`, role snapshot'ları bir iframe'e sınırlar (`e12` gibi role ref'lerle eşleşir).
|
||||
- `--interactive`, etkileşimli öğelerin düz ve kolay seçilebilir bir listesini verir (eylem yönlendirmek için en iyisi).
|
||||
- `--labels`, üstüne ref etiketleri bindirilmiş yalnızca görünüm alanına ait bir ekran görüntüsü ekler (`MEDIA:<path>` yazdırır).
|
||||
- `click`/`type`/vb. `snapshot` içinden bir `ref` gerektirir (sayısal `12` veya role ref `e12`).
|
||||
CSS seçicileri eylemler için bilinçli olarak desteklenmez.
|
||||
- `--format ai` (Playwright kuruluysa varsayılan): sayısal başvurular içeren bir AI anlık görüntüsü döndürür (`aria-ref="<n>"`).
|
||||
- `--format aria`: erişilebilirlik ağacını döndürür (başvuru yok; yalnızca inceleme).
|
||||
- `--efficient` (veya `--mode efficient`): kompakt rol anlık görüntüsü hazır ayarıdır (interactive + compact + depth + daha düşük maxChars).
|
||||
- Yapılandırma varsayılanı (yalnızca araç/CLI): çağıran bir mod geçmediğinde verimli anlık görüntüleri kullanmak için `browser.snapshotDefaults.mode: "efficient"` ayarlayın (bkz. [Gateway configuration](/tr/gateway/configuration-reference#browser)).
|
||||
- Rol anlık görüntüsü seçenekleri (`--interactive`, `--compact`, `--depth`, `--selector`), `ref=e12` gibi başvurular içeren rol tabanlı bir anlık görüntüyü zorlar.
|
||||
- `--frame "<iframe selector>"`, rol anlık görüntülerini bir iframe ile sınırlar (`e12` gibi rol başvurularıyla eşleşir).
|
||||
- `--interactive`, etkileşimli öğelerin düz, seçmesi kolay bir listesini verir (eylem yürütmek için en iyisi).
|
||||
- `--labels`, üzerine başvuru etiketleri bindirilmiş yalnızca görünüm alanı ekran görüntüsü ekler (`MEDIA:<path>` yazdırır).
|
||||
- `click`/`type`/vb., `snapshot` çıktısından bir `ref` gerektirir (sayısal `12` veya rol başvurusu `e12`).
|
||||
CSS seçiciler eylemler için kasıtlı olarak desteklenmez.
|
||||
|
||||
## Snapshot'lar ve ref'ler
|
||||
## Anlık görüntüler ve başvurular
|
||||
|
||||
OpenClaw iki “snapshot” stilini destekler:
|
||||
OpenClaw iki tür “anlık görüntü” stilini destekler:
|
||||
|
||||
- **AI snapshot (sayısal ref'ler)**: `openclaw browser snapshot` (varsayılan; `--format ai`)
|
||||
- Çıktı: sayısal ref'ler içeren bir metin snapshot'ı.
|
||||
- **AI anlık görüntüsü (sayısal başvurular)**: `openclaw browser snapshot` (varsayılan; `--format ai`)
|
||||
- Çıktı: sayısal başvurular içeren bir metin anlık görüntüsü.
|
||||
- Eylemler: `openclaw browser click 12`, `openclaw browser type 23 "hello"`.
|
||||
- Dahili olarak ref, Playwright'ın `aria-ref` mekanizmasıyla çözülür.
|
||||
- Dahili olarak başvuru, Playwright’ın `aria-ref` özelliği üzerinden çözülür.
|
||||
|
||||
- **Role snapshot (`e12` gibi role ref'ler)**: `openclaw browser snapshot --interactive` (veya `--compact`, `--depth`, `--selector`, `--frame`)
|
||||
- Çıktı: `[ref=e12]` içeren rol tabanlı bir liste/ağaç (ve isteğe bağlı `[nth=1]`).
|
||||
- **Rol anlık görüntüsü (`e12` gibi rol başvuruları)**: `openclaw browser snapshot --interactive` (veya `--compact`, `--depth`, `--selector`, `--frame`)
|
||||
- Çıktı: `[ref=e12]` (ve isteğe bağlı `[nth=1]`) içeren rol tabanlı bir liste/ağaç.
|
||||
- Eylemler: `openclaw browser click e12`, `openclaw browser highlight e12`.
|
||||
- Dahili olarak ref, `getByRole(...)` üzerinden çözülür (artı çoğaltmalar için `nth()`).
|
||||
- Üstüne bindirilmiş `e12` etiketleri içeren bir görünüm alanı ekran görüntüsü eklemek için `--labels` ekleyin.
|
||||
- Dahili olarak başvuru, `getByRole(...)` ile çözülür (yinelenenler için `nth()` ile birlikte).
|
||||
- Üzerine bindirilmiş `e12` etiketleri olan bir görünüm alanı ekran görüntüsü eklemek için `--labels` ekleyin.
|
||||
|
||||
Ref davranışı:
|
||||
Başvuru davranışı:
|
||||
|
||||
- Ref'ler gezintiler arasında **kararlı değildir**; bir şey başarısız olursa `snapshot` yeniden çalıştırın ve yeni bir ref kullanın.
|
||||
- Role snapshot `--frame` ile alındıysa, role ref'ler bir sonraki role snapshot'a kadar o iframe kapsamındadır.
|
||||
- Başvurular gezinmeler arasında **kararlı değildir**; bir şey başarısız olursa `snapshot` komutunu yeniden çalıştırın ve yeni bir başvuru kullanın.
|
||||
- Rol anlık görüntüsü `--frame` ile alındıysa, rol başvuruları bir sonraki rol anlık görüntüsüne kadar o iframe ile sınırlıdır.
|
||||
|
||||
## Wait güçlendirmeleri
|
||||
|
||||
Yalnızca süre/metin değil, daha fazlasını bekleyebilirsiniz:
|
||||
Yalnızca zaman/metin üzerinde değil, daha fazlası üzerinde bekleyebilirsiniz:
|
||||
|
||||
- URL bekleme (Playwright tarafından glob desteklenir):
|
||||
- URL bekleme (Playwright tarafından desteklenen glob desenleri):
|
||||
- `openclaw browser wait --url "**/dash"`
|
||||
- Yükleme durumunu bekleme:
|
||||
- Yükleme durumu bekleme:
|
||||
- `openclaw browser wait --load networkidle`
|
||||
- JS predicate bekleme:
|
||||
- JS koşulu bekleme:
|
||||
- `openclaw browser wait --fn "window.ready===true"`
|
||||
- Bir seçicinin görünür olmasını bekleme:
|
||||
- `openclaw browser wait "#main"`
|
||||
@ -790,19 +808,19 @@ openclaw browser wait "#main" \
|
||||
Bir eylem başarısız olduğunda (ör. “not visible”, “strict mode violation”, “covered”):
|
||||
|
||||
1. `openclaw browser snapshot --interactive`
|
||||
2. `click <ref>` / `type <ref>` kullanın (interactive modda role ref'leri tercih edin)
|
||||
3. Hâlâ başarısız olursa: Playwright'ın neyi hedeflediğini görmek için `openclaw browser highlight <ref>`
|
||||
4. Sayfa garip davranıyorsa:
|
||||
2. `click <ref>` / `type <ref>` kullanın (interactive modda rol başvurularını tercih edin)
|
||||
3. Hâlâ başarısız olursa: Playwright’ın neyi hedeflediğini görmek için `openclaw browser highlight <ref>`
|
||||
4. Sayfa tuhaf davranıyorsa:
|
||||
- `openclaw browser errors --clear`
|
||||
- `openclaw browser requests --filter api --clear`
|
||||
5. Derin hata ayıklama için bir trace kaydedin:
|
||||
5. Derin hata ayıklama için bir iz kaydedin:
|
||||
- `openclaw browser trace start`
|
||||
- sorunu yeniden üretin
|
||||
- `openclaw browser trace stop` (`TRACE:<path>` yazdırır)
|
||||
|
||||
## JSON çıktısı
|
||||
|
||||
`--json`, betik yazımı ve yapılandırılmış araçlar içindir.
|
||||
`--json`, betikler ve yapılandırılmış araçlar içindir.
|
||||
|
||||
Örnekler:
|
||||
|
||||
@ -813,36 +831,36 @@ openclaw browser requests --filter api --json
|
||||
openclaw browser cookies --json
|
||||
```
|
||||
|
||||
JSON içindeki role snapshot'lar, araçların payload boyutunu ve yoğunluğunu
|
||||
değerlendirebilmesi için `refs` ve küçük bir `stats` bloğu (satır/karakter/ref/interactive) içerir.
|
||||
JSON içindeki rol anlık görüntüleri, araçların payload boyutu ve yoğunluğu hakkında akıl yürütebilmesi için
|
||||
`refs` ile birlikte küçük bir `stats` bloğu da içerir (satırlar/karakterler/başvurular/interactive).
|
||||
|
||||
## Durum ve ortam düğmeleri
|
||||
## Durum ve ortam ayarları
|
||||
|
||||
Bunlar “siteyi X gibi davranmaya zorla” iş akışları için kullanışlıdır:
|
||||
Bunlar “siteyi X gibi davranacak şekilde ayarla” iş akışları için kullanışlıdır:
|
||||
|
||||
- Çerezler: `cookies`, `cookies set`, `cookies clear`
|
||||
- Depolama: `storage local|session get|set|clear`
|
||||
- Çevrimdışı: `set offline on|off`
|
||||
- Başlıklar: `set headers --headers-json '{"X-Debug":"1"}'` (eski `set headers --json '{"X-Debug":"1"}'` hâlâ desteklenir)
|
||||
- Üstbilgiler: `set headers --headers-json '{"X-Debug":"1"}'` (eski `set headers --json '{"X-Debug":"1"}'` desteği sürer)
|
||||
- HTTP basic auth: `set credentials user pass` (veya `--clear`)
|
||||
- Coğrafi konum: `set geo <lat> <lon> --origin "https://example.com"` (veya `--clear`)
|
||||
- Medya: `set media dark|light|no-preference|none`
|
||||
- Saat dilimi / yerel ayar: `set timezone ...`, `set locale ...`
|
||||
- Cihaz / görünüm alanı:
|
||||
- `set device "iPhone 14"` (Playwright cihaz ön ayarları)
|
||||
- `set device "iPhone 14"` (Playwright cihaz hazır ayarları)
|
||||
- `set viewport 1280 720`
|
||||
|
||||
## Güvenlik ve gizlilik
|
||||
|
||||
- openclaw tarayıcı profili oturum açılmış oturumlar içerebilir; bunu hassas kabul edin.
|
||||
- `browser act kind=evaluate` / `openclaw browser evaluate` ve `wait --fn`,
|
||||
sayfa bağlamında rastgele JavaScript çalıştırır. Prompt injection bunu
|
||||
yönlendirebilir. Buna ihtiyacınız yoksa `browser.evaluateEnabled=false` ile devre dışı bırakın.
|
||||
- Girişler ve anti-bot notları (X/Twitter vb.) için [Browser login + X/Twitter posting](/tr/tools/browser-login) bölümüne bakın.
|
||||
sayfa bağlamında rastgele JavaScript çalıştırır. İstem enjeksiyonu bunu yönlendirebilir.
|
||||
Buna ihtiyacınız yoksa `browser.evaluateEnabled=false` ile devre dışı bırakın.
|
||||
- Girişler ve anti-bot notları (X/Twitter vb.) için bkz. [Browser login + X/Twitter posting](/tr/tools/browser-login).
|
||||
- Gateway/düğüm ana makinesini özel tutun (yalnızca loopback veya tailnet).
|
||||
- Uzak CDP uç noktaları güçlüdür; tünelleyin ve koruyun.
|
||||
|
||||
Katı mod örneği (varsayılan olarak özel/dahili hedefleri engelle):
|
||||
Sıkı mod örneği (varsayılan olarak özel/dahili hedefleri engelle):
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -858,35 +876,34 @@ Katı mod örneği (varsayılan olarak özel/dahili hedefleri engelle):
|
||||
|
||||
## Sorun giderme
|
||||
|
||||
Linux'e özgü sorunlar (özellikle snap Chromium) için
|
||||
[Tarayıcı sorun giderme](/tr/tools/browser-linux-troubleshooting) bölümüne bakın.
|
||||
Linux’a özgü sorunlar için (özellikle snap Chromium), bkz.
|
||||
[Browser troubleshooting](/tr/tools/browser-linux-troubleshooting).
|
||||
|
||||
WSL2 Gateway + Windows Chrome bölünmüş ana makine kurulumları için
|
||||
[WSL2 + Windows + uzak Chrome CDP sorun giderme](/tr/tools/browser-wsl2-windows-remote-cdp-troubleshooting)
|
||||
bölümüne bakın.
|
||||
WSL2 Gateway + Windows Chrome ayrık ana makine kurulumları için bkz.
|
||||
[WSL2 + Windows + remote Chrome CDP troubleshooting](/tr/tools/browser-wsl2-windows-remote-cdp-troubleshooting).
|
||||
|
||||
## Aracı araçları + kontrolün nasıl çalıştığı
|
||||
## Ajan araçları + kontrolün nasıl çalıştığı
|
||||
|
||||
Aracı, tarayıcı otomasyonu için **tek bir araç** alır:
|
||||
Ajan, tarayıcı otomasyonu için **tek bir araç** alır:
|
||||
|
||||
- `browser` — durum/başlat/durdur/sekmeler/aç/odaklan/kapat/snapshot/ekran görüntüsü/navigate/act
|
||||
- `browser` — status/start/stop/tabs/open/focus/close/snapshot/screenshot/navigate/act
|
||||
|
||||
Nasıl eşlenir:
|
||||
Eşleştirme şekli:
|
||||
|
||||
- `browser snapshot`, kararlı bir UI ağacı döndürür (AI veya ARIA).
|
||||
- `browser act`, tıklama/yazma/sürükleme/seçme için snapshot `ref` kimliklerini kullanır.
|
||||
- `browser snapshot`, kararlı bir arayüz ağacı döndürür (AI veya ARIA).
|
||||
- `browser act`, tıklama/yazma/sürükleme/seçme için anlık görüntü `ref` kimliklerini kullanır.
|
||||
- `browser screenshot`, pikselleri yakalar (tam sayfa veya öğe).
|
||||
- `browser` şunları kabul eder:
|
||||
- adlandırılmış bir tarayıcı profili seçmek için `profile` (openclaw, chrome veya uzak CDP).
|
||||
- tarayıcının nerede bulunduğunu seçmek için `target` (`sandbox` | `host` | `node`).
|
||||
- Sandbox'lı oturumlarda `target: "host"` için `agents.defaults.sandbox.browser.allowHostControl=true` gerekir.
|
||||
- `target` atlanırsa: sandbox'lı oturumlar varsayılan olarak `sandbox`, sandbox'sız oturumlar varsayılan olarak `host` olur.
|
||||
- Tarayıcı özellikli bir düğüm bağlıysa, `target="host"` veya `target="node"` ile sabitlemediğiniz sürece araç otomatik olarak ona yönlenebilir.
|
||||
- adlandırılmış bir tarayıcı profilini seçmek için `profile` (openclaw, chrome veya uzak CDP).
|
||||
- tarayıcının nerede yaşadığını seçmek için `target` (`sandbox` | `host` | `node`).
|
||||
- Sandbox’lı oturumlarda `target: "host"` için `agents.defaults.sandbox.browser.allowHostControl=true` gerekir.
|
||||
- `target` atlanırsa: sandbox’lı oturumlar varsayılan olarak `sandbox`, sandbox’sız oturumlar varsayılan olarak `host` kullanır.
|
||||
- Tarayıcı özellikli bir düğüm bağlıysa, `target="host"` veya `target="node"` ile sabitlemezseniz araç otomatik olarak ona yönlendirilebilir.
|
||||
|
||||
Bu, aracıyı deterministik tutar ve kırılgan seçicilerden kaçınır.
|
||||
Bu, ajanı deterministik tutar ve kırılgan seçicilerden kaçınır.
|
||||
|
||||
## İlgili
|
||||
|
||||
- [Araçlara Genel Bakış](/tr/tools) — mevcut tüm aracı araçları
|
||||
- [Sandboxing](/tr/gateway/sandboxing) — sandbox'lı ortamlarda tarayıcı kontrolü
|
||||
- [Güvenlik](/tr/gateway/security) — tarayıcı kontrolü riskleri ve sıkılaştırma
|
||||
- [Tools Overview](/tr/tools) — kullanılabilir tüm ajan araçları
|
||||
- [Sandboxing](/tr/gateway/sandboxing) — sandbox’lı ortamlarda tarayıcı kontrolü
|
||||
- [Security](/tr/gateway/security) — tarayıcı kontrolü riskleri ve sağlamlaştırma
|
||||
|
||||
@ -1,69 +1,76 @@
|
||||
---
|
||||
read_when:
|
||||
- Exec onaylarını veya izin listelerini yapılandırırken
|
||||
- macOS uygulamasında exec onay UX'ini uygularken
|
||||
- Sandbox'tan çıkış istemlerini ve etkilerini incelerken
|
||||
summary: Exec onayları, izin listeleri ve sandbox'tan çıkış istemleri
|
||||
- Exec onaylarını veya izin listelerini yapılandırma
|
||||
- macOS uygulamasında exec onay kullanıcı deneyimini uygulama
|
||||
- Sandbox kaçış istemlerini ve etkilerini inceleme
|
||||
summary: Exec onayları, izin listeleri ve sandbox kaçış istemleri
|
||||
title: Exec Onayları
|
||||
x-i18n:
|
||||
generated_at: "2026-04-08T02:19:50Z"
|
||||
generated_at: "2026-04-10T08:50:44Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 6041929185bab051ad873cc4822288cb7d6f0470e19e7ae7a16b70f76dfc2cd9
|
||||
source_hash: 5f4a2e2f1f3c13a1d1926c9de0720513ea8a74d1ca571dbe74b188d8c560c14c
|
||||
source_path: tools/exec-approvals.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Exec onayları
|
||||
|
||||
Exec onayları, sandbox içine alınmış bir aracının gerçek bir ana makinede (`gateway` veya `node`) komut çalıştırmasına izin vermek için kullanılan **yardımcı uygulama / node ana makinesi korumasıdır**. Bunu bir güvenlik kilidi gibi düşünün:
|
||||
komutlara yalnızca ilke + izin listesi + (isteğe bağlı) kullanıcı onayı birlikte kabul ettiğinde izin verilir.
|
||||
Exec onayları, araç ilkesine ve elevated geçidine **ek olarak** uygulanır (elevated `full` olarak ayarlanmışsa ve onayları atlıyorsa bu durum hariçtir).
|
||||
Etkili ilke, `tools.exec.*` ile onay varsayılanlarının **daha katı** olanıdır; bir onay alanı atlanmışsa `tools.exec` değeri kullanılır.
|
||||
Ana makinede exec ayrıca o makinedeki yerel onay durumunu da kullanır. Ana makinede yerel
|
||||
`~/.openclaw/exec-approvals.json` içindeki `ask: "always"` değeri,
|
||||
oturum veya yapılandırma varsayılanları `ask: "on-miss"` istese bile istem göstermeye devam eder.
|
||||
İstenen ilkeyi,
|
||||
ana makine ilke kaynaklarını ve etkili sonucu incelemek için `openclaw approvals get`, `openclaw approvals get --gateway` veya
|
||||
Exec onayları, sandbox içinde çalışan bir ajanın gerçek bir ana makinede (`gateway` veya `node`)
|
||||
komut çalıştırmasına izin vermek için kullanılan **yardımcı uygulama / düğüm ana makinesi korkuluğudur**.
|
||||
Bunu bir güvenlik ara kilidi gibi düşünün:
|
||||
komutlara yalnızca ilke + izin listesi + (isteğe bağlı) kullanıcı onayı birlikte kabul ederse izin verilir.
|
||||
Exec onayları, araç ilkesine ve yükseltilmiş kapılamaya **ek olarak** uygulanır (`elevated`, `full` olarak ayarlanırsa onaylar atlanır).
|
||||
Geçerli ilke, `tools.exec.*` ile onay varsayılanlarının **daha sıkı** olanıdır; bir onay alanı belirtilmezse `tools.exec` değeri kullanılır.
|
||||
Ana makine exec işlemi ayrıca o makinedeki yerel onay durumunu da kullanır. Ana makinede yerel
|
||||
`~/.openclaw/exec-approvals.json` içindeki `ask: "always"`, oturum veya yapılandırma varsayılanları
|
||||
`ask: "on-miss"` istese bile istem göstermeye devam eder.
|
||||
İstenen ilkeyi, ana makine ilke kaynaklarını ve geçerli sonucu incelemek için
|
||||
`openclaw approvals get`, `openclaw approvals get --gateway` veya
|
||||
`openclaw approvals get --node <id|name|ip>` kullanın.
|
||||
Yerel makine için `openclaw exec-policy show`, birleştirilmiş aynı görünümü gösterir ve
|
||||
`openclaw exec-policy set|preset`, yerel istenen ilkeyi
|
||||
yerel ana makine onay dosyasıyla tek adımda eşzamanlayabilir. Yerel bir kapsam `host=node`
|
||||
istediğinde, `openclaw exec-policy show`, yerel onay dosyasının geçerli doğruluk kaynağı olduğunu
|
||||
varsaymak yerine, o kapsamı çalışma zamanında node tarafından yönetiliyor olarak bildirir.
|
||||
|
||||
Eğer yardımcı uygulama UI'ı **mevcut değilse**, istem gerektiren her istek
|
||||
Yardımcı uygulama kullanıcı arayüzü **kullanılamıyorsa**, istem gerektiren her istek
|
||||
**ask fallback** ile çözülür (varsayılan: deny).
|
||||
|
||||
Yerel sohbet onay istemcileri, bekleyen onay mesajında kanala özgü kolaylıklar da sunabilir.
|
||||
Örneğin Matrix, onay istemi üzerinde tepki kısayollarını önceden yerleştirebilir
|
||||
(`✅` bir kez izin ver, `❌` reddet ve varsa `♾️` her zaman izin ver),
|
||||
ve bunu yedek yol olarak mesajdaki `/approve ...` komutlarını bırakırken yapabilir.
|
||||
Yerel sohbet onay istemcileri ayrıca bekleyen onay mesajında kanala özgü kolaylıklar sunabilir.
|
||||
Örneğin Matrix, onay isteminde tepki kısayollarını önceden yerleştirebilir
|
||||
(`✅` bir kez izin ver, `❌` reddet ve mevcut olduğunda `♾️` her zaman izin ver)
|
||||
ve yine de mesaj içinde yedek olarak `/approve ...` komutlarını bırakabilir.
|
||||
|
||||
## Nerede uygulanır
|
||||
|
||||
Exec onayları, yürütmenin yapıldığı ana makinede yerel olarak uygulanır:
|
||||
|
||||
- **gateway ana makinesi** → gateway makinesindeki `openclaw` süreci
|
||||
- **node ana makinesi** → node çalıştırıcısı (macOS yardımcı uygulaması veya başsız node ana makinesi)
|
||||
- **gateway ana makinesi** → gateway makinesindeki `openclaw` işlemi
|
||||
- **node ana makinesi** → node çalıştırıcısı (macOS yardımcı uygulaması veya arayüzsüz node ana makinesi)
|
||||
|
||||
Güven modeli notu:
|
||||
|
||||
- Gateway ile kimliği doğrulanmış çağıranlar, o Gateway için güvenilir operatörlerdir.
|
||||
- Eşlenmiş node'lar, bu güvenilir operatör yeteneğini node ana makinesine taşır.
|
||||
- Exec onayları kazara yürütme riskini azaltır, ancak kullanıcı başına bir auth sınırı değildir.
|
||||
- Onaylanmış node-ana-makine çalıştırmaları standart yürütme bağlamını bağlar: standart cwd, tam argv, varsa env
|
||||
bağlaması ve uygunsa sabit yürütülebilir yol.
|
||||
- Shell betikleri ve doğrudan yorumlayıcı/runtime dosya çağrıları için OpenClaw ayrıca
|
||||
tek bir somut yerel dosya operandını bağlamaya çalışır. Bu bağlı dosya onaydan sonra ama çalıştırmadan önce değişirse,
|
||||
çalışma, kaymış içerik yürütülmek yerine reddedilir.
|
||||
- Bu dosya bağlama bilinçli olarak en iyi çaba yaklaşımıdır; her
|
||||
yorumlayıcı/runtime yükleyici yolunun tam anlamsal modeli değildir. Onay modu tam olarak bağlanacak tek bir somut yerel
|
||||
dosya belirleyemezse, tam kapsama varmış gibi davranmak yerine onay destekli bir çalışma üretmeyi reddeder.
|
||||
- Gateway tarafından kimliği doğrulanmış çağıranlar, o Gateway için güvenilir operatörlerdir.
|
||||
- Eşlenmiş node’lar, bu güvenilir operatör yeteneğini node ana makinesine genişletir.
|
||||
- Exec onayları, yanlışlıkla yürütme riskini azaltır, ancak kullanıcı başına bir kimlik doğrulama sınırı değildir.
|
||||
- Onaylı node ana makinesi çalıştırmaları, kanonik yürütme bağlamını bağlar: kanonik cwd, tam argv, varsa env
|
||||
bağlaması ve uygulanabiliyorsa sabitlenmiş yürütülebilir dosya yolu.
|
||||
- Kabuk script’leri ve yorumlayıcı/çalışma zamanı dosyalarının doğrudan çağrımları için OpenClaw ayrıca
|
||||
tek bir somut yerel dosya işlenenini bağlamaya çalışır. Bu bağlı dosya, onaydan sonra ancak yürütmeden önce değişirse,
|
||||
kaymış içerik yürütülmek yerine çalıştırma reddedilir.
|
||||
- Bu dosya bağlama kasıtlı olarak en iyi çabadır; her yorumlayıcı/çalışma zamanı yükleyici yolunun tam anlamsal modeli değildir.
|
||||
Onay modu bağlamak için tam olarak bir somut yerel dosya belirleyemezse,
|
||||
tam kapsama varmış gibi davranmak yerine onay destekli bir çalıştırma üretmeyi reddeder.
|
||||
|
||||
macOS ayrımı:
|
||||
|
||||
- **node ana makinesi hizmeti**, `system.run` isteğini yerel IPC üzerinden **macOS uygulamasına** iletir.
|
||||
- **macOS uygulaması**, onayları uygular + komutu UI bağlamında çalıştırır.
|
||||
- **macOS uygulaması**, onayları uygular + komutu kullanıcı arayüzü bağlamında yürütür.
|
||||
|
||||
## Ayarlar ve depolama
|
||||
|
||||
Onaylar, yürütmenin yapıldığı ana makinedeki yerel bir JSON dosyasında tutulur:
|
||||
Onaylar, yürütmenin yapıldığı ana makinede yerel bir JSON dosyasında tutulur:
|
||||
|
||||
`~/.openclaw/exec-approvals.json`
|
||||
|
||||
@ -104,12 +111,12 @@ Onaylar, yürütmenin yapıldığı ana makinedeki yerel bir JSON dosyasında tu
|
||||
|
||||
## Onaysız "YOLO" modu
|
||||
|
||||
Ana makinede exec'in onay istemleri olmadan çalışmasını istiyorsanız, **her iki** ilke katmanını da açmanız gerekir:
|
||||
Ana makine exec işleminin onay istemleri olmadan çalışmasını istiyorsanız, **her iki** ilke katmanını da açmanız gerekir:
|
||||
|
||||
- OpenClaw yapılandırmasındaki istenen exec ilkesi (`tools.exec.*`)
|
||||
- `~/.openclaw/exec-approvals.json` içindeki ana makinede yerel onay ilkesi
|
||||
- OpenClaw yapılandırmasında istenen exec ilkesi (`tools.exec.*`)
|
||||
- `~/.openclaw/exec-approvals.json` içindeki ana makineye yerel onay ilkesi
|
||||
|
||||
Bu artık, siz açıkça sıkılaştırmadığınız sürece varsayılan ana makine davranışıdır:
|
||||
Açıkça sıkılaştırmadığınız sürece bu artık varsayılan ana makine davranışıdır:
|
||||
|
||||
- `tools.exec.security`: `gateway`/`node` üzerinde `full`
|
||||
- `tools.exec.ask`: `off`
|
||||
@ -117,15 +124,15 @@ Bu artık, siz açıkça sıkılaştırmadığınız sürece varsayılan ana mak
|
||||
|
||||
Önemli ayrım:
|
||||
|
||||
- `tools.exec.host=auto`, exec'in nerede çalışacağını seçer: varsa sandbox, yoksa gateway.
|
||||
- YOLO, ana makinede exec'in nasıl onaylandığını seçer: `security=full` artı `ask=off`.
|
||||
- YOLO modunda OpenClaw, yapılandırılmış ana makine exec ilkesinin üzerine ayrı bir sezgisel komut karartma onay geçidi eklemez.
|
||||
- `auto`, gateway yönlendirmesini sandbox'lanmış bir oturumdan ücretsiz bir geçersiz kılma haline getirmez. Çağrı başına `host=node` isteğine `auto` içinden izin verilir ve `host=gateway` yalnızca etkin bir sandbox runtime yoksa `auto` içinden izinlidir. Kararlı bir auto olmayan varsayılan istiyorsanız `tools.exec.host` ayarlayın veya açıkça `/exec host=...` kullanın.
|
||||
- `tools.exec.host=auto`, exec’in nerede çalışacağını seçer: varsa sandbox, yoksa gateway.
|
||||
- YOLO, ana makine exec işleminin nasıl onaylanacağını seçer: `security=full` artı `ask=off`.
|
||||
- YOLO modunda OpenClaw, yapılandırılmış ana makine exec ilkesinin üzerine ayrı bir sezgisel komut-gizleme onay kapısı eklemez.
|
||||
- `auto`, gateway yönlendirmesini sandbox içindeki bir oturumdan serbest bir geçersiz kılma yapmaz. `host=node` için çağrı başına bir istek `auto` içinden kabul edilir ve `host=gateway` yalnızca etkin bir sandbox çalışma zamanı yoksa `auto` içinden kabul edilir. Kararlı bir auto olmayan varsayılan istiyorsanız, `tools.exec.host` ayarlayın veya `/exec host=...` ifadesini açıkça kullanın.
|
||||
|
||||
Daha muhafazakâr bir kurulum istiyorsanız katmanlardan birini `allowlist` / `on-miss`
|
||||
veya `deny` olarak geri sıkılaştırın.
|
||||
Daha temkinli bir kurulum istiyorsanız, katmanlardan birini `allowlist` / `on-miss`
|
||||
veya `deny` durumuna geri sıkılaştırın.
|
||||
|
||||
Kalıcı gateway-ana-makinesi "asla istem gösterme" kurulumu:
|
||||
Kalıcı gateway ana makinesi "asla istem gösterme" kurulumu:
|
||||
|
||||
```bash
|
||||
openclaw config set tools.exec.host gateway
|
||||
@ -134,7 +141,7 @@ openclaw config set tools.exec.ask off
|
||||
openclaw gateway restart
|
||||
```
|
||||
|
||||
Ardından ana makine onay dosyasını buna uyacak şekilde ayarlayın:
|
||||
Ardından ana makine onay dosyasını eşleşecek şekilde ayarlayın:
|
||||
|
||||
```bash
|
||||
openclaw approvals set --stdin <<'EOF'
|
||||
@ -149,7 +156,22 @@ openclaw approvals set --stdin <<'EOF'
|
||||
EOF
|
||||
```
|
||||
|
||||
Bir node ana makinesi için bunun yerine aynı onay dosyasını o node üzerinde uygulayın:
|
||||
Geçerli makinede aynı gateway ana makinesi ilkesi için yerel kısayol:
|
||||
|
||||
```bash
|
||||
openclaw exec-policy preset yolo
|
||||
```
|
||||
|
||||
Bu yerel kısayol her ikisini de günceller:
|
||||
|
||||
- yerel `tools.exec.host/security/ask`
|
||||
- yerel `~/.openclaw/exec-approvals.json` varsayılanları
|
||||
|
||||
Bu kasıtlı olarak yalnızca yereldir. Gateway ana makinesi veya node ana makinesi onaylarını
|
||||
uzaktan değiştirmeniz gerekiyorsa, `openclaw approvals set --gateway` veya
|
||||
`openclaw approvals set --node <id|name|ip>` kullanmaya devam edin.
|
||||
|
||||
Bir node ana makinesi için aynı onay dosyasını bunun yerine o node üzerinde uygulayın:
|
||||
|
||||
```bash
|
||||
openclaw approvals set --node <id|name|ip> --stdin <<'EOF'
|
||||
@ -164,39 +186,45 @@ openclaw approvals set --node <id|name|ip> --stdin <<'EOF'
|
||||
EOF
|
||||
```
|
||||
|
||||
Yalnızca oturuma özel kısayol:
|
||||
Önemli yalnızca yerel sınırlama:
|
||||
|
||||
- `openclaw exec-policy`, node onaylarını eşzamanlamaz
|
||||
- `openclaw exec-policy set --host node` reddedilir
|
||||
- node exec onayları çalışma zamanında node’dan alınır, bu nedenle node hedefli güncellemeler için `openclaw approvals --node ...` kullanılmalıdır
|
||||
|
||||
Yalnızca oturum kısayolu:
|
||||
|
||||
- `/exec security=full ask=off` yalnızca geçerli oturumu değiştirir.
|
||||
- `/elevated full`, o oturum için exec onaylarını da atlayan bir acil durum kısayoludur.
|
||||
- `/elevated full`, bu oturum için exec onaylarını da atlayan bir acil durum kısayoludur.
|
||||
|
||||
Ana makine onay dosyası yapılandırmadan daha katı kalırsa, daha katı olan ana makine ilkesi yine kazanır.
|
||||
Ana makine onay dosyası yapılandırmadan daha sıkı kalırsa, daha sıkı ana makine ilkesi yine kazanır.
|
||||
|
||||
## İlke düğmeleri
|
||||
|
||||
### Security (`exec.security`)
|
||||
### Güvenlik (`exec.security`)
|
||||
|
||||
- **deny**: tüm ana makine exec isteklerini engelle.
|
||||
- **allowlist**: yalnızca izin listesine alınmış komutlara izin ver.
|
||||
- **full**: her şeye izin ver (elevated ile eşdeğer).
|
||||
- **deny**: tüm ana makine exec isteklerini engeller.
|
||||
- **allowlist**: yalnızca izin listesine alınmış komutlara izin verir.
|
||||
- **full**: her şeye izin verir (`elevated` ile eşdeğer).
|
||||
|
||||
### Ask (`exec.ask`)
|
||||
### Sor (`exec.ask`)
|
||||
|
||||
- **off**: asla istem gösterme.
|
||||
- **on-miss**: yalnızca izin listesi eşleşmediğinde istem göster.
|
||||
- **always**: her komutta istem göster.
|
||||
- Etkili ask modu `always` olduğunda `allow-always` kalıcı güven kararı istemleri bastırmaz
|
||||
- `allow-always` kalıcı güveni, geçerli ask modu `always` olduğunda istemleri bastırmaz
|
||||
|
||||
### Ask fallback (`askFallback`)
|
||||
|
||||
İstem gerekliyse ama hiçbir UI erişilebilir değilse, fallback şuna karar verir:
|
||||
Bir istem gerekliyse ancak hiçbir kullanıcı arayüzüne ulaşılamıyorsa, fallback şuna karar verir:
|
||||
|
||||
- **deny**: engelle.
|
||||
- **allowlist**: yalnızca izin listesi eşleşirse izin ver.
|
||||
- **allowlist**: yalnızca izin listesi eşleşiyorsa izin ver.
|
||||
- **full**: izin ver.
|
||||
|
||||
### Satır içi yorumlayıcı eval sertleştirmesi (`tools.exec.strictInlineEval`)
|
||||
### Satır içi yorumlayıcı eval güçlendirmesi (`tools.exec.strictInlineEval`)
|
||||
|
||||
`tools.exec.strictInlineEval=true` olduğunda OpenClaw, yorumlayıcı ikilisinin kendisi izin listesinde olsa bile satır içi kod değerlendirme biçimlerini yalnızca onayla çalıştırılabilir olarak ele alır.
|
||||
`tools.exec.strictInlineEval=true` olduğunda OpenClaw, yorumlayıcı ikilisinin kendisi izin listesinde olsa bile satır içi kod değerlendirme biçimlerini yalnızca onaylı olarak ele alır.
|
||||
|
||||
Örnekler:
|
||||
|
||||
@ -208,18 +236,18 @@ Ana makine onay dosyası yapılandırmadan daha katı kalırsa, daha katı olan
|
||||
- `lua -e`
|
||||
- `osascript -e`
|
||||
|
||||
Bu, tek bir kararlı dosya operandına temiz biçimde eşlenmeyen yorumlayıcı yükleyicileri için derinlikli savunmadır. Sıkı modda:
|
||||
Bu, tek bir kararlı dosya işlenenine temiz biçimde eşlenmeyen yorumlayıcı yükleyiciler için savunma amaçlı ek bir katmandır. Sıkı modda:
|
||||
|
||||
- bu komutlar yine de açık onay gerektirir;
|
||||
- `allow-always`, bunlar için yeni izin listesi girdilerini otomatik olarak kalıcı hale getirmez.
|
||||
|
||||
## Allowlist (aracı başına)
|
||||
## İzin listesi (ajan başına)
|
||||
|
||||
İzin listeleri **aracı başınadır**. Birden fazla aracı varsa, düzenlediğiniz
|
||||
aracıyı macOS uygulamasında değiştirin. Desenler **büyük/küçük harfe duyarsız glob eşleşmeleridir**.
|
||||
Desenler **ikili yollara** çözülmelidir (yalnızca basename içeren girdiler yok sayılır).
|
||||
İzin listeleri **ajan başınadır**. Birden fazla ajan varsa,
|
||||
macOS uygulamasında düzenlediğiniz ajanı değiştirin. Kalıplar **büyük/küçük harfe duyarsız glob eşleşmeleridir**.
|
||||
Kalıplar **ikili dosya yollarına** çözülmelidir (yalnızca basename içeren girdiler yok sayılır).
|
||||
Eski `agents.default` girdileri yükleme sırasında `agents.main` içine taşınır.
|
||||
`echo ok && pwd` gibi shell zincirleri için yine de her üst düzey segmentin izin listesi kurallarını karşılaması gerekir.
|
||||
`echo ok && pwd` gibi shell zincirleri yine de her üst düzey segmentin izin listesi kurallarını karşılamasını gerektirir.
|
||||
|
||||
Örnekler:
|
||||
|
||||
@ -229,45 +257,45 @@ Eski `agents.default` girdileri yükleme sırasında `agents.main` içine taşı
|
||||
|
||||
Her izin listesi girdisi şunları izler:
|
||||
|
||||
- UI kimliği için sabit UUID olarak **id** (isteğe bağlı)
|
||||
- **id** kullanıcı arayüzü kimliği için kararlı UUID (isteğe bağlı)
|
||||
- **son kullanım** zaman damgası
|
||||
- **son kullanılan komut**
|
||||
- **son çözümlenen yol**
|
||||
|
||||
## Skill CLI'larını otomatik izinli yapma
|
||||
## Skill CLI’lerini otomatik izinli yap
|
||||
|
||||
**Skill CLI'larını otomatik izinli yap** etkinleştirildiğinde, bilinen Skills tarafından başvurulan yürütülebilir dosyalar
|
||||
node'larda (macOS node veya başsız node ana makinesi) izin listesinde kabul edilir. Bu,
|
||||
skill ikili listesini almak için Gateway RPC üzerinden `skills.bins` kullanır. Katı el ile izin listeleri istiyorsanız bunu kapatın.
|
||||
**Auto-allow skill CLIs** etkin olduğunda, bilinen Skills tarafından başvurulan yürütülebilir dosyalar
|
||||
node’larda (macOS node veya arayüzsüz node ana makinesi) izin listesine alınmış kabul edilir. Bu,
|
||||
skill bin listesini almak için Gateway RPC üzerinden `skills.bins` kullanır. Sıkı el ile izin listeleri istiyorsanız bunu devre dışı bırakın.
|
||||
|
||||
Önemli güven notları:
|
||||
|
||||
- Bu, el ile yol izin listesi girdilerinden ayrı olan **örtük bir kolaylık izin listesidir**.
|
||||
- Gateway ile node'un aynı güven sınırında olduğu güvenilir operatör ortamları için tasarlanmıştır.
|
||||
- Katı açık güven gerekiyorsa `autoAllowSkills: false` değerini koruyun ve yalnızca el ile yol izin listesi girdileri kullanın.
|
||||
- Bu, el ile yol izin listesi girdilerinden ayrı bir **örtük kolaylık izin listesidir**.
|
||||
- Bunun amacı, Gateway ile node’un aynı güven sınırı içinde olduğu güvenilir operatör ortamlarıdır.
|
||||
- Sıkı açık güven gerekiyorsa, `autoAllowSkills: false` olarak bırakın ve yalnızca el ile yol izin listesi girdilerini kullanın.
|
||||
|
||||
## Safe bins (yalnızca stdin)
|
||||
## Güvenli ikili dosyalar (yalnızca stdin)
|
||||
|
||||
`tools.exec.safeBins`, allowlist modunda **açık izin listesi girdileri olmadan**
|
||||
çalışabilen küçük bir **yalnızca stdin** ikili listesi (örneğin `cut`) tanımlar. Safe bins,
|
||||
konumsal dosya argümanlarını ve yol benzeri token'ları reddeder; bu nedenle yalnızca gelen akış üzerinde çalışabilirler.
|
||||
Bunu genel bir güven listesi olarak değil, akış filtreleri için dar bir hızlı yol olarak değerlendirin.
|
||||
Yorumlayıcı veya runtime ikililerini (örneğin `python3`, `node`, `ruby`, `bash`, `sh`, `zsh`)
|
||||
`tools.exec.safeBins`, açık izin listesi girdileri olmadan **stdin-only**
|
||||
ikili dosyaların (örneğin `cut`) `allowlist` modunda çalışabileceği küçük bir liste tanımlar.
|
||||
Güvenli ikili dosyalar konumsal dosya argümanlarını ve yol benzeri belirteçleri reddeder; böylece yalnızca gelen akış üzerinde çalışabilirler.
|
||||
Bunu genel bir güven listesi değil, akış filtreleri için dar bir hızlı yol olarak değerlendirin.
|
||||
Yorumlayıcı veya çalışma zamanı ikili dosyalarını (`python3`, `node`, `ruby`, `bash`, `sh`, `zsh` gibi)
|
||||
`safeBins` içine **eklemeyin**.
|
||||
Bir komut tasarım gereği kod değerlendirebiliyorsa, alt komut çalıştırabiliyorsa veya dosya okuyabiliyorsa,
|
||||
açık izin listesi girdilerini tercih edin ve onay istemlerini açık tutun.
|
||||
Özel safe bin'ler `tools.exec.safeBinProfiles.<bin>` içinde açık bir profil tanımlamalıdır.
|
||||
Doğrulama yalnızca argv biçiminden deterministik olarak yapılır (ana makinede dosya sistemi varlık kontrolleri yoktur); bu,
|
||||
izin/verme farklarından dosya varlığı oracle davranışını önler.
|
||||
Dosya odaklı seçenekler varsayılan safe bin'ler için reddedilir (örneğin `sort -o`, `sort --output`,
|
||||
Bir komut tasarım gereği kod değerlendirebiliyor, alt komut yürütebiliyor veya dosya okuyabiliyorsa,
|
||||
açık izin listesi girdilerini tercih edin ve onay istemlerini etkin tutun.
|
||||
Özel güvenli ikili dosyalar, `tools.exec.safeBinProfiles.<bin>` içinde açık bir profil tanımlamalıdır.
|
||||
Doğrulama yalnızca argv biçiminden deterministik olarak yapılır (ana makine dosya sisteminde varlık denetimi yapılmaz), bu da
|
||||
izin/vermeme farklarından dosya varlığı oracle davranışını önler.
|
||||
Varsayılan güvenli ikili dosyalar için dosya odaklı seçenekler reddedilir (`sort -o`, `sort --output`,
|
||||
`sort --files0-from`, `sort --compress-program`, `sort --random-source`,
|
||||
`sort --temporary-directory`/`-T`, `wc --files0-from`, `jq -f/--from-file`,
|
||||
`grep -f/--file`).
|
||||
Safe bin'ler ayrıca yalnızca stdin davranışını bozan seçenekler için ikili başına açık bayrak ilkesi de uygular
|
||||
(örneğin `sort -o/--output/--compress-program` ve grep özyinelemeli bayrakları).
|
||||
Uzun seçenekler safe-bin modunda fail-closed doğrulanır: bilinmeyen bayraklar ve belirsiz
|
||||
`grep -f/--file` gibi).
|
||||
Güvenli ikili dosyalar ayrıca stdin-only
|
||||
davranışını bozan seçenekler için ikili dosya başına açık bayrak ilkesi uygular (`sort -o/--output/--compress-program` ve grep özyinelemeli bayrakları gibi).
|
||||
Uzun seçenekler güvenli ikili dosya modunda başarısızlıkta kapalı şekilde doğrulanır: bilinmeyen bayraklar ve belirsiz
|
||||
kısaltmalar reddedilir.
|
||||
Safe-bin profiline göre reddedilen bayraklar:
|
||||
Güvenli ikili dosya profiline göre reddedilen bayraklar:
|
||||
|
||||
[//]: # "SAFE_BIN_DENIED_FLAGS:START"
|
||||
|
||||
@ -278,34 +306,36 @@ Safe-bin profiline göre reddedilen bayraklar:
|
||||
|
||||
[//]: # "SAFE_BIN_DENIED_FLAGS:END"
|
||||
|
||||
Safe bin'ler ayrıca argv token'larının çalışma zamanında **literal metin** olarak ele alınmasını zorlar (globbing
|
||||
ve `$VARS` genişletmesi yoktur) böylece `*` veya `$HOME/...` gibi desenler
|
||||
dosya okuma kaçırmak için kullanılamaz.
|
||||
Safe bin'ler ayrıca güvenilir ikili dizinlerinden çözülmelidir (sistem varsayılanları artı isteğe bağlı
|
||||
`tools.exec.safeBinTrustedDirs`). `PATH` girdilerine asla otomatik güvenilmez.
|
||||
Varsayılan güvenilir safe-bin dizinleri bilinçli olarak minimaldir: `/bin`, `/usr/bin`.
|
||||
Safe-bin yürütülebilir dosyanız paket yöneticisi/kullanıcı yollarında bulunuyorsa (örneğin
|
||||
Güvenli ikili dosyalar ayrıca argv belirteçlerinin yürütme sırasında **düz metin**
|
||||
olarak ele alınmasını zorunlu kılar (globbing yok
|
||||
ve stdin-only segmentler için `$VARS` genişletmesi yoktur); böylece `*` veya `$HOME/...` gibi kalıplar
|
||||
dosya okumalarını kaçırmak için kullanılamaz.
|
||||
Güvenli ikili dosyalar ayrıca güvenilir ikili dosya dizinlerinden çözülmelidir (sistem varsayılanları artı isteğe bağlı
|
||||
`tools.exec.safeBinTrustedDirs`).
|
||||
`PATH` girdilerine hiçbir zaman otomatik olarak güvenilmez.
|
||||
Varsayılan güvenilir safe-bin dizinleri kasıtlı olarak asgari düzeydedir: `/bin`, `/usr/bin`.
|
||||
Güvenli ikili dosyanız paket yöneticisi/kullanıcı yollarında bulunuyorsa (örneğin
|
||||
`/opt/homebrew/bin`, `/usr/local/bin`, `/opt/local/bin`, `/snap/bin`), bunları açıkça
|
||||
`tools.exec.safeBinTrustedDirs` içine ekleyin.
|
||||
Shell zincirleme ve yönlendirmelere allowlist modunda otomatik izin verilmez.
|
||||
Kabuk zincirleme ve yönlendirmelere `allowlist` modunda otomatik olarak izin verilmez.
|
||||
|
||||
Her üst düzey segment izin listesi kurallarını karşıladığında shell zincirlemeye (`&&`, `||`, `;`) izin verilir
|
||||
(safe bin'ler veya skill auto-allow dahil). Yönlendirmeler allowlist modunda desteklenmez.
|
||||
Komut ikamesi (`$()` / backtick'ler), çift tırnak içinde dahil olmak üzere allowlist ayrıştırması sırasında reddedilir;
|
||||
literal `$()` metnine ihtiyacınız varsa tek tırnak kullanın.
|
||||
macOS yardımcı uygulama onaylarında, shell denetim veya genişletme sözdizimi içeren ham shell metni
|
||||
(`&&`, `||`, `;`, `|`, `` ` ``, `$`, `<`, `>`, `(`, `)`) shell ikilisinin kendisi
|
||||
izin listesine alınmadıkça allowlist eşleşmezliği olarak değerlendirilir.
|
||||
Shell sarmalayıcıları için (`bash|sh|zsh ... -c/-lc`), istek kapsamlı env geçersiz kılmaları
|
||||
küçük bir açık izin listesine indirilir (`TERM`, `LANG`, `LC_*`, `COLORTERM`, `NO_COLOR`, `FORCE_COLOR`).
|
||||
Allowlist modunda allow-always kararları için, bilinen dağıtım sarmalayıcıları
|
||||
(`env`, `nice`, `nohup`, `stdbuf`, `timeout`) sarmalayıcı yolları yerine iç yürütülebilir yolları kalıcılaştırır.
|
||||
Shell çoklayıcıları (`busybox`, `toybox`) da shell applet'leri (`sh`, `ash`,
|
||||
vb.) için açılır; böylece çoklayıcı ikilileri yerine iç yürütülebilir dosyalar kalıcılaştırılır. Bir sarmalayıcı veya
|
||||
çoklayıcı güvenli biçimde açılamıyorsa, otomatik olarak hiçbir izin listesi girdisi kalıcılaştırılmaz.
|
||||
`python3` veya `node` gibi yorumlayıcıları izin listesine alıyorsanız satır içi eval'in yine de açık onay gerektirmesi için `tools.exec.strictInlineEval=true` tercih edin. Sıkı modda `allow-always`, zararsız yorumlayıcı/betik çağrılarını yine de kalıcılaştırabilir, ancak satır içi eval taşıyıcıları otomatik olarak kalıcılaştırılmaz.
|
||||
Kabuk zincirlemeye (`&&`, `||`, `;`), her üst düzey segment izin listesi koşullarını sağlıyorsa
|
||||
(güvenli ikili dosyalar veya skill otomatik izin dahil) izin verilir. Yönlendirmeler `allowlist` modunda desteklenmez.
|
||||
Komut ikamesi (`$()` / ters tırnaklar), çift tırnak içinde olsa bile `allowlist` ayrıştırması sırasında reddedilir;
|
||||
düz `$()` metnine ihtiyacınız varsa tek tırnak kullanın.
|
||||
macOS yardımcı uygulama onaylarında, kabuk denetim veya genişletme sözdizimi
|
||||
(`&&`, `||`, `;`, `|`, `` ` ``, `$`, `<`, `>`, `(`, `)`) içeren ham shell metni,
|
||||
kabuk ikili dosyasının kendisi izin listesinde değilse `allowlist` kaçırması olarak değerlendirilir.
|
||||
Kabuk sarmalayıcıları için (`bash|sh|zsh ... -c/-lc`), istek kapsamındaki env geçersiz kılmaları
|
||||
küçük ve açık bir izin listesine indirgenir (`TERM`, `LANG`, `LC_*`, `COLORTERM`, `NO_COLOR`, `FORCE_COLOR`).
|
||||
`allowlist` modunda allow-always kararları için bilinen dispatch sarmalayıcıları
|
||||
(`env`, `nice`, `nohup`, `stdbuf`, `timeout`) sarmalayıcı
|
||||
yolları yerine iç yürütülebilir dosya yollarını kalıcılaştırır. Kabuk çoklayıcıları (`busybox`, `toybox`) da kabuk applet’leri (`sh`, `ash`,
|
||||
vb.) için açılarak çoklayıcı ikili dosyaları yerine iç yürütülebilir dosyalar kalıcılaştırılır. Bir sarmalayıcı veya
|
||||
çoklayıcı güvenli şekilde açılamıyorsa, otomatik olarak hiçbir izin listesi girdisi kalıcılaştırılmaz.
|
||||
`python3` veya `node` gibi yorumlayıcıları izin listesine alırsanız, satır içi eval’in hâlâ açık onay gerektirmesi için `tools.exec.strictInlineEval=true` tercih edin. Sıkı modda, `allow-always` yine de zararsız yorumlayıcı/script çağrılarını kalıcılaştırabilir, ancak satır içi eval taşıyıcıları otomatik olarak kalıcılaştırılmaz.
|
||||
|
||||
Varsayılan safe bins:
|
||||
Varsayılan güvenli ikili dosyalar:
|
||||
|
||||
[//]: # "SAFE_BIN_DEFAULTS:START"
|
||||
|
||||
@ -313,46 +343,46 @@ Varsayılan safe bins:
|
||||
|
||||
[//]: # "SAFE_BIN_DEFAULTS:END"
|
||||
|
||||
`grep` ve `sort` varsayılan listede değildir. Bunları özellikle dahil ederseniz
|
||||
stdin dışı iş akışları için açık izin listesi girdilerini koruyun.
|
||||
`grep` ve `sort`, varsayılan listede değildir. Açıkça etkinleştirirseniz,
|
||||
stdin dışı iş akışları için açık izin listesi girdileri kullanmaya devam edin.
|
||||
`grep` için safe-bin modunda, deseni `-e`/`--regexp` ile sağlayın; konumsal desen biçimi
|
||||
reddedilir, böylece dosya operandları belirsiz konumsal argümanlar olarak kaçıralamaz.
|
||||
reddedilir, böylece dosya işlenenleri belirsiz konumsal argümanlar olarak kaçırılamaz.
|
||||
|
||||
### Safe bins ve allowlist karşılaştırması
|
||||
### Güvenli ikili dosyalar ile allowlist karşılaştırması
|
||||
|
||||
| Konu | `tools.exec.safeBins` | Allowlist (`exec-approvals.json`) |
|
||||
| ---------------- | ------------------------------------------------------ | ------------------------------------------------------------ |
|
||||
| Amaç | Dar stdin filtrelerine otomatik izin ver | Belirli yürütülebilir dosyalara açıkça güven |
|
||||
| Eşleşme türü | Yürütülebilir ad + safe-bin argv ilkesi | Çözümlenmiş yürütülebilir yol glob deseni |
|
||||
| Argüman kapsamı | Safe-bin profili ve literal-token kurallarıyla kısıtlı | Yalnızca yol eşleşmesi; argümanlar aksi halde sizin sorumluluğunuzdur |
|
||||
| Tipik örnekler | `head`, `tail`, `tr`, `wc` | `jq`, `python3`, `node`, `ffmpeg`, özel CLI'lar |
|
||||
| En iyi kullanım | Pipeline'larda düşük riskli metin dönüşümleri | Daha geniş davranış veya yan etkilere sahip tüm araçlar |
|
||||
| Amaç | Dar stdin filtrelerine otomatik izin vermek | Belirli yürütülebilir dosyalara açıkça güvenmek |
|
||||
| Eşleşme türü | Yürütülebilir dosya adı + safe-bin argv ilkesi | Çözümlenmiş yürütülebilir dosya yolu glob kalıbı |
|
||||
| Argüman kapsamı | Safe-bin profili ve düz belirteç kurallarıyla kısıtlanır | Yalnızca yol eşleşmesi; diğer açılardan argümanlar sizin sorumluluğunuzdadır |
|
||||
| Tipik örnekler | `head`, `tail`, `tr`, `wc` | `jq`, `python3`, `node`, `ffmpeg`, özel CLI’ler |
|
||||
| En iyi kullanım | İşlem hatlarında düşük riskli metin dönüşümleri | Daha geniş davranış veya yan etkilere sahip tüm araçlar |
|
||||
|
||||
Yapılandırma konumu:
|
||||
|
||||
- `safeBins` yapılandırmadan gelir (`tools.exec.safeBins` veya aracı başına `agents.list[].tools.exec.safeBins`).
|
||||
- `safeBinTrustedDirs` yapılandırmadan gelir (`tools.exec.safeBinTrustedDirs` veya aracı başına `agents.list[].tools.exec.safeBinTrustedDirs`).
|
||||
- `safeBinProfiles` yapılandırmadan gelir (`tools.exec.safeBinProfiles` veya aracı başına `agents.list[].tools.exec.safeBinProfiles`). Aracı başına profil anahtarları genel anahtarları geçersiz kılar.
|
||||
- allowlist girdileri ana makinede yerel `~/.openclaw/exec-approvals.json` dosyasında `agents.<id>.allowlist` altında bulunur (veya Control UI / `openclaw approvals allowlist ...` üzerinden).
|
||||
- `openclaw security audit`, yorumlayıcı/runtime ikilileri açık profiller olmadan `safeBins` içinde göründüğünde `tools.exec.safe_bins_interpreter_unprofiled` uyarısı verir.
|
||||
- `openclaw doctor --fix`, eksik özel `safeBinProfiles.<bin>` girdilerini `{}` olarak iskeletleyebilir (sonrasında gözden geçirip sıkılaştırın). Yorumlayıcı/runtime ikilileri otomatik iskeletlenmez.
|
||||
- `safeBins`, yapılandırmadan gelir (`tools.exec.safeBins` veya ajan başına `agents.list[].tools.exec.safeBins`).
|
||||
- `safeBinTrustedDirs`, yapılandırmadan gelir (`tools.exec.safeBinTrustedDirs` veya ajan başına `agents.list[].tools.exec.safeBinTrustedDirs`).
|
||||
- `safeBinProfiles`, yapılandırmadan gelir (`tools.exec.safeBinProfiles` veya ajan başına `agents.list[].tools.exec.safeBinProfiles`). Ajan başına profil anahtarları genel anahtarları geçersiz kılar.
|
||||
- allowlist girdileri, ana makineye yerel `~/.openclaw/exec-approvals.json` içinde `agents.<id>.allowlist` altında tutulur (veya Control UI / `openclaw approvals allowlist ...` üzerinden).
|
||||
- `openclaw security audit`, yorumlayıcı/çalışma zamanı ikili dosyaları açık profiller olmadan `safeBins` içinde göründüğünde `tools.exec.safe_bins_interpreter_unprofiled` uyarısı verir.
|
||||
- `openclaw doctor --fix`, eksik özel `safeBinProfiles.<bin>` girdilerini `{}` olarak iskeletleyebilir (sonrasında gözden geçirip sıkılaştırın). Yorumlayıcı/çalışma zamanı ikili dosyaları otomatik olarak iskeletlenmez.
|
||||
|
||||
Özel profil örneği:
|
||||
__OC_I18N_900004__
|
||||
`jq` öğesini özellikle `safeBins` içine alırsanız OpenClaw yine de safe-bin
|
||||
modunda `env` built-in'ini reddeder; böylece `jq -n env` açık bir izin listesi yolu
|
||||
veya onay istemi olmadan ana makine süreç ortamını dökemez.
|
||||
__OC_I18N_900005__
|
||||
`jq`yu açıkça `safeBins` içine dahil ederseniz, OpenClaw safe-bin
|
||||
modunda yine de `env` yerleşik işlevini reddeder; böylece `jq -n env`, açık bir allowlist yolu
|
||||
veya onay istemi olmadan ana makine işlem ortamını dökemez.
|
||||
|
||||
## Control UI düzenleme
|
||||
|
||||
Varsayılanları, aracı başına
|
||||
geçersiz kılmaları ve izin listelerini düzenlemek için **Control UI → Nodes → Exec approvals** kartını kullanın. Bir kapsam seçin (Varsayılanlar veya bir aracı), ilkeyi ayarlayın,
|
||||
izin listesi desenleri ekleyin/kaldırın, sonra **Kaydet** seçeneğini kullanın. UI, listeyi düzenli tutabilmeniz için
|
||||
desen başına **son kullanım** meta verisini gösterir.
|
||||
Varsayılanları, ajan başına
|
||||
geçersiz kılmaları ve allowlist’leri düzenlemek için **Control UI → Nodes → Exec approvals** kartını kullanın. Bir kapsam seçin (Varsayılanlar veya bir ajan), ilkeyi ayarlayın,
|
||||
allowlist kalıplarını ekleyin/kaldırın, ardından **Kaydet**’e tıklayın. Kullanıcı arayüzü, listeyi düzenli tutabilmeniz için
|
||||
kalıp başına **son kullanım** meta verilerini gösterir.
|
||||
|
||||
Hedef seçici **Gateway** (yerel onaylar) veya bir **Node** seçer. Node'ların
|
||||
`system.execApprovals.get/set` ilan etmesi gerekir (macOS uygulaması veya başsız node ana makinesi).
|
||||
Bir node henüz exec onaylarını ilan etmiyorsa yerel
|
||||
Hedef seçici **Gateway**’i (yerel onaylar) veya bir **Node**’u seçer. Node’lar
|
||||
`system.execApprovals.get/set` desteğini bildirmelidir (macOS uygulaması veya arayüzsüz node ana makinesi).
|
||||
Bir node henüz exec approvals desteğini bildirmiyorsa, yerel
|
||||
`~/.openclaw/exec-approvals.json` dosyasını doğrudan düzenleyin.
|
||||
|
||||
CLI: `openclaw approvals`, gateway veya node düzenlemeyi destekler (bkz. [Approvals CLI](/cli/approvals)).
|
||||
@ -360,165 +390,165 @@ CLI: `openclaw approvals`, gateway veya node düzenlemeyi destekler (bkz. [Appro
|
||||
## Onay akışı
|
||||
|
||||
İstem gerektiğinde gateway, operatör istemcilerine `exec.approval.requested` yayını yapar.
|
||||
Control UI ve macOS uygulaması bunu `exec.approval.resolve` ile çözer; ardından gateway
|
||||
Control UI ve macOS uygulaması bunu `exec.approval.resolve` ile çözer, ardından gateway
|
||||
onaylanan isteği node ana makinesine iletir.
|
||||
|
||||
`host=node` için onay istekleri standart bir `systemRunPlan` yükü içerir. Gateway,
|
||||
onaylanan `system.run`
|
||||
`host=node` için onay istekleri kanonik bir `systemRunPlan` payload’ı içerir. Gateway,
|
||||
onaylanmış `system.run`
|
||||
isteklerini iletirken bu planı yetkili komut/cwd/oturum bağlamı olarak kullanır.
|
||||
|
||||
Bu, eşzamansız onay gecikmesi için önemlidir:
|
||||
Bu, eşzamansız onay gecikmesi açısından önemlidir:
|
||||
|
||||
- node exec yolu baştan tek bir standart plan hazırlar
|
||||
- onay kaydı bu planı ve bağlama meta verisini saklar
|
||||
- onaylandıktan sonra son iletilen `system.run` çağrısı daha sonraki çağıran düzenlemelerine güvenmek yerine
|
||||
saklanan planı yeniden kullanır
|
||||
- node exec yolu başta tek bir kanonik plan hazırlar
|
||||
- onay kaydı bu planı ve bağlama meta verilerini depolar
|
||||
- onaylandıktan sonra son iletilen `system.run` çağrısı
|
||||
daha sonra çağıran tarafından yapılan düzenlemelere güvenmek yerine depolanan planı yeniden kullanır
|
||||
- çağıran, onay isteği oluşturulduktan sonra `command`, `rawCommand`, `cwd`, `agentId` veya
|
||||
`sessionKey` değerlerini değiştirirse, gateway iletilen
|
||||
çalıştırmayı onay uyumsuzluğu olarak reddeder
|
||||
`sessionKey` değerlerini değiştirirse, gateway
|
||||
iletilen çalıştırmayı onay uyuşmazlığı olarak reddeder
|
||||
|
||||
## Yorumlayıcı/runtime komutları
|
||||
## Yorumlayıcı/çalışma zamanı komutları
|
||||
|
||||
Onay destekli yorumlayıcı/runtime çalıştırmaları bilinçli olarak muhafazakârdır:
|
||||
Onay destekli yorumlayıcı/çalışma zamanı çalıştırmaları kasıtlı olarak tutucudur:
|
||||
|
||||
- Tam argv/cwd/env bağlamı her zaman bağlanır.
|
||||
- Doğrudan shell betiği ve doğrudan runtime dosyası biçimleri, en iyi çabayla tek bir somut yerel
|
||||
dosya anlık görüntüsüne bağlanır.
|
||||
- Yine tek bir doğrudan yerel dosyaya çözümlenen yaygın paket yöneticisi sarmalayıcı biçimleri (örneğin
|
||||
`pnpm exec`, `pnpm node`, `npm exec`, `npx`) bağlamadan önce açılır.
|
||||
- OpenClaw bir yorumlayıcı/runtime komutu için tam olarak tek bir somut yerel dosya belirleyemezse
|
||||
(örneğin paket betikleri, eval biçimleri, runtime'a özgü yükleyici zincirleri veya belirsiz çok dosyalı
|
||||
biçimler), anlamsal kapsama varmış gibi davranmak yerine onay destekli yürütmeyi reddeder.
|
||||
- Bu iş akışları için sandboxing, ayrı bir ana makine sınırı veya operatörün daha geniş runtime anlambilimini kabul ettiği
|
||||
açık güvenilir allowlist/full iş akışını tercih edin.
|
||||
- Doğrudan kabuk script’i ve doğrudan çalışma zamanı dosyası biçimleri, tek bir somut yerel
|
||||
dosya anlık görüntüsüne en iyi çabayla bağlanır.
|
||||
- Hâlâ tek bir doğrudan yerel dosyaya çözümlenen yaygın paket yöneticisi sarmalayıcı biçimleri (örneğin
|
||||
`pnpm exec`, `pnpm node`, `npm exec`, `npx`), bağlamadan önce açılır.
|
||||
- OpenClaw, bir yorumlayıcı/çalışma zamanı komutu için tam olarak bir somut yerel dosya belirleyemezse
|
||||
(örneğin paket script’leri, eval biçimleri, çalışma zamanına özgü yükleyici zincirleri veya belirsiz çoklu dosya
|
||||
biçimleri), onay destekli yürütme,
|
||||
kapsadığına dair anlamsal kapsam iddiasında bulunmak yerine reddedilir.
|
||||
- Bu iş akışları için sandbox, ayrı bir ana makine sınırı veya operatörün daha geniş çalışma zamanı anlambilimini kabul ettiği açık güvenilir
|
||||
allowlist/full iş akışını tercih edin.
|
||||
|
||||
Onay gerektiğinde exec aracı, bir onay kimliği döndürerek hemen geri gelir. Daha sonraki sistem olaylarıyla (`Exec finished` / `Exec denied`)
|
||||
ilişkilendirmek için bu kimliği kullanın. Zaman aşımından önce karar gelmezse istek
|
||||
onay zaman aşımı olarak ele alınır ve red nedeni olarak gösterilir.
|
||||
Onay gerektiğinde exec aracı hemen bir onay kimliğiyle döner. Daha sonraki sistem olaylarını (`Exec finished` / `Exec denied`) ilişkilendirmek için bu kimliği kullanın. Zaman aşımından önce karar gelmezse,
|
||||
istek bir onay zaman aşımı olarak değerlendirilir ve ret nedeni olarak gösterilir.
|
||||
|
||||
### Devam teslim davranışı
|
||||
### Takip teslim davranışı
|
||||
|
||||
Onaylanmış eşzamansız bir exec tamamlandıktan sonra OpenClaw, aynı oturuma bir devam `agent` dönüşü gönderir.
|
||||
Onaylı eşzamansız exec tamamlandıktan sonra OpenClaw aynı oturuma bir takip `agent` turu gönderir.
|
||||
|
||||
- Geçerli bir harici teslim hedefi varsa (teslim edilebilir kanal artı hedef `to`), devam teslimi bu kanalı kullanır.
|
||||
- Harici hedefi olmayan yalnızca webchat veya dahili oturum akışlarında devam teslimi yalnızca oturum içinde kalır (`deliver: false`).
|
||||
- Bir çağıran, çözümlenebilir bir harici kanal olmadan açıkça katı harici teslim isterse istek `INVALID_REQUEST` ile başarısız olur.
|
||||
- `bestEffortDeliver` etkinse ve hiçbir harici kanal çözümlenemiyorsa teslim, başarısız olmak yerine yalnızca oturuma düşürülür.
|
||||
- Geçerli bir harici teslim hedefi varsa (teslim edilebilir kanal artı hedef `to`), takip teslimi o kanalı kullanır.
|
||||
- Harici hedef olmayan yalnızca webchat veya iç oturum akışlarında, takip teslimi yalnızca oturum içinde kalır (`deliver: false`).
|
||||
- Bir çağıran, çözümlenebilir harici kanal olmadan açıkça katı harici teslim isterse, istek `INVALID_REQUEST` ile başarısız olur.
|
||||
- `bestEffortDeliver` etkinse ve hiçbir harici kanal çözümlenemiyorsa, teslim başarısız olmak yerine yalnızca oturum içi teslimata düşürülür.
|
||||
|
||||
Onay iletişim kutusu şunları içerir:
|
||||
|
||||
- komut + argümanlar
|
||||
- cwd
|
||||
- aracı kimliği
|
||||
- çözümlenmiş yürütülebilir yol
|
||||
- ana makine + ilke meta verisi
|
||||
- ajan kimliği
|
||||
- çözümlenmiş yürütülebilir dosya yolu
|
||||
- ana makine + ilke meta verileri
|
||||
|
||||
Eylemler:
|
||||
|
||||
- **Bir kez izin ver** → şimdi çalıştır
|
||||
- **Her zaman izin ver** → izin listesine ekle + çalıştır
|
||||
- **Her zaman izin ver** → allowlist’e ekle + çalıştır
|
||||
- **Reddet** → engelle
|
||||
|
||||
## Sohbet kanallarına onay iletme
|
||||
## Sohbet kanallarına onay yönlendirme
|
||||
|
||||
Exec onay istemlerini herhangi bir sohbet kanalına (plugin kanalları dahil) iletebilir ve
|
||||
bunları `/approve` ile onaylayabilirsiniz. Bu, normal giden teslim hattını kullanır.
|
||||
Exec onay istemlerini herhangi bir sohbet kanalına (plugin kanalları dahil) yönlendirebilir ve
|
||||
bunları `/approve` ile onaylayabilirsiniz. Bu, normal giden teslim işlem hattını kullanır.
|
||||
|
||||
Yapılandırma:
|
||||
__OC_I18N_900005__
|
||||
Sohbette şu şekilde yanıt verin:
|
||||
__OC_I18N_900006__
|
||||
`/approve` komutu hem exec onaylarını hem de plugin onaylarını işler. Kimlik bekleyen bir exec onayıyla eşleşmezse otomatik olarak bunun yerine plugin onaylarını denetler.
|
||||
|
||||
### Plugin onay iletimi
|
||||
|
||||
Plugin onay iletimi, exec onaylarıyla aynı teslim hattını kullanır ama
|
||||
`approvals.plugin` altında kendine ait bağımsız yapılandırmaya sahiptir. Birini etkinleştirmek veya devre dışı bırakmak diğerini etkilemez.
|
||||
Sohbette yanıt:
|
||||
__OC_I18N_900007__
|
||||
Yapılandırma biçimi `approvals.exec` ile aynıdır: `enabled`, `mode`, `agentFilter`,
|
||||
`/approve` komutu hem exec onaylarını hem de plugin onaylarını işler. Kimlik bekleyen bir exec onayıyla eşleşmezse, otomatik olarak plugin onaylarını da kontrol eder.
|
||||
|
||||
### Plugin onayı yönlendirme
|
||||
|
||||
Plugin onayı yönlendirme, exec onaylarıyla aynı teslim işlem hattını kullanır ancak kendi
|
||||
bağımsız yapılandırmasına `approvals.plugin` altında sahiptir. Birini etkinleştirmek veya devre dışı bırakmak diğerini etkilemez.
|
||||
__OC_I18N_900008__
|
||||
Yapılandırma şekli `approvals.exec` ile aynıdır: `enabled`, `mode`, `agentFilter`,
|
||||
`sessionFilter` ve `targets` aynı şekilde çalışır.
|
||||
|
||||
Paylaşılan etkileşimli yanıtları destekleyen kanallar hem exec hem de
|
||||
plugin onayları için aynı onay düğmelerini gösterir. Paylaşılan etkileşimli UI'ı olmayan kanallar,
|
||||
`/approve` yönergeleri içeren düz metne geri döner.
|
||||
Paylaşılan etkileşimli yanıtları destekleyen kanallar, hem exec hem de
|
||||
plugin onayları için aynı onay düğmelerini gösterir. Paylaşılan etkileşimli kullanıcı arayüzü olmayan kanallar
|
||||
düz metne ve `/approve` yönergelerine geri düşer.
|
||||
|
||||
### Herhangi bir kanalda aynı sohbetten onay
|
||||
### Her kanalda aynı sohbetten onaylar
|
||||
|
||||
Bir exec veya plugin onay isteği teslim edilebilir bir sohbet yüzeyinden geliyorsa, artık varsayılan olarak
|
||||
aynı sohbet bunu `/approve` ile onaylayabilir. Bu, mevcut Web UI ve terminal UI akışlarına ek olarak Slack, Matrix ve
|
||||
Microsoft Teams gibi kanallara da uygulanır.
|
||||
Bir exec veya plugin onay isteği teslim edilebilir bir sohbet yüzeyinden geldiğinde, artık aynı sohbet
|
||||
bunu varsayılan olarak `/approve` ile onaylayabilir. Bu, mevcut Web UI ve terminal UI akışlarına ek olarak
|
||||
Slack, Matrix ve Microsoft Teams gibi kanallar için de geçerlidir.
|
||||
|
||||
Bu paylaşılan metin komutu yolu, o konuşma için normal kanal auth modelini kullanır. Kaynak sohbet
|
||||
zaten komut gönderebiliyor ve yanıt alabiliyorsa, onay isteklerinin beklemede kalması için artık ayrı bir yerel teslim bağdaştırıcısına gerek yoktur.
|
||||
Bu paylaşılan metin komutu yolu, o konuşma için normal kanal kimlik doğrulama modelini kullanır. Kaynak sohbet zaten komut gönderebiliyor ve yanıt alabiliyorsa, onay isteklerinin beklemede kalması için artık
|
||||
ayrı bir yerel teslim bağdaştırıcısına gerek yoktur.
|
||||
|
||||
Discord ve Telegram da aynı sohbetten `/approve` desteğine sahiptir, ancak bu kanallar
|
||||
yerel onay teslimi devre dışı olsa bile yetkilendirme için yine çözümlenmiş onaylayıcı listelerini kullanır.
|
||||
Discord ve Telegram da aynı sohbetten `/approve` desteği sunar, ancak yerel onay teslimi devre dışı olsa bile
|
||||
bu kanallar yetkilendirme için yine de çözümlenmiş approver listelerini kullanır.
|
||||
|
||||
Gateway'i doğrudan çağıran Telegram ve diğer yerel onay istemcileri için,
|
||||
bu fallback bilinçli olarak "onay bulunamadı" hatalarıyla sınırlıdır. Gerçek bir
|
||||
Gateway’i doğrudan çağıran Telegram ve diğer yerel onay istemcileri için,
|
||||
bu fallback kasıtlı olarak "approval not found" hatalarıyla sınırlıdır. Gerçek bir
|
||||
exec onayı reddi/hatası sessizce plugin onayı olarak yeniden denenmez.
|
||||
|
||||
### Yerel onay teslimi
|
||||
|
||||
Bazı kanallar ayrıca yerel onay istemcisi olarak da davranabilir. Yerel istemciler, paylaşılan aynı sohbetten `/approve`
|
||||
akışının üzerine onaylayıcı DM'leri, kaynak sohbet fanout'u ve kanala özgü etkileşimli onay UX'i ekler.
|
||||
Bazı kanallar ayrıca yerel onay istemcileri olarak da davranabilir. Yerel istemciler, paylaşılan aynı sohbetten `/approve`
|
||||
akışına ek olarak approver DM’leri, kaynak sohbet fanout’unu ve kanala özgü etkileşimli onay kullanıcı deneyimini ekler.
|
||||
|
||||
Yerel onay kartları/düğmeleri mevcut olduğunda, bu yerel UI aracıya dönük birincil
|
||||
yoldur. Araç sonucu sohbet onaylarının kullanılamadığını veya
|
||||
tek kalan yolun el ile onay olduğunu söylemiyorsa, aracı ayrıca
|
||||
yinelenen düz bir sohbet `/approve` komutu da yinelememelidir.
|
||||
Yerel onay kartları/düğmeleri kullanılabildiğinde, bu yerel kullanıcı arayüzü ajana yönelik
|
||||
birincil yoldur. Araç sonucu sohbet onaylarının kullanılamadığını veya
|
||||
yalnızca manuel onayın kaldığını söylemedikçe ajan ayrıca yinelenen düz bir sohbet
|
||||
`/approve` komutunu da yansıtmamalıdır.
|
||||
|
||||
Genel model:
|
||||
|
||||
- ana makine exec ilkesi, exec onayının gerekip gerekmediğine yine karar verir
|
||||
- `approvals.exec`, onay istemlerinin diğer sohbet hedeflerine iletilmesini denetler
|
||||
- `channels.<channel>.execApprovals`, o kanalın yerel onay istemcisi olarak davranıp davranmadığını denetler
|
||||
- exec onayının gerekip gerekmediğine ana makine exec ilkesi yine karar verir
|
||||
- `approvals.exec`, onay istemlerinin diğer sohbet hedeflerine yönlendirilmesini kontrol eder
|
||||
- `channels.<channel>.execApprovals`, o kanalın yerel onay istemcisi olarak davranıp davranmayacağını kontrol eder
|
||||
|
||||
Yerel onay istemcileri, şu koşulların tümü doğruysa DM-first teslimi otomatik etkinleştirir:
|
||||
Yerel onay istemcileri, aşağıdakilerin tümü doğru olduğunda DM-first teslimini otomatik olarak etkinleştirir:
|
||||
|
||||
- kanal yerel onay teslimini destekliyordur
|
||||
- onaylayıcılar açık `execApprovals.approvers` veya o
|
||||
kanalın belgelenmiş fallback kaynaklarından çözümlenebiliyordur
|
||||
- `channels.<channel>.execApprovals.enabled` ayarsızdır veya `"auto"` değerindedir
|
||||
- kanal yerel onay teslimini destekliyorsa
|
||||
- approver’lar açık `execApprovals.approvers` veya o
|
||||
kanalın belgelenmiş fallback kaynaklarından çözümlenebiliyorsa
|
||||
- `channels.<channel>.execApprovals.enabled` ayarlanmamışsa veya `"auto"` ise
|
||||
|
||||
Bir yerel onay istemcisini açıkça devre dışı bırakmak için `enabled: false` ayarlayın. Onaylayıcılar çözümlendiğinde zorla
|
||||
etkinleştirmek için `enabled: true` ayarlayın. Genel kaynak-sohbet teslimi ise
|
||||
Yerel onay istemcisini açıkça devre dışı bırakmak için `enabled: false` ayarlayın. Approver’lar çözümlendiğinde
|
||||
zorla açmak için `enabled: true` ayarlayın. Genel kaynak sohbet teslimi,
|
||||
`channels.<channel>.execApprovals.target` üzerinden açık kalır.
|
||||
|
||||
SSS: [Sohbet onayları için neden iki exec onay yapılandırması var?](/help/faq#why-are-there-two-exec-approval-configs-for-chat-approvals)
|
||||
SSS: [Sohbet onayları için neden iki exec onayı yapılandırması var?](/help/faq#why-are-there-two-exec-approval-configs-for-chat-approvals)
|
||||
|
||||
- Discord: `channels.discord.execApprovals.*`
|
||||
- Slack: `channels.slack.execApprovals.*`
|
||||
- Telegram: `channels.telegram.execApprovals.*`
|
||||
|
||||
Bu yerel onay istemcileri, paylaşılan aynı sohbetten `/approve` akışı ve paylaşılan onay düğmelerinin üzerine
|
||||
DM yönlendirmesi ve isteğe bağlı kanal fanout'u ekler.
|
||||
Bu yerel onay istemcileri, paylaşılan
|
||||
aynı sohbet `/approve` akışı ve paylaşılan onay düğmelerinin üzerine DM yönlendirmesi ve isteğe bağlı kanal fanout ekler.
|
||||
|
||||
Paylaşılan davranış:
|
||||
|
||||
- Slack, Matrix, Microsoft Teams ve benzeri teslim edilebilir sohbetler
|
||||
aynı sohbetten `/approve` için normal kanal auth modelini kullanır
|
||||
- yerel bir onay istemcisi otomatik etkinleştiğinde, varsayılan yerel teslim hedefi onaylayıcı DM'leridir
|
||||
- Discord ve Telegram için yalnızca çözümlenmiş onaylayıcılar onaylayabilir veya reddedebilir
|
||||
- Discord onaylayıcıları açık olabilir (`execApprovals.approvers`) veya `commands.ownerAllowFrom` değerinden çıkarılabilir
|
||||
- Telegram onaylayıcıları açık olabilir (`execApprovals.approvers`) veya mevcut owner yapılandırmasından çıkarılabilir (`allowFrom`, ayrıca desteklendiğinde doğrudan mesaj `defaultTo`)
|
||||
- Slack onaylayıcıları açık olabilir (`execApprovals.approvers`) veya `commands.ownerAllowFrom` değerinden çıkarılabilir
|
||||
- Slack yerel düğmeleri onay kimliği türünü korur; böylece `plugin:` kimlikleri ikinci bir Slack-yerel fallback katmanı olmadan
|
||||
- Slack, Matrix, Microsoft Teams ve benzeri teslim edilebilir sohbetler, aynı sohbetten `/approve` için
|
||||
normal kanal kimlik doğrulama modelini kullanır
|
||||
- bir yerel onay istemcisi otomatik olarak etkinleştiğinde, varsayılan yerel teslim hedefi approver DM’leridir
|
||||
- Discord ve Telegram için yalnızca çözümlenmiş approver’lar onaylayabilir veya reddedebilir
|
||||
- Discord approver’ları açık olabilir (`execApprovals.approvers`) veya `commands.ownerAllowFrom` üzerinden çıkarılabilir
|
||||
- Telegram approver’ları açık olabilir (`execApprovals.approvers`) veya mevcut owner yapılandırmasından çıkarılabilir (`allowFrom`, ayrıca desteklenen yerlerde doğrudan mesaj `defaultTo`)
|
||||
- Slack approver’ları açık olabilir (`execApprovals.approvers`) veya `commands.ownerAllowFrom` üzerinden çıkarılabilir
|
||||
- Slack yerel düğmeleri, onay kimliği türünü korur; böylece `plugin:` kimlikleri ikinci bir Slack’e özgü fallback katmanı olmadan
|
||||
plugin onaylarını çözebilir
|
||||
- Matrix yerel DM/kanal yönlendirmesi ve tepki kısayolları hem exec hem de plugin onaylarını işler;
|
||||
plugin yetkilendirmesi yine `channels.matrix.dm.allowFrom` değerinden gelir
|
||||
- isteği yapanın onaylayıcı olması gerekmez
|
||||
- kaynak sohbet zaten komutları ve yanıtları destekliyorsa kaynak sohbet doğrudan `/approve` ile onaylayabilir
|
||||
- yerel Discord onay düğmeleri onay kimliği türüne göre yönlendirir: `plugin:` kimlikleri
|
||||
plugin yetkilendirmesi yine `channels.matrix.dm.allowFrom` üzerinden gelir
|
||||
- istekte bulunan kişinin approver olması gerekmez
|
||||
- kaynak sohbet, zaten komutları ve yanıtları destekliyorsa `/approve` ile doğrudan onaylayabilir
|
||||
- yerel Discord onay düğmeleri, onay kimliği türüne göre yönlendirir: `plugin:` kimlikleri
|
||||
doğrudan plugin onaylarına gider, diğer her şey exec onaylarına gider
|
||||
- yerel Telegram onay düğmeleri `/approve` ile aynı sınırlı exec'den plugin'e fallback davranışını izler
|
||||
- yerel `target`, kaynak-sohbet teslimini etkinleştirdiğinde onay istemleri komut metnini içerir
|
||||
- bekleyen exec onayları varsayılan olarak 30 dakika sonra sona erer
|
||||
- hiçbir operatör UI'ı veya yapılandırılmış onay istemcisi isteği kabul edemiyorsa istem `askFallback` değerine geri döner
|
||||
- yerel Telegram onay düğmeleri, `/approve` ile aynı sınırlı exec-to-plugin fallback davranışını izler
|
||||
- yerel `target`, kaynak sohbet teslimini etkinleştirdiğinde onay istemleri komut metnini içerir
|
||||
- bekleyen exec onaylarının varsayılan süresi 30 dakika sonra dolar
|
||||
- hiçbir operatör kullanıcı arayüzü veya yapılandırılmış onay istemcisi isteği kabul edemiyorsa, istem `askFallback` davranışına geri düşer
|
||||
|
||||
Telegram varsayılan olarak onaylayıcı DM'lerini kullanır (`target: "dm"`). Onay istemlerinin kaynak Telegram sohbetinde/konusunda da görünmesini istediğinizde bunu
|
||||
`channel` veya `both` olarak değiştirebilirsiniz. Telegram forum konularında OpenClaw,
|
||||
onay istemi ve onay sonrası devam için konuyu korur.
|
||||
Telegram varsayılan olarak approver DM’lerini kullanır (`target: "dm"`). Onay istemlerinin
|
||||
kaynak Telegram sohbetinde/konusunda da görünmesini istiyorsanız bunu `channel` veya `both` olarak değiştirebilirsiniz. Telegram forum
|
||||
konuları için OpenClaw, onay istemi ve onay sonrası takip için konuyu korur.
|
||||
|
||||
Bkz.:
|
||||
|
||||
@ -526,12 +556,12 @@ Bkz.:
|
||||
- [Telegram](/channels/telegram)
|
||||
|
||||
### macOS IPC akışı
|
||||
__OC_I18N_900008__
|
||||
__OC_I18N_900009__
|
||||
Güvenlik notları:
|
||||
|
||||
- Unix socket modu `0600`, token `exec-approvals.json` içinde saklanır.
|
||||
- Aynı UID eş kontrolü.
|
||||
- Challenge/response (nonce + HMAC token + istek hash'i) + kısa TTL.
|
||||
- Unix socket modu `0600`, token `exec-approvals.json` içinde depolanır.
|
||||
- Aynı UID eş denetimi.
|
||||
- Sınama/yanıt (nonce + HMAC token + istek hash’i) + kısa TTL.
|
||||
|
||||
## Sistem olayları
|
||||
|
||||
@ -541,36 +571,37 @@ Exec yaşam döngüsü sistem mesajları olarak yüzeye çıkarılır:
|
||||
- `Exec finished`
|
||||
- `Exec denied`
|
||||
|
||||
Bunlar, node olayı bildirdikten sonra aracının oturumuna gönderilir.
|
||||
Gateway-ana-makine exec onayları da komut bittiğinde (ve isteğe bağlı olarak çalışma eşiğinden daha uzun sürdüğünde) aynı yaşam döngüsü olaylarını yayar.
|
||||
Onay geçitli exec'ler, kolay ilişkilendirme için bu mesajlarda `runId` olarak onay kimliğini yeniden kullanır.
|
||||
Bunlar, node olayı bildirdikten sonra ajanın oturumuna gönderilir.
|
||||
Gateway ana makinesi exec onayları, komut tamamlandığında (ve isteğe bağlı olarak eşikten daha uzun çalıştığında)
|
||||
aynı yaşam döngüsü olaylarını yayar.
|
||||
Onay kapılı exec’ler, kolay ilişkilendirme için bu mesajlarda `runId` olarak onay kimliğini yeniden kullanır.
|
||||
|
||||
## Reddedilen onay davranışı
|
||||
|
||||
Eşzamansız bir exec onayı reddedildiğinde OpenClaw, aracının
|
||||
oturumda aynı komutun daha önceki bir çalıştırmasından gelen çıktıyı yeniden kullanmasını önler. Red nedeni,
|
||||
komut çıktısının mevcut olmadığına dair açık rehberlikle iletilir; bu da
|
||||
aracının yeni çıktı varmış gibi davranmasını veya daha önceki başarılı bir çalıştırmadan kalan sonuçlarla
|
||||
reddedilmiş komutu yinelemesini durdurur.
|
||||
Eşzamansız bir exec onayı reddedildiğinde OpenClaw, ajanın
|
||||
oturumda aynı komutun daha önceki herhangi bir çalıştırmasından çıktı yeniden kullanmasını engeller. Ret nedeni,
|
||||
komut çıktısının mevcut olmadığına dair açık yönlendirmeyle birlikte iletilir; bu da
|
||||
ajanın yeni çıktı varmış gibi davranmasını veya daha önce başarılı olmuş bir çalıştırmadan kalan sonuçlarla
|
||||
reddedilen komutu yinelemesini durdurur.
|
||||
|
||||
## Etkiler
|
||||
|
||||
- **full** güçlüdür; mümkün olduğunda allowlist tercih edin.
|
||||
- **ask**, hızlı onaylara izin verirken sizi döngünün içinde tutar.
|
||||
- Aracı başına allowlist'ler, bir aracının onaylarının diğerlerine sızmasını önler.
|
||||
- Onaylar yalnızca **yetkili göndericilerden** gelen ana makine exec isteklerine uygulanır. Yetkisiz göndericiler `/exec` veremez.
|
||||
- **full** güçlüdür; mümkün olduğunda allowlist’leri tercih edin.
|
||||
- **ask**, hızlı onaylara izin verirken sizi de sürecin içinde tutar.
|
||||
- Ajan başına allowlist’ler, bir ajanın onaylarının diğerlerine sızmasını önler.
|
||||
- Onaylar yalnızca **yetkili göndericilerden** gelen ana makine exec istekleri için uygulanır. Yetkisiz göndericiler `/exec` veremez.
|
||||
- `/exec security=full`, yetkili operatörler için oturum düzeyinde bir kolaylıktır ve tasarım gereği onayları atlar.
|
||||
Ana makinede exec'i kesin olarak engellemek için onay güvenliğini `deny` olarak ayarlayın veya araç ilkesi üzerinden `exec` aracını reddedin.
|
||||
Ana makine exec işlemini kesin olarak engellemek için onay güvenliğini `deny` olarak ayarlayın veya araç ilkesi üzerinden `exec` aracını reddedin.
|
||||
|
||||
İlgili:
|
||||
|
||||
- [Exec aracı](/tr/tools/exec)
|
||||
- [Elevated mode](/tr/tools/elevated)
|
||||
- [Elevated modu](/tr/tools/elevated)
|
||||
- [Skills](/tr/tools/skills)
|
||||
|
||||
## İlgili
|
||||
|
||||
- [Exec](/tr/tools/exec) — shell komutu yürütme aracı
|
||||
- [Exec](/tr/tools/exec) — kabuk komutu yürütme aracı
|
||||
- [Sandboxing](/tr/gateway/sandboxing) — sandbox modları ve çalışma alanı erişimi
|
||||
- [Security](/tr/gateway/security) — güvenlik modeli ve sertleştirme
|
||||
- [Security](/tr/gateway/security) — güvenlik modeli ve güçlendirme
|
||||
- [Sandbox vs Tool Policy vs Elevated](/tr/gateway/sandbox-vs-tool-policy-vs-elevated) — her biri ne zaman kullanılmalı
|
||||
|
||||
Loading…
Reference in New Issue
Block a user