Gateway
Kimlik doğrulama kimlik bilgisi semantiği
Bu semantikler, seçim zamanı ve çalışma zamanı kimlik doğrulama davranışları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ı, yoklama bir model çağrısına hiç ulaşmadığında bir status kategorisi (ok, auth, rate_limit, billing, timeout, format, unknown, no_model) ile birlikte kararlı bir reasonCode taşır:
reasonCode |
Anlamı |
|---|---|
excluded_by_auth_order |
Profil, sağlayıcısı için 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 geçmiştedir. |
invalid_expires |
expires geçerli bir pozitif Unix ms zaman damgası değildir. |
unresolved_ref |
Yapılandırılan 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 mevcuttur ancak yoklanabilir bir model adayı çözümlenememiştir. |
Uygunluk denetimleri, kullanılabilir kimlik bilgilerinin neden kodunu ok olarak bildirir.
Token kimlik bilgileri
Token kimlik bilgileri (type: "token"), satır içi token ve/veya tokenRef desteği sunar.
Uygunluk kuralları
- Hem
tokenhem detokenRefyoksa token profili uygun değildir (missing_credential). expiresisteğe bağlıdır. Mevcut olduğunda,0değerinden büyük ve en yüksek JavaScriptDatezaman damgasından (8640000000000000) büyük olmayan, Unix başlangıç zamanından itibaren milisaniye cinsinde sonlu bir sayı olmalıdır.expiresgeçersizse (yanlış tür,NaN,0, negatif, sonlu olmayan veya bu üst sınırı aşan), profilinvalid_expiresile uygun değildir.expiresgeçmişteyse profilexpiredile uygun değildir.tokenRef,expiresdoğrulamasını atlamaz.
Çözümleme kuralları
- Çözümleyici semantikleri,
expiresiçin uygunluk semantikleriyle eşleşir. - Uygun profillerde token materyali, satır içi değerden veya
tokenRefüzerinden çözümlenebilir. - Çözümlenemeyen başvurular,
models status --probeçıktısındaunresolved_refüretir.
Agent kopyalama taşınabilirliği
Agent kimlik doğrulama devralımı, doğrudan okuma yoluyla gerçekleştirilir. Bir agent'ın yerel profili olmadığında, gizli materyali kendi kimlik bilgisi deposuna kopyalamadan çalışma zamanında varsayılan/ana agent deposundaki profilleri çözümler (agents/<agentId>/agent/openclaw-agent.sqlite).
openclaw agents add gibi açık kopyalama akışları şu taşınabilirlik politikasını kullanır:
copyToAgents: falseolmadığı süreceapi_keyvetokenprofilleri 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ı, yenileme materyalinin agent'lar arasında kopyalanmasının güvenli olduğu biliniyorsa
copyToAgents: trueile etkinleştirilebilir; bu etkinleştirme yalnızca profil satır içi erişim/yenileme materyali taşıdığında geçerlidir.
Taşınabilir olmayan profiller, hedef agent ayrı olarak oturum açıp kendi yerel profilini oluşturmadığı sürece doğrudan okuma yoluyla devralı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çerlidir. Kimlik bilgisi deposunda eşleşen bir girdi bulunmasa bile bu profil kimlikleri auth.order ve oturum geçersiz kılmalarında görünebilir.
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çiye sahipse openclaw doctor --fix, bunu auth.profiles konumuna taşır ve işaretçiyi depodan kaldırır.
Açık kimlik doğrulama sıralaması filtrelemesi
- Bir sağlayıcı için
auth.order.<provider>veya kimlik doğrulama deposu sıralaması geçersiz kılması ayarlandığındamodels status --probe, yalnızca o sağlayıcının çözümlenen kimlik doğrulama sıralaması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ıralamadan çı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.jsonüzerinden gelebilir (sonuçsource:profile,env,models.json). - Bir sağlayıcının kimlik bilgileri varsa ancak OpenClaw bu sağlayıcı 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 mevcut işlemin kapsamındaysa ya da bu harici kaynak için depolanmış yerel bir profil zaten varsa 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 (yenileme akışları rotasyona uğramış token'ları kalıcı olarak kaydeder), bu nedenle SecretRef destekli OAuth materyali değiştirilebilir durumu depolar arasında böler.
- Bir profil kimlik bilgisi
type: "oauth"ise o profildeki tüm kimlik bilgisi materyali alanlarında SecretRef nesneleri reddedilir. auth.profiles.<id>.mode,"oauth"ise bu profil için SecretRef desteklikeyRef/tokenRefgirdisi reddedilir.- İhlaller, başlangıç/yeniden yükleme gizli bilgi hazırlama ve profil çözümleme yollarında kesin hatalardır (hata fırlatılır).
Eski Sürümlerle Uyumlu Mesajlaşma
Betik uyumluluğu için yoklama hataları bu ilk satırı değiştirmeden korur:
Auth profile credentials are missing or expired.
İnsanların kolayca anlayabileceği ayrıntı ve kararlı neden kodu, sonraki satırlarda ↳ Auth reason [code]: ... biçiminde yer alır.