Model failover
OpenClaw xatolarni ikki bosqichda boshqaradi:- Joriy provayder ichida auth profillarini aylantirish.
agents.defaults.model.fallbacksdagi keyingi modelga model fallback qilish.
Auth saqlash (kalitlar + OAuth)
OpenClaw API kalitlari hamda OAuth tokenlari uchun auth profillaridan foydalanadi.- Maxfiy ma’lumotlar
~/.openclaw/agents/<agentId>/agent/auth-profiles.jsonfaylida saqlanadi (eski joylashuv:~/.openclaw/agent/auth-profiles.json). auth.profiles/auth.orderkonfiguratsiyasi faqat metadata + marshrutlash uchun (maxfiy ma’lumotlarsiz).- Faqat import uchun mo‘ljallangan eski OAuth fayli:
~/.openclaw/credentials/oauth.json(birinchi foydalanishdaauth-profiles.jsonga import qilinadi).
type: "api_key"→{ provider, key }type: "oauth"→{ provider, access, refresh, expires, email? }(+projectId/enterpriseUrlfor some providers)
Profil IDlari
OAuth orqali kirish har bir akkaunt birga mavjud bo‘lishi uchun alohida profil yaratadi.- Standart: agar email mavjud bo‘lmasa
provider:default. - Email bilan OAuth:
provider:<email>(masalangoogle-antigravity:[email protected]).
~/.openclaw/agents/<agentId>/agent/auth-profiles.json faylida profiles bo‘limida saqlanadi.
Aylanish tartibi
Agar provayderda bir nechta profil bo‘lsa, OpenClaw quyidagi tartibda tanlaydi:- Aniq konfiguratsiya:
auth.order[provider](agar o‘rnatilgan bo‘lsa). - Konfiguratsiyalangan profillar: provayder bo‘yicha filtrlab olingan
auth.profiles. - Saqlangan profillar:
auth-profiles.jsondagi shu provayderga tegishli yozuvlar.
- Asosiy kalit: profil turi (API kalitlaridan oldin OAuth).
- Ikkinchi kalit:
usageStats.lastUsed(har bir tur ichida eng eski birinchi). - Cooldown/disabled profillar oxiriga o‘tkaziladi va muddati eng yaqin tugaydigan birinchi bo‘lib joylashtiriladi.
Sessiya bo‘yicha biriktirish (kesh uchun qulay)
- OpenClaw tanlangan auth profilini sessiya davomida mahkamlaydi — bu provayder keshlarini “issiq” holatda saqlash uchun.
- U har bir so‘rovda aylantirilmaydi. 3. Mahkamlangan profil quyidagilargacha qayta ishlatiladi:
- sessiya tiklanganda (
/new//reset) - compaction yakunlanganda (compaction soni oshganda)
- profil cooldown yoki disabled holatida bo‘lsa
/model …@<profileId> orqali qo‘lda tanlash ushbu sessiya uchun foydalanuvchi override ni o‘rnatadiva yangi sessiya boshlanmaguncha avtomatik aylantirilmaydi.
- Avtomatik mahkamlangan profillar (sessiya routeri tomonidan tanlangan) afzallik sifatida qaraladi: ular avval sinab ko‘riladi, ammo rate limitlar/timeoutlar bo‘lsa, OpenClaw boshqa profilga o‘tishi mumkin.
- Foydalanuvchi mahkamlagan profillar o‘sha profilga qulflanib qoladi; agar u ishlamasa va model fallbacklar sozlangan bo‘lsa, OpenClaw profilni almashtirish o‘rniga keyingi modelga o‘tadi.
Nega OAuth “yo‘qolib qolgandek” ko‘rinishi mumkin
- Agar bir provayder uchun ham OAuth profili, ham API key profili bo‘lsa, round‑robin mahkamlashsiz xabarlar orasida ular o‘rtasida almashishi mumkin. 12. Bitta profilni majburlash uchun:
auth.order[provider] = ["provider:profileId"]bilan biriktiring, yoki- UI/chat interfeysingiz qo‘llab-quvvatlasa,
/model …orqali sessiya bo‘yicha override ishlating.
Cooldown’lar
- Profil auth/rate‑limit xatolari (yoki rate limitingga o‘xshash timeout) sababli ishlamay qolsa, OpenClaw uni cooldown holatiga o‘tkazadi va keyingi profilga o‘tadi.
- Format/yaroqsiz so‘rov xatolari (masalan, Cloud Code Assist tool call ID tekshiruv xatolari) ham failoverga loyiq deb qaraladi va xuddi shu cooldownlardan foydalanadi.
- 1 daqiqa
- 5 daqiqa
- 25 daqiqa
- 1 soat (maksimal)
auth-profiles.json faylida usageStats ostida saqlanadi:
Billing sababli o‘chirish
- Billing/kredit xatolari (masalan, “insufficient credits” / “credit balance too low”) failoverga loyiq deb qaraladi, ammo ular odatda vaqtinchalik bo‘lmaydi. 27. Qisqa cooldown o‘rniga, OpenClaw profilni o‘chirilgan deb belgilaydi (uzoqroq backoff bilan) va keyingi profil/provayderga o‘tadi.
auth-profiles.json faylida saqlanadi:
- Billing backoff 5 soatdan boshlanadi, har bir billing xatosida ikki baravar oshadi va 24 soat bilan cheklanadi.
- Agar profil 24 soat davomida xatoga uchramasa (sozlanishi mumkin), backoff hisoblagichlari tiklanadi.
Model fallback
- Agar provayder uchun barcha profillar ishlamasa, OpenClaw
agents.defaults.model.fallbacksdagi keyingi modelga o‘tadi. 35. Bu auth xatolari, rate limitlar va profil aylantirish tugagan timeoutlarga taalluqli (boshqa xatolar fallbackni oldinga siljitmaydi).
sozlangan fallback’lar sinab ko‘rilgach, baribir
agents.defaults.model.primary da yakunlanadi.
Tegishli konfiguratsiya
Qarang: Gateway configuration:auth.profiles/auth.orderauth.cooldowns.billingBackoffHours/auth.cooldowns.billingBackoffHoursByProviderauth.cooldowns.billingMaxHours/auth.cooldowns.failureWindowHoursagents.defaults.model.primary/agents.defaults.model.fallbacksagents.defaults.imageModelmarshrutlash