Ana içeriğe atla
Hızlı başlangıç, QA çalıştırıcıları, unit/integration paketleri ve Docker akışları için bkz. Testing. Bu sayfa live (ağa temas eden) test paketlerini kapsar: model matrisi, CLI arka uçları, ACP ve medya sağlayıcısı live testleri, ayrıca kimlik bilgisi yönetimi.

Live: yerel smoke komutları

Geçici live kontrollerden önce gerekli sağlayıcı anahtarını işlem ortamında dışa aktarın. Güvenli medya smoke:
pnpm openclaw infer tts convert --local --json \
  --text "OpenClaw live smoke." \
  --output /tmp/openclaw-live-smoke.mp3
Güvenli sesli arama hazırlık smoke’u:
pnpm openclaw voicecall setup --json
pnpm openclaw voicecall smoke --to "+15555550123"
voicecall smoke, --yes de mevcut değilse kuru çalıştırmadır. --yes seçeneğini yalnızca bilerek gerçek bir bildirim araması yapmak istediğinizde kullanın. Twilio, Telnyx ve Plivo için başarılı bir hazırlık kontrolü herkese açık bir webhook URL’si gerektirir; yalnızca yerel loopback/özel yedekler tasarım gereği reddedilir.

Live: Android node yetenek taraması

  • Test: src/gateway/android-node.capabilities.live.test.ts
  • Betik: pnpm android:test:integration
  • Hedef: bağlı bir Android node tarafından şu anda duyurulan her komutu çağırmak ve komut sözleşmesi davranışını doğrulamak.
  • Kapsam:
    • Önkoşullu/manuel kurulum (paket uygulamayı yüklemez/çalıştırmaz/eşleştirmez).
    • Seçilen Android node için komut komut gateway node.invoke doğrulaması.
  • Gerekli ön kurulum:
    • Android uygulaması zaten bağlı + gateway ile eşleştirilmiş olmalı.
    • Uygulama ön planda tutulmalı.
    • Geçmesini beklediğiniz yetenekler için izinler/yakalama onayı verilmiş olmalı.
  • İ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.
  • Tam Android kurulum ayrıntıları: Android Uygulaması

Live: model smoke’u (profil anahtarları)

Live testler iki katmana ayrılır, böylece hataları yalıtabiliriz:
  • “Doğrudan model” bize sağlayıcı/modelin verilen anahtarla genel olarak yanıt verip veremediğini söyler.
  • “Gateway smoke” bize tam gateway+agent işlem hattının o model için çalışıp çalışmadığını söyler (oturumlar, geçmiş, araçlar, sandbox politikası vb.).

Katman 1: Doğrudan model tamamlama (gateway yok)

  • Test: src/agents/models.profiles.live.test.ts
  • Hedef:
    • 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)
  • Etkinleştirme:
    • pnpm test:live (veya Vitest’i doğrudan çağırıyorsanız OPENCLAW_LIVE_TEST=1)
  • Bu paketi gerçekten çalıştırmak için OPENCLAW_LIVE_MODELS=modern, small veya all (modern için takma ad) ayarlayın; aksi halde pnpm test:live komutunu gateway smoke’una odaklı tutmak için atlanır
  • Modelleri seçme:
    • Modern izin listesini çalıştırmak için OPENCLAW_LIVE_MODELS=modern (Opus/Sonnet 4.6+, GPT-5.2 + Codex, Gemini 3, DeepSeek V4, GLM 5.1, MiniMax M3, Grok 4.3)
    • Kısıtlı küçük model izin listesini çalıştırmak için OPENCLAW_LIVE_MODELS=small (Qwen 8B/9B local uyumlu rotalar, Ollama Gemma, OpenRouter Qwen/GLM ve Z.AI GLM)
    • OPENCLAW_LIVE_MODELS=all, modern izin listesi için bir takma addır
    • veya OPENCLAW_LIVE_MODELS="openai/gpt-5.5,anthropic/claude-opus-4-6,..." (virgülle ayrılmış izin listesi)
    • Yerel Ollama küçük model çalıştırmaları varsayılan olarak http://127.0.0.1:11434 kullanır; OPENCLAW_LIVE_OLLAMA_BASE_URL değerini yalnızca LAN, özel veya Ollama Cloud uç noktaları için ayarlayın.
    • Modern/all ve small taramaları varsayılan olarak kendi seçilmiş sınırlarını kullanır; kapsamlı bir seçili profil taraması için OPENCLAW_LIVE_MAX_MODELS=0, daha küçük bir sınır için pozitif bir sayı ayarlayın.
    • Kapsamlı taramalar, tüm doğrudan model test zaman aşımı için OPENCLAW_LIVE_TEST_TIMEOUT_MS kullanır. Varsayılan: 60 dakika.
    • Doğrudan model sondaları varsayılan olarak 20 yönlü paralellik ile çalışır; geçersiz kılmak için OPENCLAW_LIVE_MODEL_CONCURRENCY ayarlayın.
  • Sağlayıcıları seçme:
    • OPENCLAW_LIVE_PROVIDERS="google,google-antigravity,google-gemini-cli" (virgülle ayrılmış izin listesi)
  • Anahtarların geldiği yer:
    • Varsayılan olarak: profil deposu ve env yedekleri
    • Yalnızca profil deposu 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” durumunu “gateway agent işlem hattı bozuk” durumundan ayırır
    • Küçük, yalıtılmış regresyonlar içerir (örnek: OpenAI Responses/Codex Responses reasoning replay + tool-call akışları)

Katman 2: Gateway + geliştirme agent smoke’u (“@openclaw” gerçekte ne yapar)

  • Test: src/gateway/gateway-models.profiles.live.test.ts
  • Hedef:
    • İşlem içi bir gateway başlatmak
    • Bir agent:dev:* oturumu oluşturmak/yamak (çalıştırma başına model geçersiz kılma)
    • Anahtarlı modelleri yinelemek ve şunları doğrulamak:
      • “anlamlı” yanıt (araç yok)
      • gerçek bir araç çağrısı çalışır (okuma sondası)
      • isteğe bağlı ek araç sondaları (exec+read sondası)
      • OpenAI regresyon yolları (yalnızca tool-call → takip) çalışmaya devam eder
  • Sonda ayrıntıları (hataları hızlı açıklayabilmeniz için):
    • read sondası: test, çalışma alanına nonce dosyası yazar ve agent’tan bunu read ile okumasını ve nonce’u geri yankılamasını ister.
    • exec+read sondası: test, agent’tan bir nonce’u geçici dosyaya exec ile yazmasını, sonra read ile geri okumasını ister.
    • görüntü sondası: test, oluşturulmuş bir PNG (cat + rastgeleleştirilmiş kod) ekler ve modelin cat <CODE> döndürmesini bekler.
    • Uygulama referansı: src/gateway/gateway-models.profiles.live.test.ts ve test/helpers/live-image-probe.ts.
  • Etkinleştirme:
    • pnpm test:live (veya Vitest’i doğrudan çağırıyorsanız OPENCLAW_LIVE_TEST=1)
  • Modelleri seçme:
    • Varsayılan: modern izin listesi (Opus/Sonnet 4.6+, GPT-5.2 + Codex, Gemini 3, DeepSeek V4, GLM 4.7, MiniMax M3, Grok 4.3)
    • Aynı kısıtlı küçük model izin listesini tam gateway+agent işlem hattı üzerinden çalıştırmak için OPENCLAW_LIVE_GATEWAY_MODELS=small
    • OPENCLAW_LIVE_GATEWAY_MODELS=all, modern izin listesi için bir takma addır
    • Veya daraltmak için OPENCLAW_LIVE_GATEWAY_MODELS="provider/model" (veya virgüllü liste) ayarlayın
    • Modern/all ve small gateway taramaları varsayılan olarak kendi seçilmiş sınırlarını kullanır; kapsamlı bir seçili tarama için OPENCLAW_LIVE_GATEWAY_MAX_MODELS=0, daha küçük bir sınır için pozitif bir sayı ayarlayın.
  • Sağlayıcıları seçme (“OpenRouter her şey” durumundan kaçınma):
    • OPENCLAW_LIVE_GATEWAY_PROVIDERS="google,google-antigravity,google-gemini-cli,openai,anthropic,zai,minimax" (virgülle ayrılmış izin listesi)
  • Araç + görüntü sondaları bu live testte her zaman açıktır:
    • read sondası + exec+read sondası (araç stresi)
    • model görüntü girişi desteği duyurduğunda görüntü sondası çalışır
    • Akış (üst düzey):
      • Test, “CAT” + rastgele kod içeren küçük bir PNG oluşturur (test/helpers/live-image-probe.ts)
      • Bunu agent üzerinden attachments: [{ mimeType: "image/png", content: "<base64>" }] 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ü agent, modele çok modlu bir kullanıcı mesajı iletir
      • Doğrulama: yanıt cat + kod içerir (OCR toleransı: küçük hatalara izin verilir)
Makinenizde neleri test edebileceğinizi (ve tam provider/model kimliklerini) görmek için çalıştırın:
openclaw models list
openclaw models list --json

Live: CLI arka uç smoke’u (Claude, Gemini veya diğer yerel CLI’lar)

  • Test: src/gateway/gateway-cli-backend.live.test.ts
  • Hedef: varsayılan yapılandırmanıza dokunmadan, yerel bir CLI arka ucu kullanarak Gateway + agent işlem hattını doğrulamak.
  • Arka uca özgü smoke varsayılanları, sahip uzantının cli-backend.ts tanımıyla birlikte yaşar.
  • Etkinleştir:
    • pnpm test:live (veya Vitest’i doğrudan çağırıyorsanız OPENCLAW_LIVE_TEST=1)
    • OPENCLAW_LIVE_CLI_BACKEND=1
  • Varsayılanlar:
    • Varsayılan sağlayıcı/model: claude-cli/claude-sonnet-4-6
    • Komut/args/görüntü davranışı, sahip CLI arka uç plugin metadata’sından gelir.
  • Geçersiz kılmalar (isteğe bağlı):
    • OPENCLAW_LIVE_CLI_BACKEND_MODEL="claude-cli/claude-sonnet-4-6"
    • OPENCLAW_LIVE_CLI_BACKEND_COMMAND="/full/path/to/claude"
    • OPENCLAW_LIVE_CLI_BACKEND_ARGS='["-p","--output-format","json"]'
    • Gerçek bir görüntü eki göndermek için OPENCLAW_LIVE_CLI_BACKEND_IMAGE_PROBE=1 (yollar isteme enjekte edilir). Docker tarifleri açıkça istenmedikçe bunu varsayılan olarak kapalı tutar.
    • Görüntü dosyası yollarını istem 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 tur göndermek ve sürdürme akışını doğrulamak için OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1.
    • Seçilen model bir geçiş hedefini desteklediğinde Claude Sonnet -> Opus aynı oturum süreklilik sondasına katılmak için OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=1. Docker tarifleri toplu güvenilirlik için bunu varsayılan olarak kapalı tutar.
    • MCP/araç loopback sondasına katılmak için OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1. Docker tarifleri açıkça istenmedikçe bunu varsayılan olarak kapalı tutar.
Örnek:
  OPENCLAW_LIVE_CLI_BACKEND=1 \
  OPENCLAW_LIVE_CLI_BACKEND_MODEL="claude-cli/claude-sonnet-4-6" \
  pnpm test:live src/gateway/gateway-cli-backend.live.test.ts
Ucuz Gemini MCP yapılandırma smoke’u:
OPENCLAW_LIVE_TEST=1 \
  pnpm test:live src/agents/cli-runner/bundle-mcp.gemini.live.test.ts
Bu, Gemini’dan yanıt oluşturmasını istemez. OpenClaw’ın Gemini’ya verdiği aynı sistem ayarlarını yazar, ardından kaydedilmiş bir transport: "streamable-http" sunucusunun Gemini’nin HTTP MCP şekline normalleştirildiğini ve yerel bir streamable-HTTP MCP sunucusuna bağlanabildiğini kanıtlamak için gemini --debug mcp list çalıştırır. Docker tarifi:
pnpm test:docker:live-cli-backend
Tek sağlayıcılı Docker tarifleri:
pnpm test:docker:live-cli-backend:claude
pnpm test:docker:live-cli-backend:claude-subscription
pnpm test:docker:live-cli-backend:gemini
Notlar:
  • Docker çalıştırıcısı scripts/test-live-cli-backend-docker.sh konumundadır.
  • Live CLI arka uç smoke’unu repo Docker imajı içinde root olmayan node kullanıcısı olarak çalıştırır.
  • CLI smoke metadata’sını sahip uzantıdan çözümler, ardından eşleşen Linux CLI paketini (@anthropic-ai/claude-code veya @google/gemini-cli) OPENCLAW_DOCKER_CLI_TOOLS_DIR konumundaki önbelleğe alınmış yazılabilir öneke yükler (varsayılan: ~/.cache/openclaw/docker-cli-tools).
  • pnpm test:docker:live-cli-backend:claude-subscription, claudeAiOauth.subscriptionType içeren ~/.claude/.credentials.json veya claude setup-token kaynaklı CLAUDE_CODE_OAUTH_TOKEN yoluyla taşınabilir Claude Code abonelik OAuth’u gerektirir. Önce Docker’da doğrudan claude -p kanıtlar, ardından Anthropic API anahtarı env var’larını korumadan iki Gateway CLI arka uç turu çalıştırır. Bu abonelik hattı, oturum açılmış aboneliğin kullanım limitlerini tükettiği ve Anthropic, Claude Agent SDK / claude -p faturalandırma ve hız sınırı davranışını OpenClaw sürümü olmadan değiştirebildiği için Claude MCP/araç ve görüntü sondalarını varsayılan olarak devre dışı bırakır.
  • Live CLI arka uç smoke’u artık Claude ve Gemini için aynı uçtan uca akışı uygular: metin turu, görüntü sınıflandırma turu, ardından gateway CLI üzerinden doğrulanan MCP cron araç çağrısı.
  • Claude’un varsayılan smoke’u ayrıca oturumu Sonnet’ten Opus’a yamalar ve sürdürülen oturumun önceki bir notu hâlâ hatırladığını doğrular.

Live: APNs HTTP/2 proxy erişilebilirliği

  • Test: src/infra/push-apns-http2.live.test.ts
  • Hedef: yerel bir HTTP CONNECT proxy üzerinden Apple’ın sandbox APNs uç noktasına tünellemek, APNs HTTP/2 doğrulama isteğini göndermek ve Apple’ın gerçek 403 InvalidProviderToken yanıtının proxy yolu üzerinden geri geldiğini doğrulamak.
  • Etkinleştir:
    • OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_APNS_REACHABILITY=1 pnpm test:live src/infra/push-apns-http2.live.test.ts
  • İsteğe bağlı zaman aşımı:
    • OPENCLAW_LIVE_APNS_TIMEOUT_MS=30000

Live: ACP bind smoke’u (/acp spawn ... --bind here)

  • Test: src/gateway/gateway-acp-bind.live.test.ts
  • Amaç: canlı bir ACP ajanıyla gerçek ACP konuşma bağlama akışını doğrulamak:
    • /acp spawn <agent> --bind here gönder
    • sentetik bir mesaj kanalı konuşmasını yerinde bağla
    • aynı konuşmada normal bir takip mesajı gönder
    • takip mesajının bağlı ACP oturum dökümüne ulaştığını doğrula
  • Etkinleştirme:
    • pnpm test:live src/gateway/gateway-acp-bind.live.test.ts
    • OPENCLAW_LIVE_ACP_BIND=1
  • Varsayılanlar:
    • Docker içindeki ACP ajanları: claude,codex,gemini
    • Doğrudan pnpm test:live ... için ACP ajanı: claude
    • Sentetik kanal: Slack DM tarzı konuşma bağlamı
    • ACP arka ucu: acpx
  • Geçersiz kılmalar:
    • OPENCLAW_LIVE_ACP_BIND_AGENT=claude
    • OPENCLAW_LIVE_ACP_BIND_AGENT=codex
    • OPENCLAW_LIVE_ACP_BIND_AGENT=droid
    • OPENCLAW_LIVE_ACP_BIND_AGENT=gemini
    • OPENCLAW_LIVE_ACP_BIND_AGENT=opencode
    • OPENCLAW_LIVE_ACP_BIND_AGENTS=claude,codex,gemini
    • OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND='npx -y @agentclientprotocol/claude-agent-acp@<version>'
    • OPENCLAW_LIVE_ACP_BIND_CODEX_MODEL=gpt-5.5
    • OPENCLAW_LIVE_ACP_BIND_OPENCODE_MODEL=opencode/kimi-k2.6
    • OPENCLAW_LIVE_ACP_BIND_REQUIRE_TRANSCRIPT=1
    • OPENCLAW_LIVE_ACP_BIND_REQUIRE_CRON=1
    • OPENCLAW_LIVE_ACP_BIND_PARENT_MODEL=openai/gpt-5.5
  • Notlar:
    • Bu hat, testlerin dışa teslim ediyormuş gibi davranmadan mesaj kanalı bağlamı ekleyebilmesi için yalnızca yöneticilere açık sentetik kaynak rota alanlarıyla gateway chat.send yüzeyini kullanır.
    • OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND ayarlanmamışsa test, seçilen ACP test düzeneği ajanı için gömülü acpx Plugin’inin yerleşik ajan kayıt defterini kullanır.
    • Bağlı oturum cron MCP oluşturma varsayılan olarak en iyi çaba şeklindedir; çünkü harici ACP test düzenekleri, bağlama/görüntü kanıtı geçtikten sonra MCP çağrılarını iptal edebilir. Bu bağlama sonrası cron yoklamasını katı hale getirmek için OPENCLAW_LIVE_ACP_BIND_REQUIRE_CRON=1 ayarlayın.
Örnek:
OPENCLAW_LIVE_ACP_BIND=1 \
  OPENCLAW_LIVE_ACP_BIND_AGENT=claude \
  pnpm test:live src/gateway/gateway-acp-bind.live.test.ts
Docker tarifi:
pnpm test:docker:live-acp-bind
Tek ajanlı Docker tarifleri:
pnpm test:docker:live-acp-bind:claude
pnpm test:docker:live-acp-bind:codex
pnpm test:docker:live-acp-bind:droid
pnpm test:docker:live-acp-bind:gemini
pnpm test:docker:live-acp-bind:opencode
Docker notları:
  • Docker çalıştırıcısı scripts/test-live-acp-bind-docker.sh konumundadır.
  • Varsayılan olarak ACP bind smoke testini toplu 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, OPENCLAW_LIVE_ACP_BIND_AGENTS=droid, OPENCLAW_LIVE_ACP_BIND_AGENTS=gemini veya OPENCLAW_LIVE_ACP_BIND_AGENTS=opencode kullanın.
  • Eşleşen CLI kimlik doğrulama malzemesini konteynere yerleştirir, ardından eksikse istenen canlı CLI’ı (@anthropic-ai/claude-code, @openai/codex, https://app.factory.ai/cli üzerinden Factory Droid, @google/gemini-cli veya opencode-ai) kurar. ACP arka ucunun kendisi, resmi acpx Plugin’inden gömülü acpx/runtime paketidir.
  • Droid Docker varyantı ayarlar için ~/.factory dizinini yerleştirir, FACTORY_API_KEY iletir ve bu API anahtarını gerektirir; çünkü yerel Factory OAuth/keyring kimlik doğrulaması konteynere taşınabilir değildir. ACPX’in yerleşik droid exec --output-format acp kayıt defteri girdisini kullanır.
  • OpenCode Docker varyantı katı bir tek ajanlı regresyon hattıdır. OPENCLAW_LIVE_ACP_BIND_OPENCODE_MODEL üzerinden geçici bir OPENCODE_CONFIG_CONTENT varsayılan modeli yazar (varsayılan opencode/kimi-k2.6) ve pnpm test:docker:live-acp-bind:opencode, genel bağlama sonrası atlamayı kabul etmek yerine bağlı bir asistan dökümü gerektirir.
  • Doğrudan acpx CLI çağrıları yalnızca Gateway dışında davranışı karşılaştırmak için manuel/geçici çözüm yoludur. Docker ACP bind smoke testi, OpenClaw’ın gömülü acpx çalışma zamanı arka ucunu çalıştırır.

Canlı: Codex uygulama sunucusu test düzeneği smoke testi

  • Amaç: Plugin’in sahip olduğu Codex test düzeneğini normal gateway agent yöntemi üzerinden doğrulamak:
    • paketlenmiş codex Plugin’ini yükle
    • OpenAI ajan turlarını varsayılan olarak Codex üzerinden yönlendiren openai/gpt-5.5 seç
    • Codex test düzeneği seçiliyken openai/gpt-5.5 hedefine ilk gateway ajan turunu gönder
    • aynı OpenClaw oturumuna ikinci bir tur gönder ve uygulama sunucusu 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
    • isteğe bağlı olarak Guardian tarafından incelenen iki yükseltilmiş shell yoklaması çalıştır: onaylanması gereken zararsız bir komut ve reddedilmesi gereken sahte gizli yükleme; böylece ajan geri soru sorar
  • Test: src/gateway/gateway-codex-harness.live.test.ts
  • Etkinleştirme: OPENCLAW_LIVE_CODEX_HARNESS=1
  • Varsayılan model: openai/gpt-5.5
  • İsteğe bağlı görüntü yoklaması: OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1
  • İsteğe bağlı MCP/araç yoklaması: OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1
  • İsteğe bağlı Guardian yoklaması: OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=1
  • Smoke testi provider/model agentRuntime.id: "codex" değerini zorunlu kılar; böylece bozuk bir Codex test düzeneği sessizce OpenClaw’a geri düşerek geçemez.
  • Kimlik doğrulama: yerel Codex abonelik girişinden Codex uygulama sunucusu kimlik doğrulaması. Docker smoke testleri, uygulanabildiğinde Codex dışı yoklamalar için OPENAI_API_KEY de sağlayabilir, ayrıca isteğe bağlı kopyalanmış ~/.codex/auth.json ve ~/.codex/config.toml.
Yerel tarif:
OPENCLAW_LIVE_CODEX_HARNESS=1 \
  OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1 \
  OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1 \
  OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=1 \
  OPENCLAW_LIVE_CODEX_HARNESS_MODEL=openai/gpt-5.5 \
  pnpm test:live -- src/gateway/gateway-codex-harness.live.test.ts
Docker tarifi:
pnpm test:docker:live-codex-harness
Docker notları:
  • Docker çalıştırıcısı scripts/test-live-codex-harness-docker.sh konumundadır.
  • OPENAI_API_KEY değerini geçirir, mevcut olduğunda Codex CLI kimlik doğrulama dosyalarını kopyalar, @openai/codex paketini yazılabilir bağlı bir npm önekine kurar, kaynak ağacını yerleştirir, ardından yalnızca Codex test düzeneği canlı testini çalıştırır.
  • Docker varsayılan olarak görüntü, MCP/araç ve Guardian yoklamaları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 veya OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=0 ayarlayın.
  • Docker aynı açık Codex çalışma zamanı yapılandırmasını kullanır; böylece eski takma adlar veya OpenClaw geri düşüşü bir Codex test düzeneği regresyonunu gizleyemez.

Önerilen canlı tarifler

Dar, açık izin listeleri en hızlı ve en az kararsız olanlardır:
  • Tek model, doğrudan (gateway yok):
    • OPENCLAW_LIVE_MODELS="openai/gpt-5.5" pnpm test:live src/agents/models.profiles.live.test.ts
  • Küçük model doğrudan profili:
    • OPENCLAW_LIVE_MODELS=small pnpm test:live src/agents/models.profiles.live.test.ts
  • Küçük model gateway profili:
    • OPENCLAW_LIVE_GATEWAY_MODELS=small pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
  • Ollama Cloud API smoke testi:
    • OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_OLLAMA=1 OPENCLAW_LIVE_OLLAMA_BASE_URL=https://ollama.com OPENCLAW_LIVE_OLLAMA_MODEL=glm-5.1:cloud OPENCLAW_LIVE_OLLAMA_WEB_SEARCH=0 pnpm test:live -- extensions/ollama/ollama.live.test.ts
  • Tek model, gateway smoke testi:
    • OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.5" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
  • Birkaç provider genelinde araç çağırma:
    • OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.5,anthropic/claude-opus-4-6,google/gemini-3-flash-preview,deepseek/deepseek-v4-flash,zai/glm-5.1,minimax/MiniMax-M3" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
  • Z.AI Coding Plan GLM-5.2 doğrudan smoke testi:
    • ZAI_CODING_LIVE_TEST=1 pnpm test:live src/agents/zai.live.test.ts
  • Google odağı (Gemini API anahtarı + Antigravity):
    • Gemini (API anahtarı): OPENCLAW_LIVE_GATEWAY_MODELS="google/gemini-3-flash-preview" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
    • Antigravity (OAuth): OPENCLAW_LIVE_GATEWAY_MODELS="google-antigravity/claude-opus-4-6-thinking,google-antigravity/gemini-3-pro-high" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
  • Google uyarlamalı düşünme smoke testi:
    • Gemini 3 dinamik varsayılanı: pnpm openclaw qa manual --provider-mode live-frontier --model google/gemini-3.1-pro-preview --alt-model google/gemini-3.1-pro-preview --message '/think adaptive Reply exactly: GEMINI_ADAPTIVE_OK' --timeout-ms 180000
    • Gemini 2.5 dinamik bütçe: pnpm openclaw qa manual --provider-mode live-frontier --model google/gemini-2.5-flash --alt-model google/gemini-2.5-flash --message '/think adaptive Reply exactly: GEMINI25_ADAPTIVE_OK' --timeout-ms 180000
Notlar:
  • google/... Gemini API’ını 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ı kimlik doğrulama + araç kullanımına özgü davranışlar).
  • Gemini API ve Gemini CLI karşılaştırması:
    • API: OpenClaw, HTTP üzerinden Google’ın barındırılan Gemini API’ını çağırır (API anahtarı / profil kimlik doğrulaması); çoğu kullanıcının “Gemini” derken kastettiği budur.
    • CLI: OpenClaw yerel bir gemini ikili dosyasını shell üzerinden çalıştırır; kendi kimlik doğrulaması vardır ve farklı davranabilir (akış/araç desteği/sürüm uyumsuzluğu).

Canlı: model matrisi (kapsadıklarımız)

Sabit bir “CI model listesi” yoktur (canlı isteğe bağlıdır), ancak bunlar anahtarları olan bir geliştirme makinesinde düzenli olarak kapsanması önerilen modellerdir.

Modern smoke kümesi (araç çağırma + görüntü)

Çalışmaya devam etmesini beklediğimiz “yaygın modeller” çalıştırması budur:
  • OpenAI (Codex dışı): openai/gpt-5.5
  • OpenAI ChatGPT/Codex OAuth: openai/gpt-5.5
  • Anthropic: anthropic/claude-opus-4-6 (veya anthropic/claude-sonnet-4-6)
  • Google (Gemini API): google/gemini-3.1-pro-preview ve google/gemini-3-flash-preview (daha eski Gemini 2.x modellerinden kaçının)
  • Google (Antigravity): google-antigravity/claude-opus-4-6-thinking ve google-antigravity/gemini-3-flash
  • DeepSeek: deepseek/deepseek-v4-flash ve deepseek/deepseek-v4-pro
  • Z.AI (GLM): zai/glm-5.1 (genel API) veya zai/glm-5.2 (Coding Plan)
  • MiniMax: minimax/MiniMax-M3
Araçlar + görüntü ile gateway smoke testi çalıştırın: OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.5,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,deepseek/deepseek-v4-flash,zai/glm-5.1,minimax/MiniMax-M3" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts

Temel seviye: araç çağırma (Read + isteğe bağlı Exec)

Her provider ailesi için en az bir tane seçin:
  • OpenAI: openai/gpt-5.5
  • Anthropic: anthropic/claude-opus-4-6 (veya anthropic/claude-sonnet-4-6)
  • Google: google/gemini-3-flash-preview (veya google/gemini-3.1-pro-preview)
  • DeepSeek: deepseek/deepseek-v4-flash
  • Z.AI (GLM): zai/glm-5.1 (genel API) veya zai/glm-5.2 (Coding Plan)
  • MiniMax: minimax/MiniMax-M3
İsteğe bağlı ek kapsama (olması iyi olur):
  • xAI: xai/grok-4.3 (veya mevcut en yeni)
  • Mistral: mistral/… (etkinleştirdiğiniz “tools” yetenekli bir model seçin)
  • Cerebras: cerebras/… (erişiminiz varsa)
  • LM Studio: lmstudio/… (yerel; araç çağırma API moduna bağlıdır)

Görüntü: görüntü gönderme (ek → çok modlu mesaj)

Görüntü yoklamasını çalıştırmak için OPENCLAW_LIVE_GATEWAY_MODELS içine en az bir görüntü yetenekli model ekleyin (Claude/Gemini/OpenAI görüntü yetenekli varyantları vb.).

Toplayıcılar / alternatif gateway’ler

Anahtarlarınız etkinse şu yollarla test etmeyi de destekliyoruz:
  • OpenRouter: openrouter/... (yüzlerce model; araç+görüntü yetenekli 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 üzerinden kimlik doğrulama)
Canlı matrise ekleyebileceğiniz daha fazla provider (kimlik bilgileriniz/yapılandırmanız varsa):
  • Yerleşik: openai, 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.)
Dokümanlarda “tüm modeller” ifadesini sabit kodlamayın. Yetkili liste, makinenizde discoverModels(...) ne döndürüyorsa ve hangi anahtarlar kullanılabiliyorsa odur.

Kimlik bilgileri (asla commit etmeyin)

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, openclaw models list / model seçimini nasıl debug ediyorsanız aynı şekilde debug edin.
  • Ajan başına kimlik doğrulama profilleri: ~/.openclaw/agents/<agentId>/agent/auth-profiles.json (canlı testlerde “profil anahtarları” ile kastedilen budur)
  • Yapılandırma: ~/.openclaw/openclaw.json (veya OPENCLAW_CONFIG_PATH)
  • Eski durum dizini: ~/.openclaw/credentials/ (varsa hazırlanmış canlı ana dizine kopyalanır, ancak ana profil anahtarı deposu 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 kimlik doğrulama dizinlerini geçici bir test ana dizinine kopyalar; hazırlanmış canlı ana dizinler workspace/ ve sandboxes/ öğelerini atlar, ayrıca agents.*.workspace / agentDir yol geçersiz kılmaları kaldırılır; böylece problar gerçek ana makine çalışma alanınızın dışında kalır.
Env anahtarlarına güvenmek istiyorsanız, yerel testlerden önce bunları export edin veya aşağıdaki Docker çalıştırıcılarını açık bir OPENCLAW_PROFILE_FILE ile kullanın.

Deepgram canlı (ses transkripsiyonu)

  • Test: extensions/deepgram/audio.live.test.ts
  • Etkinleştirme: DEEPGRAM_API_KEY=... DEEPGRAM_LIVE_TEST=1 pnpm test:live extensions/deepgram/audio.live.test.ts

BytePlus kodlama planı canlı

  • Test: extensions/byteplus/live.test.ts
  • Etkinleştirme: BYTEPLUS_API_KEY=... BYTEPLUS_LIVE_TEST=1 pnpm test:live extensions/byteplus/live.test.ts
  • İsteğe bağlı model geçersiz kılma: BYTEPLUS_CODING_MODEL=ark-code-latest

ComfyUI iş akışı medyası 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örsel, video ve music_generate yollarını çalıştırır
    • plugins.entries.comfy.config.<capability> yapılandırılmadıkça her yeteneği atlar
    • comfy iş akışı gönderimi, yoklama, indirmeler veya Plugin kaydı değiştirildikten sonra kullanışlıdır

Görsel üretimi canlı

  • Test: test/image-generation.runtime.live.test.ts
  • Komut: pnpm test:live test/image-generation.runtime.live.test.ts
  • Test düzeneği: pnpm test:live:media image
  • Kapsam:
    • Kayıtlı her görsel üretimi sağlayıcı Plugin öğesini numaralandırır
    • Proba başlamadan önce halihazırda export edilmiş sağlayıcı env değişkenlerini kullanır
    • Varsayılan olarak depolanmış kimlik doğrulama profillerinden önce canlı/env API anahtarlarını kullanır; böylece auth-profiles.json içindeki eski test anahtarları gerçek shell kimlik bilgilerini maskelemez
    • Kullanılabilir kimlik doğrulaması/profili/modeli olmayan sağlayıcıları atlar
    • Yapılandırılmış her sağlayıcıyı paylaşılan görsel üretimi çalışma zamanı üzerinden çalıştırır:
      • <provider>:generate
      • sağlayıcı düzenleme desteği beyan ettiğinde <provider>:edit
  • Kapsanan mevcut paketlenmiş sağlayıcılar:
    • deepinfra
    • fal
    • google
    • minimax
    • openai
    • openrouter
    • vydra
    • xai
  • İsteğe bağlı daraltma:
    • OPENCLAW_LIVE_IMAGE_GENERATION_PROVIDERS="openai,google,openrouter,xai"
    • OPENCLAW_LIVE_IMAGE_GENERATION_PROVIDERS="deepinfra"
    • OPENCLAW_LIVE_IMAGE_GENERATION_MODELS="openai/gpt-image-2,google/gemini-3.1-flash-image-preview,openrouter/google/gemini-3.1-flash-image-preview,xai/grok-imagine-image"
    • OPENCLAW_LIVE_IMAGE_GENERATION_CASES="google:flash-generate,google:pro-edit,openrouter:generate,xai:default-generate,xai:default-edit"
  • İsteğe bağlı kimlik doğrulama davranışı:
    • Profil deposu kimlik doğrulamasını zorunlu kılmak ve yalnızca env geçersiz kılmalarını yok saymak için OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1
Gönderilen CLI yolu için, sağlayıcı/çalışma zamanı canlı testi geçtikten sonra bir infer smoke testi ekleyin:
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_INFER_CLI_TEST=1 pnpm test:live -- test/image-generation.infer-cli.live.test.ts
openclaw infer image providers --json
openclaw infer image generate \
  --model google/gemini-3.1-flash-image-preview \
  --prompt "Minimal flat test image: one blue square on a white background, no text." \
  --output ./openclaw-infer-image-smoke.png \
  --json
Bu, CLI argüman ayrıştırmasını, yapılandırma/varsayılan ajan çözümlemeyi, paketlenmiş Plugin etkinleştirmeyi, paylaşılan görsel üretimi çalışma zamanını ve canlı sağlayıcı isteğini kapsar. Plugin bağımlılıklarının çalışma zamanı yüklenmeden önce mevcut olması beklenir.

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
  • Test düzeneği: pnpm test:live:media music
  • Kapsam:
    • Paylaşılan paketlenmiş müzik üretimi sağlayıcısı yolunu çalıştırır
    • Şu anda Google ve MiniMax’i kapsar
    • Proba başlamadan önce halihazırda export edilmiş sağlayıcı env değişkenlerini kullanır
    • Varsayılan olarak depolanmış kimlik doğrulama profillerinden önce canlı/env API anahtarlarını kullanır; böylece auth-profiles.json içindeki eski test anahtarları gerçek shell kimlik bilgilerini maskelemez
    • Kullanılabilir kimlik doğrulaması/profili/modeli olmayan sağlayıcıları atlar
    • Kullanılabilir olduğunda beyan edilen iki çalışma zamanı modunu da çalıştırır:
      • yalnızca istem girdisiyle generate
      • sağlayıcı capabilities.edit.enabled beyan ettiğinde edit
    • Mevcut paylaşılan hat kapsamı:
      • google: generate, edit
      • minimax: generate
      • comfy: ayrı Comfy canlı dosyası, bu paylaşılan tarama değil
  • İsteğe bağlı daraltma:
    • OPENCLAW_LIVE_MUSIC_GENERATION_PROVIDERS="google,minimax"
    • OPENCLAW_LIVE_MUSIC_GENERATION_MODELS="google/lyria-3-clip-preview,minimax/music-2.6"
  • İsteğe bağlı kimlik doğrulama davranışı:
    • Profil deposu kimlik doğrulamasını zorunlu kılmak ve yalnızca env geçersiz kılmalarını yok saymak için OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1

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
  • Test düzeneği: pnpm test:live:media video
  • Kapsam:
    • Paylaşılan paketlenmiş video üretimi sağlayıcısı yolunu çalıştırır
    • Varsayılan olarak sürüm açısından güvenli smoke test yolunu kullanır: FAL dışı sağlayıcılar, sağlayıcı başına bir metinden videoya isteği, bir saniyelik ıstakoz istemi ve OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS üzerinden sağlayıcı başına işlem sınırı (varsayılan 180000)
    • Sağlayıcı tarafı kuyruk gecikmesi sürüm süresini baskılayabildiği için FAL varsayılan olarak atlanır; açıkça çalıştırmak için --video-providers fal veya OPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="fal" geçin
    • Proba başlamadan önce halihazırda export edilmiş sağlayıcı env değişkenlerini kullanır
    • Varsayılan olarak depolanmış kimlik doğrulama profillerinden önce canlı/env API anahtarlarını kullanır; böylece auth-profiles.json içindeki eski test anahtarları gerçek shell kimlik bilgilerini maskelemez
    • Kullanılabilir kimlik doğrulaması/profili/modeli olmayan sağlayıcıları atlar
    • Varsayılan olarak yalnızca generate çalıştırır
    • Kullanılabilir olduğunda beyan edilen dönüştürme modlarını da çalıştırmak için OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1 ayarlayın:
      • sağlayıcı capabilities.imageToVideo.enabled beyan ettiğinde ve seçilen sağlayıcı/model paylaşılan taramada buffer destekli yerel görsel girdisini kabul ettiğinde imageToVideo
      • sağlayıcı capabilities.videoToVideo.enabled beyan ettiğinde ve seçilen sağlayıcı/model paylaşılan taramada buffer destekli yerel video girdisini kabul ettiğinde videoToVideo
    • Paylaşılan taramada beyan edilmiş ama atlanan mevcut imageToVideo sağlayıcıları:
      • vydra; çünkü paketlenmiş veo3 yalnızca metin destekler ve paketlenmiş kling uzak görsel URL’si gerektirir
    • Sağlayıcıya özel Vydra kapsamı:
      • 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örsel URL fixture’ı kullanan bir kling hattına ek olarak veo3 metinden videoya çalıştırır
    • Mevcut videoToVideo canlı kapsamı:
      • yalnızca seçilen model runway/gen4_aleph olduğunda runway
    • Paylaşılan taramada beyan edilmiş ama atlanan mevcut videoToVideo sağlayıcıları:
      • alibaba, qwen, xai; çünkü bu yollar şu anda uzak http(s) / MP4 referans URL’leri gerektirir
      • google; çünkü mevcut paylaşılan Gemini/Veo hattı yerel buffer destekli girdi kullanır ve bu yol paylaşılan taramada kabul edilmez
      • openai; çünkü mevcut paylaşılan hatta kuruluşa özgü video düzenleme erişim garantileri yoktur
  • İsteğe bağlı daraltma:
    • OPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="deepinfra,google,openai,runway"
    • OPENCLAW_LIVE_VIDEO_GENERATION_MODELS="google/veo-3.1-fast-generate-preview,openai/sora-2,runway/gen4_aleph"
    • FAL dahil varsayılan taramadaki her sağlayıcıyı dahil etmek için OPENCLAW_LIVE_VIDEO_GENERATION_SKIP_PROVIDERS=""
    • Agresif bir smoke çalıştırması için her sağlayıcı işlem sınırını azaltmak üzere OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS=60000
  • İsteğe bağlı kimlik doğrulama davranışı:
    • Profil deposu kimlik doğrulamasını zorunlu kılmak ve yalnızca env geçersiz kılmalarını yok saymak için OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1

Medya canlı test düzeneği

  • Komut: pnpm test:live:media
  • Amaç:
    • Paylaşılan görsel, müzik ve video canlı paketlerini tek bir repo yerel giriş noktası üzerinden çalıştırır
    • Halihazırda export edilmiş sağlayıcı env değişkenlerini kullanır
    • Her paketi varsayılan olarak şu anda kullanılabilir kimlik doğrulaması olan sağlayıcılara otomatik daraltır
    • scripts/test-live.mjs öğesini 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

İlgili

  • Test - birim, entegrasyon, QA ve Docker paketleri