chore(i18n): refresh tr translations
This commit is contained in:
parent
1cf6292f1c
commit
881534cc12
@ -1,26 +1,26 @@
|
||||
---
|
||||
read_when:
|
||||
- /new, /reset, /stop ve ajan yaşam döngüsü olayları için olay odaklı otomasyon istiyorsunuz
|
||||
- Hook'ları derlemek, yüklemek veya hata ayıklamak istiyorsunuz
|
||||
- /new, /reset, /stop ve ajan yaşam döngüsü olayları için olay güdümlü otomasyon istiyorsunuz
|
||||
- Kancalar oluşturmak, yüklemek veya kancalarda hata ayıklamak istiyorsunuz
|
||||
summary: 'Kancalar: komutlar ve yaşam döngüsü olayları için olay odaklı otomasyon'
|
||||
title: Kancalar
|
||||
x-i18n:
|
||||
generated_at: "2026-05-03T21:27:38Z"
|
||||
generated_at: "2026-05-05T08:25:32Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 15f0d120ccf7314a991da5d66e65e5c78375222a846ba01d7a04ddfe1f02cb32
|
||||
source_hash: 321eb7a583d5e8c90d2c2026f6e1cf46cd207bef52213774b469a8d46b993967
|
||||
source_path: automation/hooks.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
Kancalar, Gateway içinde bir şey gerçekleştiğinde çalışan küçük betiklerdir. Dizinlerden keşfedilebilir ve `openclaw hooks` ile incelenebilirler. Gateway, dahili kancaları yalnızca kancaları etkinleştirdikten veya en az bir kanca girişi, kanca paketi, eski işleyici ya da ek kanca dizini yapılandırdıktan sonra yükler.
|
||||
Hooks, Gateway içinde bir şey olduğunda çalışan küçük betiklerdir. Dizinlerden keşfedilebilir ve `openclaw hooks` ile incelenebilirler. Gateway, dahili hook'ları yalnızca hook'ları etkinleştirdikten veya en az bir hook girdisi, hook paketi, eski işleyici ya da ek hook dizini yapılandırdıktan sonra yükler.
|
||||
|
||||
OpenClaw'da iki tür kanca vardır:
|
||||
OpenClaw'da iki tür hook vardır:
|
||||
|
||||
- **Dahili kancalar** (bu sayfa): `/new`, `/reset`, `/stop` gibi ajan olayları veya yaşam döngüsü olayları tetiklendiğinde Gateway içinde çalışır.
|
||||
- **Dahili hook'lar** (bu sayfa): `/new`, `/reset`, `/stop` veya yaşam döngüsü olayları gibi ajan olayları tetiklendiğinde Gateway içinde çalışır.
|
||||
- **Webhook'lar**: diğer sistemlerin OpenClaw'da iş tetiklemesini sağlayan harici HTTP uç noktalarıdır. Bkz. [Webhook'lar](/tr/automation/cron-jobs#webhooks).
|
||||
|
||||
Kancalar Plugin'lerin içinde de paketlenebilir. `openclaw hooks list`, hem bağımsız kancaları hem de Plugin tarafından yönetilen kancaları gösterir.
|
||||
Hook'lar ayrıca plugin'lerin içinde paketlenebilir. `openclaw hooks list`, hem bağımsız hook'ları hem de plugin tarafından yönetilen hook'ları gösterir.
|
||||
|
||||
## Hızlı başlangıç
|
||||
|
||||
@ -40,29 +40,29 @@ openclaw hooks info session-memory
|
||||
|
||||
## Olay türleri
|
||||
|
||||
| Olay | Ne zaman tetiklenir |
|
||||
| ------------------------ | --------------------------------------------------------------- |
|
||||
| `command:new` | `/new` komutu verildiğinde |
|
||||
| `command:reset` | `/reset` komutu verildiğinde |
|
||||
| `command:stop` | `/stop` komutu verildiğinde |
|
||||
| `command` | Herhangi bir komut olayı (genel dinleyici) |
|
||||
| `session:compact:before` | Compaction geçmişi özetlemeden önce |
|
||||
| `session:compact:after` | Compaction tamamlandıktan sonra |
|
||||
| `session:patch` | Oturum özellikleri değiştirildiğinde |
|
||||
| `agent:bootstrap` | Çalışma alanı başlangıç dosyaları enjekte edilmeden önce |
|
||||
| `gateway:startup` | Kanallar başlatıldıktan ve kancalar yüklendikten sonra |
|
||||
| `gateway:shutdown` | Gateway kapatma işlemi başladığında |
|
||||
| `gateway:pre-restart` | Beklenen bir Gateway yeniden başlatmasından önce |
|
||||
| `message:received` | Herhangi bir kanaldan gelen ileti |
|
||||
| `message:transcribed` | Ses transkripsiyonu tamamlandıktan sonra |
|
||||
| `message:preprocessed` | Medya ve bağlantı ön işlemesi tamamlandıktan veya atlandıktan sonra |
|
||||
| `message:sent` | Giden ileti teslim edildiğinde |
|
||||
| Olay | Ne zaman tetiklenir |
|
||||
| ------------------------ | ----------------------------------------------------------- |
|
||||
| `command:new` | `/new` komutu verildiğinde |
|
||||
| `command:reset` | `/reset` komutu verildiğinde |
|
||||
| `command:stop` | `/stop` komutu verildiğinde |
|
||||
| `command` | Herhangi bir komut olayı (genel dinleyici) |
|
||||
| `session:compact:before` | Compaction geçmişi özetlemeden önce |
|
||||
| `session:compact:after` | Compaction tamamlandıktan sonra |
|
||||
| `session:patch` | Oturum özellikleri değiştirildiğinde |
|
||||
| `agent:bootstrap` | Çalışma alanı bootstrap dosyaları enjekte edilmeden önce |
|
||||
| `gateway:startup` | Kanallar başladıktan ve hook'lar yüklendikten sonra |
|
||||
| `gateway:shutdown` | Gateway kapatma işlemi başladığında |
|
||||
| `gateway:pre-restart` | Beklenen bir Gateway yeniden başlatmasından önce |
|
||||
| `message:received` | Herhangi bir kanaldan gelen mesaj |
|
||||
| `message:transcribed` | Ses transkripsiyonu tamamlandıktan sonra |
|
||||
| `message:preprocessed` | Medya ve bağlantı ön işleme tamamlandıktan veya atlandıktan sonra |
|
||||
| `message:sent` | Giden mesaj teslim edildiğinde |
|
||||
|
||||
## Kanca yazma
|
||||
## Hook yazma
|
||||
|
||||
### Kanca yapısı
|
||||
### Hook yapısı
|
||||
|
||||
Her kanca iki dosya içeren bir dizindir:
|
||||
Her hook, iki dosya içeren bir dizindir:
|
||||
|
||||
```
|
||||
my-hook/
|
||||
@ -85,16 +85,16 @@ metadata:
|
||||
Detailed documentation goes here.
|
||||
```
|
||||
|
||||
**Meta veri alanları** (`metadata.openclaw`):
|
||||
**Metadata alanları** (`metadata.openclaw`):
|
||||
|
||||
| Alan | Açıklama |
|
||||
| ---------- | ---------------------------------------------------- |
|
||||
| `emoji` | CLI için görüntülenecek emoji |
|
||||
| `events` | Dinlenecek olayların dizisi |
|
||||
| `events` | Dinlenecek olaylar dizisi |
|
||||
| `export` | Kullanılacak adlandırılmış dışa aktarım (varsayılan `"default"`) |
|
||||
| `os` | Gerekli platformlar (örn. `["darwin", "linux"]`) |
|
||||
| `requires` | Gerekli `bins`, `anyBins`, `env` veya `config` yolları |
|
||||
| `always` | Uygunluk kontrollerini atla (boole) |
|
||||
| `always` | Uygunluk kontrollerini atla (boolean) |
|
||||
| `install` | Kurulum yöntemleri |
|
||||
|
||||
### İşleyici uygulaması
|
||||
@ -115,67 +115,67 @@ const handler = async (event) => {
|
||||
export default handler;
|
||||
```
|
||||
|
||||
Her olay şunları içerir: `type`, `action`, `sessionKey`, `timestamp`, `messages` (kullanıcıya göndermek için içine ekleyin) ve `context` (olaya özgü veri). Ajan ve araç Plugin kancası bağlamları ayrıca `trace` içerebilir; bu, Plugin'lerin OTEL korelasyonu için yapılandırılmış günlüklere aktarabileceği salt okunur, W3C uyumlu bir tanılama izleme bağlamıdır.
|
||||
Her olay şunları içerir: `type`, `action`, `sessionKey`, `timestamp`, `messages` (kullanıcıya göndermek için push yapın) ve `context` (olaya özgü veri). Ajan ve araç plugin hook bağlamları ayrıca, plugin'lerin OTEL korelasyonu için yapılandırılmış günlüklere aktarabileceği salt okunur W3C uyumlu tanılama izleme bağlamı olan `trace` içerebilir.
|
||||
|
||||
### Olay bağlamı öne çıkanları
|
||||
|
||||
**Komut olayları** (`command:new`, `command:reset`): `context.sessionEntry`, `context.previousSessionEntry`, `context.commandSource`, `context.workspaceDir`, `context.cfg`.
|
||||
|
||||
**İleti olayları** (`message:received`): `context.from`, `context.content`, `context.channelId`, `context.metadata` (`senderId`, `senderName`, `guildId` dahil sağlayıcıya özgü veri). `context.content`, komut benzeri iletiler için boş olmayan bir komut gövdesini tercih eder, ardından ham gelen gövdeye ve genel gövdeye geri döner; iş parçacığı geçmişi veya bağlantı özetleri gibi yalnızca ajana yönelik zenginleştirmeleri içermez.
|
||||
**Mesaj olayları** (`message:received`): `context.from`, `context.content`, `context.channelId`, `context.metadata` (`senderId`, `senderName`, `guildId` dahil sağlayıcıya özgü veriler). `context.content`, komut benzeri mesajlar için boş olmayan bir komut gövdesini tercih eder, ardından ham gelen gövdeye ve genel gövdeye geri döner; iş parçacığı geçmişi veya bağlantı özetleri gibi yalnızca ajana özgü zenginleştirmeleri içermez.
|
||||
|
||||
**İleti olayları** (`message:sent`): `context.to`, `context.content`, `context.success`, `context.channelId`.
|
||||
**Mesaj olayları** (`message:sent`): `context.to`, `context.content`, `context.success`, `context.channelId`.
|
||||
|
||||
**İleti olayları** (`message:transcribed`): `context.transcript`, `context.from`, `context.channelId`, `context.mediaPath`.
|
||||
**Mesaj olayları** (`message:transcribed`): `context.transcript`, `context.from`, `context.channelId`, `context.mediaPath`.
|
||||
|
||||
**İleti olayları** (`message:preprocessed`): `context.bodyForAgent` (son zenginleştirilmiş gövde), `context.from`, `context.channelId`.
|
||||
**Mesaj olayları** (`message:preprocessed`): `context.bodyForAgent` (son zenginleştirilmiş gövde), `context.from`, `context.channelId`.
|
||||
|
||||
**Başlangıç olayları** (`agent:bootstrap`): `context.bootstrapFiles` (değiştirilebilir dizi), `context.agentId`.
|
||||
**Bootstrap olayları** (`agent:bootstrap`): `context.bootstrapFiles` (değiştirilebilir dizi), `context.agentId`.
|
||||
|
||||
**Oturum yama olayları** (`session:patch`): `context.sessionEntry`, `context.patch` (yalnızca değişen alanlar), `context.cfg`. Yama olaylarını yalnızca ayrıcalıklı istemciler tetikleyebilir.
|
||||
**Oturum patch olayları** (`session:patch`): `context.sessionEntry`, `context.patch` (yalnızca değişen alanlar), `context.cfg`. Patch olaylarını yalnızca ayrıcalıklı istemciler tetikleyebilir.
|
||||
|
||||
**Compaction olayları**: `session:compact:before`, `messageCount` ve `tokenCount` içerir. `session:compact:after`, `compactedCount`, `summaryLength`, `tokensBefore`, `tokensAfter` ekler.
|
||||
**Compaction olayları**: `session:compact:before`, `messageCount`, `tokenCount` içerir. `session:compact:after`; `compactedCount`, `summaryLength`, `tokensBefore`, `tokensAfter` ekler.
|
||||
|
||||
`command:stop`, kullanıcının `/stop` vermesini gözlemler; bu bir iptal/komut
|
||||
yaşam döngüsüdür, ajan sonlandırma kapısı değildir. Doğal bir son yanıtı
|
||||
incelemesi ve ajandan bir geçiş daha istemesi gereken Plugin'ler bunun yerine
|
||||
türlü Plugin kancası `before_agent_finalize` kullanmalıdır. Bkz. [Plugin kancaları](/tr/plugins/hooks).
|
||||
`command:stop`, kullanıcının `/stop` vermesini gözlemler; bu, iptal/komut
|
||||
yaşam döngüsüdür, ajan sonlandırma kapısı değildir. Doğal bir son yanıtı incelemesi
|
||||
ve ajandan bir geçiş daha istemesi gereken plugin'ler bunun yerine tipli
|
||||
plugin hook'u `before_agent_finalize` kullanmalıdır. Bkz. [Plugin hook'ları](/tr/plugins/hooks).
|
||||
|
||||
**Gateway yaşam döngüsü olayları**: `gateway:shutdown`, `reason` ve `restartExpectedMs` içerir ve Gateway kapatma işlemi başladığında tetiklenir. `gateway:pre-restart` aynı bağlamı içerir ancak yalnızca kapatma işlemi beklenen bir yeniden başlatmanın parçası olduğunda ve sonlu bir `restartExpectedMs` değeri sağlandığında tetiklenir. Kapatma sırasında, her yaşam döngüsü kancası beklemesi en iyi çaba düzeyindedir ve bir işleyici takılırsa kapatma işleminin devam etmesi için sınırlıdır.
|
||||
**Gateway yaşam döngüsü olayları**: `gateway:shutdown`, `reason` ve `restartExpectedMs` içerir ve Gateway kapatma işlemi başladığında tetiklenir. `gateway:pre-restart` aynı bağlamı içerir ancak yalnızca kapatma beklenen bir yeniden başlatmanın parçası olduğunda ve sonlu bir `restartExpectedMs` değeri sağlandığında tetiklenir. Kapatma sırasında, her yaşam döngüsü hook beklemesi en iyi çaba esaslıdır ve sınırlıdır; böylece bir işleyici takılırsa kapatma devam eder.
|
||||
|
||||
## Kanca keşfi
|
||||
## Hook keşfi
|
||||
|
||||
Kancalar, geçersiz kılma önceliği artacak sırayla şu dizinlerden keşfedilir:
|
||||
Hook'lar, artan geçersiz kılma önceliği sırasına göre şu dizinlerden keşfedilir:
|
||||
|
||||
1. **Paketlenmiş kancalar**: OpenClaw ile gönderilir
|
||||
2. **Plugin kancaları**: kurulu Plugin'lerin içinde paketlenmiş kancalar
|
||||
3. **Yönetilen kancalar**: `~/.openclaw/hooks/` (kullanıcı tarafından kurulan, çalışma alanları arasında paylaşılan). `hooks.internal.load.extraDirs` içindeki ek dizinler bu önceliği paylaşır.
|
||||
4. **Çalışma alanı kancaları**: `<workspace>/hooks/` (ajan başına, açıkça etkinleştirilene kadar varsayılan olarak devre dışı)
|
||||
1. **Paketlenmiş hook'lar**: OpenClaw ile gönderilir
|
||||
2. **Plugin hook'ları**: yüklü plugin'lerin içinde paketlenmiş hook'lar
|
||||
3. **Yönetilen hook'lar**: `~/.openclaw/hooks/` (kullanıcı tarafından yüklenmiş, çalışma alanları arasında paylaşılan). `hooks.internal.load.extraDirs` içindeki ek dizinler bu önceliği paylaşır.
|
||||
4. **Çalışma alanı hook'ları**: `<workspace>/hooks/` (ajan başına, açıkça etkinleştirilene kadar varsayılan olarak devre dışı)
|
||||
|
||||
Çalışma alanı kancaları yeni kanca adları ekleyebilir ancak aynı ada sahip paketlenmiş, yönetilen veya Plugin tarafından sağlanan kancaları geçersiz kılamaz.
|
||||
Çalışma alanı hook'ları yeni hook adları ekleyebilir ancak aynı ada sahip paketlenmiş, yönetilen veya plugin tarafından sağlanan hook'ları geçersiz kılamaz.
|
||||
|
||||
Gateway, dahili kancalar yapılandırılana kadar başlangıçta dahili kanca keşfini atlar. Bir paketlenmiş veya yönetilen kancayı `openclaw hooks enable <name>` ile etkinleştirin, bir kanca paketi kurun ya da dahil olmak için `hooks.internal.enabled=true` ayarlayın. Adlandırılmış bir kancayı etkinleştirdiğinizde Gateway yalnızca o kancanın işleyicisini yükler; `hooks.internal.enabled=true`, ek kanca dizinleri ve eski işleyiciler geniş keşfe dahil olur.
|
||||
Gateway, dahili hook'lar yapılandırılana kadar başlangıçta dahili hook keşfini atlar. Paketlenmiş veya yönetilen bir hook'u `openclaw hooks enable <name>` ile etkinleştirin, bir hook paketi yükleyin ya da katılmak için `hooks.internal.enabled=true` ayarlayın. Bir adlandırılmış hook'u etkinleştirdiğinizde Gateway yalnızca o hook'un işleyicisini yükler; `hooks.internal.enabled=true`, ek hook dizinleri ve eski işleyiciler geniş keşfe katılır.
|
||||
|
||||
### Kanca paketleri
|
||||
### Hook paketleri
|
||||
|
||||
Kanca paketleri, kancaları `package.json` içindeki `openclaw.hooks` üzerinden dışa aktaran npm paketleridir. Şununla kurun:
|
||||
Kanca paketleri, `package.json` içindeki `openclaw.hooks` aracılığıyla kancalar dışa aktaran npm paketleridir. Şununla kurun:
|
||||
|
||||
```bash
|
||||
openclaw plugins install <path-or-spec>
|
||||
```
|
||||
|
||||
Npm belirtimleri yalnızca kayıt deposu içindir (paket adı + isteğe bağlı tam sürüm veya dağıtım etiketi). Git/URL/dosya belirtimleri ve semver aralıkları reddedilir.
|
||||
Npm belirtimleri yalnızca kayıt defteri içindir (paket adı + isteğe bağlı tam sürüm veya dist-tag). Git/URL/dosya belirtimleri ve semver aralıkları reddedilir.
|
||||
|
||||
## Paketlenmiş kancalar
|
||||
## Birlikte gelen kancalar
|
||||
|
||||
| Kanca | Olaylar | Ne yapar |
|
||||
| --------------------- | ------------------------------------------------- | -------------------------------------------------------------- |
|
||||
| session-memory | `command:new`, `command:reset` | Oturum bağlamını `<workspace>/memory/` içine kaydeder |
|
||||
| bootstrap-extra-files | `agent:bootstrap` | Glob desenlerinden ek başlangıç dosyaları enjekte eder |
|
||||
| command-logger | `command` | Tüm komutları `~/.openclaw/logs/commands.log` içine günlüğe kaydeder |
|
||||
| compaction-notifier | `session:compact:before`, `session:compact:after` | Oturum Compaction başladığında/bittiğinde görünür sohbet bildirimleri gönderir |
|
||||
| session-memory | `command:new`, `command:reset` | Oturum bağlamını `<workspace>/memory/` konumuna kaydeder |
|
||||
| bootstrap-extra-files | `agent:bootstrap` | Glob desenlerinden ek bootstrap dosyaları enjekte eder |
|
||||
| command-logger | `command` | Tüm komutları `~/.openclaw/logs/commands.log` konumuna kaydeder |
|
||||
| compaction-notifier | `session:compact:before`, `session:compact:after` | Oturum Compaction başlarken/biterken görünür sohbet bildirimleri gönderir |
|
||||
| boot-md | `gateway:startup` | Gateway başladığında `BOOT.md` çalıştırır |
|
||||
|
||||
Herhangi bir paketlenmiş kancayı etkinleştirin:
|
||||
Birlikte gelen herhangi bir kancayı etkinleştirin:
|
||||
|
||||
```bash
|
||||
openclaw hooks enable <hook-name>
|
||||
@ -185,7 +185,7 @@ openclaw hooks enable <hook-name>
|
||||
|
||||
### session-memory ayrıntıları
|
||||
|
||||
Son 15 kullanıcı/asistan iletisini çıkarır, LLM aracılığıyla açıklayıcı bir dosya adı kısaltması oluşturur ve ana makinenin yerel tarihini kullanarak `<workspace>/memory/YYYY-MM-DD-slug.md` içine kaydeder. `workspace.dir` yapılandırılmış olmalıdır.
|
||||
Son 15 kullanıcı/asistan iletisini çıkarır ve ana makinenin yerel tarihini kullanarak `<workspace>/memory/YYYY-MM-DD-HHMM.md` konumuna kaydeder. Bellek yakalama arka planda çalışır; böylece `/new` ve `/reset` onayları transkript okumaları veya isteğe bağlı slug oluşturma nedeniyle gecikmez. Yapılandırılmış modelle açıklayıcı dosya adı slug'ları oluşturmak için `hooks.internal.entries.session-memory.llmSlug: true` ayarlayın. `workspace.dir` yapılandırılmış olmalıdır.
|
||||
|
||||
<a id="bootstrap-extra-files"></a>
|
||||
|
||||
@ -206,19 +206,19 @@ Son 15 kullanıcı/asistan iletisini çıkarır, LLM aracılığıyla açıklay
|
||||
}
|
||||
```
|
||||
|
||||
Yollar çalışma alanına göre çözümlenir. Yalnızca tanınan başlangıç temel adları yüklenir (`AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`, `BOOTSTRAP.md`, `MEMORY.md`).
|
||||
Yollar çalışma alanına göre çözümlenir. Yalnızca tanınan bootstrap temel adları yüklenir (`AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`, `BOOTSTRAP.md`, `MEMORY.md`).
|
||||
|
||||
<a id="command-logger"></a>
|
||||
|
||||
### command-logger ayrıntıları
|
||||
|
||||
Her eğik çizgi komutunu `~/.openclaw/logs/commands.log` içine günlüğe kaydeder.
|
||||
Her slash komutunu `~/.openclaw/logs/commands.log` konumuna kaydeder.
|
||||
|
||||
<a id="compaction-notifier"></a>
|
||||
|
||||
### compaction-notifier ayrıntıları
|
||||
|
||||
OpenClaw oturum transkriptini sıkıştırmaya başladığında ve bitirdiğinde geçerli konuşmaya kısa durum iletileri gönderir. Bu, sohbet yüzeylerinde uzun işlemleri daha az kafa karıştırıcı yapar çünkü kullanıcı asistanın bağlamı özetlediğini ve Compaction sonrasında devam edeceğini görebilir.
|
||||
OpenClaw oturum transkriptini sıkıştırmaya başladığında ve bitirdiğinde geçerli konuşmaya kısa durum iletileri gönderir. Bu, sohbet yüzeylerinde uzun dönüşleri daha az kafa karıştırıcı hale getirir; çünkü kullanıcı asistanın bağlamı özetlediğini ve Compaction sonrasında devam edeceğini görebilir.
|
||||
|
||||
<a id="boot-md"></a>
|
||||
|
||||
@ -228,12 +228,11 @@ Gateway başladığında etkin çalışma alanından `BOOT.md` çalıştırır.
|
||||
|
||||
## Plugin kancaları
|
||||
|
||||
Plugin'ler daha derin entegrasyon için Plugin SDK üzerinden türlü kancalar kaydedebilir:
|
||||
araç çağrılarını araya alma, istemleri değiştirme, ileti akışını denetleme ve daha fazlası.
|
||||
`before_tool_call`, `before_agent_reply`,
|
||||
`before_install` veya diğer süreç içi yaşam döngüsü kancalarına ihtiyaç duyduğunuzda Plugin kancalarını kullanın.
|
||||
Plugin'ler, daha derin tümleştirme için Plugin SDK üzerinden türlendirilmiş kancalar kaydedebilir:
|
||||
araç çağrılarını kesme, istemleri değiştirme, ileti akışını denetleme ve daha fazlası.
|
||||
`before_tool_call`, `before_agent_reply`, `before_install` veya diğer işlem içi yaşam döngüsü kancalarına ihtiyacınız olduğunda Plugin kancalarını kullanın.
|
||||
|
||||
Tam Plugin kancası başvurusu için bkz. [Plugin kancaları](/tr/plugins/hooks).
|
||||
Eksiksiz Plugin kancası başvurusu için bkz. [Plugin kancaları](/tr/plugins/hooks).
|
||||
|
||||
## Yapılandırma
|
||||
|
||||
@ -305,21 +304,21 @@ openclaw hooks disable <hook-name>
|
||||
|
||||
## En iyi uygulamalar
|
||||
|
||||
- **İşleyicileri hızlı tutun.** Hooks, komut işleme sırasında çalışır. Ağır işleri `void processInBackground(event)` ile başlatıp beklemeden devam edin.
|
||||
- **Hataları zarifçe ele alın.** Riskli işlemleri try/catch içine alın; diğer işleyicilerin çalışabilmesi için throw etmeyin.
|
||||
- **İşleyicileri hızlı tutun.** Hook'lar komut işleme sırasında çalışır. Ağır işleri `void processInBackground(event)` ile başlatıp beklemeden bırakın.
|
||||
- **Hataları zarif biçimde ele alın.** Riskli işlemleri try/catch içine alın; diğer işleyicilerin çalışabilmesi için hata fırlatmayın.
|
||||
- **Olayları erken filtreleyin.** Olay türü/eylemi ilgili değilse hemen dönün.
|
||||
- **Belirli olay anahtarları kullanın.** Ek yükü azaltmak için `"events": ["command"]` yerine `"events": ["command:new"]` tercih edin.
|
||||
|
||||
## Sorun Giderme
|
||||
## Sorun giderme
|
||||
|
||||
### Hook bulunmadı
|
||||
### Hook keşfedilmiyor
|
||||
|
||||
```bash
|
||||
# Dizin yapısını doğrulayın
|
||||
# Verify directory structure
|
||||
ls -la ~/.openclaw/hooks/my-hook/
|
||||
# Şunu göstermeli: HOOK.md, handler.ts
|
||||
# Should show: HOOK.md, handler.ts
|
||||
|
||||
# Bulunan tüm hook'ları listeleyin
|
||||
# List all discovered hooks
|
||||
openclaw hooks list
|
||||
```
|
||||
|
||||
@ -329,17 +328,17 @@ openclaw hooks list
|
||||
openclaw hooks info my-hook
|
||||
```
|
||||
|
||||
Eksik ikili dosyalar (PATH), ortam değişkenleri, yapılandırma değerleri veya işletim sistemi uyumluluğunu kontrol edin.
|
||||
Eksik ikili dosyaları (PATH), ortam değişkenlerini, yapılandırma değerlerini veya işletim sistemi uyumluluğunu kontrol edin.
|
||||
|
||||
### Hook yürütülmüyor
|
||||
|
||||
1. Hook'un etkin olduğunu doğrulayın: `openclaw hooks list`
|
||||
2. Hook'ların yeniden yüklenmesi için gateway işleminizi yeniden başlatın.
|
||||
2. Hook'ların yeniden yüklenmesi için gateway sürecinizi yeniden başlatın.
|
||||
3. Gateway günlüklerini kontrol edin: `./scripts/clawlog.sh | grep hook`
|
||||
|
||||
## İlgili
|
||||
|
||||
- [CLI Referansı: hooks](/tr/cli/hooks)
|
||||
- [Webhook](/tr/automation/cron-jobs#webhooks)
|
||||
- [Plugin hook'ları](/tr/plugins/hooks) — işlem içi plugin yaşam döngüsü hook'ları
|
||||
- [CLI Referansı: hook'lar](/tr/cli/hooks)
|
||||
- [Webhook'lar](/tr/automation/cron-jobs#webhooks)
|
||||
- [Plugin hook'ları](/tr/plugins/hooks) — süreç içi Plugin yaşam döngüsü hook'ları
|
||||
- [Yapılandırma](/tr/gateway/configuration-reference#hooks)
|
||||
|
||||
@ -1,19 +1,19 @@
|
||||
---
|
||||
read_when:
|
||||
- Kanal aktarımı bağlı görünüyor ancak yanıtlar başarısız oluyor
|
||||
- Ayrıntılı sağlayıcı belgelerinden önce kanala özgü kontroller gerekir
|
||||
summary: Kanal bazında hata imzaları ve düzeltmeleriyle hızlı kanal düzeyinde sorun giderme
|
||||
title: Kanal sorun giderme
|
||||
- Kanal taşıması bağlı olduğunu bildiriyor ancak yanıtlar başarısız oluyor
|
||||
- Kapsamlı sağlayıcı belgelerinden önce kanala özel kontrollere ihtiyacınız var
|
||||
summary: Kanal başına hata imzaları ve düzeltmelerle hızlı kanal düzeyi sorun giderme
|
||||
title: Kanal sorunlarını giderme
|
||||
x-i18n:
|
||||
generated_at: "2026-05-04T02:22:28Z"
|
||||
generated_at: "2026-05-05T08:25:30Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: a3a0737156ae83897c44d18505e0355a5d8e5700106b984496d94874c270deb2
|
||||
source_hash: 360184c41ce6929c696688af597c5104a8a28b54620c354f7ee400a2e5490519
|
||||
source_path: channels/troubleshooting.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
Bağlanan ancak davranışı yanlış olan kanallar için bu sayfayı kullanın.
|
||||
Bir kanal bağlandığı halde davranış yanlış olduğunda bu sayfayı kullanın.
|
||||
|
||||
## Komut sırası
|
||||
|
||||
@ -32,71 +32,72 @@ Sağlıklı temel durum:
|
||||
- `Runtime: running`
|
||||
- `Connectivity probe: ok`
|
||||
- `Capability: read-only`, `write-capable` veya `admin-capable`
|
||||
- Kanal yoklaması taşımanın bağlı olduğunu ve desteklendiği yerlerde `works` veya `audit ok` gösterir
|
||||
- Kanal yoklaması, aktarımın bağlı olduğunu ve desteklendiği yerlerde `works` veya `audit ok` gösterir
|
||||
|
||||
## WhatsApp
|
||||
|
||||
### WhatsApp hata imzaları
|
||||
### WhatsApp hata belirtileri
|
||||
|
||||
| Belirti | En hızlı kontrol | Düzeltme |
|
||||
| ------------------------------- | ---------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Bağlı ancak DM yanıtı yok | `openclaw pairing list whatsapp` | Göndereni onaylayın veya DM politikasını/izin listesini değiştirin. |
|
||||
| Grup iletileri yok sayılıyor | Yapılandırmada `requireMention` + mention desenlerini kontrol edin | Botu mention yapın veya o grup için mention politikasını gevşetin. |
|
||||
| QR oturum açma 408 ile zaman aşımına uğruyor | Gateway `HTTPS_PROXY` / `HTTP_PROXY` env değerlerini kontrol edin | Erişilebilir bir proxy ayarlayın; `NO_PROXY` değerini yalnızca atlamalar için kullanın. |
|
||||
| Rastgele bağlantı kesilme/yeniden oturum açma döngüleri | `openclaw channels status --probe` + günlükler | Şu anda bağlı olunsa bile yakın tarihli yeniden bağlanmalar işaretlenir; günlükleri izleyin, Gateway'i yeniden başlatın, dalgalanma sürerse yeniden bağlayın. |
|
||||
| Belirti | En hızlı kontrol | Düzeltme |
|
||||
| ----------------------------------- | --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Bağlı ama DM yanıtı yok | `openclaw pairing list whatsapp` | Göndereni onaylayın veya DM ilkesini/izin listesini değiştirin. |
|
||||
| Grup mesajları yok sayılıyor | Yapılandırmada `requireMention` + bahsetme kalıplarını kontrol edin | Bottan bahsedin veya o grup için bahsetme ilkesini gevşetin. |
|
||||
| QR oturumu 408 ile zaman aşımına uğruyor | Gateway `HTTPS_PROXY` / `HTTP_PROXY` ortam değişkenini kontrol edin | Erişilebilir bir proxy ayarlayın; `NO_PROXY` yalnızca atlamalar için kullanın. |
|
||||
| Rastgele bağlantı kopma/yeniden oturum açma döngüleri | `openclaw channels status --probe` + günlükler | Yakın tarihli yeniden bağlanmalar, şu anda bağlı olsa bile işaretlenir; günlükleri izleyin, Gateway'i yeniden başlatın, ardından dalgalanma sürerse yeniden bağlayın. |
|
||||
| Yanıtlar saniyeler/dakikalar geç geliyor | `openclaw doctor --fix` | Doctor, Gateway olay döngüsünü bozdukları doğrulanmış eski yerel TUI istemcilerini durdurur. |
|
||||
|
||||
Tam sorun giderme: [WhatsApp sorun giderme](/tr/channels/whatsapp#troubleshooting)
|
||||
|
||||
## Telegram
|
||||
|
||||
### Telegram hata imzaları
|
||||
### Telegram hata belirtileri
|
||||
|
||||
| Belirti | En hızlı kontrol | Düzeltme |
|
||||
| ------------------------------------ | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `/start` var ancak kullanılabilir yanıt akışı yok | `openclaw pairing list telegram` | Eşleştirmeyi onaylayın veya DM politikasını değiştirin. |
|
||||
| Bot çevrimiçi ancak grup sessiz kalıyor | Mention gereksinimini ve bot gizlilik modunu doğrulayın | Grup görünürlüğü için gizlilik modunu devre dışı bırakın veya botu mention yapın. |
|
||||
| Ağ hatalarıyla gönderme başarısızlıkları | Telegram API çağrısı hataları için günlükleri inceleyin | `api.telegram.org` için DNS/IPv6/proxy yönlendirmesini düzeltin. |
|
||||
| Başlangıç `getMe returned 401` bildiriyor | Yapılandırılmış token kaynağını kontrol edin | BotFather token'ını yeniden kopyalayın veya yeniden oluşturun ve `botToken`, `tokenFile` ya da varsayılan hesap `TELEGRAM_BOT_TOKEN` değerini güncelleyin. |
|
||||
| Polling duruyor veya yavaş yeniden bağlanıyor | Polling tanılamaları için `openclaw logs --follow` | Yükseltin; yeniden başlatmalar yanlış pozitifse `pollingStallThresholdMs` değerini ayarlayın. Kalıcı duraklamalar yine proxy/DNS/IPv6 sorununa işaret eder. |
|
||||
| Başlangıçta `setMyCommands` reddedildi | Günlüklerde `BOT_COMMANDS_TOO_MUCH` arayın | Plugin/skill/özel Telegram komutlarını azaltın veya yerel menüleri devre dışı bırakın. |
|
||||
| Yükseltme sonrası izin listesi sizi engelliyor | `openclaw security audit` ve yapılandırma izin listeleri | `openclaw doctor --fix` çalıştırın veya `@username` yerine sayısal gönderen kimlikleri kullanın. |
|
||||
| Belirti | En hızlı kontrol | Düzeltme |
|
||||
| ------------------------------------ | ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `/start` var ama kullanılabilir yanıt akışı yok | `openclaw pairing list telegram` | Eşleştirmeyi onaylayın veya DM ilkesini değiştirin. |
|
||||
| Bot çevrimiçi ama grup sessiz kalıyor | Bahsetme gerekliliğini ve bot gizlilik modunu doğrulayın | Grup görünürlüğü için gizlilik modunu devre dışı bırakın veya bottan bahsedin. |
|
||||
| Ağ hatalarıyla gönderim başarısızlıkları | Telegram API çağrısı hataları için günlükleri inceleyin | `api.telegram.org` için DNS/IPv6/proxy yönlendirmesini düzeltin. |
|
||||
| Başlangıç `getMe returned 401` bildiriyor | Yapılandırılmış token kaynağını kontrol edin | BotFather token'ını yeniden kopyalayın veya yeniden oluşturun ve `botToken`, `tokenFile` ya da varsayılan hesap `TELEGRAM_BOT_TOKEN` değerini güncelleyin. |
|
||||
| Yoklama duruyor veya yavaş yeniden bağlanıyor | Yoklama tanıları için `openclaw logs --follow` | Yükseltin; yeniden başlatmalar yanlış pozitifse `pollingStallThresholdMs` değerini ayarlayın. Kalıcı durmalar hâlâ proxy/DNS/IPv6 sorununa işaret eder. |
|
||||
| Başlangıçta `setMyCommands` reddediliyor | Günlüklerde `BOT_COMMANDS_TOO_MUCH` arayın | Plugin/skill/özel Telegram komutlarını azaltın veya yerel menüleri devre dışı bırakın. |
|
||||
| Yükselttiniz ve izin listesi sizi engelliyor | `openclaw security audit` ve yapılandırma izin listeleri | `openclaw doctor --fix` çalıştırın veya `@username` değerini sayısal gönderen kimlikleriyle değiştirin. |
|
||||
|
||||
Tam sorun giderme: [Telegram sorun giderme](/tr/channels/telegram#troubleshooting)
|
||||
|
||||
## Discord
|
||||
|
||||
### Discord hata imzaları
|
||||
### Discord hata belirtileri
|
||||
|
||||
| Belirti | En hızlı kontrol | Düzeltme |
|
||||
| ----------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| Bot çevrimiçi ancak guild yanıtı yok | `openclaw channels status --probe` | Guild/kanala izin verin ve ileti içeriği intent ayarını doğrulayın. |
|
||||
| Grup iletileri yok sayılıyor | Mention geçidi düşürmeleri için günlükleri kontrol edin | Botu mention yapın veya guild/kanal `requireMention: false` ayarlayın. |
|
||||
| Yazıyor/token kullanımı var ancak Discord iletisi yok | Oturum günlüğü asistan metnini `didSendViaMessagingTool: false` ile gösteriyor | Model, ileti aracını çağırmak yerine özel olarak yanıtladı. Araç çağrısı güvenilir bir model kullanın veya otomatik gönderim için `messages.groupChat.visibleReplies: "automatic"` ayarlayın. |
|
||||
| DM yanıtları eksik | `openclaw pairing list discord` | DM eşleştirmesini onaylayın veya DM politikasını ayarlayın. |
|
||||
| Belirti | En hızlı kontrol | Düzeltme |
|
||||
| ----------------------------------------- | ----------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Bot çevrimiçi ama sunucu yanıtı yok | `openclaw channels status --probe` | Sunucu/kanala izin verin ve mesaj içeriği niyetini doğrulayın. |
|
||||
| Grup mesajları yok sayılıyor | Bahsetme kapısı düşürmeleri için günlükleri kontrol edin | Bottan bahsedin veya sunucu/kanal için `requireMention: false` ayarlayın. |
|
||||
| Yazıyor/token kullanımı var ama Discord mesajı yok | Oturum günlüğü, `didSendViaMessagingTool: false` ile asistan metni gösterir | Model, mesaj aracını çağırmak yerine özel olarak yanıtladı. Araç çağrısında güvenilir bir model kullanın veya otomatik göndermek için `messages.groupChat.visibleReplies: "automatic"` ayarlayın. |
|
||||
| DM yanıtları eksik | `openclaw pairing list discord` | DM eşleştirmesini onaylayın veya DM ilkesini ayarlayın. |
|
||||
|
||||
Tam sorun giderme: [Discord sorun giderme](/tr/channels/discord#troubleshooting)
|
||||
|
||||
## Slack
|
||||
|
||||
### Slack hata imzaları
|
||||
### Slack hata belirtileri
|
||||
|
||||
| Belirti | En hızlı kontrol | Düzeltme |
|
||||
| -------------------------------------- | -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Socket mode bağlı ancak yanıt yok | `openclaw channels status --probe` | Uygulama token'ı + bot token'ını ve gerekli kapsamları doğrulayın; SecretRef destekli kurulumlarda `botTokenStatus` / `appTokenStatus = configured_unavailable` için izleyin. |
|
||||
| DM'ler engellendi | `openclaw pairing list slack` | Eşleştirmeyi onaylayın veya DM politikasını gevşetin. |
|
||||
| Kanal iletisi yok sayıldı | `groupPolicy` ve kanal izin listesini kontrol edin | Kanala izin verin veya politikayı `open` olarak değiştirin. |
|
||||
| Belirti | En hızlı kontrol | Düzeltme |
|
||||
| -------------------------------------- | ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Soket modu bağlı ama yanıt yok | `openclaw channels status --probe` | Uygulama token'ı + bot token'ını ve gerekli kapsamları doğrulayın; SecretRef destekli kurulumlarda `botTokenStatus` / `appTokenStatus = configured_unavailable` durumunu izleyin. |
|
||||
| DM'ler engellendi | `openclaw pairing list slack` | Eşleştirmeyi onaylayın veya DM ilkesini gevşetin. |
|
||||
| Kanal mesajı yok sayılıyor | `groupPolicy` ve kanal izin listesini kontrol edin | Kanala izin verin veya ilkeyi `open` olarak değiştirin. |
|
||||
|
||||
Tam sorun giderme: [Slack sorun giderme](/tr/channels/slack#troubleshooting)
|
||||
|
||||
## iMessage ve BlueBubbles
|
||||
|
||||
### iMessage ve BlueBubbles hata imzaları
|
||||
### iMessage ve BlueBubbles hata belirtileri
|
||||
|
||||
| Belirti | En hızlı kontrol | Düzeltme |
|
||||
| -------------------------------- | -------------------------------------------------------------------------- | ------------------------------------------------------- |
|
||||
| Gelen olay yok | Webhook/sunucu erişilebilirliğini ve uygulama izinlerini doğrulayın | Webhook URL'sini veya BlueBubbles sunucu durumunu düzeltin. |
|
||||
| macOS'ta gönderebiliyor ancak alamıyor | Messages otomasyonu için macOS gizlilik izinlerini kontrol edin | TCC izinlerini yeniden verin ve kanal sürecini yeniden başlatın. |
|
||||
| DM göndereni engellendi | `openclaw pairing list imessage` veya `openclaw pairing list bluebubbles` | Eşleştirmeyi onaylayın veya izin listesini güncelleyin. |
|
||||
| Belirti | En hızlı kontrol | Düzeltme |
|
||||
| -------------------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------- |
|
||||
| Gelen olay yok | Webhook/sunucu erişilebilirliğini ve uygulama izinlerini doğrulayın | Webhook URL'sini veya BlueBubbles sunucu durumunu düzeltin. |
|
||||
| macOS'ta gönderebiliyor ama alamıyor | Mesajlar otomasyonu için macOS gizlilik izinlerini kontrol edin | TCC izinlerini yeniden verin ve kanal sürecini yeniden başlatın. |
|
||||
| DM gönderen engellendi | `openclaw pairing list imessage` veya `openclaw pairing list bluebubbles` | Eşleştirmeyi onaylayın veya izin listesini güncelleyin. |
|
||||
|
||||
Tam sorun giderme:
|
||||
|
||||
@ -105,40 +106,40 @@ Tam sorun giderme:
|
||||
|
||||
## Signal
|
||||
|
||||
### Signal hata imzaları
|
||||
### Signal hata belirtileri
|
||||
|
||||
| Belirti | En hızlı kontrol | Düzeltme |
|
||||
| ------------------------------- | --------------------------------------------- | ------------------------------------------------------------- |
|
||||
| Daemon erişilebilir ancak bot sessiz | `openclaw channels status --probe` | `signal-cli` daemon URL/hesabını ve alma modunu doğrulayın. |
|
||||
| DM engellendi | `openclaw pairing list signal` | Göndereni onaylayın veya DM politikasını ayarlayın. |
|
||||
| Grup yanıtları tetiklenmiyor | Grup izin listesini ve mention desenlerini kontrol edin | Gönderen/grup ekleyin veya geçidi gevşetin. |
|
||||
| Belirti | En hızlı kontrol | Düzeltme |
|
||||
| ------------------------------- | --------------------------------------------- | ---------------------------------------------------------- |
|
||||
| Daemon erişilebilir ama bot sessiz | `openclaw channels status --probe` | `signal-cli` daemon URL'sini/hesabını ve alma modunu doğrulayın. |
|
||||
| DM engellendi | `openclaw pairing list signal` | Göndereni onaylayın veya DM ilkesini ayarlayın. |
|
||||
| Grup yanıtları tetiklenmiyor | Grup izin listesini ve bahsetme kalıplarını kontrol edin | Gönderen/grup ekleyin veya kapıyı gevşetin. |
|
||||
|
||||
Tam sorun giderme: [Signal sorun giderme](/tr/channels/signal#troubleshooting)
|
||||
|
||||
## QQ Bot
|
||||
|
||||
### QQ Bot hata imzaları
|
||||
### QQ Bot hata belirtileri
|
||||
|
||||
| Belirti | En hızlı kontrol | Düzeltme |
|
||||
| ------------------------------- | ---------------------------------------------- | -------------------------------------------------------------------- |
|
||||
| Bot "Mars'a gitti" diye yanıtlıyor | Yapılandırmada `appId` ve `clientSecret` değerlerini doğrulayın | Kimlik bilgilerini ayarlayın veya Gateway'i yeniden başlatın. |
|
||||
| Gelen ileti yok | `openclaw channels status --probe` | QQ Open Platform üzerinde kimlik bilgilerini doğrulayın. |
|
||||
| Ses metne dökülmedi | STT sağlayıcı yapılandırmasını kontrol edin | `channels.qqbot.stt` veya `tools.media.audio` yapılandırın. |
|
||||
| Proaktif iletiler ulaşmıyor | QQ platform etkileşim gereksinimlerini kontrol edin | QQ, yakın tarihli etkileşim olmadan bot tarafından başlatılan iletileri engelleyebilir. |
|
||||
| Belirti | En hızlı kontrol | Düzeltme |
|
||||
| ------------------------------- | --------------------------------------------- | -------------------------------------------------------------- |
|
||||
| Bot "gone to Mars" yanıtı veriyor | Yapılandırmada `appId` ve `clientSecret` değerlerini doğrulayın | Kimlik bilgilerini ayarlayın veya Gateway'i yeniden başlatın. |
|
||||
| Gelen mesaj yok | `openclaw channels status --probe` | QQ Open Platform'da kimlik bilgilerini doğrulayın. |
|
||||
| Ses yazıya dökülmedi | STT sağlayıcı yapılandırmasını kontrol edin | `channels.qqbot.stt` veya `tools.media.audio` yapılandırın. |
|
||||
| Proaktif mesajlar ulaşmıyor | QQ platform etkileşim gereksinimlerini kontrol edin | QQ, yakın tarihli etkileşim olmadan bot tarafından başlatılan mesajları engelleyebilir. |
|
||||
|
||||
Tam sorun giderme: [QQ Bot sorun giderme](/tr/channels/qqbot#troubleshooting)
|
||||
|
||||
## Matrix
|
||||
|
||||
### Matrix hata imzaları
|
||||
### Matrix hata belirtileri
|
||||
|
||||
| Belirti | En hızlı kontrol | Düzeltme |
|
||||
| ----------------------------------- | ----------------------------------------- | --------------------------------------------------------------------------- |
|
||||
| Oturum açıldı ancak oda iletilerini yok sayıyor | `openclaw channels status --probe` | `groupPolicy`, oda izin listesi ve mention geçidini kontrol edin. |
|
||||
| DM'ler işlenmiyor | `openclaw pairing list matrix` | Göndereni onaylayın veya DM politikasını ayarlayın. |
|
||||
| Belirti | En hızlı kontrol | Düzeltme |
|
||||
| ----------------------------------- | ----------------------------------------- | ------------------------------------------------------------------------- |
|
||||
| Oturum açılmış ama oda mesajlarını yok sayıyor | `openclaw channels status --probe` | `groupPolicy`, oda izin listesi ve bahsetme kapısını kontrol edin. |
|
||||
| DM'ler işlenmiyor | `openclaw pairing list matrix` | Göndereni onaylayın veya DM ilkesini ayarlayın. |
|
||||
| Şifreli odalar başarısız oluyor | `openclaw matrix verify status` | Cihazı yeniden doğrulayın, ardından `openclaw matrix verify backup status` kontrol edin. |
|
||||
| Yedek geri yükleme beklemede/bozuk | `openclaw matrix verify backup status` | `openclaw matrix verify backup restore` çalıştırın veya bir kurtarma anahtarıyla yeniden çalıştırın. |
|
||||
| Cross-signing/bootstrap yanlış görünüyor | `openclaw matrix verify bootstrap` | Gizli depolamayı, cross-signing'i ve yedek durumunu tek geçişte onarın. |
|
||||
| Çapraz imzalama/önyükleme yanlış görünüyor | `openclaw matrix verify bootstrap` | Gizli depolamayı, çapraz imzalamayı ve yedekleme durumunu tek geçişte onarın. |
|
||||
|
||||
Tam kurulum ve yapılandırma: [Matrix](/tr/channels/matrix)
|
||||
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
---
|
||||
read_when:
|
||||
- Bağlantı/kimlik doğrulama sorunlarınız var ve yönlendirmeli düzeltmeler istiyorsunuz
|
||||
- Güncelleme yaptınız ve bir sağlamlık kontrolü istiyorsunuz
|
||||
summary: '`openclaw doctor` için CLI referansı (sağlık denetimleri + rehberli onarımlar)'
|
||||
title: Tanılama
|
||||
- Bağlantı/kimlik doğrulama sorunları yaşıyorsunuz ve rehberli düzeltmeler istiyorsunuz
|
||||
- Güncelleme yaptınız ve bir sağlama kontrolü istiyorsunuz
|
||||
summary: '`openclaw doctor` için CLI referansı (sağlık kontrolleri + rehberli onarımlar)'
|
||||
title: Doktor
|
||||
x-i18n:
|
||||
generated_at: "2026-05-05T01:44:34Z"
|
||||
generated_at: "2026-05-05T08:25:31Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 079d7674ae2a259a0430e30e7577ac532135ad5461c57c4b3a6514a007bc9ea5
|
||||
source_hash: d6101008d1cb7e08f9902a8a29785710f325966524b003b87b5c628fe906ab78
|
||||
source_path: cli/doctor.md
|
||||
workflow: 16
|
||||
---
|
||||
@ -19,7 +19,7 @@ Gateway ve kanallar için sağlık kontrolleri + hızlı düzeltmeler.
|
||||
|
||||
İlgili:
|
||||
|
||||
- Sorun giderme: [Sorun giderme](/tr/gateway/troubleshooting)
|
||||
- Sorun giderme: [Sorun Giderme](/tr/gateway/troubleshooting)
|
||||
- Güvenlik denetimi: [Güvenlik](/tr/gateway/security)
|
||||
|
||||
## Örnekler
|
||||
@ -36,43 +36,44 @@ openclaw doctor --generate-gateway-token
|
||||
|
||||
- `--no-workspace-suggestions`: çalışma alanı belleği/arama önerilerini devre dışı bırak
|
||||
- `--yes`: sormadan varsayılanları kabul et
|
||||
- `--repair`: sormadan önerilen servis dışı onarımları uygula; Gateway servisi kurulumları ve yeniden yazmaları yine de etkileşimli onay veya açık Gateway komutları gerektirir
|
||||
- `--repair`: önerilen servis dışı onarımları sormadan uygula; Gateway servisi kurulumları ve yeniden yazımları yine de etkileşimli onay veya açık Gateway komutları gerektirir
|
||||
- `--fix`: `--repair` için takma ad
|
||||
- `--force`: gerektiğinde özel servis yapılandırmasının üzerine yazmak dahil, agresif onarımları uygula
|
||||
- `--force`: gerektiğinde özel servis yapılandırmasının üzerine yazma dahil agresif onarımları uygula
|
||||
- `--non-interactive`: istemler olmadan çalıştır; yalnızca güvenli migrasyonlar ve servis dışı onarımlar
|
||||
- `--generate-gateway-token`: bir Gateway token'ı oluştur ve yapılandır
|
||||
- `--deep`: ek Gateway kurulumları için sistem servislerini tara
|
||||
- `--generate-gateway-token`: bir Gateway belirteci oluştur ve yapılandır
|
||||
- `--deep`: ek Gateway kurulumları için sistem servislerini tara ve son Gateway denetleyicisi yeniden başlatma devretmelerini raporla
|
||||
|
||||
Notlar:
|
||||
|
||||
- Etkileşimli istemler (anahtar zinciri/OAuth düzeltmeleri gibi) yalnızca stdin bir TTY olduğunda ve `--non-interactive` **ayarlanmadığında** çalışır. Başsız çalıştırmalar (cron, Telegram, terminal yok) istemleri atlar.
|
||||
- Performans: etkileşimsiz `doctor` çalıştırmaları, başsız sağlık kontrollerinin hızlı kalması için istekli Plugin yüklemeyi atlar. Etkileşimli oturumlar, bir kontrol onların katkısına ihtiyaç duyduğunda Plugin'leri yine de tamamen yükler.
|
||||
- `--fix` (`--repair` için takma ad), `~/.openclaw/openclaw.json.bak` konumuna bir yedek yazar ve bilinmeyen yapılandırma anahtarlarını kaldırarak her kaldırmayı listeler.
|
||||
- `doctor --fix --non-interactive`, eksik veya eski Gateway servis tanımlarını bildirir ancak güncelleme onarım modu dışında bunları kurmaz veya yeniden yazmaz. Eksik bir servis için `openclaw gateway install` çalıştırın veya başlatıcıyı bilinçli olarak değiştirmek istediğinizde `openclaw gateway install --force` kullanın.
|
||||
- Durum bütünlüğü kontrolleri artık sessions dizinindeki sahipsiz transcript dosyalarını algılar. Bunları `.deleted.<timestamp>` olarak arşivlemek etkileşimli onay gerektirir; `--fix`, `--yes` ve başsız çalıştırmalar bunları yerinde bırakır.
|
||||
- Doctor ayrıca eski cron işi şekilleri için `~/.openclaw/cron/jobs.json` dosyasını (veya `cron.store`) tarar ve zamanlayıcının çalışma zamanında otomatik normalleştirme yapması gerekmeden önce bunları yerinde yeniden yazabilir.
|
||||
- Linux'ta doctor, kullanıcının crontab'ı hâlâ eski `~/.openclaw/bin/ensure-whatsapp.sh` betiğini çalıştırdığında uyarır; bu betik artık bakım almıyor ve cron systemd kullanıcı veri yolu ortamından yoksun olduğunda hatalı WhatsApp Gateway kesintileri günlüğe yazabilir.
|
||||
- Doctor, eski OpenClaw sürümlerinin oluşturduğu eski Plugin bağımlılık hazırlama durumunu temizler. Ayrıca `plugins.entries`, yapılandırılmış kanallar, yapılandırılmış sağlayıcı/arama ayarları veya yapılandırılmış agent runtime'ları gibi yapılandırma tarafından başvurulan eksik indirilebilir Plugin'leri onarır. Paket güncellemeleri sırasında doctor, paket değişimi tamamlanana kadar paket yöneticisi Plugin onarımını atlar; yapılandırılmış bir Plugin hâlâ kurtarma gerektiriyorsa daha sonra `openclaw doctor --fix` komutunu yeniden çalıştırın. İndirme başarısız olursa doctor kurulum hatasını bildirir ve bir sonraki onarım denemesi için yapılandırılmış Plugin girdisini korur.
|
||||
- Doctor, Plugin keşfi sağlıklıyken eksik Plugin kimliklerini `plugins.allow`/`plugins.entries` içinden ve eşleşen askıda kalmış kanal yapılandırmasını, Heartbeat hedeflerini ve kanal model geçersiz kılmalarını kaldırarak eski Plugin yapılandırmasını onarır.
|
||||
- Doctor, etkilenen `plugins.entries.<id>` girdisini devre dışı bırakarak ve geçersiz `config` yükünü kaldırarak geçersiz Plugin yapılandırmasını karantinaya alır. Gateway başlangıcı zaten yalnızca o hatalı Plugin'i atlar, böylece diğer Plugin'ler ve kanallar çalışmaya devam edebilir.
|
||||
- Gateway yaşam döngüsünü başka bir supervisor yönetiyorsa `OPENCLAW_SERVICE_REPAIR_POLICY=external` ayarlayın. Doctor yine Gateway/servis sağlığını bildirir ve servis dışı onarımları uygular, ancak servis kurma/başlatma/yeniden başlatma/bootstrap ve eski servis temizliğini atlar.
|
||||
- Linux'ta doctor, etkin olmayan ek Gateway benzeri systemd birimlerini yok sayar ve onarım sırasında çalışan bir systemd Gateway servisi için komut/giriş noktası metadata'sını yeniden yazmaz. Etkin başlatıcıyı bilinçli olarak değiştirmek istediğinizde önce servisi durdurun veya `openclaw gateway install --force` kullanın.
|
||||
- Doctor, eski düz Talk yapılandırmasını (`talk.voiceId`, `talk.modelId` ve benzerleri) otomatik olarak `talk.provider` + `talk.providers.<provider>` içine taşır.
|
||||
- Tek fark nesne anahtarı sırası olduğunda, yinelenen `doctor --fix` çalıştırmaları artık Talk normalleştirmesini bildirmez/uygulamaz.
|
||||
- Doctor, bellek arama hazırlığı kontrolü içerir ve embedding kimlik bilgileri eksik olduğunda `openclaw configure --section model` önerebilir.
|
||||
- Doctor, komut sahibi yapılandırılmadığında uyarır. Komut sahibi, yalnızca sahibi ilgilendiren komutları çalıştırmasına ve tehlikeli eylemleri onaylamasına izin verilen insan operatör hesabıdır. DM eşleştirmesi yalnızca birinin botla konuşmasına izin verir; ilk sahip bootstrap'i var olmadan önce bir göndericiyi onayladıysanız, `commands.ownerAllowFrom` değerini açıkça ayarlayın.
|
||||
- Doctor, Codex modlu agent'lar yapılandırıldığında ve operatörün Codex ana dizininde kişisel Codex CLI varlıkları bulunduğunda uyarır. Yerel Codex uygulama sunucusu başlatmaları izole agent başına ana dizinler kullanır; bu nedenle bilinçli olarak yükseltilmesi gereken varlıkları envantere almak için `openclaw migrate codex --dry-run` kullanın.
|
||||
- Doctor, varsayılan agent için izin verilen skills geçerli runtime ortamında kullanılamadığında uyarır; bunun nedeni bin'lerin, ortam değişkenlerinin, yapılandırmanın veya işletim sistemi gereksinimlerinin eksik olması olabilir. `doctor --fix`, bu kullanılamayan skills'i `skills.entries.<skill>.enabled=false` ile devre dışı bırakabilir; skill'i etkin tutmak istediğinizde bunun yerine eksik gereksinimi kurun/yapılandırın.
|
||||
- Sandbox modu etkinse ancak Docker kullanılamıyorsa, doctor düzeltme önerisiyle (`Docker'ı kur` veya `openclaw config set agents.defaults.sandbox.mode off`) yüksek sinyal değerine sahip bir uyarı bildirir.
|
||||
- Eski sandbox registry dosyaları (`~/.openclaw/sandbox/containers.json` veya `~/.openclaw/sandbox/browsers.json`) varsa doctor bunları bildirir; `openclaw doctor --fix` geçerli girdileri parçalı registry dizinlerine taşır ve geçersiz eski dosyaları karantinaya alır.
|
||||
- `gateway.auth.token`/`gateway.auth.password` SecretRef tarafından yönetiliyorsa ve geçerli komut yolunda kullanılamıyorsa, doctor salt okunur bir uyarı bildirir ve düz metin yedek kimlik bilgileri yazmaz.
|
||||
- Bir düzeltme yolunda kanal SecretRef incelemesi başarısız olursa doctor erken çıkmak yerine devam eder ve bir uyarı bildirir.
|
||||
- Durum dizini migrasyonlarından sonra doctor, etkin varsayılan Telegram veya Discord hesapları ortam yedeğine bağlı olduğunda ve `TELEGRAM_BOT_TOKEN` ya da `DISCORD_BOT_TOKEN` doctor süreci tarafından kullanılamadığında uyarır.
|
||||
- Telegram `allowFrom` kullanıcı adı otomatik çözümlemesi (`doctor --fix`), geçerli komut yolunda çözümlenebilir bir Telegram token'ı gerektirir. Token incelemesi kullanılamıyorsa doctor bir uyarı bildirir ve o geçiş için otomatik çözümlemeyi atlar.
|
||||
- Etkileşimli istemler (anahtarlık/OAuth düzeltmeleri gibi) yalnızca stdin bir TTY olduğunda ve `--non-interactive` **ayarlanmamış** olduğunda çalışır. Başsız çalıştırmalar (cron, Telegram, terminal yok) istemleri atlar.
|
||||
- Performans: etkileşimsiz `doctor` çalıştırmaları, başsız sağlık kontrollerinin hızlı kalması için istekli Plugin yüklemeyi atlar. Etkileşimli oturumlar, bir kontrol katkılarına ihtiyaç duyduğunda Plugin'leri yine de tam olarak yükler.
|
||||
- `--fix` (`--repair` için takma ad), `~/.openclaw/openclaw.json.bak` konumuna bir yedek yazar ve bilinmeyen yapılandırma anahtarlarını kaldırıp her kaldırmayı listeler.
|
||||
- `doctor --fix --non-interactive`, eksik veya eski Gateway servisi tanımlarını bildirir ancak güncelleme onarımı modu dışında bunları kurmaz ya da yeniden yazmaz. Eksik bir servis için `openclaw gateway install` komutunu, başlatıcıyı bilerek değiştirmek istediğinizde ise `openclaw gateway install --force` komutunu çalıştırın.
|
||||
- Durum bütünlüğü kontrolleri artık oturumlar dizinindeki yetim transkript dosyalarını algılar. Bunları `.deleted.<timestamp>` olarak arşivlemek etkileşimli onay gerektirir; `--fix`, `--yes` ve başsız çalıştırmalar bunları yerinde bırakır.
|
||||
- Doctor ayrıca `~/.openclaw/cron/jobs.json` (veya `cron.store`) içinde eski Cron iş biçimlerini tarar ve zamanlayıcının bunları çalışma zamanında otomatik normalleştirmesi gerekmeden önce yerinde yeniden yazabilir.
|
||||
- Linux'ta doctor, kullanıcının crontab'ı hâlâ eski `~/.openclaw/bin/ensure-whatsapp.sh` dosyasını çalıştırdığında uyarır; bu betik artık sürdürülmez ve cron systemd kullanıcı veri yolu ortamına sahip olmadığında hatalı WhatsApp Gateway kesintileri günlüğe yazabilir.
|
||||
- WhatsApp etkinleştirildiğinde doctor, yerel `openclaw-tui` istemcileri hâlâ çalışırken bozulmuş bir Gateway olay döngüsü olup olmadığını kontrol eder. `doctor --fix`, WhatsApp yanıtlarının eski TUI yenileme döngülerinin arkasında kuyruğa alınmaması için yalnızca doğrulanmış yerel TUI istemcilerini durdurur.
|
||||
- Doctor, eski OpenClaw sürümleri tarafından oluşturulan eski Plugin bağımlılığı hazırlama durumunu temizler. Ayrıca `plugins.entries`, yapılandırılmış kanallar, yapılandırılmış sağlayıcı/arama ayarları veya yapılandırılmış aracı çalışma zamanları gibi yapılandırma tarafından başvurulan eksik indirilebilir Plugin'leri onarır. Paket güncellemeleri sırasında doctor, paket değişimi tamamlanana kadar paket yöneticisi Plugin onarımını atlar; yapılandırılmış bir Plugin hâlâ kurtarma gerektiriyorsa sonrasında `openclaw doctor --fix` komutunu yeniden çalıştırın. İndirme başarısız olursa doctor kurulum hatasını raporlar ve sonraki onarım denemesi için yapılandırılmış Plugin girdisini korur.
|
||||
- Doctor, Plugin keşfi sağlıklı olduğunda eksik Plugin kimliklerini `plugins.allow`/`plugins.entries` içinden, ayrıca eşleşen askıda kanal yapılandırmasını, Heartbeat hedeflerini ve kanal model geçersiz kılmalarını kaldırarak eski Plugin yapılandırmasını onarır.
|
||||
- Doctor, etkilenen `plugins.entries.<id>` girdisini devre dışı bırakarak ve geçersiz `config` yükünü kaldırarak geçersiz Plugin yapılandırmasını karantinaya alır. Gateway başlangıcı zaten yalnızca bu bozuk Plugin'i atlar; böylece diğer Plugin'ler ve kanallar çalışmaya devam edebilir.
|
||||
- Gateway yaşam döngüsüne başka bir denetleyici sahipse `OPENCLAW_SERVICE_REPAIR_POLICY=external` ayarlayın. Doctor Gateway/servis sağlığını raporlamaya ve servis dışı onarımları uygulamaya devam eder, ancak servis kurulumunu/başlatmayı/yeniden başlatmayı/bootstrap işlemini ve eski servis temizliğini atlar.
|
||||
- Linux'ta doctor, etkin olmayan ek Gateway benzeri systemd birimlerini yok sayar ve onarım sırasında çalışan bir systemd Gateway servisi için komut/giriş noktası meta verilerini yeniden yazmaz. Etkin başlatıcıyı bilerek değiştirmek istediğinizde önce servisi durdurun veya `openclaw gateway install --force` kullanın.
|
||||
- Doctor eski düz Talk yapılandırmasını (`talk.voiceId`, `talk.modelId` ve benzerleri) otomatik olarak `talk.provider` + `talk.providers.<provider>` içine taşır.
|
||||
- Tek fark nesne anahtarı sırası olduğunda tekrarlanan `doctor --fix` çalıştırmaları artık Talk normalleştirmesini raporlamaz/uygulamaz.
|
||||
- Doctor bir bellek arama hazırlık kontrolü içerir ve gömme kimlik bilgileri eksik olduğunda `openclaw configure --section model` önerebilir.
|
||||
- Doctor hiçbir komut sahibi yapılandırılmadığında uyarır. Komut sahibi, yalnızca sahibe açık komutları çalıştırmasına ve tehlikeli eylemleri onaylamasına izin verilen insan operatör hesabıdır. DM eşleştirme yalnızca birinin bot ile konuşmasına izin verir; ilk sahip bootstrap'i var olmadan önce bir göndericiyi onayladıysanız `commands.ownerAllowFrom` değerini açıkça ayarlayın.
|
||||
- Doctor, Codex modundaki aracılar yapılandırıldığında ve operatörün Codex ana dizininde kişisel Codex CLI varlıkları bulunduğunda uyarır. Yerel Codex uygulama sunucusu başlatmaları aracı başına yalıtılmış ana dizinler kullanır; bu nedenle bilinçli olarak yükseltilmesi gereken varlıkları envanterlemek için `openclaw migrate codex --dry-run` kullanın.
|
||||
- Doctor, varsayılan aracı için izin verilen Skills geçerli çalışma zamanı ortamında kullanılamadığında uyarır; çünkü binler, ortam değişkenleri, yapılandırma veya işletim sistemi gereksinimleri eksiktir. `doctor --fix`, bu kullanılamayan Skills öğelerini `skills.entries.<skill>.enabled=false` ile devre dışı bırakabilir; skill'i etkin tutmak istediğinizde bunun yerine eksik gereksinimi kurun/yapılandırın.
|
||||
- Sandbox modu etkinse ancak Docker kullanılamıyorsa doctor, düzeltme önerisiyle (`install Docker` veya `openclaw config set agents.defaults.sandbox.mode off`) yüksek sinyalli bir uyarı raporlar.
|
||||
- Eski sandbox kayıt dosyaları (`~/.openclaw/sandbox/containers.json` veya `~/.openclaw/sandbox/browsers.json`) varsa doctor bunları raporlar; `openclaw doctor --fix` geçerli girdileri parçalanmış kayıt dizinlerine taşır ve geçersiz eski dosyaları karantinaya alır.
|
||||
- `gateway.auth.token`/`gateway.auth.password` SecretRef tarafından yönetiliyor ve geçerli komut yolunda kullanılamıyorsa doctor salt okunur bir uyarı raporlar ve düz metin yedek kimlik bilgileri yazmaz.
|
||||
- Bir düzeltme yolunda kanal SecretRef incelemesi başarısız olursa doctor erken çıkmak yerine devam eder ve bir uyarı raporlar.
|
||||
- Durum dizini migrasyonlarından sonra doctor, etkin varsayılan Telegram veya Discord hesapları ortam yedeğine bağlıyken `TELEGRAM_BOT_TOKEN` veya `DISCORD_BOT_TOKEN` doctor süreci tarafından kullanılamadığında uyarır.
|
||||
- Telegram `allowFrom` kullanıcı adı otomatik çözümlemesi (`doctor --fix`), geçerli komut yolunda çözümlenebilir bir Telegram belirteci gerektirir. Belirteç incelemesi kullanılamıyorsa doctor bir uyarı raporlar ve bu geçiş için otomatik çözümlemeyi atlar.
|
||||
|
||||
## macOS: `launchctl` ortam geçersiz kılmaları
|
||||
|
||||
Daha önce `launchctl setenv OPENCLAW_GATEWAY_TOKEN ...` (veya `...PASSWORD`) çalıştırdıysanız, bu değer yapılandırma dosyanızı geçersiz kılar ve kalıcı “yetkisiz” hatalara neden olabilir.
|
||||
Daha önce `launchctl setenv OPENCLAW_GATEWAY_TOKEN ...` (veya `...PASSWORD`) çalıştırdıysanız, bu değer yapılandırma dosyanızın üzerine çıkar ve kalıcı "yetkisiz" hatalarına neden olabilir.
|
||||
|
||||
```bash
|
||||
launchctl getenv OPENCLAW_GATEWAY_TOKEN
|
||||
|
||||
@ -1,43 +1,43 @@
|
||||
---
|
||||
read_when:
|
||||
- CLI üzerinden Gateway çalıştırma (geliştirme veya sunucular)
|
||||
- Gateway kimlik doğrulamasında, bağlama modlarında ve bağlantıda hata ayıklama
|
||||
- Gateway'i CLI'den çalıştırma (geliştirme veya sunucular)
|
||||
- Gateway kimlik doğrulaması, bağlama modları ve bağlantıda hata ayıklama
|
||||
- Bonjour aracılığıyla Gateway'leri keşfetme (yerel + geniş alan DNS-SD)
|
||||
sidebarTitle: Gateway
|
||||
summary: OpenClaw Gateway CLI (`openclaw gateway`) — Gateway'leri çalıştırın, sorgulayın ve keşfedin
|
||||
title: Gateway
|
||||
x-i18n:
|
||||
generated_at: "2026-05-05T01:44:40Z"
|
||||
generated_at: "2026-05-05T08:25:40Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 521558189b150b2faa22f95ec32419ac9e02c5f47c72b9095f40d1432840c038
|
||||
source_hash: 89f798724971151cdd297fcdbbc1fe79dedc19f57521f2ad2c1fff0f9acf9b24
|
||||
source_path: cli/gateway.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
Gateway, OpenClaw'ın WebSocket sunucusudur (kanallar, düğümler, oturumlar, kancalar). Bu sayfadaki alt komutlar `openclaw gateway …` altında yer alır.
|
||||
Gateway, OpenClaw'ın WebSocket sunucusudur (kanallar, düğümler, oturumlar, hook'lar). Bu sayfadaki alt komutlar `openclaw gateway …` altında yer alır.
|
||||
|
||||
<CardGroup cols={3}>
|
||||
<Card title="Bonjour keşfi" href="/tr/gateway/bonjour">
|
||||
Yerel mDNS + geniş alan DNS-SD kurulumu.
|
||||
</Card>
|
||||
<Card title="Keşif genel bakışı" href="/tr/gateway/discovery">
|
||||
OpenClaw'ın Gateway'leri nasıl duyurduğu ve bulduğu.
|
||||
<Card title="Keşfe genel bakış" href="/tr/gateway/discovery">
|
||||
OpenClaw'ın gateway'leri nasıl duyurduğu ve bulduğu.
|
||||
</Card>
|
||||
<Card title="Yapılandırma" href="/tr/gateway/configuration">
|
||||
Üst düzey Gateway yapılandırma anahtarları.
|
||||
Üst düzey gateway yapılandırma anahtarları.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
## Gateway'i çalıştırın
|
||||
## Gateway'i çalıştırma
|
||||
|
||||
Yerel bir Gateway işlemi çalıştırın:
|
||||
Yerel bir Gateway süreci çalıştırın:
|
||||
|
||||
```bash
|
||||
openclaw gateway
|
||||
```
|
||||
|
||||
Ön plan takma adı:
|
||||
Ön planda çalıştırma takma adı:
|
||||
|
||||
```bash
|
||||
openclaw gateway run
|
||||
@ -45,12 +45,12 @@ openclaw gateway run
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Başlatma davranışı">
|
||||
- Varsayılan olarak Gateway, `~/.openclaw/openclaw.json` içinde `gateway.mode=local` ayarlanmadıkça başlamayı reddeder. Geçici/geliştirme çalıştırmaları için `--allow-unconfigured` kullanın.
|
||||
- `openclaw onboard --mode local` ve `openclaw setup` komutlarının `gateway.mode=local` yazması beklenir. Dosya varsa ancak `gateway.mode` eksikse, bunu yerel modun örtük olduğu varsayımı yerine bozuk veya üzerine yazılmış bir yapılandırma olarak ele alın ve onarın.
|
||||
- Dosya varsa ve `gateway.mode` eksikse, Gateway bunu şüpheli yapılandırma hasarı olarak değerlendirir ve sizin için "yereli tahmin etmeyi" reddeder.
|
||||
- Varsayılan olarak Gateway, `~/.openclaw/openclaw.json` içinde `gateway.mode=local` ayarlanmadığı sürece başlamayı reddeder. Geçici/geliştirme çalıştırmaları için `--allow-unconfigured` kullanın.
|
||||
- `openclaw onboard --mode local` ve `openclaw setup` komutlarının `gateway.mode=local` yazması beklenir. Dosya varsa ancak `gateway.mode` eksikse, bunu bozuk veya üzerine yazılmış bir yapılandırma olarak değerlendirin ve yerel modu örtük olarak varsaymak yerine onarın.
|
||||
- Dosya varsa ve `gateway.mode` eksikse, Gateway bunu şüpheli yapılandırma hasarı olarak değerlendirir ve sizin için "local tahmini" yapmayı reddeder.
|
||||
- Kimlik doğrulama olmadan loopback dışına bağlanma engellenir (güvenlik koruması).
|
||||
- Yetkilendirildiğinde `SIGUSR1` işlem içinde yeniden başlatmayı tetikler (`commands.restart` varsayılan olarak etkindir; manuel yeniden başlatmayı engellemek için `commands.restart: false` ayarlayın, Gateway araç/yapılandırma uygula/güncelleme izinli kalır).
|
||||
- `SIGINT`/`SIGTERM` işleyicileri Gateway işlemini durdurur, ancak özel terminal durumunu geri yüklemez. CLI'ı bir TUI veya raw-mode girdisiyle sarmalarsanız, çıkmadan önce terminali geri yükleyin.
|
||||
- `SIGUSR1`, yetkilendirildiğinde süreç içinde yeniden başlatmayı tetikler (`commands.restart` varsayılan olarak etkindir; manuel yeniden başlatmayı engellemek için `commands.restart: false` ayarlayın, gateway aracı/yapılandırma uygulama/güncelleme ise izinli kalır).
|
||||
- `SIGINT`/`SIGTERM` işleyicileri gateway sürecini durdurur, ancak özel terminal durumlarını geri yüklemez. CLI'ı bir TUI veya raw-mode girdisiyle sarmalarsanız, çıkmadan önce terminali geri yükleyin.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
@ -58,31 +58,31 @@ openclaw gateway run
|
||||
### Seçenekler
|
||||
|
||||
<ParamField path="--port <port>" type="number">
|
||||
WebSocket portu (varsayılan yapılandırma/env'den gelir; genellikle `18789`).
|
||||
WebSocket bağlantı noktası (varsayılan yapılandırmadan/env'den gelir; genellikle `18789`).
|
||||
</ParamField>
|
||||
<ParamField path="--bind <loopback|lan|tailnet|auto|custom>" type="string">
|
||||
Dinleyici bağlama modu.
|
||||
</ParamField>
|
||||
<ParamField path="--auth <token|password>" type="string">
|
||||
Kimlik doğrulama modu geçersiz kılma.
|
||||
Kimlik doğrulama modu geçersiz kılması.
|
||||
</ParamField>
|
||||
<ParamField path="--token <token>" type="string">
|
||||
Token geçersiz kılma (işlem için `OPENCLAW_GATEWAY_TOKEN` değerini de ayarlar).
|
||||
Token geçersiz kılması (süreç için `OPENCLAW_GATEWAY_TOKEN` değerini de ayarlar).
|
||||
</ParamField>
|
||||
<ParamField path="--password <password>" type="string">
|
||||
Parola geçersiz kılma.
|
||||
Parola geçersiz kılması.
|
||||
</ParamField>
|
||||
<ParamField path="--password-file <path>" type="string">
|
||||
Gateway parolasını bir dosyadan okuyun.
|
||||
</ParamField>
|
||||
<ParamField path="--tailscale <off|serve|funnel>" type="string">
|
||||
Gateway'i Tailscale üzerinden açığa çıkarın.
|
||||
Gateway'i Tailscale üzerinden kullanıma açın.
|
||||
</ParamField>
|
||||
<ParamField path="--tailscale-reset-on-exit" type="boolean">
|
||||
Kapanışta Tailscale serve/funnel yapılandırmasını sıfırlayın.
|
||||
</ParamField>
|
||||
<ParamField path="--allow-unconfigured" type="boolean">
|
||||
Yapılandırmada `gateway.mode=local` olmadan Gateway başlatmaya izin verin. Yalnızca geçici/geliştirme önyüklemesi için başlatma korumasını atlar; yapılandırma dosyasını yazmaz veya onarmaz.
|
||||
Yapılandırmada `gateway.mode=local` olmadan gateway başlatmaya izin verin. Başlatma korumasını yalnızca geçici/geliştirme bootstrap için atlar; yapılandırma dosyasını yazmaz veya onarmaz.
|
||||
</ParamField>
|
||||
<ParamField path="--dev" type="boolean">
|
||||
Eksikse bir geliştirme yapılandırması + çalışma alanı oluşturun (`BOOTSTRAP.md` atlanır).
|
||||
@ -91,13 +91,13 @@ openclaw gateway run
|
||||
Geliştirme yapılandırmasını + kimlik bilgilerini + oturumları + çalışma alanını sıfırlayın (`--dev` gerektirir).
|
||||
</ParamField>
|
||||
<ParamField path="--force" type="boolean">
|
||||
Başlatmadan önce seçilen porttaki mevcut dinleyiciyi sonlandırın.
|
||||
Başlatmadan önce seçili bağlantı noktasındaki mevcut dinleyicileri sonlandırın.
|
||||
</ParamField>
|
||||
<ParamField path="--verbose" type="boolean">
|
||||
Ayrıntılı günlükler.
|
||||
</ParamField>
|
||||
<ParamField path="--cli-backend-logs" type="boolean">
|
||||
Konsolda yalnızca CLI arka uç günlüklerini gösterin (ve stdout/stderr'ı etkinleştirin).
|
||||
Konsolda yalnızca CLI arka uç günlüklerini göster (ve stdout/stderr'ı etkinleştir).
|
||||
</ParamField>
|
||||
<ParamField path="--ws-log <auto|full|compact>" type="string" default="auto">
|
||||
WebSocket günlük stili.
|
||||
@ -106,13 +106,13 @@ openclaw gateway run
|
||||
`--ws-log compact` için takma ad.
|
||||
</ParamField>
|
||||
<ParamField path="--raw-stream" type="boolean">
|
||||
Ham model akış olaylarını jsonl'ye günlüğe kaydedin.
|
||||
Ham model akışı olaylarını jsonl'ye günlüğe kaydet.
|
||||
</ParamField>
|
||||
<ParamField path="--raw-stream-path <path>" type="string">
|
||||
Ham akış jsonl yolu.
|
||||
</ParamField>
|
||||
|
||||
## Gateway'i yeniden başlatın
|
||||
## Gateway'i yeniden başlatma
|
||||
|
||||
```bash
|
||||
openclaw gateway restart
|
||||
@ -120,26 +120,26 @@ openclaw gateway restart --safe
|
||||
openclaw gateway restart --force
|
||||
```
|
||||
|
||||
`openclaw gateway restart --safe`, çalışan Gateway'den yeniden başlatmadan önce etkin OpenClaw işlerini ön kontrolden geçirmesini ister. Kuyruğa alınmış işlemler, yanıt teslimi, gömülü çalıştırmalar veya görev çalıştırmaları etkinse, Gateway engelleyicileri bildirir, yinelenen güvenli yeniden başlatma isteklerini birleştirir ve etkin iş boşaldığında yeniden başlatır. Düz `restart`, uyumluluk için mevcut hizmet yöneticisi davranışını korur. `--force` seçeneğini yalnızca açıkça anında geçersiz kılma yolunu istediğinizde kullanın.
|
||||
`openclaw gateway restart --safe`, çalışan Gateway'den yeniden başlatmadan önce etkin OpenClaw işlerini ön denetimden geçirmesini ister. Kuyruğa alınmış işlemler, yanıt teslimi, gömülü çalıştırmalar veya görev çalıştırmaları etkinse Gateway engelleyicileri bildirir, yinelenen güvenli yeniden başlatma isteklerini birleştirir ve etkin işler boşaldığında yeniden başlatır. Düz `restart`, uyumluluk için mevcut hizmet yöneticisi davranışını korur. `--force` seçeneğini yalnızca açıkça anında geçersiz kılma yolunu istediğinizde kullanın.
|
||||
|
||||
<Warning>
|
||||
Satır içi `--password` yerel işlem listelerinde açığa çıkabilir. `--password-file`, env veya SecretRef destekli bir `gateway.auth.password` tercih edin.
|
||||
Satır içi `--password`, yerel süreç listelerinde açığa çıkabilir. `--password-file`, env veya SecretRef destekli `gateway.auth.password` tercih edin.
|
||||
</Warning>
|
||||
|
||||
### Başlatma profilleme
|
||||
### Başlatma profillemesi
|
||||
|
||||
- Gateway başlatması sırasında faz zamanlamalarını günlüğe kaydetmek için `OPENCLAW_GATEWAY_STARTUP_TRACE=1` ayarlayın; buna faz başına `eventLoopMax` gecikmesi ve kurulu dizin, manifest kayıt defteri, başlatma planlama ve sahip haritası işi için Plugin arama tablosu zamanlamaları dahildir.
|
||||
- Harici QA koşumları için en iyi çaba JSONL başlatma tanılama zaman çizelgesi yazmak üzere `OPENCLAW_DIAGNOSTICS_TIMELINE_PATH=<path>` ile `OPENCLAW_DIAGNOSTICS=timeline` ayarlayın. Bayrağı yapılandırmada `diagnostics.flags: ["timeline"]` ile de etkinleştirebilirsiniz; yol yine env tarafından sağlanır. Olay döngüsü örneklerini dahil etmek için `OPENCLAW_DIAGNOSTICS_EVENT_LOOP=1` ekleyin.
|
||||
- Gateway başlatmasını karşılaştırmalı ölçmek için `pnpm test:startup:gateway -- --runs 5 --warmup 1` çalıştırın. Karşılaştırma, ilk işlem çıktısını, `/healthz`, `/readyz`, başlatma izleme zamanlamalarını, olay döngüsü gecikmesini ve Plugin arama tablosu zamanlama ayrıntılarını kaydeder.
|
||||
- Gateway başlatması sırasında faz zamanlamalarını günlüğe kaydetmek için `OPENCLAW_GATEWAY_STARTUP_TRACE=1` ayarlayın; buna faz başına `eventLoopMax` gecikmesi ve installed-index, manifest kayıt defteri, başlatma planlaması ve owner-map işi için Plugin arama tablosu zamanlamaları dahildir.
|
||||
- Harici QA koşumları için en iyi çabayla oluşturulan JSONL başlatma tanılama zaman çizelgesini yazmak üzere `OPENCLAW_DIAGNOSTICS_TIMELINE_PATH=<path>` ile `OPENCLAW_DIAGNOSTICS=timeline` ayarlayın. Bayrağı yapılandırmada `diagnostics.flags: ["timeline"]` ile de etkinleştirebilirsiniz; yol yine env tarafından sağlanır. Olay döngüsü örneklerini dahil etmek için `OPENCLAW_DIAGNOSTICS_EVENT_LOOP=1` ekleyin.
|
||||
- Gateway başlatmasını benchmark etmek için `pnpm test:startup:gateway -- --runs 5 --warmup 1` çalıştırın. Benchmark ilk süreç çıktısını, `/healthz`, `/readyz`, başlatma izleme zamanlamalarını, olay döngüsü gecikmesini ve Plugin arama tablosu zamanlama ayrıntılarını kaydeder.
|
||||
|
||||
## Çalışan bir Gateway'i sorgulayın
|
||||
## Çalışan bir Gateway'i sorgulama
|
||||
|
||||
Tüm sorgu komutları WebSocket RPC kullanır.
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Çıktı modları">
|
||||
- Varsayılan: insan tarafından okunabilir (TTY'de renkli).
|
||||
- `--json`: makine tarafından okunabilir JSON (stil/döndürücü yok).
|
||||
- `--json`: makine tarafından okunabilir JSON (stil/spinner yok).
|
||||
- `--no-color` (veya `NO_COLOR=1`): insan düzenini korurken ANSI'yi devre dışı bırakır.
|
||||
|
||||
</Tab>
|
||||
@ -148,13 +148,13 @@ Tüm sorgu komutları WebSocket RPC kullanır.
|
||||
- `--token <token>`: Gateway token'ı.
|
||||
- `--password <password>`: Gateway parolası.
|
||||
- `--timeout <ms>`: zaman aşımı/bütçe (komuta göre değişir).
|
||||
- `--expect-final`: bir "son" yanıt bekleyin (ajan çağrıları).
|
||||
- `--expect-final`: bir "final" yanıtı bekle (agent çağrıları).
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
<Note>
|
||||
`--url` ayarladığınızda, CLI yapılandırma veya ortam kimlik bilgilerine geri dönmez. `--token` veya `--password` değerini açıkça iletin. Açık kimlik bilgilerinin eksik olması bir hatadır.
|
||||
`--url` ayarladığınızda CLI, yapılandırma veya ortam kimlik bilgilerine geri dönmez. `--token` veya `--password` değerini açıkça iletin. Eksik açık kimlik bilgileri bir hatadır.
|
||||
</Note>
|
||||
|
||||
### `gateway health`
|
||||
@ -163,11 +163,11 @@ Tüm sorgu komutları WebSocket RPC kullanır.
|
||||
openclaw gateway health --url ws://127.0.0.1:18789
|
||||
```
|
||||
|
||||
HTTP `/healthz` uç noktası bir canlılık yoklamasıdır: sunucu HTTP'ye yanıt verebildiğinde döner. HTTP `/readyz` uç noktası daha katıdır ve başlatma Plugin yan süreçleri, kanallar veya yapılandırılmış kancalar hâlâ yerleşirken kırmızı kalır. Yerel veya kimliği doğrulanmış ayrıntılı hazır olma yanıtları, olay döngüsü gecikmesi, olay döngüsü kullanımı, CPU çekirdek oranı ve bir `degraded` bayrağı içeren bir `eventLoop` tanılama bloğu içerir.
|
||||
HTTP `/healthz` uç noktası bir canlılık denetimidir: sunucu HTTP'ye yanıt verebildiğinde döner. HTTP `/readyz` uç noktası daha katıdır ve başlatma Plugin sidecar'ları, kanallar veya yapılandırılmış hook'lar hâlâ yerleşirken kırmızı kalır. Yerel veya kimliği doğrulanmış ayrıntılı hazır olma yanıtları, olay döngüsü gecikmesi, olay döngüsü kullanımı, CPU çekirdek oranı ve `degraded` bayrağı içeren bir `eventLoop` tanılama bloğu içerir.
|
||||
|
||||
### `gateway usage-cost`
|
||||
|
||||
Oturum günlüklerinden kullanım maliyeti özetlerini alın.
|
||||
Oturum günlüklerinden kullanım maliyeti özetlerini getirin.
|
||||
|
||||
```bash
|
||||
openclaw gateway usage-cost
|
||||
@ -181,7 +181,7 @@ openclaw gateway usage-cost --json
|
||||
|
||||
### `gateway stability`
|
||||
|
||||
Çalışan bir Gateway'den son tanılama kararlılık kaydedicisini alın.
|
||||
Çalışan bir Gateway'den son tanılama kararlılığı kaydedicisini getirin.
|
||||
|
||||
```bash
|
||||
openclaw gateway stability
|
||||
@ -192,7 +192,7 @@ openclaw gateway stability --json
|
||||
```
|
||||
|
||||
<ParamField path="--limit <limit>" type="number" default="25">
|
||||
Dahil edilecek en fazla son olay sayısı (maks `1000`).
|
||||
Dahil edilecek en fazla son olay sayısı (maks. `1000`).
|
||||
</ParamField>
|
||||
<ParamField path="--type <type>" type="string">
|
||||
`payload.large` veya `diagnostic.memory.pressure` gibi tanılama olay türüne göre filtreleyin.
|
||||
@ -201,26 +201,26 @@ openclaw gateway stability --json
|
||||
Yalnızca bir tanılama sıra numarasından sonraki olayları dahil edin.
|
||||
</ParamField>
|
||||
<ParamField path="--bundle [path]" type="string">
|
||||
Çalışan Gateway'i çağırmak yerine kalıcı hale getirilmiş bir kararlılık paketini okuyun. Durum dizininin altındaki en yeni paket için `--bundle latest` (veya yalnızca `--bundle`) kullanın ya da doğrudan bir paket JSON yolu iletin.
|
||||
Çalışan Gateway'i çağırmak yerine kalıcı bir kararlılık bundle'ı okuyun. Durum dizini altındaki en yeni bundle için `--bundle latest` (veya yalnızca `--bundle`) kullanın ya da doğrudan bir bundle JSON yolu iletin.
|
||||
</ParamField>
|
||||
<ParamField path="--export" type="boolean">
|
||||
Kararlılık ayrıntılarını yazdırmak yerine paylaşılabilir bir destek tanılama zip'i yazın.
|
||||
Kararlılık ayrıntılarını yazdırmak yerine paylaşılabilir bir destek tanılama zip dosyası yazın.
|
||||
</ParamField>
|
||||
<ParamField path="--output <path>" type="string">
|
||||
`--export` için çıktı yolu.
|
||||
</ParamField>
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Gizlilik ve paket davranışı">
|
||||
- Kayıtlar operasyonel meta verileri tutar: olay adları, sayımlar, bayt boyutları, bellek okumaları, kuyruk/oturum durumu, kanal/Plugin adları ve redakte edilmiş oturum özetleri. Sohbet metnini, Webhook gövdelerini, araç çıktılarını, ham istek veya yanıt gövdelerini, token'ları, çerezleri, gizli değerleri, ana makine adlarını veya ham oturum kimliklerini tutmazlar. Kaydediciyi tamamen devre dışı bırakmak için `diagnostics.enabled: false` ayarlayın.
|
||||
- Ölümcül Gateway çıkışlarında, kapanış zaman aşımlarında ve yeniden başlatma başlatma hatalarında, kaydedicide olaylar olduğunda OpenClaw aynı tanılama anlık görüntüsünü `~/.openclaw/logs/stability/openclaw-stability-*.json` konumuna yazar. En yeni paketi `openclaw gateway stability --bundle latest` ile inceleyin; `--limit`, `--type` ve `--since-seq` paket çıktısına da uygulanır.
|
||||
<Accordion title="Gizlilik ve bundle davranışı">
|
||||
- Kayıtlar operasyonel meta verileri tutar: olay adları, sayımlar, bayt boyutları, bellek okumaları, kuyruk/oturum durumu, kanal/Plugin adları ve redakte edilmiş oturum özetleri. Sohbet metni, webhook gövdeleri, araç çıktıları, ham istek veya yanıt gövdeleri, token'lar, çerezler, gizli değerler, ana makine adları veya ham oturum kimliklerini tutmazlar. Kaydediciyi tamamen devre dışı bırakmak için `diagnostics.enabled: false` ayarlayın.
|
||||
- Ölümcül Gateway çıkışlarında, kapanış zaman aşımlarında ve yeniden başlatma başlatma hatalarında, kaydedicide olaylar varsa OpenClaw aynı tanılama anlık görüntüsünü `~/.openclaw/logs/stability/openclaw-stability-*.json` konumuna yazar. En yeni bundle'ı `openclaw gateway stability --bundle latest` ile inceleyin; `--limit`, `--type` ve `--since-seq` de bundle çıktısına uygulanır.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
### `gateway diagnostics export`
|
||||
|
||||
Hata raporlarına eklenmek üzere tasarlanmış yerel bir tanılama zip'i yazın. Gizlilik modeli ve paket içerikleri için bkz. [Tanılama Dışa Aktarımı](/tr/gateway/diagnostics).
|
||||
Hata raporlarına eklenmek üzere tasarlanmış yerel bir tanılama zip dosyası yazın. Gizlilik modeli ve bundle içerikleri için bkz. [Tanılama Dışa Aktarma](/tr/gateway/diagnostics).
|
||||
|
||||
```bash
|
||||
openclaw gateway diagnostics export
|
||||
@ -250,19 +250,19 @@ openclaw gateway diagnostics export --json
|
||||
Durum/sağlık anlık görüntüsü zaman aşımı.
|
||||
</ParamField>
|
||||
<ParamField path="--no-stability-bundle" type="boolean">
|
||||
Kalıcı kararlılık paketi aramasını atlayın.
|
||||
Kalıcı kararlılık bundle'ı aramasını atla.
|
||||
</ParamField>
|
||||
<ParamField path="--json" type="boolean">
|
||||
Yazılan yolu, boyutu ve manifesti JSON olarak yazdırın.
|
||||
Yazılan yolu, boyutu ve manifesti JSON olarak yazdır.
|
||||
</ParamField>
|
||||
|
||||
Dışa aktarım bir manifest, Markdown özeti, yapılandırma şekli, temizlenmiş yapılandırma ayrıntıları, temizlenmiş günlük özetleri, temizlenmiş Gateway durum/sağlık anlık görüntüleri ve varsa en yeni kararlılık paketini içerir.
|
||||
Dışa aktarım bir manifest, Markdown özeti, yapılandırma şekli, temizlenmiş yapılandırma ayrıntıları, temizlenmiş günlük özetleri, temizlenmiş Gateway durum/sağlık anlık görüntüleri ve varsa en yeni kararlılık bundle'ını içerir.
|
||||
|
||||
Paylaşılmak üzere tasarlanmıştır. Hata ayıklamaya yardımcı olan operasyonel ayrıntıları tutar; güvenli OpenClaw günlük alanları, alt sistem adları, durum kodları, süreler, yapılandırılmış modlar, portlar, Plugin kimlikleri, sağlayıcı kimlikleri, gizli olmayan özellik ayarları ve redakte edilmiş operasyonel günlük iletileri gibi. Sohbet metnini, Webhook gövdelerini, araç çıktılarını, kimlik bilgilerini, çerezleri, hesap/ileti tanımlayıcılarını, istem/talimat metnini, ana makine adlarını ve gizli değerleri atlar veya redakte eder. LogTape tarzı bir ileti kullanıcı/sohbet/araç yük metni gibi göründüğünde, dışa aktarım yalnızca bir iletinin atlandığını ve bayt sayısını tutar.
|
||||
Paylaşılması amaçlanır. Hata ayıklamaya yardımcı olan operasyonel ayrıntıları tutar; örneğin güvenli OpenClaw günlük alanları, alt sistem adları, durum kodları, süreler, yapılandırılmış modlar, bağlantı noktaları, Plugin kimlikleri, sağlayıcı kimlikleri, gizli olmayan özellik ayarları ve redakte edilmiş operasyonel günlük iletileri. Sohbet metni, webhook gövdeleri, araç çıktıları, kimlik bilgileri, çerezler, hesap/ileti tanımlayıcıları, prompt/talimat metni, ana makine adları ve gizli değerleri atlar veya redakte eder. LogTape tarzı bir ileti kullanıcı/sohbet/araç payload metni gibi göründüğünde, dışa aktarım yalnızca iletinin atlandığını ve bayt sayısını tutar.
|
||||
|
||||
### `gateway status`
|
||||
|
||||
`gateway status`, Gateway hizmetini (launchd/systemd/schtasks) ve isteğe bağlı bir bağlantı/kimlik doğrulama yeteneği yoklamasını gösterir.
|
||||
`gateway status`, Gateway hizmetini (launchd/systemd/schtasks) ve bağlantı/kimlik doğrulama yeteneğine yönelik isteğe bağlı bir yoklamayı gösterir.
|
||||
|
||||
```bash
|
||||
openclaw gateway status
|
||||
@ -271,10 +271,10 @@ openclaw gateway status --require-rpc
|
||||
```
|
||||
|
||||
<ParamField path="--url <url>" type="string">
|
||||
Açık bir yoklama hedefi ekler. Yapılandırılmış uzak + localhost hâlâ yoklanır.
|
||||
Açık bir yoklama hedefi ekleyin. Yapılandırılmış uzak + localhost yine de yoklanır.
|
||||
</ParamField>
|
||||
<ParamField path="--token <token>" type="string">
|
||||
Yoklama için token kimlik doğrulaması.
|
||||
Yoklama için belirteç kimlik doğrulaması.
|
||||
</ParamField>
|
||||
<ParamField path="--password <password>" type="string">
|
||||
Yoklama için parola kimlik doğrulaması.
|
||||
@ -283,32 +283,33 @@ openclaw gateway status --require-rpc
|
||||
Yoklama zaman aşımı.
|
||||
</ParamField>
|
||||
<ParamField path="--no-probe" type="boolean">
|
||||
Bağlantı yoklamasını atla (yalnızca servis görünümü).
|
||||
Bağlantı yoklamasını atlayın (yalnızca hizmet görünümü).
|
||||
</ParamField>
|
||||
<ParamField path="--deep" type="boolean">
|
||||
Sistem düzeyi servisleri de tara.
|
||||
Sistem düzeyi hizmetleri de tarayın.
|
||||
</ParamField>
|
||||
<ParamField path="--require-rpc" type="boolean">
|
||||
Varsayılan bağlantı yoklamasını bir okuma yoklamasına yükseltir ve bu okuma yoklaması başarısız olduğunda sıfır olmayan kodla çıkar. `--no-probe` ile birlikte kullanılamaz.
|
||||
Varsayılan bağlantı yoklamasını bir okuma yoklamasına yükseltin ve bu okuma yoklaması başarısız olduğunda sıfır olmayan kodla çıkın. `--no-probe` ile birlikte kullanılamaz.
|
||||
</ParamField>
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Status semantics">
|
||||
<Accordion title="Durum semantiği">
|
||||
- `gateway status`, yerel CLI yapılandırması eksik veya geçersiz olsa bile tanılama için kullanılabilir kalır.
|
||||
- Varsayılan `gateway status`, servis durumunu, WebSocket bağlantısını ve el sıkışma sırasında görünen kimlik doğrulama yeteneğini kanıtlar. Okuma/yazma/yönetici işlemlerini kanıtlamaz.
|
||||
- Tanılama yoklamaları, ilk kez cihaz kimlik doğrulaması için değişiklik yapmaz: varsa mevcut önbelleğe alınmış cihaz token'ını yeniden kullanır, ancak yalnızca durumu denetlemek için yeni bir CLI cihaz kimliği veya salt okunur cihaz eşleştirme kaydı oluşturmaz.
|
||||
- `gateway status`, mümkün olduğunda yoklama kimlik doğrulaması için yapılandırılmış auth SecretRef'lerini çözer.
|
||||
- Gerekli bir auth SecretRef bu komut yolunda çözümlenemezse, yoklama bağlantısı/kimlik doğrulaması başarısız olduğunda `gateway status --json` `rpc.authWarning` bildirir; `--token`/`--password` değerini açıkça geçirin veya önce gizli kaynak kaynağını çözün.
|
||||
- Yoklama başarılı olursa, yanlış pozitifleri önlemek için çözümlenmemiş auth-ref uyarıları bastırılır.
|
||||
- Dinleyen bir servis yeterli olmadığında ve okuma kapsamlı RPC çağrılarının da sağlıklı olması gerektiğinde betiklerde ve otomasyonda `--require-rpc` kullanın.
|
||||
- `--deep`, ek launchd/systemd/schtasks kurulumları için en iyi çaba taraması ekler. Birden fazla gateway benzeri servis algılandığında, insan çıktısı temizlik ipuçları yazdırır ve çoğu kurulumun makine başına bir Gateway çalıştırması gerektiği konusunda uyarır.
|
||||
- İnsan çıktısı, profil veya state-dir sapmasını tanılamaya yardımcı olmak için çözümlenen dosya günlük yolunu ve CLI ile servis yapılandırma yolları/geçerlilik anlık görüntüsünü içerir.
|
||||
- Varsayılan `gateway status`, hizmet durumunu, WebSocket bağlantısını ve el sıkışma sırasında görünür olan kimlik doğrulama yeteneğini kanıtlar. Okuma/yazma/yönetici işlemlerini kanıtlamaz.
|
||||
- Tanılama yoklamaları, ilk kez cihaz kimlik doğrulaması için değişiklik yapmaz: varsa mevcut önbelleğe alınmış cihaz belirtecini yeniden kullanırlar, ancak yalnızca durumu denetlemek için yeni bir CLI cihaz kimliği veya salt okunur cihaz eşleştirme kaydı oluşturmazlar.
|
||||
- `gateway status`, mümkün olduğunda yoklama kimlik doğrulaması için yapılandırılmış kimlik doğrulama SecretRefs'lerini çözer.
|
||||
- Bu komut yolunda gerekli bir kimlik doğrulama SecretRef'i çözümlenmemişse, yoklama bağlantısı/kimlik doğrulaması başarısız olduğunda `gateway status --json` `rpc.authWarning` bildirir; açıkça `--token`/`--password` iletin veya önce gizli bilgi kaynağını çözün.
|
||||
- Yoklama başarılı olursa, yanlış pozitifleri önlemek için çözümlenmemiş kimlik doğrulama başvurusu uyarıları bastırılır.
|
||||
- Dinleyen bir hizmet yeterli olmadığında ve okuma kapsamlı RPC çağrılarının da sağlıklı olması gerektiğinde betiklerde ve otomasyonda `--require-rpc` kullanın.
|
||||
- `--deep`, ek launchd/systemd/schtasks kurulumları için en iyi çabayla tarama ekler. Birden fazla Gateway benzeri hizmet algılandığında, insan tarafından okunabilir çıktı temizleme ipuçları yazdırır ve çoğu kurulumun makine başına bir Gateway çalıştırması gerektiği konusunda uyarır.
|
||||
- `--deep`, hizmet süreci harici bir supervisor yeniden başlatması için temiz şekilde çıktığında yakın zamandaki bir Gateway supervisor yeniden başlatma devrini de bildirir.
|
||||
- İnsan tarafından okunabilir çıktı, profil veya durum dizini kaymasını tanılamaya yardımcı olmak için çözümlenmiş dosya günlük yolunu ve CLI ile hizmet yapılandırma yolları/geçerlilik anlık görüntüsünü içerir.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Linux systemd auth-drift checks">
|
||||
- Linux systemd kurulumlarında servis auth drift denetimleri, birimden hem `Environment=` hem de `EnvironmentFile=` değerlerini okur (`%h`, tırnaklı yollar, birden çok dosya ve isteğe bağlı `-` dosyaları dahil).
|
||||
- Drift denetimleri, birleştirilmiş çalışma zamanı env kullanarak `gateway.auth.token` SecretRef'lerini çözer (önce servis komut env'si, ardından süreç env yedeği).
|
||||
- Token kimlik doğrulaması etkin olarak aktif değilse (`gateway.auth.mode` açıkça `password`/`none`/`trusted-proxy` ise veya parolanın kazanabileceği ve hiçbir token adayının kazanamayacağı şekilde mode ayarlanmamışsa), token-drift denetimleri yapılandırma token çözümlemesini atlar.
|
||||
<Accordion title="Linux systemd kimlik doğrulama sapması denetimleri">
|
||||
- Linux systemd kurulumlarında, hizmet kimlik doğrulama sapması denetimleri birimden hem `Environment=` hem de `EnvironmentFile=` değerlerini okur (`%h`, tırnak içindeki yollar, birden fazla dosya ve isteğe bağlı `-` dosyaları dahil).
|
||||
- Sapma denetimleri, birleştirilmiş çalışma zamanı ortamını kullanarak `gateway.auth.token` SecretRefs'lerini çözer (önce hizmet komutu ortamı, ardından süreç ortamı yedeği).
|
||||
- Belirteç kimlik doğrulaması etkin şekilde aktif değilse (açık `gateway.auth.mode` değeri `password`/`none`/`trusted-proxy` ise veya mod ayarlanmamışken parola kazanabiliyor ve hiçbir belirteç adayı kazanamıyorsa), belirteç sapması denetimleri yapılandırma belirtecini çözmeyi atlar.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
@ -317,17 +318,17 @@ openclaw gateway status --require-rpc
|
||||
|
||||
`gateway probe`, "her şeyde hata ayıkla" komutudur. Her zaman şunları yoklar:
|
||||
|
||||
- yapılandırılmış uzak gateway'inizi (ayarlanmışsa) ve
|
||||
- localhost (loopback), **uzak yapılandırılmış olsa bile**.
|
||||
- yapılandırılmış uzak gateway'iniz (ayarlanmışsa) ve
|
||||
- uzak yapılandırılmış olsa bile localhost (loopback).
|
||||
|
||||
`--url` geçirirseniz, bu açık hedef ikisinin önüne eklenir. İnsan çıktısı hedefleri şöyle etiketler:
|
||||
`--url` iletirseniz, bu açık hedef her ikisinin de önüne eklenir. İnsan tarafından okunabilir çıktı hedefleri şu şekilde etiketler:
|
||||
|
||||
- `URL (explicit)`
|
||||
- `Remote (configured)` veya `Remote (configured, inactive)`
|
||||
- `Local loopback`
|
||||
|
||||
<Note>
|
||||
Birden fazla gateway erişilebilir durumdaysa hepsini yazdırır. Yalıtılmış profiller/portlar (ör. kurtarma botu) kullandığınızda birden fazla gateway desteklenir, ancak çoğu kurulum yine de tek bir Gateway çalıştırır.
|
||||
Birden fazla gateway erişilebilir durumdaysa hepsini yazdırır. Yalıtılmış profiller/bağlantı noktaları (ör. kurtarma botu) kullandığınızda birden fazla gateway desteklenir, ancak çoğu kurulum yine de tek bir gateway çalıştırır.
|
||||
</Note>
|
||||
|
||||
```bash
|
||||
@ -336,52 +337,52 @@ openclaw gateway probe --json
|
||||
```
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Interpretation">
|
||||
<Accordion title="Yorumlama">
|
||||
- `Reachable: yes`, en az bir hedefin WebSocket bağlantısını kabul ettiği anlamına gelir.
|
||||
- `Capability: read-only|write-capable|admin-capable|pairing-pending|connect-only`, yoklamanın kimlik doğrulama hakkında neyi kanıtlayabildiğini bildirir. Erişilebilirlikten ayrıdır.
|
||||
- `Capability: read-only|write-capable|admin-capable|pairing-pending|connect-only`, yoklamanın kimlik doğrulama hakkında neyi kanıtlayabildiğini bildirir. Bu, erişilebilirlikten ayrıdır.
|
||||
- `Read probe: ok`, okuma kapsamlı ayrıntı RPC çağrılarının (`health`/`status`/`system-presence`/`config.get`) da başarılı olduğu anlamına gelir.
|
||||
- `Read probe: limited - missing scope: operator.read`, bağlantının başarılı olduğu ancak okuma kapsamlı RPC'nin sınırlı olduğu anlamına gelir. Bu, tam başarısızlık olarak değil, **degraded** erişilebilirlik olarak bildirilir.
|
||||
- `Connect: ok` sonrasında `Read probe: failed`, Gateway'in WebSocket bağlantısını kabul ettiği, ancak takip eden okuma tanılamalarının zaman aşımına uğradığı veya başarısız olduğu anlamına gelir. Bu da erişilemeyen bir Gateway değil, **degraded** erişilebilirliktir.
|
||||
- `gateway status` gibi, yoklama mevcut önbelleğe alınmış cihaz kimlik doğrulamasını yeniden kullanır ancak ilk kez cihaz kimliği veya eşleştirme durumu oluşturmaz.
|
||||
- Çıkış kodu yalnızca yoklanan hiçbir hedef erişilebilir olmadığında sıfır olmayan değerdir.
|
||||
- `Read probe: limited - missing scope: operator.read`, bağlantının başarılı olduğu ancak okuma kapsamlı RPC'nin sınırlı olduğu anlamına gelir. Bu, tam hata değil **bozulmuş** erişilebilirlik olarak bildirilir.
|
||||
- `Connect: ok` sonrasında `Read probe: failed`, Gateway'in WebSocket bağlantısını kabul ettiği, ancak takip eden okuma tanılamalarının zaman aşımına uğradığı veya başarısız olduğu anlamına gelir. Bu da erişilemeyen bir Gateway değil, **bozulmuş** erişilebilirliktir.
|
||||
- `gateway status` gibi, probe mevcut önbelleğe alınmış cihaz kimlik doğrulamasını yeniden kullanır ancak ilk kez cihaz kimliği veya eşleştirme durumu oluşturmaz.
|
||||
- Çıkış kodu yalnızca yoklanan hiçbir hedef erişilebilir değilse sıfır olmayan değerdir.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="JSON output">
|
||||
<Accordion title="JSON çıktısı">
|
||||
Üst düzey:
|
||||
|
||||
- `ok`: en az bir hedef erişilebilir.
|
||||
- `degraded`: en az bir hedef bağlantıyı kabul etti ancak tam ayrıntı RPC tanılamalarını tamamlamadı.
|
||||
- `capability`: erişilebilir hedefler genelinde görülen en iyi yetenek (`read_only`, `write_capable`, `admin_capable`, `pairing_pending`, `connected_no_operator_scope` veya `unknown`).
|
||||
- `primaryTargetId`: şu sırayla aktif kazanan olarak ele alınacak en iyi hedef: açık URL, SSH tüneli, yapılandırılmış uzak, ardından local loopback.
|
||||
- `warnings[]`: `code`, `message` ve isteğe bağlı `targetIds` içeren en iyi çaba uyarı kayıtları.
|
||||
- `degraded`: en az bir hedef bağlantı kabul etti ancak tam ayrıntılı RPC tanılamalarını tamamlamadı.
|
||||
- `capability`: erişilebilir hedefler arasında görülen en iyi yetenek (`read_only`, `write_capable`, `admin_capable`, `pairing_pending`, `connected_no_operator_scope` veya `unknown`).
|
||||
- `primaryTargetId`: etkin kazanan olarak ele alınacak en iyi hedef, şu sırayla: açık URL, SSH tüneli, yapılandırılmış uzak, ardından local loopback.
|
||||
- `warnings[]`: `code`, `message` ve isteğe bağlı `targetIds` içeren en iyi çabayla uyarı kayıtları.
|
||||
- `network`: geçerli yapılandırma ve ana makine ağından türetilen local loopback/tailnet URL ipuçları.
|
||||
- `discovery.timeoutMs` ve `discovery.count`: bu yoklama geçişi için kullanılan gerçek keşif bütçesi/sonuç sayısı.
|
||||
|
||||
Hedef başına (`targets[].connect`):
|
||||
|
||||
- `ok`: bağlantı + degraded sınıflandırması sonrası erişilebilirlik.
|
||||
- `rpcOk`: tam ayrıntı RPC başarısı.
|
||||
- `scopeLimited`: ayrıntı RPC, eksik operator kapsamı nedeniyle başarısız oldu.
|
||||
- `ok`: bağlantı + bozulmuş sınıflandırma sonrasında erişilebilirlik.
|
||||
- `rpcOk`: tam ayrıntılı RPC başarısı.
|
||||
- `scopeLimited`: eksik operator kapsamı nedeniyle ayrıntı RPC başarısız oldu.
|
||||
|
||||
Hedef başına (`targets[].auth`):
|
||||
|
||||
- `role`: varsa `hello-ok` içinde bildirilen auth rolü.
|
||||
- `scopes`: varsa `hello-ok` içinde bildirilen verilmiş kapsamlar.
|
||||
- `capability`: söz konusu hedef için yüzeye çıkarılan auth yetenek sınıflandırması.
|
||||
- `role`: mevcut olduğunda `hello-ok` içinde bildirilen kimlik doğrulama rolü.
|
||||
- `scopes`: mevcut olduğunda `hello-ok` içinde bildirilen verilmiş kapsamlar.
|
||||
- `capability`: ilgili hedef için yüzeye çıkarılan kimlik doğrulama yeteneği sınıflandırması.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Common warning codes">
|
||||
<Accordion title="Yaygın uyarı kodları">
|
||||
- `ssh_tunnel_failed`: SSH tüneli kurulumu başarısız oldu; komut doğrudan yoklamalara geri döndü.
|
||||
- `multiple_gateways`: birden fazla hedef erişilebilirdi; kurtarma botu gibi yalıtılmış profilleri kasıtlı olarak çalıştırmıyorsanız bu olağan değildir.
|
||||
- `auth_secretref_unresolved`: yapılandırılmış bir auth SecretRef, başarısız bir hedef için çözümlenemedi.
|
||||
- `probe_scope_limited`: WebSocket bağlantısı başarılı oldu, ancak okuma yoklaması eksik `operator.read` nedeniyle sınırlı kaldı.
|
||||
- `multiple_gateways`: birden fazla hedef erişilebilirdi; kurtarma botu gibi yalıtılmış profilleri bilerek çalıştırmadığınız sürece bu olağan değildir.
|
||||
- `auth_secretref_unresolved`: yapılandırılmış bir kimlik doğrulama SecretRef'i başarısız bir hedef için çözümlenemedi.
|
||||
- `probe_scope_limited`: WebSocket bağlantısı başarılı oldu, ancak okuma yoklaması eksik `operator.read` nedeniyle sınırlıydı.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
#### SSH üzerinden uzak (Mac uygulaması eşliği)
|
||||
|
||||
macOS uygulamasının "Remote over SSH" modu, uzak gateway'in (yalnızca loopback'e bağlı olabilir) `ws://127.0.0.1:<port>` adresinde erişilebilir olması için yerel port yönlendirme kullanır.
|
||||
macOS uygulamasının "SSH üzerinden uzak" modu, uzak gateway'in (yalnızca loopback'e bağlanmış olabilir) `ws://127.0.0.1:<port>` adresinde erişilebilir olmasını sağlamak için yerel bağlantı noktası yönlendirmesi kullanır.
|
||||
|
||||
CLI eşdeğeri:
|
||||
|
||||
@ -390,13 +391,13 @@ openclaw gateway probe --ssh user@gateway-host
|
||||
```
|
||||
|
||||
<ParamField path="--ssh <target>" type="string">
|
||||
`user@host` veya `user@host:port` (port varsayılanı `22`).
|
||||
`user@host` veya `user@host:port` (bağlantı noktası varsayılan olarak `22`).
|
||||
</ParamField>
|
||||
<ParamField path="--ssh-identity <path>" type="string">
|
||||
Kimlik dosyası.
|
||||
</ParamField>
|
||||
<ParamField path="--ssh-auto" type="boolean">
|
||||
Çözümlenen keşif uç noktasından (`local.` artı varsa yapılandırılmış geniş alan alan adı) keşfedilen ilk gateway ana makinesini SSH hedefi olarak seçer. Yalnızca TXT ipuçları yok sayılır.
|
||||
Çözümlenmiş keşif uç noktasından (`local.` artı varsa yapılandırılmış geniş alan etki alanı) ilk keşfedilen gateway ana makinesini SSH hedefi olarak seçin. Yalnızca TXT ipuçları yok sayılır.
|
||||
</ParamField>
|
||||
|
||||
Yapılandırma (isteğe bağlı, varsayılan olarak kullanılır):
|
||||
@ -414,13 +415,13 @@ openclaw gateway call logs.tail --params '{"sinceMs": 60000}'
|
||||
```
|
||||
|
||||
<ParamField path="--params <json>" type="string" default="{}">
|
||||
Params için JSON nesne dizesi.
|
||||
Parametreler için JSON nesne dizesi.
|
||||
</ParamField>
|
||||
<ParamField path="--url <url>" type="string">
|
||||
Gateway WebSocket URL'si.
|
||||
</ParamField>
|
||||
<ParamField path="--token <token>" type="string">
|
||||
Gateway token'ı.
|
||||
Gateway belirteci.
|
||||
</ParamField>
|
||||
<ParamField path="--password <password>" type="string">
|
||||
Gateway parolası.
|
||||
@ -429,7 +430,7 @@ openclaw gateway call logs.tail --params '{"sinceMs": 60000}'
|
||||
Zaman aşımı bütçesi.
|
||||
</ParamField>
|
||||
<ParamField path="--expect-final" type="boolean">
|
||||
Başlıca, nihai payload'dan önce ara olayları stream eden agent tarzı RPC'ler için.
|
||||
Esas olarak son yükten önce ara olaylar akışı yapan agent tarzı RPC'ler içindir.
|
||||
</ParamField>
|
||||
<ParamField path="--json" type="boolean">
|
||||
Makine tarafından okunabilir JSON çıktısı.
|
||||
@ -439,7 +440,7 @@ openclaw gateway call logs.tail --params '{"sinceMs": 60000}'
|
||||
`--params` geçerli JSON olmalıdır.
|
||||
</Note>
|
||||
|
||||
## Gateway servisini yönetme
|
||||
## Gateway hizmetini yönetin
|
||||
|
||||
```bash
|
||||
openclaw gateway install
|
||||
@ -449,11 +450,11 @@ openclaw gateway restart
|
||||
openclaw gateway uninstall
|
||||
```
|
||||
|
||||
### Wrapper ile kurma
|
||||
### Sarmalayıcıyla yükleyin
|
||||
|
||||
Yönetilen servisin başka bir çalıştırılabilir dosya üzerinden başlaması gerektiğinde `--wrapper` kullanın; örneğin bir
|
||||
gizli bilgi yöneticisi shim'i veya run-as yardımcısı. Wrapper, normal Gateway bağımsız değişkenlerini alır ve sonunda bu bağımsız değişkenlerle
|
||||
`openclaw` veya Node'u exec'lemekten sorumludur.
|
||||
Yönetilen hizmetin başka bir yürütülebilir dosya üzerinden başlaması gerekiyorsa `--wrapper` kullanın; örneğin bir
|
||||
gizli bilgi yöneticisi ara katmanı veya farklı kullanıcıyla çalıştırma yardımcısı. Sarmalayıcı normal Gateway argümanlarını alır ve
|
||||
sonunda bu argümanlarla `openclaw` veya Node'u exec etmekten sorumludur.
|
||||
|
||||
```bash
|
||||
cat > ~/.local/bin/openclaw-doppler <<'EOF'
|
||||
@ -467,16 +468,16 @@ openclaw gateway install --wrapper ~/.local/bin/openclaw-doppler --force
|
||||
openclaw gateway restart
|
||||
```
|
||||
|
||||
Wrapper'ı ortam üzerinden de ayarlayabilirsiniz. `gateway install`, yolun
|
||||
çalıştırılabilir bir dosya olduğunu doğrular, wrapper'ı servis `ProgramArguments` içine yazar ve daha sonraki zorunlu yeniden kurulumlar, güncellemeler ve doctor
|
||||
onarımları için servis ortamında `OPENCLAW_WRAPPER` değerini kalıcı hale getirir.
|
||||
Sarmalayıcıyı ortam üzerinden de ayarlayabilirsiniz. `gateway install`, yolun
|
||||
yürütülebilir bir dosya olduğunu doğrular, sarmalayıcıyı hizmet `ProgramArguments` içine yazar ve daha sonraki zorunlu yeniden kurulumlar, güncellemeler ve doctor
|
||||
onarımları için hizmet ortamında `OPENCLAW_WRAPPER` değerini kalıcı hale getirir.
|
||||
|
||||
```bash
|
||||
OPENCLAW_WRAPPER="$HOME/.local/bin/openclaw-doppler" openclaw gateway install --force
|
||||
openclaw doctor
|
||||
```
|
||||
|
||||
Kalıcı bir wrapper'ı kaldırmak için yeniden kurarken `OPENCLAW_WRAPPER` değerini temizleyin:
|
||||
Kalıcı bir sarmalayıcıyı kaldırmak için yeniden kurarken `OPENCLAW_WRAPPER` değerini temizleyin:
|
||||
|
||||
```bash
|
||||
OPENCLAW_WRAPPER= openclaw gateway install --force
|
||||
@ -484,26 +485,26 @@ openclaw gateway restart
|
||||
```
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Command options">
|
||||
<Accordion title="Komut seçenekleri">
|
||||
- `gateway status`: `--url`, `--token`, `--password`, `--timeout`, `--no-probe`, `--require-rpc`, `--deep`, `--json`
|
||||
- `gateway install`: `--port`, `--runtime <node|bun>`, `--token`, `--wrapper <path>`, `--force`, `--json`
|
||||
- `gateway restart`: `--safe`, `--force`, `--wait <duration>`, `--json`
|
||||
- `gateway uninstall|start|stop`: `--json`
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Lifecycle behavior">
|
||||
- Yönetilen bir servisi yeniden başlatmak için `gateway restart` kullanın. Yeniden başlatma yerine `gateway stop` ve `gateway start` komutlarını zincirlemeyin; macOS'ta `gateway stop`, durdurmadan önce LaunchAgent'ı kasıtlı olarak devre dışı bırakır.
|
||||
- `gateway restart --safe`, çalışan Gateway'den aktif OpenClaw işini ön denetlemesini ve yanıt teslimi, gömülü çalıştırmalar ve görev çalıştırmaları boşalana kadar yeniden başlatmayı ertelemesini ister. `--safe`, `--force` veya `--wait` ile birlikte kullanılamaz.
|
||||
- `gateway restart --wait 30s`, bu yeniden başlatma için yapılandırılmış restart drain bütçesini geçersiz kılar. Yalın sayılar milisaniyedir; `s`, `m` ve `h` gibi birimler kabul edilir. `--wait 0` süresiz bekler.
|
||||
- `gateway restart --force`, aktif iş drain'ini atlar ve hemen yeniden başlatır. Bir operator listelenen görev engelleyicilerini zaten incelediğinde ve gateway'i hemen geri istediğinde kullanın.
|
||||
<Accordion title="Yaşam döngüsü davranışı">
|
||||
- Yönetilen bir hizmeti yeniden başlatmak için `gateway restart` kullanın. Yeniden başlatma yerine `gateway stop` ve `gateway start` komutlarını zincirlemeyin; macOS'te `gateway stop`, durdurmadan önce LaunchAgent'ı bilerek devre dışı bırakır.
|
||||
- `gateway restart --safe`, çalışan Gateway'den etkin OpenClaw işlerini ön denetimden geçirmesini ve yanıt teslimi, gömülü çalıştırmalar ve görev çalıştırmaları boşalana kadar yeniden başlatmayı ertelemesini ister. `--safe`, `--force` veya `--wait` ile birlikte kullanılamaz.
|
||||
- `gateway restart --wait 30s`, bu yeniden başlatma için yapılandırılmış yeniden başlatma boşaltma bütçesini geçersiz kılar. Birimsiz sayılar milisaniyedir; `s`, `m` ve `h` gibi birimler kabul edilir. `--wait 0` süresiz bekler.
|
||||
- `gateway restart --force`, etkin iş boşaltmasını atlar ve hemen yeniden başlatır. Bir operator listelenen görev engelleyicilerini zaten incelemiş ve gateway'i hemen geri istiyorsa bunu kullanın.
|
||||
- Yaşam döngüsü komutları betikleme için `--json` kabul eder.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Kurulum sırasında kimlik doğrulama ve SecretRef'ler">
|
||||
- Token kimlik doğrulaması bir token gerektirdiğinde ve `gateway.auth.token` SecretRef tarafından yönetildiğinde, `gateway install` SecretRef'in çözümlenebilir olduğunu doğrular ancak çözümlenen token'ı hizmet ortamı metadata'sına kalıcı olarak yazmaz.
|
||||
- Token kimlik doğrulaması bir token gerektirdiğinde ve yapılandırılmış token SecretRef'i çözümlenemediğinde, kurulum yedek düz metni kalıcı olarak yazmak yerine güvenli biçimde başarısız olur.
|
||||
- `gateway run` üzerinde parola kimlik doğrulaması için satır içi `--password` yerine `OPENCLAW_GATEWAY_PASSWORD`, `--password-file` veya SecretRef destekli bir `gateway.auth.password` tercih edin.
|
||||
- Çıkarımlı kimlik doğrulama modunda, yalnızca kabukta ayarlanan `OPENCLAW_GATEWAY_PASSWORD` kurulum token gereksinimlerini gevşetmez; yönetilen bir hizmet kurarken kalıcı yapılandırma (`gateway.auth.password` veya yapılandırma `env`) kullanın.
|
||||
<Accordion title="Kurulum zamanında kimlik doğrulama ve SecretRefs">
|
||||
- Belirteç kimlik doğrulaması bir belirteç gerektirdiğinde ve `gateway.auth.token` SecretRef tarafından yönetildiğinde, `gateway install` SecretRef'in çözümlenebilir olduğunu doğrular ancak çözümlenen belirteci hizmet ortamı meta verilerine kalıcı olarak yazmaz.
|
||||
- Belirteç kimlik doğrulaması bir belirteç gerektiriyorsa ve yapılandırılmış belirteç SecretRef'i çözümlenemiyorsa, kurulum yedek düz metni kalıcı olarak yazmak yerine güvenli kapalı şekilde başarısız olur.
|
||||
- `gateway run` üzerinde parola kimlik doğrulaması için satır içi `--password` yerine `OPENCLAW_GATEWAY_PASSWORD`, `--password-file` veya SecretRef destekli `gateway.auth.password` tercih edin.
|
||||
- Çıkarımlı kimlik doğrulama modunda, yalnızca kabuktaki `OPENCLAW_GATEWAY_PASSWORD` kurulum belirteci gereksinimlerini gevşetmez; yönetilen bir hizmet kurarken kalıcı yapılandırma (`gateway.auth.password` veya yapılandırma `env`) kullanın.
|
||||
- Hem `gateway.auth.token` hem de `gateway.auth.password` yapılandırılmışsa ve `gateway.auth.mode` ayarlanmamışsa, mod açıkça ayarlanana kadar kurulum engellenir.
|
||||
|
||||
</Accordion>
|
||||
@ -511,20 +512,20 @@ openclaw gateway restart
|
||||
|
||||
## Gateway'leri keşfet (Bonjour)
|
||||
|
||||
`gateway discover`, Gateway işaretlerini (`_openclaw-gw._tcp`) tarar.
|
||||
`gateway discover`, Gateway işaretçilerini (`_openclaw-gw._tcp`) tarar.
|
||||
|
||||
- Multicast DNS-SD: `local.`
|
||||
- Unicast DNS-SD (Geniş Alan Bonjour): bir domain seçin (örnek: `openclaw.internal.`) ve split DNS + bir DNS sunucusu kurun; bkz. [Bonjour](/tr/gateway/bonjour).
|
||||
- Çok noktaya yayın DNS-SD: `local.`
|
||||
- Tekil yayın DNS-SD (Geniş Alan Bonjour): bir alan adı seçin (örnek: `openclaw.internal.`) ve bölünmüş DNS + bir DNS sunucusu kurun; bkz. [Bonjour](/tr/gateway/bonjour).
|
||||
|
||||
Yalnızca Bonjour keşfi etkinleştirilmiş (varsayılan) Gateway'ler işareti duyurur.
|
||||
Yalnızca Bonjour keşfi etkin olan (varsayılan) Gateway'ler işaretçiyi duyurur.
|
||||
|
||||
Geniş Alan keşif kayıtları şunları içerir (TXT):
|
||||
|
||||
- `role` (Gateway rol ipucu)
|
||||
- `transport` (aktarım ipucu, ör. `gateway`)
|
||||
- `gatewayPort` (WebSocket portu, genellikle `18789`)
|
||||
- `sshPort` (isteğe bağlı; istemciler bu olmadığında SSH hedeflerini varsayılan olarak `22` kabul eder)
|
||||
- `tailnetDns` (MagicDNS ana makine adı, mevcut olduğunda)
|
||||
- `gatewayPort` (WebSocket bağlantı noktası, genellikle `18789`)
|
||||
- `sshPort` (isteğe bağlı; istemciler eksik olduğunda varsayılan SSH hedeflerini `22` olarak ayarlar)
|
||||
- `tailnetDns` (varsa MagicDNS ana makine adı)
|
||||
- `gatewayTls` / `gatewayTlsSha256` (TLS etkin + sertifika parmak izi)
|
||||
- `cliPath` (geniş alan bölgesine yazılan uzak kurulum ipucu)
|
||||
|
||||
@ -538,7 +539,7 @@ openclaw gateway discover
|
||||
Komut başına zaman aşımı (browse/resolve).
|
||||
</ParamField>
|
||||
<ParamField path="--json" type="boolean">
|
||||
Makine tarafından okunabilir çıktı (stil/spinner kullanımını da devre dışı bırakır).
|
||||
Makine tarafından okunabilir çıktı (biçimlendirmeyi/döndürücüyü de devre dışı bırakır).
|
||||
</ParamField>
|
||||
|
||||
Örnekler:
|
||||
@ -549,13 +550,13 @@ openclaw gateway discover --json | jq '.beacons[].wsUrl'
|
||||
```
|
||||
|
||||
<Note>
|
||||
- CLI, `local.` ile birlikte etkinleştirilmişse yapılandırılmış geniş alan domain'ini tarar.
|
||||
- JSON çıktısındaki `wsUrl`, `lanHost` veya `tailnetDns` gibi yalnızca TXT ipuçlarından değil, çözümlenen hizmet endpoint'inden türetilir.
|
||||
- `local.` mDNS üzerinde, `sshPort` ve `cliPath` yalnızca `discovery.mdns.mode` değeri `full` olduğunda yayınlanır. Geniş alan DNS-SD yine de `cliPath` yazar; `sshPort` orada da isteğe bağlı kalır.
|
||||
- CLI, `local.` ile yapılandırılmış geniş alan alan adını, etkinleştirildiğinde birlikte tarar.
|
||||
- JSON çıktısındaki `wsUrl`, `lanHost` veya `tailnetDns` gibi yalnızca TXT ipuçlarından değil, çözümlenen hizmet uç noktasından türetilir.
|
||||
- `local.` mDNS üzerinde `sshPort` ve `cliPath` yalnızca `discovery.mdns.mode` değeri `full` olduğunda yayınlanır. Geniş alan DNS-SD yine de `cliPath` yazar; `sshPort` orada da isteğe bağlı kalır.
|
||||
|
||||
</Note>
|
||||
|
||||
## İlgili
|
||||
|
||||
- [CLI başvurusu](/tr/cli)
|
||||
- [CLI referansı](/tr/cli)
|
||||
- [Gateway runbook](/tr/gateway)
|
||||
|
||||
@ -1,21 +1,21 @@
|
||||
---
|
||||
read_when:
|
||||
- Ajan kancalarını yönetmek istiyorsunuz
|
||||
- Kancaların kullanılabilirliğini incelemek veya çalışma alanı kancalarını etkinleştirmek istiyorsunuz
|
||||
- Hook kullanılabilirliğini incelemek veya çalışma alanı hook'larını etkinleştirmek istiyorsunuz
|
||||
summary: '`openclaw hooks` için CLI referansı (ajan kancaları)'
|
||||
title: Kancalar
|
||||
x-i18n:
|
||||
generated_at: "2026-05-02T20:42:19Z"
|
||||
generated_at: "2026-05-05T08:25:31Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 3b02c176b4a310adba3fa1fde3758f6c8a19d454aeec58e919458b3f1a66c87d
|
||||
source_hash: 8e860d4a20a09526e804fa1aff8c983a75396fcd1e6e24f742252fdf1812f6b7
|
||||
source_path: cli/hooks.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
# `openclaw hooks`
|
||||
|
||||
Aracı kancalarını yönetin (`/new`, `/reset` ve gateway başlatma gibi komutlar için olay güdümlü otomasyonlar).
|
||||
Ajan kancalarını yönetin (`/new`, `/reset` ve Gateway başlatma gibi komutlar için olay güdümlü otomasyonlar).
|
||||
|
||||
Alt komut olmadan `openclaw hooks` çalıştırmak, `openclaw hooks list` ile eşdeğerdir.
|
||||
|
||||
@ -24,20 +24,20 @@ Alt komut olmadan `openclaw hooks` çalıştırmak, `openclaw hooks list` ile e
|
||||
- Kancalar: [Kancalar](/tr/automation/hooks)
|
||||
- Plugin kancaları: [Plugin kancaları](/tr/plugins/hooks)
|
||||
|
||||
## Tüm kancaları listeleme
|
||||
## Tüm kancaları listele
|
||||
|
||||
```bash
|
||||
openclaw hooks list
|
||||
```
|
||||
|
||||
Çalışma alanı, yönetilen, ek ve paketlenmiş dizinlerden bulunan tüm kancaları listeler.
|
||||
Çalışma alanı, yönetilen, ek ve birlikte gelen dizinlerden keşfedilen tüm kancaları listeleyin.
|
||||
Gateway başlatma, en az bir dahili kanca yapılandırılana kadar dahili kanca işleyicilerini yüklemez.
|
||||
|
||||
**Seçenekler:**
|
||||
|
||||
- `--eligible`: Yalnızca uygun kancaları gösterir (gereksinimler karşılandı)
|
||||
- `--json`: JSON olarak çıktı verir
|
||||
- `-v, --verbose`: Eksik gereksinimler dahil ayrıntılı bilgileri gösterir
|
||||
- `--eligible`: Yalnızca uygun kancaları göster (gereksinimler karşılandı)
|
||||
- `--json`: JSON olarak çıktı ver
|
||||
- `-v, --verbose`: Eksik gereksinimler dahil ayrıntılı bilgileri göster
|
||||
|
||||
**Örnek çıktı:**
|
||||
|
||||
@ -67,13 +67,13 @@ openclaw hooks list --json
|
||||
|
||||
Programatik kullanım için yapılandırılmış JSON döndürür.
|
||||
|
||||
## Kanca bilgilerini alma
|
||||
## Kanca bilgilerini al
|
||||
|
||||
```bash
|
||||
openclaw hooks info <name>
|
||||
```
|
||||
|
||||
Belirli bir kanca hakkında ayrıntılı bilgi gösterir.
|
||||
Belirli bir kanca hakkında ayrıntılı bilgi gösterin.
|
||||
|
||||
**Argümanlar:**
|
||||
|
||||
@ -81,7 +81,7 @@ Belirli bir kanca hakkında ayrıntılı bilgi gösterir.
|
||||
|
||||
**Seçenekler:**
|
||||
|
||||
- `--json`: JSON olarak çıktı verir
|
||||
- `--json`: JSON olarak çıktı ver
|
||||
|
||||
**Örnek:**
|
||||
|
||||
@ -107,17 +107,17 @@ Requirements:
|
||||
Config: ✓ workspace.dir
|
||||
```
|
||||
|
||||
## Kanca uygunluğunu denetleme
|
||||
## Kanca uygunluğunu denetle
|
||||
|
||||
```bash
|
||||
openclaw hooks check
|
||||
```
|
||||
|
||||
Kanca uygunluk durumunun özetini gösterir (kaç tanesi hazır, kaç tanesi hazır değil).
|
||||
Kanca uygunluk durumunun özetini gösterin (kaçının hazır, kaçının hazır olmadığı).
|
||||
|
||||
**Seçenekler:**
|
||||
|
||||
- `--json`: JSON olarak çıktı verir
|
||||
- `--json`: JSON olarak çıktı ver
|
||||
|
||||
**Örnek çıktı:**
|
||||
|
||||
@ -129,15 +129,15 @@ Ready: 4
|
||||
Not ready: 0
|
||||
```
|
||||
|
||||
## Bir kancayı etkinleştirme
|
||||
## Bir kancayı etkinleştir
|
||||
|
||||
```bash
|
||||
openclaw hooks enable <name>
|
||||
```
|
||||
|
||||
Belirli bir kancayı yapılandırmanıza ekleyerek etkinleştirir (varsayılan olarak `~/.openclaw/openclaw.json`).
|
||||
Belirli bir kancayı config dosyanıza ekleyerek etkinleştirin (varsayılan olarak `~/.openclaw/openclaw.json`).
|
||||
|
||||
**Not:** Çalışma alanı kancaları, burada veya yapılandırmada etkinleştirilene kadar varsayılan olarak devre dışıdır. Plugin'ler tarafından yönetilen kancalar `openclaw hooks list` içinde `plugin:<id>` olarak görünür ve burada etkinleştirilemez/devre dışı bırakılamaz. Bunun yerine Plugin'i etkinleştirin/devre dışı bırakın.
|
||||
**Not:** Çalışma alanı kancaları, burada veya config içinde etkinleştirilene kadar varsayılan olarak devre dışıdır. Plugin'ler tarafından yönetilen kancalar `openclaw hooks list` içinde `plugin:<id>` gösterir ve burada etkinleştirilemez/devre dışı bırakılamaz. Bunun yerine Plugin'i etkinleştirin/devre dışı bırakın.
|
||||
|
||||
**Argümanlar:**
|
||||
|
||||
@ -158,23 +158,23 @@ openclaw hooks enable session-memory
|
||||
**Ne yapar:**
|
||||
|
||||
- Kancanın var olup olmadığını ve uygun olup olmadığını denetler
|
||||
- Yapılandırmanızda `hooks.internal.entries.<name>.enabled = true` değerini günceller
|
||||
- Yapılandırmayı diske kaydeder
|
||||
- Config dosyanızda `hooks.internal.entries.<name>.enabled = true` değerini günceller
|
||||
- Config dosyasını diske kaydeder
|
||||
|
||||
Kanca `<workspace>/hooks/` konumundan geldiyse, Gateway'in onu yüklemesi için
|
||||
Kanca `<workspace>/hooks/` kaynağından geldiyse, Gateway bunu yüklemeden önce
|
||||
bu katılım adımı gereklidir.
|
||||
|
||||
**Etkinleştirdikten sonra:**
|
||||
|
||||
- Kancaların yeniden yüklenmesi için gateway'i yeniden başlatın (macOS'ta menü çubuğu uygulamasını yeniden başlatın veya geliştirme ortamında gateway sürecinizi yeniden başlatın).
|
||||
- Kancaların yeniden yüklenmesi için Gateway'i yeniden başlatın (macOS'ta menü çubuğu uygulamasını yeniden başlatın veya geliştirme ortamında Gateway sürecinizi yeniden başlatın).
|
||||
|
||||
## Bir kancayı devre dışı bırakma
|
||||
## Bir kancayı devre dışı bırak
|
||||
|
||||
```bash
|
||||
openclaw hooks disable <name>
|
||||
```
|
||||
|
||||
Yapılandırmanızı güncelleyerek belirli bir kancayı devre dışı bırakır.
|
||||
Config dosyanızı güncelleyerek belirli bir kancayı devre dışı bırakın.
|
||||
|
||||
**Argümanlar:**
|
||||
|
||||
@ -194,14 +194,14 @@ openclaw hooks disable command-logger
|
||||
|
||||
**Devre dışı bıraktıktan sonra:**
|
||||
|
||||
- Kancaların yeniden yüklenmesi için gateway'i yeniden başlatın
|
||||
- Kancaların yeniden yüklenmesi için Gateway'i yeniden başlatın
|
||||
|
||||
## Notlar
|
||||
|
||||
- `openclaw hooks list --json`, `info --json` ve `check --json`, yapılandırılmış JSON'u doğrudan stdout'a yazar.
|
||||
- Plugin tarafından yönetilen kancalar burada etkinleştirilemez veya devre dışı bırakılamaz; bunun yerine sahibi olan Plugin'i etkinleştirin veya devre dışı bırakın.
|
||||
|
||||
## Kanca paketlerini yükleme
|
||||
## Kanca paketlerini yükle
|
||||
|
||||
```bash
|
||||
openclaw plugins install <package> # npm by default
|
||||
@ -210,19 +210,18 @@ openclaw plugins install <package> --pin # pin version
|
||||
openclaw plugins install <path> # local path
|
||||
```
|
||||
|
||||
Kanca paketlerini birleşik plugins yükleyicisi üzerinden yükleyin.
|
||||
Birleşik plugins yükleyicisi üzerinden kanca paketleri yükleyin.
|
||||
|
||||
`openclaw hooks install` uyumluluk takma adı olarak hâlâ çalışır, ancak bir
|
||||
kullanımdan kaldırma uyarısı yazdırır ve `openclaw plugins install` komutuna yönlendirir.
|
||||
`openclaw hooks install` uyumluluk takma adı olarak çalışmaya devam eder, ancak bir
|
||||
kullanımdan kaldırma uyarısı yazdırır ve `openclaw plugins install` komutuna iletir.
|
||||
|
||||
Npm belirtimleri **yalnızca kayıt deposu** içindir (paket adı + isteğe bağlı **tam sürüm** veya
|
||||
Npm belirtimleri **yalnızca registry** içindir (paket adı + isteğe bağlı **tam sürüm** veya
|
||||
**dist-tag**). Git/URL/dosya belirtimleri ve semver aralıkları reddedilir. Bağımlılık
|
||||
yüklemeleri, kabuğunuzda global npm yükleme ayarları olsa bile güvenlik için
|
||||
`--ignore-scripts` ile proje yerelinde çalışır.
|
||||
yüklemeleri, kabuğunuzda global npm yükleme ayarları olsa bile güvenlik için `--ignore-scripts` ile proje yerelinde çalışır.
|
||||
|
||||
Yalın belirtimler ve `@latest` kararlı kanalda kalır. npm bunlardan herhangi birini
|
||||
ön sürüme çözümlerse OpenClaw durur ve `@beta`/`@rc` gibi bir ön sürüm etiketiyle
|
||||
veya tam bir ön sürümle açıkça katılım yapmanızı ister.
|
||||
Yalın belirtimler ve `@latest` kararlı kanalda kalır. npm bunlardan birini
|
||||
ön sürüme çözümlerse OpenClaw durur ve `@beta`/`@rc` gibi bir ön sürüm etiketi
|
||||
veya tam bir ön sürümle açıkça katılmanızı ister.
|
||||
|
||||
**Ne yapar:**
|
||||
|
||||
@ -232,8 +231,8 @@ veya tam bir ön sürümle açıkça katılım yapmanızı ister.
|
||||
|
||||
**Seçenekler:**
|
||||
|
||||
- `-l, --link`: Yerel dizini kopyalamak yerine bağlar (`hooks.internal.load.extraDirs` içine ekler)
|
||||
- `--pin`: npm yüklemelerini `hooks.internal.installs` içinde tam çözümlenen `name@version` olarak kaydeder
|
||||
- `-l, --link`: Kopyalamak yerine yerel bir dizini bağla (`hooks.internal.load.extraDirs` içine ekler)
|
||||
- `--pin`: npm yüklemelerini `hooks.internal.installs` içinde tam çözümlenmiş `name@version` olarak kaydet
|
||||
|
||||
**Desteklenen arşivler:** `.zip`, `.tgz`, `.tar.gz`, `.tar`
|
||||
|
||||
@ -253,10 +252,10 @@ openclaw plugins install @openclaw/my-hook-pack
|
||||
openclaw plugins install -l ./my-hook-pack
|
||||
```
|
||||
|
||||
Bağlanan kanca paketleri, çalışma alanı kancaları olarak değil, operatör tarafından yapılandırılmış
|
||||
bir dizinden gelen yönetilen kancalar olarak değerlendirilir.
|
||||
Bağlı kanca paketleri, çalışma alanı kancaları olarak değil, operatör tarafından yapılandırılmış
|
||||
bir dizinden gelen yönetilen kancalar olarak ele alınır.
|
||||
|
||||
## Kanca paketlerini güncelleme
|
||||
## Kanca paketlerini güncelle
|
||||
|
||||
```bash
|
||||
openclaw plugins update <id>
|
||||
@ -265,51 +264,51 @@ openclaw plugins update --all
|
||||
|
||||
İzlenen npm tabanlı kanca paketlerini birleşik plugins güncelleyicisi üzerinden güncelleyin.
|
||||
|
||||
`openclaw hooks update` uyumluluk takma adı olarak hâlâ çalışır, ancak bir
|
||||
kullanımdan kaldırma uyarısı yazdırır ve `openclaw plugins update` komutuna yönlendirir.
|
||||
`openclaw hooks update` uyumluluk takma adı olarak çalışmaya devam eder, ancak bir
|
||||
kullanımdan kaldırma uyarısı yazdırır ve `openclaw plugins update` komutuna iletir.
|
||||
|
||||
**Seçenekler:**
|
||||
|
||||
- `--all`: İzlenen tüm kanca paketlerini günceller
|
||||
- `--dry-run`: Yazmadan neyin değişeceğini gösterir
|
||||
- `--all`: İzlenen tüm kanca paketlerini güncelle
|
||||
- `--dry-run`: Yazmadan neyin değişeceğini göster
|
||||
|
||||
Saklanan bir bütünlük özeti varsa ve getirilen yapıtın özeti değişirse,
|
||||
Saklanan bir bütünlük hash'i varsa ve getirilen artifact hash'i değişirse,
|
||||
OpenClaw bir uyarı yazdırır ve devam etmeden önce onay ister. CI/etkileşimsiz çalıştırmalarda istemleri atlamak için
|
||||
global `--yes` kullanın.
|
||||
|
||||
## Paketlenmiş kancalar
|
||||
## Birlikte gelen kancalar
|
||||
|
||||
### session-memory
|
||||
|
||||
`/new` veya `/reset` verdiğinizde oturum bağlamını belleğe kaydeder.
|
||||
|
||||
**Etkinleştirme:**
|
||||
**Etkinleştir:**
|
||||
|
||||
```bash
|
||||
openclaw hooks enable session-memory
|
||||
```
|
||||
|
||||
**Çıktı:** `~/.openclaw/workspace/memory/YYYY-MM-DD-slug.md`
|
||||
**Çıktı:** Varsayılan olarak `~/.openclaw/workspace/memory/YYYY-MM-DD-HHMM.md`. Model tarafından oluşturulan dosya adı slug'ları için `hooks.internal.entries.session-memory.llmSlug: true` ayarlayın.
|
||||
|
||||
**Ayrıca bakın:** [session-memory belgeleri](/tr/automation/hooks#session-memory)
|
||||
**Bkz.:** [session-memory belgeleri](/tr/automation/hooks#session-memory)
|
||||
|
||||
### bootstrap-extra-files
|
||||
|
||||
`agent:bootstrap` sırasında ek bootstrap dosyaları (örneğin monorepo yerelinde `AGENTS.md` / `TOOLS.md`) enjekte eder.
|
||||
`agent:bootstrap` sırasında ek bootstrap dosyaları (örneğin monorepo-yerel `AGENTS.md` / `TOOLS.md`) enjekte eder.
|
||||
|
||||
**Etkinleştirme:**
|
||||
**Etkinleştir:**
|
||||
|
||||
```bash
|
||||
openclaw hooks enable bootstrap-extra-files
|
||||
```
|
||||
|
||||
**Ayrıca bakın:** [bootstrap-extra-files belgeleri](/tr/automation/hooks#bootstrap-extra-files)
|
||||
**Bkz.:** [bootstrap-extra-files belgeleri](/tr/automation/hooks#bootstrap-extra-files)
|
||||
|
||||
### command-logger
|
||||
|
||||
Tüm komut olaylarını merkezi bir denetim dosyasına kaydeder.
|
||||
|
||||
**Etkinleştirme:**
|
||||
**Etkinleştir:**
|
||||
|
||||
```bash
|
||||
openclaw hooks enable command-logger
|
||||
@ -317,7 +316,7 @@ openclaw hooks enable command-logger
|
||||
|
||||
**Çıktı:** `~/.openclaw/logs/commands.log`
|
||||
|
||||
**Günlükleri görüntüleme:**
|
||||
**Günlükleri görüntüle:**
|
||||
|
||||
```bash
|
||||
# Recent commands
|
||||
@ -330,21 +329,21 @@ cat ~/.openclaw/logs/commands.log | jq .
|
||||
grep '"action":"new"' ~/.openclaw/logs/commands.log | jq .
|
||||
```
|
||||
|
||||
**Ayrıca bakın:** [command-logger belgeleri](/tr/automation/hooks#command-logger)
|
||||
**Bkz.:** [command-logger belgeleri](/tr/automation/hooks#command-logger)
|
||||
|
||||
### boot-md
|
||||
|
||||
Gateway başladığında (kanallar başladıktan sonra) `BOOT.md` çalıştırır.
|
||||
Gateway başladığında (`channels` başladıktan sonra) `BOOT.md` çalıştırır.
|
||||
|
||||
**Olaylar**: `gateway:startup`
|
||||
|
||||
**Etkinleştirme**:
|
||||
**Etkinleştir**:
|
||||
|
||||
```bash
|
||||
openclaw hooks enable boot-md
|
||||
```
|
||||
|
||||
**Ayrıca bakın:** [boot-md belgeleri](/tr/automation/hooks#boot-md)
|
||||
**Bkz.:** [boot-md belgeleri](/tr/automation/hooks#boot-md)
|
||||
|
||||
## İlgili
|
||||
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
---
|
||||
read_when:
|
||||
- Kayıtlı oturumları listelemek ve son etkinlikleri görmek istiyorsunuz
|
||||
summary: '`openclaw sessions` için CLI referansı (kayıtlı oturumları listeleme + kullanım)'
|
||||
- Depolanan oturumları listelemek ve son etkinliği görmek istiyorsunuz
|
||||
summary: '`openclaw sessions` için CLI referansı (depolanmış oturumları listeleme + kullanım)'
|
||||
title: Oturumlar
|
||||
x-i18n:
|
||||
generated_at: "2026-05-05T01:44:22Z"
|
||||
generated_at: "2026-05-05T08:25:22Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 6eb484ab1fa7686cf42dd00e640c4ae8616c4ea1c29873ea72694d72b9c680e7
|
||||
source_hash: a204189952bc82788eb724c0a6b6db93c7d6795ad69bb6d498e8575236c3272e
|
||||
source_path: cli/sessions.md
|
||||
workflow: 16
|
||||
---
|
||||
@ -16,9 +16,9 @@ x-i18n:
|
||||
|
||||
Saklanan konuşma oturumlarını listeleyin.
|
||||
|
||||
Oturum listeleri kanal/sağlayıcı canlılık denetimleri değildir. Oturum depolarındaki kalıcı konuşma satırlarını gösterirler. Sessiz bir Discord, Slack, Telegram veya başka bir kanal, bir ileti işlenene kadar yeni bir oturum satırı oluşturmadan başarıyla yeniden bağlanabilir. Canlı kanal bağlantısına ihtiyaç duyduğunuzda `openclaw channels status --probe`, `openclaw status --deep` veya `openclaw health --verbose` kullanın.
|
||||
Oturum listeleri kanal/sağlayıcı canlılık kontrolleri değildir. Bunlar, oturum depolarından kalıcı hale getirilmiş konuşma satırlarını gösterir. Sessiz bir Discord, Slack, Telegram veya başka bir kanal, bir ileti işlenene kadar yeni bir oturum satırı oluşturmadan başarıyla yeniden bağlanabilir. Canlı kanal bağlantısına ihtiyaç duyduğunuzda `openclaw channels status --probe`, `openclaw status --deep` veya `openclaw health --verbose` kullanın.
|
||||
|
||||
`openclaw sessions` ve Gateway `sessions.list` yanıtları varsayılan olarak sınırlıdır; böylece büyük ve uzun ömürlü depolar CLI sürecini veya Gateway olay döngüsünü tek başına meşgul edemez. CLI varsayılan olarak en yeni 100 oturumu döndürür; daha küçük/daha büyük bir pencere için `--limit <n>` veya özellikle tam depoya ihtiyaç duyduğunuzda `--limit all` geçirin. JSON yanıtları, çağıranların daha fazla satır bulunduğunu göstermesi gerektiğinde `totalCount`, `limitApplied` ve `hasMore` içerir.
|
||||
`openclaw sessions` ve Gateway `sessions.list` yanıtları varsayılan olarak sınırlandırılır; böylece büyük ve uzun ömürlü depolar CLI sürecini veya Gateway olay döngüsünü tekeline alamaz. CLI varsayılan olarak en yeni 100 oturumu döndürür; daha küçük/daha büyük bir pencere için `--limit <n>`, bilerek tam depoya ihtiyaç duyduğunuzda ise `--limit all` geçirin. JSON yanıtları, çağıranların daha fazla satır bulunduğunu gösterebilmesi için `totalCount`, `limitApplied` ve `hasMore` içerir.
|
||||
|
||||
```bash
|
||||
openclaw sessions
|
||||
@ -32,23 +32,23 @@ openclaw sessions --json
|
||||
|
||||
Kapsam seçimi:
|
||||
|
||||
- varsayılan: yapılandırılmış varsayılan aracı deposu
|
||||
- varsayılan: yapılandırılmış varsayılan agent deposu
|
||||
- `--verbose`: ayrıntılı günlükleme
|
||||
- `--agent <id>`: yapılandırılmış tek bir aracı deposu
|
||||
- `--all-agents`: yapılandırılmış tüm aracı depolarını birleştir
|
||||
- `--store <path>`: açık depo yolu (`--agent` veya `--all-agents` ile birleştirilemez)
|
||||
- `--limit <n|all>`: çıktılanacak en fazla satır (varsayılan `100`; `all` tam çıktıyı geri getirir)
|
||||
- `--agent <id>`: yapılandırılmış tek bir agent deposu
|
||||
- `--all-agents`: yapılandırılmış tüm agent depolarını birleştir
|
||||
- `--store <path>`: açık depo yolu (`--agent` veya `--all-agents` ile birlikte kullanılamaz)
|
||||
- `--limit <n|all>`: çıktıdaki en fazla satır sayısı (varsayılan `100`; `all` tam çıktıyı geri getirir)
|
||||
|
||||
Saklanan bir oturum için trajectory paketini dışa aktarın:
|
||||
Saklanan bir oturum için trajectory paketi dışa aktarın:
|
||||
|
||||
```bash
|
||||
openclaw sessions export-trajectory --session-key "agent:main:telegram:direct:123" --workspace .
|
||||
openclaw sessions export-trajectory --session-key "agent:main:telegram:direct:123" --output bug-123 --json
|
||||
```
|
||||
|
||||
Bu, sahip exec isteğini onayladıktan sonra `/export-trajectory` slash komutu tarafından kullanılan komut yoludur. Çıktı dizini her zaman seçilen çalışma alanının altında `.openclaw/trajectory-exports/` içinde çözümlenir.
|
||||
Bu, sahip exec isteğini onayladıktan sonra `/export-trajectory` slash komutu tarafından kullanılan komut yoludur. Çıktı dizini her zaman seçili workspace altında `.openclaw/trajectory-exports/` içinde çözümlenir.
|
||||
|
||||
`openclaw sessions --all-agents` yapılandırılmış aracı depolarını okur. Gateway ve ACP oturum keşfi daha geniştir: varsayılan `agents/` kökü veya şablonlanmış bir `session.store` kökü altında bulunan yalnızca disk üzerindeki depoları da içerir. Keşfedilen bu depolar aracı kökü içinde normal `sessions.json` dosyalarına çözümlenmelidir; sembolik bağlantılar ve kök dışı yollar atlanır.
|
||||
`openclaw sessions --all-agents`, yapılandırılmış agent depolarını okur. Gateway ve ACP oturum keşfi daha geniştir: varsayılan `agents/` kökü veya şablonlanmış bir `session.store` kökü altında bulunan yalnızca diskteki depoları da içerirler. Keşfedilen bu depolar, agent kökü içinde normal `sessions.json` dosyalarına çözümlenmelidir; symlink'ler ve kök dışı yollar atlanır.
|
||||
|
||||
JSON örnekleri:
|
||||
|
||||
@ -76,7 +76,7 @@ JSON örnekleri:
|
||||
|
||||
## Temizlik bakımı
|
||||
|
||||
Bakımı şimdi çalıştırın (bir sonraki yazma döngüsünü beklemek yerine):
|
||||
Bakımı şimdi çalıştırın (sonraki yazma döngüsünü beklemek yerine):
|
||||
|
||||
```bash
|
||||
openclaw sessions cleanup --dry-run
|
||||
@ -87,21 +87,22 @@ openclaw sessions cleanup --enforce --active-key "agent:main:telegram:direct:123
|
||||
openclaw sessions cleanup --json
|
||||
```
|
||||
|
||||
`openclaw sessions cleanup`, config içindeki `session.maintenance` ayarlarını kullanır:
|
||||
`openclaw sessions cleanup`, yapılandırmadaki `session.maintenance` ayarlarını kullanır:
|
||||
|
||||
- Kapsam notu: `openclaw sessions cleanup` oturum depolarını, transkriptleri ve trajectory yan dosyalarını korur. [Cron yapılandırması](/tr/automation/cron-jobs#configuration) içinde `cron.runLog.maxBytes` ve `cron.runLog.keepLines` tarafından yönetilen ve [Cron bakımı](/tr/automation/cron-jobs#maintenance) içinde açıklanan cron çalıştırma günlüklerini (`cron/runs/<jobId>.jsonl`) budamaz.
|
||||
- Kapsam notu: `openclaw sessions cleanup` oturum depolarının, transkriptlerin ve trajectory sidecar'larının bakımını yapar. [Cron yapılandırması](/tr/automation/cron-jobs#configuration) içinde `cron.runLog.maxBytes` ve `cron.runLog.keepLines` tarafından yönetilen ve [Cron bakımı](/tr/automation/cron-jobs#maintenance) içinde açıklanan Cron çalıştırma günlüklerini (`cron/runs/<jobId>.jsonl`) budamaz.
|
||||
- Temizlik ayrıca referans verilmeyen birincil transkriptleri, Compaction checkpoint'lerini ve `session.maintenance.pruneAfter` değerinden eski trajectory sidecar'larını budar; `sessions.json` tarafından hâlâ referans verilen dosyalar korunur.
|
||||
|
||||
- `--dry-run`: yazmadan kaç girdinin budanacağını/sınırlanacağını önizleyin.
|
||||
- Metin modunda dry-run, neyin tutulacağını ve neyin kaldırılacağını görebilmeniz için oturum başına bir eylem tablosu (`Action`, `Key`, `Age`, `Model`, `Flags`) yazdırır.
|
||||
- `--enforce`: `session.maintenance.mode` `warn` olduğunda bile bakımı uygula.
|
||||
- `--fix-missing`: transkript dosyaları eksik olan girdileri, normalde henüz yaş/sayı sınırını aşmayacak olsalar bile kaldır.
|
||||
- `--active-key <key>`: belirli bir etkin anahtarı disk bütçesi tahliyesinden koru. Grup oturumları ve iş parçacığı kapsamlı sohbet oturumları gibi dayanıklı harici konuşma işaretçileri de yaş/sayı/disk bütçesi bakımı tarafından tutulur.
|
||||
- `--agent <id>`: yapılandırılmış tek bir aracı deposu için temizlik çalıştır.
|
||||
- `--all-agents`: yapılandırılmış tüm aracı depoları için temizlik çalıştır.
|
||||
- `--dry-run`: yazmadan kaç girdinin budanacağını/sınırlandırılacağını önizleyin.
|
||||
- Metin modunda dry-run, neyin tutulup neyin kaldırılacağını görebilmeniz için oturum başına bir eylem tablosu (`Action`, `Key`, `Age`, `Model`, `Flags`) yazdırır.
|
||||
- `--enforce`: `session.maintenance.mode` `warn` olsa bile bakımı uygula.
|
||||
- `--fix-missing`: transkript dosyaları eksik olan girdileri, normalde henüz yaş/sayı sınırına takılmayacak olsalar bile kaldır.
|
||||
- `--active-key <key>`: belirli bir etkin anahtarı disk bütçesi nedeniyle çıkarılmaya karşı koru. Grup oturumları ve iş parçacığı kapsamlı sohbet oturumları gibi dayanıklı harici konuşma işaretçileri de yaş/sayı/disk bütçesi bakımı tarafından tutulur.
|
||||
- `--agent <id>`: yapılandırılmış tek bir agent deposu için temizlik çalıştır.
|
||||
- `--all-agents`: yapılandırılmış tüm agent depoları için temizlik çalıştır.
|
||||
- `--store <path>`: belirli bir `sessions.json` dosyasına karşı çalıştır.
|
||||
- `--json`: JSON özeti yazdır. `--all-agents` ile çıktı, depo başına bir özet içerir.
|
||||
|
||||
Bir Gateway erişilebilir olduğunda, yapılandırılmış aracı depoları için dry-run olmayan temizlik Gateway üzerinden gönderilir; böylece çalışma zamanı trafiğiyle aynı oturum deposu yazıcısını paylaşır. Bir depo dosyasının açık çevrimdışı onarımı için `--store <path>` kullanın.
|
||||
Bir Gateway erişilebilir olduğunda, yapılandırılmış agent depoları için dry-run olmayan temizlik Gateway üzerinden gönderilir; böylece runtime trafiğiyle aynı oturum deposu yazıcısını paylaşır. Bir depo dosyasının açık çevrimdışı onarımı için `--store <path>` kullanın.
|
||||
|
||||
`openclaw sessions cleanup --all-agents --dry-run --json`:
|
||||
|
||||
@ -133,9 +134,9 @@ Bir Gateway erişilebilir olduğunda, yapılandırılmış aracı depoları içi
|
||||
|
||||
İlgili:
|
||||
|
||||
- Oturum config'i: [Yapılandırma başvurusu](/tr/gateway/config-agents#session)
|
||||
- Oturum yapılandırması: [Yapılandırma referansı](/tr/gateway/config-agents#session)
|
||||
|
||||
## İlgili
|
||||
|
||||
- [CLI başvurusu](/tr/cli)
|
||||
- [CLI referansı](/tr/cli)
|
||||
- [Oturum yönetimi](/tr/concepts/session)
|
||||
|
||||
@ -1,65 +1,65 @@
|
||||
---
|
||||
read_when:
|
||||
- OpenClaw hataları için canlı görsel QA oluşturma veya çalıştırma
|
||||
- Bir çekme isteği için önce ve sonra doğrulama ekleme
|
||||
- Discord, Slack, WhatsApp veya diğer canlı taşıma senaryoları ekleme
|
||||
- Bir çekme isteği için önce ve sonra doğrulaması ekleme
|
||||
- Discord, Slack, WhatsApp veya diğer canlı aktarım senaryolarını ekleme
|
||||
- Ekran görüntüleri, tarayıcı otomasyonu veya VNC erişimi gerektiren QA çalıştırmalarında hata ayıklama
|
||||
summary: Mantis, OpenClaw hatalarını canlı iletim kanallarında yeniden üretmek, öncesi ve sonrası kanıtları yakalamak ve artefaktları PR'lere eklemek için kullanılan görsel uçtan uca doğrulama sistemidir.
|
||||
summary: Mantis, canlı taşıma katmanlarında OpenClaw hatalarını yeniden üretmek, öncesi ve sonrası kanıtları yakalamak ve artefaktları PR'lara eklemek için kullanılan görsel uçtan uca doğrulama sistemidir.
|
||||
title: Peygamberdevesi
|
||||
x-i18n:
|
||||
generated_at: "2026-05-05T06:16:35Z"
|
||||
generated_at: "2026-05-05T08:25:46Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 26a9671135e38bf82d3627364f691f8d91cc8649ffc2e5fa782ebef474a44fa1
|
||||
source_hash: 6b287e2832e3e49de6b3cb65aeb1d381a36fc30ce9c94dc5b6b4d7e928c2706c
|
||||
source_path: concepts/mantis.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
Mantis, gerçek bir çalışma zamanı, gerçek bir taşıma ve görünür kanıt gerektiren hatalar için OpenClaw uçtan uca doğrulama sistemidir. Kötü olduğu bilinen bir referansa karşı bir senaryo çalıştırır, kanıtları yakalar, aynı senaryoyu bir aday referansa karşı çalıştırır ve karşılaştırmayı, bir bakımcının bir PR'dan veya yerel bir komuttan inceleyebileceği yapıtlar olarak yayımlar.
|
||||
Mantis, gerçek bir çalışma zamanı, gerçek bir taşıma ve görünür kanıt gerektiren hatalar için OpenClaw uçtan uca doğrulama sistemidir. Bilinen kötü bir ref üzerinde bir senaryo çalıştırır, kanıt yakalar, aynı senaryoyu aday ref üzerinde çalıştırır ve karşılaştırmayı bir bakımcının bir PR'den veya yerel bir komuttan inceleyebileceği artefaktlar olarak yayımlar.
|
||||
|
||||
Mantis, Discord ile başlar çünkü Discord bize yüksek değerli bir ilk hat sağlar: gerçek bot kimlik doğrulaması, gerçek sunucu kanalları, tepkiler, ileti dizileri, yerel komutlar ve insanların taşımanın ne gösterdiğini görsel olarak doğrulayabileceği bir tarayıcı arayüzü.
|
||||
Mantis Discord ile başlar çünkü Discord bize yüksek değerli bir ilk hat sağlar: gerçek bot kimlik doğrulaması, gerçek guild kanalları, tepkiler, iş parçacıkları, yerel komutlar ve insanların taşımanın ne gösterdiğini görsel olarak doğrulayabileceği bir tarayıcı UI'si.
|
||||
|
||||
## Hedefler
|
||||
|
||||
- Bir GitHub sorunu veya PR'daki bir hatayı, kullanıcıların gördüğü aynı taşıma biçimiyle yeniden üretmek.
|
||||
- Düzeltmeyi uygulamadan önce temel referansta bir **önce** yapıtı yakalamak.
|
||||
- Düzeltmeyi uyguladıktan sonra aday referansta bir **sonra** yapıtı yakalamak.
|
||||
- Mümkün olduğunda Discord REST tepkisi okuması veya kanal dökümü denetimi gibi deterministik bir doğrulama ölçütü kullanmak.
|
||||
- Bir GitHub issue'sundan veya PR'den gelen bir hatayı, kullanıcıların gördüğü aynı taşıma şekliyle yeniden üretmek.
|
||||
- Düzeltmeyi uygulamadan önce temel ref üzerinde bir **önce** artefaktı yakalamak.
|
||||
- Düzeltmeyi uyguladıktan sonra aday ref üzerinde bir **sonra** artefaktı yakalamak.
|
||||
- Mümkün olduğunda Discord REST tepki okuması veya kanal transkripti kontrolü gibi deterministik bir doğrulama ölçütü kullanmak.
|
||||
- Hatanın görünür bir UI yüzeyi olduğunda ekran görüntüleri yakalamak.
|
||||
- Bir aracı kontrollü CLI'dan yerel olarak ve GitHub'dan uzaktan çalıştırmak.
|
||||
- Oturum açma, tarayıcı otomasyonu veya sağlayıcı kimlik doğrulaması takıldığında VNC kurtarması için yeterli makine durumunu korumak.
|
||||
- Ajan denetimli CLI'dan yerel olarak ve GitHub'dan uzaktan çalıştırmak.
|
||||
- Oturum açma, tarayıcı otomasyonu veya sağlayıcı kimlik doğrulaması takıldığında VNC kurtarma için yeterli makine durumunu korumak.
|
||||
- Çalıştırma engellendiğinde, manuel VNC yardımı gerektiğinde veya bittiğinde bir operatör Discord kanalına kısa durum göndermek.
|
||||
|
||||
## Hedef Dışı
|
||||
## Hedef Dışı Olanlar
|
||||
|
||||
- Mantis, birim testlerinin yerine geçmez. Bir Mantis çalıştırması, düzeltme anlaşıldıktan sonra genellikle daha küçük bir regresyon testi haline gelmelidir.
|
||||
- Mantis, normal hızlı CI kapısı değildir. Daha yavaştır, canlı kimlik bilgileri kullanır ve canlı ortamın önemli olduğu hatalar için ayrılmıştır.
|
||||
- Mantis normal çalışmada insan gerektirmemelidir. Manuel VNC, mutlu yol değil bir kurtarma yoludur.
|
||||
- Mantis, ham gizli bilgileri yapıtlarda, günlüklerde, ekran görüntülerinde, Markdown raporlarında veya PR yorumlarında saklamaz.
|
||||
- Mantis birim testlerinin yerine geçmez. Bir Mantis çalıştırması, düzeltme anlaşıldıktan sonra genellikle daha küçük bir regresyon testine dönüşmelidir.
|
||||
- Mantis normal hızlı CI kapısı değildir. Daha yavaştır, canlı kimlik bilgileri kullanır ve canlı ortamın önemli olduğu hatalar için ayrılmıştır.
|
||||
- Mantis normal çalışma için bir insan gerektirmemelidir. Manuel VNC, mutlu yol değil bir kurtarma yoludur.
|
||||
- Mantis artefaktlarda, günlüklerde, ekran görüntülerinde, Markdown raporlarında veya PR yorumlarında ham sır saklamaz.
|
||||
|
||||
## Sahiplik
|
||||
|
||||
Mantis, OpenClaw QA yığınında bulunur.
|
||||
Mantis, OpenClaw QA yığınında yaşar.
|
||||
|
||||
- OpenClaw, `pnpm openclaw qa mantis` altındaki senaryo çalışma zamanına, taşıma bağdaştırıcılarına, kanıt şemasına ve yerel CLI'a sahiptir.
|
||||
- QA Lab, canlı taşıma koşum parçalarına, tarayıcı yakalama yardımcılarına ve yapıt yazıcılarına sahiptir.
|
||||
- Crabbox, uzak bir VM gerektiğinde ısıtılmış Linux makinelerine sahiptir.
|
||||
- GitHub Actions, uzak iş akışı giriş noktasına ve yapıt saklamaya sahiptir.
|
||||
- ClawSweeper, GitHub yorum yönlendirmesine sahiptir: bakımcı komutlarını ayrıştırma, iş akışını gönderme ve son PR yorumunu gönderme.
|
||||
- OpenClaw aracıları, bir senaryo aracılı kurulum, hata ayıklama veya takılı durum raporlaması gerektirdiğinde Codex üzerinden Mantis'i yürütür.
|
||||
- OpenClaw, `pnpm openclaw qa mantis` altındaki senaryo çalışma zamanının, taşıma adaptörlerinin, kanıt şemasının ve yerel CLI'ın sahibidir.
|
||||
- QA Lab, canlı taşıma harness parçalarının, tarayıcı yakalama yardımcılarının ve artefakt yazıcılarının sahibidir.
|
||||
- Crabbox, uzak bir VM gerektiğinde ısıtılmış Linux makinelerinin sahibidir.
|
||||
- GitHub Actions, uzak workflow giriş noktasının ve artefakt saklamanın sahibidir.
|
||||
- ClawSweeper, GitHub yorum yönlendirmesinin sahibidir: bakımcı komutlarını ayrıştırma, workflow'u dispatch etme ve son PR yorumunu gönderme.
|
||||
- OpenClaw ajanları, bir senaryo ajanik kurulum, hata ayıklama veya takılı durum raporlaması gerektirdiğinde Mantis'i Codex üzerinden yürütür.
|
||||
|
||||
Bu sınır, taşıma bilgisini OpenClaw'da, makine zamanlamasını Crabbox'ta ve bakımcı iş akışı bağlayıcısını ClawSweeper'da tutar.
|
||||
Bu sınır, taşıma bilgisini OpenClaw'da, makine zamanlamasını Crabbox'ta ve bakımcı workflow bağlayıcısını ClawSweeper'da tutar.
|
||||
|
||||
## Komut Biçimi
|
||||
## Komut Şekli
|
||||
|
||||
İlk yerel komut Discord botunu, sunucuyu, kanalı, mesaj göndermeyi, tepki göndermeyi ve yapıt yolunu doğrular:
|
||||
İlk yerel komut Discord botunu, guild'i, kanalı, mesaj göndermeyi, tepki göndermeyi ve artefakt yolunu doğrular:
|
||||
|
||||
```bash
|
||||
pnpm openclaw qa mantis discord-smoke \
|
||||
--output-dir .artifacts/qa-e2e/mantis/discord-smoke
|
||||
```
|
||||
|
||||
Yerel önce ve sonra çalıştırıcısı şu biçimi kabul eder:
|
||||
Yerel önce ve sonra çalıştırıcısı şu şekli kabul eder:
|
||||
|
||||
```bash
|
||||
pnpm openclaw qa mantis run \
|
||||
@ -70,26 +70,26 @@ pnpm openclaw qa mantis run \
|
||||
--output-dir .artifacts/qa-e2e/mantis/local-discord-status-reactions
|
||||
```
|
||||
|
||||
Çalıştırıcı, çıktı dizini altında ayrılmış temel referans ve aday çalışma ağaçları oluşturur, bağımlılıkları kurar, her referansı derler, senaryoyu `--allow-failures` ile çalıştırır, ardından `baseline/`, `candidate/`, `comparison.json` ve `mantis-report.md` yazar. İlk Discord senaryosu için başarılı bir doğrulama, temel referans durumunun `fail` ve aday durumunun `pass` olduğu anlamına gelir.
|
||||
Çalıştırıcı, çıktı dizini altında ayrılmış temel ve aday çalışma ağaçları oluşturur, bağımlılıkları kurar, her ref'i derler, senaryoyu `--allow-failures` ile çalıştırır, ardından `baseline/`, `candidate/`, `comparison.json` ve `mantis-report.md` yazar. İlk Discord senaryosu için başarılı bir doğrulama, temel durumunun `fail` ve aday durumunun `pass` olması demektir.
|
||||
|
||||
İlk VM/tarayıcı ilkeli masaüstü duman testidir:
|
||||
İlk VM/tarayıcı ilkel öğesi masaüstü smoke testidir:
|
||||
|
||||
```bash
|
||||
pnpm openclaw qa mantis desktop-browser-smoke \
|
||||
--output-dir .artifacts/qa-e2e/mantis/desktop-browser
|
||||
```
|
||||
|
||||
Bir Crabbox masaüstü makinesini kiralar veya yeniden kullanır, VNC oturumu içinde görünür bir tarayıcı başlatır, masaüstünü yakalar, yapıtları yerel çıktı dizinine geri çeker ve yeniden bağlanma komutunu rapora yazar. Komut varsayılan olarak Hetzner sağlayıcısını kullanır çünkü Mantis hattında çalışan masaüstü/VNC kapsamına sahip ilk sağlayıcı odur. Başka bir Crabbox filosuna karşı çalıştırırken bunu `--provider`, `--crabbox-bin` veya `OPENCLAW_MANTIS_CRABBOX_PROVIDER` ile geçersiz kılın.
|
||||
Bir Crabbox masaüstü makinesi kiralar veya yeniden kullanır, VNC oturumu içinde görünür bir tarayıcı başlatır, masaüstünü yakalar, artefaktları yerel çıktı dizinine geri çeker ve yeniden bağlanma komutunu rapora yazar. Komut varsayılan olarak Hetzner sağlayıcısını kullanır çünkü Mantis hattında çalışan masaüstü/VNC kapsamına sahip ilk sağlayıcı odur. Başka bir Crabbox filosuna karşı çalıştırırken bunu `--provider`, `--crabbox-bin` veya `OPENCLAW_MANTIS_CRABBOX_PROVIDER` ile geçersiz kılın.
|
||||
|
||||
Yararlı masaüstü duman testi bayrakları:
|
||||
Yararlı masaüstü smoke bayrakları:
|
||||
|
||||
- `--lease-id <cbx_...>` veya `OPENCLAW_MANTIS_CRABBOX_LEASE_ID` ısıtılmış bir masaüstünü yeniden kullanır.
|
||||
- `--browser-url <url>` görünür tarayıcıda açılan sayfayı değiştirir.
|
||||
- `--html-file <path>` repo yerelindeki bir HTML yapıtını görünür tarayıcıda işler. Mantis bunu, oluşturulan Discord durum-tepki zaman çizelgesini gerçek bir Crabbox masaüstü üzerinden yakalamak için kullanır.
|
||||
- `--keep-lease` veya `OPENCLAW_MANTIS_KEEP_VM=1`, yeni oluşturulan başarılı bir kiralamayı VNC incelemesi için açık tutar. Başarısız çalıştırmalar, bir operatörün yeniden bağlanabilmesi için oluşturulmuşsa kiralamayı varsayılan olarak tutar.
|
||||
- `--html-file <path>` repo-yerel bir HTML artefaktını görünür tarayıcıda işler. Mantis bunu, oluşturulan Discord durum-tepki zaman çizelgesini gerçek bir Crabbox masaüstü üzerinden yakalamak için kullanır.
|
||||
- `--keep-lease` veya `OPENCLAW_MANTIS_KEEP_VM=1` yeni oluşturulan başarılı bir kiralamayı VNC incelemesi için açık tutar. Başarısız çalıştırmalar, bir operatörün yeniden bağlanabilmesi için oluşturulmuşsa kiralamayı varsayılan olarak tutar.
|
||||
- `--class`, `--idle-timeout` ve `--ttl` makine boyutunu ve kiralama ömrünü ayarlar.
|
||||
|
||||
İlk tam masaüstü taşıma ilkeli Slack masaüstü duman testidir:
|
||||
İlk tam masaüstü taşıma ilkel öğesi Slack masaüstü smoke testidir:
|
||||
|
||||
```bash
|
||||
pnpm openclaw qa mantis slack-desktop-smoke \
|
||||
@ -99,9 +99,9 @@ pnpm openclaw qa mantis slack-desktop-smoke \
|
||||
--keep-lease
|
||||
```
|
||||
|
||||
Bir Crabbox masaüstü makinesini kiralar veya yeniden kullanır, mevcut checkout'u VM içine senkronize eder, VM içinde `pnpm openclaw qa slack` çalıştırır, VNC tarayıcısında Slack Web'i açar, görünür masaüstünü yakalar ve hem Slack QA yapıtlarını hem de VNC ekran görüntüsünü yerel çıktı dizinine kopyalar. Bu, SUT OpenClaw Gateway'in ve tarayıcının aynı Linux masaüstü VM içinde yaşadığı ilk Mantis biçimidir.
|
||||
Bir Crabbox masaüstü makinesi kiralar veya yeniden kullanır, mevcut checkout'u VM içine eşitler, o VM içinde `pnpm openclaw qa slack` çalıştırır, VNC tarayıcısında Slack Web'i açar, görünür masaüstünü yakalar ve hem Slack QA artefaktlarını hem de VNC ekran görüntüsünü yerel çıktı dizinine geri kopyalar. Bu, SUT OpenClaw gateway'in ve tarayıcının aynı Linux masaüstü VM içinde yaşadığı ilk Mantis şeklidir.
|
||||
|
||||
`--gateway-setup` ile komut `$HOME/.openclaw-mantis/slack-openclaw` konumunda kalıcı ve atılabilir bir OpenClaw ana dizini hazırlar, seçilen kanal için Slack Socket Mode yapılandırmasını yamalar, `38973` portunda `openclaw gateway run` başlatır ve Chrome'u VNC oturumunda çalışır halde tutar. Bu, "bana Slack ve çalışan bir claw olan bir Linux masaüstü bırak" modudur; `--gateway-setup` atlandığında bot-bota Slack QA hattı varsayılan olarak kalır.
|
||||
`--gateway-setup` ile komut, `$HOME/.openclaw-mantis/slack-openclaw` konumunda kalıcı ve atılabilir bir OpenClaw home hazırlar, seçilen kanal için Slack Socket Mode yapılandırmasını yamalar, `38973` portunda `openclaw gateway run` başlatır ve Chrome'u VNC oturumunda çalışır durumda tutar. Bu, "bana Slack ve çalışan bir claw bulunan bir Linux masaüstü bırak" modudur; `--gateway-setup` atlandığında bot'tan bot'a Slack QA hattı varsayılan olarak kalır.
|
||||
|
||||
`--credential-source env` için gerekli girdiler:
|
||||
|
||||
@ -109,24 +109,70 @@ Bir Crabbox masaüstü makinesini kiralar veya yeniden kullanır, mevcut checkou
|
||||
- `OPENCLAW_QA_SLACK_DRIVER_BOT_TOKEN`
|
||||
- `OPENCLAW_QA_SLACK_SUT_BOT_TOKEN`
|
||||
- `OPENCLAW_QA_SLACK_SUT_APP_TOKEN`
|
||||
- Uzak model hattı için `OPENCLAW_LIVE_OPENAI_KEY`. Yerel olarak yalnızca `OPENAI_API_KEY` ayarlanmışsa, Mantis Crabbox'ı çağırmadan önce bunu `OPENCLAW_LIVE_OPENAI_KEY` olarak eşler; böylece Crabbox'ın `OPENCLAW_*` env iletimi bunu VM içine taşıyabilir.
|
||||
- Uzak model hattı için `OPENCLAW_LIVE_OPENAI_KEY`. Yerel olarak yalnızca `OPENAI_API_KEY` ayarlıysa Mantis, Crabbox'ı çağırmadan önce bunu `OPENCLAW_LIVE_OPENAI_KEY` olarak eşler; böylece Crabbox'ın `OPENCLAW_*` env iletimi bunu VM'e taşıyabilir.
|
||||
|
||||
Yararlı Slack masaüstü bayrakları:
|
||||
|
||||
- `--lease-id <cbx_...>` bir operatörün VNC üzerinden Slack Web'e zaten giriş yaptığı bir makineye karşı yeniden çalıştırır.
|
||||
- `--gateway-setup`, yalnızca bot-bota QA hattını çalıştırmak yerine VM içinde kalıcı bir OpenClaw Slack Gateway başlatır.
|
||||
- `--slack-url <url>` belirli bir Slack Web URL'si açar. Bu olmadan Mantis, SUT bot tokenı kullanılabilir olduğunda Slack `auth.test` üzerinden `https://app.slack.com/client/<team>/<channel>` türetir.
|
||||
- `--slack-channel-id <id>` Gateway kurulumu tarafından kullanılan Slack kanal izin listesini denetler.
|
||||
- `OPENCLAW_MANTIS_SLACK_BROWSER_PROFILE_DIR` VM içindeki kalıcı Chrome profilini denetler. Varsayılan `$HOME/.config/openclaw-mantis/slack-chrome-profile` olduğundan, manuel Slack Web oturumu aynı kiralamadaki yeniden çalıştırmalarda korunur.
|
||||
- `--credential-source convex --credential-role ci` doğrudan Slack env tokenları yerine paylaşılan kimlik bilgisi havuzunu kullanır.
|
||||
- `--provider-mode`, `--model`, `--alt-model` ve `--fast` Slack canlı hattına aktarılır.
|
||||
- `--gateway-setup` yalnızca bot'tan bot'a QA hattını çalıştırmak yerine VM içinde kalıcı bir OpenClaw Slack gateway başlatır.
|
||||
- `--slack-url <url>` belirli bir Slack Web URL'si açar. Bu olmadan Mantis, SUT bot token'ı kullanılabiliyorsa Slack `auth.test` içinden `https://app.slack.com/client/<team>/<channel>` türetir.
|
||||
- `--slack-channel-id <id>` gateway kurulumu tarafından kullanılan Slack kanal allowlist'ini denetler.
|
||||
- `OPENCLAW_MANTIS_SLACK_BROWSER_PROFILE_DIR` VM içindeki kalıcı Chrome profilini denetler. Varsayılan değer `$HOME/.config/openclaw-mantis/slack-chrome-profile` olduğundan manuel Slack Web oturumu aynı kiralamadaki yeniden çalıştırmalarda korunur.
|
||||
- `--credential-source convex --credential-role ci` doğrudan Slack env token'ları yerine paylaşılan kimlik bilgisi havuzunu kullanır.
|
||||
- `--provider-mode`, `--model`, `--alt-model` ve `--fast` Slack canlı hattına geçirilir.
|
||||
|
||||
GitHub duman testi iş akışı `Mantis Discord Smoke` adındadır. İlk gerçek senaryo için önce ve sonra GitHub iş akışı `Mantis Discord Status Reactions` adındadır. Şunları kabul eder:
|
||||
GitHub smoke workflow'u `Mantis Discord Smoke`'tur. İlk gerçek senaryo için önce ve sonra GitHub workflow'u `Mantis Discord Status Reactions`'tır. Şunları kabul eder:
|
||||
|
||||
- `baseline_ref`: yalnızca kuyruğa alınmış davranışı yeniden üretmesi beklenen referans.
|
||||
- `candidate_ref`: `queued -> thinking -> done` göstermesi beklenen referans.
|
||||
- `baseline_ref`: yalnızca kuyruğa alınmış davranışı yeniden üretmesi beklenen ref.
|
||||
- `candidate_ref`: `queued -> thinking -> done` göstermesi beklenen ref.
|
||||
|
||||
İş akışı koşum referansını checkout eder, ayrı temel referans ve aday çalışma ağaçları derler, her çalışma ağacına karşı `discord-status-reactions-tool-only` çalıştırır ve `baseline/`, `candidate/`, `comparison.json` ve `mantis-report.md` dosyalarını Actions yapıtları olarak yükler. Ayrıca her hattın zaman çizelgesi HTML'ini bir Crabbox masaüstü tarayıcısında işler ve bu VNC ekran görüntülerini deterministik zaman çizelgesi PNG'lerinin yanında PR yorumunda yayımlar. Aynı PR yorumu, VNC tarayıcı işlemesi sırasında yakalanan masaüstü MP4 kayıtlarına bağlantı verir; ekran görüntüleri ise hızlı inceleme için satır içinde kalır. İş akışı, bir sonraki Crabbox ikili sürümü çıkarılmadan önce mevcut masaüstü/tarayıcı kiralama bayraklarını kullanabilmek için Crabbox CLI'ını `openclaw/crabbox` main dalından derler.
|
||||
Workflow harness ref'ini checkout eder, ayrı temel ve aday çalışma ağaçları derler, her çalışma ağacına karşı `discord-status-reactions-tool-only` çalıştırır ve `baseline/`, `candidate/`, `comparison.json` ve `mantis-report.md` dosyalarını Actions artefaktları olarak yükler. Ayrıca her hattın zaman çizelgesi HTML'ini bir Crabbox masaüstü tarayıcısında işler ve bu VNC ekran görüntülerini deterministik zaman çizelgesi PNG'lerinin yanında PR yorumunda yayımlar. Aynı PR yorumu, `crabbox media preview` tarafından oluşturulan hafif, hareketi kırpılmış GIF önizlemelerini gömer, eşleşen hareketi kırpılmış MP4 kliplerine bağlantı verir ve derin inceleme için tam masaüstü MP4 dosyalarını tutar. Ekran görüntüleri hızlı inceleme için satır içinde kalır. Workflow, bir sonraki Crabbox ikili sürümü kesilmeden önce mevcut masaüstü/tarayıcı kiralama bayraklarını kullanabilmek için Crabbox CLI'ı `openclaw/crabbox` main'den derler.
|
||||
|
||||
`Mantis Scenario` genel manuel giriş noktasıdır. Bir `scenario_id`, `candidate_ref`, isteğe bağlı `baseline_ref` ve isteğe bağlı `pr_number` alır, ardından senaryonun sahibi olduğu workflow'u dispatch eder. Wrapper kasıtlı olarak incedir: senaryo workflow'ları hâlâ kendi taşıma kurulumlarının, kimlik bilgilerinin, VM sınıfının, beklenen doğrulama ölçütünün ve artefakt manifestinin sahibidir.
|
||||
|
||||
`Mantis Slack Desktop Smoke` ilk Slack VM workflow'udur. Güvenilir aday ref'i ayrı bir çalışma ağacında checkout eder, bir Crabbox Linux masaüstü kiralar, o adaya karşı `pnpm openclaw qa mantis slack-desktop-smoke --gateway-setup` çalıştırır, VNC tarayıcısında Slack Web'i açar, masaüstünü kaydeder, `crabbox media preview` ile hareketi kırpılmış bir önizleme üretir, tam artefakt dizinini yükler ve isteğe bağlı olarak hedef PR'ye satır içi kanıt yorumunu gönderir. Bu hattı, yalnızca bot'tan bot'a Slack transkripti yerine "Slack ve çalışan bir claw bulunan bir Linux masaüstü" istediğinizde kullanın.
|
||||
|
||||
PR yayımlayan her senaryo, raporunun yanına `mantis-evidence.json` yazar. Bu şema, senaryo kodu ile GitHub yorumları arasındaki elden teslimdir:
|
||||
|
||||
```json
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"id": "discord-status-reactions",
|
||||
"title": "Mantis Discord Status Reactions QA",
|
||||
"summary": "Human-readable top summary for the PR comment.",
|
||||
"scenario": "discord-status-reactions-tool-only",
|
||||
"comparison": {
|
||||
"baseline": { "sha": "...", "status": "fail", "expected": "queued-only" },
|
||||
"candidate": { "sha": "...", "status": "pass", "expected": "queued -> thinking -> done" },
|
||||
"pass": true
|
||||
},
|
||||
"artifacts": [
|
||||
{
|
||||
"kind": "timeline",
|
||||
"lane": "baseline",
|
||||
"label": "Baseline queued-only",
|
||||
"path": "baseline/timeline.png",
|
||||
"targetPath": "baseline.png",
|
||||
"alt": "Baseline Discord timeline",
|
||||
"width": 420
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Artefakt `path` değerleri manifest dizinine görelidir. `targetPath` değerleri, `qa-artifacts` dalı yayımlama dizini altındaki göreli yollardır. Yayımcı, yol geçişini reddeder ve isteğe bağlı önizlemeler veya videolar kullanılamadığında `"required": false` olarak işaretlenmiş girdileri atlar.
|
||||
|
||||
Desteklenen artefakt türleri:
|
||||
|
||||
- `timeline`: genellikle önce/sonra olmak üzere deterministik senaryo ekran görüntüsü.
|
||||
- `desktopScreenshot`: VNC/tarayıcı masaüstü ekran görüntüsü.
|
||||
- `motionPreview`: masaüstü kaydından oluşturulan satır içi animasyonlu GIF.
|
||||
- `motionClip`: statik başlangıcı ve sonu kaldıran, hareketi kırpılmış MP4.
|
||||
- `fullVideo`: derin inceleme için tam MP4 kaydı.
|
||||
- `metadata`: JSON/günlük yan dosyası.
|
||||
- `report`: Markdown raporu.
|
||||
|
||||
Yeniden kullanılabilir yayımcı `scripts/mantis/publish-pr-evidence.mjs`'dir. Workflow'lar onu manifest, hedef PR, `qa-artifacts` hedef kökü, yorum işaretçisi, Actions artefakt URL'si, çalıştırma URL'si ve istek kaynağı ile çağırır. Bildirilen artefaktları `qa-artifacts` dalına kopyalar, satır içi görseller/önizlemeler ve bağlantılı videolar içeren özet öncelikli bir PR yorumu oluşturur, ardından mevcut işaretçi yorumunu günceller veya yeni bir yorum oluşturur.
|
||||
|
||||
Durum-tepkileri çalıştırmasını doğrudan bir PR yorumundan da tetikleyebilirsiniz:
|
||||
|
||||
@ -134,7 +180,7 @@ Durum-tepkileri çalıştırmasını doğrudan bir PR yorumundan da tetikleyebil
|
||||
@Mantis discord status reactions
|
||||
```
|
||||
|
||||
Yorum tetikleyicisi kasıtlı olarak dardır. Yalnızca yazma, bakım veya yönetici erişimi olan kullanıcıların pull request yorumlarında çalışır ve yalnızca Discord durum-tepki isteklerini tanır. Varsayılan olarak bilinen kötü temel referansı ve mevcut PR head SHA'sını aday olarak kullanır. Bakımcılar iki referanstan birini geçersiz kılabilir:
|
||||
Yorum tetikleyicisi kasıtlı olarak dardır. Yalnızca yazma, bakım veya yönetici erişimi olan kullanıcıların pull request yorumlarında çalışır ve yalnızca Discord durum-tepki isteklerini tanır. Varsayılan olarak bilinen kötü temel ref'i ve aday olarak mevcut PR head SHA'sını kullanır. Bakımcılar iki ref'i de geçersiz kılabilir:
|
||||
|
||||
```text
|
||||
@Mantis discord status reactions baseline=origin/main candidate=HEAD
|
||||
@ -147,45 +193,45 @@ ClawSweeper komut örnekleri:
|
||||
@clawsweeper verify e2e discord
|
||||
```
|
||||
|
||||
İlk komut açıktır ve senaryo odaklıdır. İkincisi daha sonra bir PR'ı veya sorunu etiketlerden, değişen dosyalardan ve ClawSweeper inceleme bulgularından önerilen Mantis senaryolarına eşleyebilir.
|
||||
İlk komut açık ve senaryo odaklıdır. İkincisi daha sonra bir PR'ı veya issue'yu etiketlerden, değişen dosyalardan ve ClawSweeper inceleme bulgularından önerilen Mantis senaryolarına eşleyebilir.
|
||||
|
||||
## Çalıştırma Yaşam Döngüsü
|
||||
|
||||
1. Kimlik bilgilerini edin.
|
||||
1. Kimlik bilgilerini al.
|
||||
2. Bir VM ayır veya yeniden kullan.
|
||||
3. Senaryo UI kanıtı gerektirdiğinde masaüstü/tarayıcı profilini hazırla.
|
||||
4. Temel referans için temiz bir checkout hazırla.
|
||||
5. Bağımlılıkları kur ve yalnızca senaryonun ihtiyaç duyduklarını derle.
|
||||
6. Yalıtılmış durum diziniyle bir alt OpenClaw Gateway başlat.
|
||||
7. Canlı taşımayı, sağlayıcıyı, modeli ve tarayıcı profilini yapılandır.
|
||||
8. Senaryoyu çalıştır ve temel referans kanıtını yakala.
|
||||
7. Canlı aktarımı, sağlayıcıyı, modeli ve tarayıcı profilini yapılandır.
|
||||
8. Senaryoyu çalıştır ve temel kanıtı yakala.
|
||||
9. Gateway'i durdur ve günlükleri koru.
|
||||
10. Aday referansı aynı VM içinde hazırla.
|
||||
11. Aynı senaryoyu çalıştır ve aday kanıtını yakala.
|
||||
12. Doğrulama ölçütü sonuçlarını ve görsel kanıtları karşılaştır.
|
||||
13. Markdown, JSON, günlükler, ekran görüntüleri ve isteğe bağlı iz yapıtları yaz.
|
||||
12. Oracle sonuçlarını ve görsel kanıtı karşılaştır.
|
||||
13. Markdown, JSON, günlükler, ekran görüntüleri ve isteğe bağlı trace yapıtları yaz.
|
||||
14. GitHub Actions yapıtlarını yükle.
|
||||
15. Kısa bir PR veya Discord durum mesajı gönder.
|
||||
|
||||
Senaryo iki farklı şekilde başarısız olabilmelidir:
|
||||
|
||||
- **Hata yeniden üretildi**: temel referans beklenen şekilde başarısız oldu.
|
||||
- **Koşum hatası**: ortam kurulumu, kimlik bilgileri, Discord API, tarayıcı veya sağlayıcı, hata doğrulama ölçütü anlamlı hale gelmeden önce başarısız oldu.
|
||||
- **Hata yeniden üretildi**: temel sürüm beklenen şekilde başarısız oldu.
|
||||
- **Harness hatası**: ortam kurulumu, kimlik bilgileri, Discord API, tarayıcı veya sağlayıcı, hata oracle'ı anlamlı hale gelmeden önce başarısız oldu.
|
||||
|
||||
Son rapor bu durumları ayırmalıdır; böylece bakımcılar kesintili bir ortamı ürün davranışıyla karıştırmaz.
|
||||
Son rapor bu durumları ayırmalıdır; böylece maintainers kararsız bir ortamı ürün davranışıyla karıştırmaz.
|
||||
|
||||
## Discord MVP
|
||||
|
||||
İlk senaryo, kaynak yanıt teslim modu `message_tool_only` olan sunucu kanallarındaki Discord durum tepkilerini hedeflemelidir.
|
||||
İlk senaryo, kaynak yanıt teslim modunun `message_tool_only` olduğu guild kanallarındaki Discord durum tepkilerini hedeflemelidir.
|
||||
|
||||
İyi bir Mantis tohumu olmasının nedenleri:
|
||||
İyi bir Mantis başlangıcı olmasının nedenleri:
|
||||
|
||||
- Discord'da tetikleyen mesaj üzerindeki tepkiler olarak görünür.
|
||||
- Discord mesaj tepki durumu üzerinden güçlü bir REST doğrulama ölçütüne sahiptir.
|
||||
- Gerçek bir OpenClaw Gateway'i, Discord bot kimlik doğrulamasını, mesaj dağıtımını, kaynak yanıt teslim modunu, durum tepki durumunu ve model turu yaşam döngüsünü çalıştırır.
|
||||
- Discord'da tetikleyici mesaj üzerindeki tepkiler olarak görünür.
|
||||
- Discord mesaj tepki durumu üzerinden güçlü bir REST oracle'ına sahiptir.
|
||||
- Gerçek bir OpenClaw Gateway, Discord bot kimlik doğrulaması, mesaj gönderimi, kaynak yanıt teslim modu, durum tepki durumu ve model tur yaşam döngüsünü çalıştırır.
|
||||
- İlk uygulamayı dürüst tutacak kadar dardır.
|
||||
|
||||
Beklenen senaryo biçimi:
|
||||
Beklenen senaryo şekli:
|
||||
|
||||
```yaml
|
||||
id: discord-status-reactions-tool-only
|
||||
@ -216,9 +262,9 @@ evidence:
|
||||
screenshotMessageRow: true
|
||||
```
|
||||
|
||||
Temel referans kanıtı, sıraya alınmış onay tepkisini göstermeli ancak yalnızca araç modunda yaşam döngüsü geçişi göstermemelidir. Aday kanıtı, `messages.statusReactions.enabled` açıkça `true` olduğunda yaşam döngüsü durum tepkilerinin çalıştığını göstermelidir.
|
||||
Temel kanıt, kuyruğa alınmış onay tepkisini göstermeli ancak yalnızca araç modunda yaşam döngüsü geçişi göstermemelidir. Aday kanıt, `messages.statusReactions.enabled` açıkça true olduğunda yaşam döngüsü durum tepkilerinin çalıştığını göstermelidir.
|
||||
|
||||
Yürütülebilir ilk dilim, isteğe bağlı Discord canlı QA senaryosudur:
|
||||
Çalıştırılabilir ilk parça, isteğe bağlı Discord canlı QA senaryosudur:
|
||||
|
||||
```bash
|
||||
pnpm openclaw qa discord \
|
||||
@ -230,31 +276,23 @@ pnpm openclaw qa discord \
|
||||
--output-dir .artifacts/qa-e2e/mantis/discord-status-reactions-candidate
|
||||
```
|
||||
|
||||
Bu, SUT'yi her zaman açık guild işleme, `visibleReplies:
|
||||
"message_tool"`, `ackReaction: "👀"` ve açık durum tepkileriyle yapılandırır. Doğrulayıcı,
|
||||
gerçek Discord tetikleyici mesajını yoklar ve gözlemlenen sıranın
|
||||
`👀 -> 🤔 -> 👍` olmasını bekler. Artifacts arasında `discord-qa-reaction-timelines.json`,
|
||||
`discord-status-reactions-tool-only-timeline.html` ve
|
||||
`discord-status-reactions-tool-only-timeline.png` bulunur.
|
||||
SUT'yi her zaman açık guild işleme, `visibleReplies: "message_tool"`, `ackReaction: "👀"` ve açık durum tepkileriyle yapılandırır. Oracle, gerçek Discord tetikleyici mesajını yoklar ve gözlemlenen `👀 -> 🤔 -> 👍` sırasını bekler. Yapıtlar `discord-qa-reaction-timelines.json`, `discord-status-reactions-tool-only-timeline.html` ve `discord-status-reactions-tool-only-timeline.png` içerir.
|
||||
|
||||
## Mevcut QA Parçaları
|
||||
|
||||
Mantis, sıfırdan başlamak yerine mevcut özel QA yığınının üzerine kurulmalıdır:
|
||||
Mantis, sıfırdan başlamak yerine mevcut özel QA yığını üzerine kurulmalıdır:
|
||||
|
||||
- `pnpm openclaw qa discord` zaten sürücü ve SUT botlarıyla canlı bir Discord hattı çalıştırır.
|
||||
- Canlı taşıma çalıştırıcısı zaten raporları ve gözlemlenen mesaj
|
||||
artifacts'larını `.artifacts/qa-e2e/` altında yazar.
|
||||
- Convex kimlik bilgisi kiraları, paylaşılan canlı taşıma kimlik bilgilerine zaten özel erişim sağlar.
|
||||
- Tarayıcı denetim servisi zaten ekran görüntülerini, anlık görüntüleri,
|
||||
başsız yönetilen profilleri ve uzak CDP profillerini destekler.
|
||||
- QA Lab'de taşıma biçimli testler için zaten bir hata ayıklayıcı UI'ı ve veri yolu vardır.
|
||||
- `pnpm openclaw qa discord` zaten sürücü ve SUT botlarıyla canlı bir Discord şeridi çalıştırır.
|
||||
- Canlı aktarım çalıştırıcısı zaten `.artifacts/qa-e2e/` altında raporlar ve gözlemlenen mesaj yapıtları yazar.
|
||||
- Convex kimlik bilgisi kiralamaları, paylaşılan canlı aktarım kimlik bilgilerine zaten özel erişim sağlar.
|
||||
- Tarayıcı kontrol hizmeti ekran görüntülerini, snapshot'ları, headless yönetilen profilleri ve uzak CDP profillerini zaten destekler.
|
||||
- QA Lab zaten aktarım biçimli testler için bir hata ayıklayıcı UI'sine ve bus'a sahiptir.
|
||||
|
||||
İlk Mantis uygulaması, bu parçaların üzerinde ince bir önce/sonra çalıştırıcısı
|
||||
ve ek bir görsel kanıt katmanı olabilir.
|
||||
İlk Mantis uygulaması, bu parçaların üzerinde ince bir önce/sonra çalıştırıcısı ve ek bir görsel kanıt katmanı olabilir.
|
||||
|
||||
## Kanıt Modeli
|
||||
|
||||
Her çalıştırma kararlı bir artifact dizini yazar:
|
||||
Her çalıştırma kararlı bir yapıt dizini yazar:
|
||||
|
||||
```text
|
||||
.artifacts/qa-e2e/mantis/<run-id>/
|
||||
@ -274,77 +312,65 @@ Her çalıştırma kararlı bir artifact dizini yazar:
|
||||
run.log
|
||||
```
|
||||
|
||||
`mantis-summary.json`, makine tarafından okunabilir doğruluk kaynağı olmalıdır.
|
||||
Markdown raporu PR yorumları ve insan incelemesi içindir.
|
||||
`mantis-summary.json` makine tarafından okunabilir doğruluk kaynağı olmalıdır. Markdown raporu PR yorumları ve insan incelemesi içindir.
|
||||
|
||||
Özet şunları içermelidir:
|
||||
|
||||
- test edilen ref'ler ve SHA'lar
|
||||
- taşıma ve senaryo kimliği
|
||||
- makine sağlayıcısı ve makine kimliği ya da kira kimliği
|
||||
- test edilen referanslar ve SHA'lar
|
||||
- aktarım ve senaryo kimliği
|
||||
- makine sağlayıcısı ve makine kimliği veya kiralama kimliği
|
||||
- gizli değerler olmadan kimlik bilgisi kaynağı
|
||||
- baseline sonucu
|
||||
- candidate sonucu
|
||||
- hatanın baseline üzerinde yeniden üretilip üretilmediği
|
||||
- candidate'ın bunu düzeltip düzeltmediği
|
||||
- artifact yolları
|
||||
- temizlenmiş kurulum veya temizlik sorunları
|
||||
- temel sonuç
|
||||
- aday sonuç
|
||||
- hatanın temelde yeniden üretilip üretilmediği
|
||||
- adayın bunu düzeltip düzeltmediği
|
||||
- yapıt yolları
|
||||
- temizlenmiş kurulum veya temizleme sorunları
|
||||
|
||||
Ekran görüntüleri kanıttır, sır değildir. Yine de redaksiyon disiplini gerekir:
|
||||
özel kanal adları, kullanıcı adları veya mesaj içeriği görünebilir. Genel PR'lar için,
|
||||
redaksiyon yaklaşımı güçlenene kadar satır içi görseller yerine GitHub Actions artifact bağlantılarını tercih edin.
|
||||
Ekran görüntüleri kanıttır, secret değildir. Yine de redaksiyon disiplini gerekir: özel kanal adları, kullanıcı adları veya mesaj içeriği görünebilir. Genel PR'lar için redaksiyon hikayesi daha güçlü olana kadar satır içi görseller yerine GitHub Actions yapıt bağlantılarını tercih edin.
|
||||
|
||||
## Tarayıcı ve VNC
|
||||
## Tarayıcı Ve VNC
|
||||
|
||||
Tarayıcı hattının iki modu vardır:
|
||||
Tarayıcı şeridinin iki modu vardır:
|
||||
|
||||
- **Başsız otomasyon**: CI için varsayılan. Chrome, CDP etkin şekilde çalışır ve
|
||||
Playwright ya da OpenClaw tarayıcı denetimi ekran görüntüleri yakalar.
|
||||
- **VNC kurtarma**: oturum açma, MFA, Discord otomasyon karşıtı önlemler
|
||||
veya görsel hata ayıklama bir insan gerektirdiğinde aynı VM üzerinde etkinleştirilir.
|
||||
- **Headless otomasyon**: CI için varsayılan. Chrome, CDP etkin olarak çalışır ve Playwright veya OpenClaw tarayıcı kontrolü ekran görüntülerini yakalar.
|
||||
- **VNC kurtarma**: oturum açma, MFA, Discord anti-otomasyon veya görsel hata ayıklama insan gerektirdiğinde aynı VM üzerinde etkinleştirilir.
|
||||
|
||||
Discord gözlemci tarayıcı profili, her çalıştırmada oturum açmayı önleyecek kadar
|
||||
kalıcı olmalı, ancak kişisel tarayıcı durumundan izole edilmelidir. Bir profil
|
||||
geliştirici dizüstü bilgisayarına değil, Mantis makine havuzuna aittir.
|
||||
Discord gözlemci tarayıcı profili, her çalıştırmada oturum açmayı önleyecek kadar kalıcı olmalı, ancak kişisel tarayıcı durumundan yalıtılmalıdır. Bir profil geliştirici dizüstü bilgisayarına değil, Mantis makine havuzuna aittir.
|
||||
|
||||
Mantis takıldığında şu bilgilerle bir Discord durum mesajı gönderir:
|
||||
Mantis takıldığında şu bilgileri içeren bir Discord durum mesajı gönderir:
|
||||
|
||||
- çalıştırma kimliği
|
||||
- senaryo kimliği
|
||||
- makine sağlayıcısı
|
||||
- artifact dizini
|
||||
- yapıt dizini
|
||||
- varsa VNC veya noVNC bağlantı talimatları
|
||||
- kısa engelleyici metni
|
||||
|
||||
İlk özel dağıtım bu mesajları mevcut operatör kanalına gönderebilir ve daha sonra
|
||||
ayrı bir Mantis kanalına geçebilir.
|
||||
İlk özel dağıtım bu mesajları mevcut operatör kanalına gönderebilir ve daha sonra özel bir Mantis kanalına geçebilir.
|
||||
|
||||
## Makineler
|
||||
|
||||
Mantis, ilk uzak uygulama için Crabbox üzerinden AWS'yi tercih etmelidir.
|
||||
Crabbox bize ısıtılmış makineler, kira takibi, hidrasyon, günlükler, sonuçlar ve
|
||||
temizlik sağlar. AWS kapasitesi çok yavaşsa veya kullanılamıyorsa, aynı makine
|
||||
arayüzünün arkasına bir Hetzner sağlayıcısı ekleyin.
|
||||
Mantis, ilk uzak uygulama için Crabbox üzerinden AWS'yi tercih etmelidir. Crabbox bize ısıtılmış makineler, kiralama takibi, hydration, günlükler, sonuçlar ve temizleme sağlar. AWS kapasitesi çok yavaşsa veya kullanılamıyorsa, aynı makine arayüzünün arkasına bir Hetzner sağlayıcısı ekleyin.
|
||||
|
||||
Asgari VM gereksinimleri:
|
||||
Minimum VM gereksinimleri:
|
||||
|
||||
- masaüstü destekli Chrome veya Chromium kurulumu olan Linux
|
||||
- masaüstü özellikli Chrome veya Chromium kurulumu olan Linux
|
||||
- tarayıcı otomasyonu için CDP erişimi
|
||||
- kurtarma için VNC veya noVNC
|
||||
- Node 22 ve pnpm
|
||||
- OpenClaw checkout'u ve bağımlılık önbelleği
|
||||
- Playwright kullanıldığında Playwright Chromium tarayıcı önbelleği
|
||||
- bir OpenClaw Gateway, bir tarayıcı ve bir model çalıştırması için yeterli CPU ve bellek
|
||||
- Discord, GitHub, model sağlayıcıları ve kimlik bilgisi aracısına dışa giden erişim
|
||||
- Discord, GitHub, model sağlayıcıları ve kimlik bilgisi aracısına giden erişim
|
||||
|
||||
VM, beklenen kimlik bilgisi veya tarayıcı profili depoları dışında uzun ömürlü ham sırlar tutmamalıdır.
|
||||
VM, beklenen kimlik bilgisi veya tarayıcı profil depoları dışında uzun ömürlü ham secret tutmamalıdır.
|
||||
|
||||
## Sırlar
|
||||
## Secrets
|
||||
|
||||
Sırlar, uzak çalıştırmalar için GitHub kuruluş veya depo sırlarında, yerel çalıştırmalar için
|
||||
yerel operatör denetimli sır dosyasında bulunur.
|
||||
Secret'lar uzak çalıştırmalar için GitHub kuruluş veya depo secret'larında, yerel çalıştırmalar içinse yerel operatör denetimli secret dosyasında bulunur.
|
||||
|
||||
Önerilen sır adları:
|
||||
Önerilen secret adları:
|
||||
|
||||
- `OPENCLAW_QA_DISCORD_MANTIS_BOT_TOKEN`
|
||||
- `OPENCLAW_QA_DISCORD_DRIVER_BOT_TOKEN`
|
||||
@ -352,44 +378,32 @@ yerel operatör denetimli sır dosyasında bulunur.
|
||||
- `OPENCLAW_QA_DISCORD_GUILD_ID`
|
||||
- `OPENCLAW_QA_DISCORD_CHANNEL_ID`
|
||||
- `OPENCLAW_QA_DISCORD_NOTIFY_CHANNEL_ID`
|
||||
- genel GitHub artifact yüklemeleri için `OPENCLAW_QA_REDACT_PUBLIC_METADATA=1`
|
||||
- genel GitHub yapıt yüklemeleri için `OPENCLAW_QA_REDACT_PUBLIC_METADATA=1`
|
||||
- `OPENCLAW_QA_CONVEX_SITE_URL`
|
||||
- `OPENCLAW_QA_CONVEX_SECRET_CI`
|
||||
- `OPENCLAW_QA_MANTIS_CRABBOX_COORDINATOR`
|
||||
- `OPENCLAW_QA_MANTIS_CRABBOX_COORDINATOR_TOKEN`
|
||||
|
||||
Uzun vadede, Convex kimlik bilgisi havuzu canlı taşıma kimlik bilgileri için
|
||||
normal kaynak olarak kalmalıdır. GitHub sırları, aracı ve yedek hatları başlatır.
|
||||
Discord durum tepkileri workflow'u, Mantis Crabbox sırlarını Crabbox CLI'ın
|
||||
beklediği `CRABBOX_COORDINATOR` ve `CRABBOX_COORDINATOR_TOKEN` ortam değişkenlerine
|
||||
geri eşler. Düz `CRABBOX_*` GitHub sır adları uyumluluk yedeği olarak kabul edilmeye devam eder.
|
||||
Uzun vadede Convex kimlik bilgisi havuzu, canlı aktarım kimlik bilgileri için normal kaynak olarak kalmalıdır. GitHub secret'ları aracıyı ve yedek şeritleri başlatır. Discord durum tepkileri workflow'u, Mantis Crabbox secret'larını Crabbox CLI'ın beklediği `CRABBOX_COORDINATOR` ve `CRABBOX_COORDINATOR_TOKEN` ortam değişkenlerine geri eşler. Düz `CRABBOX_*` GitHub secret adları, uyumluluk yedeği olarak kabul edilmeye devam eder.
|
||||
|
||||
Mantis çalıştırıcısı asla şunları yazdırmamalıdır:
|
||||
|
||||
- Discord bot token'ları
|
||||
- sağlayıcı API anahtarları
|
||||
- tarayıcı çerezleri
|
||||
- kimlik doğrulama profili içerikleri
|
||||
- auth profil içerikleri
|
||||
- VNC parolaları
|
||||
- ham kimlik bilgisi yükleri
|
||||
- ham kimlik bilgisi payload'ları
|
||||
|
||||
Genel artifact yüklemeleri ayrıca bot, guild, kanal ve mesaj kimlikleri gibi Discord hedef meta verilerini de redakte etmelidir. GitHub smoke workflow'u bu nedenle
|
||||
`OPENCLAW_QA_REDACT_PUBLIC_METADATA=1` değerini etkinleştirir.
|
||||
Genel yapıt yüklemeleri bot, guild, kanal ve mesaj kimlikleri gibi Discord hedef meta verilerini de redakte etmelidir. GitHub smoke workflow'u bu nedenle `OPENCLAW_QA_REDACT_PUBLIC_METADATA=1` etkinleştirir.
|
||||
|
||||
Bir token yanlışlıkla bir issue'ya, PR'a, sohbete veya günlüğe yapıştırılırsa,
|
||||
yeni sır saklandıktan sonra onu döndürün.
|
||||
Bir token yanlışlıkla bir issue'ya, PR'a, sohbete veya günlüğe yapıştırılırsa, yeni secret saklandıktan sonra onu döndürün.
|
||||
|
||||
## GitHub Artifacts ve PR Yorumları
|
||||
## GitHub Yapıtları Ve PR Yorumları
|
||||
|
||||
Mantis workflow'ları tam kanıt paketini kısa ömürlü bir Actions artifact'ı olarak yüklemelidir.
|
||||
Workflow bir hata raporu veya düzeltme PR'ı için çalıştırıldığında, redakte edilmiş PNG ekran görüntülerini
|
||||
`qa-artifacts` dalına yayımlamalı ve ilgili hata ya da düzeltme PR'ında satır içi önce/sonra ekran görüntüleriyle bir yorum eklemeli ya da güncellemelidir. Birincil kanıtı yalnızca genel bir QA otomasyonu PR'ında paylaşmayın. Ham günlükler, gözlemlenen
|
||||
mesajlar ve diğer hacimli kanıtlar Actions artifact'ında kalır.
|
||||
Mantis workflow'ları, tam kanıt paketini kısa ömürlü bir Actions yapıtı olarak yüklemelidir. Workflow bir hata raporu veya düzeltme PR'ı için çalıştırıldığında, redakte edilmiş PNG ekran görüntülerini `qa-artifacts` branch'ine yayımlamalı ve ilgili hata veya düzeltme PR'ında satır içi önce/sonra ekran görüntüleriyle bir yorumu upsert etmelidir. Birincil kanıtı yalnızca genel bir QA otomasyon PR'ına göndermeyin. Ham günlükler, gözlemlenen mesajlar ve diğer hacimli kanıtlar Actions yapıtında kalır.
|
||||
|
||||
Üretim workflow'ları bu yorumları `github-actions[bot]` ile değil, Mantis GitHub App ile göndermelidir.
|
||||
Uygulama kimliğini ve özel anahtarı `MANTIS_GITHUB_APP_ID` ve `MANTIS_GITHUB_APP_PRIVATE_KEY` GitHub Actions
|
||||
sırları olarak saklayın. Workflow, güncelleme anahtarı olarak gizli bir işaret kullanır, token düzenleyebildiğinde
|
||||
bu yorumu günceller ve eski bot sahipli bir işaret düzenlenemediğinde Mantis sahipli yeni bir yorum oluşturur.
|
||||
Üretim workflow'ları bu yorumları `github-actions[bot]` ile değil, Mantis GitHub App ile göndermelidir. App id'sini ve özel anahtarı `MANTIS_GITHUB_APP_ID` ve `MANTIS_GITHUB_APP_PRIVATE_KEY` GitHub Actions secret'ları olarak saklayın. Workflow gizli bir marker'ı upsert anahtarı olarak kullanır, token onu düzenleyebildiğinde o yorumu günceller ve daha eski bot sahipli marker düzenlenemediğinde yeni bir Mantis sahipli yorum oluşturur.
|
||||
|
||||
PR yorumu kısa ve görsel olmalıdır:
|
||||
|
||||
@ -411,68 +425,62 @@ candidate showed the expected queued -> thinking -> done sequence.
|
||||
| <inline screenshot> | <inline screenshot> |
|
||||
```
|
||||
|
||||
Çalıştırma, harness başarısız olduğu için başarısız olursa yorum, candidate'ın başarısız olduğunu ima etmek
|
||||
yerine bunu söylemelidir.
|
||||
Çalıştırma harness başarısız olduğu için başarısız olursa, yorum adayın başarısız olduğunu ima etmek yerine bunu söylemelidir.
|
||||
|
||||
## Özel Dağıtım Notları
|
||||
|
||||
Özel bir dağıtımda zaten bir Mantis Discord uygulaması olabilir. Doğru bot
|
||||
izinlerine sahipse ve güvenli şekilde döndürülebiliyorsa, başka bir uygulama oluşturmak yerine onu yeniden kullanın.
|
||||
Özel bir dağıtımda zaten bir Mantis Discord uygulaması olabilir. Doğru bot izinlerine sahipse ve güvenli şekilde döndürülebiliyorsa başka bir app oluşturmak yerine bu uygulamayı yeniden kullanın.
|
||||
|
||||
İlk operatör bildirim kanalını sırlar veya dağıtım yapılandırması üzerinden ayarlayın.
|
||||
Önce mevcut bir maintainer veya operasyon kanalını gösterebilir, sonra bir tane oluşturulduğunda
|
||||
ayrı bir Mantis kanalına taşınabilir.
|
||||
İlk operatör bildirim kanalını secret'lar veya dağıtım yapılandırması üzerinden ayarlayın. Önce mevcut bir maintainer veya operasyon kanalını gösterebilir, ardından bir tane oluşturulduğunda özel bir Mantis kanalına taşınabilir.
|
||||
|
||||
Bu belgeye guild kimlikleri, kanal kimlikleri, bot token'ları, tarayıcı çerezleri veya VNC parolaları koymayın.
|
||||
Bunları GitHub sırlarında, kimlik bilgisi aracısında veya operatörün yerel sır deposunda saklayın.
|
||||
Guild kimliklerini, kanal kimliklerini, bot token'larını, tarayıcı çerezlerini veya VNC parolalarını bu belgeye koymayın. Bunları GitHub secret'larında, kimlik bilgisi aracısında veya operatörün yerel secret deposunda saklayın.
|
||||
|
||||
## Senaryo Ekleme
|
||||
|
||||
Bir Mantis senaryosu şunları bildirmelidir:
|
||||
|
||||
- kimlik ve başlık
|
||||
- taşıma
|
||||
- aktarım
|
||||
- gerekli kimlik bilgileri
|
||||
- baseline ref ilkesi
|
||||
- candidate ref ilkesi
|
||||
- temel referans politikası
|
||||
- aday referans politikası
|
||||
- OpenClaw yapılandırma patch'i
|
||||
- kurulum adımları
|
||||
- uyarıcı
|
||||
- beklenen baseline doğrulayıcısı
|
||||
- beklenen candidate doğrulayıcısı
|
||||
- stimulus
|
||||
- beklenen temel oracle
|
||||
- beklenen aday oracle
|
||||
- görsel yakalama hedefleri
|
||||
- zaman aşımı bütçesi
|
||||
- temizlik adımları
|
||||
- temizleme adımları
|
||||
|
||||
Senaryolar küçük, türlendirilmiş doğrulayıcıları tercih etmelidir:
|
||||
Senaryolar küçük, tipli oracle'ları tercih etmelidir:
|
||||
|
||||
- tepki hataları için Discord tepki durumu
|
||||
- iş parçacığı hataları için Discord mesaj referansları
|
||||
- threading hataları için Discord mesaj referansları
|
||||
- Slack hataları için Slack thread ts ve reaction API durumu
|
||||
- e-posta hataları için e-posta mesaj kimlikleri ve başlıkları
|
||||
- e-posta hataları için e-posta mesaj kimlikleri ve header'ları
|
||||
- UI tek güvenilir gözlemlenebilir olduğunda tarayıcı ekran görüntüleri
|
||||
|
||||
Görsel kontroller eklemeli olmalıdır. Bir platform API'si hatayı kanıtlayabiliyorsa,
|
||||
geçti/kaldı doğrulayıcısı olarak API'yi kullanın ve ekran görüntülerini insan güveni için saklayın.
|
||||
Vision kontrolleri eklemeli olmalıdır. Bir platform API'si hatayı kanıtlayabiliyorsa, API'yi geçme/kalma oracle'ı olarak kullanın ve ekran görüntülerini insan güveni için tutun.
|
||||
|
||||
## Sağlayıcı Genişletme
|
||||
|
||||
Discord'dan sonra aynı çalıştırıcı şunları ekleyebilir:
|
||||
|
||||
- Slack: tepkiler, iş parçacıkları, uygulama bahsetmeleri, modallar, dosya yüklemeleri.
|
||||
- E-posta: bağlayıcıların yeterli olmadığı yerlerde `gog` kullanarak Gmail kimlik doğrulaması ve mesaj iş parçacığı.
|
||||
- WhatsApp: QR ile oturum açma, yeniden tanımlama, mesaj teslimi, medya, tepkiler.
|
||||
- Telegram: grup bahsetme denetimi, komutlar, mevcut olduğunda tepkiler.
|
||||
- Slack: reaksiyonlar, iş parçacıkları, uygulama mention'ları, modaller, dosya yüklemeleri.
|
||||
- E-posta: bağlayıcıların yeterli olmadığı yerlerde `gog` kullanarak Gmail kimlik doğrulaması ve ileti dizileme.
|
||||
- WhatsApp: QR ile oturum açma, yeniden kimliklendirme, ileti teslimi, medya, reaksiyonlar.
|
||||
- Telegram: grup mention kapılaması, komutlar, kullanılabildiği yerlerde reaksiyonlar.
|
||||
- Matrix: şifreli odalar, iş parçacığı veya yanıt ilişkileri, yeniden başlatma sonrası sürdürme.
|
||||
|
||||
Her taşımanın bir ucuz smoke senaryosu ve bir ya da daha fazla hata sınıfı senaryosu olmalıdır.
|
||||
Pahalı görsel senaryolar isteğe bağlı kalmalıdır.
|
||||
Her taşımanın bir düşük maliyetli smoke senaryosu ve bir veya daha fazla hata sınıfı
|
||||
senaryosu olmalıdır. Pahalı görsel senaryolar isteğe bağlı kalmalıdır.
|
||||
|
||||
## Açık Sorular
|
||||
|
||||
- Mevcut Mantis botu yeniden kullanıldığında, hangi Discord botu sürücü, hangisi SUT olmalıdır?
|
||||
- Gözlemci tarayıcı oturumu ilk aşamada bir insan Discord hesabı mı, bir test hesabı mı,
|
||||
yoksa yalnızca bot tarafından okunabilir REST kanıtı mı kullanmalıdır?
|
||||
- GitHub, PR'lar için Mantis artifacts'larını ne kadar süre saklamalıdır?
|
||||
- ClawSweeper, bir maintainer komutunu beklemek yerine ne zaman otomatik olarak Mantis önermelidir?
|
||||
- Genel PR'lar için ekran görüntüleri yüklemeden önce redakte edilmeli mi yoksa kırpılmalı mı?
|
||||
- Mevcut Mantis botu yeniden kullanıldığında hangi Discord botu sürücü, hangisi SUT olmalıdır?
|
||||
- Gözlemci tarayıcı oturumu ilk aşama için bir insan Discord hesabı mı, bir test hesabı mı,
|
||||
yoksa yalnızca botun okuyabildiği REST kanıtını mı kullanmalıdır?
|
||||
- GitHub, PR'ler için Mantis yapıtlarını ne kadar süre saklamalıdır?
|
||||
- ClawSweeper ne zaman bir maintainer komutu beklemek yerine Mantis'i otomatik olarak önermelidir?
|
||||
- Herkese açık PR'ler için ekran görüntüleri yüklemeden önce redakte edilmeli veya kırpılmalı mıdır?
|
||||
|
||||
@ -1,20 +1,20 @@
|
||||
---
|
||||
read_when:
|
||||
- doctor migrasyonları ekleme veya değiştirme
|
||||
- Geriye dönük uyumsuz yapılandırma değişikliklerini kullanıma sunma
|
||||
- doctor geçişleri ekleme veya değiştirme
|
||||
- Geriye dönük uyumsuz yapılandırma değişiklikleri yapma
|
||||
sidebarTitle: Doctor
|
||||
summary: 'Doctor komutu: sağlık kontrolleri, yapılandırma geçişleri ve onarım adımları'
|
||||
summary: 'Doctor komutu: sağlık denetimleri, yapılandırma geçişleri ve onarım adımları'
|
||||
title: Doktor
|
||||
x-i18n:
|
||||
generated_at: "2026-05-05T01:46:22Z"
|
||||
generated_at: "2026-05-05T08:25:33Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 3e374f91d00d4b43a3852de6f746b044471e80af936d464a789061a31cadd09d
|
||||
source_hash: 360f9f7a349e4633ff61d526f1eb5b668b595b4f35c5e0fd2a314715a0599c4c
|
||||
source_path: gateway/doctor.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
`openclaw doctor`, OpenClaw için onarım + geçiş aracıdır. Eski config/durum verilerini düzeltir, sağlık denetimleri yapar ve uygulanabilir onarım adımları sağlar.
|
||||
`openclaw doctor`, OpenClaw için onarım + geçiş aracıdır. Eski yapılandırma/durum verilerini düzeltir, sağlığı denetler ve uygulanabilir onarım adımları sağlar.
|
||||
|
||||
## Hızlı başlangıç
|
||||
|
||||
@ -30,7 +30,7 @@ openclaw doctor
|
||||
openclaw doctor --yes
|
||||
```
|
||||
|
||||
Sormadan varsayılanları kabul eder (geçerli olduğunda yeniden başlatma/hizmet/sandbox onarım adımları dahil).
|
||||
Sormadan varsayılanları kabul eder (uygulanabildiğinde yeniden başlatma/hizmet/sandbox onarım adımları dahil).
|
||||
|
||||
</Tab>
|
||||
<Tab title="--repair">
|
||||
@ -46,7 +46,7 @@ openclaw doctor
|
||||
openclaw doctor --repair --force
|
||||
```
|
||||
|
||||
Agresif onarımları da uygular (özel supervisor config dosyalarının üzerine yazar).
|
||||
Agresif onarımları da uygular (özel supervisor yapılandırmalarının üzerine yazar).
|
||||
|
||||
</Tab>
|
||||
<Tab title="--non-interactive">
|
||||
@ -54,7 +54,7 @@ openclaw doctor
|
||||
openclaw doctor --non-interactive
|
||||
```
|
||||
|
||||
Sorma olmadan çalışır ve yalnızca güvenli geçişleri uygular (config normalleştirme + disk üzerindeki durum taşıma işlemleri). İnsan onayı gerektiren yeniden başlatma/hizmet/sandbox eylemlerini atlar. Eski durum geçişleri algılandığında otomatik olarak çalışır.
|
||||
İstemler olmadan çalışır ve yalnızca güvenli geçişleri uygular (yapılandırma normalleştirmesi + diskteki durum taşıma işlemleri). İnsan onayı gerektiren yeniden başlatma/hizmet/sandbox eylemlerini atlar. Eski durum geçişleri algılandığında otomatik olarak çalışır.
|
||||
|
||||
</Tab>
|
||||
<Tab title="--deep">
|
||||
@ -67,7 +67,7 @@ openclaw doctor
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
Yazmadan önce değişiklikleri incelemek istiyorsanız önce config dosyasını açın:
|
||||
Yazmadan önce değişiklikleri gözden geçirmek istiyorsanız, önce yapılandırma dosyasını açın:
|
||||
|
||||
```bash
|
||||
cat ~/.openclaw/openclaw.json
|
||||
@ -77,90 +77,91 @@ cat ~/.openclaw/openclaw.json
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Sağlık, UI ve güncellemeler">
|
||||
- Git kurulumları için isteğe bağlı ön hazırlık güncellemesi (yalnızca etkileşimli).
|
||||
- UI protokol güncelliği denetimi (protokol şeması daha yeni olduğunda Control UI'ı yeniden derler).
|
||||
- git kurulumları için isteğe bağlı ön kontrol güncellemesi (yalnızca etkileşimli).
|
||||
- UI protokol güncelliği denetimi (protokol şeması daha yeniyse Control UI yeniden derlenir).
|
||||
- Sağlık denetimi + yeniden başlatma istemi.
|
||||
- Skills durum özeti (uygun/eksik/engellenmiş) ve plugin durumu.
|
||||
- Skills durum özeti (uygun/eksik/engellenmiş) ve Plugin durumu.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Config ve geçişler">
|
||||
- Eski değerler için config normalleştirme.
|
||||
- Talk config geçişi: eski düz `talk.*` alanlarından `talk.provider` + `talk.providers.<provider>` yapısına.
|
||||
- Eski Chrome extension config dosyaları ve Chrome MCP hazırlığı için tarayıcı geçiş denetimleri.
|
||||
<Accordion title="Yapılandırma ve geçişler">
|
||||
- Eski değerler için yapılandırma normalleştirmesi.
|
||||
- Eski düz `talk.*` alanlarından `talk.provider` + `talk.providers.<provider>` içine Talk yapılandırması geçişi.
|
||||
- Eski Chrome uzantısı yapılandırmaları ve Chrome MCP hazır olma durumu için tarayıcı geçiş denetimleri.
|
||||
- OpenCode sağlayıcı geçersiz kılma uyarıları (`models.providers.opencode` / `models.providers.opencode-go`).
|
||||
- Codex OAuth gölgeleme uyarıları (`models.providers.openai-codex`).
|
||||
- OpenAI Codex OAuth profilleri için OAuth TLS önkoşul denetimi.
|
||||
- `plugins.allow` kısıtlayıcıyken araç ilkesi hâlâ joker karakter veya plugin sahipli araçlar istediğinde plugin/araç izin listesi uyarıları.
|
||||
- Eski disk üzerindeki durum geçişi (oturumlar/agent dizini/WhatsApp auth).
|
||||
- Eski plugin manifest contract anahtarı geçişi (`speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders`, `webSearchProviders` → `contracts`).
|
||||
- Eski cron deposu geçişi (`jobId`, `schedule.cron`, üst düzey teslim/payload alanları, payload `provider`, basit `notify: true` webhook fallback işleri).
|
||||
- Eski agent runtime-policy geçişi: `agents.defaults.agentRuntime` ve `agents.list[].agentRuntime`.
|
||||
- Plugin'ler etkinken eski plugin config temizliği; `plugins.enabled=false` olduğunda eski plugin referansları etkisiz kapsama config olarak ele alınır ve korunur.
|
||||
- OpenAI Codex OAuth profilleri için OAuth TLS önkoşulları denetimi.
|
||||
- `plugins.allow` kısıtlayıcıyken araç ilkesi hâlâ joker karakter veya Plugin sahipli araçlar istediğinde Plugin/araç izin listesi uyarıları.
|
||||
- Eski diskteki durum geçişi (oturumlar/ajan dizini/WhatsApp kimlik doğrulaması).
|
||||
- Eski Plugin manifest sözleşme anahtarı geçişi (`speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders`, `webSearchProviders` → `contracts`).
|
||||
- Eski cron deposu geçişi (`jobId`, `schedule.cron`, üst düzey teslim/payload alanları, payload `provider`, basit `notify: true` webhook yedek işleri).
|
||||
- Eski ajan çalışma zamanı ilkesi geçişi: `agents.defaults.agentRuntime` ve `agents.list[].agentRuntime`.
|
||||
- Plugin’ler etkin olduğunda eski Plugin yapılandırması temizliği; `plugins.enabled=false` olduğunda eski Plugin başvuruları inert kapsama yapılandırması olarak değerlendirilir ve korunur.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Durum ve bütünlük">
|
||||
- Oturum kilit dosyası incelemesi ve eski kilit temizliği.
|
||||
- Etkilenen 2026.4.24 derlemelerinin oluşturduğu yinelenmiş prompt-rewrite dalları için oturum transcript onarımı.
|
||||
- Takılmış subagent yeniden başlatma-kurtarma tombstone algılama; başlangıcın alt süreci yeniden başlatma nedeniyle iptal edilmiş saymaya devam etmemesi için eski iptal edilmiş kurtarma bayraklarını temizlemede `--fix` desteği.
|
||||
- Durum bütünlüğü ve izin denetimleri (oturumlar, transcript'ler, durum dizini).
|
||||
- Yerel çalıştırmada config dosyası izin denetimleri (chmod 600).
|
||||
- Model auth sağlığı: OAuth süresinin dolmasını denetler, süresi dolmak üzere olan token'ları yenileyebilir ve auth-profile cooldown/devre dışı durumlarını bildirir.
|
||||
- Ek workspace dizini algılama (`~/openclaw`).
|
||||
- Etkilenen 2026.4.24 derlemeleri tarafından oluşturulan yinelenmiş prompt-yeniden-yazma dalları için oturum transkripti onarımı.
|
||||
- Sıkışmış alt ajan yeniden başlatma-kurtarma tombstone algılama; başlangıcın çocuğu yeniden başlatma-iptal edilmiş olarak değerlendirmeye devam etmemesi için eski iptal edilmiş kurtarma bayraklarını temizlemeye yönelik `--fix` desteğiyle.
|
||||
- Durum bütünlüğü ve izin denetimleri (oturumlar, transkriptler, durum dizini).
|
||||
- Yerel olarak çalışırken yapılandırma dosyası izin denetimleri (chmod 600).
|
||||
- Model kimlik doğrulama sağlığı: OAuth süresinin dolmasını denetler, süresi dolmak üzere olan token’ları yenileyebilir ve auth-profile bekleme süresi/devre dışı durumlarını bildirir.
|
||||
- Ek çalışma alanı dizini algılama (`~/openclaw`).
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Gateway, hizmetler ve supervisor'lar">
|
||||
- Sandbox etkin olduğunda sandbox imaj onarımı.
|
||||
<Accordion title="Gateway, hizmetler ve supervisor’lar">
|
||||
- Sandbox etkin olduğunda sandbox imajı onarımı.
|
||||
- Eski hizmet geçişi ve ek Gateway algılama.
|
||||
- Matrix kanalı eski durum geçişi (`--fix` / `--repair` modunda).
|
||||
- Gateway runtime denetimleri (hizmet kurulu ama çalışmıyor; önbelleğe alınmış launchd etiketi).
|
||||
- Kanal durumu uyarıları (çalışan Gateway'den yoklanır).
|
||||
- İsteğe bağlı onarımla supervisor config denetimi (launchd/systemd/schtasks).
|
||||
- Kurulum veya güncelleme sırasında shell `HTTP_PROXY` / `HTTPS_PROXY` / `NO_PROXY` değerlerini yakalayan Gateway hizmetleri için gömülü proxy ortam temizliği.
|
||||
- Gateway runtime en iyi uygulama denetimleri (Node ve Bun, version-manager yolları).
|
||||
- Gateway port çakışması tanıları (varsayılan `18789`).
|
||||
- Gateway çalışma zamanı denetimleri (hizmet kurulu ama çalışmıyor; önbelleğe alınmış launchd etiketi).
|
||||
- Kanal durum uyarıları (çalışan gateway’den yoklanır).
|
||||
- Yerel TUI istemcileri hâlâ çalışırken bozulmuş Gateway event-loop sağlığı için WhatsApp yanıt verebilirlik denetimleri; `--fix` yalnızca doğrulanmış yerel TUI istemcilerini durdurur.
|
||||
- İsteğe bağlı onarımla supervisor yapılandırma denetimi (launchd/systemd/schtasks).
|
||||
- Kurulum veya güncelleme sırasında shell `HTTP_PROXY` / `HTTPS_PROXY` / `NO_PROXY` değerlerini yakalamış gateway hizmetleri için gömülü proxy ortamı temizliği.
|
||||
- Gateway çalışma zamanı en iyi uygulama denetimleri (Node ve Bun, sürüm yöneticisi yolları).
|
||||
- Gateway bağlantı noktası çakışması tanılamaları (varsayılan `18789`).
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Auth, güvenlik ve eşleştirme">
|
||||
<Accordion title="Kimlik doğrulama, güvenlik ve eşleştirme">
|
||||
- Açık DM ilkeleri için güvenlik uyarıları.
|
||||
- Yerel token modu için Gateway auth denetimleri (token kaynağı yoksa token oluşturma önerir; token SecretRef config dosyalarının üzerine yazmaz).
|
||||
- Cihaz eşleştirme sorun algılama (bekleyen ilk eşleştirme istekleri, bekleyen rol/kapsam yükseltmeleri, eski yerel device-token önbelleği sapması ve eşleştirilmiş kayıt auth sapması).
|
||||
- Yerel token modu için Gateway kimlik doğrulama denetimleri (token kaynağı yoksa token oluşturma önerir; token SecretRef yapılandırmalarının üzerine yazmaz).
|
||||
- Cihaz eşleştirme sorun algılama (bekleyen ilk eşleştirme istekleri, bekleyen rol/kapsam yükseltmeleri, eski yerel cihaz-token önbelleği sapması ve eşleştirilmiş kayıt kimlik doğrulama sapması).
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Workspace ve shell">
|
||||
- Linux'ta systemd linger denetimi.
|
||||
- Workspace bootstrap dosya boyutu denetimi (bağlam dosyaları için kesilme/sınıra yaklaşma uyarıları).
|
||||
- Varsayılan agent için Skills hazırlık denetimi; eksik binary, env, config veya OS gereksinimleri olan izinli skills öğelerini bildirir ve `--fix`, kullanılamayan skills öğelerini `skills.entries` içinde devre dışı bırakabilir.
|
||||
<Accordion title="Çalışma alanı ve shell">
|
||||
- Linux’ta systemd linger denetimi.
|
||||
- Çalışma alanı bootstrap dosya boyutu denetimi (bağlam dosyaları için kesilme/sınıra yaklaşma uyarıları).
|
||||
- Varsayılan ajan için Skills hazır olma denetimi; eksik binary, env, config veya işletim sistemi gereksinimleri olan izinli skills’i bildirir ve `--fix`, kullanılamayan skills’i `skills.entries` içinde devre dışı bırakabilir.
|
||||
- Shell tamamlama durum denetimi ve otomatik kurulum/yükseltme.
|
||||
- Bellek arama embedding sağlayıcı hazırlık denetimi (yerel model, uzak API anahtarı veya QMD binary).
|
||||
- Kaynak kurulum denetimleri (pnpm workspace uyumsuzluğu, eksik UI varlıkları, eksik tsx binary).
|
||||
- Güncellenmiş config + sihirbaz metadata yazar.
|
||||
- Bellek arama embedding sağlayıcısı hazır olma denetimi (yerel model, uzak API anahtarı veya QMD binary).
|
||||
- Kaynak kurulum denetimleri (pnpm çalışma alanı uyumsuzluğu, eksik UI varlıkları, eksik tsx binary).
|
||||
- Güncellenmiş yapılandırmayı + sihirbaz metaverisini yazar.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Dreams UI geri doldurma ve sıfırlama
|
||||
|
||||
Control UI Dreams sahnesi, grounded Dreaming iş akışı için **Backfill**, **Reset** ve **Clear Grounded** eylemlerini içerir. Bu eylemler Gateway doctor tarzı RPC yöntemleri kullanır, ancak `openclaw doctor` CLI onarım/geçişinin parçası **değildir**.
|
||||
Control UI Dreams sahnesi, temellendirilmiş Dreaming iş akışı için **Geri doldur**, **Sıfırla** ve **Temellendirilmişi Temizle** eylemlerini içerir. Bu eylemler gateway doctor tarzı RPC yöntemlerini kullanır, ancak `openclaw doctor` CLI onarım/geçişinin parçası **değildir**.
|
||||
|
||||
Ne yaparlar:
|
||||
Yaptıkları:
|
||||
|
||||
- **Backfill**, etkin workspace içindeki geçmiş `memory/YYYY-MM-DD.md` dosyalarını tarar, grounded REM günlük geçişini çalıştırır ve geri alınabilir backfill girdilerini `DREAMS.md` içine yazar.
|
||||
- **Reset**, yalnızca bu işaretlenmiş backfill günlük girdilerini `DREAMS.md` dosyasından kaldırır.
|
||||
- **Clear Grounded**, yalnızca geçmiş yeniden oynatmadan gelen ve henüz canlı geri çağırma veya günlük destek biriktirmemiş aşamalanmış yalnızca grounded kısa vadeli girdileri kaldırır.
|
||||
- **Geri doldur**, etkin çalışma alanındaki geçmiş `memory/YYYY-MM-DD.md` dosyalarını tarar, temellendirilmiş REM günlük geçişini çalıştırır ve tersine çevrilebilir geri doldurma girdilerini `DREAMS.md` içine yazar.
|
||||
- **Sıfırla**, yalnızca bu işaretlenmiş geri doldurma günlük girdilerini `DREAMS.md` içinden kaldırır.
|
||||
- **Temellendirilmişi Temizle**, yalnızca geçmiş yeniden oynatmadan gelen ve henüz canlı hatırlama veya günlük destek biriktirmemiş aşamalanmış yalnızca-temellendirilmiş kısa vadeli girdileri kaldırır.
|
||||
|
||||
Kendi başlarına ne **yapmazlar**:
|
||||
Kendi başlarına yapmadıkları:
|
||||
|
||||
- `MEMORY.md` dosyasını düzenlemezler
|
||||
- tam doctor geçişlerini çalıştırmazlar
|
||||
- önce aşamalanmış CLI yolunu açıkça çalıştırmadığınız sürece grounded adayları canlı kısa vadeli yükseltme deposuna otomatik olarak aşamalamazlar
|
||||
- önce aşamalanmış CLI yolunu açıkça çalıştırmadığınız sürece temellendirilmiş adayları otomatik olarak canlı kısa vadeli yükseltme deposuna aşamalamazlar
|
||||
|
||||
Grounded geçmiş yeniden oynatmanın normal derin yükseltme hattını etkilemesini istiyorsanız bunun yerine CLI akışını kullanın:
|
||||
Temellendirilmiş geçmiş yeniden oynatmanın normal derin yükseltme hattını etkilemesini istiyorsanız, bunun yerine CLI akışını kullanın:
|
||||
|
||||
```bash
|
||||
openclaw memory rem-backfill --path ./memory --stage-short-term
|
||||
```
|
||||
|
||||
Bu, `DREAMS.md` dosyasını inceleme yüzeyi olarak tutarken grounded dayanıklı adayları kısa vadeli Dreaming deposuna aşamalar.
|
||||
Bu, `DREAMS.md` dosyasını gözden geçirme yüzeyi olarak tutarken temellendirilmiş kalıcı adayları kısa vadeli Dreaming deposuna aşamalar.
|
||||
|
||||
## Ayrıntılı davranış ve gerekçe
|
||||
|
||||
@ -168,21 +169,21 @@ Bu, `DREAMS.md` dosyasını inceleme yüzeyi olarak tutarken grounded dayanıkl
|
||||
<Accordion title="0. İsteğe bağlı güncelleme (git kurulumları)">
|
||||
Bu bir git checkout ise ve doctor etkileşimli çalışıyorsa, doctor çalışmadan önce güncelleme (fetch/rebase/build) önerir.
|
||||
</Accordion>
|
||||
<Accordion title="1. Config normalleştirme">
|
||||
Config eski değer biçimleri içeriyorsa (örneğin kanala özgü geçersiz kılma olmadan `messages.ackReaction`), doctor bunları geçerli şemaya normalleştirir.
|
||||
<Accordion title="1. Yapılandırma normalleştirmesi">
|
||||
Yapılandırma eski değer şekilleri içeriyorsa (örneğin kanala özgü geçersiz kılma olmadan `messages.ackReaction`), doctor bunları geçerli şemaya normalleştirir.
|
||||
|
||||
Buna eski Talk düz alanları dahildir. Geçerli genel Talk config yapısı `talk.provider` + `talk.providers.<provider>` şeklindedir. Doctor eski `talk.voiceId` / `talk.voiceAliases` / `talk.modelId` / `talk.outputFormat` / `talk.apiKey` biçimlerini sağlayıcı haritasına yeniden yazar.
|
||||
Buna eski Talk düz alanları da dahildir. Geçerli herkese açık Talk yapılandırması `talk.provider` + `talk.providers.<provider>` şeklindedir. Doctor eski `talk.voiceId` / `talk.voiceAliases` / `talk.modelId` / `talk.outputFormat` / `talk.apiKey` şekillerini sağlayıcı haritasına yeniden yazar.
|
||||
|
||||
Doctor ayrıca `plugins.allow` boş olmadığında ve araç ilkesi joker karakter
|
||||
veya plugin sahipli araç girdileri kullandığında uyarır. `tools.allow: ["*"]` yalnızca
|
||||
gerçekten yüklenen plugin'lerden gelen araçlarla eşleşir; özel plugin
|
||||
izin listesini atlamaz. Doctor, mevcut bundled sağlayıcı davranışını korumak için geçirilmiş
|
||||
eski izin listesi config dosyalarına `plugins.bundledDiscovery: "compat"` yazar ve
|
||||
veya Plugin sahipli araç girdileri kullandığında uyarır. `tools.allow: ["*"]` yalnızca gerçekten
|
||||
yüklenen Plugin’lerden gelen araçlarla eşleşir; özel Plugin
|
||||
izin listesini atlatmaz. Doctor, mevcut paketli sağlayıcı davranışını korumak için taşınmış
|
||||
eski izin listesi yapılandırmalarına `plugins.bundledDiscovery: "compat"` yazar ve
|
||||
ardından daha katı `"allowlist"` ayarına işaret eder.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="2. Eski config anahtarı geçişleri">
|
||||
Config kullanımdan kaldırılmış anahtarlar içerdiğinde, diğer komutlar çalışmayı reddeder ve sizden `openclaw doctor` çalıştırmanızı ister.
|
||||
<Accordion title="2. Eski yapılandırma anahtarı geçişleri">
|
||||
Yapılandırma kullanım dışı anahtarlar içerdiğinde, diğer komutlar çalışmayı reddeder ve sizden `openclaw doctor` çalıştırmanızı ister.
|
||||
|
||||
Doctor şunları yapar:
|
||||
|
||||
@ -190,7 +191,7 @@ Bu, `DREAMS.md` dosyasını inceleme yüzeyi olarak tutarken grounded dayanıkl
|
||||
- Uyguladığı geçişi gösterir.
|
||||
- `~/.openclaw/openclaw.json` dosyasını güncellenmiş şemayla yeniden yazar.
|
||||
|
||||
Gateway de eski bir config biçimi algıladığında başlangıçta doctor geçişlerini otomatik olarak çalıştırır; böylece eski config dosyaları manuel müdahale olmadan onarılır. Cron iş deposu geçişleri `openclaw doctor --fix` tarafından işlenir.
|
||||
Gateway ayrıca eski bir yapılandırma biçimi algıladığında başlangıçta doctor geçişlerini otomatik çalıştırır, böylece eski yapılandırmalar manuel müdahale olmadan onarılır. Cron iş deposu geçişleri `openclaw doctor --fix` tarafından işlenir.
|
||||
|
||||
Geçerli geçişler:
|
||||
|
||||
@ -199,7 +200,7 @@ Bu, `DREAMS.md` dosyasını inceleme yüzeyi olarak tutarken grounded dayanıkl
|
||||
- `routing.groupChat.historyLimit` → `messages.groupChat.historyLimit`
|
||||
- `routing.groupChat.mentionPatterns` → `messages.groupChat.mentionPatterns`
|
||||
- `channels.telegram.requireMention` → `channels.telegram.groups."*".requireMention`
|
||||
- görünür yanıt ilkesi eksik yapılandırılmış kanal yapılandırmaları → `messages.groupChat.visibleReplies: "message_tool"`
|
||||
- görünür yanıt ilkesi eksik olan yapılandırılmış kanal yapılandırmaları → `messages.groupChat.visibleReplies: "message_tool"`
|
||||
- `routing.queue` → `messages.queue`
|
||||
- `routing.bindings` → üst düzey `bindings`
|
||||
- `routing.agents`/`routing.defaultAgentId` → `agents.list` + `agents.list[].default`
|
||||
@ -217,295 +218,295 @@ Bu, `DREAMS.md` dosyasını inceleme yüzeyi olarak tutarken grounded dayanıkl
|
||||
- `plugins.entries.voice-call.config.streaming.sttProvider` → `plugins.entries.voice-call.config.streaming.provider`
|
||||
- `plugins.entries.voice-call.config.streaming.openaiApiKey|sttModel|silenceDurationMs|vadThreshold` → `plugins.entries.voice-call.config.streaming.providers.openai.*`
|
||||
- `bindings[].match.accountID` → `bindings[].match.accountId`
|
||||
- Adlandırılmış `accounts` bulunan ancak tek hesaplı üst düzey kanal değerleri kalan kanallarda, bu hesap kapsamlı değerleri o kanal için seçilen yükseltilmiş hesaba taşıyın (`accounts.default` çoğu kanal için; Matrix mevcut eşleşen adlandırılmış/varsayılan hedefi koruyabilir)
|
||||
- adlandırılmış `accounts` öğelerine sahip ancak tek hesaplı üst düzey kanal değerleri kalan kanallarda, bu hesap kapsamlı değerleri o kanal için seçilen yükseltilmiş hesaba taşıyın (çoğu kanal için `accounts.default`; Matrix mevcut eşleşen adlandırılmış/varsayılan hedefi koruyabilir)
|
||||
- `identity` → `agents.list[].identity`
|
||||
- `agent.*` → `agents.defaults` + `tools.*` (tools/elevated/exec/sandbox/subagents)
|
||||
- `agent.model`/`allowedModels`/`modelAliases`/`modelFallbacks`/`imageModelFallbacks` → `agents.defaults.models` + `agents.defaults.model.primary/fallbacks` + `agents.defaults.imageModel.primary/fallbacks`
|
||||
- `agents.defaults.llm` öğesini kaldırın; yavaş sağlayıcı/model zaman aşımları için `models.providers.<id>.timeoutSeconds` kullanın
|
||||
- `browser.ssrfPolicy.allowPrivateNetwork` → `browser.ssrfPolicy.dangerouslyAllowPrivateNetwork`
|
||||
- `browser.profiles.*.driver: "extension"` → `"existing-session"`
|
||||
- `browser.relayBindHost` öğesini kaldırın (eski Plugin aktarıcı ayarı)
|
||||
- eski `models.providers.*.api: "openai"` → `"openai-completions"` (Gateway başlangıcı ayrıca `api` değeri kapalı başarısız olmak yerine gelecekteki veya bilinmeyen enum değerine ayarlanmış sağlayıcıları atlar)
|
||||
- `browser.relayBindHost` öğesini kaldırın (eski uzantı aktarım ayarı)
|
||||
- eski `models.providers.*.api: "openai"` → `"openai-completions"` (gateway başlatması, `api` değeri gelecekteki veya bilinmeyen bir enum değerine ayarlanmış sağlayıcıları kapalı hata vermek yerine atlar)
|
||||
|
||||
Doctor uyarıları, çok hesaplı kanallar için hesap-varsayılanı rehberliğini de içerir:
|
||||
Doctor uyarıları, çok hesaplı kanallar için hesap varsayılanı rehberliğini de içerir:
|
||||
|
||||
- İki veya daha fazla `channels.<channel>.accounts` girdisi `channels.<channel>.defaultAccount` veya `accounts.default` olmadan yapılandırılmışsa, doctor yedek yönlendirmenin beklenmeyen bir hesap seçebileceği konusunda uyarır.
|
||||
- `channels.<channel>.defaultAccount` bilinmeyen bir hesap kimliğine ayarlanmışsa, doctor uyarır ve yapılandırılmış hesap kimliklerini listeler.
|
||||
- İki veya daha fazla `channels.<channel>.accounts` girdisi `channels.<channel>.defaultAccount` veya `accounts.default` olmadan yapılandırılırsa, doctor yedek yönlendirmenin beklenmeyen bir hesabı seçebileceği konusunda uyarır.
|
||||
- `channels.<channel>.defaultAccount` bilinmeyen bir hesap kimliğine ayarlanırsa, doctor uyarır ve yapılandırılmış hesap kimliklerini listeler.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="2b. OpenCode sağlayıcı geçersiz kılmaları">
|
||||
`models.providers.opencode`, `opencode-zen` veya `opencode-go` öğesini elle eklediyseniz, bu `@mariozechner/pi-ai` içindeki yerleşik OpenCode kataloğunu geçersiz kılar. Bu, modelleri yanlış API'ye zorlayabilir veya maliyetleri sıfırlayabilir. Doctor uyarır; böylece geçersiz kılmayı kaldırıp model başına API yönlendirmesini + maliyetleri geri yükleyebilirsiniz.
|
||||
`models.providers.opencode`, `opencode-zen` veya `opencode-go` öğesini elle eklediyseniz, bu `@mariozechner/pi-ai` içindeki yerleşik OpenCode kataloğunu geçersiz kılar. Bu, modelleri yanlış API'ye zorlayabilir veya maliyetleri sıfırlayabilir. Doctor, geçersiz kılmayı kaldırıp model başına API yönlendirmesini ve maliyetleri geri yükleyebilmeniz için uyarır.
|
||||
</Accordion>
|
||||
<Accordion title="2c. Tarayıcı geçişi ve Chrome MCP hazırlığı">
|
||||
Tarayıcı yapılandırmanız hâlâ kaldırılmış Chrome eklentisi yolunu gösteriyorsa, doctor bunu geçerli ana bilgisayar-yerel Chrome MCP bağlanma modeline normalleştirir:
|
||||
<Accordion title="2c. Tarayıcı geçişi ve Chrome MCP hazır olma durumu">
|
||||
Tarayıcı yapılandırmanız hâlâ kaldırılmış Chrome uzantı yolunu gösteriyorsa, doctor bunu güncel ana makine yerel Chrome MCP ekleme modeline normalleştirir:
|
||||
|
||||
- `browser.profiles.*.driver: "extension"` `"existing-session"` olur
|
||||
- `browser.profiles.*.driver: "extension"` değeri `"existing-session"` olur
|
||||
- `browser.relayBindHost` kaldırılır
|
||||
|
||||
Doctor ayrıca `defaultProfile: "user"` veya yapılandırılmış bir `existing-session` profili kullandığınızda ana bilgisayar-yerel Chrome MCP yolunu denetler:
|
||||
Doctor ayrıca `defaultProfile: "user"` veya yapılandırılmış bir `existing-session` profili kullandığınızda ana makine yerel Chrome MCP yolunu denetler:
|
||||
|
||||
- varsayılan otomatik bağlanma profilleri için Google Chrome'un aynı ana bilgisayarda yüklü olup olmadığını denetler
|
||||
- algılanan Chrome sürümünü denetler ve Chrome 144 altındaysa uyarır
|
||||
- varsayılan otomatik bağlanma profilleri için Google Chrome'un aynı ana makinede kurulu olup olmadığını denetler
|
||||
- algılanan Chrome sürümünü denetler ve Chrome 144'ün altındaysa uyarır
|
||||
- tarayıcı inceleme sayfasında uzaktan hata ayıklamayı etkinleştirmenizi hatırlatır (örneğin `chrome://inspect/#remote-debugging`, `brave://inspect/#remote-debugging` veya `edge://inspect/#remote-debugging`)
|
||||
|
||||
Doctor, Chrome tarafındaki ayarı sizin için etkinleştiremez. Ana bilgisayar-yerel Chrome MCP hâlâ şunları gerektirir:
|
||||
Doctor, Chrome tarafındaki ayarı sizin için etkinleştiremez. Ana makine yerel Chrome MCP yine de şunları gerektirir:
|
||||
|
||||
- gateway/node ana bilgisayarında Chromium tabanlı bir tarayıcı 144+
|
||||
- gateway/node ana makinesinde Chromium tabanlı bir tarayıcı 144+
|
||||
- tarayıcının yerel olarak çalışması
|
||||
- bu tarayıcıda uzaktan hata ayıklamanın etkin olması
|
||||
- tarayıcıdaki ilk bağlanma onayı isteminin onaylanması
|
||||
- o tarayıcıda uzaktan hata ayıklamanın etkinleştirilmesi
|
||||
- tarayıcıdaki ilk ekleme onay isteminin onaylanması
|
||||
|
||||
Buradaki hazırlık yalnızca yerel bağlanma ön koşullarıyla ilgilidir. Existing-session geçerli Chrome MCP rota sınırlarını korur; `responsebody`, PDF dışa aktarma, indirme yakalama ve toplu eylemler gibi gelişmiş rotalar hâlâ yönetilen bir tarayıcı veya ham CDP profili gerektirir.
|
||||
Buradaki hazır olma durumu yalnızca yerel ekleme ön koşullarıyla ilgilidir. Existing-session, mevcut Chrome MCP rota sınırlarını korur; `responsebody`, PDF dışa aktarma, indirme yakalama ve toplu eylemler gibi gelişmiş rotalar yine de yönetilen bir tarayıcı veya ham CDP profili gerektirir.
|
||||
|
||||
Bu denetim Docker, sandbox, remote-browser veya diğer başsız akışlar için geçerli **değildir**. Bunlar ham CDP kullanmaya devam eder.
|
||||
Bu denetim Docker, sandbox, remote-browser veya diğer headless akışlar için geçerli **değildir**. Bunlar ham CDP kullanmaya devam eder.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="2d. OAuth TLS ön koşulları">
|
||||
Bir OpenAI Codex OAuth profili yapılandırıldığında, doctor yerel Node/OpenSSL TLS yığınının sertifika zincirini doğrulayabildiğini doğrulamak için OpenAI yetkilendirme uç noktasını yoklar. Yoklama bir sertifika hatasıyla başarısız olursa (örneğin `UNABLE_TO_GET_ISSUER_CERT_LOCALLY`, süresi dolmuş sertifika veya kendinden imzalı sertifika), doctor platforma özgü düzeltme rehberliği yazdırır. Homebrew Node kullanılan macOS'ta düzeltme genellikle `brew postinstall ca-certificates` olur. `--deep` ile, Gateway sağlıklı olsa bile yoklama çalışır.
|
||||
Bir OpenAI Codex OAuth profili yapılandırıldığında, doctor yerel Node/OpenSSL TLS yığınının sertifika zincirini doğrulayabildiğini doğrulamak için OpenAI yetkilendirme uç noktasını yoklar. Yoklama bir sertifika hatasıyla başarısız olursa (örneğin `UNABLE_TO_GET_ISSUER_CERT_LOCALLY`, süresi dolmuş sertifika veya kendinden imzalı sertifika), doctor platforma özgü düzeltme rehberliği yazdırır. Homebrew Node kullanılan macOS'ta düzeltme genellikle `brew postinstall ca-certificates` komutudur. `--deep` ile gateway sağlıklı olsa bile yoklama çalışır.
|
||||
</Accordion>
|
||||
<Accordion title="2e. Codex OAuth sağlayıcı geçersiz kılmaları">
|
||||
Daha önce `models.providers.openai-codex` altında eski OpenAI aktarım ayarları eklediyseniz, bunlar yeni sürümlerin otomatik olarak kullandığı yerleşik Codex OAuth sağlayıcı yolunu gölgeleyebilir. Doctor, Codex OAuth ile birlikte bu eski aktarım ayarlarını gördüğünde uyarır; böylece eski aktarım geçersiz kılmasını kaldırabilir veya yeniden yazabilir ve yerleşik yönlendirme/yedek davranışını geri alabilirsiniz. Özel proxy'ler ve yalnızca başlık geçersiz kılmaları hâlâ desteklenir ve bu uyarıyı tetiklemez.
|
||||
Daha önce `models.providers.openai-codex` altında eski OpenAI taşıma ayarları eklediyseniz, bunlar yeni sürümlerin otomatik kullandığı yerleşik Codex OAuth sağlayıcı yolunu gölgeleyebilir. Doctor, Codex OAuth ile birlikte bu eski taşıma ayarlarını gördüğünde uyarır; böylece bayat taşıma geçersiz kılmasını kaldırabilir veya yeniden yazabilir ve yerleşik yönlendirme/yedek davranışını geri alabilirsiniz. Özel proxy'ler ve yalnızca başlık geçersiz kılmaları hâlâ desteklenir ve bu uyarıyı tetiklemez.
|
||||
</Accordion>
|
||||
<Accordion title="2f. Codex Plugin rota uyarıları">
|
||||
Paketlenen Codex Plugin etkinleştirildiğinde, doctor `openai-codex/*` birincil model başvurularının hâlâ varsayılan PI çalıştırıcısı üzerinden çözülüp çözülmediğini de denetler. Codex OAuth/abonelik kimlik doğrulamasını PI üzerinden istediğinizde bu birleşim geçerlidir, ancak yerel Codex app-server harness ile karıştırılması kolaydır. Doctor uyarır ve açık app-server biçimine işaret eder: `openai/*` artı `agentRuntime.id: "codex"` veya `OPENCLAW_AGENT_RUNTIME=codex`.
|
||||
<Accordion title="2f. Codex plugin rota uyarıları">
|
||||
Paketlenmiş Codex plugin etkinleştirildiğinde, doctor `openai-codex/*` birincil model referanslarının hâlâ varsayılan PI çalıştırıcısı üzerinden çözümlenip çözümlenmediğini de denetler. PI üzerinden Codex OAuth/abonelik kimlik doğrulaması istediğinizde bu birleşim geçerlidir, ancak bunu yerel Codex uygulama sunucusu donanımıyla karıştırmak kolaydır. Doctor uyarır ve açık uygulama sunucusu biçimine işaret eder: `openai/*` artı `agentRuntime.id: "codex"` veya `OPENCLAW_AGENT_RUNTIME=codex`.
|
||||
|
||||
Doctor bunu otomatik olarak onarmaz çünkü iki rota da geçerlidir:
|
||||
Her iki rota da geçerli olduğu için doctor bunu otomatik onarmaz:
|
||||
|
||||
- `openai-codex/*` + PI şu anlama gelir: "normal OpenClaw çalıştırıcısı üzerinden Codex OAuth/abonelik kimlik doğrulamasını kullan."
|
||||
- `openai/*` + `agentRuntime.id: "codex"` şu anlama gelir: "gömülü turu yerel Codex app-server üzerinden çalıştır."
|
||||
- `/codex ...` şu anlama gelir: "sohbetten yerel bir Codex konuşmasını denetle veya bağla."
|
||||
- `/acp ...` veya `runtime: "acp"` şu anlama gelir: "harici ACP/acpx adaptörünü kullan."
|
||||
- `openai-codex/*` + PI, "normal OpenClaw çalıştırıcısı üzerinden Codex OAuth/abonelik kimlik doğrulamasını kullan" anlamına gelir.
|
||||
- `openai/*` + `agentRuntime.id: "codex"`, "gömülü turu yerel Codex uygulama sunucusu üzerinden çalıştır" anlamına gelir.
|
||||
- `/codex ...`, "sohbetten yerel bir Codex konuşmasını denetle veya bağla" anlamına gelir.
|
||||
- `/acp ...` veya `runtime: "acp"`, "harici ACP/acpx bağdaştırıcısını kullan" anlamına gelir.
|
||||
|
||||
Uyarı görünürse, amaçladığınız rotayı seçin ve yapılandırmayı elle düzenleyin. PI Codex OAuth bilinçli olarak kullanılıyorsa uyarıyı olduğu gibi bırakın.
|
||||
Uyarı görünürse, amaçladığınız rotayı seçin ve yapılandırmayı elle düzenleyin. PI Codex OAuth bilinçli olarak kullanılıyorsa uyarıyı olduğu gibi tutun.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="2g. Oturum rota temizliği">
|
||||
Doctor ayrıca yapılandırılmış varsayılan/yedek modeli veya çalışma zamanını Codex gibi Plugin sahibi bir rotadan uzaklaştırdıktan sonra etkin oturum deposunu eski otomatik oluşturulmuş rota durumu için tarar.
|
||||
<Accordion title="2g. Oturum rotası temizliği">
|
||||
Doctor ayrıca yapılandırılmış varsayılan/yedek modeli veya runtime'ı Codex gibi plugin sahipli bir rotadan uzaklaştırdıktan sonra bayat otomatik oluşturulmuş rota durumu için etkin oturumlar deposunu tarar.
|
||||
|
||||
`openclaw doctor --fix`, sahip rota artık yapılandırılmadığında `modelOverrideSource: "auto"` model sabitlemeleri, çalışma zamanı model meta verileri, sabitlenmiş harness kimlikleri, CLI oturum bağlamaları ve otomatik auth-profile geçersiz kılmaları gibi otomatik oluşturulmuş eski durumu temizleyebilir. Açık kullanıcı veya eski oturum model seçimleri manuel inceleme için raporlanır ve dokunulmadan bırakılır; o rota artık amaçlanmıyorsa bunları `/model ...`, `/new` ile değiştirin veya oturumu sıfırlayın.
|
||||
`openclaw doctor --fix`, sahip oldukları rota artık yapılandırılmadığında `modelOverrideSource: "auto"` model sabitlemeleri, runtime model meta verileri, sabitlenmiş donanım kimlikleri, CLI oturum bağlamaları ve otomatik auth-profile geçersiz kılmaları gibi otomatik oluşturulmuş bayat durumları temizleyebilir. Açık kullanıcı veya eski oturum model seçimleri elle inceleme için raporlanır ve dokunulmadan bırakılır; o rota artık amaçlanmıyorsa bunları `/model ...`, `/new` ile değiştirin veya oturumu sıfırlayın.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="3. Eski durum geçişleri (disk yerleşimi)">
|
||||
Doctor, daha eski disk üzeri yerleşimleri geçerli yapıya geçirebilir:
|
||||
<Accordion title="3. Eski durum geçişleri (disk düzeni)">
|
||||
Doctor, daha eski disk üzeri düzenleri güncel yapıya geçirebilir:
|
||||
|
||||
- Oturum deposu + transkriptler:
|
||||
- `~/.openclaw/sessions/` konumundan `~/.openclaw/agents/<agentId>/sessions/` konumuna
|
||||
- Agent dizini:
|
||||
- Ajan dizini:
|
||||
- `~/.openclaw/agent/` konumundan `~/.openclaw/agents/<agentId>/agent/` konumuna
|
||||
- WhatsApp kimlik doğrulama durumu (Baileys):
|
||||
- eski `~/.openclaw/credentials/*.json` konumundan (`oauth.json` hariç)
|
||||
- `~/.openclaw/credentials/whatsapp/<accountId>/...` konumuna (varsayılan hesap kimliği: `default`)
|
||||
|
||||
Bu geçişler en iyi çaba esaslı ve idempotenttir; doctor herhangi bir eski klasörü yedek olarak geride bıraktığında uyarılar yayar. Gateway/CLI ayrıca başlangıçta eski oturumlar + agent dizinini otomatik olarak geçirir; böylece geçmiş/kimlik doğrulama/modeller manuel doctor çalıştırması olmadan agent başına yola yerleşir. WhatsApp kimlik doğrulaması bilinçli olarak yalnızca `openclaw doctor` aracılığıyla geçirilir. Talk sağlayıcı/sağlayıcı eşlemesi normalleştirmesi artık yapısal eşitlikle karşılaştırır; bu nedenle yalnızca anahtar sırası farkları artık tekrarlanan etkisiz `doctor --fix` değişikliklerini tetiklemez.
|
||||
Bu geçişler en iyi çaba esaslı ve idempotenttir; doctor yedek olarak herhangi bir eski klasörü geride bıraktığında uyarılar yayar. Gateway/CLI ayrıca başlangıçta eski oturumları + ajan dizinini otomatik geçirir; böylece geçmiş/kimlik doğrulama/modeller elle doctor çalıştırmadan ajan başına yola yerleşir. WhatsApp kimlik doğrulaması bilinçli olarak yalnızca `openclaw doctor` üzerinden geçirilir. Talk sağlayıcı/sağlayıcı haritası normalleştirmesi artık yapısal eşitlikle karşılaştırır, bu yüzden yalnızca anahtar sırasından kaynaklanan farklar artık yinelenen etkisiz `doctor --fix` değişikliklerini tetiklemez.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="3a. Eski Plugin manifest geçişleri">
|
||||
Doctor, kullanımdan kaldırılmış üst düzey yetenek anahtarları (`speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders`, `webSearchProviders`) için tüm yüklü Plugin manifestlerini tarar. Bulunduğunda, bunları `contracts` nesnesine taşımayı ve manifest dosyasını yerinde yeniden yazmayı önerir. Bu geçiş idempotenttir; `contracts` anahtarı zaten aynı değerlere sahipse, eski anahtar veri yinelenmeden kaldırılır.
|
||||
<Accordion title="3a. Eski plugin manifest geçişleri">
|
||||
Doctor, kullanımdan kaldırılmış üst düzey yetenek anahtarları (`speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders`, `webSearchProviders`) için kurulu tüm plugin manifestlerini tarar. Bulduğunda, bunları `contracts` nesnesine taşımayı ve manifest dosyasını yerinde yeniden yazmayı önerir. Bu geçiş idempotenttir; `contracts` anahtarı zaten aynı değerlere sahipse eski anahtar veri çoğaltılmadan kaldırılır.
|
||||
</Accordion>
|
||||
<Accordion title="3b. Eski cron depo geçişleri">
|
||||
<Accordion title="3b. Eski cron deposu geçişleri">
|
||||
Doctor ayrıca cron iş deposunu (varsayılan olarak `~/.openclaw/cron/jobs.json` veya geçersiz kılındığında `cron.store`) zamanlayıcının uyumluluk için hâlâ kabul ettiği eski iş biçimleri açısından denetler.
|
||||
|
||||
Geçerli cron temizlikleri şunları içerir:
|
||||
Güncel cron temizlikleri şunları içerir:
|
||||
|
||||
- `jobId` → `id`
|
||||
- `schedule.cron` → `schedule.expr`
|
||||
- üst düzey payload alanları (`message`, `model`, `thinking`, ...) → `payload`
|
||||
- üst düzey yük alanları (`message`, `model`, `thinking`, ...) → `payload`
|
||||
- üst düzey teslim alanları (`deliver`, `channel`, `to`, `provider`, ...) → `delivery`
|
||||
- payload `provider` teslim takma adları → açık `delivery.channel`
|
||||
- yük `provider` teslim takma adları → açık `delivery.channel`
|
||||
- basit eski `notify: true` webhook yedek işleri → `delivery.to=cron.webhook` ile açık `delivery.mode="webhook"`
|
||||
|
||||
Doctor, `notify: true` işlerini yalnızca davranışı değiştirmeden yapabildiğinde otomatik geçirir. Bir iş eski notify yedeğini mevcut webhook dışı teslim moduyla birleştirirse, doctor uyarır ve o işi manuel inceleme için bırakır.
|
||||
Doctor, `notify: true` işlerini yalnızca davranışı değiştirmeden yapabildiğinde otomatik geçirir. Bir iş eski bildirim yedeğini mevcut webhook dışı teslim modu ile birleştirirse, doctor uyarır ve o işi elle inceleme için bırakır.
|
||||
|
||||
Linux'ta doctor, kullanıcının crontab'ı hâlâ eski `~/.openclaw/bin/ensure-whatsapp.sh` betiğini çağırdığında da uyarır. Bu ana makineye yerel betik, mevcut OpenClaw tarafından bakımda değildir ve cron systemd kullanıcı veri yoluna ulaşamadığında `~/.openclaw/logs/whatsapp-health.log` dosyasına yanlış `Gateway inactive` iletileri yazabilir. Güncel olmayan crontab girdisini `crontab -e` ile kaldırın; güncel sağlık denetimleri için `openclaw channels status --probe`, `openclaw doctor` ve `openclaw gateway status` kullanın.
|
||||
Linux'ta doctor, kullanıcının crontab'i hâlâ eski `~/.openclaw/bin/ensure-whatsapp.sh` dosyasını çağırıyorsa da uyarır. Bu ana makineye yerel betik mevcut OpenClaw tarafından korunmaz ve Cron systemd kullanıcı veriyoluna ulaşamadığında `~/.openclaw/logs/whatsapp-health.log` içine hatalı `Gateway inactive` iletileri yazabilir. Eski crontab girdisini `crontab -e` ile kaldırın; mevcut sağlık denetimleri için `openclaw channels status --probe`, `openclaw doctor` ve `openclaw gateway status` kullanın.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="3c. Oturum kilidi temizliği">
|
||||
Doctor, her agent oturum dizinini eski yazma kilidi dosyaları için tarar; bunlar bir oturum anormal şekilde çıktığında geride kalan dosyalardır. Bulunan her kilit dosyası için şunları raporlar: yol, PID, PID'nin hâlâ çalışıp çalışmadığı, kilit yaşı ve eski kabul edilip edilmediği (ölü PID veya 30 dakikadan daha eski). `--fix` / `--repair` modunda eski kilit dosyalarını otomatik olarak kaldırır; aksi takdirde bir not yazdırır ve `--fix` ile yeniden çalıştırmanızı söyler.
|
||||
<Accordion title="3c. Session lock cleanup">
|
||||
Doctor, eski yazma kilidi dosyaları için her ajan oturumu dizinini tarar — bunlar bir oturum anormal şekilde çıktığında geride kalan dosyalardır. Bulunan her kilit dosyası için şunları bildirir: yol, PID, PID'nin hâlâ canlı olup olmadığı, kilit yaşı ve eski kabul edilip edilmediği (ölü PID veya 30 dakikadan eski). `--fix` / `--repair` modunda eski kilit dosyalarını otomatik olarak kaldırır; aksi halde bir not yazdırır ve `--fix` ile yeniden çalıştırmanızı söyler.
|
||||
</Accordion>
|
||||
<Accordion title="3d. Oturum transkripti dal onarımı">
|
||||
Doctor, 2026.4.24 prompt transkripti yeniden yazma hatasının oluşturduğu yinelenmiş dal biçimi için agent oturumu JSONL dosyalarını tarar: OpenClaw dahili çalışma zamanı bağlamına sahip terk edilmiş bir kullanıcı turu ve aynı görünür kullanıcı prompt'unu içeren etkin bir kardeş. `--fix` / `--repair` modunda doctor, etkilenen her dosyayı özgünün yanına yedekler ve transkripti etkin dala göre yeniden yazar; böylece gateway geçmişi ve bellek okuyucuları artık yinelenen turları görmez.
|
||||
<Accordion title="3d. Session transcript branch repair">
|
||||
Doctor, 2026.4.24 istem transkript yeniden yazma hatasının oluşturduğu yinelenmiş dal şekli için ajan oturumu JSONL dosyalarını tarar: OpenClaw iç çalışma zamanı bağlamına sahip terk edilmiş bir kullanıcı sırası ve aynı görünür kullanıcı istemini içeren etkin bir kardeş. `--fix` / `--repair` modunda doctor, etkilenen her dosyayı özgün dosyanın yanına yedekler ve transkripti etkin dala yeniden yazar; böylece Gateway geçmişi ve bellek okuyucuları artık yinelenmiş sıralar görmez.
|
||||
</Accordion>
|
||||
<Accordion title="4. Durum bütünlüğü denetimleri (oturum kalıcılığı, yönlendirme ve güvenlik)">
|
||||
Durum dizini operasyonel beyin sapıdır. Kaybolursa oturumları, kimlik bilgilerini, günlükleri ve yapılandırmayı kaybedersiniz (başka bir yerde yedekleriniz yoksa).
|
||||
<Accordion title="4. State integrity checks (session persistence, routing, and safety)">
|
||||
Durum dizini operasyonel beyin sapıdır. Kaybolursa oturumları, kimlik bilgilerini, günlükleri ve yapılandırmayı kaybedersiniz (başka yerde yedekleriniz yoksa).
|
||||
|
||||
Doctor şunları denetler:
|
||||
|
||||
- **Durum dizini eksik**: yıkıcı durum kaybı hakkında uyarır, dizini yeniden oluşturmanızı ister ve eksik verileri kurtaramayacağını hatırlatır.
|
||||
- **Durum dizini izinleri**: yazılabilirliği doğrular; izinleri onarmayı teklif eder (ve sahip/grup uyumsuzluğu algılandığında bir `chown` ipucu verir).
|
||||
- **macOS bulutla eşitlenen durum dizini**: durum iCloud Drive (`~/Library/Mobile Documents/com~apple~CloudDocs/...`) veya `~/Library/CloudStorage/...` altında çözümlendiğinde uyarır; çünkü eşitleme destekli yollar daha yavaş G/Ç'ye ve kilit/eşitleme yarışlarına neden olabilir.
|
||||
- **Linux SD veya eMMC durum dizini**: durum bir `mmcblk*` bağlama kaynağına çözümlendiğinde uyarır; çünkü SD veya eMMC destekli rastgele G/Ç, oturum ve kimlik bilgisi yazmaları altında daha yavaş olabilir ve daha hızlı yıpranabilir.
|
||||
- **Durum dizini eksik**: yıkıcı durum kaybı hakkında uyarır, dizini yeniden oluşturmayı ister ve eksik verileri kurtaramayacağını hatırlatır.
|
||||
- **Durum dizini izinleri**: yazılabilirliği doğrular; izinleri onarmayı teklif eder (sahip/grup uyumsuzluğu algılandığında bir `chown` ipucu verir).
|
||||
- **macOS bulut eşitlenen durum dizini**: durum iCloud Drive (`~/Library/Mobile Documents/com~apple~CloudDocs/...`) veya `~/Library/CloudStorage/...` altında çözümlendiğinde uyarır, çünkü eşitleme destekli yollar daha yavaş G/Ç'ye ve kilit/eşitleme yarışlarına neden olabilir.
|
||||
- **Linux SD veya eMMC durum dizini**: durum bir `mmcblk*` bağlama kaynağına çözümlendiğinde uyarır, çünkü SD veya eMMC destekli rastgele G/Ç oturum ve kimlik bilgisi yazmaları altında daha yavaş olabilir ve daha hızlı yıpranabilir.
|
||||
- **Oturum dizinleri eksik**: geçmişi kalıcı tutmak ve `ENOENT` çökmelerini önlemek için `sessions/` ve oturum deposu dizini gereklidir.
|
||||
- **Transkript uyumsuzluğu**: son oturum girdilerinde eksik transkript dosyaları olduğunda uyarır.
|
||||
- **Ana oturum "1 satırlık JSONL"**: ana transkriptte yalnızca bir satır olduğunda işaretler (geçmiş birikmiyor).
|
||||
- **Birden çok durum dizini**: ev dizinleri arasında birden çok `~/.openclaw` klasörü bulunduğunda veya `OPENCLAW_STATE_DIR` başka bir yeri işaret ettiğinde uyarır (geçmiş kurulumlar arasında bölünebilir).
|
||||
- **Uzak mod hatırlatıcısı**: `gateway.mode=remote` ise doctor, onu uzak ana makinede çalıştırmanızı hatırlatır (durum orada yaşar).
|
||||
- **Yapılandırma dosyası izinleri**: `~/.openclaw/openclaw.json` grup/dünya tarafından okunabilir durumdaysa uyarır ve `600` olarak sıkılaştırmayı teklif eder.
|
||||
- **Transkript uyumsuzluğu**: son oturum girdilerinde transkript dosyaları eksik olduğunda uyarır.
|
||||
- **Ana oturum "1 satırlık JSONL"**: ana transkriptte yalnızca bir satır olduğunda işaretler (geçmiş birikmiyordur).
|
||||
- **Birden çok durum dizini**: ev dizinleri arasında birden çok `~/.openclaw` klasörü bulunduğunda veya `OPENCLAW_STATE_DIR` başka bir yeri gösterdiğinde uyarır (geçmiş kurulumlar arasında bölünebilir).
|
||||
- **Uzak mod anımsatması**: `gateway.mode=remote` ise doctor, onu uzak ana makinede çalıştırmanızı hatırlatır (durum orada yaşar).
|
||||
- **Yapılandırma dosyası izinleri**: `~/.openclaw/openclaw.json` grup/dünya tarafından okunabilir durumdaysa uyarır ve `600` değerine sıkılaştırmayı teklif eder.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="5. Model kimlik doğrulama sağlığı (OAuth sona ermesi)">
|
||||
Doctor, kimlik doğrulama deposundaki OAuth profillerini inceler, token'lar sona ermek üzereyken/sona erdiğinde uyarır ve güvenliyse bunları yenileyebilir. Anthropic OAuth/token profili eskiyse bir Anthropic API anahtarı veya Anthropic kurulum token'ı yolunu önerir. Yenileme istemleri yalnızca etkileşimli çalışırken (TTY) görünür; `--non-interactive` yenileme denemelerini atlar.
|
||||
<Accordion title="5. Model auth health (OAuth expiry)">
|
||||
Doctor, kimlik doğrulama deposundaki OAuth profillerini inceler, token'lar süresi dolmak üzereyken/süresi dolduğunda uyarır ve güvenliyse onları yenileyebilir. Anthropic OAuth/token profili eskiyse bir Anthropic API anahtarı veya Anthropic setup-token yolunu önerir. Yenileme istemleri yalnızca etkileşimli çalıştırıldığında (TTY) görünür; `--non-interactive` yenileme girişimlerini atlar.
|
||||
|
||||
Bir OAuth yenilemesi kalıcı olarak başarısız olduğunda (örneğin `refresh_token_reused`, `invalid_grant` veya sağlayıcının yeniden oturum açmanızı söylemesi), doctor yeniden kimlik doğrulamanın gerektiğini raporlar ve çalıştırılacak tam `openclaw models auth login --provider ...` komutunu yazdırır.
|
||||
Bir OAuth yenilemesi kalıcı olarak başarısız olduğunda (örneğin `refresh_token_reused`, `invalid_grant` veya bir sağlayıcının yeniden oturum açmanızı söylemesi), doctor yeniden kimlik doğrulaması gerektiğini bildirir ve çalıştırılacak tam `openclaw models auth login --provider ...` komutunu yazdırır.
|
||||
|
||||
Doctor ayrıca şu nedenlerle geçici olarak kullanılamayan kimlik doğrulama profillerini de raporlar:
|
||||
Doctor ayrıca şu nedenlerle geçici olarak kullanılamayan kimlik doğrulama profillerini bildirir:
|
||||
|
||||
- kısa bekleme süreleri (hız sınırları/zaman aşımları/kimlik doğrulama hataları)
|
||||
- daha uzun devre dışı bırakmalar (faturalandırma/kredi hataları)
|
||||
- kısa soğuma süreleri (hız sınırları/zaman aşımları/kimlik doğrulama hataları)
|
||||
- daha uzun devre dışı bırakmalar (faturalama/kredi hataları)
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="6. Hooks model doğrulaması">
|
||||
`hooks.gmail.model` ayarlanmışsa doctor, model başvurusunu katalog ve allowlist'e göre doğrular ve çözümlenmediğinde veya izin verilmediğinde uyarır.
|
||||
<Accordion title="6. Hooks model validation">
|
||||
`hooks.gmail.model` ayarlanmışsa doctor, model başvurusunu katalog ve izin listesine karşı doğrular ve çözümlenmeyeceğinde veya izin verilmediğinde uyarır.
|
||||
</Accordion>
|
||||
<Accordion title="7. Sandbox imajı onarımı">
|
||||
Sandboxing etkin olduğunda doctor, Docker imajlarını denetler ve mevcut imaj eksikse eski adlara geçmeyi veya derlemeyi teklif eder.
|
||||
<Accordion title="7. Sandbox image repair">
|
||||
Sandbox etkinleştirildiğinde doctor, Docker imajlarını denetler ve mevcut imaj eksikse eski adlara geçmeyi veya derlemeyi teklif eder.
|
||||
</Accordion>
|
||||
<Accordion title="7b. Plugin kurulum temizliği">
|
||||
Doctor, `openclaw doctor --fix` / `openclaw doctor --repair` modunda eski OpenClaw tarafından oluşturulmuş Plugin bağımlılığı hazırlama durumunu kaldırır. Bu, eski oluşturulmuş bağımlılık köklerini, eski kurulum aşaması dizinlerini, daha önceki paketlenmiş Plugin bağımlılığı onarım kodundan kalan paket-yerel kalıntıları ve mevcut paketlenmiş manifesti gölgeleyebilen paketlenmiş `@openclaw/*` Plugin'lerinin sahipsiz veya kurtarılmış yönetilen npm kopyalarını kapsar.
|
||||
<Accordion title="7b. Plugin install cleanup">
|
||||
Doctor, `openclaw doctor --fix` / `openclaw doctor --repair` modunda eski OpenClaw tarafından oluşturulmuş Plugin bağımlılık hazırlama durumunu kaldırır. Bu; eski oluşturulmuş bağımlılık köklerini, eski install-stage dizinlerini, daha önceki paketli Plugin bağımlılık onarım kodundan kalan paket yerel kalıntılarını ve mevcut paketli manifesti gölgeleyebilen paketli `@openclaw/*` Plugin'lerinin sahipsiz veya kurtarılmış yönetilen npm kopyalarını kapsar.
|
||||
|
||||
Doctor, yapılandırma bunlara başvuruyor ancak yerel Plugin kayıt defteri bunları bulamıyorsa eksik indirilebilir Plugin'leri de yeniden kurabilir. Örnekler arasında somut `plugins.entries`, yapılandırılmış kanal/sağlayıcı/arama ayarları ve yapılandırılmış agent çalışma zamanları bulunur. Paket güncellemeleri sırasında doctor, çekirdek paket değiştirilirken paket yöneticisi Plugin onarımını çalıştırmaktan kaçınır; yapılandırılmış bir Plugin hâlâ kurtarma gerektiriyorsa güncellemeden sonra `openclaw doctor --fix` komutunu yeniden çalıştırın. Gateway başlatma ve yapılandırma yeniden yükleme paket yöneticilerini çalıştırmaz; Plugin kurulumları açık doctor/install/update işi olarak kalır.
|
||||
Doctor, yapılandırma bunlara başvuruyorsa ancak yerel Plugin kayıt defteri bunları bulamıyorsa eksik indirilebilir Plugin'leri de yeniden yükleyebilir. Örnekler arasında somut `plugins.entries`, yapılandırılmış kanal/sağlayıcı/arama ayarları ve yapılandırılmış ajan çalışma zamanları bulunur. Paket güncellemeleri sırasında doctor, çekirdek paket değiştirilirken paket yöneticisi Plugin onarımını çalıştırmaktan kaçınır; yapılandırılmış bir Plugin hâlâ kurtarma gerektiriyorsa güncellemeden sonra `openclaw doctor --fix` komutunu yeniden çalıştırın. Gateway başlatma ve yapılandırma yeniden yükleme paket yöneticilerini çalıştırmaz; Plugin kurulumları açık doctor/install/update işi olarak kalır.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="8. Gateway hizmet geçişleri ve temizleme ipuçları">
|
||||
Doctor, eski gateway hizmetlerini (launchd/systemd/schtasks) algılar ve bunları kaldırıp geçerli gateway bağlantı noktasını kullanarak OpenClaw hizmetini kurmayı teklif eder. Ayrıca ek gateway benzeri hizmetleri tarayabilir ve temizleme ipuçları yazdırabilir. Profil adlandırmalı OpenClaw gateway hizmetleri birinci sınıf kabul edilir ve "ek" olarak işaretlenmez.
|
||||
<Accordion title="8. Gateway service migrations and cleanup hints">
|
||||
Doctor, eski Gateway servislerini (launchd/systemd/schtasks) algılar ve bunları kaldırıp mevcut Gateway bağlantı noktasını kullanarak OpenClaw servisini yüklemeyi teklif eder. Ayrıca ek Gateway benzeri servisler için tarama yapabilir ve temizlik ipuçları yazdırabilir. Profil adlı OpenClaw Gateway servisleri birinci sınıf kabul edilir ve "ek" olarak işaretlenmez.
|
||||
|
||||
Linux'ta, kullanıcı düzeyi gateway hizmeti eksik ancak sistem düzeyi OpenClaw gateway hizmeti varsa doctor otomatik olarak ikinci bir kullanıcı düzeyi hizmet kurmaz. `openclaw gateway status --deep` veya `openclaw doctor --deep` ile inceleyin, ardından yinelemeyi kaldırın veya bir sistem yöneticisi gateway yaşam döngüsüne sahipse `OPENCLAW_SERVICE_REPAIR_POLICY=external` ayarlayın.
|
||||
Linux'ta, kullanıcı düzeyi Gateway servisi eksikse ancak sistem düzeyi bir OpenClaw Gateway servisi varsa doctor otomatik olarak ikinci bir kullanıcı düzeyi servis yüklemez. `openclaw gateway status --deep` veya `openclaw doctor --deep` ile inceleyin; ardından yineleneni kaldırın veya bir sistem denetçisi Gateway yaşam döngüsünü yönetiyorsa `OPENCLAW_SERVICE_REPAIR_POLICY=external` ayarlayın.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="8b. Başlangıç Matrix geçişi">
|
||||
Bir Matrix kanal hesabında bekleyen veya işlem yapılabilir eski durum geçişi olduğunda doctor (`--fix` / `--repair` modunda), geçiş öncesi bir anlık görüntü oluşturur ve ardından en iyi çabayla geçiş adımlarını çalıştırır: eski Matrix durum geçişi ve eski şifrelenmiş durum hazırlığı. İki adım da ölümcül değildir; hatalar günlüğe kaydedilir ve başlangıç devam eder. Salt okunur modda (`--fix` olmadan `openclaw doctor`) bu denetim tamamen atlanır.
|
||||
<Accordion title="8b. Startup Matrix migration">
|
||||
Bir Matrix kanal hesabında bekleyen veya işlem yapılabilir eski durum geçişi olduğunda doctor (`--fix` / `--repair` modunda) geçiş öncesi bir anlık görüntü oluşturur ve ardından en iyi çaba geçiş adımlarını çalıştırır: eski Matrix durum geçişi ve eski şifrelenmiş durum hazırlığı. Her iki adım da ölümcül değildir; hatalar günlüğe kaydedilir ve başlatma devam eder. Salt okunur modda (`--fix` olmadan `openclaw doctor`) bu denetim tamamen atlanır.
|
||||
</Accordion>
|
||||
<Accordion title="8c. Cihaz eşleştirme ve kimlik doğrulama sapması">
|
||||
<Accordion title="8c. Device pairing and auth drift">
|
||||
Doctor artık normal sağlık geçişinin parçası olarak cihaz eşleştirme durumunu inceler.
|
||||
|
||||
Raporladıkları:
|
||||
Bildirdiği şeyler:
|
||||
|
||||
- bekleyen ilk kez eşleştirme istekleri
|
||||
- zaten eşleştirilmiş cihazlar için bekleyen rol yükseltmeleri
|
||||
- zaten eşleştirilmiş cihazlar için bekleyen kapsam yükseltmeleri
|
||||
- cihaz kimliği hâlâ eşleştiği ancak cihaz kimliği artık onaylanmış kayıtla eşleşmediği genel anahtar uyumsuzluğu onarımları
|
||||
- onaylanmış bir rol için etkin token'ı eksik olan eşleştirilmiş kayıtlar
|
||||
- kapsamları onaylanmış eşleştirme temel çizgisinin dışına sapan eşleştirilmiş token'lar
|
||||
- geçerli makine için gateway tarafı token rotasyonundan önce gelen veya eski kapsam meta verileri taşıyan yerel önbelleğe alınmış cihaz-token girdileri
|
||||
- cihaz kimliğinin hâlâ eşleştiği ancak cihaz kimliğinin onaylı kayıtla artık eşleşmediği genel anahtar uyumsuzluğu onarımları
|
||||
- onaylı bir rol için etkin token'ı eksik eşleştirilmiş kayıtlar
|
||||
- kapsamları onaylı eşleştirme temel çizgisinin dışına kayan eşleştirilmiş token'lar
|
||||
- geçerli makine için Gateway tarafı token döndürmesinden önceye ait olan veya eski kapsam meta verisi taşıyan yerel önbelleğe alınmış cihaz-token girdileri
|
||||
|
||||
Doctor, eşleştirme isteklerini otomatik onaylamaz veya cihaz token'larını otomatik döndürmez. Bunun yerine tam sonraki adımları yazdırır:
|
||||
Doctor eşleştirme isteklerini otomatik onaylamaz veya cihaz token'larını otomatik döndürmez. Bunun yerine tam sonraki adımları yazdırır:
|
||||
|
||||
- bekleyen istekleri `openclaw devices list` ile inceleyin
|
||||
- tam isteği `openclaw devices approve <requestId>` ile onaylayın
|
||||
- `openclaw devices rotate --device <deviceId> --role <role>` ile yeni bir token döndürün
|
||||
- yeni bir token'ı `openclaw devices rotate --device <deviceId> --role <role>` ile döndürün
|
||||
- eski bir kaydı `openclaw devices remove <deviceId>` ile kaldırıp yeniden onaylayın
|
||||
|
||||
Bu, yaygın "zaten eşleştirildi ama hâlâ eşleştirme gerekli alınıyor" açığını kapatır: doctor artık ilk kez eşleştirmeyi bekleyen rol/kapsam yükseltmelerinden ve eski token/cihaz kimliği sapmasından ayırt eder.
|
||||
Bu, yaygın "zaten eşleştirildi ama hâlâ eşleştirme gerekli uyarısı alınıyor" açığını kapatır: doctor artık ilk kez eşleştirmeyi bekleyen rol/kapsam yükseltmelerinden ve eski token/cihaz-kimliği kaymasından ayırır.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="9. Güvenlik uyarıları">
|
||||
Doctor, bir sağlayıcı allowlist olmadan DM'lere açık olduğunda veya bir ilke tehlikeli şekilde yapılandırıldığında uyarılar üretir.
|
||||
<Accordion title="9. Security warnings">
|
||||
Doctor, bir sağlayıcı izin listesi olmadan DM'lere açık olduğunda veya bir ilke tehlikeli şekilde yapılandırıldığında uyarılar yayar.
|
||||
</Accordion>
|
||||
<Accordion title="10. systemd linger (Linux)">
|
||||
systemd kullanıcı hizmeti olarak çalışıyorsa doctor, gateway'in çıkıştan sonra canlı kalması için lingering'in etkin olduğundan emin olur.
|
||||
Bir systemd kullanıcı servisi olarak çalışıyorsa doctor, Gateway oturum kapatıldıktan sonra canlı kalsın diye kalıcılığın etkin olduğundan emin olur.
|
||||
</Accordion>
|
||||
<Accordion title="11. Çalışma alanı durumu (Skills, Plugin'ler ve eski dizinler)">
|
||||
Doctor, varsayılan agent için çalışma alanı durumunun bir özetini yazdırır:
|
||||
<Accordion title="11. Workspace status (skills, plugins, and legacy dirs)">
|
||||
Doctor, varsayılan ajan için çalışma alanı durumunun özetini yazdırır:
|
||||
|
||||
- **Skills durumu**: uygun, eksik gereksinimli ve allowlist tarafından engellenmiş skills sayılarını sayar.
|
||||
- **Eski çalışma alanı dizinleri**: geçerli çalışma alanının yanında `~/openclaw` veya başka eski çalışma alanı dizinleri bulunduğunda uyarır.
|
||||
- **Plugin durumu**: etkin/devre dışı/hatalı Plugin'leri sayar; hatalar için Plugin kimliklerini listeler; paket Plugin yeteneklerini raporlar.
|
||||
- **Plugin uyumluluk uyarıları**: geçerli çalışma zamanı ile uyumluluk sorunları olan Plugin'leri işaretler.
|
||||
- **Plugin tanılamaları**: Plugin kayıt defteri tarafından yükleme zamanında üretilen uyarıları veya hataları yüzeye çıkarır.
|
||||
- **Skills durumu**: uygun, gereksinimleri eksik ve izin listesi tarafından engellenmiş skill'leri sayar.
|
||||
- **Eski çalışma alanı dizinleri**: `~/openclaw` veya diğer eski çalışma alanı dizinleri mevcut çalışma alanının yanında bulunduğunda uyarır.
|
||||
- **Plugin durumu**: etkin/devre dışı/hatalı Plugin'leri sayar; hatalar için Plugin kimliklerini listeler; paket Plugin yeteneklerini bildirir.
|
||||
- **Plugin uyumluluk uyarıları**: mevcut çalışma zamanı ile uyumluluk sorunları olan Plugin'leri işaretler.
|
||||
- **Plugin tanılamaları**: Plugin kayıt defterinin yaydığı yükleme zamanı uyarılarını veya hatalarını yüzeye çıkarır.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="11b. Bootstrap dosya boyutu">
|
||||
Doctor, çalışma alanı bootstrap dosyalarının (örneğin `AGENTS.md`, `CLAUDE.md` veya diğer enjekte edilen bağlam dosyaları) yapılandırılmış karakter bütçesine yakın veya bunun üzerinde olup olmadığını denetler. Dosya başına ham ve enjekte edilmiş karakter sayılarını, kesme yüzdesini, kesme nedenini (`max/file` veya `max/total`) ve toplam bütçenin bir oranı olarak toplam enjekte edilmiş karakterleri raporlar. Dosyalar kesildiğinde veya sınıra yaklaştığında doctor, `agents.defaults.bootstrapMaxChars` ve `agents.defaults.bootstrapTotalMaxChars` ayarlarını ince ayarlamak için ipuçları yazdırır.
|
||||
<Accordion title="11b. Bootstrap file size">
|
||||
Doctor, çalışma alanı bootstrap dosyalarının (örneğin `AGENTS.md`, `CLAUDE.md` veya diğer enjekte edilen bağlam dosyaları) yapılandırılmış karakter bütçesine yakın veya üzerinde olup olmadığını denetler. Dosya başına ham ve enjekte edilmiş karakter sayılarını, kesme yüzdesini, kesme nedenini (`max/file` veya `max/total`) ve toplam bütçenin bir kesri olarak toplam enjekte edilmiş karakterleri bildirir. Dosyalar kesildiğinde veya sınıra yakın olduğunda doctor, `agents.defaults.bootstrapMaxChars` ve `agents.defaults.bootstrapTotalMaxChars` ayarlarını düzenlemek için ipuçları yazdırır.
|
||||
</Accordion>
|
||||
<Accordion title="11d. Eski kanal Plugin temizliği">
|
||||
`openclaw doctor --fix` eksik bir kanal Plugin'ini kaldırdığında, o Plugin'e başvuran sarkan kanal kapsamlı yapılandırmayı da kaldırır: `channels.<id>` girdileri, kanalı adlandıran Heartbeat hedefleri ve `agents.*.models["<channel>/*"]` geçersiz kılmaları. Bu, kanal çalışma zamanı gitmişken yapılandırmanın hâlâ gateway'in ona bağlanmasını istediği Gateway önyükleme döngülerini önler.
|
||||
<Accordion title="11d. Stale channel plugin cleanup">
|
||||
`openclaw doctor --fix` eksik bir kanal Plugin'ini kaldırdığında, o Plugin'e başvuran sarkan kanal kapsamlı yapılandırmayı da kaldırır: `channels.<id>` girdileri, kanalı adlandıran Heartbeat hedefleri ve `agents.*.models["<channel>/*"]` geçersiz kılmaları. Bu, kanal çalışma zamanı gitmişken yapılandırmanın Gateway'den hâlâ ona bağlanmasını istediği Gateway önyükleme döngülerini önler.
|
||||
</Accordion>
|
||||
<Accordion title="11c. Kabuk tamamlama">
|
||||
Doctor, geçerli kabuk (zsh, bash, fish veya PowerShell) için sekme tamamlamanın kurulu olup olmadığını denetler:
|
||||
<Accordion title="11c. Shell completion">
|
||||
Doctor, geçerli kabuk (zsh, bash, fish veya PowerShell) için sekme tamamlamanın yüklenip yüklenmediğini denetler:
|
||||
|
||||
- Kabuk profili yavaş bir dinamik tamamlama kalıbı (`source <(openclaw completion ...)`) kullanıyorsa doctor bunu daha hızlı önbelleğe alınmış dosya varyantına yükseltir.
|
||||
- Tamamlama profilde yapılandırılmış ancak önbellek dosyası eksikse doctor önbelleği otomatik olarak yeniden oluşturur.
|
||||
- Hiç tamamlama yapılandırılmamışsa doctor kurmayı ister (yalnızca etkileşimli mod; `--non-interactive` ile atlanır).
|
||||
- Hiç tamamlama yapılandırılmamışsa doctor yüklemeyi ister (yalnızca etkileşimli mod; `--non-interactive` ile atlanır).
|
||||
|
||||
Önbelleği elle yeniden oluşturmak için `openclaw completion --write-state` çalıştırın.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="12. Gateway kimlik doğrulama denetimleri (yerel token)">
|
||||
Doctor, yerel gateway token kimlik doğrulama hazır oluşunu denetler.
|
||||
<Accordion title="12. Gateway auth checks (local token)">
|
||||
Doctor, yerel Gateway token kimlik doğrulama hazır oluşunu denetler.
|
||||
|
||||
- Token modu bir token gerektiriyor ve hiçbir token kaynağı yoksa doctor bir tane oluşturmayı teklif eder.
|
||||
- Token modu bir token gerektiriyorsa ve hiçbir token kaynağı yoksa doctor bir tane oluşturmayı teklif eder.
|
||||
- `gateway.auth.token` SecretRef tarafından yönetiliyor ancak kullanılamıyorsa doctor uyarır ve onu düz metinle üzerine yazmaz.
|
||||
- `openclaw doctor --generate-gateway-token` yalnızca hiçbir token SecretRef yapılandırılmadığında oluşturmayı zorlar.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="12b. Salt okunur SecretRef farkındalıklı onarımlar">
|
||||
<Accordion title="12b. Read-only SecretRef-aware repairs">
|
||||
Bazı onarım akışlarının, çalışma zamanı hızlı başarısız olma davranışını zayıflatmadan yapılandırılmış kimlik bilgilerini incelemesi gerekir.
|
||||
|
||||
- `openclaw doctor --fix` artık hedeflenmiş yapılandırma onarımları için durum ailesi komutlarıyla aynı salt okunur SecretRef özet modelini kullanır.
|
||||
- `openclaw doctor --fix` artık hedefli yapılandırma onarımları için durum ailesi komutlarıyla aynı salt okunur SecretRef özet modelini kullanır.
|
||||
- Örnek: Telegram `allowFrom` / `groupAllowFrom` `@username` onarımı, mevcut olduğunda yapılandırılmış bot kimlik bilgilerini kullanmayı dener.
|
||||
- Telegram bot token’ı SecretRef aracılığıyla yapılandırılmışsa ancak geçerli komut yolunda kullanılamıyorsa, doctor kimlik bilgisinin yapılandırılmış-ama-kullanılamaz olduğunu bildirir ve token’ın eksik olduğunu hatalı bildirmek veya çökmek yerine otomatik çözümü atlar.
|
||||
- Telegram bot token’ı SecretRef üzerinden yapılandırılmışsa ancak geçerli komut yolunda kullanılamıyorsa, doctor kimlik bilgisinin yapılandırılmış-ama-kullanılamaz olduğunu bildirir ve çökmek ya da token’ı eksik olarak yanlış raporlamak yerine otomatik çözümlemeyi atlar.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="13. Gateway sağlık denetimi + yeniden başlatma">
|
||||
Doctor bir sağlık denetimi çalıştırır ve sağlıksız göründüğünde gateway’i yeniden başlatmayı teklif eder.
|
||||
Doctor bir sağlık denetimi çalıştırır ve gateway sağlıksız göründüğünde yeniden başlatmayı önerir.
|
||||
</Accordion>
|
||||
<Accordion title="13b. Bellek arama hazırlığı">
|
||||
Doctor, yapılandırılmış bellek arama embedding sağlayıcısının varsayılan agent için hazır olup olmadığını denetler. Davranış, yapılandırılmış backend’e ve sağlayıcıya bağlıdır:
|
||||
<Accordion title="13b. Bellek arama hazır olma durumu">
|
||||
Doctor, yapılandırılmış bellek arama embedding sağlayıcısının varsayılan agent için hazır olup olmadığını denetler. Davranış, yapılandırılmış arka uca ve sağlayıcıya bağlıdır:
|
||||
|
||||
- **QMD backend**: `qmd` ikilisinin kullanılabilir ve başlatılabilir olup olmadığını yoklar. Değilse, npm paketi ve manuel ikili yolu seçeneği dahil düzeltme rehberi yazdırır.
|
||||
- **QMD arka ucu**: `qmd` ikilisinin kullanılabilir ve başlatılabilir olup olmadığını yoklar. Değilse, npm paketi ve manuel ikili dosya yolu seçeneği dahil düzeltme yönergeleri yazdırır.
|
||||
- **Açık yerel sağlayıcı**: yerel model dosyası veya tanınan uzak/indirilebilir model URL’si olup olmadığını denetler. Eksikse, uzak bir sağlayıcıya geçmeyi önerir.
|
||||
- **Açık uzak sağlayıcı** (`openai`, `voyage` vb.): ortamda veya kimlik doğrulama deposunda bir API anahtarı bulunduğunu doğrular. Eksikse uygulanabilir düzeltme ipuçları yazdırır.
|
||||
- **Açık uzak sağlayıcı** (`openai`, `voyage` vb.): ortamda veya auth deposunda bir API anahtarının bulunduğunu doğrular. Eksikse uygulanabilir düzeltme ipuçları yazdırır.
|
||||
- **Otomatik sağlayıcı**: önce yerel model kullanılabilirliğini denetler, ardından otomatik seçim sırasındaki her uzak sağlayıcıyı dener.
|
||||
|
||||
Önbelleğe alınmış bir gateway yoklama sonucu mevcut olduğunda (gateway denetim anında sağlıklıydı), doctor bu sonucu CLI’dan görülebilen yapılandırmayla karşılaştırır ve herhangi bir tutarsızlığı not eder. Doctor varsayılan yolda yeni bir embedding ping’i başlatmaz; canlı sağlayıcı denetimi istediğinizde derin bellek durumu komutunu kullanın.
|
||||
Önbelleğe alınmış bir Gateway yoklama sonucu mevcut olduğunda (Gateway denetim sırasında sağlıklıydı), doctor bu sonucu CLI tarafından görülebilen yapılandırmayla çapraz kontrol eder ve tutarsızlık varsa belirtir. Doctor varsayılan yolda yeni bir embedding ping’i başlatmaz; canlı sağlayıcı denetimi istediğinizde derin bellek durumu komutunu kullanın.
|
||||
|
||||
Çalışma zamanında embedding hazırlığını doğrulamak için `openclaw memory status --deep` kullanın.
|
||||
Çalışma zamanında embedding hazır olma durumunu doğrulamak için `openclaw memory status --deep` kullanın.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="14. Kanal durumu uyarıları">
|
||||
Gateway sağlıklıysa, doctor bir kanal durumu yoklaması çalıştırır ve önerilen düzeltmelerle birlikte uyarıları bildirir.
|
||||
Gateway sağlıklıysa doctor kanal durumu yoklaması çalıştırır ve önerilen düzeltmelerle birlikte uyarıları bildirir.
|
||||
</Accordion>
|
||||
<Accordion title="15. Supervisor yapılandırma denetimi + onarım">
|
||||
Doctor, yüklü supervisor yapılandırmasını (launchd/systemd/schtasks) eksik veya eski varsayılanlar açısından denetler (ör. systemd network-online bağımlılıkları ve yeniden başlatma gecikmesi). Bir uyumsuzluk bulduğunda güncelleme önerir ve servis dosyasını/görevini geçerli varsayılanlara göre yeniden yazabilir.
|
||||
Doctor, kurulu supervisor yapılandırmasını (launchd/systemd/schtasks) eksik veya güncel olmayan varsayılanlar açısından denetler (ör. systemd network-online bağımlılıkları ve yeniden başlatma gecikmesi). Bir uyumsuzluk bulduğunda güncelleme önerir ve hizmet dosyasını/görevini geçerli varsayılanlara yeniden yazabilir.
|
||||
|
||||
Notlar:
|
||||
|
||||
- `openclaw doctor`, supervisor yapılandırmasını yeniden yazmadan önce sorar.
|
||||
- `openclaw doctor --yes` varsayılan onarım istemlerini kabul eder.
|
||||
- `openclaw doctor --repair` önerilen düzeltmeleri istem olmadan uygular.
|
||||
- `openclaw doctor --repair --force` özel supervisor yapılandırmalarının üzerine yazar.
|
||||
- `OPENCLAW_SERVICE_REPAIR_POLICY=external`, Gateway servis yaşam döngüsü için doctor’ı salt okunur tutar. Servis sağlığını yine bildirir ve servis dışı onarımları çalıştırır, ancak harici bir supervisor bu yaşam döngüsünün sahibi olduğu için servis install/start/restart/bootstrap, supervisor yapılandırma yeniden yazımları ve eski servis temizliğini atlar.
|
||||
- Linux’ta doctor, eşleşen systemd Gateway birimi etkinken komut/entrypoint metadata’sını yeniden yazmaz. Ayrıca yinelenen servis taraması sırasında etkin olmayan, legacy olmayan ek gateway benzeri birimleri yok sayar; böylece eşlik eden servis dosyaları temizlik gürültüsü oluşturmaz.
|
||||
- Token kimlik doğrulaması bir token gerektiriyorsa ve `gateway.auth.token` SecretRef tarafından yönetiliyorsa, doctor servis install/repair işlemi SecretRef’i doğrular ancak çözümlenmiş düz metin token değerlerini supervisor servis ortam metadata’sına kalıcı olarak yazmaz.
|
||||
- Doctor, eski LaunchAgent, systemd veya Windows Zamanlanmış Görev kurulumlarının satır içine gömdüğü yönetilen `.env`/SecretRef destekli servis ortam değerlerini algılar ve bu değerlerin supervisor tanımı yerine çalışma zamanı kaynağından yüklenmesi için servis metadata’sını yeniden yazar.
|
||||
- Doctor, `gateway.port` değiştikten sonra servis komutunun hâlâ eski bir `--port` sabitlediğini algılar ve servis metadata’sını geçerli porta göre yeniden yazar.
|
||||
- Token kimlik doğrulaması bir token gerektiriyorsa ve yapılandırılmış token SecretRef’i çözümlenmemişse, doctor install/repair yolunu uygulanabilir rehberlikle engeller.
|
||||
- Hem `gateway.auth.token` hem de `gateway.auth.password` yapılandırılmışsa ve `gateway.auth.mode` ayarlanmamışsa, doctor mod açıkça ayarlanana kadar install/repair işlemini engeller.
|
||||
- Linux user-systemd birimleri için doctor token sapması denetimleri artık servis kimlik doğrulama metadata’sını karşılaştırırken hem `Environment=` hem de `EnvironmentFile=` kaynaklarını içerir.
|
||||
- Doctor servis onarımları, yapılandırma en son daha yeni bir sürüm tarafından yazılmışsa eski bir OpenClaw ikilisinden gelen Gateway servisini yeniden yazmayı, durdurmayı veya yeniden başlatmayı reddeder. Bkz. [Gateway sorun giderme](/tr/gateway/troubleshooting#split-brain-installs-and-newer-config-guard).
|
||||
- `openclaw doctor`, supervisor yapılandırmasını yeniden yazmadan önce onay ister.
|
||||
- `openclaw doctor --yes`, varsayılan onarım istemlerini kabul eder.
|
||||
- `openclaw doctor --repair`, önerilen düzeltmeleri onay istemeden uygular.
|
||||
- `openclaw doctor --repair --force`, özel supervisor yapılandırmalarının üzerine yazar.
|
||||
- `OPENCLAW_SERVICE_REPAIR_POLICY=external`, Gateway hizmet yaşam döngüsü için doctor’ı salt okunur tutar. Hizmet sağlığını yine bildirir ve hizmet dışı onarımları çalıştırır, ancak harici bir supervisor bu yaşam döngüsüne sahip olduğu için hizmet kurma/başlatma/yeniden başlatma/bootstrap, supervisor yapılandırma yeniden yazımları ve eski hizmet temizliğini atlar.
|
||||
- Linux’ta doctor, eşleşen systemd Gateway birimi etkinken komut/entrypoint meta verilerini yeniden yazmaz. Ayrıca yinelenen hizmet taraması sırasında etkin olmayan, eski olmayan ek Gateway benzeri birimleri yok sayar; böylece eşlik eden hizmet dosyaları temizlik gürültüsü oluşturmaz.
|
||||
- Token auth token gerektiriyorsa ve `gateway.auth.token` SecretRef tarafından yönetiliyorsa, doctor hizmet kurulumu/onarımı SecretRef’i doğrular ancak çözümlenmiş düz metin token değerlerini supervisor hizmet ortamı meta verilerine kalıcı olarak yazmaz.
|
||||
- Doctor, eski LaunchAgent, systemd veya Windows Scheduled Task kurulumlarının satır içine gömdüğü yönetilen `.env`/SecretRef destekli hizmet ortamı değerlerini algılar ve hizmet meta verilerini bu değerler supervisor tanımı yerine çalışma zamanı kaynağından yüklenecek şekilde yeniden yazar.
|
||||
- Doctor, `gateway.port` değiştikten sonra hizmet komutunun hâlâ eski bir `--port` sabitlediğini algılar ve hizmet meta verilerini geçerli porta yeniden yazar.
|
||||
- Token auth token gerektiriyorsa ve yapılandırılmış token SecretRef’i çözümlenemiyorsa doctor, kurulum/onarım yolunu uygulanabilir yönergelerle engeller.
|
||||
- Hem `gateway.auth.token` hem de `gateway.auth.password` yapılandırılmışsa ve `gateway.auth.mode` ayarlanmamışsa doctor, mod açıkça ayarlanana kadar kurulumu/onarımı engeller.
|
||||
- Linux kullanıcı-systemd birimleri için doctor token drift denetimleri artık hizmet auth meta verilerini karşılaştırırken hem `Environment=` hem de `EnvironmentFile=` kaynaklarını içerir.
|
||||
- Doctor hizmet onarımları, yapılandırma en son daha yeni bir sürüm tarafından yazılmışsa eski bir OpenClaw ikilisinden Gateway hizmetini yeniden yazmayı, durdurmayı veya yeniden başlatmayı reddeder. Bkz. [Gateway sorun giderme](/tr/gateway/troubleshooting#split-brain-installs-and-newer-config-guard).
|
||||
- `openclaw gateway install --force` ile her zaman tam yeniden yazmayı zorlayabilirsiniz.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="16. Gateway çalışma zamanı + port tanılamaları">
|
||||
Doctor servis çalışma zamanını (PID, son çıkış durumu) inceler ve servis yüklü olduğu halde gerçekten çalışmadığında uyarır. Ayrıca Gateway portunda (varsayılan `18789`) port çakışmalarını denetler ve olası nedenleri bildirir (Gateway zaten çalışıyor, SSH tüneli).
|
||||
Doctor hizmet çalışma zamanını (PID, son çıkış durumu) inceler ve hizmet kurulu olduğu halde gerçekte çalışmadığında uyarır. Ayrıca Gateway portunda (varsayılan `18789`) port çakışmalarını denetler ve olası nedenleri bildirir (Gateway zaten çalışıyor, SSH tüneli).
|
||||
</Accordion>
|
||||
<Accordion title="17. Gateway çalışma zamanı en iyi uygulamaları">
|
||||
Doctor, Gateway servisi Bun üzerinde veya sürümle yönetilen bir Node yolunda (`nvm`, `fnm`, `volta`, `asdf` vb.) çalıştığında uyarır. WhatsApp + Telegram kanalları Node gerektirir ve sürüm yöneticisi yolları yükseltmelerden sonra bozulabilir çünkü servis shell başlangıcınızı yüklemez. Doctor, mevcut olduğunda sistem Node kurulumuna geçiş yapmayı teklif eder (Homebrew/apt/choco).
|
||||
Doctor, Gateway hizmeti Bun üzerinde veya sürüm yöneticili bir Node yolunda (`nvm`, `fnm`, `volta`, `asdf` vb.) çalıştığında uyarır. WhatsApp + Telegram kanalları Node gerektirir ve sürüm yöneticisi yolları yükseltmelerden sonra bozulabilir çünkü hizmet shell başlatmanızı yüklemez. Doctor mevcut olduğunda sistem Node kurulumuna (Homebrew/apt/choco) geçiş yapmayı önerir.
|
||||
|
||||
Yeni yüklenen veya onarılan macOS LaunchAgent’ları, etkileşimli shell PATH’ini kopyalamak yerine standart bir sistem PATH’i (`/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin`) kullanır; böylece Volta, asdf, fnm, pnpm ve diğer sürüm yöneticisi dizinleri hangi Node child process’lerinin çözümleneceğini değiştirmez. Linux servisleri hâlâ açık ortam köklerini (`NVM_DIR`, `FNM_DIR`, `VOLTA_HOME`, `ASDF_DATA_DIR`, `BUN_INSTALL`, `PNPM_HOME`) ve kararlı user-bin dizinlerini korur, ancak tahmin edilen sürüm yöneticisi fallback dizinleri yalnızca bu dizinler diskte mevcutsa servis PATH’ine yazılır.
|
||||
Yeni kurulan veya onarılan macOS LaunchAgent’ları, etkileşimli shell PATH’ini kopyalamak yerine kanonik bir sistem PATH’i (`/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin`) kullanır; böylece Volta, asdf, fnm, pnpm ve diğer sürüm yöneticisi dizinleri hangi Node alt süreçlerinin çözümleneceğini değiştirmez. Linux hizmetleri hâlâ açık ortam köklerini (`NVM_DIR`, `FNM_DIR`, `VOLTA_HOME`, `ASDF_DATA_DIR`, `BUN_INSTALL`, `PNPM_HOME`) ve kararlı kullanıcı-bin dizinlerini korur, ancak tahmin edilen sürüm yöneticisi yedek dizinleri yalnızca bu dizinler diskte mevcutsa hizmet PATH’ine yazılır.
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="18. Yapılandırma yazma + wizard metadata’sı">
|
||||
Doctor, tüm yapılandırma değişikliklerini kalıcı hale getirir ve doctor çalıştırmasını kaydetmek için wizard metadata’sını damgalar.
|
||||
<Accordion title="18. Yapılandırma yazma + wizard meta verileri">
|
||||
Doctor tüm yapılandırma değişikliklerini kalıcı hale getirir ve doctor çalıştırmasını kaydetmek için wizard meta verilerini damgalar.
|
||||
</Accordion>
|
||||
<Accordion title="19. Workspace ipuçları (yedekleme + bellek sistemi)">
|
||||
Doctor, eksik olduğunda bir workspace bellek sistemi önerir ve workspace zaten git altında değilse bir yedekleme ipucu yazdırır.
|
||||
<Accordion title="19. Çalışma alanı ipuçları (yedekleme + bellek sistemi)">
|
||||
Doctor eksik olduğunda bir çalışma alanı bellek sistemi önerir ve çalışma alanı zaten git altında değilse bir yedekleme ipucu yazdırır.
|
||||
|
||||
Workspace yapısı ve git yedekleme için tam rehber için bkz. [/concepts/agent-workspace](/tr/concepts/agent-workspace) (önerilen özel GitHub veya GitLab).
|
||||
Çalışma alanı yapısı ve git yedekleme (önerilen özel GitHub veya GitLab) hakkında tam kılavuz için [/concepts/agent-workspace](/tr/concepts/agent-workspace) bölümüne bakın.
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## İlgili
|
||||
|
||||
- [Gateway runbook](/tr/gateway)
|
||||
- [Gateway runbook’u](/tr/gateway)
|
||||
- [Gateway sorun giderme](/tr/gateway/troubleshooting)
|
||||
|
||||
@ -2,13 +2,13 @@
|
||||
read_when:
|
||||
- Yerel kurulumlar yerine konteynerleştirilmiş bir Gateway istiyorsunuz
|
||||
- Docker akışını doğruluyorsunuz
|
||||
summary: OpenClaw için isteğe bağlı Docker tabanlı kurulum ve ilk kullanım süreci
|
||||
summary: OpenClaw için isteğe bağlı Docker tabanlı kurulum ve kullanıma başlama
|
||||
title: Docker
|
||||
x-i18n:
|
||||
generated_at: "2026-05-02T20:47:14Z"
|
||||
generated_at: "2026-05-05T08:26:03Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 5e57659c89a0b207b4b331752e7faaa814fe1f0043dad97043e95e460286c551
|
||||
source_hash: f57db2ec12f1a1fd681ec90cc43b2c945755a9240f571de46688777e957f1b8e
|
||||
source_path: install/docker.md
|
||||
workflow: 16
|
||||
---
|
||||
@ -17,62 +17,62 @@ Docker **isteğe bağlıdır**. Yalnızca containerized Gateway istiyorsanız ve
|
||||
|
||||
## Docker benim için doğru mu?
|
||||
|
||||
- **Evet**: yalıtılmış, tek kullanımlık bir Gateway ortamı istiyorsunuz veya OpenClaw'ı yerel kurulumlar olmayan bir host üzerinde çalıştırmak istiyorsunuz.
|
||||
- **Hayır**: kendi makinenizde çalışıyorsunuz ve yalnızca en hızlı geliştirme döngüsünü istiyorsunuz. Bunun yerine normal kurulum akışını kullanın.
|
||||
- **Sandboxing notu**: varsayılan sandbox backend'i, sandboxing etkinleştirildiğinde Docker kullanır; ancak sandboxing varsayılan olarak kapalıdır ve tam Gateway'in Docker içinde çalışmasını **gerektirmez**. SSH ve OpenShell sandbox backend'leri de mevcuttur. Bkz. [Sandboxing](/tr/gateway/sandboxing).
|
||||
- **Evet**: yalıtılmış, tek kullanımlık bir Gateway ortamı istiyorsunuz veya OpenClaw’ı yerel kurulumlar olmadan bir host üzerinde çalıştırmak istiyorsunuz.
|
||||
- **Hayır**: kendi makinenizde çalıştırıyorsunuz ve yalnızca en hızlı geliştirme döngüsünü istiyorsunuz. Bunun yerine normal kurulum akışını kullanın.
|
||||
- **Sandboxing notu**: varsayılan sandbox backend’i, sandboxing etkinleştirildiğinde Docker kullanır; ancak sandboxing varsayılan olarak kapalıdır ve tam Gateway’in Docker içinde çalışmasını **gerektirmez**. SSH ve OpenShell sandbox backend’leri de kullanılabilir. Bkz. [Sandboxing](/tr/gateway/sandboxing).
|
||||
|
||||
## Önkoşullar
|
||||
## Ön koşullar
|
||||
|
||||
- Docker Desktop (veya Docker Engine) + Docker Compose v2
|
||||
- Image build için en az 2 GB RAM (`pnpm install`, 1 GB host'larda çıkış 137 ile OOM-killed olabilir)
|
||||
- Image'lar ve günlükler için yeterli disk alanı
|
||||
- İmaj derlemesi için en az 2 GB RAM (`pnpm install`, 1 GB host’larda çıkış 137 ile OOM-killed olabilir)
|
||||
- İmajlar ve günlükler için yeterli disk alanı
|
||||
- Bir VPS/public host üzerinde çalıştırıyorsanız,
|
||||
[ağ erişimi için güvenlik sertleştirmesini](/tr/gateway/security),
|
||||
özellikle Docker `DOCKER-USER` güvenlik duvarı politikasını inceleyin.
|
||||
[Ağ erişimi için güvenlik sıkılaştırması](/tr/gateway/security)
|
||||
belgesini, özellikle Docker `DOCKER-USER` firewall politikasını inceleyin.
|
||||
|
||||
## Containerized Gateway
|
||||
|
||||
<Steps>
|
||||
<Step title="Build the image">
|
||||
<Step title="İmajı derleyin">
|
||||
Repo kökünden kurulum betiğini çalıştırın:
|
||||
|
||||
```bash
|
||||
./scripts/docker/setup.sh
|
||||
```
|
||||
|
||||
Bu, Gateway image'ını yerelde oluşturur. Bunun yerine önceden oluşturulmuş bir image kullanmak için:
|
||||
Bu, Gateway imajını yerelde derler. Bunun yerine önceden derlenmiş bir imaj kullanmak için:
|
||||
|
||||
```bash
|
||||
export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"
|
||||
./scripts/docker/setup.sh
|
||||
```
|
||||
|
||||
Önceden oluşturulmuş image'lar
|
||||
[GitHub Container Registry](https://github.com/openclaw/openclaw/pkgs/container/openclaw) üzerinde yayımlanır.
|
||||
Yaygın etiketler: `main`, `latest`, `<version>` (örn. `2026.2.26`).
|
||||
Önceden derlenmiş imajlar
|
||||
[GitHub Container Registry](https://github.com/openclaw/openclaw/pkgs/container/openclaw)
|
||||
üzerinde yayımlanır. Yaygın etiketler: `main`, `latest`, `<version>` (örn. `2026.2.26`).
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Complete onboarding">
|
||||
Kurulum betiği onboarding'i otomatik olarak çalıştırır. Şunları yapar:
|
||||
<Step title="Onboarding’i tamamlayın">
|
||||
Kurulum betiği onboarding’i otomatik olarak çalıştırır. Şunları yapar:
|
||||
|
||||
- provider API anahtarlarını ister
|
||||
- bir Gateway token'ı üretir ve `.env` içine yazar
|
||||
- Gateway'i Docker Compose üzerinden başlatır
|
||||
- provider API anahtarlarını sorar
|
||||
- bir Gateway token’ı oluşturur ve `.env` dosyasına yazar
|
||||
- Gateway’i Docker Compose üzerinden başlatır
|
||||
|
||||
Kurulum sırasında, başlatma öncesi onboarding ve config yazma işlemleri doğrudan
|
||||
`openclaw-gateway` üzerinden çalışır. `openclaw-cli`, Gateway container'ı zaten
|
||||
mevcut olduktan sonra çalıştırdığınız komutlar içindir.
|
||||
Kurulum sırasında, başlatma öncesi onboarding ve config yazımları doğrudan
|
||||
`openclaw-gateway` üzerinden çalışır. `openclaw-cli`, Gateway container’ı
|
||||
zaten mevcut olduktan sonra çalıştırdığınız komutlar içindir.
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Open the Control UI">
|
||||
<Step title="Control UI’ı açın">
|
||||
Tarayıcınızda `http://127.0.0.1:18789/` adresini açın ve yapılandırılmış
|
||||
paylaşılan secret'ı Settings içine yapıştırın. Kurulum betiği varsayılan olarak
|
||||
`.env` içine bir token yazar; container config'ini password auth'a geçirirseniz
|
||||
bunun yerine o password'ü kullanın.
|
||||
shared secret’ı Settings içine yapıştırın. Kurulum betiği varsayılan olarak
|
||||
`.env` dosyasına bir token yazar; container config’ini parola auth’a geçirirseniz
|
||||
bunun yerine o parolayı kullanın.
|
||||
|
||||
URL'ye yeniden mi ihtiyacınız var?
|
||||
URL’ye tekrar mı ihtiyacınız var?
|
||||
|
||||
```bash
|
||||
docker compose run --rm openclaw-cli dashboard --no-open
|
||||
@ -80,8 +80,8 @@ Docker **isteğe bağlıdır**. Yalnızca containerized Gateway istiyorsanız ve
|
||||
|
||||
</Step>
|
||||
|
||||
<Step title="Configure channels (optional)">
|
||||
Mesajlaşma kanalları eklemek için CLI container'ını kullanın:
|
||||
<Step title="Kanalları yapılandırın (isteğe bağlı)">
|
||||
Mesajlaşma kanalları eklemek için CLI container’ını kullanın:
|
||||
|
||||
```bash
|
||||
# WhatsApp (QR)
|
||||
@ -94,14 +94,14 @@ Docker **isteğe bağlıdır**. Yalnızca containerized Gateway istiyorsanız ve
|
||||
docker compose run --rm openclaw-cli channels add --channel discord --token "<token>"
|
||||
```
|
||||
|
||||
Dokümanlar: [WhatsApp](/tr/channels/whatsapp), [Telegram](/tr/channels/telegram), [Discord](/tr/channels/discord)
|
||||
Belgeler: [WhatsApp](/tr/channels/whatsapp), [Telegram](/tr/channels/telegram), [Discord](/tr/channels/discord)
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
### Manuel akış
|
||||
|
||||
Kurulum betiğini kullanmak yerine her adımı kendiniz çalıştırmayı tercih ederseniz:
|
||||
Kurulum betiğini kullanmak yerine her adımı kendiniz çalıştırmayı tercih ediyorsanız:
|
||||
|
||||
```bash
|
||||
docker build -t openclaw:local -f Dockerfile .
|
||||
@ -115,13 +115,13 @@ docker compose up -d openclaw-gateway
|
||||
<Note>
|
||||
`docker compose` komutunu repo kökünden çalıştırın. `OPENCLAW_EXTRA_MOUNTS`
|
||||
veya `OPENCLAW_HOME_VOLUME` etkinleştirdiyseniz kurulum betiği `docker-compose.extra.yml`
|
||||
yazar; bunu `-f docker-compose.yml -f docker-compose.extra.yml` ile dahil edin.
|
||||
dosyasını yazar; bunu `-f docker-compose.yml -f docker-compose.extra.yml` ile dahil edin.
|
||||
</Note>
|
||||
|
||||
<Note>
|
||||
`openclaw-cli`, `openclaw-gateway`'in ağ namespace'ini paylaştığı için bir
|
||||
başlatma sonrası aracıdır. `docker compose up -d openclaw-gateway` öncesinde,
|
||||
onboarding ve kurulum zamanı config yazma işlemlerini `--no-deps --entrypoint node`
|
||||
`openclaw-cli`, `openclaw-gateway` ile aynı ağ namespace’ini paylaştığı için
|
||||
başlatma sonrası bir araçtır. `docker compose up -d openclaw-gateway` öncesinde
|
||||
onboarding’i ve kurulum zamanı config yazımlarını `--no-deps --entrypoint node`
|
||||
ile `openclaw-gateway` üzerinden çalıştırın.
|
||||
</Note>
|
||||
|
||||
@ -131,35 +131,34 @@ Kurulum betiği şu isteğe bağlı ortam değişkenlerini kabul eder:
|
||||
|
||||
| Değişken | Amaç |
|
||||
| ------------------------------------------ | --------------------------------------------------------------- |
|
||||
| `OPENCLAW_IMAGE` | Yerelde oluşturmak yerine uzaktaki bir image kullan |
|
||||
| `OPENCLAW_DOCKER_APT_PACKAGES` | Build sırasında ek apt paketleri kur (boşlukla ayrılmış) |
|
||||
| `OPENCLAW_EXTENSIONS` | Build zamanında seçili bundled Plugin yardımcılarını dahil et |
|
||||
| `OPENCLAW_EXTRA_MOUNTS` | Ek host bind mount'ları (virgülle ayrılmış `source:target[:opts]`) |
|
||||
| `OPENCLAW_HOME_VOLUME` | `/home/node` yolunu adlandırılmış bir Docker volume içinde kalıcı hale getir |
|
||||
| `OPENCLAW_SANDBOX` | Sandbox bootstrap'a katıl (`1`, `true`, `yes`, `on`) |
|
||||
| `OPENCLAW_SKIP_ONBOARDING` | Etkileşimli onboarding adımını atla (`1`, `true`, `yes`, `on`) |
|
||||
| `OPENCLAW_DOCKER_SOCKET` | Docker socket yolunu override et |
|
||||
| `OPENCLAW_DISABLE_BONJOUR` | Bonjour/mDNS duyurusunu devre dışı bırak (Docker için varsayılan `1`) |
|
||||
| `OPENCLAW_DISABLE_BUNDLED_SOURCE_OVERLAYS` | Bundled Plugin kaynak bind-mount overlay'lerini devre dışı bırak |
|
||||
| `OTEL_EXPORTER_OTLP_ENDPOINT` | OpenTelemetry export için paylaşılan OTLP/HTTP collector endpoint'i |
|
||||
| `OTEL_EXPORTER_OTLP_*_ENDPOINT` | Trace, metric veya loglar için sinyale özel OTLP endpoint'leri |
|
||||
| `OTEL_EXPORTER_OTLP_PROTOCOL` | OTLP protokol override'ı. Bugün yalnızca `http/protobuf` desteklenir |
|
||||
| `OTEL_SERVICE_NAME` | OpenTelemetry resource'ları için kullanılan servis adı |
|
||||
| `OTEL_SEMCONV_STABILITY_OPT_IN` | En yeni deneysel GenAI semantik özniteliklerine katıl |
|
||||
| `OPENCLAW_OTEL_PRELOADED` | Biri önceden yüklüyse ikinci bir OpenTelemetry SDK başlatmayı atla |
|
||||
| `OPENCLAW_IMAGE` | Yerelde derlemek yerine uzak bir imaj kullanır |
|
||||
| `OPENCLAW_DOCKER_APT_PACKAGES` | Derleme sırasında ek apt paketleri kurar (boşlukla ayrılmış) |
|
||||
| `OPENCLAW_EXTENSIONS` | Derleme zamanında seçili paketle gelen Plugin yardımcılarını dahil eder |
|
||||
| `OPENCLAW_EXTRA_MOUNTS` | Ek host bind mount’ları (virgülle ayrılmış `source:target[:opts]`) |
|
||||
| `OPENCLAW_HOME_VOLUME` | `/home/node` yolunu adlandırılmış bir Docker volume içinde kalıcı yapar |
|
||||
| `OPENCLAW_SANDBOX` | Sandbox bootstrap’a dahil olur (`1`, `true`, `yes`, `on`) |
|
||||
| `OPENCLAW_SKIP_ONBOARDING` | Etkileşimli onboarding adımını atlar (`1`, `true`, `yes`, `on`) |
|
||||
| `OPENCLAW_DOCKER_SOCKET` | Docker socket yolunu override eder |
|
||||
| `OPENCLAW_DISABLE_BONJOUR` | Bonjour/mDNS reklamını devre dışı bırakır (Docker için varsayılan `1`) |
|
||||
| `OPENCLAW_DISABLE_BUNDLED_SOURCE_OVERLAYS` | Paketle gelen Plugin kaynak bind-mount overlay’lerini devre dışı bırakır |
|
||||
| `OTEL_EXPORTER_OTLP_ENDPOINT` | OpenTelemetry export için paylaşılan OTLP/HTTP collector endpoint’i |
|
||||
| `OTEL_EXPORTER_OTLP_*_ENDPOINT` | Trace, metric veya log için sinyale özgü OTLP endpoint’leri |
|
||||
| `OTEL_EXPORTER_OTLP_PROTOCOL` | OTLP protocol override’ı. Bugün yalnızca `http/protobuf` desteklenir |
|
||||
| `OTEL_SERVICE_NAME` | OpenTelemetry resource’ları için kullanılan service name |
|
||||
| `OTEL_SEMCONV_STABILITY_OPT_IN` | En yeni deneysel GenAI semantic attribute’larına dahil olur |
|
||||
| `OPENCLAW_OTEL_PRELOADED` | Bir OpenTelemetry SDK önceden yüklenmişse ikinciyi başlatmayı atlar |
|
||||
|
||||
Maintainer'lar, bir Plugin kaynak dizinini packaged kaynak yolunun üzerine mount ederek
|
||||
bundled Plugin kaynağını packaged image'a karşı test edebilir; örneğin
|
||||
Maintainer’lar, paketlenmiş bir imaja karşı paketle gelen Plugin kaynağını test etmek için
|
||||
tek bir Plugin kaynak dizinini paketlenmiş kaynak yolu üzerine mount edebilir; örneğin
|
||||
`OPENCLAW_EXTRA_MOUNTS=/path/to/fork/extensions/synology-chat:/app/extensions/synology-chat:ro`.
|
||||
Bu mount edilmiş kaynak dizini, aynı Plugin id'si için eşleşen derlenmiş
|
||||
`/app/dist/extensions/synology-chat` bundle'ını override eder.
|
||||
Bu mount edilen kaynak dizini, aynı Plugin id’si için eşleşen derlenmiş
|
||||
`/app/dist/extensions/synology-chat` bundle’ını override eder.
|
||||
|
||||
### Gözlemlenebilirlik
|
||||
### Observability
|
||||
|
||||
OpenTelemetry export, Gateway container'ından OTLP collector'ınıza dışa doğrudur.
|
||||
Yayımlanmış bir Docker portu gerektirmez. Image'ı yerelde oluşturuyorsanız ve
|
||||
bundled OpenTelemetry exporter'ın image içinde kullanılabilir olmasını istiyorsanız,
|
||||
runtime bağımlılıklarını dahil edin:
|
||||
OpenTelemetry export, Gateway container’ından OTLP collector’ınıza doğru outbound’dur.
|
||||
Yayımlanmış bir Docker port’u gerektirmez. İmajı yerelde derliyorsanız ve paketle gelen
|
||||
OpenTelemetry exporter’ın imaj içinde kullanılabilir olmasını istiyorsanız runtime bağımlılıklarını dahil edin:
|
||||
|
||||
```bash
|
||||
export OPENCLAW_EXTENSIONS="diagnostics-otel"
|
||||
@ -168,77 +167,77 @@ export OTEL_SERVICE_NAME="openclaw-gateway"
|
||||
./scripts/docker/setup.sh
|
||||
```
|
||||
|
||||
Export'u etkinleştirmeden önce packaged Docker kurulumlarında ClawHub'dan resmi
|
||||
`@openclaw/diagnostics-otel` Plugin'ini kurun. Özel source-built image'lar yine de
|
||||
yerel Plugin kaynağını `OPENCLAW_EXTENSIONS=diagnostics-otel` ile dahil edebilir.
|
||||
Export'u etkinleştirmek için config içinde `diagnostics-otel` Plugin'ine izin verip
|
||||
Export’u etkinleştirmeden önce paketlenmiş Docker kurulumlarında resmi
|
||||
`@openclaw/diagnostics-otel` Plugin’ini ClawHub’dan kurun. Özel source-built imajlar
|
||||
yerel Plugin kaynağını yine `OPENCLAW_EXTENSIONS=diagnostics-otel` ile dahil edebilir.
|
||||
Export’u etkinleştirmek için config içinde `diagnostics-otel` Plugin’ine izin verip
|
||||
etkinleştirin, ardından `diagnostics.otel.enabled=true` ayarlayın veya
|
||||
[OpenTelemetry export](/tr/gateway/opentelemetry) içindeki config örneğini kullanın.
|
||||
Collector auth header'ları Docker ortam değişkenleri üzerinden değil,
|
||||
Collector auth header’ları Docker ortam değişkenleriyle değil,
|
||||
`diagnostics.otel.headers` üzerinden yapılandırılır.
|
||||
|
||||
Prometheus metric'leri zaten yayımlanmış Gateway portunu kullanır.
|
||||
`clawhub:@openclaw/diagnostics-prometheus` kurun, `diagnostics-prometheus`
|
||||
Plugin'ini etkinleştirin, ardından scrape edin:
|
||||
Prometheus metric’leri zaten yayımlanmış Gateway port’unu kullanır.
|
||||
`clawhub:@openclaw/diagnostics-prometheus` kurun, `diagnostics-prometheus` Plugin’ini
|
||||
etkinleştirin, ardından scrape edin:
|
||||
|
||||
```text
|
||||
http://<gateway-host>:18789/api/diagnostics/prometheus
|
||||
```
|
||||
|
||||
Route, Gateway authentication ile korunur. Ayrı bir public `/metrics` portu veya
|
||||
kimliği doğrulanmamış reverse-proxy yolu açmayın. Bkz.
|
||||
[Prometheus metric'leri](/tr/gateway/prometheus).
|
||||
Route, Gateway authentication ile korunur. Ayrı bir public `/metrics` port’u
|
||||
veya unauthenticated reverse-proxy path’i açmayın. Bkz.
|
||||
[Prometheus metric’leri](/tr/gateway/prometheus).
|
||||
|
||||
### Health check'ler
|
||||
### Health check’ler
|
||||
|
||||
Container probe endpoint'leri (auth gerekmez):
|
||||
Container probe endpoint’leri (auth gerekmez):
|
||||
|
||||
```bash
|
||||
curl -fsS http://127.0.0.1:18789/healthz # liveness
|
||||
curl -fsS http://127.0.0.1:18789/readyz # readiness
|
||||
```
|
||||
|
||||
Docker image, `/healthz` ping'leyen yerleşik bir `HEALTHCHECK` içerir.
|
||||
Check'ler başarısız olmaya devam ederse Docker container'ı `unhealthy` olarak işaretler ve
|
||||
orchestration sistemleri onu yeniden başlatabilir veya değiştirebilir.
|
||||
Docker imajı, `/healthz` adresine ping atan yerleşik bir `HEALTHCHECK` içerir.
|
||||
Check’ler başarısız olmaya devam ederse Docker container’ı `unhealthy` olarak işaretler
|
||||
ve orchestration sistemleri onu yeniden başlatabilir veya değiştirebilir.
|
||||
|
||||
Authenticated derin health snapshot:
|
||||
Authenticated deep health snapshot:
|
||||
|
||||
```bash
|
||||
docker compose exec openclaw-gateway node dist/index.js health --token "$OPENCLAW_GATEWAY_TOKEN"
|
||||
```
|
||||
|
||||
### LAN vs loopback
|
||||
### LAN ve loopback
|
||||
|
||||
`scripts/docker/setup.sh`, `http://127.0.0.1:18789` adresine host erişiminin
|
||||
Docker port publishing ile çalışması için varsayılan olarak `OPENCLAW_GATEWAY_BIND=lan` ayarlar.
|
||||
`scripts/docker/setup.sh`, Docker port publishing ile host’un
|
||||
`http://127.0.0.1:18789` erişiminin çalışması için varsayılan olarak
|
||||
`OPENCLAW_GATEWAY_BIND=lan` ayarlar.
|
||||
|
||||
- `lan` (varsayılan): host tarayıcısı ve host CLI yayımlanmış Gateway portuna erişebilir.
|
||||
- `loopback`: Gateway'e yalnızca container ağ namespace'i içindeki süreçler doğrudan erişebilir.
|
||||
- `lan` (varsayılan): host tarayıcısı ve host CLI yayımlanmış Gateway port’una erişebilir.
|
||||
- `loopback`: Gateway’e doğrudan yalnızca container network namespace’i içindeki process’ler erişebilir.
|
||||
|
||||
<Note>
|
||||
Host alias'ları olan `0.0.0.0` veya `127.0.0.1` yerine `gateway.bind` içindeki
|
||||
bind mode değerlerini (`lan` / `loopback` / `custom` /
|
||||
`tailnet` / `auto`) kullanın.
|
||||
`gateway.bind` içinde bind mode değerlerini kullanın (`lan` / `loopback` / `custom` /
|
||||
`tailnet` / `auto`); `0.0.0.0` veya `127.0.0.1` gibi host alias’larını kullanmayın.
|
||||
</Note>
|
||||
|
||||
### Host Local Provider'lar
|
||||
### Host Local Providers
|
||||
|
||||
OpenClaw Docker içinde çalıştığında, container içindeki `127.0.0.1` host
|
||||
makineniz değil, container'ın kendisidir. Host üzerinde çalışan AI provider'ları
|
||||
için `host.docker.internal` kullanın:
|
||||
OpenClaw Docker içinde çalıştığında, container içindeki `127.0.0.1` host makineniz
|
||||
değil, container’ın kendisidir. Host üzerinde çalışan AI provider’ları için
|
||||
`host.docker.internal` kullanın:
|
||||
|
||||
| Provider | Host varsayılan URL'si | Docker kurulum URL'si |
|
||||
| --------- | ------------------------ | ----------------------------------- |
|
||||
| LM Studio | `http://127.0.0.1:1234` | `http://host.docker.internal:1234` |
|
||||
| Provider | Host varsayılan URL’si | Docker kurulum URL’si |
|
||||
| --------- | ------------------------ | ---------------------------------- |
|
||||
| LM Studio | `http://127.0.0.1:1234` | `http://host.docker.internal:1234` |
|
||||
| Ollama | `http://127.0.0.1:11434` | `http://host.docker.internal:11434` |
|
||||
|
||||
Bundled Docker kurulumu, LM Studio ve Ollama onboarding varsayılanları olarak
|
||||
bu host URL'lerini kullanır ve `docker-compose.yml`, Linux Docker Engine için
|
||||
`host.docker.internal` adresini Docker'ın host gateway'ine eşler. Docker Desktop,
|
||||
macOS ve Windows üzerinde aynı hostname'i zaten sağlar.
|
||||
Paketle gelen Docker kurulumu, LM Studio ve Ollama onboarding varsayılanları olarak
|
||||
bu host URL’lerini kullanır ve `docker-compose.yml`, Linux Docker Engine için
|
||||
`host.docker.internal` adını Docker’ın host Gateway’ine eşler. Docker Desktop,
|
||||
macOS ve Windows üzerinde zaten aynı hostname’i sağlar.
|
||||
|
||||
Host servisleri Docker'dan erişilebilir bir adreste de dinlemelidir:
|
||||
Host servisleri Docker’dan erişilebilir bir adreste de dinlemelidir:
|
||||
|
||||
```bash
|
||||
lms server start --port 1234 --bind 0.0.0.0
|
||||
@ -251,46 +250,46 @@ eşlemesini kendiniz ekleyin; örneğin
|
||||
|
||||
### Bonjour / mDNS
|
||||
|
||||
Docker bridge ağı genellikle Bonjour/mDNS multicast'ini
|
||||
(`224.0.0.251:5353`) güvenilir şekilde iletmez. Bu nedenle bundled Compose kurulumu
|
||||
varsayılan olarak `OPENCLAW_DISABLE_BONJOUR=1` ayarlar; böylece Gateway, bridge
|
||||
multicast trafiğini düşürdüğünde crash-loop'a girmez veya duyuruyu tekrar tekrar
|
||||
yeniden başlatmaz.
|
||||
Docker bridge networking genellikle Bonjour/mDNS multicast’i
|
||||
(`224.0.0.251:5353`) güvenilir biçimde iletmez. Bu nedenle paketle gelen Compose
|
||||
kurulumu varsayılan olarak `OPENCLAW_DISABLE_BONJOUR=1` ayarlar; böylece bridge
|
||||
multicast trafiğini düşürdüğünde Gateway crash-loop’a girmez veya reklamı tekrar
|
||||
tekrar yeniden başlatmaz.
|
||||
|
||||
Docker host'ları için yayımlanmış Gateway URL'sini, Tailscale'i veya wide-area
|
||||
DNS-SD kullanın. `OPENCLAW_DISABLE_BONJOUR=0` değerini yalnızca host networking,
|
||||
macvlan veya mDNS multicast'in çalıştığı bilinen başka bir ağ ile çalıştırırken ayarlayın.
|
||||
Docker host’ları için yayımlanmış Gateway URL’sini, Tailscale’i veya wide-area DNS-SD’yi kullanın.
|
||||
`OPENCLAW_DISABLE_BONJOUR=0` değerini yalnızca host networking, macvlan veya
|
||||
mDNS multicast’in çalıştığı bilinen başka bir ağ ile çalıştırırken ayarlayın.
|
||||
|
||||
Dikkat edilmesi gerekenler ve sorun giderme için bkz. [Bonjour discovery](/tr/gateway/bonjour).
|
||||
Dikkat edilmesi gereken noktalar ve sorun giderme için bkz. [Bonjour discovery](/tr/gateway/bonjour).
|
||||
|
||||
### Depolama ve kalıcılık
|
||||
|
||||
Docker Compose, `OPENCLAW_CONFIG_DIR` yolunu `/home/node/.openclaw` yoluna ve
|
||||
`OPENCLAW_WORKSPACE_DIR` yolunu `/home/node/.openclaw/workspace` yoluna bind-mount eder;
|
||||
böylece bu yollar container değişiminden sağ çıkar. Değişkenlerden biri ayarlı değilse
|
||||
bundled `docker-compose.yml`, `${HOME}/.openclaw` değerine (workspace mount için
|
||||
`${HOME}/.openclaw/workspace` değerine) veya `HOME` de eksikse `/tmp/.openclaw`
|
||||
değerine geri döner. Bu, çıplak ortamlarda `docker compose up` komutunun boş kaynaklı
|
||||
volume spec yaymasını engeller.
|
||||
Docker Compose, `OPENCLAW_CONFIG_DIR` yolunu `/home/node/.openclaw` konumuna ve
|
||||
`OPENCLAW_WORKSPACE_DIR` yolunu `/home/node/.openclaw/workspace` konumuna bind-mount eder;
|
||||
bu nedenle bu yollar container değiştirilse de korunur. Değişkenlerden biri ayarlanmamışsa
|
||||
paketle gelen `docker-compose.yml`, `${HOME}/.openclaw` konumuna (workspace mount için
|
||||
`${HOME}/.openclaw/workspace` konumuna) veya `HOME` da eksikse `/tmp/.openclaw`
|
||||
konumuna geri döner. Bu, yalın ortamlarda `docker compose up` komutunun boş kaynaklı
|
||||
volume spec üretmesini engeller.
|
||||
|
||||
Bu mount edilmiş config dizini, OpenClaw'ın şunları tuttuğu yerdir:
|
||||
Bu mount edilen config dizini, OpenClaw’ın şunları tuttuğu yerdir:
|
||||
|
||||
- davranış config'i için `openclaw.json`
|
||||
- davranış config’i için `openclaw.json`
|
||||
- saklanan provider OAuth/API-key auth için `agents/<agentId>/agent/auth-profiles.json`
|
||||
- `OPENCLAW_GATEWAY_TOKEN` gibi env-backed runtime secret'ları için `.env`
|
||||
- `OPENCLAW_GATEWAY_TOKEN` gibi env-backed runtime secret’lar için `.env`
|
||||
|
||||
Kurulan indirilebilir Plugin'ler package state'lerini mount edilmiş OpenClaw home altında
|
||||
depolar; böylece Plugin kurulum kayıtları ve package kökleri container değişiminden
|
||||
sağ çıkar. Gateway başlangıcı bundled-Plugin dependency tree'leri üretmez.
|
||||
Kurulan indirilebilir Plugin’ler paket durumlarını mount edilmiş OpenClaw home altında
|
||||
saklar; bu nedenle Plugin kurulum kayıtları ve paket kökleri container değiştirilse de
|
||||
korunur. Gateway başlatma, paketle gelen Plugin dependency tree’leri oluşturmaz.
|
||||
|
||||
VM deployment'larında tam kalıcılık ayrıntıları için bkz.
|
||||
[Docker VM Runtime - Nerede ne kalıcıdır](/tr/install/docker-vm-runtime#what-persists-where).
|
||||
VM dağıtımlarında tam kalıcılık ayrıntıları için bkz.
|
||||
[Docker VM Runtime - Nerede ne kalıcı olur](/tr/install/docker-vm-runtime#what-persists-where).
|
||||
|
||||
**Disk büyüme sıcak noktaları:** `/tmp/openclaw/` altındaki `media/`, oturum JSONL dosyaları,
|
||||
`cron/runs/*.jsonl`, kurulu plugin paket kökleri ve dönen dosya günlüklerini
|
||||
izleyin.
|
||||
**Disk büyüme sıcak noktaları:** `media/`, oturum JSONL dosyaları,
|
||||
`cron/runs/*.jsonl`, kurulu Plugin paket kökleri ve `/tmp/openclaw/`
|
||||
altındaki dönen dosya günlüklerini izleyin.
|
||||
|
||||
### Shell yardımcıları (isteğe bağlı)
|
||||
### Kabuk yardımcıları (isteğe bağlı)
|
||||
|
||||
Günlük Docker yönetimini kolaylaştırmak için `ClawDock` kurun:
|
||||
|
||||
@ -306,13 +305,13 @@ Ardından `clawdock-start`, `clawdock-stop`, `clawdock-dashboard` vb. kullanın.
|
||||
Tam yardımcı kılavuzu için [ClawDock](/tr/install/clawdock) sayfasına bakın.
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Docker gateway için agent sandbox'ı etkinleştir">
|
||||
<Accordion title="Docker gateway için agent sandbox'ını etkinleştir">
|
||||
```bash
|
||||
export OPENCLAW_SANDBOX=1
|
||||
./scripts/docker/setup.sh
|
||||
```
|
||||
|
||||
Özel socket yolu (örn. rootless Docker):
|
||||
Özel soket yolu (ör. rootless Docker):
|
||||
|
||||
```bash
|
||||
export OPENCLAW_SANDBOX=1
|
||||
@ -320,13 +319,14 @@ Tam yardımcı kılavuzu için [ClawDock](/tr/install/clawdock) sayfasına bakı
|
||||
./scripts/docker/setup.sh
|
||||
```
|
||||
|
||||
Betik `docker.sock` dosyasını yalnızca sandbox önkoşulları geçtikten sonra bağlar. Sandbox kurulumu tamamlanamazsa betik `agents.defaults.sandbox.mode`
|
||||
değerini `off` olarak sıfırlar.
|
||||
Betik `docker.sock` dosyasını yalnızca sandbox ön koşulları geçtikten sonra bağlar. Sandbox
|
||||
kurulumu tamamlanamazsa, betik `agents.defaults.sandbox.mode` değerini
|
||||
`off` olarak sıfırlar.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Otomasyon / CI (etkileşimsiz)">
|
||||
Compose sözde TTY ayırmasını `-T` ile devre dışı bırakın:
|
||||
Compose sözde TTY ayırmayı `-T` ile devre dışı bırakın:
|
||||
|
||||
```bash
|
||||
docker compose run -T --rm openclaw-cli gateway probe
|
||||
@ -336,13 +336,16 @@ Tam yardımcı kılavuzu için [ClawDock](/tr/install/clawdock) sayfasına bakı
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Paylaşılan ağ güvenlik notu">
|
||||
`openclaw-cli`, CLI komutlarının `127.0.0.1` üzerinden gateway'e erişebilmesi için `network_mode: "service:openclaw-gateway"` kullanır. Bunu paylaşılan bir güven
|
||||
sınırı olarak değerlendirin. Compose yapılandırması `NET_RAW`/`NET_ADMIN` izinlerini kaldırır ve
|
||||
`openclaw-cli` üzerinde `no-new-privileges` etkinleştirir.
|
||||
`openclaw-cli`, CLI komutlarının gateway'e `127.0.0.1` üzerinden ulaşabilmesi için
|
||||
`network_mode: "service:openclaw-gateway"` kullanır. Bunu paylaşılan bir
|
||||
güven sınırı olarak ele alın. Compose yapılandırması `NET_RAW`/`NET_ADMIN` yetkilerini düşürür ve
|
||||
hem `openclaw-gateway` hem de `openclaw-cli` üzerinde
|
||||
`no-new-privileges` etkinleştirir.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="İzinler ve EACCES">
|
||||
İmaj `node` (uid 1000) olarak çalışır. `/home/node/.openclaw` üzerinde izin hataları görürseniz, ana makine bind mount'larınızın uid 1000 tarafından sahiplenildiğinden emin olun:
|
||||
İmaj `node` (uid 1000) olarak çalışır. `/home/node/.openclaw` üzerinde
|
||||
izin hataları görürseniz, host bind mount'larınızın uid 1000'e ait olduğundan emin olun:
|
||||
|
||||
```bash
|
||||
sudo chown -R 1000:1000 /path/to/openclaw-config /path/to/openclaw-workspace
|
||||
@ -351,8 +354,8 @@ Tam yardımcı kılavuzu için [ClawDock](/tr/install/clawdock) sayfasına bakı
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Daha hızlı yeniden derlemeler">
|
||||
Dockerfile dosyanızı bağımlılık katmanları önbelleğe alınacak şekilde sıralayın. Bu, lockfile'lar değişmedikçe
|
||||
`pnpm install` komutunun yeniden çalıştırılmasını önler:
|
||||
Dockerfile'ınızı bağımlılık katmanları önbelleğe alınacak şekilde sıralayın. Bu, lockfile'lar
|
||||
değişmedikçe `pnpm install` komutunun yeniden çalışmasını önler:
|
||||
|
||||
```dockerfile
|
||||
FROM node:24-bookworm
|
||||
@ -374,7 +377,7 @@ Tam yardımcı kılavuzu için [ClawDock](/tr/install/clawdock) sayfasına bakı
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="İleri düzey kullanıcı container seçenekleri">
|
||||
<Accordion title="Gelişmiş kullanıcı container seçenekleri">
|
||||
Varsayılan imaj güvenlik önceliklidir ve root olmayan `node` olarak çalışır. Daha
|
||||
tam özellikli bir container için:
|
||||
|
||||
@ -385,43 +388,51 @@ Tam yardımcı kılavuzu için [ClawDock](/tr/install/clawdock) sayfasına bakı
|
||||
docker compose run --rm openclaw-cli \
|
||||
node /app/node_modules/playwright-core/cli.js install chromium
|
||||
```
|
||||
4. **Tarayıcı indirmelerini kalıcı yapın**: `PLAYWRIGHT_BROWSERS_PATH=/home/node/.cache/ms-playwright` ayarlayın ve
|
||||
4. **Tarayıcı indirmelerini kalıcı yapın**:
|
||||
`PLAYWRIGHT_BROWSERS_PATH=/home/node/.cache/ms-playwright` ayarlayın ve
|
||||
`OPENCLAW_HOME_VOLUME` veya `OPENCLAW_EXTRA_MOUNTS` kullanın.
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="OpenAI Codex OAuth (headless Docker)">
|
||||
Sihirbazda OpenAI Codex OAuth'u seçerseniz, bir tarayıcı URL'si açar. Docker veya headless kurulumlarda, vardığınız tam yönlendirme URL'sini kopyalayıp kimlik doğrulamayı tamamlamak için sihirbaza geri yapıştırın.
|
||||
Sihirbazda OpenAI Codex OAuth seçerseniz, bir tarayıcı URL'si açar. Docker veya
|
||||
headless kurulumlarda, ulaştığınız tam yönlendirme URL'sini kopyalayın ve kimlik doğrulamayı tamamlamak için
|
||||
sihirbaza geri yapıştırın.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Temel imaj meta verileri">
|
||||
Ana Docker çalışma zamanı imajı `node:24-bookworm-slim` kullanır ve `org.opencontainers.image.base.name`,
|
||||
`org.opencontainers.image.source` ve diğerleri dahil OCI temel imaj ek açıklamalarını yayımlar. Node temel özeti
|
||||
Dependabot Docker temel imaj PR'ları üzerinden yenilenir; yayın derlemeleri bir dağıtım yükseltme katmanı çalıştırmaz. Bkz.
|
||||
[OCI imaj ek açıklamaları](https://github.com/opencontainers/image-spec/blob/main/annotations.md).
|
||||
Ana Docker çalışma zamanı imajı `node:24-bookworm-slim` kullanır ve
|
||||
`org.opencontainers.image.base.name`,
|
||||
`org.opencontainers.image.source` ve diğerleri dahil OCI temel imaj açıklamalarını yayımlar. Node temel özeti,
|
||||
Dependabot Docker temel imaj PR'leri üzerinden yenilenir; release derlemeleri
|
||||
distro yükseltme katmanı çalıştırmaz. Bkz.
|
||||
[OCI image annotations](https://github.com/opencontainers/image-spec/blob/main/annotations.md).
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
### VPS üzerinde mi çalıştırıyorsunuz?
|
||||
|
||||
İkili dosyayı imaja ekleme, kalıcılık ve güncellemeler dahil paylaşılan VM dağıtım adımları için
|
||||
İkili dosya imaja ekleme, kalıcılık ve güncellemeler dahil paylaşılan VM dağıtım adımları için
|
||||
[Hetzner (Docker VPS)](/tr/install/hetzner) ve
|
||||
[Docker VM Runtime](/tr/install/docker-vm-runtime) sayfalarına bakın.
|
||||
|
||||
## Agent sandbox
|
||||
|
||||
`agents.defaults.sandbox`, Docker backend ile etkinleştirildiğinde gateway,
|
||||
gateway'in kendisi ana makinede kalırken agent araç yürütmesini (shell, dosya okuma/yazma vb.) yalıtılmış Docker
|
||||
container'ları içinde çalıştırır. Bu, tüm gateway'i container'a almadan güvenilmeyen veya çok kiracılı agent oturumlarının etrafına sağlam bir duvar koyar.
|
||||
`agents.defaults.sandbox`, Docker backend ile etkinleştirildiğinde, gateway
|
||||
agent araç yürütmesini (kabuk, dosya okuma/yazma vb.) izole Docker
|
||||
container'ları içinde çalıştırırken gateway'in kendisi host üzerinde kalır. Bu, tüm
|
||||
gateway'i container içine almadan güvenilmeyen veya çok kiracılı agent oturumlarının
|
||||
etrafına sert bir duvar sağlar.
|
||||
|
||||
Sandbox kapsamı agent başına (varsayılan), oturum başına veya paylaşılan olabilir. Her kapsam
|
||||
`/workspace` konumuna bağlanan kendi çalışma alanını alır. Ayrıca izin ver/reddet araç politikaları, ağ yalıtımı, kaynak sınırları ve tarayıcı
|
||||
container'ları yapılandırabilirsiniz.
|
||||
`/workspace` konumuna bağlanan kendi çalışma alanını alır. Ayrıca
|
||||
izin ver/reddet araç ilkelerini, ağ yalıtımını, kaynak sınırlarını ve tarayıcı
|
||||
container'larını yapılandırabilirsiniz.
|
||||
|
||||
Tam yapılandırma, imajlar, güvenlik notları ve çoklu agent profilleri için bkz.:
|
||||
|
||||
- [Sandboxing](/tr/gateway/sandboxing) -- tam sandbox başvurusu
|
||||
- [OpenShell](/tr/gateway/openshell) -- sandbox container'larına etkileşimli shell erişimi
|
||||
- [Sandboxing](/tr/gateway/sandboxing) -- eksiksiz sandbox başvurusu
|
||||
- [OpenShell](/tr/gateway/openshell) -- sandbox container'larına etkileşimli kabuk erişimi
|
||||
- [Multi-Agent Sandbox and Tools](/tr/tools/multi-agent-sandbox-tools) -- agent başına geçersiz kılmalar
|
||||
|
||||
### Hızlı etkinleştirme
|
||||
@ -445,7 +456,7 @@ Varsayılan sandbox imajını derleyin (kaynak checkout'tan):
|
||||
scripts/sandbox-setup.sh
|
||||
```
|
||||
|
||||
Kaynak checkout olmadan npm kurulumları için, satır içi `docker build` komutları için [Sandboxing § Images and setup](/tr/gateway/sandboxing#images-and-setup) bölümüne bakın.
|
||||
Kaynak checkout olmadan npm kurulumları için satır içi `docker build` komutları hakkında [Sandboxing § Images and setup](/tr/gateway/sandboxing#images-and-setup) bölümüne bakın.
|
||||
|
||||
## Sorun giderme
|
||||
|
||||
@ -453,27 +464,28 @@ Kaynak checkout olmadan npm kurulumları için, satır içi `docker build` komut
|
||||
<Accordion title="İmaj eksik veya sandbox container başlamıyor">
|
||||
Sandbox imajını
|
||||
[`scripts/sandbox-setup.sh`](https://github.com/openclaw/openclaw/blob/main/scripts/sandbox-setup.sh)
|
||||
(kaynak checkout) ile ya da [Sandboxing § Images and setup](/tr/gateway/sandboxing#images-and-setup) bölümündeki satır içi `docker build` komutuyla (npm kurulumu) derleyin
|
||||
veya `agents.defaults.sandbox.docker.image` değerini özel imajınıza ayarlayın.
|
||||
Container'lar gerektiğinde oturum başına otomatik oluşturulur.
|
||||
(kaynak checkout) ile veya [Sandboxing § Images and setup](/tr/gateway/sandboxing#images-and-setup) bölümündeki satır içi `docker build` komutuyla (npm kurulumu) derleyin,
|
||||
ya da `agents.defaults.sandbox.docker.image` değerini özel imajınıza ayarlayın.
|
||||
Container'lar oturum başına ihtiyaç anında otomatik oluşturulur.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Sandbox içinde izin hataları">
|
||||
`docker.user` değerini bağlı çalışma alanı sahipliğinizle eşleşen bir UID:GID olarak ayarlayın
|
||||
veya çalışma alanı klasörünün sahipliğini chown ile değiştirin.
|
||||
`docker.user` değerini bağlı çalışma alanınızın sahipliğiyle eşleşen bir UID:GID olarak ayarlayın
|
||||
veya çalışma alanı klasörünün sahipliğini değiştirin.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Özel araçlar sandbox içinde bulunamıyor">
|
||||
OpenClaw komutları `sh -lc` (login shell) ile çalıştırır; bu
|
||||
`/etc/profile` dosyasını kaynak olarak alır ve PATH'i sıfırlayabilir. Özel araç yollarınızı başa eklemek için `docker.env.PATH` ayarlayın
|
||||
veya Dockerfile içinde `/etc/profile.d/` altına bir betik ekleyin.
|
||||
`/etc/profile` kaynağını yükler ve PATH'i sıfırlayabilir. Özel
|
||||
araç yollarınızı başa eklemek için `docker.env.PATH` ayarlayın veya Dockerfile'ınızda
|
||||
`/etc/profile.d/` altına bir betik ekleyin.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="İmaj derlemesi sırasında OOM-killed (çıkış 137)">
|
||||
VM'nin en az 2 GB RAM'e ihtiyacı vardır. Daha büyük bir makine sınıfı kullanın ve yeniden deneyin.
|
||||
<Accordion title="İmaj derlemesi sırasında OOM-killed (exit 137)">
|
||||
VM'in en az 2 GB RAM'e ihtiyacı vardır. Daha büyük bir makine sınıfı kullanın ve yeniden deneyin.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Control UI içinde yetkisiz veya eşleştirme gerekli">
|
||||
<Accordion title="Control UI'de yetkisiz veya eşleme gerekli">
|
||||
Yeni bir dashboard bağlantısı alın ve tarayıcı cihazını onaylayın:
|
||||
|
||||
```bash
|
||||
@ -486,7 +498,7 @@ Kaynak checkout olmadan npm kurulumları için, satır içi `docker build` komut
|
||||
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Gateway hedefi ws://172.x.x.x gösteriyor veya Docker CLI'dan eşleştirme hataları geliyor">
|
||||
<Accordion title="Gateway hedefi ws://172.x.x.x gösteriyor veya Docker CLI'dan eşleme hataları geliyor">
|
||||
Gateway modunu ve bind ayarını sıfırlayın:
|
||||
|
||||
```bash
|
||||
@ -499,8 +511,8 @@ Kaynak checkout olmadan npm kurulumları için, satır içi `docker build` komut
|
||||
|
||||
## İlgili
|
||||
|
||||
- [Install Overview](/tr/install) — tüm kurulum yöntemleri
|
||||
- [Kurulum Genel Bakışı](/tr/install) — tüm kurulum yöntemleri
|
||||
- [Podman](/tr/install/podman) — Docker'a Podman alternatifi
|
||||
- [ClawDock](/tr/install/clawdock) — Docker Compose topluluk kurulumu
|
||||
- [Updating](/tr/install/updating) — OpenClaw'ı güncel tutma
|
||||
- [Configuration](/tr/gateway/configuration) — kurulum sonrası gateway yapılandırması
|
||||
- [Güncelleme](/tr/install/updating) — OpenClaw'u güncel tutma
|
||||
- [Yapılandırma](/tr/gateway/configuration) — kurulumdan sonra gateway yapılandırması
|
||||
|
||||
@ -1,35 +1,35 @@
|
||||
---
|
||||
read_when:
|
||||
- Oturum kimliklerinde, transkript JSONL'de veya sessions.json alanlarında hata ayıklamanız gerekiyor
|
||||
- Otomatik Compaction davranışını değiştiriyor veya “Compaction öncesi” bakım işlemleri ekliyorsunuz
|
||||
- Bellek boşaltmaları veya sessiz sistem turları uygulamak istiyorsunuz
|
||||
summary: 'Derinlemesine inceleme: oturum deposu + transkriptler, yaşam döngüsü ve (otomatik) Compaction iç işleyişi'
|
||||
- Oturum kimlikleri, transkript JSONL'si veya sessions.json alanları üzerinde hata ayıklamanız gerekiyor
|
||||
- Otomatik Compaction davranışını değiştiriyor veya “Compaction öncesi” temizlik işlemleri ekliyorsunuz
|
||||
- Bellek temizlemeleri veya sessiz sistem turları uygulamak istiyorsunuz
|
||||
summary: 'Derinlemesine inceleme: oturum deposu + transkriptler, yaşam döngüsü ve (otomatik) Compaction iç yapıları'
|
||||
title: Oturum yönetimine derinlemesine bakış
|
||||
x-i18n:
|
||||
generated_at: "2026-05-02T20:59:48Z"
|
||||
generated_at: "2026-05-05T08:26:23Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 8271d7b0786e1c47a8cec6e7bd73c3c86a433d629e17937fdd87fa756ed78d73
|
||||
source_hash: 3161dd9c98bff7ea24266f44a9261693d8a9ee2b47d9af2d152de7057016748b
|
||||
source_path: reference/session-management-compaction.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
OpenClaw oturumları bu alanlarda uçtan uca yönetir:
|
||||
OpenClaw, oturumları şu alanlar boyunca uçtan uca yönetir:
|
||||
|
||||
- **Oturum yönlendirme** (gelen iletilerin bir `sessionKey` ile nasıl eşlendiği)
|
||||
- **Oturum deposu** (`sessions.json`) ve neleri izlediği
|
||||
- **Oturum yönlendirme** (gelen iletilerin bir `sessionKey` ile nasıl eşleştiği)
|
||||
- **Oturum deposu** (`sessions.json`) ve neyi izlediği
|
||||
- **Transkript kalıcılığı** (`*.jsonl`) ve yapısı
|
||||
- **Transkript hijyeni** (çalıştırmalardan önce sağlayıcıya özgü düzeltmeler)
|
||||
- **Bağlam sınırları** (bağlam penceresi ve izlenen token’lar)
|
||||
- **Compaction** (manuel ve otomatik Compaction) ve Compaction öncesi işleri nereye bağlayacağınız
|
||||
- **Bağlam sınırları** (bağlam penceresi ve izlenen token'lar)
|
||||
- **Compaction** (manuel ve otomatik Compaction) ve Compaction öncesi işlere nereden bağlanılacağı
|
||||
- **Sessiz bakım işleri** (kullanıcıya görünür çıktı üretmemesi gereken bellek yazımları)
|
||||
|
||||
Önce daha üst düzey bir genel bakış istiyorsanız, şunlarla başlayın:
|
||||
Önce daha üst düzey bir genel bakış istiyorsanız şunlarla başlayın:
|
||||
|
||||
- [Oturum yönetimi](/tr/concepts/session)
|
||||
- [Compaction](/tr/concepts/compaction)
|
||||
- [Belleğe genel bakış](/tr/concepts/memory)
|
||||
- [Bellek araması](/tr/concepts/memory-search)
|
||||
- [Bellek genel bakışı](/tr/concepts/memory)
|
||||
- [Bellek arama](/tr/concepts/memory-search)
|
||||
- [Oturum budama](/tr/concepts/session-pruning)
|
||||
- [Transkript hijyeni](/tr/reference/transcript-hygiene)
|
||||
|
||||
@ -37,35 +37,41 @@ OpenClaw oturumları bu alanlarda uçtan uca yönetir:
|
||||
|
||||
## Doğruluk kaynağı: Gateway
|
||||
|
||||
OpenClaw, oturum durumunun sahibi olan tek bir **Gateway işlemi** etrafında tasarlanmıştır.
|
||||
OpenClaw, oturum durumuna sahip olan tek bir **Gateway süreci** etrafında tasarlanmıştır.
|
||||
|
||||
- UI’lar (macOS uygulaması, web Control UI, TUI) oturum listeleri ve token sayıları için Gateway’i sorgulamalıdır.
|
||||
- Uzak modda oturum dosyaları uzak ana makinededir; “yerel Mac dosyalarınızı kontrol etmek” Gateway’in kullandığı şeyi yansıtmaz.
|
||||
- Kullanıcı arayüzleri (macOS uygulaması, web Control UI, TUI), oturum listeleri ve token sayıları için Gateway'i sorgulamalıdır.
|
||||
- Uzak modda oturum dosyaları uzak ana makinededir; “yerel Mac dosyalarınızı denetlemek”, Gateway'in kullandığı şeyi yansıtmaz.
|
||||
|
||||
---
|
||||
|
||||
## İki kalıcılık katmanı
|
||||
|
||||
OpenClaw oturumları iki katmanda kalıcı hale getirir:
|
||||
OpenClaw oturumları iki katmanda kalıcılaştırır:
|
||||
|
||||
1. **Oturum deposu (`sessions.json`)**
|
||||
- Anahtar/değer eşlemesi: `sessionKey -> SessionEntry`
|
||||
- Küçük, değiştirilebilir, düzenlemesi güvenli (veya girdiler silinebilir)
|
||||
- Oturum meta verilerini izler (geçerli oturum kimliği, son etkinlik, anahtarlar, token sayaçları vb.)
|
||||
- Küçük, değiştirilebilir, düzenlemesi (veya girdileri silmesi) güvenlidir
|
||||
- Oturum meta verilerini izler (geçerli oturum kimliği, son etkinlik, açma kapama ayarları, token sayaçları vb.)
|
||||
|
||||
2. **Transkript (`<sessionId>.jsonl`)**
|
||||
- Ağaç yapısına sahip yalnızca eklemeli transkript (girdiler `id` + `parentId` içerir)
|
||||
- Asıl konuşmayı + araç çağrılarını + Compaction özetlerini saklar
|
||||
- Gelecek dönüşler için model bağlamını yeniden oluşturmakta kullanılır
|
||||
- Etkin transkript denetim noktası boyutu üst sınırını aştığında büyük Compaction öncesi hata ayıklama denetim noktaları atlanır; böylece ikinci bir dev `.checkpoint.*.jsonl` kopyası oluşturulmaz.
|
||||
- Asıl konuşmayı + araç çağrılarını + Compaction özetlerini depolar
|
||||
- Gelecekteki turlar için model bağlamını yeniden oluşturmakta kullanılır
|
||||
- Etkin transkript denetim noktası boyut üst sınırını aştığında, büyük
|
||||
Compaction öncesi hata ayıklama denetim noktaları atlanır; böylece ikinci bir dev
|
||||
`.checkpoint.*.jsonl` kopyasından kaçınılır.
|
||||
|
||||
Gateway geçmiş okuyucuları, yüzey açıkça rastgele geçmiş erişimine ihtiyaç duymadıkça tüm transkripti belleğe almaktan kaçınmalıdır. İlk sayfa geçmişi, gömülü sohbet geçmişi, yeniden başlatma kurtarması ve token/kullanım kontrolleri sınırlı kuyruk okumaları kullanır. Tam transkript taramaları, dosya yolu artı `mtimeMs`/`size` ile önbelleğe alınan ve eşzamanlı okuyucular arasında paylaşılan asenkron transkript dizininden geçer.
|
||||
Gateway geçmiş okuyucuları, yüzey açıkça rastgele geçmiş erişimine ihtiyaç duymadıkça
|
||||
tüm transkripti belleğe almaktan kaçınmalıdır. İlk sayfa geçmişi,
|
||||
gömülü sohbet geçmişi, yeniden başlatma kurtarması ve token/kullanım denetimleri sınırlı kuyruk
|
||||
okumaları kullanır. Tam transkript taramaları, dosya yolu artı `mtimeMs`/`size` ile
|
||||
önbelleğe alınan ve eşzamanlı okuyucular arasında paylaşılan zaman uyumsuz transkript dizini üzerinden geçer.
|
||||
|
||||
---
|
||||
|
||||
## Disk üzerindeki konumlar
|
||||
|
||||
Gateway ana makinesinde, ajan başına:
|
||||
Gateway ana makinesinde, aracı başına:
|
||||
|
||||
- Depo: `~/.openclaw/agents/<agentId>/sessions/sessions.json`
|
||||
- Transkriptler: `~/.openclaw/agents/<agentId>/sessions/<sessionId>.jsonl`
|
||||
@ -77,30 +83,35 @@ OpenClaw bunları `src/config/sessions.ts` üzerinden çözümler.
|
||||
|
||||
## Depo bakımı ve disk denetimleri
|
||||
|
||||
Oturum kalıcılığı; `sessions.json`, transkript artefaktları ve trajectory yan dosyaları için otomatik bakım denetimlerine (`session.maintenance`) sahiptir:
|
||||
Oturum kalıcılığında `sessions.json`, transkript yapıtları ve trajectory yardımcı dosyaları için otomatik bakım denetimleri (`session.maintenance`) vardır:
|
||||
|
||||
- `mode`: `warn` (varsayılan) veya `enforce`
|
||||
- `pruneAfter`: eski girdi yaş sınırı (varsayılan `30d`)
|
||||
- `pruneAfter`: eski girdi yaş eşiği (varsayılan `30d`)
|
||||
- `maxEntries`: `sessions.json` içindeki girdi sınırı (varsayılan `500`)
|
||||
- `resetArchiveRetention`: `*.reset.<timestamp>` transkript arşivleri için saklama süresi (varsayılan: `pruneAfter` ile aynı; `false` temizliği devre dışı bırakır)
|
||||
- `maxDiskBytes`: isteğe bağlı oturum dizini bütçesi
|
||||
- `highWaterBytes`: temizlikten sonraki isteğe bağlı hedef (varsayılan `maxDiskBytes` değerinin `%80`’i)
|
||||
- `highWaterBytes`: temizlik sonrası isteğe bağlı hedef (varsayılan `maxDiskBytes` değerinin `%80`'i)
|
||||
|
||||
Normal Gateway yazımları, işlem içi değişiklikleri çalışma zamanı dosya kilidi almadan seri hale getiren depo başına bir oturum yazıcısından geçer. Sıcak yol yama yardımcıları, bu yazıcı yuvasını tutarken doğrulanmış değiştirilebilir önbelleği ödünç alır; böylece büyük `sessions.json` dosyaları her meta veri güncellemesi için klonlanmaz veya yeniden okunmaz. Çalışma zamanı kodu `updateSessionStore(...)` veya `updateSessionStoreEntry(...)` tercih etmelidir; doğrudan tüm depo kayıtları uyumluluk ve çevrimdışı bakım araçlarıdır. Bir Gateway erişilebilir olduğunda, kuru çalıştırma olmayan `openclaw sessions cleanup` ve `openclaw agents delete` depo değişikliklerini Gateway’e devreder; böylece temizlik aynı yazıcı kuyruğuna katılır. `--store <path>`, doğrudan dosya bakımı için açık çevrimdışı onarım yoludur. `maxEntries` temizliği üretim boyutundaki sınırlar için hâlâ toplu yapılır; bu nedenle bir depo, sonraki yüksek su temizlik işlemi onu tekrar küçültmeden önce yapılandırılmış sınırı kısa süre aşabilir. Oturum deposu okumaları Gateway başlangıcında girdileri budamaz veya sınırlamaz; temizlik için yazımları ya da `openclaw sessions cleanup --enforce` kullanın. `openclaw sessions cleanup --enforce` yapılandırılmış sınırı yine de hemen uygular.
|
||||
Normal Gateway yazımları, süreç içi mutasyonları çalışma zamanı dosya kilidi almadan serileştiren depo başına bir oturum yazıcısından geçer. Sıcak yol yama yardımcıları, bu yazıcı yuvasını tuttukları sırada doğrulanmış değiştirilebilir önbelleği ödünç alır; böylece büyük `sessions.json` dosyaları her meta veri güncellemesi için klonlanmaz veya yeniden okunmaz. Çalışma zamanı kodu `updateSessionStore(...)` veya `updateSessionStoreEntry(...)` tercih etmelidir; doğrudan tüm depo kaydetmeleri uyumluluk ve çevrimdışı bakım araçlarıdır. Gateway erişilebilir olduğunda, dry-run olmayan `openclaw sessions cleanup` ve `openclaw agents delete`, depo mutasyonlarını Gateway'e devreder; böylece temizlik aynı yazıcı kuyruğuna katılır. `--store <path>`, doğrudan dosya bakımı için açık çevrimdışı onarım yoludur. `maxEntries` temizliği üretim boyutundaki sınırlar için hâlâ toplu yapılır; bu nedenle bir depo, bir sonraki yüksek eşik temizliği onu yeniden aşağı çekmeden önce yapılandırılmış sınırı kısa süreliğine aşabilir. Oturum deposu okumaları, Gateway başlangıcı sırasında girdileri budamaz veya sınırlamaz; temizlik için yazımları ya da `openclaw sessions cleanup --enforce` kullanın. `openclaw sessions cleanup --enforce`, yapılandırılmış sınırı yine hemen uygular ve disk bütçesi yapılandırılmamış olsa bile eski başvurulmayan transkript, denetim noktası ve trajectory yapıtlarını budar.
|
||||
|
||||
Bakım, grup oturumları ve iş parçacığı kapsamlı sohbet oturumları gibi dayanıklı harici konuşma işaretçilerini korur; ancak Cron, hooks, Heartbeat, ACP ve alt ajanlar için sentetik çalışma zamanı girdileri, yapılandırılmış yaş, sayı veya disk bütçesini aştıklarında yine kaldırılabilir.
|
||||
Bakım, grup oturumları ve iş parçacığı kapsamlı sohbet oturumları gibi dayanıklı dış konuşma işaretçilerini korur,
|
||||
ancak cron, hook'lar, Heartbeat, ACP ve alt aracılar için sentetik çalışma zamanı girdileri,
|
||||
yapılandırılmış yaş, sayı veya disk bütçesini aştıklarında yine de kaldırılabilir.
|
||||
|
||||
OpenClaw artık Gateway yazımları sırasında otomatik `sessions.json.bak.*` rotasyon yedekleri oluşturmaz. Eski `session.maintenance.rotateBytes` anahtarı yok sayılır ve `openclaw doctor --fix` bunu eski yapılandırmalardan kaldırır.
|
||||
|
||||
Transkript değişiklikleri, transkript dosyasında oturum yazma kilidi kullanır. Kilit edinimi, meşgul oturum hatası göstermeden önce `session.writeLock.acquireTimeoutMs` kadar bekler; varsayılan değer `60000` ms’dir. Bunu yalnızca meşru hazırlık, temizlik, Compaction veya transkript yansıtma işleri yavaş makinelerde daha uzun çakıştığında artırın. Eski kilit algılama ve azami tutma uyarıları ayrı ilkeler olarak kalır.
|
||||
Transkript mutasyonları, transkript dosyasında bir oturum yazma kilidi kullanır. Kilit edinimi, meşgul oturum hatası yüzeye çıkarılmadan önce
|
||||
`session.writeLock.acquireTimeoutMs` kadar bekler; varsayılan değer `60000`
|
||||
ms'dir. Bunu yalnızca meşru hazırlık, temizlik, Compaction veya transkript aynalama işi yavaş makinelerde
|
||||
daha uzun süre çakıştığında artırın. Eski kilit algılama ve maksimum tutma uyarıları ayrı politikalar olarak kalır.
|
||||
|
||||
Disk bütçesi temizliği için uygulama sırası (`mode: "enforce"`):
|
||||
|
||||
1. Önce en eski arşivlenmiş, yetim transkript veya yetim trajectory artefaktlarını kaldırın.
|
||||
1. Önce en eski arşivlenmiş, yetim transkript veya yetim trajectory yapıtlarını kaldırın.
|
||||
2. Hâlâ hedefin üzerindeyse, en eski oturum girdilerini ve bunların transkript/trajectory dosyalarını çıkarın.
|
||||
3. Kullanım `highWaterBytes` değerinde veya altında olana kadar devam edin.
|
||||
|
||||
`mode: "warn"` içinde OpenClaw olası çıkarmaları raporlar ancak depoyu/dosyaları değiştirmez.
|
||||
`mode: "warn"` içinde OpenClaw olası çıkarmaları bildirir, ancak depoyu/dosyaları değiştirmez.
|
||||
|
||||
Bakımı isteğe bağlı çalıştırın:
|
||||
|
||||
@ -113,12 +124,17 @@ openclaw sessions cleanup --enforce
|
||||
|
||||
## Cron oturumları ve çalıştırma günlükleri
|
||||
|
||||
Yalıtılmış Cron çalıştırmaları da oturum girdileri/transkriptler oluşturur ve bunların özel saklama denetimleri vardır:
|
||||
Yalıtılmış cron çalıştırmaları da oturum girdileri/transkriptler oluşturur ve bunların özel saklama denetimleri vardır:
|
||||
|
||||
- `cron.sessionRetention` (varsayılan `24h`) eski yalıtılmış Cron çalıştırma oturumlarını oturum deposundan budar (`false` devre dışı bırakır).
|
||||
- `cron.sessionRetention` (varsayılan `24h`), eski yalıtılmış cron çalıştırma oturumlarını oturum deposundan budar (`false` devre dışı bırakır).
|
||||
- `cron.runLog.maxBytes` + `cron.runLog.keepLines`, `~/.openclaw/cron/runs/<jobId>.jsonl` dosyalarını budar (varsayılanlar: `2_000_000` bayt ve `2000` satır).
|
||||
|
||||
Cron yeni bir yalıtılmış çalıştırma oturumunu zorla oluşturduğunda, yeni satırı yazmadan önce önceki `cron:<jobId>` oturum girdisini temizler. Düşünme/hızlı/ayrıntılı ayarları, etiketler ve açıkça kullanıcı tarafından seçilmiş model/kimlik doğrulama geçersiz kılmaları gibi güvenli tercihleri taşır. Kanal/grup yönlendirme, gönderme veya kuyruğa alma ilkesi, yükseltme, kaynak ve ACP çalışma zamanı bağlaması gibi ortam konuşma bağlamını bırakır; böylece yeni bir yalıtılmış çalıştırma, eski bir çalıştırmadan bayat teslim veya çalışma zamanı yetkisi devralamaz.
|
||||
Cron yeni bir yalıtılmış çalıştırma oturumunu zorla oluşturduğunda, yeni satırı yazmadan önce önceki
|
||||
`cron:<jobId>` oturum girdisini temizler. Düşünme/hızlı/ayrıntılı ayarları, etiketler ve açık
|
||||
kullanıcı seçimi model/kimlik doğrulama geçersiz kılmaları gibi güvenli
|
||||
tercihleri taşır. Kanal/grup yönlendirmesi, gönderme veya kuyruk politikası, yükseltme, kaynak ve ACP
|
||||
çalışma zamanı bağlaması gibi ortam konuşma bağlamını bırakır; böylece yeni bir yalıtılmış çalıştırma,
|
||||
eski bir çalıştırmadan eski teslimat veya çalışma zamanı yetkisini devralamaz.
|
||||
|
||||
---
|
||||
|
||||
@ -126,9 +142,9 @@ Cron yeni bir yalıtılmış çalıştırma oturumunu zorla oluşturduğunda, ye
|
||||
|
||||
Bir `sessionKey`, _hangi konuşma kovasında_ olduğunuzu tanımlar (yönlendirme + yalıtım).
|
||||
|
||||
Yaygın desenler:
|
||||
Yaygın kalıplar:
|
||||
|
||||
- Ana/doğrudan sohbet (ajan başına): `agent:<agentId>:<mainKey>` (varsayılan `main`)
|
||||
- Ana/doğrudan sohbet (aracı başına): `agent:<agentId>:<mainKey>` (varsayılan `main`)
|
||||
- Grup: `agent:<agentId>:<channel>:group:<id>`
|
||||
- Oda/kanal (Discord/Slack): `agent:<agentId>:<channel>:channel:<id>` veya `...:room:<id>`
|
||||
- Cron: `cron:<job.id>`
|
||||
@ -140,80 +156,85 @@ Kanonik kurallar [/concepts/session](/tr/concepts/session) adresinde belgelenmi
|
||||
|
||||
## Oturum kimlikleri (`sessionId`)
|
||||
|
||||
Her `sessionKey`, geçerli bir `sessionId` değerini işaret eder (konuşmayı sürdüren transkript dosyası).
|
||||
Her `sessionKey`, geçerli bir `sessionId` değerine işaret eder (konuşmayı sürdüren transkript dosyası).
|
||||
|
||||
Genel kurallar:
|
||||
|
||||
- **Sıfırlama** (`/new`, `/reset`) bu `sessionKey` için yeni bir `sessionId` oluşturur.
|
||||
- **Günlük sıfırlama** (varsayılan olarak Gateway ana makinesinin yerel saatine göre 04:00) sıfırlama sınırından sonraki ilk iletide yeni bir `sessionId` oluşturur.
|
||||
- **Boşta kalma süresi dolumu** (`session.reset.idleMinutes` veya eski `session.idleMinutes`), boşta kalma penceresinden sonra bir ileti geldiğinde yeni bir `sessionId` oluşturur. Günlük + boşta kalma birlikte yapılandırıldığında, önce hangisinin süresi dolarsa o kazanır.
|
||||
- **Sistem olayları** (Heartbeat, Cron uyandırmaları, exec bildirimleri, Gateway defter tutma) oturum satırını değiştirebilir ancak günlük/boşta sıfırlama tazeliğini uzatmaz. Sıfırlama devri, yeni istem oluşturulmadan önce önceki oturum için kuyruğa alınmış sistem olayı bildirimlerini atar.
|
||||
- **Üst çatallanma ilkesi**, bir iş parçacığı veya alt ajan çatallanması oluştururken PI’nin etkin dalını kullanır. Bu dal çok büyükse OpenClaw başarısız olmak veya kullanılamaz geçmişi devralmak yerine çocuğu yalıtılmış bağlamla başlatır. Boyutlandırma ilkesi otomatiktir; eski `session.parentForkMaxTokens` yapılandırması `openclaw doctor --fix` tarafından kaldırılır.
|
||||
- **Sıfırlama** (`/new`, `/reset`), o `sessionKey` için yeni bir `sessionId` oluşturur.
|
||||
- **Günlük sıfırlama** (varsayılan olarak gateway ana makinesinde yerel saatle 04:00), sıfırlama sınırından sonraki ilk iletide yeni bir `sessionId` oluşturur.
|
||||
- **Boşta kalma sona ermesi** (`session.reset.idleMinutes` veya eski `session.idleMinutes`), boşta kalma penceresinden sonra bir ileti geldiğinde yeni bir `sessionId` oluşturur. Günlük + boşta kalma birlikte yapılandırıldığında, hangisi önce sona ererse o kazanır.
|
||||
- **Sistem olayları** (Heartbeat, cron uyandırmaları, exec bildirimleri, gateway kayıt işleri) oturum satırını değiştirebilir, ancak günlük/boşta sıfırlama tazeliğini uzatmaz. Sıfırlama devri, yeni istem oluşturulmadan önce önceki oturum için kuyruktaki sistem olayı bildirimlerini atar.
|
||||
- **Üst çatallanma politikası**, bir iş parçacığı veya alt aracı çatallanması oluştururken PI'nin etkin dalını kullanır. Bu dal çok büyükse OpenClaw, başarısız olmak veya kullanılamaz geçmişi devralmak yerine alt öğeyi yalıtılmış bağlamla başlatır. Boyutlandırma politikası otomatiktir; eski `session.parentForkMaxTokens` yapılandırması `openclaw doctor --fix` tarafından kaldırılır.
|
||||
|
||||
Uygulama ayrıntısı: karar `src/auto-reply/reply/session.ts` içindeki `initSessionState()` içinde gerçekleşir.
|
||||
Uygulama ayrıntısı: karar `src/auto-reply/reply/session.ts` içindeki `initSessionState()` fonksiyonunda verilir.
|
||||
|
||||
---
|
||||
|
||||
## Oturum deposu şeması (`sessions.json`)
|
||||
|
||||
Deponun değer türü, `src/config/sessions.ts` içindeki `SessionEntry` türüdür.
|
||||
Deponun değer türü, `src/config/sessions.ts` içindeki `SessionEntry`'dir.
|
||||
|
||||
Ana alanlar (tam liste değildir):
|
||||
Ana alanlar (kapsamlı değildir):
|
||||
|
||||
- `sessionId`: geçerli transkript kimliği (`sessionFile` ayarlanmadıkça dosya adı bundan türetilir)
|
||||
- `sessionStartedAt`: geçerli `sessionId` için başlangıç zaman damgası; günlük sıfırlama tazeliği bunu kullanır. Eski satırlar bunu JSONL oturum başlığından türetebilir.
|
||||
- `lastInteractionAt`: son gerçek kullanıcı/kanal etkileşimi zaman damgası; boşta sıfırlama tazeliği bunu kullanır, böylece Heartbeat, Cron ve exec olayları oturumları canlı tutmaz. Bu alanı olmayan eski satırlar, boşta tazeliği için kurtarılan oturum başlangıç zamanına geri döner.
|
||||
- `updatedAt`: listeleme, budama ve defter tutma için kullanılan son depo satırı değişiklik zaman damgası. Günlük/boşta sıfırlama tazeliği için yetkili kaynak değildir.
|
||||
- `sessionId`: geçerli transkript kimliği (`sessionFile` ayarlanmadığı sürece dosya adı bundan türetilir)
|
||||
- `sessionStartedAt`: geçerli `sessionId` için başlangıç zaman damgası; günlük sıfırlama
|
||||
tazeliği bunu kullanır. Eski satırlar bunu JSONL oturum başlığından türetebilir.
|
||||
- `lastInteractionAt`: son gerçek kullanıcı/kanal etkileşimi zaman damgası; boşta sıfırlama
|
||||
tazeliği bunu kullanır, böylece Heartbeat, cron ve exec olayları oturumları
|
||||
canlı tutmaz. Bu alanı olmayan eski satırlar, boşta tazeliği için kurtarılan oturum başlangıç
|
||||
zamanına geri döner.
|
||||
- `updatedAt`: listeleme, budama ve kayıt işleri için kullanılan son depo satırı mutasyonu zaman damgası.
|
||||
Günlük/boşta sıfırlama tazeliği için yetkili kaynak değildir.
|
||||
- `sessionFile`: isteğe bağlı açık transkript yolu geçersiz kılması
|
||||
- `chatType`: `direct | group | room` (UI’lara ve gönderme ilkesine yardımcı olur)
|
||||
- `chatType`: `direct | group | room` (kullanıcı arayüzlerine ve gönderme politikasına yardımcı olur)
|
||||
- `provider`, `subject`, `room`, `space`, `displayName`: grup/kanal etiketleme için meta veriler
|
||||
- Anahtarlar:
|
||||
- Açma kapama ayarları:
|
||||
- `thinkingLevel`, `verboseLevel`, `reasoningLevel`, `elevatedLevel`
|
||||
- `sendPolicy` (oturum başına geçersiz kılma)
|
||||
- Model seçimi:
|
||||
- `providerOverride`, `modelOverride`, `authProfileOverride`
|
||||
- Token sayaçları (en iyi çaba / sağlayıcıya bağlı):
|
||||
- `inputTokens`, `outputTokens`, `totalTokens`, `contextTokens`
|
||||
- `compactionCount`: bu oturum anahtarı için otomatik Compaction’ın kaç kez tamamlandığı
|
||||
- `memoryFlushAt`: son Compaction öncesi bellek boşaltımı için zaman damgası
|
||||
- `memoryFlushCompactionCount`: son boşaltma çalıştığında Compaction sayısı
|
||||
- `compactionCount`: bu oturum anahtarı için otomatik Compaction'ın kaç kez tamamlandığı
|
||||
- `memoryFlushAt`: son Compaction öncesi bellek boşaltması için zaman damgası
|
||||
- `memoryFlushCompactionCount`: son boşaltma çalıştığındaki Compaction sayısı
|
||||
|
||||
Depoyu düzenlemek güvenlidir, ancak yetkili kaynak Gateway’dir: oturumlar çalışırken girdileri yeniden yazabilir veya yeniden doldurabilir.
|
||||
Depoyu düzenlemek güvenlidir, ancak Gateway yetkili kaynaktır: oturumlar çalışırken girdileri yeniden yazabilir veya yeniden doldurabilir.
|
||||
|
||||
---
|
||||
|
||||
## Transkript yapısı (`*.jsonl`)
|
||||
|
||||
Transkriptler `@mariozechner/pi-coding-agent` adlı `SessionManager` tarafından yönetilir.
|
||||
Transkriptler `@mariozechner/pi-coding-agent` paketinin `SessionManager`'ı tarafından yönetilir.
|
||||
|
||||
Dosya JSONL biçimindedir:
|
||||
Dosya JSONL'dir:
|
||||
|
||||
- İlk satır: oturum başlığı (`type: "session"`, `id`, `cwd`, `timestamp`, isteğe bağlı `parentSession` içerir)
|
||||
- Ardından: `id` + `parentId` içeren oturum girdileri (ağaç)
|
||||
- Sonra: `id` + `parentId` içeren oturum girdileri (ağaç)
|
||||
|
||||
Dikkate değer girdi türleri:
|
||||
|
||||
- `message`: kullanıcı/asistan/toolResult iletileri
|
||||
- `custom_message`: model bağlamına _giren_ uzantı tarafından enjekte edilmiş iletiler (UI’dan gizlenebilir)
|
||||
- `custom_message`: model bağlamına _giren_ uzantı tarafından enjekte edilmiş iletiler (kullanıcı arayüzünden gizlenebilir)
|
||||
- `custom`: model bağlamına _girmeyen_ uzantı durumu
|
||||
- `compaction`: `firstKeptEntryId` ve `tokensBefore` ile kalıcı hale getirilmiş Compaction özeti
|
||||
- `branch_summary`: ağaç dalında gezinirken kalıcı hale getirilmiş özet
|
||||
- `compaction`: `firstKeptEntryId` ve `tokensBefore` içeren kalıcılaştırılmış Compaction özeti
|
||||
- `branch_summary`: bir ağaç dalında gezinirken kalıcılaştırılmış özet
|
||||
|
||||
OpenClaw kasıtlı olarak transkriptleri “düzeltmez”; Gateway bunları okumak/yazmak için `SessionManager` kullanır.
|
||||
OpenClaw transkriptleri bilinçli olarak “düzeltmez”; Gateway bunları okumak/yazmak için `SessionManager` kullanır.
|
||||
|
||||
---
|
||||
|
||||
## Bağlam pencereleri ve izlenen token’lar
|
||||
## Bağlam pencereleri ve izlenen token'lar
|
||||
|
||||
İki farklı kavram önemlidir:
|
||||
|
||||
1. **Model bağlam penceresi**: model başına katı üst sınır (modelin görebildiği token’lar)
|
||||
2. **Oturum deposu sayaçları**: `sessions.json` içine yazılan yuvarlanan istatistikler (/status ve panolarda kullanılır)
|
||||
1. **Model bağlam penceresi**: model başına katı üst sınır (modele görünen token'lar)
|
||||
2. **Oturum deposu sayaçları**: `sessions.json` içine yazılan hareketli istatistikler (/status ve panolar için kullanılır)
|
||||
|
||||
Sınırları ayarlıyorsanız:
|
||||
|
||||
- Bağlam penceresi model kataloğundan gelir (ve yapılandırma üzerinden geçersiz kılınabilir).
|
||||
- Depodaki `contextTokens` bir çalışma zamanı tahmini/raporlama değeridir; bunu katı bir garanti olarak değerlendirmeyin.
|
||||
- Depodaki `contextTokens`, bir çalışma zamanı tahmini/raporlama değeridir; bunu katı bir garanti olarak değerlendirmeyin.
|
||||
|
||||
Daha fazlası için bkz. [/token-use](/tr/reference/token-use).
|
||||
|
||||
@ -221,30 +242,30 @@ Daha fazlası için bkz. [/token-use](/tr/reference/token-use).
|
||||
|
||||
## Compaction: nedir
|
||||
|
||||
Compaction, eski konuşmayı transkript içinde kalıcı bir `compaction` girdisine özetler ve yakın tarihli iletileri aynen korur.
|
||||
Compaction, eski konuşmayı transkriptte kalıcılaştırılmış bir `compaction` girdisi olarak özetler ve yakın tarihli iletileri olduğu gibi tutar.
|
||||
|
||||
Compaction sonrasında, gelecek dönüşler şunları görür:
|
||||
Compaction sonrasında, gelecekteki turlar şunları görür:
|
||||
|
||||
- Compaction özeti
|
||||
- `firstKeptEntryId` sonrasındaki iletiler
|
||||
|
||||
Compaction **kalıcıdır** (oturum budamanın aksine). Bkz. [/concepts/session-pruning](/tr/concepts/session-pruning).
|
||||
Compaction **kalıcıdır** (oturum budamasının aksine). Bkz. [/concepts/session-pruning](/tr/concepts/session-pruning).
|
||||
|
||||
## Compaction parça sınırları ve araç eşleştirme
|
||||
|
||||
OpenClaw uzun bir dökümü Compaction parçalarına böldüğünde, asistan araç çağrılarını eşleşen `toolResult` girdileriyle eşli tutar.
|
||||
OpenClaw uzun bir dökümü Compaction parçalarına böldüğünde, asistan araç çağrılarını eşleşen `toolResult` girdileriyle birlikte tutar.
|
||||
|
||||
- Token payına göre yapılan bölme bir araç çağrısı ile sonucu arasına denk gelirse OpenClaw çifti ayırmak yerine sınırı asistan araç çağrısı iletisine kaydırır.
|
||||
- Sondaki bir araç sonucu bloğu normalde parçayı hedefin üzerine çıkaracaksa OpenClaw bekleyen araç bloğunu korur ve özetlenmemiş kuyruğu bozulmadan tutar.
|
||||
- Token payı bölmesi bir araç çağrısı ile sonucu arasına denk gelirse OpenClaw, çifti ayırmak yerine sınırı asistan araç çağrısı mesajına kaydırır.
|
||||
- Sondaki bir araç sonucu bloğu aksi halde parçayı hedefin üzerine çıkaracaksa OpenClaw, bekleyen bu araç bloğunu korur ve özetlenmemiş kuyruğu bozmadan bırakır.
|
||||
- Durdurulmuş/hatalı araç çağrısı blokları bekleyen bir bölmeyi açık tutmaz.
|
||||
|
||||
---
|
||||
|
||||
## Otomatik Compaction ne zaman gerçekleşir (Pi runtime)
|
||||
## Otomatik Compaction ne zaman gerçekleşir (Pi çalışma zamanı)
|
||||
|
||||
Gömülü Pi aracısında otomatik Compaction iki durumda tetiklenir:
|
||||
|
||||
1. **Taşma kurtarma**: model bağlam taşması hatası döndürür (`request_too_large`, `context length exceeded`, `input exceeds the maximum
|
||||
1. **Taşma kurtarma**: model bir bağlam taşması hatası döndürür (`request_too_large`, `context length exceeded`, `input exceeds the maximum
|
||||
number of tokens`, `input token count exceeds the maximum number of input
|
||||
tokens`, `input is too long for the model`, `ollama error: context length
|
||||
exceeded` ve benzer sağlayıcı biçimli varyantlar) → compact → retry.
|
||||
@ -254,21 +275,21 @@ exceeded` ve benzer sağlayıcı biçimli varyantlar) → compact → retry.
|
||||
|
||||
Burada:
|
||||
|
||||
- `contextWindow` modelin bağlam penceresidir
|
||||
- `reserveTokens` istemler + sonraki model çıktısı için ayrılmış paydır
|
||||
- `contextWindow`, modelin bağlam penceresidir
|
||||
- `reserveTokens`, istemler + bir sonraki model çıktısı için ayrılmış paydır
|
||||
|
||||
Bunlar Pi runtime semantik değerleridir (OpenClaw olayları tüketir, ancak ne zaman compact yapılacağına Pi karar verir).
|
||||
Bunlar Pi çalışma zamanı semantiğidir (OpenClaw olayları tüketir, ancak ne zaman Compaction yapılacağına Pi karar verir).
|
||||
|
||||
OpenClaw ayrıca `agents.defaults.compaction.maxActiveTranscriptBytes` ayarlandığında ve etkin döküm dosyası bu boyuta ulaştığında, sonraki çalıştırmayı açmadan önce bir ön kontrol yerel Compaction tetikleyebilir. Bu, yerel yeniden açma maliyeti için bir dosya boyutu korumasıdır, ham arşivleme değildir: OpenClaw yine normal semantik Compaction çalıştırır ve compact edilmiş özetin yeni ardıl döküm olabilmesi için `truncateAfterCompaction` gerektirir.
|
||||
OpenClaw, `agents.defaults.compaction.maxActiveTranscriptBytes` ayarlandığında ve etkin döküm dosyası bu boyuta ulaştığında, sonraki çalıştırmayı açmadan önce ön denetim yerel Compaction da tetikleyebilir. Bu, ham arşivleme değil, yerel yeniden açma maliyeti için bir dosya boyutu korumasıdır: OpenClaw yine normal anlamsal Compaction çalıştırır ve sıkıştırılmış özetin yeni bir ardıl döküm haline gelebilmesi için `truncateAfterCompaction` gerektirir.
|
||||
|
||||
Gömülü Pi çalıştırmaları için `agents.defaults.compaction.midTurnPrecheck.enabled: true` isteğe bağlı bir araç döngüsü koruması ekler. Bir araç sonucu eklendikten sonra ve sonraki model çağrısından önce OpenClaw, tur başlangıcında kullanılan aynı ön kontrol bütçe mantığıyla istem baskısını tahmin eder. Bağlam artık sığmıyorsa koruma, Pi'nin `transformContext` hook'u içinde compact yapmaz. Yapılandırılmış bir tur ortası ön kontrol sinyali yükseltir, mevcut istem gönderimini durdurur ve dış çalıştırma döngüsünün mevcut kurtarma yolunu kullanmasına izin verir: yeterli olduğunda aşırı büyük araç sonuçlarını kısaltır veya yapılandırılmış Compaction modunu tetikleyip yeniden dener. Seçenek varsayılan olarak devre dışıdır ve sağlayıcı destekli safeguard Compaction dahil olmak üzere hem `default` hem de `safeguard` Compaction modlarıyla çalışır.
|
||||
Bu, `maxActiveTranscriptBytes` ayarından bağımsızdır: bayt boyutu koruması bir tur açılmadan önce çalışırken, tur ortası ön kontrol yeni araç sonuçları eklendikten sonra gömülü Pi araç döngüsünde daha sonra çalışır.
|
||||
Gömülü Pi çalıştırmaları için `agents.defaults.compaction.midTurnPrecheck.enabled: true`, isteğe bağlı bir araç döngüsü koruması ekler. Bir araç sonucu eklendikten sonra ve sonraki model çağrısından önce OpenClaw, tur başlangıcında kullanılan aynı ön denetim bütçe mantığını kullanarak istem baskısını tahmin eder. Bağlam artık sığmıyorsa koruma, Pi'nin `transformContext` kancası içinde Compaction yapmaz. Yapılandırılmış bir tur ortası ön denetim sinyali yükseltir, geçerli istem gönderimini durdurur ve dış çalıştırma döngüsünün mevcut kurtarma yolunu kullanmasına izin verir: yeterliyse aşırı büyük araç sonuçlarını kırpar veya yapılandırılmış Compaction modunu tetikleyip yeniden dener. Seçenek varsayılan olarak devre dışıdır ve sağlayıcı destekli safeguard Compaction dahil hem `default` hem de `safeguard` Compaction modlarıyla çalışır.
|
||||
Bu, `maxActiveTranscriptBytes` değerinden bağımsızdır: bayt boyutu koruması bir tur açılmadan önce çalışırken, tur ortası ön denetim yeni araç sonuçları eklendikten sonra gömülü Pi araç döngüsünde daha sonra çalışır.
|
||||
|
||||
---
|
||||
|
||||
## Compaction ayarları (`reserveTokens`, `keepRecentTokens`)
|
||||
|
||||
Pi’nin Compaction ayarları Pi ayarlarında bulunur:
|
||||
Pi'nin Compaction ayarları Pi ayarlarında bulunur:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -280,18 +301,18 @@ Pi’nin Compaction ayarları Pi ayarlarında bulunur:
|
||||
}
|
||||
```
|
||||
|
||||
OpenClaw gömülü çalıştırmalar için bir güvenlik alt sınırı da zorunlu kılar:
|
||||
OpenClaw ayrıca gömülü çalıştırmalar için bir güvenlik tabanı uygular:
|
||||
|
||||
- `compaction.reserveTokens < reserveTokensFloor` ise OpenClaw bunu yükseltir.
|
||||
- Varsayılan alt sınır `20000` tokendir.
|
||||
- Alt sınırı devre dışı bırakmak için `agents.defaults.compaction.reserveTokensFloor: 0` ayarlayın.
|
||||
- Varsayılan taban `20000` token’dır.
|
||||
- Tabanı devre dışı bırakmak için `agents.defaults.compaction.reserveTokensFloor: 0` ayarlayın.
|
||||
- Zaten daha yüksekse OpenClaw olduğu gibi bırakır.
|
||||
- Manuel `/compact`, açık bir `agents.defaults.compaction.keepRecentTokens` değerine uyar ve Pi'nin yakın kuyruk kesme noktasını korur. Açık bir koruma bütçesi olmadığında manuel Compaction katı bir kontrol noktası olarak kalır ve yeniden oluşturulan bağlam yeni özetten başlar.
|
||||
- Yeni araç sonuçlarından sonra ve sonraki model çağrısından önce isteğe bağlı araç döngüsü ön kontrolünü çalıştırmak için `agents.defaults.compaction.midTurnPrecheck.enabled: true` ayarlayın. Bu yalnızca bir tetikleyicidir; özet üretimi yine yapılandırılmış Compaction yolunu kullanır. Bu, tur başlangıcı etkin döküm bayt boyutu koruması olan `maxActiveTranscriptBytes` ayarından bağımsızdır.
|
||||
- Etkin döküm büyüdüğünde turdan önce yerel Compaction çalıştırmak için `agents.defaults.compaction.maxActiveTranscriptBytes` değerini bir bayt değeri ya da `"20mb"` gibi bir dize olarak ayarlayın. Bu koruma yalnızca `truncateAfterCompaction` da etkin olduğunda aktiftir. Devre dışı bırakmak için ayarlanmamış bırakın veya `0` olarak ayarlayın.
|
||||
- `agents.defaults.compaction.truncateAfterCompaction` etkinleştirildiğinde OpenClaw, Compaction sonrasında etkin dökümü compact edilmiş ardıl bir JSONL dosyasına döndürür. Eski tam döküm yerinde yeniden yazılmak yerine arşivlenmiş kalır ve Compaction kontrol noktasından bağlanır.
|
||||
- Manuel `/compact`, açık bir `agents.defaults.compaction.keepRecentTokens` değerine uyar ve Pi'nin son kuyruk kesme noktasını korur. Açık bir tutma bütçesi olmadan manuel Compaction katı bir kontrol noktası olarak kalır ve yeniden oluşturulan bağlam yeni özetten başlar.
|
||||
- Yeni araç sonuçlarından sonra ve sonraki model çağrısından önce isteğe bağlı araç döngüsü ön denetimini çalıştırmak için `agents.defaults.compaction.midTurnPrecheck.enabled: true` ayarlayın. Bu yalnızca bir tetikleyicidir; özet üretimi yine yapılandırılmış Compaction yolunu kullanır. Tur başlangıcı etkin döküm bayt boyutu koruması olan `maxActiveTranscriptBytes` değerinden bağımsızdır.
|
||||
- Etkin döküm büyüdüğünde bir turdan önce yerel Compaction çalıştırmak için `agents.defaults.compaction.maxActiveTranscriptBytes` değerini bir bayt değeri veya `"20mb"` gibi bir dize olarak ayarlayın. Bu koruma yalnızca `truncateAfterCompaction` da etkinse aktiftir. Devre dışı bırakmak için ayarlamayın veya `0` ayarlayın.
|
||||
- `agents.defaults.compaction.truncateAfterCompaction` etkinleştirildiğinde OpenClaw, Compaction sonrasında etkin dökümü sıkıştırılmış ardıl bir JSONL dosyasına döndürür. Eski tam döküm yerinde yeniden yazılmak yerine arşivlenmiş olarak kalır ve Compaction kontrol noktasından bağlantılanır.
|
||||
|
||||
Neden: Compaction kaçınılmaz hale gelmeden önce çok turlu “bakım” işleri (bellek yazmaları gibi) için yeterli pay bırakmak.
|
||||
Neden: Compaction kaçınılmaz hale gelmeden önce çok turlu “bakım” işlemleri (bellek yazmaları gibi) için yeterli pay bırakmak.
|
||||
|
||||
Uygulama: `src/agents/pi-settings.ts` içindeki `ensurePiCompactionReserveTokens()`
|
||||
(`src/agents/pi-embedded-runner.ts` içinden çağrılır).
|
||||
@ -300,24 +321,24 @@ Uygulama: `src/agents/pi-settings.ts` içindeki `ensurePiCompactionReserveTokens
|
||||
|
||||
## Takılabilir Compaction sağlayıcıları
|
||||
|
||||
Plugins, Plugin API üzerinde `registerCompactionProvider()` aracılığıyla bir Compaction sağlayıcısı kaydedebilir. `agents.defaults.compaction.provider` kayıtlı bir sağlayıcı kimliğine ayarlandığında safeguard Plugin’i, özetlemeyi yerleşik `summarizeInStages` hattı yerine bu sağlayıcıya devreder.
|
||||
Plugin'ler, plugin API üzerinde `registerCompactionProvider()` aracılığıyla bir Compaction sağlayıcısı kaydedebilir. `agents.defaults.compaction.provider` kayıtlı bir sağlayıcı kimliğine ayarlandığında safeguard uzantısı, özetlemeyi yerleşik `summarizeInStages` işlem hattı yerine o sağlayıcıya devreder.
|
||||
|
||||
- `provider`: kayıtlı bir Compaction sağlayıcısı Plugin kimliği. Varsayılan LLM özetlemesi için ayarlanmamış bırakın.
|
||||
- `provider`: kayıtlı bir Compaction sağlayıcı Plugin kimliği. Varsayılan LLM özetlemesi için ayarlamayın.
|
||||
- Bir `provider` ayarlamak `mode: "safeguard"` değerini zorunlu kılar.
|
||||
- Sağlayıcılar, yerleşik yolla aynı Compaction talimatlarını ve tanımlayıcı koruma politikasını alır.
|
||||
- Safeguard, sağlayıcı çıktısından sonra yakın tur ve bölünmüş tur sonek bağlamını yine korur.
|
||||
- Yerleşik safeguard özetleme, tam önceki özeti kelimesi kelimesine korumak yerine önceki özetleri yeni iletilerle yeniden damıtır.
|
||||
- Safeguard modu özet kalite denetimlerini varsayılan olarak etkinleştirir; hatalı biçimli çıktı durumunda yeniden deneme davranışını atlamak için `qualityGuard.enabled: false` ayarlayın.
|
||||
- Sağlayıcı başarısız olursa veya boş sonuç döndürürse OpenClaw otomatik olarak yerleşik LLM özetlemesine geri döner.
|
||||
- Çağıran tarafın iptaline saygı göstermek için durdurma/zaman aşımı sinyalleri yeniden fırlatılır (yutulmaz).
|
||||
- Sağlayıcılar, yerleşik yolla aynı Compaction yönergelerini ve tanımlayıcı koruma politikasını alır.
|
||||
- safeguard, sağlayıcı çıktısından sonra son tur ve bölünmüş tur sonek bağlamını yine korur.
|
||||
- Yerleşik safeguard özetlemesi, tam önceki özeti kelimesi kelimesine korumak yerine önceki özetleri yeni mesajlarla yeniden damıtır.
|
||||
- Safeguard modu özet kalite denetimlerini varsayılan olarak etkinleştirir; hatalı biçimli çıktıda yeniden deneme davranışını atlamak için `qualityGuard.enabled: false` ayarlayın.
|
||||
- Sağlayıcı başarısız olursa veya boş bir sonuç döndürürse OpenClaw otomatik olarak yerleşik LLM özetlemesine geri döner.
|
||||
- Çağıran tarafın iptaline uymak için abort/zaman aşımı sinyalleri yeniden fırlatılır (yutulmaz).
|
||||
|
||||
Kaynak: `src/plugins/compaction-provider.ts`, `src/agents/pi-hooks/compaction-safeguard.ts`.
|
||||
|
||||
---
|
||||
|
||||
## Kullanıcıya görünen yüzeyler
|
||||
## Kullanıcının görebildiği yüzeyler
|
||||
|
||||
Compaction ve oturum durumunu şu yollarla gözlemleyebilirsiniz:
|
||||
Compaction ve oturum durumunu şunlar aracılığıyla gözlemleyebilirsiniz:
|
||||
|
||||
- `/status` (herhangi bir sohbet oturumunda)
|
||||
- `openclaw status` (CLI)
|
||||
@ -328,27 +349,27 @@ Compaction ve oturum durumunu şu yollarla gözlemleyebilirsiniz:
|
||||
|
||||
## Sessiz bakım (`NO_REPLY`)
|
||||
|
||||
OpenClaw, kullanıcının ara çıktıları görmemesi gereken arka plan görevleri için “sessiz” turları destekler.
|
||||
OpenClaw, kullanıcının ara çıktıyı görmemesi gereken arka plan görevleri için “sessiz” turları destekler.
|
||||
|
||||
Kural:
|
||||
|
||||
- Asistan, “kullanıcıya yanıt teslim etme” anlamına geldiğini belirtmek için çıktısını tam sessiz token `NO_REPLY` / `no_reply` ile başlatır.
|
||||
- Asistan, “kullanıcıya yanıt teslim etme” anlamına geldiğini belirtmek için çıktısına tam sessiz token `NO_REPLY` / `no_reply` ile başlar.
|
||||
- OpenClaw bunu teslim katmanında çıkarır/bastırır.
|
||||
- Tam sessiz token bastırma büyük/küçük harfe duyarsızdır; bu nedenle tüm yük yalnızca sessiz token olduğunda hem `NO_REPLY` hem de `no_reply` geçerli sayılır.
|
||||
- Bu yalnızca gerçek arka plan/teslimsiz turlar içindir; sıradan eyleme dönük kullanıcı istekleri için bir kestirme değildir.
|
||||
- Tam sessiz token bastırma büyük/küçük harfe duyarsızdır; bu yüzden tüm yük yalnızca sessiz token olduğunda hem `NO_REPLY` hem de `no_reply` geçerli sayılır.
|
||||
- Bu yalnızca gerçek arka plan/teslimatsız turlar içindir; sıradan uygulanabilir kullanıcı istekleri için bir kestirme değildir.
|
||||
|
||||
`2026.1.10` itibarıyla OpenClaw, kısmi bir parça `NO_REPLY` ile başladığında **taslak/yazma akışını** da bastırır; böylece sessiz işlemler tur ortasında kısmi çıktı sızdırmaz.
|
||||
`2026.1.10` itibarıyla OpenClaw, kısmi bir parça `NO_REPLY` ile başladığında **taslak/yazıyor akışını** da bastırır; böylece sessiz işlemler turun ortasında kısmi çıktı sızdırmaz.
|
||||
|
||||
---
|
||||
|
||||
## Compaction öncesi "bellek boşaltma" (uygulandı)
|
||||
|
||||
Hedef: otomatik Compaction gerçekleşmeden önce, dayanıklı durumu diske yazan sessiz bir aracı turu çalıştırmak (ör. aracı çalışma alanında `memory/YYYY-MM-DD.md`), böylece Compaction kritik bağlamı silemez.
|
||||
Hedef: otomatik Compaction gerçekleşmeden önce, kalıcı durumu diske yazan sessiz bir aracısal tur çalıştırmak (ör. aracı çalışma alanında `memory/YYYY-MM-DD.md`), böylece Compaction kritik bağlamı silemez.
|
||||
|
||||
OpenClaw **eşik öncesi boşaltma** yaklaşımını kullanır:
|
||||
|
||||
1. Oturum bağlam kullanımını izleyin.
|
||||
2. “Yumuşak eşiği” geçtiğinde (Pi’nin Compaction eşiğinin altında), aracıya sessiz bir “belleği şimdi yaz” yönergesi çalıştırın.
|
||||
1. Oturum bağlamı kullanımını izleyin.
|
||||
2. Bir “yumuşak eşiği” (Pi'nin Compaction eşiğinin altında) geçtiğinde aracıya sessiz bir “belleği şimdi yaz” yönergesi çalıştırın.
|
||||
3. Kullanıcının hiçbir şey görmemesi için tam sessiz token `NO_REPLY` / `no_reply` kullanın.
|
||||
|
||||
Yapılandırma (`agents.defaults.compaction.memoryFlush`):
|
||||
@ -356,30 +377,30 @@ Yapılandırma (`agents.defaults.compaction.memoryFlush`):
|
||||
- `enabled` (varsayılan: `true`)
|
||||
- `model` (boşaltma turu için isteğe bağlı tam sağlayıcı/model geçersiz kılması, örneğin `ollama/qwen3:8b`)
|
||||
- `softThresholdTokens` (varsayılan: `4000`)
|
||||
- `prompt` (boşaltma turu için kullanıcı iletisi)
|
||||
- `prompt` (boşaltma turu için kullanıcı mesajı)
|
||||
- `systemPrompt` (boşaltma turu için eklenen ekstra sistem istemi)
|
||||
|
||||
Notlar:
|
||||
|
||||
- Varsayılan prompt/system prompt, teslimi bastırmak için bir `NO_REPLY` ipucu içerir.
|
||||
- `model` ayarlandığında, boşaltma turu bu modeli etkin oturum yedek zincirini devralmadan kullanır; böylece yalnızca yerel bakım sessizce ücretli bir konuşma modeline geri dönmez.
|
||||
- Varsayılan istem/sistem istemi, teslimi bastırmak için bir `NO_REPLY` ipucu içerir.
|
||||
- `model` ayarlandığında boşaltma turu, etkin oturum geri dönüş zincirini devralmadan bu modeli kullanır; böylece yalnızca yerel bakım sessizce ücretli bir konuşma modeline geri dönmez.
|
||||
- Boşaltma her Compaction döngüsünde bir kez çalışır (`sessions.json` içinde izlenir).
|
||||
- Boşaltma yalnızca gömülü Pi oturumları için çalışır (CLI arka uçları bunu atlar).
|
||||
- Oturum çalışma alanı salt okunur olduğunda (`workspaceAccess: "ro"` veya `"none"`) boşaltma atlanır.
|
||||
- Çalışma alanı dosya düzeni ve yazma kalıpları için [Memory](/tr/concepts/memory) bölümüne bakın.
|
||||
- Boşaltma yalnızca gömülü Pi oturumları için çalışır (CLI arka uçları atlar).
|
||||
- Oturum çalışma alanı salt okunursa (`workspaceAccess: "ro"` veya `"none"`) boşaltma atlanır.
|
||||
- Çalışma alanı dosya düzeni ve yazma desenleri için bkz. [Memory](/tr/concepts/memory).
|
||||
|
||||
Pi ayrıca Plugin API içinde bir `session_before_compact` hook'u sunar, ancak OpenClaw’ın boşaltma mantığı bugün Gateway tarafında yaşar.
|
||||
Pi ayrıca extension API içinde bir `session_before_compact` kancası sunar, ancak OpenClaw'ın boşaltma mantığı bugün Gateway tarafında yaşar.
|
||||
|
||||
---
|
||||
|
||||
## Sorun giderme kontrol listesi
|
||||
|
||||
- Oturum anahtarı yanlış mı? [/concepts/session](/tr/concepts/session) ile başlayın ve `/status` içindeki `sessionKey` değerini doğrulayın.
|
||||
- Depo ile döküm uyuşmazlığı mı var? `openclaw status` çıktısından Gateway ana makinesini ve depo yolunu doğrulayın.
|
||||
- Depo ile döküm uyuşmazlığı mı var? Gateway ana makinesini ve `openclaw status` çıktısındaki depo yolunu doğrulayın.
|
||||
- Compaction spam’i mi var? Şunları kontrol edin:
|
||||
- model bağlam penceresi (çok küçük)
|
||||
- Compaction ayarları (`reserveTokens` model penceresi için çok yüksekse daha erken Compaction’a neden olabilir)
|
||||
- araç sonucu şişmesi: oturum budamayı etkinleştirin/ayarlayın
|
||||
- araç sonucu şişmesi: oturum budamasını etkinleştirin/ayarlayın
|
||||
- Sessiz turlar sızıyor mu? Yanıtın `NO_REPLY` ile başladığını (büyük/küçük harfe duyarsız tam token) ve akış bastırma düzeltmesini içeren bir derlemede olduğunuzu doğrulayın.
|
||||
|
||||
## İlgili
|
||||
|
||||
Loading…
Reference in New Issue
Block a user