diff --git a/docs/tr/concepts/model-providers.md b/docs/tr/concepts/model-providers.md index 97687fd95..8d68b3f4f 100644 --- a/docs/tr/concepts/model-providers.md +++ b/docs/tr/concepts/model-providers.md @@ -1,14 +1,14 @@ --- read_when: - - Sağlayıcı bazında bir model kurulum başvurusuna ihtiyacınız var - - Model sağlayıcıları için örnek yapılandırmalara veya CLI katılım komutlarına ihtiyacınız var -summary: Örnek yapılandırmalar + CLI akışlarıyla model sağlayıcısı genel bakışı + - Sağlayıcı bazında model kurulumu başvuru kaynağına ihtiyacınız var + - Model sağlayıcıları için örnek yapılandırmalar veya CLI onboarding komutları istiyorsunuz +summary: Örnek yapılandırmalar + CLI akışları ile model sağlayıcısı genel bakışı title: Model Sağlayıcıları x-i18n: - generated_at: "2026-04-11T02:44:18Z" + generated_at: "2026-04-13T08:50:44Z" model: gpt-5.4 provider: openai - source_hash: 910ea7895e74c03910757d9d3e02825754b779b204eca7275b28422647ed0151 + source_hash: 66ba688c4b4366eec07667571e835d4cfeee684896e2ffae11d601b5fa0a4b98 source_path: concepts/model-providers.md workflow: 15 --- @@ -16,26 +16,26 @@ x-i18n: # Model sağlayıcıları Bu sayfa **LLM/model sağlayıcılarını** kapsar (WhatsApp/Telegram gibi sohbet kanallarını değil). -Model seçimi kuralları için bkz. [/concepts/models](/tr/concepts/models). +Model seçim kuralları için bkz. [/concepts/models](/tr/concepts/models). ## Hızlı kurallar -- Model başvuruları `provider/model` biçimini kullanır (örnek: `opencode/claude-opus-4-6`). -- `agents.defaults.models` ayarlarsanız, bu izin listesi haline gelir. +- Model başvuruları `provider/model` kullanır (örnek: `opencode/claude-opus-4-6`). +- `agents.defaults.models` ayarlarsanız, bu allowlist olur. - CLI yardımcıları: `openclaw onboard`, `openclaw models list`, `openclaw models set `. -- Geriye dönüş çalışma zamanı kuralları, bekleme süresi sondaları ve oturum geçersiz kılma kalıcılığı +- Yedek çalışma zamanı kuralları, cooldown probları ve oturum geçersiz kılma kalıcılığı [/concepts/model-failover](/tr/concepts/model-failover) içinde belgelenmiştir. -- `models.providers.*.models[].contextWindow` doğal model meta verisidir; +- `models.providers.*.models[].contextWindow` yerel model meta verisidir; `models.providers.*.models[].contextTokens` ise etkili çalışma zamanı sınırıdır. -- Sağlayıcı eklentileri `registerProvider({ catalog })` aracılığıyla model katalogları ekleyebilir; +- Provider Plugin'leri model kataloglarını `registerProvider({ catalog })` aracılığıyla ekleyebilir; OpenClaw bu çıktıyı `models.providers` içine birleştirir ve ardından `models.json` dosyasını yazar. -- Sağlayıcı bildirimleri `providerAuthEnvVars` ve - `providerAuthAliases` tanımlayabilir; böylece genel env tabanlı kimlik doğrulama yoklamaları ve sağlayıcı varyantlarının - eklenti çalışma zamanını yüklemesi gerekmez. Çekirdekte kalan env değişkeni eşlemesi artık - yalnızca eklenti olmayan/çekirdek sağlayıcılar ve birkaç genel öncelik durumu içindir; örneğin - Anthropic için önce API anahtarı kullanan katılım akışı. -- Sağlayıcı eklentileri ayrıca sağlayıcı çalışma zamanı davranışına da sahip olabilir: +- Provider manifest'leri `providerAuthEnvVars` ve + `providerAuthAliases` bildirebilir; böylece genel ortam tabanlı kimlik doğrulama probları ve sağlayıcı varyantları + Plugin çalışma zamanını yüklemek zorunda kalmaz. Geriye kalan çekirdek env-var eşlemesi artık + yalnızca Plugin olmayan/çekirdek sağlayıcılar ve Anthropic API anahtarı öncelikli onboarding gibi + birkaç genel öncelik durumu içindir. +- Provider Plugin'leri ayrıca sağlayıcı çalışma zamanı davranışını da sahiplenebilir: `normalizeModelId`, `normalizeTransport`, `normalizeConfig`, `applyNativeStreamingUsageCompat`, `resolveConfigApiKey`, `resolveSyntheticAuth`, `shouldDeferSyntheticProfileAuth`, @@ -51,192 +51,196 @@ Model seçimi kuralları için bkz. [/concepts/models](/tr/concepts/models). `isCacheTtlEligible`, `buildMissingAuthMessage`, `suppressBuiltInModel`, `augmentModelCatalog`, `isBinaryThinking`, `supportsXHighThinking`, `resolveDefaultThinkingLevel`, `applyConfigDefaults`, `isModernModelRef`, - `prepareRuntimeAuth`, `resolveUsageAuth`, `fetchUsageSnapshot`, ve + `prepareRuntimeAuth`, `resolveUsageAuth`, `fetchUsageSnapshot` ve `onModelSelected`. -- Not: sağlayıcı çalışma zamanı `capabilities` değeri, paylaşılan çalıştırıcı meta verisidir (sağlayıcı - ailesi, döküm/araç farklılıkları, taşıma/önbellek ipuçları). Bu, - bir eklentinin ne kaydettiğini açıklayan [genel yetenek modeli](/tr/plugins/architecture#public-capability-model) +- Not: provider çalışma zamanı `capabilities`, paylaşılan çalıştırıcı meta verisidir (sağlayıcı + ailesi, transkript/araçlama özellikleri, taşıma/önbellek ipuçları). Bu, + bir Plugin'in ne kaydettiğini açıklayan [genel yetenek modeli](/tr/plugins/architecture#public-capability-model) ile aynı şey değildir (metin çıkarımı, konuşma vb.). -- Paketlenmiş `codex` sağlayıcısı, paketlenmiş Codex aracı koşumuyla eşleştirilmiştir. - Codex'e ait oturum açma, model keşfi, doğal iş parçacığı sürdürme ve - uygulama sunucusu yürütmesi istediğinizde `codex/gpt-*` kullanın. Düz `openai/gpt-*` başvuruları ise +- Paketlenmiş `codex` sağlayıcısı, paketlenmiş Codex ajan koşum takımı ile eşleştirilmiştir. + Codex'e ait oturum açma, model keşfi, yerel iş parçacığı sürdürme ve + uygulama sunucusu yürütmesi istediğinizde `codex/gpt-*` kullanın. Düz `openai/gpt-*` başvuruları OpenAI sağlayıcısını ve normal OpenClaw sağlayıcı taşımasını kullanmaya devam eder. - Yalnızca Codex dağıtımları otomatik PI geri dönüşünü + Yalnızca Codex dağıtımları, otomatik PI geri dönüşünü `agents.defaults.embeddedHarness.fallback: "none"` ile devre dışı bırakabilir; bkz. [Codex Harness](/tr/plugins/codex-harness). -## Eklentiye ait sağlayıcı davranışı +## Plugin'e ait sağlayıcı davranışı -Sağlayıcı eklentileri artık sağlayıcıya özgü mantığın çoğuna sahip olabilirken, OpenClaw +Provider Plugin'leri artık sağlayıcıya özgü mantığın büyük kısmını sahiplenebilirken OpenClaw genel çıkarım döngüsünü korur. Tipik ayrım: -- `auth[].run` / `auth[].runNonInteractive`: sağlayıcı, `openclaw onboard`, `openclaw models auth` ve etkileşimsiz kurulum için - katılım/oturum açma akışlarına sahip olur -- `wizard.setup` / `wizard.modelPicker`: sağlayıcı, kimlik doğrulama seçimi etiketlerine, - eski takma adlara, katılım izin listesi ipuçlarına ve katılım/model seçicilerindeki kurulum girdilerine sahip olur +- `auth[].run` / `auth[].runNonInteractive`: sağlayıcı, `openclaw onboard`, `openclaw models auth` ve başsız kurulum için onboarding/oturum açma + akışlarını sahiplenir +- `wizard.setup` / `wizard.modelPicker`: sağlayıcı, kimlik doğrulama seçeneği etiketlerini, + eski takma adları, onboarding allowlist ipuçlarını ve onboarding/model seçicilerdeki kurulum girişlerini sahiplenir - `catalog`: sağlayıcı `models.providers` içinde görünür -- `normalizeModelId`: sağlayıcı, arama veya kurallı hale getirme öncesinde - eski/önizleme model kimliklerini normalleştirir -- `normalizeTransport`: sağlayıcı, genel model derlemesi öncesinde taşıma ailesi `api` / `baseUrl` değerlerini - normalleştirir; OpenClaw önce eşleşen sağlayıcıyı, - ardından taşıma üzerinde gerçekten değişiklik yapana kadar kanca özellikli diğer sağlayıcı eklentilerini denetler +- `normalizeModelId`: sağlayıcı, arama veya kanonikleştirmeden önce eski/önizleme model kimliklerini + normalize eder +- `normalizeTransport`: sağlayıcı, genel model birleştirmesinden önce taşıma ailesi `api` / `baseUrl` değerlerini + normalize eder; OpenClaw önce eşleşen sağlayıcıyı, + ardından taşıma üzerinde gerçekten değişiklik yapan birini bulana kadar diğer hook yetenekli provider Plugin'lerini kontrol eder - `normalizeConfig`: sağlayıcı, çalışma zamanı kullanmadan önce `models.providers.` yapılandırmasını - normalleştirir; OpenClaw önce eşleşen sağlayıcıyı, - ardından yapılandırmayı gerçekten değiştirene kadar kanca özellikli diğer sağlayıcı eklentilerini denetler. Eğer hiçbir - sağlayıcı kancası yapılandırmayı yeniden yazmazsa, paketlenmiş Google ailesi yardımcıları yine de - desteklenen Google sağlayıcı girdilerini normalleştirir. -- `applyNativeStreamingUsageCompat`: sağlayıcı, yapılandırma sağlayıcıları için uç nokta güdümlü doğal akış kullanım uyumluluğu yeniden yazımlarını uygular -- `resolveConfigApiKey`: sağlayıcı, yapılandırma sağlayıcıları için tam çalışma zamanı kimlik doğrulamasını yüklemeye zorlamadan - env işaretleyici kimlik doğrulamasını çözümler. - `amazon-bedrock` burada ayrıca yerleşik bir AWS env işaretleyici çözümleyicisine sahiptir; Bedrock çalışma zamanı kimlik doğrulaması - AWS SDK varsayılan zincirini kullansa da böyledir. -- `resolveSyntheticAuth`: sağlayıcı, düz metin gizli anahtarları kalıcı hale getirmeden - yerel/self-hosted veya diğer yapılandırma destekli kimlik doğrulama kullanılabilirliğini açığa çıkarabilir -- `shouldDeferSyntheticProfileAuth`: sağlayıcı, saklanan sentetik profil - yer tutucularını env/yapılandırma destekli kimlik doğrulamadan daha düşük öncelikli olarak işaretleyebilir + normalize eder; OpenClaw önce eşleşen sağlayıcıyı, + ardından yapılandırmayı gerçekten değiştiren birini bulana kadar diğer + hook yetenekli provider Plugin'lerini kontrol eder. Hiçbir sağlayıcı hook'u yapılandırmayı yeniden yazmazsa, + paketlenmiş Google ailesi yardımcıları desteklenen Google sağlayıcı girişlerini yine de + normalize eder. +- `applyNativeStreamingUsageCompat`: sağlayıcı, yapılandırma sağlayıcıları için uç nokta güdümlü yerel akış kullanım uyumluluğu yeniden yazımlarını uygular +- `resolveConfigApiKey`: sağlayıcı, tam çalışma zamanı kimlik doğrulamasının yüklenmesini zorlamadan + yapılandırma sağlayıcıları için env-marker kimlik doğrulamasını çözer. `amazon-bedrock` burada + yerleşik bir AWS env-marker çözücüsüne de sahiptir; Bedrock çalışma zamanı kimlik doğrulaması + AWS SDK varsayılan zincirini kullansa da. +- `resolveSyntheticAuth`: sağlayıcı, düz metin sırları kalıcılaştırmadan yerel/self-hosted veya diğer + yapılandırma destekli kimlik doğrulama kullanılabilirliğini açığa çıkarabilir +- `shouldDeferSyntheticProfileAuth`: sağlayıcı, depolanan sentetik profil yer tutucularını + env/yapılandırma destekli kimlik doğrulamadan daha düşük öncelikli olarak işaretleyebilir - `resolveDynamicModel`: sağlayıcı, yerel statik katalogda henüz bulunmayan model kimliklerini kabul eder -- `prepareDynamicModel`: sağlayıcının, dinamik çözümlemeyi yeniden denemeden önce meta veri yenilemesine ihtiyacı vardır +- `prepareDynamicModel`: sağlayıcının, dinamik çözümlemeyi yeniden denemeden önce + meta veri yenilemesi gerekir - `normalizeResolvedModel`: sağlayıcının taşıma veya temel URL yeniden yazımlarına ihtiyacı vardır -- `contributeResolvedModelCompat`: sağlayıcı, satıcıya ait modeller başka bir uyumlu taşıma üzerinden geldiğinde bile - bunlar için uyumluluk bayrakları sağlar -- `capabilities`: sağlayıcı, döküm/araç/sağlayıcı ailesi farklılıklarını yayımlar -- `normalizeToolSchemas`: sağlayıcı, gömülü çalıştırıcı bunları görmeden önce araç şemalarını temizler -- `inspectToolSchemas`: sağlayıcı, normalleştirmeden sonra taşıma özelindeki şema uyarılarını ortaya çıkarır -- `resolveReasoningOutputMode`: sağlayıcı, doğal ve etiketli - akıl yürütme çıktısı sözleşmeleri arasında seçim yapar -- `prepareExtraParams`: sağlayıcı, model başına istek parametreleri için varsayılanları ayarlar veya bunları normalleştirir -- `createStreamFn`: sağlayıcı, normal akış yolunu tamamen - özel bir taşıma ile değiştirir +- `contributeResolvedModelCompat`: sağlayıcı, modeller başka bir uyumlu taşıma üzerinden gelse bile + kendi satıcı modelleri için uyumluluk bayrakları sağlar +- `capabilities`: sağlayıcı, transkript/araçlama/sağlayıcı ailesi özelliklerini yayımlar +- `normalizeToolSchemas`: sağlayıcı, gömülü çalıştırıcı bunları görmeden önce + araç şemalarını temizler +- `inspectToolSchemas`: sağlayıcı, normalleştirmeden sonra + taşımaya özgü şema uyarılarını ortaya çıkarır +- `resolveReasoningOutputMode`: sağlayıcı, yerel ve etiketli + muhakeme çıktısı sözleşmeleri arasında seçim yapar +- `prepareExtraParams`: sağlayıcı, model başına istek parametrelerini varsayılan hale getirir veya normalize eder +- `createStreamFn`: sağlayıcı, normal akış yolunu tamamen özel bir + taşıma ile değiştirir - `wrapStreamFn`: sağlayıcı, istek üstbilgisi/gövdesi/model uyumluluk sarmalayıcıları uygular -- `resolveTransportTurnState`: sağlayıcı, tur başına doğal taşıma +- `resolveTransportTurnState`: sağlayıcı, tur başına yerel taşıma üstbilgileri veya meta verileri sağlar -- `resolveWebSocketSessionPolicy`: sağlayıcı, doğal WebSocket oturumu - üstbilgileri veya oturum bekleme politikası sağlar -- `createEmbeddingProvider`: sağlayıcı, çekirdek embedding yönlendirme panosu yerine sağlayıcı eklentisine ait olduğunda - bellek embedding davranışına sahip olur -- `formatApiKey`: sağlayıcı, depolanan kimlik doğrulama profillerini taşımanın beklediği çalışma zamanı - `apiKey` dizesine dönüştürür -- `refreshOAuth`: paylaşılan `pi-ai` - yenileyicileri yeterli olmadığında OAuth yenilemesine sağlayıcı sahip olur -- `buildAuthDoctorHint`: OAuth yenilemesi - başarısız olduğunda sağlayıcı onarım rehberi ekler -- `matchesContextOverflowError`: sağlayıcı, genel sezgilerin gözden kaçıracağı +- `resolveWebSocketSessionPolicy`: sağlayıcı, yerel WebSocket oturumu + üstbilgileri veya oturum cooldown ilkesini sağlar +- `createEmbeddingProvider`: sağlayıcı, bellek embedding davranışını sahiplenir; bu davranış + çekirdek embedding anahtarlama mantığı yerine provider Plugin'i ile birlikte olmalıdır +- `formatApiKey`: sağlayıcı, depolanan kimlik doğrulama profillerini çalışma zamanının + beklediği `apiKey` dizgesine biçimlendirir +- `refreshOAuth`: sağlayıcı, paylaşılan `pi-ai` + yenileyicileri yeterli olmadığında OAuth yenilemeyi sahiplenir +- `buildAuthDoctorHint`: sağlayıcı, OAuth yenileme + başarısız olduğunda onarım rehberliği ekler +- `matchesContextOverflowError`: sağlayıcı, genel sezgilerin kaçıracağı sağlayıcıya özgü bağlam penceresi taşma hatalarını tanır - `classifyFailoverReason`: sağlayıcı, sağlayıcıya özgü ham taşıma/API - hatalarını oran sınırı veya aşırı yük gibi geri dönüş nedenlerine eşler -- `isCacheTtlEligible`: sağlayıcı, hangi üst akış model kimliklerinin istem önbelleği TTL'sini desteklediğine karar verir -- `buildMissingAuthMessage`: sağlayıcı, genel kimlik doğrulama deposu hatasını + hatalarını hız sınırı veya aşırı yük gibi failover nedenlerine eşler +- `isCacheTtlEligible`: sağlayıcı, hangi upstream model kimliklerinin prompt-cache TTL'yi desteklediğine karar verir +- `buildMissingAuthMessage`: sağlayıcı, genel auth-store hatasını sağlayıcıya özgü bir kurtarma ipucuyla değiştirir -- `suppressBuiltInModel`: sağlayıcı, eski üst akış satırlarını gizler ve +- `suppressBuiltInModel`: sağlayıcı, eski upstream satırlarını gizler ve doğrudan çözümleme başarısızlıkları için satıcıya ait bir hata döndürebilir - `augmentModelCatalog`: sağlayıcı, keşif ve yapılandırma birleştirmesinden sonra sentetik/nihai katalog satırları ekler -- `isBinaryThinking`: sağlayıcı, ikili açık/kapalı düşünme deneyimine sahip olur -- `supportsXHighThinking`: sağlayıcı, seçili modelleri `xhigh` için etkinleştirir -- `resolveDefaultThinkingLevel`: sağlayıcı, bir - model ailesi için varsayılan `/think` politikasına sahip olur +- `isBinaryThinking`: sağlayıcı, ikili aç/kapat düşünme UX'ini sahiplenir +- `supportsXHighThinking`: sağlayıcı, seçilen modelleri `xhigh` için etkinleştirir +- `resolveDefaultThinkingLevel`: sağlayıcı, bir model ailesi için varsayılan `/think` ilkesini sahiplenir - `applyConfigDefaults`: sağlayıcı, kimlik doğrulama modu, env veya model ailesine göre yapılandırma somutlaştırması sırasında sağlayıcıya özgü genel varsayılanları uygular -- `isModernModelRef`: sağlayıcı, canlı/smoke tercih edilen model eşleşmesine sahip olur +- `isModernModelRef`: sağlayıcı, canlı/smoke tercih edilen model eşlemesini sahiplenir - `prepareRuntimeAuth`: sağlayıcı, yapılandırılmış bir kimlik bilgisini kısa ömürlü bir çalışma zamanı belirtecine dönüştürür -- `resolveUsageAuth`: sağlayıcı, `/usage` - ve ilgili durum/raporlama yüzeyleri için kullanım/kota kimlik bilgilerini çözümler -- `fetchUsageSnapshot`: sağlayıcı, kullanım uç noktası getirme/ayrıştırmasına sahip olurken - çekirdek yine de özet kabuğuna ve biçimlendirmeye sahip olur +- `resolveUsageAuth`: sağlayıcı, `/usage` ve ilgili durum/raporlama yüzeyleri için + kullanım/kota kimlik bilgilerini çözer +- `fetchUsageSnapshot`: sağlayıcı, kullanım uç noktası getirme/ayrıştırmasını sahiplenirken + çekirdek yine özet kabuğu ve biçimlendirmeyi sahiplenir - `onModelSelected`: sağlayıcı, telemetri veya sağlayıcıya ait oturum kayıtları gibi - seçim sonrası yan etkilere sahip olur + model seçimi sonrası yan etkileri çalıştırır Mevcut paketlenmiş örnekler: - `anthropic`: Claude 4.6 ileri uyumluluk geri dönüşü, kimlik doğrulama onarım ipuçları, kullanım - uç noktası getirme, cache-TTL/sağlayıcı ailesi meta verisi ve kimlik doğrulamaya duyarlı genel + uç noktası getirme, cache-TTL/sağlayıcı ailesi meta verisi ve kimlik doğrulama farkındalıklı genel yapılandırma varsayılanları -- `amazon-bedrock`: Bedrock'a özgü boğma/hazır değil hataları için sağlayıcıya ait bağlam taşması eşleştirme ve geri dönüş - nedeni sınıflandırması; ayrıca Anthropic trafiğinde yalnızca Claude geri oynatma ilkesi - korumaları için paylaşılan `anthropic-by-model` yeniden oynatma ailesi +- `amazon-bedrock`: Bedrock'a özgü throttle/hazır değil hataları için sağlayıcıya ait bağlam taşması eşleştirmesi ve failover + nedeni sınıflandırması; ayrıca Anthropic trafiğinde yalnızca Claude için replay-policy + korumaları sağlayan paylaşılan `anthropic-by-model` replay ailesi - `anthropic-vertex`: Anthropic-message - trafiğinde yalnızca Claude geri oynatma ilkesi korumaları -- `openrouter`: doğrudan geçen model kimlikleri, istek sarmalayıcıları, sağlayıcı yetenek - ipuçları, proxy Gemini trafiğinde Gemini thought-signature temizleme, `openrouter-thinking` akış ailesi üzerinden proxy - akıl yürütme ekleme, yönlendirme meta verisi iletimi ve cache-TTL ilkesi -- `github-copilot`: katılım/cihaz oturum açma, ileri uyumluluk model geri dönüşü, - Claude düşünme döküm ipuçları, çalışma zamanı belirteç değişimi ve kullanım uç noktası + trafiğinde yalnızca Claude için replay-policy korumaları +- `openrouter`: doğrudan aktarılan model kimlikleri, istek sarmalayıcıları, sağlayıcı yetenek + ipuçları, proxy Gemini trafiğinde Gemini thought-signature temizleme, `openrouter-thinking` akış ailesi üzerinden + proxy muhakeme ekleme, yönlendirme meta verisi iletimi ve cache-TTL ilkesi +- `github-copilot`: onboarding/cihaz girişi, ileri uyumluluk model geri dönüşü, + Claude-thinking transkript ipuçları, çalışma zamanı belirteç değişimi ve kullanım uç noktası getirme - `openai`: GPT-5.4 ileri uyumluluk geri dönüşü, doğrudan OpenAI taşıma normalleştirmesi, Codex farkındalıklı eksik kimlik doğrulama ipuçları, Spark bastırma, sentetik - OpenAI/Codex katalog satırları, düşünme/canlı model ilkesi, kullanım belirteci takma ad - normalleştirmesi (`input` / `output` ve `prompt` / `completion` aileleri), doğal OpenAI/Codex + OpenAI/Codex katalog satırları, thinking/canlı model ilkesi, kullanım belirteci takma ad + normalleştirmesi (`input` / `output` ve `prompt` / `completion` aileleri), yerel OpenAI/Codex sarmalayıcıları için paylaşılan `openai-responses-defaults` akış ailesi, sağlayıcı ailesi meta verisi, paketlenmiş görsel oluşturma sağlayıcısı - kaydı `gpt-image-1` için ve paketlenmiş video oluşturma sağlayıcısı - kaydı `sora-2` için + kaydı (`gpt-image-1` için) ve paketlenmiş video oluşturma sağlayıcısı + kaydı (`sora-2` için) - `google` ve `google-gemini-cli`: Gemini 3.1 ileri uyumluluk geri dönüşü, - doğal Gemini yeniden oynatma doğrulaması, bootstrap yeniden oynatma temizleme, etiketli - akıl yürütme çıktısı modu, modern model eşleştirme, Gemini image-preview modelleri için paketlenmiş görsel oluşturma + yerel Gemini replay doğrulaması, bootstrap replay temizleme, etiketli + muhakeme çıktısı modu, modern model eşleştirmesi, Gemini image-preview modelleri için paketlenmiş görsel oluşturma sağlayıcısı kaydı ve Veo modelleri için paketlenmiş - video oluşturma sağlayıcısı kaydı; ayrıca Gemini CLI OAuth, - kullanım yüzeyleri için kimlik doğrulama profili belirteç biçimlendirmesine, kullanım belirteci ayrıştırmasına ve kota uç noktası - getirmesine de sahiptir -- `moonshot`: paylaşılan taşıma, eklentiye ait düşünme yükü normalleştirmesi -- `kilocode`: paylaşılan taşıma, eklentiye ait istek üstbilgileri, akıl yürütme yükü + video oluşturma sağlayıcısı kaydı; Gemini CLI OAuth ayrıca + kullanım yüzeyleri için kimlik doğrulama profili belirteç biçimlendirmesi, kullanım belirteci ayrıştırması ve kota uç noktası + getirmesini de sahiplenir +- `moonshot`: paylaşılan taşıma, Plugin'e ait thinking payload normalleştirmesi +- `kilocode`: paylaşılan taşıma, Plugin'e ait istek üstbilgileri, muhakeme payload normalleştirmesi, proxy-Gemini thought-signature temizleme ve cache-TTL ilkesi - `zai`: GLM-5 ileri uyumluluk geri dönüşü, `tool_stream` varsayılanları, cache-TTL - ilkesi, ikili düşünme/canlı model ilkesi ve kullanım kimlik doğrulaması + kota getirme; - bilinmeyen `glm-5*` kimlikleri paketlenmiş `glm-4.7` şablonundan sentetik olarak oluşturulur -- `xai`: doğal Responses taşıma normalleştirmesi, Grok hızlı varyantları için `/fast` takma ad yeniden yazımları, - varsayılan `tool_stream`, xAI'ye özgü araç şeması / - akıl yürütme yükü temizliği ve `grok-imagine-video` için paketlenmiş video oluşturma sağlayıcısı + ilkesi, ikili thinking/canlı model ilkesi ve kullanım kimlik doğrulaması + kota getirme; + bilinmeyen `glm-5*` kimlikleri paketlenmiş `glm-4.7` şablonundan sentezlenir +- `xai`: yerel Responses taşıma normalleştirmesi, Grok hızlı varyantları için + `/fast` takma ad yeniden yazımları, varsayılan `tool_stream`, xAI'ye özgü araç şeması / + muhakeme payload temizleme ve `grok-imagine-video` için paketlenmiş video oluşturma sağlayıcısı kaydı -- `mistral`: eklentiye ait yetenek meta verisi -- `opencode` ve `opencode-go`: eklentiye ait yetenek meta verisi ve ayrıca +- `mistral`: Plugin'e ait yetenek meta verisi +- `opencode` ve `opencode-go`: Plugin'e ait yetenek meta verisi ve ayrıca proxy-Gemini thought-signature temizleme -- `alibaba`: `alibaba/wan2.6-t2v` gibi doğrudan Wan model başvuruları için eklentiye ait video oluşturma kataloğu -- `byteplus`: eklentiye ait kataloglar ve ayrıca Seedance metinden videoya/görselden videoya modelleri için paketlenmiş video oluşturma sağlayıcısı +- `alibaba`: `alibaba/wan2.6-t2v` gibi doğrudan Wan model başvuruları için + Plugin'e ait video oluşturma kataloğu +- `byteplus`: Plugin'e ait kataloglar ve ayrıca Seedance metinden videoya/görselden videoya modelleri için paketlenmiş video oluşturma sağlayıcısı kaydı -- `fal`: barındırılan üçüncü taraf görüntü modelleri için paketlenmiş görsel oluşturma sağlayıcısı - kaydı ve ayrıca barındırılan üçüncü taraf video modelleri için paketlenmiş - video oluşturma sağlayıcısı kaydı +- `fal`: barındırılan üçüncü taraf video modelleri için paketlenmiş video oluşturma sağlayıcısı + kaydı ve ayrıca FLUX görsel modelleri için görsel oluşturma sağlayıcısı kaydı ile birlikte + barındırılan üçüncü taraf video modelleri için paketlenmiş video oluşturma sağlayıcısı kaydı - `cloudflare-ai-gateway`, `huggingface`, `kimi`, `nvidia`, `qianfan`, `stepfun`, `synthetic`, `venice`, `vercel-ai-gateway` ve `volcengine`: - yalnızca eklentiye ait kataloglar -- `qwen`: metin modelleri için eklentiye ait kataloglar ve ayrıca - çok kipli yüzeyleri için paylaşılan media-understanding ve video oluşturma sağlayıcısı kayıtları; - Qwen video oluşturma, `wan2.6-t2v` ve `wan2.7-r2v` gibi paketlenmiş Wan modelleriyle Standard DashScope video - uç noktalarını kullanır -- `runway`: `gen4.5` gibi doğal - Runway görev tabanlı modeller için eklentiye ait video oluşturma sağlayıcısı kaydı -- `minimax`: eklentiye ait kataloglar, Hailuo video modelleri için paketlenmiş video oluşturma sağlayıcısı + yalnızca Plugin'e ait kataloglar +- `qwen`: metin modelleri için Plugin'e ait kataloglar ve ayrıca + çok modlu yüzeyleri için paylaşılan media-understanding ve video oluşturma sağlayıcısı kayıtları; + Qwen video oluşturma, `wan2.6-t2v` ve `wan2.7-r2v` gibi paketlenmiş Wan modelleriyle + standart DashScope video uç noktalarını kullanır +- `runway`: `gen4.5` gibi yerel + Runway görev tabanlı modelleri için Plugin'e ait video oluşturma sağlayıcısı kaydı +- `minimax`: Plugin'e ait kataloglar, Hailuo video modelleri için paketlenmiş video oluşturma sağlayıcısı kaydı, `image-01` için paketlenmiş görsel oluşturma sağlayıcısı - kaydı, hibrit Anthropic/OpenAI yeniden oynatma ilkesi + kaydı, hibrit Anthropic/OpenAI replay-policy seçimi ve kullanım kimlik doğrulaması/anlık görüntü mantığı -- `together`: eklentiye ait kataloglar ve ayrıca Wan video modelleri için paketlenmiş video oluşturma sağlayıcısı +- `together`: Plugin'e ait kataloglar ve ayrıca Wan video modelleri için paketlenmiş video oluşturma sağlayıcısı kaydı -- `xiaomi`: eklentiye ait kataloglar ve ayrıca kullanım kimlik doğrulaması/anlık görüntü mantığı +- `xiaomi`: Plugin'e ait kataloglar ve ayrıca kullanım kimlik doğrulaması/anlık görüntü mantığı -Paketlenmiş `openai` eklentisi artık her iki sağlayıcı kimliğine de sahiptir: `openai` ve +Paketlenmiş `openai` Plugin'i artık her iki sağlayıcı kimliğini de sahipleniyor: `openai` ve `openai-codex`. -Bu, hâlâ OpenClaw'ın normal taşımalarına uyan sağlayıcıları kapsar. Tamamen -özel bir istek yürütücüsüne ihtiyaç duyan bir sağlayıcı ise ayrı, daha derin bir genişletme yüzeyidir. +Bu, hâlâ OpenClaw'ın normal taşımalarına uyan sağlayıcıları kapsar. Tamamen özel bir istek yürütücüsüne ihtiyaç duyan bir sağlayıcı +ayrı ve daha derin bir genişletme yüzeyidir. ## API anahtarı rotasyonu - Seçili sağlayıcılar için genel sağlayıcı rotasyonunu destekler. -- Birden fazla anahtarı şununla yapılandırın: +- Birden çok anahtarı şu yollarla yapılandırın: - `OPENCLAW_LIVE__KEY` (tek canlı geçersiz kılma, en yüksek öncelik) - `_API_KEYS` (virgül veya noktalı virgülle ayrılmış liste) - `_API_KEY` (birincil anahtar) - `_API_KEY_*` (numaralandırılmış liste, ör. `_API_KEY_1`) -- Google sağlayıcıları için `GOOGLE_API_KEY` da geri dönüş olarak dahil edilir. -- Anahtar seçim sırası önceliği korur ve değerlerin tekrarını kaldırır. -- İstekler yalnızca oran sınırı yanıtlarında bir sonraki anahtarla yeniden denenir ( +- Google sağlayıcıları için `GOOGLE_API_KEY` de geri dönüş olarak dahil edilir. +- Anahtar seçim sırası önceliği korur ve değerleri tekilleştirir. +- İstekler yalnızca hız sınırı yanıtlarında bir sonraki anahtarla yeniden denenir ( örneğin `429`, `rate_limit`, `quota`, `resource exhausted`, `Too many concurrent requests`, `ThrottlingException`, `concurrency limit reached`, - `workers_ai ... quota limit exceeded` veya dönemsel kullanım sınırı mesajları). -- Oran sınırı dışındaki hatalar hemen başarısız olur; anahtar rotasyonu denenmez. + `workers_ai ... quota limit exceeded` veya dönemsel kullanım sınırı iletileri). +- Hız sınırı dışındaki hatalar hemen başarısız olur; anahtar rotasyonu denenmez. - Tüm aday anahtarlar başarısız olduğunda, son hata son denemeden döndürülür. ## Yerleşik sağlayıcılar (pi-ai kataloğu) @@ -248,21 +252,21 @@ OpenClaw, pi‑ai kataloğuyla birlikte gelir. Bu sağlayıcılar için **hiç** - Sağlayıcı: `openai` - Kimlik doğrulama: `OPENAI_API_KEY` -- İsteğe bağlı rotasyon: `OPENAI_API_KEYS`, `OPENAI_API_KEY_1`, `OPENAI_API_KEY_2` ve ayrıca `OPENCLAW_LIVE_OPENAI_KEY` (tek geçersiz kılma) +- İsteğe bağlı rotasyon: `OPENAI_API_KEYS`, `OPENAI_API_KEY_1`, `OPENAI_API_KEY_2`, ayrıca `OPENCLAW_LIVE_OPENAI_KEY` (tek geçersiz kılma) - Örnek modeller: `openai/gpt-5.4`, `openai/gpt-5.4-pro` - CLI: `openclaw onboard --auth-choice openai-api-key` -- Varsayılan taşıma `auto`'dur (`WebSocket` önce, `SSE` geri dönüş) -- Model başına şununla geçersiz kılın: `agents.defaults.models["openai/"].params.transport` (`"sse"`, `"websocket"` veya `"auto"`) -- OpenAI Responses WebSocket ısındırma varsayılan olarak `params.openaiWsWarmup` (`true`/`false`) ile etkindir -- OpenAI öncelikli işleme, `agents.defaults.models["openai/"].params.serviceTier` ile etkinleştirilebilir +- Varsayılan taşıma `auto`'dur (önce WebSocket, sonra SSE geri dönüşü) +- Model başına geçersiz kılmak için `agents.defaults.models["openai/"].params.transport` kullanın (`"sse"`, `"websocket"` veya `"auto"`) +- OpenAI Responses WebSocket ön ısıtma varsayılan olarak `params.openaiWsWarmup` üzerinden etkindir (`true`/`false`) +- OpenAI öncelikli işleme `agents.defaults.models["openai/"].params.serviceTier` ile etkinleştirilebilir - `/fast` ve `params.fastMode`, doğrudan `openai/*` Responses isteklerini `api.openai.com` üzerinde `service_tier=priority` değerine eşler -- Paylaşılan `/fast` anahtarı yerine açık bir katman istediğinizde `params.serviceTier` kullanın +- Paylaşılan `/fast` geçişi yerine açık bir katman istediğinizde `params.serviceTier` kullanın - Gizli OpenClaw atıf üstbilgileri (`originator`, `version`, - `User-Agent`) yalnızca `api.openai.com` adresine giden doğal OpenAI trafiğinde uygulanır, + `User-Agent`) yalnızca `api.openai.com` adresine giden yerel OpenAI trafiğinde uygulanır, genel OpenAI uyumlu proxy'lerde uygulanmaz -- Doğal OpenAI yolları ayrıca Responses `store`, istem önbelleği ipuçları ve - OpenAI akıl yürütme uyumluluğu yük şekillendirmesini korur; proxy yolları bunu korumaz -- `openai/gpt-5.3-codex-spark`, canlı OpenAI API bunu reddettiği için OpenClaw'da kasıtlı olarak bastırılmıştır; Spark yalnızca Codex olarak değerlendirilir +- Yerel OpenAI yolları ayrıca Responses `store`, prompt-cache ipuçları ve + OpenAI reasoning-compat payload şekillendirmesini korur; proxy yolları korumaz +- `openai/gpt-5.3-codex-spark`, canlı OpenAI API'si bunu reddettiği için OpenClaw'da bilerek bastırılır; Spark yalnızca Codex'e özgü kabul edilir ```json5 { @@ -274,12 +278,12 @@ OpenClaw, pi‑ai kataloğuyla birlikte gelir. Bu sağlayıcılar için **hiç** - Sağlayıcı: `anthropic` - Kimlik doğrulama: `ANTHROPIC_API_KEY` -- İsteğe bağlı rotasyon: `ANTHROPIC_API_KEYS`, `ANTHROPIC_API_KEY_1`, `ANTHROPIC_API_KEY_2` ve ayrıca `OPENCLAW_LIVE_ANTHROPIC_KEY` (tek geçersiz kılma) +- İsteğe bağlı rotasyon: `ANTHROPIC_API_KEYS`, `ANTHROPIC_API_KEY_1`, `ANTHROPIC_API_KEY_2`, ayrıca `OPENCLAW_LIVE_ANTHROPIC_KEY` (tek geçersiz kılma) - Örnek model: `anthropic/claude-opus-4-6` - CLI: `openclaw onboard --auth-choice apiKey` -- Doğrudan genel Anthropic istekleri, `api.anthropic.com` adresine gönderilen API anahtarı ve OAuth kimlik doğrulamalı trafik dahil olmak üzere, paylaşılan `/fast` anahtarını ve `params.fastMode` seçeneğini de destekler; OpenClaw bunu Anthropic `service_tier` değerine (`auto` ve `standard_only`) eşler -- Anthropic notu: Anthropic personeli bize OpenClaw tarzı Claude CLI kullanımına tekrar izin verildiğini söyledi, bu nedenle Anthropic yeni bir ilke yayımlamadıkça OpenClaw bu entegrasyon için Claude CLI yeniden kullanımını ve `claude -p` kullanımını izinli kabul eder. -- Anthropic kurulum belirteci, desteklenen bir OpenClaw belirteç yolu olarak kullanılmaya devam eder, ancak OpenClaw artık mümkün olduğunda Claude CLI yeniden kullanımını ve `claude -p` kullanımını tercih eder. +- Doğrudan genel Anthropic istekleri, `api.anthropic.com` adresine gönderilen API anahtarıyla ve OAuth ile kimliği doğrulanmış trafikte dahil olmak üzere, paylaşılan `/fast` geçişini ve `params.fastMode` değerini de destekler; OpenClaw bunu Anthropic `service_tier` değerine eşler (`auto` ve `standard_only`) +- Anthropic notu: Anthropic çalışanları bize OpenClaw tarzı Claude CLI kullanımına tekrar izin verildiğini söyledi, bu nedenle Anthropic yeni bir ilke yayımlamadıkça OpenClaw, Claude CLI yeniden kullanımını ve `claude -p` kullanımını bu entegrasyon için onaylı kabul eder. +- Anthropic setup-token desteklenen bir OpenClaw belirteç yolu olarak kullanılmaya devam eder, ancak OpenClaw artık mümkün olduğunda Claude CLI yeniden kullanımını ve `claude -p` yolunu tercih eder. ```json5 { @@ -293,16 +297,16 @@ OpenClaw, pi‑ai kataloğuyla birlikte gelir. Bu sağlayıcılar için **hiç** - Kimlik doğrulama: OAuth (ChatGPT) - Örnek model: `openai-codex/gpt-5.4` - CLI: `openclaw onboard --auth-choice openai-codex` veya `openclaw models auth login --provider openai-codex` -- Varsayılan taşıma `auto`'dur (`WebSocket` önce, `SSE` geri dönüş) -- Model başına şununla geçersiz kılın: `agents.defaults.models["openai-codex/"].params.transport` (`"sse"`, `"websocket"` veya `"auto"`) -- `params.serviceTier` doğal Codex Responses isteklerinde de iletilir (`chatgpt.com/backend-api`) +- Varsayılan taşıma `auto`'dur (önce WebSocket, sonra SSE geri dönüşü) +- Model başına geçersiz kılmak için `agents.defaults.models["openai-codex/"].params.transport` kullanın (`"sse"`, `"websocket"` veya `"auto"`) +- `params.serviceTier` yerel Codex Responses isteklerinde de iletilir (`chatgpt.com/backend-api`) - Gizli OpenClaw atıf üstbilgileri (`originator`, `version`, - `User-Agent`) yalnızca `chatgpt.com/backend-api` adresine giden doğal Codex trafiğinde + `User-Agent`) yalnızca `chatgpt.com/backend-api` adresine giden yerel Codex trafiğinde eklenir, genel OpenAI uyumlu proxy'lerde eklenmez -- Doğrudan `openai/*` ile aynı `/fast` anahtarını ve `params.fastMode` yapılandırmasını paylaşır; OpenClaw bunu `service_tier=priority` değerine eşler -- `openai-codex/gpt-5.3-codex-spark`, Codex OAuth kataloğu bunu sunduğunda kullanılabilir olmaya devam eder; yetki haklarına bağlıdır -- `openai-codex/gpt-5.4`, doğal `contextWindow = 1050000` ve varsayılan çalışma zamanı `contextTokens = 272000` değerlerini korur; çalışma zamanı sınırını `models.providers.openai-codex.models[].contextTokens` ile geçersiz kılın -- İlke notu: OpenAI Codex OAuth, OpenClaw gibi harici araçlar/iş akışları için açıkça desteklenmektedir. +- Doğrudan `openai/*` ile aynı `/fast` geçişini ve `params.fastMode` yapılandırmasını paylaşır; OpenClaw bunu `service_tier=priority` değerine eşler +- `openai-codex/gpt-5.3-codex-spark`, Codex OAuth kataloğu bunu gösterdiğinde kullanılabilir olmaya devam eder; yetkiye bağlıdır +- `openai-codex/gpt-5.4`, yerel `contextWindow = 1050000` ve varsayılan çalışma zamanı `contextTokens = 272000` değerlerini korur; çalışma zamanı sınırını `models.providers.openai-codex.models[].contextTokens` ile geçersiz kılın +- İlke notu: OpenAI Codex OAuth, OpenClaw gibi harici araçlar/iş akışları için açıkça desteklenir. ```json5 { @@ -324,7 +328,7 @@ OpenClaw, pi‑ai kataloğuyla birlikte gelir. Bu sağlayıcılar için **hiç** ### Diğer abonelik tarzı barındırılan seçenekler -- [Qwen Cloud](/tr/providers/qwen): Qwen Cloud sağlayıcı yüzeyi ve ayrıca Alibaba DashScope ile Coding Plan uç noktası eşlemesi +- [Qwen Cloud](/tr/providers/qwen): Qwen Cloud sağlayıcı yüzeyi ve ayrıca Alibaba DashScope ile Coding Plan uç nokta eşlemesi - [MiniMax](/tr/providers/minimax): MiniMax Coding Plan OAuth veya API anahtarı erişimi - [GLM Models](/tr/providers/glm): Z.AI Coding Plan veya genel API uç noktaları @@ -348,29 +352,29 @@ OpenClaw, pi‑ai kataloğuyla birlikte gelir. Bu sağlayıcılar için **hiç** - Kimlik doğrulama: `GEMINI_API_KEY` - İsteğe bağlı rotasyon: `GEMINI_API_KEYS`, `GEMINI_API_KEY_1`, `GEMINI_API_KEY_2`, `GOOGLE_API_KEY` geri dönüşü ve `OPENCLAW_LIVE_GEMINI_KEY` (tek geçersiz kılma) - Örnek modeller: `google/gemini-3.1-pro-preview`, `google/gemini-3-flash-preview` -- Uyumluluk: `google/gemini-3.1-flash-preview` kullanan eski OpenClaw yapılandırması `google/gemini-3-flash-preview` olarak normalleştirilir +- Uyumluluk: `google/gemini-3.1-flash-preview` kullanan eski OpenClaw yapılandırması `google/gemini-3-flash-preview` olarak normalize edilir - CLI: `openclaw onboard --auth-choice gemini-api-key` -- Doğrudan Gemini çalıştırmaları ayrıca `agents.defaults.models["google/"].params.cachedContent` - (veya eski `cached_content`) seçeneğini de kabul eder; bu, sağlayıcıya özgü - bir `cachedContents/...` tanıtıcısını iletmek içindir; Gemini önbellek isabetleri OpenClaw `cacheRead` olarak görünür +- Doğrudan Gemini çalıştırmaları ayrıca sağlayıcıya özgü yerel bir + `cachedContents/...` tanıtıcısını iletmek için `agents.defaults.models["google/"].params.cachedContent` + (veya eski `cached_content`) kabul eder; Gemini önbellek isabetleri OpenClaw `cacheRead` olarak görünür ### Google Vertex ve Gemini CLI - Sağlayıcılar: `google-vertex`, `google-gemini-cli` - Kimlik doğrulama: Vertex, gcloud ADC kullanır; Gemini CLI ise kendi OAuth akışını kullanır -- Dikkat: OpenClaw içindeki Gemini CLI OAuth, resmi olmayan bir entegrasyondur. Bazı kullanıcılar üçüncü taraf istemcileri kullandıktan sonra Google hesaplarında kısıtlamalar bildirmiştir. Devam etmeyi seçerseniz Google şartlarını gözden geçirin ve kritik olmayan bir hesap kullanın. -- Gemini CLI OAuth, paketlenmiş `google` eklentisinin bir parçası olarak sunulur. +- Dikkat: OpenClaw içindeki Gemini CLI OAuth resmi olmayan bir entegrasyondur. Bazı kullanıcılar, üçüncü taraf istemcileri kullandıktan sonra Google hesaplarında kısıtlamalar bildirildiğini belirtti. İlerlemeyi seçerseniz Google şartlarını gözden geçirin ve kritik olmayan bir hesap kullanın. +- Gemini CLI OAuth, paketlenmiş `google` Plugin'inin bir parçası olarak sunulur. - Önce Gemini CLI'yi yükleyin: - `brew install gemini-cli` - veya `npm install -g @google/gemini-cli` - Etkinleştirin: `openclaw plugins enable google` - - Oturum açın: `openclaw models auth login --provider google-gemini-cli --set-default` + - Giriş yapın: `openclaw models auth login --provider google-gemini-cli --set-default` - Varsayılan model: `google-gemini-cli/gemini-3-flash-preview` - - Not: bir istemci kimliği veya gizli anahtarı `openclaw.json` içine **yapıştırmazsınız**. CLI oturum açma akışı, - belirteçleri ağ geçidi ana makinesindeki kimlik doğrulama profillerinde depolar. - - Oturum açtıktan sonra istekler başarısız olursa, ağ geçidi ana makinesinde `GOOGLE_CLOUD_PROJECT` veya `GOOGLE_CLOUD_PROJECT_ID` ayarlayın. - - Gemini CLI JSON yanıtları `response` içinden ayrıştırılır; kullanım için geri dönüş olarak - `stats` kullanılır ve `stats.cached`, OpenClaw `cacheRead` olarak normalleştirilir. + - Not: `openclaw.json` içine bir istemci kimliği veya gizli anahtar yapıştırmazsınız. CLI giriş akışı, + belirteçleri Gateway ana makinesindeki auth profillerinde depolar. + - Girişten sonra istekler başarısız olursa, Gateway ana makinesinde `GOOGLE_CLOUD_PROJECT` veya `GOOGLE_CLOUD_PROJECT_ID` ayarlayın. + - Gemini CLI JSON yanıtları `response` alanından ayrıştırılır; kullanım bilgisi + `stats` alanına geri döner ve `stats.cached`, OpenClaw `cacheRead` olarak normalize edilir. ### Z.AI (GLM) @@ -378,8 +382,8 @@ OpenClaw, pi‑ai kataloğuyla birlikte gelir. Bu sağlayıcılar için **hiç** - Kimlik doğrulama: `ZAI_API_KEY` - Örnek model: `zai/glm-5.1` - CLI: `openclaw onboard --auth-choice zai-api-key` - - Takma adlar: `z.ai/*` ve `z-ai/*`, `zai/*` olarak normalleştirilir - - `zai-api-key`, eşleşen Z.AI uç noktasını otomatik algılar; `zai-coding-global`, `zai-coding-cn`, `zai-global` ve `zai-cn` ise belirli bir yüzeyi zorlar + - Takma adlar: `z.ai/*` ve `z-ai/*`, `zai/*` olarak normalize edilir + - `zai-api-key`, eşleşen Z.AI uç noktasını otomatik algılar; `zai-coding-global`, `zai-coding-cn`, `zai-global` ve `zai-cn` belirli bir yüzeyi zorlar ### Vercel AI Gateway @@ -395,37 +399,37 @@ OpenClaw, pi‑ai kataloğuyla birlikte gelir. Bu sağlayıcılar için **hiç** - Örnek model: `kilocode/kilo/auto` - CLI: `openclaw onboard --auth-choice kilocode-api-key` - Temel URL: `https://api.kilo.ai/api/gateway/` -- Statik geri dönüş kataloğu `kilocode/kilo/auto` ile gelir; canlı - `https://api.kilo.ai/api/gateway/models` keşfi, çalışma zamanı +- Statik geri dönüş kataloğu `kilocode/kilo/auto` ile birlikte gelir; canlı + `https://api.kilo.ai/api/gateway/models` keşfi çalışma zamanı kataloğunu daha da genişletebilir. -- `kilocode/kilo/auto` arkasındaki tam üst akış yönlendirmesi, OpenClaw içinde sabit kodlanmış değildir; - bunun sahibi Kilo Gateway'dir. +- `kilocode/kilo/auto` arkasındaki tam upstream yönlendirme Kilo Gateway'e aittir, + OpenClaw içinde sabit kodlanmış değildir. -Kurulum ayrıntıları için bkz. [/providers/kilocode](/tr/providers/kilocode). +Kurulum ayrıntıları için [/providers/kilocode](/tr/providers/kilocode) sayfasına bakın. -### Diğer paketlenmiş sağlayıcı eklentileri +### Diğer paketlenmiş provider Plugin'leri - OpenRouter: `openrouter` (`OPENROUTER_API_KEY`) - Örnek model: `openrouter/auto` - OpenClaw, OpenRouter'ın belgelenmiş uygulama atıf üstbilgilerini yalnızca - istek gerçekten `openrouter.ai` adresine yöneliyorsa uygular -- OpenRouter'a özgü Anthropic `cache_control` işaretçileri de - rastgele proxy URL'lerine değil, yalnızca doğrulanmış OpenRouter rotalarına uygulanır -- OpenRouter, proxy tarzı OpenAI uyumlu yol üzerinde kalır; bu nedenle doğal - yalnızca-OpenAI istek şekillendirmesi (`serviceTier`, Responses `store`, - istem önbelleği ipuçları, OpenAI akıl yürütme uyumluluğu yükleri) iletilmez + istek gerçekten `openrouter.ai` hedefine gidiyorsa uygular +- OpenRouter'a özgü Anthropic `cache_control` işaretçileri de aynı şekilde + doğrulanmış OpenRouter yollarıyla sınırlıdır, rastgele proxy URL'leriyle değil +- OpenRouter, proxy tarzı OpenAI uyumlu yol üzerinde kalır; bu nedenle + yalnızca yerel OpenAI'ye özgü istek şekillendirmesi (`serviceTier`, Responses `store`, + prompt-cache ipuçları, OpenAI reasoning-compat payload'ları) iletilmez - Gemini destekli OpenRouter başvuruları yalnızca proxy-Gemini thought-signature temizliğini korur; - doğal Gemini yeniden oynatma doğrulaması ve bootstrap yeniden yazımları kapalı kalır + yerel Gemini replay doğrulaması ve bootstrap yeniden yazımları kapalı kalır - Kilo Gateway: `kilocode` (`KILOCODE_API_KEY`) - Örnek model: `kilocode/kilo/auto` - Gemini destekli Kilo başvuruları aynı proxy-Gemini thought-signature - temizleme yolunu korur; `kilocode/kilo/auto` ve proxy akıl yürütme desteği olmayan diğer - ipuçları, proxy akıl yürütme eklemeyi atlar + temizleme yolunu korur; `kilocode/kilo/auto` ve proxy muhakeme eklemeyi desteklemeyen + diğer ipuçları proxy muhakeme eklemeyi atlar - MiniMax: `minimax` (API anahtarı) ve `minimax-portal` (OAuth) - Kimlik doğrulama: `minimax` için `MINIMAX_API_KEY`; `minimax-portal` için `MINIMAX_OAUTH_TOKEN` veya `MINIMAX_API_KEY` - Örnek model: `minimax/MiniMax-M2.7` veya `minimax-portal/MiniMax-M2.7` -- MiniMax katılımı/API anahtarı kurulumu, açık M2.7 model tanımları yazar ve - `input: ["text", "image"]` kullanır; paketlenmiş sağlayıcı kataloğu, bu sağlayıcı yapılandırması somutlaştırılana kadar +- MiniMax onboarding/API anahtarı kurulumu, açık M2.7 model tanımlarını + `input: ["text", "image"]` ile yazar; paketlenmiş sağlayıcı kataloğu bu sağlayıcı yapılandırması somutlaştırılana kadar sohbet başvurularını yalnızca metin olarak tutar - Moonshot: `moonshot` (`MOONSHOT_API_KEY`) - Örnek model: `moonshot/kimi-k2.5` @@ -452,11 +456,12 @@ Kurulum ayrıntıları için bkz. [/providers/kilocode](/tr/providers/kilocode). - BytePlus: `byteplus` (`BYTEPLUS_API_KEY`) - Örnek model: `byteplus-plan/ark-code-latest` - xAI: `xai` (`XAI_API_KEY`) - - Doğal paketlenmiş xAI istekleri xAI Responses yolunu kullanır + - Yerel paketlenmiş xAI istekleri xAI Responses yolunu kullanır - `/fast` veya `params.fastMode: true`, `grok-3`, `grok-3-mini`, - `grok-4` ve `grok-4-0709` modellerini kendi `*-fast` varyantlarına yeniden yazar - - `tool_stream` varsayılan olarak açıktır; bunu - devre dışı bırakmak için `agents.defaults.models["xai/"].params.tool_stream` değerini `false` yapın + `grok-4` ve `grok-4-0709` değerlerini kendi `*-fast` varyantlarına yeniden yazar + - `tool_stream` varsayılan olarak açıktır; devre dışı bırakmak için + `agents.defaults.models["xai/"].params.tool_stream` değerini `false` + yapın - Mistral: `mistral` (`MISTRAL_API_KEY`) - Örnek model: `mistral/mistral-large-latest` - CLI: `openclaw onboard --auth-choice mistral-api-key` @@ -467,20 +472,19 @@ Kurulum ayrıntıları için bkz. [/providers/kilocode](/tr/providers/kilocode). - GitHub Copilot: `github-copilot` (`COPILOT_GITHUB_TOKEN` / `GH_TOKEN` / `GITHUB_TOKEN`) - Hugging Face Inference örnek modeli: `huggingface/deepseek-ai/DeepSeek-R1`; CLI: `openclaw onboard --auth-choice huggingface-api-key`. Bkz. [Hugging Face (Inference)](/tr/providers/huggingface). -## `models.providers` üzerinden sağlayıcılar (özel/base URL) +## `models.providers` aracılığıyla sağlayıcılar (özel/base URL) **Özel** sağlayıcılar veya OpenAI/Anthropic uyumlu proxy'ler eklemek için `models.providers` (veya `models.json`) kullanın. -Aşağıdaki paketlenmiş sağlayıcı eklentilerinin çoğu zaten varsayılan bir katalog yayımlar. -Yalnızca varsayılan -base URL, üstbilgiler veya model listesini geçersiz kılmak istediğinizde açık `models.providers.` girdilerini kullanın. +Aşağıdaki paketlenmiş provider Plugin'lerinin birçoğu zaten varsayılan bir katalog yayımlar. +Varsayılan base URL, üstbilgiler veya model listesini geçersiz kılmak istediğinizde yalnızca açık +`models.providers.` girişlerini kullanın. ### Moonshot AI (Kimi) -Moonshot, paketlenmiş bir sağlayıcı eklentisi olarak gelir. Varsayılan olarak -yerleşik sağlayıcıyı kullanın ve yalnızca base URL veya model meta verisini geçersiz kılmanız gerektiğinde -açık bir `models.providers.moonshot` girdisi ekleyin: +Moonshot, paketlenmiş bir provider Plugin'i olarak sunulur. Varsayılan olarak yerleşik sağlayıcıyı kullanın; +yalnızca base URL veya model meta verisini geçersiz kılmanız gerektiğinde açık bir `models.providers.moonshot` girdisi ekleyin: - Sağlayıcı: `moonshot` - Kimlik doğrulama: `MOONSHOT_API_KEY` @@ -534,13 +538,13 @@ Kimi Coding, Moonshot AI'nin Anthropic uyumlu uç noktasını kullanır: } ``` -Eski `kimi/k2p5`, uyumluluk model kimliği olarak kabul edilmeye devam eder. +Eski `kimi/k2p5` kimliği uyumluluk model kimliği olarak kabul edilmeye devam eder. ### Volcano Engine (Doubao) Volcano Engine (火山引擎), Çin'de Doubao ve diğer modellere erişim sağlar. -- Sağlayıcı: `volcengine` (coding: `volcengine-plan`) +- Sağlayıcı: `volcengine` (kodlama: `volcengine-plan`) - Kimlik doğrulama: `VOLCANO_ENGINE_API_KEY` - Örnek model: `volcengine-plan/ark-code-latest` - CLI: `openclaw onboard --auth-choice volcengine-api-key` @@ -553,13 +557,13 @@ Volcano Engine (火山引擎), Çin'de Doubao ve diğer modellere erişim sağla } ``` -Katılım varsayılan olarak coding yüzeyini kullanır, ancak genel `volcengine/*` +Onboarding varsayılan olarak kodlama yüzeyini kullanır, ancak genel `volcengine/*` kataloğu da aynı anda kaydedilir. -Katılım/model yapılandırma seçicilerinde, Volcengine kimlik doğrulama seçeneği hem +Onboarding/model yapılandırma seçicilerinde Volcengine kimlik doğrulama seçeneği hem `volcengine/*` hem de `volcengine-plan/*` satırlarını tercih eder. Bu modeller henüz yüklenmemişse, OpenClaw boş bir sağlayıcı kapsamlı seçici göstermek yerine -filtrelenmemiş kataloğa geri döner. +filtresiz kataloğa geri döner. Kullanılabilir modeller: @@ -569,7 +573,7 @@ Kullanılabilir modeller: - `volcengine/glm-4-7-251222` (GLM 4.7) - `volcengine/deepseek-v3-2-251201` (DeepSeek V3.2 128K) -Coding modelleri (`volcengine-plan`): +Kodlama modelleri (`volcengine-plan`): - `volcengine-plan/ark-code-latest` - `volcengine-plan/doubao-seed-code` @@ -581,7 +585,7 @@ Coding modelleri (`volcengine-plan`): BytePlus ARK, uluslararası kullanıcılar için Volcano Engine ile aynı modellere erişim sağlar. -- Sağlayıcı: `byteplus` (coding: `byteplus-plan`) +- Sağlayıcı: `byteplus` (kodlama: `byteplus-plan`) - Kimlik doğrulama: `BYTEPLUS_API_KEY` - Örnek model: `byteplus-plan/ark-code-latest` - CLI: `openclaw onboard --auth-choice byteplus-api-key` @@ -594,13 +598,13 @@ BytePlus ARK, uluslararası kullanıcılar için Volcano Engine ile aynı modell } ``` -Katılım varsayılan olarak coding yüzeyini kullanır, ancak genel `byteplus/*` +Onboarding varsayılan olarak kodlama yüzeyini kullanır, ancak genel `byteplus/*` kataloğu da aynı anda kaydedilir. -Katılım/model yapılandırma seçicilerinde, BytePlus kimlik doğrulama seçeneği hem +Onboarding/model yapılandırma seçicilerinde BytePlus kimlik doğrulama seçeneği hem `byteplus/*` hem de `byteplus-plan/*` satırlarını tercih eder. Bu modeller henüz yüklenmemişse, OpenClaw boş bir sağlayıcı kapsamlı seçici göstermek yerine -filtrelenmemiş kataloğa geri döner. +filtresiz kataloğa geri döner. Kullanılabilir modeller: @@ -608,7 +612,7 @@ Kullanılabilir modeller: - `byteplus/kimi-k2-5-260127` (Kimi K2.5) - `byteplus/glm-4-7-251222` (GLM 4.7) -Coding modelleri (`byteplus-plan`): +Kodlama modelleri (`byteplus-plan`): - `byteplus-plan/ark-code-latest` - `byteplus-plan/doubao-seed-code` @@ -655,22 +659,44 @@ MiniMax, özel uç noktalar kullandığı için `models.providers` üzerinden ya - Kimlik doğrulama: `minimax` için `MINIMAX_API_KEY`; `minimax-portal` için `MINIMAX_OAUTH_TOKEN` veya `MINIMAX_API_KEY` -Kurulum ayrıntıları, model seçenekleri ve yapılandırma parçacıkları için bkz. [/providers/minimax](/tr/providers/minimax). +Kurulum ayrıntıları, model seçenekleri ve yapılandırma parçacıkları için [/providers/minimax](/tr/providers/minimax) sayfasına bakın. -MiniMax'ın Anthropic uyumlu akış yolunda, OpenClaw düşünmeyi -siz açıkça ayarlamadığınız sürece varsayılan olarak devre dışı bırakır ve `/fast on`, -`MiniMax-M2.7` modelini `MiniMax-M2.7-highspeed` olarak yeniden yazar. +MiniMax'in Anthropic uyumlu akış yolunda OpenClaw, +açıkça ayarlamadığınız sürece varsayılan olarak thinking'i devre dışı bırakır ve `/fast on` +`MiniMax-M2.7` değerini `MiniMax-M2.7-highspeed` olarak yeniden yazar. -Eklentiye ait yetenek ayrımı: +Plugin'e ait yetenek ayrımı: - Metin/sohbet varsayılanları `minimax/MiniMax-M2.7` üzerinde kalır -- Görsel oluşturma `minimax/image-01` veya `minimax-portal/image-01` olarak yapılır -- Görsel anlama, her iki MiniMax kimlik doğrulama yolunda da eklentiye ait `MiniMax-VL-01` kullanır -- Web araması sağlayıcı kimliği `minimax` üzerinde kalır +- Görsel oluşturma `minimax/image-01` veya `minimax-portal/image-01` olur +- Görsel anlama, her iki MiniMax kimlik doğrulama yolunda da Plugin'e ait `MiniMax-VL-01`'dir +- Web araması `minimax` sağlayıcı kimliğinde kalır + +### LM Studio + +LM Studio, yerel API'yi kullanan paketlenmiş bir provider Plugin'i olarak sunulur: + +- Sağlayıcı: `lmstudio` +- Kimlik doğrulama: `LM_API_TOKEN` +- Varsayılan çıkarım base URL'si: `http://localhost:1234/v1` + +Ardından bir model ayarlayın (`http://localhost:1234/api/v1/models` tarafından döndürülen kimliklerden biriyle değiştirin): + +```json5 +{ + agents: { + defaults: { model: { primary: "lmstudio/openai/gpt-oss-20b" } }, + }, +} +``` + +OpenClaw, keşif + otomatik yükleme için LM Studio'nun yerel `/api/v1/models` ve `/api/v1/models/load` +uç noktalarını, varsayılan olarak çıkarım için ise `/v1/chat/completions` uç noktasını kullanır. +Kurulum ve sorun giderme için [/providers/lmstudio](/tr/providers/lmstudio) sayfasına bakın. ### Ollama -Ollama, paketlenmiş bir sağlayıcı eklentisi olarak gelir ve Ollama'nın doğal API'sini kullanır: +Ollama, paketlenmiş bir provider Plugin'i olarak sunulur ve Ollama'nın yerel API'sini kullanır: - Sağlayıcı: `ollama` - Kimlik doğrulama: Gerekmez (yerel sunucu) @@ -690,21 +716,20 @@ ollama pull llama3.3 } ``` -Ollama, `OLLAMA_API_KEY` ile etkinleştirdiğinizde yerelde `http://127.0.0.1:11434` adresinde algılanır -ve paketlenmiş sağlayıcı eklentisi Ollama'yı doğrudan -`openclaw onboard` ve model seçiciye ekler. Katılım, bulut/yerel mod ve özel yapılandırma için -bkz. [/providers/ollama](/tr/providers/ollama). +`OLLAMA_API_KEY` ile katılım sağladığınızda Ollama yerel olarak `http://127.0.0.1:11434` adresinde algılanır ve paketlenmiş provider Plugin'i Ollama'yı doğrudan +`openclaw onboard` ve model seçiciye ekler. Onboarding, bulut/yerel mod ve özel yapılandırma için [/providers/ollama](/tr/providers/ollama) +sayfasına bakın. ### vLLM vLLM, yerel/self-hosted OpenAI uyumlu -sunucular için paketlenmiş bir sağlayıcı eklentisi olarak gelir: +sunucular için paketlenmiş bir provider Plugin'i olarak sunulur: - Sağlayıcı: `vllm` - Kimlik doğrulama: İsteğe bağlıdır (sunucunuza bağlıdır) - Varsayılan base URL: `http://127.0.0.1:8000/v1` -Yerelde otomatik keşfi etkinleştirmek için (sunucunuz kimlik doğrulamayı zorunlu kılmıyorsa herhangi bir değer çalışır): +Yerelde otomatik keşfe katılmak için (sunucunuz kimlik doğrulamayı zorlamıyorsa herhangi bir değer çalışır): ```bash export VLLM_API_KEY="vllm-local" @@ -720,19 +745,19 @@ Ardından bir model ayarlayın (`/v1/models` tarafından döndürülen kimlikler } ``` -Ayrıntılar için bkz. [/providers/vllm](/tr/providers/vllm). +Ayrıntılar için [/providers/vllm](/tr/providers/vllm) sayfasına bakın. ### SGLang SGLang, hızlı self-hosted -OpenAI uyumlu sunucular için paketlenmiş bir sağlayıcı eklentisi olarak gelir: +OpenAI uyumlu sunucular için paketlenmiş bir provider Plugin'i olarak sunulur: - Sağlayıcı: `sglang` - Kimlik doğrulama: İsteğe bağlıdır (sunucunuza bağlıdır) - Varsayılan base URL: `http://127.0.0.1:30000/v1` -Yerelde otomatik keşfi etkinleştirmek için (sunucunuz kimlik doğrulamayı -zorunlu kılmıyorsa herhangi bir değer çalışır): +Yerelde otomatik keşfe katılmak için (sunucunuz kimlik doğrulamayı +zorlamıyorsa herhangi bir değer çalışır): ```bash export SGLANG_API_KEY="sglang-local" @@ -748,7 +773,7 @@ Ardından bir model ayarlayın (`/v1/models` tarafından döndürülen kimlikler } ``` -Ayrıntılar için bkz. [/providers/sglang](/tr/providers/sglang). +Ayrıntılar için [/providers/sglang](/tr/providers/sglang) sayfasına bakın. ### Yerel proxy'ler (LM Studio, vLLM, LiteLLM vb.) @@ -766,7 +791,7 @@ Ayrıntılar için bkz. [/providers/sglang](/tr/providers/sglang). providers: { lmstudio: { baseUrl: "http://localhost:1234/v1", - apiKey: "LMSTUDIO_KEY", + apiKey: "${LM_API_TOKEN}", api: "openai-completions", models: [ { @@ -788,20 +813,20 @@ Ayrıntılar için bkz. [/providers/sglang](/tr/providers/sglang). Notlar: - Özel sağlayıcılar için `reasoning`, `input`, `cost`, `contextWindow` ve `maxTokens` isteğe bağlıdır. - Atlandığında OpenClaw şu varsayılanları kullanır: + Belirtilmediğinde OpenClaw varsayılan olarak şunları kullanır: - `reasoning: false` - `input: ["text"]` - `cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }` - `contextWindow: 200000` - `maxTokens: 8192` - Önerilir: proxy/model sınırlarınızla eşleşen açık değerler ayarlayın. -- Doğal olmayan uç noktalardaki `api: "openai-completions"` için (ana makinesi `api.openai.com` olmayan boş olmayan herhangi bir `baseUrl`), OpenClaw, desteklenmeyen `developer` rolleri için sağlayıcı 400 hatalarından kaçınmak amacıyla `compat.supportsDeveloperRole: false` değerini zorunlu kılar. -- Proxy tarzı OpenAI uyumlu yollar ayrıca doğal yalnızca-OpenAI istek - şekillendirmesini de atlar: `service_tier` yok, Responses `store` yok, istem önbelleği ipuçları yok, - OpenAI akıl yürütme uyumluluğu yük şekillendirmesi yok ve gizli OpenClaw atıf +- Yerel olmayan uç noktalardaki `api: "openai-completions"` için (`baseUrl` boş olmayan ve ana makinesi `api.openai.com` olmayan her URL), OpenClaw desteklenmeyen `developer` rolleri için sağlayıcı 400 hatalarını önlemek amacıyla `compat.supportsDeveloperRole: false` değerini zorunlu kılar. +- Proxy tarzı OpenAI uyumlu yollar, yerel OpenAI'ye özgü istek + şekillendirmesini de atlar: `service_tier` yok, Responses `store` yok, prompt-cache ipuçları yok, + OpenAI reasoning-compat payload şekillendirmesi yok ve gizli OpenClaw atıf üstbilgileri yok. -- `baseUrl` boşsa/atlanmışsa, OpenClaw varsayılan OpenAI davranışını korur (`api.openai.com` adresine çözülür). -- Güvenlik için, açıkça belirtilen `compat.supportsDeveloperRole: true` değeri bile doğal olmayan `openai-completions` uç noktalarında yine geçersiz kılınır. +- `baseUrl` boşsa/belirtilmemişse OpenClaw varsayılan OpenAI davranışını korur (bu da `api.openai.com` adresine çözülür). +- Güvenlik için, yerel olmayan `openai-completions` uç noktalarında açık bir `compat.supportsDeveloperRole: true` değeri yine de geçersiz kılınır. ## CLI örnekleri @@ -817,5 +842,5 @@ Ayrıca bkz.: tam yapılandırma örnekleri için [/gateway/configuration](/tr/g - [Models](/tr/concepts/models) — model yapılandırması ve takma adlar - [Model Failover](/tr/concepts/model-failover) — geri dönüş zincirleri ve yeniden deneme davranışı -- [Yapılandırma Başvurusu](/tr/gateway/configuration-reference#agent-defaults) — model yapılandırma anahtarları -- [Sağlayıcılar](/tr/providers) — sağlayıcı bazında kurulum kılavuzları +- [Configuration Reference](/tr/gateway/configuration-reference#agent-defaults) — model yapılandırma anahtarları +- [Providers](/tr/providers) — sağlayıcı bazında kurulum kılavuzları diff --git a/docs/tr/concepts/qa-e2e-automation.md b/docs/tr/concepts/qa-e2e-automation.md index 65115af43..dafdc1807 100644 --- a/docs/tr/concepts/qa-e2e-automation.md +++ b/docs/tr/concepts/qa-e2e-automation.md @@ -2,36 +2,36 @@ read_when: - qa-lab veya qa-channel'ı genişletme - Depo destekli QA senaryoları ekleme - - Gateway panosu etrafında daha yüksek gerçekçilikli QA otomasyonu oluşturma -summary: qa-lab, qa-channel, seedlenmiş senaryolar ve protokol raporları için özel QA otomasyon yapısı -title: QA Uçtan Uca Otomasyon + - Gateway panosu etrafında daha yüksek gerçekçiliğe sahip QA otomasyonu oluşturma +summary: qa-lab, qa-channel, tohumlanmış senaryolar ve protokol raporları için özel QA otomasyon yapısı +title: QA E2E Otomasyonu x-i18n: - generated_at: "2026-04-12T23:28:03Z" + generated_at: "2026-04-13T08:50:47Z" model: gpt-5.4 provider: openai - source_hash: b9fe27dc049823d5e3eb7ae1eac6aad21ed9e917425611fb1dbcb28ab9210d5e + source_hash: a4a4f5c765163565c95c2a071f201775fd9d8d60cad4ff25d71e4710559c1570 source_path: concepts/qa-e2e-automation.md workflow: 15 --- -# QA Uçtan Uca Otomasyon +# QA E2E Otomasyonu Özel QA yığını, OpenClaw'ı tek birim testinin yapabileceğinden daha gerçekçi, -kanal biçimli bir şekilde çalıştırmak için tasarlanmıştır. +kanal biçimli bir şekilde çalıştırmayı amaçlar. Mevcut parçalar: - `extensions/qa-channel`: DM, kanal, ileti dizisi, tepki, düzenleme ve silme yüzeylerine sahip sentetik mesaj kanalı. - `extensions/qa-lab`: transkripti gözlemlemek, - gelen mesajları enjekte etmek ve bir Markdown raporu dışa aktarmak için hata ayıklayıcı arayüzü ve QA veri yolu. + gelen mesajları enjekte etmek ve bir Markdown raporu dışa aktarmak için hata ayıklayıcı UI ve QA veri yolu. - `qa/`: başlangıç görevi ve temel QA senaryoları için depo destekli tohum varlıkları. -Mevcut QA operatörü akışı iki panelli bir QA sitesidir: +Mevcut QA operatör akışı iki bölmeli bir QA sitesidir: -- Sol: ajan ile Gateway panosu (Control UI). -- Sağ: Slack benzeri transkript ve senaryo planını gösteren QA Lab. +- Sol: ajanla birlikte Gateway panosu (Control UI). +- Sağ: Slack benzeri transkripti ve senaryo planını gösteren QA Lab. Bunu şu komutla çalıştırın: @@ -39,13 +39,13 @@ Bunu şu komutla çalıştırın: pnpm qa:lab:up ``` -Bu, QA sitesini derler, Docker destekli gateway hattını başlatır ve -bir operatörün veya otomasyon döngüsünün ajana bir QA görevi verebildiği, -gerçek kanal davranışını gözlemleyebildiği ve neyin çalıştığını, neyin başarısız olduğunu -veya neyin engelli kaldığını kaydedebildiği QA Lab sayfasını kullanıma açar. +Bu, QA sitesini oluşturur, Docker destekli gateway hattını başlatır ve +bir operatörün veya otomasyon döngüsünün ajana bir QA +görevi verebildiği, gerçek kanal davranışını gözlemleyebildiği ve neyin çalıştığını, başarısız olduğunu veya +engelli kaldığını kaydedebildiği QA Lab sayfasını açığa çıkarır. -Docker imajını her seferinde yeniden derlemeden daha hızlı QA Lab UI yinelemesi -için, yığını bind-mounted bir QA Lab paketiyle başlatın: +Docker image'ını her seferinde yeniden oluşturmadan daha hızlı QA Lab UI yinelemesi için, +yığını bind-mounted bir QA Lab paketiyle başlatın: ```bash pnpm openclaw qa docker-build-image @@ -54,90 +54,95 @@ pnpm qa:lab:up:fast pnpm qa:lab:watch ``` -`qa:lab:up:fast`, Docker servislerini önceden derlenmiş bir imaj üzerinde tutar ve -`extensions/qa-lab/web/dist` dizinini `qa-lab` kapsayıcısına bind mount eder. `qa:lab:watch` -bu paketi değişiklik olduğunda yeniden derler ve QA Lab varlık karması değiştiğinde -tarayıcı otomatik olarak yeniden yüklenir. +`qa:lab:up:fast`, Docker servislerini önceden oluşturulmuş bir image üzerinde tutar ve +`extensions/qa-lab/web/dist` dizinini `qa-lab` container'ına bind-mount eder. `qa:lab:watch` +değişiklikte bu paketi yeniden oluşturur ve QA Lab +varlık hash'i değiştiğinde tarayıcı otomatik olarak yeniden yüklenir. -Taşıma açısından gerçek bir Matrix duman testi hattı için şunu çalıştırın: +Taşıma açısından gerçek bir Matrix smoke hattı için şunu çalıştırın: ```bash pnpm openclaw qa matrix ``` -Bu hat, Docker içinde tek kullanımlık bir Tuwunel homeserver sağlar, -geçici sürücü, SUT ve gözlemci kullanıcılarını kaydeder, bir özel oda oluşturur, -ardından gerçek Matrix Plugin'ini bir QA gateway alt süreci içinde çalıştırır. Canlı taşıma hattı, -alt süreç yapılandırmasını test edilen taşımayla sınırlı tutar; böylece Matrix, -alt süreç yapılandırmasında `qa-channel` olmadan çalışır. +Bu hat, Docker içinde tek kullanımlık bir Tuwunel homeserver sağlar, geçici +sürücü, SUT ve gözlemci kullanıcıları kaydeder, bir özel oda oluşturur, ardından +gerçek Matrix Plugin'ini bir QA gateway child içinde çalıştırır. Canlı taşıma hattı child config'i +test edilen taşımaya kapsamlı tutar; bu nedenle Matrix, child config içinde +`qa-channel` olmadan çalışır. -Taşıma açısından gerçek bir Telegram duman testi hattı için şunu çalıştırın: +Taşıma açısından gerçek bir Telegram smoke hattı için şunu çalıştırın: ```bash pnpm openclaw qa telegram ``` -Bu hat, tek kullanımlık bir sunucu sağlamak yerine bir gerçek özel Telegram grubunu hedefler. +Bu hat, tek kullanımlık bir sunucu sağlamak yerine gerçek bir özel Telegram grubunu hedefler. `OPENCLAW_QA_TELEGRAM_GROUP_ID`, `OPENCLAW_QA_TELEGRAM_DRIVER_BOT_TOKEN` ve `OPENCLAW_QA_TELEGRAM_SUT_BOT_TOKEN` gerektirir; ayrıca aynı -özel grupta iki farklı bot gerekir. SUT botunun bir Telegram kullanıcı adına sahip olması gerekir ve -bottan bota gözlem, her iki botta da `@BotFather` içinde -Bot-to-Bot Communication Mode etkin olduğunda en iyi şekilde çalışır. +özel grupta iki ayrı bot gerekir. SUT botunun bir Telegram kullanıcı adı olmalıdır ve +botlar arası gözlem, her iki botta da +`@BotFather` içinde Bot-to-Bot Communication Mode etkinleştirildiğinde en iyi şekilde çalışır. -Canlı taşıma hatları artık her birinin kendi senaryo listesi şeklini icat etmesi yerine -ortak, daha küçük bir sözleşmeyi paylaşır: +Canlı taşıma hatları artık her birinin kendi senaryo listesi şeklini +icat etmesi yerine ortak, daha küçük bir sözleşmeyi paylaşıyor: -`qa-channel`, geniş sentetik ürün davranışı paketi olarak kalır ve +`qa-channel`, geniş sentetik ürün davranışı paketi olmaya devam eder ve canlı taşıma kapsam matriksinin bir parçası değildir. -| Hat | Canary | Mention gating | Allowlist block | Üst düzey yanıt | Yeniden başlatma sonrası sürdürme | İleti dizisi takibi | İleti dizisi izolasyonu | Tepki gözlemi | Yardım komutu | -| -------- | ------ | -------------- | --------------- | --------------- | --------------------------------- | ------------------- | ----------------------- | ------------- | ------------- | -| Matrix | x | x | x | x | x | x | x | x | | -| Telegram | x | | | | | | | | x | +| Hat | Canary | Mention gating | Allowlist block | Üst düzey yanıt | Yeniden başlatma sonrası sürdürme | İleti dizisi takibi | İleti dizisi yalıtımı | Tepki gözlemi | Yardım komutu | +| -------- | ------ | -------------- | --------------- | --------------- | --------------------------------- | ------------------- | -------------------- | ------------- | ------------- | +| Matrix | x | x | x | x | x | x | x | x | | +| Telegram | x | | | | | | | | x | Bu, `qa-channel`'ı geniş ürün davranışı paketi olarak korurken Matrix, -Telegram ve gelecekteki canlı taşıma sistemlerinin açık bir taşıma sözleşmesi -kontrol listesini paylaşmasını sağlar. +Telegram ve gelecekteki canlı taşımaların tek bir açık +taşıma sözleşmesi kontrol listesini paylaşmasını sağlar. -Docker'ı QA yoluna dahil etmeden tek kullanımlık bir Linux VM hattı için şunu çalıştırın: +QA yoluna Docker katmadan tek kullanımlık bir Linux VM hattı için şunu çalıştırın: ```bash pnpm openclaw qa suite --runner multipass --scenario channel-chat-baseline ``` -Bu, yeni bir Multipass misafirini başlatır, bağımlılıkları kurar, OpenClaw'ı -misafir içinde derler, `qa suite` çalıştırır, ardından normal QA raporunu ve -özeti tekrar ana makinede `.artifacts/qa-e2e/...` içine kopyalar. -Ana makinedeki `qa suite` ile aynı senaryo seçim davranışını yeniden kullanır. -Ana makine ve Multipass paket çalıştırmaları, varsayılan olarak izole gateway çalışanlarıyla -birden çok seçilmiş senaryoyu paralel çalıştırır; en fazla 64 çalışan veya seçilen -senaryo sayısı kadar. Çalışan sayısını ayarlamak için `--concurrency `, +Bu, yeni bir Multipass guest'i başlatır, bağımlılıkları kurar, guest içinde OpenClaw'ı oluşturur, +`qa suite` çalıştırır, ardından normal QA raporunu ve +özetini host üzerindeki `.artifacts/qa-e2e/...` dizinine geri kopyalar. +Host üzerindeki `qa suite` ile aynı senaryo seçimi davranışını yeniden kullanır. +Host ve Multipass suite çalıştırmaları, varsayılan olarak +yalıtılmış gateway worker'larıyla birden çok seçilmiş senaryoyu paralel çalıştırır; en fazla 64 worker veya seçilen +senaryo sayısı kullanılır. Worker sayısını ayarlamak için `--concurrency `, seri yürütme için ise `--concurrency 1` kullanın. -Canlı çalıştırmalar, misafir için pratik olan desteklenen QA kimlik doğrulama girdilerini iletir: -ortam değişkeni tabanlı sağlayıcı anahtarları, QA canlı sağlayıcı yapılandırma yolu ve -varsa `CODEX_HOME`. Misafirin bağlanmış çalışma alanı üzerinden geri yazabilmesi için -`--output-dir` değerini depo kökü altında tutun. +Canlı çalıştırmalar, guest için pratik olan desteklenen QA kimlik doğrulama girdilerini iletir: +env tabanlı sağlayıcı anahtarları, QA canlı sağlayıcı config yolu ve +varsa `CODEX_HOME`. Guest'in +bağlı çalışma alanı üzerinden geri yazabilmesi için `--output-dir` değerini depo kökü altında tutun. ## Depo destekli tohumlar -Tohum varlıkları `qa/` altında bulunur: +Tohum varlıkları `qa/` içinde bulunur: - `qa/scenarios/index.md` - `qa/scenarios/*.md` -Bunlar kasıtlı olarak git içinde tutulur; böylece QA planı hem insanlar hem de -ajan tarafından görülebilir. +Bunlar kasıtlı olarak git içindedir; böylece QA planı hem insanlar hem de +ajan için görünür olur. -`qa-lab` genel bir markdown çalıştırıcısı olarak kalmalıdır. Her senaryo markdown dosyası +`qa-lab` genel amaçlı bir markdown çalıştırıcısı olarak kalmalıdır. Her senaryo markdown dosyası tek bir test çalıştırmasının doğruluk kaynağıdır ve şunları tanımlamalıdır: - senaryo meta verileri - doküman ve kod referansları - isteğe bağlı Plugin gereksinimleri -- isteğe bağlı gateway yapılandırma yaması +- isteğe bağlı gateway config yaması - yürütülebilir `qa-flow` +`qa-flow`'u destekleyen yeniden kullanılabilir çalışma zamanı yüzeyinin genel amaçlı +ve kesitler arası kalmasına izin verilir. Örneğin markdown senaryoları, +özel durumlu bir çalıştırıcı eklemeden gömülü Control UI'ı +Gateway `browser.request` yüzeyi üzerinden süren tarayıcı tarafı yardımcılarıyla taşıma tarafı yardımcılarını birleştirebilir. + Temel liste, şunları kapsayacak kadar geniş kalmalıdır: - DM ve kanal sohbeti @@ -146,25 +151,25 @@ Temel liste, şunları kapsayacak kadar geniş kalmalıdır: - Cron geri çağrıları - bellekten geri çağırma - model değiştirme -- alt ajan devretme +- alt ajan devri - depo okuma ve doküman okuma - Lobster Invaders gibi küçük bir derleme görevi ## Taşıma bağdaştırıcıları -`qa-lab`, markdown QA senaryoları için genel bir taşıma katmanına sahiptir. -`qa-channel`, bu katmandaki ilk bağdaştırıcıdır, ancak tasarım hedefi daha geniştir: -gelecekteki gerçek veya sentetik kanallar, taşımaya özel bir QA çalıştırıcısı eklemek yerine -aynı paket çalıştırıcısına bağlanmalıdır. +`qa-lab`, markdown QA senaryoları için genel bir taşıma yüzeyine sahiptir. +`qa-channel`, bu yüzeydeki ilk bağdaştırıcıdır; ancak tasarım hedefi daha geniştir: +gelecekteki gerçek veya sentetik kanallar, taşımaya özgü bir QA çalıştırıcısı eklemek yerine +aynı suite çalıştırıcısına takılmalıdır. Mimari düzeyde ayrım şöyledir: -- `qa-lab`, genel senaryo yürütmeyi, çalışan eşzamanlılığını, yapıt yazmayı ve raporlamayı yönetir. -- taşıma bağdaştırıcısı, gateway yapılandırmasını, hazır olma durumunu, gelen ve giden gözlemi, taşıma eylemlerini ve normalize edilmiş taşıma durumunu yönetir. -- `qa/scenarios/` altındaki markdown senaryo dosyaları test çalıştırmasını tanımlar; `qa-lab` bunları yürüten yeniden kullanılabilir çalışma zamanı yüzeyini sağlar. +- `qa-lab`, genel senaryo yürütmeyi, worker eşzamanlılığını, artifact yazmayı ve raporlamayı yönetir. +- taşıma bağdaştırıcısı gateway config'ini, hazır olma durumunu, gelen ve giden gözlemi, taşıma eylemlerini ve normalize edilmiş taşıma durumunu yönetir. +- `qa/scenarios/` altındaki markdown senaryo dosyaları test çalıştırmasını tanımlar; bunları yürüten yeniden kullanılabilir çalışma zamanı yüzeyini `qa-lab` sağlar. -Yeni kanal bağdaştırıcıları için bakımcıya yönelik uyarlama rehberi -[Testing](/tr/help/testing#adding-a-channel-to-qa) içinde yer alır. +Yeni kanal bağdaştırıcıları için bakımcıya yönelik benimseme yönergeleri +[Testing](/tr/help/testing#adding-a-channel-to-qa) içinde bulunur. ## Raporlama @@ -176,8 +181,8 @@ Rapor şu sorulara yanıt vermelidir: - Ne engelli kaldı - Hangi takip senaryolarını eklemeye değer -Karakter ve stil kontrolleri için, aynı senaryoyu birden çok canlı model referansı üzerinde -çalıştırın ve değerlendirilmiş bir Markdown raporu yazın: +Karakter ve stil kontrolleri için aynı senaryoyu birden çok canlı model +ref'i üzerinde çalıştırın ve değerlendirilmiş bir Markdown raporu yazın: ```bash pnpm openclaw qa character-eval \ @@ -196,35 +201,35 @@ pnpm openclaw qa character-eval \ --judge-concurrency 16 ``` -Komut Docker değil, yerel QA gateway alt süreçleri çalıştırır. Karakter değerlendirme -senaryoları kişiliği `SOUL.md` üzerinden ayarlamalı, ardından sohbet, çalışma alanı yardımı -ve küçük dosya görevleri gibi sıradan kullanıcı turlarını çalıştırmalıdır. Aday modele -değerlendirildiği söylenmemelidir. Komut her tam transkripti korur, temel çalıştırma -istatistiklerini kaydeder, ardından değerlendirme modellerinden hızlı modda ve -`xhigh` akıl yürütme ile çalıştırmaları doğallık, hava ve mizah açısından sıralamalarını ister. +Komut, Docker değil, yerel QA gateway child süreçlerini çalıştırır. Character eval +senaryoları persona'yı `SOUL.md` üzerinden ayarlamalı, ardından sohbet, +çalışma alanı yardımı ve küçük dosya görevleri gibi sıradan kullanıcı turlarını çalıştırmalıdır. Aday modele +değerlendirildiği söylenmemelidir. Komut her tam +transkripti korur, temel çalışma istatistiklerini kaydeder, ardından değerlendirme modellerinden fast mode ile +`xhigh` akıl yürütme kullanarak çalıştırmaları doğallık, hava ve mizaha göre sıralamalarını ister. Sağlayıcıları karşılaştırırken `--blind-judge-models` kullanın: değerlendirme istemi yine de -her transkripti ve çalıştırma durumunu alır, ancak aday referansları `candidate-01` gibi nötr -etiketlerle değiştirilir; rapor, ayrıştırmadan sonra sıralamaları gerçek referanslara geri eşler. -Aday çalıştırmalar varsayılan olarak `high` düşünme düzeyini, bunu destekleyen OpenAI modelleri içinse -`xhigh` düzeyini kullanır. Belirli bir adayı satır içinde geçersiz kılmak için -`--model provider/model,thinking=` kullanın. `--thinking ` hâlâ genel bir -yedek ayar belirler ve eski `--model-thinking ` biçimi uyumluluk için -korunur. -OpenAI aday referansları varsayılan olarak hızlı modu kullanır; böylece sağlayıcının desteklediği -yerlerde öncelikli işleme kullanılır. Tek bir aday veya değerlendirme modeli için geçersiz kılma -gerekiyorsa satır içinde `,fast`, `,no-fast` veya `,fast=false` ekleyin. Hızlı modu her aday model için -zorla etkinleştirmek istediğinizde yalnızca `--fast` geçin. Aday ve değerlendirme süreleri, -karşılaştırmalı analiz için rapora kaydedilir; ancak değerlendirme istemleri açıkça +her transkripti ve çalışma durumunu alır, ancak aday ref'leri +`candidate-01` gibi nötr etiketlerle değiştirilir; rapor ayrıştırmadan sonra sıralamaları gerçek ref'lere geri eşler. +Aday çalıştırmalar varsayılan olarak `high` thinking kullanır; bunu destekleyen OpenAI modelleri için +`xhigh` kullanılır. Belirli bir adayı satır içinde +`--model provider/model,thinking=` ile geçersiz kılın. `--thinking ` hâlâ +genel bir yedek değer ayarlar ve eski `--model-thinking ` biçimi +uyumluluk için korunur. +OpenAI aday ref'leri varsayılan olarak fast mode kullanır; böylece sağlayıcının bunu desteklediği yerlerde +öncelikli işleme kullanılır. Tek bir aday veya değerlendirici için geçersiz kılma gerektiğinde satır içinde +`,fast`, `,no-fast` veya `,fast=false` ekleyin. Fast mode'u her aday model için +zorla açmak istediğinizde yalnızca `--fast` geçin. Aday ve değerlendirici süreleri +kıyaslama analizi için rapora kaydedilir, ancak değerlendirici istemleri açıkça hıza göre sıralama yapılmamasını söyler. -Aday ve değerlendirme modeli çalıştırmalarının her ikisi de varsayılan olarak eşzamanlılık 16 ile gelir. -Sağlayıcı sınırları veya yerel gateway yükü çalıştırmayı fazla gürültülü hâle getiriyorsa -`--concurrency` veya `--judge-concurrency` değerini düşürün. -Hiç aday `--model` geçirilmediğinde, karakter değerlendirmesi varsayılan olarak +Aday ve değerlendirici model çalıştırmalarının her ikisi de varsayılan olarak 16 eşzamanlılıkla çalışır. +Sağlayıcı sınırları veya yerel gateway +yükü bir çalıştırmayı fazla gürültülü hale getiriyorsa `--concurrency` veya `--judge-concurrency` değerini düşürün. +Aday `--model` geçilmediğinde character eval varsayılan olarak `openai/gpt-5.4`, `openai/gpt-5.2`, `openai/gpt-5`, `anthropic/claude-opus-4-6`, `anthropic/claude-sonnet-4-6`, `zai/glm-5.1`, `moonshot/kimi-k2.5` ve `google/gemini-3.1-pro-preview` kullanır. -Hiç `--judge-model` geçirilmediğinde, değerlendirme modelleri varsayılan olarak +Değerlendirici `--judge-model` geçilmediğinde değerlendiriciler varsayılan olarak `openai/gpt-5.4,thinking=xhigh,fast` ve `anthropic/claude-opus-4-6,thinking=high` olur. diff --git a/docs/tr/gateway/local-models.md b/docs/tr/gateway/local-models.md index e61bac54d..cf994fafb 100644 --- a/docs/tr/gateway/local-models.md +++ b/docs/tr/gateway/local-models.md @@ -1,28 +1,28 @@ --- read_when: - - Modelleri kendi GPU kutunuzdan sunmak istiyorsunuz - - LM Studio veya OpenAI uyumlu bir proxy'yi yapılandırıyorsunuz - - En güvenli yerel model rehberliğine ihtiyacınız var -summary: OpenClaw'u yerel LLM'lerde çalıştırın (LM Studio, vLLM, LiteLLM, özel OpenAI uç noktaları) + - Modelleri kendi GPU makinenizden sunmak istiyorsunuz + - LM Studio’yu veya OpenAI uyumlu bir proxy’yi yapılandırıyorsunuz + - En güvenli yerel model yönlendirmesine ihtiyacınız var +summary: OpenClaw'ı yerel LLM'lerde çalıştırın (LM Studio, vLLM, LiteLLM, özel OpenAI uç noktaları) title: Yerel Modeller x-i18n: - generated_at: "2026-04-08T02:14:39Z" + generated_at: "2026-04-13T08:50:44Z" model: gpt-5.4 provider: openai - source_hash: d619d72b0e06914ebacb7e9f38b746caf1b9ce8908c9c6638c3acdddbaa025e8 + source_hash: 3ecb61b3e6e34d3666f9b688cd694d92c5fb211cf8c420fa876f7ccf5789154a source_path: gateway/local-models.md workflow: 15 --- # Yerel modeller -Yerel kullanım mümkündür, ancak OpenClaw geniş bağlam ve istem enjeksiyonuna karşı güçlü savunmalar bekler. Küçük kartlar bağlamı kısaltır ve güvenliği sızdırır. Yüksek hedefleyin: **≥2 tam donanımlı Mac Studio veya eşdeğer GPU sistemi (~$30k+)**. Tek bir **24 GB** GPU yalnızca daha hafif istemlerde ve daha yüksek gecikmeyle işe yarar. Çalıştırabildiğiniz **en büyük / tam boyutlu model varyantını** kullanın; aşırı nicemlenmiş veya “küçük” checkpoint'ler istem enjeksiyonu riskini artırır (bkz. [Security](/tr/gateway/security)). +Yerel kullanım mümkündür, ancak OpenClaw büyük bağlam ve prompt injection’a karşı güçlü savunmalar bekler. Küçük kartlar bağlamı kırpar ve güvenliği zayıflatır. Hedefinizi yüksek tutun: **en az 2 tam donanımlı Mac Studio veya eşdeğer GPU sistemi (~30 bin $+)**. Tek bir **24 GB** GPU, yalnızca daha hafif prompt’larda ve daha yüksek gecikmeyle çalışır. Çalıştırabildiğiniz **en büyük / tam boyutlu model varyantını kullanın**; agresif biçimde kuantize edilmiş veya “small” checkpoint’ler prompt injection riskini artırır (bkz. [Güvenlik](/tr/gateway/security)). -En düşük sürtünmeli yerel kurulum istiyorsanız, [Ollama](/tr/providers/ollama) ve `openclaw onboard` ile başlayın. Bu sayfa, daha üst düzey yerel yığınlar ve özel OpenAI uyumlu yerel sunucular için görüşlü rehberdir. +En düşük sürtünmeli yerel kurulum istiyorsanız, [LM Studio](/tr/providers/lmstudio) veya [Ollama](/tr/providers/ollama) ile başlayın ve `openclaw onboard` kullanın. Bu sayfa, daha üst seviye yerel yığınlar ve özel OpenAI uyumlu yerel sunucular için görüş odaklı rehberdir. ## Önerilen: LM Studio + büyük yerel model (Responses API) -Şu anki en iyi yerel yığın. LM Studio içinde büyük bir model yükleyin (örneğin tam boyutlu bir Qwen, DeepSeek veya Llama derlemesi), yerel sunucuyu etkinleştirin (varsayılan `http://127.0.0.1:1234`) ve akıl yürütmeyi son metinden ayrı tutmak için Responses API kullanın. +Şu anda en iyi yerel yığın. LM Studio’da büyük bir model yükleyin (örneğin tam boyutlu bir Qwen, DeepSeek veya Llama derlemesi), yerel sunucuyu etkinleştirin (varsayılan `http://127.0.0.1:1234`) ve akıl yürütmeyi nihai metinden ayrı tutmak için Responses API kullanın. ```json5 { @@ -59,18 +59,18 @@ En düşük sürtünmeli yerel kurulum istiyorsanız, [Ollama](/tr/providers/oll } ``` -**Kurulum kontrol listesi** +**Kurulum denetim listesi** -- LM Studio'yu yükleyin: [https://lmstudio.ai](https://lmstudio.ai) -- LM Studio içinde **mevcut en büyük model derlemesini** indirin (“small”/yoğun biçimde nicemlenmiş varyantlardan kaçının), sunucuyu başlatın ve `http://127.0.0.1:1234/v1/models` içinde listelendiğini doğrulayın. -- `my-local-model` değerini LM Studio'da gösterilen gerçek model kimliğiyle değiştirin. +- LM Studio’yu kurun: [https://lmstudio.ai](https://lmstudio.ai) +- LM Studio’da, **mevcut en büyük model derlemesini** indirin (“small”/ağır kuantize edilmiş varyantlardan kaçının), sunucuyu başlatın ve `http://127.0.0.1:1234/v1/models` çıktısında listelendiğini doğrulayın. +- `my-local-model` değerini LM Studio’da gösterilen gerçek model kimliğiyle değiştirin. - Modeli yüklü tutun; soğuk yükleme başlangıç gecikmesi ekler. - LM Studio derlemeniz farklıysa `contextWindow`/`maxTokens` değerlerini ayarlayın. -- WhatsApp için yalnızca son metnin gönderilmesi amacıyla Responses API'ye bağlı kalın. +- WhatsApp için yalnızca nihai metnin gönderilmesi amacıyla Responses API kullanın. -Yerelde çalışırken bile barındırılan modelleri yapılandırılmış tutun; yedeklerin kullanılabilir kalması için `models.mode: "merge"` kullanın. +Yerelde çalıştırıyor olsanız bile barındırılan modelleri yapılandırılmış tutun; geri dönüşlerin kullanılabilir kalması için `models.mode: "merge"` kullanın. -### Hibrit yapılandırma: barındırılan birincil, yerel yedek +### Hibrit yapılandırma: barındırılan birincil, yerel geri dönüş ```json5 { @@ -111,18 +111,18 @@ Yerelde çalışırken bile barındırılan modelleri yapılandırılmış tutun } ``` -### Önce yerel, barındırılan güvenlik ağıyla +### Yerel öncelikli, barındırılan güvenlik ağıyla -Birincil ve yedek sırasını değiştirin; yerel kutu devre dışı kaldığında Sonnet veya Opus'a geri dönebilmek için aynı sağlayıcı bloğunu ve `models.mode: "merge"` ayarını koruyun. +Birincil ve geri dönüş sırasını değiştirin; yerel makine devre dışı kaldığında Sonnet veya Opus’a geri dönebilmek için aynı sağlayıcı bloğunu ve `models.mode: "merge"` ayarını koruyun. ### Bölgesel barındırma / veri yönlendirme -- Barındırılan MiniMax/Kimi/GLM varyantları OpenRouter üzerinde bölgeye sabitlenmiş uç noktalarla da vardır (ör. ABD'de barındırılan). Trafiği seçtiğiniz yargı alanında tutarken Anthropic/OpenAI yedeklerini de kullanabilmek için orada bölgesel varyantı seçin ve `models.mode: "merge"` kullanmaya devam edin. -- Yalnızca yerel kullanım, gizlilik açısından en güçlü yoldur; barındırılan bölgesel yönlendirme, sağlayıcı özelliklerine ihtiyaç duyduğunuz ama veri akışı üzerinde kontrol istediğiniz durumlarda orta yoldur. +- Barındırılan MiniMax/Kimi/GLM varyantları, bölgeye sabitlenmiş uç noktalarla OpenRouter üzerinde de bulunur (ör. ABD’de barındırılan). Trafiği seçtiğiniz yargı alanında tutmak için oradaki bölgesel varyantı seçin; yine de Anthropic/OpenAI geri dönüşleri için `models.mode: "merge"` kullanın. +- Yalnızca yerel kullanım en güçlü gizlilik yoludur; sağlayıcı özelliklerine ihtiyaç duyuyor ama veri akışı üzerinde kontrol istiyorsanız, barındırılan bölgesel yönlendirme orta yoldur. -## Diğer OpenAI uyumlu yerel proxy'ler +## Diğer OpenAI uyumlu yerel proxy’ler -vLLM, LiteLLM, OAI-proxy veya özel gateway'ler, OpenAI tarzı bir `/v1` uç noktası sunuyorlarsa çalışır. Yukarıdaki sağlayıcı bloğunu kendi uç noktanız ve model kimliğinizle değiştirin: +vLLM, LiteLLM, OAI-proxy veya özel gateway’ler, OpenAI tarzı bir `/v1` uç noktası sunuyorlarsa çalışır. Yukarıdaki sağlayıcı bloğunu kendi uç noktanız ve model kimliğinizle değiştirin: ```json5 { @@ -150,25 +150,25 @@ vLLM, LiteLLM, OAI-proxy veya özel gateway'ler, OpenAI tarzı bir `/v1` uç nok } ``` -Barındırılan modellerin yedek olarak kullanılabilir kalması için `models.mode: "merge"` kullanmaya devam edin. +Barındırılan modellerin geri dönüş olarak kullanılabilir kalması için `models.mode: "merge"` ayarını koruyun. -Yerel/proxy'lenmiş `/v1` arka uçları için davranış notu: +Yerel/proxy’lenmiş `/v1` arka uçları için davranış notu: -- OpenClaw bunları yerel OpenAI uç noktaları olarak değil, proxy tarzı OpenAI uyumlu rotalar olarak ele alır -- yerel OpenAI'ye özgü istek şekillendirme burada uygulanmaz: `service_tier` yoktur, Responses `store` yoktur, OpenAI akıl yürütme uyumluluğu yük şekillendirmesi yoktur ve istem önbelleği ipuçları yoktur -- gizli OpenClaw atıf başlıkları (`originator`, `version`, `User-Agent`) bu özel proxy URL'lerine eklenmez +- OpenClaw bunları yerel OpenAI uç noktaları değil, proxy tarzı OpenAI uyumlu yollar olarak ele alır +- yalnızca yerel OpenAI’ye özgü istek şekillendirme burada uygulanmaz: `service_tier` yoktur, Responses `store` yoktur, OpenAI reasoning uyumluluk payload şekillendirmesi yoktur ve prompt önbelleği ipuçları yoktur +- gizli OpenClaw ilişkilendirme başlıkları (`originator`, `version`, `User-Agent`) bu özel proxy URL’lerine eklenmez Daha katı OpenAI uyumlu arka uçlar için uyumluluk notları: -- Bazı sunucular Chat Completions üzerinde yapılandırılmış içerik bölümü dizileri değil, yalnızca string `messages[].content` kabul eder. Bu uç noktalar için `models.providers..models[].compat.requiresStringContent: true` ayarlayın. -- Daha küçük veya daha katı bazı yerel arka uçlar, özellikle araç şemaları dahil edildiğinde, OpenClaw'un tam ajan çalışma zamanı istem şekliyle kararsız olabilir. Arka uç küçük doğrudan `/v1/chat/completions` çağrılarında çalışıyor ancak normal OpenClaw ajan turlarında başarısız oluyorsa, önce `models.providers..models[].compat.supportsTools: false` deneyin. -- Arka uç hâlâ yalnızca daha büyük OpenClaw çalıştırmalarında başarısız oluyorsa, kalan sorun genellikle OpenClaw'un taşıma katmanı değil, üst akış model/sunucu kapasitesi veya bir arka uç hatasıdır. +- Bazı sunucular, Chat Completions içinde yapılandırılmış içerik-parça dizileri yerine yalnızca string `messages[].content` kabul eder. Bu tür uç noktalar için `models.providers..models[].compat.requiresStringContent: true` ayarını yapın. +- Bazı daha küçük veya daha katı yerel arka uçlar, özellikle araç şemaları dahil edildiğinde OpenClaw’ın tam agent-runtime prompt biçimiyle kararsız çalışır. Arka uç küçük doğrudan `/v1/chat/completions` çağrılarında çalışıyor ama normal OpenClaw agent dönüşlerinde başarısız oluyorsa, önce `models.providers..models[].compat.supportsTools: false` deneyin. +- Arka uç yalnızca daha büyük OpenClaw çalıştırmalarında hâlâ başarısız oluyorsa, kalan sorun genellikle OpenClaw’ın taşıma katmanı değil, yukarı akış model/sunucu kapasitesi veya bir arka uç hatasıdır. ## Sorun giderme -- Gateway proxy'ye ulaşabiliyor mu? `curl http://127.0.0.1:1234/v1/models`. -- LM Studio modeli kaldırılmış mı? Yeniden yükleyin; soğuk başlangıç yaygın bir “takılı kalma” nedenidir. -- Bağlam hataları mı var? `contextWindow` değerini düşürün veya sunucu sınırınızı artırın. -- OpenAI uyumlu sunucu `messages[].content ... expected a string` döndürüyor mu? Bu model girdisine `compat.requiresStringContent: true` ekleyin. -- Doğrudan küçük `/v1/chat/completions` çağrıları çalışıyor ama `openclaw infer model run` Gemma veya başka bir yerel modelde başarısız mı oluyor? Önce `compat.supportsTools: false` ile araç şemalarını devre dışı bırakın, sonra yeniden test edin. Sunucu hâlâ yalnızca daha büyük OpenClaw istemlerinde çöküyorsa, bunu üst akış sunucu/model sınırlaması olarak değerlendirin. -- Güvenlik: yerel modeller sağlayıcı tarafı filtreleri atlar; istem enjeksiyonunun etki alanını sınırlamak için ajanları dar tutun ve sıkıştırmayı açık bırakın. +- Gateway proxy’ye ulaşabiliyor mu? `curl http://127.0.0.1:1234/v1/models`. +- LM Studio modeli yükten mi düştü? Yeniden yükleyin; soğuk başlangıç, yaygın bir “takılı kalma” nedenidir. +- Bağlam hataları mı alıyorsunuz? `contextWindow` değerini düşürün veya sunucu sınırınızı yükseltin. +- OpenAI uyumlu sunucu `messages[].content ... expected a string` mı döndürüyor? O model girdisine `compat.requiresStringContent: true` ekleyin. +- Doğrudan küçük `/v1/chat/completions` çağrıları çalışıyor ama `openclaw infer model run` Gemma veya başka bir yerel modelde başarısız mı oluyor? Önce `compat.supportsTools: false` ile araç şemalarını devre dışı bırakın, sonra yeniden test edin. Sunucu yine yalnızca daha büyük OpenClaw prompt’larında çöküyorsa, bunu yukarı akış sunucu/model sınırlaması olarak değerlendirin. +- Güvenlik: yerel modeller sağlayıcı tarafı filtreleri atlar; prompt injection etki alanını sınırlamak için agent’ları dar kapsamlı tutun ve Compaction özelliğini açık bırakın. diff --git a/docs/tr/help/testing.md b/docs/tr/help/testing.md index 5ca4e65ee..2fe271974 100644 --- a/docs/tr/help/testing.md +++ b/docs/tr/help/testing.md @@ -1,29 +1,29 @@ --- read_when: - - Testleri yerelde veya CI'da çalıştırma + - Testleri yerel olarak veya CI içinde çalıştırma - Model/sağlayıcı hataları için regresyonlar ekleme - - Gateway + aracı davranışında hata ayıklama + - Gateway + ajan davranışını hata ayıklama summary: 'Test kiti: birim/e2e/canlı paketleri, Docker çalıştırıcıları ve her testin neleri kapsadığı' -title: Test Etme +title: Test etme x-i18n: - generated_at: "2026-04-12T23:28:29Z" + generated_at: "2026-04-13T08:50:46Z" model: gpt-5.4 provider: openai - source_hash: a66ea672c386094ab4a8035a082c8a85d508a14301ad44b628d2a10d9cec3a52 + source_hash: 3db91b4bc36f626cd014958ec66b08b9cecd9faaa20a5746cd3a49ad4b0b1c38 source_path: help/testing.md workflow: 15 --- -# Test Etme +# Test etme -OpenClaw üç Vitest paketi (birim/entegrasyon, e2e, canlı) ve küçük bir Docker çalıştırıcıları seti içerir. +OpenClaw üç Vitest paketine (birim/entegrasyon, e2e, canlı) ve küçük bir Docker çalıştırıcıları kümesine sahiptir. Bu belge, “nasıl test ediyoruz” kılavuzudur: -- Her paketin neleri kapsadığı (ve özellikle neleri kapsamadığı) +- Her paketin neyi kapsadığı (ve özellikle neyi _kapsamadığı) - Yaygın iş akışları için hangi komutların çalıştırılacağı (yerel, push öncesi, hata ayıklama) - Canlı testlerin kimlik bilgilerini nasıl bulduğu ve modelleri/sağlayıcıları nasıl seçtiği -- Gerçek dünyadaki model/sağlayıcı sorunları için nasıl regresyon ekleneceği +- Gerçek dünyadaki model/sağlayıcı sorunları için regresyonların nasıl ekleneceği ## Hızlı başlangıç @@ -32,104 +32,177 @@ Bu belge, “nasıl test ediyoruz” kılavuzudur: - Tam kapı (push öncesinde beklenir): `pnpm build && pnpm check && pnpm test` - Güçlü bir makinede daha hızlı yerel tam paket çalıştırması: `pnpm test:max` - Doğrudan Vitest izleme döngüsü: `pnpm test:watch` -- Doğrudan dosya hedefleme artık eklenti/kanal yollarını da yönlendirir: `pnpm test extensions/discord/src/monitor/message-handler.preflight.test.ts` +- Doğrudan dosya hedefleme artık extension/channel yollarını da yönlendiriyor: `pnpm test extensions/discord/src/monitor/message-handler.preflight.test.ts` - Tek bir hata üzerinde yineleme yapıyorsanız önce hedefli çalıştırmaları tercih edin. - Docker destekli QA sitesi: `pnpm qa:lab:up` - Linux VM destekli QA hattı: `pnpm openclaw qa suite --runner multipass --scenario channel-chat-baseline` -Testlere dokunduğunuzda veya ek güven istediğinizde: +Testlere dokunduğunuzda veya daha fazla güven istediğinizde: - Kapsama kapısı: `pnpm test:coverage` - E2E paketi: `pnpm test:e2e` Gerçek sağlayıcıları/modelleri hata ayıklarken (gerçek kimlik bilgileri gerekir): -- Canlı paket (modeller + Gateway araç/görüntü yoklamaları): `pnpm test:live` -- Tek bir canlı dosyayı sessizce hedefleme: `pnpm test:live -- src/agents/models.profiles.live.test.ts` +- Canlı paket (modeller + Gateway araç/görsel probları): `pnpm test:live` +- Tek bir canlı dosyayı sessizce hedefleyin: `pnpm test:live -- src/agents/models.profiles.live.test.ts` -İpucu: Yalnızca tek bir başarısız örneğe ihtiyacınız olduğunda, aşağıda açıklanan allowlist ortam değişkenleriyle canlı testleri daraltmayı tercih edin. +İpucu: yalnızca tek bir başarısız duruma ihtiyacınız olduğunda, aşağıda açıklanan allowlist ortam değişkenleriyle canlı testleri daraltmayı tercih edin. -## QA'ye özel çalıştırıcılar +## QA'ya özgü çalıştırıcılar -QA-lab gerçekçiliğine ihtiyaç duyduğunuzda bu komutlar ana test paketlerinin yanında yer alır: +Bu komutlar, QA-lab gerçekçiliğine ihtiyaç duyduğunuzda ana test paketlerinin yanında yer alır: - `pnpm openclaw qa suite` - - Depo destekli QA senaryolarını doğrudan ana makinede çalıştırır. - - Varsayılan olarak seçilen birden çok senaryoyu, yalıtılmış gateway çalışanlarıyla paralel çalıştırır; en fazla 64 çalışan veya seçilen senaryo sayısı kadar. Çalışan sayısını ayarlamak için `--concurrency `, eski seri hattı içinse `--concurrency 1` kullanın. + - Depo destekli QA senaryolarını doğrudan host üzerinde çalıştırır. + - Varsayılan olarak seçili birden fazla senaryoyu yalıtılmış Gateway worker'larıyla paralel çalıştırır; en fazla 64 worker veya seçili senaryo sayısı kadar kullanır. Worker sayısını ayarlamak için `--concurrency `, eski seri hat için ise `--concurrency 1` kullanın. - `pnpm openclaw qa suite --runner multipass` - Aynı QA paketini tek kullanımlık bir Multipass Linux VM içinde çalıştırır. - - Ana makinedeki `qa suite` ile aynı senaryo seçme davranışını korur. - - `qa suite` ile aynı sağlayıcı/model seçme bayraklarını yeniden kullanır. + - Host üzerindeki `qa suite` ile aynı senaryo seçimi davranışını korur. + - `qa suite` ile aynı sağlayıcı/model seçim bayraklarını yeniden kullanır. - Canlı çalıştırmalar, misafir için pratik olan desteklenen QA kimlik doğrulama girdilerini iletir: ortam tabanlı sağlayıcı anahtarları, QA canlı sağlayıcı yapılandırma yolu ve varsa `CODEX_HOME`. - - Çıktı dizinleri, misafirin bağlanmış çalışma alanı üzerinden geri yazabilmesi için depo kökü altında kalmalıdır. - - Normal QA raporu + özeti ile birlikte Multipass günlüklerini `.artifacts/qa-e2e/...` altına yazar. + - Çıktı dizinleri depo kökü altında kalmalıdır; böylece misafir, bağlanan çalışma alanı üzerinden geri yazabilir. + - Normal QA raporunu + özeti ve Multipass günlüklerini `.artifacts/qa-e2e/...` altına yazar. - `pnpm qa:lab:up` - Operatör tarzı QA çalışmaları için Docker destekli QA sitesini başlatır. - `pnpm openclaw qa matrix` - - Matrix canlı QA hattını, tek kullanımlık Docker destekli bir Tuwunel homeserver'a karşı çalıştırır. - - Üç geçici Matrix kullanıcısı (`driver`, `sut`, `observer`) ile bir özel oda sağlar, ardından gerçek Matrix Plugin'ini SUT taşıması olarak kullanan bir QA gateway alt süreci başlatır. + - Matrix canlı QA hattını, tek kullanımlık Docker destekli bir Tuwunel homeserver karşısında çalıştırır. + - `driver`, `sut`, `observer` olmak üzere üç geçici Matrix kullanıcısı ve bir özel oda sağlar; ardından gerçek Matrix Plugin ile SUT taşıması olarak bir QA Gateway alt süreci başlatır. - Varsayılan olarak sabitlenmiş kararlı Tuwunel imajı `ghcr.io/matrix-construct/tuwunel:v1.5.1` kullanılır. Farklı bir imajı test etmeniz gerektiğinde `OPENCLAW_QA_MATRIX_TUWUNEL_IMAGE` ile geçersiz kılın. - - Matrix QA raporu, özet ve gözlemlenen olaylar yapıtını `.artifacts/qa-e2e/...` altına yazar. + - Matrix şu anda yalnızca `--credential-source env` destekler; çünkü hat geçici kullanıcıları yerel olarak oluşturur. + - Bir Matrix QA raporu, özeti ve gözlemlenen olaylar artifact'ını `.artifacts/qa-e2e/...` altına yazar. - `pnpm openclaw qa telegram` - - Telegram canlı QA hattını, ortamdaki driver ve SUT bot belirteçlerini kullanarak gerçek bir özel gruba karşı çalıştırır. - - `OPENCLAW_QA_TELEGRAM_GROUP_ID`, `OPENCLAW_QA_TELEGRAM_DRIVER_BOT_TOKEN` ve `OPENCLAW_QA_TELEGRAM_SUT_BOT_TOKEN` gerektirir. Grup kimliği sayısal Telegram sohbet kimliği olmalıdır. - - Aynı özel grupta iki farklı bot gerektirir ve SUT botunun bir Telegram kullanıcı adını açığa çıkarması gerekir. - - Kararlı bottan-bota gözlem için `@BotFather` içinde her iki bot için de Bot-to-Bot Communication Mode'u etkinleştirin ve driver botunun gruptaki bot trafiğini gözlemleyebildiğinden emin olun. - - Telegram QA raporu, özet ve gözlemlenen mesajlar yapıtını `.artifacts/qa-e2e/...` altına yazar. + - Telegram canlı QA hattını, ortamdaki driver ve SUT bot token'larıyla gerçek bir özel grup karşısında çalıştırır. + - `OPENCLAW_QA_TELEGRAM_GROUP_ID`, `OPENCLAW_QA_TELEGRAM_DRIVER_BOT_TOKEN` ve `OPENCLAW_QA_TELEGRAM_SUT_BOT_TOKEN` gerekir. Grup kimliği sayısal Telegram sohbet kimliği olmalıdır. + - Paylaşılan havuz kimlik bilgileri için `--credential-source convex` destekler. Varsayılan olarak env modunu kullanın veya havuzlanmış kiralamalara geçmek için `OPENCLAW_QA_CREDENTIAL_SOURCE=convex` ayarlayın. + - Aynı özel grupta iki farklı bot gerekir ve SUT botunun bir Telegram kullanıcı adı sunması gerekir. + - Kararlı botlar arası gözlem için `@BotFather` içinde her iki bot için de Bot-to-Bot Communication Mode'u etkinleştirin ve driver botun grup bot trafiğini gözlemleyebildiğinden emin olun. + - Bir Telegram QA raporu, özeti ve gözlemlenen mesajlar artifact'ını `.artifacts/qa-e2e/...` altına yazar. -Canlı taşıma hatları tek bir standart sözleşmeyi paylaşır, böylece yeni taşımalar sapmaz: +Canlı taşıma hatları tek bir standart sözleşmeyi paylaşır; böylece yeni taşımalar sapma göstermez: -`qa-channel`, geniş sentetik QA paketi olmaya devam eder ve canlı taşıma kapsama matrisinin parçası değildir. +`qa-channel` geniş sentetik QA paketi olarak kalır ve canlı taşıma kapsam matriksinin bir parçası değildir. -| Hat | Canary | Mention gating | Allowlist block | Üst düzey yanıt | Yeniden başlatma sürdürme | İş parçacığı takibi | İş parçacığı yalıtımı | Tepki gözlemi | Yardım komutu | -| -------- | ------ | -------------- | --------------- | --------------- | ------------------------- | ------------------- | -------------------- | ------------- | ------------- | -| Matrix | x | x | x | x | x | x | x | x | | -| Telegram | x | | | | | | | | x | +| Hat | Canary | Mention gating | Allowlist block | Üst düzey yanıt | Yeniden başlatma sonrası sürdürme | İleti dizisi takibi | İleti dizisi yalıtımı | Tepki gözlemi | Yardım komutu | +| -------- | ------ | -------------- | --------------- | --------------- | --------------------------------- | ------------------- | --------------------- | ------------- | ------------- | +| Matrix | x | x | x | x | x | x | x | x | | +| Telegram | x | | | | | | | | x | -### QA'ye kanal ekleme +### Convex üzerinden paylaşılan Telegram kimlik bilgileri (v1) -Bir kanalı Markdown QA sistemine eklemek tam olarak iki şey gerektirir: +`openclaw qa telegram` için `--credential-source convex` (veya `OPENCLAW_QA_CREDENTIAL_SOURCE=convex`) etkinleştirildiğinde, QA lab Convex destekli bir havuzdan özel bir kiralama alır, hat çalışırken bu kiralamaya Heartbeat gönderir ve kapanışta kiralamayı serbest bırakır. + +Başvuru Convex proje iskeleti: + +- `qa/convex-credential-broker/` + +Gerekli ortam değişkenleri: + +- `OPENCLAW_QA_CONVEX_SITE_URL` (örneğin `https://your-deployment.convex.site`) +- Seçilen rol için bir gizli anahtar: + - `maintainer` için `OPENCLAW_QA_CONVEX_SECRET_MAINTAINER` + - `ci` için `OPENCLAW_QA_CONVEX_SECRET_CI` +- Kimlik bilgisi rolü seçimi: + - CLI: `--credential-role maintainer|ci` + - Ortam varsayılanı: `OPENCLAW_QA_CREDENTIAL_ROLE` (varsayılan `maintainer`) + +İsteğe bağlı ortam değişkenleri: + +- `OPENCLAW_QA_CREDENTIAL_LEASE_TTL_MS` (varsayılan `1200000`) +- `OPENCLAW_QA_CREDENTIAL_HEARTBEAT_INTERVAL_MS` (varsayılan `30000`) +- `OPENCLAW_QA_CREDENTIAL_ACQUIRE_TIMEOUT_MS` (varsayılan `90000`) +- `OPENCLAW_QA_CREDENTIAL_HTTP_TIMEOUT_MS` (varsayılan `15000`) +- `OPENCLAW_QA_CONVEX_ENDPOINT_PREFIX` (varsayılan `/qa-credentials/v1`) +- `OPENCLAW_QA_CREDENTIAL_OWNER_ID` (isteğe bağlı izleme kimliği) +- `OPENCLAW_QA_ALLOW_INSECURE_HTTP=1`, yalnızca yerel geliştirme için loopback `http://` Convex URL'lerine izin verir. + +`OPENCLAW_QA_CONVEX_SITE_URL` normal çalışmada `https://` kullanmalıdır. + +Maintainer yönetici komutları (havuz ekleme/kaldırma/listeleme) özellikle `OPENCLAW_QA_CONVEX_SECRET_MAINTAINER` gerektirir. + +Maintainer'lar için CLI yardımcıları: + +```bash +pnpm openclaw qa credentials add --kind telegram --payload-file qa/telegram-credential.json +pnpm openclaw qa credentials list --kind telegram +pnpm openclaw qa credentials remove --credential-id +``` + +Betiklerde ve CI yardımcı araçlarında makine tarafından okunabilir çıktı için `--json` kullanın. + +Varsayılan uç nokta sözleşmesi (`OPENCLAW_QA_CONVEX_SITE_URL` + `/qa-credentials/v1`): + +- `POST /acquire` + - İstek: `{ kind, ownerId, actorRole, leaseTtlMs, heartbeatIntervalMs }` + - Başarı: `{ status: "ok", credentialId, leaseToken, payload, leaseTtlMs?, heartbeatIntervalMs? }` + - Tükenmiş/yeniden denenebilir: `{ status: "error", code: "POOL_EXHAUSTED" | "NO_CREDENTIAL_AVAILABLE", ... }` +- `POST /heartbeat` + - İstek: `{ kind, ownerId, actorRole, credentialId, leaseToken, leaseTtlMs }` + - Başarı: `{ status: "ok" }` (veya boş `2xx`) +- `POST /release` + - İstek: `{ kind, ownerId, actorRole, credentialId, leaseToken }` + - Başarı: `{ status: "ok" }` (veya boş `2xx`) +- `POST /admin/add` (yalnızca maintainer gizli anahtarı) + - İstek: `{ kind, actorId, payload, note?, status? }` + - Başarı: `{ status: "ok", credential }` +- `POST /admin/remove` (yalnızca maintainer gizli anahtarı) + - İstek: `{ credentialId, actorId }` + - Başarı: `{ status: "ok", changed, credential }` + - Etkin kiralama koruması: `{ status: "error", code: "LEASE_ACTIVE", ... }` +- `POST /admin/list` (yalnızca maintainer gizli anahtarı) + - İstek: `{ kind?, status?, includePayload?, limit? }` + - Başarı: `{ status: "ok", credentials, count }` + +Telegram türü için yük biçimi: + +- `{ groupId: string, driverToken: string, sutToken: string }` +- `groupId` sayısal bir Telegram sohbet kimliği dizesi olmalıdır. +- `admin/add`, `kind: "telegram"` için bu biçimi doğrular ve hatalı biçimlendirilmiş yükleri reddeder. + +### QA'ya bir kanal ekleme + +Bir kanalı markdown QA sistemine eklemek tam olarak iki şey gerektirir: 1. Kanal için bir taşıma bağdaştırıcısı. -2. Kanal sözleşmesini sınayan bir senaryo paketi. +2. Kanal sözleşmesini çalıştıran bir senaryo paketi. -Paylaşılan `qa-lab` çalıştırıcısı akışı sahiplenebiliyorsa kanala özel bir QA çalıştırıcısı eklemeyin. +Paylaşılan `qa-lab` çalıştırıcısı akışı sahiplenebiliyorsa, kanala özgü bir QA çalıştırıcısı eklemeyin. -`qa-lab`, paylaşılan mekanikleri sahiplenir: +`qa-lab` paylaşılan mekanikleri sahiplenir: - paket başlatma ve kapatma -- çalışan eşzamanlılığı -- yapıt yazma +- worker eşzamanlılığı +- artifact yazımı - rapor üretimi - senaryo yürütme - eski `qa-channel` senaryoları için uyumluluk takma adları -Kanal bağdaştırıcısı, taşıma sözleşmesini sahiplenir: +Kanal bağdaştırıcısı taşıma sözleşmesini sahiplenir: -- gateway'in bu taşıma için nasıl yapılandırıldığı -- hazır olma durumunun nasıl denetlendiği +- Gateway'nin bu taşıma için nasıl yapılandırıldığı +- hazır oluşun nasıl kontrol edildiği - gelen olayların nasıl enjekte edildiği - giden mesajların nasıl gözlemlendiği -- dökümlerin ve normalleştirilmiş taşıma durumunun nasıl sunulduğu +- transkriptlerin ve normalize edilmiş taşıma durumunun nasıl sunulduğu - taşıma destekli eylemlerin nasıl yürütüldüğü - taşımaya özgü sıfırlama veya temizliğin nasıl ele alındığı -Yeni bir kanal için minimum benimseme eşiği şudur: +Yeni bir kanal için minimum benimseme çıtası şudur: -1. Paylaşılan `qa-lab` bağlantısında taşıma bağdaştırıcısını uygulayın. +1. Taşıma bağdaştırıcısını paylaşılan `qa-lab` seam üzerinde uygulayın. 2. Bağdaştırıcıyı taşıma kayıt defterine kaydedin. -3. Taşımaya özgü mekanikleri bağdaştırıcının veya kanal koşumunun içinde tutun. -4. `qa/scenarios/` altında Markdown senaryoları yazın veya uyarlayın. +3. Taşımaya özgü mekanikleri bağdaştırıcı veya kanal harness'i içinde tutun. +4. `qa/scenarios/` altında markdown senaryoları yazın veya uyarlayın. 5. Yeni senaryolar için genel senaryo yardımcılarını kullanın. 6. Depo kasıtlı bir geçiş yapmıyorsa mevcut uyumluluk takma adlarını çalışır durumda tutun. Karar kuralı katıdır: -- Davranış `qa-lab` içinde bir kez ifade edilebiliyorsa `qa-lab` içine koyun. -- Davranış tek bir kanal taşımasına bağlıysa bunu o bağdaştırıcıda veya Plugin koşumunda tutun. -- Bir senaryo birden fazla kanalın kullanabileceği yeni bir yetenek gerektiriyorsa `suite.ts` içinde kanala özgü bir dal yerine genel bir yardımcı ekleyin. -- Bir davranış yalnızca tek bir taşıma için anlamlıysa senaryoyu taşımaya özgü tutun ve bunu senaryo sözleşmesinde açıkça belirtin. +- Davranış bir kez `qa-lab` içinde ifade edilebiliyorsa, `qa-lab` içine koyun. +- Davranış bir kanal taşımasına bağlıysa, onu o bağdaştırıcıda veya Plugin harness'inde tutun. +- Bir senaryo birden fazla kanalın kullanabileceği yeni bir yetenek gerektiriyorsa, `suite.ts` içinde kanala özgü bir dal yerine genel bir yardımcı ekleyin. +- Bir davranış yalnızca bir taşıma için anlamlıysa, senaryoyu taşımaya özgü tutun ve bunu senaryo sözleşmesinde açık hale getirin. Yeni senaryolar için tercih edilen genel yardımcı adları şunlardır: @@ -146,7 +219,7 @@ Yeni senaryolar için tercih edilen genel yardımcı adları şunlardır: - `formatTransportTranscript` - `resetTransport` -Mevcut senaryolar için uyumluluk takma adları kullanılmaya devam eder; bunlar arasında şunlar vardır: +Mevcut senaryolar için uyumluluk takma adları kullanılabilir olmaya devam eder; bunlar arasında şunlar vardır: - `waitForQaChannelReady` - `waitForOutboundMessage` @@ -155,33 +228,33 @@ Mevcut senaryolar için uyumluluk takma adları kullanılmaya devam eder; bunlar - `resetBus` Yeni kanal çalışmaları genel yardımcı adlarını kullanmalıdır. -Uyumluluk takma adları, tek seferlik bir geçiş zorunluluğunu önlemek için vardır; yeni senaryo yazımı için model olarak değil. +Uyumluluk takma adları bir “flag day” geçişini önlemek içindir; yeni senaryo yazımında model olarak kullanılmaları için değil. ## Test paketleri (ne nerede çalışır) -Paketleri “artan gerçekçilik” (ve artan kararsızlık/maliyet) olarak düşünün: +Paketleri “artan gerçekçilik” (ve artan oynaklık/maliyet) olarak düşünün: ### Birim / entegrasyon (varsayılan) - Komut: `pnpm test` -- Yapılandırma: mevcut kapsamlı Vitest projeleri üzerinde on sıralı shard çalıştırması (`vitest.full-*.config.ts`) -- Dosyalar: `src/**/*.test.ts`, `packages/**/*.test.ts`, `test/**/*.test.ts` altındaki core/birim envanterleri ve `vitest.unit.config.ts` kapsamında olan allowlist'e alınmış `ui` Node testleri +- Yapılandırma: mevcut kapsamlı Vitest projeleri üzerinde on adet sıralı shard çalıştırması (`vitest.full-*.config.ts`) +- Dosyalar: `src/**/*.test.ts`, `packages/**/*.test.ts`, `test/**/*.test.ts` altındaki core/birim envanterleri ve `vitest.unit.config.ts` tarafından kapsanan allowlist içindeki `ui` Node testleri - Kapsam: - Saf birim testleri - - Süreç içi entegrasyon testleri (gateway kimlik doğrulama, yönlendirme, araçlar, ayrıştırma, yapılandırma) + - Süreç içi entegrasyon testleri (Gateway auth, yönlendirme, araçlar, ayrıştırma, yapılandırma) - Bilinen hatalar için deterministik regresyonlar - Beklentiler: - - CI'da çalışır + - CI içinde çalışır - Gerçek anahtarlar gerekmez - Hızlı ve kararlı olmalıdır - Projeler notu: - - Hedef verilmemiş `pnpm test`, artık tek bir devasa yerel kök proje süreci yerine on bir küçük shard yapılandırması (`core-unit-src`, `core-unit-security`, `core-unit-ui`, `core-unit-support`, `core-support-boundary`, `core-contracts`, `core-bundled`, `core-runtime`, `agentic`, `auto-reply`, `extensions`) çalıştırır. Bu, yoğun makinelerde tepe RSS'i azaltır ve auto-reply/eklenti işlerinin ilgisiz paketleri aç bırakmasını önler. - - `pnpm test --watch` hâlâ yerel kök `vitest.config.ts` proje grafiğini kullanır, çünkü çok shard'lı bir izleme döngüsü pratik değildir. - - `pnpm test`, `pnpm test:watch` ve `pnpm test:perf:imports`, açık dosya/dizin hedeflerini önce kapsamlı hatlar üzerinden yönlendirir; bu nedenle `pnpm test extensions/discord/src/monitor/message-handler.preflight.test.ts`, tam kök proje başlatma maliyetini ödemez. - - `pnpm test:changed`, fark yalnızca yönlendirilebilir kaynak/test dosyalarına dokunuyorsa değişen git yollarını aynı kapsamlı hatlara genişletir; yapılandırma/kurulum düzenlemeleri ise yine geniş kök proje yeniden çalıştırmasına geri düşer. - - Agent'lar, commands, plugin'ler, auto-reply yardımcıları, `plugin-sdk` ve benzeri saf yardımcı alanlardan gelen hafif içe aktarma birim testleri, `test/setup-openclaw-runtime.ts` dosyasını atlayan `unit-fast` hattı üzerinden yönlendirilir; durum bilgili/çalışma zamanı ağır dosyalar mevcut hatlarda kalır. - - Seçili `plugin-sdk` ve `commands` yardımcı kaynak dosyaları da changed-mode çalıştırmalarını bu hafif hatlardaki açık kardeş testlere eşler; böylece yardımcı düzenlemeleri, o dizin için tüm ağır paketi yeniden çalıştırmaktan kaçınır. - - `auto-reply` artık üç özel bölüme ayrılmıştır: üst düzey core yardımcıları, üst düzey `reply.*` entegrasyon testleri ve `src/auto-reply/reply/**` alt ağacı. Bu, en ağır yanıt koşumu işlerini ucuz status/chunk/token testlerinden uzak tutar. + - Hedeflenmemiş `pnpm test` artık tek bir devasa yerel root-project süreci yerine on bir küçük shard yapılandırması (`core-unit-src`, `core-unit-security`, `core-unit-ui`, `core-unit-support`, `core-support-boundary`, `core-contracts`, `core-bundled`, `core-runtime`, `agentic`, `auto-reply`, `extensions`) çalıştırır. Bu, yüklü makinelerde tepe RSS'yi azaltır ve auto-reply/extension işlerinin ilgisiz paketleri aç bırakmasını önler. + - `pnpm test --watch` hâlâ yerel root `vitest.config.ts` proje grafiğini kullanır; çünkü çoklu shard izleme döngüsü pratik değildir. + - `pnpm test`, `pnpm test:watch` ve `pnpm test:perf:imports`, açık dosya/dizin hedeflerini önce kapsamlı hatlar üzerinden yönlendirir; böylece `pnpm test extensions/discord/src/monitor/message-handler.preflight.test.ts` tam root proje başlatma maliyetini ödemez. + - `pnpm test:changed`, fark yalnızca yönlendirilebilir kaynak/test dosyalarına dokunduğunda değişen git yollarını aynı kapsamlı hatlara genişletir; yapılandırma/kurulum düzenlemeleri ise yine geniş root-project yeniden çalıştırmasına düşer. + - Ajanlar, komutlar, plugin'ler, auto-reply yardımcıları, `plugin-sdk` ve benzeri saf yardımcı alanlardaki import açısından hafif birim testleri, `test/setup-openclaw-runtime.ts` dosyasını atlayan `unit-fast` hattı üzerinden yönlendirilir; durum bilgili/çalışma zamanı açısından ağır dosyalar mevcut hatlarda kalır. + - Seçilmiş `plugin-sdk` ve `commands` yardımcı kaynak dosyaları da changed-mode çalıştırmalarını bu hafif hatlardaki açık kardeş testlere eşler; böylece yardımcı düzenlemeleri o dizin için tam ağır paketi yeniden çalıştırmaz. + - `auto-reply` artık üç özel bölüme sahiptir: üst düzey core yardımcıları, üst düzey `reply.*` entegrasyon testleri ve `src/auto-reply/reply/**` alt ağacı. Bu, en ağır yanıt harness işini ucuz status/chunk/token testlerinden uzak tutar. - Gömülü çalıştırıcı notu: - Mesaj aracı keşif girdilerini veya Compaction çalışma zamanı bağlamını değiştirdiğinizde, her iki kapsama düzeyini de koruyun. - Saf yönlendirme/normalleştirme sınırları için odaklı yardımcı regresyonları ekleyin. @@ -189,62 +262,62 @@ Paketleri “artan gerçekçilik” (ve artan kararsızlık/maliyet) olarak dü `src/agents/pi-embedded-runner/compact.hooks.test.ts`, `src/agents/pi-embedded-runner/run.overflow-compaction.test.ts` ve `src/agents/pi-embedded-runner/run.overflow-compaction.loop.test.ts`. - - Bu paketler, kapsamlı kimliklerin ve Compaction davranışının hâlâ gerçek `run.ts` / `compact.ts` yollarından aktığını doğrular; yalnızca yardımcı testleri bu entegrasyon yolları için yeterli bir ikame değildir. + - Bu paketler, kapsamlı kimliklerin ve Compaction davranışının gerçek `run.ts` / `compact.ts` yolları üzerinden akmaya devam ettiğini doğrular; yalnızca yardımcı testler bu entegrasyon yolları için yeterli bir ikame değildir. - Havuz notu: - Temel Vitest yapılandırması artık varsayılan olarak `threads` kullanır. - - Paylaşılan Vitest yapılandırması ayrıca `isolate: false` sabitler ve kök projeler, e2e ve canlı yapılandırmalar genelinde izole olmayan çalıştırıcıyı kullanır. - - Kök UI hattı `jsdom` kurulumunu ve optimizer'ını korur, ancak artık paylaşılan izole olmayan çalıştırıcı üzerinde çalışır. + - Paylaşılan Vitest yapılandırması ayrıca `isolate: false` ayarlar ve root projeleri, e2e ve canlı yapılandırmalar boyunca yalıtılmamış çalıştırıcıyı kullanır. + - Root UI hattı `jsdom` kurulumunu ve optimizer'ını korur, ancak artık o da paylaşılan yalıtılmamış çalıştırıcı üzerinde çalışır. - Her `pnpm test` shard'ı, paylaşılan Vitest yapılandırmasından aynı `threads` + `isolate: false` varsayılanlarını devralır. - - Paylaşılan `scripts/run-vitest.mjs` başlatıcısı da artık büyük yerel çalıştırmalar sırasında V8 derleme karmaşasını azaltmak için Vitest alt Node süreçlerine varsayılan olarak `--no-maglev` ekler. Stok V8 davranışıyla karşılaştırma yapmanız gerekiyorsa `OPENCLAW_VITEST_ENABLE_MAGLEV=1` ayarlayın. + - Paylaşılan `scripts/run-vitest.mjs` başlatıcısı artık büyük yerel çalıştırmalar sırasında V8 derleme churn'ünü azaltmak için varsayılan olarak Vitest alt Node süreçlerine `--no-maglev` de ekler. Stok V8 davranışıyla karşılaştırma yapmanız gerekiyorsa `OPENCLAW_VITEST_ENABLE_MAGLEV=1` ayarlayın. - Hızlı yerel yineleme notu: - - `pnpm test:changed`, değişen yollar daha küçük bir pakete temiz biçimde eşlendiğinde kapsamlı hatlar üzerinden yönlendirilir. - - `pnpm test:max` ve `pnpm test:changed:max` aynı yönlendirme davranışını korur, yalnızca daha yüksek bir çalışan sınırıyla. - - Yerel çalışan otomatik ölçeklemesi artık kasıtlı olarak daha muhafazakârdır ve ana makine yük ortalaması zaten yüksek olduğunda da geri çekilir; böylece birden fazla eşzamanlı Vitest çalıştırması varsayılan olarak daha az zarar verir. - - Temel Vitest yapılandırması, changed-mode yeniden çalıştırmalarının test bağlantıları değiştiğinde doğru kalması için projeleri/yapılandırma dosyalarını `forceRerunTriggers` olarak işaretler. - - Yapılandırma, desteklenen ana makinelerde `OPENCLAW_VITEST_FS_MODULE_CACHE` özelliğini etkin tutar; doğrudan profilleme için açık bir önbellek konumu istiyorsanız `OPENCLAW_VITEST_FS_MODULE_CACHE_PATH=/abs/path` ayarlayın. + - `pnpm test:changed`, değişen yollar daha küçük bir pakete temiz biçimde eşlendiğinde kapsamlı hatlar üzerinden yönlendirir. + - `pnpm test:max` ve `pnpm test:changed:max` aynı yönlendirme davranışını korur; yalnızca daha yüksek bir worker sınırıyla. + - Yerel worker otomatik ölçekleme artık kasıtlı olarak daha muhafazakârdır ve host yük ortalaması zaten yüksek olduğunda da geri çekilir; böylece aynı anda birden çok Vitest çalıştırması varsayılan olarak daha az zarar verir. + - Temel Vitest yapılandırması, test bağlantıları değiştiğinde changed-mode yeniden çalıştırmaların doğru kalması için projeleri/yapılandırma dosyalarını `forceRerunTriggers` olarak işaretler. + - Yapılandırma, desteklenen host'larda `OPENCLAW_VITEST_FS_MODULE_CACHE` özelliğini etkin tutar; doğrudan profil oluşturma için açık bir önbellek konumu istiyorsanız `OPENCLAW_VITEST_FS_MODULE_CACHE_PATH=/abs/path` ayarlayın. - Performans hata ayıklama notu: - - `pnpm test:perf:imports`, Vitest içe aktarma süresi raporlamasını ve içe aktarma döküm çıktısını etkinleştirir. - - `pnpm test:perf:imports:changed`, aynı profilleme görünümünü `origin/main` sonrasında değişen dosyalara daraltır. -- `pnpm test:perf:changed:bench -- --ref `, yönlendirilmiş `test:changed` ile o commit edilmiş fark için yerel kök proje yolunu karşılaştırır ve duvar saati süresi ile macOS maksimum RSS değerini yazdırır. -- `pnpm test:perf:changed:bench -- --worktree`, değişen dosya listesini `scripts/test-projects.mjs` ve kök Vitest yapılandırması üzerinden yönlendirerek mevcut kirli çalışma ağacını kıyaslar. - - `pnpm test:perf:profile:main`, Vitest/Vite başlatma ve dönüşüm yükü için bir ana iş parçacığı CPU profili yazar. - - `pnpm test:perf:profile:runner`, birim paketi için dosya paralelliği devre dışıyken çalıştırıcı CPU+yığın profilleri yazar. + - `pnpm test:perf:imports`, Vitest import süresi raporlamasını ve import dökümü çıktısını etkinleştirir. + - `pnpm test:perf:imports:changed`, aynı profil görünümünü `origin/main` sonrasındaki değişen dosyalarla sınırlar. +- `pnpm test:perf:changed:bench -- --ref `, ilgili commit farkı için yönlendirilmiş `test:changed` ile yerel root-project yolunu karşılaştırır ve duvar saati ile macOS maksimum RSS'yi yazdırır. +- `pnpm test:perf:changed:bench -- --worktree`, mevcut kirli ağacı değişen dosya listesini `scripts/test-projects.mjs` ve root Vitest yapılandırması üzerinden yönlendirerek kıyaslar. + - `pnpm test:perf:profile:main`, Vitest/Vite başlatma ve dönüştürme yükü için bir main-thread CPU profili yazar. + - `pnpm test:perf:profile:runner`, dosya paralelliği devre dışıyken birim paketi için runner CPU+heap profilleri yazar. -### E2E (gateway smoke) +### E2E (Gateway smoke) - Komut: `pnpm test:e2e` - Yapılandırma: `vitest.e2e.config.ts` - Dosyalar: `src/**/*.e2e.test.ts`, `test/**/*.e2e.test.ts` - Çalışma zamanı varsayılanları: - - Deponun geri kalanıyla uyumlu olacak şekilde `isolate: false` ile Vitest `threads` kullanır. - - Uyarlanabilir çalışanlar kullanır (CI: en fazla 2, yerel: varsayılan olarak 1). - - Konsol G/Ç yükünü azaltmak için varsayılan olarak sessiz kipte çalışır. + - Depodaki geri kalanla uyumlu olarak Vitest `threads` ve `isolate: false` kullanır. + - Uyarlanabilir worker'lar kullanır (CI: en fazla 2, yerel: varsayılan 1). + - Konsol G/Ç yükünü azaltmak için varsayılan olarak sessiz modda çalışır. - Yararlı geçersiz kılmalar: - - Çalışan sayısını zorlamak için `OPENCLAW_E2E_WORKERS=` (üst sınır 16). + - Worker sayısını zorlamak için `OPENCLAW_E2E_WORKERS=` (üst sınır 16). - Ayrıntılı konsol çıktısını yeniden etkinleştirmek için `OPENCLAW_E2E_VERBOSE=1`. - Kapsam: - - Çok örnekli gateway uçtan uca davranışı - - WebSocket/HTTP yüzeyleri, düğüm eşleştirme ve daha ağır ağ iletişimi + - Çok örnekli Gateway uçtan uca davranışı + - WebSocket/HTTP yüzeyleri, Node eşleştirme ve daha ağır ağ çalışmaları - Beklentiler: - - CI'da çalışır (boru hattında etkin olduğunda) + - CI içinde çalışır (boru hattında etkinleştirildiğinde) - Gerçek anahtarlar gerekmez - - Birim testlerden daha fazla hareketli parça içerir (daha yavaş olabilir) + - Birim testlerinden daha fazla hareketli parçaya sahiptir (daha yavaş olabilir) ### E2E: OpenShell backend smoke - Komut: `pnpm test:e2e:openshell` - Dosya: `test/openshell-sandbox.e2e.test.ts` - Kapsam: - - Ana makinede Docker aracılığıyla yalıtılmış bir OpenShell gateway başlatır - - Geçici bir yerel Dockerfile'dan sandbox oluşturur - - OpenClaw'ın OpenShell backend'ini gerçek `sandbox ssh-config` + SSH yürütmesi üzerinden sınar - - Sandbox fs köprüsü üzerinden uzak-kanonik dosya sistemi davranışını doğrular + - Docker aracılığıyla host üzerinde yalıtılmış bir OpenShell Gateway başlatır + - Geçici bir yerel Dockerfile'dan bir sandbox oluşturur + - OpenClaw'ın OpenShell backend'ini gerçek `sandbox ssh-config` + SSH exec üzerinden çalıştırır + - Uzak-kanonik dosya sistemi davranışını sandbox fs bridge üzerinden doğrular - Beklentiler: - Yalnızca isteğe bağlıdır; varsayılan `pnpm test:e2e` çalıştırmasının parçası değildir - Yerel bir `openshell` CLI ve çalışan bir Docker daemon gerektirir - - Yalıtılmış `HOME` / `XDG_CONFIG_HOME` kullanır, ardından test gateway'ini ve sandbox'ı yok eder + - Yalıtılmış `HOME` / `XDG_CONFIG_HOME` kullanır, ardından test Gateway'ini ve sandbox'ı yok eder - Yararlı geçersiz kılmalar: - - Daha geniş e2e paketini elle çalıştırırken testi etkinleştirmek için `OPENCLAW_E2E_OPENSHELL=1` + - Geniş e2e paketini elle çalıştırırken testi etkinleştirmek için `OPENCLAW_E2E_OPENSHELL=1` - Varsayılan olmayan bir CLI ikilisine veya sarmalayıcı betiğe işaret etmek için `OPENCLAW_E2E_OPENSHELL_COMMAND=/path/to/openshell` ### Canlı (gerçek sağlayıcılar + gerçek modeller) @@ -252,45 +325,45 @@ Paketleri “artan gerçekçilik” (ve artan kararsızlık/maliyet) olarak dü - Komut: `pnpm test:live` - Yapılandırma: `vitest.live.config.ts` - Dosyalar: `src/**/*.live.test.ts` -- Varsayılan: `pnpm test:live` tarafından **etkindir** (`OPENCLAW_LIVE_TEST=1` ayarlar) +- Varsayılan: `pnpm test:live` tarafından **etkinleştirilir** (`OPENCLAW_LIVE_TEST=1` ayarlar) - Kapsam: - “Bu sağlayıcı/model bugün gerçek kimlik bilgileriyle gerçekten çalışıyor mu?” - - Sağlayıcı biçim değişikliklerini, tool-calling tuhaflıklarını, kimlik doğrulama sorunlarını ve oran sınırı davranışını yakalama + - Sağlayıcı biçim değişikliklerini, araç çağırma tuhaflıklarını, auth sorunlarını ve oran sınırı davranışını yakalar - Beklentiler: - - Tasarım gereği CI'da kararlı değildir (gerçek ağlar, gerçek sağlayıcı politikaları, kotalar, kesintiler) - - Para harcar / oran sınırlarını kullanır - - “Her şeyi” çalıştırmak yerine daraltılmış alt kümeleri çalıştırmak tercih edilmelidir -- Canlı çalıştırmalar, eksik API anahtarlarını almak için `~/.profile` dosyasını kaynak olarak yükler. -- Varsayılan olarak canlı çalıştırmalar yine de `HOME` dizinini yalıtır ve yapılandırma/kimlik doğrulama materyalini geçici bir test ana dizinine kopyalar; böylece birim fixture'ları gerçek `~/.openclaw` dizininizi değiştiremez. -- Canlı testlerin gerçek ana dizininizi kullanmasını özellikle istediğinizde yalnızca `OPENCLAW_LIVE_USE_REAL_HOME=1` ayarlayın. -- `pnpm test:live` artık varsayılan olarak daha sessiz bir kip kullanır: `[live] ...` ilerleme çıktısını korur, ancak ek `~/.profile` bildirimini bastırır ve gateway bootstrap günlükleri/Bonjour gürültüsünü susturur. Tüm başlatma günlüklerini yeniden görmek istiyorsanız `OPENCLAW_LIVE_TEST_QUIET=0` ayarlayın. -- API anahtarı rotasyonu (sağlayıcıya özgü): `*_API_KEYS` öğesini virgül/noktalı virgül biçiminde veya `*_API_KEY_1`, `*_API_KEY_2` olarak ayarlayın (örneğin `OPENAI_API_KEYS`, `ANTHROPIC_API_KEYS`, `GEMINI_API_KEYS`) ya da canlıya özel geçersiz kılma için `OPENCLAW_LIVE_*_KEY` kullanın; testler oran sınırı yanıtlarında yeniden dener. + - Tasarım gereği CI için kararlı değildir (gerçek ağlar, gerçek sağlayıcı politikaları, kotalar, kesintiler) + - Paraya mal olur / oran sınırlarını kullanır + - “Her şeyi” çalıştırmak yerine daraltılmış alt kümeleri çalıştırmak tercih edilir +- Canlı çalıştırmalar eksik API anahtarlarını almak için `~/.profile` dosyasını kaynak olarak yükler. +- Varsayılan olarak canlı çalıştırmalar yine de `HOME` dizinini yalıtır ve yapılandırma/auth materyalini geçici bir test home'una kopyalar; böylece birim fixture'ları gerçek `~/.openclaw` dizininizi değiştiremez. +- Canlı testlerin gerçek home dizininizi kullanmasını özellikle istediğinizde yalnızca `OPENCLAW_LIVE_USE_REAL_HOME=1` ayarlayın. +- `pnpm test:live` artık daha sessiz bir modu varsayılan yapar: `[live] ...` ilerleme çıktısını korur, ancak ek `~/.profile` bildirimini bastırır ve Gateway bootstrap günlükleri/Bonjour gürültüsünü susturur. Tam başlangıç günlüklerini geri istiyorsanız `OPENCLAW_LIVE_TEST_QUIET=0` ayarlayın. +- API anahtarı rotasyonu (sağlayıcıya özgü): virgül/noktalı virgül biçiminde `*_API_KEYS` veya `*_API_KEY_1`, `*_API_KEY_2` ayarlayın (örneğin `OPENAI_API_KEYS`, `ANTHROPIC_API_KEYS`, `GEMINI_API_KEYS`) ya da canlıya özgü geçersiz kılma için `OPENCLAW_LIVE_*_KEY`; testler oran sınırı yanıtlarında yeniden dener. - İlerleme/Heartbeat çıktısı: - - Canlı paketler artık uzun süren sağlayıcı çağrılarının Vitest konsol yakalaması sessizken bile görünür şekilde etkin olması için stderr'e ilerleme satırları yazar. - - `vitest.live.config.ts`, sağlayıcı/gateway ilerleme satırlarının canlı çalıştırmalar sırasında anında akması için Vitest konsol engellemesini devre dışı bırakır. + - Canlı paketler artık stderr'e ilerleme satırları yazar; böylece uzun sağlayıcı çağrıları, Vitest konsol yakalaması sessiz olsa bile görünür biçimde aktif kalır. + - `vitest.live.config.ts`, Vitest konsol müdahalesini devre dışı bırakır; böylece sağlayıcı/Gateway ilerleme satırları canlı çalıştırmalar sırasında anında akar. - Doğrudan model Heartbeat'lerini `OPENCLAW_LIVE_HEARTBEAT_MS` ile ayarlayın. - - Gateway/yoklama Heartbeat'lerini `OPENCLAW_LIVE_GATEWAY_HEARTBEAT_MS` ile ayarlayın. + - Gateway/probe Heartbeat'lerini `OPENCLAW_LIVE_GATEWAY_HEARTBEAT_MS` ile ayarlayın. ## Hangi paketi çalıştırmalıyım? -Şu karar tablosunu kullanın: +Bu karar tablosunu kullanın: -- Mantık/test düzenliyorsanız: `pnpm test` çalıştırın (çok fazla değişiklik yaptıysanız `pnpm test:coverage` da) +- Mantık/testler düzenleniyorsa: `pnpm test` çalıştırın (ve çok şey değiştirdiyseniz `pnpm test:coverage`) - Gateway ağ iletişimine / WS protokolüne / eşleştirmeye dokunuyorsanız: `pnpm test:e2e` ekleyin -- “Botum çalışmıyor” / sağlayıcıya özgü arızalar / tool calling hata ayıklıyorsanız: daraltılmış bir `pnpm test:live` çalıştırın +- “Botum çalışmıyor” / sağlayıcıya özgü arızalar / araç çağırma sorunlarını hata ayıklıyorsanız: daraltılmış bir `pnpm test:live` çalıştırın -## Canlı: Android düğüm yetenek taraması +## Canlı: Android Node yetenek taraması - Test: `src/gateway/android-node.capabilities.live.test.ts` - Betik: `pnpm android:test:integration` -- Amaç: bağlı bir Android düğümü tarafından şu anda ilan edilen **her komutu** çağırmak ve komut sözleşmesi davranışını doğrulamak. +- Amaç: bağlı bir Android Node tarafından şu anda **duyurulan her komutu** çağırmak ve komut sözleşmesi davranışını doğrulamak. - Kapsam: - - Ön koşullu/elle kurulum (paket uygulamayı yüklemez/çalıştırmaz/eşleştirmez). - - Seçilen Android düğümü için komut bazında gateway `node.invoke` doğrulaması. + - Ön koşullu/manuel kurulum (paket uygulamayı kurmaz/çalıştırmaz/eşleştirmez). + - Seçilen Android Node için komut bazında Gateway `node.invoke` doğrulaması. - Gerekli ön kurulum: - - Android uygulaması zaten gateway'e bağlanmış ve eşleştirilmiş olmalıdır. + - Android uygulaması zaten Gateway'ye bağlanmış ve eşleştirilmiş olmalıdır. - Uygulama ön planda tutulmalıdır. - - Geçmesini beklediğiniz yetenekler için izinler/çekim onayı verilmiş olmalıdır. + - Başarılı olmasını beklediğiniz yetenekler için izinler/yakalama onayı verilmiş olmalıdır. - İsteğe bağlı hedef geçersiz kılmaları: - `OPENCLAW_ANDROID_NODE_ID` veya `OPENCLAW_ANDROID_NODE_NAME`. - `OPENCLAW_ANDROID_GATEWAY_URL` / `OPENCLAW_ANDROID_GATEWAY_TOKEN` / `OPENCLAW_ANDROID_GATEWAY_PASSWORD`. @@ -298,50 +371,50 @@ Paketleri “artan gerçekçilik” (ve artan kararsızlık/maliyet) olarak dü ## Canlı: model smoke (profil anahtarları) -Canlı testler, arızaları yalıtabilmek için iki katmana ayrılmıştır: +Canlı testler, arızaları izole edebilmek için iki katmana ayrılmıştır: -- “Doğrudan model”, sağlayıcının/modelin verilen anahtarla en azından yanıt verip veremediğini söyler. -- “Gateway smoke”, tam gateway+aracı işlem hattısının bu model için çalıştığını söyler (oturumlar, geçmiş, araçlar, sandbox politikası vb.). +- “Doğrudan model”, sağlayıcının/modelin verilen anahtarla en azından yanıt verebildiğini söyler. +- “Gateway smoke”, bu model için tam Gateway+ajan hattının çalıştığını söyler (oturumlar, geçmiş, araçlar, sandbox ilkesi vb.). -### Katman 1: Doğrudan model tamamlama (gateway yok) +### Katman 1: Doğrudan model tamamlama (Gateway yok) - Test: `src/agents/models.profiles.live.test.ts` - Amaç: - - Keşfedilmiş modelleri listelemek - - Kimlik bilgilerinizin olduğu modelleri seçmek için `getApiKeyForModel` kullanmak + - Keşfedilen modelleri listelemek + - Kimlik bilgileriniz olan modelleri seçmek için `getApiKeyForModel` kullanmak - Model başına küçük bir tamamlama çalıştırmak (ve gerektiğinde hedefli regresyonlar) - Nasıl etkinleştirilir: - `pnpm test:live` (veya Vitest doğrudan çağrılıyorsa `OPENCLAW_LIVE_TEST=1`) -- Bu paketin gerçekten çalışması için `OPENCLAW_LIVE_MODELS=modern` (veya `all`, `modern` için takma ad) ayarlayın; aksi takdirde `pnpm test:live` odağını gateway smoke üzerinde tutmak için atlanır +- Bu paketi gerçekten çalıştırmak için `OPENCLAW_LIVE_MODELS=modern` (veya `all`, modern için takma ad) ayarlayın; aksi halde `pnpm test:live` odağını Gateway smoke üzerinde tutmak için bu paket atlanır - Modeller nasıl seçilir: - Modern allowlist'i çalıştırmak için `OPENCLAW_LIVE_MODELS=modern` (Opus/Sonnet 4.6+, GPT-5.x + Codex, Gemini 3, GLM 4.7, MiniMax M2.7, Grok 4) - `OPENCLAW_LIVE_MODELS=all`, modern allowlist için bir takma addır - veya `OPENCLAW_LIVE_MODELS="openai/gpt-5.4,anthropic/claude-opus-4-6,..."` (virgülle ayrılmış allowlist) - - Modern/all taramaları varsayılan olarak özenle seçilmiş yüksek sinyalli bir sınır kullanır; kapsamlı modern tarama için `OPENCLAW_LIVE_MAX_MODELS=0`, daha küçük bir sınır için pozitif sayı ayarlayın. + - Modern/all taramaları varsayılan olarak özenle seçilmiş yüksek sinyalli bir üst sınır kullanır; kapsamlı bir modern tarama için `OPENCLAW_LIVE_MAX_MODELS=0` veya daha küçük bir üst sınır için pozitif bir sayı ayarlayın. - Sağlayıcılar nasıl seçilir: - `OPENCLAW_LIVE_PROVIDERS="google,google-antigravity,google-gemini-cli"` (virgülle ayrılmış allowlist) - Anahtarlar nereden gelir: - - Varsayılan olarak: profil deposu ve ortam yedekleri - - Yalnızca **profil deposunu** zorlamak için `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1` ayarlayın -- Bunun varlık nedeni: - - “Sağlayıcı API'si bozuk / anahtar geçersiz” ile “gateway aracı işlem hattısı bozuk” durumlarını ayırır - - Küçük, yalıtılmış regresyonlar içerir (örnek: OpenAI Responses/Codex Responses reasoning replay + tool-call akışları) + - Varsayılan olarak: profil deposu ve env geri dönüşleri + - Yalnızca **profil deposunu** zorunlu kılmak için `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1` ayarlayın +- Bunun var olma nedeni: + - “Sağlayıcı API'si bozuk / anahtar geçersiz” ile “Gateway ajan hattı bozuk” durumlarını ayırır + - Küçük, yalıtılmış regresyonlar içerir (örnek: OpenAI Responses/Codex Responses reasoning replay + araç çağrısı akışları) -### Katman 2: Gateway + geliştirme aracısı smoke (`@openclaw` aslında ne yapıyor) +### Katman 2: Gateway + geliştirme ajanı smoke (`@openclaw` gerçekte ne yapıyor) - Test: `src/gateway/gateway-models.profiles.live.test.ts` - Amaç: - - Süreç içinde bir gateway başlatmak + - Süreç içi bir Gateway başlatmak - Bir `agent:dev:*` oturumu oluşturmak/düzeltmek (çalıştırma başına model geçersiz kılma) - - Anahtarı olan modeller üzerinde dolaşıp şunları doğrulamak: + - Anahtarlı modeller üzerinde dolaşmak ve şunları doğrulamak: - “anlamlı” yanıt (araç yok) - - gerçek bir araç çağrısının çalışması (`read` yoklaması) - - isteğe bağlı ek araç yoklamaları (`exec+read` yoklaması) - - OpenAI regresyon yollarının (yalnızca tool-call → takip) çalışmaya devam etmesi -- Yoklama ayrıntıları (böylece hataları hızlıca açıklayabilirsiniz): - - `read` yoklaması: test, çalışma alanına bir nonce dosyası yazar ve aracından bunu `read` etmesini ve nonce'u geri yankılamasını ister. - - `exec+read` yoklaması: test, aracıdan bir nonce'u geçici bir dosyaya `exec` ile yazmasını, ardından `read` ile geri okumasını ister. - - görüntü yoklaması: test oluşturulmuş bir PNG ekler (kedi + rastgele kod) ve modelin `cat ` döndürmesini bekler. + - gerçek bir araç çağrısının çalışması (`read` probe) + - isteğe bağlı ek araç probları (`exec+read` probe) + - OpenAI regresyon yollarının (yalnızca araç çağrısı → takip) çalışmaya devam etmesi +- Probe ayrıntıları (böylece hataları hızlıca açıklayabilirsiniz): + - `read` probe: test, çalışma alanına nonce içeren bir dosya yazar ve ajandan bu dosyayı `read` etmesini ve nonce'u geri yankılamasını ister. + - `exec+read` probe: test, ajandan geçici bir dosyaya nonce yazmak için `exec` kullanmasını, ardından bunu tekrar `read` etmesini ister. + - image probe: test, oluşturulmuş bir PNG (kedi + rastgele kod) ekler ve modelin `cat ` döndürmesini bekler. - Uygulama başvurusu: `src/gateway/gateway-models.profiles.live.test.ts` ve `src/gateway/live-image-probe.ts`. - Nasıl etkinleştirilir: - `pnpm test:live` (veya Vitest doğrudan çağrılıyorsa `OPENCLAW_LIVE_TEST=1`) @@ -349,20 +422,20 @@ Canlı testler, arızaları yalıtabilmek için iki katmana ayrılmıştır: - Varsayılan: modern allowlist (Opus/Sonnet 4.6+, GPT-5.x + Codex, Gemini 3, GLM 4.7, MiniMax M2.7, Grok 4) - `OPENCLAW_LIVE_GATEWAY_MODELS=all`, modern allowlist için bir takma addır - Ya da daraltmak için `OPENCLAW_LIVE_GATEWAY_MODELS="provider/model"` (veya virgülle ayrılmış liste) ayarlayın - - Modern/all gateway taramaları varsayılan olarak özenle seçilmiş yüksek sinyalli bir sınır kullanır; kapsamlı modern tarama için `OPENCLAW_LIVE_GATEWAY_MAX_MODELS=0`, daha küçük bir sınır için pozitif sayı ayarlayın. -- Sağlayıcılar nasıl seçilir (“OpenRouter her şey” yaklaşımından kaçınmak için): + - Modern/all Gateway taramaları varsayılan olarak özenle seçilmiş yüksek sinyalli bir üst sınır kullanır; kapsamlı bir modern tarama için `OPENCLAW_LIVE_GATEWAY_MAX_MODELS=0` veya daha küçük bir üst sınır için pozitif bir sayı ayarlayın. +- Sağlayıcılar nasıl seçilir (“her şeyi OpenRouter” yapmaktan kaçının): - `OPENCLAW_LIVE_GATEWAY_PROVIDERS="google,google-antigravity,google-gemini-cli,openai,anthropic,zai,minimax"` (virgülle ayrılmış allowlist) -- Araç + görüntü yoklamaları bu canlı testte her zaman açıktır: - - `read` yoklaması + `exec+read` yoklaması (araç stres testi) - - görüntü yoklaması, model görüntü girişi desteği ilan ettiğinde çalışır - - Akış (yüksek seviye): +- Araç + görsel probları bu canlı testte her zaman açıktır: + - `read` probe + `exec+read` probe (araç stresi) + - model görsel girdi desteği sunduğunda image probe çalışır + - Akış (üst düzey): - Test, “CAT” + rastgele kod içeren küçük bir PNG üretir (`src/gateway/live-image-probe.ts`) - Bunu `agent` üzerinden `attachments: [{ mimeType: "image/png", content: "" }]` ile gönderir - Gateway ekleri `images[]` içine ayrıştırır (`src/gateway/server-methods/agent.ts` + `src/gateway/chat-attachments.ts`) - - Gömülü aracı, modele çok modlu bir kullanıcı mesajı iletir + - Gömülü ajan çok kipli bir kullanıcı mesajını modele iletir - Doğrulama: yanıt `cat` + kodu içerir (OCR toleransı: küçük hatalara izin verilir) -İpucu: makinenizde neleri test edebileceğinizi (ve tam `provider/model` kimliklerini) görmek için şunu çalıştırın: +İpucu: makinenizde neyi test edebileceğinizi görmek için (ve tam `provider/model` kimlikleri için) şunu çalıştırın: ```bash openclaw models list @@ -372,23 +445,23 @@ openclaw models list --json ## Canlı: CLI backend smoke (Claude, Codex, Gemini veya diğer yerel CLI'lar) - Test: `src/gateway/gateway-cli-backend.live.test.ts` -- Amaç: varsayılan yapılandırmanıza dokunmadan, Gateway + aracı işlem hattısını yerel bir CLI backend kullanarak doğrulamak. -- Backend'e özgü varsayılan smoke ayarları, ilgili eklentinin `cli-backend.ts` tanımıyla birlikte bulunur. +- Amaç: Gateway + ajan hattını, varsayılan yapılandırmanıza dokunmadan yerel bir CLI backend kullanarak doğrulamak. +- Backend'e özgü smoke varsayılanları, sahibi olan extension'ın `cli-backend.ts` tanımıyla birlikte bulunur. - Etkinleştirme: - `pnpm test:live` (veya Vitest doğrudan çağrılıyorsa `OPENCLAW_LIVE_TEST=1`) - `OPENCLAW_LIVE_CLI_BACKEND=1` - Varsayılanlar: - Varsayılan sağlayıcı/model: `claude-cli/claude-sonnet-4-6` - - Komut/argümanlar/görüntü davranışı, ilgili CLI backend Plugin metadata'sından gelir. + - Komut/argüman/görsel davranışı, sahibi olan CLI backend Plugin metadatasından gelir. - Geçersiz kılmalar (isteğe bağlı): - `OPENCLAW_LIVE_CLI_BACKEND_MODEL="codex-cli/gpt-5.4"` - `OPENCLAW_LIVE_CLI_BACKEND_COMMAND="/full/path/to/codex"` - `OPENCLAW_LIVE_CLI_BACKEND_ARGS='["exec","--json","--color","never","--sandbox","read-only","--skip-git-repo-check"]'` - - Gerçek bir görüntü eki göndermek için `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_PROBE=1` (yollar isteme enjekte edilir). - - Görüntü dosyası yollarını isteme enjeksiyonu yerine CLI argümanları olarak geçirmek için `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_ARG="--image"`. - - `IMAGE_ARG` ayarlandığında görüntü argümanlarının nasıl geçirileceğini kontrol etmek için `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_MODE="repeat"` (veya `"list"`). - - İkinci bir tur gönderip sürdürme akışını doğrulamak için `OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1`. - - Varsayılan Claude Sonnet -> Opus aynı oturum sürekliliği yoklamasını devre dışı bırakmak için `OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=0` (seçilen model bir geçiş hedefini desteklediğinde zorla açmak için `1` ayarlayın). + - Gerçek bir görsel eki göndermek için `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_PROBE=1` (yollar prompt içine enjekte edilir). + - Görsel dosya yollarını prompt enjeksiyonu yerine CLI argümanları olarak geçirmek için `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_ARG="--image"`. + - `IMAGE_ARG` ayarlandığında görsel argümanlarının nasıl geçirileceğini kontrol etmek için `OPENCLAW_LIVE_CLI_BACKEND_IMAGE_MODE="repeat"` (veya `"list"`). + - İkinci bir tur göndermek ve resume akışını doğrulamak için `OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1`. + - Varsayılan Claude Sonnet -> Opus aynı oturum sürekliliği probe'unu devre dışı bırakmak için `OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=0` (seçilen model bir geçiş hedefini desteklediğinde bunu zorla açmak için `1` ayarlayın). Örnek: @@ -415,27 +488,27 @@ pnpm test:docker:live-cli-backend:gemini Notlar: -- Docker çalıştırıcısı `scripts/test-live-cli-backend-docker.sh` içinde bulunur. -- Canlı CLI-backend smoke testini depo Docker imajı içinde root olmayan `node` kullanıcısı olarak çalıştırır. -- CLI smoke metadata'sını ilgili eklentiden çözümler, ardından eşleşen Linux CLI paketini (`@anthropic-ai/claude-code`, `@openai/codex` veya `@google/gemini-cli`) önbelleğe alınmış yazılabilir bir öneke `OPENCLAW_DOCKER_CLI_TOOLS_DIR` altına kurar (varsayılan: `~/.cache/openclaw/docker-cli-tools`). -- `pnpm test:docker:live-cli-backend:claude-subscription`, taşınabilir Claude Code abonelik OAuth'u gerektirir; bunun için ya `claudeAiOauth.subscriptionType` içeren `~/.claude/.credentials.json` ya da `claude setup-token` üzerinden `CLAUDE_CODE_OAUTH_TOKEN` gerekir. Önce Docker içinde doğrudan `claude -p` komutunu doğrular, ardından Anthropic API anahtarı ortam değişkenlerini korumadan iki Gateway CLI-backend turu çalıştırır. Bu abonelik hattı, Claude şu anda üçüncü taraf uygulama kullanımını normal abonelik planı limitleri yerine ek kullanım faturalandırması üzerinden yönlendirdiği için varsayılan olarak Claude MCP/tool ve görüntü yoklamalarını devre dışı bırakır. -- Canlı CLI-backend smoke testi artık Claude, Codex ve Gemini için aynı uçtan uca akışı sınar: metin turu, görüntü sınıflandırma turu, ardından gateway CLI üzerinden doğrulanan MCP `cron` aracı çağrısı. -- Claude'un varsayılan smoke testi ayrıca oturumu Sonnet'ten Opus'a geçirir ve sürdürülen oturumun önceki bir notu hâlâ hatırladığını doğrular. +- Docker çalıştırıcısı `scripts/test-live-cli-backend-docker.sh` konumundadır. +- Canlı CLI-backend smoke'u depo Docker imajı içinde root olmayan `node` kullanıcısı olarak çalıştırır. +- Sahibi olan extension'dan CLI smoke metadata'sını çözümler, ardından eşleşen Linux CLI paketini (`@anthropic-ai/claude-code`, `@openai/codex` veya `@google/gemini-cli`) önbelleğe alınmış yazılabilir `OPENCLAW_DOCKER_CLI_TOOLS_DIR` önekine kurar (varsayılan: `~/.cache/openclaw/docker-cli-tools`). +- `pnpm test:docker:live-cli-backend:claude-subscription`, ya `~/.claude/.credentials.json` içindeki `claudeAiOauth.subscriptionType` üzerinden ya da `claude setup-token` içinden `CLAUDE_CODE_OAUTH_TOKEN` aracılığıyla taşınabilir Claude Code abonelik OAuth'u gerektirir. Önce Docker içinde doğrudan `claude -p` komutunu doğrular, ardından Anthropic API anahtarı env değişkenlerini korumadan iki Gateway CLI-backend turu çalıştırır. Bu abonelik hattı, Claude şu anda üçüncü taraf uygulama kullanımını normal abonelik planı sınırları yerine ek kullanım faturalandırması üzerinden yönlendirdiği için Claude MCP/araç ve görsel problarını varsayılan olarak devre dışı bırakır. +- Canlı CLI-backend smoke artık Claude, Codex ve Gemini için aynı uçtan uca akışı çalıştırır: metin turu, görsel sınıflandırma turu, ardından Gateway CLI üzerinden doğrulanan MCP `cron` araç çağrısı. +- Claude'un varsayılan smoke'u ayrıca oturumu Sonnet'ten Opus'a geçirir ve devam eden oturumun önceki bir notu hâlâ hatırladığını doğrular. -## Canlı: ACP bağlama smoke (`/acp spawn ... --bind here`) +## Canlı: ACP bind smoke (`/acp spawn ... --bind here`) - Test: `src/gateway/gateway-acp-bind.live.test.ts` -- Amaç: gerçek ACP konuşma bağlama akışını canlı bir ACP aracısıyla doğrulamak: +- Amaç: gerçek bir ACP ajanıyla gerçek ACP konuşma-bind akışını doğrulamak: - `/acp spawn --bind here` gönder - - sentetik bir mesaj kanalı konuşmasını yerinde bağla - - aynı konuşma üzerinde normal bir takip mesajı gönder - - takibin bağlanmış ACP oturum dökümüne ulaştığını doğrula + - sentetik bir message-channel konuşmasını yerinde bağla + - aynı konuşmada normal bir takip mesajı gönder + - takibin bağlı ACP oturum transkriptine ulaştığını doğrula - Etkinleştirme: - `pnpm test:live src/gateway/gateway-acp-bind.live.test.ts` - `OPENCLAW_LIVE_ACP_BIND=1` - Varsayılanlar: - - Docker içindeki ACP aracıları: `claude,codex,gemini` - - Doğrudan `pnpm test:live ...` için ACP aracısı: `claude` + - Docker içindeki ACP ajanları: `claude,codex,gemini` + - Doğrudan `pnpm test:live ...` için ACP ajanı: `claude` - Sentetik kanal: Slack DM tarzı konuşma bağlamı - ACP backend: `acpx` - Geçersiz kılmalar: @@ -445,8 +518,8 @@ Notlar: - `OPENCLAW_LIVE_ACP_BIND_AGENTS=claude,codex,gemini` - `OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND='npx -y @agentclientprotocol/claude-agent-acp@'` - Notlar: - - Bu hat, testlerin dışarıya teslim ediliyormuş gibi yapmadan mesaj kanalı bağlamı ekleyebilmesi için yöneticiye özel sentetik originating-route alanlarıyla gateway `chat.send` yüzeyini kullanır. - - `OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND` ayarlanmadığında test, seçilen ACP koşum aracısı için gömülü `acpx` eklentisinin yerleşik aracı kayıt defterini kullanır. + - Bu hat, testlerin haricen teslim ediyormuş gibi yapmadan message-channel bağlamı ekleyebilmesi için admin-only sentetik originating-route alanlarıyla Gateway `chat.send` yüzeyini kullanır. + - `OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND` ayarlanmamışsa, test seçilen ACP harness ajanı için gömülü `acpx` Plugin'inin yerleşik ajan kayıt defterini kullanır. Örnek: @@ -462,7 +535,7 @@ Docker tarifi: pnpm test:docker:live-acp-bind ``` -Tek aracı Docker tarifleri: +Tek ajanlı Docker tarifleri: ```bash pnpm test:docker:live-acp-bind:claude @@ -472,31 +545,31 @@ pnpm test:docker:live-acp-bind:gemini Docker notları: -- Docker çalıştırıcısı `scripts/test-live-acp-bind-docker.sh` içinde bulunur. -- Varsayılan olarak ACP bind smoke testini desteklenen tüm canlı CLI aracılarına karşı sırayla çalıştırır: `claude`, `codex`, ardından `gemini`. +- Docker çalıştırıcısı `scripts/test-live-acp-bind-docker.sh` konumundadır. +- Varsayılan olarak ACP bind smoke'u tüm desteklenen canlı CLI ajanlarına sırayla karşı çalıştırır: `claude`, `codex`, ardından `gemini`. - Matrisi daraltmak için `OPENCLAW_LIVE_ACP_BIND_AGENTS=claude`, `OPENCLAW_LIVE_ACP_BIND_AGENTS=codex` veya `OPENCLAW_LIVE_ACP_BIND_AGENTS=gemini` kullanın. -- `~/.profile` dosyasını kaynak olarak yükler, eşleşen CLI kimlik doğrulama materyalini kapsayıcıya aktarır, `acpx` öğesini yazılabilir bir npm önekine kurar, ardından eksikse istenen canlı CLI'ı (`@anthropic-ai/claude-code`, `@openai/codex` veya `@google/gemini-cli`) kurar. -- Docker içinde çalıştırıcı `OPENCLAW_LIVE_ACP_BIND_ACPX_COMMAND=$HOME/.npm-global/bin/acpx` ayarlar; böylece acpx, kaynak olarak yüklenen profildeki sağlayıcı ortam değişkenlerini alt koşum CLI'ı için kullanılabilir halde tutar. +- `~/.profile` dosyasını kaynak olarak yükler, eşleşen CLI auth materyalini container içine hazırlar, `acpx`'i yazılabilir bir npm önekine kurar, sonra istenen canlı CLI'yı (`@anthropic-ai/claude-code`, `@openai/codex` veya `@google/gemini-cli`) eksikse kurar. +- Docker içinde çalıştırıcı `OPENCLAW_LIVE_ACP_BIND_ACPX_COMMAND=$HOME/.npm-global/bin/acpx` ayarlar; böylece acpx, kaynak olarak yüklenen profildeki sağlayıcı env değişkenlerini alt harness CLI için kullanılabilir tutar. ## Canlı: Codex app-server harness smoke -- Amaç: Plugin'e ait Codex harness'i normal gateway +- Amaç: Plugin sahibi olunan Codex harness'i normal Gateway `agent` yöntemi üzerinden doğrulamak: - - paketlenmiş `codex` Plugin'ini yükle - - `OPENCLAW_AGENT_RUNTIME=codex` seç - - `codex/gpt-5.4` için ilk gateway agent turunu gönder - - aynı OpenClaw oturumuna ikinci turu gönder ve app-server - iş parçacığının sürdürülebildiğini doğrula - - aynı gateway komut - yolu üzerinden `/codex status` ve `/codex models` çalıştır + - paketlenmiş `codex` Plugin'ini yüklemek + - `OPENCLAW_AGENT_RUNTIME=codex` seçmek + - `codex/gpt-5.4` için ilk Gateway ajan turunu göndermek + - aynı OpenClaw oturumuna ikinci bir tur göndermek ve app-server + thread'inin devam edebildiğini doğrulamak + - `/codex status` ve `/codex models` komutlarını aynı Gateway komutu + yolu üzerinden çalıştırmak - Test: `src/gateway/gateway-codex-harness.live.test.ts` - Etkinleştirme: `OPENCLAW_LIVE_CODEX_HARNESS=1` - Varsayılan model: `codex/gpt-5.4` -- İsteğe bağlı görüntü yoklaması: `OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1` -- İsteğe bağlı MCP/tool yoklaması: `OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1` -- Smoke testi `OPENCLAW_AGENT_HARNESS_FALLBACK=none` ayarlar; böylece bozuk bir Codex - harness, sessizce PI'ye geri düşerek başarılı olamaz. -- Kimlik doğrulama: kabuk/profilden `OPENAI_API_KEY`, ayrıca isteğe bağlı olarak kopyalanan +- İsteğe bağlı görsel probe: `OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1` +- İsteğe bağlı MCP/araç probe: `OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1` +- Smoke, bozuk bir Codex + harness'inin sessizce PI'ya geri düşerek başarılı olamaması için `OPENCLAW_AGENT_HARNESS_FALLBACK=none` ayarlar. +- Auth: shell/profile üzerinden `OPENAI_API_KEY`, artı isteğe bağlı olarak kopyalanmış `~/.codex/auth.json` ve `~/.codex/config.toml` Yerel tarif: @@ -519,11 +592,11 @@ pnpm test:docker:live-codex-harness Docker notları: -- Docker çalıştırıcısı `scripts/test-live-codex-harness-docker.sh` içinde bulunur. -- Bağlanmış `~/.profile` dosyasını kaynak olarak yükler, `OPENAI_API_KEY` geçirir, varsa Codex CLI - kimlik doğrulama dosyalarını kopyalar, `@openai/codex` öğesini yazılabilir bağlı bir npm - önekine kurar, kaynak ağacı hazırlayıp yalnızca Codex-harness canlı testini çalıştırır. -- Docker varsayılan olarak görüntü ve MCP/tool yoklamalarını etkinleştirir. Daha dar bir hata ayıklama çalıştırması gerektiğinde +- Docker çalıştırıcısı `scripts/test-live-codex-harness-docker.sh` konumundadır. +- Bağlanan `~/.profile` dosyasını kaynak olarak yükler, `OPENAI_API_KEY` geçirir, varsa Codex CLI + auth dosyalarını kopyalar, `@openai/codex` paketini yazılabilir bağlanmış bir npm + önekine kurar, kaynak ağacı hazırlar ve ardından yalnızca Codex-harness canlı testini çalıştırır. +- Docker varsayılan olarak görsel ve MCP/araç problarını etkinleştirir. Daha dar bir hata ayıklama çalıştırması gerektiğinde `OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=0` veya `OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=0` ayarlayın. - Docker ayrıca `OPENCLAW_AGENT_HARNESS_FALLBACK=none` dışa aktarır; bu canlı @@ -532,15 +605,15 @@ Docker notları: ### Önerilen canlı tarifler -Dar ve açık allowlist'ler en hızlı ve en az kararsız olanlardır: +Dar, açık allowlist'ler en hızlı ve en az oynak olanlardır: -- Tek model, doğrudan (gateway yok): +- Tek model, doğrudan (Gateway yok): - `OPENCLAW_LIVE_MODELS="openai/gpt-5.4" pnpm test:live src/agents/models.profiles.live.test.ts` -- Tek model, gateway smoke: +- Tek model, Gateway smoke: - `OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.4" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts` -- Birkaç sağlayıcı genelinde tool calling: +- Birkaç sağlayıcı arasında araç çağırma: - `OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.4,anthropic/claude-opus-4-6,google/gemini-3-flash-preview,zai/glm-4.7,minimax/MiniMax-M2.7" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts` - Google odağı (Gemini API anahtarı + Antigravity): @@ -549,18 +622,18 @@ Dar ve açık allowlist'ler en hızlı ve en az kararsız olanlardır: Notlar: -- `google/...`, Gemini API'sini kullanır (API anahtarı). -- `google-antigravity/...`, Antigravity OAuth köprüsünü kullanır (Cloud Code Assist tarzı aracı uç noktası). -- `google-gemini-cli/...`, makinenizdeki yerel Gemini CLI'ı kullanır (ayrı kimlik doğrulama + araç farklılıkları). +- `google/...` Gemini API'yi kullanır (API anahtarı). +- `google-antigravity/...` Antigravity OAuth köprüsünü kullanır (Cloud Code Assist tarzı ajan uç noktası). +- `google-gemini-cli/...` makinenizdeki yerel Gemini CLI'ı kullanır (ayrı auth + araç davranışı farklılıkları). - Gemini API ile Gemini CLI arasındaki fark: - - API: OpenClaw, Google’ın barındırılan Gemini API'sini HTTP üzerinden çağırır (API anahtarı / profil kimlik doğrulaması); kullanıcıların çoğu “Gemini” derken bunu kasteder. - - CLI: OpenClaw yerel bir `gemini` ikilisini shell üzerinden çalıştırır; bunun kendi kimlik doğrulaması vardır ve farklı davranabilir (akış, araç desteği, sürüm uyumsuzluğu). + - API: OpenClaw, Google'ın barındırılan Gemini API'sini HTTP üzerinden çağırır (API anahtarı / profil auth); çoğu kullanıcının “Gemini” derken kastettiği budur. + - CLI: OpenClaw yerel bir `gemini` ikilisini shell üzerinden çağırır; bunun kendi auth mekanizması vardır ve davranışı farklı olabilir (streaming/araç desteği/sürüm kayması). -## Canlı: model matrisi (neleri kapsıyoruz) +## Canlı: model matriksi (neleri kapsıyoruz) -Sabit bir “CI model listesi” yoktur (canlı testler isteğe bağlıdır), ancak anahtarlara sahip bir geliştirme makinesinde düzenli olarak kapsanması **önerilen** modeller bunlardır. +Sabit bir “CI model listesi” yoktur (canlı isteğe bağlıdır), ancak anahtarlara sahip bir geliştirme makinesinde düzenli olarak kapsanması **önerilen** modeller bunlardır. -### Modern smoke seti (tool calling + görüntü) +### Modern smoke kümesi (araç çağırma + görsel) Çalışır durumda tutmayı beklediğimiz “yaygın modeller” çalıştırması budur: @@ -572,12 +645,12 @@ Sabit bir “CI model listesi” yoktur (canlı testler isteğe bağlıdır), an - Z.AI (GLM): `zai/glm-4.7` - MiniMax: `minimax/MiniMax-M2.7` -Araçlar + görüntü ile gateway smoke çalıştırması: +Araçlar + görselle Gateway smoke çalıştırması: `OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.4,openai-codex/gpt-5.4,anthropic/claude-opus-4-6,google/gemini-3.1-pro-preview,google/gemini-3-flash-preview,google-antigravity/claude-opus-4-6-thinking,google-antigravity/gemini-3-flash,zai/glm-4.7,minimax/MiniMax-M2.7" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts` -### Temel seviye: tool calling (Read + isteğe bağlı Exec) +### Temel seviye: araç çağırma (Read + isteğe bağlı Exec) -Her sağlayıcı ailesinden en az birini seçin: +Sağlayıcı ailesi başına en az bir tane seçin: - OpenAI: `openai/gpt-5.4` (veya `openai/gpt-5.4-mini`) - Anthropic: `anthropic/claude-opus-4-6` (veya `anthropic/claude-sonnet-4-6`) @@ -585,46 +658,46 @@ Her sağlayıcı ailesinden en az birini seçin: - Z.AI (GLM): `zai/glm-4.7` - MiniMax: `minimax/MiniMax-M2.7` -İsteğe bağlı ek kapsama (olursa iyi olur): +İsteğe bağlı ek kapsama (olsa iyi olur): -- xAI: `xai/grok-4` (veya mevcut en yeni sürüm) -- Mistral: `mistral/`… (etkinleştirdiğiniz “tools” yetenekli modellerden birini seçin) +- xAI: `xai/grok-4` (veya mevcut en son sürüm) +- Mistral: `mistral/`… (etkinleştirdiğiniz araç yetenekli bir model seçin) - Cerebras: `cerebras/`… (erişiminiz varsa) -- LM Studio: `lmstudio/`… (yerel; tool calling API kipine bağlıdır) +- LM Studio: `lmstudio/`… (yerel; araç çağırma API moduna bağlıdır) -### Görsel: görüntü gönderme (ek → çok modlu mesaj) +### Vision: görsel gönderimi (ek → çok kipli mesaj) -Görüntü yoklamasını sınamak için `OPENCLAW_LIVE_GATEWAY_MODELS` içine en az bir görüntü destekli model ekleyin (Claude/Gemini/OpenAI görüntü destekli varyantları vb.). +Görsel probe'u çalıştırmak için `OPENCLAW_LIVE_GATEWAY_MODELS` içine en az bir görsel destekli model ekleyin (Claude/Gemini/OpenAI'nin görsel yetenekli varyantları vb.). -### Toplayıcılar / alternatif gateway'ler +### Toplayıcılar / alternatif Gateway'ler -Anahtarlarınız etkinse, şu yollarla test etmeyi de destekliyoruz: +Anahtarlarınız etkinse şunlar üzerinden de test desteğimiz vardır: -- OpenRouter: `openrouter/...` (yüzlerce model; araç+görüntü destekli adayları bulmak için `openclaw models scan` kullanın) -- OpenCode: Zen için `opencode/...`, Go için `opencode-go/...` (`OPENCODE_API_KEY` / `OPENCODE_ZEN_API_KEY` ile kimlik doğrulama) +- OpenRouter: `openrouter/...` (yüzlerce model; araç+görsel destekli adayları bulmak için `openclaw models scan` kullanın) +- OpenCode: Zen için `opencode/...` ve Go için `opencode-go/...` (`OPENCODE_API_KEY` / `OPENCODE_ZEN_API_KEY` ile auth) -Canlı matrise dahil edebileceğiniz daha fazla sağlayıcı (kimlik bilgileriniz/yapılandırmanız varsa): +Canlı matrikse ekleyebileceğiniz daha fazla sağlayıcı (kimlik bilgileri/yapılandırmanız varsa): - Yerleşik: `openai`, `openai-codex`, `anthropic`, `google`, `google-vertex`, `google-antigravity`, `google-gemini-cli`, `zai`, `openrouter`, `opencode`, `opencode-go`, `xai`, `groq`, `cerebras`, `mistral`, `github-copilot` -- `models.providers` üzerinden (özel uç noktalar): `minimax` (bulut/API), ayrıca OpenAI/Anthropic uyumlu herhangi bir proxy (LM Studio, vLLM, LiteLLM vb.) +- `models.providers` üzerinden (özel uç noktalar): `minimax` (bulut/API), ayrıca OpenAI/Anthropic uyumlu tüm vekiller (LM Studio, vLLM, LiteLLM vb.) -İpucu: belgelerde “tüm modelleri” sabit kodlamaya çalışmayın. Yetkili liste, makinenizde `discoverModels(...)` ne döndürüyorsa ve hangi anahtarlar kullanılabiliyorsa odur. +İpucu: belgelerde “tüm modelleri” sabit kodlamaya çalışmayın. Yetkili liste, makinenizde `discoverModels(...)` ne döndürüyorsa ve hangi anahtarlar mevcutsa odur. ## Kimlik bilgileri (asla commit etmeyin) -Canlı testler, kimlik bilgilerini CLI'ın bulduğu şekilde bulur. Pratik sonuçları: +Canlı testler kimlik bilgilerini CLI ile aynı şekilde keşfeder. Pratik sonuçlar: -- CLI çalışıyorsa canlı testler de aynı anahtarları bulmalıdır. -- Bir canlı test “kimlik bilgisi yok” diyorsa, bunu `openclaw models list` / model seçimini nasıl hata ayıklıyorsanız aynı şekilde hata ayıklayın. +- CLI çalışıyorsa, canlı testler de aynı anahtarları bulmalıdır. +- Bir canlı test “kimlik bilgisi yok” diyorsa, bunu `openclaw models list` / model seçimini hata ayıklarken yaptığınız gibi hata ayıklayın. -- Aracı başına kimlik doğrulama profilleri: `~/.openclaw/agents//agent/auth-profiles.json` (canlı testlerde “profil anahtarları” denilen şey budur) +- Ajan başına auth profilleri: `~/.openclaw/agents//agent/auth-profiles.json` (canlı testlerde “profil anahtarları” denince kastedilen budur) - Yapılandırma: `~/.openclaw/openclaw.json` (veya `OPENCLAW_CONFIG_PATH`) -- Eski durum dizini: `~/.openclaw/credentials/` (varsa hazırlanan canlı ana dizine kopyalanır, ancak ana profil-anahtar deposu değildir) -- Canlı yerel çalıştırmalar varsayılan olarak etkin yapılandırmayı, aracı başına `auth-profiles.json` dosyalarını, eski `credentials/` dizinini ve desteklenen harici CLI kimlik doğrulama dizinlerini geçici bir test ana dizinine kopyalar; hazırlanan canlı ana dizinler `workspace/` ve `sandboxes/` dizinlerini atlar ve yoklamaların gerçek ana makine çalışma alanınıza gitmemesi için `agents.*.workspace` / `agentDir` yol geçersiz kılmaları kaldırılır. +- Eski durum dizini: `~/.openclaw/credentials/` (varsa hazırlanan canlı home'a kopyalanır, ancak ana profil-anahtarı deposu bu değildir) +- Canlı yerel çalıştırmalar varsayılan olarak etkin yapılandırmayı, ajan başına `auth-profiles.json` dosyalarını, eski `credentials/` dizinini ve desteklenen harici CLI auth dizinlerini geçici bir test home'una kopyalar; hazırlanan canlı home'lar `workspace/` ve `sandboxes/` öğelerini atlar ve probların gerçek host çalışma alanınızdan uzak durması için `agents.*.workspace` / `agentDir` yol geçersiz kılmaları temizlenir. -Ortam anahtarlarına güvenmek istiyorsanız (örneğin `~/.profile` içinde dışa aktarıldılarsa), yerel testleri `source ~/.profile` sonrasında çalıştırın veya aşağıdaki Docker çalıştırıcılarını kullanın (bunlar `~/.profile` dosyasını kapsayıcıya bağlayabilir). +Ortam anahtarlarına güvenmek istiyorsanız (ör. `~/.profile` içinde dışa aktarılmışsa), yerel testleri `source ~/.profile` sonrasında çalıştırın veya aşağıdaki Docker çalıştırıcılarını kullanın (`~/.profile` dosyasını container içine bağlayabilirler). -## Deepgram canlı (ses dökümü) +## Deepgram canlı (ses transkripsiyonu) - Test: `src/media-understanding/providers/deepgram/audio.live.test.ts` - Etkinleştirme: `DEEPGRAM_API_KEY=... DEEPGRAM_LIVE_TEST=1 pnpm test:live src/media-understanding/providers/deepgram/audio.live.test.ts` @@ -633,28 +706,28 @@ Ortam anahtarlarına güvenmek istiyorsanız (örneğin `~/.profile` içinde dı - Test: `src/agents/byteplus.live.test.ts` - Etkinleştirme: `BYTEPLUS_API_KEY=... BYTEPLUS_LIVE_TEST=1 pnpm test:live src/agents/byteplus.live.test.ts` -- İsteğe bağlı model geçersiz kılması: `BYTEPLUS_CODING_MODEL=ark-code-latest` +- İsteğe bağlı model geçersiz kılma: `BYTEPLUS_CODING_MODEL=ark-code-latest` -## ComfyUI iş akışı medya canlı +## ComfyUI workflow media canlı - Test: `extensions/comfy/comfy.live.test.ts` - Etkinleştirme: `OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.ts` - Kapsam: - - Paketlenmiş comfy görüntü, video ve `music_generate` yollarını sınar - - `models.providers.comfy.` yapılandırılmadıkça her yeteneği atlar - - comfy iş akışı gönderimi, yoklama, indirmeler veya Plugin kaydı değiştirildikten sonra yararlıdır + - Paketlenmiş comfy görsel, video ve `music_generate` yollarını çalıştırır + - `models.providers.comfy.` yapılandırılmamışsa her yeteneği atlar + - Comfy workflow gönderimi, polling, indirmeler veya Plugin kaydı değiştirildikten sonra faydalıdır -## Görüntü oluşturma canlı +## Görsel üretimi canlı - Test: `src/image-generation/runtime.live.test.ts` - Komut: `pnpm test:live src/image-generation/runtime.live.test.ts` -- Koşum: `pnpm test:live:media image` +- Harness: `pnpm test:live:media image` - Kapsam: - - Kayıtlı her görüntü oluşturma sağlayıcısı Plugin'ini listeler - - Yoklamadan önce eksik sağlayıcı ortam değişkenlerini giriş kabuğunuzdan (`~/.profile`) yükler - - Varsayılan olarak canlı/ortam API anahtarlarını saklanan kimlik doğrulama profillerinin önünde kullanır; böylece `auth-profiles.json` içindeki eski test anahtarları gerçek kabuk kimlik bilgilerini maskelemez - - Kullanılabilir kimlik doğrulaması/profil/modeli olmayan sağlayıcıları atlar - - Stok görüntü oluşturma varyantlarını paylaşılan çalışma zamanı yeteneği üzerinden çalıştırır: + - Kayıtlı her görsel üretim sağlayıcısı Plugin'ini listeler + - Probe'dan önce eksik sağlayıcı env değişkenlerini giriş shell'inizden (`~/.profile`) yükler + - Varsayılan olarak saklanan auth profillerinden önce canlı/env API anahtarlarını kullanır; böylece `auth-profiles.json` içindeki bayat test anahtarları gerçek shell kimlik bilgilerini maskelemez + - Kullanılabilir auth/profil/model olmayan sağlayıcıları atlar + - Stok görsel üretim varyantlarını paylaşılan çalışma zamanı yeteneği üzerinden çalıştırır: - `google:flash-generate` - `google:pro-generate` - `google:pro-edit` @@ -666,22 +739,22 @@ Ortam anahtarlarına güvenmek istiyorsanız (örneğin `~/.profile` içinde dı - `OPENCLAW_LIVE_IMAGE_GENERATION_PROVIDERS="openai,google"` - `OPENCLAW_LIVE_IMAGE_GENERATION_MODELS="openai/gpt-image-1,google/gemini-3.1-flash-image-preview"` - `OPENCLAW_LIVE_IMAGE_GENERATION_CASES="google:flash-generate,google:pro-edit"` -- İsteğe bağlı kimlik doğrulama davranışı: - - Profil deposu kimlik doğrulamasını zorlamak ve yalnızca ortam geçersiz kılmalarını yok saymak için `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1` +- İsteğe bağlı auth davranışı: + - Profil deposu auth'unu zorlamak ve yalnızca env geçersiz kılmalarını yok saymak için `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1` -## Müzik oluşturma canlı +## Müzik üretimi canlı - Test: `extensions/music-generation-providers.live.test.ts` - Etkinleştirme: `OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.ts` -- Koşum: `pnpm test:live:media music` +- Harness: `pnpm test:live:media music` - Kapsam: - - Paylaşılan paketlenmiş müzik oluşturma sağlayıcı yolunu sınar - - Şu anda Google ve MiniMax'i kapsar - - Yoklamadan önce sağlayıcı ortam değişkenlerini giriş kabuğunuzdan (`~/.profile`) yükler - - Varsayılan olarak canlı/ortam API anahtarlarını saklanan kimlik doğrulama profillerinin önünde kullanır; böylece `auth-profiles.json` içindeki eski test anahtarları gerçek kabuk kimlik bilgilerini maskelemez - - Kullanılabilir kimlik doğrulaması/profil/modeli olmayan sağlayıcıları atlar - - Kullanılabilir olduğunda bildirilen her iki çalışma zamanı kipini de çalıştırır: - - yalnızca istem girdili `generate` + - Paylaşılan paketlenmiş müzik üretimi sağlayıcısı yolunu çalıştırır + - Şu anda Google ve MiniMax'ı kapsar + - Probe'dan önce sağlayıcı env değişkenlerini giriş shell'inizden (`~/.profile`) yükler + - Varsayılan olarak saklanan auth profillerinden önce canlı/env API anahtarlarını kullanır; böylece `auth-profiles.json` içindeki bayat test anahtarları gerçek shell kimlik bilgilerini maskelemez + - Kullanılabilir auth/profil/model olmayan sağlayıcıları atlar + - Mevcut olduğunda bildirilen her iki çalışma zamanı modunu da çalıştırır: + - yalnızca prompt girdisiyle `generate` - sağlayıcı `capabilities.edit.enabled` bildirdiğinde `edit` - Mevcut paylaşılan hat kapsaması: - `google`: `generate`, `edit` @@ -690,173 +763,174 @@ Ortam anahtarlarına güvenmek istiyorsanız (örneğin `~/.profile` içinde dı - İsteğe bağlı daraltma: - `OPENCLAW_LIVE_MUSIC_GENERATION_PROVIDERS="google,minimax"` - `OPENCLAW_LIVE_MUSIC_GENERATION_MODELS="google/lyria-3-clip-preview,minimax/music-2.5+"` -- İsteğe bağlı kimlik doğrulama davranışı: - - Profil deposu kimlik doğrulamasını zorlamak ve yalnızca ortam geçersiz kılmalarını yok saymak için `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1` +- İsteğe bağlı auth davranışı: + - Profil deposu auth'unu zorlamak ve yalnızca env geçersiz kılmalarını yok saymak için `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1` -## Video oluşturma canlı +## Video üretimi canlı - Test: `extensions/video-generation-providers.live.test.ts` - Etkinleştirme: `OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts` -- Koşum: `pnpm test:live:media video` +- Harness: `pnpm test:live:media video` - Kapsam: - - Paylaşılan paketlenmiş video oluşturma sağlayıcı yolunu sınar - - Yoklamadan önce sağlayıcı ortam değişkenlerini giriş kabuğunuzdan (`~/.profile`) yükler - - Varsayılan olarak canlı/ortam API anahtarlarını saklanan kimlik doğrulama profillerinin önünde kullanır; böylece `auth-profiles.json` içindeki eski test anahtarları gerçek kabuk kimlik bilgilerini maskelemez - - Kullanılabilir kimlik doğrulaması/profil/modeli olmayan sağlayıcıları atlar - - Kullanılabilir olduğunda bildirilen her iki çalışma zamanı kipini de çalıştırır: - - yalnızca istem girdili `generate` - - sağlayıcı `capabilities.imageToVideo.enabled` bildirdiğinde ve seçilen sağlayıcı/model paylaşılan taramada arabellek destekli yerel görüntü girişini kabul ettiğinde `imageToVideo` - - sağlayıcı `capabilities.videoToVideo.enabled` bildirdiğinde ve seçilen sağlayıcı/model paylaşılan taramada arabellek destekli yerel video girişini kabul ettiğinde `videoToVideo` - - Paylaşılan taramada şu anda bildirilmiş ancak atlanan `imageToVideo` sağlayıcıları: - - `vydra`, çünkü paketlenmiş `veo3` yalnızca metindir ve paketlenmiş `kling` uzak bir görüntü URL'si gerektirir + - Paylaşılan paketlenmiş video üretimi sağlayıcısı yolunu çalıştırır + - Probe'dan önce sağlayıcı env değişkenlerini giriş shell'inizden (`~/.profile`) yükler + - Varsayılan olarak saklanan auth profillerinden önce canlı/env API anahtarlarını kullanır; böylece `auth-profiles.json` içindeki bayat test anahtarları gerçek shell kimlik bilgilerini maskelemez + - Kullanılabilir auth/profil/model olmayan sağlayıcıları atlar + - Mevcut olduğunda bildirilen her iki çalışma zamanı modunu da çalıştırır: + - yalnızca prompt girdisiyle `generate` + - sağlayıcı `capabilities.imageToVideo.enabled` bildirdiğinde ve seçilen sağlayıcı/model paylaşılan taramada tampon destekli yerel görsel girdisini kabul ettiğinde `imageToVideo` + - sağlayıcı `capabilities.videoToVideo.enabled` bildirdiğinde ve seçilen sağlayıcı/model paylaşılan taramada tampon destekli yerel video girdisini kabul ettiğinde `videoToVideo` + - Paylaşılan taramada şu anda bildirilen ama atlanan `imageToVideo` sağlayıcıları: + - `vydra`, çünkü paketlenmiş `veo3` yalnızca metin desteklidir ve paketlenmiş `kling` uzak bir görsel URL'si gerektirir - Sağlayıcıya özgü Vydra kapsaması: - `OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_VYDRA_VIDEO=1 pnpm test:live -- extensions/vydra/vydra.live.test.ts` - - bu dosya varsayılan olarak uzak görüntü URL fixture'ı kullanan bir `kling` hattının yanı sıra `veo3` text-to-video çalıştırır - - Mevcut `videoToVideo` canlı kapsaması: - - yalnızca seçilen model `runway/gen4_aleph` olduğunda `runway` - - Paylaşılan taramada şu anda bildirilmiş ancak atlanan `videoToVideo` sağlayıcıları: - - `alibaba`, `qwen`, `xai`; çünkü bu yollar şu anda uzak `http(s)` / MP4 başvuru URL'leri gerektirir - - `google`; çünkü mevcut paylaşılan Gemini/Veo hattı yerel arabellek destekli girdi kullanır ve bu yol paylaşılan taramada kabul edilmez - - `openai`; çünkü mevcut paylaşılan hattın kuruma özgü video inpaint/remix erişim garantileri yoktur + - bu dosya varsayılan olarak uzak bir görsel URL fixture'ı kullanan bir `kling` hattıyla birlikte `veo3` text-to-video çalıştırır + - Şu anki `videoToVideo` canlı kapsaması: + - seçilen model `runway/gen4_aleph` olduğunda yalnızca `runway` + - Paylaşılan taramada şu anda bildirilen ama atlanan `videoToVideo` sağlayıcıları: + - `alibaba`, `qwen`, `xai`, çünkü bu yollar şu anda uzak `http(s)` / MP4 referans URL'leri gerektiriyor + - `google`, çünkü mevcut paylaşılan Gemini/Veo hattı yerel tampon destekli girdi kullanıyor ve bu yol paylaşılan taramada kabul edilmiyor + - `openai`, çünkü mevcut paylaşılan hatta kuruma özgü video inpaint/remix erişimi garantileri yok - İsteğe bağlı daraltma: - `OPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="google,openai,runway"` - `OPENCLAW_LIVE_VIDEO_GENERATION_MODELS="google/veo-3.1-fast-generate-preview,openai/sora-2,runway/gen4_aleph"` -- İsteğe bağlı kimlik doğrulama davranışı: - - Profil deposu kimlik doğrulamasını zorlamak ve yalnızca ortam geçersiz kılmalarını yok saymak için `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1` +- İsteğe bağlı auth davranışı: + - Profil deposu auth'unu zorlamak ve yalnızca env geçersiz kılmalarını yok saymak için `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1` -## Medya canlı koşumu +## Medya canlı harness'i - Komut: `pnpm test:live:media` - Amaç: - - Paylaşılan görüntü, müzik ve video canlı paketlerini tek bir depoya özgü giriş noktası üzerinden çalıştırır - - Eksik sağlayıcı ortam değişkenlerini `~/.profile` dosyasından otomatik yükler - - Varsayılan olarak her paketi şu anda kullanılabilir kimlik doğrulaması olan sağlayıcılara otomatik olarak daraltır - - `scripts/test-live.mjs` öğesini yeniden kullanır; böylece Heartbeat ve sessiz kip davranışı tutarlı kalır + - Paylaşılan görsel, müzik ve video canlı paketlerini tek bir depoya özgü giriş noktası üzerinden çalıştırır + - Eksik sağlayıcı env değişkenlerini `~/.profile` dosyasından otomatik yükler + - Varsayılan olarak her paketi o anda kullanılabilir auth'u olan sağlayıcılara otomatik daraltır + - `scripts/test-live.mjs` dosyasını yeniden kullanır; böylece Heartbeat ve sessiz mod davranışı tutarlı kalır - Örnekler: - `pnpm test:live:media` - `pnpm test:live:media image video --providers openai,google,minimax` - `pnpm test:live:media video --video-providers openai,runway --all-providers` - `pnpm test:live:media music --quiet` -## Docker çalıştırıcıları (isteğe bağlı “Linux'ta çalışıyor” denetimleri) +## Docker çalıştırıcıları (isteğe bağlı “Linux'ta çalışıyor” kontrolleri) Bu Docker çalıştırıcıları iki gruba ayrılır: -- Canlı model çalıştırıcıları: `test:docker:live-models` ve `test:docker:live-gateway`, yalnızca eşleşen profil anahtarlı canlı dosyalarını depo Docker imajı içinde çalıştırır (`src/agents/models.profiles.live.test.ts` ve `src/gateway/gateway-models.profiles.live.test.ts`), yerel yapılandırma dizininizi ve çalışma alanınızı bağlar (ve bağlıysa `~/.profile` dosyasını kaynak olarak yükler). Eşleşen yerel giriş noktaları `test:live:models-profiles` ve `test:live:gateway-profiles` şeklindedir. -- Docker canlı çalıştırıcıları varsayılan olarak daha küçük bir smoke sınırı kullanır; böylece tam bir Docker taraması pratik kalır: - `test:docker:live-models` varsayılan olarak `OPENCLAW_LIVE_MAX_MODELS=12` kullanır ve +- Canlı model çalıştırıcıları: `test:docker:live-models` ve `test:docker:live-gateway`, yalnızca eşleşen profil-anahtarı canlı dosyalarını depo Docker imajı içinde çalıştırır (`src/agents/models.profiles.live.test.ts` ve `src/gateway/gateway-models.profiles.live.test.ts`), yerel yapılandırma dizininizi ve çalışma alanınızı bağlar (ve bağlandıysa `~/.profile` dosyasını kaynak olarak yükler). Eşleşen yerel giriş noktaları `test:live:models-profiles` ve `test:live:gateway-profiles`'tır. +- Docker canlı çalıştırıcıları, tam bir Docker taramasının pratik kalması için varsayılan olarak daha küçük bir smoke sınırı kullanır: + `test:docker:live-models` varsayılan olarak `OPENCLAW_LIVE_MAX_MODELS=12`, ve `test:docker:live-gateway` varsayılan olarak `OPENCLAW_LIVE_GATEWAY_SMOKE=1`, `OPENCLAW_LIVE_GATEWAY_MAX_MODELS=8`, `OPENCLAW_LIVE_GATEWAY_STEP_TIMEOUT_MS=45000` ve - `OPENCLAW_LIVE_GATEWAY_MODEL_TIMEOUT_MS=90000` kullanır. Daha büyük kapsamlı taramayı özellikle istediğinizde bu ortam değişkenlerini geçersiz kılın. -- `test:docker:all`, canlı Docker imajını bir kez `test:docker:live-build` ile oluşturur, ardından bunu iki canlı Docker hattı için yeniden kullanır. -- Kapsayıcı smoke çalıştırıcıları: `test:docker:openwebui`, `test:docker:onboard`, `test:docker:gateway-network`, `test:docker:mcp-channels` ve `test:docker:plugins`, bir veya daha fazla gerçek kapsayıcı başlatır ve daha üst düzey entegrasyon yollarını doğrular. + `OPENCLAW_LIVE_GATEWAY_MODEL_TIMEOUT_MS=90000` ayarlar. Daha büyük kapsamlı taramayı + özellikle istediğinizde bu env değişkenlerini geçersiz kılın. +- `test:docker:all`, canlı Docker imajını önce `test:docker:live-build` aracılığıyla bir kez oluşturur, sonra bunu iki canlı Docker hattı için yeniden kullanır. +- Container smoke çalıştırıcıları: `test:docker:openwebui`, `test:docker:onboard`, `test:docker:gateway-network`, `test:docker:mcp-channels` ve `test:docker:plugins`, bir veya daha fazla gerçek container başlatır ve daha üst düzey entegrasyon yollarını doğrular. -Canlı model Docker çalıştırıcıları ayrıca yalnızca gereken CLI kimlik doğrulama ana dizinlerini bağlar (ya da çalıştırma daraltılmadıysa desteklenenlerin tümünü), ardından harici CLI OAuth'un ana makine kimlik doğrulama deposunu değiştirmeden belirteçleri yenileyebilmesi için çalıştırma öncesinde bunları kapsayıcı ana dizinine kopyalar: +Canlı model Docker çalıştırıcıları ayrıca yalnızca gerekli CLI auth home'larını (veya çalıştırma daraltılmadıysa desteklenenlerin tümünü) bind-mount eder, sonra dış CLI OAuth'unun host auth deposunu değiştirmeden token'ları yenileyebilmesi için bunları çalıştırma öncesinde container home'una kopyalar: - Doğrudan modeller: `pnpm test:docker:live-models` (betik: `scripts/test-live-models-docker.sh`) - ACP bind smoke: `pnpm test:docker:live-acp-bind` (betik: `scripts/test-live-acp-bind-docker.sh`) - CLI backend smoke: `pnpm test:docker:live-cli-backend` (betik: `scripts/test-live-cli-backend-docker.sh`) - Codex app-server harness smoke: `pnpm test:docker:live-codex-harness` (betik: `scripts/test-live-codex-harness-docker.sh`) -- Gateway + geliştirme aracısı: `pnpm test:docker:live-gateway` (betik: `scripts/test-live-gateway-models-docker.sh`) +- Gateway + geliştirme ajanı: `pnpm test:docker:live-gateway` (betik: `scripts/test-live-gateway-models-docker.sh`) - Open WebUI canlı smoke: `pnpm test:docker:openwebui` (betik: `scripts/e2e/openwebui-docker.sh`) -- Onboarding sihirbazı (TTY, tam iskele): `pnpm test:docker:onboard` (betik: `scripts/e2e/onboard-docker.sh`) -- Gateway ağ iletişimi (iki kapsayıcı, WS kimlik doğrulama + sağlık): `pnpm test:docker:gateway-network` (betik: `scripts/e2e/gateway-network-docker.sh`) -- MCP kanal köprüsü (tohumlanmış Gateway + stdio köprüsü + ham Claude bildirim çerçevesi smoke): `pnpm test:docker:mcp-channels` (betik: `scripts/e2e/mcp-channels-docker.sh`) +- Onboarding wizard'ı (TTY, tam scaffolding): `pnpm test:docker:onboard` (betik: `scripts/e2e/onboard-docker.sh`) +- Gateway ağ iletişimi (iki container, WS auth + health): `pnpm test:docker:gateway-network` (betik: `scripts/e2e/gateway-network-docker.sh`) +- MCP kanal köprüsü (tohumlanmış Gateway + stdio bridge + ham Claude notification-frame smoke): `pnpm test:docker:mcp-channels` (betik: `scripts/e2e/mcp-channels-docker.sh`) - Plugin'ler (kurulum smoke + `/plugin` takma adı + Claude paketi yeniden başlatma semantiği): `pnpm test:docker:plugins` (betik: `scripts/e2e/plugins-docker.sh`) -Canlı model Docker çalıştırıcıları ayrıca mevcut checkout'u salt okunur olarak bağlar ve -bunu kapsayıcı içinde geçici bir çalışma dizinine hazırlar. Bu, çalışma zamanı -imajını ince tutarken yine de Vitest'i tam olarak yerel kaynak/yapılandırmanız üzerinde çalıştırır. -Hazırlama adımı, Docker canlı çalıştırmalarının -makineye özgü yapıtları dakikalarca kopyalamaması için `.pnpm-store`, `.worktrees`, `__openclaw_vitest__` ve uygulamaya özgü `.build` veya -Gradle çıktı dizinleri gibi büyük yerel-only önbellekleri ve uygulama derleme çıktılarını atlar. -Ayrıca `OPENCLAW_SKIP_CHANNELS=1` ayarlarlar; böylece gateway canlı yoklamaları kapsayıcı içinde -gerçek Telegram/Discord vb. kanal çalışanlarını başlatmaz. -`test:docker:live-models` yine de `pnpm test:live` çalıştırır; bu nedenle -o Docker hattında gateway canlı kapsamasını daraltmanız veya hariç tutmanız gerektiğinde -`OPENCLAW_LIVE_GATEWAY_*` değişkenlerini de iletin. -`test:docker:openwebui`, daha üst düzey bir uyumluluk smoke testidir: OpenAI uyumlu HTTP uç noktaları etkin bir -OpenClaw gateway kapsayıcısı başlatır, bu gateway'e karşı sabitlenmiş bir Open WebUI kapsayıcısı başlatır, Open WebUI üzerinden oturum açar, -`/api/models` üzerinde `openclaw/default` modelinin sunulduğunu doğrular, ardından -Open WebUI'nin `/api/chat/completions` proxy'si üzerinden gerçek bir sohbet isteği gönderir. -İlk çalıştırma belirgin biçimde daha yavaş olabilir; çünkü Docker'ın -Open WebUI imajını çekmesi ve Open WebUI'nin kendi soğuk başlangıç kurulumunu tamamlaması gerekebilir. +Canlı model Docker çalıştırıcıları ayrıca mevcut checkout'u salt okunur olarak bind-mount eder ve +container içinde geçici bir workdir'e hazırlar. Bu, çalışma zamanı +imajını ince tutarken yine de tam yerel kaynak/yapılandırmanız üzerinde Vitest çalıştırılmasını sağlar. +Hazırlama adımı `.pnpm-store`, `.worktrees`, `__openclaw_vitest__` ve +uygulamaya özgü `.build` veya Gradle çıktı dizinleri gibi büyük yerel önbellekleri ve uygulama derleme çıktılarını atlar; böylece Docker canlı çalıştırmaları +makineye özgü artifact'ları kopyalamak için dakikalar harcamaz. +Ayrıca `OPENCLAW_SKIP_CHANNELS=1` ayarlarlar; böylece Gateway canlı probları +container içinde gerçek Telegram/Discord vb. kanal worker'larını başlatmaz. +`test:docker:live-models` yine de `pnpm test:live` çalıştırır; bu nedenle bu Docker hattında +Gateway canlı kapsamını daraltmanız veya hariç tutmanız gerektiğinde `OPENCLAW_LIVE_GATEWAY_*` +değerlerini de iletin. +`test:docker:openwebui` daha üst düzey bir uyumluluk smoke'udur: OpenAI uyumlu HTTP uç noktaları etkin bir +OpenClaw Gateway container'ı başlatır, +bu Gateway'ye karşı sabitlenmiş bir Open WebUI container'ı başlatır, Open WebUI üzerinden oturum açar, +`/api/models` içinde `openclaw/default` gösterildiğini doğrular, ardından +Open WebUI'nin `/api/chat/completions` vekili üzerinden gerçek bir sohbet isteği gönderir. +İlk çalıştırma gözle görülür biçimde daha yavaş olabilir; çünkü Docker'ın +Open WebUI imajını çekmesi gerekebilir ve Open WebUI'nin kendi soğuk başlangıç kurulumunu tamamlaması gerekebilir. Bu hat kullanılabilir bir canlı model anahtarı bekler ve `OPENCLAW_PROFILE_FILE` -(Docker çalıştırmalarında varsayılan olarak `~/.profile`) bunu sağlamak için birincil yoldur. +(Docker'lı çalıştırmalarda varsayılan olarak `~/.profile`) bunu sağlamak için birincil yoldur. Başarılı çalıştırmalar `{ "ok": true, "model": "openclaw/default", ... }` gibi küçük bir JSON yükü yazdırır. -`test:docker:mcp-channels` kasıtlı olarak deterministiktir ve -gerçek bir Telegram, Discord veya iMessage hesabına ihtiyaç duymaz. Tohumlanmış bir Gateway -kapsayıcısı başlatır, ardından `openclaw mcp serve` oluşturan ikinci bir kapsayıcı başlatır ve -gerçek stdio MCP köprüsü üzerinden yönlendirilmiş konuşma keşfini, döküm okumalarını, ek metadata'sını, -canlı olay kuyruğu davranışını, giden gönderme yönlendirmesini ve Claude tarzı kanal + -izin bildirimlerini doğrular. Bildirim denetimi, -smoke testinin yalnızca belirli bir istemci SDK'sının ortaya çıkardığını değil, köprünün gerçekten ne yaydığını doğrulaması için -ham stdio MCP çerçevelerini doğrudan inceler. +`test:docker:mcp-channels` kasıtlı olarak deterministiktir ve gerçek bir +Telegram, Discord veya iMessage hesabı gerektirmez. Tohumlanmış bir Gateway +container'ı başlatır, `openclaw mcp serve` üreten ikinci bir container başlatır, sonra +yönlendirilmiş konuşma keşfini, transkript okumalarını, ek metadata'sını, +canlı olay kuyruğu davranışını, giden gönderim yönlendirmesini ve Claude tarzı kanal + +izin bildirimlerini gerçek stdio MCP köprüsü üzerinden doğrular. Bildirim kontrolü +ham stdio MCP frame'lerini doğrudan inceler; böylece smoke, yalnızca belirli bir istemci SDK'sının +tesadüfen yüzeye çıkardığını değil, köprünün gerçekten ne yayımladığını doğrular. -Elle ACP düz dil iş parçacığı smoke testi (CI değil): +Manuel ACP doğal dil thread smoke'u (CI değil): - `bun scripts/dev/discord-acp-plain-language-smoke.ts --channel ...` -- Bu betiği regresyon/hata ayıklama iş akışları için saklayın. ACP iş parçacığı yönlendirme doğrulaması için yeniden gerekebilir, bu yüzden silmeyin. +- Bu betiği regresyon/hata ayıklama iş akışları için tutun. ACP thread yönlendirme doğrulaması için yeniden gerekebilir, bu yüzden silmeyin. -Yararlı ortam değişkenleri: +Yararlı env değişkenleri: -- `OPENCLAW_CONFIG_DIR=...` (varsayılan: `~/.openclaw`), `/home/node/.openclaw` konumuna bağlanır -- `OPENCLAW_WORKSPACE_DIR=...` (varsayılan: `~/.openclaw/workspace`), `/home/node/.openclaw/workspace` konumuna bağlanır -- `OPENCLAW_PROFILE_FILE=...` (varsayılan: `~/.profile`), `/home/node/.profile` konumuna bağlanır ve testleri çalıştırmadan önce kaynak olarak yüklenir -- `OPENCLAW_DOCKER_CLI_TOOLS_DIR=...` (varsayılan: `~/.cache/openclaw/docker-cli-tools`), Docker içinde önbelleğe alınmış CLI kurulumları için `/home/node/.npm-global` konumuna bağlanır -- `$HOME` altındaki harici CLI kimlik doğrulama dizinleri/dosyaları, `/host-auth...` altında salt okunur bağlanır, ardından testler başlamadan önce `/home/node/...` konumuna kopyalanır +- `OPENCLAW_CONFIG_DIR=...` (varsayılan: `~/.openclaw`) `/home/node/.openclaw` dizinine bağlanır +- `OPENCLAW_WORKSPACE_DIR=...` (varsayılan: `~/.openclaw/workspace`) `/home/node/.openclaw/workspace` dizinine bağlanır +- `OPENCLAW_PROFILE_FILE=...` (varsayılan: `~/.profile`) `/home/node/.profile` dizinine bağlanır ve testleri çalıştırmadan önce kaynak olarak yüklenir +- `OPENCLAW_DOCKER_CLI_TOOLS_DIR=...` (varsayılan: `~/.cache/openclaw/docker-cli-tools`) Docker içindeki önbelleğe alınmış CLI kurulumları için `/home/node/.npm-global` dizinine bağlanır +- `$HOME` altındaki harici CLI auth dizinleri/dosyaları `/host-auth...` altında salt okunur olarak bağlanır, sonra testler başlamadan önce `/home/node/...` içine kopyalanır - Varsayılan dizinler: `.minimax` - Varsayılan dosyalar: `~/.codex/auth.json`, `~/.codex/config.toml`, `.claude.json`, `~/.claude/.credentials.json`, `~/.claude/settings.json`, `~/.claude/settings.local.json` - - Daraltılmış sağlayıcı çalıştırmaları yalnızca `OPENCLAW_LIVE_PROVIDERS` / `OPENCLAW_LIVE_GATEWAY_PROVIDERS` üzerinden çıkarılan gerekli dizinleri/dosyaları bağlar - - Elle geçersiz kılmak için `OPENCLAW_DOCKER_AUTH_DIRS=all`, `OPENCLAW_DOCKER_AUTH_DIRS=none` veya `OPENCLAW_DOCKER_AUTH_DIRS=.claude,.codex` gibi virgülle ayrılmış bir liste kullanın + - Daraltılmış sağlayıcı çalıştırmaları yalnızca `OPENCLAW_LIVE_PROVIDERS` / `OPENCLAW_LIVE_GATEWAY_PROVIDERS` değerlerinden çıkarılan gerekli dizinleri/dosyaları bağlar + - El ile geçersiz kılmak için `OPENCLAW_DOCKER_AUTH_DIRS=all`, `OPENCLAW_DOCKER_AUTH_DIRS=none` veya `OPENCLAW_DOCKER_AUTH_DIRS=.claude,.codex` gibi virgülle ayrılmış bir liste kullanın - Çalıştırmayı daraltmak için `OPENCLAW_LIVE_GATEWAY_MODELS=...` / `OPENCLAW_LIVE_MODELS=...` -- Kapsayıcı içinde sağlayıcıları filtrelemek için `OPENCLAW_LIVE_GATEWAY_PROVIDERS=...` / `OPENCLAW_LIVE_PROVIDERS=...` +- Container içindeki sağlayıcıları filtrelemek için `OPENCLAW_LIVE_GATEWAY_PROVIDERS=...` / `OPENCLAW_LIVE_PROVIDERS=...` - Yeniden derleme gerektirmeyen tekrar çalıştırmalar için mevcut `openclaw:local-live` imajını yeniden kullanmak üzere `OPENCLAW_SKIP_DOCKER_BUILD=1` -- Kimlik bilgilerinin ortamdan değil, profil deposundan geldiğinden emin olmak için `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1` -- Open WebUI smoke için gateway tarafından sunulan modeli seçmek üzere `OPENCLAW_OPENWEBUI_MODEL=...` -- Open WebUI smoke tarafından kullanılan nonce denetim istemini geçersiz kılmak için `OPENCLAW_OPENWEBUI_PROMPT=...` +- Kimlik bilgilerinin env'den değil profil deposundan geldiğinden emin olmak için `OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1` +- Open WebUI smoke için Gateway'nin sunduğu modeli seçmek üzere `OPENCLAW_OPENWEBUI_MODEL=...` +- Open WebUI smoke'unun kullandığı nonce kontrol prompt'unu geçersiz kılmak için `OPENCLAW_OPENWEBUI_PROMPT=...` - Sabitlenmiş Open WebUI imaj etiketini geçersiz kılmak için `OPENWEBUI_IMAGE=...` -## Belge sağlama +## Belgeler sağlama kontrolü -Belge düzenlemelerinden sonra belge denetimlerini çalıştırın: `pnpm check:docs`. -Sayfa içi başlık denetimlerine de ihtiyaç duyduğunuzda tam Mintlify bağlantı doğrulamasını çalıştırın: `pnpm docs:check-links:anchors`. +Belge düzenlemelerinden sonra belge kontrollerini çalıştırın: `pnpm check:docs`. +Sayfa içi başlık kontrollerine de ihtiyacınız olduğunda tam Mintlify anchor doğrulamasını çalıştırın: `pnpm docs:check-links:anchors`. ## Çevrimdışı regresyon (CI-güvenli) -Bunlar, gerçek sağlayıcılar olmadan çalışan “gerçek işlem hattı” regresyonlarıdır: +Bunlar, gerçek sağlayıcılar olmadan “gerçek boru hattı” regresyonlarıdır: -- Gateway tool calling (sahte OpenAI, gerçek gateway + aracı döngüsü): `src/gateway/gateway.test.ts` (örnek: "runs a mock OpenAI tool call end-to-end via gateway agent loop") -- Gateway sihirbazı (WS `wizard.start`/`wizard.next`, yapılandırma + kimlik doğrulama yazımı zorunlu): `src/gateway/gateway.test.ts` (örnek: "runs wizard over ws and writes auth token config") +- Gateway araç çağırma (sahte OpenAI, gerçek Gateway + ajan döngüsü): `src/gateway/gateway.test.ts` (durum: "runs a mock OpenAI tool call end-to-end via gateway agent loop") +- Gateway wizard'ı (WS `wizard.start`/`wizard.next`, config + auth yazımı zorunlu): `src/gateway/gateway.test.ts` (durum: "runs wizard over ws and writes auth token config") -## Aracı güvenilirliği değerlendirmeleri (Skills) +## Ajan güvenilirliği değerlendirmeleri (Skills) -Zaten “aracı güvenilirliği değerlendirmeleri” gibi davranan birkaç CI-güvenli testimiz var: +Zaten “ajan güvenilirliği değerlendirmeleri” gibi davranan birkaç CI-güvenli testimiz var: -- Gerçek gateway + aracı döngüsü üzerinden sahte tool calling (`src/gateway/gateway.test.ts`). -- Oturum bağlantısını ve yapılandırma etkilerini doğrulayan uçtan uca sihirbaz akışları (`src/gateway/gateway.test.ts`). +- Gerçek Gateway + ajan döngüsü üzerinden sahte araç çağırma (`src/gateway/gateway.test.ts`). +- Oturum bağlantısını ve config etkilerini doğrulayan uçtan uca wizard akışları (`src/gateway/gateway.test.ts`). -Skills için hâlâ eksik olanlar (bkz. [Skills](/tr/tools/skills)): +Skills için hâlâ eksik olanlar ([Skills](/tr/tools/skills) bölümüne bakın): -- **Karar verme:** Skills istemde listelendiğinde aracı doğru Skill'i seçiyor mu (veya ilgisiz olanlardan kaçınıyor mu)? -- **Uyumluluk:** aracı kullanmadan önce `SKILL.md` dosyasını okuyor ve gerekli adımları/argümanları izliyor mu? -- **İş akışı sözleşmeleri:** araç sırasını, oturum geçmişi devrini ve sandbox sınırlarını doğrulayan çok turlu senaryolar. +- **Karar verme:** Skills prompt içinde listelendiğinde, ajan doğru Skill'i seçiyor mu (veya ilgisiz olanlardan kaçınıyor mu)? +- **Uyumluluk:** ajan kullanmadan önce `SKILL.md` dosyasını okuyor ve gerekli adımları/argümanları izliyor mu? +- **İş akışı sözleşmeleri:** araç sırasını, oturum geçmişi taşınmasını ve sandbox sınırlarını doğrulayan çok turlu senaryolar. Gelecekteki değerlendirmeler önce deterministik kalmalıdır: -- Araç çağrılarını + sıralarını, Skill dosyası okumalarını ve oturum bağlantısını doğrulamak için sahte sağlayıcılar kullanan bir senaryo çalıştırıcısı. -- Skill odaklı küçük bir senaryo paketi (kullanma vs kaçınma, geçitleme, istem enjeksiyonu). -- İsteğe bağlı canlı değerlendirmeler (opt-in, ortamla kapılı) yalnızca CI-güvenli paket yerleştikten sonra. +- Araç çağrılarını + sırasını, Skill dosyası okumalarını ve oturum bağlantısını doğrulamak için sahte sağlayıcılar kullanan bir senaryo çalıştırıcısı. +- Skill odaklı küçük bir senaryo paketi (kullan vs kaçın, kapılama, prompt injection). +- İsteğe bağlı canlı değerlendirmeler (isteğe bağlı, env kapılı) yalnızca CI-güvenli paket yerleştirildikten sonra. ## Sözleşme testleri (Plugin ve kanal şekli) -Sözleşme testleri, kayıtlı her Plugin ve kanalın +Sözleşme testleri, kayıtlı her Plugin ve kanalın kendi arayüz sözleşmesine uyduğunu doğrular. Keşfedilen tüm Plugin'ler üzerinde dolaşır ve -şekil ile davranış doğrulamalarından oluşan bir paket çalıştırırlar. Varsayılan `pnpm test` birim hattı -kasıtlı olarak bu paylaşılan seam ve smoke dosyalarını atlar; paylaşılan kanal veya sağlayıcı yüzeylerine dokunduğunuzda -sözleşme komutlarını açıkça çalıştırın. +bir dizi şekil ve davranış doğrulaması çalıştırırlar. Varsayılan `pnpm test` birim hattı +bu paylaşılan seam ve smoke dosyalarını kasıtlı olarak atlar; paylaşılan kanal veya sağlayıcı yüzeylerine dokunduğunuzda sözleşme komutlarını açıkça çalıştırın. ### Komutlar @@ -866,31 +940,31 @@ sözleşme komutlarını açıkça çalıştırın. ### Kanal sözleşmeleri -`src/channels/plugins/contracts/*.contract.test.ts` içinde bulunur: +`src/channels/plugins/contracts/*.contract.test.ts` konumunda bulunur: -- **plugin** - Temel Plugin şekli (id, ad, yetenekler) +- **plugin** - Temel Plugin şekli (id, name, capabilities) - **setup** - Kurulum sihirbazı sözleşmesi - **session-binding** - Oturum bağlama davranışı - **outbound-payload** - Mesaj yükü yapısı - **inbound** - Gelen mesaj işleme - **actions** - Kanal eylem işleyicileri -- **threading** - İş parçacığı kimliği işleme -- **directory** - Dizin/kadro API'si -- **group-policy** - Grup politikası zorlaması +- **threading** - Thread kimliği işleme +- **directory** - Dizin/roster API +- **group-policy** - Grup ilkesi zorlaması ### Sağlayıcı durum sözleşmeleri -`src/plugins/contracts/*.contract.test.ts` içinde bulunur. +`src/plugins/contracts/*.contract.test.ts` konumunda bulunur. -- **status** - Kanal durum yoklamaları +- **status** - Kanal durum probe'ları - **registry** - Plugin kayıt defteri şekli ### Sağlayıcı sözleşmeleri -`src/plugins/contracts/*.contract.test.ts` içinde bulunur: +`src/plugins/contracts/*.contract.test.ts` konumunda bulunur: -- **auth** - Kimlik doğrulama akışı sözleşmesi -- **auth-choice** - Kimlik doğrulama seçimi/seçim mantığı +- **auth** - Auth akışı sözleşmesi +- **auth-choice** - Auth seçimi/seçenek belirleme - **catalog** - Model katalog API'si - **discovery** - Plugin keşfi - **loader** - Plugin yükleme @@ -900,21 +974,21 @@ sözleşme komutlarını açıkça çalıştırın. ### Ne zaman çalıştırılmalı -- plugin-sdk dışa aktarımlarını veya alt yollarını değiştirdikten sonra +- Plugin SDK dışa aktarımlarını veya alt yollarını değiştirdikten sonra - Bir kanal veya sağlayıcı Plugin'i ekledikten ya da değiştirdikten sonra -- Plugin kaydını veya keşfini yeniden düzenledikten sonra +- Plugin kaydı veya keşfini yeniden düzenledikten sonra -Sözleşme testleri CI'da çalışır ve gerçek API anahtarları gerektirmez. +Sözleşme testleri CI içinde çalışır ve gerçek API anahtarları gerektirmez. ## Regresyon ekleme (rehber) Canlıda keşfedilen bir sağlayıcı/model sorununu düzelttiğinizde: -- Mümkünse CI-güvenli bir regresyon ekleyin (sahte/stub sağlayıcı veya tam istek şekli dönüşümünü yakalayın) -- Sorun doğası gereği yalnızca canlıysa (oran sınırları, kimlik doğrulama politikaları), canlı testi dar ve ortam değişkenleriyle opt-in olacak şekilde tutun +- Mümkünse CI-güvenli bir regresyon ekleyin (sahte/stub sağlayıcı veya tam istek-şekli dönüşümünü yakalayın) +- Sorun doğası gereği yalnızca canlıysa (oran sınırları, auth politikaları), canlı testi dar ve env değişkenleriyle isteğe bağlı tutun - Hatayı yakalayan en küçük katmanı hedeflemeyi tercih edin: - - sağlayıcı istek dönüştürme/yeniden oynatma hatası → doğrudan modeller testi - - gateway oturum/geçmiş/araç işlem hattısı hatası → gateway canlı smoke veya CI-güvenli gateway sahte testi -- SecretRef dolaşma korkuluğu: - - `src/secrets/exec-secret-ref-id-parity.test.ts`, kayıt defteri metadata'sından (`listSecretTargetRegistryEntries()`) SecretRef sınıfı başına örneklenmiş bir hedef türetir, ardından dolaşma segmenti exec kimliklerinin reddedildiğini doğrular. - - `src/secrets/target-registry-data.ts` içinde yeni bir `includeInPlan` SecretRef hedef ailesi eklerseniz, bu testte `classifyTargetClass` öğesini güncelleyin. Test, yeni sınıfların sessizce atlanamaması için sınıflandırılmamış hedef kimliklerinde kasıtlı olarak başarısız olur. + - sağlayıcı istek dönüştürme/replay hatası → doğrudan modeller testi + - Gateway oturum/geçmiş/araç hattı hatası → Gateway canlı smoke veya CI-güvenli Gateway mock testi +- SecretRef gezinme koruma kuralı: + - `src/secrets/exec-secret-ref-id-parity.test.ts`, kayıt defteri metadata'sından (`listSecretTargetRegistryEntries()`) SecretRef sınıfı başına örneklenmiş bir hedef türetir, ardından traversal segment `exec` kimliklerinin reddedildiğini doğrular. + - `src/secrets/target-registry-data.ts` içinde yeni bir `includeInPlan` SecretRef hedef ailesi eklerseniz, o testte `classifyTargetClass` öğesini güncelleyin. Test, yeni sınıfların sessizce atlanamaması için sınıflandırılmamış hedef kimliklerinde kasıtlı olarak başarısız olur. diff --git a/docs/tr/providers/index.md b/docs/tr/providers/index.md index 81edbe281..932e06f09 100644 --- a/docs/tr/providers/index.md +++ b/docs/tr/providers/index.md @@ -1,28 +1,27 @@ --- read_when: - Bir model sağlayıcısı seçmek istiyorsunuz - - Desteklenen LLM arka uçlarına dair hızlı bir genel bakışa ihtiyacınız var + - Desteklenen LLM arka uçlarına hızlı bir genel bakışa ihtiyacınız var summary: OpenClaw tarafından desteklenen model sağlayıcıları (LLM'ler) title: Sağlayıcı Dizini x-i18n: - generated_at: "2026-04-08T02:17:27Z" + generated_at: "2026-04-13T08:50:46Z" model: gpt-5.4 provider: openai - source_hash: e7bee5528b7fc9a982b3d0eaa4930cb77f7bded19a47aec00572b6fcbd823a70 + source_hash: 3bc682d008119719826f71f74959ab32bedf14214459f5e6ac9cb70371d3c540 source_path: providers/index.md workflow: 15 --- # Model Sağlayıcıları -OpenClaw birçok LLM sağlayıcısını kullanabilir. Bir sağlayıcı seçin, kimlik doğrulamasını yapın, ardından -varsayılan modeli `provider/model` olarak ayarlayın. +OpenClaw birçok LLM sağlayıcısını kullanabilir. Bir sağlayıcı seçin, kimlik doğrulaması yapın, ardından varsayılan modeli `provider/model` olarak ayarlayın. -Sohbet kanalı belgelerini mi arıyorsunuz (WhatsApp/Telegram/Discord/Slack/Mattermost (eklenti)/vb.)? [Kanallar](/tr/channels) bölümüne bakın. +Sohbet kanalı belgelerini mi arıyorsunuz (WhatsApp/Telegram/Discord/Slack/Mattermost (Plugin)/vb.)? [Kanallar](/tr/channels) bölümüne bakın. ## Hızlı başlangıç -1. Sağlayıcıyla kimlik doğrulaması yapın (genellikle `openclaw onboard` aracılığıyla). +1. Sağlayıcıda kimlik doğrulaması yapın (genellikle `openclaw onboard` aracılığıyla). 2. Varsayılan modeli ayarlayın: ```json5 @@ -51,7 +50,8 @@ Sohbet kanalı belgelerini mi arıyorsunuz (WhatsApp/Telegram/Discord/Slack/Matt - [Hugging Face (Inference)](/tr/providers/huggingface) - [inferrs (yerel modeller)](/tr/providers/inferrs) - [Kilocode](/tr/providers/kilocode) -- [LiteLLM (birleşik gateway)](/tr/providers/litellm) +- [LiteLLM (birleşik ağ geçidi)](/tr/providers/litellm) +- [LM Studio (yerel modeller)](/tr/providers/lmstudio) - [MiniMax](/tr/providers/minimax) - [Mistral](/tr/providers/mistral) - [Moonshot AI (Kimi + Kimi Coding)](/tr/providers/moonshot) @@ -81,9 +81,9 @@ Sohbet kanalı belgelerini mi arıyorsunuz (WhatsApp/Telegram/Discord/Slack/Matt ## Paylaşılan genel bakış sayfaları - [Ek paketlenmiş varyantlar](/tr/providers/models#additional-bundled-provider-variants) - Anthropic Vertex, Copilot Proxy ve Gemini CLI OAuth -- [Görüntü Oluşturma](/tr/tools/image-generation) - Paylaşılan `image_generate` aracı, sağlayıcı seçimi ve yük devretme -- [Müzik Oluşturma](/tr/tools/music-generation) - Paylaşılan `music_generate` aracı, sağlayıcı seçimi ve yük devretme -- [Video Oluşturma](/tr/tools/video-generation) - Paylaşılan `video_generate` aracı, sağlayıcı seçimi ve yük devretme +- [Görüntü Oluşturma](/tr/tools/image-generation) - Paylaşılan `image_generate` aracı, sağlayıcı seçimi ve devretme +- [Müzik Oluşturma](/tr/tools/music-generation) - Paylaşılan `music_generate` aracı, sağlayıcı seçimi ve devretme +- [Video Oluşturma](/tr/tools/video-generation) - Paylaşılan `video_generate` aracı, sağlayıcı seçimi ve devretme ## Transkripsiyon sağlayıcıları @@ -91,7 +91,6 @@ Sohbet kanalı belgelerini mi arıyorsunuz (WhatsApp/Telegram/Discord/Slack/Matt ## Topluluk araçları -- [Claude Max API Proxy](/tr/providers/claude-max-api-proxy) - Claude abonelik kimlik bilgileri için topluluk proxy'si (kullanmadan önce Anthropic ilke/şartlarını doğrulayın) +- [Claude Max API Proxy](/tr/providers/claude-max-api-proxy) - Claude abonelik kimlik bilgileri için topluluk proxy'si (kullanmadan önce Anthropic ilkesini/şartlarını doğrulayın) -Tam sağlayıcı kataloğu (xAI, Groq, Mistral vb.) ve gelişmiş yapılandırma için -[Model sağlayıcıları](/tr/concepts/model-providers) bölümüne bakın. +Tam sağlayıcı kataloğu (xAI, Groq, Mistral vb.) ve gelişmiş yapılandırma için [Model sağlayıcıları](/tr/concepts/model-providers) bölümüne bakın. diff --git a/docs/tr/providers/lmstudio.md b/docs/tr/providers/lmstudio.md new file mode 100644 index 000000000..85c6a883e --- /dev/null +++ b/docs/tr/providers/lmstudio.md @@ -0,0 +1,166 @@ +--- +read_when: + - OpenClaw'ı LM Studio aracılığıyla açık kaynak modellerle çalıştırmak istiyorsunuz + - LM Studio'yu kurmak ve yapılandırmak istiyorsunuz +summary: OpenClaw'ı LM Studio ile çalıştırın +title: LM Studio +x-i18n: + generated_at: "2026-04-13T08:50:44Z" + model: gpt-5.4 + provider: openai + source_hash: 11264584e8277260d4215feb7c751329ce04f59e9228da1c58e147c21cd9ac2c + source_path: providers/lmstudio.md + workflow: 15 +--- + +# LM Studio + +LM Studio, açık ağırlıklı modelleri kendi donanımınızda çalıştırmak için kullanıcı dostu ama güçlü bir uygulamadır. `llama.cpp` (GGUF) veya MLX modellerini (Apple Silicon) çalıştırmanıza olanak tanır. GUI paketi ya da başsız daemon (`llmster`) olarak sunulur. Ürün ve kurulum belgeleri için [lmstudio.ai](https://lmstudio.ai/) adresine bakın. + +## Hızlı başlangıç + +1. LM Studio'yu (masaüstü) veya `llmster`'ı (başsız) kurun, ardından yerel sunucuyu başlatın: + +```bash +curl -fsSL https://lmstudio.ai/install.sh | bash +``` + +2. Sunucuyu başlatın + +Masaüstü uygulamasını başlattığınızdan ya da daemon'u aşağıdaki komutu kullanarak çalıştırdığınızdan emin olun: + +```bash +lms daemon up +``` + +```bash +lms server start --port 1234 +``` + +Uygulamayı kullanıyorsanız, sorunsuz bir deneyim için JIT'in etkin olduğundan emin olun. Daha fazla bilgi için [LM Studio JIT and TTL guide](https://lmstudio.ai/docs/developer/core/ttl-and-auto-evict) belgesine bakın. + +3. OpenClaw, bir LM Studio token değeri gerektirir. `LM_API_TOKEN` değişkenini ayarlayın: + +```bash +export LM_API_TOKEN="your-lm-studio-api-token" +``` + +LM Studio kimlik doğrulaması devre dışıysa, boş olmayan herhangi bir token değeri kullanın: + +```bash +export LM_API_TOKEN="placeholder-key" +``` + +LM Studio kimlik doğrulaması kurulum ayrıntıları için [LM Studio Authentication](https://lmstudio.ai/docs/developer/core/authentication) belgesine bakın. + +4. Onboarding'i çalıştırın ve `LM Studio` seçeneğini seçin: + +```bash +openclaw onboard +``` + +5. Onboarding sırasında, LM Studio modelinizi seçmek için `Default model` istemini kullanın. + +Bunu daha sonra da ayarlayabilir veya değiştirebilirsiniz: + +```bash +openclaw models set lmstudio/qwen/qwen3.5-9b +``` + +LM Studio model anahtarları `author/model-name` biçimini izler (ör. `qwen/qwen3.5-9b`). OpenClaw +model başvuruları sağlayıcı adını başa ekler: `lmstudio/qwen/qwen3.5-9b`. Bir modelin tam anahtarını +`curl http://localhost:1234/api/v1/models` komutunu çalıştırıp `key` alanına bakarak bulabilirsiniz. + +## Etkileşimsiz onboarding + +Kurulumu betiklerle yapmak istediğinizde etkileşimsiz onboarding kullanın (CI, sağlama, uzak önyükleme): + +```bash +openclaw onboard \ + --non-interactive \ + --accept-risk \ + --auth-choice lmstudio +``` + +Ya da API anahtarıyla birlikte temel URL'yi veya modeli belirtin: + +```bash +openclaw onboard \ + --non-interactive \ + --accept-risk \ + --auth-choice lmstudio \ + --custom-base-url http://localhost:1234/v1 \ + --lmstudio-api-key "$LM_API_TOKEN" \ + --custom-model-id qwen/qwen3.5-9b +``` + +`--custom-model-id`, LM Studio tarafından döndürülen model anahtarını alır (ör. `qwen/qwen3.5-9b`); +`lmstudio/` sağlayıcı öneki olmadan. + +Etkileşimsiz onboarding, `--lmstudio-api-key` gerektirir (veya ortam değişkenlerinde `LM_API_TOKEN`). +Kimlik doğrulaması olmayan LM Studio sunucularında, boş olmayan herhangi bir token değeri işe yarar. + +`--custom-api-key` uyumluluk için desteklenmeye devam eder, ancak LM Studio için tercih edilen seçenek `--lmstudio-api-key`'dir. + +Bu işlem `models.providers.lmstudio` yazar, varsayılan modeli +`lmstudio/` olarak ayarlar ve `lmstudio:default` kimlik doğrulama profilini yazar. + +Etkileşimli kurulum, isteğe bağlı tercih edilen yükleme bağlamı uzunluğu isteyebilir ve bunu yapılandırmaya kaydettiği keşfedilen LM Studio modelleri genelinde uygular. + +## Yapılandırma + +### Açık yapılandırma + +```json5 +{ + models: { + providers: { + lmstudio: { + baseUrl: "http://localhost:1234/v1", + apiKey: "${LM_API_TOKEN}", + api: "openai-completions", + models: [ + { + id: "qwen/qwen3-coder-next", + name: "Qwen 3 Coder Next", + reasoning: false, + input: ["text"], + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: 128000, + maxTokens: 8192, + }, + ], + }, + }, + }, +} +``` + +## Sorun giderme + +### LM Studio algılanmıyor + +LM Studio'nun çalıştığından ve `LM_API_TOKEN` değişkenini ayarladığınızdan emin olun (kimlik doğrulaması olmayan sunucular için boş olmayan herhangi bir token değeri işe yarar): + +```bash +# Masaüstü uygulamasıyla başlatın veya başsız olarak: +lms server start --port 1234 +``` + +API'ye erişilebildiğini doğrulayın: + +```bash +curl http://localhost:1234/api/v1/models +``` + +### Kimlik doğrulama hataları (HTTP 401) + +Kurulum HTTP 401 bildiriyorsa, API anahtarınızı doğrulayın: + +- `LM_API_TOKEN` değerinin LM Studio'da yapılandırılan anahtarla eşleştiğini kontrol edin. +- LM Studio kimlik doğrulaması kurulum ayrıntıları için [LM Studio Authentication](https://lmstudio.ai/docs/developer/core/authentication) belgesine bakın. +- Sunucunuz kimlik doğrulaması gerektirmiyorsa, `LM_API_TOKEN` için boş olmayan herhangi bir token değeri kullanın. + +### Tam zamanında model yükleme + +LM Studio, modellerin ilk istekte yüklendiği tam zamanında (JIT) model yüklemeyi destekler. `Model not loaded` hatalarından kaçınmak için bunun etkin olduğundan emin olun. diff --git a/docs/tr/reference/api-usage-costs.md b/docs/tr/reference/api-usage-costs.md index a49a85b61..00f46ff49 100644 --- a/docs/tr/reference/api-usage-costs.md +++ b/docs/tr/reference/api-usage-costs.md @@ -1,67 +1,48 @@ --- read_when: - - Hangi özelliklerin ücretli API'leri çağırabileceğini anlamak istiyorsanız - - Anahtarları, maliyetleri ve kullanım görünürlüğünü denetlemeniz gerekiyorsa - - '`/status` veya `/usage` maliyet raporlamasını açıklıyorsanız' + - Hangi özelliklerin ücretli API'leri çağırabileceğini anlamak istiyorsunuz + - Anahtarları, maliyetleri ve kullanım görünürlüğünü denetlemeniz gerekiyor + - '`/status` veya `/usage` maliyet raporlamasını açıklıyorsunuz' summary: Nelerin para harcayabileceğini, hangi anahtarların kullanıldığını ve kullanımın nasıl görüntüleneceğini denetleyin title: API Kullanımı ve Maliyetler x-i18n: - generated_at: "2026-04-07T08:49:21Z" + generated_at: "2026-04-13T08:50:45Z" model: gpt-5.4 provider: openai - source_hash: ab6eefcde9ac014df6cdda7aaa77ef48f16936ab12eaa883d9fe69425a31a2dd + source_hash: f5077e74d38ef781ac7a72603e9f9e3829a628b95c5a9967915ab0f321565429 source_path: reference/api-usage-costs.md workflow: 15 --- # API kullanımı ve maliyetler -Bu belge, **API anahtarlarını çağırabilen özellikleri** ve maliyetlerinin nerede göründüğünü listeler. Odak noktası, -provider kullanımı veya ücretli API çağrıları üretebilen OpenClaw özellikleridir. +Bu belge, **API anahtarlarını çağırabilen özellikleri** ve bunların maliyetlerinin nerede göründüğünü listeler. Özellikle provider kullanımı veya ücretli API çağrıları oluşturabilen OpenClaw özelliklerine odaklanır. ## Maliyetlerin göründüğü yerler (sohbet + CLI) -**Oturum başına maliyet anlık görüntüsü** +**Oturum başına maliyet özeti** -- `/status`, mevcut oturum modelini, bağlam kullanımını ve son yanıt belirteçlerini gösterir. -- Model **API anahtarı kimlik doğrulaması** kullanıyorsa `/status`, son yanıt için **tahmini maliyeti** de gösterir. -- Canlı oturum meta verileri seyrekse `/status`, en son transcript kullanım - girişinden belirteç/önbellek sayaçlarını ve etkin çalışma zamanı model etiketini - geri alabilir. Mevcut sıfır olmayan canlı değerler yine önceliklidir ve - saklanan toplamlar eksikse veya daha küçükse prompt boyutlu transcript - toplamları kazanabilir. +- `/status`, mevcut oturum modelini, bağlam kullanımını ve son yanıt token'larını gösterir. +- Model **API anahtarı kimlik doğrulaması** kullanıyorsa, `/status` ayrıca son yanıt için **tahmini maliyeti** de gösterir. +- Canlı oturum meta verileri yetersizse, `/status` en son transkript kullanım girişinden token/cache sayaçlarını ve etkin çalışma zamanı model etiketini geri kazanabilir. Mevcut sıfır olmayan canlı değerler yine önceliklidir ve depolanan toplamlar eksikse veya daha küçükse, istem boyutundaki transkript toplamları üstün gelebilir. -**Mesaj başına maliyet alt bilgisi** +**Mesaj başına maliyet altbilgisi** -- `/usage full`, her yanıta **tahmini maliyet** dahil bir kullanım alt bilgisi ekler (yalnızca API anahtarı). -- `/usage tokens`, yalnızca belirteçleri gösterir; abonelik tarzı OAuth/token ve CLI akışları dolar maliyetini gizler. -- Gemini CLI notu: CLI JSON çıktısı döndürdüğünde OpenClaw kullanımı - `stats` içinden okur, `stats.cached` değerini `cacheRead` olarak normalize eder ve - gerektiğinde giriş belirteçlerini `stats.input_tokens - stats.cached` üzerinden türetir. +- `/usage full`, her yanıta **tahmini maliyet** de dahil olmak üzere bir kullanım altbilgisi ekler (yalnızca API anahtarı). +- `/usage tokens` yalnızca token'ları gösterir; abonelik tarzı OAuth/token ve CLI akışları dolar maliyetini gizler. +- Gemini CLI notu: CLI JSON çıktısı döndürdüğünde, OpenClaw kullanımı `stats` içinden okur, `stats.cached` değerini `cacheRead` olarak normalize eder ve gerektiğinde giriş token'larını `stats.input_tokens - stats.cached` üzerinden türetir. -Anthropic notu: Anthropic personeli bize OpenClaw tarzı Claude CLI kullanımına -yeniden izin verildiğini söyledi; bu nedenle OpenClaw, Anthropic yeni bir politika yayımlamadığı sürece -Claude CLI yeniden kullanımını ve `claude -p` kullanımını bu entegrasyon için -onaylanmış kabul eder. Anthropic hâlâ OpenClaw'ın -`/usage full` içinde gösterebileceği mesaj başına dolar tahmini sunmaz. +Anthropic notu: Anthropic çalışanları bize OpenClaw tarzı Claude CLI kullanımına yeniden izin verildiğini söyledi, bu nedenle Anthropic yeni bir politika yayımlamadığı sürece OpenClaw, Claude CLI yeniden kullanımını ve `claude -p` kullanımını bu entegrasyon için onaylı kabul eder. Anthropic hâlâ OpenClaw'ın `/usage full` içinde gösterebileceği mesaj başına bir dolar tahmini sunmuyor. **CLI kullanım pencereleri (provider kotaları)** -- `openclaw status --usage` ve `openclaw channels list`, provider **kullanım pencerelerini** - gösterir (mesaj başına maliyet değil, kota anlık görüntüleri). -- İnsan tarafından okunabilir çıktı, provider'lar arasında `X% left` olarak normalize edilir. -- Mevcut kullanım-penceresi provider'ları: Anthropic, GitHub Copilot, Gemini CLI, - OpenAI Codex, MiniMax, Xiaomi ve z.ai. -- MiniMax notu: ham `usage_percent` / `usagePercent` alanları kalan - kotayı ifade eder, bu nedenle OpenClaw bunları göstermeden önce tersine çevirir. Sayı tabanlı alanlar varsa yine - öncelik kazanır. Provider `model_remains` döndürürse OpenClaw sohbet-modeli girdisini tercih eder, - gerekirse pencere etiketini zaman damgalarından türetir ve - plan etiketine model adını dahil eder. -- Bu kota pencereleri için kullanım kimlik doğrulaması, mümkün olduğunda provider'a özgü hook'lardan gelir; - aksi halde OpenClaw auth profilleri, env veya config içindeki eşleşen OAuth/API anahtarı - kimlik bilgilerine geri döner. +- `openclaw status --usage` ve `openclaw channels list`, provider **kullanım pencerelerini** gösterir (mesaj başına maliyet değil, kota anlık görüntüleri). +- İnsan tarafından okunabilir çıktı, provider'lar arasında `X% kaldı` biçimine normalize edilir. +- Mevcut kullanım penceresi provider'ları: Anthropic, GitHub Copilot, Gemini CLI, OpenAI Codex, MiniMax, Xiaomi ve z.ai. +- MiniMax notu: ham `usage_percent` / `usagePercent` alanları kalan kotayı ifade eder, bu yüzden OpenClaw bunları görüntülemeden önce tersine çevirir. Sayı tabanlı alanlar mevcut olduğunda yine önceliklidir. Provider `model_remains` döndürürse, OpenClaw sohbet modeli girdisini tercih eder, gerektiğinde pencere etiketini zaman damgalarından türetir ve plan etiketine model adını ekler. +- Bu kota pencereleri için kullanım kimlik doğrulaması, mevcut olduğunda provider'a özgü hook'lardan gelir; aksi halde OpenClaw auth profilleri, ortam veya yapılandırmadan eşleşen OAuth/API anahtarı kimlik bilgilerine geri döner. -Ayrıntılar ve örnekler için bkz. [Token use & costs](/tr/reference/token-use). +Ayrıntılar ve örnekler için [Token kullanımı ve maliyetler](/tr/reference/token-use) bölümüne bakın. ## Anahtarlar nasıl keşfedilir @@ -69,61 +50,55 @@ OpenClaw kimlik bilgilerini şuralardan alabilir: - **Auth profilleri** (ajan başına, `auth-profiles.json` içinde saklanır). - **Ortam değişkenleri** (ör. `OPENAI_API_KEY`, `BRAVE_API_KEY`, `FIRECRAWL_API_KEY`). -- **Config** (`models.providers.*.apiKey`, `plugins.entries.*.config.webSearch.apiKey`, +- **Yapılandırma** (`models.providers.*.apiKey`, `plugins.entries.*.config.webSearch.apiKey`, `plugins.entries.firecrawl.config.webFetch.apiKey`, `memorySearch.*`, `talk.providers.*.apiKey`). -- **Skills** (`skills.entries..apiKey`), anahtarları skill süreci ortamına aktarabilir. +- **Skills** (`skills.entries..apiKey`); bunlar anahtarları skill süreç ortamına aktarabilir. ## Anahtar harcayabilen özellikler ### 1) Çekirdek model yanıtları (sohbet + araçlar) -Her yanıt veya araç çağrısı, **mevcut model provider**'ını kullanır (OpenAI, Anthropic vb.). Bu, -kullanım ve maliyetin birincil kaynağıdır. +Her yanıt veya araç çağrısı **mevcut model provider'ını** (OpenAI, Anthropic vb.) kullanır. Bu, kullanım ve maliyetin birincil kaynağıdır. -Buna, OpenClaw'ın yerel kullanıcı arayüzü dışında yine de faturalandırılan abonelik tarzı barındırılan provider'lar da dahildir; -örneğin **OpenAI Codex**, **Alibaba Cloud Model Studio -Coding Plan**, **MiniMax Coding Plan**, **Z.AI / GLM Coding Plan** ve -**Extra Usage** etkinleştirilmiş Anthropic OpenClaw Claude-login yolu. +Buna, maliyeti yine de OpenClaw'ın yerel arayüzü dışında faturalandırılan abonelik tarzı barındırılan provider'lar da dahildir; örneğin **OpenAI Codex**, **Alibaba Cloud Model Studio Coding Plan**, **MiniMax Coding Plan**, **Z.AI / GLM Coding Plan** ve **Extra Usage** etkinleştirilmiş Anthropic'in OpenClaw Claude-login yolu. -Fiyatlandırma yapılandırması için bkz. [Models](/tr/providers/models), gösterim için [Token use & costs](/tr/reference/token-use). +Fiyatlandırma yapılandırması için [Models](/tr/providers/models), görüntüleme için [Token kullanımı ve maliyetler](/tr/reference/token-use) bölümüne bakın. -### 2) Media understanding (ses/görüntü/video) +### 2) Medya anlama (ses/görüntü/video) -Gelen medya, yanıt çalıştırılmadan önce özetlenebilir/transkribe edilebilir. Bu, model/provider API'lerini kullanır. +Gelen medya, yanıt çalışmadan önce özetlenebilir veya yazıya dökülebilir. Bu, model/provider API'lerini kullanır. - Ses: OpenAI / Groq / Deepgram / Google / Mistral. - Görüntü: OpenAI / OpenRouter / Anthropic / Google / MiniMax / Moonshot / Qwen / Z.AI. - Video: Google / Qwen / Moonshot. -Bkz. [Media understanding](/tr/nodes/media-understanding). +Bkz. [Medya anlama](/tr/nodes/media-understanding). ### 3) Görüntü ve video üretimi -Paylaşılan üretim yetenekleri de provider anahtarlarını harcayabilir: +Paylaşılan üretim yetenekleri de provider anahtarları harcayabilir: - Görüntü üretimi: OpenAI / Google / fal / MiniMax - Video üretimi: Qwen -Görüntü üretimi, -`agents.defaults.imageGenerationModel` ayarlanmamışsa auth destekli varsayılan provider'ı çıkarım yoluyla belirleyebilir. Video üretimi ise şu anda -`qwen/wan2.6-t2v` gibi açık bir `agents.defaults.videoGenerationModel` gerektirir. +Görüntü üretimi, `agents.defaults.imageGenerationModel` ayarlanmadığında auth destekli varsayılan bir provider'ı çıkarımsayabilir. Video üretimi şu anda `qwen/wan2.6-t2v` gibi açık bir `agents.defaults.videoGenerationModel` gerektirir. -Bkz. [Image generation](/tr/tools/image-generation), [Qwen Cloud](/tr/providers/qwen) -ve [Models](/tr/concepts/models). +Bkz. [Image generation](/tr/tools/image-generation), [Qwen Cloud](/tr/providers/qwen) ve [Models](/tr/concepts/models). -### 4) Bellek gömmeleri + anlamsal arama +### 4) Bellek embedding'leri + anlamsal arama Anlamsal bellek araması, uzak provider'lar için yapılandırıldığında **embedding API'lerini** kullanır: -- `memorySearch.provider = "openai"` → OpenAI embeddings -- `memorySearch.provider = "gemini"` → Gemini embeddings -- `memorySearch.provider = "voyage"` → Voyage embeddings -- `memorySearch.provider = "mistral"` → Mistral embeddings -- `memorySearch.provider = "ollama"` → Ollama embeddings (yerel/self-hosted; genellikle barındırılan API faturalandırması yoktur) -- Yerel gömmeler başarısız olursa uzak provider'a isteğe bağlı geri dönüş +- `memorySearch.provider = "openai"` → OpenAI embedding'leri +- `memorySearch.provider = "gemini"` → Gemini embedding'leri +- `memorySearch.provider = "voyage"` → Voyage embedding'leri +- `memorySearch.provider = "mistral"` → Mistral embedding'leri +- `memorySearch.provider = "lmstudio"` → LM Studio embedding'leri (yerel/self-hosted) +- `memorySearch.provider = "ollama"` → Ollama embedding'leri (yerel/self-hosted; genellikle barındırılan API faturalaması yoktur) +- Yerel embedding'ler başarısız olursa uzak bir provider'a isteğe bağlı geri dönüş -`memorySearch.provider = "local"` ile yerelde tutabilirsiniz (API kullanımı yok). +`memorySearch.provider = "local"` ile yerel kalabilirsiniz (API kullanımı yok). Bkz. [Memory](/tr/concepts/memory). @@ -138,51 +113,46 @@ Bkz. [Memory](/tr/concepts/memory). - **Grok (xAI)**: `XAI_API_KEY` veya `plugins.entries.xai.config.webSearch.apiKey` - **Kimi (Moonshot)**: `KIMI_API_KEY`, `MOONSHOT_API_KEY` veya `plugins.entries.moonshot.config.webSearch.apiKey` - **MiniMax Search**: `MINIMAX_CODE_PLAN_KEY`, `MINIMAX_CODING_API_KEY`, `MINIMAX_API_KEY` veya `plugins.entries.minimax.config.webSearch.apiKey` -- **Ollama Web Search**: varsayılan olarak anahtarsızdır, ancak erişilebilir bir Ollama ana makinesi ile `ollama signin` gerektirir; ana makine gerektiriyorsa normal Ollama provider bearer auth'unu da yeniden kullanabilir +- **Ollama Web Search**: varsayılan olarak anahtar gerektirmez, ancak erişilebilir bir Ollama host'u ve `ollama signin` gerektirir; host gerektirdiğinde normal Ollama provider bearer auth'u da yeniden kullanabilir - **Perplexity Search API**: `PERPLEXITY_API_KEY`, `OPENROUTER_API_KEY` veya `plugins.entries.perplexity.config.webSearch.apiKey` - **Tavily**: `TAVILY_API_KEY` veya `plugins.entries.tavily.config.webSearch.apiKey` -- **DuckDuckGo**: anahtarsız geri dönüş (API faturalandırması yoktur, ancak resmî değildir ve HTML tabanlıdır) -- **SearXNG**: `SEARXNG_BASE_URL` veya `plugins.entries.searxng.config.webSearch.baseUrl` (anahtarsız/self-hosted; barındırılan API faturalandırması yoktur) +- **DuckDuckGo**: anahtarsız geri dönüş (API faturası yok, ancak resmî değil ve HTML tabanlı) +- **SearXNG**: `SEARXNG_BASE_URL` veya `plugins.entries.searxng.config.webSearch.baseUrl` (anahtarsız/self-hosted; barındırılan API faturalaması yok) -Eski `tools.web.search.*` provider yolları geçici uyumluluk katmanı üzerinden hâlâ yüklenir, ancak artık önerilen config yüzeyi değildir. +Eski `tools.web.search.*` provider yolları, geçici uyumluluk katmanı üzerinden hâlâ yüklenir, ancak artık önerilen yapılandırma yüzeyi değildir. -**Brave Search ücretsiz kredisi:** Her Brave planı, her ay yenilenen -\$5 ücretsiz kredi içerir. Search planı 1.000 istek başına \$5 olduğundan, bu kredi -ayda 1.000 isteği ücretsiz karşılar. Beklenmeyen ücretlerden kaçınmak için kullanım sınırınızı Brave panosunda ayarlayın. +**Brave Search ücretsiz kredisi:** Her Brave planı, her ay yenilenen \$5 ücretsiz kredi içerir. Search planı 1.000 istek başına \$5 tutarındadır, bu nedenle kredi ek ücret olmadan ayda 1.000 isteği kapsar. Beklenmedik ücretlerden kaçınmak için kullanım sınırınızı Brave kontrol panelinde ayarlayın. Bkz. [Web tools](/tr/tools/web). -### 5) Web fetch aracı (Firecrawl) +### 5) Web getirme aracı (Firecrawl) -`web_fetch`, API anahtarı mevcut olduğunda **Firecrawl** çağırabilir: +Bir API anahtarı mevcut olduğunda `web_fetch`, **Firecrawl** çağırabilir: - `FIRECRAWL_API_KEY` veya `plugins.entries.firecrawl.config.webFetch.apiKey` -Firecrawl yapılandırılmamışsa araç doğrudan fetch + readability kullanımına geri döner (ücretli API yok). +Firecrawl yapılandırılmamışsa araç, doğrudan fetch + readability'ye geri döner (ücretli API yok). Bkz. [Web tools](/tr/tools/web). -### 6) Provider kullanım anlık görüntüleri (status/health) +### 6) Provider kullanım anlık görüntüleri (durum/sağlık) -Bazı status komutları, kota pencerelerini veya auth sağlığını göstermek için **provider kullanım uç noktalarını** çağırır. -Bunlar genellikle düşük hacimli çağrılardır, ancak yine de provider API'lerine istek yapar: +Bazı durum komutları, kota pencerelerini veya auth sağlığını göstermek için **provider kullanım uç noktalarını** çağırır. Bunlar genellikle düşük hacimli çağrılardır ancak yine de provider API'lerine istek atar: - `openclaw status --usage` - `openclaw models status --json` Bkz. [Models CLI](/cli/models). -### 7) Compaction koruma özetlemesi +### 7) Compaction koruma amaçlı özetleme -Compaction koruması, oturum geçmişini **mevcut model** kullanarak özetleyebilir; bu da -çalıştığında provider API'lerini çağırır. +Compaction koruması, oturum geçmişini **mevcut model** kullanarak özetleyebilir; bu da çalıştığında provider API'lerini çağırır. -Bkz. [Session management + compaction](/tr/reference/session-management-compaction). +Bkz. [Oturum yönetimi + compaction](/tr/reference/session-management-compaction). -### 8) Model tarama / probe +### 8) Model tarama / yoklama -`openclaw models scan`, OpenRouter modellerini probe edebilir ve -probe etkin olduğunda `OPENROUTER_API_KEY` kullanır. +`openclaw models scan`, OpenRouter modellerini yoklayabilir ve yoklama etkin olduğunda `OPENROUTER_API_KEY` kullanır. Bkz. [Models CLI](/cli/models). @@ -196,7 +166,6 @@ Bkz. [Talk mode](/tr/nodes/talk). ### 10) Skills (üçüncü taraf API'ler) -Skills, `skills.entries..apiKey` içinde `apiKey` saklayabilir. Bir skill bu anahtarı harici -API'ler için kullanıyorsa, skill'in provider'ına göre maliyet oluşturabilir. +Skills, `skills.entries..apiKey` içinde `apiKey` saklayabilir. Bir skill bu anahtarı harici API'ler için kullanıyorsa, skill'in provider'ına göre maliyet oluşturabilir. Bkz. [Skills](/tr/tools/skills).