Gateway
Configuración — herramientas y proveedores personalizados
tools.* claves de configuración y configuración de proveedor personalizado / URL base. Para agentes, canales y otras claves de configuración de nivel superior, consulta la Referencia de configuración.
Herramientas
Perfiles de herramientas
tools.profile establece una lista de permitidos base antes de tools.allow/tools.deny:
| Perfil | Incluye |
|---|---|
minimal |
Solo 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 |
Sin restricciones (igual que si no se define) |
Grupos de herramientas
| Grupo | Herramientas |
|---|---|
group:runtime |
exec, process, code_execution (bash se acepta como alias de exec) |
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 |
Todas las herramientas integradas (excluye plugins de proveedor) |
tools.allow / tools.deny
Política global para permitir/denegar herramientas (la denegación prevalece). No distingue entre mayúsculas y minúsculas, admite comodines *. Se aplica incluso cuando el sandbox de Docker está desactivado.
{
tools: { deny: ["browser", "canvas"] },
}
write y apply_patch son ids de herramienta separados. allow: ["write"] también habilita apply_patch para modelos compatibles, pero deny: ["write"] no deniega apply_patch. Para bloquear toda mutación de archivos, deniega group:fs o enumera explícitamente cada herramienta que muta:
{
tools: { deny: ["write", "edit", "apply_patch"] },
}
tools.byProvider
Restringe aún más las herramientas para proveedores o modelos específicos. Orden: perfil base → perfil de proveedor → permitir/denegar.
{
tools: {
profile: "coding",
byProvider: {
"google-antigravity": { profile: "minimal" },
"openai/gpt-5.4": { allow: ["group:fs", "sessions_list"] },
},
},
}
tools.elevated
Controla el acceso elevado de exec fuera del sandbox:
{
tools: {
elevated: {
enabled: true,
allowFrom: {
whatsapp: ["+15555550123"],
discord: ["1234567890123", "987654321098765432"],
},
},
},
}
- La anulación por agente (
agents.list[].tools.elevated) solo puede restringir más. /elevated on|off|ask|fullalmacena el estado por sesión; las directivas en línea se aplican a un único mensaje.execelevado omite el sandboxing y usa la ruta de escape configurada (gatewaypor defecto, onodecuando el destino de exec esnode).
tools.exec
{
tools: {
exec: {
backgroundMs: 10000,
timeoutSec: 1800,
cleanupMs: 1800000,
notifyOnExit: true,
notifyOnExitEmptySuccess: false,
applyPatch: {
enabled: false,
allowModels: ["gpt-5.5"],
},
},
},
}
tools.loopDetection
Las comprobaciones de seguridad de bucles de herramientas están desactivadas por defecto. Establece enabled: true para activar la detección. La configuración puede definirse globalmente en tools.loopDetection y anularse por agente en agents.list[].tools.loopDetection.
{
tools: {
loopDetection: {
enabled: true,
historySize: 30,
warningThreshold: 10,
criticalThreshold: 20,
globalCircuitBreakerThreshold: 30,
detectors: {
genericRepeat: true,
knownPollNoProgress: true,
pingPong: true,
},
},
},
}
historySizenumberHistorial máximo de llamadas a herramientas conservado para el análisis de bucles.
warningThresholdnumberUmbral de patrón repetido sin progreso para advertencias.
criticalThresholdnumberUmbral de repetición más alto para bloquear bucles críticos.
globalCircuitBreakerThresholdnumberUmbral de detención estricta para cualquier ejecución sin progreso.
detectors.genericRepeatbooleanAdvertir sobre llamadas repetidas con la misma herramienta y los mismos argumentos.
detectors.knownPollNoProgressbooleanAdvertir/bloquear en herramientas de sondeo conocidas (process.poll, command_status, etc.).
detectors.pingPongbooleanAdvertir/bloquear en patrones alternos de pares sin progreso.
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
Configura la comprensión de medios entrantes (imagen/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" }],
},
},
},
}
Campos de entrada del modelo de medios
Entrada de proveedor (type: "provider" u omitido):
provider: id del proveedor de API (openai,anthropic,google/gemini,groq, etc.)model: anulación del id del modeloprofile/preferredProfile: selección del perfil deauth-profiles.json
Entrada de CLI (type: "cli"):
command: ejecutable que se va a ejecutarargs: argumentos con plantilla (admite{{MediaPath}},{{Prompt}},{{MaxChars}}, etc.;openclaw doctor --fixmigra los marcadores de posición obsoletos{input}a{{MediaPath}})
Campos comunes:
capabilities: lista opcional (image,audio,video). Valores predeterminados:openai/anthropic/minimax→ imagen,google→ imagen+audio+video,groq→ audio.prompt,maxChars,maxBytes,timeoutSeconds,language: anulaciones por entrada.tools.media.image.timeoutSecondsy las entradastimeoutSecondsdel modelo de imagen correspondiente también se aplican cuando el agente llama a la herramienta explícitaimage.- Los fallos recurren a la siguiente entrada.
La autenticación del proveedor sigue el orden estándar: auth-profiles.json → variables de entorno → models.providers.*.apiKey.
Campos de finalización asíncrona:
asyncCompletion.directSend: marca de compatibilidad obsoleta. Las tareas de medios asíncronas completadas permanecen mediadas por la sesión solicitante para que el agente reciba el resultado, decida cómo comunicárselo al usuario y use la herramienta de mensajes cuando la entrega de origen lo requiera.
tools.agentToAgent
{
tools: {
agentToAgent: {
enabled: false,
allow: ["home", "work"],
},
},
}
tools.sessions
Controla a qué sesiones pueden apuntar las herramientas de sesión (sessions_list, sessions_history, sessions_send).
Valor predeterminado: tree (sesión actual + sesiones generadas por ella, como subagentes).
{
tools: {
sessions: {
// "self" | "tree" | "agent" | "all"
visibility: "tree",
},
},
}
Ámbitos de visibilidad
self: solo la clave de sesión actual.tree: sesión actual + sesiones generadas por la sesión actual (subagentes).agent: cualquier sesión que pertenezca al id del agente actual (puede incluir otros usuarios si ejecutas sesiones por remitente con el mismo id de agente).all: cualquier sesión. Apuntar a otros agentes sigue requiriendotools.agentToAgent.- Límite de sandbox: cuando la sesión actual está en sandbox y
agents.defaults.sandbox.sessionToolsVisibility="spawned", la visibilidad se fuerza atreeaunquetools.sessions.visibility="all".
tools.sessions_spawn
Controla el soporte de adjuntos en línea para 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"
},
},
},
}
Notas sobre adjuntos
- Los adjuntos solo son compatibles con
runtime: "subagent". El runtime de ACP los rechaza. - Los archivos se materializan en el espacio de trabajo secundario en
.openclaw/attachments/<uuid>/con un.manifest.json. - El contenido de los adjuntos se redacta automáticamente de la persistencia de transcripciones.
- Las entradas Base64 se validan con comprobaciones estrictas de alfabeto/relleno y una protección de tamaño previa a la decodificación.
- Los permisos de archivo son
0700para directorios y0600para archivos. - La limpieza sigue la política
cleanup:deletesiempre elimina los adjuntos;keeplos conserva solo cuandoretainOnSessionKeep: true.
tools.experimental
Indicadores experimentales de herramientas integradas. Desactivado de forma predeterminada salvo que se aplique una regla de habilitación automática strict-agentic de GPT-5.
{
tools: {
experimental: {
planTool: true, // enable experimental update_plan
},
},
}
planTool: habilita la herramienta estructuradaupdate_planpara hacer seguimiento de trabajos no triviales de varios pasos.- Valor predeterminado:
falsesalvo queagents.defaults.embeddedPi.executionContract(o una anulación por agente) esté establecido en"strict-agentic"para una ejecución de la familia GPT-5 de OpenAI u OpenAI Codex. Establécelo entruepara forzar la activación de la herramienta fuera de ese ámbito, o enfalsepara mantenerla desactivada incluso en ejecuciones strict-agentic de GPT-5. - Cuando está habilitada, el prompt del sistema también agrega orientación de uso para que el modelo solo la use en trabajos sustanciales y mantenga como máximo un paso
in_progress.
agents.defaults.subagents
{
agents: {
defaults: {
subagents: {
allowAgents: ["research"],
model: "minimax/MiniMax-M2.7",
maxConcurrent: 8,
runTimeoutSeconds: 900,
archiveAfterMinutes: 60,
},
},
},
}
model: modelo predeterminado para subagentes generados. Si se omite, los subagentes heredan el modelo del llamador.allowAgents: lista de permitidos predeterminada de ids de agentes de destino parasessions_spawncuando el agente solicitante no establece su propiosubagents.allowAgents(["*"]= cualquiera; valor predeterminado: solo el mismo agente).runTimeoutSeconds: tiempo de espera predeterminado (segundos) parasessions_spawncuando la llamada a la herramienta omiterunTimeoutSeconds.0significa sin tiempo de espera.- Política de herramientas por subagente:
tools.subagents.tools.allow/tools.subagents.tools.deny.
Proveedores personalizados y URL base
OpenClaw usa el catálogo de modelos integrado. Agrega proveedores personalizados mediante models.providers en la configuración o ~/.openclaw/agents/<agentId>/agent/models.json.
{
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,
},
],
},
},
},
}
Autenticación y precedencia de fusión
- Usa
authHeader: true+headerspara necesidades de autenticación personalizadas. - Anula la raíz de configuración del agente con
OPENCLAW_AGENT_DIR(oPI_CODING_AGENT_DIR, un alias de variable de entorno heredado). - Precedencia de fusión para IDs de proveedor coincidentes:
- Ganan los valores no vacíos de
baseUrlenmodels.jsondel agente. - Los valores no vacíos de
apiKeydel agente ganan solo cuando ese proveedor no está gestionado por SecretRef en el contexto actual de configuración/perfil de autenticación. - Los valores de
apiKeyde proveedores gestionados por SecretRef se actualizan desde marcadores de origen (ENV_VAR_NAMEpara refs de entorno,secretref-managedpara refs de archivo/exec) en lugar de persistir secretos resueltos. - Los valores de encabezado de proveedores gestionados por SecretRef se actualizan desde marcadores de origen (
secretref-env:ENV_VAR_NAMEpara refs de entorno,secretref-managedpara refs de archivo/exec). apiKey/baseUrldel agente vacíos o ausentes recurren amodels.providersen la configuración.- Los
contextWindow/maxTokensdel modelo coincidente usan el valor más alto entre la configuración explícita y los valores implícitos del catálogo. - El
contextTokensdel modelo coincidente conserva un límite de runtime explícito cuando está presente; úsalo para limitar el contexto efectivo sin cambiar los metadatos nativos del modelo. - Usa
models.mode: "replace"cuando quieras que la configuración reescriba por completomodels.json. - La persistencia de marcadores toma el origen como autoridad: los marcadores se escriben desde la instantánea de configuración de origen activa (antes de la resolución), no desde valores de secreto de runtime resueltos.
- Ganan los valores no vacíos de
Detalles de campos del proveedor
Catálogo de nivel superior
models.mode: comportamiento del catálogo de proveedores (mergeoreplace).models.providers: mapa de proveedores personalizados indexado por id de proveedor.- Ediciones seguras: usa
openclaw config set models.providers.<id> '<json>' --strict-json --mergeoopenclaw config set models.providers.<id>.models '<json-array>' --strict-json --mergepara actualizaciones aditivas.config setrechaza reemplazos destructivos salvo que pases--replace.
- Ediciones seguras: usa
Conexión y autenticación del proveedor
models.providers.*.api: adaptador de solicitudes (openai-completions,openai-responses,anthropic-messages,google-generative-ai, etc.). Para backends autohospedados de/v1/chat/completionscomo MLX, vLLM, SGLang y la mayoría de servidores locales compatibles con OpenAI, usaopenai-completions. Un proveedor personalizado conbaseUrlpero sinapiusaopenai-completionsde forma predeterminada; estableceopenai-responsessolo cuando el backend admita/v1/responses.models.providers.*.apiKey: credencial del proveedor (prefiere SecretRef/sustitución de entorno).models.providers.*.auth: estrategia de autenticación (api-key,token,oauth,aws-sdk).models.providers.*.contextWindow: ventana de contexto nativa predeterminada para modelos bajo este proveedor cuando la entrada del modelo no establececontextWindow.models.providers.*.contextTokens: límite de contexto de runtime efectivo predeterminado para modelos bajo este proveedor cuando la entrada del modelo no establececontextTokens.models.providers.*.maxTokens: límite predeterminado de tokens de salida para modelos bajo este proveedor cuando la entrada del modelo no establecemaxTokens.models.providers.*.timeoutSeconds: tiempo de espera opcional por proveedor, en segundos, para solicitudes HTTP de modelo, incluido el manejo de conexión, encabezados, cuerpo y cancelación total de la solicitud.models.providers.*.injectNumCtxForOpenAICompat: para Ollama +openai-completions, inyectaoptions.num_ctxen las solicitudes (predeterminado:true).models.providers.*.authHeader: fuerza el transporte de credenciales en el encabezadoAuthorizationcuando sea necesario.models.providers.*.baseUrl: URL base de la API upstream.models.providers.*.headers: encabezados estáticos adicionales para enrutamiento de proxy/inquilino.
Anulaciones del transporte de solicitudes
models.providers.*.request: anulaciones de transporte para solicitudes HTTP de proveedores de modelos.
request.headers: encabezados adicionales (fusionados con los valores predeterminados del proveedor). Los valores aceptan SecretRef.request.auth: anulación de estrategia de autenticación. Modos:"provider-default"(usa la autenticación integrada del proveedor),"authorization-bearer"(contoken),"header"(conheaderName,value,prefixopcional).request.proxy: anulación de proxy HTTP. Modos:"env-proxy"(usa las variables de entornoHTTP_PROXY/HTTPS_PROXY),"explicit-proxy"(conurl). Ambos modos aceptan un subobjetotlsopcional.request.tls: anulación de TLS para conexiones directas. Campos:ca,cert,key,passphrase(todos aceptan SecretRef),serverName,insecureSkipVerify.request.allowPrivateNetwork: cuando estrue, permite HTTPS abaseUrlcuando DNS se resuelve a rangos privados, CGNAT o similares, mediante la protección de fetch HTTP del proveedor (consentimiento explícito del operador para endpoints autohospedados compatibles con OpenAI y de confianza). Las URL de flujo de proveedor de modelos de local loopback comolocalhost,127.0.0.1y[::1]se permiten automáticamente salvo que esto se establezca explícitamente enfalse; los hosts de LAN, tailnet y DNS privado aún requieren consentimiento explícito. WebSocket usa el mismorequestpara encabezados/TLS, pero no esa puerta SSRF de fetch. Valor predeterminado:false.
Entradas del catálogo de modelos
models.providers.*.models: entradas explícitas del catálogo de modelos del proveedor.models.providers.*.models.*.input: modalidades de entrada del modelo. Usa["text"]para modelos solo de texto y["text", "image"]para modelos nativos de imagen/visión. Los adjuntos de imagen solo se inyectan en turnos de agente cuando el modelo seleccionado está marcado como compatible con imágenes.models.providers.*.models.*.contextWindow: metadatos de ventana de contexto nativa del modelo. Esto anula elcontextWindowde nivel de proveedor para ese modelo.models.providers.*.models.*.contextTokens: límite opcional de contexto de runtime. Esto anula elcontextTokensde nivel de proveedor; úsalo cuando quieras un presupuesto de contexto efectivo menor que elcontextWindownativo del modelo;openclaw models listmuestra ambos valores cuando difieren.models.providers.*.models.*.compat.supportsDeveloperRole: pista de compatibilidad opcional. Paraapi: "openai-completions"con unbaseUrlno nativo y no vacío (host noapi.openai.com), OpenClaw fuerza esto afalseen runtime. UnbaseUrlvacío/omitido conserva el comportamiento predeterminado de OpenAI.models.providers.*.models.*.compat.requiresStringContent: pista de compatibilidad opcional para endpoints de chat compatibles con OpenAI que solo admiten cadenas. Cuando estrue, OpenClaw aplana los arraysmessages[].contentde texto puro a cadenas simples antes de enviar la solicitud.
Descubrimiento de Amazon Bedrock
plugins.entries.amazon-bedrock.config.discovery: raíz de configuración de descubrimiento automático de Bedrock.plugins.entries.amazon-bedrock.config.discovery.enabled: activa/desactiva el descubrimiento implícito.plugins.entries.amazon-bedrock.config.discovery.region: región de AWS para el descubrimiento.plugins.entries.amazon-bedrock.config.discovery.providerFilter: filtro opcional de id de proveedor para descubrimiento dirigido.plugins.entries.amazon-bedrock.config.discovery.refreshInterval: intervalo de sondeo para actualizar el descubrimiento.plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow: ventana de contexto de reserva para modelos descubiertos.plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens: tokens máximos de salida de reserva para modelos descubiertos.
La incorporación interactiva de proveedores personalizados infiere entrada de imagen para IDs de modelos de visión comunes como GPT-4o, Claude, Gemini, Qwen-VL, LLaVA, Pixtral, InternVL, Mllama, MiniCPM-V y GLM-4V, y omite la pregunta adicional para familias conocidas solo de texto. Los IDs de modelo desconocidos aún preguntan por la compatibilidad con imágenes. La incorporación no interactiva usa la misma inferencia; pasa --custom-image-input para forzar metadatos compatibles con imágenes o --custom-text-input para forzar metadatos solo de texto.
Ejemplos de proveedores
Cerebras (GLM 4.7 / GPT OSS)
El Plugin de proveedor cerebras incluido puede configurar esto mediante openclaw onboard --auth-choice cerebras-api-key. Usa configuración explícita de proveedor solo cuando anules los valores predeterminados.
{
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)" },
],
},
},
},
}
Usa cerebras/zai-glm-4.7 para Cerebras; zai/glm-4.7 para Z.AI directo.
Kimi Coding
{
env: { KIMI_API_KEY: "sk-..." },
agents: {
defaults: {
model: { primary: "kimi/kimi-code" },
models: { "kimi/kimi-code": { alias: "Kimi Code" } },
},
},
}
Proveedor integrado compatible con Anthropic. Atajo: openclaw onboard --auth-choice kimi-code-api-key.
Local models (LM Studio)
Consulta Modelos locales. En resumen: ejecuta un modelo local grande mediante la API Responses de LM Studio en hardware potente; mantén los modelos alojados fusionados como alternativa.
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,
},
],
},
},
},
}
Configura MINIMAX_API_KEY. Atajos: openclaw onboard --auth-choice minimax-global-api u openclaw onboard --auth-choice minimax-cn-api. El catálogo de modelos usa solo M2.7 de forma predeterminada. En la ruta de streaming compatible con Anthropic, OpenClaw desactiva el razonamiento de MiniMax de forma predeterminada a menos que configures thinking explícitamente. /fast on o params.fastMode: true reescribe MiniMax-M2.7 como MiniMax-M2.7-highspeed.
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,
},
],
},
},
},
}
Para el endpoint de China: baseUrl: "https://api.moonshot.cn/v1" o openclaw onboard --auth-choice moonshot-api-key-cn.
Los endpoints nativos de Moonshot anuncian compatibilidad de uso de streaming en el transporte compartido openai-completions, y OpenClaw lo determina a partir de las capacidades del endpoint, no solo del id del proveedor integrado.
OpenCode
{
agents: {
defaults: {
model: { primary: "opencode/claude-opus-4-6" },
models: { "opencode/claude-opus-4-6": { alias: "Opus" } },
},
},
}
Configura OPENCODE_API_KEY (o OPENCODE_ZEN_API_KEY). Usa referencias opencode/... para el catálogo Zen o referencias opencode-go/... para el catálogo Go. Atajo: openclaw onboard --auth-choice opencode-zen u 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,
},
],
},
},
},
}
La URL base debe omitir /v1 (el cliente de Anthropic lo añade). Atajo: 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": {} },
},
},
}
Configura ZAI_API_KEY. z.ai/* y z-ai/* se aceptan como alias. Atajo: openclaw onboard --auth-choice zai-api-key.
- Endpoint general:
https://api.z.ai/api/paas/v4 - Endpoint de programación (predeterminado):
https://api.z.ai/api/coding/paas/v4 - Para el endpoint general, define un proveedor personalizado con la anulación de la URL base.
Relacionado
- Configuración: agentes
- Configuración: canales
- Referencia de configuración — otras claves de nivel superior
- Herramientas y plugins