Gateway
Konfiguration — Tools und benutzerdefinierte Provider
tools.*-Konfigurationsschlüssel und benutzerdefinierte Provider- / Basis-URL-Einrichtung. Informationen zu Agents, Kanälen und anderen Konfigurationsschlüsseln auf oberster Ebene finden Sie in der Konfigurationsreferenz.
Werkzeuge
Werkzeugprofile
tools.profile legt eine Basis-Allowlist vor tools.allow/tools.deny fest:
| Profil | Enthält |
|---|---|
minimal |
nur session_status |
coding |
group:fs, group:runtime, group:web, group:sessions, group:memory, cron, image, image_generate, video_generate |
messaging |
group:messaging, sessions_list, sessions_history, sessions_send, session_status |
full |
Keine Einschränkung (wie nicht festgelegt) |
Werkzeuggruppen
| Gruppe | Werkzeuge |
|---|---|
group:runtime |
exec, process, code_execution (bash wird als Alias für exec akzeptiert) |
group:fs |
read, write, edit, apply_patch |
group:sessions |
sessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, subagents, session_status |
group:memory |
memory_search, memory_get |
group:web |
web_search, x_search, web_fetch |
group:ui |
browser, canvas |
group:automation |
heartbeat_respond, cron, gateway |
group:messaging |
message |
group:nodes |
nodes |
group:agents |
agents_list, update_plan |
group:media |
image, image_generate, music_generate, video_generate, tts |
group:openclaw |
Alle integrierten Werkzeuge (schließt Provider-Plugins aus) |
tools.allow / tools.deny
Globale Allow-/Deny-Richtlinie für Werkzeuge (Deny gewinnt). Groß-/Kleinschreibung wird ignoriert, unterstützt *-Wildcards. Wird auch angewendet, wenn die Docker-Sandbox deaktiviert ist.
{
tools: { deny: ["browser", "canvas"] },
}
write und apply_patch sind separate Werkzeug-IDs. allow: ["write"] aktiviert bei kompatiblen Modellen auch apply_patch, aber deny: ["write"] verbietet apply_patch nicht. Um alle Dateimutationen zu blockieren, verweigern Sie group:fs oder listen Sie jedes mutierende Werkzeug explizit auf:
{
tools: { deny: ["write", "edit", "apply_patch"] },
}
tools.byProvider
Schränkt Werkzeuge für bestimmte Provider oder Modelle weiter ein. Reihenfolge: Basisprofil → Provider-Profil → Allow/Deny.
{
tools: {
profile: "coding",
byProvider: {
"google-antigravity": { profile: "minimal" },
"openai/gpt-5.4": { allow: ["group:fs", "sessions_list"] },
},
},
}
tools.elevated
Steuert erhöhten Exec-Zugriff außerhalb der Sandbox:
{
tools: {
elevated: {
enabled: true,
allowFrom: {
whatsapp: ["+15555550123"],
discord: ["1234567890123", "987654321098765432"],
},
},
},
}
- Die Überschreibung pro Agent (
agents.list[].tools.elevated) kann nur weiter einschränken. /elevated on|off|ask|fullspeichert den Zustand pro Sitzung; Inline-Direktiven gelten für eine einzelne Nachricht.- Erhöhtes
execumgeht Sandboxing und verwendet den konfigurierten Escape-Pfad (standardmäßiggatewayodernode, wenn das Exec-Zielnodeist).
tools.exec
{
tools: {
exec: {
backgroundMs: 10000,
timeoutSec: 1800,
cleanupMs: 1800000,
notifyOnExit: true,
notifyOnExitEmptySuccess: false,
applyPatch: {
enabled: false,
allowModels: ["gpt-5.5"],
},
},
},
}
tools.loopDetection
Sicherheitsprüfungen für Werkzeugschleifen sind standardmäßig deaktiviert. Setzen Sie enabled: true, um die Erkennung zu aktivieren. Einstellungen können global in tools.loopDetection definiert und pro Agent unter agents.list[].tools.loopDetection überschrieben werden.
{
tools: {
loopDetection: {
enabled: true,
historySize: 30,
warningThreshold: 10,
criticalThreshold: 20,
globalCircuitBreakerThreshold: 30,
detectors: {
genericRepeat: true,
knownPollNoProgress: true,
pingPong: true,
},
},
},
}
historySizenumberMaximaler Verlauf von Werkzeugaufrufen, der für die Schleifenanalyse aufbewahrt wird.
warningThresholdnumberSchwellenwert für Warnungen bei wiederholten Mustern ohne Fortschritt.
criticalThresholdnumberHöherer Wiederholungsschwellenwert zum Blockieren kritischer Schleifen.
globalCircuitBreakerThresholdnumberHarter Stoppschwellenwert für jeden Lauf ohne Fortschritt.
detectors.genericRepeatbooleanWarnt bei wiederholten Aufrufen mit demselben Werkzeug und denselben Argumenten.
detectors.knownPollNoProgressbooleanWarnt/blockiert bei bekannten Poll-Werkzeugen (process.poll, command_status usw.).
detectors.pingPongbooleanWarnt/blockiert bei alternierenden Paarmustern ohne Fortschritt.
tools.web
{
tools: {
web: {
search: {
enabled: true,
apiKey: "brave_api_key", // or BRAVE_API_KEY env
maxResults: 5,
timeoutSeconds: 30,
cacheTtlMinutes: 15,
},
fetch: {
enabled: true,
provider: "firecrawl", // optional; omit for auto-detect
maxChars: 50000,
maxCharsCap: 50000,
maxResponseBytes: 2000000,
timeoutSeconds: 30,
cacheTtlMinutes: 15,
maxRedirects: 3,
readability: true,
userAgent: "custom-ua",
},
},
},
}
tools.media
Konfiguriert das Verständnis eingehender Medien (Bild/Audio/Video):
{
tools: {
media: {
concurrency: 2,
asyncCompletion: {
directSend: false, // deprecated: completions stay agent-mediated
},
audio: {
enabled: true,
maxBytes: 20971520,
scope: {
default: "deny",
rules: [{ action: "allow", match: { chatType: "direct" } }],
},
models: [
{ provider: "openai", model: "gpt-4o-mini-transcribe" },
{ type: "cli", command: "whisper", args: ["--model", "base", "{{MediaPath}}"] },
],
},
image: {
enabled: true,
timeoutSeconds: 180,
models: [{ provider: "ollama", model: "gemma4:26b", timeoutSeconds: 300 }],
},
video: {
enabled: true,
maxBytes: 52428800,
models: [{ provider: "google", model: "gemini-3-flash-preview" }],
},
},
},
}
Media model entry fields
Provider-Eintrag (type: "provider" oder weggelassen):
provider: API-Provider-ID (openai,anthropic,google/gemini,groqusw.)model: Überschreibung der Modell-IDprofile/preferredProfile: Profilauswahl ausauth-profiles.json
CLI-Eintrag (type: "cli"):
command: auszuführbare Dateiargs: vorlagenbasierte Argumente (unterstützt{{MediaPath}},{{Prompt}},{{MaxChars}}usw.;openclaw doctor --fixmigriert veraltete{input}-Platzhalter zu{{MediaPath}})
Gemeinsame Felder:
capabilities: optionale Liste (image,audio,video). Standardwerte:openai/anthropic/minimax→ Bild,google→ Bild+Audio+Video,groq→ Audio.prompt,maxChars,maxBytes,timeoutSeconds,language: Überschreibungen pro Eintrag.tools.media.image.timeoutSecondsund passendetimeoutSeconds-Einträge für Bildmodelle gelten auch, wenn der Agent das expliziteimage-Tool aufruft.- Fehler fallen auf den nächsten Eintrag zurück.
Die Provider-Authentifizierung folgt der Standardreihenfolge: auth-profiles.json → Umgebungsvariablen → models.providers.*.apiKey.
Felder für asynchrone Fertigstellung:
asyncCompletion.directSend: veraltetes Kompatibilitäts-Flag. Abgeschlossene asynchrone Medienaufgaben bleiben über die anfragende Sitzung vermittelt, sodass der Agent das Ergebnis erhält, entscheidet, wie er den Benutzer informiert, und das Nachrichtentool verwendet, wenn die Quelldelivery dies erfordert.
tools.agentToAgent
{
tools: {
agentToAgent: {
enabled: false,
allow: ["home", "work"],
},
},
}
tools.sessions
Steuert, welche Sitzungen von den Sitzungstools (sessions_list, sessions_history, sessions_send) adressiert werden können.
Standard: tree (aktuelle Sitzung + von ihr gestartete Sitzungen, z. B. Subagents).
{
tools: {
sessions: {
// "self" | "tree" | "agent" | "all"
visibility: "tree",
},
},
}
Visibility scopes
self: nur der aktuelle Sitzungsschlüssel.tree: aktuelle Sitzung + Sitzungen, die von der aktuellen Sitzung gestartet wurden (Subagents).agent: jede Sitzung, die zur aktuellen Agent-ID gehört (kann andere Benutzer einschließen, wenn Sie sitzungsbezogene Sitzungen pro Absender unter derselben Agent-ID ausführen).all: jede Sitzung. Agent-übergreifende Adressierung erfordert weiterhintools.agentToAgent.- Sandbox-Begrenzung: Wenn die aktuelle Sitzung in einer Sandbox ausgeführt wird und
agents.defaults.sandbox.sessionToolsVisibility="spawned"ist, wird die Sichtbarkeit auftreeerzwungen, auch wenntools.sessions.visibility="all"ist.
tools.sessions_spawn
Steuert die Unterstützung für Inline-Anhänge für sessions_spawn.
{
tools: {
sessions_spawn: {
attachments: {
enabled: false, // opt-in: set true to allow inline file attachments
maxTotalBytes: 5242880, // 5 MB total across all files
maxFiles: 50,
maxFileBytes: 1048576, // 1 MB per file
retainOnSessionKeep: false, // keep attachments when cleanup="keep"
},
},
},
}
Hinweise zu Anhängen
- Anhänge werden nur für
runtime: "subagent"unterstützt. Die ACP-Laufzeit lehnt sie ab. - Dateien werden im untergeordneten Arbeitsbereich unter
.openclaw/attachments/<uuid>/mit einer.manifest.jsonmaterialisiert. - Anhangsinhalte werden automatisch aus der Transcript-Persistenz redigiert.
- Base64-Eingaben werden mit strengen Prüfungen von Alphabet/Polsterung und einer Größenbegrenzung vor dem Dekodieren validiert.
- Dateiberechtigungen sind
0700für Verzeichnisse und0600für Dateien. - Die Bereinigung folgt der
cleanup-Richtlinie:deleteentfernt Anhänge immer;keepbehält sie nur bei, wennretainOnSessionKeep: truegesetzt ist.
tools.experimental
Experimentelle integrierte Tool-Flags. Standardmäßig deaktiviert, sofern keine Strict-Agentic-Regel zur automatischen Aktivierung für GPT-5 greift.
{
tools: {
experimental: {
planTool: true, // enable experimental update_plan
},
},
}
planTool: aktiviert das strukturierte Toolupdate_planfür die Nachverfolgung nicht trivialer mehrstufiger Arbeit.- Standard:
false, sofernagents.defaults.embeddedPi.executionContract(oder eine agentspezifische Überschreibung) für einen OpenAI- oder OpenAI Codex-Lauf der GPT-5-Familie nicht auf"strict-agentic"gesetzt ist. Setzen Sietrue, um das Tool außerhalb dieses Geltungsbereichs zu erzwingen, oderfalse, um es selbst für Strict-Agentic-GPT-5-Läufe deaktiviert zu lassen. - Wenn aktiviert, ergänzt der System-Prompt außerdem Nutzungshinweise, damit das Modell es nur für umfangreiche Arbeit verwendet und höchstens einen Schritt auf
in_progresshält.
agents.defaults.subagents
{
agents: {
defaults: {
subagents: {
allowAgents: ["research"],
model: "minimax/MiniMax-M2.7",
maxConcurrent: 8,
runTimeoutSeconds: 900,
archiveAfterMinutes: 60,
},
},
},
}
model: Standardmodell für gestartete Sub-Agents. Wenn ausgelassen, erben Sub-Agents das Modell des Aufrufers.allowAgents: Standard-Allowlist der Ziel-Agent-IDs fürsessions_spawn, wenn der anfordernde Agent nicht sein eigenessubagents.allowAgentssetzt (["*"]= beliebig; Standard: nur derselbe Agent).runTimeoutSeconds: Standard-Timeout (Sekunden) fürsessions_spawn, wenn der Tool-AufrufrunTimeoutSecondsauslässt.0bedeutet kein Timeout.- Tool-Richtlinie pro Sub-Agent:
tools.subagents.tools.allow/tools.subagents.tools.deny.
Benutzerdefinierte Provider und Basis-URLs
OpenClaw verwendet den integrierten Modellkatalog. Fügen Sie benutzerdefinierte Provider über models.providers in der Konfiguration oder ~/.openclaw/agents/<agentId>/agent/models.json hinzu.
{
models: {
mode: "merge", // merge (default) | replace
providers: {
"custom-proxy": {
baseUrl: "http://localhost:4000/v1",
apiKey: "LITELLM_KEY",
api: "openai-completions", // openai-completions | openai-responses | anthropic-messages | google-generative-ai
models: [
{
id: "llama-3.1-8b",
name: "Llama 3.1 8B",
reasoning: false,
input: ["text"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 128000,
contextTokens: 96000,
maxTokens: 32000,
},
],
},
},
},
}
Authentifizierung und Zusammenführungspriorität
- Verwenden Sie
authHeader: true+headersfür benutzerdefinierte Authentifizierungsanforderungen. - Überschreiben Sie den Stamm der Agent-Konfiguration mit
OPENCLAW_AGENT_DIR(oderPI_CODING_AGENT_DIR, einem Alias einer älteren Umgebungsvariable). - Zusammenführungspriorität für übereinstimmende Provider-IDs:
- Nicht leere Agent-
models.json-baseUrl-Werte gewinnen. - Nicht leere Agent-
apiKey-Werte gewinnen nur, wenn dieser Provider im aktuellen Konfigurations-/Auth-Profil-Kontext nicht SecretRef-verwaltet ist. - SecretRef-verwaltete Provider-
apiKey-Werte werden aus Quellmarkern (ENV_VAR_NAMEfür Env-Referenzen,secretref-managedfür Datei-/Exec-Referenzen) aktualisiert, anstatt aufgelöste Secrets persistent zu speichern. - SecretRef-verwaltete Provider-Header-Werte werden aus Quellmarkern aktualisiert (
secretref-env:ENV_VAR_NAMEfür Env-Referenzen,secretref-managedfür Datei-/Exec-Referenzen). - Leere oder fehlende Agent-
apiKey/baseUrlfallen aufmodels.providersin der Konfiguration zurück. - Übereinstimmende Modellwerte
contextWindow/maxTokensverwenden den höheren Wert aus expliziter Konfiguration und impliziten Katalogwerten. - Übereinstimmende Modellwerte
contextTokensbehalten eine explizite Laufzeitobergrenze bei, wenn vorhanden; verwenden Sie sie, um den effektiven Kontext zu begrenzen, ohne native Modellmetadaten zu ändern. - Verwenden Sie
models.mode: "replace", wenn die Konfigurationmodels.jsonvollständig neu schreiben soll. - Marker-Persistenz ist quellenautoritativ: Marker werden aus dem aktiven Quellkonfigurations-Snapshot (vor der Auflösung) geschrieben, nicht aus aufgelösten Laufzeit-Secret-Werten.
- Nicht leere Agent-
Details zu Provider-Feldern
Katalog auf oberster Ebene
models.mode: Verhalten des Provider-Katalogs (mergeoderreplace).models.providers: benutzerdefinierte Provider-Map, indiziert nach Provider-ID.- Sichere Änderungen: Verwenden Sie
openclaw config set models.providers.<id> '<json>' --strict-json --mergeoderopenclaw config set models.providers.<id>.models '<json-array>' --strict-json --mergefür additive Aktualisierungen.config setverweigert destruktive Ersetzungen, sofern Sie nicht--replaceübergeben.
- Sichere Änderungen: Verwenden Sie
Provider-Verbindung und Authentifizierung
models.providers.*.api: Request-Adapter (openai-completions,openai-responses,anthropic-messages,google-generative-aiusw.). Für selbst gehostete/v1/chat/completions-Backends wie MLX, vLLM, SGLang und die meisten OpenAI-kompatiblen lokalen Server verwenden Sieopenai-completions. Ein benutzerdefinierter Provider mitbaseUrl, aber ohneapi, verwendet standardmäßigopenai-completions; setzen Sieopenai-responsesnur, wenn das Backend/v1/responsesunterstützt.models.providers.*.apiKey: Provider-Zugangsdaten (SecretRef-/Env-Ersetzung bevorzugt).models.providers.*.auth: Authentifizierungsstrategie (api-key,token,oauth,aws-sdk).models.providers.*.contextWindow: standardmäßiges natives Kontextfenster für Modelle unter diesem Provider, wenn der ModelleintragcontextWindownicht setzt.models.providers.*.contextTokens: standardmäßige effektive Laufzeit-Kontextobergrenze für Modelle unter diesem Provider, wenn der ModelleintragcontextTokensnicht setzt.models.providers.*.maxTokens: standardmäßige Obergrenze für Ausgabe-Token für Modelle unter diesem Provider, wenn der ModelleintragmaxTokensnicht setzt.models.providers.*.timeoutSeconds: optionaler HTTP-Request-Timeout pro Provider-Modell in Sekunden, einschließlich Verbindungsaufbau, Headern, Body und Behandlung des Abbruchs der gesamten Anfrage.models.providers.*.injectNumCtxForOpenAICompat: für Ollama +openai-completionswirdoptions.num_ctxin Anfragen injiziert (Standard:true).models.providers.*.authHeader: erzwingt bei Bedarf den Transport von Zugangsdaten imAuthorization-Header.models.providers.*.baseUrl: Basis-URL der Upstream-API.models.providers.*.headers: zusätzliche statische Header für Proxy-/Tenant-Routing.
Überschreibungen für Request-Transport
models.providers.*.request: Transportüberschreibungen für HTTP-Anfragen an Modell-Provider.
request.headers: zusätzliche Header (mit Provider-Standards zusammengeführt). Werte akzeptieren SecretRef.request.auth: Überschreibung der Authentifizierungsstrategie. Modi:"provider-default"(integrierte Authentifizierung des Providers verwenden),"authorization-bearer"(mittoken),"header"(mitheaderName,value, optionalprefix).request.proxy: HTTP-Proxy-Überschreibung. Modi:"env-proxy"(Env-VariablenHTTP_PROXY/HTTPS_PROXYverwenden),"explicit-proxy"(miturl). Beide Modi akzeptieren ein optionalestls-Unterobjekt.request.tls: TLS-Überschreibung für direkte Verbindungen. Felder:ca,cert,key,passphrase(alle akzeptieren SecretRef),serverName,insecureSkipVerify.request.allowPrivateNetwork: wenntrue, wird HTTPS zubaseUrlerlaubt, wenn DNS auf private, CGNAT- oder ähnliche Bereiche auflöst, über den HTTP-Fetch-Guard des Providers (Operator-Opt-in für vertrauenswürdige selbst gehostete OpenAI-kompatible Endpunkte). Stream-URLs von local loopback-Modell-Providern wielocalhost,127.0.0.1und[::1]werden automatisch zugelassen, sofern dies nicht explizit auffalsegesetzt ist; LAN-, Tailnet- und private DNS-Hosts erfordern weiterhin ein Opt-in. WebSocket verwendet dieselberequest-Konfiguration für Header/TLS, aber nicht dieses Fetch-SSRF-Gate. Standardfalse.
Modellkatalogeinträge
models.providers.*.models: explizite Modellkatalogeinträge des Providers.models.providers.*.models.*.input: Modelleingabemodalitäten. Verwenden Sie["text"]für reine Textmodelle und["text", "image"]für native Bild-/Vision-Modelle. Bildanhänge werden nur in Agent-Turns injiziert, wenn das ausgewählte Modell als bildfähig markiert ist.models.providers.*.models.*.contextWindow: Metadaten zum nativen Kontextfenster des Modells. Dies überschreibtcontextWindowauf Provider-Ebene für dieses Modell.models.providers.*.models.*.contextTokens: optionale Laufzeit-Kontextobergrenze. Dies überschreibtcontextTokensauf Provider-Ebene; verwenden Sie es, wenn Sie ein kleineres effektives Kontextbudget als das nativecontextWindowdes Modells wünschen;openclaw models listzeigt beide Werte an, wenn sie sich unterscheiden.models.providers.*.models.*.compat.supportsDeveloperRole: optionaler Kompatibilitätshinweis. Fürapi: "openai-completions"mit einer nicht leeren, nicht nativenbaseUrl(Host nichtapi.openai.com) erzwingt OpenClaw dies zur Laufzeit auffalse. Leere/ausgelassenebaseUrlbehält das standardmäßige OpenAI-Verhalten bei.models.providers.*.models.*.compat.requiresStringContent: optionaler Kompatibilitätshinweis für string-only OpenAI-kompatible Chat-Endpunkte. Wenntrue, reduziert OpenClaw reine Text-messages[].content-Arrays vor dem Senden der Anfrage auf einfache Strings.
Amazon-Bedrock-Erkennung
plugins.entries.amazon-bedrock.config.discovery: Stamm der Bedrock-Auto-Discovery-Einstellungen.plugins.entries.amazon-bedrock.config.discovery.enabled: implizite Erkennung ein-/ausschalten.plugins.entries.amazon-bedrock.config.discovery.region: AWS-Region für die Erkennung.plugins.entries.amazon-bedrock.config.discovery.providerFilter: optionaler Provider-ID-Filter für gezielte Erkennung.plugins.entries.amazon-bedrock.config.discovery.refreshInterval: Polling-Intervall für die Aktualisierung der Erkennung.plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow: Fallback-Kontextfenster für erkannte Modelle.plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens: Fallback-Maximum für Ausgabe-Token für erkannte Modelle.
Das interaktive Onboarding benutzerdefinierter Provider leitet Bildeingabe für gängige Vision-Modell-IDs wie GPT-4o, Claude, Gemini, Qwen-VL, LLaVA, Pixtral, InternVL, Mllama, MiniCPM-V und GLM-4V ab und überspringt die zusätzliche Frage für bekannte reine Textfamilien. Unbekannte Modell-IDs fragen weiterhin nach Bildunterstützung. Nicht interaktives Onboarding verwendet dieselbe Ableitung; übergeben Sie --custom-image-input, um bildfähige Metadaten zu erzwingen, oder --custom-text-input, um reine Textmetadaten zu erzwingen.
Provider-Beispiele
Cerebras (GLM 4.7 / GPT OSS)
Das gebündelte Provider-Plugin cerebras kann dies über openclaw onboard --auth-choice cerebras-api-key konfigurieren. Verwenden Sie explizite Provider-Konfiguration nur, wenn Sie Standardwerte überschreiben.
{
env: { CEREBRAS_API_KEY: "sk-..." },
agents: {
defaults: {
model: {
primary: "cerebras/zai-glm-4.7",
fallbacks: ["cerebras/gpt-oss-120b"],
},
models: {
"cerebras/zai-glm-4.7": { alias: "GLM 4.7 (Cerebras)" },
"cerebras/gpt-oss-120b": { alias: "GPT OSS 120B (Cerebras)" },
},
},
},
models: {
mode: "merge",
providers: {
cerebras: {
baseUrl: "https://api.cerebras.ai/v1",
apiKey: "${CEREBRAS_API_KEY}",
api: "openai-completions",
models: [
{ id: "zai-glm-4.7", name: "GLM 4.7 (Cerebras)" },
{ id: "gpt-oss-120b", name: "GPT OSS 120B (Cerebras)" },
],
},
},
},
}
Verwenden Sie cerebras/zai-glm-4.7 für Cerebras; zai/glm-4.7 für den direkten Zugriff auf Z.AI.
Kimi Coding
{
env: { KIMI_API_KEY: "sk-..." },
agents: {
defaults: {
model: { primary: "kimi/kimi-code" },
models: { "kimi/kimi-code": { alias: "Kimi Code" } },
},
},
}
Anthropic-kompatibler, integrierter Provider. Kurzform: openclaw onboard --auth-choice kimi-code-api-key.
Local models (LM Studio)
Siehe Lokale Modelle. Kurz gesagt: Führen Sie ein großes lokales Modell über die LM Studio Responses API auf leistungsstarker Hardware aus; behalten Sie gehostete Modelle als zusammengeführte Fallbacks bei.
MiniMax M2.7 (direct)
{
agents: {
defaults: {
model: { primary: "minimax/MiniMax-M2.7" },
models: {
"minimax/MiniMax-M2.7": { alias: "Minimax" },
},
},
},
models: {
mode: "merge",
providers: {
minimax: {
baseUrl: "https://api.minimax.io/anthropic",
apiKey: "${MINIMAX_API_KEY}",
api: "anthropic-messages",
models: [
{
id: "MiniMax-M2.7",
name: "MiniMax M2.7",
reasoning: true,
input: ["text"],
cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0.375 },
contextWindow: 204800,
maxTokens: 131072,
},
],
},
},
},
}
Setzen Sie MINIMAX_API_KEY. Kurzformen: openclaw onboard --auth-choice minimax-global-api oder openclaw onboard --auth-choice minimax-cn-api. Der Modellkatalog verwendet standardmäßig nur M2.7. Auf dem Anthropic-kompatiblen Streaming-Pfad deaktiviert OpenClaw MiniMax Thinking standardmäßig, sofern Sie thinking nicht selbst explizit setzen. /fast on oder params.fastMode: true schreibt MiniMax-M2.7 in MiniMax-M2.7-highspeed um.
Moonshot AI (Kimi)
{
env: { MOONSHOT_API_KEY: "sk-..." },
agents: {
defaults: {
model: { primary: "moonshot/kimi-k2.6" },
models: { "moonshot/kimi-k2.6": { alias: "Kimi K2.6" } },
},
},
models: {
mode: "merge",
providers: {
moonshot: {
baseUrl: "https://api.moonshot.ai/v1",
apiKey: "${MOONSHOT_API_KEY}",
api: "openai-completions",
models: [
{
id: "kimi-k2.6",
name: "Kimi K2.6",
reasoning: false,
input: ["text", "image"],
cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 },
contextWindow: 262144,
maxTokens: 262144,
},
],
},
},
},
}
Für den China-Endpunkt: baseUrl: "https://api.moonshot.cn/v1" oder openclaw onboard --auth-choice moonshot-api-key-cn.
Native Moonshot-Endpunkte geben Streaming-Usage-Kompatibilität auf dem gemeinsamen openai-completions-Transport an, und OpenClaw leitet dies aus den Endpunktfunktionen ab, nicht nur aus der integrierten Provider-ID.
OpenCode
{
agents: {
defaults: {
model: { primary: "opencode/claude-opus-4-6" },
models: { "opencode/claude-opus-4-6": { alias: "Opus" } },
},
},
}
Setzen Sie OPENCODE_API_KEY (oder OPENCODE_ZEN_API_KEY). Verwenden Sie opencode/...-Referenzen für den Zen-Katalog oder opencode-go/...-Referenzen für den Go-Katalog. Kurzform: openclaw onboard --auth-choice opencode-zen oder openclaw onboard --auth-choice opencode-go.
Synthetic (Anthropic-compatible)
{
env: { SYNTHETIC_API_KEY: "sk-..." },
agents: {
defaults: {
model: { primary: "synthetic/hf:MiniMaxAI/MiniMax-M2.5" },
models: { "synthetic/hf:MiniMaxAI/MiniMax-M2.5": { alias: "MiniMax M2.5" } },
},
},
models: {
mode: "merge",
providers: {
synthetic: {
baseUrl: "https://api.synthetic.new/anthropic",
apiKey: "${SYNTHETIC_API_KEY}",
api: "anthropic-messages",
models: [
{
id: "hf:MiniMaxAI/MiniMax-M2.5",
name: "MiniMax M2.5",
reasoning: true,
input: ["text"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 192000,
maxTokens: 65536,
},
],
},
},
},
}
Die Basis-URL sollte /v1 weglassen (der Anthropic-Client hängt es an). Kurzform: openclaw onboard --auth-choice synthetic-api-key.
Z.AI (GLM-4.7)
{
agents: {
defaults: {
model: { primary: "zai/glm-4.7" },
models: { "zai/glm-4.7": {} },
},
},
}
Setzen Sie ZAI_API_KEY. z.ai/* und z-ai/* werden als Aliasse akzeptiert. Kurzform: openclaw onboard --auth-choice zai-api-key.
- Allgemeiner Endpunkt:
https://api.z.ai/api/paas/v4 - Coding-Endpunkt (Standard):
https://api.z.ai/api/coding/paas/v4 - Definieren Sie für den allgemeinen Endpunkt einen benutzerdefinierten Provider mit Überschreibung der Basis-URL.
Verwandt
- Konfiguration — Agents
- Konfiguration — Kanäle
- Konfigurationsreferenz — andere Schlüssel auf oberster Ebene
- Tools und Plugins