Configuración: herramientas y proveedores personalizados
Claves de configuración de tools.* y configuración de proveedor personalizado / URL base. Para agentes, canales y otras claves de configuración de nivel superior, consulte Referencia de configuración.
Herramientas
Sección titulada «Herramientas»Perfiles de herramientas
Sección titulada «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 restricción (igual que sin configurar) |
Grupos de herramientas
Sección titulada «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 los complementos de proveedores) |
tools.allow / tools.deny
Sección titulada «tools.allow / tools.deny»Política global de permiso/denegación de herramientas (prevalece la denegación). 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 identificadores de herramientas separados. allow: ["write"] también habilita apply_patch para modelos compatibles, pero deny: ["write"] no deniega apply_patch. Para bloquear todas las mutaciones de archivos, deniegue group:fs o enumere cada herramienta de mutación explícitamente:
{ tools: { deny: ["write", "edit", "apply_patch"] },}tools.byProvider
Sección titulada «tools.byProvider»Restringir aún más las herramientas para proveedores o modelos específicos. Orden: perfil base → perfil del proveedor → permitir/denegar.
{ tools: { profile: "coding", byProvider: { "google-antigravity": { profile: "minimal" }, "openai/gpt-5.4": { allow: ["group:fs", "sessions_list"] }, }, },}tools.toolsBySender
Sección titulada «tools.toolsBySender»Restringe las herramientas para una identidad de solicitante específica. Esto es una defensa en profundidad además del control de acceso del canal; los valores del remitente deben provenir del adaptador del canal, no del texto del mensaje.
{ tools: { toolsBySender: { "channel:discord:1234567890123": { alsoAllow: ["group:fs"] }, "id:guest-user-id": { deny: ["group:runtime", "group:fs"] }, "*": { deny: ["exec", "process", "write", "edit", "apply_patch"] }, }, },}Las claves usan prefijos explícitos: channel:<channelId>:<senderId>, id:<senderId>, e164:<phone>, username:<handle>, name:<displayName> o "*". Los IDs de canal son IDs canónicos de OpenClaw; los alias como teams se normalizan a msteams. Las claves heredadas sin prefijo solo se aceptan como id:. El orden de coincidencia es canal+id, id, e164, nombre de usuario, nombre y luego comodín.
agents.list[].tools.toolsBySender por agente anula la coincidencia global del remitente cuando coincide, incluso con una política {} vacía.
tools.elevated
Sección titulada «tools.elevated»Controla el acceso elevado de ejecución 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 aún más. /elevated on|off|ask|fullalmacena el estado por sesión; las directivas en línea se aplican a un solo mensaje.execelevado omite el sandboxing y usa la ruta de escape configurada (gatewayde forma predeterminada, onodecuando el objetivo de ejecución esnode).
tools.exec
Sección titulada «tools.exec»{ tools: { exec: { backgroundMs: 10000, timeoutSec: 1800, cleanupMs: 1800000, notifyOnExit: true, notifyOnExitEmptySuccess: false, commandHighlighting: false, applyPatch: { enabled: false, allowModels: ["gpt-5.5"], }, }, },}tools.loopDetection
Sección titulada «tools.loopDetection»Las comprobaciones de seguridad del bucle de herramientas están desactivadas de forma predeterminada. Establezca enabled: true para activar la detección. La configuración se puede definir 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, }, }, },}tools.web
Sección titulada «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
Sección titulada «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 omitida):
provider: id del proveedor de API (openai,anthropic,google/gemini,groq, etc.)model: anulación del id del modeloprofile/preferredProfile: selección de perfilauth-profiles.json
Entrada de CLI (type: "cli"):
command: ejecutable a ejecutarargs: argumentos con plantilla (soporta{{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+vídeo,groq→ audio.prompt,maxChars,maxBytes,timeoutSeconds,language: anulaciones por entrada.tools.media.image.timeoutSecondsy las entradas coincidentes del modelo de imagentimeoutSecondstambié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 → vars de entorno → models.providers.*.apiKey.
Campos de finalización asíncrona:
asyncCompletion.directSend: indicador de compatibilidad obsoleto. Las tareas de medios asíncronos completas permanecen mediadas por la sesión del solicitante para que el agente reciba el resultado, decida cómo informar al usuario y use la herramienta de mensaje cuando la entrega de la fuente lo requiera.
tools.agentToAgent
Sección titulada «tools.agentToAgent»{ tools: { agentToAgent: { enabled: false, allow: ["home", "work"], }, },}tools.sessions
Sección titulada «tools.sessions»Controla qué sesiones pueden ser objetivo de las herramientas de sesión (sessions_list, sessions_history, sessions_send).
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 bajo el mismo id de agente).all: cualquier sesión. La orientación entre agentes aún requieretools.agentToAgent.- Restricción de sandbox: cuando la sesión actual está en sandbox y
agents.defaults.sandbox.sessionToolsVisibility="spawned", la visibilidad se fuerza atreeincluso sitools.sessions.visibility="all".
tools.sessions_spawn
Sección titulada «tools.sessions_spawn»Controla la compatibilidad de archivos 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 archivos adjuntos solo son compatibles con
runtime: "subagent". El tiempo de ejecución de ACP los rechaza. - Los archivos se materializan en el espacio de trabajo secundario en `.openclaw/attachments/
/con un.manifest.json. - El contenido de los adjuntos se redacta automáticamente de la persistencia de la transcripción. - Las entradas Base64 se validan con verificaciones 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íticacleanup: deletesiempre elimina los adjuntos;keeplos retiene solo cuandoretainOnSessionKeep: true`.
tools.experimental
Sección titulada «tools.experimental»Marcadores de herramientas integradas experimentales. Desactivado por defecto a menos que se aplique una regla de habilitación automática estrictamente agente de GPT-5.
{ tools: { experimental: { planTool: true, // enable experimental update_plan }, },}planTool: habilita la herramienta estructuradaupdate_planpara el seguimiento de trabajo multipaso no trivial.- Predeterminado:
falsea menos queagents.defaults.embeddedPi.executionContract(o una invalidación por agente) esté establecido en"strict-agentic"para una ejecución de la familia GPT-5 de OpenAI u OpenAI Codex. Establezcatruepara forzar la herramienta fuera de ese ámbito, ofalsepara mantenerla desactivada incluso para ejecuciones GPT-5 estrictamente de agente. - Cuando está habilitado, el prompt del sistema también agrega orientación de uso para que el modelo solo lo use para trabajos sustanciales y mantenga como máximo un paso
in_progress.
agents.defaults.subagents
Sección titulada «agents.defaults.subagents»{ agents: { defaults: { subagents: { allowAgents: ["research"], model: "minimax/MiniMax-M2.7", maxConcurrent: 8, runTimeoutSeconds: 900, announceTimeoutMs: 120000, archiveAfterMinutes: 60, }, }, },}model: modelo predeterminado para sub-agentes generados. Si se omite, los sub-agentes heredan el modelo de quien realiza la llamada.allowAgents: lista blanca predeterminada de ids de agentes de destino parasessions_spawncuando el agente solicitante no establece su propiosubagents.allowAgents(["*"]= cualquier destino configurado; predeterminado: solo el mismo agente).runTimeoutSeconds: tiempo de espera predeterminado (segundos) parasessions_spawncuando la llamada a la herramienta omiterunTimeoutSeconds.0significa sin tiempo de espera.announceTimeoutMs: tiempo de espera por llamada (milisegundos) para los intentos de entrega de anunciosagentde la puerta de enlace. Predeterminado:120000. Los reintentos transitorios pueden hacer que la espera total del anuncio sea mayor que un tiempo de espera configurado.- Política de herramientas por sub-agente:
tools.subagents.tools.allow/tools.subagents.tools.deny.
Proveedores personalizados y URL base
Sección titulada «Proveedores personalizados y URL base»OpenClaw usa el catálogo de modelos integrado. Agregue proveedores personalizados mediante models.providers en la configuración o ~/.openclaw/agents/<agentId>/agent/models.json.
Configurar un proveedor personalizado/local baseUrl también es la decisión de confianza de red restringida para las solicitudes HTTP del modelo: OpenClaw permite el origen scheme://host:port exacto a través de la ruta de recuperación protegida, sin agregar una opción de configuración separada ni confiar en otros orígenes privados.
{ 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, }, ], }, }, },}Auth y precedencia de fusión
- Use
authHeader: true+headerspara necesidades de autenticación personalizadas. - Anule 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 ID de proveedor coincidentes:
- Los valores no vacíos del agente
models.jsonbaseUrltienen prioridad. - Los valores no vacíos del agente
apiKeytienen prioridad solo cuando ese proveedor no es gestionado por SecretRef en el contexto de configuración/perfil de autenticación actual. - Los valores de proveedor gestionados por SecretRef
apiKeyse actualizan desde los marcadores de origen (ENV_VAR_NAMEpara referencias de entorno,secretref-managedpara referencias de archivo/exec) en lugar de persistir los secretos resueltos. - Los valores de encabezado del proveedor gestionados por SecretRef se actualizan desde los marcadores de origen (
secretref-env:ENV_VAR_NAMEpara referencias de entorno,secretref-managedpara referencias de archivo/exec). - Valores
apiKey/baseUrldel agente vacíos o faltantes recurren amodels.providersen la configuración. - El modelo coincidente
contextWindow/maxTokensusa el valor más alto entre la configuración explícita y los valores implícitos del catálogo. - El modelo coincidente
contextTokensconserva un límite de tiempo de ejecución explícito cuando está presente; úselo para limitar el contexto efectivo sin cambiar los metadatos nativos del modelo. - Use
models.mode: "replace"cuando desee que la configuración reescriba completamentemodels.json. - La persistencia del marcador es autoritativa en la fuente: los marcadores se escriben desde la instantánea de configuración de fuente activa (pre-resolución), no desde los valores secretos de tiempo de ejecución resueltos.
- Los valores no vacíos del agente
Detalles de los campos del proveedor
Sección titulada «Detalles de los campos del proveedor»Catálogo de nivel superior
models.mode: comportamiento del catálogo de proveedores (mergeoreplace).models.providers: mapa de proveedores personalizados claveado por id de proveedor.- Ediciones seguras: use `openclaw config set models.providers.
’
’ —strict-json —mergeoopenclaw config set models.providers.
.models ’
’ —strict-json —mergepara actualizaciones aditivas.config setrechaza reemplazos destructivos a menos que pase—replace`.
Conexión y autenticación del proveedor
models.providers.*.api: adaptador de solicitud (openai-completions,openai-responses,anthropic-messages,google-generative-ai, etc.). Para backends/v1/chat/completionsautohospedados como MLX, vLLM, SGLang y la mayoría de los servidores locales compatibles con OpenAI, useopenai-completions. Un proveedor personalizado conbaseUrlpero sinapitoma como valor predeterminadoopenai-completions; configureopenai-responsessolo cuando el backend sea compatible con/v1/responses.models.providers.*.apiKey: credencial del proveedor (se prefiere la sustitución de SecretRef/entorno).models.providers.*.auth: estrategia de autenticación (api-key,token,oauth,aws-sdk).models.providers.*.contextWindow: ventana de contexto nativa predeterminada para los modelos de este proveedor cuando la entrada del modelo no establececontextWindow.models.providers.*.contextTokens: límite efectivo de contexto en tiempo de ejecución predeterminado para los modelos de este proveedor cuando la entrada del modelo no establececontextTokens.models.providers.*.maxTokens: límite predeterminado de tokens de salida para los modelos de este proveedor cuando la entrada del modelo no establecemaxTokens.models.providers.*.timeoutSeconds: tiempo de espera opcional por proveedor para las solicitudes HTTP del modelo en segundos, incluida la gestión de conexión, encabezados, cuerpo y la cancelación total de la solicitud.models.providers.*.injectNumCtxForOpenAICompat: para Ollama +openai-completions, inyecteoptions.num_ctxen las solicitudes (predeterminado:true).models.providers.*.authHeader: fuerce el transporte de credenciales en el encabezadoAuthorizationcuando sea necesario.models.providers.*.baseUrl: URL base de la API ascendente.models.providers.*.headers: encabezados estáticos adicionales para el enrutamiento de proxy/inquilino.
Sobrescrituras del transporte de solicitudes
models.providers.*.request: sobrescrituras del transporte para las solicitudes HTTP del proveedor de modelos.
request.headers: cabeceras adicionales (fusionadas con los valores predeterminados del proveedor). Los valores aceptan SecretRef.request.auth: sobrescritura de la estrategia de autenticación. Modos:"provider-default"(usar la autenticación integrada del proveedor),"authorization-bearer"(contoken),"header"(conheaderName,value,prefixopcional).request.proxy: sobrescritura del proxy HTTP. Modos:"env-proxy"(usar variables de entornoHTTP_PROXY/HTTPS_PROXY),"explicit-proxy"(conurl). Ambos modos aceptan un subobjetotlsopcional.request.tls: sobrescritura TLS para conexiones directas. Campos:ca,cert,key,passphrase(todos aceptan SecretRef),serverName,insecureSkipVerify.request.allowPrivateNetwork: cuando estrue, permite solicitudes HTTP del proveedor de modelos a rangos privados, CGNAT o similares a través del guarda de obtención (fetch) HTTP del proveedor. Las URL base de proveedores personalizados locales ya confían en el origen configurado exacto, excepto los orígenes de metadatos/enlace local, que permanecen bloqueados sin participación explícita. Establézcalo enfalsepara optar por no confiar en el origen exacto. WebSocket utiliza el mismorequestpara cabeceras/TLS pero no esa puerta SSRF de obtención. Valor predeterminadofalse.
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. Use["text"]para modelos de solo texto y["text", "image"]para modelos de imagen/visión nativos. Los adjuntos de imagen solo se inyectan en los turnos del agente cuando el modelo seleccionado está marcado como capaz de procesar imágenes.models.providers.*.models.*.contextWindow: metadatos de la ventana de contexto del modelo nativo. Esto anula elcontextWindowa nivel de proveedor para ese modelo.models.providers.*.models.*.contextTokens: límite de contexto opcional en tiempo de ejecución. Esto anula elcontextTokensa nivel de proveedor; úselo cuando desee un presupuesto de contexto efectivo menor que lacontextWindownativa del modelo;openclaw models listmuestra ambos valores cuando difieren.models.providers.*.models.*.compat.supportsDeveloperRole: sugerencia de compatibilidad opcional. Paraapi: "openai-completions"con unabaseUrlno nativa no vacía (host que no seaapi.openai.com), OpenClaw fuerza esto afalseen tiempo de ejecución. UnabaseUrlvacía u omitida mantiene el comportamiento predeterminado de OpenAI.models.providers.*.models.*.compat.requiresStringContent: sugerencia de compatibilidad opcional para endpoints de chat compatibles con OpenAI que solo admiten cadenas. Cuando estrue, OpenClaw convierte las matricesmessages[].contentde texto puro en cadenas simples antes de enviar la solicitud.models.providers.*.models.*.compat.strictMessageKeys: sugerencia de compatibilidad opcional para endpoints de chat estrictamente compatibles con OpenAI. Cuando estrue, OpenClaw reduce los objetos de mensaje de Chat Completions salientes aroleycontentantes de enviar la solicitud.models.providers.*.models.*.compat.thinkingFormat: sugerencia opcional de carga de pensamiento. Use"together"parareasoning.enabledestilo Together,"qwen"paraenable_thinkingde nivel superior, o"qwen-chat-template"parachat_template_kwargs.enable_thinkingen servidores compatibles con OpenAI de la familia Qwen que admiten kwargs de plantilla de chat a nivel de solicitud, como vLLM.
Descubrimiento de Amazon Bedrock
plugins.entries.amazon-bedrock.config.discovery: raíz de configuración de auto-descubrimiento de Bedrock.plugins.entries.amazon-bedrock.config.discovery.enabled: activar/desactivar 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 la actualización del descubrimiento.plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow: ventana de contexto alternativa para modelos descubiertos.plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens: tokens máximos de salida alternativos para modelos descubiertos.
La incorporación interactiva de proveedores personalizados infiere la entrada de imagen para ID 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 de solo texto conocidas. Los ID de modelos desconocidos aún solicitan compatibilidad con imágenes. La incorporación no interactiva utiliza la misma inferencia; pase --custom-image-input para forzar metadatos con capacidad de imagen o --custom-text-input para forzar metadatos de solo texto.
Ejemplos de proveedores
Sección titulada «Ejemplos de proveedores»Cerebras (GLM 4.7 / GPT OSS)
El plugin del proveedor incluido cerebras puede configurar esto a través de openclaw onboard --auth-choice cerebras-api-key. Use la configuración explícita del proveedor solo al anular 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)" }, ], }, }, },}Use 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-for-coding" }, models: { "kimi/kimi-for-coding": { alias: "Kimi Code" } }, }, },}Proveedor integrado compatible con Anthropic. Atajo: openclaw onboard --auth-choice kimi-code-api-key.
Modelos locales (LM Studio)
Consulte Modelos locales. TL;DR: ejecute un modelo local grande a través de la API de Respuestas de LM Studio en hardware potente; mantenga los modelos alojados fusionados para la 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, }, ], }, }, },}Configure MINIMAX_API_KEY. Atajos: openclaw onboard --auth-choice minimax-global-api o openclaw onboard --auth-choice minimax-cn-api. El catálogo de modelos por defecto es solo M2.7. En la ruta de transmisión compatible con Anthropic, OpenClaw deshabilita el pensamiento de MiniMax por defecto a menos que establezca explícitamente thinking usted mismo. /fast on o params.fastMode: true reescribe MiniMax-M2.7 a 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 transmisión en el transporte compartido openai-completions, y las claves de OpenClaw se basan en las capacidades del endpoint en lugar de solo el ID del proveedor integrado.
OpenCode
{ agents: { defaults: { model: { primary: "opencode/claude-opus-4-6" }, models: { "opencode/claude-opus-4-6": { alias: "Opus" } }, }, },}Configure OPENCODE_API_KEY (o OPENCODE_ZEN_API_KEY). Use referencias opencode/... para el catálogo Zen o referencias opencode-go/... para el catálogo Go. Atajo: openclaw onboard --auth-choice opencode-zen o 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": {} }, }, },}Establezca ZAI_API_KEY. z.ai/* y z-ai/* son alias aceptados. Atajo: openclaw onboard --auth-choice zai-api-key.
- Punto de conexión general:
https://api.z.ai/api/paas/v4 - Punto de conexión de codificación (predeterminado):
https://api.z.ai/api/coding/paas/v4 - Para el punto de conexión general, defina un proveedor personalizado con la invalidación de la URL base.
Relacionado
Sección titulada «Relacionado»- Configuración — agentes
- Configuración — canales
- Referencia de configuración — otras claves de nivel superior
- Herramientas y complementos