Gateway
Semantiek van authenticatiegegevens
Deze semantiek houdt het authenticatiegedrag tijdens selectie en tijdens runtime op elkaar afgestemd. Ze wordt gedeeld door:
resolveAuthProfileOrder(profielvolgorde)resolveApiKeyForProfile(oplossen van runtime-aanmeldgegevens)openclaw models status --probeopenclaw doctor-authenticatiecontroles (doctor-auth)
Stabiele redencodes voor probes
Proberesultaten bevatten een status-categorie (ok, auth, rate_limit, billing, timeout, format, unknown, no_model) plus een stabiele reasonCode wanneer de probe nooit een modelaanroep heeft bereikt:
reasonCode |
Betekenis |
|---|---|
excluded_by_auth_order |
Profiel weggelaten uit de expliciete authenticatievolgorde voor de provider. |
missing_credential |
Er is geen inline-aanmeldgegeven of SecretRef geconfigureerd. |
expired |
Token expires ligt in het verleden. |
invalid_expires |
expires is geen geldige positieve Unix-tijdstempel in ms. |
unresolved_ref |
De geconfigureerde SecretRef kon niet worden opgelost. |
ineligible_profile |
Profiel is niet compatibel met de providerconfiguratie (inclusief onjuist gevormde sleutelinvoer). |
no_model |
Er bestaan aanmeldgegevens, maar er is geen kandidaat voor een testbaar model gevonden. |
Geschiktheidscontroles rapporteren ok als de redencode voor bruikbare aanmeldgegevens.
Tokenaanmeldgegevens
Tokenaanmeldgegevens (type: "token") ondersteunen inline token en/of tokenRef.
Geschiktheidsregels
- Een tokenprofiel is ongeschikt wanneer zowel
tokenalstokenRefontbreken (missing_credential). expiresis optioneel. Indien aanwezig, moet het een eindig aantal milliseconden sinds de Unix-epoch zijn dat groter is dan0en niet groter dan de maximale JavaScript-Date-tijdstempel (8640000000000000).- Als
expiresongeldig is (verkeerd type,NaN,0, negatief, niet-eindig of groter dan dat maximum), is het profiel ongeschikt metinvalid_expires. - Als
expiresin het verleden ligt, is het profiel ongeschikt metexpired. tokenRefomzeilt de validatie vanexpiresniet.
Oplosregels
- De semantiek van de resolver komt voor
expiresovereen met de geschiktheidssemantiek. - Voor geschikte profielen kan tokenmateriaal worden opgelost vanuit de inlinewaarde of
tokenRef. - Niet-oplosbare verwijzingen leveren
unresolved_refop in de uitvoer vanmodels status --probe.
Overdraagbaarheid van agentkopieën
Overerving van agentauthenticatie werkt via doorlezing. Wanneer een agent geen lokaal profiel heeft, worden profielen tijdens runtime vanuit de standaard-/hoofdagentopslag opgelost zonder geheim materiaal naar de eigen opslag voor aanmeldgegevens te kopiëren (agents/<agentId>/agent/openclaw-agent.sqlite).
Expliciete kopieerstromen, zoals openclaw agents add, gebruiken dit overdraagbaarheidsbeleid:
api_key- entoken-profielen zijn overdraagbaar, tenzijcopyToAgents: false.oauth-profielen zijn standaard niet overdraagbaar, omdat vernieuwingstokens eenmalig bruikbaar of gevoelig voor rotatie kunnen zijn.- OAuth-stromen die eigendom zijn van de provider mogen zich alleen aanmelden met
copyToAgents: truewanneer bekend is dat het veilig is om vernieuwingsmateriaal tussen agents te kopiëren; deze aanmelding geldt alleen wanneer het profiel inline toegangs-/vernieuwingsmateriaal bevat.
Niet-overdraagbare profielen blijven beschikbaar via overerving door doorlezing, tenzij de doelagent zich afzonderlijk aanmeldt en een eigen lokaal profiel maakt.
Authenticatieroutes uitsluitend via configuratie
auth.profiles-vermeldingen met mode: "aws-sdk" zijn routeringsmetadata, geen opgeslagen aanmeldgegevens. Ze zijn geldig wanneer de doelprovider models.providers.<id>.auth: "aws-sdk" gebruikt, de route die door de Plugin beheerde Amazon Bedrock-installatie schrijft. Deze profiel-id's kunnen voorkomen in auth.order en sessieoverschrijvingen, zelfs wanneer er geen overeenkomende vermelding in de opslag voor aanmeldgegevens bestaat.
Schrijf type: "aws-sdk" niet naar de opslag voor aanmeldgegevens; opgeslagen aanmeldgegevens zijn uitsluitend api_key, token of oauth. Als een verouderde auth-profiles.json zo'n markering bevat, verplaatst openclaw doctor --fix deze naar auth.profiles en verwijdert het de markering uit de opslag.
Filteren op expliciete authenticatievolgorde
- Wanneer
auth.order.<provider>of de volgordeoverschrijving van de authenticatieopslag voor een provider is ingesteld, testmodels status --probealleen profiel-id's die in de opgeloste authenticatievolgorde voor die provider blijven staan. De opgeslagen overschrijving heeft voorrang op deauth.order-configuratie. - Een opgeslagen profiel voor die provider dat uit de expliciete volgorde is weggelaten, wordt later niet stilzwijgend alsnog geprobeerd. De probe-uitvoer rapporteert het met
reasonCode: excluded_by_auth_orderen het detailExcluded by auth.order for this provider.
Oplossen van probedoelen
- Probedoelen kunnen afkomstig zijn van authenticatieprofielen, omgevingsaanmeldgegevens of
models.json(resultaatsource:profile,env,models.json). - Als een provider aanmeldgegevens heeft, maar OpenClaw er geen kandidaat voor een testbaar model voor kan oplossen, rapporteert
models status --probestatus: no_modelmetreasonCode: no_model.
Externe CLI-aanmeldgegevens detecteren
- Aanmeldgegevens die uitsluitend tijdens runtime beschikbaar zijn en door externe CLI's worden beheerd (Claude CLI voor
claude-cli, Codex CLI vooropenai, MiniMax CLI voorminimax-portal), worden alleen gedetecteerd wanneer de provider, runtime of het authenticatieprofiel binnen het bereik van de huidige bewerking valt, of wanneer er al een opgeslagen lokaal profiel voor die externe bron bestaat. - Aanroepers van de authenticatieopslag kiezen een expliciete detectiemodus voor externe CLI's:
noneuitsluitend voor opgeslagen/Plugin-authenticatie,existingvoor het vernieuwen van reeds opgeslagen externe CLI-profielen, ofscopedvoor een concrete set providers/profielen. - Alleen-lezen-/statuspaden geven
allowKeychainPrompt: falsedoor; ze gebruiken uitsluitend bestandsgebaseerde externe CLI-aanmeldgegevens en lezen of hergebruiken geen resultaten uit de macOS-sleutelhanger.
OAuth SecretRef-beleidscontrole
SecretRef-invoer is uitsluitend bedoeld voor statische aanmeldgegevens. OAuth-aanmeldgegevens kunnen tijdens runtime worden gewijzigd (vernieuwingsstromen slaan geroteerde tokens op), waardoor OAuth-materiaal met SecretRef-ondersteuning de wijzigbare toestand over meerdere opslaglocaties zou verdelen.
- Als een profielaanmeldgegeven
type: "oauth"is, worden SecretRef-objecten geweigerd voor elk veld met aanmeldgegevensmateriaal in dat profiel. - Als
auth.profiles.<id>.mode"oauth"is, wordt SecretRef-gebaseerdekeyRef-/tokenRef-invoer voor dat profiel geweigerd. - Overtredingen zijn harde fouten (geworpen fouten) in de paden voor de voorbereiding van geheimen bij opstarten/herladen en voor het oplossen van profielen.
Berichten die compatibel zijn met oudere versies
Voor scriptcompatibiliteit behouden probefouten deze eerste regel ongewijzigd:
Auth profile credentials are missing or expired.
Gebruiksvriendelijke details en de stabiele redencode volgen op volgende regels in de vorm ↳ Auth reason [code]: ....