Gateway
Kimlik doğrulama kimlik bilgileri semantiği
Bu semantikler, seçim zamanı ile çalışma zamanı kimlik doğrulama davranışını uyumlu tutar. Şunlar tarafından paylaşılır:
resolveAuthProfileOrder(profil sıralaması)resolveApiKeyForProfile(çalışma zamanı kimlik bilgisi çözümleme)openclaw models status --probeopenclaw doctorkimlik doğrulama denetimleri (doctor-auth)
Kararlı yoklama neden kodları
Yoklama sonuçları bir status kategorisi (ok, auth, rate_limit, billing, timeout, format, unknown, no_model) ve yoklama hiçbir zaman bir model çağrısına ulaşmadığında kararlı bir reasonCode taşır:
reasonCode |
Anlamı |
|---|---|
excluded_by_auth_order |
Profil, sağlayıcısının açık kimlik doğrulama sıralamasından çıkarılmıştır. |
missing_credential |
Satır içi kimlik bilgisi veya SecretRef yapılandırılmamıştır. |
expired |
Token expires zamanı geçmiştedir. |
invalid_expires |
expires, geçerli bir pozitif Unix ms zaman damgası değildir. |
unresolved_ref |
Yapılandırılmış SecretRef çözümlenememiştir. |
ineligible_profile |
Profil, sağlayıcı yapılandırmasıyla uyumsuzdur (hatalı biçimlendirilmiş anahtar girdisi dâhil). |
no_model |
Kimlik bilgileri vardır ancak yoklanabilir bir model adayı çözümlenememiştir. |
Uygunluk denetimleri, kullanılabilir kimlik bilgileri için neden kodu olarak ok bildirir.
Token kimlik bilgileri
Token kimlik bilgileri (type: "token") satır içi token ve/veya tokenRef destekler.
Uygunluk kuralları
- Hem
tokenhem detokenRefyoksa bir token profili uygun değildir (missing_credential). expiresisteğe bağlıdır. Mevcut olduğunda0değerinden büyük ve maksimum JavaScriptDatezaman damgasından (8640000000000000) büyük olmayan, Unix epoch milisaniyesi cinsinden sonlu bir sayı olmalıdır.expiresgeçersizse (yanlış tür,NaN,0, negatif, sonlu olmayan veya bu maksimumun ötesinde), profilinvalid_expiresnedeniyle uygun değildir.expiresgeçmişteyse profilexpirednedeniyle uygun değildir.tokenRef,expiresdoğrulamasını atlamaz.
Çözümleme kuralları
- Çözümleyici semantikleri,
expiresiçin uygunluk semantikleriyle eşleşir. - Uygun profillerde token malzemesi satır içi değerden veya
tokenRefüzerinden çözümlenebilir. - Çözümlenemeyen referanslar,
models status --probeçıktısındaunresolved_refüretir.
Agent kopyalama taşınabilirliği
Agent kimlik doğrulama kalıtımı geçişli okumayla yapılır. Bir Agent'ın yerel profili olmadığında, gizli malzemeyi kendi kimlik bilgisi deposuna (agents/<agentId>/agent/openclaw-agent.sqlite) kopyalamadan, çalışma zamanında varsayılan/ana Agent deposundaki profilleri çözümler.
openclaw agents add gibi açık kopyalama akışları şu taşınabilirlik politikasını kullanır:
api_keyvetokenprofilleri,copyToAgents: falseolmadığı sürece taşınabilirdir.- Yenileme token'ları tek kullanımlık veya rotasyona duyarlı olabileceğinden
oauthprofilleri varsayılan olarak taşınabilir değildir. - Sağlayıcının sahip olduğu OAuth akışları, yalnızca Agent'lar arasında yenileme malzemesini kopyalamanın güvenli olduğu biliniyorsa
copyToAgents: trueile etkinleştirebilir; etkinleştirme yalnızca profil satır içi erişim/yenileme malzemesi taşıdığında geçerlidir.
Taşınabilir olmayan profiller, hedef Agent ayrı olarak oturum açıp kendi yerel profilini oluşturmadığı sürece geçişli okuma kalıtımı üzerinden kullanılabilir kalır.
Yalnızca yapılandırmaya dayalı kimlik doğrulama rotaları
mode: "aws-sdk" içeren auth.profiles girdileri, depolanan kimlik bilgileri değil, yönlendirme meta verileridir. Hedef sağlayıcı, Plugin'in sahip olduğu Amazon Bedrock kurulumunun yazdığı rota olan models.providers.<id>.auth: "aws-sdk" kullandığında geçerlidirler. Bu profil kimlikleri, kimlik bilgisi deposunda eşleşen bir girdi bulunmasa bile auth.order ve oturum geçersiz kılmalarında yer alabilir.
Kimlik bilgisi deposuna type: "aws-sdk" yazmayın; depolanan kimlik bilgileri yalnızca api_key, token veya oauth olabilir. Eski bir auth-profiles.json böyle bir işaretçi içeriyorsa openclaw doctor --fix, bunu auth.profiles konumuna taşır ve işaretçiyi depodan kaldırır.
Açık kimlik doğrulama sırası filtreleme
- Bir sağlayıcı için
auth.order.<provider>veya kimlik doğrulama deposu sıra geçersiz kılması ayarlandığında,models status --probeyalnızca o sağlayıcının çözümlenen kimlik doğrulama sırasında kalan profil kimliklerini yoklar. Depolanan geçersiz kılma,auth.orderyapılandırmasına göre önceliklidir. - Bu sağlayıcı için depolanmış ancak açık sıradan çıkarılmış bir profil daha sonra sessizce denenmez. Yoklama çıktısı bunu
reasonCode: excluded_by_auth_orderveExcluded by auth.order for this provider.ayrıntısıyla bildirir.
Yoklama hedefi çözümleme
- Yoklama hedefleri kimlik doğrulama profillerinden, ortam kimlik bilgilerinden veya
models.jsondosyasından gelebilir (sonuçsource:profile,env,models.json). - Bir sağlayıcının kimlik bilgileri varsa ancak OpenClaw bunun için yoklanabilir bir model adayı çözümleyemiyorsa
models status --probe,reasonCode: no_modelilestatus: no_modelbildirir.
Harici CLI kimlik bilgisi keşfi
- Harici CLI'ların sahip olduğu yalnızca çalışma zamanına özgü kimlik bilgileri (
claude-cliiçin Claude CLI,openaiiçin Codex CLI,minimax-portaliçin MiniMax CLI), yalnızca sağlayıcı, çalışma zamanı veya kimlik doğrulama profili geçerli işlem kapsamında olduğunda ya da söz konusu harici kaynak için depolanmış yerel bir profil zaten mevcut olduğunda keşfedilir. - Kimlik doğrulama deposu çağıranları açık bir harici CLI keşif modu seçer: yalnızca kalıcı/Plugin kimlik doğrulaması için
none, önceden depolanmış harici CLI profillerini yenilemek içinexistingveya somut bir sağlayıcı/profil kümesi içinscoped. - Salt okunur/durum yolları
allowKeychainPrompt: falsegeçirir; yalnızca dosya tabanlı harici CLI kimlik bilgilerini kullanır ve macOS Keychain sonuçlarını okumaz veya yeniden kullanmaz.
OAuth SecretRef Politikası Koruması
SecretRef girdisi yalnızca statik kimlik bilgileri içindir. OAuth kimlik bilgileri çalışma zamanında değiştirilebilir olduğundan (yenileme akışları döndürülen token'ları kalıcılaştırır), SecretRef destekli OAuth malzemesi değiştirilebilir durumu depolar arasında böler.
- Bir profil kimlik bilgisi
type: "oauth"ise SecretRef nesneleri, o profildeki tüm kimlik bilgisi malzemesi alanları için reddedilir. auth.profiles.<id>.mode,"oauth"ise o profil için SecretRef desteklikeyRef/tokenRefgirdisi reddedilir.- İhlaller, başlangıç/yeniden yükleme gizli bilgi hazırlama ve profil çözümleme yollarında kesin hatalara (fırlatılan hatalara) neden olur.
Eski sürümlerle uyumlu mesajlaşma
Betik uyumluluğu için yoklama hataları şu ilk satırı değiştirmeden korur:
Auth profile credentials are missing or expired.
İnsanların anlayabileceği ayrıntı ve kararlı neden kodu, sonraki satırlarda ↳ Auth reason [code]: ... biçiminde yer alır.