diff --git a/docs/tr/gateway/configuration-reference.md b/docs/tr/gateway/configuration-reference.md index d0591487f..6170e2912 100644 --- a/docs/tr/gateway/configuration-reference.md +++ b/docs/tr/gateway/configuration-reference.md @@ -1,65 +1,65 @@ --- read_when: - - Tam alan düzeyinde yapılandırma semantiğine veya varsayılanlara ihtiyacınız var - - Kanal, model, Gateway veya araç yapılandırma bloklarını doğruluyorsunuz -summary: Temel OpenClaw anahtarları, varsayılanları ve özel alt sistem başvurularına bağlantılar için Gateway yapılandırma başvurusu -title: Yapılandırma Başvurusu + - Tam alan düzeyinde yapılandırma anlamları veya varsayılanları gerekir + - Kanal, model, gateway veya araç yapılandırma bloklarını doğruluyorsunuz +summary: Temel OpenClaw anahtarları, varsayılanlar ve özel alt sistem referanslarına bağlantılar için Gateway yapılandırma başvurusu +title: Yapılandırma Referansı x-i18n: - generated_at: "2026-04-11T02:44:24Z" + generated_at: "2026-04-11T15:15:56Z" model: gpt-5.4 provider: openai - source_hash: 32acb82e756e4740d13ef12277842081f4c90df7b67850c34f8a76701fcd37d0 + source_hash: 351a245bed59d852ea8582e4e9fec5017a5c623cd6f0034766cdea1b5330be3c source_path: gateway/configuration-reference.md workflow: 15 --- -# Yapılandırma Başvurusu +# Yapılandırma Referansı -`~/.openclaw/openclaw.json` için temel yapılandırma başvurusu. Görev odaklı bir genel bakış için bkz. [Yapılandırma](/tr/gateway/configuration). +`~/.openclaw/openclaw.json` için temel yapılandırma başvurusu. Görev odaklı genel bakış için bkz. [Yapılandırma](/tr/gateway/configuration). -Bu sayfa, ana OpenClaw yapılandırma yüzeylerini kapsar ve bir alt sistemin kendine ait daha ayrıntılı bir başvurusu olduğunda buna bağlantı verir. Tek bir sayfada her kanal/eklentiye ait komut kataloğunu veya her derin bellek/QMD ayarını satır içine almaya çalışmaz. +Bu sayfa ana OpenClaw yapılandırma yüzeylerini kapsar ve bir alt sistemin kendine ait daha ayrıntılı bir başvurusu olduğunda ona bağlantı verir. Her kanala/eklentiye ait komut kataloğunu veya her ayrıntılı bellek/QMD ayarını tek bir sayfada satır içine almaya **çalışmaz**. -Kod doğruluğu kaynakları: +Kod tarafındaki gerçek kaynak: -- `openclaw config schema`, doğrulama ve Control UI için kullanılan canlı JSON Şemasını yazdırır; mevcut olduğunda bundled/plugin/channel meta verileri bununla birleştirilir -- `config.schema.lookup`, ayrıntılı inceleme araçları için yol kapsamlı tek bir şema düğümü döndürür -- `pnpm config:docs:check` / `pnpm config:docs:gen`, config-doc temel karma değerini mevcut şema yüzeyine göre doğrular +- `openclaw config schema`, doğrulama ve Kontrol Arayüzü için kullanılan canlı JSON Şemasını yazdırır; mevcut olduğunda paketlenmiş/eklenti/kanal meta verileri birleştirilmiş olarak gelir +- `config.schema.lookup`, ayrıntı inceleme araçları için tek bir yol kapsamlı şema düğümü döndürür +- `pnpm config:docs:check` / `pnpm config:docs:gen`, yapılandırma-belge temel karma değerini mevcut şema yüzeyine göre doğrular -Ayrılmış ayrıntılı başvurular: +Özel ayrıntılı başvurular: - `agents.defaults.memorySearch.*`, `memory.qmd.*`, `memory.citations` ve `plugins.entries.memory-core.config.dreaming` altındaki dreaming yapılandırması için [Bellek yapılandırma başvurusu](/tr/reference/memory-config) -- Geçerli yerleşik + bundled komut kataloğu için [Slash Commands](/tr/tools/slash-commands) -- Kanala/eklentiye özel komut yüzeyleri için ilgili kanal/eklenti sayfaları +- Geçerli yerleşik + paketlenmiş komut kataloğu için [Slash Commands](/tr/tools/slash-commands) +- kanala/eklentiye sahip olan sayfalar, kanala özgü komut yüzeyleri için -Yapılandırma biçimi **JSON5**'tir (yorumlara + sondaki virgüllere izin verilir). Tüm alanlar isteğe bağlıdır — OpenClaw, alanlar belirtilmediğinde güvenli varsayılanlar kullanır. +Yapılandırma biçimi **JSON5**'tir (yorumlara + sondaki virgüllere izin verilir). Tüm alanlar isteğe bağlıdır — atlandığında OpenClaw güvenli varsayılanlar kullanır. --- ## Kanallar -Her kanal, yapılandırma bölümü mevcut olduğunda otomatik olarak başlar (`enabled: false` olmadığı sürece). +Yapılandırma bölümü mevcut olduğunda her kanal otomatik olarak başlar (`enabled: false` olmadığı sürece). ### DM ve grup erişimi Tüm kanallar DM ilkelerini ve grup ilkelerini destekler: -| DM ilkesi | Davranış | -| ------------------- | ------------------------------------------------------------- | -| `pairing` (varsayılan) | Bilinmeyen göndericiler tek kullanımlık bir eşleştirme kodu alır; sahibin onaylaması gerekir | -| `allowlist` | Yalnızca `allowFrom` içindeki göndericiler (veya eşleştirilmiş izin deposu) | -| `open` | Tüm gelen DM'lere izin ver ( `allowFrom: ["*"]` gerektirir) | -| `disabled` | Tüm gelen DM'leri yok say | +| DM ilkesi | Davranış | +| -------------------- | ------------------------------------------------------------- | +| `pairing` (varsayılan) | Bilinmeyen gönderenler tek kullanımlık bir eşleştirme kodu alır; sahibin onaylaması gerekir | +| `allowlist` | Yalnızca `allowFrom` içindeki gönderenler (veya eşleştirilmiş izin deposu) | +| `open` | Tüm gelen DM'lere izin ver (şunu gerektirir: `allowFrom: ["*"]`) | +| `disabled` | Tüm gelen DM'leri yok say | -| Grup ilkesi | Davranış | -| --------------------- | ---------------------------------------------------- | +| Grup ilkesi | Davranış | +| ---------------------- | ---------------------------------------------------- | | `allowlist` (varsayılan) | Yalnızca yapılandırılmış izin listesiyle eşleşen gruplar | -| `open` | Grup izin listelerini atla (mention-gating yine de uygulanır) | -| `disabled` | Tüm grup/oda mesajlarını engelle | +| `open` | Grup izin listelerini atla (mention-gating yine de uygulanır) | +| `disabled` | Tüm grup/oda mesajlarını engelle | -`channels.defaults.groupPolicy`, bir sağlayıcının `groupPolicy` alanı ayarlı olmadığında varsayılanı belirler. -Eşleştirme kodlarının süresi 1 saat sonra dolar. Bekleyen DM eşleştirme istekleri **kanal başına 3** ile sınırlıdır. -Bir sağlayıcı bloğu tamamen eksikse (`channels.` yoksa), çalışma zamanındaki grup ilkesi başlangıç uyarısıyla birlikte `allowlist` (fail-closed) değerine geri döner. +`channels.defaults.groupPolicy`, bir sağlayıcının `groupPolicy` değeri ayarlanmamışsa varsayılanı belirler. +Eşleştirme kodları 1 saat sonra sona erer. Bekleyen DM eşleştirme istekleri **kanal başına 3** ile sınırlandırılmıştır. +Bir sağlayıcı bloğu tamamen eksikse (`channels.` yoksa), çalışma zamanındaki grup ilkesi başlatma uyarısıyla birlikte `allowlist` (fail-closed) değerine geri döner. ### Kanal model geçersiz kılmaları @@ -105,11 +105,11 @@ Sağlayıcılar arasında paylaşılan grup ilkesi ve heartbeat davranışı iç } ``` -- `channels.defaults.groupPolicy`: sağlayıcı düzeyindeki `groupPolicy` ayarlı olmadığında kullanılan yedek grup ilkesi. -- `channels.defaults.contextVisibility`: tüm kanallar için varsayılan ek bağlam görünürlüğü modu. Değerler: `all` (varsayılan, alıntılanan/dizi/geçmiş bağlamının tamamını dahil et), `allowlist` (yalnızca izin verilen göndericilerden gelen bağlamı dahil et), `allowlist_quote` (allowlist ile aynı, ancak açık alıntı/yanıt bağlamını korur). Kanal başına geçersiz kılma: `channels..contextVisibility`. -- `channels.defaults.heartbeat.showOk`: sağlıklı kanal durumlarını heartbeat çıktısına dahil et. -- `channels.defaults.heartbeat.showAlerts`: kötüleşmiş/hata durumlarını heartbeat çıktısına dahil et. -- `channels.defaults.heartbeat.useIndicator`: kompakt gösterge tarzı heartbeat çıktısı oluştur. +- `channels.defaults.groupPolicy`: bir sağlayıcı düzeyindeki `groupPolicy` ayarlanmamışsa kullanılan yedek grup ilkesi. +- `channels.defaults.contextVisibility`: tüm kanallar için varsayılan ek bağlam görünürlüğü modu. Değerler: `all` (varsayılan, alıntılanan/dizi/geçmiş bağlamının tamamını dahil eder), `allowlist` (yalnızca izin verilen gönderenlerden gelen bağlamı dahil eder), `allowlist_quote` (allowlist ile aynı, ancak açık alıntı/yanıt bağlamını korur). Kanal başına geçersiz kılma: `channels..contextVisibility`. +- `channels.defaults.heartbeat.showOk`: sağlıklı kanal durumlarını heartbeat çıktısına dahil eder. +- `channels.defaults.heartbeat.showAlerts`: bozulmuş/hata durumlarını heartbeat çıktısına dahil eder. +- `channels.defaults.heartbeat.useIndicator`: kompakt gösterge tarzı heartbeat çıktısı oluşturur. ### WhatsApp @@ -164,7 +164,7 @@ WhatsApp, gateway'in web kanalı (Baileys Web) üzerinden çalışır. Bağlı b } ``` -- Giden komutlar varsayılan olarak varsa `default` hesabını, aksi halde ilk yapılandırılmış hesap kimliğini (sıralı) kullanır. +- Giden komutlar, varsa varsayılan olarak `default` hesabını kullanır; aksi halde ilk yapılandırılmış hesap kimliğini (sıralanmış) kullanır. - İsteğe bağlı `channels.whatsapp.defaultAccount`, yapılandırılmış bir hesap kimliğiyle eşleştiğinde bu yedek varsayılan hesap seçimini geçersiz kılar. - Eski tek hesaplı Baileys auth dizini, `openclaw doctor` tarafından `whatsapp/default` içine taşınır. - Hesap başına geçersiz kılmalar: `channels.whatsapp.accounts..sendReadReceipts`, `channels.whatsapp.accounts..dmPolicy`, `channels.whatsapp.accounts..allowFrom`. @@ -185,24 +185,24 @@ WhatsApp, gateway'in web kanalı (Baileys Web) üzerinden çalışır. Bağlı b "*": { requireMention: true }, "-1001234567890": { allowFrom: ["@admin"], - systemPrompt: "Yanıtları kısa tut.", + systemPrompt: "Keep answers brief.", topics: { "99": { requireMention: false, skills: ["search"], - systemPrompt: "Konudan sapma.", + systemPrompt: "Stay on topic.", }, }, }, }, customCommands: [ - { command: "backup", description: "Git yedeği" }, - { command: "generate", description: "Bir görsel oluştur" }, + { command: "backup", description: "Git backup" }, + { command: "generate", description: "Create an image" }, ], historyLimit: 50, replyToMode: "first", // off | first | all | batched linkPreview: true, - streaming: "partial", // off | partial | block | progress (varsayılan: off; preview-edit rate limits'ten kaçınmak için açıkça etkinleştirin) + streaming: "partial", // off | partial | block | progress (varsayılan: off; önizleme-düzenleme oran sınırlarından kaçınmak için açıkça etkinleştirin) actions: { reactions: true, sendMessage: true }, reactionNotifications: "own", // off | own | all mediaMaxMb: 100, @@ -225,11 +225,11 @@ WhatsApp, gateway'in web kanalı (Baileys Web) üzerinden çalışır. Bağlı b } ``` -- Bot token: `channels.telegram.botToken` veya `channels.telegram.tokenFile` (yalnızca normal dosya; sembolik bağlantılar reddedilir); varsayılan hesap için yedek olarak `TELEGRAM_BOT_TOKEN` kullanılır. +- Bot tokenı: `channels.telegram.botToken` veya `channels.telegram.tokenFile` (yalnızca normal dosya; symlink'ler reddedilir), varsayılan hesap için yedek olarak `TELEGRAM_BOT_TOKEN` kullanılır. - İsteğe bağlı `channels.telegram.defaultAccount`, yapılandırılmış bir hesap kimliğiyle eşleştiğinde varsayılan hesap seçimini geçersiz kılar. -- Çok hesaplı kurulumlarda (2+ hesap kimliği), yedek yönlendirmeyi önlemek için açık bir varsayılan belirleyin (`channels.telegram.defaultAccount` veya `channels.telegram.accounts.default`); bu eksikse veya geçersizse `openclaw doctor` uyarı verir. +- Çok hesaplı kurulumlarda (2+ hesap kimliği), yedek yönlendirmeden kaçınmak için açık bir varsayılan ayarlayın (`channels.telegram.defaultAccount` veya `channels.telegram.accounts.default`); bu eksik veya geçersiz olduğunda `openclaw doctor` uyarı verir. - `configWrites: false`, Telegram tarafından başlatılan yapılandırma yazmalarını engeller (supergroup ID geçişleri, `/config set|unset`). -- `type: "acp"` içeren üst düzey `bindings[]` girdileri, forum konuları için kalıcı ACP bağlarını yapılandırır (`match.peer.id` içinde kanonik `chatId:topic:topicId` kullanın). Alan semantiği [ACP Agents](/tr/tools/acp-agents#channel-specific-settings) ile paylaşılır. +- `type: "acp"` olan üst düzey `bindings[]` girdileri, forum konuları için kalıcı ACP bağlarını yapılandırır (`match.peer.id` içinde standart `chatId:topic:topicId` kullanın). Alan anlamları [ACP Agents](/tr/tools/acp-agents#channel-specific-settings) içinde ortaktır. - Telegram akış önizlemeleri `sendMessage` + `editMessageText` kullanır (doğrudan ve grup sohbetlerinde çalışır). - Yeniden deneme ilkesi: bkz. [Yeniden deneme ilkesi](/tr/concepts/retry). @@ -278,7 +278,7 @@ WhatsApp, gateway'in web kanalı (Baileys Web) üzerinden çalışır. Bağlı b requireMention: true, users: ["987654321098765432"], skills: ["docs"], - systemPrompt: "Yalnızca kısa yanıtlar.", + systemPrompt: "Short answers only.", }, }, }, @@ -286,7 +286,7 @@ WhatsApp, gateway'in web kanalı (Baileys Web) üzerinden çalışır. Bağlı b historyLimit: 20, textChunkLimit: 2000, chunkMode: "length", // length | newline - streaming: "off", // off | partial | block | progress (progress, Discord'da partial olarak eşlenir) + streaming: "off", // off | partial | block | progress (progress Discord'da partial olarak eşlenir) maxLinesPerMessage: 17, ui: { components: { @@ -333,36 +333,36 @@ WhatsApp, gateway'in web kanalı (Baileys Web) üzerinden çalışır. Bağlı b } ``` -- Token: `channels.discord.token`; varsayılan hesap için yedek olarak `DISCORD_BOT_TOKEN` kullanılır. -- Açık bir Discord `token` sağlayan doğrudan giden çağrılar, çağrı için bu token'ı kullanır; hesap yeniden deneme/ilke ayarları ise etkin çalışma zamanı anlık görüntüsünde seçili hesaptan gelmeye devam eder. +- Token: `channels.discord.token`, varsayılan hesap için yedek olarak `DISCORD_BOT_TOKEN` ile birlikte. +- Açık bir Discord `token` sağlayan doğrudan giden çağrılar, çağrı için o tokenı kullanır; hesap yeniden deneme/ilke ayarları yine de etkin çalışma zamanı anlık görüntüsünde seçilen hesaptan gelir. - İsteğe bağlı `channels.discord.defaultAccount`, yapılandırılmış bir hesap kimliğiyle eşleştiğinde varsayılan hesap seçimini geçersiz kılar. -- Teslim hedefleri için `user:` (DM) veya `channel:` (sunucu kanalı) kullanın; tek başına sayısal kimlikler reddedilir. -- Sunucu slug'ları küçük harflidir ve boşluklar `-` ile değiştirilir; kanal anahtarları slug biçimindeki adı kullanır (`#` yoktur). Sunucu kimliklerini tercih edin. +- Teslim hedefleri için `user:` (DM) veya `channel:` (sunucu kanalı) kullanın; yalın sayısal kimlikler reddedilir. +- Sunucu slug'ları küçük harflidir ve boşluklar `-` ile değiştirilir; kanal anahtarları slug biçimindeki adı kullanır (`#` olmadan). Sunucu kimliklerini tercih edin. - Bot tarafından yazılan mesajlar varsayılan olarak yok sayılır. `allowBots: true` bunları etkinleştirir; yalnızca botu mention eden bot mesajlarını kabul etmek için `allowBots: "mentions"` kullanın (botun kendi mesajları yine filtrelenir). -- `channels.discord.guilds..ignoreOtherMentions` (ve kanal geçersiz kılmaları), başka bir kullanıcıyı veya rolü mention eden ancak botu mention etmeyen mesajları kaldırır (`@everyone`/`@here` hariç). -- `maxLinesPerMessage` (varsayılan 17), 2000 karakterin altında olsalar bile uzun mesajları böler. -- `channels.discord.threadBindings`, Discord iş parçacığına bağlı yönlendirmeyi denetler: - - `enabled`: iş parçacığına bağlı oturum özellikleri (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age` ve bağlı teslim/yönlendirme) için Discord geçersiz kılması - - `idleHours`: etkinliksizlik durumunda saat cinsinden otomatik odak kaldırma için Discord geçersiz kılması (`0` devre dışı bırakır) +- `channels.discord.guilds..ignoreOtherMentions` (ve kanal geçersiz kılmaları), botu değil başka bir kullanıcıyı veya rolü mention eden mesajları düşürür (`@everyone`/`@here` hariç). +- `maxLinesPerMessage` (varsayılan 17), 2000 karakterin altında olsa bile uzun mesajları böler. +- `channels.discord.threadBindings`, Discord iş parçacığına bağlı yönlendirmeyi kontrol eder: + - `enabled`: iş parçacığına bağlı oturum özellikleri için Discord geçersiz kılması (`/focus`, `/unfocus`, `/agents`, `/session idle`, `/session max-age` ve bağlı teslim/yönlendirme) + - `idleHours`: etkinliksizlik nedeniyle otomatik odak kaldırma için saat cinsinden Discord geçersiz kılması (`0` devre dışı bırakır) - `maxAgeHours`: saat cinsinden kesin azami yaş için Discord geçersiz kılması (`0` devre dışı bırakır) - `spawnSubagentSessions`: `sessions_spawn({ thread: true })` otomatik iş parçacığı oluşturma/bağlama için isteğe bağlı anahtar -- `type: "acp"` içeren üst düzey `bindings[]` girdileri, kanallar ve iş parçacıkları için kalıcı ACP bağlarını yapılandırır (`match.peer.id` içinde kanal/iş parçacığı kimliğini kullanın). Alan semantiği [ACP Agents](/tr/tools/acp-agents#channel-specific-settings) ile paylaşılır. +- `type: "acp"` olan üst düzey `bindings[]` girdileri, kanallar ve iş parçacıkları için kalıcı ACP bağlarını yapılandırır (`match.peer.id` içinde kanal/iş parçacığı kimliğini kullanın). Alan anlamları [ACP Agents](/tr/tools/acp-agents#channel-specific-settings) içinde ortaktır. - `channels.discord.ui.components.accentColor`, Discord components v2 kapsayıcıları için vurgu rengini ayarlar. - `channels.discord.voice`, Discord ses kanalı konuşmalarını ve isteğe bağlı otomatik katılma + TTS geçersiz kılmalarını etkinleştirir. -- `channels.discord.voice.daveEncryption` ve `channels.discord.voice.decryptionFailureTolerance`, `@discordjs/voice` DAVE seçeneklerine olduğu gibi aktarılır (varsayılan olarak `true` ve `24`). -- OpenClaw ayrıca tekrarlanan şifre çözme hatalarından sonra bir ses oturumundan ayrılıp yeniden katılarak ses alımını kurtarmayı dener. -- `channels.discord.streaming`, kanonik akış modu anahtarıdır. Eski `streamMode` ve boolean `streaming` değerleri otomatik olarak taşınır. -- `channels.discord.autoPresence`, çalışma zamanı kullanılabilirliğini bot varlığına eşler (healthy => online, degraded => idle, exhausted => dnd) ve isteğe bağlı durum metni geçersiz kılmalarına izin verir. -- `channels.discord.dangerouslyAllowNameMatching`, değiştirilebilir ad/etiket eşleştirmesini yeniden etkinleştirir (acil durum uyumluluk modu). -- `channels.discord.execApprovals`: Discord yerel exec onay teslimi ve onaylayıcı yetkilendirmesi. +- `channels.discord.voice.daveEncryption` ve `channels.discord.voice.decryptionFailureTolerance`, `@discordjs/voice` DAVE seçeneklerine aynen aktarılır (varsayılan olarak `true` ve `24`). +- OpenClaw ayrıca, art arda şifre çözme hatalarından sonra bir ses oturumundan ayrılıp yeniden katılarak ses alımı kurtarmayı dener. +- `channels.discord.streaming` standart akış modu anahtarıdır. Eski `streamMode` ve boolean `streaming` değerleri otomatik olarak taşınır. +- `channels.discord.autoPresence`, çalışma zamanı kullanılabilirliğini bot varlığına eşler (sağlıklı => online, bozulmuş => idle, tükenmiş => dnd) ve isteğe bağlı durum metni geçersiz kılmalarına izin verir. +- `channels.discord.dangerouslyAllowNameMatching`, değiştirilebilir ad/etiket eşleştirmeyi yeniden etkinleştirir (acil durum uyumluluk modu). +- `channels.discord.execApprovals`: Discord'a özgü exec onay teslimi ve onaylayıcı yetkilendirmesi. - `enabled`: `true`, `false` veya `"auto"` (varsayılan). Otomatik modda exec onayları, onaylayıcılar `approvers` veya `commands.ownerAllowFrom` üzerinden çözümlenebildiğinde etkinleşir. - - `approvers`: exec isteklerini onaylamasına izin verilen Discord kullanıcı kimlikleri. Belirtilmezse `commands.ownerAllowFrom` kullanılır. - - `agentFilter`: isteğe bağlı ajan kimliği izin listesi. Tüm ajanlar için onayları iletmek üzere boş bırakın. - - `sessionFilter`: isteğe bağlı oturum anahtarı desenleri (alt dize veya regex). - - `target`: onay istemlerinin nereye gönderileceği. `"dm"` (varsayılan) onaylayıcı DM'lerine gönderir, `"channel"` kaynak kanala gönderir, `"both"` her ikisine de gönderir. Hedef `"channel"` içerdiğinde, düğmeler yalnızca çözümlenmiş onaylayıcılar tarafından kullanılabilir. - - `cleanupAfterResolve`: `true` olduğunda, onaylama, reddetme veya zaman aşımı sonrasında onay DM'lerini siler. + - `approvers`: exec isteklerini onaylamasına izin verilen Discord kullanıcı kimlikleri. Atlandığında `commands.ownerAllowFrom` değerine geri döner. + - `agentFilter`: isteğe bağlı ajan kimliği izin listesi. Tüm ajanlar için onayları iletmek üzere atlayın. + - `sessionFilter`: isteğe bağlı oturum anahtarı kalıpları (alt dize veya regex). + - `target`: onay istemlerinin nereye gönderileceği. `"dm"` (varsayılan) onaylayıcı DM'lerine gönderir, `"channel"` kaynak kanala gönderir, `"both"` her ikisine gönderir. Hedef `"channel"` içerdiğinde, düğmeler yalnızca çözümlenmiş onaylayıcılar tarafından kullanılabilir. + - `cleanupAfterResolve`: `true` olduğunda, onay, ret veya zaman aşımı sonrasında onay DM'lerini siler. -**Tepki bildirim modları:** `off` (yok), `own` (botun mesajları, varsayılan), `all` (tüm mesajlar), `allowlist` (tüm mesajlarda `guilds..users` içinden). +**Tepki bildirimi modları:** `off` (yok), `own` (botun mesajları, varsayılan), `all` (tüm mesajlar), `allowlist` (`guilds..users` içinden, tüm mesajlarda). ### Google Chat @@ -395,9 +395,9 @@ WhatsApp, gateway'in web kanalı (Baileys Web) üzerinden çalışır. Bağlı b - Hizmet hesabı JSON'u: satır içi (`serviceAccount`) veya dosya tabanlı (`serviceAccountFile`). - Hizmet hesabı SecretRef de desteklenir (`serviceAccountRef`). -- Ortam değişkeni yedekleri: `GOOGLE_CHAT_SERVICE_ACCOUNT` veya `GOOGLE_CHAT_SERVICE_ACCOUNT_FILE`. +- Ortam yedekleri: `GOOGLE_CHAT_SERVICE_ACCOUNT` veya `GOOGLE_CHAT_SERVICE_ACCOUNT_FILE`. - Teslim hedefleri için `spaces/` veya `users/` kullanın. -- `channels.googlechat.dangerouslyAllowNameMatching`, değiştirilebilir e-posta principal eşleştirmesini yeniden etkinleştirir (acil durum uyumluluk modu). +- `channels.googlechat.dangerouslyAllowNameMatching`, değiştirilebilir e-posta principal eşleştirmeyi yeniden etkinleştirir (acil durum uyumluluk modu). ### Slack @@ -419,7 +419,7 @@ WhatsApp, gateway'in web kanalı (Baileys Web) üzerinden çalışır. Bağlı b allowBots: false, users: ["U123"], skills: ["docs"], - systemPrompt: "Yalnızca kısa yanıtlar.", + systemPrompt: "Short answers only.", }, }, historyLimit: 50, @@ -464,35 +464,31 @@ WhatsApp, gateway'in web kanalı (Baileys Web) üzerinden çalışır. Bağlı b } ``` -- **Socket mode** hem `botToken` hem de `appToken` gerektirir (varsayılan hesap ortam değişkeni yedeği için `SLACK_BOT_TOKEN` + `SLACK_APP_TOKEN`). -- **HTTP mode** `botToken` ile birlikte `signingSecret` gerektirir (kök düzeyde veya hesap başına). +- **Socket mode** hem `botToken` hem de `appToken` gerektirir (varsayılan hesap ortam yedeği için `SLACK_BOT_TOKEN` + `SLACK_APP_TOKEN`). +- **HTTP mode** `botToken` ile birlikte `signingSecret` gerektirir (kökte veya hesap başına). - `botToken`, `appToken`, `signingSecret` ve `userToken`, düz metin - dizeleri veya SecretRef nesneleri kabul eder. -- Slack hesap anlık görüntüleri, hesap bazında şu tür kimlik bilgisi kaynak/durum alanlarını gösterir: - `botTokenSource`, `botTokenStatus`, `appTokenStatus` ve HTTP modunda - `signingSecretStatus`. `configured_unavailable`, hesabın - SecretRef üzerinden yapılandırıldığı ancak mevcut komut/çalışma zamanı yolunun - gizli değerini çözemediği anlamına gelir. + dizeleri veya SecretRef nesnelerini kabul eder. +- Slack hesap anlık görüntüleri, `botTokenSource`, `botTokenStatus`, `appTokenStatus` ve HTTP modunda `signingSecretStatus` gibi kimlik bilgisi başına kaynak/durum alanlarını gösterir. `configured_unavailable`, hesabın SecretRef üzerinden yapılandırıldığını ancak mevcut komut/çalışma zamanı yolunun gizli değeri çözemediğini ifade eder. - `configWrites: false`, Slack tarafından başlatılan yapılandırma yazmalarını engeller. - İsteğe bağlı `channels.slack.defaultAccount`, yapılandırılmış bir hesap kimliğiyle eşleştiğinde varsayılan hesap seçimini geçersiz kılar. -- `channels.slack.streaming.mode`, kanonik Slack akış modu anahtarıdır. `channels.slack.streaming.nativeTransport`, Slack'in yerel akış taşımasını denetler. Eski `streamMode`, boolean `streaming` ve `nativeStreaming` değerleri otomatik olarak taşınır. +- `channels.slack.streaming.mode` standart Slack akış modu anahtarıdır. `channels.slack.streaming.nativeTransport`, Slack'in yerel akış aktarımını kontrol eder. Eski `streamMode`, boolean `streaming` ve `nativeStreaming` değerleri otomatik olarak taşınır. - Teslim hedefleri için `user:` (DM) veya `channel:` kullanın. -**Tepki bildirim modları:** `off`, `own` (varsayılan), `all`, `allowlist` (`reactionAllowlist` içinden). +**Tepki bildirimi modları:** `off`, `own` (varsayılan), `all`, `allowlist` (`reactionAllowlist` içinden). -**İş parçacığı oturum yalıtımı:** `thread.historyScope` iş parçacığı başına (varsayılan) veya kanal genelinde paylaşılır. `thread.inheritParent`, yeni iş parçacıklarına üst kanal dökümünü kopyalar. +**İş parçacığı oturumu yalıtımı:** `thread.historyScope` iş parçacığı başına (varsayılan) veya kanal genelinde paylaşılır. `thread.inheritParent`, yeni iş parçacıklarına üst kanal dökümünü kopyalar. -- Slack yerel akışı ve Slack asistanı tarzındaki "is typing..." iş parçacığı durumu bir yanıt iş parçacığı hedefi gerektirir. Üst düzey DM'ler varsayılan olarak iş parçacığı dışında kalır; bu nedenle iş parçacığı tarzı önizleme yerine `typingReaction` veya normal teslim kullanırlar. -- `typingReaction`, yanıt çalışırken gelen Slack mesajına geçici bir tepki ekler, ardından tamamlandığında bunu kaldırır. `"hourglass_flowing_sand"` gibi bir Slack emoji kısa kodu kullanın. -- `channels.slack.execApprovals`: Slack yerel exec onay teslimi ve onaylayıcı yetkilendirmesi. Discord ile aynı şema: `enabled` (`true`/`false`/`"auto"`), `approvers` (Slack kullanıcı kimlikleri), `agentFilter`, `sessionFilter` ve `target` (`"dm"`, `"channel"` veya `"both"`). +- Slack yerel akışı ve Slack yardımcı tarzı "is typing..." iş parçacığı durumu, bir yanıt iş parçacığı hedefi gerektirir. Üst düzey DM'ler varsayılan olarak iş parçacığı dışında kalır, bu nedenle iş parçacığı tarzı önizleme yerine `typingReaction` veya normal teslim kullanırlar. +- `typingReaction`, bir yanıt çalışırken gelen Slack mesajına geçici bir tepki ekler, ardından tamamlandığında kaldırır. `"hourglass_flowing_sand"` gibi bir Slack emoji kısa kodu kullanın. +- `channels.slack.execApprovals`: Slack'e özgü exec onay teslimi ve onaylayıcı yetkilendirmesi. Discord ile aynı şema: `enabled` (`true`/`false`/`"auto"`), `approvers` (Slack kullanıcı kimlikleri), `agentFilter`, `sessionFilter` ve `target` (`"dm"`, `"channel"` veya `"both"`). -| Eylem grubu | Varsayılan | Notlar | -| ----------- | ---------- | ----------------------- | +| Eylem grubu | Varsayılan | Notlar | +| ----------- | ---------- | ------------------------ | | reactions | etkin | Tepki ver + tepkileri listele | -| messages | etkin | Oku/gönder/düzenle/sil | +| messages | etkin | Oku/gönder/düzenle/sil | | pins | etkin | Sabitle/sabitlemeyi kaldır/listele | -| memberInfo | etkin | Üye bilgisi | -| emojiList | etkin | Özel emoji listesi | +| memberInfo | etkin | Üye bilgisi | +| emojiList | etkin | Özel emoji listesi | ### Mattermost @@ -516,7 +512,7 @@ Mattermost bir eklenti olarak gelir: `openclaw plugins install @openclaw/matterm native: true, // isteğe bağlı etkinleştirme nativeSkills: true, callbackPath: "/api/channels/mattermost/command", - // Ters proxy/genel dağıtımlar için isteğe bağlı açık URL + // Ters proxy/herkese açık dağıtımlar için isteğe bağlı açık URL callbackUrl: "https://gateway.example.com/api/channels/mattermost/command", }, textChunkLimit: 4000, @@ -526,21 +522,19 @@ Mattermost bir eklenti olarak gelir: `openclaw plugins install @openclaw/matterm } ``` -Sohbet modları: `oncall` (@-mention ile yanıt verir, varsayılan), `onmessage` (her mesaj), `onchar` (tetikleyici önek ile başlayan mesajlar). +Sohbet modları: `oncall` (@-mention ile yanıt ver, varsayılan), `onmessage` (her mesaj), `onchar` (tetikleyici önekle başlayan mesajlar). Mattermost yerel komutları etkinleştirildiğinde: - `commands.callbackPath` tam URL değil, bir yol olmalıdır (örneğin `/api/channels/mattermost/command`). -- `commands.callbackUrl`, OpenClaw gateway uç noktasına çözülmeli ve Mattermost sunucusundan erişilebilir olmalıdır. -- Yerel slash callback'leri, Mattermost'un slash komut kaydı sırasında döndürdüğü - komut başına token'larla kimlik doğrular. Kayıt başarısız olursa veya hiçbir - komut etkinleştirilmezse, OpenClaw callback'leri - `Unauthorized: invalid command token.` ile reddeder. -- Özel/tailnet/dahili callback ana bilgisayarları için Mattermost, - `ServiceSettings.AllowedUntrustedInternalConnections` içinde callback ana bilgisayarını/alan adını içermeyi gerektirebilir. - Tam URL değil, ana bilgisayar/alan adı değerlerini kullanın. -- `channels.mattermost.configWrites`: Mattermost tarafından başlatılan yapılandırma yazmalarına izin ver veya reddet. -- `channels.mattermost.requireMention`: kanallarda yanıt vermeden önce `@mention` gerektir. +- `commands.callbackUrl`, OpenClaw gateway uç noktasına çözümlenmeli ve Mattermost sunucusundan erişilebilir olmalıdır. +- Yerel slash callback'leri, slash komut kaydı sırasında Mattermost tarafından döndürülen komut başına tokenlarla doğrulanır. Kayıt başarısız olursa veya hiçbir komut etkinleştirilmezse, OpenClaw callback'leri şu hata ile reddeder: + `Unauthorized: invalid command token.` +- Özel/tailnet/dahili callback ana makineleri için Mattermost, + `ServiceSettings.AllowedUntrustedInternalConnections` ayarının callback ana makinesini/alan adını içermesini gerektirebilir. + Tam URL değil, ana makine/alan adı değerleri kullanın. +- `channels.mattermost.configWrites`: Mattermost tarafından başlatılan yapılandırma yazmalarına izin verin veya engelleyin. +- `channels.mattermost.requireMention`: kanallarda yanıt vermeden önce `@mention` gerektirir. - `channels.mattermost.groups..requireMention`: kanal başına mention-gating geçersiz kılması (varsayılan için `"*"`). - İsteğe bağlı `channels.mattermost.defaultAccount`, yapılandırılmış bir hesap kimliğiyle eşleştiğinde varsayılan hesap seçimini geçersiz kılar. @@ -563,10 +557,10 @@ Mattermost yerel komutları etkinleştirildiğinde: } ``` -**Tepki bildirim modları:** `off`, `own` (varsayılan), `all`, `allowlist` (`reactionAllowlist` içinden). +**Tepki bildirimi modları:** `off`, `own` (varsayılan), `all`, `allowlist` (`reactionAllowlist` içinden). -- `channels.signal.account`: kanal başlangıcını belirli bir Signal hesap kimliğine sabitle. -- `channels.signal.configWrites`: Signal tarafından başlatılan yapılandırma yazmalarına izin ver veya reddet. +- `channels.signal.account`: kanal başlangıcını belirli bir Signal hesap kimliğine sabitleyin. +- `channels.signal.configWrites`: Signal tarafından başlatılan yapılandırma yazmalarına izin verin veya engelleyin. - İsteğe bağlı `channels.signal.defaultAccount`, yapılandırılmış bir hesap kimliğiyle eşleştiğinde varsayılan hesap seçimini geçersiz kılar. ### BlueBubbles @@ -588,12 +582,12 @@ BlueBubbles, önerilen iMessage yoludur (eklenti desteklidir, `channels.bluebubb - Burada kapsanan temel anahtar yolları: `channels.bluebubbles`, `channels.bluebubbles.dmPolicy`. - İsteğe bağlı `channels.bluebubbles.defaultAccount`, yapılandırılmış bir hesap kimliğiyle eşleştiğinde varsayılan hesap seçimini geçersiz kılar. -- `type: "acp"` içeren üst düzey `bindings[]` girdileri, BlueBubbles konuşmalarını kalıcı ACP oturumlarına bağlayabilir. `match.peer.id` içinde bir BlueBubbles handle veya hedef dizesi (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) kullanın. Paylaşılan alan semantiği: [ACP Agents](/tr/tools/acp-agents#channel-specific-settings). -- BlueBubbles kanalının tam yapılandırması [BlueBubbles](/tr/channels/bluebubbles) bölümünde belgelenmiştir. +- `type: "acp"` olan üst düzey `bindings[]` girdileri, BlueBubbles konuşmalarını kalıcı ACP oturumlarına bağlayabilir. `match.peer.id` içinde bir BlueBubbles handle veya hedef dizesi (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) kullanın. Paylaşılan alan anlamları: [ACP Agents](/tr/tools/acp-agents#channel-specific-settings). +- Tam BlueBubbles kanal yapılandırması [BlueBubbles](/tr/channels/bluebubbles) içinde belgelenmiştir. ### iMessage -OpenClaw, `imsg rpc` (stdio üzerinden JSON-RPC) başlatır. Daemon veya port gerekmez. +OpenClaw, `imsg rpc` sürecini başlatır (stdio üzerinden JSON-RPC). Daemon veya port gerekmez. ```json5 { @@ -619,13 +613,13 @@ OpenClaw, `imsg rpc` (stdio üzerinden JSON-RPC) başlatır. Daemon veya port ge - İsteğe bağlı `channels.imessage.defaultAccount`, yapılandırılmış bir hesap kimliğiyle eşleştiğinde varsayılan hesap seçimini geçersiz kılar. -- Messages DB için Full Disk Access gerekir. +- Messages veritabanına Full Disk Access gerektirir. - `chat_id:` hedeflerini tercih edin. Sohbetleri listelemek için `imsg chats --limit 20` kullanın. -- `cliPath`, bir SSH sarmalayıcısını işaret edebilir; SCP ek dosyası alma için `remoteHost` (`host` veya `user@host`) ayarlayın. -- `attachmentRoots` ve `remoteAttachmentRoots`, gelen ek dosya yollarını sınırlar (varsayılan: `/Users/*/Library/Messages/Attachments`). -- SCP katı host-key denetimi kullanır; bu nedenle aktarıcı host anahtarının zaten `~/.ssh/known_hosts` içinde bulunduğundan emin olun. -- `channels.imessage.configWrites`: iMessage tarafından başlatılan yapılandırma yazmalarına izin ver veya reddet. -- `type: "acp"` içeren üst düzey `bindings[]` girdileri, iMessage konuşmalarını kalıcı ACP oturumlarına bağlayabilir. `match.peer.id` içinde normalize edilmiş bir handle veya açık bir sohbet hedefi (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) kullanın. Paylaşılan alan semantiği: [ACP Agents](/tr/tools/acp-agents#channel-specific-settings). +- `cliPath`, bir SSH sarmalayıcısını işaret edebilir; SCP ek indirmesi için `remoteHost` (`host` veya `user@host`) ayarlayın. +- `attachmentRoots` ve `remoteAttachmentRoots`, gelen ek yollarını sınırlar (varsayılan: `/Users/*/Library/Messages/Attachments`). +- SCP katı ana makine anahtarı denetimi kullanır, bu nedenle aktarma ana makinesi anahtarının zaten `~/.ssh/known_hosts` içinde bulunduğundan emin olun. +- `channels.imessage.configWrites`: iMessage tarafından başlatılan yapılandırma yazmalarına izin verin veya engelleyin. +- `type: "acp"` olan üst düzey `bindings[]` girdileri, iMessage konuşmalarını kalıcı ACP oturumlarına bağlayabilir. `match.peer.id` içinde normalize edilmiş bir handle veya açık sohbet hedefi (`chat_id:*`, `chat_guid:*`, `chat_identifier:*`) kullanın. Paylaşılan alan anlamları: [ACP Agents](/tr/tools/acp-agents#channel-specific-settings). @@ -638,7 +632,7 @@ exec ssh -T gateway-host imsg "$@" ### Matrix -Matrix, extension desteklidir ve `channels.matrix` altında yapılandırılır. +Matrix uzantı desteklidir ve `channels.matrix` altında yapılandırılır. ```json5 { @@ -670,23 +664,23 @@ Matrix, extension desteklidir ve `channels.matrix` altında yapılandırılır. - Token kimlik doğrulaması `accessToken` kullanır; parola kimlik doğrulaması `userId` + `password` kullanır. - `channels.matrix.proxy`, Matrix HTTP trafiğini açık bir HTTP(S) proxy üzerinden yönlendirir. Adlandırılmış hesaplar bunu `channels.matrix.accounts..proxy` ile geçersiz kılabilir. -- `channels.matrix.network.dangerouslyAllowPrivateNetwork`, özel/dahili homeserver'lara izin verir. `proxy` ile bu ağ katılım seçeneği birbirinden bağımsız denetimlerdir. +- `channels.matrix.network.dangerouslyAllowPrivateNetwork`, özel/dahili homeserver'lara izin verir. `proxy` ile bu ağ etkinleştirme seçeneği birbirinden bağımsız denetimlerdir. - `channels.matrix.defaultAccount`, çok hesaplı kurulumlarda tercih edilen hesabı seçer. -- `channels.matrix.autoJoin` varsayılan olarak `off` değerindedir; bu nedenle davet edilen odalar ve yeni DM tarzı davetler, `autoJoin: "allowlist"` ile `autoJoinAllowlist` ayarlanana veya `autoJoin: "always"` kullanılana kadar yok sayılır. -- `channels.matrix.execApprovals`: Matrix yerel exec onay teslimi ve onaylayıcı yetkilendirmesi. +- `channels.matrix.autoJoin` varsayılan olarak `off` durumundadır; bu nedenle davet edilen odalar ve yeni DM tarzı davetler, `autoJoin: "allowlist"` ile `autoJoinAllowlist` ayarlanana veya `autoJoin: "always"` seçilene kadar yok sayılır. +- `channels.matrix.execApprovals`: Matrix'e özgü exec onay teslimi ve onaylayıcı yetkilendirmesi. - `enabled`: `true`, `false` veya `"auto"` (varsayılan). Otomatik modda exec onayları, onaylayıcılar `approvers` veya `commands.ownerAllowFrom` üzerinden çözümlenebildiğinde etkinleşir. - `approvers`: exec isteklerini onaylamasına izin verilen Matrix kullanıcı kimlikleri (ör. `@owner:example.org`). - - `agentFilter`: isteğe bağlı ajan kimliği izin listesi. Tüm ajanlar için onayları iletmek üzere boş bırakın. - - `sessionFilter`: isteğe bağlı oturum anahtarı desenleri (alt dize veya regex). + - `agentFilter`: isteğe bağlı ajan kimliği izin listesi. Tüm ajanlar için onayları iletmek üzere atlayın. + - `sessionFilter`: isteğe bağlı oturum anahtarı kalıpları (alt dize veya regex). - `target`: onay istemlerinin nereye gönderileceği. `"dm"` (varsayılan), `"channel"` (kaynak oda) veya `"both"`. - Hesap başına geçersiz kılmalar: `channels.matrix.accounts..execApprovals`. -- `channels.matrix.dm.sessionScope`, Matrix DM'lerinin oturumlara nasıl gruplanacağını denetler: `per-user` (varsayılan) yönlendirilen eşe göre paylaşır, `per-room` ise her DM odasını yalıtır. +- `channels.matrix.dm.sessionScope`, Matrix DM'lerinin oturumlar halinde nasıl gruplanacağını kontrol eder: `per-user` (varsayılan) yönlendirilen eşe göre paylaşır, `per-room` ise her DM odasını yalıtır. - Matrix durum probları ve canlı dizin aramaları, çalışma zamanı trafiğiyle aynı proxy ilkesini kullanır. -- Matrix'in tam yapılandırması, hedefleme kuralları ve kurulum örnekleri [Matrix](/tr/channels/matrix) bölümünde belgelenmiştir. +- Tam Matrix yapılandırması, hedefleme kuralları ve kurulum örnekleri [Matrix](/tr/channels/matrix) içinde belgelenmiştir. ### Microsoft Teams -Microsoft Teams, extension desteklidir ve `channels.msteams` altında yapılandırılır. +Microsoft Teams uzantı desteklidir ve `channels.msteams` altında yapılandırılır. ```json5 { @@ -702,11 +696,11 @@ Microsoft Teams, extension desteklidir ve `channels.msteams` altında yapıland ``` - Burada kapsanan temel anahtar yolları: `channels.msteams`, `channels.msteams.configWrites`. -- Teams'in tam yapılandırması (kimlik bilgileri, webhook, DM/grup ilkesi, takım/kanal başına geçersiz kılmalar) [Microsoft Teams](/tr/channels/msteams) bölümünde belgelenmiştir. +- Tam Teams yapılandırması (kimlik bilgileri, webhook, DM/grup ilkesi, takım/kanal başına geçersiz kılmalar) [Microsoft Teams](/tr/channels/msteams) içinde belgelenmiştir. ### IRC -IRC, extension desteklidir ve `channels.irc` altında yapılandırılır. +IRC uzantı desteklidir ve `channels.irc` altında yapılandırılır. ```json5 { @@ -729,11 +723,11 @@ IRC, extension desteklidir ve `channels.irc` altında yapılandırılır. - Burada kapsanan temel anahtar yolları: `channels.irc`, `channels.irc.dmPolicy`, `channels.irc.configWrites`, `channels.irc.nickserv.*`. - İsteğe bağlı `channels.irc.defaultAccount`, yapılandırılmış bir hesap kimliğiyle eşleştiğinde varsayılan hesap seçimini geçersiz kılar. -- IRC kanalının tam yapılandırması (host/port/TLS/kanallar/izin listeleri/mention gating) [IRC](/tr/channels/irc) bölümünde belgelenmiştir. +- Tam IRC kanal yapılandırması (host/port/TLS/kanallar/izin listeleri/mention gating) [IRC](/tr/channels/irc) içinde belgelenmiştir. ### Çok hesaplı kullanım (tüm kanallar) -Kanal başına birden çok hesap çalıştırın (her biri kendi `accountId` değerine sahip olacak şekilde): +Kanal başına birden fazla hesap çalıştırın (her biri kendi `accountId` değerine sahip olur): ```json5 { @@ -741,11 +735,11 @@ Kanal başına birden çok hesap çalıştırın (her biri kendi `accountId` de telegram: { accounts: { default: { - name: "Birincil bot", + name: "Primary bot", botToken: "123456:ABC...", }, alerts: { - name: "Uyarılar botu", + name: "Alerts bot", botToken: "987654:XYZ...", }, }, @@ -754,28 +748,28 @@ Kanal başına birden çok hesap çalıştırın (her biri kendi `accountId` de } ``` -- `accountId` belirtilmediğinde `default` kullanılır (CLI + yönlendirme). -- Ortam değişkeni token'ları yalnızca **default** hesap için geçerlidir. -- Temel kanal ayarları, hesap başına geçersiz kılınmadığı sürece tüm hesaplara uygulanır. +- `accountId` atlandığında `default` kullanılır (CLI + yönlendirme). +- Ortam tokenları yalnızca **default** hesap için geçerlidir. +- Temel kanal ayarları, hesap başına geçersiz kılınmadıkça tüm hesaplara uygulanır. - Her hesabı farklı bir ajana yönlendirmek için `bindings[].match.accountId` kullanın. -- Tek hesaplı üst düzey kanal yapılandırmasındayken `openclaw channels add` (veya kanal onboarding) ile varsayılan olmayan bir hesap eklerseniz, OpenClaw önce hesap kapsamındaki üst düzey tek hesap değerlerini kanal hesap haritasına taşır; böylece özgün hesap çalışmaya devam eder. Çoğu kanal bunları `channels..accounts.default` içine taşır; Matrix ise bunun yerine mevcut eşleşen bir named/default hedefi koruyabilir. +- `openclaw channels add` (veya kanal onboarding) ile varsayılan olmayan bir hesap eklediğinizde ve hâlâ tek hesaplı üst düzey kanal yapılandırmasındaysanız, OpenClaw önce hesap kapsamlı üst düzey tek hesap değerlerini kanal hesap eşlemesine taşır, böylece özgün hesap çalışmaya devam eder. Çoğu kanal bunları `channels..accounts.default` içine taşır; Matrix bunun yerine mevcut eşleşen adlandırılmış/default hedefi koruyabilir. - Mevcut yalnızca kanala ait bağlar (`accountId` olmadan) varsayılan hesapla eşleşmeye devam eder; hesap kapsamlı bağlar isteğe bağlı olmaya devam eder. -- `openclaw doctor --fix` ayrıca, hesap kapsamındaki üst düzey tek hesap değerlerini o kanal için seçilen taşınmış hesaba taşıyarak karma şekilleri onarır. Çoğu kanal `accounts.default` kullanır; Matrix ise mevcut eşleşen bir named/default hedefi koruyabilir. +- `openclaw doctor --fix`, hesap kapsamlı üst düzey tek hesap değerlerini o kanal için seçilen yükseltilmiş hesaba taşıyarak karışık şekilleri de onarır. Çoğu kanal `accounts.default` kullanır; Matrix bunun yerine mevcut eşleşen adlandırılmış/default hedefi koruyabilir. -### Diğer extension kanalları +### Diğer uzantı kanalları -Birçok extension kanalı `channels.` olarak yapılandırılır ve özel kanal sayfalarında belgelenir (örneğin Feishu, Matrix, LINE, Nostr, Zalo, Nextcloud Talk, Synology Chat ve Twitch). +Birçok uzantı kanalı `channels.` olarak yapılandırılır ve özel kanal sayfalarında belgelenir (örneğin Feishu, Matrix, LINE, Nostr, Zalo, Nextcloud Talk, Synology Chat ve Twitch). Tam kanal dizini için bkz.: [Kanallar](/tr/channels). -### Grup sohbeti mention gating +### Grup sohbetinde mention gating -Grup mesajları varsayılan olarak **mention gerektirir** (meta veri mention'ları veya güvenli regex desenleri). WhatsApp, Telegram, Discord, Google Chat ve iMessage grup sohbetlerine uygulanır. +Grup mesajlarında varsayılan olarak **mention gerekir** (meta veri mention'ı veya güvenli regex kalıpları). WhatsApp, Telegram, Discord, Google Chat ve iMessage grup sohbetlerine uygulanır. **Mention türleri:** - **Meta veri mention'ları**: Yerel platform @-mention'ları. WhatsApp self-chat modunda yok sayılır. -- **Metin desenleri**: `agents.list[].groupChat.mentionPatterns` içindeki güvenli regex desenleri. Geçersiz desenler ve güvenli olmayan iç içe tekrarlar yok sayılır. -- Mention gating yalnızca algılama mümkün olduğunda uygulanır (yerel mention'lar veya en az bir desen). +- **Metin kalıpları**: `agents.list[].groupChat.mentionPatterns` içindeki güvenli regex kalıpları. Geçersiz kalıplar ve güvensiz iç içe tekrarlar yok sayılır. +- Mention gating yalnızca algılama mümkün olduğunda uygulanır (yerel mention'lar veya en az bir kalıp). ```json5 { @@ -788,7 +782,7 @@ Grup mesajları varsayılan olarak **mention gerektirir** (meta veri mention'lar } ``` -`messages.groupChat.historyLimit`, genel varsayılanı belirler. Kanallar bunu `channels..historyLimit` ile (veya hesap başına) geçersiz kılabilir. Devre dışı bırakmak için `0` ayarlayın. +`messages.groupChat.historyLimit`, genel varsayılanı ayarlar. Kanallar bunu `channels..historyLimit` ile geçersiz kılabilir (veya hesap başına). Devre dışı bırakmak için `0` ayarlayın. #### DM geçmiş sınırları @@ -805,13 +799,13 @@ Grup mesajları varsayılan olarak **mention gerektirir** (meta veri mention'lar } ``` -Çözümleme sırası: DM başına geçersiz kılma → sağlayıcı varsayılanı → sınır yok (tümü tutulur). +Çözümleme: DM başına geçersiz kılma → sağlayıcı varsayılanı → sınır yok (tümü tutulur). Desteklenenler: `telegram`, `whatsapp`, `discord`, `slack`, `signal`, `imessage`, `msteams`. #### Self-chat modu -Self-chat modunu etkinleştirmek için `allowFrom` içine kendi numaranızı ekleyin (yerel @-mention'ları yok sayar, yalnızca metin desenlerine yanıt verir): +Self-chat modunu etkinleştirmek için kendi numaranızı `allowFrom` içine ekleyin (yerel @-mention'ları yok sayar, yalnızca metin kalıplarına yanıt verir): ```json5 { @@ -840,13 +834,13 @@ Self-chat modunu etkinleştirmek için `allowFrom` içine kendi numaranızı ekl native: "auto", // desteklendiğinde yerel komutları kaydet nativeSkills: "auto", // desteklendiğinde yerel Skills komutlarını kaydet text: true, // sohbet mesajlarında /commands ayrıştır - bash: false, // ! izin ver (takma ad: /bash) + bash: false, // ! kullanımına izin ver (takma ad: /bash) bashForegroundMs: 2000, - config: false, // /config izin ver - mcp: false, // /mcp izin ver - plugins: false, // /plugins izin ver - debug: false, // /debug izin ver - restart: true, // /restart + gateway restart aracına izin ver + config: false, // /config izni ver + mcp: false, // /mcp izni ver + plugins: false, // /plugins izni ver + debug: false, // /debug izni ver + restart: true, // /restart + gateway yeniden başlatma aracına izin ver ownerAllowFrom: ["discord:123456789012345678"], ownerDisplay: "raw", // raw | hash ownerDisplaySecret: "${OWNER_ID_HASH_SECRET}", @@ -861,30 +855,30 @@ Self-chat modunu etkinleştirmek için `allowFrom` içine kendi numaranızı ekl -- Bu blok, komut yüzeylerini yapılandırır. Geçerli yerleşik + bundled komut kataloğu için bkz. [Slash Commands](/tr/tools/slash-commands). -- Bu sayfa bir **yapılandırma anahtarı başvurusu**dur, tam komut kataloğu değildir. QQ Bot `/bot-ping` `/bot-help` `/bot-logs`, LINE `/card`, device-pair `/pair`, memory `/dreaming`, phone-control `/phone` ve Talk `/voice` gibi kanal/eklentiye ait komutlar, kendi kanal/eklenti sayfalarında ve [Slash Commands](/tr/tools/slash-commands) içinde belgelenmiştir. +- Bu blok komut yüzeylerini yapılandırır. Geçerli yerleşik + paketlenmiş komut kataloğu için bkz. [Slash Commands](/tr/tools/slash-commands). +- Bu sayfa **yapılandırma anahtarı başvurusu**dur, tam komut kataloğu değildir. QQ Bot `/bot-ping` `/bot-help` `/bot-logs`, LINE `/card`, device-pair `/pair`, memory `/dreaming`, phone-control `/phone` ve Talk `/voice` gibi kanala/eklentiye ait komutlar, kendi kanal/eklenti sayfalarında ve [Slash Commands](/tr/tools/slash-commands) içinde belgelenmiştir. - Metin komutları, başında `/` bulunan **bağımsız** mesajlar olmalıdır. - `native: "auto"`, Discord/Telegram için yerel komutları açar, Slack'i kapalı bırakır. - `nativeSkills: "auto"`, Discord/Telegram için yerel Skills komutlarını açar, Slack'i kapalı bırakır. - Kanal başına geçersiz kılma: `channels.discord.commands.native` (bool veya `"auto"`). `false`, daha önce kaydedilmiş komutları temizler. - Yerel skill kaydını kanal başına `channels..commands.nativeSkills` ile geçersiz kılın. -- `channels.telegram.customCommands`, ek Telegram bot menü girdileri ekler. +- `channels.telegram.customCommands`, Telegram bot menüsüne ek girdiler ekler. - `bash: true`, ana makine kabuğu için `! ` kullanımını etkinleştirir. `tools.elevated.enabled` gerekir ve gönderenin `tools.elevated.allowFrom.` içinde olması gerekir. -- `config: true`, `/config` komutunu etkinleştirir (`openclaw.json` okur/yazar). Gateway `chat.send` istemcileri için kalıcı `/config set|unset` yazmaları ayrıca `operator.admin` gerektirir; salt okunur `/config show` ise normal yazma kapsamlı operator istemcileri için kullanılabilir kalır. -- `mcp: true`, `mcp.servers` altındaki OpenClaw yönetimli MCP sunucu yapılandırması için `/mcp` komutunu etkinleştirir. +- `config: true`, `/config` komutunu etkinleştirir (`openclaw.json` okur/yazar). Gateway `chat.send` istemcileri için kalıcı `/config set|unset` yazmaları ayrıca `operator.admin` gerektirir; salt okunur `/config show`, normal yazma kapsamlı operatör istemcilerine sunulmaya devam eder. +- `mcp: true`, `mcp.servers` altındaki OpenClaw tarafından yönetilen MCP sunucu yapılandırması için `/mcp` komutunu etkinleştirir. - `plugins: true`, eklenti keşfi, kurulum ve etkinleştirme/devre dışı bırakma denetimleri için `/plugins` komutunu etkinleştirir. - `channels..configWrites`, kanal başına yapılandırma değişikliklerini denetler (varsayılan: true). -- Çok hesaplı kanallar için `channels..accounts..configWrites` da o hesabı hedefleyen yazmaları denetler (örneğin `/allowlist --config --account ` veya `/config set channels..accounts....`). +- Çok hesaplı kanallarda `channels..accounts..configWrites`, o hesabı hedefleyen yazmaları da denetler (örneğin `/allowlist --config --account ` veya `/config set channels..accounts....`). - `restart: false`, `/restart` ve gateway yeniden başlatma aracı eylemlerini devre dışı bırakır. Varsayılan: `true`. -- `ownerAllowFrom`, yalnızca sahip için olan komutlar/araçlar için açık sahip izin listesidir. `allowFrom` alanından ayrıdır. -- `ownerDisplay: "hash"`, sistem isteminde sahip kimliklerini hash'ler. Hash işlemini denetlemek için `ownerDisplaySecret` ayarlayın. -- `allowFrom`, sağlayıcı başınadır. Ayarlandığında **tek** yetkilendirme kaynağı olur (kanal izin listeleri/eşleştirme ve `useAccessGroups` yok sayılır). -- `useAccessGroups: false`, `allowFrom` ayarlı değilken komutların erişim grubu ilkelerini atlamasına izin verir. -- Komut belgeleri eşlemesi: - - yerleşik + bundled katalog: [Slash Commands](/tr/tools/slash-commands) - - kanala özel komut yüzeyleri: [Channels](/tr/channels) +- `ownerAllowFrom`, yalnızca sahip için olan komutlar/araçlar için açık sahip izin listesidir. `allowFrom` değerinden ayrıdır. +- `ownerDisplay: "hash"`, sistem isteminde sahip kimliklerini hash'ler. Hash'lemeyi denetlemek için `ownerDisplaySecret` ayarlayın. +- `allowFrom`, sağlayıcı başınadır. Ayarlandığında **tek** yetkilendirme kaynağıdır (kanal izin listeleri/eşleştirme ve `useAccessGroups` yok sayılır). +- `useAccessGroups: false`, `allowFrom` ayarlanmamışsa komutların erişim grubu ilkelerini atlamasına izin verir. +- Komut belge eşlemesi: + - yerleşik + paketlenmiş katalog: [Slash Commands](/tr/tools/slash-commands) + - kanala özgü komut yüzeyleri: [Kanallar](/tr/channels) - QQ Bot komutları: [QQ Bot](/tr/channels/qqbot) - - eşleştirme komutları: [Pairing](/tr/channels/pairing) + - eşleştirme komutları: [Eşleştirme](/tr/channels/pairing) - LINE kart komutu: [LINE](/tr/channels/line) - memory dreaming: [Dreaming](/tr/concepts/dreaming) @@ -906,7 +900,7 @@ Varsayılan: `~/.openclaw/workspace`. ### `agents.defaults.repoRoot` -Sistem isteminin Runtime satırında gösterilen isteğe bağlı depo kökü. Ayarlı değilse OpenClaw, workspace'ten yukarı doğru yürüyerek otomatik algılar. +Sistem isteminin Runtime satırında gösterilen isteğe bağlı depo kökü. Ayarlanmamışsa OpenClaw, çalışma alanından yukarı doğru yürüyerek otomatik algılar. ```json5 { @@ -923,7 +917,7 @@ Sistem isteminin Runtime satırında gösterilen isteğe bağlı depo kökü. Ay agents: { defaults: { skills: ["github", "weather"] }, list: [ - { id: "writer" }, // github, weather devralır + { id: "writer" }, // github, weather değerlerini devralır { id: "docs", skills: ["docs-search"] }, // varsayılanların yerine geçer { id: "locked-down", skills: [] }, // skill yok ], @@ -931,15 +925,14 @@ Sistem isteminin Runtime satırında gösterilen isteğe bağlı depo kökü. Ay } ``` -- Varsayılan olarak sınırsız Skills için `agents.defaults.skills` alanını belirtmeyin. -- Varsayılanları devralmak için `agents.list[].skills` alanını belirtmeyin. +- Varsayılan olarak sınırsız skill için `agents.defaults.skills` alanını atlayın. +- Varsayılanları devralmak için `agents.list[].skills` alanını atlayın. - Skill olmaması için `agents.list[].skills: []` ayarlayın. -- Boş olmayan bir `agents.list[].skills` listesi, o ajan için son kümedir; - varsayılanlarla birleştirilmez. +- Boş olmayan bir `agents.list[].skills` listesi, o ajan için son kümedir; varsayılanlarla birleştirilmez. ### `agents.defaults.skipBootstrap` -Workspace bootstrap dosyalarının (`AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`, `BOOTSTRAP.md`) otomatik oluşturulmasını devre dışı bırakır. +Çalışma alanı bootstrap dosyalarının (`AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTITY.md`, `USER.md`, `HEARTBEAT.md`, `BOOTSTRAP.md`) otomatik oluşturulmasını devre dışı bırakır. ```json5 { @@ -949,9 +942,9 @@ Workspace bootstrap dosyalarının (`AGENTS.md`, `SOUL.md`, `TOOLS.md`, `IDENTIT ### `agents.defaults.contextInjection` -Workspace bootstrap dosyalarının sistem istemine ne zaman ekleneceğini denetler. Varsayılan: `"always"`. +Çalışma alanı bootstrap dosyalarının sistem istemine ne zaman enjekte edileceğini denetler. Varsayılan: `"always"`. -- `"continuation-skip"`: güvenli devam turları (tamamlanmış bir assistant yanıtından sonra), workspace bootstrap yeniden eklemesini atlar ve istem boyutunu azaltır. Heartbeat çalışmaları ve sıkıştırma sonrası yeniden denemeler yine bağlamı yeniden oluşturur. +- `"continuation-skip"`: güvenli devam turlarında (tamamlanmış bir asistan yanıtından sonra) çalışma alanı bootstrap yeniden enjeksiyonu atlanır ve istem boyutu azaltılır. Heartbeat çalıştırmaları ve sıkıştırma sonrası yeniden denemeler yine bağlamı yeniden oluşturur. ```json5 { @@ -961,7 +954,7 @@ Workspace bootstrap dosyalarının sistem istemine ne zaman ekleneceğini denetl ### `agents.defaults.bootstrapMaxChars` -Kesmeden önce workspace bootstrap dosyası başına en fazla karakter sayısı. Varsayılan: `20000`. +Kesmeden önce çalışma alanı bootstrap dosyası başına azami karakter sayısı. Varsayılan: `20000`. ```json5 { @@ -971,7 +964,7 @@ Kesmeden önce workspace bootstrap dosyası başına en fazla karakter sayısı. ### `agents.defaults.bootstrapTotalMaxChars` -Tüm workspace bootstrap dosyaları genelinde eklenen toplam en fazla karakter sayısı. Varsayılan: `150000`. +Tüm çalışma alanı bootstrap dosyalarına enjekte edilen toplam azami karakter sayısı. Varsayılan: `150000`. ```json5 { @@ -981,12 +974,12 @@ Tüm workspace bootstrap dosyaları genelinde eklenen toplam en fazla karakter s ### `agents.defaults.bootstrapPromptTruncationWarning` -Bootstrap bağlamı kesildiğinde ajana görünür uyarı metnini denetler. +Bootstrap bağlamı kesildiğinde ajan tarafından görülebilen uyarı metnini denetler. Varsayılan: `"once"`. -- `"off"`: sistem istemine asla uyarı metni ekleme. -- `"once"`: her benzersiz kesme imzası için uyarıyı bir kez ekle (önerilir). -- `"always"`: kesme mevcut olduğunda her çalıştırmada uyarıyı ekle. +- `"off"`: sistem istemine hiçbir zaman uyarı metni enjekte etmez. +- `"once"`: her benzersiz kesilme imzası için bir kez uyarı enjekte eder (önerilir). +- `"always"`: kesilme olduğunda her çalıştırmada uyarı enjekte eder. ```json5 { @@ -996,7 +989,7 @@ Varsayılan: `"once"`. ### `agents.defaults.imageMaxDimensionPx` -Sağlayıcı çağrılarından önce transcript/tool görsel bloklarında görselin en uzun kenarı için azami piksel boyutu. +Sağlayıcı çağrılarından önce transcript/araç görsel bloklarında görselin en uzun kenarı için azami piksel boyutu. Varsayılan: `1200`. Daha düşük değerler genellikle ekran görüntüsü ağırlıklı çalıştırmalarda vision token kullanımını ve istek yükü boyutunu azaltır. @@ -1010,7 +1003,7 @@ Daha yüksek değerler daha fazla görsel ayrıntıyı korur. ### `agents.defaults.userTimezone` -Sistem istemi bağlamı için saat dilimi (mesaj zaman damgaları değil). Ana makine saat dilimine geri döner. +Sistem istemi bağlamı için saat dilimi (mesaj zaman damgaları için değil). Ana makine saat dilimine geri döner. ```json5 { @@ -1060,7 +1053,7 @@ Sistem istemindeki saat biçimi. Varsayılan: `auto` (işletim sistemi tercihi). }, params: { cacheRetention: "long" }, // genel varsayılan sağlayıcı parametreleri embeddedHarness: { - runtime: "auto", // auto | pi | registered harness id, örn. codex + runtime: "auto", // auto | pi | kayıtlı harness kimliği, ör. codex fallback: "pi", // pi | none }, pdfMaxBytesMb: 10, @@ -1077,48 +1070,48 @@ Sistem istemindeki saat biçimi. Varsayılan: `auto` (işletim sistemi tercihi). } ``` -- `model`: bir dize (`"provider/model"`) veya bir nesne (`{ primary, fallbacks }`) kabul eder. +- `model`: bir dizeyi (`"provider/model"`) veya bir nesneyi (`{ primary, fallbacks }`) kabul eder. - Dize biçimi yalnızca birincil modeli ayarlar. - - Nesne biçimi, birincil model ile sıralı failover modellerini ayarlar. -- `imageModel`: bir dize (`"provider/model"`) veya bir nesne (`{ primary, fallbacks }`) kabul eder. - - `image` araç yolu tarafından vision model yapılandırması olarak kullanılır. - - Ayrıca, seçili/varsayılan model görsel girdisini kabul edemediğinde yedek yönlendirme için kullanılır. -- `imageGenerationModel`: bir dize (`"provider/model"`) veya bir nesne (`{ primary, fallbacks }`) kabul eder. + - Nesne biçimi birincil modeli ve sıralı failover modellerini ayarlar. +- `imageModel`: bir dizeyi (`"provider/model"`) veya bir nesneyi (`{ primary, fallbacks }`) kabul eder. + - `image` araç yolunda, vision model yapılandırması olarak kullanılır. + - Ayrıca seçilen/varsayılan model görsel girdiyi kabul edemediğinde yedek yönlendirme için de kullanılır. +- `imageGenerationModel`: bir dizeyi (`"provider/model"`) veya bir nesneyi (`{ primary, fallbacks }`) kabul eder. - Paylaşılan görsel üretim yeteneği ve görsel üreten gelecekteki tüm araç/eklenti yüzeyleri tarafından kullanılır. - Tipik değerler: yerel Gemini görsel üretimi için `google/gemini-3.1-flash-image-preview`, fal için `fal/fal-ai/flux/dev` veya OpenAI Images için `openai/gpt-image-1`. - - Doğrudan bir sağlayıcı/model seçerseniz, eşleşen sağlayıcı kimlik doğrulamasını/API anahtarını da yapılandırın (örneğin `google/*` için `GEMINI_API_KEY` veya `GOOGLE_API_KEY`, `openai/*` için `OPENAI_API_KEY`, `fal/*` için `FAL_KEY`). - - Belirtilmezse `image_generate`, yine de kimlik doğrulaması destekli bir sağlayıcı varsayılanını çıkarabilir. Önce geçerli varsayılan sağlayıcıyı, sonra sağlayıcı kimliği sırasına göre kayıtlı kalan görsel üretim sağlayıcılarını dener. -- `musicGenerationModel`: bir dize (`"provider/model"`) veya bir nesne (`{ primary, fallbacks }`) kabul eder. + - Bir sağlayıcı/modeli doğrudan seçerseniz, eşleşen sağlayıcı auth/API anahtarını da yapılandırın (örneğin `google/*` için `GEMINI_API_KEY` veya `GOOGLE_API_KEY`, `openai/*` için `OPENAI_API_KEY`, `fal/*` için `FAL_KEY`). + - Atlanırsa `image_generate` yine de auth destekli bir sağlayıcı varsayılanını çıkarabilir. Önce geçerli varsayılan sağlayıcıyı, ardından kalan kayıtlı görsel üretim sağlayıcılarını sağlayıcı kimliği sırasıyla dener. +- `musicGenerationModel`: bir dizeyi (`"provider/model"`) veya bir nesneyi (`{ primary, fallbacks }`) kabul eder. - Paylaşılan müzik üretim yeteneği ve yerleşik `music_generate` aracı tarafından kullanılır. - Tipik değerler: `google/lyria-3-clip-preview`, `google/lyria-3-pro-preview` veya `minimax/music-2.5+`. - - Belirtilmezse `music_generate`, yine de kimlik doğrulaması destekli bir sağlayıcı varsayılanını çıkarabilir. Önce geçerli varsayılan sağlayıcıyı, sonra sağlayıcı kimliği sırasına göre kayıtlı kalan müzik üretim sağlayıcılarını dener. - - Doğrudan bir sağlayıcı/model seçerseniz, eşleşen sağlayıcı kimlik doğrulamasını/API anahtarını da yapılandırın. -- `videoGenerationModel`: bir dize (`"provider/model"`) veya bir nesne (`{ primary, fallbacks }`) kabul eder. + - Atlanırsa `music_generate` yine de auth destekli bir sağlayıcı varsayılanını çıkarabilir. Önce geçerli varsayılan sağlayıcıyı, ardından kalan kayıtlı müzik üretim sağlayıcılarını sağlayıcı kimliği sırasıyla dener. + - Bir sağlayıcı/modeli doğrudan seçerseniz, eşleşen sağlayıcı auth/API anahtarını da yapılandırın. +- `videoGenerationModel`: bir dizeyi (`"provider/model"`) veya bir nesneyi (`{ primary, fallbacks }`) kabul eder. - Paylaşılan video üretim yeteneği ve yerleşik `video_generate` aracı tarafından kullanılır. - Tipik değerler: `qwen/wan2.6-t2v`, `qwen/wan2.6-i2v`, `qwen/wan2.6-r2v`, `qwen/wan2.6-r2v-flash` veya `qwen/wan2.7-r2v`. - - Belirtilmezse `video_generate`, yine de kimlik doğrulaması destekli bir sağlayıcı varsayılanını çıkarabilir. Önce geçerli varsayılan sağlayıcıyı, sonra sağlayıcı kimliği sırasına göre kayıtlı kalan video üretim sağlayıcılarını dener. - - Doğrudan bir sağlayıcı/model seçerseniz, eşleşen sağlayıcı kimlik doğrulamasını/API anahtarını da yapılandırın. - - Bundled Qwen video üretim sağlayıcısı, en fazla 1 çıktı videosu, 1 giriş görseli, 4 giriş videosu, 10 saniye süre ve sağlayıcı düzeyinde `size`, `aspectRatio`, `resolution`, `audio` ve `watermark` seçeneklerini destekler. -- `pdfModel`: bir dize (`"provider/model"`) veya bir nesne (`{ primary, fallbacks }`) kabul eder. - - Model yönlendirmesi için `pdf` aracı tarafından kullanılır. - - Belirtilmezse PDF aracı önce `imageModel`, sonra çözümlenen oturum/varsayılan modele geri döner. -- `pdfMaxBytesMb`: çağrı sırasında `maxBytesMb` geçirilmediğinde `pdf` aracı için varsayılan PDF boyut sınırı. -- `pdfMaxPages`: `pdf` aracındaki çıkarım yedek modunda dikkate alınan varsayılan azami sayfa sayısı. -- `verboseDefault`: ajanlar için varsayılan ayrıntı düzeyi. Değerler: `"off"`, `"on"`, `"full"`. Varsayılan: `"off"`. + - Atlanırsa `video_generate` yine de auth destekli bir sağlayıcı varsayılanını çıkarabilir. Önce geçerli varsayılan sağlayıcıyı, ardından kalan kayıtlı video üretim sağlayıcılarını sağlayıcı kimliği sırasıyla dener. + - Bir sağlayıcı/modeli doğrudan seçerseniz, eşleşen sağlayıcı auth/API anahtarını da yapılandırın. + - Paketlenmiş Qwen video üretim sağlayıcısı en fazla 1 çıktı videosu, 1 girdi görseli, 4 girdi videosu, 10 saniye süre ve sağlayıcı düzeyinde `size`, `aspectRatio`, `resolution`, `audio` ve `watermark` seçeneklerini destekler. +- `pdfModel`: bir dizeyi (`"provider/model"`) veya bir nesneyi (`{ primary, fallbacks }`) kabul eder. + - `pdf` aracı tarafından model yönlendirmesi için kullanılır. + - Atlanırsa PDF aracı önce `imageModel` değerine, ardından çözümlenen oturum/varsayılan modele geri döner. +- `pdfMaxBytesMb`: çağrı zamanında `maxBytesMb` geçirilmediğinde `pdf` aracı için varsayılan PDF boyut sınırı. +- `pdfMaxPages`: `pdf` aracında çıkarım yedek modunun dikkate aldığı varsayılan azami sayfa sayısı. +- `verboseDefault`: ajanlar için varsayılan verbose düzeyi. Değerler: `"off"`, `"on"`, `"full"`. Varsayılan: `"off"`. - `elevatedDefault`: ajanlar için varsayılan elevated-output düzeyi. Değerler: `"off"`, `"on"`, `"ask"`, `"full"`. Varsayılan: `"on"`. -- `model.primary`: `provider/model` biçimi (örn. `openai/gpt-5.4`). Sağlayıcıyı belirtmezseniz OpenClaw önce bir takma adı, sonra o tam model kimliği için benzersiz yapılandırılmış sağlayıcı eşleşmesini dener, ancak bundan sonra yapılandırılmış varsayılan sağlayıcıya geri döner (kullanımdan kaldırılmış uyumluluk davranışı; bu nedenle açık `provider/model` tercih edin). Bu sağlayıcı artık yapılandırılmış varsayılan modeli sunmuyorsa OpenClaw, eski kaldırılmış bir sağlayıcı varsayılanını göstermemek için ilk yapılandırılmış sağlayıcı/modele geri döner. -- `models`: `/model` için yapılandırılmış model kataloğu ve izin listesi. Her girdi `alias` (kısayol) ve `params` (sağlayıcıya özel; örneğin `temperature`, `maxTokens`, `cacheRetention`, `context1m`) içerebilir. -- `params`: tüm modellere uygulanan genel varsayılan sağlayıcı parametreleri. `agents.defaults.params` altında ayarlanır (örn. `{ cacheRetention: "long" }`). -- `params` birleştirme önceliği (config): `agents.defaults.params` (genel taban), `agents.defaults.models["provider/model"].params` (model başına) tarafından geçersiz kılınır, ardından `agents.list[].params` (eşleşen ajan kimliği) anahtar bazında geçersiz kılar. Ayrıntılar için bkz. [Prompt Caching](/tr/reference/prompt-caching). -- `embeddedHarness`: varsayılan düşük düzey embedded ajan çalışma zamanı ilkesi. Kayıtlı eklenti harness'lerinin desteklenen modelleri talep etmesine izin vermek için `runtime: "auto"`, yerleşik PI harness'ini zorlamak için `runtime: "pi"` veya `runtime: "codex"` gibi kayıtlı bir harness kimliği kullanın. Otomatik PI geri dönüşünü devre dışı bırakmak için `fallback: "none"` ayarlayın. -- Bu alanları değiştiren yapılandırma yazarları (örneğin `/models set`, `/models set-image` ve yedek ekle/kaldır komutları), kanonik nesne biçimini kaydeder ve mümkün olduğunda mevcut yedek listelerini korur. -- `maxConcurrent`: oturumlar arasında aynı anda çalışan en fazla paralel ajan sayısıdır (her oturum yine serileştirilir). Varsayılan: 4. +- `model.primary`: `provider/model` biçimi (ör. `openai/gpt-5.4`). Sağlayıcıyı atlarsanız OpenClaw önce bir takma adı, sonra bu tam model kimliği için benzersiz yapılandırılmış sağlayıcı eşleşmesini dener ve ancak bundan sonra yapılandırılmış varsayılan sağlayıcıya geri döner (eski uyumluluk davranışı, bu yüzden açık `provider/model` tercih edin). Bu sağlayıcı artık yapılandırılmış varsayılan modeli sunmuyorsa, OpenClaw eski ve kaldırılmış bir sağlayıcı varsayılanını göstermeye devam etmek yerine ilk yapılandırılmış sağlayıcı/modele geri döner. +- `models`: `/model` için yapılandırılmış model kataloğu ve izin listesi. Her girdi `alias` (kısayol) ve `params` (sağlayıcıya özgü; örneğin `temperature`, `maxTokens`, `cacheRetention`, `context1m`) içerebilir. +- `params`: tüm modellere uygulanan genel varsayılan sağlayıcı parametreleri. `agents.defaults.params` altında ayarlanır (ör. `{ cacheRetention: "long" }`). +- `params` birleştirme önceliği (yapılandırma): `agents.defaults.params` (genel taban), `agents.defaults.models["provider/model"].params` (model başına) tarafından geçersiz kılınır, ardından `agents.list[].params` (eşleşen ajan kimliği) anahtar bazında geçersiz kılar. Ayrıntılar için bkz. [Prompt Caching](/tr/reference/prompt-caching). +- `embeddedHarness`: varsayılan alt düzey gömülü ajan çalışma zamanı ilkesi. Kayıtlı eklenti harness'lerinin desteklenen modelleri sahiplenmesine izin vermek için `runtime: "auto"`, yerleşik PI harness'ini zorlamak için `runtime: "pi"` veya `runtime: "codex"` gibi kayıtlı bir harness kimliği kullanın. Otomatik PI yedeğini devre dışı bırakmak için `fallback: "none"` ayarlayın. +- Bu alanları değiştiren yapılandırma yazarları (örneğin `/models set`, `/models set-image` ve fallback ekle/kaldır komutları), standart nesne biçimini kaydeder ve mümkün olduğunda mevcut fallback listelerini korur. +- `maxConcurrent`: oturumlar genelinde azami paralel ajan çalıştırması (her oturum yine de serileştirilir). Varsayılan: 4. ### `agents.defaults.embeddedHarness` -`embeddedHarness`, embedded ajan turlarını hangi düşük düzey yürütücünün çalıştıracağını denetler. -Çoğu dağıtım varsayılan `{ runtime: "auto", fallback: "pi" }` ayarını korumalıdır. -Bundled Codex app-server harness gibi güvenilir bir eklenti yerel bir harness sağladığında bunu kullanın. +`embeddedHarness`, gömülü ajan turlarını hangi alt düzey yürütücünün çalıştıracağını denetler. +Çoğu dağıtım varsayılan `{ runtime: "auto", fallback: "pi" }` değerini korumalıdır. +Paketlenmiş Codex app-server harness'i gibi güvenilir bir eklenti yerel bir harness sağladığında bunu kullanın. ```json5 { @@ -1134,34 +1127,34 @@ Bundled Codex app-server harness gibi güvenilir bir eklenti yerel bir harness s } ``` -- `runtime`: `"auto"`, `"pi"` veya kayıtlı bir eklenti harness kimliği. Bundled Codex eklentisi `codex` kaydeder. -- `fallback`: `"pi"` veya `"none"`. `"pi"`, yerleşik PI harness'ini uyumluluk yedeği olarak korur. `"none"`, eksik veya desteklenmeyen eklenti harness seçiminin sessizce PI kullanmak yerine başarısız olmasını sağlar. -- Ortam değişkeni geçersiz kılmaları: `OPENCLAW_AGENT_RUNTIME=`, `runtime` değerini geçersiz kılar; `OPENCLAW_AGENT_HARNESS_FALLBACK=none`, bu işlem için PI yedeğini devre dışı bırakır. +- `runtime`: `"auto"`, `"pi"` veya kayıtlı bir eklenti harness kimliği. Paketlenmiş Codex eklentisi `codex` değerini kaydeder. +- `fallback`: `"pi"` veya `"none"`. `"pi"`, yerleşik PI harness'ini uyumluluk yedeği olarak korur. `"none"`, eksik veya desteklenmeyen eklenti harness seçiminin PI'yi sessizce kullanmak yerine başarısız olmasını sağlar. +- Ortam geçersiz kılmaları: `OPENCLAW_AGENT_RUNTIME=`, `runtime` değerini geçersiz kılar; `OPENCLAW_AGENT_HARNESS_FALLBACK=none`, o süreç için PI yedeğini devre dışı bırakır. - Yalnızca Codex dağıtımları için `model: "codex/gpt-5.4"`, `embeddedHarness.runtime: "codex"` ve `embeddedHarness.fallback: "none"` ayarlayın. -- Bu yalnızca embedded sohbet harness'ini denetler. Medya üretimi, vision, PDF, müzik, video ve TTS yine kendi sağlayıcı/model ayarlarını kullanır. +- Bu yalnızca gömülü sohbet harness'ini denetler. Medya üretimi, vision, PDF, müzik, video ve TTS yine kendi sağlayıcı/model ayarlarını kullanır. **Yerleşik takma ad kısayolları** (yalnızca model `agents.defaults.models` içinde olduğunda uygulanır): -| Takma ad | Model | -| ------------------- | -------------------------------------- | -| `opus` | `anthropic/claude-opus-4-6` | -| `sonnet` | `anthropic/claude-sonnet-4-6` | -| `gpt` | `openai/gpt-5.4` | -| `gpt-mini` | `openai/gpt-5.4-mini` | -| `gpt-nano` | `openai/gpt-5.4-nano` | -| `gemini` | `google/gemini-3.1-pro-preview` | -| `gemini-flash` | `google/gemini-3-flash-preview` | -| `gemini-flash-lite` | `google/gemini-3.1-flash-lite-preview` | +| Takma ad | Model | +| ------------------ | -------------------------------------- | +| `opus` | `anthropic/claude-opus-4-6` | +| `sonnet` | `anthropic/claude-sonnet-4-6` | +| `gpt` | `openai/gpt-5.4` | +| `gpt-mini` | `openai/gpt-5.4-mini` | +| `gpt-nano` | `openai/gpt-5.4-nano` | +| `gemini` | `google/gemini-3.1-pro-preview` | +| `gemini-flash` | `google/gemini-3-flash-preview` | +| `gemini-flash-lite`| `google/gemini-3.1-flash-lite-preview` | -Yapılandırdığınız takma adlar her zaman varsayılanların önüne geçer. +Yapılandırdığınız takma adlar her zaman varsayılanlardan önce gelir. -Z.AI GLM-4.x modelleri, `--thinking off` ayarlamadığınız veya `agents.defaults.models["zai/"].params.thinking` değerini kendiniz tanımlamadığınız sürece düşünme modunu otomatik etkinleştirir. +Z.AI GLM-4.x modelleri, `--thinking off` ayarlamazsanız veya `agents.defaults.models["zai/"].params.thinking` değerini kendiniz tanımlamazsanız otomatik olarak thinking modunu etkinleştirir. Z.AI modelleri, araç çağrısı akışı için varsayılan olarak `tool_stream` etkinleştirir. Devre dışı bırakmak için `agents.defaults.models["zai/"].params.tool_stream` değerini `false` yapın. -Anthropic Claude 4.6 modelleri, açık bir düşünme düzeyi ayarlanmadığında varsayılan olarak `adaptive` düşünme kullanır. +Anthropic Claude 4.6 modelleri, açık bir thinking düzeyi ayarlanmadığında varsayılan olarak `adaptive` thinking kullanır. ### `agents.defaults.cliBackends` -Yalnızca metin kullanan yedek çalıştırmalar için isteğe bağlı CLI arka uçları (araç çağrısı yok). API sağlayıcıları başarısız olduğunda yedek olarak kullanışlıdır. +Salt metin yedek çalıştırmaları için isteğe bağlı CLI arka uçlarıdır (araç çağrısı yok). API sağlayıcıları başarısız olduğunda yedek olarak kullanışlıdır. ```json5 { @@ -1189,19 +1182,19 @@ Yalnızca metin kullanan yedek çalıştırmalar için isteğe bağlı CLI arka } ``` -- CLI arka uçları öncelikle metin odaklıdır; araçlar her zaman devre dışıdır. +- CLI arka uçları öncelikle metin içindir; araçlar her zaman devre dışıdır. - `sessionArg` ayarlandığında oturumlar desteklenir. - `imageArg` dosya yollarını kabul ettiğinde görsel geçişi desteklenir. ### `agents.defaults.systemPromptOverride` -OpenClaw tarafından oluşturulan sistem isteminin tamamını sabit bir dizeyle değiştirin. Varsayılan düzeyde (`agents.defaults.systemPromptOverride`) veya ajan başına (`agents.list[].systemPromptOverride`) ayarlayın. Ajan başına değerler önceliklidir; boş veya yalnızca boşluk içeren bir değer yok sayılır. Denetimli istem deneyleri için kullanışlıdır. +OpenClaw tarafından oluşturulan sistem isteminin tamamını sabit bir dizeyle değiştirin. Varsayılan düzeyde (`agents.defaults.systemPromptOverride`) veya ajan başına (`agents.list[].systemPromptOverride`) ayarlanır. Ajan başına değerler önceliklidir; boş veya yalnızca boşluk içeren değer yok sayılır. Kontrollü istem deneyleri için kullanışlıdır. ```json5 { agents: { defaults: { - systemPromptOverride: "Yardımsever bir assistantsın.", + systemPromptOverride: "You are a helpful assistant.", }, }, } @@ -1219,14 +1212,14 @@ Periyodik heartbeat çalıştırmaları. every: "30m", // 0m devre dışı bırakır model: "openai/gpt-5.4-mini", includeReasoning: false, - includeSystemPromptSection: true, // varsayılan: true; false, sistem istemindeki Heartbeat bölümünü çıkarır - lightContext: false, // varsayılan: false; true yalnızca workspace bootstrap dosyalarından HEARTBEAT.md dosyasını tutar - isolatedSession: false, // varsayılan: false; true her heartbeat'i yeni bir oturumda çalıştırır (konuşma geçmişi yok) + includeSystemPromptSection: true, // varsayılan: true; false, sistem isteminden Heartbeat bölümünü çıkarır + lightContext: false, // varsayılan: false; true, çalışma alanı bootstrap dosyalarından yalnızca HEARTBEAT.md dosyasını tutar + isolatedSession: false, // varsayılan: false; true, her heartbeat'i yeni bir oturumda çalıştırır (konuşma geçmişi yok) session: "main", to: "+15555550123", directPolicy: "allow", // allow (varsayılan) | block target: "none", // varsayılan: none | seçenekler: last | whatsapp | telegram | discord | ... - prompt: "Varsa HEARTBEAT.md dosyasını oku...", + prompt: "Read HEARTBEAT.md if it exists...", ackMaxChars: 300, suppressToolErrorWarnings: false, timeoutSeconds: 45, @@ -1236,14 +1229,14 @@ Periyodik heartbeat çalıştırmaları. } ``` -- `every`: süre dizesi (ms/s/m/h). Varsayılan: `30m` (API anahtarı kimlik doğrulaması) veya `1h` (OAuth kimlik doğrulaması). Devre dışı bırakmak için `0m` ayarlayın. -- `includeSystemPromptSection`: false olduğunda, sistem istemindeki Heartbeat bölümünü çıkarır ve `HEARTBEAT.md` dosyasının bootstrap bağlamına eklenmesini atlar. Varsayılan: `true`. +- `every`: süre dizesi (ms/s/m/h). Varsayılan: `30m` (API anahtarı auth) veya `1h` (OAuth auth). Devre dışı bırakmak için `0m` ayarlayın. +- `includeSystemPromptSection`: false olduğunda, sistem isteminden Heartbeat bölümünü çıkarır ve `HEARTBEAT.md` enjeksiyonunu bootstrap bağlamına atlar. Varsayılan: `true`. - `suppressToolErrorWarnings`: true olduğunda heartbeat çalıştırmaları sırasında araç hata uyarısı yüklerini bastırır. -- `timeoutSeconds`: iptal edilmeden önce bir heartbeat ajan turuna izin verilen saniye cinsinden azami süre. Ayarlamazsanız `agents.defaults.timeoutSeconds` kullanılır. -- `directPolicy`: doğrudan/DM teslim ilkesi. `allow` (varsayılan) doğrudan hedefe teslimi izin verir. `block`, doğrudan hedefe teslimi bastırır ve `reason=dm-blocked` üretir. -- `lightContext`: true olduğunda heartbeat çalıştırmaları hafif bootstrap bağlamı kullanır ve workspace bootstrap dosyalarından yalnızca `HEARTBEAT.md` dosyasını tutar. -- `isolatedSession`: true olduğunda her heartbeat, önceki konuşma geçmişi olmayan yeni bir oturumda çalışır. Cron `sessionTarget: "isolated"` ile aynı yalıtım deseni. Heartbeat başına token maliyetini yaklaşık 100K'den yaklaşık 2-5K token'a düşürür. -- Ajan başına: `agents.list[].heartbeat` ayarlayın. Herhangi bir ajan `heartbeat` tanımlarsa heartbeat'leri **yalnızca o ajanlar** çalıştırır. +- `timeoutSeconds`: iptal edilmeden önce bir heartbeat ajan turu için izin verilen azami süre (saniye). Ayarlamazsanız `agents.defaults.timeoutSeconds` kullanılır. +- `directPolicy`: doğrudan/DM teslim ilkesi. `allow` (varsayılan) doğrudan hedef teslimine izin verir. `block`, doğrudan hedef teslimini bastırır ve `reason=dm-blocked` üretir. +- `lightContext`: true olduğunda heartbeat çalıştırmaları hafif bootstrap bağlamı kullanır ve çalışma alanı bootstrap dosyalarından yalnızca `HEARTBEAT.md` dosyasını tutar. +- `isolatedSession`: true olduğunda her heartbeat, önceki konuşma geçmişi olmayan yeni bir oturumda çalışır. Cron `sessionTarget: "isolated"` ile aynı yalıtım düzeni. Heartbeat başına token maliyetini yaklaşık 100K'den yaklaşık 2-5K token'a düşürür. +- Ajan başına: `agents.list[].heartbeat` ayarlayın. Herhangi bir ajan `heartbeat` tanımlarsa heartbeat yalnızca **o ajanlar** için çalışır. - Heartbeat'ler tam ajan turları çalıştırır — daha kısa aralıklar daha fazla token harcar. ### `agents.defaults.compaction` @@ -1254,19 +1247,19 @@ Periyodik heartbeat çalıştırmaları. defaults: { compaction: { mode: "safeguard", // default | safeguard - provider: "my-provider", // kayıtlı bir compaction provider eklentisinin kimliği (isteğe bağlı) + provider: "my-provider", // kayıtlı bir compaction sağlayıcı eklentisinin kimliği (isteğe bağlı) timeoutSeconds: 900, reserveTokensFloor: 24000, identifierPolicy: "strict", // strict | off | custom - identifierInstructions: "Dağıtım kimliklerini, bilet kimliklerini ve host:port çiftlerini tam olarak koruyun.", // identifierPolicy=custom olduğunda kullanılır - postCompactionSections: ["Session Startup", "Red Lines"], // [] yeniden eklemeyi devre dışı bırakır + identifierInstructions: "Preserve deployment IDs, ticket IDs, and host:port pairs exactly.", // identifierPolicy=custom olduğunda kullanılır + postCompactionSections: ["Session Startup", "Red Lines"], // [] yeniden enjeksiyonu devre dışı bırakır model: "openrouter/anthropic/claude-sonnet-4-6", // yalnızca compaction için isteğe bağlı model geçersiz kılması - notifyUser: true, // compaction başladığında kısa bir bildirim gönder (varsayılan: false) + notifyUser: true, // compaction başladığında kullanıcıya kısa bir bildirim gönder (varsayılan: false) memoryFlush: { enabled: true, softThresholdTokens: 6000, - systemPrompt: "Oturum compaction'a yaklaşıyor. Kalıcı anıları şimdi kaydedin.", - prompt: "Kalıcı notları memory/YYYY-MM-DD.md dosyasına yazın; kaydedilecek bir şey yoksa tam olarak sessiz NO_REPLY token'ı ile yanıt verin.", + systemPrompt: "Session nearing compaction. Store durable memories now.", + prompt: "Write any lasting notes to memory/YYYY-MM-DD.md; reply with the exact silent token NO_REPLY if nothing to store.", }, }, }, @@ -1275,18 +1268,18 @@ Periyodik heartbeat çalıştırmaları. ``` - `mode`: `default` veya `safeguard` (uzun geçmişler için parçalı özetleme). Bkz. [Compaction](/tr/concepts/compaction). -- `provider`: kayıtlı bir compaction provider eklentisinin kimliği. Ayarlandığında, yerleşik LLM özetleme yerine sağlayıcının `summarize()` işlevi çağrılır. Başarısızlıkta yerleşiğe geri döner. Bir sağlayıcı ayarlamak `mode: "safeguard"` kullanımını zorunlu kılar. Bkz. [Compaction](/tr/concepts/compaction). -- `timeoutSeconds`: OpenClaw'ın iptal etmeden önce tek bir compaction işlemine izin verdiği azami saniye. Varsayılan: `900`. -- `identifierPolicy`: `strict` (varsayılan), `off` veya `custom`. `strict`, compaction özetleme sırasında yerleşik opak tanımlayıcı koruma yönergesini başa ekler. +- `provider`: kayıtlı bir compaction sağlayıcı eklentisinin kimliği. Ayarlandığında, yerleşik LLM özetlemesi yerine sağlayıcının `summarize()` yöntemi çağrılır. Başarısızlıkta yerleşik davranışa geri döner. Bir sağlayıcı ayarlamak `mode: "safeguard"` değerini zorunlu kılar. Bkz. [Compaction](/tr/concepts/compaction). +- `timeoutSeconds`: OpenClaw'un iptal etmeden önce tek bir compaction işlemi için izin verdiği azami saniye sayısı. Varsayılan: `900`. +- `identifierPolicy`: `strict` (varsayılan), `off` veya `custom`. `strict`, compaction özetlemesi sırasında yerleşik opak tanımlayıcı koruma yönergelerini başa ekler. - `identifierInstructions`: `identifierPolicy=custom` olduğunda kullanılan isteğe bağlı özel tanımlayıcı koruma metni. -- `postCompactionSections`: compaction sonrasında yeniden eklenecek isteğe bağlı AGENTS.md H2/H3 bölüm adları. Varsayılan `["Session Startup", "Red Lines"]`; yeniden eklemeyi devre dışı bırakmak için `[]` ayarlayın. Ayarlanmadığında veya açıkça bu varsayılan çifte ayarlandığında, eski `Every Session`/`Safety` başlıkları da eski sürüm yedeği olarak kabul edilir. -- `model`: yalnızca compaction özetleme için isteğe bağlı `provider/model-id` geçersiz kılması. Ana oturum bir modeli kullanırken compaction özetlerinin başka bir modelde çalışmasını istediğinizde bunu kullanın; ayarlanmadığında compaction, oturumun birincil modelini kullanır. -- `notifyUser`: `true` olduğunda, compaction başladığında kullanıcıya kısa bir bildirim gönderir (örneğin, "Bağlam sıkıştırılıyor..."). Compaction'ı sessiz tutmak için varsayılan olarak devre dışıdır. -- `memoryFlush`: kalıcı anıları depolamak için otomatik compaction öncesinde sessiz agentic tur. Workspace salt okunursa atlanır. +- `postCompactionSections`: compaction sonrasında yeniden enjekte edilecek isteğe bağlı AGENTS.md H2/H3 bölüm adları. Varsayılan olarak `["Session Startup", "Red Lines"]`; yeniden enjeksiyonu devre dışı bırakmak için `[]` ayarlayın. Ayarlanmamışsa veya açıkça bu varsayılan çift olarak ayarlanmışsa, eski `Every Session`/`Safety` başlıkları da eski uyumluluk için yedek olarak kabul edilir. +- `model`: yalnızca compaction özetlemesi için isteğe bağlı `provider/model-id` geçersiz kılması. Ana oturum bir modeli kullanmaya devam ederken compaction özetleri başka bir modelde çalışsın istiyorsanız bunu kullanın; ayarlanmadığında compaction oturumun birincil modelini kullanır. +- `notifyUser`: `true` olduğunda, compaction başladığında kullanıcıya kısa bir bildirim gönderir (örneğin, "Compacting context..."). Compaction'ın sessiz kalması için varsayılan olarak devre dışıdır. +- `memoryFlush`: dayanıklı anıları saklamak için otomatik compaction öncesinde sessiz ajan turu. Çalışma alanı salt okunursa atlanır. ### `agents.defaults.contextPruning` -LLM'ye göndermeden önce bellek içi bağlamdan **eski araç sonuçlarını** budar. Diskteki oturum geçmişini **değiştirmez**. +LLM'e göndermeden önce bellek içi bağlamdan **eski araç sonuçlarını** budar. Diskteki oturum geçmişini **değiştirmez**. ```json5 { @@ -1300,7 +1293,7 @@ LLM'ye göndermeden önce bellek içi bağlamdan **eski araç sonuçlarını** b hardClearRatio: 0.5, minPrunableToolChars: 50000, softTrim: { maxChars: 4000, headChars: 1500, tailChars: 1500 }, - hardClear: { enabled: true, placeholder: "[Eski araç sonucu içeriği temizlendi]" }, + hardClear: { enabled: true, placeholder: "[Old tool result content cleared]" }, tools: { deny: ["browser", "canvas"] }, }, }, @@ -1308,21 +1301,21 @@ LLM'ye göndermeden önce bellek içi bağlamdan **eski araç sonuçlarını** b } ``` - + - `mode: "cache-ttl"` budama geçişlerini etkinleştirir. -- `ttl`, budamanın ne sıklıkla yeniden çalışabileceğini denetler (son önbellek temasından sonra). -- Budama, gerekirse önce büyük araç sonuçlarını yumuşak biçimde kırpar, ardından eski araç sonuçlarını tamamen temizler. +- `ttl`, budamanın ne sıklıkla yeniden çalışabileceğini denetler (son önbellek dokunuşundan sonra). +- Budama, önce aşırı büyük araç sonuçlarını yumuşak şekilde kırpar, sonra gerekirse daha eski araç sonuçlarını tamamen temizler. -**Yumuşak kırpma**, başı + sonu korur ve ortaya `...` ekler. +**Soft-trim**, başlangıcı + sonu korur ve ortaya `...` ekler. -**Tam temizleme**, araç sonucunun tamamını yer tutucuyla değiştirir. +**Hard-clear**, tüm araç sonucunu yer tutucuyla değiştirir. Notlar: - Görsel blokları asla kırpılmaz/temizlenmez. - Oranlar tam token sayıları değil, karakter tabanlıdır (yaklaşık). -- `keepLastAssistants` değerinden daha az assistant mesajı varsa budama atlanır. +- `keepLastAssistants` değerinden daha az asistan mesajı varsa budama atlanır. @@ -1344,9 +1337,9 @@ Davranış ayrıntıları için bkz. [Session Pruning](/tr/concepts/session-prun } ``` -- Telegram dışındaki kanallar, blok yanıtlarını etkinleştirmek için açık `*.blockStreaming: true` gerektirir. -- Kanal geçersiz kılmaları: `channels..blockStreamingCoalesce` (ve hesap başına varyantları). Signal/Slack/Discord/Google Chat için varsayılan `minChars: 1500`. -- `humanDelay`: blok yanıtlar arasındaki rastgele duraklama. `natural` = 800–2500 ms. Ajan başına geçersiz kılma: `agents.list[].humanDelay`. +- Telegram dışındaki kanallarda blok yanıtlarını etkinleştirmek için açık `*.blockStreaming: true` gerekir. +- Kanal geçersiz kılmaları: `channels..blockStreamingCoalesce` (ve hesap başına varyantları). Signal/Slack/Discord/Google Chat varsayılanı `minChars: 1500` kullanır. +- `humanDelay`: blok yanıtları arasında rastgele duraklama. `natural` = 800–2500 ms. Ajan başına geçersiz kılma: `agents.list[].humanDelay`. Davranış + parçalama ayrıntıları için bkz. [Streaming](/tr/concepts/streaming). @@ -1372,7 +1365,7 @@ Bkz. [Typing Indicators](/tr/concepts/typing-indicators). ### `agents.defaults.sandbox` -Embedded ajan için isteğe bağlı sandbox kullanımı. Tam kılavuz için bkz. [Sandboxing](/tr/gateway/sandboxing). +Gömülü ajan için isteğe bağlı sandbox kullanımı. Tam kılavuz için bkz. [Sandboxing](/tr/gateway/sandboxing). ```json5 { @@ -1418,7 +1411,7 @@ Embedded ajan için isteğe bağlı sandbox kullanımı. Tam kılavuz için bkz. identityFile: "~/.ssh/id_ed25519", certificateFile: "~/.ssh/id_ed25519-cert.pub", knownHostsFile: "~/.ssh/known_hosts", - // SecretRef / satır içi içerik de desteklenir: + // SecretRef / satır içi içerikler de desteklenir: // identityData: { source: "env", provider: "default", id: "SSH_IDENTITY" }, // certificateData: { source: "env", provider: "default", id: "SSH_CERTIFICATE" }, // knownHostsData: { source: "env", provider: "default", id: "SSH_KNOWN_HOSTS" }, @@ -1475,44 +1468,44 @@ Embedded ajan için isteğe bağlı sandbox kullanımı. Tam kılavuz için bkz. - `ssh`: genel SSH destekli uzak çalışma zamanı - `openshell`: OpenShell çalışma zamanı -`backend: "openshell"` seçildiğinde çalışma zamanına özel ayarlar +`backend: "openshell"` seçildiğinde, çalışma zamanına özgü ayarlar `plugins.entries.openshell.config` altına taşınır. **SSH arka uç yapılandırması:** - `target`: `user@host[:port]` biçiminde SSH hedefi - `command`: SSH istemci komutu (varsayılan: `ssh`) -- `workspaceRoot`: kapsam başına workspace'ler için kullanılan mutlak uzak kök +- `workspaceRoot`: kapsam başına çalışma alanları için kullanılan mutlak uzak kök - `identityFile` / `certificateFile` / `knownHostsFile`: OpenSSH'ye geçirilen mevcut yerel dosyalar -- `identityData` / `certificateData` / `knownHostsData`: OpenClaw'ın çalışma zamanında geçici dosyalara dönüştürdüğü satır içi içerikler veya SecretRef'ler -- `strictHostKeyChecking` / `updateHostKeys`: OpenSSH host-key ilkesi ayarları +- `identityData` / `certificateData` / `knownHostsData`: çalışma zamanında OpenClaw'un geçici dosyalara dönüştürdüğü satır içi içerikler veya SecretRef'ler +- `strictHostKeyChecking` / `updateHostKeys`: OpenSSH ana makine anahtarı ilkesi ayarları **SSH kimlik doğrulama önceliği:** -- `identityData`, `identityFile` yerine geçer -- `certificateData`, `certificateFile` yerine geçer -- `knownHostsData`, `knownHostsFile` yerine geçer -- SecretRef destekli `*Data` değerleri, sandbox oturumu başlamadan önce etkin secrets çalışma zamanı anlık görüntüsünden çözülür +- `identityData`, `identityFile` değerini geçersiz kılar +- `certificateData`, `certificateFile` değerini geçersiz kılar +- `knownHostsData`, `knownHostsFile` değerini geçersiz kılar +- SecretRef destekli `*Data` değerleri, sandbox oturumu başlamadan önce etkin gizli bilgiler çalışma zamanı anlık görüntüsünden çözülür **SSH arka uç davranışı:** -- oluşturma veya yeniden oluşturma sonrasında uzak workspace'i bir kez tohumlar -- ardından uzak SSH workspace'ini kanonik durumda tutar +- oluşturma veya yeniden oluşturma sonrasında uzak çalışma alanını bir kez tohumlar +- ardından uzak SSH çalışma alanını standart kaynak olarak tutar - `exec`, dosya araçları ve medya yollarını SSH üzerinden yönlendirir - uzak değişiklikleri otomatik olarak ana makineye geri eşitlemez -- sandbox browser kapsayıcılarını desteklemez +- sandbox tarayıcı kapsayıcılarını desteklemez -**Workspace erişimi:** +**Çalışma alanı erişimi:** -- `none`: `~/.openclaw/sandboxes` altında kapsam başına sandbox workspace -- `ro`: sandbox workspace `/workspace` altında, ajan workspace'i `/agent` altında salt okunur bağlı -- `rw`: ajan workspace'i `/workspace` altında okuma/yazma bağlı +- `none`: `~/.openclaw/sandboxes` altında kapsam başına sandbox çalışma alanı +- `ro`: `/workspace` konumunda sandbox çalışma alanı, `/agent` konumunda salt okunur bağlanmış ajan çalışma alanı +- `rw`: ajan çalışma alanı `/workspace` konumuna okuma/yazma olarak bağlanır **Kapsam:** -- `session`: oturum başına kapsayıcı + workspace -- `agent`: ajan başına bir kapsayıcı + workspace (varsayılan) -- `shared`: paylaşılan kapsayıcı ve workspace (oturumlar arası yalıtım yok) +- `session`: oturum başına kapsayıcı + çalışma alanı +- `agent`: ajan başına bir kapsayıcı + çalışma alanı (varsayılan) +- `shared`: paylaşılan kapsayıcı ve çalışma alanı (oturumlar arası yalıtım yok) **OpenShell eklenti yapılandırması:** @@ -1542,32 +1535,32 @@ Embedded ajan için isteğe bağlı sandbox kullanımı. Tam kılavuz için bkz. **OpenShell modu:** -- `mirror`: exec öncesinde uzağı yerelden tohumla, exec sonrasında geri eşitle; yerel workspace kanonik kalır -- `remote`: sandbox oluşturulduğunda uzağı bir kez tohumla, ardından uzak workspace'i kanonik tut +- `mirror`: `exec` öncesinde uzağı yerelden tohumlar, `exec` sonrasında geri eşitler; yerel çalışma alanı standart kaynak olarak kalır +- `remote`: sandbox oluşturulduğunda uzağı bir kez tohumlar, ardından uzak çalışma alanını standart kaynak olarak tutar -`remote` modunda, tohumlama adımından sonra ana makinede OpenClaw dışında yapılan yerel düzenlemeler sandbox'a otomatik olarak eşitlenmez. -Taşıma SSH ile OpenShell sandbox içine yapılır, ancak sandbox yaşam döngüsü ve isteğe bağlı mirror eşitleme eklenti tarafından yönetilir. +`remote` modunda, OpenClaw dışında ana makinede yapılan yerel düzenlemeler tohumlama adımından sonra otomatik olarak sandbox'a eşitlenmez. +Taşıma katmanı OpenShell sandbox'ına SSH'dir, ancak sandbox yaşam döngüsüne ve isteğe bağlı mirror eşitlemeye eklenti sahip olur. **`setupCommand`**, kapsayıcı oluşturulduktan sonra bir kez çalışır (`sh -lc` ile). Ağ çıkışı, yazılabilir kök ve root kullanıcı gerekir. -**Kapsayıcılar varsayılan olarak `network: "none"` kullanır** — ajan dış erişime ihtiyaç duyuyorsa `"bridge"` (veya özel bir bridge ağı) ayarlayın. -`"host"` engellenir. Varsayılan olarak `"container:"` de engellenir; yalnızca -`sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true` değerini açıkça ayarlarsanız izin verilir (acil durum modu). +**Kapsayıcılar varsayılan olarak `network: "none"` kullanır** — ajanın dış erişime ihtiyacı varsa `"bridge"` (veya özel bir bridge ağı) olarak ayarlayın. +`"host"` engellenir. `"container:"` varsayılan olarak engellenir; ancak açıkça +`sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true` ayarlarsanız izin verilir (acil durum). -**Gelen ek dosyalar**, etkin workspace içindeki `media/inbound/*` altında aşamalandırılır. +**Gelen ekler**, etkin çalışma alanındaki `media/inbound/*` içine hazırlanır. -**`docker.binds`**, ek ana makine dizinlerini bağlar; genel ve ajan başına bind değerleri birleştirilir. +**`docker.binds`**, ek ana makine dizinlerini bağlar; genel ve ajan başına bağlar birleştirilir. -**Sandboxed browser** (`sandbox.browser.enabled`): bir kapsayıcı içinde Chromium + CDP. noVNC URL'si sistem istemine eklenir. `openclaw.json` içinde `browser.enabled` gerektirmez. -noVNC gözlemci erişimi varsayılan olarak VNC kimlik doğrulaması kullanır ve OpenClaw, paylaşılan URL'de parolayı göstermek yerine kısa ömürlü bir token URL üretir. +**Sandbox tarayıcısı** (`sandbox.browser.enabled`): kapsayıcı içinde Chromium + CDP. noVNC URL'si sistem istemine enjekte edilir. `openclaw.json` içinde `browser.enabled` gerektirmez. +noVNC gözlemci erişimi varsayılan olarak VNC kimlik doğrulamasını kullanır ve OpenClaw, paylaşılan URL içinde parolayı açığa çıkarmak yerine kısa ömürlü bir token URL'si üretir. - `allowHostControl: false` (varsayılan), sandbox'lı oturumların ana makine tarayıcısını hedeflemesini engeller. - `network` varsayılan olarak `openclaw-sandbox-browser` kullanır (özel bridge ağı). Yalnızca açıkça genel bridge bağlantısı istediğinizde `bridge` olarak ayarlayın. - `cdpSourceRange`, kapsayıcı kenarında CDP girişini isteğe bağlı olarak bir CIDR aralığıyla sınırlar (örneğin `172.21.0.1/32`). - `sandbox.browser.binds`, ek ana makine dizinlerini yalnızca sandbox tarayıcı kapsayıcısına bağlar. Ayarlandığında (`[]` dahil), tarayıcı kapsayıcısı için `docker.binds` değerinin yerini alır. -- Başlatma varsayılanları `scripts/sandbox-browser-entrypoint.sh` içinde tanımlanmıştır ve kapsayıcı ana makineleri için ayarlanmıştır: +- Başlatma varsayılanları `scripts/sandbox-browser-entrypoint.sh` içinde tanımlanır ve kapsayıcı ana makineleri için ayarlanmıştır: - `--remote-debugging-address=127.0.0.1` - - `--remote-debugging-port=` + - `--remote-debugging-port=` - `--user-data-dir=${HOME}/.chrome` - `--no-first-run` - `--no-default-browser-check` @@ -1584,26 +1577,26 @@ noVNC gözlemci erişimi varsayılan olarak VNC kimlik doğrulaması kullanır v - `--metrics-recording-only` - `--disable-extensions` (varsayılan olarak etkin) - `--disable-3d-apis`, `--disable-software-rasterizer` ve `--disable-gpu` - varsayılan olarak etkindir ve WebGL/3D kullanımı gerektiriyorsa + varsayılan olarak etkindir ve WebGL/3D kullanımı bunu gerektiriyorsa `OPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0` ile devre dışı bırakılabilir. - `OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0`, iş akışınız bunlara bağlıysa uzantıları yeniden etkinleştirir. - `--renderer-process-limit=2`, `OPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=` ile değiştirilebilir; Chromium'un varsayılan süreç sınırını kullanmak için `0` ayarlayın. - - ayrıca `noSandbox` etkin olduğunda `--no-sandbox` ve `--disable-setuid-sandbox`. - - Varsayılanlar kapsayıcı görseli temel çizgisidir; kapsayıcı varsayılanlarını değiştirmek için özel + - ayrıca `noSandbox` etkinse `--no-sandbox` ve `--disable-setuid-sandbox`. + - Varsayılanlar kapsayıcı görselinin temel ayarlarıdır; kapsayıcı varsayılanlarını değiştirmek için özel bir entrypoint içeren özel bir tarayıcı görseli kullanın. Tarayıcı sandbox kullanımı ve `sandbox.docker.binds` yalnızca Docker içindir. -Görselleri oluşturun: +İmajları oluşturun: ```bash -scripts/sandbox-setup.sh # ana sandbox görseli -scripts/sandbox-browser-setup.sh # isteğe bağlı tarayıcı görseli +scripts/sandbox-setup.sh # ana sandbox imajı +scripts/sandbox-browser-setup.sh # isteğe bağlı tarayıcı imajı ``` ### `agents.list` (ajan başına geçersiz kılmalar) @@ -1615,19 +1608,19 @@ scripts/sandbox-browser-setup.sh # isteğe bağlı tarayıcı görseli { id: "main", default: true, - name: "Ana Ajan", + name: "Main Agent", workspace: "~/.openclaw/workspace", agentDir: "~/.openclaw/agents/main/agent", model: "anthropic/claude-opus-4-6", // veya { primary, fallbacks } - thinkingDefault: "high", // ajan başına düşünme düzeyi geçersiz kılması - reasoningDefault: "on", // ajan başına akıl yürütme görünürlüğü geçersiz kılması - fastModeDefault: false, // ajan başına hızlı mod geçersiz kılması + thinkingDefault: "high", // ajan başına thinking düzeyi geçersiz kılması + reasoningDefault: "on", // ajan başına reasoning görünürlüğü geçersiz kılması + fastModeDefault: false, // ajan başına fast mode geçersiz kılması embeddedHarness: { runtime: "auto", fallback: "pi" }, params: { cacheRetention: "none" }, // eşleşen defaults.models params değerlerini anahtar bazında geçersiz kılar - skills: ["docs-search"], // ayarlandığında agents.defaults.skills yerine geçer + skills: ["docs-search"], // ayarlandığında agents.defaults.skills değerinin yerine geçer identity: { name: "Samantha", - theme: "yardımsever tembel hayvan", + theme: "helpful sloth", emoji: "🦥", avatar: "avatars/samantha.png", }, @@ -1655,27 +1648,27 @@ scripts/sandbox-browser-setup.sh # isteğe bağlı tarayıcı görseli } ``` -- `id`: kararlı ajan kimliği (zorunlu). -- `default`: birden fazla ayarlandığında ilki kazanır (uyarı kaydedilir). Hiçbiri ayarlanmazsa ilk liste girdisi varsayılandır. -- `model`: dize biçimi yalnızca `primary` değerini geçersiz kılar; nesne biçimi `{ primary, fallbacks }` ikisini de geçersiz kılar (`[]`, genel fallbacks değerlerini devre dışı bırakır). Yalnızca `primary` değerini geçersiz kılan cron işleri, `fallbacks: []` ayarlamadığınız sürece varsayılan fallbacks değerlerini yine devralır. -- `params`: `agents.defaults.models` içindeki seçili model girdisinin üzerine birleştirilen ajan başına akış parametreleri. Bunu, tüm model kataloğunu çoğaltmadan `cacheRetention`, `temperature` veya `maxTokens` gibi ajana özel geçersiz kılmalar için kullanın. -- `skills`: isteğe bağlı ajan başına skill izin listesi. Belirtilmezse ajan, ayarlanmışsa `agents.defaults.skills` değerini devralır; açık bir liste varsayılanlarla birleşmek yerine onların yerini alır ve `[]` hiç skill olmadığı anlamına gelir. -- `thinkingDefault`: isteğe bağlı ajan başına varsayılan düşünme düzeyi (`off | minimal | low | medium | high | xhigh | adaptive`). Mesaj başına veya oturum geçersiz kılması ayarlı olmadığında bu ajan için `agents.defaults.thinkingDefault` değerini geçersiz kılar. -- `reasoningDefault`: isteğe bağlı ajan başına varsayılan akıl yürütme görünürlüğü (`on | off | stream`). Mesaj başına veya oturum akıl yürütme geçersiz kılması ayarlı olmadığında uygulanır. -- `fastModeDefault`: isteğe bağlı ajan başına hızlı mod varsayılanı (`true | false`). Mesaj başına veya oturum hızlı mod geçersiz kılması ayarlı olmadığında uygulanır. -- `embeddedHarness`: isteğe bağlı ajan başına düşük düzey harness ilkesi geçersiz kılması. Bir ajanı yalnızca Codex yaparken diğer ajanların varsayılan PI yedeğini koruması için `{ runtime: "codex", fallback: "none" }` kullanın. -- `runtime`: isteğe bağlı ajan başına çalışma zamanı tanımlayıcısı. Ajanın varsayılan olarak ACP harness oturumları kullanması gerektiğinde `runtime.acp` varsayılanları (`agent`, `backend`, `mode`, `cwd`) ile birlikte `type: "acp"` kullanın. -- `identity.avatar`: workspace'e göreli yol, `http(s)` URL'si veya `data:` URI'si. -- `identity`, varsayılanları türetir: `ackReaction`, `emoji` değerinden; `mentionPatterns`, `name`/`emoji` değerinden. +- `id`: sabit ajan kimliği (zorunlu). +- `default`: birden fazla ayarlanırsa ilki kazanır (uyarı günlüğe kaydedilir). Hiçbiri ayarlanmazsa listedeki ilk giriş varsayılan olur. +- `model`: dize biçimi yalnızca `primary` değerini geçersiz kılar; nesne biçimi `{ primary, fallbacks }` her ikisini de geçersiz kılar (`[]`, genel fallback'leri devre dışı bırakır). Yalnızca `primary` değerini geçersiz kılan cron işleri, siz `fallbacks: []` ayarlamadığınız sürece varsayılan fallback'leri yine de devralır. +- `params`: `agents.defaults.models` içindeki seçili model girdisinin üzerine birleştirilen ajan başına akış parametreleri. Tüm model kataloğunu çoğaltmadan `cacheRetention`, `temperature` veya `maxTokens` gibi ajana özgü geçersiz kılmalar için bunu kullanın. +- `skills`: isteğe bağlı ajan başına skill izin listesi. Atlanırsa ajan, ayarlıysa `agents.defaults.skills` değerini devralır; açık bir liste varsayılanlarla birleşmek yerine onların yerini alır ve `[]` skill olmadığı anlamına gelir. +- `thinkingDefault`: isteğe bağlı ajan başına varsayılan thinking düzeyi (`off | minimal | low | medium | high | xhigh | adaptive`). Mesaj başına veya oturum düzeyinde bir geçersiz kılma ayarlanmadığında bu ajan için `agents.defaults.thinkingDefault` değerini geçersiz kılar. +- `reasoningDefault`: isteğe bağlı ajan başına varsayılan reasoning görünürlüğü (`on | off | stream`). Mesaj başına veya oturum düzeyinde bir reasoning geçersiz kılması ayarlanmadığında uygulanır. +- `fastModeDefault`: isteğe bağlı ajan başına fast mode varsayılanı (`true | false`). Mesaj başına veya oturum düzeyinde bir fast-mode geçersiz kılması ayarlanmadığında uygulanır. +- `embeddedHarness`: isteğe bağlı ajan başına alt düzey harness ilkesi geçersiz kılması. Bir ajanı yalnızca Codex yaparken diğer ajanların varsayılan PI fallback'ini koruması için `{ runtime: "codex", fallback: "none" }` kullanın. +- `runtime`: isteğe bağlı ajan başına çalışma zamanı tanımlayıcısı. Ajanın varsayılan olarak ACP harness oturumları kullanması gerekiyorsa `runtime.acp` varsayılanlarıyla (`agent`, `backend`, `mode`, `cwd`) birlikte `type: "acp"` kullanın. +- `identity.avatar`: çalışma alanına göreli yol, `http(s)` URL'si veya `data:` URI'si. +- `identity`, varsayılanları türetir: `ackReaction` değerini `emoji` üzerinden, `mentionPatterns` değerini `name`/`emoji` üzerinden. - `subagents.allowAgents`: `sessions_spawn` için ajan kimliği izin listesi (`["*"]` = herhangi biri; varsayılan: yalnızca aynı ajan). -- Sandbox devralma koruması: istekte bulunan oturum sandbox'lıysa `sessions_spawn`, sandbox'sız çalışacak hedefleri reddeder. -- `subagents.requireAgentId`: true olduğunda `agentId` belirtmeyen `sessions_spawn` çağrılarını engeller (açık profil seçimini zorlar; varsayılan: false). +- Sandbox devralma koruması: istekte bulunan oturum sandbox'lıysa `sessions_spawn`, sandbox olmadan çalışacak hedefleri reddeder. +- `subagents.requireAgentId`: true olduğunda `agentId` atlayan `sessions_spawn` çağrılarını engeller (açık profil seçimini zorunlu kılar; varsayılan: false). --- -## Çok ajanlı yönlendirme +## Çoklu ajan yönlendirmesi -Bir Gateway içinde birden çok yalıtılmış ajan çalıştırın. Bkz. [Multi-Agent](/tr/concepts/multi-agent). +Tek bir Gateway içinde birden fazla yalıtılmış ajan çalıştırın. Bkz. [Multi-Agent](/tr/concepts/multi-agent). ```json5 { @@ -1692,27 +1685,27 @@ Bir Gateway içinde birden çok yalıtılmış ajan çalıştırın. Bkz. [Multi } ``` -### Bağlama eşleştirme alanları +### Bağlama eşleşme alanları -- `type` (isteğe bağlı): normal yönlendirme için `route` (tip yoksa varsayılan `route` olur), kalıcı ACP konuşma bağları için `acp`. +- `type` (isteğe bağlı): normal yönlendirme için `route` (tip eksikse varsayılan `route` olur), kalıcı ACP konuşma bağları için `acp`. - `match.channel` (zorunlu) -- `match.accountId` (isteğe bağlı; `*` = herhangi bir hesap; belirtilmezse = varsayılan hesap) +- `match.accountId` (isteğe bağlı; `*` = herhangi bir hesap; atlanırsa = varsayılan hesap) - `match.peer` (isteğe bağlı; `{ kind: direct|group|channel, id }`) -- `match.guildId` / `match.teamId` (isteğe bağlı; kanala özel) +- `match.guildId` / `match.teamId` (isteğe bağlı; kanala özgü) - `acp` (isteğe bağlı; yalnızca `type: "acp"` için): `{ mode, label, cwd, backend }` -**Belirlenimci eşleşme sırası:** +**Deterministik eşleşme sırası:** 1. `match.peer` 2. `match.guildId` 3. `match.teamId` -4. `match.accountId` (tam eşleşme, peer/guild/team yok) +4. `match.accountId` (tam eşleşme, peer/guild/team olmadan) 5. `match.accountId: "*"` (kanal genelinde) 6. Varsayılan ajan Her katmanda, eşleşen ilk `bindings` girdisi kazanır. -`type: "acp"` girdileri için OpenClaw, tam konuşma kimliğine göre çözümleme yapar (`match.channel` + hesap + `match.peer.id`) ve yukarıdaki route bağlama katman sırasını kullanmaz. +`type: "acp"` girdileri için OpenClaw, tam konuşma kimliğine göre çözümler (`match.channel` + hesap + `match.peer.id`) ve yukarıdaki route bağlama katman sırasını kullanmaz. ### Ajan başına erişim profilleri @@ -1734,7 +1727,7 @@ Her katmanda, eşleşen ilk `bindings` girdisi kazanır. - + ```json5 { @@ -1835,7 +1828,7 @@ Her katmanda, eşleşen ilk `bindings` girdisi kazanır. }, resetTriggers: ["/new", "/reset"], store: "~/.openclaw/agents/{agentId}/sessions/sessions.json", - parentForkMaxTokens: 100000, // bu token sayısının üzerinde üst iş parçacığı çatallanması atlanır (0 devre dışı bırakır) + parentForkMaxTokens: 100000, // bu token sayısının üzerinde üst iş parçacığı fork'u atlanır (0 devre dışı bırakır) maintenance: { mode: "warn", // warn | enforce pruneAfter: "30d", @@ -1847,10 +1840,10 @@ Her katmanda, eşleşen ilk `bindings` girdisi kazanır. }, threadBindings: { enabled: true, - idleHours: 24, // varsayılan etkinliksizlikte otomatik odak kaldırma, saat cinsinden (`0` devre dışı bırakır) - maxAgeHours: 0, // varsayılan kesin azami yaş, saat cinsinden (`0` devre dışı bırakır) + idleHours: 24, // etkinliksizlik nedeniyle varsayılan otomatik odak kaldırma saati (`0` devre dışı bırakır) + maxAgeHours: 0, // varsayılan kesin azami yaş saati (`0` devre dışı bırakır) }, - mainKey: "main", // eski sürüm (çalışma zamanı her zaman "main" kullanır) + mainKey: "main", // eski kullanım (çalışma zamanı her zaman "main" kullanır) agentToAgent: { maxPingPongTurns: 5 }, sendPolicy: { rules: [{ action: "deny", match: { channel: "discord", chatType: "group" } }], @@ -1870,26 +1863,26 @@ Her katmanda, eşleşen ilk `bindings` girdisi kazanır. - `per-peer`: kanallar arasında gönderen kimliğine göre yalıtır. - `per-channel-peer`: kanal + gönderen başına yalıtır (çok kullanıcılı gelen kutuları için önerilir). - `per-account-channel-peer`: hesap + kanal + gönderen başına yalıtır (çok hesaplı kullanım için önerilir). -- **`identityLinks`**: kanallar arası oturum paylaşımı için kanonik kimlikleri sağlayıcı önekli peer'lara eşler. -- **`reset`**: birincil sıfırlama ilkesi. `daily`, yerel saate göre `atHour` anında sıfırlar; `idle`, `idleMinutes` sonrasında sıfırlar. Her ikisi de yapılandırıldığında, süresi önce dolan kazanır. -- **`resetByType`**: tür başına geçersiz kılmalar (`direct`, `group`, `thread`). Eski `dm`, `direct` için takma ad olarak kabul edilir. -- **`parentForkMaxTokens`**: çatallanmış bir iş parçacığı oturumu oluşturulurken izin verilen en yüksek üst oturum `totalTokens` değeri (varsayılan `100000`). +- **`identityLinks`**: kanallar arası oturum paylaşımı için standart kimlikleri sağlayıcı önekli eşlere eşler. +- **`reset`**: birincil sıfırlama ilkesi. `daily`, yerel saatte `atHour` zamanında sıfırlar; `idle`, `idleMinutes` sonrasında sıfırlar. Her ikisi de yapılandırılmışsa önce süresi dolan kazanır. +- **`resetByType`**: türe göre geçersiz kılmalar (`direct`, `group`, `thread`). Eski `dm`, `direct` için takma ad olarak kabul edilir. +- **`parentForkMaxTokens`**: çatallı bir iş parçacığı oturumu oluştururken izin verilen azami üst oturum `totalTokens` değeri (varsayılan `100000`). - Üst `totalTokens` bu değerin üzerindeyse OpenClaw, üst transcript geçmişini devralmak yerine yeni bir iş parçacığı oturumu başlatır. - - Bu korumayı devre dışı bırakmak ve üst çatallanmasına her zaman izin vermek için `0` ayarlayın. -- **`mainKey`**: eski alan. Çalışma zamanı, ana doğrudan sohbet kovası için her zaman `"main"` kullanır. -- **`agentToAgent.maxPingPongTurns`**: ajandan ajana değişimlerde ajanlar arasındaki en fazla geri yanıt turu sayısıdır (tam sayı, aralık: `0`–`5`). `0`, ping-pong zincirlemeyi devre dışı bırakır. -- **`sendPolicy`**: `channel`, `chatType` (`direct|group|channel`, eski `dm` takma adıyla), `keyPrefix` veya `rawKeyPrefix` ile eşleştirin. İlk deny kuralı kazanır. + - Bu korumayı devre dışı bırakmak ve üst çatallamaya her zaman izin vermek için `0` ayarlayın. +- **`mainKey`**: eski alan. Çalışma zamanı, ana doğrudan sohbet bölmesi için her zaman `"main"` kullanır. +- **`agentToAgent.maxPingPongTurns`**: ajandan ajana değişimlerde ajanlar arasındaki azami geri yanıt turu sayısı (tamsayı, aralık: `0`–`5`). `0`, ping-pong zincirlemeyi devre dışı bırakır. +- **`sendPolicy`**: `channel`, `chatType` (`direct|group|channel`, eski `dm` takma adıyla birlikte), `keyPrefix` veya `rawKeyPrefix` ile eşleştirir. İlk ret kazanır. - **`maintenance`**: oturum deposu temizleme + saklama denetimleri. - - `mode`: `warn` yalnızca uyarı verir; `enforce` temizlemeyi uygular. - - `pruneAfter`: eski girdiler için yaş kesme sınırı (varsayılan `30d`). - - `maxEntries`: `sessions.json` içindeki en fazla girdi sayısı (varsayılan `500`). - - `rotateBytes`: `sessions.json` bu boyutu aştığında döndürülür (varsayılan `10mb`). - - `resetArchiveRetention`: `*.reset.` transcript arşivleri için saklama süresi. Varsayılan olarak `pruneAfter` kullanılır; devre dışı bırakmak için `false` ayarlayın. - - `maxDiskBytes`: oturumlar dizini için isteğe bağlı disk bütçesi. `warn` modunda uyarı günlüğü yazar; `enforce` modunda önce en eski yapıtları/oturumları kaldırır. + - `mode`: `warn` yalnızca uyarı üretir; `enforce` temizliği uygular. + - `pruneAfter`: eski girdiler için yaş kesme noktası (varsayılan `30d`). + - `maxEntries`: `sessions.json` içindeki azami girdi sayısı (varsayılan `500`). + - `rotateBytes`: `sessions.json` bu boyutu aştığında döndürür (varsayılan `10mb`). + - `resetArchiveRetention`: `*.reset.` transcript arşivleri için saklama süresi. Varsayılan olarak `pruneAfter`; devre dışı bırakmak için `false` ayarlayın. + - `maxDiskBytes`: oturumlar dizini için isteğe bağlı disk bütçesi. `warn` modunda uyarı günlüğe kaydeder; `enforce` modunda önce en eski yapıtları/oturumları kaldırır. - `highWaterBytes`: bütçe temizliğinden sonraki isteğe bağlı hedef. Varsayılan olarak `maxDiskBytes` değerinin `%80`'idir. - **`threadBindings`**: iş parçacığına bağlı oturum özellikleri için genel varsayılanlar. - `enabled`: ana varsayılan anahtar (sağlayıcılar geçersiz kılabilir; Discord `channels.discord.threadBindings.enabled` kullanır) - - `idleHours`: saat cinsinden varsayılan etkinliksizlikte otomatik odak kaldırma (`0` devre dışı bırakır; sağlayıcılar geçersiz kılabilir) + - `idleHours`: etkinliksizlik nedeniyle otomatik odak kaldırma için saat cinsinden varsayılan süre (`0` devre dışı bırakır; sağlayıcılar geçersiz kılabilir) - `maxAgeHours`: saat cinsinden varsayılan kesin azami yaş (`0` devre dışı bırakır; sağlayıcılar geçersiz kılabilir) @@ -1930,36 +1923,36 @@ Her katmanda, eşleşen ilk `bindings` girdisi kazanır. Kanal/hesap başına geçersiz kılmalar: `channels..responsePrefix`, `channels..accounts..responsePrefix`. -Çözümleme (en özeli kazanır): hesap → kanal → genel. `""` devre dışı bırakır ve zinciri durdurur. `"auto"`, `[{identity.name}]` değerini türetir. +Çözümleme (en özel olan kazanır): hesap → kanal → genel. `""` devre dışı bırakır ve zincirlemeyi durdurur. `"auto"`, `[{identity.name}]` üretir. **Şablon değişkenleri:** -| Değişken | Açıklama | Örnek | -| ---------------- | --------------------- | --------------------------- | -| `{model}` | Kısa model adı | `claude-opus-4-6` | +| Değişken | Açıklama | Örnek | +| ---------------- | --------------------- | -------------------------- | +| `{model}` | Kısa model adı | `claude-opus-4-6` | | `{modelFull}` | Tam model tanımlayıcısı | `anthropic/claude-opus-4-6` | -| `{provider}` | Sağlayıcı adı | `anthropic` | -| `{thinkingLevel}` | Geçerli düşünme düzeyi | `high`, `low`, `off` | -| `{identity.name}` | Ajan kimlik adı | (`"auto"` ile aynı) | +| `{provider}` | Sağlayıcı adı | `anthropic` | +| `{thinkingLevel}`| Geçerli thinking düzeyi | `high`, `low`, `off` | +| `{identity.name}`| Ajan kimlik adı | (`"auto"` ile aynı) | Değişkenler büyük/küçük harfe duyarsızdır. `{think}`, `{thinkingLevel}` için bir takma addır. -### Alındı tepkisi +### Ack tepkisi -- Varsayılan olarak etkin ajanın `identity.emoji` değeri kullanılır, aksi halde `"👀"`. Devre dışı bırakmak için `""` ayarlayın. +- Varsayılan olarak etkin ajanın `identity.emoji` değerini kullanır, yoksa `"👀"` kullanılır. Devre dışı bırakmak için `""` ayarlayın. - Kanal başına geçersiz kılmalar: `channels..ackReaction`, `channels..accounts..ackReaction`. - Çözümleme sırası: hesap → kanal → `messages.ackReaction` → kimlik yedeği. - Kapsam: `group-mentions` (varsayılan), `group-all`, `direct`, `all`. -- `removeAckAfterReply`, Slack, Discord ve Telegram'da yanıttan sonra alındı tepkisini kaldırır. +- `removeAckAfterReply`, Slack, Discord ve Telegram'da yanıttan sonra ack'i kaldırır. - `messages.statusReactions.enabled`, Slack, Discord ve Telegram'da yaşam döngüsü durum tepkilerini etkinleştirir. - Slack ve Discord'da ayarlanmamış olması, alındı tepkileri etkin olduğunda durum tepkilerini etkin tutar. - Telegram'da yaşam döngüsü durum tepkilerini etkinleştirmek için bunu açıkça `true` olarak ayarlayın. + Slack ve Discord'da ayarlanmamış olması, ack tepkileri etkin olduğunda durum tepkilerini etkin tutar. + Telegram'da yaşam döngüsü durum tepkilerini etkinleştirmek için bunu açıkça `true` yapın. ### Gelen debounce -Aynı gönderenden hızlı gelen yalnızca metin içeren mesajları tek bir ajan turunda toplar. Medya/ek dosyalar hemen boşaltılır. Denetim komutları debounce'u atlar. +Aynı gönderenden gelen hızlı, yalnızca metin içeren mesajları tek bir ajan turunda toplar. Medya/ekler hemen flush edilir. Kontrol komutları debounce mekanizmasını atlar. -### TTS (text-to-speech) +### TTS (metinden konuşmaya) ```json5 { @@ -2002,10 +1995,10 @@ Aynı gönderenden hızlı gelen yalnızca metin içeren mesajları tek bir ajan - `auto`, varsayılan otomatik TTS modunu denetler: `off`, `always`, `inbound` veya `tagged`. `/tts on|off` yerel tercihleri geçersiz kılabilir ve `/tts status` etkin durumu gösterir. - `summaryModel`, otomatik özetleme için `agents.defaults.model.primary` değerini geçersiz kılar. -- `modelOverrides` varsayılan olarak etkindir; `modelOverrides.allowProvider` varsayılan olarak `false` değerindedir (isteğe bağlı etkinleştirme). -- API anahtarları için yedek olarak `ELEVENLABS_API_KEY`/`XI_API_KEY` ve `OPENAI_API_KEY` kullanılır. -- `openai.baseUrl`, OpenAI TTS uç noktasını geçersiz kılar. Çözümleme sırası config, sonra `OPENAI_TTS_BASE_URL`, sonra `https://api.openai.com/v1` şeklindedir. -- `openai.baseUrl`, OpenAI dışı bir uç noktayı işaret ettiğinde OpenClaw bunu OpenAI uyumlu bir TTS sunucusu olarak değerlendirir ve model/ses doğrulamasını gevşetir. +- `modelOverrides` varsayılan olarak etkindir; `modelOverrides.allowProvider` varsayılan olarak `false` değerindedir (isteğe bağlı etkinleştirme gerekir). +- API anahtarları yedek olarak `ELEVENLABS_API_KEY`/`XI_API_KEY` ve `OPENAI_API_KEY` kullanır. +- `openai.baseUrl`, OpenAI TTS uç noktasını geçersiz kılar. Çözümleme sırası yapılandırma, ardından `OPENAI_TTS_BASE_URL`, ardından `https://api.openai.com/v1` şeklindedir. +- `openai.baseUrl`, OpenAI dışı bir uç noktayı işaret ettiğinde OpenClaw bunu OpenAI uyumlu bir TTS sunucusu olarak ele alır ve model/ses doğrulamasını gevşetir. --- @@ -2035,11 +2028,11 @@ Talk modu için varsayılanlar (macOS/iOS/Android). } ``` -- `talk.provider`, birden fazla Talk sağlayıcısı yapılandırıldığında `talk.providers` içindeki bir anahtarla eşleşmelidir. +- Birden fazla Talk sağlayıcısı yapılandırıldığında `talk.provider`, `talk.providers` içindeki bir anahtarla eşleşmelidir. - Eski düz Talk anahtarları (`talk.voiceId`, `talk.voiceAliases`, `talk.modelId`, `talk.outputFormat`, `talk.apiKey`) yalnızca uyumluluk içindir ve otomatik olarak `talk.providers.` içine taşınır. -- Ses kimlikleri için yedek olarak `ELEVENLABS_VOICE_ID` veya `SAG_VOICE_ID` kullanılır. -- `providers.*.apiKey`, düz metin dizeleri veya SecretRef nesneleri kabul eder. -- `ELEVENLABS_API_KEY` yedeği yalnızca Talk API anahtarı yapılandırılmadığında uygulanır. +- Ses kimlikleri yedek olarak `ELEVENLABS_VOICE_ID` veya `SAG_VOICE_ID` kullanır. +- `providers.*.apiKey`, düz metin dizeleri veya SecretRef nesnelerini kabul eder. +- `ELEVENLABS_API_KEY` yedeği yalnızca hiçbir Talk API anahtarı yapılandırılmadığında uygulanır. - `providers.*.voiceAliases`, Talk yönergelerinin kolay adlar kullanmasına izin verir. - `silenceTimeoutMs`, Talk modunun transcript'i göndermeden önce kullanıcı sessizliğinden sonra ne kadar bekleyeceğini denetler. Ayarlanmamışsa platform varsayılan duraklama penceresi korunur (`macOS ve Android'de 700 ms, iOS'ta 900 ms`). @@ -2051,35 +2044,35 @@ Talk modu için varsayılanlar (macOS/iOS/Android). `tools.profile`, `tools.allow`/`tools.deny` öncesinde temel bir izin listesi ayarlar: -Yerel onboarding, ayarlanmamış yeni yerel yapılandırmaları varsayılan olarak `tools.profile: "coding"` ile oluşturur (mevcut açık profiller korunur). +Yerel onboarding, ayarlanmamış yeni yerel yapılandırmalarda varsayılan olarak `tools.profile: "coding"` kullanır (mevcut açık profiller korunur). -| Profil | İçerir | -| ----------- | ----------------------------------------------------------------------------------------------------------------------------- | -| `minimal` | yalnızca `session_status` | +| Profil | İçerir | +| ----------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `minimal` | yalnızca `session_status` | | `coding` | `group:fs`, `group:runtime`, `group:web`, `group:sessions`, `group:memory`, `cron`, `image`, `image_generate`, `video_generate` | -| `messaging` | `group:messaging`, `sessions_list`, `sessions_history`, `sessions_send`, `session_status` | -| `full` | Kısıtlama yok (ayarlanmamış ile aynı) | +| `messaging` | `group:messaging`, `sessions_list`, `sessions_history`, `sessions_send`, `session_status` | +| `full` | Kısıtlama yoktur (ayarlanmamış ile aynıdır) | ### Araç grupları -| Grup | Araçlar | -| ------------------ | ------------------------------------------------------------------------------------------------------------------------ | -| `group:runtime` | `exec`, `process`, `code_execution` (`bash`, `exec` için takma ad olarak kabul edilir) | -| `group:fs` | `read`, `write`, `edit`, `apply_patch` | +| Grup | Araçlar | +| ------------------ | ---------------------------------------------------------------------------------------------------------------------- | +| `group:runtime` | `exec`, `process`, `code_execution` (`bash`, `exec` için takma ad olarak kabul edilir) | +| `group:fs` | `read`, `write`, `edit`, `apply_patch` | | `group:sessions` | `sessions_list`, `sessions_history`, `sessions_send`, `sessions_spawn`, `sessions_yield`, `subagents`, `session_status` | -| `group:memory` | `memory_search`, `memory_get` | -| `group:web` | `web_search`, `x_search`, `web_fetch` | -| `group:ui` | `browser`, `canvas` | -| `group:automation` | `cron`, `gateway` | -| `group:messaging` | `message` | -| `group:nodes` | `nodes` | -| `group:agents` | `agents_list` | -| `group:media` | `image`, `image_generate`, `video_generate`, `tts` | -| `group:openclaw` | Tüm yerleşik araçlar (sağlayıcı eklentileri hariç) | +| `group:memory` | `memory_search`, `memory_get` | +| `group:web` | `web_search`, `x_search`, `web_fetch` | +| `group:ui` | `browser`, `canvas` | +| `group:automation` | `cron`, `gateway` | +| `group:messaging` | `message` | +| `group:nodes` | `nodes` | +| `group:agents` | `agents_list` | +| `group:media` | `image`, `image_generate`, `video_generate`, `tts` | +| `group:openclaw` | Tüm yerleşik araçlar (sağlayıcı eklentileri hariç) | ### `tools.allow` / `tools.deny` -Genel araç izin/verme-denetimi ilkesi (deny kazanır). Büyük/küçük harfe duyarsızdır, `*` joker karakterlerini destekler. Docker sandbox kapalıyken bile uygulanır. +Genel araç izin/verme politikası (ret kazanır). Büyük/küçük harfe duyarsızdır, `*` joker karakterlerini destekler. Docker sandbox kapalı olduğunda bile uygulanır. ```json5 { @@ -2122,8 +2115,8 @@ Sandbox dışındaki elevated exec erişimini denetler: ``` - Ajan başına geçersiz kılma (`agents.list[].tools.elevated`) yalnızca daha fazla kısıtlama getirebilir. -- `/elevated on|off|ask|full`, durumu oturum başına depolar; satır içi yönergeler tek mesaj için geçerlidir. -- Elevated `exec`, sandbox'ı atlar ve yapılandırılmış kaçış yolunu kullanır (varsayılan olarak `gateway`, veya exec hedefi `node` olduğunda `node`). +- `/elevated on|off|ask|full`, durumu oturum başına saklar; satır içi yönergeler tek mesaja uygulanır. +- Elevated `exec`, sandbox kullanımını atlar ve yapılandırılmış kaçış yolunu kullanır (varsayılan olarak `gateway`, `exec` hedefi `node` olduğunda ise `node`). ### `tools.exec` @@ -2147,7 +2140,7 @@ Sandbox dışındaki elevated exec erişimini denetler: ### `tools.loopDetection` -Araç döngüsü güvenlik denetimleri varsayılan olarak **devre dışıdır**. Algılamayı etkinleştirmek için `enabled: true` ayarlayın. +Araç döngüsü güvenlik kontrolleri varsayılan olarak **devre dışıdır**. Algılamayı etkinleştirmek için `enabled: true` ayarlayın. Ayarlar genel olarak `tools.loopDetection` altında tanımlanabilir ve ajan başına `agents.list[].tools.loopDetection` altında geçersiz kılınabilir. ```json5 @@ -2169,13 +2162,13 @@ Ayarlar genel olarak `tools.loopDetection` altında tanımlanabilir ve ajan baş } ``` -- `historySize`: döngü analizi için tutulan en fazla araç çağrısı geçmişi. -- `warningThreshold`: uyarılar için tekrarlayan ilerleme yok deseni eşiği. +- `historySize`: döngü analizi için tutulan azami araç çağrısı geçmişi. +- `warningThreshold`: uyarılar için tekrarlayan ilerleme yok kalıbı eşiği. - `criticalThreshold`: kritik döngüleri engellemek için daha yüksek tekrar eşiği. -- `globalCircuitBreakerThreshold`: herhangi bir ilerleme olmayan çalışma için kesin durdurma eşiği. -- `detectors.genericRepeat`: aynı araç/aynı argüman çağrılarının tekrarında uyarı ver. -- `detectors.knownPollNoProgress`: bilinen yoklama araçlarında (`process.poll`, `command_status` vb.) uyar/engelle. -- `detectors.pingPong`: dönüşümlü ilerleme yok ikili desenlerinde uyar/engelle. +- `globalCircuitBreakerThreshold`: ilerleme olmayan herhangi bir çalıştırma için kesin durdurma eşiği. +- `detectors.genericRepeat`: aynı araç/aynı argüman çağrılarında uyarır. +- `detectors.knownPollNoProgress`: bilinen yoklama araçlarında (`process.poll`, `command_status` vb.) uyarır/engeller. +- `detectors.pingPong`: dönüşümlü ilerleme olmayan ikili kalıplarda uyarır/engeller. - `warningThreshold >= criticalThreshold` veya `criticalThreshold >= globalCircuitBreakerThreshold` ise doğrulama başarısız olur. ### `tools.web` @@ -2186,14 +2179,14 @@ Ayarlar genel olarak `tools.loopDetection` altında tanımlanabilir ve ajan baş web: { search: { enabled: true, - apiKey: "brave_api_key", // veya BRAVE_API_KEY env + apiKey: "brave_api_key", // veya BRAVE_API_KEY ortam değişkeni maxResults: 5, timeoutSeconds: 30, cacheTtlMinutes: 15, }, fetch: { enabled: true, - provider: "firecrawl", // isteğe bağlı; otomatik algılama için belirtmeyin + provider: "firecrawl", // isteğe bağlı; otomatik algılama için atlayın maxChars: 50000, maxCharsCap: 50000, maxResponseBytes: 2000000, @@ -2210,7 +2203,7 @@ Ayarlar genel olarak `tools.loopDetection` altında tanımlanabilir ve ajan baş ### `tools.media` -Gelen medya anlamlandırmayı yapılandırır (görsel/ses/video): +Gelen medya anlamayı yapılandırır (görsel/ses/video): ```json5 { @@ -2218,7 +2211,7 @@ Gelen medya anlamlandırmayı yapılandırır (görsel/ses/video): media: { concurrency: 2, asyncCompletion: { - directSend: false, // isteğe bağlı etkinleştirme: tamamlanan asenkron müzik/videoyu doğrudan kanala gönder + directSend: false, // isteğe bağlı etkinleştirme: tamamlanan eşzamansız müzik/videoyu doğrudan kanala gönder }, audio: { enabled: true, @@ -2244,7 +2237,7 @@ Gelen medya anlamlandırmayı yapılandırır (görsel/ses/video): -**Sağlayıcı girdisi** (`type: "provider"` veya belirtilmemiş): +**Sağlayıcı girdisi** (`type: "provider"` veya atlanmış): - `provider`: API sağlayıcı kimliği (`openai`, `anthropic`, `google`/`gemini`, `groq` vb.) - `model`: model kimliği geçersiz kılması @@ -2259,15 +2252,15 @@ Gelen medya anlamlandırmayı yapılandırır (görsel/ses/video): - `capabilities`: isteğe bağlı liste (`image`, `audio`, `video`). Varsayılanlar: `openai`/`anthropic`/`minimax` → image, `google` → image+audio+video, `groq` → audio. - `prompt`, `maxChars`, `maxBytes`, `timeoutSeconds`, `language`: girdi başına geçersiz kılmalar. -- Hatalarda sonraki girdiye geri düşülür. +- Hatalar bir sonraki girdiye geri döner. -Sağlayıcı kimlik doğrulaması standart sırayı izler: `auth-profiles.json` → ortam değişkenleri → `models.providers.*.apiKey`. +Sağlayıcı auth, standart sırayı izler: `auth-profiles.json` → ortam değişkenleri → `models.providers.*.apiKey`. -**Asenkron tamamlama alanları:** +**Eşzamansız tamamlama alanları:** -- `asyncCompletion.directSend`: `true` olduğunda tamamlanan asenkron `music_generate` +- `asyncCompletion.directSend`: `true` olduğunda, tamamlanan eşzamansız `music_generate` ve `video_generate` görevleri önce doğrudan kanal teslimini dener. Varsayılan: `false` - (eski requester-session wake/model-delivery yolu). + (eski istek yapan oturum uyandırma/model teslim yolu). @@ -2288,7 +2281,7 @@ Sağlayıcı kimlik doğrulaması standart sırayı izler: `auth-profiles.json` Oturum araçları (`sessions_list`, `sessions_history`, `sessions_send`) tarafından hangi oturumların hedeflenebileceğini denetler. -Varsayılan: `tree` (geçerli oturum + onun tarafından oluşturulmuş oturumlar, örneğin subagent'lar). +Varsayılan: `tree` (geçerli oturum + onun tarafından oluşturulan oturumlar, örneğin alt ajanlar). ```json5 { @@ -2304,14 +2297,14 @@ Varsayılan: `tree` (geçerli oturum + onun tarafından oluşturulmuş oturumlar Notlar: - `self`: yalnızca geçerli oturum anahtarı. -- `tree`: geçerli oturum + geçerli oturum tarafından oluşturulan oturumlar (subagent'lar). -- `agent`: geçerli ajan kimliğine ait herhangi bir oturum (aynı ajan kimliği altında gönderen başına oturumlar çalıştırıyorsanız diğer kullanıcıları da içerebilir). +- `tree`: geçerli oturum + geçerli oturum tarafından oluşturulan oturumlar (alt ajanlar). +- `agent`: geçerli ajan kimliğine ait herhangi bir oturum (aynı ajan kimliği altında gönderici başına oturum çalıştırıyorsanız başka kullanıcıları da içerebilir). - `all`: herhangi bir oturum. Ajanlar arası hedefleme yine de `tools.agentToAgent` gerektirir. -- Sandbox kısıtlaması: geçerli oturum sandbox'lıysa ve `agents.defaults.sandbox.sessionToolsVisibility="spawned"` ise, `tools.sessions.visibility="all"` olsa bile görünürlük zorla `tree` yapılır. +- Sandbox sıkılaştırması: geçerli oturum sandbox'lıysa ve `agents.defaults.sandbox.sessionToolsVisibility="spawned"` ise, `tools.sessions.visibility="all"` olsa bile görünürlük `tree` olmaya zorlanır. ### `tools.sessions_spawn` -`sessions_spawn` için satır içi ek dosya desteğini denetler. +`sessions_spawn` için satır içi ek desteğini denetler. ```json5 { @@ -2319,7 +2312,7 @@ Notlar: sessions_spawn: { attachments: { enabled: false, // isteğe bağlı etkinleştirme: satır içi dosya eklerine izin vermek için true yapın - maxTotalBytes: 5242880, // tüm dosyalar genelinde toplam 5 MB + maxTotalBytes: 5242880, // tüm dosyalar toplamı için 5 MB maxFiles: 50, maxFileBytes: 1048576, // dosya başına 1 MB retainOnSessionKeep: false, // cleanup="keep" olduğunda ekleri koru @@ -2331,22 +2324,22 @@ Notlar: Notlar: -- Ek dosyalar yalnızca `runtime: "subagent"` için desteklenir. ACP çalışma zamanı bunları reddeder. -- Dosyalar, çocuk workspace içine `.openclaw/attachments//` altında `.manifest.json` ile birlikte somutlaştırılır. -- Ek dosya içeriği transcript kalıcılığından otomatik olarak redakte edilir. -- Base64 girdileri, katı alfabe/padding denetimleri ve decode öncesi boyut korumasıyla doğrulanır. -- Dosya izinleri dizinler için `0700`, dosyalar için `0600` şeklindedir. -- Temizleme `cleanup` ilkesini izler: `delete` ekleri her zaman kaldırır; `keep` ise bunları yalnızca `retainOnSessionKeep: true` olduğunda korur. +- Ekler yalnızca `runtime: "subagent"` için desteklenir. ACP çalışma zamanı bunları reddeder. +- Dosyalar alt çalışma alanında `.openclaw/attachments//` içine bir `.manifest.json` ile birlikte somutlaştırılır. +- Ek içeriği, transcript kalıcılığından otomatik olarak sansürlenir. +- Base64 girdileri, katı alfabe/dolgu denetimleri ve çözme öncesi boyut korumasıyla doğrulanır. +- Dosya izinleri dizinler için `0700`, dosyalar için `0600`'dür. +- Temizleme, `cleanup` ilkesini izler: `delete` ekleri her zaman kaldırır; `keep`, bunları yalnızca `retainOnSessionKeep: true` olduğunda tutar. ### `tools.experimental` -Deneysel yerleşik araç bayrakları. Katı-agentic GPT-5 otomatik etkinleştirme kuralı uygulanmadıkça varsayılan olarak kapalıdır. +Deneysel yerleşik araç bayrakları. Sıkı agentic GPT-5 otomatik etkinleştirme kuralı uygulanmadıkça varsayılan olarak kapalıdır. ```json5 { tools: { experimental: { - planTool: true, // deneysel update_plan aracını etkinleştir + planTool: true, // deneysel update_plan etkinleştir }, }, } @@ -2354,9 +2347,9 @@ Deneysel yerleşik araç bayrakları. Katı-agentic GPT-5 otomatik etkinleştirm Notlar: -- `planTool`: önemsiz olmayan çok adımlı iş takibi için yapılandırılmış `update_plan` aracını etkinleştirir. -- Varsayılan: `false`; ancak `agents.defaults.embeddedPi.executionContract` (veya ajan başına bir geçersiz kılma) bir OpenAI veya OpenAI Codex GPT-5 ailesi çalıştırması için `"strict-agentic"` olarak ayarlanmışsa istisna uygulanır. Aracı bu kapsamın dışında zorla açmak için `true`, strict-agentic GPT-5 çalıştırmalarında bile kapalı tutmak için `false` ayarlayın. -- Etkinleştirildiğinde, sistem istemi de kullanım yönergesi ekler; böylece model bunu yalnızca önemli işler için kullanır ve en fazla bir adımı `in_progress` durumda tutar. +- `planTool`: trivial olmayan çok adımlı iş takibi için yapılandırılmış `update_plan` aracını etkinleştirir. +- Varsayılan: `false`; ancak `agents.defaults.embeddedPi.executionContract` (veya ajan başına bir geçersiz kılma) bir OpenAI veya OpenAI Codex GPT-5 ailesi çalıştırması için `"strict-agentic"` olarak ayarlanmışsa farklıdır. Bu kapsam dışında aracı zorla açmak için `true`, sıkı agentic GPT-5 çalıştırmalarında bile kapalı tutmak için `false` ayarlayın. +- Etkinleştirildiğinde, sistem istemi de kullanım yönergeleri ekler; böylece model bunu yalnızca önemli işler için kullanır ve en fazla bir adımı `in_progress` durumunda tutar. ### `agents.defaults.subagents` @@ -2376,16 +2369,16 @@ Notlar: } ``` -- `model`: oluşturulan alt ajanlar için varsayılan model. Belirtilmezse alt ajanlar çağıranın modelini devralır. -- `allowAgents`: istek yapan ajan kendi `subagents.allowAgents` değerini ayarlamıyorsa `sessions_spawn` için hedef ajan kimliklerinin varsayılan izin listesi (`["*"]` = herhangi biri; varsayılan: yalnızca aynı ajan). -- `runTimeoutSeconds`: araç çağrısı `runTimeoutSeconds` belirtmediğinde `sessions_spawn` için varsayılan zaman aşımı (saniye). `0`, zaman aşımı olmadığı anlamına gelir. +- `model`: oluşturulan alt ajanlar için varsayılan model. Atlanırsa alt ajanlar çağıranın modelini devralır. +- `allowAgents`: istek yapan ajan kendi `subagents.allowAgents` değerini ayarlamadığında `sessions_spawn` için hedef ajan kimliklerinin varsayılan izin listesi (`["*"]` = herhangi biri; varsayılan: yalnızca aynı ajan). +- `runTimeoutSeconds`: araç çağrısı `runTimeoutSeconds` değerini atladığında `sessions_spawn` için varsayılan zaman aşımı (saniye). `0`, zaman aşımı olmadığı anlamına gelir. - Alt ajan başına araç ilkesi: `tools.subagents.tools.allow` / `tools.subagents.tools.deny`. --- ## Özel sağlayıcılar ve base URL'ler -OpenClaw, yerleşik model kataloğunu kullanır. `models.providers` içinde config ile veya `~/.openclaw/agents//agent/models.json` ile özel sağlayıcılar ekleyin. +OpenClaw, yerleşik model kataloğunu kullanır. `models.providers` altında veya `~/.openclaw/agents//agent/models.json` içinde özel sağlayıcılar ekleyin. ```json5 { @@ -2414,48 +2407,48 @@ OpenClaw, yerleşik model kataloğunu kullanır. `models.providers` içinde conf } ``` -- Özel kimlik doğrulama gereksinimleri için `authHeader: true` + `headers` kullanın. -- Ajan config kökünü `OPENCLAW_AGENT_DIR` ile geçersiz kılın (veya eski ortam değişkeni takma adı olan `PI_CODING_AGENT_DIR` ile). +- Özel auth gereksinimleri için `authHeader: true` + `headers` kullanın. +- Ajan yapılandırma kökünü `OPENCLAW_AGENT_DIR` ile geçersiz kılın (veya eski ortam değişkeni takma adı olan `PI_CODING_AGENT_DIR` ile). - Eşleşen sağlayıcı kimlikleri için birleştirme önceliği: - Boş olmayan ajan `models.json` `baseUrl` değerleri kazanır. - - Boş olmayan ajan `apiKey` değerleri, yalnızca bu sağlayıcı mevcut config/auth-profile bağlamında SecretRef tarafından yönetilmiyorsa kazanır. - - SecretRef tarafından yönetilen sağlayıcı `apiKey` değerleri, çözümlenmiş gizli değerleri kalıcılaştırmak yerine kaynak işaretçilerinden (`env` başvuruları için `ENV_VAR_NAME`, dosya/exec başvuruları için `secretref-managed`) yenilenir. - - SecretRef tarafından yönetilen sağlayıcı header değerleri, kaynak işaretçilerinden (`env` başvuruları için `secretref-env:ENV_VAR_NAME`, dosya/exec başvuruları için `secretref-managed`) yenilenir. - - Boş veya eksik ajan `apiKey`/`baseUrl` değerleri, config içindeki `models.providers` değerlerine geri döner. - - Eşleşen model `contextWindow`/`maxTokens` değerleri, açık config ile örtük katalog değerleri arasındaki daha yüksek değeri kullanır. - - Eşleşen model `contextTokens`, mevcut olduğunda açık çalışma zamanı üst sınırını korur; yerel model meta verisini değiştirmeden etkin bağlamı sınırlamak için bunu kullanın. - - Config'in `models.json` dosyasını tamamen yeniden yazmasını istediğinizde `models.mode: "replace"` kullanın. - - İşaretçi kalıcılığı kaynak açısından yetkilidir: işaretçiler, çözümlenmiş çalışma zamanı gizli değerlerinden değil, etkin kaynak config anlık görüntüsünden (çözümleme öncesi) yazılır. + - Boş olmayan ajan `apiKey` değerleri, yalnızca sağlayıcı mevcut yapılandırma/auth-profile bağlamında SecretRef yönetimli değilse kazanır. + - SecretRef yönetimli sağlayıcı `apiKey` değerleri, çözümlenmiş gizli anahtarları kalıcılaştırmak yerine kaynak işaretçilerden (`ENV_VAR_NAME` ortam referansları için, `secretref-managed` dosya/exec referansları için) yenilenir. + - SecretRef yönetimli sağlayıcı header değerleri, kaynak işaretçilerden (`secretref-env:ENV_VAR_NAME` ortam referansları için, `secretref-managed` dosya/exec referansları için) yenilenir. + - Boş veya eksik ajan `apiKey`/`baseUrl` değerleri yapılandırmadaki `models.providers` değerlerine geri döner. + - Eşleşen model `contextWindow`/`maxTokens` değerleri, açık yapılandırma ile örtük katalog değerleri arasındaki daha yüksek değeri kullanır. + - Eşleşen model `contextTokens`, mevcutsa açık çalışma zamanı sınırını korur; doğal model meta verisini değiştirmeden etkili bağlamı sınırlamak için bunu kullanın. + - Yapılandırmanın `models.json` dosyasını tamamen yeniden yazmasını istediğinizde `models.mode: "replace"` kullanın. + - İşaretçi kalıcılığı kaynak için yetkili olandır: işaretçiler, çözümlenmiş çalışma zamanı gizli değerlerinden değil, etkin kaynak yapılandırma anlık görüntüsünden (çözümleme öncesi) yazılır. ### Sağlayıcı alanı ayrıntıları - `models.mode`: sağlayıcı katalog davranışı (`merge` veya `replace`). -- `models.providers`: sağlayıcı kimliğine göre anahtarlanmış özel sağlayıcı eşlemi. +- `models.providers`: sağlayıcı kimliğine göre anahtarlanmış özel sağlayıcı eşlemesi. - `models.providers.*.api`: istek bağdaştırıcısı (`openai-completions`, `openai-responses`, `anthropic-messages`, `google-generative-ai` vb.). -- `models.providers.*.apiKey`: sağlayıcı kimlik bilgisi (SecretRef/env substitution tercih edin). +- `models.providers.*.apiKey`: sağlayıcı kimlik bilgisi (SecretRef/ortam değişkeni yerleştirmesi tercih edilir). - `models.providers.*.auth`: kimlik doğrulama stratejisi (`api-key`, `token`, `oauth`, `aws-sdk`). -- `models.providers.*.injectNumCtxForOpenAICompat`: Ollama + `openai-completions` için isteklere `options.num_ctx` ekler (varsayılan: `true`). -- `models.providers.*.authHeader`: gerektiğinde kimlik bilgisini `Authorization` üstbilgisinde taşımayı zorunlu kılar. +- `models.providers.*.injectNumCtxForOpenAICompat`: Ollama + `openai-completions` için isteklere `options.num_ctx` enjekte eder (varsayılan: `true`). +- `models.providers.*.authHeader`: gerektiğinde kimlik bilgisinin `Authorization` üstbilgisinde taşınmasını zorlar. - `models.providers.*.baseUrl`: yukarı akış API base URL'si. -- `models.providers.*.headers`: proxy/tenant yönlendirme için ek statik üstbilgiler. +- `models.providers.*.headers`: proxy/kiracı yönlendirmesi için ek statik üstbilgiler. - `models.providers.*.request`: model-sağlayıcı HTTP istekleri için taşıma geçersiz kılmaları. - `request.headers`: ek üstbilgiler (sağlayıcı varsayılanlarıyla birleştirilir). Değerler SecretRef kabul eder. - - `request.auth`: kimlik doğrulama stratejisi geçersiz kılması. Modlar: `"provider-default"` (sağlayıcının yerleşik kimlik doğrulamasını kullan), `"authorization-bearer"` (`token` ile), `"header"` (`headerName`, `value`, isteğe bağlı `prefix` ile). - - `request.proxy`: HTTP proxy geçersiz kılması. Modlar: `"env-proxy"` (`HTTP_PROXY`/`HTTPS_PROXY` ortam değişkenlerini kullan), `"explicit-proxy"` (`url` ile). Her iki mod da isteğe bağlı bir `tls` alt nesnesi kabul eder. - - `request.tls`: doğrudan bağlantılar için TLS geçersiz kılması. Alanlar: `ca`, `cert`, `key`, `passphrase` (hepsi SecretRef kabul eder), `serverName`, `insecureSkipVerify`. - - `request.allowPrivateNetwork`: `true` olduğunda, DNS özel, CGNAT veya benzeri aralıklara çözümlendiğinde `baseUrl` için HTTPS'e izin verir; bu, sağlayıcı HTTP getirme koruması üzerinden yapılır (güvenilir kendi kendine barındırılan OpenAI uyumlu uç noktalar için operator onayı). WebSocket, üstbilgiler/TLS için aynı `request` değerini kullanır ancak bu getirme SSRF kapısını kullanmaz. Varsayılan `false`. + - `request.auth`: kimlik doğrulama stratejisi geçersiz kılması. Modlar: `"provider-default"` (sağlayıcının yerleşik auth'unu kullan), `"authorization-bearer"` (`token` ile), `"header"` (`headerName`, `value`, isteğe bağlı `prefix` ile). + - `request.proxy`: HTTP proxy geçersiz kılması. Modlar: `"env-proxy"` (`HTTP_PROXY`/`HTTPS_PROXY` ortam değişkenlerini kullan), `"explicit-proxy"` (`url` ile). Her iki mod da isteğe bağlı bir `tls` alt nesnesini kabul eder. + - `request.tls`: doğrudan bağlantılar için TLS geçersiz kılması. Alanlar: `ca`, `cert`, `key`, `passphrase` (tamamı SecretRef kabul eder), `serverName`, `insecureSkipVerify`. + - `request.allowPrivateNetwork`: `true` olduğunda, DNS özel, CGNAT veya benzeri aralıklara çözümlendiğinde `baseUrl` adresine HTTPS erişimine sağlayıcı HTTP fetch koruması üzerinden izin verir (güvenilir, kendi barındırılan OpenAI uyumlu uç noktalar için operatör isteğe bağlı etkinleştirmesi). WebSocket, üstbilgiler/TLS için aynı `request` ayarını kullanır ancak bu fetch SSRF korumasını kullanmaz. Varsayılan `false`. - `models.providers.*.models`: açık sağlayıcı model kataloğu girdileri. -- `models.providers.*.models.*.contextWindow`: yerel model bağlam penceresi meta verisi. -- `models.providers.*.models.*.contextTokens`: isteğe bağlı çalışma zamanı bağlam üst sınırı. Modelin yerel `contextWindow` değerinden daha küçük etkin bağlam bütçesi istediğinizde bunu kullanın. -- `models.providers.*.models.*.compat.supportsDeveloperRole`: isteğe bağlı uyumluluk ipucu. `api: "openai-completions"` ve boş olmayan, yerel olmayan bir `baseUrl` için (`api.openai.com` olmayan ana bilgisayar), OpenClaw bunu çalışma zamanında `false` olarak zorlar. Boş/atlanmış `baseUrl`, varsayılan OpenAI davranışını korur. -- `models.providers.*.models.*.compat.requiresStringContent`: yalnızca dize kullanan OpenAI uyumlu sohbet uç noktaları için isteğe bağlı uyumluluk ipucu. `true` olduğunda OpenClaw, isteği göndermeden önce yalnızca metin içeren `messages[].content` dizilerini düz dizelere indirger. +- `models.providers.*.models.*.contextWindow`: doğal model bağlam penceresi meta verisi. +- `models.providers.*.models.*.contextTokens`: isteğe bağlı çalışma zamanı bağlam sınırı. Modelin doğal `contextWindow` değerinden daha küçük etkin bağlam bütçesi istediğinizde bunu kullanın. +- `models.providers.*.models.*.compat.supportsDeveloperRole`: isteğe bağlı uyumluluk ipucu. `api: "openai-completions"` ve boş olmayan doğal olmayan bir `baseUrl` için (`api.openai.com` dışında bir ana makine), OpenClaw bunu çalışma zamanında `false` olarak zorlar. Boş/atlanmış `baseUrl`, varsayılan OpenAI davranışını korur. +- `models.providers.*.models.*.compat.requiresStringContent`: yalnızca dize kabul eden OpenAI uyumlu sohbet uç noktaları için isteğe bağlı uyumluluk ipucu. `true` olduğunda OpenClaw, isteği göndermeden önce yalnızca metin içeren `messages[].content` dizilerini düz dizelere indirger. - `plugins.entries.amazon-bedrock.config.discovery`: Bedrock otomatik keşif ayarlarının kökü. -- `plugins.entries.amazon-bedrock.config.discovery.enabled`: örtük keşfi aç/kapat. +- `plugins.entries.amazon-bedrock.config.discovery.enabled`: örtük keşfi açar/kapatır. - `plugins.entries.amazon-bedrock.config.discovery.region`: keşif için AWS bölgesi. -- `plugins.entries.amazon-bedrock.config.discovery.providerFilter`: hedeflenmiş keşif için isteğe bağlı provider-id filtresi. -- `plugins.entries.amazon-bedrock.config.discovery.refreshInterval`: keşif yenileme yoklama aralığı. +- `plugins.entries.amazon-bedrock.config.discovery.providerFilter`: hedefli keşif için isteğe bağlı sağlayıcı kimliği filtresi. +- `plugins.entries.amazon-bedrock.config.discovery.refreshInterval`: keşif yenilemesi için yoklama aralığı. - `plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow`: keşfedilen modeller için yedek bağlam penceresi. -- `plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens`: keşfedilen modeller için yedek azami çıktı token'ı. +- `plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens`: keşfedilen modeller için yedek azami çıktı tokenı. ### Sağlayıcı örnekleri @@ -2493,7 +2486,7 @@ OpenClaw, yerleşik model kataloğunu kullanır. `models.providers` içinde conf } ``` -Cerebras için `cerebras/zai-glm-4.7`; Z.AI doğrudan için `zai/glm-4.7` kullanın. +Cerebras için `cerebras/zai-glm-4.7`; doğrudan Z.AI için `zai/glm-4.7` kullanın. @@ -2510,7 +2503,7 @@ Cerebras için `cerebras/zai-glm-4.7`; Z.AI doğrudan için `zai/glm-4.7` kullan } ``` -`OPENCODE_API_KEY` (veya `OPENCODE_ZEN_API_KEY`) ayarlayın. Zen kataloğu için `opencode/...`, Go kataloğu için `opencode-go/...` başvurularını kullanın. Kısayol: `openclaw onboard --auth-choice opencode-zen` veya `openclaw onboard --auth-choice opencode-go`. +`OPENCODE_API_KEY` (veya `OPENCODE_ZEN_API_KEY`) ayarlayın. Zen kataloğu için `opencode/...`, Go kataloğu için `opencode-go/...` referanslarını kullanın. Kısayol: `openclaw onboard --auth-choice opencode-zen` veya `openclaw onboard --auth-choice opencode-go`. @@ -2573,8 +2566,7 @@ Cerebras için `cerebras/zai-glm-4.7`; Z.AI doğrudan için `zai/glm-4.7` kullan Çin uç noktası için: `baseUrl: "https://api.moonshot.cn/v1"` veya `openclaw onboard --auth-choice moonshot-api-key-cn`. Yerel Moonshot uç noktaları, paylaşılan -`openai-completions` taşıması üzerinde akış kullanım uyumluluğu bildirir ve OpenClaw bunu -yalnızca yerleşik provider kimliğine değil, uç nokta yeteneklerine göre belirler. +`openai-completions` taşıması üzerinde akış kullanımı uyumluluğunu bildirir ve OpenClaw bunu yalnızca yerleşik sağlayıcı kimliğine değil, uç nokta yeteneklerine göre anahtarlar. @@ -2596,7 +2588,7 @@ Anthropic uyumlu, yerleşik sağlayıcı. Kısayol: `openclaw onboard --auth-cho - + ```json5 { @@ -2631,7 +2623,7 @@ Anthropic uyumlu, yerleşik sağlayıcı. Kısayol: `openclaw onboard --auth-cho } ``` -Base URL `/v1` içermemelidir (Anthropic istemcisi bunu ekler). Kısayol: `openclaw onboard --auth-choice synthetic-api-key`. +Base URL, `/v1` içermemelidir (Anthropic istemcisi bunu ekler). Kısayol: `openclaw onboard --auth-choice synthetic-api-key`. @@ -2674,17 +2666,15 @@ Base URL `/v1` içermemelidir (Anthropic istemcisi bunu ekler). Kısayol: `openc `MINIMAX_API_KEY` ayarlayın. Kısayollar: `openclaw onboard --auth-choice minimax-global-api` veya `openclaw onboard --auth-choice minimax-cn-api`. -Model kataloğu varsayılan olarak yalnızca M2.7'dir. -Anthropic uyumlu akış yolunda OpenClaw, açıkça `thinking` ayarlamadığınız sürece MiniMax düşünmeyi -varsayılan olarak devre dışı bırakır. `/fast on` veya -`params.fastMode: true`, `MiniMax-M2.7` modelini +Model kataloğu varsayılan olarak yalnızca M2.7 kullanır. +Anthropic uyumlu akış yolunda OpenClaw, siz açıkça `thinking` ayarlamadıkça MiniMax thinking özelliğini varsayılan olarak devre dışı bırakır. `/fast on` veya `params.fastMode: true`, `MiniMax-M2.7` değerini `MiniMax-M2.7-highspeed` olarak yeniden yazar. -Bkz. [Yerel Modeller](/tr/gateway/local-models). Özetle: ciddi donanımda LM Studio Responses API ile büyük bir yerel model çalıştırın; yedek için barındırılan modelleri birleştirilmiş halde tutun. +Bkz. [Local Models](/tr/gateway/local-models). Kısaca: güçlü donanım üzerinde LM Studio Responses API ile büyük bir yerel model çalıştırın; yedek için barındırılan modelleri birleştirilmiş halde tutun. @@ -2705,7 +2695,7 @@ Bkz. [Yerel Modeller](/tr/gateway/local-models). Özetle: ciddi donanımda LM St }, entries: { "image-lab": { - apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, // veya düz metin dize + apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" }, // veya düz metin dizesi env: { GEMINI_API_KEY: "GEMINI_KEY_HERE" }, }, peekaboo: { enabled: true }, @@ -2715,14 +2705,12 @@ Bkz. [Yerel Modeller](/tr/gateway/local-models). Özetle: ciddi donanımda LM St } ``` -- `allowBundled`: yalnızca bundled Skills için isteğe bağlı izin listesi (managed/workspace Skills etkilenmez). +- `allowBundled`: yalnızca paketlenmiş Skills için isteğe bağlı izin listesi (yönetilen/çalışma alanı Skills etkilenmez). - `load.extraDirs`: ek paylaşılan skill kökleri (en düşük öncelik). -- `install.preferBrew`: `true` olduğunda ve `brew` - kullanılabiliyorsa, diğer yükleyici türlerine geri dönmeden önce Homebrew yükleyicilerini tercih eder. -- `install.nodeManager`: `metadata.openclaw.install` - özellikleri için node yükleyici tercihi (`npm` | `pnpm` | `yarn` | `bun`). -- `entries..enabled: false`, skill bundled/installed olsa bile onu devre dışı bırakır. -- `entries..apiKey`: birincil ortam değişkeni tanımlayan Skills için kolaylık alanı (düz metin dize veya SecretRef nesnesi). +- `install.preferBrew`: `true` olduğunda ve `brew` kullanılabiliyorsa, diğer yükleyici türlerine geri dönmeden önce Homebrew yükleyicilerini tercih eder. +- `install.nodeManager`: `metadata.openclaw.install` özellikleri için node yükleyici tercihi (`npm` | `pnpm` | `yarn` | `bun`). +- `entries..enabled: false`, paketlenmiş/kurulu olsa bile bir skill'i devre dışı bırakır. +- `entries..apiKey`: birincil ortam değişkeni tanımlayan Skills için kolaylık alanı (düz metin dizesi veya SecretRef nesnesi). --- @@ -2751,40 +2739,40 @@ Bkz. [Yerel Modeller](/tr/gateway/local-models). Özetle: ciddi donanımda LM St ``` - `~/.openclaw/extensions`, `/.openclaw/extensions` ve `plugins.load.paths` içinden yüklenir. -- Keşif, yerel OpenClaw eklentilerini ve uyumlu Codex bundle ile Claude bundle paketlerini kabul eder; buna manifest olmayan Claude varsayılan düzen bundle'ları da dahildir. -- **Yapılandırma değişiklikleri gateway yeniden başlatması gerektirir.** +- Keşif, yerel OpenClaw eklentilerinin yanı sıra uyumlu Codex paketlerini ve Claude paketlerini de kabul eder; buna manifest içermeyen Claude varsayılan düzen paketleri de dahildir. +- **Yapılandırma değişiklikleri bir gateway yeniden başlatması gerektirir.** - `allow`: isteğe bağlı izin listesi (yalnızca listelenen eklentiler yüklenir). `deny` kazanır. -- `plugins.entries..apiKey`: eklenti düzeyinde API anahtarı kolaylık alanı (eklenti desteklediğinde). -- `plugins.entries..env`: eklenti kapsamlı ortam değişkeni eşlemi. -- `plugins.entries..hooks.allowPromptInjection`: `false` olduğunda çekirdek, `before_prompt_build` işlemini engeller ve eski `before_agent_start` içindeki prompt değiştiren alanları yok sayar; eski `modelOverride` ve `providerOverride` değerlerini ise korur. Yerel eklenti hook'larına ve desteklenen bundle tarafından sağlanan hook dizinlerine uygulanır. -- `plugins.entries..subagent.allowModelOverride`: bu eklentiye arka plan alt ajan çalıştırmaları için çalışma başına `provider` ve `model` geçersiz kılmaları isteme konusunda açık güven ver. -- `plugins.entries..subagent.allowedModels`: güvenilen alt ajan geçersiz kılmaları için isteğe bağlı kanonik `provider/model` hedefleri izin listesi. Yalnızca herhangi bir modele bilerek izin vermek istediğinizde `"*"` kullanın. -- `plugins.entries..config`: eklenti tarafından tanımlanan yapılandırma nesnesi (varsa yerel OpenClaw eklenti şemasıyla doğrulanır). +- `plugins.entries..apiKey`: eklenti düzeyinde API anahtarı kolaylık alanı (eklenti destekliyorsa). +- `plugins.entries..env`: eklenti kapsamlı ortam değişkeni eşlemesi. +- `plugins.entries..hooks.allowPromptInjection`: `false` olduğunda çekirdek, `before_prompt_build` işlemini engeller ve eski `before_agent_start` içindeki istem değiştirici alanları yok sayar; eski `modelOverride` ve `providerOverride` korunur. Yerel eklenti hook'larına ve desteklenen paket kaynaklı hook dizinlerine uygulanır. +- `plugins.entries..subagent.allowModelOverride`: bu eklentiye arka plan alt ajan çalıştırmaları için çalışma başına `provider` ve `model` geçersiz kılmaları isteme konusunda açıkça güvenilir olduğunu belirtir. +- `plugins.entries..subagent.allowedModels`: güvenilen alt ajan geçersiz kılmaları için isteğe bağlı standart `provider/model` hedefleri izin listesi. Yalnızca bilerek herhangi bir modele izin vermek istediğinizde `"*"` kullanın. +- `plugins.entries..config`: eklenti tarafından tanımlanan yapılandırma nesnesi (mevcutsa yerel OpenClaw eklenti şemasıyla doğrulanır). - `plugins.entries.firecrawl.config.webFetch`: Firecrawl web-fetch sağlayıcı ayarları. - - `apiKey`: Firecrawl API anahtarı (SecretRef kabul eder). `plugins.entries.firecrawl.config.webSearch.apiKey`, eski `tools.web.fetch.firecrawl.apiKey` veya `FIRECRAWL_API_KEY` ortam değişkenine geri döner. + - `apiKey`: Firecrawl API anahtarı (SecretRef kabul eder). Yedek olarak `plugins.entries.firecrawl.config.webSearch.apiKey`, eski `tools.web.fetch.firecrawl.apiKey` veya `FIRECRAWL_API_KEY` ortam değişkenini kullanır. - `baseUrl`: Firecrawl API base URL'si (varsayılan: `https://api.firecrawl.dev`). - - `onlyMainContent`: sayfalardan yalnızca ana içeriği çıkar (varsayılan: `true`). - - `maxAgeMs`: önbellek için izin verilen en yüksek yaş, milisaniye cinsinden (varsayılan: `172800000` / 2 gün). - - `timeoutSeconds`: scrape isteği zaman aşımı, saniye cinsinden (varsayılan: `60`). -- `plugins.entries.xai.config.xSearch`: xAI X Search (Grok web search) ayarları. - - `enabled`: X Search sağlayıcısını etkinleştir. + - `onlyMainContent`: sayfalardan yalnızca ana içeriği çıkarır (varsayılan: `true`). + - `maxAgeMs`: önbellek için milisaniye cinsinden azami yaş (varsayılan: `172800000` / 2 gün). + - `timeoutSeconds`: scrape isteği zaman aşımı süresi (saniye) (varsayılan: `60`). +- `plugins.entries.xai.config.xSearch`: xAI X Search (Grok web araması) ayarları. + - `enabled`: X Search sağlayıcısını etkinleştirir. - `model`: arama için kullanılacak Grok modeli (ör. `"grok-4-1-fast"`). - `plugins.entries.memory-core.config.dreaming`: memory dreaming (deneysel) ayarları. Aşamalar ve eşikler için bkz. [Dreaming](/tr/concepts/dreaming). - `enabled`: ana dreaming anahtarı (varsayılan `false`). - - `frequency`: her tam dreaming taraması için cron sıklığı (varsayılan olarak `"0 3 * * *"`). - - aşama ilkesi ve eşikler uygulama ayrıntılarıdır (kullanıcıya dönük yapılandırma anahtarları değildir). -- Tam memory yapılandırması [Bellek yapılandırma başvurusu](/tr/reference/memory-config) içinde bulunur: + - `frequency`: her tam dreaming taraması için cron aralığı (varsayılan `"0 3 * * *"`). + - aşama ilkesi ve eşikler uygulama ayrıntılarıdır (kullanıcıya açık yapılandırma anahtarları değildir). +- Tam bellek yapılandırması [Bellek yapılandırma başvurusu](/tr/reference/memory-config) içinde yer alır: - `agents.defaults.memorySearch.*` - `memory.backend` - `memory.citations` - `memory.qmd.*` - `plugins.entries.memory-core.config.dreaming` -- Etkin Claude bundle eklentileri ayrıca `settings.json` içinden embedded Pi varsayılanları da ekleyebilir; OpenClaw bunları ham OpenClaw config yamaları olarak değil, temizlenmiş ajan ayarları olarak uygular. -- `plugins.slots.memory`: etkin memory eklentisi kimliğini seçin veya memory eklentilerini devre dışı bırakmak için `"none"` kullanın. -- `plugins.slots.contextEngine`: etkin context engine eklentisi kimliğini seçin; başka bir motor kurup seçmediğiniz sürece varsayılan `"legacy"` olur. +- Etkin Claude paket eklentileri `settings.json` içinden gömülü Pi varsayılanlarına da katkıda bulunabilir; OpenClaw bunları ham OpenClaw yapılandırma yamaları olarak değil, temizlenmiş ajan ayarları olarak uygular. +- `plugins.slots.memory`: etkin bellek eklentisi kimliğini seçin veya bellek eklentilerini devre dışı bırakmak için `"none"` kullanın. +- `plugins.slots.contextEngine`: etkin bağlam motoru eklentisi kimliğini seçin; başka bir motor kurup seçmediğiniz sürece varsayılan `"legacy"` olur. - `plugins.installs`: `openclaw plugins update` tarafından kullanılan CLI yönetimli kurulum meta verisi. - `source`, `spec`, `sourcePath`, `installPath`, `version`, `resolvedName`, `resolvedVersion`, `resolvedSpec`, `integrity`, `shasum`, `resolvedAt`, `installedAt` içerir. - - `plugins.installs.*` alanlarını yönetilen durum olarak değerlendirin; el ile düzenlemek yerine CLI komutlarını tercih edin. + - `plugins.installs.*` alanlarını yönetilen durum olarak ele alın; el ile düzenleme yerine CLI komutlarını tercih edin. Bkz. [Plugins](/tr/tools/plugin). @@ -2799,7 +2787,7 @@ Bkz. [Plugins](/tr/tools/plugin). evaluateEnabled: true, defaultProfile: "user", ssrfPolicy: { - // dangerouslyAllowPrivateNetwork: true, // yalnızca güvenilir özel ağ erişimi için isteğe bağlı etkinleştirin + // dangerouslyAllowPrivateNetwork: true, // yalnızca güvenilen özel ağ erişimi için isteğe bağlı etkinleştirin // allowPrivateNetwork: true, // eski takma ad // hostnameAllowlist: ["*.example.com", "example.com"], // allowedHostnames: ["localhost"], @@ -2826,29 +2814,23 @@ Bkz. [Plugins](/tr/tools/plugin). } ``` -- `evaluateEnabled: false`, `act:evaluate` ve `wait --fn` işlevlerini devre dışı bırakır. -- `ssrfPolicy.dangerouslyAllowPrivateNetwork`, ayarlanmadığında devre dışıdır; bu nedenle tarayıcı gezintisi varsayılan olarak katı kalır. -- `ssrfPolicy.dangerouslyAllowPrivateNetwork: true` ayarını yalnızca özel ağ tarayıcı gezintisine bilinçli olarak güveniyorsanız yapın. -- Katı modda, uzak CDP profil uç noktaları (`profiles.*.cdpUrl`) erişilebilirlik/keşif denetimleri sırasında aynı özel ağ engellemesine tabidir. +- `evaluateEnabled: false`, `act:evaluate` ve `wait --fn` komutlarını devre dışı bırakır. +- `ssrfPolicy.dangerouslyAllowPrivateNetwork` ayarlanmamışsa devre dışıdır; böylece tarayıcı gezinmesi varsayılan olarak sıkı kalır. +- `ssrfPolicy.dangerouslyAllowPrivateNetwork: true` değerini yalnızca özel ağ tarayıcı gezinmesine bilerek güvendiğinizde ayarlayın. +- Sıkı modda uzak CDP profil uç noktaları (`profiles.*.cdpUrl`), erişilebilirlik/keşif denetimleri sırasında aynı özel ağ engellemesine tabidir. - `ssrfPolicy.allowPrivateNetwork`, eski takma ad olarak desteklenmeye devam eder. -- Katı modda açık istisnalar için `ssrfPolicy.hostnameAllowlist` ve `ssrfPolicy.allowedHostnames` kullanın. -- Uzak profiller yalnızca bağlanma içindir (başlatma/durdurma/sıfırlama devre dışıdır). +- Sıkı modda açık istisnalar için `ssrfPolicy.hostnameAllowlist` ve `ssrfPolicy.allowedHostnames` kullanın. +- Uzak profiller yalnızca bağlanmalıdır (başlat/durdur/sıfırla devre dışı). - `profiles.*.cdpUrl`, `http://`, `https://`, `ws://` ve `wss://` kabul eder. - OpenClaw'ın `/json/version` keşfi yapmasını istediğinizde HTTP(S) kullanın; sağlayıcınız size doğrudan bir DevTools WebSocket URL'si verdiğinde WS(S) - kullanın. + OpenClaw'un `/json/version` keşfi yapmasını istediğinizde HTTP(S) kullanın; sağlayıcınız size doğrudan bir DevTools WebSocket URL'si veriyorsa WS(S) kullanın. - `existing-session` profilleri yalnızca ana makine içindir ve CDP yerine Chrome MCP kullanır. -- `existing-session` profilleri, Brave veya Edge gibi belirli bir - Chromium tabanlı tarayıcı profilini hedeflemek için `userDataDir` ayarlayabilir. -- `existing-session` profilleri, mevcut Chrome MCP rota sınırlarını korur: - CSS seçici hedefleme yerine snapshot/ref tabanlı eylemler, tek dosya yükleme - hook'ları, iletişim kutusu zaman aşımı geçersiz kılmaları yok, `wait --load networkidle` - yok ve `responsebody`, PDF dışa aktarma, indirme yakalama veya toplu eylemler de yok. -- Yerel yönetilen `openclaw` profilleri `cdpPort` ve `cdpUrl` değerlerini otomatik atar; yalnızca - uzak CDP için `cdpUrl` değerini açıkça ayarlayın. -- Otomatik algılama sırası: varsayılan tarayıcı Chromium tabanlıysa → Chrome → Brave → Edge → Chromium → Chrome Canary. -- Denetim hizmeti: yalnızca loopback (port, `gateway.port` değerinden türetilir; varsayılan `18791`). -- `extraArgs`, yerel Chromium başlatmasına ek başlatma bayrakları ekler (örneğin - `--disable-gpu`, pencere boyutlandırma veya hata ayıklama bayrakları). +- `existing-session` profilleri, Brave veya Edge gibi belirli bir Chromium tabanlı tarayıcı profilini hedeflemek için `userDataDir` ayarlayabilir. +- `existing-session` profilleri mevcut Chrome MCP rota sınırlarını korur: + CSS seçici hedefleme yerine snapshot/ref tabanlı eylemler, tek dosya yükleme hook'ları, iletişim kutusu zaman aşımı geçersiz kılmaları yok, `wait --load networkidle` yok ve `responsebody`, PDF dışa aktarma, indirme yakalama veya toplu eylemler yok. +- Yerel yönetilen `openclaw` profilleri `cdpPort` ve `cdpUrl` değerlerini otomatik atar; yalnızca uzak CDP için `cdpUrl` değerini açıkça ayarlayın. +- Otomatik algılama sırası: Chromium tabanlıysa varsayılan tarayıcı → Chrome → Brave → Edge → Chromium → Chrome Canary. +- Kontrol servisi: yalnızca loopback (port, `gateway.port` üzerinden türetilir; varsayılan `18791`). +- `extraArgs`, yerel Chromium başlangıcına ek başlatma bayrakları ekler (örneğin `--disable-gpu`, pencere boyutu veya hata ayıklama bayrakları). --- @@ -2866,7 +2848,7 @@ Bkz. [Plugins](/tr/tools/plugin). } ``` -- `seamColor`: yerel uygulama UI chrome için vurgu rengi (Talk Mode baloncuk tonu vb.). +- `seamColor`: yerel uygulama UI chrome için vurgu rengi (Talk Mode balon tonu vb.). - `assistant`: Control UI kimlik geçersiz kılması. Etkin ajan kimliğine geri döner. --- @@ -2900,7 +2882,9 @@ Bkz. [Plugins](/tr/tools/plugin). enabled: true, basePath: "/openclaw", // root: "dist/control-ui", - // allowedOrigins: ["https://control.example.com"], // loopback dışı Control UI için gerekir + // embedSandbox: "scripts", // strict | scripts | trusted + // allowExternalEmbedUrls: false, // tehlikeli: mutlak harici http(s) embed URL'lerine izin ver + // allowedOrigins: ["https://control.example.com"], // loopback olmayan Control UI için zorunlu // dangerouslyAllowHostHeaderOriginFallback: false, // tehlikeli Host-header origin fallback modu // allowInsecureAuth: false, // dangerouslyDisableDeviceAuth: false, @@ -2915,9 +2899,9 @@ Bkz. [Plugins](/tr/tools/plugin). // İsteğe bağlı. Varsayılan false. allowRealIpFallback: false, tools: { - // Ek /tools/invoke HTTP deny değerleri + // Ek /tools/invoke HTTP retleri deny: ["browser"], - // Varsayılan HTTP deny listesinden araçları kaldır + // Varsayılan HTTP ret listesinden araçları kaldır allow: ["gateway"], }, push: { @@ -2934,45 +2918,45 @@ Bkz. [Plugins](/tr/tools/plugin). -- `mode`: `local` (gateway'i çalıştır) veya `remote` (uzak gateway'e bağlan). `local` olmadığı sürece gateway başlatmayı reddeder. +- `mode`: `local` (gateway'i çalıştır) veya `remote` (uzak gateway'e bağlan). Gateway, `local` olmadığı sürece başlamayı reddeder. - `port`: WS + HTTP için tek çoklanmış port. Öncelik: `--port` > `OPENCLAW_GATEWAY_PORT` > `gateway.port` > `18789`. - `bind`: `auto`, `loopback` (varsayılan), `lan` (`0.0.0.0`), `tailnet` (yalnızca Tailscale IP'si) veya `custom`. -- **Eski bind takma adları**: `gateway.bind` içinde host takma adlarını (`0.0.0.0`, `127.0.0.1`, `localhost`, `::`, `::1`) değil, bind modu değerlerini (`auto`, `loopback`, `lan`, `tailnet`, `custom`) kullanın. -- **Docker notu**: varsayılan `loopback` bind'i kapsayıcı içinde `127.0.0.1` üzerinde dinler. Docker bridge ağı ile (`-p 18789:18789`) trafik `eth0` üzerinden gelir, bu yüzden gateway'e erişilemez. `--network host` kullanın veya tüm arabirimlerde dinlemek için `bind: "lan"` (veya `customBindHost: "0.0.0.0"` ile `bind: "custom"`) ayarlayın. -- **Kimlik doğrulama**: varsayılan olarak gereklidir. Loopback dışı bind'ler gateway kimlik doğrulaması gerektirir. Uygulamada bu, paylaşılan bir token/parola veya `gateway.auth.mode: "trusted-proxy"` kullanan kimlik farkında bir ters proxy anlamına gelir. Onboarding sihirbazı varsayılan olarak bir token üretir. -- Hem `gateway.auth.token` hem de `gateway.auth.password` yapılandırılmışsa (SecretRef'ler dahil), `gateway.auth.mode` değerini açıkça `token` veya `password` olarak ayarlayın. Başlatma ve hizmet kurma/onarım akışları, ikisi de yapılandırılıp mod ayarlanmadığında başarısız olur. -- `gateway.auth.mode: "none"`: açık no-auth modu. Bunu yalnızca güvenilir yerel loopback kurulumları için kullanın; onboarding istemlerinde bilerek sunulmaz. -- `gateway.auth.mode: "trusted-proxy"`: kimlik doğrulamayı kimlik farkında bir ters proxy'ye devredin ve kimlik üstbilgilerine `gateway.trustedProxies` üzerinden güvenin (bkz. [Trusted Proxy Auth](/tr/gateway/trusted-proxy-auth)). Bu mod **loopback dışı** bir proxy kaynağı bekler; aynı ana makinedeki loopback ters proxy'ler trusted-proxy kimlik doğrulamasını karşılamaz. -- `gateway.auth.allowTailscale`: `true` olduğunda Tailscale Serve kimlik üstbilgileri, Control UI/WebSocket kimlik doğrulamasını karşılayabilir (`tailscale whois` ile doğrulanır). HTTP API uç noktaları bu Tailscale üstbilgisi kimlik doğrulamasını kullanmaz; onun yerine gateway'in normal HTTP kimlik doğrulama modunu izler. Bu tokensız akış, gateway ana makinesinin güvenilir olduğunu varsayar. `tailscale.mode = "serve"` olduğunda varsayılan `true` olur. -- `gateway.auth.rateLimit`: isteğe bağlı başarısız kimlik doğrulama sınırlayıcısı. İstemci IP'si ve kimlik doğrulama kapsamı başına uygulanır (paylaşılan gizli anahtar ve cihaz token'ı bağımsız izlenir). Engellenen denemeler `429` + `Retry-After` döndürür. - - Eşzamansız Tailscale Serve Control UI yolunda, aynı `{scope, clientIp}` için başarısız denemeler hata yazımından önce serileştirilir. Bu nedenle aynı istemciden eşzamanlı kötü denemeler, ikisinin de düz eşleşmeme olarak yarışmasındansa ikinci istekte sınırlayıcıyı tetikleyebilir. - - `gateway.auth.rateLimit.exemptLoopback` varsayılan olarak `true`dur; localhost trafiğinin de rate limit'e tabi olmasını özellikle istediğinizde (`test` kurulumları veya katı proxy dağıtımları için) `false` yapın. -- Tarayıcı kökenli WS kimlik doğrulama denemeleri, loopback muafiyeti devre dışı olacak şekilde her zaman kısıtlanır (tarayıcı tabanlı localhost kaba kuvvet saldırılarına karşı ek savunma). -- Loopback üzerinde bu tarayıcı kökenli kilitlemeler, normalize edilmiş `Origin` - değeri başına yalıtılır; böylece bir localhost origin'inden gelen tekrarlı hatalar +- **Eski bind takma adları**: `gateway.bind` içinde ana makine takma adlarını (`0.0.0.0`, `127.0.0.1`, `localhost`, `::`, `::1`) değil, bind modu değerlerini (`auto`, `loopback`, `lan`, `tailnet`, `custom`) kullanın. +- **Docker notu**: varsayılan `loopback` bind, kapsayıcı içinde `127.0.0.1` üzerinde dinler. Docker bridge ağıyla (`-p 18789:18789`) trafik `eth0` üzerinden gelir, bu yüzden gateway'e erişilemez. `--network host` kullanın veya tüm arayüzlerde dinlemek için `bind: "lan"` (veya `customBindHost: "0.0.0.0"` ile `bind: "custom"`) ayarlayın. +- **Auth**: varsayılan olarak zorunludur. Loopback dışı bind'ler gateway auth gerektirir. Pratikte bu, paylaşılan bir token/parola veya `gateway.auth.mode: "trusted-proxy"` kullanan kimlik farkındalıklı bir reverse proxy anlamına gelir. Onboarding sihirbazı varsayılan olarak bir token üretir. +- Hem `gateway.auth.token` hem de `gateway.auth.password` yapılandırılmışsa (SecretRef'ler dahil), `gateway.auth.mode` değerini açıkça `token` veya `password` olarak ayarlayın. Her ikisi de yapılandırılmış ve mod ayarlanmamışsa başlangıç ile servis kurulum/onarma akışları başarısız olur. +- `gateway.auth.mode: "none"`: açıkça auth'suz mod. Bunu yalnızca güvenilen yerel loopback kurulumları için kullanın; onboarding istemlerinde kasıtlı olarak sunulmaz. +- `gateway.auth.mode: "trusted-proxy"`: auth işini kimlik farkındalıklı bir reverse proxy'ye devredin ve kimlik üstbilgileri için `gateway.trustedProxies` değerine güvenin (bkz. [Trusted Proxy Auth](/tr/gateway/trusted-proxy-auth)). Bu mod **loopback olmayan** bir proxy kaynağı bekler; aynı ana makinedeki loopback reverse proxy'ler trusted-proxy auth gereksinimini karşılamaz. +- `gateway.auth.allowTailscale`: `true` olduğunda Tailscale Serve kimlik üstbilgileri, Control UI/WebSocket auth gereksinimini karşılayabilir (`tailscale whois` ile doğrulanır). HTTP API uç noktaları bu Tailscale üstbilgi auth yöntemini kullanmaz; bunun yerine gateway'in normal HTTP auth modunu izler. Bu tokensız akış gateway ana makinesine güvenildiğini varsayar. `tailscale.mode = "serve"` olduğunda varsayılan `true` olur. +- `gateway.auth.rateLimit`: isteğe bağlı başarısız auth sınırlayıcısı. İstemci IP'si ve auth kapsamı başına uygulanır (paylaşılan gizli anahtar ve cihaz tokenı ayrı ayrı izlenir). Engellenen denemeler `429` + `Retry-After` döndürür. + - Eşzamansız Tailscale Serve Control UI yolunda aynı `{scope, clientIp}` için başarısız denemeler, başarısızlık yazımından önce serileştirilir. Bu nedenle aynı istemciden gelen eşzamanlı kötü denemeler, ikisinin de düz uyuşmazlık olarak geçmesi yerine ikinci istekte sınıra takılabilir. + - `gateway.auth.rateLimit.exemptLoopback` varsayılan olarak `true` değerindedir; localhost trafiğinin de hız sınırına tabi olmasını özellikle istediğinizde (`test` kurulumları veya sıkı proxy dağıtımları için) `false` yapın. +- Tarayıcı kaynaklı WS auth denemeleri, loopback muafiyeti devre dışı bırakılmış şekilde her zaman sınırlanır (tarayıcı tabanlı localhost brute force saldırılarına karşı ek savunma). +- Loopback üzerinde bu tarayıcı kaynaklı kilitlemeler, normalize edilmiş `Origin` + değeri başına yalıtılır; bu nedenle bir localhost origin'inden gelen tekrarlanan hatalar, farklı bir origin'i otomatik olarak kilitlemez. -- `tailscale.mode`: `serve` (yalnızca tailnet, loopback bind) veya `funnel` (genel, kimlik doğrulama gerektirir). -- `controlUi.allowedOrigins`: Gateway WebSocket bağlantıları için açık tarayıcı origin izin listesi. Loopback dışı origin'lerden tarayıcı istemcileri beklendiğinde gereklidir. -- `controlUi.dangerouslyAllowHostHeaderOriginFallback`: Host-header origin ilkesine bilinçli olarak dayanan dağıtımlar için tehlikeli mod; Host-header origin fallback'i etkinleştirir. +- `tailscale.mode`: `serve` (yalnızca tailnet, loopback bind) veya `funnel` (herkese açık, auth gerekir). +- `controlUi.allowedOrigins`: Gateway WebSocket bağlantıları için açık tarayıcı origin izin listesi. Tarayıcı istemcilerinin loopback dışı origin'lerden gelmesi beklendiğinde zorunludur. +- `controlUi.dangerouslyAllowHostHeaderOriginFallback`: bilerek Host-header origin ilkesine dayanan dağıtımlar için Host-header origin fallback'ini etkinleştiren tehlikeli mod. - `remote.transport`: `ssh` (varsayılan) veya `direct` (ws/wss). `direct` için `remote.url`, `ws://` veya `wss://` olmalıdır. -- `OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1`: güvenilen özel ağ IP'lerine düz metin `ws://` kullanımına izin veren istemci taraflı acil durum geçersiz kılması; varsayılan olarak düz metin yalnızca loopback için kalır. -- `gateway.remote.token` / `.password`, uzak istemci kimlik bilgisi alanlarıdır. Bunlar tek başına gateway kimlik doğrulamasını yapılandırmaz. -- `gateway.push.apns.relay.baseUrl`: resmi/TestFlight iOS derlemeleri relay destekli kayıtları gateway'e yayımladıktan sonra kullanılan harici APNs relay için temel HTTPS URL'si. Bu URL, iOS derlemesine gömülü relay URL'si ile eşleşmelidir. -- `gateway.push.apns.relay.timeoutMs`: gateway'den relay'e gönderim zaman aşımı, milisaniye cinsinden. Varsayılan: `10000`. -- Relay destekli kayıtlar belirli bir gateway kimliğine devredilir. Eşlenmiş iOS uygulaması `gateway.identity.get` çağrısı yapar, bu kimliği relay kaydına dahil eder ve gateway'e kayıt kapsamlı bir gönderim yetkisi iletir. Başka bir gateway bu saklanan kaydı yeniden kullanamaz. +- `OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1`: güvenilen özel ağ IP'lerine düz metin `ws://` erişimine izin veren istemci tarafı acil durum geçersiz kılması; varsayılan olarak düz metin için yalnızca loopback'e izin verilir. +- `gateway.remote.token` / `.password`, uzak istemci kimlik bilgisi alanlarıdır. Tek başlarına gateway auth yapılandırmazlar. +- `gateway.push.apns.relay.baseUrl`: resmi/TestFlight iOS derlemeleri relay destekli kayıtları gateway'e yayımladıktan sonra kullanılan harici APNs relay için temel HTTPS URL'si. Bu URL, iOS derlemesine derlenmiş relay URL'siyle eşleşmelidir. +- `gateway.push.apns.relay.timeoutMs`: gateway'den relay'e gönderim zaman aşımı süresi (milisaniye). Varsayılan: `10000`. +- Relay destekli kayıtlar belirli bir gateway kimliğine devredilir. Eşleştirilmiş iOS uygulaması `gateway.identity.get` çağrısını alır, bu kimliği relay kaydına dahil eder ve kayıt kapsamlı bir gönderim iznini gateway'e iletir. Başka bir gateway bu saklanan kaydı yeniden kullanamaz. - `OPENCLAW_APNS_RELAY_BASE_URL` / `OPENCLAW_APNS_RELAY_TIMEOUT_MS`: yukarıdaki relay yapılandırması için geçici ortam değişkeni geçersiz kılmaları. -- `OPENCLAW_APNS_RELAY_ALLOW_HTTP=true`: loopback HTTP relay URL'leri için yalnızca geliştirme amaçlı kaçış yolu. Üretim relay URL'leri HTTPS üzerinde kalmalıdır. -- `gateway.channelHealthCheckMinutes`: kanal sağlık izleme aralığı, dakika cinsinden. Sağlık izleyici yeniden başlatmalarını genel olarak devre dışı bırakmak için `0` ayarlayın. Varsayılan: `5`. -- `gateway.channelStaleEventThresholdMinutes`: bayat soket eşiği, dakika cinsinden. Bunu `gateway.channelHealthCheckMinutes` değerinden büyük veya eşit tutun. Varsayılan: `30`. -- `gateway.channelMaxRestartsPerHour`: kayan bir saat içinde kanal/hesap başına en fazla sağlık izleyici yeniden başlatması. Varsayılan: `10`. -- `channels..healthMonitor.enabled`: genel izleyiciyi etkin bırakırken sağlık izleyici yeniden başlatmaları için kanal başına devre dışı bırakma seçeneği. -- `channels..accounts..healthMonitor.enabled`: çok hesaplı kanallar için hesap başına geçersiz kılma. Ayarlandığında kanal düzeyi geçersiz kılmadan daha önceliklidir. +- `OPENCLAW_APNS_RELAY_ALLOW_HTTP=true`: loopback HTTP relay URL'leri için yalnızca geliştirme amaçlı kaçış kapısı. Üretim relay URL'leri HTTPS üzerinde kalmalıdır. +- `gateway.channelHealthCheckMinutes`: kanal sağlık izleme aralığı, dakika cinsinden. Sağlık izleme yeniden başlatmalarını genel olarak devre dışı bırakmak için `0` ayarlayın. Varsayılan: `5`. +- `gateway.channelStaleEventThresholdMinutes`: bayat soket eşiği, dakika cinsinden. Bunu `gateway.channelHealthCheckMinutes` değerinden büyük veya ona eşit tutun. Varsayılan: `30`. +- `gateway.channelMaxRestartsPerHour`: kayan bir saat içinde kanal/hesap başına azami sağlık izleme yeniden başlatması. Varsayılan: `10`. +- `channels..healthMonitor.enabled`: genel izleyiciyi etkin tutarken sağlık izleme yeniden başlatmalarından kanal başına çıkış seçeneği. +- `channels..accounts..healthMonitor.enabled`: çok hesaplı kanallar için hesap başına geçersiz kılma. Ayarlandığında kanal düzeyi geçersiz kılmanın önüne geçer. - Yerel gateway çağrı yolları, yalnızca `gateway.auth.*` ayarlanmamışsa yedek olarak `gateway.remote.*` kullanabilir. -- `gateway.auth.token` / `gateway.auth.password`, SecretRef ile açıkça yapılandırılmış ancak çözümlenememişse çözümleme fail-closed olur (uzak yedek bu durumu maskelemez). -- `trustedProxies`: TLS sonlandıran veya iletilmiş istemci üstbilgileri ekleyen ters proxy IP'leri. Yalnızca denetiminizde olan proxy'leri listeleyin. Loopback girdileri, aynı ana makine proxy/yerel algılama kurulumları (örneğin Tailscale Serve veya yerel ters proxy) için yine geçerlidir, ancak loopback isteklerini `gateway.auth.mode: "trusted-proxy"` için uygun hâle getirmez. -- `allowRealIpFallback`: `true` olduğunda gateway, `X-Forwarded-For` eksikse `X-Real-IP` kabul eder. Fail-closed davranış için varsayılan `false`. -- `gateway.tools.deny`: HTTP `POST /tools/invoke` için engellenen ek araç adlarıdır (varsayılan deny listesini genişletir). -- `gateway.tools.allow`: araç adlarını varsayılan HTTP deny listesinden çıkarır. +- `gateway.auth.token` / `gateway.auth.password`, SecretRef ile açıkça yapılandırılmış ancak çözümlenmemişse çözümleme fail-closed olur (uzak yedek bu durumu maskelemez). +- `trustedProxies`: TLS sonlandıran veya yönlendirilmiş istemci üstbilgileri ekleyen reverse proxy IP'leri. Yalnızca kontrol ettiğiniz proxy'leri listeleyin. Loopback girdileri, aynı ana makine proxy/yerel algılama kurulumları için yine geçerlidir (örneğin Tailscale Serve veya yerel reverse proxy), ancak loopback isteklerini `gateway.auth.mode: "trusted-proxy"` için uygun hale getirmezler. +- `allowRealIpFallback`: `true` olduğunda, `X-Forwarded-For` eksikse gateway `X-Real-IP` kabul eder. Fail-closed davranış için varsayılan `false`. +- `gateway.tools.deny`: HTTP `POST /tools/invoke` için engellenen ek araç adlarıdır (varsayılan ret listesini genişletir). +- `gateway.tools.allow`: varsayılan HTTP ret listesinden araç adlarını kaldırır. @@ -2980,18 +2964,18 @@ Bkz. [Plugins](/tr/tools/plugin). - Chat Completions: varsayılan olarak devre dışıdır. `gateway.http.endpoints.chatCompletions.enabled: true` ile etkinleştirin. - Responses API: `gateway.http.endpoints.responses.enabled`. -- Responses URL-girdisi güçlendirmesi: +- Responses URL girdi sağlamlaştırması: - `gateway.http.endpoints.responses.maxUrlParts` - `gateway.http.endpoints.responses.files.urlAllowlist` - `gateway.http.endpoints.responses.images.urlAllowlist` - Boş allowlist değerleri ayarlanmamış sayılır; URL getirmeyi devre dışı bırakmak için `gateway.http.endpoints.responses.files.allowUrl=false` + Boş izin listeleri ayarlanmamış sayılır; URL getirmeyi devre dışı bırakmak için `gateway.http.endpoints.responses.files.allowUrl=false` ve/veya `gateway.http.endpoints.responses.images.allowUrl=false` kullanın. -- İsteğe bağlı yanıt güçlendirme üstbilgisi: - - `gateway.http.securityHeaders.strictTransportSecurity` (yalnızca denetiminizdeki HTTPS origin'leri için ayarlayın; bkz. [Trusted Proxy Auth](/tr/gateway/trusted-proxy-auth#tls-termination-and-hsts)) +- İsteğe bağlı yanıt sağlamlaştırma üstbilgisi: + - `gateway.http.securityHeaders.strictTransportSecurity` (yalnızca kontrol ettiğiniz HTTPS origin'ler için ayarlayın; bkz. [Trusted Proxy Auth](/tr/gateway/trusted-proxy-auth#tls-termination-and-hsts)) -### Çok örnekli yalıtım +### Çoklu örnek yalıtımı -Tek bir ana makinede benzersiz portlar ve durum dizinleriyle birden fazla gateway çalıştırın: +Benzersiz portlar ve durum dizinleriyle bir ana makinede birden fazla gateway çalıştırın: ```bash OPENCLAW_CONFIG_PATH=~/.openclaw/a.json \ @@ -2999,9 +2983,9 @@ OPENCLAW_STATE_DIR=~/.openclaw-a \ openclaw gateway --port 19001 ``` -Kolaylık bayrakları: `--dev` (`~/.openclaw-dev` + port `19001` kullanır), `--profile ` (`~/.openclaw-` kullanır). +Kolaylık bayrakları: `--dev` (`~/.openclaw-dev` + `19001` portunu kullanır), `--profile ` (`~/.openclaw-` kullanır). -Bkz. [Birden Fazla Gateway](/tr/gateway/multiple-gateways). +Bkz. [Multiple Gateways](/tr/gateway/multiple-gateways). ### `gateway.tls` @@ -3019,8 +3003,8 @@ Bkz. [Birden Fazla Gateway](/tr/gateway/multiple-gateways). } ``` -- `enabled`: gateway dinleyicisinde TLS sonlandırmasını etkinleştirir (HTTPS/WSS) (varsayılan: `false`). -- `autoGenerate`: açık dosyalar yapılandırılmadığında yerel, self-signed bir cert/key çifti otomatik üretir; yalnızca yerel/geliştirme kullanımı içindir. +- `enabled`: gateway dinleyicisinde TLS sonlandırmayı etkinleştirir (HTTPS/WSS) (varsayılan: `false`). +- `autoGenerate`: açık dosyalar yapılandırılmadığında yerel, self-signed bir sertifika/anahtar çifti otomatik oluşturur; yalnızca yerel/geliştirme kullanımı içindir. - `certPath`: TLS sertifika dosyasının dosya sistemi yolu. - `keyPath`: TLS özel anahtar dosyasının dosya sistemi yolu; izinleri kısıtlı tutun. - `caPath`: istemci doğrulaması veya özel güven zincirleri için isteğe bağlı CA bundle yolu. @@ -3039,13 +3023,13 @@ Bkz. [Birden Fazla Gateway](/tr/gateway/multiple-gateways). } ``` -- `mode`: config düzenlemelerinin çalışma zamanında nasıl uygulanacağını denetler. - - `"off"`: canlı düzenlemeleri yok say; değişiklikler açık yeniden başlatma gerektirir. - - `"restart"`: config değişikliğinde gateway sürecini her zaman yeniden başlat. - - `"hot"`: yeniden başlatmadan süreç içinde değişiklikleri uygula. - - `"hybrid"` (varsayılan): önce hot reload dene; gerekirse yeniden başlatmaya geri dön. -- `debounceMs`: config değişiklikleri uygulanmadan önceki debounce penceresi, ms cinsinden (negatif olmayan tam sayı). -- `deferralTimeoutMs`: yeniden başlatmayı zorlamadan önce devam eden işlemler için beklenecek en yüksek süre, ms cinsinden (varsayılan: `300000` = 5 dakika). +- `mode`: yapılandırma düzenlemelerinin çalışma zamanında nasıl uygulanacağını denetler. + - `"off"`: canlı düzenlemeleri yok sayar; değişiklikler açık bir yeniden başlatma gerektirir. + - `"restart"`: yapılandırma değişikliğinde gateway sürecini her zaman yeniden başlatır. + - `"hot"`: yeniden başlatmadan, süreç içinde uygular. + - `"hybrid"` (varsayılan): önce hot reload dener; gerekirse yeniden başlatmaya geri döner. +- `debounceMs`: yapılandırma değişiklikleri uygulanmadan önce milisaniye cinsinden debounce penceresi (negatif olmayan tamsayı). +- `deferralTimeoutMs`: devam eden işlemleri beklerken yeniden başlatmayı zorlamadan önce beklenecek azami süre, milisaniye cinsinden (varsayılan: `300000` = 5 dakika). --- @@ -3072,7 +3056,7 @@ Bkz. [Birden Fazla Gateway](/tr/gateway/multiple-gateways). wakeMode: "now", name: "Gmail", sessionKey: "hook:gmail:{{messages[0].id}}", - messageTemplate: "Kimden: {{messages[0].from}}\nKonu: {{messages[0].subject}}\n{{messages[0].snippet}}", + messageTemplate: "From: {{messages[0].from}}\nSubject: {{messages[0].subject}}\n{{messages[0].snippet}}", deliver: true, channel: "last", model: "openai/gpt-5.4-mini", @@ -3083,12 +3067,12 @@ Bkz. [Birden Fazla Gateway](/tr/gateway/multiple-gateways). ``` Kimlik doğrulama: `Authorization: Bearer ` veya `x-openclaw-token: `. -Sorgu dizesi hook token'ları reddedilir. +Sorgu dizesi hook tokenları reddedilir. Doğrulama ve güvenlik notları: - `hooks.enabled=true`, boş olmayan bir `hooks.token` gerektirir. -- `hooks.token`, `gateway.auth.token` değerinden **farklı** olmalıdır; Gateway token'ını yeniden kullanmak reddedilir. +- `hooks.token`, `gateway.auth.token` değerinden **farklı** olmalıdır; Gateway tokenını yeniden kullanmak reddedilir. - `hooks.path`, `/` olamaz; `/hooks` gibi özel bir alt yol kullanın. - `hooks.allowRequestSessionKey=true` ise `hooks.allowedSessionKeyPrefixes` değerini sınırlandırın (örneğin `["hook:"]`). @@ -3096,23 +3080,23 @@ Doğrulama ve güvenlik notları: - `POST /hooks/wake` → `{ text, mode?: "now"|"next-heartbeat" }` - `POST /hooks/agent` → `{ message, name?, agentId?, sessionKey?, wakeMode?, deliver?, channel?, to?, model?, thinking?, timeoutSeconds? }` - - İstek yükündeki `sessionKey`, yalnızca `hooks.allowRequestSessionKey=true` ise kabul edilir (varsayılan: `false`). + - İstek yükündeki `sessionKey`, yalnızca `hooks.allowRequestSessionKey=true` olduğunda kabul edilir (varsayılan: `false`). - `POST /hooks/` → `hooks.mappings` üzerinden çözülür -- `match.path`, `/hooks` sonrasındaki alt yol ile eşleşir (ör. `/hooks/gmail` → `gmail`). -- `match.source`, genel yollar için payload alanıyla eşleşir. -- `{{messages[0].subject}}` gibi şablonlar payload içinden okunur. -- `transform`, hook eylemi döndüren bir JS/TS modülünü işaret edebilir. - - `transform.module`, göreli bir yol olmalıdır ve `hooks.transformsDir` içinde kalmalıdır (mutlak yollar ve dizin geçişi reddedilir). +- `match.path`, `/hooks` sonrasındaki alt yolu eşleştirir (ör. `/hooks/gmail` → `gmail`). +- `match.source`, genel yollar için bir yük alanını eşleştirir. +- `{{messages[0].subject}}` gibi şablonlar yükten okur. +- `transform`, bir hook eylemi döndüren JS/TS modülünü işaret edebilir. + - `transform.module` göreli bir yol olmalı ve `hooks.transformsDir` içinde kalmalıdır (mutlak yollar ve yol geçişleri reddedilir). - `agentId`, belirli bir ajana yönlendirir; bilinmeyen kimlikler varsayılan ajana geri döner. -- `allowedAgentIds`: açık yönlendirmeyi sınırlar (`*` veya belirtilmemiş = hepsine izin ver, `[]` = hepsini reddet). -- `defaultSessionKey`: açık `sessionKey` olmayan hook ajan çalıştırmaları için isteğe bağlı sabit oturum anahtarı. -- `allowRequestSessionKey`: `/hooks/agent` çağıranlarının `sessionKey` ayarlamasına izin ver (varsayılan: `false`). +- `allowedAgentIds`: açık yönlendirmeyi kısıtlar (`*` veya atlanmış = tümüne izin ver, `[]` = tümünü reddet). +- `defaultSessionKey`: açık `sessionKey` olmadan hook ajan çalıştırmaları için isteğe bağlı sabit oturum anahtarı. +- `allowRequestSessionKey`: `/hooks/agent` çağıranlarının `sessionKey` ayarlamasına izin verir (varsayılan: `false`). - `allowedSessionKeyPrefixes`: açık `sessionKey` değerleri için isteğe bağlı önek izin listesi (istek + eşleme), ör. `["hook:"]`. - `deliver: true`, son yanıtı bir kanala gönderir; `channel` varsayılan olarak `last` olur. -- `model`, bu hook çalıştırması için LLM'yi geçersiz kılar (model kataloğu ayarlıysa buna izin verilmiş olmalıdır). +- `model`, bu hook çalıştırması için LLM'i geçersiz kılar (model kataloğu ayarlıysa izinli olmalıdır). @@ -3139,7 +3123,7 @@ Doğrulama ve güvenlik notları: } ``` -- Yapılandırıldığında Gateway, önyüklemede `gog gmail watch serve` işlemini otomatik başlatır. Devre dışı bırakmak için `OPENCLAW_SKIP_GMAIL_WATCHER=1` ayarlayın. +- Gateway yapılandırıldığında önyüklemede `gog gmail watch serve` işlemini otomatik başlatır. Devre dışı bırakmak için `OPENCLAW_SKIP_GMAIL_WATCHER=1` ayarlayın. - Gateway ile birlikte ayrı bir `gog gmail watch serve` çalıştırmayın. --- @@ -3156,18 +3140,18 @@ Doğrulama ve güvenlik notları: } ``` -- Ajan tarafından düzenlenebilir HTML/CSS/JS ve A2UI öğelerini Gateway portu altında HTTP üzerinden sunar: +- Gateway portu altında HTTP üzerinden ajan tarafından düzenlenebilir HTML/CSS/JS ve A2UI sunar: - `http://:/__openclaw__/canvas/` - `http://:/__openclaw__/a2ui/` -- Yalnızca yerel: `gateway.bind: "loopback"` (varsayılan) olarak bırakın. -- Loopback dışı bind'lerde canvas rotaları, diğer Gateway HTTP yüzeyleriyle aynı şekilde Gateway kimlik doğrulaması gerektirir (token/password/trusted-proxy). -- Node WebView'ler genellikle kimlik doğrulama üstbilgisi göndermez; bir node eşleştirilip bağlandıktan sonra Gateway, canvas/A2UI erişimi için node kapsamlı capability URL'leri duyurur. -- Capability URL'leri etkin node WS oturumuna bağlıdır ve kısa sürede sona erer. IP tabanlı fallback kullanılmaz. -- Sunulan HTML içine live-reload istemcisi ekler. +- Yalnızca yerel kullanım: `gateway.bind: "loopback"` (varsayılan) olarak bırakın. +- Loopback dışı bind'lerde canvas rotaları, diğer Gateway HTTP yüzeyleriyle aynı şekilde Gateway auth (token/password/trusted-proxy) gerektirir. +- Node WebView'lar genellikle auth üstbilgisi göndermez; bir node eşleştirilip bağlandıktan sonra Gateway, canvas/A2UI erişimi için node kapsamlı yetenek URL'leri duyurur. +- Yetenek URL'leri etkin node WS oturumuna bağlıdır ve hızlıca sona erer. IP tabanlı yedek kullanılmaz. +- Sunulan HTML içine live-reload istemcisi enjekte eder. - Boş olduğunda başlangıç `index.html` dosyasını otomatik oluşturur. -- Ayrıca A2UI'yi `/__openclaw__/a2ui/` altında sunar. -- Değişiklikler gateway yeniden başlatması gerektirir. -- Büyük dizinlerde veya `EMFILE` hatalarında live reload'u devre dışı bırakın. +- A2UI'yi ayrıca `/__openclaw__/a2ui/` altında sunar. +- Değişiklikler bir gateway yeniden başlatması gerektirir. +- Büyük dizinler veya `EMFILE` hataları için live reload'u devre dışı bırakın. --- @@ -3199,7 +3183,7 @@ Doğrulama ve güvenlik notları: } ``` -`~/.openclaw/dns/` altında bir unicast DNS-SD bölgesi yazar. Ağlar arası keşif için bunu bir DNS sunucusuyla (CoreDNS önerilir) + Tailscale split DNS ile eşleştirin. +`~/.openclaw/dns/` altında bir unicast DNS-SD bölgesi yazar. Ağlar arası keşif için bunu bir DNS sunucusu (CoreDNS önerilir) + Tailscale split DNS ile eşleştirin. Kurulum: `openclaw dns setup --apply`. @@ -3225,13 +3209,13 @@ Kurulum: `openclaw dns setup --apply`. ``` - Satır içi ortam değişkenleri yalnızca süreç ortamında anahtar eksikse uygulanır. -- `.env` dosyaları: CWD `.env` + `~/.openclaw/.env` (hiçbiri mevcut değişkenleri geçersiz kılmaz). -- `shellEnv`: beklenen eksik anahtarları login shell profilinizden içe aktarır. +- `.env` dosyaları: geçerli çalışma dizini `.env` + `~/.openclaw/.env` (hiçbiri mevcut değişkenlerin üzerine yazmaz). +- `shellEnv`: eksik beklenen anahtarları giriş kabuğu profilinizden içe aktarır. - Tam öncelik için bkz. [Environment](/tr/help/environment). -### Ortam değişkeni yerine koyma +### Ortam değişkeni yerleştirme -Herhangi bir yapılandırma dizesinde ortam değişkenlerine `${VAR_NAME}` ile başvurun: +Herhangi bir yapılandırma dizesinde `${VAR_NAME}` ile ortam değişkenlerine başvurun: ```json5 { @@ -3241,20 +3225,20 @@ Herhangi bir yapılandırma dizesinde ortam değişkenlerine `${VAR_NAME}` ile b } ``` -- Yalnızca şu desene uyan büyük harfli adlar eşleşir: `[A-Z_][A-Z0-9_]*`. -- Eksik/boş değişkenler config yüklemede hata verir. -- Gerçek `${VAR}` için `$${VAR}` ile kaçış uygulayın. +- Yalnızca büyük harfli adlar eşleşir: `[A-Z_][A-Z0-9_]*`. +- Eksik/boş değişkenler yapılandırma yüklemede hata oluşturur. +- Düz `${VAR}` kullanmak için `$${VAR}` ile kaçış yapın. - `$include` ile çalışır. --- ## Secrets -Secret ref'ler eklemelidir: düz metin değerler yine çalışır. +SecretRef'ler ekleyicidir: düz metin değerler çalışmaya devam eder. ### `SecretRef` -Tek nesne biçimi kullanın: +Tek bir nesne biçimi kullanın: ```json5 { source: "env" | "file" | "exec", provider: "default", id: "..." } @@ -3264,15 +3248,15 @@ Doğrulama: - `provider` deseni: `^[a-z][a-z0-9_-]{0,63}$` - `source: "env"` id deseni: `^[A-Z][A-Z0-9_]{0,127}$` -- `source: "file"` id: mutlak JSON pointer (örneğin `"/providers/openai/apiKey"`) +- `source: "file"` id: mutlak JSON işaretçisi (örneğin `"/providers/openai/apiKey"`) - `source: "exec"` id deseni: `^[A-Za-z0-9][A-Za-z0-9._:/-]{0,255}$` -- `source: "exec"` kimlikleri `.` veya `..` ile ayrılmış eğik çizgi yol bölümleri içermemelidir (örneğin `a/../b` reddedilir) +- `source: "exec"` kimlikleri `.` veya `..` eğik çizgiyle ayrılmış yol bölümleri içermemelidir (örneğin `a/../b` reddedilir) ### Desteklenen kimlik bilgisi yüzeyi - Kanonik matris: [SecretRef Credential Surface](/tr/reference/secretref-credential-surface) - `secrets apply`, desteklenen `openclaw.json` kimlik bilgisi yollarını hedefler. -- `auth-profiles.json` başvuruları çalışma zamanı çözümlemesi ve denetim kapsamına dahildir. +- `auth-profiles.json` referansları çalışma zamanı çözümlemesine ve denetim kapsamına dahildir. ### Secret sağlayıcıları yapılandırması @@ -3305,16 +3289,16 @@ Doğrulama: Notlar: - `file` sağlayıcısı `mode: "json"` ve `mode: "singleValue"` destekler (`singleValue` modunda `id` değeri `"value"` olmalıdır). -- `exec` sağlayıcısı mutlak bir `command` yolu gerektirir ve stdin/stdout üzerinde protokol yükleri kullanır. -- Varsayılan olarak sembolik bağlantı komut yolları reddedilir. Sembolik bağlantı yollarına izin verirken çözümlenen hedef yolu doğrulamak için `allowSymlinkCommand: true` ayarlayın. -- `trustedDirs` yapılandırılmışsa, güvenilir dizin denetimi çözümlenen hedef yola uygulanır. -- `exec` alt süreç ortamı varsayılan olarak en aza indirilmiştir; gerekli değişkenleri `passEnv` ile açıkça geçirin. -- Secret ref'ler etkinleştirme zamanında bellek içi bir anlık görüntüye çözülür, ardından istek yolları yalnızca bu anlık görüntüyü okur. -- Etkin yüzey filtrelemesi etkinleştirme sırasında uygulanır: etkin yüzeylerdeki çözümlenmemiş ref'ler başlatma/yeniden yüklemeyi başarısız kılar, etkin olmayan yüzeyler ise tanılama ile atlanır. +- `exec` sağlayıcısı mutlak `command` yolu gerektirir ve stdin/stdout üzerinde protokol yükleri kullanır. +- Varsayılan olarak symlink komut yolları reddedilir. Çözümlenen hedef yol doğrulanırken symlink yollarına izin vermek için `allowSymlinkCommand: true` ayarlayın. +- `trustedDirs` yapılandırılmışsa güvenilen dizin denetimi çözümlenen hedef yola uygulanır. +- `exec` alt süreç ortamı varsayılan olarak minimaldir; gerekli değişkenleri `passEnv` ile açıkça geçin. +- SecretRef'ler etkinleştirme sırasında bellek içi bir anlık görüntüye çözülür; ardından istek yolları yalnızca bu anlık görüntüyü okur. +- Etkin yüzey filtrelemesi etkinleştirme sırasında uygulanır: etkin yüzeylerde çözümlenmemiş referanslar başlangıç/yeniden yüklemeyi başarısız kılar, etkin olmayan yüzeyler ise tanılamayla atlanır. --- -## Kimlik doğrulama depolaması +## Auth depolama ```json5 { @@ -3332,13 +3316,13 @@ Notlar: } ``` -- Ajan başına profiller `/auth-profiles.json` altında saklanır. -- `auth-profiles.json`, statik kimlik bilgisi modları için değer düzeyinde ref'leri (`api_key` için `keyRef`, `token` için `tokenRef`) destekler. -- OAuth modu profilleri (`auth.profiles..mode = "oauth"`), SecretRef destekli auth-profile kimlik bilgilerini desteklemez. +- Ajan başına profiller `/auth-profiles.json` içinde saklanır. +- `auth-profiles.json`, statik kimlik bilgisi modları için değer düzeyinde referansları (`api_key` için `keyRef`, `token` için `tokenRef`) destekler. +- OAuth modlu profiller (`auth.profiles..mode = "oauth"`), SecretRef destekli auth-profile kimlik bilgilerini desteklemez. - Statik çalışma zamanı kimlik bilgileri, çözülmüş bellek içi anlık görüntülerden gelir; eski statik `auth.json` girdileri bulunduğunda temizlenir. -- Eski OAuth içe aktarımları `~/.openclaw/credentials/oauth.json` içindendir. +- Eski OAuth aktarımları `~/.openclaw/credentials/oauth.json` içinden alınır. - Bkz. [OAuth](/tr/concepts/oauth). -- Secrets çalışma zamanı davranışı ve `audit/configure/apply` araçları: [Secrets Management](/tr/gateway/secrets). +- Secrets çalışma zamanı davranışı ile `audit/configure/apply` araçları: [Secrets Management](/tr/gateway/secrets). ### `auth.cooldowns` @@ -3360,22 +3344,15 @@ Notlar: } ``` -- `billingBackoffHours`: gerçek - faturalama/yetersiz kredi hataları nedeniyle bir profil başarısız olduğunda saat cinsinden temel backoff - (varsayılan: `5`). Açık faturalama metni - `401`/`403` yanıtlarında bile buraya düşebilir, ancak sağlayıcıya özel metin - eşleyiciler yalnızca kendilerine ait sağlayıcıyla sınırlı kalır (örneğin OpenRouter - `Key limit exceeded`). Yeniden denenebilir HTTP `402` kullanım penceresi veya - organization/workspace harcama limiti iletileri bunun yerine `rate_limit` yolunda - kalır. -- `billingBackoffHoursByProvider`: faturalama backoff saatleri için isteğe bağlı sağlayıcı başına geçersiz kılmalar. -- `billingMaxHours`: faturalama backoff üstel büyümesi için saat cinsinden üst sınır (varsayılan: `24`). -- `authPermanentBackoffMinutes`: yüksek güvenli `auth_permanent` hataları için dakika cinsinden temel backoff (varsayılan: `10`). -- `authPermanentMaxMinutes`: `auth_permanent` backoff büyümesi için dakika cinsinden üst sınır (varsayılan: `60`). -- `failureWindowHours`: backoff sayaçları için kullanılan kayan pencere, saat cinsinden (varsayılan: `24`). -- `overloadedProfileRotations`: model fallback'e geçmeden önce aşırı yük hatalarında aynı sağlayıcı auth-profile dönüşümleri için azami sayı (varsayılan: `1`). `ModelNotReadyException` gibi sağlayıcı meşgul şekilleri burada değerlendirilir. -- `overloadedBackoffMs`: aşırı yüklenmiş sağlayıcı/profil dönüşümünü yeniden denemeden önce sabit gecikme (varsayılan: `0`). -- `rateLimitedProfileRotations`: model fallback'e geçmeden önce rate-limit hatalarında aynı sağlayıcı auth-profile dönüşümleri için azami sayı (varsayılan: `1`). Bu rate-limit kovası, `Too many concurrent requests`, `ThrottlingException`, `concurrency limit reached`, `workers_ai ... quota limit exceeded` ve `resource exhausted` gibi sağlayıcı biçimli metinleri içerir. +- `billingBackoffHours`: bir profil gerçek faturalandırma/yetersiz kredi hataları nedeniyle başarısız olduğunda temel geri çekilme süresi, saat cinsinden (varsayılan: `5`). Açık faturalandırma metni `401`/`403` yanıtlarında bile yine bu yola düşebilir, ancak sağlayıcıya özgü metin eşleştiriciler onları sahiplenen sağlayıcıyla sınırlı kalır (örneğin OpenRouter `Key limit exceeded`). Yeniden denenebilir HTTP `402` kullanım penceresi veya organizasyon/çalışma alanı harcama sınırı mesajları bunun yerine `rate_limit` yolunda kalır. +- `billingBackoffHoursByProvider`: faturalandırma geri çekilme süresi için sağlayıcı başına isteğe bağlı geçersiz kılmalar. +- `billingMaxHours`: faturalandırma geri çekilme süresi üstel büyümesi için üst sınır, saat cinsinden (varsayılan: `24`). +- `authPermanentBackoffMinutes`: yüksek güvenli `auth_permanent` hataları için temel geri çekilme süresi, dakika cinsinden (varsayılan: `10`). +- `authPermanentMaxMinutes`: `auth_permanent` geri çekilme büyümesi için üst sınır, dakika cinsinden (varsayılan: `60`). +- `failureWindowHours`: geri çekilme sayaçları için kullanılan kayan pencere, saat cinsinden (varsayılan: `24`). +- `overloadedProfileRotations`: model fallback'ine geçmeden önce aşırı yük hataları için aynı sağlayıcı auth-profile döndürme sayısının üst sınırı (varsayılan: `1`). `ModelNotReadyException` gibi sağlayıcı meşgul şekilleri buraya düşer. +- `overloadedBackoffMs`: aşırı yüklü bir sağlayıcı/profil döndürmesini yeniden denemeden önce sabit gecikme, milisaniye cinsinden (varsayılan: `0`). +- `rateLimitedProfileRotations`: model fallback'ine geçmeden önce rate-limit hataları için aynı sağlayıcı auth-profile döndürme sayısının üst sınırı (varsayılan: `1`). Bu rate-limit kovası; `Too many concurrent requests`, `ThrottlingException`, `concurrency limit reached`, `workers_ai ... quota limit exceeded` ve `resource exhausted` gibi sağlayıcı biçimli metinleri de içerir. --- @@ -3395,9 +3372,9 @@ Notlar: ``` - Varsayılan günlük dosyası: `/tmp/openclaw/openclaw-YYYY-MM-DD.log`. -- Sabit bir yol için `logging.file` ayarlayın. -- `consoleLevel`, `--verbose` olduğunda `debug` seviyesine çıkar. -- `maxFileBytes`: yazmalar bastırılmadan önce izin verilen en büyük günlük dosyası boyutu, bayt cinsinden (pozitif tam sayı; varsayılan: `524288000` = 500 MB). Üretim dağıtımları için harici günlük döndürme kullanın. +- Kararlı bir yol için `logging.file` ayarlayın. +- `consoleLevel`, `--verbose` ile `debug` düzeyine çıkar. +- `maxFileBytes`: yazmalar bastırılmadan önce azami günlük dosyası boyutu, bayt cinsinden (pozitif tamsayı; varsayılan: `524288000` = 500 MB). Üretim dağıtımları için harici günlük döndürme kullanın. --- @@ -3434,20 +3411,20 @@ Notlar: } ``` -- `enabled`: instrumentation çıktısı için ana anahtar (varsayılan: `true`). -- `flags`: hedeflenmiş günlük çıktısını etkinleştiren bayrak dizileri dizisi (`"telegram.*"` veya `"*"` gibi joker karakterleri destekler). -- `stuckSessionWarnMs`: bir oturum işleniyor durumunda kalırken takılmış oturum uyarıları yayımlamak için yaş eşiği, ms cinsinden. +- `enabled`: araçsal çıktı için ana anahtar (varsayılan: `true`). +- `flags`: hedefli günlük çıktısını etkinleştiren bayrak dizeleri dizisi ( `"telegram.*"` veya `"*"` gibi joker karakterleri destekler). +- `stuckSessionWarnMs`: bir oturum işleme durumunda kalırken takılmış oturum uyarıları üretmek için milisaniye cinsinden yaş eşiği. - `otel.enabled`: OpenTelemetry dışa aktarma hattını etkinleştirir (varsayılan: `false`). -- `otel.endpoint`: OTel dışa aktarma için toplayıcı URL'si. +- `otel.endpoint`: OTel dışa aktarımı için toplayıcı URL'si. - `otel.protocol`: `"http/protobuf"` (varsayılan) veya `"grpc"`. - `otel.headers`: OTel dışa aktarma istekleriyle gönderilen ek HTTP/gRPC meta veri üstbilgileri. - `otel.serviceName`: kaynak öznitelikleri için hizmet adı. -- `otel.traces` / `otel.metrics` / `otel.logs`: trace, metrics veya log dışa aktarmayı etkinleştirir. -- `otel.sampleRate`: `0`–`1` aralığında trace örnekleme oranı. -- `otel.flushIntervalMs`: periyodik telemetry flush aralığı, ms cinsinden. -- `cacheTrace.enabled`: embedded çalıştırmalar için önbellek iz anlık görüntülerini günlüğe kaydeder (varsayılan: `false`). -- `cacheTrace.filePath`: önbellek izi JSONL çıktısı yolu (varsayılan: `$OPENCLAW_STATE_DIR/logs/cache-trace.jsonl`). -- `cacheTrace.includeMessages` / `includePrompt` / `includeSystem`: önbellek izi çıktısına nelerin dahil edileceğini denetler (hepsinin varsayılanı: `true`). +- `otel.traces` / `otel.metrics` / `otel.logs`: iz, metrik veya günlük dışa aktarımını etkinleştirir. +- `otel.sampleRate`: `0`–`1` aralığında iz örnekleme oranı. +- `otel.flushIntervalMs`: milisaniye cinsinden periyodik telemetri flush aralığı. +- `cacheTrace.enabled`: gömülü çalıştırmalar için önbellek iz anlık görüntülerini günlüğe kaydeder (varsayılan: `false`). +- `cacheTrace.filePath`: önbellek iz JSONL'si için çıktı yolu (varsayılan: `$OPENCLAW_STATE_DIR/logs/cache-trace.jsonl`). +- `cacheTrace.includeMessages` / `includePrompt` / `includeSystem`: önbellek iz çıktısına nelerin dahil edileceğini denetler (tamamının varsayılanı: `true`). --- @@ -3470,11 +3447,11 @@ Notlar: ``` - `channel`: npm/git kurulumları için sürüm kanalı — `"stable"`, `"beta"` veya `"dev"`. -- `checkOnStart`: gateway başladığında npm güncellemelerini denetle (varsayılan: `true`). +- `checkOnStart`: gateway başladığında npm güncellemelerini denetler (varsayılan: `true`). - `auto.enabled`: paket kurulumları için arka planda otomatik güncellemeyi etkinleştirir (varsayılan: `false`). -- `auto.stableDelayHours`: stable kanalında otomatik uygulama öncesi saat cinsinden en düşük gecikme (varsayılan: `6`; azami: `168`). -- `auto.stableJitterHours`: stable kanalındaki ek dağıtım yayılma penceresi, saat cinsinden (varsayılan: `12`; azami: `168`). -- `auto.betaCheckIntervalHours`: beta kanal denetimlerinin saat cinsinden ne sıklıkla çalışacağı (varsayılan: `1`; azami: `24`). +- `auto.stableDelayHours`: stable kanalında otomatik uygulama öncesindeki asgari gecikme, saat cinsinden (varsayılan: `6`; azami: `168`). +- `auto.stableJitterHours`: stable kanalında ek dağıtım yayılım penceresi, saat cinsinden (varsayılan: `12`; azami: `168`). +- `auto.betaCheckIntervalHours`: beta kanalı denetimlerinin kaç saatte bir çalışacağı (varsayılan: `1`; azami: `24`). --- @@ -3507,21 +3484,21 @@ Notlar: } ``` -- `enabled`: genel ACP özellik geçidi (varsayılan: `false`). -- `dispatch.enabled`: ACP oturum turu dispatch için bağımsız geçit (varsayılan: `true`). ACP komutlarını kullanılabilir tutarken yürütmeyi engellemek için `false` ayarlayın. +- `enabled`: genel ACP özellik kapısı (varsayılan: `false`). +- `dispatch.enabled`: ACP oturum turu dispatch için bağımsız kapı (varsayılan: `true`). ACP komutlarını kullanılabilir tutarken yürütmeyi engellemek için `false` ayarlayın. - `backend`: varsayılan ACP çalışma zamanı arka uç kimliği (kayıtlı bir ACP çalışma zamanı eklentisiyle eşleşmelidir). -- `defaultAgent`: oluşturmalarda açık hedef belirtilmediğinde yedek ACP hedef ajan kimliği. -- `allowedAgents`: ACP çalışma zamanı oturumları için izin verilen ajan kimlikleri izin listesi; boş olması ek kısıtlama olmadığı anlamına gelir. -- `maxConcurrentSessions`: aynı anda etkin olabilecek en fazla ACP oturumu. -- `stream.coalesceIdleMs`: akışkan metin için boşta flush penceresi, ms cinsinden. -- `stream.maxChunkChars`: akışkan blok yansıtımı bölünmeden önce izin verilen en büyük parça boyutu. +- `defaultAgent`: oluşturmalarda açık bir hedef belirtilmediğinde kullanılan yedek ACP hedef ajan kimliği. +- `allowedAgents`: ACP çalışma zamanı oturumları için izin verilen ajan kimliklerinin izin listesi; boş olması ek kısıtlama olmadığı anlamına gelir. +- `maxConcurrentSessions`: eşzamanlı etkin ACP oturumlarının azami sayısı. +- `stream.coalesceIdleMs`: akışlı metin için milisaniye cinsinden boşta flush penceresi. +- `stream.maxChunkChars`: akışlı blok projeksiyonu bölünmeden önceki azami parça boyutu. - `stream.repeatSuppression`: tur başına tekrar eden durum/araç satırlarını bastırır (varsayılan: `true`). -- `stream.deliveryMode`: `"live"` artımlı akış yapar; `"final_only"` tur sonlandırıcı olaylara kadar tamponlar. -- `stream.hiddenBoundarySeparator`: gizli araç olaylarından sonra görünür metinden önce kullanılacak ayırıcı (varsayılan: `"paragraph"`). -- `stream.maxOutputChars`: ACP turu başına yansıtılan en fazla assistant çıktı karakteri. -- `stream.maxSessionUpdateChars`: yansıtılan ACP durum/güncelleme satırları için en fazla karakter sayısı. -- `stream.tagVisibility`: akışkan olaylar için etiket adlarından boolean görünürlük geçersiz kılmalarına kayıt. -- `runtime.ttlMinutes`: ACP oturum worker'ları için uygun temizleme öncesi boşta kalma TTL'si, dakika cinsinden. +- `stream.deliveryMode`: `"live"` artımlı olarak akıtır; `"final_only"` turun son olaylarına kadar tamponlar. +- `stream.hiddenBoundarySeparator`: gizli araç olaylarından sonra görünür metinden önceki ayırıcı (varsayılan: `"paragraph"`). +- `stream.maxOutputChars`: ACP turu başına yansıtılan azami asistan çıktı karakteri. +- `stream.maxSessionUpdateChars`: yansıtılan ACP durum/güncelleme satırları için azami karakter sayısı. +- `stream.tagVisibility`: akışlı olaylar için etiket adlarını boolean görünürlük geçersiz kılmalarına eşleyen kayıt. +- `runtime.ttlMinutes`: ACP oturum çalışanlarının temizlenmeye uygun hale gelmeden önceki boşta TTL süresi, dakika cinsinden. - `runtime.installCommand`: ACP çalışma zamanı ortamını bootstrap ederken çalıştırılacak isteğe bağlı kurulum komutu. --- @@ -3538,17 +3515,17 @@ Notlar: } ``` -- `cli.banner.taglineMode`, banner sloganı stilini denetler: - - `"random"` (varsayılan): dönen komik/mevsimsel sloganlar. +- `cli.banner.taglineMode`, banner slogan stilini denetler: + - `"random"` (varsayılan): dönen eğlenceli/mevsimsel sloganlar. - `"default"`: sabit nötr slogan (`All your chats, one OpenClaw.`). - - `"off"`: slogan metni yok (banner başlığı/sürümü yine gösterilir). + - `"off"`: slogan metni yoktur (banner başlığı/sürümü yine gösterilir). - Banner'ın tamamını gizlemek için (yalnızca sloganları değil), `OPENCLAW_HIDE_BANNER=1` ortam değişkenini ayarlayın. --- ## Wizard -CLI yönlendirmeli kurulum akışları (`onboard`, `configure`, `doctor`) tarafından yazılan meta veriler: +CLI rehberli kurulum akışları (`onboard`, `configure`, `doctor`) tarafından yazılan meta veriler: ```json5 { @@ -3564,7 +3541,7 @@ CLI yönlendirmeli kurulum akışları (`onboard`, `configure`, `doctor`) taraf --- -## Identity +## Kimlik [Agent defaults](#agent-defaults) altındaki `agents.list` kimlik alanlarına bakın. @@ -3601,8 +3578,8 @@ Geçerli derlemeler artık TCP bridge içermez. Node'lar Gateway WebSocket üzer cron: { enabled: true, maxConcurrentRuns: 2, - webhook: "https://example.invalid/legacy", // deperecated; saklanan notify:true işler için yedek - webhookToken: "replace-with-dedicated-token", // giden webhook kimlik doğrulaması için isteğe bağlı bearer token + webhook: "https://example.invalid/legacy", // saklanan notify:true işler için kullanım dışı yedek + webhookToken: "replace-with-dedicated-token", // giden webhook auth için isteğe bağlı bearer token sessionRetention: "24h", // süre dizesi veya false runLog: { maxBytes: "2mb", // varsayılan 2_000_000 bayt @@ -3612,11 +3589,11 @@ Geçerli derlemeler artık TCP bridge içermez. Node'lar Gateway WebSocket üzer } ``` -- `sessionRetention`: tamamlanan yalıtılmış cron çalışma oturumlarının `sessions.json` içinden budanmadan önce ne kadar süre tutulacağı. Ayrıca arşivlenmiş silinmiş cron transcript'lerinin temizliğini de denetler. Varsayılan: `24h`; devre dışı bırakmak için `false` ayarlayın. -- `runLog.maxBytes`: budamadan önce çalışma günlüğü dosyası başına en büyük boyut (`cron/runs/.jsonl`). Varsayılan: `2_000_000` bayt. -- `runLog.keepLines`: çalışma günlüğü budaması tetiklendiğinde tutulacak en yeni satırlar. Varsayılan: `2000`. -- `webhookToken`: cron webhook POST teslimi (`delivery.mode = "webhook"`) için kullanılan bearer token; belirtilmezse kimlik doğrulama üstbilgisi gönderilmez. -- `webhook`: yalnızca hâlâ `notify: true` olan saklanan işler için kullanılan, artık önerilmeyen eski yedek webhook URL'si (http/https). +- `sessionRetention`: tamamlanan yalıtılmış cron çalıştırma oturumlarının `sessions.json` içinden budanmadan önce ne kadar süre tutulacağını belirler. Ayrıca arşivlenmiş silinmiş cron transcript'lerinin temizliğini de denetler. Varsayılan: `24h`; devre dışı bırakmak için `false` ayarlayın. +- `runLog.maxBytes`: budamadan önce çalıştırma günlük dosyası başına azami boyut (`cron/runs/.jsonl`). Varsayılan: `2_000_000` bayt. +- `runLog.keepLines`: çalıştırma günlüğü budaması tetiklendiğinde tutulan en yeni satırlar. Varsayılan: `2000`. +- `webhookToken`: cron webhook POST teslimi için kullanılan bearer token (`delivery.mode = "webhook"`); atlanırsa auth üstbilgisi gönderilmez. +- `webhook`: yalnızca hâlâ `notify: true` kullanan saklanmış işler için kullanılan, kullanımdan kalkmış eski yedek webhook URL'si (http/https). ### `cron.retry` @@ -3632,11 +3609,11 @@ Geçerli derlemeler artık TCP bridge içermez. Node'lar Gateway WebSocket üzer } ``` -- `maxAttempts`: geçici hatalarda tek seferlik işler için azami yeniden deneme sayısıdır (varsayılan: `3`; aralık: `0`–`10`). -- `backoffMs`: her yeniden deneme girişimi için ms cinsinden backoff gecikmeleri dizisi (varsayılan: `[30000, 60000, 300000]`; 1–10 girdi). -- `retryOn`: yeniden denemeyi tetikleyen hata türleri — `"rate_limit"`, `"overloaded"`, `"network"`, `"timeout"`, `"server_error"`. Tüm geçici türleri yeniden denemek için bunu belirtmeyin. +- `maxAttempts`: geçici hatalarda tek seferlik işler için azami yeniden deneme sayısı (varsayılan: `3`; aralık: `0`–`10`). +- `backoffMs`: her yeniden deneme girişimi için milisaniye cinsinden geri çekilme gecikmeleri dizisi (varsayılan: `[30000, 60000, 300000]`; 1–10 giriş). +- `retryOn`: yeniden denemeyi tetikleyen hata türleri — `"rate_limit"`, `"overloaded"`, `"network"`, `"timeout"`, `"server_error"`. Tüm geçici türleri yeniden denemek için atlayın. -Yalnızca tek seferlik cron işleri için geçerlidir. Yinelenen işler ayrı hata işleme kullanır. +Yalnızca tek seferlik cron işlerine uygulanır. Yinelenen işler ayrı hata işleme kullanır. ### `cron.failureAlert` @@ -3655,10 +3632,10 @@ Yalnızca tek seferlik cron işleri için geçerlidir. Yinelenen işler ayrı ha ``` - `enabled`: cron işleri için hata uyarılarını etkinleştirir (varsayılan: `false`). -- `after`: bir uyarı tetiklenmeden önceki art arda hata sayısı (pozitif tam sayı, en az: `1`). -- `cooldownMs`: aynı iş için yinelenen uyarılar arasında geçmesi gereken en az milisaniye (negatif olmayan tam sayı). -- `mode`: teslim modu — `"announce"` bir kanal mesajı ile gönderir; `"webhook"` yapılandırılmış webhook'a POST eder. -- `accountId`: uyarı teslimini kapsamlandırmak için isteğe bağlı hesap veya kanal kimliği. +- `after`: bir uyarı tetiklenmeden önceki ardışık hata sayısı (pozitif tamsayı, min: `1`). +- `cooldownMs`: aynı iş için yinelenen uyarılar arasındaki asgari milisaniye sayısı (negatif olmayan tamsayı). +- `mode`: teslim modu — `"announce"` bir kanal mesajı üzerinden gönderir; `"webhook"` yapılandırılmış webhook'a POST eder. +- `accountId`: uyarı teslimini kapsamlamak için isteğe bağlı hesap veya kanal kimliği. ### `cron.failureDestination` @@ -3676,15 +3653,15 @@ Yalnızca tek seferlik cron işleri için geçerlidir. Yinelenen işler ayrı ha ``` - Tüm işler genelinde cron hata bildirimleri için varsayılan hedef. -- `mode`: `"announce"` veya `"webhook"`; yeterli hedef verisi varsa varsayılan `"announce"` olur. +- `mode`: `"announce"` veya `"webhook"`; yeterli hedef verisi mevcut olduğunda varsayılan `"announce"` olur. - `channel`: announce teslimi için kanal geçersiz kılması. `"last"`, bilinen son teslim kanalını yeniden kullanır. - `to`: açık announce hedefi veya webhook URL'si. Webhook modu için zorunludur. - `accountId`: teslim için isteğe bağlı hesap geçersiz kılması. - İş başına `delivery.failureDestination`, bu genel varsayılanı geçersiz kılar. -- Genel veya iş başına hata hedefi ayarlanmadığında, zaten `announce` ile teslim yapan işler hata durumunda bu birincil announce hedefine geri döner. -- `delivery.failureDestination`, işin birincil `delivery.mode` değeri `"webhook"` olmadığı sürece yalnızca `sessionTarget="isolated"` işler için desteklenir. +- Genel veya iş başına hiçbir hata hedefi ayarlanmamışsa, zaten `announce` ile teslim eden işler hata durumunda o birincil announce hedefine geri döner. +- `delivery.failureDestination`, işin birincil `delivery.mode` değeri `"webhook"` olmadığı sürece yalnızca `sessionTarget="isolated"` işleri için desteklenir. -Bkz. [Cron Jobs](/tr/automation/cron-jobs). Yalıtılmış cron yürütmeleri [arka plan görevleri](/tr/automation/tasks) olarak izlenir. +Bkz. [Cron Jobs](/tr/automation/cron-jobs). Yalıtılmış cron yürütmeleri [background tasks](/tr/automation/tasks) olarak izlenir. --- @@ -3692,28 +3669,28 @@ Bkz. [Cron Jobs](/tr/automation/cron-jobs). Yalıtılmış cron yürütmeleri [a `tools.media.models[].args` içinde genişletilen şablon yer tutucuları: -| Değişken | Açıklama | -| ----------------- | ---------------------------------------------- | -| `{{Body}}` | Tam gelen mesaj gövdesi | +| Değişken | Açıklama | +| ----------------- | --------------------------------------------- | +| `{{Body}}` | Tam gelen mesaj gövdesi | | `{{RawBody}}` | Ham gövde (geçmiş/gönderen sarmalayıcıları yok) | -| `{{BodyStripped}}` | Grup mention'ları çıkarılmış gövde | -| `{{From}}` | Gönderen tanımlayıcısı | -| `{{To}}` | Hedef tanımlayıcısı | -| `{{MessageSid}}` | Kanal mesaj kimliği | -| `{{SessionId}}` | Geçerli oturum UUID'si | -| `{{IsNewSession}}` | Yeni oturum oluşturulduğunda `"true"` | -| `{{MediaUrl}}` | Gelen medya pseudo-URL'si | -| `{{MediaPath}}` | Yerel medya yolu | -| `{{MediaType}}` | Medya türü (image/audio/document/…) | -| `{{Transcript}}` | Ses transcript'i | -| `{{Prompt}}` | CLI girdileri için çözümlenen medya istemi | -| `{{MaxChars}}` | CLI girdileri için çözümlenen azami çıktı karakteri | -| `{{ChatType}}` | `"direct"` veya `"group"` | -| `{{GroupSubject}}` | Grup konusu (best effort) | -| `{{GroupMembers}}` | Grup üyeleri önizlemesi (best effort) | -| `{{SenderName}}` | Gönderen görünen adı (best effort) | -| `{{SenderE164}}` | Gönderen telefon numarası (best effort) | -| `{{Provider}}` | Sağlayıcı ipucu (whatsapp, telegram, discord vb.) | +| `{{BodyStripped}}`| Grup mention'ları çıkarılmış gövde | +| `{{From}}` | Gönderen tanımlayıcısı | +| `{{To}}` | Hedef tanımlayıcısı | +| `{{MessageSid}}` | Kanal mesaj kimliği | +| `{{SessionId}}` | Geçerli oturum UUID'si | +| `{{IsNewSession}}`| Yeni oturum oluşturulduğunda `"true"` | +| `{{MediaUrl}}` | Gelen medya pseudo-URL'si | +| `{{MediaPath}}` | Yerel medya yolu | +| `{{MediaType}}` | Medya türü (image/audio/document/…) | +| `{{Transcript}}` | Ses transcript'i | +| `{{Prompt}}` | CLI girdileri için çözümlenmiş medya istemi | +| `{{MaxChars}}` | CLI girdileri için çözümlenmiş azami çıktı karakteri | +| `{{ChatType}}` | `"direct"` veya `"group"` | +| `{{GroupSubject}}`| Grup konusu (best effort) | +| `{{GroupMembers}}`| Grup üyeleri önizlemesi (best effort) | +| `{{SenderName}}` | Gönderen görünen adı (best effort) | +| `{{SenderE164}}` | Gönderen telefon numarası (best effort) | +| `{{Provider}}` | Sağlayıcı ipucu (whatsapp, telegram, discord, vb.) | --- @@ -3734,12 +3711,12 @@ Yapılandırmayı birden çok dosyaya bölün: **Birleştirme davranışı:** -- Tek dosya: kapsayan nesnenin yerini alır. -- Dosya dizisi: sırayla derinlemesine birleştirilir (sonrakiler öncekileri geçersiz kılar). +- Tek dosya: içeren nesnenin yerini alır. +- Dosya dizisi: sırayla derin birleştirilir (sonraki, öncekini geçersiz kılar). - Komşu anahtarlar: include'lardan sonra birleştirilir (include edilen değerleri geçersiz kılar). -- İç içe include'lar: en fazla 10 seviye derinlik. -- Yollar: include eden dosyaya göre çözülür, ancak üst düzey yapılandırma dizini sınırı (`openclaw.json` dosyasının `dirname` değeri) içinde kalmalıdır. Mutlak/`../` biçimlerine yalnızca yine bu sınır içinde çözülüyorlarsa izin verilir. -- Hatalar: eksik dosyalar, ayrıştırma hataları ve döngüsel include'lar için açık iletiler. +- İç içe include'lar: en fazla 10 düzey derinlik. +- Yollar: include eden dosyaya göre çözülür, ancak üst düzey yapılandırma dizini içinde kalmalıdır (`openclaw.json` dosyasının `dirname` değeri). Mutlak/`../` biçimlerine yalnızca bu sınır içinde çözülmeye devam ettiklerinde izin verilir. +- Hatalar: eksik dosyalar, ayrıştırma hataları ve dairesel include'lar için açık iletiler. --- diff --git a/docs/tr/help/gpt54-codex-agentic-parity-maintainers.md b/docs/tr/help/gpt54-codex-agentic-parity-maintainers.md new file mode 100644 index 000000000..e42b26e7f --- /dev/null +++ b/docs/tr/help/gpt54-codex-agentic-parity-maintainers.md @@ -0,0 +1,174 @@ +--- +x-i18n: + generated_at: "2026-04-11T15:15:48Z" + model: gpt-5.4 + provider: openai + source_hash: 910bcf7668becf182ef48185b43728bf2fa69629d6d50189d47d47b06f807a9e + source_path: help/gpt54-codex-agentic-parity-maintainers.md + workflow: 15 +--- + +# GPT-5.4 / Codex Eşdeğerliği Sorumlu Notları + +Bu not, özgün altı sözleşmeli mimariyi kaybetmeden GPT-5.4 / Codex eşdeğerliği programını dört birleştirme birimi olarak nasıl inceleyeceğinizi açıklar. + +## Birleştirme birimleri + +### PR A: katı agentic yürütme + +Sahip olduğu alanlar: + +- `executionContract` +- GPT-5-öncelikli aynı turda devam ettirme +- terminal olmayan ilerleme takibi olarak `update_plan` +- yalnızca plan içeren sessiz durmalar yerine açık engellenmiş durumlar + +Sahip olmadığı alanlar: + +- kimlik doğrulama/çalışma zamanı hata sınıflandırması +- izin doğruluğu +- yeniden oynatma/devam ettirme yeniden tasarımı +- eşdeğerlik kıyaslaması + +### PR B: çalışma zamanı doğruluğu + +Sahip olduğu alanlar: + +- Codex OAuth kapsam doğruluğu +- türlendirilmiş sağlayıcı/çalışma zamanı hata sınıflandırması +- `/elevated full` kullanılabilirliği ve engellenme nedenlerinin doğru şekilde gösterilmesi + +Sahip olmadığı alanlar: + +- araç şeması normalleştirmesi +- yeniden oynatma/canlılık durumu +- kıyaslama kapısı + +### PR C: yürütme doğruluğu + +Sahip olduğu alanlar: + +- sağlayıcıya ait OpenAI/Codex araç uyumluluğu +- parametresiz katı şema işleme +- replay-invalid durumunun görünür kılınması +- duraklatılmış, engellenmiş ve terk edilmiş uzun görev durumlarının görünürlüğü + +Sahip olmadığı alanlar: + +- kendi kendine seçilen devam ettirme +- sağlayıcı kancaları dışındaki genel Codex lehçesi davranışı +- kıyaslama kapısı + +### PR D: eşdeğerlik düzeneği + +Sahip olduğu alanlar: + +- ilk dalga GPT-5.4 ile Opus 4.6 senaryo paketi +- eşdeğerlik dokümantasyonu +- eşdeğerlik raporu ve sürüm kapısı mekanikleri + +Sahip olmadığı alanlar: + +- QA-lab dışındaki çalışma zamanı davranış değişiklikleri +- düzenek içindeki kimlik doğrulama/proxy/DNS simülasyonu + +## Özgün altı sözleşmeye geri eşleme + +| Özgün sözleşme | Birleştirme birimi | +| --------------------------------------- | ------------------ | +| Sağlayıcı taşıma/kimlik doğrulama doğruluğu | PR B | +| Araç sözleşmesi/şema uyumluluğu | PR C | +| Aynı turda yürütme | PR A | +| İzin doğruluğu | PR B | +| Yeniden oynatma/devam ettirme/canlılık doğruluğu | PR C | +| Kıyaslama/sürüm kapısı | PR D | + +## İnceleme sırası + +1. PR A +2. PR B +3. PR C +4. PR D + +PR D ispat katmanıdır. Çalışma zamanı doğruluğu PR’lerinin gecikme nedeni olmamalıdır. + +## Nelere bakılmalı + +### PR A + +- GPT-5 çalıştırmaları yorumda durmak yerine eyleme geçiyor veya güvenli şekilde başarısız oluyor +- `update_plan` artık tek başına ilerleme gibi görünmüyor +- davranış GPT-5-öncelikli ve gömülü-Pi kapsamlı kalıyor + +### PR B + +- kimlik doğrulama/proxy/çalışma zamanı hataları artık genel “model failed” işleyişine çökertilmiyor +- `/elevated full` yalnızca gerçekten kullanılabilir olduğunda kullanılabilir olarak açıklanıyor +- engellenme nedenleri hem model hem de kullanıcıya dönük çalışma zamanı için görünür durumda + +### PR C + +- katı OpenAI/Codex araç kaydı öngörülebilir davranıyor +- parametresiz araçlar katı şema denetimlerinde başarısız olmuyor +- yeniden oynatma ve sıkıştırma sonuçları doğru canlılık durumunu koruyor + +### PR D + +- senaryo paketi anlaşılır ve yeniden üretilebilir +- paket yalnızca salt okunur akışları değil, durum değiştiren bir yeniden oynatma güvenliği hattını da içeriyor +- raporlar insanlar ve otomasyon tarafından okunabilir +- eşdeğerlik iddiaları anekdota değil, kanıta dayanıyor + +PR D’den beklenen çıktılar: + +- her model çalıştırması için `qa-suite-report.md` / `qa-suite-summary.json` +- toplu ve senaryo düzeyinde karşılaştırma için `qa-agentic-parity-report.md` +- makine tarafından okunabilir hüküm için `qa-agentic-parity-summary.json` + +## Sürüm kapısı + +Aşağıdakiler gerçekleşmeden GPT-5.4’ün Opus 4.6 ile eşdeğer veya ondan üstün olduğunu iddia etmeyin: + +- PR A, PR B ve PR C birleştirilmiş olmalı +- PR D ilk dalga eşdeğerlik paketini temiz şekilde çalıştırmalı +- çalışma zamanı doğruluğu regresyon paketleri yeşil kalmalı +- eşdeğerlik raporu sahte başarı durumu göstermemeli ve durma davranışında regresyon olmamalı + +```mermaid +flowchart LR + A["PR A-C birleştirildi"] --> B["GPT-5.4 eşdeğerlik paketini çalıştır"] + A --> C["Opus 4.6 eşdeğerlik paketini çalıştır"] + B --> D["qa-suite-summary.json"] + C --> E["qa-suite-summary.json"] + D --> F["qa parity-report"] + E --> F + F --> G["Markdown raporu + JSON hükmü"] + G --> H{"Geçti mi?"} + H -- "evet" --> I["Eşdeğerlik iddiasına izin verilir"] + H -- "hayır" --> J["Çalışma zamanı düzeltmeleri / inceleme döngüsü açık kalsın"] +``` + +Eşdeğerlik düzeneği tek kanıt kaynağı değildir. İncelemede bu ayrımı açık tutun: + +- PR D, senaryo tabanlı GPT-5.4 ile Opus 4.6 karşılaştırmasının sahibidir +- PR B deterministic paketleri, kimlik doğrulama/proxy/DNS ve tam erişim doğruluğu kanıtının sahibi olmaya devam eder + +## Hedeften kanıta eşleme + +| Tamamlama kapısı öğesi | Birincil sahip | İnceleme çıktısı | +| --------------------------------------- | -------------- | ------------------------------------------------------------------- | +| Yalnızca plan içeren duraksamalar yok | PR A | katı agentic çalışma zamanı testleri ve `approval-turn-tool-followthrough` | +| Sahte ilerleme veya sahte araç tamamlanması yok | PR A + PR D | eşdeğerlik sahte başarı sayısı ve senaryo düzeyindeki rapor ayrıntıları | +| Yanlış `/elevated full` yönlendirmesi yok | PR B | deterministic çalışma zamanı doğruluğu paketleri | +| Yeniden oynatma/canlılık hataları açık kalır | PR C + PR D | yaşam döngüsü/yeniden oynatma paketleri ve `compaction-retry-mutating-tool` | +| GPT-5.4, Opus 4.6 ile eşleşir veya onu geçer | PR D | `qa-agentic-parity-report.md` ve `qa-agentic-parity-summary.json` | + +## İnceleyici kısaltması: önce ve sonra + +| Kullanıcı açısından görünür sorun, önce | Sonra inceleme sinyali | +| ----------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| GPT-5.4 planlamadan sonra duruyordu | PR A, yalnızca yorumla tamamlanma yerine eyleme geçme veya engellenme davranışı gösterir | +| Araç kullanımı katı OpenAI/Codex şemalarıyla kırılgan görünüyordu | PR C, araç kaydını ve parametresiz çağrımı öngörülebilir tutar | +| `/elevated full` ipuçları bazen yanıltıcıydı | PR B, yönlendirmeyi gerçek çalışma zamanı yeteneği ve engellenme nedenlerine bağlar | +| Uzun görevler yeniden oynatma/sıkıştırma belirsizliğinde kaybolabiliyordu | PR C, açık duraklatılmış, engellenmiş, terk edilmiş ve replay-invalid durumları üretir | +| Eşdeğerlik iddiaları anekdota dayanıyordu | PR D, her iki modelde de aynı senaryo kapsamıyla bir rapor ve JSON hükmü üretir | diff --git a/docs/tr/help/gpt54-codex-agentic-parity.md b/docs/tr/help/gpt54-codex-agentic-parity.md new file mode 100644 index 000000000..bb3af23eb --- /dev/null +++ b/docs/tr/help/gpt54-codex-agentic-parity.md @@ -0,0 +1,229 @@ +--- +x-i18n: + generated_at: "2026-04-11T15:15:48Z" + model: gpt-5.4 + provider: openai + source_hash: 7ee6b925b8a0f8843693cea9d50b40544657b5fb8a9e0860e2ff5badb273acb6 + source_path: help/gpt54-codex-agentic-parity.md + workflow: 15 +--- + +# OpenClaw'da GPT-5.4 / Codex Ajanik Eşdeğerliği + +OpenClaw, araç kullanan frontier modellerle zaten iyi çalışıyordu, ancak GPT-5.4 ve Codex tarzı modeller hâlâ pratikte birkaç açıdan düşük performans gösteriyordu: + +- işi yapmak yerine planlama sonrası durabiliyorlardı +- sıkı OpenAI/Codex araç şemalarını yanlış kullanabiliyorlardı +- tam erişim imkansız olsa bile `/elevated full` isteyebiliyorlardı +- tekrar oynatma veya sıkıştırma sırasında uzun süren görev durumunu kaybedebiliyorlardı +- Claude Opus 4.6 ile eşdeğerlik iddiaları tekrar üretilebilir senaryolar yerine anekdotlara dayanıyordu + +Bu eşdeğerlik programı bu boşlukları incelenebilir dört dilimde kapatıyor. + +## Neler değişti + +### PR A: strict-agentic yürütme + +Bu dilim, gömülü Pi GPT-5 çalıştırmaları için isteğe bağlı bir `strict-agentic` yürütme sözleşmesi ekler. + +Etkinleştirildiğinde OpenClaw, yalnızca plan içeren turları artık “yeterince iyi” tamamlanmış saymaz. Model sadece ne yapmayı amaçladığını söyleyip gerçekten araç kullanmaz veya ilerleme göstermezse, OpenClaw bir hemen-harekete-geç yönlendirmesiyle yeniden dener ve ardından görevi sessizce bitirmek yerine açık bir engellenmiş durumla kapalı başarısızlığa düşer. + +Bu, GPT-5.4 deneyimini özellikle şu durumlarda iyileştirir: + +- kısa “tamam yap” takip mesajları +- ilk adımın açık olduğu kod görevleri +- `update_plan` kullanımının dolgu metin değil ilerleme takibi olması gereken akışlar + +### PR B: çalışma zamanı doğruluğu + +Bu dilim, OpenClaw'un iki konuda doğruyu söylemesini sağlar: + +- sağlayıcı/çalışma zamanı çağrısının neden başarısız olduğu +- `/elevated full` özelliğinin gerçekten kullanılabilir olup olmadığı + +Bu sayede GPT-5.4; eksik kapsam, kimlik doğrulama yenileme hataları, HTML 403 kimlik doğrulama hataları, proxy sorunları, DNS veya zaman aşımı hataları ve engellenmiş tam erişim modları için daha iyi çalışma zamanı sinyalleri alır. Modelin yanlış çözümü uydurma veya çalışma zamanının sağlayamayacağı bir izin modunu istemeye devam etme olasılığı azalır. + +### PR C: yürütme doğruluğu + +Bu dilim iki tür doğruluğu iyileştirir: + +- sağlayıcıya ait OpenAI/Codex araç-şema uyumluluğu +- tekrar oynatma ve uzun görev canlılığı görünürlüğü + +Araç uyumluluğu çalışması, sıkı OpenAI/Codex araç kaydı için şema sürtünmesini azaltır; özellikle parametresiz araçlar ve sıkı nesne-kök beklentileri etrafında. Tekrar oynatma/canlılık çalışması ise uzun süren görevleri daha gözlemlenebilir hale getirir; böylece duraklatılmış, engellenmiş ve terk edilmiş durumlar genel hata metinleri içinde kaybolmak yerine görünür olur. + +### PR D: eşdeğerlik altyapısı + +Bu dilim, GPT-5.4 ile Opus 4.6'nın aynı senaryolar üzerinden çalıştırılıp ortak kanıtlarla karşılaştırılabilmesi için ilk dalga QA-lab eşdeğerlik paketini ekler. + +Eşdeğerlik paketi kanıt katmanıdır. Tek başına çalışma zamanı davranışını değiştirmez. + +İki adet `qa-suite-summary.json` yapıtınız olduğunda, sürüm kapısı karşılaştırmasını şu komutla üretin: + +```bash +pnpm openclaw qa parity-report \ + --repo-root . \ + --candidate-summary .artifacts/qa-e2e/gpt54/qa-suite-summary.json \ + --baseline-summary .artifacts/qa-e2e/opus46/qa-suite-summary.json \ + --output-dir .artifacts/qa-e2e/parity +``` + +Bu komut şunları yazar: + +- insanlar tarafından okunabilir bir Markdown raporu +- makineler tarafından okunabilir bir JSON kararı +- açık bir `pass` / `fail` kapı sonucu + +## Bunun GPT-5.4'ü pratikte nasıl iyileştirdiği + +Bu çalışmadan önce, OpenClaw üzerindeki GPT-5.4 gerçek kodlama oturumlarında Opus'tan daha az ajanik hissettirebiliyordu çünkü çalışma zamanı, özellikle GPT-5 tarzı modeller için zararlı olan davranışlara tolerans gösteriyordu: + +- yalnızca yorum içeren turlar +- araçlar etrafında şema sürtünmesi +- belirsiz izin geri bildirimi +- sessiz tekrar oynatma veya sıkıştırma bozulması + +Amaç, GPT-5.4'ü Opus'u taklit etmeye zorlamak değildir. Amaç, GPT-5.4'e gerçek ilerlemeyi ödüllendiren, daha temiz araç ve izin semantiği sağlayan ve hata modlarını makine ve insanlar tarafından okunabilir açık durumlara dönüştüren bir çalışma zamanı sözleşmesi vermektir. + +Bu, kullanıcı deneyimini şu durumdan değiştirir: + +- “modelin iyi bir planı vardı ama durdu” + +şuna dönüştürür: + +- “model ya harekete geçti ya da OpenClaw neden yapamadığını tam olarak ortaya koydu” + +## GPT-5.4 kullanıcıları için önce ve sonra + +| Bu programdan önce | PR A-D'den sonra | +| ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| GPT-5.4 mantıklı bir plandan sonra sonraki araç adımını atmadan durabiliyordu | PR A, “yalnızca plan” durumunu “hemen harekete geç veya engellenmiş bir durum göster”a çevirir | +| Sıkı araç şemaları parametresiz veya OpenAI/Codex biçimli araçları kafa karıştırıcı şekilde reddedebiliyordu | PR C, sağlayıcıya ait araç kaydı ve çağrımını daha öngörülebilir hale getirir | +| `/elevated full` yönlendirmesi engellenmiş çalışma zamanlarında belirsiz veya yanlış olabiliyordu | PR B, GPT-5.4'e ve kullanıcıya doğru çalışma zamanı ve izin ipuçları verir | +| Tekrar oynatma veya sıkıştırma hataları görevin sessizce kaybolduğu hissini verebiliyordu | PR C, duraklatılmış, engellenmiş, terk edilmiş ve tekrar oynatması geçersiz sonuçları açıkça gösterir | +| “GPT-5.4 Opus'tan daha kötü hissettiriyor” büyük ölçüde anekdot niteliğindeydi | PR D bunu aynı senaryo paketi, aynı metrikler ve kesin bir geç/kaldı kapısına dönüştürür | + +## Mimari + +```mermaid +flowchart TD + A["Kullanıcı isteği"] --> B["Gömülü Pi çalışma zamanı"] + B --> C["Strict-agentic yürütme sözleşmesi"] + B --> D["Sağlayıcıya ait araç uyumluluğu"] + B --> E["Çalışma zamanı doğruluğu"] + B --> F["Tekrar oynatma ve canlılık durumu"] + C --> G["Araç çağrısı veya açık bir engellenmiş durum"] + D --> G + E --> G + F --> G + G --> H["QA-lab eşdeğerlik paketi"] + H --> I["Senaryo raporu ve eşdeğerlik kapısı"] +``` + +## Sürüm akışı + +```mermaid +flowchart LR + A["Birleştirilmiş çalışma zamanı dilimleri (PR A-C)"] --> B["GPT-5.4 eşdeğerlik paketini çalıştır"] + A --> C["Opus 4.6 eşdeğerlik paketini çalıştır"] + B --> D["qa-suite-summary.json"] + C --> E["qa-suite-summary.json"] + D --> F["openclaw qa parity-report"] + E --> F + F --> G["qa-agentic-parity-report.md"] + F --> H["qa-agentic-parity-summary.json"] + H --> I{"Kapı geçti mi?"} + I -- "evet" --> J["Kanıta dayalı eşdeğerlik iddiası"] + I -- "hayır" --> K["Çalışma zamanı/inceleme döngüsünü açık tut"] +``` + +## Senaryo paketi + +İlk dalga eşdeğerlik paketi şu anda beş senaryoyu kapsıyor: + +### `approval-turn-tool-followthrough` + +Modelin kısa bir onaydan sonra “bunu yapacağım” diyerek durmadığını kontrol eder. Aynı turda ilk somut eylemi yapmalıdır. + +### `model-switch-tool-continuity` + +Araç kullanan çalışmanın model/çalışma zamanı geçiş sınırları boyunca yorum moduna sıfırlanmak veya yürütme bağlamını kaybetmek yerine tutarlı kalıp kalmadığını kontrol eder. + +### `source-docs-discovery-report` + +Modelin kaynak kodu ve dokümantasyonu okuyup bulguları sentezleyebildiğini ve ince bir özet üretip erken durmak yerine göreve ajanik biçimde devam edebildiğini kontrol eder. + +### `image-understanding-attachment` + +Ek içeren karma mod görevlerin eyleme geçirilebilir kalıp kalmadığını ve belirsiz anlatıma çöküp çökmediğini kontrol eder. + +### `compaction-retry-mutating-tool` + +Gerçek bir değiştirici yazma işlemi içeren bir görevin, çalışma sıkıştırılsa, yeniden denense veya baskı altında yanıt durumu kaybolsa bile tekrar oynatma güvensizliğini sessizce tekrar oynatma güvenliymiş gibi göstermeden açık tutup tutmadığını kontrol eder. + +## Senaryo matrisi + +| Senaryo | Test ettiği şey | İyi GPT-5.4 davranışı | Başarısızlık sinyali | +| --------------------------------- | ----------------------------------------- | -------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | +| `approval-turn-tool-followthrough` | Bir plandan sonraki kısa onay turları | Niyeti yeniden ifade etmek yerine ilk somut araç eylemini hemen başlatır | yalnızca plan içeren takip, araç etkinliği yok veya gerçek bir engel olmadan engellenmiş tur | +| `model-switch-tool-continuity` | Araç kullanımı altında çalışma zamanı/model geçişi | Görev bağlamını korur ve tutarlı biçimde eyleme devam eder | yorum moduna sıfırlanır, araç bağlamını kaybeder veya geçişten sonra durur | +| `source-docs-discovery-report` | Kaynak okuma + sentez + eylem | Kaynakları bulur, araçları kullanır ve takılmadan faydalı bir rapor üretir | ince özet, eksik araç çalışması veya eksik-tur durması | +| `image-understanding-attachment` | Ek odaklı ajanik çalışma | Eki yorumlar, araçlarla ilişkilendirir ve göreve devam eder | belirsiz anlatım, ekin yok sayılması veya somut bir sonraki eylemin olmaması | +| `compaction-retry-mutating-tool` | Sıkıştırma baskısı altında değiştirici çalışma | Gerçek bir yazma işlemi yapar ve yan etkiden sonra tekrar oynatma güvensizliğini açık tutar | değiştirici yazma olur ama tekrar oynatma güvenliği ima edilir, eksik kalır veya çelişkili olur | + +## Sürüm kapısı + +GPT-5.4 ancak birleştirilmiş çalışma zamanı hem eşdeğerlik paketini hem de çalışma zamanı doğruluğu regresyonlarını aynı anda geçtiğinde eşdeğer veya daha iyi kabul edilebilir. + +Gerekli sonuçlar: + +- bir sonraki araç eylemi açıkken yalnızca plan kaynaklı takılma olmaması +- gerçek yürütme olmadan sahte tamamlanma olmaması +- yanlış `/elevated full` yönlendirmesi olmaması +- sessiz tekrar oynatma veya sıkıştırma nedeniyle terk edilme olmaması +- üzerinde anlaşılmış Opus 4.6 temel çizgisi kadar güçlü veya daha güçlü eşdeğerlik paketi metrikleri + +İlk dalga altyapısı için kapı şu ölçütleri karşılaştırır: + +- tamamlanma oranı +- amaç dışı durma oranı +- geçerli araç çağrısı oranı +- sahte başarı sayısı + +Eşdeğerlik kanıtı kasıtlı olarak iki katmana ayrılmıştır: + +- PR D, QA-lab ile aynı senaryolarda GPT-5.4 ile Opus 4.6 davranışını kanıtlar +- PR B deterministik paketleri, altyapı dışında kimlik doğrulama, proxy, DNS ve `/elevated full` doğruluğunu kanıtlar + +## Hedeften kanıta matrisi + +| Tamamlanma kapısı maddesi | Sorumlu PR | Kanıt kaynağı | Geçiş sinyali | +| ------------------------------------------------------ | ----------- | ----------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| GPT-5.4 artık planlamadan sonra takılmıyor | PR A | `approval-turn-tool-followthrough` ve PR A çalışma zamanı paketleri | onay turları gerçek işi veya açık bir engellenmiş durumu tetikler | +| GPT-5.4 artık sahte ilerleme veya sahte araç tamamlanması üretmiyor | PR A + PR D | eşdeğerlik raporu senaryo sonuçları ve sahte başarı sayısı | şüpheli geçiş sonucu yok ve yalnızca yorum içeren tamamlanma yok | +| GPT-5.4 artık yanlış `/elevated full` yönlendirmesi vermiyor | PR B | deterministik doğruluk paketleri | engellenme nedenleri ve tam erişim ipuçları çalışma zamanına uygun doğrulukta kalır | +| Tekrar oynatma/canlılık hataları açık kalır | PR C + PR D | PR C yaşam döngüsü/tekrar oynatma paketleri ve `compaction-retry-mutating-tool` | değiştirici çalışma, sessizce kaybolmak yerine tekrar oynatma güvensizliğini açık tutar | +| GPT-5.4, üzerinde anlaşılmış metriklerde Opus 4.6'ya eşit veya daha iyi | PR D | `qa-agentic-parity-report.md` ve `qa-agentic-parity-summary.json` | aynı senaryo kapsamı ve tamamlanma, durma davranışı veya geçerli araç kullanımında gerileme olmaması | + +## Eşdeğerlik kararını nasıl okumalı + +İlk dalga eşdeğerlik paketi için son makine tarafından okunabilir karar olarak `qa-agentic-parity-summary.json` içindeki kararı kullanın. + +- `pass`, GPT-5.4'ün Opus 4.6 ile aynı senaryoları kapsadığı ve üzerinde anlaşılan toplu metriklerde gerileme göstermediği anlamına gelir. +- `fail`, en az bir kesin kapının tetiklendiği anlamına gelir: daha zayıf tamamlanma, daha kötü amaç dışı durmalar, daha zayıf geçerli araç kullanımı, herhangi bir sahte başarı durumu veya eşleşmeyen senaryo kapsamı. +- “shared/base CI issue” kendi başına bir eşdeğerlik sonucu değildir. PR D dışındaki CI gürültüsü bir çalıştırmayı engellerse, karar dal dönemine ait günlüklerden çıkarım yapmak yerine temiz bir birleştirilmiş çalışma zamanı yürütmesini beklemelidir. +- Kimlik doğrulama, proxy, DNS ve `/elevated full` doğruluğu hâlâ PR B'nin deterministik paketlerinden gelir; bu nedenle son sürüm iddiası için her ikisi de gerekir: geçen bir PR D eşdeğerlik kararı ve yeşil PR B doğruluk kapsamı. + +## `strict-agentic` özelliğini kimler etkinleştirmeli + +`strict-agentic` özelliğini şu durumlarda kullanın: + +- bir sonraki adım açık olduğunda ajanın hemen harekete geçmesi bekleniyorsa +- birincil çalışma zamanı GPT-5.4 veya Codex ailesi modellerse +- “yardımcı” ama yalnızca özet yapan yanıtlar yerine açık engellenmiş durumları tercih ediyorsanız + +Şu durumlarda varsayılan sözleşmeyi koruyun: + +- mevcut daha gevşek davranışı istiyorsanız +- GPT-5 ailesi modeller kullanmıyorsanız +- çalışma zamanı zorlamasını değil istemleri test ediyorsanız diff --git a/docs/tr/plugins/architecture.md b/docs/tr/plugins/architecture.md index 897f8b523..b94e3edfa 100644 --- a/docs/tr/plugins/architecture.md +++ b/docs/tr/plugins/architecture.md @@ -1,30 +1,30 @@ --- read_when: - - Yerel OpenClaw plugin'leri oluşturuyor veya hata ayıklıyorsunuz - - Plugin yetenek modelini veya sahiplik sınırlarını anlamak istiyorsunuz - - Plugin yükleme işlem hattı veya kayıt sistemi üzerinde çalışıyorsunuz - - Sağlayıcı çalışma zamanı kancalarını veya kanal plugin'lerini uyguluyorsunuz + - Yerel OpenClaw plugin’lerini oluşturma veya hata ayıklama + - Plugin yetenek modelini veya sahiplik sınırlarını anlama + - Plugin yükleme işlem hattı veya kayıt defteri üzerinde çalışma + - Sağlayıcı çalışma zamanı kancalarını veya kanal plugin’lerini uygulama sidebarTitle: Internals -summary: 'Plugin iç yapısı: yetenek modeli, sahiplik, sözleşmeler, yükleme işlem hattı ve çalışma zamanı yardımcıları' -title: Plugin İç Yapısı +summary: 'Plugin iç bileşenleri: yetenek modeli, sahiplik, sözleşmeler, yükleme işlem hattı ve çalışma zamanı yardımcıları' +title: Plugin İç Bileşenleri x-i18n: - generated_at: "2026-04-09T01:32:12Z" + generated_at: "2026-04-11T15:16:00Z" model: gpt-5.4 provider: openai - source_hash: 2575791f835990589219bb06d8ca92e16a8c38b317f0bfe50b421682f253ef18 + source_hash: 7cac67984d0d729c0905bcf5c18372fb0d9b02bbd3a531580b7e2ef483ef40a6 source_path: plugins/architecture.md workflow: 15 --- -# Plugin İç Yapısı +# Plugin İç Bileşenleri - Bu, **derin mimari başvurusudur**. Pratik kılavuzlar için şunlara bakın: - - [Plugin yükleme ve kullanma](/tr/tools/plugin) — kullanıcı kılavuzu + Bu, **derin mimari başvuru** sayfasıdır. Pratik kılavuzlar için şunlara bakın: + - [Plugin’leri yükleme ve kullanma](/tr/tools/plugin) — kullanıcı kılavuzu - [Başlangıç](/tr/plugins/building-plugins) — ilk plugin öğreticisi - - [Kanal Plugin'leri](/tr/plugins/sdk-channel-plugins) — bir mesajlaşma kanalı oluşturun - - [Sağlayıcı Plugin'leri](/tr/plugins/sdk-provider-plugins) — bir model sağlayıcısı oluşturun - - [SDK Genel Bakış](/tr/plugins/sdk-overview) — içe aktarma haritası ve kayıt API'si + - [Kanal Plugin’leri](/tr/plugins/sdk-channel-plugins) — bir mesajlaşma kanalı oluşturun + - [Sağlayıcı Plugin’leri](/tr/plugins/sdk-provider-plugins) — bir model sağlayıcısı oluşturun + - [SDK Genel Bakış](/tr/plugins/sdk-overview) — içe aktarma eşlemesi ve kayıt API’si Bu sayfa, OpenClaw plugin sisteminin iç mimarisini kapsar. @@ -32,152 +32,149 @@ Bu sayfa, OpenClaw plugin sisteminin iç mimarisini kapsar. ## Genel yetenek modeli Yetenekler, OpenClaw içindeki genel **yerel plugin** modelidir. Her -yerel OpenClaw plugin'i bir veya daha fazla yetenek türüne kayıt olur: +yerel OpenClaw plugin’i bir veya daha fazla yetenek türüne kayıt olur: -| Yetenek | Kayıt yöntemi | Örnek plugin'ler | -| --------------------- | ------------------------------------------------ | ----------------------------------- | -| Metin çıkarımı | `api.registerProvider(...)` | `openai`, `anthropic` | -| CLI çıkarım arka ucu | `api.registerCliBackend(...)` | `openai`, `anthropic` | -| Konuşma | `api.registerSpeechProvider(...)` | `elevenlabs`, `microsoft` | -| Gerçek zamanlı yazıya dökme | `api.registerRealtimeTranscriptionProvider(...)` | `openai` | -| Gerçek zamanlı ses | `api.registerRealtimeVoiceProvider(...)` | `openai` | -| Medya anlama | `api.registerMediaUnderstandingProvider(...)` | `openai`, `google` | +| Yetenek | Kayıt yöntemi | Örnek plugin’ler | +| --------------------- | ------------------------------------------------ | ------------------------------------ | +| Metin çıkarımı | `api.registerProvider(...)` | `openai`, `anthropic` | +| CLI çıkarım arka ucu | `api.registerCliBackend(...)` | `openai`, `anthropic` | +| Konuşma | `api.registerSpeechProvider(...)` | `elevenlabs`, `microsoft` | +| Gerçek zamanlı yazıya dökme | `api.registerRealtimeTranscriptionProvider(...)` | `openai` | +| Gerçek zamanlı ses | `api.registerRealtimeVoiceProvider(...)` | `openai` | +| Medya anlama | `api.registerMediaUnderstandingProvider(...)` | `openai`, `google` | | Görsel oluşturma | `api.registerImageGenerationProvider(...)` | `openai`, `google`, `fal`, `minimax` | -| Müzik oluşturma | `api.registerMusicGenerationProvider(...)` | `google`, `minimax` | -| Video oluşturma | `api.registerVideoGenerationProvider(...)` | `qwen` | -| Web getirme | `api.registerWebFetchProvider(...)` | `firecrawl` | -| Web arama | `api.registerWebSearchProvider(...)` | `google` | -| Kanal / mesajlaşma | `api.registerChannel(...)` | `msteams`, `matrix` | +| Müzik oluşturma | `api.registerMusicGenerationProvider(...)` | `google`, `minimax` | +| Video oluşturma | `api.registerVideoGenerationProvider(...)` | `qwen` | +| Web getirme | `api.registerWebFetchProvider(...)` | `firecrawl` | +| Web arama | `api.registerWebSearchProvider(...)` | `google` | +| Kanal / mesajlaşma | `api.registerChannel(...)` | `msteams`, `matrix` | Sıfır yetenek kaydeden ancak kancalar, araçlar veya -hizmetler sağlayan bir plugin, **eski yalnızca kanca** plugin'idir. Bu desen hâlâ tamamen desteklenir. +servisler sağlayan bir plugin, **eski yalnızca-kanca** plugin’idir. Bu desen hâlâ tamamen desteklenmektedir. -### Dış uyumluluk duruşu +### Harici uyumluluk yaklaşımı -Yetenek modeli çekirdeğe yerleşti ve bugün paketlenmiş/yerel plugin'ler -tarafından kullanılıyor, ancak dış plugin uyumluluğu için hâlâ -"aktarılıyor, dolayısıyla sabitlenmiştir" ifadesinden daha sıkı bir eşik gerekir. +Yetenek modeli çekirdeğe eklenmiştir ve bugün paketlenmiş/yerel plugin’ler +tarafından kullanılmaktadır, ancak harici plugin uyumluluğu için +“dışa aktarılıyor, dolayısıyla dondurulmuştur” yaklaşımından daha sıkı bir çıta gerekir. -Güncel rehberlik: +Güncel yönlendirme: -- **mevcut dış plugin'ler:** kanca tabanlı entegrasyonları çalışır durumda tutun; bunu - uyumluluk temeli olarak değerlendirin -- **yeni paketlenmiş/yerel plugin'ler:** satıcıya özgü iç erişimler veya yeni yalnızca kanca tasarımları yerine +- **mevcut harici plugin’ler:** kanca tabanlı entegrasyonları çalışır durumda tutun; bunu + uyumluluk tabanı olarak değerlendirin +- **yeni paketlenmiş/yerel plugin’ler:** satıcıya özgü iç erişimler veya yeni yalnızca-kanca tasarımları yerine açık yetenek kaydını tercih edin -- **yetenek kaydını benimseyen dış plugin'ler:** izin verilir, ancak belgelerde açıkça kararlı bir sözleşme olarak işaretlenmedikçe - yeteneğe özgü yardımcı yüzeyleri gelişmekte olan yüzeyler olarak değerlendirin +- **yetenek kaydını benimseyen harici plugin’ler:** izin verilir, ancak belgeler bir sözleşmeyi açıkça kararlı olarak işaretlemedikçe + yeteneğe özgü yardımcı yüzeyleri gelişen yapılar olarak değerlendirin Pratik kural: -- yetenek kayıt API'leri amaçlanan yöndür -- geçiş sırasında eski kancalar dış plugin'ler için en güvenli, kırılmasız yol olmaya devam eder -- dışa aktarılan yardımcı alt yolların hepsi eşdeğer değildir; rastlantısal yardımcı aktarımlarını değil, - belgelenmiş dar sözleşmeyi tercih edin +- yetenek kayıt API’leri hedeflenen yöndür +- geçiş sürecinde, eski kancalar harici plugin’ler için kesintisizliğin en güvenli yoludur +- dışa aktarılan yardımcı alt yolların hepsi eşdeğer değildir; tesadüfi yardımcı dışa aktarımlarını değil, + dar ve belgelenmiş sözleşmeyi tercih edin ### Plugin biçimleri -OpenClaw, yüklenen her plugin'i gerçek kayıt -davranışına göre bir biçime sınıflandırır (yalnızca statik meta veriye göre değil): +OpenClaw, yüklenen her plugin’i gerçek +kayıt davranışına göre bir biçime ayırır (yalnızca statik meta verilere göre değil): -- **plain-capability** -- tam olarak bir yetenek türü kaydeder (örneğin +- **plain-capability** -- tam olarak bir yetenek türü kaydeder (örneğin, `mistral` gibi yalnızca sağlayıcı olan bir plugin) - **hybrid-capability** -- birden fazla yetenek türü kaydeder (örneğin `openai`, metin çıkarımı, konuşma, medya anlama ve görsel - oluşturma sahipliğine sahiptir) -- **hook-only** -- yalnızca kanca kaydeder (yazımlı veya özel), yetenek, - araç, komut veya hizmet kaydetmez -- **non-capability** -- yetenek olmadan araç, komut, hizmet veya rota kaydeder + oluşturmayı sahiplenir) +- **hook-only** -- yalnızca kancalar kaydeder (türlü veya özel), yetenek, + araç, komut ya da servis kaydetmez +- **non-capability** -- yetenek olmadan araçlar, komutlar, servisler veya rotalar kaydeder -Bir plugin'in biçimini ve yetenek -dökümünü görmek için `openclaw plugins inspect ` kullanın. Ayrıntılar için [CLI başvurusu](/cli/plugins#inspect) sayfasına bakın. +Bir plugin’in biçimini ve yetenek +dökümünü görmek için `openclaw plugins inspect ` komutunu kullanın. Ayrıntılar için [CLI başvurusu](/cli/plugins#inspect) sayfasına bakın. ### Eski kancalar -`before_agent_start` kancası, yalnızca kanca kullanan plugin'ler için -bir uyumluluk yolu olarak desteklenmeye devam eder. Eski gerçek dünya plugin'leri hâlâ buna bağımlıdır. +`before_agent_start` kancası, yalnızca-kanca plugin’leri için bir uyumluluk yolu olarak desteklenmeye devam eder. Eski gerçek dünya plugin’leri hâlâ buna bağımlıdır. Yön: - çalışır durumda tutun -- bunu eski olarak belgelendirin -- model/sağlayıcı geçersiz kılma işleri için `before_model_resolve` tercih edin -- istem değiştirme işleri için `before_prompt_build` tercih edin -- yalnızca gerçek kullanım düştüğünde ve fikstür kapsamı geçiş güvenliğini kanıtladığında kaldırın +- eski olarak belgelendirin +- model/sağlayıcı geçersiz kılma işleri için `before_model_resolve` kullanmayı tercih edin +- istem değiştirme işleri için `before_prompt_build` kullanmayı tercih edin +- yalnızca gerçek kullanım azaldığında ve fixture kapsamı geçiş güvenliğini kanıtladığında kaldırın ### Uyumluluk sinyalleri -`openclaw doctor` veya `openclaw plugins inspect ` çalıştırdığınızda, +`openclaw doctor` veya `openclaw plugins inspect ` komutunu çalıştırdığınızda, şu etiketlerden birini görebilirsiniz: -| Sinyal | Anlamı | -| -------------------------- | ---------------------------------------------------------- | -| **config valid** | Yapılandırma sorunsuz ayrıştırılır ve plugin'ler çözülür | -| **compatibility advisory** | Plugin desteklenen ama daha eski bir desen kullanıyor (ör. `hook-only`) | +| Sinyal | Anlamı | +| -------------------------- | ------------------------------------------------------------ | +| **config valid** | Yapılandırma sorunsuz ayrıştırılır ve plugin’ler çözülür | +| **compatibility advisory** | Plugin desteklenen ancak daha eski bir desen kullanıyor (ör. `hook-only`) | | **legacy warning** | Plugin, kullanımdan kaldırılmış olan `before_agent_start` kullanıyor | -| **hard error** | Yapılandırma geçersiz veya plugin yüklenemedi | +| **hard error** | Yapılandırma geçersiz veya plugin yüklenemedi | -Ne `hook-only` ne de `before_agent_start` plugin'inizi bugün bozmaz -- -`hook-only` bir tavsiye niteliğindedir ve `before_agent_start` yalnızca bir uyarı tetikler. Bu -sinyaller ayrıca `openclaw status --all` ve `openclaw plugins doctor` içinde de görünür. +Ne `hook-only` ne de `before_agent_start` bugün plugin’inizi bozmaz -- +`hook-only` bir tavsiye niteliğindedir ve `before_agent_start` yalnızca uyarı üretir. Bu +sinyaller `openclaw status --all` ve `openclaw plugins doctor` içinde de görünür. ## Mimariye genel bakış -OpenClaw'un plugin sistemi dört katmandan oluşur: +OpenClaw’ın plugin sistemi dört katmana sahiptir: 1. **Manifest + keşif** OpenClaw, yapılandırılmış yollardan, çalışma alanı köklerinden, - genel uzantı köklerinden ve paketlenmiş uzantılardan aday plugin'leri bulur. + genel uzantı köklerinden ve paketlenmiş uzantılardan aday plugin’leri bulur. Keşif önce yerel `openclaw.plugin.json` manifestlerini ve desteklenen paket manifestlerini okur. 2. **Etkinleştirme + doğrulama** - Çekirdek, keşfedilen bir plugin'in etkin, devre dışı, engellenmiş veya - bellek gibi özel bir yuva için seçilmiş olup olmadığına karar verir. + Çekirdek, keşfedilen bir plugin’in etkin, devre dışı, engellenmiş + veya bellek gibi özel bir yuva için seçilmiş olup olmadığına karar verir. 3. **Çalışma zamanı yükleme** - Yerel OpenClaw plugin'leri jiti aracılığıyla işlem içi yüklenir ve - yetenekleri merkezi bir kayıt sistemine kaydeder. Uyumlu paketler, çalışma zamanı kodu içe aktarılmadan - kayıt kayıtlarına normalize edilir. + Yerel OpenClaw plugin’leri jiti aracılığıyla süreç içinde yüklenir ve + yetenekleri merkezi bir kayıt defterine kaydeder. Uyumlu paketler, çalışma zamanı kodu içe aktarılmadan + kayıt defteri kayıtlarına normalize edilir. 4. **Yüzey tüketimi** - OpenClaw'un geri kalanı araçları, kanalları, sağlayıcı - kurulumunu, kancaları, HTTP rotalarını, CLI komutlarını ve hizmetleri açığa çıkarmak için kayıt sistemini okur. + OpenClaw’ın geri kalanı, araçları, kanalları, sağlayıcı + kurulumunu, kancaları, HTTP rotalarını, CLI komutlarını ve servisleri sunmak için kayıt defterini okur. -Özellikle plugin CLI için, kök komut keşfi iki aşamaya bölünür: +Özellikle plugin CLI için, kök komut keşfi iki aşamada bölünür: -- ayrıştırma zamanı meta verisi `registerCli(..., { descriptors: [...] })` içinden gelir +- ayrıştırma zamanı meta verisi `registerCli(..., { descriptors: [...] })` üzerinden gelir - gerçek plugin CLI modülü tembel kalabilir ve ilk çağrıda kaydolabilir -Bu, plugin'e ait CLI kodunu plugin içinde tutarken OpenClaw'un -ayrıştırmadan önce kök komut adlarını ayırmasına olanak verir. +Bu, plugin’e ait CLI kodunu plugin’in içinde tutarken OpenClaw’ın +ayrıştırmadan önce kök komut adlarını ayırmasına olanak tanır. Önemli tasarım sınırı: -- keşif + yapılandırma doğrulaması, plugin kodu yürütülmeden - **manifest/şema meta verisinden** çalışabilmelidir +- keşif + yapılandırma doğrulaması, plugin kodunu çalıştırmadan + **manifest/şema meta verilerinden** çalışabilmelidir - yerel çalışma zamanı davranışı, plugin modülünün `register(api)` yolundan gelir -Bu ayrım, tam çalışma zamanı etkin olmadan önce OpenClaw'un yapılandırmayı doğrulamasına, -eksik/devre dışı plugin'leri açıklamasına ve UI/şema ipuçları oluşturmasına olanak tanır. +Bu ayrım, OpenClaw’ın yapılandırmayı doğrulamasına, eksik/devre dışı plugin’leri açıklamasına ve +tam çalışma zamanı etkinleşmeden önce UI/şema ipuçları oluşturmasına olanak tanır. -### Kanal plugin'leri ve paylaşılan message aracı +### Kanal plugin’leri ve paylaşılan message aracı -Kanal plugin'lerinin normal sohbet eylemleri için ayrı bir gönder/düzenle/tepki verme aracı kaydetmesi gerekmez. -OpenClaw çekirdekte tek bir paylaşılan `message` aracını tutar ve -kanala özgü keşif ile yürütme bunun arkasında kanal plugin'lerine aittir. +Kanal plugin’lerinin, normal sohbet eylemleri için ayrı bir gönder/düzenle/tepki aracı kaydetmesi gerekmez. OpenClaw, çekirdekte tek bir paylaşılan `message` aracı tutar ve kanal plugin’leri bunun arkasındaki kanala özgü keşif ve yürütmeyi sahiplenir. Mevcut sınır şöyledir: -- çekirdek, paylaşılan `message` aracı ana makinesine, istem bağlamasına, oturum/iş parçacığı - muhasebesine ve yürütme sevkine sahiptir -- kanal plugin'leri kapsamlı eylem keşfine, yetenek keşfine ve - kanala özgü şema parçalarına sahiptir -- kanal plugin'leri, konuşma kimliklerinin iş parçacığı kimliklerini nasıl kodladığı veya üst konuşmalardan - nasıl miras aldığı gibi, sağlayıcıya özgü oturum konuşma dil bilgisine sahiptir -- kanal plugin'leri son eylemi kendi eylem bağdaştırıcıları üzerinden yürütür +- çekirdek, paylaşılan `message` araç ana makinesini, istem kablolamasını, oturum/iş parçacığı + kayıtlarını ve yürütme sevkini sahiplenir +- kanal plugin’leri kapsamlı eylem keşfini, yetenek keşfini ve + kanala özgü tüm şema parçalarını sahiplenir +- kanal plugin’leri, konuşma kimliklerinin iş parçacığı kimliklerini nasıl kodladığı veya üst konuşmalardan nasıl miras aldığı gibi + sağlayıcıya özgü oturum konuşma dil bilgisini sahiplenir +- kanal plugin’leri son eylemi kendi eylem bağdaştırıcıları üzerinden yürütür -Kanal plugin'leri için SDK yüzeyi +Kanal plugin’leri için SDK yüzeyi `ChannelMessageActionAdapter.describeMessageTool(...)` şeklindedir. Bu birleşik keşif -çağrısı, bir plugin'in görünür eylemlerini, yeteneklerini ve şema -katkılarını birlikte döndürmesine olanak verir; böylece bu parçalar birbirinden ayrışmaz. +çağrısı, bir plugin’in görünür eylemlerini, yeteneklerini ve şema katkılarını +birlikte döndürmesine olanak tanır; böylece bu parçalar birbirinden kopmaz. -Çekirdek, bu keşif adımına çalışma zamanı kapsamını geçirir. Önemli alanlar şunlardır: +Çekirdek, çalışma zamanı kapsamını bu keşif adımına aktarır. Önemli alanlar şunlardır: - `accountId` - `currentChannelId` @@ -188,121 +185,120 @@ katkılarını birlikte döndürmesine olanak verir; böylece bu parçalar birbi - `agentId` - güvenilir gelen `requesterSenderId` -Bu, bağlama duyarlı plugin'ler için önemlidir. Bir kanal; etkin hesaba, -geçerli odaya/iş parçacığına/mesaja veya güvenilir istek sahibi kimliğine göre -çekirdekte kanala özgü dallar sabitlemeden mesaj eylemlerini gizleyebilir veya açığa çıkarabilir. +Bu, bağlama duyarlı plugin’ler için önemlidir. Bir kanal, +çekirdekteki `message` aracında kanala özgü dallanmaları sabit kodlamadan, +etkin hesaba, geçerli odaya/iş parçacığına/mesaja veya +güvenilir istek sahibi kimliğine göre mesaj eylemlerini gizleyebilir ya da gösterebilir. Bu nedenle gömülü çalıştırıcı yönlendirme değişiklikleri hâlâ plugin işidir: çalıştırıcı, -paylaşılan `message` aracının mevcut tur için doğru kanala ait -yüzeyi açığa çıkarması amacıyla geçerli sohbet/oturum kimliğini plugin +paylaşılan `message` aracının geçerli tur için doğru kanala ait +yüzeyi göstermesi amacıyla mevcut sohbet/oturum kimliğini plugin keşif sınırına iletmekten sorumludur. -Kanala ait yürütme yardımcıları için paketlenmiş plugin'ler, yürütme -çalışma zamanını kendi uzantı modülleri içinde tutmalıdır. Çekirdek artık -`src/agents/tools` altında Discord, Slack, Telegram veya WhatsApp mesaj-eğlemi çalışma zamanlarına sahip değildir. +Kanala ait yürütme yardımcıları için, paketlenmiş plugin’ler yürütme +çalışma zamanını kendi uzantı modülleri içinde tutmalıdır. Çekirdek artık `src/agents/tools` altında +Discord, Slack, Telegram veya WhatsApp mesaj-eylemi çalışma zamanlarını sahiplenmez. Ayrı `plugin-sdk/*-action-runtime` alt yolları yayımlamıyoruz ve paketlenmiş -plugin'ler kendi yerel çalışma zamanı kodlarını doğrudan kendi -uzantı modüllerinden içe aktarmalıdır. +plugin’ler kendi yerel çalışma zamanı kodlarını doğrudan +uzantıya ait modüllerinden içe aktarmalıdır. -Aynı sınır genel olarak sağlayıcı adlı SDK geçişleri için de geçerlidir: çekirdek, -Slack, Discord, Signal, -WhatsApp veya benzeri uzantılar için kanala özgü kolaylık varillerini içe aktarmamalıdır. Çekirdeğin bir davranışa ihtiyacı varsa ya -paketlenmiş plugin'in kendi `api.ts` / `runtime-api.ts` varilini tüketmeli ya da bu ihtiyacı -paylaşılan SDK içinde dar ve genel bir yeteneğe yükseltmelidir. +Aynı sınır, genel olarak sağlayıcı adlı SDK yüzeyleri için de geçerlidir: çekirdek, +Slack, Discord, Signal, WhatsApp veya benzeri uzantılar için kanala özgü kolaylık paketlerini içe aktarmamalıdır. +Çekirdeğin bir davranışa ihtiyacı varsa ya paketlenmiş plugin’in kendi `api.ts` / `runtime-api.ts` +paketini tüketmeli ya da ihtiyacı paylaşılan SDK’da dar bir genel yeteneğe dönüştürmelidir. Özellikle anketler için iki yürütme yolu vardır: -- `outbound.sendPoll`, ortak - anket modeline uyan kanallar için paylaşılan temel yoldur -- `actions.handleAction("poll")`, kanala özgü - anket anlamları veya ek anket parametreleri için tercih edilen yoldur +- `outbound.sendPoll`, ortak anket modeline uyan kanallar için paylaşılan temel yoldur +- `actions.handleAction("poll")`, kanala özgü anket anlambilimi veya ek anket parametreleri için tercih edilen yoldur -Çekirdek artık paylaşılan anket ayrıştırmasını, plugin anket sevki eylemi reddettikten -sonraya erteler; böylece plugin'e ait anket işleyicileri, önce genel anket ayrıştırıcısı -tarafından engellenmeden kanala özgü anket alanlarını kabul edebilir. +Çekirdek artık, plugin’e ait anket gönderimi eylemi reddettikten sonra +paylaşılan anket ayrıştırmasını erteler; böylece plugin’e ait anket işleyicileri, +önce genel anket ayrıştırıcısı tarafından engellenmeden kanala özgü anket alanlarını kabul edebilir. -Tam başlangıç sırası için [Yükleme işlem hattı](#load-pipeline) bölümüne bakın. +Tam başlangıç dizisi için [Yükleme işlem hattı](#load-pipeline) bölümüne bakın. ## Yetenek sahipliği modeli -OpenClaw, yerel bir plugin'i ilgisiz entegrasyonlardan oluşan bir torba olarak değil, +OpenClaw, yerel bir plugin’i ilgisiz entegrasyonların karışık bir topluluğu olarak değil, bir **şirketin** veya bir **özelliğin** sahiplik sınırı olarak ele alır. Bu şu anlama gelir: -- bir şirket plugin'i genellikle o şirketin OpenClaw'a dönük tüm +- bir şirket plugin’i genellikle o şirketin OpenClaw’a dönük tüm yüzeylerine sahip olmalıdır -- bir özellik plugin'i genellikle tanıttığı özelliğin tam yüzeyine sahip olmalıdır +- bir özellik plugin’i genellikle sunduğu özelliğin tam yüzeyine sahip olmalıdır - kanallar, sağlayıcı davranışını geçici olarak yeniden uygulamak yerine paylaşılan çekirdek yetenekleri tüketmelidir Örnekler: -- paketlenmiş `openai` plugin'i OpenAI model-sağlayıcı davranışına ve OpenAI - konuşma + gerçek zamanlı ses + medya anlama + görsel oluşturma davranışına sahiptir -- paketlenmiş `elevenlabs` plugin'i ElevenLabs konuşma davranışına sahiptir -- paketlenmiş `microsoft` plugin'i Microsoft konuşma davranışına sahiptir -- paketlenmiş `google` plugin'i Google model-sağlayıcı davranışına artı Google - medya anlama + görsel oluşturma + web arama davranışına sahiptir -- paketlenmiş `firecrawl` plugin'i Firecrawl web-getirme davranışına sahiptir -- paketlenmiş `minimax`, `mistral`, `moonshot` ve `zai` plugin'leri +- paketlenmiş `openai` plugin’i, OpenAI model-sağlayıcı davranışını ve OpenAI + konuşma + gerçek zamanlı ses + medya anlama + görsel oluşturma davranışını sahiplenir +- paketlenmiş `elevenlabs` plugin’i ElevenLabs konuşma davranışını sahiplenir +- paketlenmiş `microsoft` plugin’i Microsoft konuşma davranışını sahiplenir +- paketlenmiş `google` plugin’i, Google model-sağlayıcı davranışının yanı sıra Google + medya anlama + görsel oluşturma + web arama davranışını sahiplenir +- paketlenmiş `firecrawl` plugin’i Firecrawl web-getirme davranışını sahiplenir +- paketlenmiş `minimax`, `mistral`, `moonshot` ve `zai` plugin’leri kendi medya anlama arka uçlarına sahiptir -- `voice-call` plugin'i bir özellik plugin'idir: çağrı aktarımı, araçlar, - CLI, rotalar ve Twilio medya akışı köprülemesine sahiptir, ancak satıcı plugin'lerini doğrudan +- paketlenmiş `qwen` plugin’i, Qwen metin-sağlayıcı davranışının yanı sıra + medya anlama ve video oluşturma davranışını sahiplenir +- `voice-call` plugin’i bir özellik plugin’idir: çağrı aktarımını, araçları, + CLI’yi, rotaları ve Twilio medya-akışı köprüsünü sahiplenir, ancak satıcı plugin’lerini doğrudan içe aktarmak yerine paylaşılan konuşma ile gerçek zamanlı yazıya dökme ve gerçek zamanlı ses yeteneklerini tüketir -Amaçlanan son durum şudur: +Hedeflenen son durum şudur: -- metin modelleri, konuşma, görseller ve - gelecekteki video gibi alanları kapsasa bile OpenAI tek bir plugin'de yaşar -- başka bir satıcı da kendi yüzey alanı için aynı şeyi yapabilir -- kanallar, sağlayıcının hangi satıcı plugin'ine ait olduğunu önemsemez; çekirdek tarafından açığa çıkarılan - paylaşılan yetenek sözleşmesini tüketir +- OpenAI, metin modellerini, konuşmayı, görselleri ve gelecekte videoyu kapsasa bile tek bir plugin içinde yer alır +- başka bir satıcı da kendi yüzey alanı için aynısını yapabilir +- kanallar, sağlayıcının hangi satıcı plugin’ine ait olduğunu umursamaz; çekirdek tarafından sunulan + paylaşılan yetenek sözleşmesini tüketirler Temel ayrım şudur: - **plugin** = sahiplik sınırı -- **capability** = birden çok plugin'in uygulayabileceği veya tüketebileceği çekirdek sözleşme +- **capability** = birden çok plugin’in uygulayabildiği veya tüketebildiği çekirdek sözleşmesi -Dolayısıyla OpenClaw video gibi yeni bir alan eklerse ilk soru -"hangi sağlayıcı video işlemeyi sabit kodlamalı?" değildir. İlk soru -"çekirdek video yetenek sözleşmesi nedir?" olmalıdır. Bu sözleşme var olduğunda, -satıcı plugin'leri buna kayıt olabilir ve kanal/özellik plugin'leri bunu tüketebilir. +Dolayısıyla OpenClaw, video gibi yeni bir alan eklediğinde ilk soru +“hangi sağlayıcı video işleyişini sabit kodlamalı?” değildir. İlk soru “çekirdekteki +video yetenek sözleşmesi nedir?” olmalıdır. Bu sözleşme var olduğunda, satıcı plugin’leri +ona kayıt olabilir ve kanal/özellik plugin’leri bunu tüketebilir. -Yetenek henüz yoksa, genellikle doğru adım şudur: +Yetenek henüz mevcut değilse, doğru adım genellikle şudur: -1. eksik yeteneği çekirdekte tanımlayın -2. bunu plugin API'si/çalışma zamanı üzerinden yazımlı biçimde açığa çıkarın -3. kanalları/özellikleri bu yeteneğe bağlayın -4. satıcı plugin'lerinin uygulamaları kaydetmesine izin verin +1. eksik yeteneği çekirdekte tanımlamak +2. bunu plugin API’si/çalışma zamanı üzerinden türlenmiş şekilde sunmak +3. kanalları/özellikleri bu yeteneğe göre bağlamak +4. satıcı plugin’lerinin uygulamaları kaydetmesine izin vermek -Bu, sahipliği açık tutarken tek bir satıcıya veya -tek seferlik plugin'e özgü bir kod yoluna bağımlı çekirdek davranışını önler. +Bu yaklaşım, sahipliği açık tutarken çekirdek davranışının +tek bir satıcıya veya bir defalık plugin’e özgü bir kod yoluna bağımlı olmasını önler. -### Yetenek katmanları +### Yetenek katmanlaması Kodun nereye ait olduğuna karar verirken şu zihinsel modeli kullanın: -- **çekirdek yetenek katmanı**: paylaşılan orkestrasyon, politika, geri dönüş, - yapılandırma birleştirme kuralları, teslimat anlamları ve yazımlı sözleşmeler -- **satıcı plugin katmanı**: satıcıya özgü API'ler, kimlik doğrulama, model katalogları, konuşma - sentezi, görsel oluşturma, gelecekteki video arka uçları, kullanım uç noktaları -- **kanal/özellik plugin katmanı**: paylaşılan çekirdek yetenekleri tüketen - ve bunları bir yüzeyde sunan Slack/Discord/voice-call/vb. entegrasyonlar +- **çekirdek yetenek katmanı**: paylaşılan orkestrasyon, politika, geri dönüş, yapılandırma + birleştirme kuralları, teslim semantiği ve türlenmiş sözleşmeler +- **satıcı plugin katmanı**: satıcıya özgü API’ler, kimlik doğrulama, model katalogları, konuşma + sentezi, görsel üretimi, gelecekteki video arka uçları, kullanım uç noktaları +- **kanal/özellik plugin katmanı**: Slack/Discord/voice-call/vb. entegrasyonu; + çekirdek yetenekleri tüketir ve bunları bir yüzeyde sunar Örneğin TTS şu yapıyı izler: -- çekirdek, yanıt zamanı TTS politikasına, geri dönüş sırasına, tercihlere ve kanal teslimatına sahiptir -- `openai`, `elevenlabs` ve `microsoft` sentez uygulamalarına sahiptir -- `voice-call` telefon TTS çalışma zamanı yardımcısını tüketir +- çekirdek, yanıt zamanındaki TTS politikasını, geri dönüş sırasını, tercihleri ve kanal teslimini sahiplenir +- `openai`, `elevenlabs` ve `microsoft` sentez uygulamalarını sahiplenir +- `voice-call`, telefon TTS çalışma zamanı yardımcısını tüketir Aynı desen gelecekteki yetenekler için de tercih edilmelidir. -### Çok yetenekli şirket plugin'i örneği +### Çok yetenekli şirket plugin’i örneği -Bir şirket plugin'i dışarıdan bakıldığında tutarlı hissettirmelidir. OpenClaw; +Bir şirket plugin’i dışarıdan bakıldığında bütünlüklü hissettirmelidir. OpenClaw’da modeller, konuşma, gerçek zamanlı yazıya dökme, gerçek zamanlı ses, medya anlama, görsel oluşturma, video oluşturma, web getirme ve web arama için paylaşılan -sözleşmelere sahipse, bir satıcı tüm yüzeylerine tek bir yerde sahip olabilir: +sözleşmeler varsa, bir satıcı tüm yüzeylerine tek bir yerden sahip olabilir: ```ts import type { OpenClawPluginDefinition } from "openclaw/plugin-sdk/plugin-entry"; @@ -356,12 +352,13 @@ const plugin: OpenClawPluginDefinition = { export default plugin; ``` -Önemli olan yardımcı adlarının tam olarak ne olduğu değildir. Önemli olan yapıdır: +Önemli olan tam yardımcı adları değildir. Önemli olan yapı şeklidir: -- tek bir plugin satıcı yüzeyine sahiptir -- çekirdek yine de yetenek sözleşmelerine sahiptir -- kanallar ve özellik plugin'leri satıcı kodunu değil, `api.runtime.*` yardımcılarını tüketir -- sözleşme testleri, plugin'in sahip olduğunu iddia ettiği yetenekleri kaydettiğini doğrulayabilir +- tek bir plugin satıcı yüzeyine sahip olur +- çekirdek yine de yetenek sözleşmelerine sahip olur +- kanallar ve özellik plugin’leri satıcı kodunu değil, `api.runtime.*` yardımcılarını tüketir +- sözleşme testleri, plugin’in sahip olduğunu iddia ettiği yetenekleri kaydettiğini + doğrulayabilir ### Yetenek örneği: video anlama @@ -369,117 +366,120 @@ OpenClaw, görsel/ses/video anlamayı zaten tek bir paylaşılan yetenek olarak ele alır. Aynı sahiplik modeli burada da geçerlidir: 1. çekirdek medya-anlama sözleşmesini tanımlar -2. satıcı plugin'leri uygun olduğunda `describeImage`, `transcribeAudio` ve - `describeVideo` kaydı yapar -3. kanal ve özellik plugin'leri satıcı koduna doğrudan bağlanmak yerine paylaşılan çekirdek davranışını tüketir +2. satıcı plugin’leri uygun olduğu durumlarda `describeImage`, `transcribeAudio` ve + `describeVideo` kaydeder +3. kanal ve özellik plugin’leri doğrudan satıcı koduna bağlanmak yerine + paylaşılan çekirdek davranışını tüketir -Bu, tek bir sağlayıcının video varsayımlarının çekirdeğe gömülmesini önler. Plugin satıcı -yüzeyine sahiptir; çekirdek yetenek sözleşmesine ve geri dönüş davranışına sahiptir. +Bu, tek bir sağlayıcının video varsayımlarının çekirdeğe gömülmesini önler. Plugin, +satıcı yüzeyine sahip olur; çekirdek ise yetenek sözleşmesine ve geri dönüş davranışına sahip olur. -Video oluşturma zaten aynı sırayı kullanır: çekirdek yazımlı -yetenek sözleşmesine ve çalışma zamanı yardımcısına sahiptir, satıcı plugin'leri ise -`api.registerVideoGenerationProvider(...)` uygulamaları kaydeder. +Video oluşturma zaten aynı sırayı kullanır: çekirdek, türlenmiş +yetenek sözleşmesine ve çalışma zamanı yardımcısına sahiptir ve satıcı plugin’leri +`api.registerVideoGenerationProvider(...)` uygulamalarını buna karşı kaydeder. -Somut bir dağıtım kontrol listesi mi gerekiyor? Bkz. +Somut bir devreye alma denetim listesine mi ihtiyacınız var? Bkz. [Capability Cookbook](/tr/plugins/architecture). ## Sözleşmeler ve zorunlu uygulama -Plugin API yüzeyi bilerek yazımlı ve -`OpenClawPluginApi` içinde merkezidir. Bu sözleşme desteklenen kayıt noktalarını ve -bir plugin'in güvenebileceği çalışma zamanı yardımcılarını tanımlar. +Plugin API yüzeyi, kasıtlı olarak türlenmiştir ve +`OpenClawPluginApi` içinde merkezileştirilmiştir. Bu sözleşme, desteklenen kayıt noktalarını ve +bir plugin’in güvenebileceği çalışma zamanı yardımcılarını tanımlar. -Bunun neden önemli olduğu: +Bunun önemi: - plugin yazarları tek bir kararlı iç standart elde eder -- çekirdek, aynı sağlayıcı kimliğini kaydeden iki plugin gibi yinelenen sahipliği reddedebilir -- başlangıç, bozuk kayıtlar için uygulanabilir tanılamaları yüzeye çıkarabilir -- sözleşme testleri paketlenmiş plugin sahipliğini zorunlu kılabilir ve sessiz sürüklenmeyi önleyebilir +- çekirdek, aynı sağlayıcı kimliğini iki plugin’in kaydetmesi gibi + yinelenen sahiplikleri reddedebilir +- başlangıç, hatalı kayıtlar için uygulanabilir tanı bilgileri gösterebilir +- sözleşme testleri, paketlenmiş plugin sahipliğini zorunlu kılabilir ve sessiz kaymayı önleyebilir -İki katmanlı bir zorunlu uygulama vardır: +İki zorunlu uygulama katmanı vardır: -1. **çalışma zamanı kayıt zorlaması** - Plugin kayıt sistemi, plugin'ler yüklenirken kayıtları doğrular. Örnekler: - yinelenen sağlayıcı kimlikleri, yinelenen konuşma sağlayıcı kimlikleri ve bozuk - kayıtlar, tanımsız davranış yerine plugin tanılamaları üretir. +1. **çalışma zamanı kayıt zorunluluğu** + Plugin kayıt defteri, plugin’ler yüklenirken kayıtları doğrular. Örnekler: + yinelenen sağlayıcı kimlikleri, yinelenen konuşma sağlayıcısı kimlikleri ve hatalı + kayıtlar, tanımsız davranış yerine plugin tanı bilgileri üretir. 2. **sözleşme testleri** - Paketlenmiş plugin'ler, test çalıştırmaları sırasında sözleşme kayıt sistemlerinde yakalanır; böylece + Paketlenmiş plugin’ler, test çalıştırmaları sırasında sözleşme kayıt defterlerinde yakalanır; böylece OpenClaw sahipliği açıkça doğrulayabilir. Bugün bu, model sağlayıcıları, konuşma sağlayıcıları, web arama sağlayıcıları ve paketlenmiş kayıt - sahipliği için kullanılır. + sahipliği için kullanılmaktadır. -Pratik etki şudur: OpenClaw hangi plugin'in hangi -yüzeye sahip olduğunu en baştan bilir. Bu, çekirdek ve kanalların sorunsuz biçimde bileşim kurmasına olanak tanır çünkü -sahiplik örtük değil, bildirilmiş, yazımlı ve test edilebilirdir. +Bunun pratik etkisi, OpenClaw’ın baştan itibaren hangi plugin’in hangi +yüzeye sahip olduğunu bilmesidir. Bu sayede çekirdek ve kanallar sorunsuz biçimde birleşebilir; +çünkü sahiplik örtük değil, bildirilmiş, türlenmiş ve test edilebilirdir. -### Bir sözleşmede ne bulunmalı +### Bir sözleşmede ne bulunmalıdır -İyi plugin sözleşmeleri: +İyi plugin sözleşmeleri şunlardır: -- yazımlıdır -- küçüktür -- yeteneğe özgüdür -- çekirdeğe aittir +- türlenmiş +- küçük +- yeteneğe özgü +- çekirdeğe ait - birden çok plugin tarafından yeniden kullanılabilir - satıcı bilgisi olmadan kanallar/özellikler tarafından tüketilebilir -Kötü plugin sözleşmeleri: +Kötü plugin sözleşmeleri şunlardır: - çekirdekte gizlenmiş satıcıya özgü politika -- kayıt sistemini baypas eden tek seferlik plugin kaçış kapıları -- doğrudan satıcı uygulamasına erişen kanal kodu +- kayıt defterini baypas eden tek seferlik plugin kaçış kapıları +- kanal kodunun doğrudan satıcı uygulamasına ulaşması - `OpenClawPluginApi` veya `api.runtime` parçası olmayan geçici çalışma zamanı nesneleri -Şüphe duyduğunuzda soyutlama düzeyini yükseltin: önce yeteneği tanımlayın, sonra -plugin'lerin buna bağlanmasına izin verin. +Emin değilseniz soyutlama düzeyini yükseltin: önce yeteneği tanımlayın, sonra +plugin’lerin buna bağlanmasına izin verin. ## Yürütme modeli -Yerel OpenClaw plugin'leri Gateway ile **işlem içinde** çalışır. Kum havuzuna -alınmazlar. Yüklenmiş bir yerel plugin, çekirdek kodla aynı süreç düzeyindeki güven sınırına sahiptir. +Yerel OpenClaw plugin’leri, Gateway ile **aynı süreç içinde** çalışır. Yalıtılmış +değillerdir. Yüklenmiş bir yerel plugin, çekirdek kodla aynı süreç düzeyinde güven sınırına sahiptir. -Sonuçlar: +Sonuçları: -- yerel bir plugin araçlar, ağ işleyicileri, kancalar ve hizmetler kaydedebilir -- yerel bir plugin hatası gateway'i çökertebilir veya dengesizleştirebilir -- kötü amaçlı bir yerel plugin, OpenClaw süreci içinde keyfi kod yürütmeye denktir +- bir yerel plugin araçlar, ağ işleyicileri, kancalar ve servisler kaydedebilir +- bir yerel plugin hatası gateway’i çökertilebilir veya kararsızlaştırabilir +- kötü amaçlı bir yerel plugin, OpenClaw süreci içinde keyfi kod yürütmeye eşdeğerdir -Uyumlu paketler varsayılan olarak daha güvenlidir çünkü OpenClaw şu anda onları -meta veri/içerik paketleri olarak ele alır. Mevcut sürümlerde bu çoğunlukla paketlenmiş -Skills anlamına gelir. +Uyumlu paketler varsayılan olarak daha güvenlidir; çünkü OpenClaw şu anda bunları +meta veri/içerik paketleri olarak ele alır. Güncel sürümlerde bu çoğunlukla +paketlenmiş Skills anlamına gelir. -Paketlenmemiş plugin'ler için allowlist'ler ve açık kurulum/yükleme yolları kullanın. Çalışma alanı plugin'lerini -üretim varsayılanları olarak değil, geliştirme zamanı kodu olarak değerlendirin. +Paketlenmemiş plugin’ler için izin listelerini ve açık kurulum/yükleme yollarını kullanın. Çalışma alanı plugin’lerini +üretim varsayılanları değil, geliştirme zamanı kodu olarak değerlendirin. -Paketlenmiş çalışma alanı paket adları için plugin kimliğini npm -adına bağlı tutun: varsayılan olarak `@openclaw/` veya -paket bilerek daha dar bir plugin rolü açığa çıkarıyorsa -`-provider`, `-plugin`, `-speech`, `-sandbox` veya `-media-understanding` gibi onaylı yazımlı son ekler kullanın. +Paketlenmiş çalışma alanı paket adları için, plugin kimliğini npm +adına bağlayın: varsayılan olarak `@openclaw/`, ya da paket +kasıtlı olarak daha dar bir plugin rolü sunuyorsa `-provider`, `-plugin`, `-speech`, `-sandbox` veya +`-media-understanding` gibi onaylı türlenmiş sonekler. Önemli güven notu: - `plugins.allow`, **kaynak kökenine** değil **plugin kimliklerine** güvenir. -- Paketlenmiş bir plugin ile aynı kimliğe sahip bir çalışma alanı plugin'i etkinleştirildiğinde/allowlist'e alındığında - kasıtlı olarak paketlenmiş kopyayı gölgeler. -- Bu normaldir ve yerel geliştirme, yama testi ve hotfix'ler için kullanışlıdır. +- Paketlenmiş bir plugin ile aynı kimliğe sahip bir çalışma alanı plugin’i, bu çalışma alanı plugin’i etkinleştirildiğinde/izin listesine alındığında + paketlenmiş kopyayı kasıtlı olarak gölgeler. +- Bu normaldir ve yerel geliştirme, yama testi ve hızlı düzeltmeler için faydalıdır. ## Dışa aktarma sınırı -OpenClaw uygulama kolaylıklarını değil, yetenekleri dışa aktarır. +OpenClaw, uygulama kolaylıklarını değil, yetenekleri dışa aktarır. -Yetenek kaydını genel tutun. Sözleşme olmayan yardımcı dışa aktarmaları azaltın: +Yetenek kaydını genel tutun. Sözleşme dışı yardımcı dışa aktarımları azaltın: -- paketlenmiş plugin'e özgü yardımcı alt yollar +- paketlenmiş plugin’e özgü yardımcı alt yollar - genel API olması amaçlanmayan çalışma zamanı tesisat alt yolları - satıcıya özgü kolaylık yardımcıları -- uygulama ayrıntısı olan kurulum/katılım yardımcıları +- uygulama ayrıntısı olan kurulum/ilk yapılandırma yardımcıları -Bazı paketlenmiş plugin yardımcı alt yolları uyumluluk ve paketlenmiş plugin bakımı için -oluşturulmuş SDK dışa aktarma haritasında hâlâ kalmaktadır. Güncel örnekler +Bazı paketlenmiş plugin yardımcı alt yolları, uyumluluk ve paketlenmiş plugin bakımı için oluşturulmuş SDK dışa aktarma +eşlemesinde hâlâ kalmaktadır. Güncel örnekler arasında `plugin-sdk/feishu`, `plugin-sdk/feishu-setup`, `plugin-sdk/zalo`, -`plugin-sdk/zalo-setup` ve birkaç `plugin-sdk/matrix*` geçişidir. Bunları yeni üçüncü taraf plugin'ler için -önerilen SDK deseni olarak değil, ayrılmış uygulama ayrıntısı dışa aktarmaları olarak değerlendirin. +`plugin-sdk/zalo-setup` ve birkaç `plugin-sdk/matrix*` yüzeyi bulunur. Bunları, +yeni üçüncü taraf plugin’ler için önerilen SDK deseni olarak değil, ayrılmış +uygulama ayrıntısı dışa aktarımları olarak değerlendirin. ## Yükleme işlem hattı @@ -490,42 +490,47 @@ Başlangıçta OpenClaw kabaca şunları yapar: 3. güvenli olmayan adayları reddeder 4. plugin yapılandırmasını normalize eder (`plugins.enabled`, `allow`, `deny`, `entries`, `slots`, `load.paths`) -5. her aday için etkinleştirmeye karar verir +5. her aday için etkinleştirme durumuna karar verir 6. etkin yerel modülleri jiti aracılığıyla yükler -7. yerel `register(api)` (veya eski bir takma ad olan `activate(api)`) kancalarını çağırır ve kayıtları plugin kayıt sisteminde toplar -8. kayıt sistemini komutlara/çalışma zamanı yüzeylerine açığa çıkarır +7. yerel `register(api)` (veya `activate(api)` — eski bir takma ad) kancalarını çağırır ve kayıtları plugin kayıt defterinde toplar +8. kayıt defterini komut/çalışma zamanı yüzeylerine sunar -`activate`, `register` için eski bir takma addır — yükleyici mevcut olanı çözer (`def.register ?? def.activate`) ve aynı noktada çağırır. Tüm paketlenmiş plugin'ler `register` kullanır; yeni plugin'ler için `register` tercih edin. +`activate`, `register` için eski bir takma addır — yükleyici hangisi mevcutsa onu çözer (`def.register ?? def.activate`) ve aynı noktada çağırır. Tüm paketlenmiş plugin’ler `register` kullanır; yeni plugin’ler için `register` tercih edin. -Güvenlik geçitleri çalışma zamanı yürütümünden **önce** gerçekleşir. Giriş plugin kökünün dışına çıktığında, -yol herkes tarafından yazılabilir olduğunda veya paketlenmemiş plugin'ler için -yol sahipliği şüpheli göründüğünde adaylar engellenir. +Güvenlik kapıları **çalışma zamanı yürütmesinden önce** devreye girer. Giriş plugin kökünden çıkıyorsa, +yol dünya tarafından yazılabilirse veya paketlenmemiş plugin’ler için yol +sahipliği şüpheli görünüyorsa adaylar engellenir. -### Manifest-öncelikli davranış +### Önce manifest davranışı -Manifest denetim düzlemi için doğruluk kaynağıdır. OpenClaw bunu şunlar için kullanır: +Manifest, kontrol düzlemi için doğruluk kaynağıdır. OpenClaw bunu şunlar için kullanır: -- plugin'i tanımlamak +- plugin’i tanımlamak - bildirilen kanalları/Skills/yapılandırma şemasını veya paket yeteneklerini keşfetmek - `plugins.entries..config` değerini doğrulamak - Control UI etiketlerini/yer tutucularını zenginleştirmek -- kurulum/katalog meta verisini göstermek +- kurulum/katalog meta verilerini göstermek +- plugin çalışma zamanını yüklemeden düşük maliyetli etkinleştirme ve kurulum tanımlayıcılarını korumak -Yerel plugin'ler için çalışma zamanı modülü veri düzlemi kısmıdır. Kancalar, -araçlar, komutlar veya sağlayıcı akışları gibi gerçek davranışları kaydeder. +Yerel plugin’lerde çalışma zamanı modülü veri düzlemi parçasıdır. Kancalar, araçlar, komutlar veya sağlayıcı akışları gibi +gerçek davranışları kaydeder. -### Yükleyicinin önbelleğe aldıkları +İsteğe bağlı manifest `activation` ve `setup` blokları kontrol düzleminde kalır. +Bunlar etkinleştirme planlaması ve kurulum keşfi için yalnızca meta veri tanımlayıcılarıdır; +çalışma zamanı kaydının, `register(...)` işlevinin veya `setupEntry` işlevinin yerine geçmezler. -OpenClaw şu öğeler için kısa süreli işlem içi önbellekler tutar: +### Yükleyicinin önbelleğe aldığı şeyler + +OpenClaw, süreç içinde kısa ömürlü önbellekleri şunlar için tutar: - keşif sonuçları -- manifest kayıt sistemi verisi -- yüklenmiş plugin kayıt sistemleri +- manifest kayıt defteri verileri +- yüklenmiş plugin kayıt defterleri -Bu önbellekler ani başlangıçları ve tekrarlanan komut yükünü azaltır. Onları -kalıcılık değil, kısa ömürlü performans önbellekleri olarak düşünmek güvenlidir. +Bu önbellekler ani başlangıç yükünü ve tekrarlanan komut ek yükünü azaltır. Bunları +kalıcılık olarak değil, kısa ömürlü performans önbellekleri olarak düşünmek güvenlidir. Performans notu: @@ -534,39 +539,39 @@ Performans notu: - Önbellek pencerelerini `OPENCLAW_PLUGIN_DISCOVERY_CACHE_MS` ve `OPENCLAW_PLUGIN_MANIFEST_CACHE_MS` ile ayarlayın. -## Kayıt sistemi modeli +## Kayıt defteri modeli -Yüklenmiş plugin'ler rastgele çekirdek küresellerini doğrudan değiştirmez. Bunun yerine -merkezi bir plugin kayıt sistemine kayıt olurlar. +Yüklenmiş plugin’ler rastgele çekirdek genel durumlarını doğrudan değiştirmez. Merkezi bir +plugin kayıt defterine kayıt olurlar. -Kayıt sistemi şunları izler: +Kayıt defteri şunları izler: -- plugin kayıtları (kimlik, kaynak, köken, durum, tanılamalar) +- plugin kayıtları (kimlik, kaynak, köken, durum, tanı bilgileri) - araçlar -- eski kancalar ve yazımlı kancalar +- eski kancalar ve türlenmiş kancalar - kanallar - sağlayıcılar - gateway RPC işleyicileri - HTTP rotaları -- CLI kayıtçıları -- arka plan hizmetleri -- plugin'e ait komutlar +- CLI kaydedicileri +- arka plan servisleri +- plugin’e ait komutlar -Ardından çekirdek özellikler plugin modülleriyle doğrudan konuşmak yerine bu kayıt sisteminden okur. +Daha sonra çekirdek özellikler, plugin modülleriyle doğrudan konuşmak yerine bu kayıt defterinden okur. Bu, yüklemeyi tek yönlü tutar: -- plugin modülü -> kayıt sistemi kaydı -- çekirdek çalışma zamanı -> kayıt sistemi tüketimi +- plugin modülü -> kayıt defterine kayıt +- çekirdek çalışma zamanı -> kayıt defterinden tüketim -Bu ayrım bakım kolaylığı için önemlidir. Şu anlama gelir: çoğu çekirdek yüzeyin yalnızca -tek bir entegrasyon noktasına ihtiyacı vardır: "kayıt sistemini oku", yoksa "her plugin -modülünü özel durum olarak işle" değil. +Bu ayrım bakım yapılabilirlik için önemlidir. Bu, çoğu çekirdek yüzeyin yalnızca tek bir +entegrasyon noktasına ihtiyaç duyması anlamına gelir: “kayıt defterini oku”; +“her plugin modülü için özel durum yaz” değil. ## Konuşma bağlama geri çağrıları -Bir konuşmayı bağlayan plugin'ler, bir onay çözümlendiğinde tepki verebilir. +Bir konuşmayı bağlayan plugin’ler, bir onay çözümlendiğinde tepki verebilir. -Bir bağlama isteği onaylandıktan veya reddedildikten sonra geri çağrı almak için +Bağlama isteği onaylandıktan veya reddedildikten sonra bir geri çağrı almak için `api.onConversationBindingResolved(...)` kullanın: ```ts @@ -575,38 +580,38 @@ export default { register(api) { api.onConversationBindingResolved(async (event) => { if (event.status === "approved") { - // A binding now exists for this plugin + conversation. + // Artık bu plugin + conversation için bir bağlama var. console.log(event.binding?.conversationId); return; } - // The request was denied; clear any local pending state. + // İstek reddedildi; yerel bekleyen durumu temizleyin. console.log(event.request.conversation.conversationId); }); }, }; ``` -Geri çağrı yük alanları: +Geri çağrı yükü alanları: - `status`: `"approved"` veya `"denied"` - `decision`: `"allow-once"`, `"allow-always"` veya `"deny"` -- `binding`: onaylanan istekler için çözülmüş bağ +- `binding`: onaylanan istekler için çözümlenmiş bağlama - `request`: özgün istek özeti, ayırma ipucu, gönderen kimliği ve - konuşma meta verisi + konuşma meta verileri -Bu geri çağrı yalnızca bildirim amaçlıdır. Kimin bir konuşmayı bağlamasına izin verildiğini değiştirmez -ve çekirdek onay işleme bittikten sonra çalışır. +Bu geri çağrı yalnızca bildirim amaçlıdır. Bir konuşmayı kimin bağlayabileceğini değiştirmez +ve çekirdek onay işleme tamamlandıktan sonra çalışır. ## Sağlayıcı çalışma zamanı kancaları -Sağlayıcı plugin'lerinin artık iki katmanı vardır: +Sağlayıcı plugin’lerinin artık iki katmanı vardır: -- manifest meta verisi: çalışma zamanı yüklemesinden - önce ucuz sağlayıcı ortam kimlik doğrulama araması için `providerAuthEnvVars`, kimlik doğrulamayı paylaşan sağlayıcı varyantları için `providerAuthAliases`, - çalışma zamanı yüklemesinden önce ucuz kanal ortamı/kurulum araması için `channelEnvVars`, - ayrıca çalışma zamanı yüklemesinden önce ucuz katılım/kimlik doğrulama seçimi etiketleri ve - CLI bayrağı meta verisi için `providerAuthChoices` +- manifest meta verileri: çalışma zamanı yüklenmeden önce ucuz sağlayıcı ortam kimlik doğrulama araması için `providerAuthEnvVars`, + kimlik doğrulamayı paylaşan sağlayıcı varyantları için `providerAuthAliases`, + çalışma zamanı yüklenmeden önce ucuz kanal ortamı/kurulum araması için `channelEnvVars`, + ayrıca çalışma zamanı yüklenmeden önce ucuz ilk kurulum/kimlik doğrulama seçimi etiketleri ve + CLI bayrak meta verileri için `providerAuthChoices` - yapılandırma zamanı kancaları: `catalog` / eski `discovery` ile `applyConfigDefaults` - çalışma zamanı kancaları: `normalizeModelId`, `normalizeTransport`, `normalizeConfig`, @@ -628,86 +633,89 @@ Sağlayıcı plugin'lerinin artık iki katmanı vardır: `buildReplayPolicy`, `sanitizeReplayHistory`, `validateReplayTurns`, `onModelSelected` -OpenClaw hâlâ genel ajan döngüsüne, failover'a, transcript işleme ve -araç politikasına sahiptir. Bu kancalar, sağlayıcıya özgü davranış için tümüyle özel bir çıkarım aktarımına -gerek kalmadan uzantı yüzeyidir. +OpenClaw hâlâ genel ajan döngüsüne, yük devrine, döküm işleme sürecine ve +araç politikasına sahiptir. Bu kancalar, tam bir özel çıkarım aktarımına ihtiyaç +duymadan sağlayıcıya özgü davranış için uzantı yüzeyidir. Sağlayıcının, genel kimlik doğrulama/durum/model seçici yollarının -plugin çalışma zamanını yüklemeden görebileceği ortam tabanlı kimlik bilgileri varsa manifest `providerAuthEnvVars` kullanın. -Bir sağlayıcı kimliği başka bir sağlayıcı kimliğinin ortam değişkenlerini, kimlik doğrulama profillerini, yapılandırma tabanlı kimlik doğrulamayı ve -API anahtarı katılım seçimini yeniden kullanacaksa manifest `providerAuthAliases` kullanın. Katılım/kimlik doğrulama seçimi -CLI yüzeylerinin sağlayıcının seçim kimliğini, grup etiketlerini ve basit -tek bayraklı kimlik doğrulama bağlamasını sağlayıcı çalışma zamanını yüklemeden bilmesi gerektiğinde manifest `providerAuthChoices` kullanın. -Sağlayıcı çalışma zamanındaki `envVars` alanını ise katılım etiketleri veya OAuth -client-id/client-secret kurulum değişkenleri gibi operatöre dönük ipuçları için tutun. +plugin çalışma zamanını yüklemeden görebilmesi gereken ortam tabanlı kimlik bilgileri varsa +manifest `providerAuthEnvVars` kullanın. Bir sağlayıcı kimliği başka bir sağlayıcı kimliğinin +ortam değişkenlerini, kimlik doğrulama profillerini, yapılandırma destekli kimlik doğrulamayı ve API anahtarı ilk kurulum seçimini yeniden kullanacaksa +manifest `providerAuthAliases` kullanın. İlk kurulum/kimlik doğrulama seçimi +CLI yüzeylerinin, sağlayıcının seçim kimliğini, grup etiketlerini ve basit +tek bayraklı kimlik doğrulama bağlantısını sağlayıcı çalışma zamanını yüklemeden bilmesi gerektiğinde +manifest `providerAuthChoices` kullanın. Sağlayıcı çalışma zamanı +`envVars` alanını, ilk kurulum etiketleri veya OAuth +istemci kimliği/istemci sırrı kurulum değişkenleri gibi operatöre dönük ipuçları için koruyun. -Bir kanal, genel kabuk ortamı geri dönüşünün, yapılandırma/durum denetimlerinin veya kurulum istemlerinin -kanal çalışma zamanını yüklemeden görebileceği ortam güdümlü kimlik doğrulama ya da kurulum kullanıyorsa manifest `channelEnvVars` kullanın. +Bir kanalın, genel kabuk-ortamı geri dönüşü, yapılandırma/durum denetimleri veya kurulum istemlerinin +kanal çalışma zamanını yüklemeden görmesi gereken ortam güdümlü kimlik doğrulaması veya kurulumu varsa +manifest `channelEnvVars` kullanın. ### Kanca sırası ve kullanım -Model/sağlayıcı plugin'leri için OpenClaw kancaları kabaca şu sırayla çağırır. -"Ne zaman kullanılmalı" sütunu hızlı karar rehberidir. +Model/sağlayıcı plugin’leri için OpenClaw, kancaları kabaca şu sırayla çağırır. +“Ne zaman kullanılır” sütunu hızlı karar kılavuzudur. -| # | Kanca | Ne yapar | Ne zaman kullanılmalı | -| --- | --------------------------------- | --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -| 1 | `catalog` | `models.json` üretimi sırasında sağlayıcı yapılandırmasını `models.providers` içine yayımlar | Sağlayıcı bir kataloğa veya temel URL varsayılanlarına sahipse | -| 2 | `applyConfigDefaults` | Yapılandırma somutlaştırması sırasında sağlayıcıya ait genel yapılandırma varsayılanlarını uygular | Varsayılanlar kimlik doğrulama moduna, ortama veya sağlayıcı model ailesi anlamlarına bağlıysa | -| -- | _(yerleşik model araması)_ | OpenClaw önce normal kayıt sistemi/katalog yolunu dener | _(plugin kancası değildir)_ | -| 3 | `normalizeModelId` | Aramadan önce eski veya önizleme model kimliği takma adlarını normalize eder | Sağlayıcı, kanonik model çözümünden önce takma ad temizliğine sahipse | -| 4 | `normalizeTransport` | Genel model birleştirmesinden önce sağlayıcı ailesine ait `api` / `baseUrl` değerlerini normalize eder | Sağlayıcı, aynı aktarım ailesindeki özel sağlayıcı kimlikleri için aktarım temizliğine sahipse | -| 5 | `normalizeConfig` | Çalışma zamanı/sağlayıcı çözümünden önce `models.providers.` değerini normalize eder | Sağlayıcının plugin ile yaşaması gereken yapılandırma temizliğine ihtiyacı varsa; paketlenmiş Google ailesi yardımcıları da desteklenen Google yapılandırma girdilerini geriden destekler | -| 6 | `applyNativeStreamingUsageCompat` | Yapılandırma sağlayıcılarına doğal akış kullanımı uyumluluk yeniden yazımlarını uygular | Sağlayıcının uç nokta güdümlü doğal akış kullanımı meta veri düzeltmelerine ihtiyacı varsa | -| 7 | `resolveConfigApiKey` | Çalışma zamanı kimlik doğrulaması yüklenmeden önce yapılandırma sağlayıcıları için ortam işaretleyici kimlik doğrulamasını çözer | Sağlayıcının kendine ait ortam işaretleyici API anahtarı çözümlemesi varsa; `amazon-bedrock` burada ayrıca yerleşik bir AWS ortam işaretleyici çözümleyiciye sahiptir | -| 8 | `resolveSyntheticAuth` | Düz metin kalıcı olmadan yerel/kendi kendine barındırılan veya yapılandırma tabanlı kimlik doğrulamayı yüzeye çıkarır | Sağlayıcı sentetik/yerel bir kimlik bilgisi işaretleyicisi ile çalışabiliyorsa | -| 9 | `resolveExternalAuthProfiles` | Sağlayıcıya ait harici kimlik doğrulama profillerini üstüne bindirir; CLI/uygulama sahipli kimlik bilgileri için varsayılan `persistence`, `runtime-only` olur | Sağlayıcı kopyalanmış yenileme belirteçlerini kalıcı yapmadan harici kimlik doğrulama bilgilerini yeniden kullanıyorsa | -| 10 | `shouldDeferSyntheticProfileAuth` | Saklanan sentetik profil yer tutucularını ortam/yapılandırma tabanlı kimlik doğrulamanın altına düşürür | Sağlayıcı, öncelik kazanmaması gereken sentetik yer tutucu profiller saklıyorsa | -| 11 | `resolveDynamicModel` | Yerel kayıt sisteminde henüz bulunmayan sağlayıcıya ait model kimlikleri için eşzamanlı geri dönüş | Sağlayıcı herhangi bir üst akış model kimliğini kabul ediyorsa | -| 12 | `prepareDynamicModel` | Eşzamansız ısınma yapar, sonra `resolveDynamicModel` yeniden çalışır | Sağlayıcı bilinmeyen kimlikleri çözmeden önce ağ meta verisine ihtiyaç duyuyorsa | -| 13 | `normalizeResolvedModel` | Gömülü çalıştırıcı çözülmüş modeli kullanmadan önce son yeniden yazımı yapar | Sağlayıcının aktarım yeniden yazımlarına ihtiyacı varsa ancak yine de bir çekirdek aktarımı kullanıyorsa | -| 14 | `contributeResolvedModelCompat` | Başka bir uyumlu aktarım arkasındaki satıcı modelleri için uyumluluk bayrakları katkısı yapar | Sağlayıcı, sağlayıcıyı devralmadan kendi modellerini vekil aktarımlarda tanıyorsa | -| 15 | `capabilities` | Paylaşılan çekirdek mantık tarafından kullanılan sağlayıcıya ait transcript/araç meta verisi | Sağlayıcı transcript/sağlayıcı ailesi tuhaflıklarına ihtiyaç duyuyorsa | -| 16 | `normalizeToolSchemas` | Gömülü çalıştırıcı görmeden önce araç şemalarını normalize eder | Sağlayıcının aktarım ailesine ait şema temizliğine ihtiyacı varsa | -| 17 | `inspectToolSchemas` | Normalizasyondan sonra sağlayıcıya ait şema tanılamalarını yüzeye çıkarır | Sağlayıcı çekirdeğe sağlayıcıya özgü kurallar öğretmeden anahtar sözcük uyarıları istiyorsa | -| 18 | `resolveReasoningOutputMode` | Doğal ile etiketli gerekçelendirme-çıktısı sözleşmesi arasında seçim yapar | Sağlayıcı doğal alanlar yerine etiketli gerekçelendirme/nihai çıktı istiyorsa | -| 19 | `prepareExtraParams` | Genel akış seçeneği sarmalayıcılarından önce istek parametresi normalizasyonu yapar | Sağlayıcının varsayılan istek parametrelerine veya sağlayıcı başına parametre temizliğine ihtiyacı varsa | -| 20 | `createStreamFn` | Normal akış yolunu tamamen özel bir aktarım ile değiştirir | Sağlayıcının yalnızca bir sarmalayıcıya değil, özel bir kablo protokolüne ihtiyacı varsa | -| 21 | `wrapStreamFn` | Genel sarmalayıcılar uygulandıktan sonra akışı sarar | Sağlayıcının özel bir aktarım olmadan istek üstbilgisi/gövdesi/model uyumluluk sarmalayıcılarına ihtiyacı varsa | -| 22 | `resolveTransportTurnState` | Sağlayıcıya özgü tur başına aktarım üstbilgileri veya meta veri ekler | Sağlayıcı, genel aktarımların sağlayıcıya özgü doğal tur kimliğini göndermesini istiyorsa | -| 23 | `resolveWebSocketSessionPolicy` | Doğal WebSocket üstbilgileri veya oturum soğuma politikası ekler | Sağlayıcı, genel WS aktarımlarının oturum üstbilgilerini veya geri dönüş politikasını ayarlamasını istiyorsa | -| 24 | `formatApiKey` | Kimlik doğrulama profili biçimleyicisi: saklanan profil çalışma zamanı `apiKey` dizgesi olur | Sağlayıcı ek kimlik doğrulama meta verisi saklıyorsa ve özel bir çalışma zamanı belirteç biçimine ihtiyaç duyuyorsa | -| 25 | `refreshOAuth` | Özel yenileme uç noktaları veya yenileme hatası politikası için OAuth yenileme geçersiz kılması | Sağlayıcı paylaşılan `pi-ai` yenileyicilerine uymuyorsa | -| 26 | `buildAuthDoctorHint` | OAuth yenilemesi başarısız olduğunda eklenen onarım ipucu | Sağlayıcının yenileme hatasından sonra sağlayıcıya ait kimlik doğrulama onarım rehberliğine ihtiyacı varsa | -| 27 | `matchesContextOverflowError` | Sağlayıcıya ait bağlam penceresi taşması eşleştiricisi | Sağlayıcının, genel sezgilerin kaçıracağı ham taşma hataları varsa | -| 28 | `classifyFailoverReason` | Sağlayıcıya ait failover nedeni sınıflandırması | Sağlayıcı ham API/aktarım hatalarını hız sınırı/aşırı yük/vb. olarak eşleyebiliyorsa | -| 29 | `isCacheTtlEligible` | Proxy/arka taşıma sağlayıcıları için istem önbelleği politikası | Sağlayıcının vekile özgü önbellek TTL geçitlemesine ihtiyacı varsa | -| 30 | `buildMissingAuthMessage` | Genel eksik kimlik doğrulama kurtarma mesajının yerine geçer | Sağlayıcının sağlayıcıya özgü eksik kimlik doğrulama kurtarma ipucuna ihtiyacı varsa | -| 31 | `suppressBuiltInModel` | Eski üst akış model bastırması ve isteğe bağlı kullanıcıya dönük hata ipucu | Sağlayıcının eski üst akış satırlarını gizlemesi veya bunları bir satıcı ipucuyla değiştirmesi gerekiyorsa | -| 32 | `augmentModelCatalog` | Keşiften sonra sentetik/nihai katalog satırları ekler | Sağlayıcının `models list` ve seçicilerde sentetik ileri uyumluluk satırlarına ihtiyacı varsa | -| 33 | `isBinaryThinking` | İkili düşünme sağlayıcıları için açık/kapalı gerekçelendirme anahtarı | Sağlayıcı yalnızca ikili düşünme açık/kapalı sunuyorsa | -| 34 | `supportsXHighThinking` | Seçili modeller için `xhigh` gerekçelendirme desteği | Sağlayıcı `xhigh` değerini yalnızca modellerin bir alt kümesinde istiyorsa | +| # | Kanca | Ne yapar | Ne zaman kullanılır | +| --- | --------------------------------- | -------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | +| 1 | `catalog` | `models.json` oluşturulurken sağlayıcı yapılandırmasını `models.providers` içine yayımlar | Sağlayıcının bir kataloğa veya temel URL varsayılanlarına sahip olduğu durumlarda | +| 2 | `applyConfigDefaults` | Yapılandırma somutlaştırması sırasında sağlayıcıya ait genel yapılandırma varsayılanlarını uygular | Varsayılanlar kimlik doğrulama moduna, ortama veya sağlayıcı model ailesi anlambilimine bağlıysa | +| -- | _(yerleşik model araması)_ | OpenClaw önce normal kayıt defteri/katalog yolunu dener | _(bir plugin kancası değildir)_ | +| 3 | `normalizeModelId` | Aramadan önce eski veya önizleme model kimliği takma adlarını normalleştirir | Sağlayıcı, kanonik model çözümlemesinden önce takma ad temizliğine sahipse | +| 4 | `normalizeTransport` | Genel model birleştirmesinden önce sağlayıcı ailesine ait `api` / `baseUrl` değerlerini normalleştirir | Sağlayıcı, aynı aktarım ailesindeki özel sağlayıcı kimlikleri için aktarım temizliğini sahipleniyorsa | +| 5 | `normalizeConfig` | Çalışma zamanı/sağlayıcı çözümlemesinden önce `models.providers.` değerini normalleştirir | Sağlayıcının plugin ile birlikte yaşaması gereken yapılandırma temizliğine ihtiyacı varsa; paketlenmiş Google ailesi yardımcıları da desteklenen Google yapılandırma girdilerini arka planda destekler | +| 6 | `applyNativeStreamingUsageCompat` | Yerel akış kullanımı uyumluluk yeniden yazımlarını yapılandırma sağlayıcılarına uygular | Sağlayıcının uç nokta güdümlü yerel akış kullanım meta verisi düzeltmelerine ihtiyacı varsa | +| 7 | `resolveConfigApiKey` | Çalışma zamanı kimlik doğrulaması yüklenmeden önce yapılandırma sağlayıcıları için ortam işaretleyicili kimlik doğrulamayı çözümler | Sağlayıcının sağlayıcıya ait ortam işaretleyicili API anahtarı çözümlemesine ihtiyacı varsa; `amazon-bedrock` için de burada yerleşik bir AWS ortam işaretleyici çözümleyicisi bulunur | +| 8 | `resolveSyntheticAuth` | Düz metni kalıcılaştırmadan yerel/kendi kendine barındırılan veya yapılandırma destekli kimlik doğrulamayı görünür kılar | Sağlayıcı sentetik/yerel bir kimlik bilgisi işaretleyicisiyle çalışabiliyorsa | +| 9 | `resolveExternalAuthProfiles` | Sağlayıcıya ait harici kimlik doğrulama profillerini bindirir; varsayılan `persistence`, CLI/uygulamaya ait kimlik bilgileri için `runtime-only` olur | Sağlayıcı, kopyalanmış yenileme belirteçlerini kalıcılaştırmadan harici kimlik doğrulama kimlik bilgilerini yeniden kullanıyorsa | +| 10 | `shouldDeferSyntheticProfileAuth` | Kaydedilmiş sentetik profil yer tutucularını ortam/yapılandırma destekli kimlik doğrulamanın arkasına indirir | Sağlayıcı, öncelik kazanmaması gereken sentetik yer tutucu profiller saklıyorsa | +| 11 | `resolveDynamicModel` | Henüz yerel kayıt defterinde olmayan sağlayıcıya ait model kimlikleri için eşzamanlı geri dönüş sağlar | Sağlayıcı, yukarı akıştan gelen keyfi model kimliklerini kabul ediyorsa | +| 12 | `prepareDynamicModel` | Zaman uyumsuz hazırlık yapar, ardından `resolveDynamicModel` yeniden çalışır | Sağlayıcının bilinmeyen kimlikleri çözümlemeden önce ağ meta verisine ihtiyacı varsa | +| 13 | `normalizeResolvedModel` | Gömülü çalıştırıcı çözümlenmiş modeli kullanmadan önce son yeniden yazımı yapar | Sağlayıcının aktarım yeniden yazımlarına ihtiyacı varsa ancak yine de çekirdek bir aktarım kullanıyorsa | +| 14 | `contributeResolvedModelCompat` | Başka bir uyumlu aktarım arkasındaki satıcı modelleri için uyumluluk bayrakları katkısı sağlar | Sağlayıcı, sağlayıcıyı devralmadan ara sunucu aktarımlarındaki kendi modellerini tanıyorsa | +| 15 | `capabilities` | Paylaşılan çekirdek mantığı tarafından kullanılan, sağlayıcıya ait döküm/araç meta verileri | Sağlayıcının döküm/sağlayıcı ailesi tuhaflıklarına ihtiyacı varsa | +| 16 | `normalizeToolSchemas` | Gömülü çalıştırıcı bunları görmeden önce araç şemalarını normalleştirir | Sağlayıcının aktarım ailesine ait şema temizliğine ihtiyacı varsa | +| 17 | `inspectToolSchemas` | Normalleştirmeden sonra sağlayıcıya ait şema tanılarını görünür kılar | Sağlayıcı, çekirdeğe sağlayıcıya özgü kurallar öğretmeden anahtar sözcük uyarıları istiyorsa | +| 18 | `resolveReasoningOutputMode` | Yerel ile etiketli akıl yürütme çıktısı sözleşmesi arasında seçim yapar | Sağlayıcının yerel alanlar yerine etiketli akıl yürütme/nihai çıktı istemesi durumunda | +| 19 | `prepareExtraParams` | Genel akış seçenek sarmalayıcılarından önce istek parametresi normalleştirmesi yapar | Sağlayıcının varsayılan istek parametrelerine veya sağlayıcı başına parametre temizliğine ihtiyacı varsa | +| 20 | `createStreamFn` | Normal akış yolunu özel bir aktarımla tamamen değiştirir | Sağlayıcının yalnızca bir sarmalayıcıya değil, özel bir kablo protokolüne ihtiyacı varsa | +| 21 | `wrapStreamFn` | Genel sarmalayıcılar uygulandıktan sonra akışı sarar | Sağlayıcının özel bir aktarım olmadan istek üst bilgileri/gövdesi/model uyumluluğu sarmalayıcılarına ihtiyacı varsa | +| 22 | `resolveTransportTurnState` | Yerel tur başına aktarım üst bilgilerini veya meta veriyi ekler | Sağlayıcının genel aktarımların sağlayıcıya özgü tur kimliğini göndermesini istemesi durumunda | +| 23 | `resolveWebSocketSessionPolicy` | Yerel WebSocket üst bilgilerini veya oturum soğuma politikasını ekler | Sağlayıcının genel WS aktarımlarını oturum üst bilgileri veya geri dönüş politikası için ayarlamak istemesi durumunda | +| 24 | `formatApiKey` | Kimlik doğrulama profili biçimlendiricisi: kaydedilmiş profil, çalışma zamanındaki `apiKey` dizesine dönüşür | Sağlayıcı ek kimlik doğrulama meta verisi saklıyorsa ve özel bir çalışma zamanı belirteci biçimine ihtiyaç duyuyorsa | +| 25 | `refreshOAuth` | Özel yenileme uç noktaları veya yenileme-hatası politikası için OAuth yenilemesini geçersiz kılar | Sağlayıcı paylaşılan `pi-ai` yenileyicilerine uymuyorsa | +| 26 | `buildAuthDoctorHint` | OAuth yenilemesi başarısız olduğunda eklenen onarım ipucu | Sağlayıcının yenileme hatasından sonra sağlayıcıya ait kimlik doğrulama onarım yönlendirmesine ihtiyacı varsa | +| 27 | `matchesContextOverflowError` | Sağlayıcıya ait bağlam penceresi taşması eşleyicisi | Sağlayıcının genel sezgilerin kaçıracağı ham taşma hataları varsa | +| 28 | `classifyFailoverReason` | Sağlayıcıya ait yük devri nedeni sınıflandırması | Sağlayıcının ham API/aktarım hatalarını hız sınırı/aşırı yük/vb. nedenlere eşleyebilmesi durumunda | +| 29 | `isCacheTtlEligible` | Ara sunucu/arka taşıma sağlayıcıları için istem önbelleği politikası | Sağlayıcının ara sunucuya özgü önbellek TTL geçitlemesine ihtiyacı varsa | +| 30 | `buildMissingAuthMessage` | Genel eksik kimlik doğrulama kurtarma iletisinin yerine geçer | Sağlayıcının sağlayıcıya özgü eksik kimlik doğrulama kurtarma ipucuna ihtiyacı varsa | +| 31 | `suppressBuiltInModel` | Eski yukarı akış modelini bastırma ve isteğe bağlı kullanıcıya dönük hata ipucu | Sağlayıcının eski yukarı akış satırlarını gizlemesi veya bunları bir satıcı ipucuyla değiştirmesi gerekiyorsa | +| 32 | `augmentModelCatalog` | Keşiften sonra eklenen sentetik/nihai katalog satırları | Sağlayıcının `models list` ve seçiciler içinde sentetik ileri uyumluluk satırlarına ihtiyacı varsa | +| 33 | `isBinaryThinking` | İkili düşünme sağlayıcıları için açık/kapalı akıl yürütme geçişi | Sağlayıcı yalnızca ikili düşünme açık/kapalı desteği sunuyorsa | +| 34 | `supportsXHighThinking` | Seçili modeller için `xhigh` akıl yürütme desteği | Sağlayıcı yalnızca modellerin bir alt kümesinde `xhigh` istiyorsa | | 35 | `resolveDefaultThinkingLevel` | Belirli bir model ailesi için varsayılan `/think` düzeyi | Sağlayıcı bir model ailesi için varsayılan `/think` politikasına sahipse | -| 36 | `isModernModelRef` | Canlı profil filtreleri ve smoke seçimi için modern model eşleştiricisi | Sağlayıcı canlı/smoke tercih edilen model eşleştirmesine sahipse | -| 37 | `prepareRuntimeAuth` | Çıkarımdan hemen önce yapılandırılmış kimlik bilgisini gerçek çalışma zamanı belirtecine/anahtarına dönüştürür | Sağlayıcı belirteç değişimine veya kısa ömürlü istek kimlik bilgisine ihtiyaç duyuyorsa | -| 38 | `resolveUsageAuth` | `/usage` ve ilgili durum yüzeyleri için kullanım/faturalama kimlik bilgilerini çözer | Sağlayıcının özel kullanım/kota belirteci ayrıştırmasına veya farklı bir kullanım kimlik bilgisine ihtiyacı varsa | -| 39 | `fetchUsageSnapshot` | Kimlik doğrulama çözüldükten sonra sağlayıcıya özgü kullanım/kota anlık görüntülerini getirir ve normalize eder | Sağlayıcının sağlayıcıya özgü kullanım uç noktasına veya yük ayrıştırıcısına ihtiyacı varsa | -| 40 | `createEmbeddingProvider` | Bellek/arama için sağlayıcıya ait bir embedding bağdaştırıcısı oluşturur | Bellek embedding davranışı sağlayıcı plugin'i ile birlikte olmalıdır | -| 41 | `buildReplayPolicy` | Sağlayıcı için transcript işlemeyi kontrol eden bir yeniden oynatma politikası döndürür | Sağlayıcının özel transcript politikasına ihtiyacı varsa (örneğin düşünme bloklarını çıkarma) | -| 42 | `sanitizeReplayHistory` | Genel transcript temizliğinden sonra yeniden oynatma geçmişini yeniden yazar | Sağlayıcı, paylaşılan sıkıştırma yardımcılarının ötesinde sağlayıcıya özgü yeniden oynatma yeniden yazımlarına ihtiyaç duyuyorsa | -| 43 | `validateReplayTurns` | Gömülü çalıştırıcıdan önce yeniden oynatma turlarını son kez doğrular veya yeniden şekillendirir | Sağlayıcı aktarımı, genel temizlikten sonra daha sıkı tur doğrulaması gerektiriyorsa | -| 44 | `onModelSelected` | Sağlayıcıya ait seçim sonrası yan etkileri çalıştırır | Sağlayıcının bir model etkin olduğunda telemetriye veya sağlayıcıya ait duruma ihtiyacı varsa | +| 36 | `isModernModelRef` | Canlı profil filtreleri ve smoke seçimi için modern-model eşleyicisi | Sağlayıcı canlı/smoke tercih edilen model eşlemesini sahipleniyorsa | +| 37 | `prepareRuntimeAuth` | Çıkarımdan hemen önce yapılandırılmış bir kimlik bilgisini gerçek çalışma zamanı belirtecine/anahtarına dönüştürür | Sağlayıcının bir belirteç değişimine veya kısa ömürlü istek kimlik bilgisine ihtiyacı varsa | +| 38 | `resolveUsageAuth` | `/usage` ve ilgili durum yüzeyleri için kullanım/faturalama kimlik bilgilerini çözümler | Sağlayıcının özel kullanım/kota belirteci ayrıştırmasına veya farklı bir kullanım kimlik bilgisine ihtiyacı varsa | +| 39 | `fetchUsageSnapshot` | Kimlik doğrulama çözümlendikten sonra sağlayıcıya özgü kullanım/kota anlık görüntülerini getirir ve normalleştirir | Sağlayıcının sağlayıcıya özgü bir kullanım uç noktasına veya yük ayrıştırıcısına ihtiyacı varsa | +| 40 | `createEmbeddingProvider` | Bellek/arama için sağlayıcıya ait bir embedding bağdaştırıcısı oluşturur | Bellek embedding davranışı sağlayıcı plugin’iyle birlikte bulunmalıdır | +| 41 | `buildReplayPolicy` | Sağlayıcı için döküm işlemeyi denetleyen bir replay politikası döndürür | Sağlayıcının özel döküm politikasına ihtiyacı varsa (örneğin, düşünme bloğu çıkarma) | +| 42 | `sanitizeReplayHistory` | Genel döküm temizliğinden sonra replay geçmişini yeniden yazar | Sağlayıcının paylaşılan sıkıştırma yardımcılarının ötesinde sağlayıcıya özgü replay yeniden yazımlarına ihtiyacı varsa | +| 43 | `validateReplayTurns` | Gömülü çalıştırıcıdan önce son replay turu doğrulaması veya yeniden şekillendirmesi yapar | Sağlayıcı aktarımının, genel temizlemeden sonra daha sıkı tur doğrulamasına ihtiyacı varsa | +| 44 | `onModelSelected` | Sağlayıcıya ait seçim sonrası yan etkileri çalıştırır | Bir model etkin olduğunda sağlayıcının telemetriye veya sağlayıcıya ait duruma ihtiyacı varsa | `normalizeModelId`, `normalizeTransport` ve `normalizeConfig` önce -eşleşen sağlayıcı plugin'ini kontrol eder, ardından model -kimliğini veya aktarımı/yapılandırmayı gerçekten değiştiren biri bulunana kadar kanca yetenekli diğer sağlayıcı plugin'lerine düşer. Bu, -çağıranın hangi paketlenmiş plugin'in yeniden yazıma sahip olduğunu bilmesini gerektirmeden -takma ad/uyumluluk sağlayıcı geçişlerinin çalışmasını sağlar. Hiçbir sağlayıcı kancası desteklenen -bir Google ailesi yapılandırma girdisini yeniden yazmazsa, paketlenmiş Google yapılandırma normalleştiricisi yine de +eşleşen sağlayıcı plugin’ini denetler, ardından model kimliğini veya aktarımı/yapılandırmayı gerçekten değiştiren biri bulunana kadar +kanca destekli diğer sağlayıcı plugin’lerine düşer. Bu, çağıranın yeniden yazımı hangi +paketlenmiş plugin’in sahiplendiğini bilmesini gerektirmeden takma ad/uyumluluk +sağlayıcı köprülerinin çalışmasını sağlar. Desteklenen bir Google ailesi yapılandırma girdisini +hiçbir sağlayıcı kancası yeniden yazmazsa, paketlenmiş Google yapılandırma normalleştiricisi yine de bu uyumluluk temizliğini uygular. -Sağlayıcının tamamen özel bir kablo protokolüne veya özel istek yürütücüsüne ihtiyacı varsa, -bu farklı bir uzantı sınıfıdır. Bu kancalar, -OpenClaw'un normal çıkarım döngüsü üzerinde çalışan sağlayıcı davranışı içindir. +Sağlayıcının tamamen özel bir kablo protokolüne veya özel bir istek yürütücüsüne ihtiyacı varsa, +bu farklı bir uzantı sınıfıdır. Bu kancalar, hâlâ OpenClaw’ın normal +çıkarım döngüsü üzerinde çalışan sağlayıcı davranışları içindir. ### Sağlayıcı örneği @@ -765,113 +773,122 @@ api.registerProvider({ ### Yerleşik örnekler -- Anthropic; `resolveDynamicModel`, `capabilities`, `buildAuthDoctorHint`, +- Anthropic, Claude 4.6 ileri uyumluluğuna, + sağlayıcı ailesi ipuçlarına, kimlik doğrulama onarım yönlendirmesine, kullanım uç noktası entegrasyonuna, + istem önbelleği uygunluğuna, kimlik doğrulama farkında yapılandırma varsayılanlarına, Claude + varsayılan/uyarlanabilir düşünme politikasına ve + beta üst bilgileri, `/fast` / `serviceTier` ve `context1m` için Anthropic’e özgü akış şekillendirmesine sahip olduğu için + `resolveDynamicModel`, `capabilities`, `buildAuthDoctorHint`, `resolveUsageAuth`, `fetchUsageSnapshot`, `isCacheTtlEligible`, `resolveDefaultThinkingLevel`, `applyConfigDefaults`, `isModernModelRef` - ve `wrapStreamFn` kullanır çünkü Claude 4.6 ileri uyumluluğuna, - sağlayıcı ailesi ipuçlarına, kimlik doğrulama onarım rehberliğine, kullanım uç noktası entegrasyonuna, - istem önbelleği uygunluğuna, kimlik doğrulama farkındalıklı yapılandırma varsayılanlarına, Claude - varsayılan/uyarlanabilir düşünme politikasına ve beta üstbilgileri, `/fast` / `serviceTier` ile `context1m` için - Anthropic'e özgü akış şekillendirmesine sahiptir. -- Anthropic'in Claude'a özgü akış yardımcıları şimdilik paketlenmiş plugin'in kendi - genel `api.ts` / `contract-api.ts` geçişinde kalır. Bu paket yüzeyi, - genel SDK'yi tek bir sağlayıcının beta-header kuralları çevresinde genişletmek yerine + ve `wrapStreamFn` kullanır. +- Anthropic’in Claude’a özgü akış yardımcıları şimdilik + paketlenmiş plugin’in kendi genel `api.ts` / `contract-api.ts` yüzeyinde kalır. Bu paket yüzeyi, + genel SDK’yı tek bir sağlayıcının beta üst bilgisi kuralları etrafında genişletmek yerine `wrapAnthropicProviderStream`, `resolveAnthropicBetas`, `resolveAnthropicFastMode`, `resolveAnthropicServiceTier` ve daha alt düzey Anthropic sarmalayıcı oluşturucularını dışa aktarır. -- OpenAI; `resolveDynamicModel`, `normalizeResolvedModel` ve +- OpenAI, GPT-5.4 ileri uyumluluğuna, doğrudan OpenAI + `openai-completions` -> `openai-responses` normalleştirmesine, Codex farkında kimlik doğrulama + ipuçlarına, Spark bastırmasına, sentetik OpenAI liste satırlarına ve GPT-5 düşünme / + canlı model politikasına sahip olduğu için `resolveDynamicModel`, `normalizeResolvedModel` ve `capabilities` ile birlikte `buildMissingAuthMessage`, `suppressBuiltInModel`, `augmentModelCatalog`, `supportsXHighThinking` ve `isModernModelRef` - kullanır çünkü GPT-5.4 ileri uyumluluğuna, doğrudan OpenAI - `openai-completions` -> `openai-responses` normalizasyonuna, Codex farkındalıklı kimlik doğrulama - ipuçlarına, Spark bastırmasına, sentetik OpenAI liste satırlarına ve GPT-5 düşünme / - canlı model politikasına sahiptir; `openai-responses-defaults` akış ailesi ise atıf üstbilgileri, - `/fast`/`serviceTier`, metin ayrıntı düzeyi, doğal Codex web arama, - gerekçelendirme uyumluluğu yük şekillendirmesi ve Responses bağlam yönetimi için - paylaşılan doğal OpenAI Responses sarmalayıcılarına sahiptir. -- OpenRouter; sağlayıcı bir geçiş sağlayıcısı olduğu ve OpenClaw'un durağan - kataloğu güncellenmeden önce yeni model kimlikleri açığa çıkarabileceği için `catalog` ile birlikte `resolveDynamicModel` ve - `prepareDynamicModel` kullanır; ayrıca - sağlayıcıya özgü istek üstbilgilerini, yönlendirme meta verisini, gerekçelendirme yamalarını ve - istem önbelleği politikasını çekirdekten uzak tutmak için `capabilities`, `wrapStreamFn` ve `isCacheTtlEligible` de kullanır. Yeniden oynatma politikası - `passthrough-gemini` ailesinden gelirken, `openrouter-thinking` akış ailesi ise - proxy gerekçelendirme ekleme ile desteklenmeyen model / `auto` atlamalarına sahiptir. -- GitHub Copilot; sağlayıcıya ait cihaz oturum açma, model geri dönüş davranışı, Claude transcript tuhaflıkları, - GitHub belirteci -> Copilot belirteci değişimi ve sağlayıcıya ait kullanım uç noktası gerektiği için - `catalog`, `auth`, `resolveDynamicModel` ve `capabilities` ile birlikte `prepareRuntimeAuth` ve `fetchUsageSnapshot` - kullanır. -- OpenAI Codex; hâlâ çekirdek OpenAI aktarımları üzerinde çalışmasına rağmen - kendi aktarım/temel URL normalizasyonuna, OAuth yenileme geri dönüş politikasına, varsayılan aktarım seçimine, + kullanır; `openai-responses-defaults` akış ailesi ise + ilişkilendirme üst bilgileri, `/fast`/`serviceTier`, metin ayrıntı düzeyi, yerel Codex web araması, + akıl yürütme uyumluluğu yük şekillendirmesi ve Responses bağlam yönetimi için + paylaşılan yerel OpenAI Responses sarmalayıcılarına sahiptir. +- OpenRouter, sağlayıcı geçişli olduğu ve OpenClaw’ın statik kataloğu güncellenmeden önce yeni + model kimliklerini açığa çıkarabildiği için `catalog` ile birlikte + `resolveDynamicModel` ve `prepareDynamicModel` kullanır; ayrıca + sağlayıcıya özgü istek üst bilgilerini, yönlendirme meta verilerini, akıl yürütme yamalarını ve + istem önbelleği politikasını çekirdeğin dışında tutmak için + `capabilities`, `wrapStreamFn` ve `isCacheTtlEligible` kullanır. Replay politikası + `passthrough-gemini` ailesinden gelirken, `openrouter-thinking` akış ailesi + ara sunucu akıl yürütme eklemesine ve desteklenmeyen model / `auto` atlamalarına sahiptir. +- GitHub Copilot, sağlayıcıya ait cihazla giriş, model geri dönüş davranışı, Claude döküm + tuhaflıkları, GitHub belirteci -> Copilot belirteci değişimi ve sağlayıcıya ait + kullanım uç noktasına ihtiyaç duyduğu için `catalog`, `auth`, `resolveDynamicModel` ve + `capabilities` ile birlikte `prepareRuntimeAuth` ve `fetchUsageSnapshot` kullanır. +- OpenAI Codex, hâlâ çekirdek OpenAI aktarımları üzerinde çalışsa da aktarım/temel URL + normalleştirmesine, OAuth yenileme geri dönüş politikasına, varsayılan aktarım seçimine, sentetik Codex katalog satırlarına ve ChatGPT kullanım uç noktası entegrasyonuna sahip olduğu için `catalog`, `resolveDynamicModel`, `normalizeResolvedModel`, `refreshOAuth` ve `augmentModelCatalog` ile birlikte - `prepareExtraParams`, `resolveUsageAuth` ve `fetchUsageSnapshot` kullanır; doğrudan OpenAI ile aynı `openai-responses-defaults` akış ailesini paylaşır. -- Google AI Studio ve Gemini CLI OAuth; `google-gemini` yeniden oynatma ailesi - Gemini 3.1 ileri uyumluluk geri dönüşüne, - doğal Gemini yeniden oynatma doğrulamasına, önyükleme yeniden oynatma temizliğine, - etiketli gerekçelendirme-çıktı moduna ve modern model eşleştirmesine sahip olduğu için + `prepareExtraParams`, `resolveUsageAuth` ve `fetchUsageSnapshot` kullanır; + doğrudan OpenAI ile aynı `openai-responses-defaults` akış ailesini paylaşır. +- Google AI Studio ve Gemini CLI OAuth, + `google-gemini` replay ailesi Gemini 3.1 ileri uyumluluk geri dönüşüne, + yerel Gemini replay doğrulamasına, önyükleme replay temizliğine, etiketli + akıl yürütme çıktı moduna ve modern-model eşlemesine sahip olduğu için `resolveDynamicModel`, `buildReplayPolicy`, `sanitizeReplayHistory`, - `resolveReasoningOutputMode`, `wrapStreamFn` ve `isModernModelRef` kullanır; `google-thinking` akış ailesi ise Gemini düşünme yükü normalizasyonuna sahiptir; - Gemini CLI OAuth ayrıca belirteç biçimlendirme, belirteç ayrıştırma ve kota uç noktası bağlantısı için - `formatApiKey`, `resolveUsageAuth` ve + `resolveReasoningOutputMode`, `wrapStreamFn` ve `isModernModelRef` kullanır; + `google-thinking` akış ailesi ise Gemini düşünme yükü normalleştirmesine sahiptir; + Gemini CLI OAuth ayrıca belirteç biçimlendirme, belirteç ayrıştırma ve kota uç noktası + bağlantısı için `formatApiKey`, `resolveUsageAuth` ve `fetchUsageSnapshot` kullanır. -- Anthropic Vertex, `anthropic-by-model` yeniden oynatma ailesi aracılığıyla `buildReplayPolicy` - kullanır; böylece Claude'a özgü yeniden oynatma temizliği tüm `anthropic-messages` - aktarımı yerine Claude kimlikleriyle sınırlı kalır. -- Amazon Bedrock; Anthropic-on-Bedrock trafiği için Bedrock'a özgü daraltma/hazır değil/bağlam taşması hata sınıflandırmasına sahip olduğu için +- Anthropic Vertex, Claude’a özgü replay temizliğinin her `anthropic-messages` aktarımı yerine + yalnızca Claude kimlikleriyle sınırlı kalması için + `anthropic-by-model` replay ailesi üzerinden `buildReplayPolicy` kullanır. +- Amazon Bedrock, Anthropic-on-Bedrock trafiği için + Bedrock’a özgü kısma/hazır değil/bağlam taşması hata sınıflandırmasına sahip olduğu için `buildReplayPolicy`, `matchesContextOverflowError`, - `classifyFailoverReason` ve `resolveDefaultThinkingLevel` kullanır; yeniden oynatma politikası ise - yine aynı yalnızca-Claude `anthropic-by-model` korumasını paylaşır. -- OpenRouter, Kilocode, Opencode ve Opencode Go; - Gemini modellerini OpenAI uyumlu aktarımlar üzerinden vekil sundukları ve doğal Gemini yeniden oynatma doğrulaması veya - önyükleme yeniden yazımları olmadan Gemini düşünce-imzası temizliğine ihtiyaç duydukları için - `passthrough-gemini` yeniden oynatma ailesi aracılığıyla `buildReplayPolicy` - kullanır. -- MiniMax, `hybrid-anthropic-openai` yeniden oynatma ailesi aracılığıyla `buildReplayPolicy` - kullanır çünkü tek bir sağlayıcı hem Anthropic-message hem de OpenAI uyumlu anlamlara sahiptir; - Anthropic tarafında yalnızca Claude'a özgü düşünme bloğu düşürmeyi sürdürürken gerekçelendirme - çıktı modunu tekrar doğala geçersiz kılar ve `minimax-fast-mode` akış ailesi - paylaşılan akış yolunda hızlı mod model yeniden yazımlarına sahiptir. -- Moonshot; hâlâ paylaşılan OpenAI aktarımını kullandığı ancak sağlayıcıya ait düşünme yükü normalizasyonuna ihtiyaç duyduğu için - `catalog` ile birlikte `wrapStreamFn` kullanır; `moonshot-thinking` akış ailesi ise yapılandırma ile `/think` durumunu - kendi doğal ikili düşünme yüküne eşler. -- Kilocode; sağlayıcıya ait istek üstbilgilerine, - gerekçelendirme yükü normalizasyonuna, Gemini transcript ipuçlarına ve Anthropic + `classifyFailoverReason` ve `resolveDefaultThinkingLevel` kullanır; + replay politikası ise yine aynı + yalnızca Claude’a özel `anthropic-by-model` korumasını paylaşır. +- OpenRouter, Kilocode, Opencode ve Opencode Go, Gemini + modellerini OpenAI uyumlu aktarımlar üzerinden ara sunucuya yönlendirdikleri ve + yerel Gemini replay doğrulaması veya önyükleme yeniden yazımları olmadan Gemini + düşünce-imzası temizliğine ihtiyaç duydukları için + `passthrough-gemini` replay ailesi üzerinden `buildReplayPolicy` kullanır. +- MiniMax, bir sağlayıcı hem Anthropic-message hem de OpenAI uyumlu semantiğe sahip olduğu için + `hybrid-anthropic-openai` replay ailesi üzerinden `buildReplayPolicy` + kullanır; Anthropic tarafında yalnızca Claude’a özgü + düşünme bloğu bırakmayı korurken akıl yürütme çıktı modunu yeniden yerel moda döndürür + ve `minimax-fast-mode` akış ailesi paylaşılan akış yolundaki + hızlı mod model yeniden yazımlarına sahiptir. +- Moonshot, hâlâ paylaşılan + OpenAI aktarımını kullandığı ancak sağlayıcıya ait düşünme yükü normalleştirmesine ihtiyaç duyduğu için + `catalog` ile birlikte `wrapStreamFn` kullanır; `moonshot-thinking` akış ailesi + yapılandırma ile `/think` durumunu kendi yerel ikili düşünme yüküne eşler. +- Kilocode, sağlayıcıya ait istek üst bilgilerine, + akıl yürütme yükü normalleştirmesine, Gemini döküm ipuçlarına ve Anthropic önbellek-TTL geçitlemesine ihtiyaç duyduğu için `catalog`, `capabilities`, `wrapStreamFn` ve - `isCacheTtlEligible` kullanır; `kilocode-thinking` akış ailesi ise - paylaşılan proxy akış yolunda Kilo düşünme eklemeyi tutarken `kilo/auto` ve açık gerekçelendirme yüklerini desteklemeyen - diğer proxy model kimliklerini atlar. -- Z.AI; GLM-5 geri dönüşüne, - `tool_stream` varsayılanlarına, ikili düşünme UX'ine, modern model eşleştirmesine ve hem kullanım kimlik doğrulaması hem de kota getirmeye sahip olduğu için - `resolveDynamicModel`, `prepareExtraParams`, `wrapStreamFn`, + `isCacheTtlEligible` kullanır; `kilocode-thinking` akış ailesi + Kilo düşünme eklemesini, açık akıl yürütme yüklerini desteklemeyen `kilo/auto` ve + diğer ara sunucu model kimliklerini atlarken, paylaşılan ara sunucu akış yolunda tutar. +- Z.AI, GLM-5 geri dönüşüne, + `tool_stream` varsayılanlarına, ikili düşünme UX’ine, modern-model eşlemesine ve hem + kullanım kimlik doğrulaması hem de kota getirmeye sahip olduğu için `resolveDynamicModel`, `prepareExtraParams`, `wrapStreamFn`, `isCacheTtlEligible`, `isBinaryThinking`, `isModernModelRef`, - `resolveUsageAuth` ve `fetchUsageSnapshot` kullanır; `tool-stream-default-on` akış ailesi ise varsayılan açık `tool_stream` sarmalayıcısını - sağlayıcı başına elle yazılmış yapıştırma kodundan uzak tutar. -- xAI; doğal xAI Responses aktarımı normalizasyonuna, Grok hızlı mod - takma ad yeniden yazımlarına, varsayılan `tool_stream`e, katı araç / gerekçelendirme yükü - temizliğine, plugin'e ait araçlar için geri dönüş kimlik doğrulaması yeniden kullanımına, ileri uyumluluk Grok - model çözümlemesine ve xAI araç-şema - profili, desteklenmeyen şema anahtar sözcükleri, doğal `web_search` ve HTML varlık - araç çağrısı argüman çözümlemesi gibi sağlayıcıya ait uyumluluk yamalarına sahip olduğu için + `resolveUsageAuth` ve `fetchUsageSnapshot` kullanır; `tool-stream-default-on` + akış ailesi varsayılan açık `tool_stream` sarmalayıcısını + sağlayıcı başına el yazımı yapıştırıcıların dışında tutar. +- xAI, yerel xAI Responses aktarım normalleştirmesine, Grok hızlı mod + takma ad yeniden yazımlarına, varsayılan `tool_stream` ayarına, sıkı araç / akıl yürütme yükü + temizliğine, plugin’e ait araçlar için geri dönüş kimlik doğrulama yeniden kullanımına, ileri uyumlu Grok + model çözümlemesine ve xAI araç şeması + profili, desteklenmeyen şema anahtar sözcükleri, yerel `web_search` ve HTML varlığı + araç çağrısı bağımsız değişken çözümleme gibi sağlayıcıya ait uyumluluk yamalarına sahip olduğu için `normalizeResolvedModel`, `normalizeTransport`, `contributeResolvedModelCompat`, `prepareExtraParams`, `wrapStreamFn`, `resolveSyntheticAuth`, `resolveDynamicModel` ve `isModernModelRef` kullanır. -- Mistral, OpenCode Zen ve OpenCode Go; transcript/araç - tuhaflıklarını çekirdekten uzak tutmak için yalnızca `capabilities` kullanır. +- Mistral, OpenCode Zen ve OpenCode Go, döküm/araç tuhaflıklarını çekirdeğin dışında tutmak için yalnızca `capabilities` kullanır. - `byteplus`, `cloudflare-ai-gateway`, `huggingface`, `kimi-coding`, `nvidia`, `qianfan`, - `synthetic`, `together`, `venice`, `vercel-ai-gateway` ve `volcengine` gibi - yalnızca katalog kullanan paketlenmiş sağlayıcılar yalnızca `catalog` kullanır. + `synthetic`, `together`, `venice`, `vercel-ai-gateway` ve `volcengine` gibi yalnızca katalog kullanan paketlenmiş sağlayıcılar + yalnızca `catalog` kullanır. - Qwen, metin sağlayıcısı için `catalog` ile birlikte çok modlu yüzeyleri için paylaşılan medya-anlama ve video-oluşturma kayıtlarını kullanır. -- MiniMax ve Xiaomi, çıkarım hâlâ paylaşılan aktarımlardan geçse de - `/usage` davranışları plugin'e ait olduğu için `catalog` ile birlikte kullanım kancalarını kullanır. +- MiniMax ve Xiaomi, çıkarım hâlâ paylaşılan + aktarımlar üzerinden çalışsa da `/usage` + davranışları plugin’e ait olduğu için `catalog` ile birlikte kullanım kancalarını kullanır. ## Çalışma zamanı yardımcıları -Plugin'ler seçilmiş çekirdek yardımcılarına `api.runtime` üzerinden erişebilir. TTS için: +Plugin’ler, seçilmiş çekirdek yardımcılarına `api.runtime` üzerinden erişebilir. TTS için: ```ts const clip = await api.runtime.tts.textToSpeech({ @@ -894,12 +911,12 @@ Notlar: - `textToSpeech`, dosya/sesli not yüzeyleri için normal çekirdek TTS çıktı yükünü döndürür. - Çekirdek `messages.tts` yapılandırmasını ve sağlayıcı seçimini kullanır. -- PCM ses arabelleği + örnekleme hızı döndürür. Plugin'ler sağlayıcılar için yeniden örnekleme/kodlama yapmalıdır. -- `listVoices`, sağlayıcı başına isteğe bağlıdır. Satıcıya ait ses seçiciler veya kurulum akışları için kullanın. -- Ses listeleri yerel ayar, cinsiyet ve kişilik etiketleri gibi daha zengin meta veriler içerebilir. -- OpenAI ve ElevenLabs bugün telefon desteği sunuyor. Microsoft sunmuyor. +- PCM ses arabelleği + örnekleme hızı döndürür. Plugin’ler sağlayıcılar için yeniden örnekleme/kodlama yapmalıdır. +- `listVoices`, sağlayıcı başına isteğe bağlıdır. Bunu satıcıya ait ses seçicileri veya kurulum akışları için kullanın. +- Ses listeleri, sağlayıcı farkında seçiciler için yerel ayar, cinsiyet ve kişilik etiketleri gibi daha zengin meta veriler içerebilir. +- Bugün telefon desteğini OpenAI ve ElevenLabs sağlar. Microsoft sağlamaz. -Plugin'ler ayrıca `api.registerSpeechProvider(...)` üzerinden konuşma sağlayıcıları kaydedebilir. +Plugin’ler ayrıca `api.registerSpeechProvider(...)` üzerinden konuşma sağlayıcıları kaydedebilir. ```ts api.registerSpeechProvider({ @@ -919,14 +936,15 @@ api.registerSpeechProvider({ Notlar: -- TTS politikasını, geri dönüşü ve yanıt teslimatını çekirdekte tutun. -- Satıcıya ait sentez davranışı için konuşma sağlayıcıları kullanın. -- Eski Microsoft `edge` girdisi `microsoft` sağlayıcı kimliğine normalize edilir. -- Tercih edilen sahiplik modeli şirket odaklıdır: tek bir satıcı plugin'i - OpenClaw bu yetenek sözleşmelerini ekledikçe metin, konuşma, görsel ve gelecekteki medya sağlayıcılarına sahip olabilir. +- TTS politikasını, geri dönüşü ve yanıt teslimini çekirdekte tutun. +- Satıcıya ait sentez davranışı için konuşma sağlayıcılarını kullanın. +- Eski Microsoft `edge` girdisi `microsoft` sağlayıcı kimliğine normalleştirilir. +- Tercih edilen sahiplik modeli şirket odaklıdır: OpenClaw bu + yetenek sözleşmelerini ekledikçe, tek bir satıcı plugin’i + metin, konuşma, görsel ve gelecekteki medya sağlayıcılarına sahip olabilir. -Görsel/ses/video anlama için plugin'ler genel bir anahtar/değer torbası yerine -yazımlı bir medya-anlama sağlayıcısı kaydeder: +Görsel/ses/video anlama için plugin’ler, genel bir anahtar/değer torbası yerine +tek bir türlenmiş medya-anlama sağlayıcısı kaydeder: ```ts api.registerMediaUnderstandingProvider({ @@ -940,16 +958,16 @@ api.registerMediaUnderstandingProvider({ Notlar: -- Orkestrasyonu, geri dönüşü, yapılandırmayı ve kanal bağlamasını çekirdekte tutun. -- Satıcı davranışını sağlayıcı plugin'inde tutun. -- Artımlı genişleme yazımlı kalmalıdır: yeni isteğe bağlı yöntemler, yeni isteğe bağlı +- Orkestrasyonu, geri dönüşü, yapılandırmayı ve kanal bağlantısını çekirdekte tutun. +- Satıcı davranışını sağlayıcı plugin’inde tutun. +- Artımlı genişleme türlenmiş kalmalıdır: yeni isteğe bağlı yöntemler, yeni isteğe bağlı sonuç alanları, yeni isteğe bağlı yetenekler. - Video oluşturma zaten aynı deseni izler: - çekirdek yetenek sözleşmesine ve çalışma zamanı yardımcısına sahiptir - - satıcı plugin'leri `api.registerVideoGenerationProvider(...)` kaydeder - - özellik/kanal plugin'leri `api.runtime.videoGeneration.*` tüketir + - satıcı plugin’leri `api.registerVideoGenerationProvider(...)` kaydeder + - özellik/kanal plugin’leri `api.runtime.videoGeneration.*` kullanır -Medya-anlama çalışma zamanı yardımcıları için plugin'ler şunları çağırabilir: +Medya-anlama çalışma zamanı yardımcıları için plugin’ler şunları çağırabilir: ```ts const image = await api.runtime.mediaUnderstanding.describeImageFile({ @@ -964,27 +982,27 @@ const video = await api.runtime.mediaUnderstanding.describeVideoFile({ }); ``` -Ses yazıya dökme için plugin'ler medya-anlama çalışma zamanını +Ses yazıya dökme için plugin’ler medya-anlama çalışma zamanını veya eski STT takma adını kullanabilir: ```ts const { text } = await api.runtime.mediaUnderstanding.transcribeAudioFile({ filePath: "/tmp/inbound-audio.ogg", cfg: api.config, - // Optional when MIME cannot be inferred reliably: + // MIME güvenilir şekilde çıkarılamadığında isteğe bağlıdır: mime: "audio/ogg", }); ``` Notlar: -- `api.runtime.mediaUnderstanding.*`, görsel/ses/video anlama için - tercih edilen paylaşılan yüzeydir. +- `api.runtime.mediaUnderstanding.*`, + görsel/ses/video anlama için tercih edilen paylaşılan yüzeydir. - Çekirdek medya-anlama ses yapılandırmasını (`tools.media.audio`) ve sağlayıcı geri dönüş sırasını kullanır. -- Hiçbir yazıya dökme çıktısı üretilmediğinde `{ text: undefined }` döndürür (örneğin atlanan/desteklenmeyen girdi). -- `api.runtime.stt.transcribeAudioFile(...)` uyumluluk takma adı olarak kalır. +- Yazıya dökme çıktısı üretilmediğinde `{ text: undefined }` döndürür (örneğin, atlanan/desteklenmeyen girdi). +- `api.runtime.stt.transcribeAudioFile(...)` bir uyumluluk takma adı olarak kalır. -Plugin'ler ayrıca `api.runtime.subagent` üzerinden arka plan alt ajan çalıştırmaları başlatabilir: +Plugin’ler ayrıca `api.runtime.subagent` üzerinden arka plan alt ajan çalıştırmaları başlatabilir: ```ts const result = await api.runtime.subagent.run({ @@ -998,14 +1016,14 @@ const result = await api.runtime.subagent.run({ Notlar: -- `provider` ve `model`, kalıcı oturum değişiklikleri değil, çalışma başına isteğe bağlı geçersiz kılmalardır. +- `provider` ve `model`, kalıcı oturum değişiklikleri değil, çalıştırma başına isteğe bağlı geçersiz kılmalardır. - OpenClaw bu geçersiz kılma alanlarını yalnızca güvenilir çağıranlar için dikkate alır. -- Plugin'e ait geri dönüş çalıştırmaları için operatörler `plugins.entries..subagent.allowModelOverride: true` ile açıkça izin vermelidir. -- Güvenilir plugin'leri belirli kanonik `provider/model` hedefleriyle sınırlamak için `plugins.entries..subagent.allowedModels` kullanın veya herhangi bir hedefe açıkça izin vermek için `"*"` kullanın. +- Plugin’e ait geri dönüş çalıştırmaları için operatörlerin `plugins.entries..subagent.allowModelOverride: true` ile açıkça izin vermesi gerekir. +- Güvenilir plugin’leri belirli kanonik `provider/model` hedefleriyle sınırlamak için `plugins.entries..subagent.allowedModels` kullanın veya herhangi bir hedefe açıkça izin vermek için `"*"` kullanın. - Güvenilmeyen plugin alt ajan çalıştırmaları yine de çalışır, ancak geçersiz kılma istekleri sessizce geri dönmek yerine reddedilir. -Web arama için plugin'ler ajan araç bağlamasına -erişmek yerine paylaşılan çalışma zamanı yardımcısını tüketebilir: +Web araması için plugin’ler, ajan araç bağlantısına +erişmek yerine paylaşılan çalışma zamanı yardımcısını kullanabilir: ```ts const providers = api.runtime.webSearch.listProviders({ @@ -1021,15 +1039,14 @@ const result = await api.runtime.webSearch.search({ }); ``` -Plugin'ler ayrıca -`api.registerWebSearchProvider(...)` üzerinden web arama sağlayıcıları da kaydedebilir. +Plugin’ler ayrıca +`api.registerWebSearchProvider(...)` üzerinden web arama sağlayıcıları kaydedebilir. Notlar: -- Sağlayıcı seçimini, kimlik bilgisi çözümlemesini ve paylaşılan istek anlamlarını çekirdekte tutun. -- Satıcıya özgü arama aktarımları için web arama sağlayıcıları kullanın. -- `api.runtime.webSearch.*`, ajan araç sarmalayıcısına bağımlı olmadan arama davranışına ihtiyaç duyan özellik/kanal plugin'leri için - tercih edilen paylaşılan yüzeydir. +- Sağlayıcı seçimini, kimlik bilgisi çözümlemesini ve paylaşılan istek semantiğini çekirdekte tutun. +- Satıcıya özgü arama aktarımları için web arama sağlayıcılarını kullanın. +- `api.runtime.webSearch.*`, arama davranışına ajan araç sarmalayıcısına bağımlı olmadan ihtiyaç duyan özellik/kanal plugin’leri için tercih edilen paylaşılan yüzeydir. ### `api.runtime.imageGeneration` @@ -1044,12 +1061,12 @@ const providers = api.runtime.imageGeneration.listProviders({ }); ``` -- `generate(...)`: yapılandırılmış görsel oluşturma sağlayıcı zincirini kullanarak görsel oluşturur. +- `generate(...)`: yapılandırılmış görsel oluşturma sağlayıcı zincirini kullanarak bir görsel oluşturur. - `listProviders(...)`: kullanılabilir görsel oluşturma sağlayıcılarını ve yeteneklerini listeler. ## Gateway HTTP rotaları -Plugin'ler `api.registerHttpRoute(...)` ile HTTP uç noktaları açığa çıkarabilir. +Plugin’ler `api.registerHttpRoute(...)` ile HTTP uç noktaları sunabilir. ```ts api.registerHttpRoute({ @@ -1067,32 +1084,33 @@ api.registerHttpRoute({ Rota alanları: - `path`: gateway HTTP sunucusu altındaki rota yolu. -- `auth`: gerekli. Normal gateway kimlik doğrulaması gerektirmek için `"gateway"`, plugin tarafından yönetilen kimlik doğrulama/webhook doğrulaması için `"plugin"` kullanın. -- `match`: isteğe bağlı. `"exact"` (varsayılan) veya `"prefix"`. -- `replaceExisting`: isteğe bağlı. Aynı plugin'in kendi mevcut rota kaydını değiştirmesine izin verir. -- `handler`: rota isteği işlediğinde `true` döndürmelidir. +- `auth`: gereklidir. Normal gateway kimlik doğrulamasını gerektirmek için `"gateway"` veya plugin tarafından yönetilen kimlik doğrulama/webhook doğrulaması için `"plugin"` kullanın. +- `match`: isteğe bağlıdır. `"exact"` (varsayılan) veya `"prefix"`. +- `replaceExisting`: isteğe bağlıdır. Aynı plugin’in kendi mevcut rota kaydını değiştirmesine izin verir. +- `handler`: rota isteği işlediyse `true` döndürmelidir. Notlar: -- `api.registerHttpHandler(...)` kaldırıldı ve plugin yükleme hatasına neden olur. Bunun yerine `api.registerHttpRoute(...)` kullanın. +- `api.registerHttpHandler(...)` kaldırılmıştır ve plugin yükleme hatasına neden olur. Bunun yerine `api.registerHttpRoute(...)` kullanın. - Plugin rotaları `auth` değerini açıkça bildirmelidir. -- Tam `path + match` çakışmaları, `replaceExisting: true` olmadığı sürece reddedilir ve bir plugin başka bir plugin'in rotasını değiştiremez. +- Kesin `path + match` çakışmaları, `replaceExisting: true` olmadıkça reddedilir ve bir plugin başka bir plugin’in rotasını değiştiremez. - Farklı `auth` düzeylerine sahip çakışan rotalar reddedilir. `exact`/`prefix` ardışık geçiş zincirlerini yalnızca aynı kimlik doğrulama düzeyinde tutun. -- `auth: "plugin"` rotaları otomatik olarak operatör çalışma zamanı kapsamları almaz. Bunlar ayrıcalıklı Gateway yardımcı çağrıları için değil, plugin tarafından yönetilen webhook'lar/imza doğrulaması içindir. -- `auth: "gateway"` rotaları bir Gateway istek çalışma zamanı kapsamında çalışır, ancak bu kapsam bilerek muhafazakârdır: - - paylaşılan gizli bearer kimlik doğrulaması (`gateway.auth.mode = "token"` / `"password"`) kullanıldığında, çağıran `x-openclaw-scopes` gönderse bile plugin-rotası çalışma zamanı kapsamları `operator.write` olarak sabitlenir - - güvenilir kimlik taşıyan HTTP modları (örneğin `trusted-proxy` veya özel girişte `gateway.auth.mode = "none"`) `x-openclaw-scopes` değerini yalnızca üstbilgi açıkça mevcutsa dikkate alır - - bu kimlik taşıyan plugin-rotası isteklerinde `x-openclaw-scopes` yoksa, çalışma zamanı kapsamı `operator.write` değerine geri düşer -- Pratik kural: gateway kimlik doğrulamalı bir plugin rotasının örtük bir yönetici yüzeyi olduğunu varsaymayın. Rotanız yöneticiye özel davranış gerektiriyorsa, kimlik taşıyan bir kimlik doğrulama modu isteyin ve açık `x-openclaw-scopes` üstbilgisi sözleşmesini belgelendirin. +- `auth: "plugin"` rotaları operatör çalışma zamanı kapsamlarını otomatik olarak almaz. Bunlar ayrıcalıklı Gateway yardımcı çağrıları için değil, plugin tarafından yönetilen webhook’lar/imza doğrulaması içindir. +- `auth: "gateway"` rotaları bir Gateway istek çalışma zamanı kapsamı içinde çalışır, ancak bu kapsam kasıtlı olarak temkinlidir: + - paylaşılan gizli taşıyıcı kimlik doğrulaması (`gateway.auth.mode = "token"` / `"password"`), çağıran `x-openclaw-scopes` gönderse bile plugin-rotası çalışma zamanı kapsamlarını `operator.write` değerine sabitler + - güvenilir kimlik taşıyan HTTP kipleri (örneğin `trusted-proxy` veya özel bir girişte `gateway.auth.mode = "none"`), `x-openclaw-scopes` yalnızca üst bilgi açıkça mevcutsa dikkate alır + - bu kimlik taşıyan plugin-rotası isteklerinde `x-openclaw-scopes` yoksa, çalışma zamanı kapsamı `operator.write` değerine geri döner +- Pratik kural: gateway kimlik doğrulamalı bir plugin rotasının örtük bir yönetici yüzeyi olduğunu varsaymayın. Rotanızın yalnızca yöneticiye özel davranışa ihtiyacı varsa, kimlik taşıyan bir kimlik doğrulama kipi gerektirin ve açık `x-openclaw-scopes` üst bilgi sözleşmesini belgelendirin. ## Plugin SDK içe aktarma yolları Plugin yazarken tek parça `openclaw/plugin-sdk` içe aktarması yerine SDK alt yollarını kullanın: -- plugin kayıt ilkelleri için `openclaw/plugin-sdk/plugin-entry`. -- genel paylaşılan plugin'e dönük sözleşme için `openclaw/plugin-sdk/core`. -- kök `openclaw.json` Zod şema dışa aktarımı (`OpenClawSchema`) için `openclaw/plugin-sdk/config-schema`. +- plugin kayıt ilkel öğeleri için `openclaw/plugin-sdk/plugin-entry`. +- genel paylaşılan plugin odaklı sözleşme için `openclaw/plugin-sdk/core`. +- kök `openclaw.json` Zod şema + dışa aktarımı (`OpenClawSchema`) için `openclaw/plugin-sdk/config-schema`. - `openclaw/plugin-sdk/channel-setup`, `openclaw/plugin-sdk/setup-runtime`, `openclaw/plugin-sdk/setup-adapter-runtime`, @@ -1105,15 +1123,15 @@ SDK alt yollarını kullanın: `openclaw/plugin-sdk/channel-reply-pipeline`, `openclaw/plugin-sdk/command-auth`, `openclaw/plugin-sdk/secret-input` ve - `openclaw/plugin-sdk/webhook-ingress` gibi kararlı kanal ilkelleri, paylaşılan kurulum/kimlik doğrulama/yanıt/webhook - bağlaması içindir. `channel-inbound`; debounce, mention eşleştirme, - gelen mention-policy yardımcıları, zarf biçimlendirme ve gelen zarf - bağlam yardımcıları için paylaşılan yuvadır. - `channel-setup`, dar isteğe bağlı kurulum geçişidir. + `openclaw/plugin-sdk/webhook-ingress` gibi kararlı kanal ilkel öğeleri, paylaşılan kurulum/kimlik doğrulama/yanıt/webhook + bağlantısı içindir. `channel-inbound`, debounce, bahsetme eşleme, + gelen bahsetme politikası yardımcıları, zarf biçimlendirme ve gelen zarf + bağlam yardımcıları için paylaşılan merkezdir. + `channel-setup`, dar isteğe bağlı kurulum yüzeyidir. `setup-runtime`, `setupEntry` / - ertelenmiş başlangıç tarafından kullanılan, içe aktarma açısından güvenli kurulum yama bağdaştırıcıları dahil çalışma zamanı güvenli kurulum yüzeyidir. - `setup-adapter-runtime`, ortama duyarlı hesap-kurulum bağdaştırıcısı geçişidir. - `setup-tools`, küçük CLI/arşiv/belge yardımcı geçişidir (`formatCliCommand`, + ertelenmiş başlangıç tarafından kullanılan çalışma zamanı güvenli kurulum yüzeyidir; içe aktarma güvenli kurulum yama bağdaştırıcılarını da içerir. + `setup-adapter-runtime`, ortam farkında hesap kurulum bağdaştırıcı yüzeyidir. + `setup-tools`, küçük CLI/arşiv/belge yardımcı yüzeyidir (`formatCliCommand`, `detectBinary`, `extractArchive`, `resolveBrewExecutable`, `formatDocsLink`, `CONFIG_DIR`). - `openclaw/plugin-sdk/channel-config-helpers`, @@ -1136,185 +1154,188 @@ SDK alt yollarını kullanın: `openclaw/plugin-sdk/runtime-store` ve `openclaw/plugin-sdk/directory-runtime` gibi alan alt yolları, paylaşılan çalışma zamanı/yapılandırma yardımcıları içindir. `telegram-command-config`, Telegram özel - komut normalizasyonu/doğrulaması için dar genel geçiştir ve paketlenmiş - Telegram sözleşme yüzeyi geçici olarak kullanılamasa bile kullanılabilir kalır. - `text-runtime`, yardımcıya görünür metin çıkarma, markdown render/parçalama yardımcıları, sansürleme - yardımcıları, yönerge etiketi yardımcıları ve güvenli metin yardımcıları dahil - paylaşılan metin/markdown/günlükleme geçişidir. -- Onaya özgü kanal geçişleri, plugin üzerinde tek bir `approvalCapability` - sözleşmesini tercih etmelidir. Çekirdek daha sonra onay kimlik doğrulaması, teslimat, render, - doğal yönlendirme ve tembel doğal işleyici davranışını alakasız plugin alanlarına karıştırmak yerine - bu tek yetenek üzerinden okur. -- `openclaw/plugin-sdk/channel-runtime` kullanımdan kaldırılmıştır ve yalnızca eski plugin'ler için - uyumluluk geçişi olarak kalır. Yeni kod bunun yerine daha dar genel ilkelleri içe aktarmalıdır ve repo kodu bu - geçiş için yeni içe aktarmalar eklememelidir. -- Paketlenmiş uzantı iç yapıları özel kalır. Dış plugin'ler yalnızca - `openclaw/plugin-sdk/*` alt yollarını kullanmalıdır. OpenClaw çekirdeği/test kodu, + komut normalleştirme/doğrulama için dar genel yüzeydir ve paketlenmiş + Telegram sözleşme yüzeyi geçici olarak kullanılamasa bile kullanılabilir durumda kalır. + `text-runtime`, yardımcıya görünür metin çıkarma, markdown işleme/parçalama yardımcıları, sansürleme + yardımcıları, yönerge etiketi yardımcıları ve güvenli metin yardımcılarını içeren + paylaşılan metin/markdown/günlükleme yüzeyidir. +- Onaya özgü kanal yüzeyleri plugin üzerinde tek bir `approvalCapability` + sözleşmesini tercih etmelidir. Böylece çekirdek, onay davranışını ilgisiz plugin alanlarına karıştırmak yerine + onay kimlik doğrulamasını, teslimi, işlemesini, yerel yönlendirmeyi ve + tembel yerel işleyici davranışını bu tek yetenek üzerinden okur. +- `openclaw/plugin-sdk/channel-runtime` kullanımdan kaldırılmıştır ve yalnızca + eski plugin’ler için bir uyumluluk köprüsü olarak kalır. Yeni kod bunun yerine daha dar + genel ilkel öğeleri içe aktarmalıdır ve repo kodu köprüye yeni içe aktarmalar eklememelidir. +- Paketlenmiş uzantı iç bileşenleri özel kalır. Harici plugin’ler yalnızca + `openclaw/plugin-sdk/*` alt yollarını kullanmalıdır. OpenClaw çekirdek/test kodu, `index.js`, `api.js`, - `runtime-api.js`, `setup-entry.js` ve `login-qr-api.js` gibi dar kapsamlı dosyalar gibi - bir plugin paket kökü altındaki repo genel giriş noktalarını kullanabilir. Çekirdekten veya - başka bir uzantıdan asla bir plugin paketinin `src/*` yolunu içe aktarmayın. + `runtime-api.js`, `setup-entry.js` ve + `login-qr-api.js` gibi dar kapsamlı dosyalar gibi, bir plugin paketi kökü altındaki repo + genel giriş noktalarını kullanabilir. Çekirdekten veya başka + bir uzantıdan asla bir plugin paketinin `src/*` yolunu içe aktarmayın. - Repo giriş noktası ayrımı: - `/api.js` yardımcı/türler varilidir, - `/runtime-api.js` yalnızca çalışma zamanı varilidir, - `/index.js` paketlenmiş plugin girişidir, + `/api.js` yardımcı/tür paketi, + `/runtime-api.js` yalnızca çalışma zamanı paketi, + `/index.js` paketlenmiş plugin girişi ve `/setup-entry.js` kurulum plugin girişidir. - Güncel paketlenmiş sağlayıcı örnekleri: - Anthropic, `wrapAnthropicProviderStream`, beta-header yardımcıları ve `service_tier` ayrıştırması gibi Claude akış yardımcıları için `api.js` / `contract-api.js` kullanır. - - OpenAI, sağlayıcı oluşturucuları, varsayılan model yardımcıları ve - gerçek zamanlı sağlayıcı oluşturucuları için `api.js` kullanır. - - OpenRouter, kendi sağlayıcı oluşturucusu ve katılım/yapılandırma - yardımcıları için `api.js` kullanırken `register.runtime.js`, repo içi kullanım için genel + - OpenAI, sağlayıcı oluşturucular, varsayılan model yardımcıları ve + gerçek zamanlı sağlayıcı oluşturucular için `api.js` kullanır. + - OpenRouter, sağlayıcı oluşturucusu ile birlikte ilk kurulum/yapılandırma + yardımcıları için `api.js` kullanır; buna karşılık `register.runtime.js` repo içi kullanım için yine de genel `plugin-sdk/provider-stream` yardımcılarını yeniden dışa aktarabilir. -- Yüklenen yüzler üzerinden gelen genel giriş noktaları, mevcutsa etkin çalışma zamanı yapılandırma anlık görüntüsünü tercih eder; - OpenClaw henüz çalışma zamanı anlık görüntüsü sunmuyorsa diskteki çözülmüş yapılandırma dosyasına geri döner. -- Genel paylaşılan ilkeller tercih edilen genel SDK sözleşmesi olmaya devam eder. Kanal markalı küçük, - ayrılmış bir uyumluluk kümesi hâlâ mevcuttur. Bunları yeni - üçüncü taraf içe aktarma hedefleri olarak değil, paket bakımı/uyumluluk geçişleri olarak değerlendirin; yeni çapraz kanal sözleşmeleri yine genel - `plugin-sdk/*` alt yollarında veya plugin'in yerel `api.js` / - `runtime-api.js` varillerinde yer almalıdır. +- Cephe yüklemeli genel giriş noktaları, biri varsa etkin çalışma zamanı yapılandırma anlık görüntüsünü tercih eder, + sonra OpenClaw henüz çalışma zamanı anlık görüntüsü sunmadığında diskte çözülmüş yapılandırma dosyasına geri döner. +- Genel paylaşılan ilkel öğeler tercih edilen genel SDK sözleşmesi olarak kalır. Paketlenmiş kanal markalı yardımcı yüzeylerin + küçük, ayrılmış bir uyumluluk kümesi hâlâ vardır. Bunları yeni + üçüncü taraf içe aktarma hedefleri olarak değil, paketlenmiş bakım/uyumluluk yüzeyleri olarak değerlendirin; + yeni çapraz kanal sözleşmeleri yine de genel `plugin-sdk/*` alt yollarına veya plugin’e yerel `api.js` / + `runtime-api.js` paketlerine eklenmelidir. Uyumluluk notu: -- Yeni kod için kök `openclaw/plugin-sdk` varilinden kaçının. -- Önce dar kararlı ilkelleri tercih edin. Daha yeni setup/pairing/reply/ +- Yeni kod için kök `openclaw/plugin-sdk` paketini kullanmaktan kaçının. +- Önce dar ve kararlı ilkel öğeleri tercih edin. Daha yeni setup/pairing/reply/ feedback/contract/inbound/threading/command/secret-input/webhook/infra/ allowlist/status/message-tool alt yolları, yeni - paketlenmiş ve dış plugin çalışmaları için amaçlanan sözleşmedir. - Hedef ayrıştırma/eşleştirme `openclaw/plugin-sdk/channel-targets` üzerinde olmalıdır. - Mesaj eylemi geçitleri ve tepki mesaj kimliği yardımcıları - `openclaw/plugin-sdk/channel-actions` üzerinde olmalıdır. -- Paketlenmiş uzantıya özgü yardımcı varilleri varsayılan olarak kararlı değildir. Eğer bir + paketlenmiş ve harici plugin çalışmaları için hedeflenen sözleşmedir. + Hedef ayrıştırma/eşleme `openclaw/plugin-sdk/channel-targets` üzerinde yer almalıdır. + Mesaj eylemi kapıları ve tepki mesaj kimliği yardımcıları ise + `openclaw/plugin-sdk/channel-actions` üzerinde yer almalıdır. +- Paketlenmiş uzantıya özgü yardımcı paketler varsayılan olarak kararlı değildir. Bir yardımcı yalnızca paketlenmiş bir uzantı tarafından gerekiyorsa, bunu - `openclaw/plugin-sdk/` içine yükseltmek yerine uzantının yerel `api.js` veya `runtime-api.js` geçişi arkasında tutun. -- Yeni paylaşılan yardımcı geçişleri kanal markalı değil, genel olmalıdır. Paylaşılan hedef - ayrıştırma `openclaw/plugin-sdk/channel-targets` üzerinde olmalıdır; kanala özgü - iç yapılar ise sahip plugin'in yerel `api.js` veya `runtime-api.js` - geçişi arkasında kalmalıdır. + `openclaw/plugin-sdk/` içine taşımak yerine uzantının + yerel `api.js` veya `runtime-api.js` yüzeyinin arkasında tutun. +- Yeni paylaşılan yardımcı yüzeyleri kanal markalı değil, genel olmalıdır. Paylaşılan hedef + ayrıştırma `openclaw/plugin-sdk/channel-targets` üzerinde yer almalıdır; kanala özgü + iç bileşenler ise sahip olan plugin’in yerel `api.js` veya `runtime-api.js` + yüzeyinin arkasında kalmalıdır. - `image-generation`, - `media-understanding` ve `speech` gibi yeteneğe özgü alt yollar bugün paketlenmiş/yerel plugin'ler bunları kullandığı için vardır. - Bunların varlığı tek başına, dışa aktarılan her yardımcının - uzun vadede sabitlenmiş bir dış sözleşme olduğu anlamına gelmez. + `media-understanding` ve `speech` gibi yeteneğe özgü alt yollar mevcuttur; çünkü paketlenmiş/yerel plugin’ler + bunları bugün kullanmaktadır. Bunların varlığı, tek başına, dışa aktarılan her yardımcının + uzun vadede dondurulmuş bir harici sözleşme olduğu anlamına gelmez. ## Message aracı şemaları -Plugin'ler kanala özgü `describeMessageTool(...)` şema -katkılarına sahip olmalıdır. Sağlayıcıya özgü alanları paylaşılan çekirdekte değil plugin içinde tutun. +Plugin’ler, kanala özgü `describeMessageTool(...)` şema +katkılarına sahip olmalıdır. Sağlayıcıya özgü alanları paylaşılan çekirdekte değil, plugin içinde tutun. -Paylaşılan taşınabilir şema parçaları için +Paylaşılan taşınabilir şema parçaları için, `openclaw/plugin-sdk/channel-actions` üzerinden dışa aktarılan genel yardımcıları yeniden kullanın: - düğme ızgarası tarzı yükler için `createMessageToolButtonsSchema()` - yapılandırılmış kart yükleri için `createMessageToolCardSchema()` -Bir şema biçimi yalnızca bir sağlayıcı için anlamlıysa, bunu -paylaşılan SDK'ye yükseltmek yerine o plugin'in kendi kaynağında tanımlayın. +Bir şema biçimi yalnızca tek bir sağlayıcı için anlamlıysa, bunu paylaşılan SDK’ya +taşımak yerine o plugin’in kendi kaynağında tanımlayın. ## Kanal hedef çözümleme -Kanal plugin'leri kanala özgü hedef anlamlarına sahip olmalıdır. Paylaşılan +Kanal plugin’leri kanala özgü hedef anlambilimine sahip olmalıdır. Paylaşılan giden ana makineyi genel tutun ve sağlayıcı kuralları için mesajlaşma bağdaştırıcı yüzeyini kullanın: -- `messaging.inferTargetChatType({ to })`, normalize edilmiş bir hedefin +- `messaging.inferTargetChatType({ to })`, normalleştirilmiş bir hedefin dizin aramasından önce `direct`, `group` veya `channel` olarak ele alınıp alınmayacağına karar verir. -- `messaging.targetResolver.looksLikeId(raw, normalized)`, bir girdinin - dizin araması yerine doğrudan kimlik benzeri çözümlemeye atlayıp atlamayacağını çekirdeğe söyler. -- `messaging.targetResolver.resolveTarget(...)`, çekirdeğin normalizasyondan veya - dizin kaçırmasından sonra son sağlayıcıya ait çözümlemeye ihtiyaç duyduğunda plugin geri dönüş yoludur. -- `messaging.resolveOutboundSessionRoute(...)`, hedef çözüldükten sonra - sağlayıcıya özgü oturum rota kurulumuna sahiptir. +- `messaging.targetResolver.looksLikeId(raw, normalized)`, bir + girdinin dizin araması yerine doğrudan kimlik benzeri çözümlemeye geçip geçmemesi gerektiğini çekirdeğe bildirir. +- `messaging.targetResolver.resolveTarget(...)`, çekirdeğin normalleştirmeden sonra veya + dizin kaçırmasından sonra sağlayıcıya ait son çözümlemeye ihtiyaç duyduğunda plugin geri dönüş yoludur. +- `messaging.resolveOutboundSessionRoute(...)`, bir hedef çözümlendikten sonra sağlayıcıya özgü oturum + rota kurulumuna sahiptir. Önerilen ayrım: -- eşler/gruplar aranmadan önce gerçekleşmesi gereken kategori kararları için `inferTargetChatType` kullanın. -- "bunu açık/doğal hedef kimliği olarak işle" denetimleri için `looksLikeId` kullanın. -- geniş dizin araması için değil, sağlayıcıya özgü normalizasyon geri dönüşü için `resolveTarget` kullanın. -- sohbet kimlikleri, iş parçacığı kimlikleri, JID'ler, tanıtıcılar ve oda - kimlikleri gibi sağlayıcıya özgü doğal kimlikleri genel SDK alanlarında değil - `target` değerlerinde veya sağlayıcıya özgü parametrelerde tutun. +- Eşler/gruplar aranmasından önce gerçekleşmesi gereken kategori kararları için `inferTargetChatType` kullanın. +- “Bunu açık/yerel bir hedef kimliği olarak ele al” denetimleri için `looksLikeId` kullanın. +- Geniş dizin araması için değil, sağlayıcıya özgü normalleştirme geri dönüşü için `resolveTarget` kullanın. +- Sohbet kimlikleri, iş parçacığı kimlikleri, JID’ler, tanıtıcılar ve oda kimlikleri gibi sağlayıcıya özgü yerel kimlikleri + genel SDK alanlarında değil, `target` değerleri veya sağlayıcıya özgü parametreler içinde tutun. ## Yapılandırma destekli dizinler -Yapılandırmadan dizin girdileri türeten plugin'ler, bu mantığı plugin içinde tutmalı -ve paylaşılan yardımcıları -`openclaw/plugin-sdk/directory-runtime` üzerinden yeniden kullanmalıdır. +Yapılandırmadan dizin girdileri türeten plugin’ler bu mantığı plugin içinde tutmalı +ve `openclaw/plugin-sdk/directory-runtime` +altındaki paylaşılan yardımcıları yeniden kullanmalıdır. -Bir kanal aşağıdakiler gibi yapılandırma destekli eşlere/gruplara ihtiyaç duyduğunda bunu kullanın: +Bunu, bir kanalın şu tür yapılandırma destekli eşlere/gruplara ihtiyaç duyduğu durumlarda kullanın: -- allowlist güdümlü DM eşleri -- yapılandırılmış kanal/grup haritaları -- hesap kapsamlı durağan dizin geri dönüşleri +- izin listesi güdümlü DM eşleri +- yapılandırılmış kanal/grup eşlemeleri +- hesap kapsamlı statik dizin geri dönüşleri -`directory-runtime` içindeki paylaşılan yardımcılar yalnızca genel işlemleri yönetir: +`directory-runtime` içindeki paylaşılan yardımcılar yalnızca genel işlemleri yürütür: - sorgu filtreleme -- limit uygulama -- tekilleştirme/normalizasyon yardımcıları +- sınır uygulama +- yinelenen kaldırma/normalleştirme yardımcıları - `ChannelDirectoryEntry[]` oluşturma -Kanala özgü hesap inceleme ve kimlik normalizasyonu -plugin uygulamasında kalmalıdır. +Kanala özgü hesap incelemesi ve kimlik normalleştirmesi plugin uygulamasında kalmalıdır. ## Sağlayıcı katalogları -Sağlayıcı plugin'leri, çıkarım için model kataloglarını +Sağlayıcı plugin’leri, çıkarım için model kataloglarını `registerProvider({ catalog: { run(...) { ... } } })` ile tanımlayabilir. -`catalog.run(...)`, OpenClaw'un -`models.providers` içine yazdığıyla aynı biçimi döndürür: +`catalog.run(...)`, OpenClaw’ın +`models.providers` içine yazdığı yapının aynısını döndürür: - tek bir sağlayıcı girdisi için `{ provider }` - birden çok sağlayıcı girdisi için `{ providers }` -Sağlayıcıya özgü model kimlikleri, temel URL varsayılanları veya kimlik doğrulama kapılı model meta verileri -plugin'e ait olduğunda `catalog` kullanın. +Plugin sağlayıcıya özgü model kimliklerine, temel URL +varsayılanlarına veya kimlik doğrulama kapılı model meta verilerine sahipse `catalog` kullanın. -`catalog.order`, bir plugin'in kataloğunun OpenClaw'un -yerleşik örtük sağlayıcılarına göre ne zaman birleşeceğini denetler: +`catalog.order`, bir plugin kataloğunun OpenClaw’ın +yerleşik örtük sağlayıcılarına göre ne zaman birleştirileceğini denetler: -- `simple`: düz API anahtarı veya ortam güdümlü sağlayıcılar -- `profile`: kimlik doğrulama profilleri olduğunda görünen sağlayıcılar -- `paired`: birden çok ilişkili sağlayıcı girdisi sentezleyen sağlayıcılar +- `simple`: düz API anahtarlı veya ortam güdümlü sağlayıcılar +- `profile`: kimlik doğrulama profilleri mevcut olduğunda görünen sağlayıcılar +- `paired`: birden çok ilişkili sağlayıcı girdisini sentezleyen sağlayıcılar - `late`: diğer örtük sağlayıcılardan sonra son geçiş -Daha sonraki sağlayıcılar anahtar çakışmasında kazanır; böylece plugin'ler aynı sağlayıcı kimliğine sahip +Daha sonraki sağlayıcılar anahtar çakışmasında kazanır; böylece plugin’ler aynı sağlayıcı kimliğiyle yerleşik bir sağlayıcı girdisini kasıtlı olarak geçersiz kılabilir. Uyumluluk: -- `discovery` eski bir takma ad olarak hâlâ çalışır -- hem `catalog` hem `discovery` kayıtlıysa OpenClaw `catalog` kullanır +- `discovery`, eski bir takma ad olarak hâlâ çalışır +- hem `catalog` hem de `discovery` kaydedilmişse OpenClaw `catalog` kullanır -## Salt okunur kanal inceleme +## Salt okunur kanal incelemesi -Plugin'iniz bir kanal kaydediyorsa, `resolveAccount(...)` ile birlikte -`plugin.config.inspectAccount(cfg, accountId)` uygulamayı tercih edin. +Plugin’iniz bir kanal kaydediyorsa, +`resolveAccount(...)` ile birlikte `plugin.config.inspectAccount(cfg, accountId)` uygulamayı tercih edin. Neden: - `resolveAccount(...)` çalışma zamanı yoludur. Kimlik bilgilerinin - tamamen somutlaştığını varsayabilir ve gerekli sırlar eksik olduğunda hızlıca hata verebilir. + tamamen somutlaştırıldığını varsayabilir ve gerekli gizli değerler eksik olduğunda hızlıca başarısız olabilir. - `openclaw status`, `openclaw status --all`, `openclaw channels status`, `openclaw channels resolve` ve doctor/config - onarım akışları gibi salt okunur komut yollarının, yapılandırmayı açıklamak için çalışma zamanı kimlik bilgilerini somutlaştırması gerekmez. + onarım akışları gibi salt okunur komut yolları, yalnızca yapılandırmayı + açıklamak için çalışma zamanı kimlik bilgilerini somutlaştırmak zorunda kalmamalıdır. Önerilen `inspectAccount(...)` davranışı: -- Yalnızca açıklayıcı hesap durumu döndürün. +- Yalnızca açıklayıcı hesap durumunu döndürün. - `enabled` ve `configured` değerlerini koruyun. -- Gerektiğinde şu gibi kimlik bilgisi kaynağı/durum alanları ekleyin: +- Gerekli olduğunda kimlik bilgisi kaynağı/durum alanlarını ekleyin; örneğin: - `tokenSource`, `tokenStatus` - `botTokenSource`, `botTokenStatus` - `appTokenSource`, `appTokenStatus` - `signingSecretSource`, `signingSecretStatus` - Salt okunur kullanılabilirliği bildirmek için ham belirteç değerlerini döndürmeniz gerekmez. - Durum tarzı komutlar için `tokenStatus: "available"` (ve eşleşen kaynak alanı) döndürmek yeterlidir. -- Bir kimlik bilgisi SecretRef üzerinden yapılandırılmış ancak mevcut komut yolunda kullanılamıyorsa - `configured_unavailable` kullanın. + Durum tarzı komutlar için `tokenStatus: "available"` döndürmek + (ve eşleşen kaynak alanı) yeterlidir. +- Bir kimlik bilgisi SecretRef üzerinden yapılandırılmışsa ancak + mevcut komut yolunda kullanılamıyorsa `configured_unavailable` kullanın. -Bu, salt okunur komutların çökmesi veya hesabı yanlışlıkla yapılandırılmamış diye bildirmesi yerine -"yapılandırılmış ama bu komut yolunda kullanılamıyor" şeklinde rapor vermesini sağlar. +Bu, salt okunur komutların çökmesi veya hesabı yanlış biçimde yapılandırılmamış olarak +bildirmesi yerine “yapılandırılmış ancak bu komut yolunda kullanılamıyor” +şeklinde rapor vermesini sağlar. ## Paket paketleri @@ -1330,64 +1351,64 @@ Bir plugin dizini, `openclaw.extensions` içeren bir `package.json` dosyası iç } ``` -Her girdi bir plugin olur. Paket birden fazla uzantı listeliyorsa plugin kimliği +Her girdi bir plugin’e dönüşür. Paket birden çok uzantı listeliyorsa plugin kimliği `name/` olur. -Plugin'iniz npm bağımlılıklarını içe aktarıyorsa, `node_modules` -mevcut olsun diye bunları o dizine kurun (`npm install` / `pnpm install`). +Plugin’iniz npm bağımlılıkları içe aktarıyorsa, `node_modules` +kullanılabilir olsun diye bunları o dizinde kurun (`npm install` / `pnpm install`). -Güvenlik koruması: her `openclaw.extensions` girdisi, sembolik bağ çözümlemesinden sonra plugin -dizini içinde kalmalıdır. Paket dizininden çıkan girdiler +Güvenlik korkuluğu: her `openclaw.extensions` girdisi, sembolik bağlantı çözümlemesinden sonra +plugin dizini içinde kalmalıdır. Paket dizininden çıkan girdiler reddedilir. Güvenlik notu: `openclaw plugins install`, plugin bağımlılıklarını `npm install --omit=dev --ignore-scripts` ile kurar (yaşam döngüsü betikleri yok, çalışma zamanında geliştirme bağımlılıkları yok). Plugin bağımlılık -ağaçlarını "salt JS/TS" tutun ve `postinstall` derlemeleri gerektiren paketlerden kaçının. +ağaçlarını “saf JS/TS” tutun ve `postinstall` derlemeleri gerektiren paketlerden kaçının. -İsteğe bağlı: `openclaw.setupEntry` hafif bir yalnızca kurulum modülünü işaret edebilir. -OpenClaw, devre dışı bir kanal plugin'i için kurulum yüzeylerine ihtiyaç duyduğunda veya -bir kanal plugin'i etkin ancak hâlâ yapılandırılmamış olduğunda tam plugin girişi yerine `setupEntry` -yükler. Bu, ana plugin girişiniz araçlar, kancalar veya diğer yalnızca çalışma zamanı -kodlarını da bağlıyorsa başlangıç ve kurulumu daha hafif tutar. +İsteğe bağlı: `openclaw.setupEntry`, hafif bir yalnızca kurulum modülünü işaret edebilir. +OpenClaw, devre dışı bir kanal plugin’i için kurulum yüzeylerine ihtiyaç duyduğunda veya +bir kanal plugin’i etkin ancak hâlâ yapılandırılmamış olduğunda, +tam plugin girdisi yerine `setupEntry` yükler. Bu, ana plugin girdiniz aynı zamanda araçlar, kancalar veya başka yalnızca çalışma zamanı +kodları da bağlıyorsa başlangıcı ve kurulumu daha hafif tutar. İsteğe bağlı: `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen`, -bir kanal plugin'ini, kanal zaten yapılandırılmış olsa bile gateway'nin -dinleme öncesi başlangıç aşamasında aynı `setupEntry` yoluna almayı seçebilir. +bir kanal plugin’ini, kanal zaten yapılandırılmış olsa bile, gateway’in +dinleme öncesi başlangıç aşamasında aynı `setupEntry` yoluna dahil edebilir. -Bunu yalnızca `setupEntry`, gateway dinlemeye başlamadan önce -var olması gereken başlangıç yüzeyini tamamen kapsıyorsa kullanın. Pratikte bu, kurulum girdisinin -başlangıcın bağlı olduğu aşağıdaki gibi tüm kanala ait yetenekleri kaydetmesi gerektiği anlamına gelir: +Bunu yalnızca `setupEntry`, gateway dinlemeye başlamadan +önce var olması gereken başlangıç yüzeyini tamamen kapsıyorsa kullanın. Pratikte bu, kurulum girdisinin başlangıcın bağlı olduğu +kanala ait tüm yetenekleri kaydetmesi gerektiği anlamına gelir; örneğin: - kanal kaydının kendisi - gateway dinlemeye başlamadan önce kullanılabilir olması gereken tüm HTTP rotaları -- aynı pencere sırasında var olması gereken tüm gateway yöntemleri, araçlar veya hizmetleri +- aynı zaman penceresinde var olması gereken tüm gateway yöntemleri, araçlar veya servisler -Tam girişiniz hâlâ gerekli herhangi bir başlangıç yeteneğine sahipse bu bayrağı etkinleştirmeyin. -Plugin'i varsayılan davranışta bırakın ve OpenClaw'un başlangıç sırasında -tam girişi yüklemesine izin verin. +Tam girdiniz hâlâ gerekli herhangi bir başlangıç yeteneğine sahipse bu bayrağı +etkinleştirmeyin. Plugin’i varsayılan davranışta bırakın ve OpenClaw’ın başlangıç sırasında +tam girdiyi yüklemesine izin verin. -Paketlenmiş kanallar ayrıca, tam kanal çalışma zamanı yüklenmeden önce çekirdeğin danışabileceği -yalnızca kurulum sözleşme yüzeyi yardımcıları yayımlayabilir. Mevcut kurulum -yükseltme yüzeyi şöyledir: +Paketlenmiş kanallar, çekirdeğin tam kanal çalışma zamanı yüklenmeden önce +danışabileceği yalnızca kurulum amaçlı sözleşme-yüzeyi yardımcıları da yayımlayabilir. Güncel kurulum +yükseltme yüzeyi şudur: - `singleAccountKeysToMove` - `namedAccountPromotionKeys` - `resolveSingleAccountPromotionTarget(...)` -Çekirdek bu yüzeyi, tam plugin girişini yüklemeden eski bir tek hesaplı kanal -yapılandırmasını `channels..accounts.*` içine yükseltmesi gerektiğinde kullanır. -Matrix mevcut paketlenmiş örnektir: adlandırılmış hesaplar zaten varsa yalnızca auth/bootstrap anahtarlarını -adlandırılmış yükseltilmiş bir hesaba taşır ve her zaman -`accounts.default` oluşturmadan yapılandırılmış kanonik olmayan bir varsayılan hesap anahtarını koruyabilir. +Çekirdek bu yüzeyi, tam plugin girdisini yüklemeden +eski tek hesaplı kanal yapılandırmasını `channels..accounts.*` içine yükseltmesi gerektiğinde kullanır. +Mevcut paketlenmiş örnek Matrix’tir: adlandırılmış hesaplar zaten varken yalnızca auth/bootstrap anahtarlarını +adlandırılmış bir yükseltilmiş hesaba taşır ve her zaman +`accounts.default` oluşturmaktansa yapılandırılmış kanonik olmayan bir varsayılan hesap anahtarını koruyabilir. -Bu kurulum yama bağdaştırıcıları paketlenmiş sözleşme yüzeyi keşfini tembel tutar. -İçe aktarma zamanı hafif kalır; yükseltme yüzeyi modül içe aktarımında paketlenmiş kanal başlangıcına yeniden girmek yerine +Bu kurulum yama bağdaştırıcıları, paketlenmiş sözleşme-yüzeyi keşfini tembel tutar. +İçe aktarma zamanı hafif kalır; yükseltme yüzeyi modül içe aktarmasında paketlenmiş kanal başlangıcına yeniden girmek yerine yalnızca ilk kullanımda yüklenir. -Bu başlangıç yüzeyleri gateway RPC yöntemleri içerdiğinde, bunları -plugin'e özgü bir ön ek üzerinde tutun. Çekirdek yönetici ad alanları (`config.*`, -`exec.approvals.*`, `wizard.*`, `update.*`) ayrılmış kalır ve bir plugin daha dar kapsam istese bile -her zaman `operator.admin` olarak çözülür. +Bu başlangıç yüzeyleri gateway RPC yöntemlerini içerdiğinde, bunları +plugin’e özgü bir ön ek üzerinde tutun. Çekirdek yönetici ad alanları (`config.*`, +`exec.approvals.*`, `wizard.*`, `update.*`) ayrılmış kalır ve bir plugin daha dar bir kapsam istese bile +her zaman `operator.admin` değerine çözülür. Örnek: @@ -1404,10 +1425,10 @@ her zaman `operator.admin` olarak çözülür. } ``` -### Kanal katalog meta verisi +### Kanal katalog meta verileri -Kanal plugin'leri `openclaw.channel` üzerinden kurulum/keşif meta verisi ve -`openclaw.install` üzerinden kurulum ipuçları duyurabilir. Bu, çekirdek katalog verisini verisiz tutar. +Kanal plugin’leri `openclaw.channel` üzerinden kurulum/keşif meta verileri ve +`openclaw.install` üzerinden kurulum ipuçları tanıtabilir. Bu, çekirdeği katalog verisinden bağımsız tutar. Örnek: @@ -1435,42 +1456,41 @@ Kanal plugin'leri `openclaw.channel` üzerinden kurulum/keşif meta verisi ve } ``` -Asgari örneğin ötesindeki yararlı `openclaw.channel` alanları: +Asgari örneğin ötesinde kullanışlı `openclaw.channel` alanları: -- daha zengin katalog/durum yüzeyleri için `detailLabel`: ikincil etiket -- belge bağlantısı metnini geçersiz kılmak için `docsLabel` -- bu katalog girdisinin geride bırakması gereken daha düşük öncelikli plugin/kanal kimlikleri için `preferOver` -- seçim yüzeyi metin denetimleri için `selectionDocsPrefix`, `selectionDocsOmitLabel`, `selectionExtras` -- giden biçimlendirme kararları için kanalın markdown yeteneğine sahip olduğunu işaretleyen `markdownCapable` -- `false` olarak ayarlandığında kanalı yapılandırılmış kanal listeleme yüzeylerinden gizleyen `exposure.configured` -- `false` olarak ayarlandığında kanalı etkileşimli kurulum/yapılandırma seçicilerinden gizleyen `exposure.setup` -- belge gezinme yüzeyleri için kanalı dahili/özel olarak işaretleyen `exposure.docs` -- uyumluluk için eski takma adlar hâlâ kabul edilir: `showConfigured` / `showInSetup`; tercih edilen alan `exposure`dur -- kanalı standart hızlı başlangıç `allowFrom` akışına dâhil eden `quickstartAllowFrom` -- yalnızca tek hesap olsa bile açık hesap bağlamasını zorunlu kılan `forceAccountBinding` -- duyuru hedeflerini çözerken oturum aramasını tercih eden `preferSessionLookupForAnnounceTarget` +- `detailLabel`: daha zengin katalog/durum yüzeyleri için ikincil etiket +- `docsLabel`: belge bağlantısı için bağlantı metnini geçersiz kılar +- `preferOver`: bu katalog girdisinin önüne geçmesi gereken daha düşük öncelikli plugin/kanal kimlikleri +- `selectionDocsPrefix`, `selectionDocsOmitLabel`, `selectionExtras`: seçim yüzeyi metin denetimleri +- `markdownCapable`: giden biçimlendirme kararları için kanalı markdown yetenekli olarak işaretler +- `exposure.configured`: `false` olduğunda kanalı yapılandırılmış kanal listeleme yüzeylerinden gizler +- `exposure.setup`: `false` olduğunda kanalı etkileşimli kurulum/yapılandırma seçicilerinden gizler +- `exposure.docs`: belge gezinme yüzeyleri için kanalı iç/özel olarak işaretler +- `showConfigured` / `showInSetup`: eski takma adlar uyumluluk için hâlâ kabul edilir; `exposure` tercih edin +- `quickstartAllowFrom`: kanalı standart hızlı başlangıç `allowFrom` akışına dahil eder +- `forceAccountBinding`: yalnızca bir hesap olsa bile açık hesap bağlamasını zorunlu kılar +- `preferSessionLookupForAnnounceTarget`: duyuru hedefleri çözülürken oturum aramasını tercih eder -OpenClaw ayrıca **harici kanal kataloglarını** da (örneğin bir MPM -kayıt dışa aktarımı) birleştirebilir. Şu konumlardan birine bir JSON dosyası bırakın: +OpenClaw ayrıca **harici kanal kataloglarını** da birleştirebilir (örneğin, bir MPM +kayıt defteri dışa aktarımı). Şu konumlardan birine bir JSON dosyası bırakın: - `~/.openclaw/mpm/plugins.json` - `~/.openclaw/mpm/catalog.json` - `~/.openclaw/plugins/catalog.json` -Ya da `OPENCLAW_PLUGIN_CATALOG_PATHS` (veya `OPENCLAW_MPM_CATALOG_PATHS`) değişkenini -bir veya daha fazla JSON dosyasına yönlendirin (virgül/noktalı virgül/`PATH` ayırımlı). Her dosya -`{ "entries": [ { "name": "@scope/pkg", "openclaw": { "channel": {...}, "install": {...} } } ] }` içermelidir. Ayrıştırıcı, `"entries"` anahtarı için -eski takma adlar olarak `"packages"` veya `"plugins"` anahtarlarını da kabul eder. +Veya `OPENCLAW_PLUGIN_CATALOG_PATHS` (ya da `OPENCLAW_MPM_CATALOG_PATHS`) değişkenini +bir veya daha fazla JSON dosyasına yönlendirin (virgül/noktalı virgül/`PATH` ile ayrılmış). Her dosya +`{ "entries": [ { "name": "@scope/pkg", "openclaw": { "channel": {...}, "install": {...} } } ] }` içermelidir. Ayrıştırıcı, `"entries"` anahtarı için eski takma adlar olarak `"packages"` veya `"plugins"` değerlerini de kabul eder. -## Bağlam motoru plugin'leri +## Bağlam motoru plugin’leri -Bağlam motoru plugin'leri, alma, birleştirme -ve sıkıştırma için oturum bağlamı orkestrasyonuna sahiptir. Bunları plugin'inizden +Bağlam motoru plugin’leri, alım, birleştirme ve sıkıştırma için oturum bağlamı orkestrasyonuna sahiptir. +Bunları plugin’inizden `api.registerContextEngine(id, factory)` ile kaydedin, ardından etkin motoru `plugins.slots.contextEngine` ile seçin. -Bunu, plugin'inizin varsayılan bağlam -işlem hattısını sadece bellek araması veya kanca eklemek yerine değiştirmesi ya da genişletmesi gerektiğinde kullanın. +Bunu, plugin’inizin yalnızca bellek araması veya kancalar eklemek yerine +varsayılan bağlam işlem hattısını değiştirmesi ya da genişletmesi gerektiğinde kullanın. ```ts import { buildMemorySystemPromptAddition } from "openclaw/plugin-sdk/core"; @@ -1499,7 +1519,7 @@ export default function (api) { ``` Motorunuz sıkıştırma algoritmasına **sahip değilse**, `compact()` -uygulamasını koruyun ve açıkça ona devredin: +uygulamasını koruyun ve bunu açıkça devredin: ```ts import { @@ -1536,52 +1556,53 @@ export default function (api) { ## Yeni bir yetenek ekleme -Bir plugin mevcut API'ye uymayan davranışa ihtiyaç duyduğunda, plugin sistemini özel bir iç erişimle baypas etmeyin. -Eksik yeteneği ekleyin. +Bir plugin’in mevcut API’ye uymayan bir davranışa ihtiyacı olduğunda, +plugin sistemini özel bir iç erişimle baypas etmeyin. Eksik yeteneği ekleyin. Önerilen sıra: -1. çekirdek sözleşmesini tanımlayın +1. çekirdek sözleşmeyi tanımlayın Çekirdeğin hangi paylaşılan davranışa sahip olması gerektiğine karar verin: politika, geri dönüş, yapılandırma birleştirme, - yaşam döngüsü, kanala dönük anlamlar ve çalışma zamanı yardımcı biçimi. -2. yazımlı plugin kayıt/çalışma zamanı yüzeyleri ekleyin - En küçük yararlı - yazımlı yetenek yüzeyiyle `OpenClawPluginApi` ve/veya `api.runtime` öğesini genişletin. + yaşam döngüsü, kanala dönük anlambilim ve çalışma zamanı yardımcı şekli. +2. türlenmiş plugin kayıt/çalışma zamanı yüzeyleri ekleyin + `OpenClawPluginApi` ve/veya `api.runtime` yüzeyini, yararlı olan en küçük + türlenmiş yetenek yüzeyiyle genişletin. 3. çekirdek + kanal/özellik tüketicilerini bağlayın - Kanal ve özellik plugin'leri yeni yeteneği bir satıcı uygulamasını doğrudan içe aktararak değil, + Kanallar ve özellik plugin’leri yeni yeteneği doğrudan bir satıcı uygulamasını içe aktararak değil, çekirdek üzerinden tüketmelidir. 4. satıcı uygulamalarını kaydedin - Satıcı plugin'leri ardından arka uçlarını bu yeteneğe kaydeder. + Ardından satıcı plugin’leri arka uçlarını bu yeteneğe karşı kaydeder. 5. sözleşme kapsamı ekleyin - Sahiplik ve kayıt biçimi zaman içinde açık kalsın diye testler ekleyin. + Sahipliğin ve kayıt şeklinin zaman içinde açık kalması için testler ekleyin. -OpenClaw bu şekilde tek bir -sağlayıcının dünya görüşüne sabitlenmeden görüş sahibi kalır. Somut bir dosya kontrol listesi ve -işlenmiş örnek için [Capability Cookbook](/tr/plugins/architecture) sayfasına bakın. +OpenClaw bu şekilde görüş sahibi kalırken tek bir +sağlayıcının bakış açısına sabit kodlanmış hâle gelmez. Somut bir dosya denetim listesi ve işlenmiş örnek için +[Capability Cookbook](/tr/plugins/architecture) sayfasına bakın. -### Yetenek kontrol listesi +### Yetenek denetim listesi -Yeni bir yetenek eklediğinizde uygulama genellikle bu +Yeni bir yetenek eklediğinizde, uygulama genellikle şu yüzeylere birlikte dokunmalıdır: - `src//types.ts` içindeki çekirdek sözleşme türleri - `src//runtime.ts` içindeki çekirdek çalıştırıcı/çalışma zamanı yardımcısı - `src/plugins/types.ts` içindeki plugin API kayıt yüzeyi -- `src/plugins/registry.ts` içindeki plugin kayıt sistemi bağlaması -- özellik/kanal plugin'lerinin bunu tüketmesi gerektiğinde `src/plugins/runtime/*` içindeki plugin çalışma zamanı açığa çıkarımı +- `src/plugins/registry.ts` içindeki plugin kayıt defteri bağlantısı +- özellik/kanal + plugin’lerinin bunu tüketmesi gerektiğinde `src/plugins/runtime/*` içindeki plugin çalışma zamanı gösterimi - `src/test-utils/plugin-registration.ts` içindeki yakalama/test yardımcıları - `src/plugins/contracts/registry.ts` içindeki sahiplik/sözleşme doğrulamaları - `docs/` içindeki operatör/plugin belgeleri -Bu yüzeylerden biri eksikse, bu genellikle yeteneğin henüz tam -entegre edilmediğinin işaretidir. +Bu yüzeylerden biri eksikse, bu genellikle yeteneğin +henüz tam olarak entegre edilmediğinin işaretidir. ### Yetenek şablonu Asgari desen: ```ts -// core contract +// çekirdek sözleşme export type VideoGenerationProviderPlugin = { id: string; label: string; @@ -1597,7 +1618,7 @@ api.registerVideoGenerationProvider({ }, }); -// shared runtime helper for feature/channel plugins +// özellik/kanal plugin’leri için paylaşılan çalışma zamanı yardımcısı const clip = await api.runtime.videoGeneration.generate({ prompt: "Show the robot walking through the lab.", cfg, @@ -1610,9 +1631,9 @@ Sözleşme test deseni: expect(findVideoGenerationProviderIdsForPlugin("openai")).toEqual(["openai"]); ``` -Bu, kuralı basit tutar: +Bu kuralı basit tutar: -- çekirdek yetenek sözleşmesine + orkestrasyona sahiptir -- satıcı plugin'leri satıcı uygulamalarına sahiptir -- özellik/kanal plugin'leri çalışma zamanı yardımcılarını tüketir +- çekirdek, yetenek sözleşmesine + orkestrasyona sahiptir +- satıcı plugin’leri satıcı uygulamalarına sahiptir +- özellik/kanal plugin’leri çalışma zamanı yardımcılarını tüketir - sözleşme testleri sahipliği açık tutar diff --git a/docs/tr/plugins/manifest.md b/docs/tr/plugins/manifest.md index 53bcc1eb7..bbd0be243 100644 --- a/docs/tr/plugins/manifest.md +++ b/docs/tr/plugins/manifest.md @@ -1,14 +1,14 @@ --- read_when: - - Bir OpenClaw plugin'i geliştiriyorsunuz - - Bir plugin yapılandırma şeması yayımlamanız veya plugin doğrulama hatalarında hata ayıklamanız gerekiyor -summary: Plugin manifest + JSON şema gereksinimleri (katı yapılandırma doğrulaması) + - Bir OpenClaw plugin'i oluşturuyorsunuz + - Bir plugin yapılandırma şeması sağlamanız veya plugin doğrulama hatalarında hata ayıklamanız gerekiyor +summary: Plugin manifesti + JSON şema gereksinimleri (katı yapılandırma doğrulaması) title: Plugin Manifesti x-i18n: - generated_at: "2026-04-11T02:45:48Z" + generated_at: "2026-04-11T15:15:58Z" model: gpt-5.4 provider: openai - source_hash: 6b254c121d1eb5ea19adbd4148243cf47339c960442ab1ca0e0bfd52e0154c88 + source_hash: 42d454b560a8f6bf714c5d782f34216be1216d83d0a319d08d7349332c91a9e4 source_path: plugins/manifest.md workflow: 15 --- @@ -17,7 +17,7 @@ x-i18n: Bu sayfa yalnızca **yerel OpenClaw plugin manifesti** içindir. -Uyumlu paket düzenleri için [Plugin bundles](/tr/plugins/bundles) bölümüne bakın. +Uyumlu paket düzenleri için bkz. [Plugin paketleri](/tr/plugins/bundles). Uyumlu paket biçimleri farklı manifest dosyaları kullanır: @@ -26,48 +26,49 @@ Uyumlu paket biçimleri farklı manifest dosyaları kullanır: düzeni - Cursor paketi: `.cursor-plugin/plugin.json` -OpenClaw bu paket düzenlerini de otomatik algılar, ancak bunlar burada açıklanan `openclaw.plugin.json` şemasına göre doğrulanmaz. +OpenClaw bu paket düzenlerini de otomatik olarak algılar, ancak bunlar burada +açıklanan `openclaw.plugin.json` şemasına göre doğrulanmaz. -Uyumlu paketler için OpenClaw şu anda, düzen OpenClaw çalışma zamanı beklentileriyle eşleştiğinde paket meta verilerini, bildirilmiş -skill köklerini, Claude komut köklerini, Claude paketi `settings.json` varsayılanlarını, +Uyumlu paketler için OpenClaw şu anda, düzen OpenClaw çalışma zamanı beklentileriyle +eşleştiğinde, paket meta verilerini ve bildirilen skill köklerini, Claude komut köklerini, Claude paketi `settings.json` varsayılanlarını, Claude paketi LSP varsayılanlarını ve desteklenen hook paketlerini okur. -Her yerel OpenClaw plugin'i, **plugin kökünde** -bir `openclaw.plugin.json` dosyası içermelidir. OpenClaw bu manifesti, -plugin kodunu **çalıştırmadan** yapılandırmayı doğrulamak için kullanır. Eksik veya geçersiz manifestler, -plugin hataları olarak değerlendirilir ve yapılandırma doğrulamasını engeller. +Her yerel OpenClaw plugin'i, **plugin kökünde** bir `openclaw.plugin.json` dosyası +bulundurmak **zorundadır**. OpenClaw bu manifesti, plugin yapılandırmasını +**plugin kodunu çalıştırmadan** doğrulamak için kullanır. Eksik veya geçersiz +manifestler plugin hatası olarak değerlendirilir ve yapılandırma doğrulamasını engeller. -Tam plugin sistemi kılavuzu için bkz.: [Plugins](/tr/tools/plugin). -Yerel yetenek modeli ve güncel dış uyumluluk yönergeleri için: -[Capability model](/tr/plugins/architecture#public-capability-model). +Tam plugin sistemi kılavuzuna bakın: [Plugins](/tr/tools/plugin). +Yerel yetenek modeli ve güncel dış uyumluluk rehberi için: +[Yetenek modeli](/tr/plugins/architecture#public-capability-model). ## Bu dosya ne işe yarar -`openclaw.plugin.json`, OpenClaw'ın sizin -plugin kodunuzu yüklemeden önce okuduğu meta verilerdir. +`openclaw.plugin.json`, OpenClaw'un plugin kodunuzu yüklemeden önce okuduğu +meta verilerdir. Şunlar için kullanın: - plugin kimliği - yapılandırma doğrulaması -- plugin çalışma zamanını başlatmadan kullanılabilir olması gereken kimlik doğrulama ve onboarding meta verileri +- plugin çalışma zamanını başlatmadan kullanılabilir olması gereken auth ve onboarding meta verileri +- çalışma zamanı yüklenmeden önce kontrol düzlemi yüzeylerinin inceleyebileceği düşük maliyetli etkinleştirme ipuçları +- çalışma zamanı yüklenmeden önce kurulum/onboarding yüzeylerinin inceleyebileceği düşük maliyetli kurulum tanımlayıcıları - plugin çalışma zamanı yüklenmeden önce çözümlenmesi gereken takma ad ve otomatik etkinleştirme meta verileri -- plugin'i çalışma zamanı yüklenmeden önce otomatik etkinleştirmesi gereken - kısaltılmış model ailesi sahipliği meta verileri -- bundled uyumluluk bağlama ve sözleşme kapsamı için kullanılan statik yetenek sahipliği anlık görüntüleri -- çalışma zamanını yüklemeden katalog ve doğrulama - yüzeylerine birleştirilmesi gereken kanala özgü yapılandırma meta verileri -- yapılandırma UI ipuçları +- çalışma zamanı yüklenmeden önce plugin'i otomatik etkinleştirmesi gereken kısa model ailesi sahipliği meta verileri +- paketlenmiş uyumluluk bağlantıları ve sözleşme kapsamı için kullanılan statik yetenek sahipliği anlık görüntüleri +- çalışma zamanı yüklenmeden katalog ve doğrulama yüzeylerine birleştirilmesi gereken kanala özgü yapılandırma meta verileri +- yapılandırma arayüzü ipuçları Şunlar için kullanmayın: - çalışma zamanı davranışını kaydetmek -- kod entrypoint'lerini bildirmek -- npm install meta verileri +- kod giriş noktalarını bildirmek +- npm kurulum meta verileri -Bunlar plugin kodunuza ve `package.json` dosyanıza aittir. +Bunlar plugin kodunuza ve `package.json` dosyasına aittir. -## Minimum örnek +## Minimal örnek ```json { @@ -86,7 +87,7 @@ Bunlar plugin kodunuza ve `package.json` dosyanıza aittir. { "id": "openrouter", "name": "OpenRouter", - "description": "OpenRouter sağlayıcı plugin'i", + "description": "OpenRouter provider plugin", "version": "1.0.0", "providers": ["openrouter"], "modelSupport": { @@ -107,19 +108,19 @@ Bunlar plugin kodunuza ve `package.json` dosyanıza aittir. "provider": "openrouter", "method": "api-key", "choiceId": "openrouter-api-key", - "choiceLabel": "OpenRouter API anahtarı", + "choiceLabel": "OpenRouter API key", "groupId": "openrouter", "groupLabel": "OpenRouter", "optionKey": "openrouterApiKey", "cliFlag": "--openrouter-api-key", "cliOption": "--openrouter-api-key ", - "cliDescription": "OpenRouter API anahtarı", + "cliDescription": "OpenRouter API key", "onboardingScopes": ["text-inference"] } ], "uiHints": { "apiKey": { - "label": "API anahtarı", + "label": "API key", "placeholder": "sk-or-v1-...", "sensitive": true } @@ -138,59 +139,60 @@ Bunlar plugin kodunuza ve `package.json` dosyanıza aittir. ## Üst düzey alan başvurusu -| Alan | Gerekli | Tür | Anlamı | +| Alan | Zorunlu | Tür | Anlamı | | ----------------------------------- | ------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `id` | Evet | `string` | Kanonik plugin kimliği. `plugins.entries.` içinde kullanılan kimlik budur. | +| `id` | Evet | `string` | Kanonik plugin kimliği. Bu, `plugins.entries.` içinde kullanılan kimliktir. | | `configSchema` | Evet | `object` | Bu plugin'in yapılandırması için satır içi JSON Şeması. | -| `enabledByDefault` | Hayır | `true` | Bir bundled plugin'in varsayılan olarak etkin olduğunu işaretler. Plugin'i varsayılan olarak devre dışı bırakmak için bunu çıkarın veya `true` dışındaki herhangi bir değer ayarlayın. | +| `enabledByDefault` | Hayır | `true` | Paketlenmiş bir plugin'in varsayılan olarak etkin olduğunu belirtir. Plugin'i varsayılan olarak devre dışı bırakmak için bunu atlayın veya `true` dışındaki herhangi bir değere ayarlayın. | | `legacyPluginIds` | Hayır | `string[]` | Bu kanonik plugin kimliğine normalize edilen eski kimlikler. | -| `autoEnableWhenConfiguredProviders` | Hayır | `string[]` | Kimlik doğrulama, yapılandırma veya model başvuruları bunları andığında bu plugin'i otomatik etkinleştirmesi gereken sağlayıcı kimlikleri. | -| `kind` | Hayır | `"memory"` \| `"context-engine"` | `plugins.slots.*` tarafından kullanılan dışlayıcı bir plugin türü bildirir. | -| `channels` | Hayır | `string[]` | Bu plugin'in sahip olduğu kanal kimlikleri. Keşif ve yapılandırma doğrulaması için kullanılır. | -| `providers` | Hayır | `string[]` | Bu plugin'in sahip olduğu sağlayıcı kimlikleri. | -| `modelSupport` | Hayır | `object` | Çalışma zamanından önce plugin'i otomatik yüklemek için kullanılan, manifestin sahip olduğu kısaltılmış model ailesi meta verileri. | -| `cliBackends` | Hayır | `string[]` | Bu plugin'in sahip olduğu CLI çıkarım backend kimlikleri. Açık yapılandırma başvurularından başlangıçta otomatik etkinleştirme için kullanılır. | -| `commandAliases` | Hayır | `object[]` | Çalışma zamanı yüklenmeden önce plugin farkındalıklı yapılandırma ve CLI tanılamaları üretmesi gereken, bu plugin'in sahip olduğu komut adları. | -| `providerAuthEnvVars` | Hayır | `Record` | OpenClaw'ın plugin kodunu yüklemeden inceleyebileceği düşük maliyetli sağlayıcı kimlik doğrulama ortam değişkeni meta verileri. | -| `providerAuthAliases` | Hayır | `Record` | Kimlik doğrulama araması için başka bir sağlayıcı kimliğini yeniden kullanması gereken sağlayıcı kimlikleri; örneğin temel sağlayıcı API anahtarını ve kimlik doğrulama profillerini paylaşan bir coding sağlayıcısı. | -| `channelEnvVars` | Hayır | `Record` | OpenClaw'ın plugin kodunu yüklemeden inceleyebileceği düşük maliyetli kanal ortam değişkeni meta verileri. Bunu, genel başlangıç/yapılandırma yardımcılarının görmesi gereken ortam değişkeni odaklı kanal kurulumu veya kimlik doğrulama yüzeyleri için kullanın. | -| `providerAuthChoices` | Hayır | `object[]` | Onboarding seçicileri, tercih edilen sağlayıcı çözümlemesi ve basit CLI bayrağı bağlaması için düşük maliyetli kimlik doğrulama seçimi meta verileri. | -| `contracts` | Hayır | `object` | Speech, realtime transcription, realtime voice, media-understanding, image-generation, music-generation, video-generation, web-fetch, web search ve araç sahipliği için statik bundled yetenek anlık görüntüsü. | -| `channelConfigs` | Hayır | `Record` | Çalışma zamanı yüklenmeden önce keşif ve doğrulama yüzeylerine birleştirilen, manifestin sahip olduğu kanal yapılandırma meta verileri. | +| `autoEnableWhenConfiguredProviders` | Hayır | `string[]` | Auth, yapılandırma veya model başvuruları bunlardan bahsettiğinde bu plugin'i otomatik olarak etkinleştirmesi gereken provider kimlikleri. | +| `kind` | Hayır | `"memory"` \| `"context-engine"` | `plugins.slots.*` tarafından kullanılan özel bir plugin türünü bildirir. | +| `channels` | Hayır | `string[]` | Bu plugin'e ait kanal kimlikleri. Keşif ve yapılandırma doğrulaması için kullanılır. | +| `providers` | Hayır | `string[]` | Bu plugin'e ait provider kimlikleri. | +| `modelSupport` | Hayır | `object` | Çalışma zamanından önce plugin'i otomatik yüklemek için kullanılan, manifest sahipli kısa model ailesi meta verileri. | +| `cliBackends` | Hayır | `string[]` | Bu plugin'e ait CLI çıkarım backend kimlikleri. Açık yapılandırma başvurularından başlangıçta otomatik etkinleştirme için kullanılır. | +| `commandAliases` | Hayır | `object[]` | Çalışma zamanı yüklenmeden önce plugin farkındalıklı yapılandırma ve CLI tanılamaları üretmesi gereken, bu plugin'e ait komut adları. | +| `providerAuthEnvVars` | Hayır | `Record` | OpenClaw'un plugin kodunu yüklemeden inceleyebileceği düşük maliyetli provider auth ortam değişkeni meta verileri. | +| `providerAuthAliases` | Hayır | `Record` | Auth araması için başka bir provider kimliğini yeniden kullanması gereken provider kimlikleri; örneğin temel provider API anahtarını ve auth profillerini paylaşan bir coding provider. | +| `channelEnvVars` | Hayır | `Record` | OpenClaw'un plugin kodunu yüklemeden inceleyebileceği düşük maliyetli kanal ortam değişkeni meta verileri. Bunu, genel başlangıç/yapılandırma yardımcılarının görmesi gereken env tabanlı kanal kurulumu veya auth yüzeyleri için kullanın. | +| `providerAuthChoices` | Hayır | `object[]` | Onboarding seçicileri, tercih edilen provider çözümleme ve basit CLI bayrağı bağlama için düşük maliyetli auth seçeneği meta verileri. | +| `activation` | Hayır | `object` | Provider, komut, kanal, rota ve yetenek tetiklemeli yükleme için düşük maliyetli etkinleştirme ipuçları. Yalnızca meta veri; gerçek davranış yine plugin çalışma zamanına aittir. | +| `setup` | Hayır | `object` | Keşif ve kurulum yüzeylerinin plugin çalışma zamanını yüklemeden inceleyebileceği düşük maliyetli kurulum/onboarding tanımlayıcıları. | +| `contracts` | Hayır | `object` | Speech, gerçek zamanlı transcription, gerçek zamanlı voice, media-understanding, image-generation, music-generation, video-generation, web-fetch, web search ve tool sahipliği için statik paketlenmiş yetenek anlık görüntüsü. | +| `channelConfigs` | Hayır | `Record` | Çalışma zamanı yüklenmeden önce keşif ve doğrulama yüzeylerine birleştirilen, manifest sahipli kanal yapılandırma meta verileri. | | `skills` | Hayır | `string[]` | Plugin köküne göre göreli olarak yüklenecek Skills dizinleri. | | `name` | Hayır | `string` | İnsan tarafından okunabilir plugin adı. | | `description` | Hayır | `string` | Plugin yüzeylerinde gösterilen kısa özet. | | `version` | Hayır | `string` | Bilgilendirici plugin sürümü. | -| `uiHints` | Hayır | `Record` | Yapılandırma alanları için UI etiketleri, placeholder'lar ve hassasiyet ipuçları. | +| `uiHints` | Hayır | `Record` | Yapılandırma alanları için UI etiketleri, yer tutucular ve hassasiyet ipuçları. | -## `providerAuthChoices` başvurusu +## providerAuthChoices başvurusu -Her `providerAuthChoices` girdisi bir onboarding veya kimlik doğrulama seçimini açıklar. -OpenClaw bunu sağlayıcı çalışma zamanı yüklenmeden önce okur. +Her `providerAuthChoices` girdisi bir onboarding veya auth seçeneğini açıklar. +OpenClaw bunu provider çalışma zamanı yüklenmeden önce okur. -| Alan | Gerekli | Tür | Anlamı | -| --------------------- | ------- | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| `provider` | Evet | `string` | Bu seçimin ait olduğu sağlayıcı kimliği. | -| `method` | Evet | `string` | Yönlendirilecek kimlik doğrulama yöntemi kimliği. | -| `choiceId` | Evet | `string` | Onboarding ve CLI akışları tarafından kullanılan kararlı kimlik doğrulama seçimi kimliği. | -| `choiceLabel` | Hayır | `string` | Kullanıcıya dönük etiket. Atlanırsa OpenClaw `choiceId` değerine geri döner. | -| `choiceHint` | Hayır | `string` | Seçici için kısa yardımcı metin. | -| `assistantPriority` | Hayır | `number` | Assistant tarafından yönlendirilen etkileşimli seçicilerde daha düşük değerler daha önce sıralanır. | -| `assistantVisibility` | Hayır | `"visible"` \| `"manual-only"` | Manuel CLI seçimine izin vermeye devam ederken seçimi assistant seçicilerinden gizler. | -| `deprecatedChoiceIds` | Hayır | `string[]` | Kullanıcıları bu yerine geçen seçime yönlendirmesi gereken eski seçim kimlikleri. | -| `groupId` | Hayır | `string` | İlgili seçimleri gruplamak için isteğe bağlı grup kimliği. | -| `groupLabel` | Hayır | `string` | Bu grup için kullanıcıya dönük etiket. | -| `groupHint` | Hayır | `string` | Grup için kısa yardımcı metin. | -| `optionKey` | Hayır | `string` | Basit tek bayraklı kimlik doğrulama akışları için dahili seçenek anahtarı. | -| `cliFlag` | Hayır | `string` | `--openrouter-api-key` gibi CLI bayrak adı. | -| `cliOption` | Hayır | `string` | `--openrouter-api-key ` gibi tam CLI seçenek şekli. | -| `cliDescription` | Hayır | `string` | CLI yardımında kullanılan açıklama. | -| `onboardingScopes` | Hayır | `Array<"text-inference" \| "image-generation">` | Bu seçimin hangi onboarding yüzeylerinde görünmesi gerektiği. Atlanırsa varsayılan `["text-inference"]` olur. | +| Alan | Zorunlu | Tür | Anlamı | +| --------------------- | ------- | ------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | +| `provider` | Evet | `string` | Bu seçeneğin ait olduğu provider kimliği. | +| `method` | Evet | `string` | Yönlendirilecek auth yöntemi kimliği. | +| `choiceId` | Evet | `string` | Onboarding ve CLI akışlarında kullanılan kararlı auth seçeneği kimliği. | +| `choiceLabel` | Hayır | `string` | Kullanıcıya gösterilen etiket. Atlanırsa OpenClaw `choiceId` değerine geri döner. | +| `choiceHint` | Hayır | `string` | Seçici için kısa yardımcı metin. | +| `assistantPriority` | Hayır | `number` | Daha düşük değerler, asistan tarafından yönlendirilen etkileşimli seçicilerde daha önce sıralanır. | +| `assistantVisibility` | Hayır | `"visible"` \| `"manual-only"` | Manuel CLI seçimine yine izin verirken seçeneği asistan seçicilerinden gizler. | +| `deprecatedChoiceIds` | Hayır | `string[]` | Kullanıcıları bu yerine geçen seçeneğe yönlendirmesi gereken eski seçenek kimlikleri. | +| `groupId` | Hayır | `string` | İlgili seçenekleri gruplamak için isteğe bağlı grup kimliği. | +| `groupLabel` | Hayır | `string` | Bu grup için kullanıcıya gösterilen etiket. | +| `groupHint` | Hayır | `string` | Grup için kısa yardımcı metin. | +| `optionKey` | Hayır | `string` | Basit tek bayraklı auth akışları için dahili seçenek anahtarı. | +| `cliFlag` | Hayır | `string` | `--openrouter-api-key` gibi CLI bayrağı adı. | +| `cliOption` | Hayır | `string` | `--openrouter-api-key ` gibi tam CLI seçenek biçimi. | +| `cliDescription` | Hayır | `string` | CLI yardımında kullanılan açıklama. | +| `onboardingScopes` | Hayır | `Array<"text-inference" \| "image-generation">` | Bu seçeneğin hangi onboarding yüzeylerinde görünmesi gerektiği. Atlanırsa varsayılan olarak `["text-inference"]` kullanılır. | -## `commandAliases` başvurusu +## commandAliases başvurusu -Kullanıcıların yanlışlıkla `plugins.allow` içine koyabileceği veya kök bir CLI komutu olarak çalıştırmaya çalışabileceği bir çalışma zamanı komut adına plugin sahipse `commandAliases` kullanın. OpenClaw -bu meta verileri, plugin çalışma zamanı kodunu içe aktarmadan tanılama amacıyla kullanır. +Bir plugin, kullanıcıların yanlışlıkla `plugins.allow` içine koyabileceği veya kök CLI komutu olarak çalıştırmayı deneyebileceği bir çalışma zamanı komut adına sahipse `commandAliases` kullanın. OpenClaw bu meta veriyi, plugin çalışma zamanı kodunu içe aktarmadan tanılama için kullanır. ```json { @@ -204,22 +206,88 @@ bu meta verileri, plugin çalışma zamanı kodunu içe aktarmadan tanılama ama } ``` -| Alan | Gerekli | Tür | Anlamı | +| Alan | Zorunlu | Tür | Anlamı | | ------------ | ------- | ----------------- | ---------------------------------------------------------------------------- | | `name` | Evet | `string` | Bu plugin'e ait komut adı. | -| `kind` | Hayır | `"runtime-slash"` | Takma adı, kök bir CLI komutu yerine sohbet slash komutu olarak işaretler. | -| `cliCommand` | Hayır | `string` | Varsa CLI işlemleri için önerilecek ilgili kök CLI komutu. | +| `kind` | Hayır | `"runtime-slash"` | Takma adı, kök CLI komutu yerine bir sohbet slash komutu olarak işaretler. | +| `cliCommand` | Hayır | `string` | Varsa, CLI işlemleri için önerilecek ilişkili kök CLI komutu. | -## `uiHints` başvurusu +## activation başvurusu -`uiHints`, yapılandırma alanı adlarından küçük render ipuçlarına giden bir eşlemedir. +Plugin daha sonra hangi kontrol düzlemi olaylarının onu etkinleştirmesi gerektiğini düşük maliyetle bildirebiliyorsa `activation` kullanın. + +Bu blok yalnızca meta veridir. Çalışma zamanı davranışını kaydetmez ve `register(...)`, `setupEntry` veya diğer çalışma zamanı/plugin giriş noktalarının yerine geçmez. + +```json +{ + "activation": { + "onProviders": ["openai"], + "onCommands": ["models"], + "onChannels": ["web"], + "onRoutes": ["gateway-webhook"], + "onCapabilities": ["provider", "tool"] + } +} +``` + +| Alan | Zorunlu | Tür | Anlamı | +| ---------------- | ------- | ---------------------------------------------------- | ----------------------------------------------------------------- | +| `onProviders` | Hayır | `string[]` | İstendiğinde bu plugin'i etkinleştirmesi gereken provider kimlikleri. | +| `onCommands` | Hayır | `string[]` | Bu plugin'i etkinleştirmesi gereken komut kimlikleri. | +| `onChannels` | Hayır | `string[]` | Bu plugin'i etkinleştirmesi gereken kanal kimlikleri. | +| `onRoutes` | Hayır | `string[]` | Bu plugin'i etkinleştirmesi gereken rota türleri. | +| `onCapabilities` | Hayır | `Array<"provider" \| "channel" \| "tool" \| "hook">` | Kontrol düzlemi etkinleştirme planlamasında kullanılan geniş yetenek ipuçları. | + +## setup başvurusu + +Kurulum ve onboarding yüzeyleri çalışma zamanı yüklenmeden önce plugin'e ait düşük maliyetli meta verilere ihtiyaç duyuyorsa `setup` kullanın. + +```json +{ + "setup": { + "providers": [ + { + "id": "openai", + "authMethods": ["api-key"], + "envVars": ["OPENAI_API_KEY"] + } + ], + "cliBackends": ["openai-cli"], + "configMigrations": ["legacy-openai-auth"], + "requiresRuntime": false + } +} +``` + +Üst düzey `cliBackends` geçerliliğini korur ve CLI çıkarım backend'lerini tanımlamaya devam eder. `setup.cliBackends`, yalnızca meta veri olarak kalması gereken kontrol düzlemi/kurulum akışları için kurulum odaklı tanımlayıcı yüzeyidir. + +### setup.providers başvurusu + +| Alan | Zorunlu | Tür | Anlamı | +| ------------- | ------- | ---------- | --------------------------------------------------------------------------------------- | +| `id` | Evet | `string` | Kurulum veya onboarding sırasında gösterilen provider kimliği. | +| `authMethods` | Hayır | `string[]` | Tam çalışma zamanı yüklenmeden bu provider'ın desteklediği kurulum/auth yöntem kimlikleri. | +| `envVars` | Hayır | `string[]` | Genel kurulum/durum yüzeylerinin plugin çalışma zamanı yüklenmeden kontrol edebileceği ortam değişkenleri. | + +### setup alanları + +| Alan | Zorunlu | Tür | Anlamı | +| ------------------ | ------- | ---------- | -------------------------------------------------------------------------- | +| `providers` | Hayır | `object[]` | Kurulum ve onboarding sırasında gösterilen provider kurulum tanımlayıcıları. | +| `cliBackends` | Hayır | `string[]` | Tam çalışma zamanı etkinleştirmesi olmadan kullanılabilen kurulum zamanı backend kimlikleri. | +| `configMigrations` | Hayır | `string[]` | Bu plugin'in kurulum yüzeyine ait yapılandırma geçişi kimlikleri. | +| `requiresRuntime` | Hayır | `boolean` | Tanımlayıcı aramasından sonra kurulumun hâlâ plugin çalışma zamanını çalıştırmaya ihtiyaç duyup duymadığı. | + +## uiHints başvurusu + +`uiHints`, yapılandırma alan adlarından küçük işleme ipuçlarına giden bir eşlemedir. ```json { "uiHints": { "apiKey": { - "label": "API anahtarı", - "help": "OpenRouter istekleri için kullanılır", + "label": "API key", + "help": "Used for OpenRouter requests", "placeholder": "sk-or-v1-...", "sensitive": true } @@ -229,19 +297,18 @@ bu meta verileri, plugin çalışma zamanı kodunu içe aktarmadan tanılama ama Her alan ipucu şunları içerebilir: -| Alan | Tür | Anlamı | -| ------------- | ---------- | -------------------------------------- | -| `label` | `string` | Kullanıcıya dönük alan etiketi. | -| `help` | `string` | Kısa yardımcı metin. | -| `tags` | `string[]` | İsteğe bağlı UI etiketleri. | -| `advanced` | `boolean` | Alanı gelişmiş olarak işaretler. | +| Alan | Tür | Anlamı | +| ------------- | ---------- | ------------------------------------- | +| `label` | `string` | Kullanıcıya gösterilen alan etiketi. | +| `help` | `string` | Kısa yardımcı metin. | +| `tags` | `string[]` | İsteğe bağlı UI etiketleri. | +| `advanced` | `boolean` | Alanı gelişmiş olarak işaretler. | | `sensitive` | `boolean` | Alanı gizli veya hassas olarak işaretler. | -| `placeholder` | `string` | Form girdileri için placeholder metni. | +| `placeholder` | `string` | Form girdileri için yer tutucu metin. | -## `contracts` başvurusu +## contracts başvurusu -`contracts` alanını yalnızca OpenClaw'ın -plugin çalışma zamanını içe aktarmadan okuyabileceği statik yetenek sahipliği meta verileri için kullanın. +OpenClaw'un plugin çalışma zamanını içe aktarmadan okuyabildiği statik yetenek sahipliği meta verileri için yalnızca `contracts` kullanın. ```json { @@ -261,21 +328,21 @@ plugin çalışma zamanını içe aktarmadan okuyabileceği statik yetenek sahip Her liste isteğe bağlıdır: -| Alan | Tür | Anlamı | -| -------------------------------- | ---------- | ----------------------------------------------------------- | -| `speechProviders` | `string[]` | Bu plugin'in sahip olduğu speech sağlayıcı kimlikleri. | -| `realtimeTranscriptionProviders` | `string[]` | Bu plugin'in sahip olduğu realtime transcription sağlayıcı kimlikleri. | -| `realtimeVoiceProviders` | `string[]` | Bu plugin'in sahip olduğu realtime voice sağlayıcı kimlikleri. | -| `mediaUnderstandingProviders` | `string[]` | Bu plugin'in sahip olduğu media-understanding sağlayıcı kimlikleri. | -| `imageGenerationProviders` | `string[]` | Bu plugin'in sahip olduğu image-generation sağlayıcı kimlikleri. | -| `videoGenerationProviders` | `string[]` | Bu plugin'in sahip olduğu video-generation sağlayıcı kimlikleri. | -| `webFetchProviders` | `string[]` | Bu plugin'in sahip olduğu web-fetch sağlayıcı kimlikleri. | -| `webSearchProviders` | `string[]` | Bu plugin'in sahip olduğu web search sağlayıcı kimlikleri. | -| `tools` | `string[]` | Bundled sözleşme kontrolleri için bu plugin'in sahip olduğu agent araç adları. | +| Alan | Tür | Anlamı | +| -------------------------------- | ---------- | --------------------------------------------------------------- | +| `speechProviders` | `string[]` | Bu plugin'in sahip olduğu speech provider kimlikleri. | +| `realtimeTranscriptionProviders` | `string[]` | Bu plugin'in sahip olduğu gerçek zamanlı transcription provider kimlikleri. | +| `realtimeVoiceProviders` | `string[]` | Bu plugin'in sahip olduğu gerçek zamanlı voice provider kimlikleri. | +| `mediaUnderstandingProviders` | `string[]` | Bu plugin'in sahip olduğu media-understanding provider kimlikleri. | +| `imageGenerationProviders` | `string[]` | Bu plugin'in sahip olduğu image-generation provider kimlikleri. | +| `videoGenerationProviders` | `string[]` | Bu plugin'in sahip olduğu video-generation provider kimlikleri. | +| `webFetchProviders` | `string[]` | Bu plugin'in sahip olduğu web-fetch provider kimlikleri. | +| `webSearchProviders` | `string[]` | Bu plugin'in sahip olduğu web-search provider kimlikleri. | +| `tools` | `string[]` | Paketlenmiş sözleşme kontrolleri için bu plugin'in sahip olduğu ajan tool adları. | -## `channelConfigs` başvurusu +## channelConfigs başvurusu -Bir kanal plugin'i, çalışma zamanı yüklenmeden önce düşük maliyetli yapılandırma meta verilerine ihtiyaç duyuyorsa `channelConfigs` kullanın. +Bir kanal plugin'i çalışma zamanı yüklenmeden önce düşük maliyetli yapılandırma meta verilerine ihtiyaç duyuyorsa `channelConfigs` kullanın. ```json { @@ -295,7 +362,7 @@ Bir kanal plugin'i, çalışma zamanı yüklenmeden önce düşük maliyetli yap } }, "label": "Matrix", - "description": "Matrix homeserver bağlantısı", + "description": "Matrix homeserver connection", "preferOver": ["matrix-legacy"] } } @@ -304,18 +371,17 @@ Bir kanal plugin'i, çalışma zamanı yüklenmeden önce düşük maliyetli yap Her kanal girdisi şunları içerebilir: -| Alan | Tür | Anlamı | -| ------------- | ------------------------ | ---------------------------------------------------------------------------------------- | -| `schema` | `object` | `channels.` için JSON Şeması. Bildirilen her kanal yapılandırma girdisi için gereklidir. | -| `uiHints` | `Record` | Bu kanal yapılandırma bölümü için isteğe bağlı UI etiketleri/placeholder'lar/hassas ipuçları. | -| `label` | `string` | Çalışma zamanı meta verileri hazır olmadığında seçiciye ve inceleme yüzeylerine birleştirilen kanal etiketi. | -| `description` | `string` | İnceleme ve katalog yüzeyleri için kısa kanal açıklaması. | -| `preferOver` | `string[]` | Seçim yüzeylerinde bunun gerisinde kalması gereken eski veya daha düşük öncelikli plugin kimlikleri. | +| Alan | Tür | Anlamı | +| ------------ | ------------------------ | ------------------------------------------------------------------------------------------- | +| `schema` | `object` | `channels.` için JSON Şeması. Bildirilen her kanal yapılandırma girdisi için zorunludur. | +| `uiHints` | `Record` | Bu kanal yapılandırma bölümü için isteğe bağlı UI etiketleri/yer tutucular/hassas ipuçları. | +| `label` | `string` | Çalışma zamanı meta verileri hazır olmadığında seçici ve inceleme yüzeylerine birleştirilen kanal etiketi. | +| `description` | `string` | İnceleme ve katalog yüzeyleri için kısa kanal açıklaması. | +| `preferOver` | `string[]` | Bu kanalın seçim yüzeylerinde geride bırakması gereken eski veya daha düşük öncelikli plugin kimlikleri. | -## `modelSupport` başvurusu +## modelSupport başvurusu -OpenClaw'ın, plugin çalışma zamanı yüklenmeden önce `gpt-5.4` veya `claude-sonnet-4.6` gibi -kısaltılmış model kimliklerinden sağlayıcı plugin'inizi çıkarım yapmasını istiyorsanız `modelSupport` kullanın. +OpenClaw'un, plugin çalışma zamanı yüklenmeden önce `gpt-5.4` veya `claude-sonnet-4.6` gibi kısa model kimliklerinden provider plugin'inizi çıkarsaması gerekiyorsa `modelSupport` kullanın. ```json { @@ -326,74 +392,60 @@ kısaltılmış model kimliklerinden sağlayıcı plugin'inizi çıkarım yapmas } ``` -OpenClaw şu önceliği uygular: +OpenClaw şu öncelik sırasını uygular: - açık `provider/model` başvuruları, sahip olan `providers` manifest meta verilerini kullanır -- `modelPatterns`, `modelPrefixes` üzerinde önceliklidir -- bir bundled olmayan plugin ile bir bundled plugin aynı anda eşleşirse, bundled olmayan - plugin kazanır -- kalan belirsizlik, kullanıcı veya yapılandırma bir sağlayıcı belirtinceye kadar yok sayılır +- `modelPatterns`, `modelPrefixes` değerlerinden önce gelir +- paketlenmemiş bir plugin ile paketlenmiş bir plugin aynı anda eşleşirse, paketlenmemiş plugin kazanır +- kalan belirsizlik, kullanıcı veya yapılandırma bir provider belirtinceye kadar yok sayılır Alanlar: -| Alan | Tür | Anlamı | +| Alan | Tür | Anlamı | | --------------- | ---------- | ----------------------------------------------------------------------------- | -| `modelPrefixes` | `string[]` | Kısaltılmış model kimliklerine `startsWith` ile eşleştirilen önekler. | -| `modelPatterns` | `string[]` | Profil son eki kaldırıldıktan sonra kısaltılmış model kimliklerine göre eşleştirilen regex kaynakları. | +| `modelPrefixes` | `string[]` | Kısa model kimliklerine karşı `startsWith` ile eşleştirilen önekler. | +| `modelPatterns` | `string[]` | Profil soneki kaldırıldıktan sonra kısa model kimliklerine karşı eşleştirilen regex kaynakları. | -Eski üst düzey yetenek anahtarları kullanımdan kaldırılmıştır. `speechProviders`, `realtimeTranscriptionProviders`, -`realtimeVoiceProviders`, `mediaUnderstandingProviders`, -`imageGenerationProviders`, `videoGenerationProviders`, -`webFetchProviders` ve `webSearchProviders` alanlarını `contracts` altına taşımak için -`openclaw doctor --fix` kullanın; normal -manifest yüklemesi artık bu üst düzey alanları yetenek sahipliği olarak değerlendirmez. +Eski üst düzey yetenek anahtarları kullanımdan kaldırılmıştır. `speechProviders`, `realtimeTranscriptionProviders`, `realtimeVoiceProviders`, `mediaUnderstandingProviders`, `imageGenerationProviders`, `videoGenerationProviders`, `webFetchProviders` ve `webSearchProviders` alanlarını `contracts` altına taşımak için `openclaw doctor --fix` kullanın; normal manifest yükleme artık bu üst düzey alanları yetenek sahipliği olarak değerlendirmez. -## Manifest ile `package.json` karşılaştırması +## Manifest ve package.json karşılaştırması -Bu iki dosya farklı işlere hizmet eder: +İki dosya farklı işler görür: -| Dosya | Şunun için kullanın | +| Dosya | Kullanım amacı | | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| `openclaw.plugin.json` | Keşif, yapılandırma doğrulaması, kimlik doğrulama seçimi meta verileri ve plugin kodu çalışmadan önce var olması gereken UI ipuçları | -| `package.json` | npm meta verileri, bağımlılık kurulumu ve entrypoint'ler, kurulum geçitlemesi, kurulum veya katalog meta verileri için kullanılan `openclaw` bloğu | +| `openclaw.plugin.json` | Plugin kodu çalışmadan önce var olması gereken keşif, yapılandırma doğrulaması, auth seçeneği meta verileri ve UI ipuçları | +| `package.json` | npm meta verileri, bağımlılık kurulumu ve giriş noktaları, kurulum engelleme, setup veya katalog meta verileri için kullanılan `openclaw` bloğu | -Bir meta veri parçasının nereye ait olduğundan emin değilseniz şu kuralı kullanın: +Bir meta verinin nereye ait olduğundan emin değilseniz şu kuralı kullanın: -- OpenClaw bunu plugin kodunu yüklemeden önce bilmek zorundaysa, `openclaw.plugin.json` içine koyun -- paketleme, giriş dosyaları veya npm install davranışı ile ilgiliyse, `package.json` içine koyun +- OpenClaw bunun plugin kodunu yüklemeden önce bilmek zorundaysa, `openclaw.plugin.json` içine koyun +- paketleme, giriş dosyaları veya npm kurulum davranışıyla ilgiliyse, `package.json` içine koyun -### Keşfi etkileyen `package.json` alanları +### Keşfi etkileyen package.json alanları -Bazı çalışma zamanı öncesi plugin meta verileri, bilinçli olarak -`openclaw.plugin.json` yerine `package.json` içindeki -`openclaw` bloğu altında tutulur. +Bazı çalışma zamanı öncesi plugin meta verileri, kasıtlı olarak `openclaw.plugin.json` yerine `package.json` içindeki `openclaw` bloğunda bulunur. Önemli örnekler: -| Alan | Anlamı | -| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -| `openclaw.extensions` | Yerel plugin entrypoint'lerini bildirir. | -| `openclaw.setupEntry` | Onboarding ve ertelenmiş kanal başlangıcı sırasında kullanılan hafif, yalnızca kurulum amaçlı entrypoint. | -| `openclaw.channel` | Etiketler, doküman yolları, takma adlar ve seçim metni gibi düşük maliyetli kanal katalog meta verileri. | -| `openclaw.channel.configuredState` | Tam kanal çalışma zamanını yüklemeden “yalnızca env tabanlı kurulum zaten var mı?” sorusunu yanıtlayabilen hafif configured-state denetleyici meta verileri. | -| `openclaw.channel.persistedAuthState` | Tam kanal çalışma zamanını yüklemeden “zaten oturum açılmış bir şey var mı?” sorusunu yanıtlayabilen hafif persisted-auth denetleyici meta verileri. | -| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Bundled ve harici olarak yayımlanan plugin'ler için kurulum/güncelleme ipuçları. | -| `openclaw.install.defaultChoice` | Birden fazla kurulum kaynağı mevcut olduğunda tercih edilen kurulum yolu. | -| `openclaw.install.minHostVersion` | `>=2026.3.22` gibi bir semver alt sınırı kullanarak desteklenen minimum OpenClaw host sürümü. | -| `openclaw.install.allowInvalidConfigRecovery` | Yapılandırma geçersiz olduğunda dar kapsamlı bir bundled-plugin yeniden kurulum kurtarma yoluna izin verir. | -| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Başlangıç sırasında tam kanal plugin'inden önce yalnızca kurulum amaçlı kanal yüzeylerinin yüklenmesine izin verir. | +| Alan | Anlamı | +| ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| `openclaw.extensions` | Yerel plugin giriş noktalarını bildirir. | +| `openclaw.setupEntry` | Onboarding ve ertelenmiş kanal başlangıcı sırasında kullanılan hafif, yalnızca setup amaçlı giriş noktası. | +| `openclaw.channel` | Etiketler, belge yolları, takma adlar ve seçim metni gibi düşük maliyetli kanal katalog meta verileri. | +| `openclaw.channel.configuredState` | Tam kanal çalışma zamanını yüklemeden "yalnızca env tabanlı kurulum zaten var mı?" sorusuna yanıt verebilen hafif yapılandırılmış durum denetleyici meta verileri. | +| `openclaw.channel.persistedAuthState` | Tam kanal çalışma zamanını yüklemeden "zaten giriş yapılmış bir şey var mı?" sorusuna yanıt verebilen hafif kalıcı auth durumu denetleyici meta verileri. | +| `openclaw.install.npmSpec` / `openclaw.install.localPath` | Paketlenmiş ve haricen yayımlanan plugin'ler için kurulum/güncelleme ipuçları. | +| `openclaw.install.defaultChoice` | Birden fazla kurulum kaynağı mevcut olduğunda tercih edilen kurulum yolu. | +| `openclaw.install.minHostVersion` | `>=2026.3.22` gibi bir semver alt sınırı kullanan, desteklenen minimum OpenClaw host sürümü. | +| `openclaw.install.allowInvalidConfigRecovery` | Yapılandırma geçersiz olduğunda dar kapsamlı bir paketlenmiş plugin yeniden kurulum kurtarma yoluna izin verir. | +| `openclaw.startup.deferConfiguredChannelFullLoadUntilAfterListen` | Başlangıç sırasında tam kanal plugin'inden önce yalnızca setup amaçlı kanal yüzeylerinin yüklenmesini sağlar. | -`openclaw.install.minHostVersion`, kurulum sırasında ve manifest kayıt defteri -yüklenirken zorunlu kılınır. Geçersiz değerler reddedilir; daha yeni ama geçerli değerler eski host'larda plugin'i atlar. +`openclaw.install.minHostVersion`, kurulum ve manifest kayıt defteri yükleme sırasında uygulanır. Geçersiz değerler reddedilir; daha yeni ama geçerli değerler, eski host'larda plugin'i atlar. -`openclaw.install.allowInvalidConfigRecovery` bilinçli olarak dardır. Keyfi -bozuk yapılandırmaları kurulabilir hale getirmez. Bugün yalnızca kurulum -akışlarının, belirli eski bundled-plugin yükseltme hatalarından kurtulmasına izin verir; örneğin eksik bundled plugin yolu veya aynı -bundled plugin için eski bir `channels.` girdisi. İlgisiz yapılandırma hataları yine kurulumu engeller ve operatörleri -`openclaw doctor --fix` komutuna yönlendirir. +`openclaw.install.allowInvalidConfigRecovery` kasıtlı olarak dar kapsamlıdır. Rastgele bozuk yapılandırmaların kurulabilir olmasını sağlamaz. Bugün yalnızca, eksik paketlenmiş plugin yolu veya aynı paketlenmiş plugin için bayat bir `channels.` girdisi gibi belirli eski paketlenmiş plugin yükseltme hatalarından kurulum akışlarının kurtulmasına izin verir. İlgisiz yapılandırma hataları yine kurulumu engeller ve operatörleri `openclaw doctor --fix` komutuna yönlendirir. -`openclaw.channel.persistedAuthState`, küçük bir denetleyici -modülü için paket meta verisidir: +`openclaw.channel.persistedAuthState`, küçük bir denetleyici modülü için paket meta verisidir: ```json { @@ -409,13 +461,9 @@ modülü için paket meta verisidir: } ``` -Kurulum, doctor veya configured-state akışları tam kanal plugin'i yüklenmeden önce -düşük maliyetli bir evet/hayır kimlik doğrulama -yoklaması gerektirdiğinde bunu kullanın. Hedef export, yalnızca kalıcı durumu okuyan küçük bir -fonksiyon olmalıdır; bunu tam kanal çalışma zamanı barrel'ı üzerinden yönlendirmeyin. +Setup, doctor veya yapılandırılmış durum akışlarının tam kanal plugin'i yüklenmeden önce ucuz bir evet/hayır auth yoklamasına ihtiyaç duyduğu durumlarda bunu kullanın. Hedef export, yalnızca kalıcı durumu okuyan küçük bir işlev olmalıdır; bunu tam kanal çalışma zamanı barrel'ı üzerinden yönlendirmeyin. -`openclaw.channel.configuredState`, düşük maliyetli yalnızca env tabanlı -configured denetimleri için aynı şekli izler: +`openclaw.channel.configuredState`, düşük maliyetli yalnızca env tabanlı yapılandırılmış durum denetimleri için aynı biçimi izler: ```json { @@ -431,65 +479,44 @@ configured denetimleri için aynı şekli izler: } ``` -Bir kanal configured-state durumunu env veya diğer küçük -çalışma zamanı dışı girdilerden yanıtlayabiliyorsa bunu kullanın. Denetim tam yapılandırma çözümlemesi veya gerçek -kanal çalışma zamanını gerektiriyorsa, bu mantığı bunun yerine plugin -`config.hasConfiguredState` hook'unda tutun. +Bir kanal env veya diğer küçük çalışma zamanı dışı girdilerden yapılandırılmış durumu yanıtlayabiliyorsa bunu kullanın. Denetim tam yapılandırma çözümlemesine veya gerçek kanal çalışma zamanına ihtiyaç duyuyorsa, bu mantığı onun yerine plugin `config.hasConfiguredState` hook'unda tutun. -## JSON Şeması gereksinimleri +## JSON Şema gereksinimleri -- **Her plugin bir JSON Şeması yayımlamalıdır**, yapılandırma kabul etmese bile. +- **Her plugin bir JSON Şeması bulundurmak zorundadır**, yapılandırma kabul etmese bile. - Boş bir şema kabul edilebilir (örneğin `{ "type": "object", "additionalProperties": false }`). -- Şemalar çalışma zamanında değil, yapılandırma okuma/yazma sırasında doğrulanır. +- Şemalar çalışma zamanında değil, yapılandırma okuma/yazma anında doğrulanır. ## Doğrulama davranışı -- Kanal kimliği bir - plugin manifesti tarafından bildirilmedikçe bilinmeyen `channels.*` anahtarları **hatadır**. -- `plugins.entries.`, `plugins.allow`, `plugins.deny` ve `plugins.slots.*` - **keşfedilebilir** plugin kimliklerine başvurmalıdır. Bilinmeyen kimlikler **hatadır**. -- Bir plugin kuruluysa ancak manifesti veya şeması bozuk ya da eksikse, - doğrulama başarısız olur ve Doctor plugin hatasını raporlar. -- Plugin yapılandırması mevcut ama plugin **devre dışı** ise, yapılandırma korunur ve - Doctor + günlüklerde bir **uyarı** gösterilir. +- Bilinmeyen `channels.*` anahtarları, kanal kimliği bir plugin manifesti tarafından bildirilmedikçe **hatadır**. +- `plugins.entries.`, `plugins.allow`, `plugins.deny` ve `plugins.slots.*`, **keşfedilebilir** plugin kimliklerine başvurmak zorundadır. Bilinmeyen kimlikler **hatadır**. +- Bir plugin kuruluysa ancak bozuk veya eksik bir manifest ya da şemaya sahipse, doğrulama başarısız olur ve Doctor plugin hatasını bildirir. +- Plugin yapılandırması mevcutsa ancak plugin **devre dışıysa**, yapılandırma korunur ve Doctor + günlüklerde bir **uyarı** gösterilir. -Tam `plugins.*` şeması için [Configuration reference](/tr/gateway/configuration) bölümüne bakın. +Tam `plugins.*` şeması için bkz. [Yapılandırma başvurusu](/tr/gateway/configuration). ## Notlar - Manifest, yerel dosya sistemi yüklemeleri dahil **yerel OpenClaw plugin'leri için zorunludur**. -- Çalışma zamanı yine plugin modülünü ayrı olarak yükler; manifest yalnızca - keşif + doğrulama içindir. -- Yerel manifestler JSON5 ile ayrıştırılır; bu nedenle son değer hâlâ bir nesne olduğu sürece yorumlar, sondaki virgüller ve - tırnaksız anahtarlar kabul edilir. -- Manifest yükleyici yalnızca belgelenmiş manifest alanlarını okur. Buraya - özel üst düzey anahtarlar eklemekten kaçının. -- `providerAuthEnvVars`, kimlik doğrulama yoklamaları, env işaretleyici - doğrulaması ve env adlarını incelemek için plugin - çalışma zamanını başlatmaması gereken benzer sağlayıcı kimlik doğrulama yüzeyleri için düşük maliyetli meta veri yoludur. -- `providerAuthAliases`, sağlayıcı varyantlarının başka bir sağlayıcının kimlik doğrulama - env değişkenlerini, kimlik doğrulama profillerini, yapılandırma destekli kimlik doğrulamayı ve API anahtarı onboarding seçimini - bu ilişkiyi çekirdekte sabit kodlamadan yeniden kullanmasına olanak tanır. -- `channelEnvVars`, shell-env fallback, kurulum - istemleri ve env adlarını incelemek için - kanal çalışma zamanını başlatmaması gereken benzer kanal yüzeyleri için düşük maliyetli meta veri yoludur. -- `providerAuthChoices`, kimlik doğrulama seçimi seçicileri, - sağlayıcı çalışma zamanı yüklenmeden önce `--auth-choice` çözümlemesi, tercih edilen sağlayıcı eşlemesi ve basit onboarding - CLI bayrağı kaydı için düşük maliyetli meta veri yoludur. Sağlayıcı kodu gerektiren çalışma zamanı sihirbazı - meta verileri için - [Provider runtime hooks](/tr/plugins/architecture#provider-runtime-hooks) bölümüne bakın. -- Dışlayıcı plugin türleri `plugins.slots.*` üzerinden seçilir. - - `kind: "memory"` değeri `plugins.slots.memory` ile seçilir. - - `kind: "context-engine"` değeri `plugins.slots.contextEngine` - ile seçilir (varsayılan: yerleşik `legacy`). -- `channels`, `providers`, `cliBackends` ve `skills`, bir - plugin bunlara ihtiyaç duymuyorsa atlanabilir. -- Plugin'iniz yerel modüllere bağlıysa, derleme adımlarını ve - tüm paket yöneticisi izin listesi gereksinimlerini belgeleyin (örneğin pnpm `allow-build-scripts` +- Çalışma zamanı yine plugin modülünü ayrı olarak yükler; manifest yalnızca keşif + doğrulama içindir. +- Yerel manifestler JSON5 ile ayrıştırılır; bu nedenle son değer hâlâ bir nesne olduğu sürece yorumlar, sondaki virgüller ve tırnaksız anahtarlar kabul edilir. +- Manifest yükleyici yalnızca belgelenmiş manifest alanlarını okur. Buraya özel üst düzey anahtarlar eklemekten kaçının. +- `providerAuthEnvVars`, env adlarını incelemek için plugin çalışma zamanını başlatmaması gereken auth yoklamaları, env işaretleyici doğrulaması ve benzeri provider auth yüzeyleri için düşük maliyetli meta veri yoludur. +- `providerAuthAliases`, provider varyantlarının başka bir provider'ın auth env değişkenlerini, auth profillerini, yapılandırma destekli auth'unu ve API anahtarı onboarding seçeneğini çekirdekte bu ilişkiyi sabit kodlamadan yeniden kullanmasını sağlar. +- `channelEnvVars`, env adlarını incelemek için plugin çalışma zamanını başlatmaması gereken shell env geri dönüşü, setup istemleri ve benzeri kanal yüzeyleri için düşük maliyetli meta veri yoludur. +- `providerAuthChoices`, provider çalışma zamanı yüklenmeden önce auth seçeneği seçicileri, `--auth-choice` çözümleme, tercih edilen provider eşleme ve basit onboarding CLI bayrağı kaydı için düşük maliyetli meta veri yoludur. Provider kodu gerektiren çalışma zamanı sihirbazı meta verileri için bkz. + [Provider runtime hook'ları](/tr/plugins/architecture#provider-runtime-hooks). +- Özel plugin türleri `plugins.slots.*` üzerinden seçilir. + - `kind: "memory"`, `plugins.slots.memory` tarafından seçilir. + - `kind: "context-engine"`, `plugins.slots.contextEngine` + tarafından seçilir (varsayılan: yerleşik `legacy`). +- Bir plugin bunlara ihtiyaç duymuyorsa `channels`, `providers`, `cliBackends` ve `skills` atlanabilir. +- Plugin'iniz yerel modüllere bağımlıysa, derleme adımlarını ve varsa paket yöneticisi izin listesi gereksinimlerini belgelendirin (örneğin pnpm `allow-build-scripts` - `pnpm rebuild `). ## İlgili -- [Building Plugins](/tr/plugins/building-plugins) — plugin'lerle çalışmaya başlama -- [Plugin Architecture](/tr/plugins/architecture) — iç mimari -- [SDK Overview](/tr/plugins/sdk-overview) — Plugin SDK başvurusu +- [Plugin Oluşturma](/tr/plugins/building-plugins) — plugin'lerle çalışmaya başlama +- [Plugin Mimarisi](/tr/plugins/architecture) — iç mimari +- [SDK Genel Bakış](/tr/plugins/sdk-overview) — Plugin SDK başvurusu diff --git a/docs/tr/reference/rich-output-protocol.md b/docs/tr/reference/rich-output-protocol.md new file mode 100644 index 000000000..716ff7e0f --- /dev/null +++ b/docs/tr/reference/rich-output-protocol.md @@ -0,0 +1,60 @@ +--- +x-i18n: + generated_at: "2026-04-11T15:15:48Z" + model: gpt-5.4 + provider: openai + source_hash: 2a8884fc2c304bf96d4675f0c1d1ff781d6dc1ae8c49d92ce08040c9c7709035 + source_path: reference/rich-output-protocol.md + workflow: 15 +--- + +# Zengin Çıktı Protokolü + +Asistan çıktısı küçük bir teslim/render yönergesi kümesi taşıyabilir: + +- Ek teslimi için `MEDIA:` +- Sesli sunum ipuçları için `[[audio_as_voice]]` +- Yanıt meta verisi için `[[reply_to_current]]` / `[[reply_to:]]` +- Control UI zengin render için `[embed ...]` + +Bu yönergeler ayrıdır. `MEDIA:` ve reply/voice etiketleri teslim meta verisi olarak kalır; `[embed ...]` ise yalnızca web için zengin render yoludur. + +## `[embed ...]` + +`[embed ...]`, Control UI için etkene yönelik tek zengin render söz dizimidir. + +Kendiliğinden kapanan örnek: + +```text +[embed ref="cv_123" title="Durum" /] +``` + +Kurallar: + +- `[view ...]` artık yeni çıktı için geçerli değildir. +- Embed kısa kodları yalnızca asistan mesaj yüzeyinde render edilir. +- Yalnızca URL destekli embed'ler render edilir. `ref="..."` veya `url="..."` kullanın. +- Blok biçimli satır içi HTML embed kısa kodları render edilmez. +- Web UI kısa kodu görünür metinden ayıklar ve embed'i satır içinde render eder. +- `MEDIA:` bir embed takma adı değildir ve zengin embed render için kullanılmamalıdır. + +## Saklanan Render Biçimi + +Normalleştirilmiş/saklanan asistan içerik bloğu, yapılandırılmış bir `canvas` öğesidir: + +```json +{ + "type": "canvas", + "preview": { + "kind": "canvas", + "surface": "assistant_message", + "render": "url", + "viewId": "cv_123", + "url": "/__openclaw__/canvas/documents/cv_123/index.html", + "title": "Status", + "preferredHeight": 320 + } +} +``` + +Saklanan/render edilen zengin bloklar bu `canvas` biçimini doğrudan kullanır. `present_view` tanınmaz. diff --git a/docs/tr/tools/video-generation.md b/docs/tr/tools/video-generation.md index 6c0a71d14..5c230bace 100644 --- a/docs/tr/tools/video-generation.md +++ b/docs/tr/tools/video-generation.md @@ -1,25 +1,25 @@ --- read_when: - - Agent aracılığıyla video oluşturma + - Videoları agent aracılığıyla oluşturma - Video oluşturma sağlayıcılarını ve modellerini yapılandırma - '`video_generate` araç parametrelerini anlama' -summary: 12 sağlayıcı backend kullanarak metinden, görsellerden veya mevcut videolardan video oluşturma +summary: Metin, görseller veya mevcut videolardan 14 sağlayıcı arka ucunu kullanarak videolar oluşturun title: Video Oluşturma x-i18n: - generated_at: "2026-04-11T02:48:15Z" + generated_at: "2026-04-11T15:15:59Z" model: gpt-5.4 provider: openai - source_hash: 6848d03ef578181902517d068e8d9fe2f845e572a90481bbdf7bd9f1c591f245 + source_hash: 0ec159a0bbb6b8a030e68828c0a8bcaf40c8538ecf98bc8ff609dab9d0068263 source_path: tools/video-generation.md workflow: 15 --- # Video Oluşturma -OpenClaw agent'ları metin istemlerinden, referans görsellerden veya mevcut videolardan video oluşturabilir. On iki sağlayıcı backend desteklenir ve her birinin farklı model seçenekleri, girdi modları ve özellik kümeleri vardır. Agent, yapılandırmanıza ve kullanılabilir API anahtarlarına göre doğru sağlayıcıyı otomatik olarak seçer. +OpenClaw agent’ları metin istemlerinden, referans görsellerden veya mevcut videolardan videolar oluşturabilir. On dört sağlayıcı arka ucu desteklenir ve her birinin farklı model seçenekleri, giriş modları ve özellik kümeleri vardır. Agent, yapılandırmanıza ve kullanılabilir API anahtarlarına göre doğru sağlayıcıyı otomatik olarak seçer. -`video_generate` aracı yalnızca en az bir video oluşturma sağlayıcısı kullanılabilir olduğunda görünür. Agent araçlarınızda bunu görmüyorsanız bir sağlayıcı API anahtarı ayarlayın veya `agents.defaults.videoGenerationModel` yapılandırın. +`video_generate` aracı yalnızca en az bir video oluşturma sağlayıcısı kullanılabilir olduğunda görünür. Agent araçlarınızda bunu görmüyorsanız bir sağlayıcı API anahtarı ayarlayın veya `agents.defaults.videoGenerationModel` yapılandırmasını yapın. OpenClaw, video oluşturmayı üç çalışma zamanı modu olarak ele alır: @@ -28,8 +28,7 @@ OpenClaw, video oluşturmayı üç çalışma zamanı modu olarak ele alır: - istek bir veya daha fazla referans görsel içerdiğinde `imageToVideo` - istek bir veya daha fazla referans video içerdiğinde `videoToVideo` -Sağlayıcılar bu modların herhangi bir alt kümesini destekleyebilir. Araç, gönderimden önce etkin -modu doğrular ve desteklenen modları `action=list` içinde bildirir. +Sağlayıcılar bu modların herhangi bir alt kümesini destekleyebilir. Araç, gönderimden önce etkin modu doğrular ve desteklenen modları `action=list` içinde bildirir. ## Hızlı başlangıç @@ -45,35 +44,35 @@ export GEMINI_API_KEY="your-key" openclaw config set agents.defaults.videoGenerationModel.primary "google/veo-3.1-fast-generate-preview" ``` -3. Agent'a sorun: +3. Agent’a sorun: > Gün batımında sörf yapan dost canlısı bir ıstakozun 5 saniyelik sinematik bir videosunu oluştur. -Agent `video_generate` aracını otomatik olarak çağırır. Araç allowlist ayarlaması gerekmez. +Agent, `video_generate` aracını otomatik olarak çağırır. Araç izin listesi gerekmez. -## Video oluşturduğunuzda ne olur +## Bir video oluşturduğunuzda ne olur -Video oluşturma eşzamansızdır. Agent bir oturum içinde `video_generate` çağırdığında: +Video oluşturma eşzamansızdır. Agent bir oturumda `video_generate` çağırdığında: 1. OpenClaw isteği sağlayıcıya gönderir ve hemen bir görev kimliği döndürür. -2. Sağlayıcı işi arka planda işler (genellikle sağlayıcıya ve çözünürlüğe bağlı olarak 30 saniye ile 5 dakika arasında). +2. Sağlayıcı işi arka planda işler (genellikle sağlayıcıya ve çözünürlüğe bağlı olarak 30 saniye ila 5 dakika). 3. Video hazır olduğunda OpenClaw aynı oturumu dahili bir tamamlanma olayıyla uyandırır. 4. Agent tamamlanan videoyu özgün konuşmaya geri gönderir. -Bir iş sürerken aynı oturumdaki yinelenen `video_generate` çağrıları yeni bir oluşturma başlatmak yerine geçerli görev durumunu döndürür. CLI üzerinden ilerlemeyi denetlemek için `openclaw tasks list` veya `openclaw tasks show ` kullanın. +Bir iş devam ederken, aynı oturumdaki yinelenen `video_generate` çağrıları yeni bir oluşturma başlatmak yerine mevcut görev durumunu döndürür. CLI üzerinden ilerlemeyi denetlemek için `openclaw tasks list` veya `openclaw tasks show ` kullanın. -Oturum destekli agent çalıştırmalarının dışında (örneğin doğrudan araç çağrıları), araç satır içi oluşturmaya fallback yapar ve son medya yolunu aynı tur içinde döndürür. +Oturum destekli agent çalıştırmalarının dışında (örneğin doğrudan araç çağrıları), araç satır içi oluşturmaya geri döner ve son medya yolunu aynı turda döndürür. ### Görev yaşam döngüsü Her `video_generate` isteği dört durumdan geçer: -1. **queued** -- görev oluşturuldu, sağlayıcının kabul etmesi bekleniyor. -2. **running** -- sağlayıcı işliyor (genellikle sağlayıcıya ve çözünürlüğe bağlı olarak 30 saniye ile 5 dakika arasında). -3. **succeeded** -- video hazır; agent uyanır ve videoyu konuşmaya gönderir. +1. **queued** -- görev oluşturuldu, sağlayıcının bunu kabul etmesi bekleniyor. +2. **running** -- sağlayıcı işliyor (genellikle sağlayıcıya ve çözünürlüğe bağlı olarak 30 saniye ila 5 dakika). +3. **succeeded** -- video hazır; agent uyanır ve bunu konuşmaya gönderir. 4. **failed** -- sağlayıcı hatası veya zaman aşımı; agent hata ayrıntılarıyla uyanır. -CLI üzerinden durumu denetleyin: +CLI’den durumu denetleyin: ```bash openclaw tasks list @@ -81,119 +80,173 @@ openclaw tasks show openclaw tasks cancel ``` -Yinelenme önleme: geçerli oturum için bir video görevi zaten `queued` veya `running` durumundaysa, `video_generate` yeni bir görev başlatmak yerine mevcut görev durumunu döndürür. Yeni bir oluşturmayı tetiklemeden açıkça denetlemek için `action: "status"` kullanın. +Yinelenenleri önleme: geçerli oturum için bir video görevi zaten `queued` veya `running` durumundaysa, `video_generate` yeni bir görev başlatmak yerine mevcut görev durumunu döndürür. Yeni bir oluşturmayı tetiklemeden açıkça denetlemek için `action: "status"` kullanın. ## Desteklenen sağlayıcılar -| Sağlayıcı | Varsayılan model | Metin | Görsel ref | Video ref | API anahtarı | -| --------- | ------------------------------- | ----- | ----------------- | ---------------- | ---------------------------------------- | -| Alibaba | `wan2.6-t2v` | Evet | Evet (uzak URL) | Evet (uzak URL) | `MODELSTUDIO_API_KEY` | -| BytePlus | `seedance-1-0-lite-t2v-250428` | Evet | 1 görsel | Hayır | `BYTEPLUS_API_KEY` | -| ComfyUI | `workflow` | Evet | 1 görsel | Hayır | `COMFY_API_KEY` veya `COMFY_CLOUD_API_KEY` | -| fal | `fal-ai/minimax/video-01-live` | Evet | 1 görsel | Hayır | `FAL_KEY` | -| Google | `veo-3.1-fast-generate-preview` | Evet | 1 görsel | 1 video | `GEMINI_API_KEY` | -| MiniMax | `MiniMax-Hailuo-2.3` | Evet | 1 görsel | Hayır | `MINIMAX_API_KEY` | -| OpenAI | `sora-2` | Evet | 1 görsel | 1 video | `OPENAI_API_KEY` | -| Qwen | `wan2.6-t2v` | Evet | Evet (uzak URL) | Evet (uzak URL) | `QWEN_API_KEY` | -| Runway | `gen4.5` | Evet | 1 görsel | 1 video | `RUNWAYML_API_SECRET` | -| Together | `Wan-AI/Wan2.2-T2V-A14B` | Evet | 1 görsel | Hayır | `TOGETHER_API_KEY` | -| Vydra | `veo3` | Evet | 1 görsel (`kling`) | Hayır | `VYDRA_API_KEY` | -| xAI | `grok-imagine-video` | Evet | 1 görsel | 1 video | `XAI_API_KEY` | +| Sağlayıcı | Varsayılan model | Metin | Görsel ref. | Video ref. | API anahtarı | +| --------------------- | ------------------------------- | ----- | ---------------------------------------------------- | ---------------- | ---------------------------------------- | +| Alibaba | `wan2.6-t2v` | Evet | Evet (uzak URL) | Evet (uzak URL) | `MODELSTUDIO_API_KEY` | +| BytePlus (1.0) | `seedance-1-0-pro-250528` | Evet | En fazla 2 görsel (yalnızca I2V modelleri; ilk + son kare) | Hayır | `BYTEPLUS_API_KEY` | +| BytePlus Seedance 1.5 | `seedance-1-5-pro-251215` | Evet | En fazla 2 görsel (rol ile ilk + son kare) | Hayır | `BYTEPLUS_API_KEY` | +| BytePlus Seedance 2.0 | `dreamina-seedance-2-0-260128` | Evet | En fazla 9 referans görsel | En fazla 3 video | `BYTEPLUS_API_KEY` | +| ComfyUI | `workflow` | Evet | 1 görsel | Hayır | `COMFY_API_KEY` veya `COMFY_CLOUD_API_KEY` | +| fal | `fal-ai/minimax/video-01-live` | Evet | 1 görsel | Hayır | `FAL_KEY` | +| Google | `veo-3.1-fast-generate-preview` | Evet | 1 görsel | 1 video | `GEMINI_API_KEY` | +| MiniMax | `MiniMax-Hailuo-2.3` | Evet | 1 görsel | Hayır | `MINIMAX_API_KEY` | +| OpenAI | `sora-2` | Evet | 1 görsel | 1 video | `OPENAI_API_KEY` | +| Qwen | `wan2.6-t2v` | Evet | Evet (uzak URL) | Evet (uzak URL) | `QWEN_API_KEY` | +| Runway | `gen4.5` | Evet | 1 görsel | 1 video | `RUNWAYML_API_SECRET` | +| Together | `Wan-AI/Wan2.2-T2V-A14B` | Evet | 1 görsel | Hayır | `TOGETHER_API_KEY` | +| Vydra | `veo3` | Evet | 1 görsel (`kling`) | Hayır | `VYDRA_API_KEY` | +| xAI | `grok-imagine-video` | Evet | 1 görsel | 1 video | `XAI_API_KEY` | Bazı sağlayıcılar ek veya alternatif API anahtarı ortam değişkenlerini kabul eder. Ayrıntılar için ilgili [sağlayıcı sayfalarına](#related) bakın. -Çalışma zamanında kullanılabilir sağlayıcıları, modelleri ve -çalışma zamanı modlarını incelemek için `video_generate action=list` çalıştırın. +Çalışma zamanında kullanılabilir sağlayıcıları, modelleri ve çalışma zamanı modlarını incelemek için `video_generate action=list` çalıştırın. ### Bildirilmiş yetenek matrisi -Bu, `video_generate`, sözleşme testleri -ve paylaşılan canlı tarama tarafından kullanılan açık mod sözleşmesidir. +Bu, `video_generate`, sözleşme testleri ve paylaşılan canlı tarama tarafından kullanılan açık mod sözleşmesidir. -| Sağlayıcı | `generate` | `imageToVideo` | `videoToVideo` | Bugünkü paylaşılan canlı hatlar | +| Sağlayıcı | `generate` | `imageToVideo` | `videoToVideo` | Güncel paylaşılan canlı kanallar | | --------- | ---------- | -------------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | -| Alibaba | Evet | Evet | Evet | `generate`, `imageToVideo`; `videoToVideo` atlanır çünkü bu sağlayıcı uzak `http(s)` video URL'leri gerektirir | +| Alibaba | Evet | Evet | Evet | `generate`, `imageToVideo`; `videoToVideo` atlanır çünkü bu sağlayıcı uzak `http(s)` video URL’leri gerektirir | | BytePlus | Evet | Evet | Hayır | `generate`, `imageToVideo` | -| ComfyUI | Evet | Evet | Hayır | Paylaşılan taramada yok; iş akışına özgü kapsam Comfy testleriyle birlikte yaşar | +| ComfyUI | Evet | Evet | Hayır | Paylaşılan taramada yok; iş akışına özel kapsam Comfy testlerinde bulunur | | fal | Evet | Evet | Hayır | `generate`, `imageToVideo` | -| Google | Evet | Evet | Evet | `generate`, `imageToVideo`; paylaşılan `videoToVideo` atlanır çünkü mevcut buffer destekli Gemini/Veo taraması bu girdiyi kabul etmez | +| Google | Evet | Evet | Evet | `generate`, `imageToVideo`; paylaşılan `videoToVideo` atlanır çünkü mevcut arabellek destekli Gemini/Veo taraması bu girdiyi kabul etmez | | MiniMax | Evet | Evet | Hayır | `generate`, `imageToVideo` | -| OpenAI | Evet | Evet | Evet | `generate`, `imageToVideo`; paylaşılan `videoToVideo` atlanır çünkü bu organizasyon/girdi yolu şu anda sağlayıcı tarafı inpaint/remix erişimi gerektirir | -| Qwen | Evet | Evet | Evet | `generate`, `imageToVideo`; `videoToVideo` atlanır çünkü bu sağlayıcı uzak `http(s)` video URL'leri gerektirir | -| Runway | Evet | Evet | Evet | `generate`, `imageToVideo`; `videoToVideo` yalnızca seçili model `runway/gen4_aleph` olduğunda çalışır | +| OpenAI | Evet | Evet | Evet | `generate`, `imageToVideo`; paylaşılan `videoToVideo` atlanır çünkü bu kuruluş/girdi yolu şu anda sağlayıcı tarafı inpaint/remix erişimi gerektirir | +| Qwen | Evet | Evet | Evet | `generate`, `imageToVideo`; `videoToVideo` atlanır çünkü bu sağlayıcı uzak `http(s)` video URL’leri gerektirir | +| Runway | Evet | Evet | Evet | `generate`, `imageToVideo`; `videoToVideo` yalnızca seçilen model `runway/gen4_aleph` olduğunda çalışır | | Together | Evet | Evet | Hayır | `generate`, `imageToVideo` | -| Vydra | Evet | Evet | Hayır | `generate`; paylaşılan `imageToVideo` atlanır çünkü paketlenmiş `veo3` yalnızca metindir ve paketlenmiş `kling` uzak görsel URL'si gerektirir | -| xAI | Evet | Evet | Evet | `generate`, `imageToVideo`; `videoToVideo` atlanır çünkü bu sağlayıcı şu anda uzak bir MP4 URL'si gerektirir | +| Vydra | Evet | Evet | Hayır | `generate`; paylaşılan `imageToVideo` atlanır çünkü paketlenmiş `veo3` yalnızca metindir ve paketlenmiş `kling` uzak bir görsel URL’si gerektirir | +| xAI | Evet | Evet | Evet | `generate`, `imageToVideo`; `videoToVideo` atlanır çünkü bu sağlayıcı şu anda uzak bir MP4 URL’si gerektirir | ## Araç parametreleri -### Gerekli +### Zorunlu | Parametre | Tür | Açıklama | | --------- | ------ | ------------------------------------------------------------------------- | -| `prompt` | string | Oluşturulacak videonun metin açıklaması (`action: "generate"` için gereklidir) | +| `prompt` | string | Oluşturulacak videonun metin açıklaması (`action: "generate"` için zorunludur) | ### İçerik girdileri -| Parametre | Tür | Açıklama | -| --------- | -------- | ---------------------------------- | -| `image` | string | Tek referans görsel (yol veya URL) | -| `images` | string[] | Birden çok referans görsel (en fazla 5) | -| `video` | string | Tek referans video (yol veya URL) | -| `videos` | string[] | Birden çok referans video (en fazla 4) | +| Parametre | Tür | Açıklama | +| ------------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `image` | string | Tek referans görseli (yol veya URL) | +| `images` | string[] | Birden çok referans görseli (en fazla 9) | +| `imageRoles` | string[] | Birleşik görsel listesine paralel, konuma göre isteğe bağlı rol ipuçları. Kanonik değerler: `first_frame`, `last_frame`, `reference_image` | +| `video` | string | Tek referans videosu (yol veya URL) | +| `videos` | string[] | Birden çok referans videosu (en fazla 4) | +| `videoRoles` | string[] | Birleşik video listesine paralel, konuma göre isteğe bağlı rol ipuçları. Kanonik değer: `reference_video` | +| `audioRef` | string | Tek referans sesi (yol veya URL). Sağlayıcı ses girdilerini desteklediğinde örneğin arka plan müziği veya ses referansı için kullanılır | +| `audioRefs` | string[] | Birden çok referans ses (en fazla 3) | +| `audioRoles` | string[] | Birleşik ses listesine paralel, konuma göre isteğe bağlı rol ipuçları. Kanonik değer: `reference_audio` | + +Rol ipuçları sağlayıcıya olduğu gibi iletilir. Kanonik değerler +`VideoGenerationAssetRole` birleşiminden gelir ancak sağlayıcılar ek +rol dizelerini kabul edebilir. `*Roles` dizileri karşılık gelen +referans listesinden daha fazla giriş içermemelidir; bire bir hizalama +hataları açık bir hatayla başarısız olur. +Bir yuvayı ayarsız bırakmak için boş bir dize kullanın. ### Stil denetimleri -| Parametre | Tür | Açıklama | -| ---------------- | ------- | ------------------------------------------------------------------------ | -| `aspectRatio` | string | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9` | -| `resolution` | string | `480P`, `720P`, `768P` veya `1080P` | -| `durationSeconds`| number | Hedef süre saniye cinsinden (sağlayıcının desteklediği en yakın değere yuvarlanır) | -| `size` | string | Sağlayıcı desteklediğinde boyut ipucu | -| `audio` | boolean | Desteklendiğinde oluşturulan sesi etkinleştirir | -| `watermark` | boolean | Desteklendiğinde sağlayıcı filigranını açar/kapatır | +| Parametre | Tür | Açıklama | +| ----------------- | ------- | ----------------------------------------------------------------------------------------- | +| `aspectRatio` | string | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9` veya `adaptive` | +| `resolution` | string | `480P`, `720P`, `768P` veya `1080P` | +| `durationSeconds` | number | Saniye cinsinden hedef süre (sağlayıcının desteklediği en yakın değere yuvarlanır) | +| `size` | string | Sağlayıcı desteklediğinde boyut ipucu | +| `audio` | boolean | Desteklendiğinde çıktıda oluşturulan sesi etkinleştirir. `audioRef*` (girdiler) ile ayrıdır | +| `watermark` | boolean | Desteklendiğinde sağlayıcı filigranını açıp kapatır | + +`adaptive`, sağlayıcıya özgü bir bekçi değerdir: yeteneklerinde `adaptive` +bildiren sağlayıcılara olduğu gibi iletilir (örneğin BytePlus +Seedance bunu giriş görseli boyutlarından oranı otomatik algılamak için +kullanır). Bunu bildirmeyen sağlayıcılar değeri araç sonucundaki +`details.ignoredOverrides` üzerinden gösterir, böylece düşürülmesi görünür olur. ### Gelişmiş -| Parametre | Tür | Açıklama | -| --------- | ------ | ---------------------------------------------------- | -| `action` | string | `"generate"` (varsayılan), `"status"` veya `"list"` | -| `model` | string | Sağlayıcı/model geçersiz kılması (ör. `runway/gen4.5`) | -| `filename`| string | Çıktı dosya adı ipucu | +| Parametre | Tür | Açıklama | +| ----------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `action` | string | `"generate"` (varsayılan), `"status"` veya `"list"` | +| `model` | string | Sağlayıcı/model geçersiz kılması (ör. `runway/gen4.5`) | +| `filename` | string | Çıktı dosya adı ipucu | +| `providerOptions` | object | JSON nesnesi olarak sağlayıcıya özgü seçenekler (ör. `{"seed": 42, "draft": true}`). Yazılı bir şema bildiren sağlayıcılar anahtarları ve türleri doğrular; bilinmeyen anahtarlar veya uyuşmazlıklar geri dönüş sırasında adayın atlanmasına neden olur. Bildirilmiş bir şeması olmayan sağlayıcılar seçenekleri olduğu gibi alır. Her sağlayıcının ne kabul ettiğini görmek için `video_generate action=list` çalıştırın | -Tüm sağlayıcılar tüm parametreleri desteklemez. OpenClaw zaten süreyi en yakın sağlayıcı destekli değere normalleştirir; ayrıca yedek sağlayıcı farklı bir kontrol yüzeyi sunduğunda boyuttan en-boy oranına gibi çevrilmiş geometri ipuçlarını da yeniden eşler. Gerçekten desteklenmeyen geçersiz kılmalar en iyi çabayla yok sayılır ve araç sonucunda uyarı olarak bildirilir. Katı yetenek sınırları (örneğin çok fazla referans girdisi) gönderimden önce başarısız olur. +Tüm sağlayıcılar tüm parametreleri desteklemez. OpenClaw süreyi zaten +sağlayıcının desteklediği en yakın değere normalize eder ve ayrıca bir geri dönüş +sağlayıcısı farklı bir denetim yüzeyi sunduğunda boyuttan en-boy oranına gibi +çevrilmiş geometri ipuçlarını yeniden eşler. Gerçekten desteklenmeyen +geçersiz kılmalar, mümkün olan en iyi şekilde yok sayılır ve araç sonucunda uyarı +olarak bildirilir. Sert yetenek sınırları (örneğin çok fazla referans girdisi) +gönderimden önce başarısız olur. -Araç sonuçları uygulanan ayarları bildirir. OpenClaw, sağlayıcı fallback'i sırasında süreyi veya geometriyi yeniden eşlediğinde döndürülen `durationSeconds`, `size`, `aspectRatio` ve `resolution` değerleri gönderilenleri yansıtır ve `details.normalization` istekten uygulanana yapılan çeviriyi kaydeder. +Araç sonuçları uygulanan ayarları bildirir. OpenClaw, sağlayıcı geri dönüşü sırasında +süreyi veya geometriyi yeniden eşlediğinde, döndürülen `durationSeconds`, `size`, +`aspectRatio` ve `resolution` değerleri gönderilenleri yansıtır ve +`details.normalization` istenenden uygulanana çeviriyi yakalar. Referans girdileri çalışma zamanı modunu da seçer: - Referans medya yok: `generate` - Herhangi bir görsel referansı: `imageToVideo` - Herhangi bir video referansı: `videoToVideo` +- Referans ses girdileri çözümlenen modu değiştirmez; görsel/video referanslarının seçtiği modun üzerine uygulanır ve yalnızca `maxInputAudios` bildiren sağlayıcılarla çalışır Karışık görsel ve video referansları kararlı bir paylaşılan yetenek yüzeyi değildir. İstek başına tek bir referans türünü tercih edin. +#### Geri dönüş ve yazılı seçenekler + +Bazı yetenek denetimleri araç sınırı yerine geri dönüş katmanında uygulanır; böylece +birincil sağlayıcının sınırlarını aşan bir istek yine de yetenekli bir geri dönüşte +çalışabilir: + +- Etkin aday `maxInputAudios` bildirmiyorsa (veya bunu `0` olarak + bildiriyorsa), istek ses referansları içerdiğinde atlanır ve + sonraki aday denenir. +- Etkin adayın `maxDurationSeconds` değeri istenen + `durationSeconds` değerinin altındaysa ve aday bir + `supportedDurationSeconds` listesi bildirmiyorsa, atlanır. +- İstek `providerOptions` içeriyorsa ve etkin aday + açıkça yazılı bir `providerOptions` şeması bildiriyorsa, sağlanan + anahtarlar şemada yoksa veya değer türleri uyuşmuyorsa aday + atlanır. Henüz bir şema bildirmemiş sağlayıcılar seçenekleri + olduğu gibi alır (geri uyumlu geçiş). Bir sağlayıcı + boş bir şema bildirerek tüm sağlayıcı seçeneklerinden açıkça vazgeçebilir + (`capabilities.providerOptions: {}`); bu da + tür uyuşmazlığıyla aynı atlamaya neden olur. + +Bir istekteki ilk atlama nedeni `warn` düzeyinde günlüğe kaydedilir; böylece operatörler +birincil sağlayıcılarının ne zaman pas geçildiğini görür; sonraki atlamalar uzun geri dönüş +zincirlerini sessiz tutmak için `debug` düzeyinde günlüğe kaydedilir. Her aday atlanırsa, +birleştirilmiş hata her biri için atlama nedenini içerir. + ## Eylemler -- **generate** (varsayılan) -- verilen istem ve isteğe bağlı referans girdilerinden bir video oluşturur. +- **generate** (varsayılan) -- verilen istem ve isteğe bağlı referans girdilerinden video oluşturur. - **status** -- başka bir oluşturma başlatmadan geçerli oturum için devam eden video görevinin durumunu denetler. - **list** -- kullanılabilir sağlayıcıları, modelleri ve yeteneklerini gösterir. ## Model seçimi -Video oluşturulurken OpenClaw modeli şu sırayla çözümler: +Bir video oluştururken OpenClaw modeli şu sırayla çözümler: -1. **`model` araç parametresi** -- agent bunu çağrıda belirtirse. +1. **`model` araç parametresi** -- agent çağrıda bir tane belirtirse. 2. **`videoGenerationModel.primary`** -- yapılandırmadan. 3. **`videoGenerationModel.fallbacks`** -- sırayla denenir. -4. **Otomatik algılama** -- geçerli kimlik doğrulamaya sahip sağlayıcıları kullanır; önce mevcut varsayılan sağlayıcı, ardından kalan sağlayıcılar alfabetik sırayla. +4. **Otomatik algılama** -- geçerli kimlik doğrulamaya sahip sağlayıcıları kullanır; önce geçerli varsayılan sağlayıcı, ardından kalan sağlayıcılar alfabetik sırayla. -Bir sağlayıcı başarısız olursa sıradaki aday otomatik olarak denenir. Tüm adaylar başarısız olursa hata, her denemedeki ayrıntıları içerir. +Bir sağlayıcı başarısız olursa sonraki aday otomatik olarak denenir. Tüm adaylar başarısız olursa, hata her denemeden ayrıntılar içerir. Video oluşturmanın yalnızca açık `model`, `primary` ve `fallbacks` -girdilerini kullanmasını istiyorsanız `agents.defaults.mediaGenerationAutoProviderFallback: false` -ayarını yapın. +girdilerini kullanmasını istiyorsanız `agents.defaults.mediaGenerationAutoProviderFallback: false` ayarlayın. ```json5 { @@ -208,55 +261,29 @@ ayarını yapın. } ``` -fal üzerindeki HeyGen video-agent şu şekilde sabitlenebilir: - -```json5 -{ - agents: { - defaults: { - videoGenerationModel: { - primary: "fal/fal-ai/heygen/v2/video-agent", - }, - }, - }, -} -``` - -fal üzerindeki Seedance 2.0 şu şekilde sabitlenebilir: - -```json5 -{ - agents: { - defaults: { - videoGenerationModel: { - primary: "fal/bytedance/seedance-2.0/fast/text-to-video", - }, - }, - }, -} -``` - ## Sağlayıcı notları -| Sağlayıcı | Notlar | -| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Alibaba | DashScope/Model Studio eşzamansız uç noktasını kullanır. Referans görseller ve videolar uzak `http(s)` URL'leri olmalıdır. | -| BytePlus | Yalnızca tek görsel referansı. | -| ComfyUI | İş akışı güdümlü yerel veya bulut yürütme. Yapılandırılan grafik üzerinden metinden videoya ve görselden videoya desteği sunar. | -| fal | Uzun süren işler için kuyruk destekli akış kullanır. Yalnızca tek görsel referansı. HeyGen video-agent ile Seedance 2.0 metinden videoya ve görselden videoya model başvurularını içerir. | -| Google | Gemini/Veo kullanır. Bir görsel veya bir video referansını destekler. | -| MiniMax | Yalnızca tek görsel referansı. | -| OpenAI | Yalnızca `size` geçersiz kılması iletilir. Diğer stil geçersiz kılmaları (`aspectRatio`, `resolution`, `audio`, `watermark`) uyarıyla birlikte yok sayılır. | -| Qwen | Alibaba ile aynı DashScope backend'ini kullanır. Referans girdileri uzak `http(s)` URL'leri olmalıdır; yerel dosyalar önceden reddedilir. | -| Runway | Data URI'leri üzerinden yerel dosyaları destekler. Videodan videoya için `runway/gen4_aleph` gerekir. Yalnızca metin çalıştırmaları `16:9` ve `9:16` en-boy oranlarını sunar. | -| Together | Yalnızca tek görsel referansı. | -| Vydra | Kimlik doğrulamayı düşüren yönlendirmeleri önlemek için doğrudan `https://www.vydra.ai/api/v1` kullanır. `veo3` paketlenmiş olarak yalnızca metinden videoya sunulur; `kling` uzak bir görsel URL'si gerektirir. | -| xAI | Metinden videoya, görselden videoya ve uzak video düzenleme/uzatma akışlarını destekler. | +| Sağlayıcı | Notlar | +| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Alibaba | DashScope/Model Studio eşzamansız uç noktasını kullanır. Referans görseller ve videolar uzak `http(s)` URL’leri olmalıdır. | +| BytePlus (1.0) | Sağlayıcı kimliği `byteplus`. Modeller: `seedance-1-0-pro-250528` (varsayılan), `seedance-1-0-pro-t2v-250528`, `seedance-1-0-pro-fast-251015`, `seedance-1-0-lite-t2v-250428`, `seedance-1-0-lite-i2v-250428`. T2V modelleri (`*-t2v-*`) görsel girdilerini kabul etmez; I2V modelleri ve genel `*-pro-*` modelleri tek bir referans görseli (ilk kare) destekler. Görseli konumsal olarak geçirin veya `role: "first_frame"` ayarlayın. Bir görsel sağlandığında T2V model kimlikleri otomatik olarak karşılık gelen I2V varyantına geçirilir. Desteklenen `providerOptions` anahtarları: `seed` (number), `draft` (boolean, 480p’yi zorlar), `camera_fixed` (boolean). | +| BytePlus Seedance 1.5 | [`@openclaw/byteplus-modelark`](https://www.npmjs.com/package/@openclaw/byteplus-modelark) plugin’ini gerektirir. Sağlayıcı kimliği `byteplus-seedance15`. Model: `seedance-1-5-pro-251215`. Birleşik `content[]` API’sini kullanır. En fazla 2 giriş görselini destekler (first_frame + last_frame). Tüm girdiler uzak `https://` URL’leri olmalıdır. Her görselde `role: "first_frame"` / `"last_frame"` ayarlayın veya görselleri konumsal olarak geçirin. `aspectRatio: "adaptive"` giriş görselinden oranı otomatik algılar. `audio: true`, `generate_audio` ile eşlenir. `providerOptions.seed` (number) iletilir. | +| BytePlus Seedance 2.0 | [`@openclaw/byteplus-modelark`](https://www.npmjs.com/package/@openclaw/byteplus-modelark) plugin’ini gerektirir. Sağlayıcı kimliği `byteplus-seedance2`. Modeller: `dreamina-seedance-2-0-260128`, `dreamina-seedance-2-0-fast-260128`. Birleşik `content[]` API’sini kullanır. En fazla 9 referans görseli, 3 referans videosu ve 3 referans sesi destekler. Tüm girdiler uzak `https://` URL’leri olmalıdır. Her varlıkta `role` ayarlayın — desteklenen değerler: `"first_frame"`, `"last_frame"`, `"reference_image"`, `"reference_video"`, `"reference_audio"`. `aspectRatio: "adaptive"` giriş görselinden oranı otomatik algılar. `audio: true`, `generate_audio` ile eşlenir. `providerOptions.seed` (number) iletilir. | +| ComfyUI | İş akışı odaklı yerel veya bulut yürütme. Yapılandırılmış grafik üzerinden metinden videoya ve görselden videoya destekler. | +| fal | Uzun süren işler için kuyruk destekli akış kullanır. Yalnızca tek görsel referansı. | +| Google | Gemini/Veo kullanır. Bir görsel veya bir video referansını destekler. | +| MiniMax | Yalnızca tek görsel referansı. | +| OpenAI | Yalnızca `size` geçersiz kılması iletilir. Diğer stil geçersiz kılmaları (`aspectRatio`, `resolution`, `audio`, `watermark`) bir uyarıyla yok sayılır. | +| Qwen | Alibaba ile aynı DashScope arka ucunu kullanır. Referans girdileri uzak `http(s)` URL’leri olmalıdır; yerel dosyalar peşinen reddedilir. | +| Runway | Veri URI’leri aracılığıyla yerel dosyaları destekler. Videodan videoya için `runway/gen4_aleph` gerekir. Yalnızca metin çalıştırmaları `16:9` ve `9:16` en-boy oranlarını sunar. | +| Together | Yalnızca tek görsel referansı. | +| Vydra | Kimlik doğrulamayı düşüren yönlendirmelerden kaçınmak için doğrudan `https://www.vydra.ai/api/v1` kullanır. `veo3` paketlenmiş olarak yalnızca metinden videoya sunulur; `kling` uzak bir görsel URL’si gerektirir. | +| xAI | Metinden videoya, görselden videoya ve uzak video düzenleme/uzatma akışlarını destekler. | ## Sağlayıcı yetenek modları Paylaşılan video oluşturma sözleşmesi artık sağlayıcıların yalnızca düz toplu sınırlar yerine -moda özgü yetenekleri bildirmesine izin verir. Yeni sağlayıcı +moda özgü yetenekler bildirmesine izin veriyor. Yeni sağlayıcı uygulamaları açık mod bloklarını tercih etmelidir: ```typescript @@ -282,10 +309,10 @@ capabilities: { ``` `maxInputImages` ve `maxInputVideos` gibi düz toplu alanlar, -dönüştürme modu desteğini bildirmek için yeterli değildir. Sağlayıcılar -`generate`, `imageToVideo` ve `videoToVideo` modlarını açıkça bildirmelidir; böylece canlı testler, -sözleşme testleri ve paylaşılan `video_generate` aracı mod desteğini -deterministik biçimde doğrulayabilir. +dönüştürme modu desteğini duyurmak için yeterli değildir. Sağlayıcılar, +canlı testlerin, sözleşme testlerinin ve paylaşılan `video_generate` aracının +mod desteğini deterministik biçimde doğrulayabilmesi için +`generate`, `imageToVideo` ve `videoToVideo` alanlarını açıkça bildirmelidir. ## Canlı testler @@ -302,17 +329,17 @@ pnpm test:live:media video ``` Bu canlı dosya eksik sağlayıcı ortam değişkenlerini `~/.profile` içinden yükler, -varsayılan olarak kayıtlı kimlik doğrulama profillerinden önce canlı/env API anahtarlarını tercih eder -ve yerel medya ile güvenli biçimde çalıştırabildiği bildirilmiş modları yürütür: +varsayılan olarak kaydedilmiş kimlik doğrulama profilleri yerine canlı/ortam API anahtarlarını +tercih eder ve yerel medya ile güvenle çalıştırabildiği bildirilmiş modları yürütür: -- Taramadaki her sağlayıcı için `generate` +- taramadaki her sağlayıcı için `generate` - `capabilities.imageToVideo.enabled` olduğunda `imageToVideo` - `capabilities.videoToVideo.enabled` olduğunda ve sağlayıcı/model - paylaşılan taramada buffer destekli yerel video girdisini kabul ettiğinde `videoToVideo` + paylaşılan taramada arabellek destekli yerel video girdisini kabul ettiğinde `videoToVideo` -Bugün paylaşılan `videoToVideo` canlı hattı şunları kapsar: +Bugün paylaşılan `videoToVideo` canlı kanalı şunu kapsar: -- yalnızca `runway`, ancak siz `runway/gen4_aleph` seçtiğinizde +- yalnızca `runway/gen4_aleph` seçtiğinizde `runway` ## Yapılandırma @@ -339,8 +366,8 @@ openclaw config set agents.defaults.videoGenerationModel.primary "qwen/wan2.6-t2 ## İlgili -- [Tools Overview](/tr/tools) -- [Background Tasks](/tr/automation/tasks) -- eşzamansız video oluşturma için görev takibi +- [Araçlara Genel Bakış](/tr/tools) +- [Arka Plan Görevleri](/tr/automation/tasks) -- eşzamansız video oluşturma için görev izleme - [Alibaba Model Studio](/tr/providers/alibaba) - [BytePlus](/tr/concepts/model-providers#byteplus-international) - [ComfyUI](/tr/providers/comfy) @@ -353,5 +380,5 @@ openclaw config set agents.defaults.videoGenerationModel.primary "qwen/wan2.6-t2 - [Together AI](/tr/providers/together) - [Vydra](/tr/providers/vydra) - [xAI](/tr/providers/xai) -- [Configuration Reference](/tr/gateway/configuration-reference#agent-defaults) -- [Models](/tr/concepts/models) +- [Yapılandırma Başvurusu](/tr/gateway/configuration-reference#agent-defaults) +- [Modeller](/tr/concepts/models)