Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Catálogo de proveedores

Cada familia de proveedores de modelos que se incluye con ZeroClaw. Para cada una: estructura de configuración, notas sobre autenticación y comportamiento de los endpoints, y la clave de slot que se debe usar en [providers.models.<type>.<alias>].

Consulta Configuration para los campos universales (api_key, uri, model, …) y el orden de resolución.

Los ejemplos a continuación usan home como el alias para subrayar que la mitad del alias la elige el operador; elige el nombre que mejor se ajuste (work, personal, cn, prod, …). Haz referencia a él desde un agente mediante model_provider = "<type>.<alias>".


Nativo

Anthropic / Claude: slot anthropic

Admite claves de API de Console y tokens generados por claude setup-token para Claude Max. Ambas formas de credenciales viven en el campo api_key del slot canónico anthropic; Quickstart las expone como opciones api_key y setup_token. Streaming, llamadas a herramientas, visión y razonamiento, todo compatible. Los endpoints personalizados (proxies compatibles con Anthropic, p. ej. la API de Anthropic de Z.AI) también van en este slot: establece uri para sobrescribir.

OpenAI: slot openai

GPT-4o, GPT-5, modelos de razonamiento de la serie o. Cuando el razonamiento se transmite en streaming, se transporta en el campo opcional reasoning de un StreamChunk envuelto por TextDelta; consulte Streaming.

OpenAI Codex: slot openai con requires_openai_auth = true

La autenticación de la suscripción de OpenAI Codex reside en el slot openai. Establece wire_api = "responses" para enrutar a través de POST /v1/responses y requires_openai_auth = true para usar el inicio de sesión de la suscripción de Codex (desde el propio ~/.codex/auth.json del Codex CLI) en lugar de un campo api_key en la entrada. La ruta de suscripción no lee OPENAI_API_KEY; esa variable aplica únicamente al modo de clave API openai medido por uso. Consulta Provider Configuration → OAuth and subscription auth para conocer el modelo de credenciales.

Ollama: slot ollama

Inferencia local mediante el /api/chat nativo de Ollama. Salida estructurada basada en esquemas mediante format. Sin clave de API.

Bedrock: ranura bedrock

Gemini: ranura gemini

La API de Gemini de Google. Admite visión y búsqueda fundamentada preejecutada (consulta Streaming para eventos PreExecutedToolCall).

Gemini CLI: slot gemini_cli

Ejecuta el CLI gemini; usa la autenticación existente del CLI.

Grok Build CLI: ranura grok_cli

Ejecuta el Grok Build CLI mediante la superficie ACP documentada grok agent stdio y usa la caché de inicio de sesión del CLI de forma predeterminada. Ejecuta grok login o usa el puente explícito de clave de API que se muestra a continuación. No se usa el alias tipado api_key, y XAI_API_KEY del entorno no se hereda a menos que el alias opte por ello, por lo que Grok CLI sigue siendo el responsable de la autenticación. Este es el único transporte: initialize → authenticate → session/new → session/prompt mediante JSON-RPC delimitado por saltos de línea. Tanto las solicitudes pequeñas como las grandes se envían por stdin y nunca aparecen en argv ni en un archivo de solicitudes.

La integración de ACP documentada y el perfil de argumentos predeterminado se validan con Grok Build CLI 0.2.118 (sondeos de anuncio/en vivo de ACP), con 0.2.111 como línea base anterior. Trata las actualizaciones de la CLI externa como un cambio de compatibilidad y vuelve a validar grok agent stdio antes de implementarlas.

Entrada de visión / imágenes de ACP (comportamiento actual de Grok Build)

Grok Build CLI (comprobado hasta 0.2.118) sigue anunciando promptCapabilities.image = false durante initialize de ACP. Eso no es una anulación mediante una variable de entorno por ninguna de las dos partes: ZeroClaw nunca reescribe el anuncio de Grok. El único control de ZeroClaw es el campo de configuración vision, compartido por alias.

CapaComportamiento en 0.2.118
Anunciar ACPpromptCapabilities.image = false
Predeterminado grok_clivision no establecido → ZeroClaw trata el alias como no compatible con visión; los marcadores de imagen permanecen como texto
vision = trueZeroClaw indica compatibilidad con visión en el alias y envía bloques ACP {type: image, data, mimeType} (no cambia el anuncio de capacidades de Grok)
Reconocimiento de modelosSondeo en vivo: los bloques de imagen se aceptan mediante session/prompt (sin error de protocolo), pero el agente respondió como si no se hubiera recibido ninguna imagen
[providers.models.grok_cli.default]
model = "grok-4.5"
working_directory = "/srv/zeroclaw/grok-workspace"
# Solo experimento opcional: envía bloques de imagen ACP a pesar de anunciar image=false.
# No hace que Grok Build 0.2.118 vea o describa la imagen de forma fiable.
# vision = true

Deja vision sin establecer para los alias de producción de grok_cli. No enrutes los adjuntos de canal que requieran una comprensión real de imágenes a grok_cli hasta que una CLI desplegada anuncie image = true y una prueba de humo en vivo muestre que el modelo usa el contenido de la imagen. Cuando eso se cumpla, elimina cualquier activación temporal de vision = true y vuelve a evaluar si ZeroClaw debería seguir el indicador anunciado en lugar de una anulación local (GrokCliModelProvider::acp_prompt_content).

Ubuntu 24.04: mantener el entorno aislado de Grok cuando bwrap necesita espacios de nombres de usuario

Al implementar Grok Build 0.2.112 o una versión posterior, compruebe la inicialización de ACP en el host de destino. En hosts Ubuntu 24.04 con kernel.apparmor_restrict_unprivileged_userns=1, Grok puede terminar antes de la inicialización de ACP con bwrap: setting up uid map: Permission denied. Esto es un error de configuración del sandbox del host, no un error de ACP, stdout ni autenticación.

Mantén --sandbox strict como valor predeterminado de ZeroClaw (o un perfil workspace explícito) y concede únicamente al ejecutable real de Grok permiso para crear un espacio de nombres de usuario. Este cambio debe realizarlo el administrador del host; conserva la restricción global de los espacios de nombres de usuario y no desactiva el entorno aislado de Grok.

readlink -f "$(command -v grok)"

Cree /etc/apparmor.d/grok-build-userns, reemplazando el marcador de posición por esa ruta absoluta:

abi <abi/4.0>,

include <tunables/global>

profile grok-build-userns /absolute/path/to/grok flags=(unconfined) {
  userns,
}

Luego, cárguelo y verifique que el perfil esté activo:

sudo apparmor_parser -r /etc/apparmor.d/grok-build-userns
sudo aa-status | grep grok-build-userns

flags=(unconfined) es el mecanismo de excepciones de AppArmor por ejecutable de Ubuntu: concede userns al binario de Grok indicado, pero no le añade reglas de archivos de AppArmor. El sandbox solicitado por el propio Grok sigue habilitado, y la restricción de espacios de nombres de usuario para todo el host también sigue habilitada. Usa un perfil específico de la organización completamente confinado si Grok también necesita restricciones de archivos de AppArmor. Dado que las actualizaciones automáticas pueden cambiar la ruta del ejecutable descargado, resuelve la ruta y vuelve a cargar este perfil después de cada actualización de Grok.

No uses --sandbox off simplemente para evitar este error: desactiva el entorno aislado de Grok. No desactives kernel.apparmor_restrict_unprivileged_userns en todo el sistema. xAI documenta Landlock para el aislamiento normal de Linux y documenta bubblewrap solo para perfiles personalizados de denegación de lectura; si esto ocurre sin una lista deny personalizada y no vacía, informa a xAI de la versión, el error exacto, el perfil del entorno aislado y los diagnósticos no confidenciales del host/AppArmor.

max_acp_stdout_bytes limita toda la salida estándar leída del proceso secundario de Grok ACP durante una solicitud, incluidos los marcos del protocolo y las actualizaciones de herramientas nativas. Su valor predeterminado es de 4 MiB; establécelo por alias cuando una carga de trabajo revisada y habilitada para herramientas necesite un presupuesto acotado mayor.

[providers.models.grok_cli.default]
model = "grok-4.5"
working_directory = "/srv/zeroclaw/grok-workspace"
env_passthrough = ["XAI_API_KEY"]
# Opcional: 4 MiB de forma predeterminada; el rango aceptado es de 1-64 MiB.
max_acp_stdout_bytes = 8388608

Exporte XAI_API_KEY al entorno del demonio antes de iniciar ZeroClaw. El cliente ACP selecciona xai.api_key solo cuando ese nombre aparece en la lista de env_passthrough y hay un valor no vacío en el entorno del proceso en el momento de crear el proceso hijo (no se captura en el manejador del proveedor de larga duración). De lo contrario, recurre a la caché de inicio de sesión de la CLI. El alias tipado api_key sigue rechazándose: se trata de un puente intencional entre el entorno del proceso y no de un segundo campo de secreto de Config. Los valores no se escriben en TOML del proveedor; un futuro puente tipado de Config podría cargar el mismo nombre en el momento de la configuración sin cambiar la interfaz del operador.

Se requiere un working_directory absoluto existente. Se convierte a una forma canónica y se utiliza tanto para el directorio de trabajo del proceso secundario como para el límite de la sesión de ACP, por lo que el proveedor nunca recurre al directorio de trabajo del demonio. El binary_path opcional selecciona un binario que no está en PATH. El alias timeout_secs establece el límite para las lecturas y escrituras del protocolo (600 s de forma predeterminada).

El entorno hijo se vacía antes de la creación. Las variables de tiempo de ejecución del proceso, de configuración regional, de proxy y de CA incluidas en la lista de permitidas integrada siguen disponibles; todos los demás nombres se bloquean, a menos que el alias de ese proveedor los incluya en env_passthrough. Este campo se utiliza para el puente de autenticación explícito de XAI_API_KEY y para las variables de entorno necesarias para las herramientas de Grok habilitadas explícitamente, como las credenciales de CLI en la nube. Los valores se leen del entorno de proceso de ZeroClaw en el momento de la creación y no se almacenan en la configuración del proveedor. La lista predeterminada está vacía. Manténgala limitada, porque cada secreto incluido queda expuesto a Grok y a cualquier herramienta habilitada para ese alias. Se rechazan otros nombres XAI_* pertenecientes al proveedor y todos los nombres GROK_*. La configuración de usuario y de proyecto descubierta por Grok, junto con extra_args del alias, controla la política de herramientas de Grok.

El argv predeterminado añade --no-auto-update, --no-plan, --sandbox strict, --permission-mode dontAsk y --tools "". De forma predeterminada, el cliente ACP rechaza las solicitudes de permisos. Cuando la solicitud proporciona una opción reject_once, el cliente la selecciona en lugar de cancelar el turno completo del agente; de lo contrario, cancela la solicitud. La herramienta solicitada sigue rechazándose por defecto, mientras que Grok puede procesar el rechazo y producir una respuesta final o reintentar con una operación permitida por su política.

Un alias configurado explícitamente con --always-approve, --dangerously-skip-permissions, --yolo o --permission-mode=bypassPermissions cambia la política de respuesta de ACP en modo sin interfaz: el cliente selecciona la opción allow_once de la solicitud. Nunca sustituye allow_always y cancela la operación cuando falta la opción allow_once solicitada. Esta aprobación solo se aplica a la solicitud de permisos actual; las reglas de permisos de Grok y el sandbox activo del sistema operativo aún pueden rechazar o restringir la operación.

[providers.models.grok_cli.ops]
working_directory = "/path/to/agents/ops/workspace"
extra_args = [
  "--tools=run_terminal_cmd",
  "--permission-mode=bypassPermissions",
]

Trata estas banderas de omisión como una autorización para que Grok ejecute todas las herramientas compatibles con solicitudes de ese alias sin una ronda de aprobación humana. Otros modos de permisos, incluido acceptEdits, no habilitan la aprobación automática de ACP. Grok evalúa las reglas de CLI --allow / --deny y la configuración de permisos de usuario/proyecto detectada antes de preguntar al cliente de ACP. Esas superficies son políticas de operador de confianza: una regla de autorización coincidente puede preautorizar una herramienta, de modo que el cliente de ACP nunca vea una solicitud de permisos, y los servidores MCP, complementos o hooks del proyecto pueden añadir capacidades. Usa un working_directory dedicado y revisado para los agentes de canal.

Cuando una regla allow no autoriza previamente la herramienta, Grok sigue enviando session/request_permission y la política predeterminada de rechazo único de ZeroClaw hace que la herramienta falle en modo cerrado. En la práctica, esto importa para las herramientas de shell/execute con el --sandbox strict predeterminado: una regla de CLI --allow=Bash(...) aún puede escalar al host de ACP en la versión actual de Grok Build, por lo que un alias de shell con herramientas habilitadas debería establecer un indicador explícito de bypass (--always-approve / --permission-mode=bypassPermissions) o combinar las reglas allow con un perfil de sandbox que Grok autorice previamente sin aprobación del host (por ejemplo, --sandbox=workspace). Las concesiones de herramientas de solo lectura, como --tools=Read,Grep con un --allow correspondiente, siguen siendo la opción de activación explícita más limitada.

Los operadores también pueden conceder acceso a herramientas o relajar la política de sandbox/permisos con el alias extra_args; ambas interfaces son habilitaciones explícitas para ampliar el límite de los subprocesos. Las opciones de transporte, prompt, modelo, sesión, cwd y actualización siguen siendo propiedad del proveedor y se rechazan en extra_args. Los argumentos posicionales y cortos también se rechazan. Las opciones conocidas que aceptan valores admiten ["--flag", "value"] o --flag=value; las formas de opción desconocidas requieren el formato en línea para que no puedan consumir el comando ACP final.

Grok puede emitir progreso como un agent_message_chunk antes de un plan, una llamada a una herramienta o una solicitud de permiso. El proveedor descarta el segmento de mensaje anterior en esos límites de ACP y devuelve solo el segmento de respuesta más reciente, por lo que la narración de planificación o recopilación de herramientas no se entrega como respuesta del canal. El --no-plan explícito también mantiene el alias de canal de una sola ejecución predeterminado fuera del modo de planificación de Grok; la configuración de herramientas/MCP sigue siendo una capacidad controlada por el operador.

Las tramas de stdout de ACP, el stdout agregado, el texto del asistente y el procesamiento de stderr tienen límites mientras el proceso hijo está en ejecución. Se drena stderr, pero su contenido nunca se almacena, registra ni devuelve. Los errores públicos del proveedor se mantienen estables y no incluyen texto libre del protocolo controlado por el proceso hijo. Después de cada solicitud de una sola ejecución (éxito, tiempo de espera agotado, cancelación o error de protocolo), ZeroClaw termina el grupo de procesos del hijo en Unix o el Job Object en Windows y recoge el proceso hijo directo. Esto cubre a los descendientes habituales; un proceso que crea una nueva sesión o un nuevo grupo de procesos puede escapar a la terminación del grupo en Unix. La cobertura de Job Object en Windows se verifica mediante compilación en CI y no se ejecuta por completo en todos los hosts Linux de desarrollo.

Patrón recomendado: chatbot del canal predeterminado

Usa un alias de proveedor dedicado para el agente de mensajería (por ejemplo, agents.default). El alias predeterminado no concede herramientas integradas de Grok. Grok sigue cargando su configuración normal de usuario y proyecto, por lo que debes usar un espacio de trabajo dedicado cuyas reglas de permisos, servidores MCP, plugins y hooks se hayan revisado para el límite de confianza del canal. Usa un alias y un espacio de trabajo independientes para un agente de programación/operaciones aprobado por el operador.

Comprobación previa de la intención de respuesta (clasificador): ZeroClaw ejecuta una breve clasificación de REPLY / NO_REPLY[*] antes del ciclo completo del agente. Prefiere una API estable de completado de chat para esa comprobación previa (por ejemplo, el slot xai de HTTP/OAuth, o cualquier otro alias de modelo que no sea CLI), y reserva grok_cli únicamente para model_provider (la respuesta completa). Los backends de agentes CLI suelen emitir prosa de planificación en lugar de un único token centinela; esa prosa puede entregarse como mensaje del canal (“guardando silencio” / “sin respuesta en Slack”). Un classifier_provider vacío reutiliza model_provider: está bien para modelos de API, pero no para bots de canal CLI. Los canales ACP omiten por completo el clasificador.

# Respuestas completas: ACP, sandbox estricto, sin herramientas integradas, configuración de Grok revisada
[providers.models.grok_cli.default]
model = "grok-4.5"
binary_path = "/home/you/.grok/bin/grok"
working_directory = "/path/to/agents/default/workspace"

# Comprobación previa REPLY / NO_REPLY - API (formato estable). Reutiliza un alias HTTP
# xAI existente si ya tienes uno; no apuntes esto a grok_cli.
[providers.models.xai.default]
model = "grok-4.5"
# uri / auth como para el proveedor xAI normal (sesión de OAuth o api_key)

# Agentes de Ops / programación: política explícita y activación voluntaria de herramientas
[providers.models.grok_cli.ops]
model = "grok-4.5"
binary_path = "/home/you/.grok/bin/grok"
working_directory = "/path/to/agents/ops/workspace"
env_passthrough = ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY"]
# Herramientas de solo lectura: una coincidencia con --allow puede autorizar previamente sin la aprobación de ACP.
extra_args = ["--tools=Read,Grep", "--allow=Read", "--allow=Grep"]

# Alias ops con capacidad de Shell: puedes omitir la aprobación de ACP o combinar allow con un
# perfil de sandbox que Grok autoriza previamente (workspace es la opción habitual).
[providers.models.grok_cli.ops_shell]
model = "grok-4.5"
binary_path = "/home/you/.grok/bin/grok"
working_directory = "/path/to/agents/ops/workspace"
extra_args = [
  "--tools=run_terminal_cmd",
  "--allow=Bash(printf *)",
  "--sandbox=workspace",
]

[agents.default]
model_provider = "grok_cli.default"
classifier_provider = "xai.default"
channels = ["slack.default"]   # ejemplo

[agents.dependabot]
model_provider = "grok_cli.ops"
CapaDóndePropósito
Comprobación previa de respuestaclassifier_provider → alias de API (p. ej., xai.default)Solo REPLY / NO_REPLY[*]; evita que la CLI considere el texto de razonamiento como el cuerpo del mensaje
Respuesta completamodel_providergrok_cli.defaultGrok Build ACP; solicitar solo mediante stdin
entorno aislado del sistema operativoPredeterminado --sandbox strict (o anulación de extra_args)Lee CWD y las rutas del sistema; escribe en CWD, ~/.grok y tmp; la red de los procesos secundarios está bloqueada en Linux. Las funciones integradas no son un límite permanente para las credenciales; usa deny personalizado para los secretos
Permisos de la aplicaciónConjunto de herramientas integradas vacío + ACP predeterminado con cierre ante fallosLos indicadores de omisión explícitos seleccionan allow_once; las reglas de Grok detectadas también pueden preautorizar las herramientas configuradas
Entrega de canalesZeroClaw thread_replies / configuración del canalRuta única de respuesta dentro del hilo
Puerta opcionalSlack mention_only + strict_mention_in_threadDescarta el tráfico de grupos/hilos no mencionados antes del agente (consulta Slack); independientemente del clasificador

Mantén los alias orientados al canal en sus valores predeterminados y asígnales espacios de trabajo dedicados y revisados. Las reglas de permisos, los servidores de MCP, los plugins y los hooks descubiertos por Grok, junto con las opciones de permisos, sandbox y herramientas de extra_args, constituyen una política del operador de confianza y pueden ampliar el límite del subproceso.

Zona de pruebas del SO de Grok CLI (cómo usarla desde ZeroClaw)

Este es el entorno aislado de procesos de Grok Build (Landlock / Seatbelt / seccomp en el subproceso grok). No es el entorno aislado de herramientas de ZeroClaw en [risk_profiles.*.sandbox_*]: ese entorno envuelve las herramientas de ZeroClaw después de las llamadas a herramientas nativas. Si un operador opta por usar un alias de proveedor con las herramientas de Grok, el --sandbox de Grok es el aislamiento efectivo para ese trabajo. Consulta también Aislamiento para obtener información sobre el entorno aislado basado en perfiles de riesgo de ZeroClaw.

ZeroClaw siempre proporciona una opción de sandbox explícita. El valor predeterminado es strict. Establece --sandbox=<profile> en extra_args del alias del proveedor para elegir un perfil diferente; la configuración ambiental de Grok o GROK_SANDBOX no puede relajar silenciosamente el valor predeterminado propio del proveedor.

El proyecto .grok/config.toml puede contener MCP / complementos / [permission]. Grok carga ese archivo como una política de operador de confianza; las reglas de autorización coincidentes pueden autorizar herramientas sin una solicitud de permisos de ACP. Por sí solo, no selecciona el perfil de sandbox activo. Los nombres de perfil y los cuerpos de perfil personalizados pueden residir en el proyecto <workspace>/.grok/sandbox.toml; pasa --sandbox=<name> mediante extra_args para activar ese perfil.

Perfiles integrados (de la documentación del entorno aislado de Grok):

PerfilLectura de FSEscritura en FSRed de procesos hijos (Linux)Uso típico
off (predeterminado)sin restriccionessin restriccionessin restriccionesAcceso total
workspaceen todas partesCWD + ~/.grok + tmppermitidoProgramación cotidiana
read-onlyen todas partes~/.grok + solo tmpbloqueadoRevisa cuándo se permiten las lecturas amplias
strictCWD + rutas del sistemaCWD + ~/.grok + tmpbloqueadoChatbot del canal predeterminado (recomendado)
devboxen todas partesla mayor parte del árbolpermitidoMáquinas virtuales desechables

El bloqueo de red de los procesos secundarios del shell solo se aplica en Linux; las herramientas de Grok en proceso (LLM, búsqueda web integrada) todavía necesitan acceso a la red. Se recomienda strict para los bots de mensajería, para limitar la superficie predeterminada de escritura en el sistema de archivos al espacio de trabajo del agente y las rutas de ejecución de Grok. Los perfiles integrados no constituyen un límite permanente para las credenciales: la documentación del sandbox de xAI advierte que las rutas como ~/.ssh no tienen garantizada la protección mediante los perfiles integrados, y recomienda un perfil personalizado con una lista de deny impuesta por el kernel para los secretos. Use read-only solo cuando el agente deba leer fuera del espacio de trabajo sin escribir archivos del proyecto.

Ejemplo de perfil personalizado (defínalo en el espacio de trabajo y selecciónelo desde ZeroClaw):

# <agent-workspace>/.grok/sandbox.toml
[profiles.channel-bot]
extends = "strict"
# Rutas de denegación opcionales del kernel (requiere bubblewrap en Linux cuando no está vacío):
# deny = ["**/.env", "**/*.pem"]
# ZeroClaw config.toml
[providers.models.grok_cli.default]
working_directory = "/path/to/agents/default/workspace"
extra_args = ["--sandbox=channel-bot"]

Entorno aislado por agente: usa alias de proveedor independientes con diferentes extra_args explícitos y directorios de trabajo dedicados. Mantén los alias de canal con el valor predeterminado estricto/sin herramientas integradas, revisa la configuración de Grok detectada para cada espacio de trabajo y asigna a cada agente el alias model_provider correspondiente.

Azure OpenAI: ranura azure

resource, deployment y api_version residen en esta configuración tipada; no se leen desde variables de entorno.

Copilot: ranura copilot

Utiliza una suscripción de GitHub Copilot para la inferencia del agente. La autenticación usa un token OAuth de Copilot obtenido de GitHub.

Telnyx: slot telnyx

Punto final de IA orientado a la voz. Se combina con el canal clawdtalk para llamadas SIP en tiempo real.

KiloCLI: slot kilocli

Inferencia local a través de KiloCLI.

Kilo AI Gateway: slot kilo

[providers.models.kilo.home]
model   = "anthropic/claude-sonnet-4-6"
api_key = "..."
# endpoint = "gateway"  # predeterminado → https://api.kilo.ai/api/gateway

API en la nube a través de Kilo AI Gateway. Autenticación con token Bearer y múltiples niveles de modelos (free, balanced, pro). El endpoint /models es público (PUBLIC_MODEL_LISTING), por lo que el listado de modelos funciona sin credencial. Como se consulta en vivo, es la fuente que aporta los precios al editor de tarifas de costos. El catálogo compartido de models.dev (clave kilo) es solo una alternativa de respaldo para cuando el endpoint en vivo no está disponible, y no incluye precios.

Migración de nombres: kilo ahora se refiere a este proveedor de gateway. El proveedor de subproceso KiloCLI conserva su espacio kilocli (sinónimo kilo-cli). Si anteriormente configuraste el proveedor de CLI con el atajo kilo, cambia a kilocli.

ZeroRouter: ranura zerorouter

[providers.models.zerorouter.gateway]
model   = "anthropic/claude-sonnet-5"
api_key = "..."   # una clave de ZeroRouter (prefijo `zcr_`); o inyectar desde el entorno
# uri = "http://localhost:8080/v1"  # un enrutador autohospedado o local; omitir para usar el valor predeterminado alojado

Puerta de enlace LLM compatible con OpenAI; autenticación mediante token Bearer. ZeroRouter se encuentra actualmente en fase beta. La ranura usa de forma predeterminada la implementación pública alojada en https://zerorouter.ai/v1, por lo que la detección de modelos funciona sin ninguna configuración. ZeroRouter también puede autoalojarse (AGPL); para acceder a tu propio router, de forma local en http://localhost:8080/v1 o en cualquier otro lugar, establece uri explícitamente. Una clave generada en un router no autentica en otro, por lo que api_key debe proceder de la implementación a la que apunta uri.

Más allá del protocolo chat-completions que admite este slot, ZeroRouter también sirve la API de Responses de OpenAI para solicitudes entrantes (POST /v1/responses), por lo que los clientes del protocolo Responses, como un model_provider de Codex CLI con wire_api = "responses", pueden apuntar directamente al mismo despliegue y clave.

El endpoint /v1/models es público (PUBLIC_MODEL_LISTING), por lo que el listado de modelos y sus precios de prompts/completions se obtienen en tiempo real del propio enrutador sin necesidad de una credencial; como se consulta en tiempo real, es la fuente que proporciona los precios al editor de tarifas de costes (esta familia no tiene ningún mecanismo de respaldo de models.dev ni de OpenRouter). La inferencia sí requiere una clave: establece api_key directamente o inyéctala desde el entorno del mismo modo que cualquier otra clave de proveedor (consulta Configuración para conocer el orden de resolución de api_key).

Sin inicio de sesión integrado. Este preajuste configura el proveedor únicamente a través de la ruta estándar y tipada de api_key; no añade un inicio de sesión mediante flujo de dispositivo, OAuth ni almacenamiento de credenciales específico del proveedor. Establece api_key (o su inyección mediante variables de entorno) para ejecutar inferencias.


Todas las ranuras

Cada ranura canónica, su endpoint predeterminado, si se ejecuta localmente y el conjunto completo de campos de configuración, generado a partir del registro de proveedores y del esquema de configuración. Haz clic en una ranura para expandir sus campos; haz clic en un campo para ver cómo configurarlo. Las entradas fijas muestran los valores predeterminados canónicos. operator required significa que el alias necesita datos del endpoint, como un recurso y una implementación de Azure o un custom uri. Los endpoints dynamic / resolved at runtime pueden depender de las credenciales, la región, el descubrimiento o el estado en tiempo de ejecución, y no requieren necesariamente uri. Los proveedores basados en CLI usan su comando local.

Campos compartidos

Cada slot de proveedor acepta estos campos. Los extras específicos de cada slot se enumeran por proveedor a continuación.

api_key 🔑 secret · default

Token API secreto para este model_provider. Obténgalo desde el panel de control del model_provider (plataforma de OpenAI, consola de Anthropic, página de claves de OpenRouter, etc.). Se almacena mediante el keyring del sistema operativo cuando es posible; nunca lo incluya directamente en config.toml.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/openrouter y configura el campo providers.models.openrouter.<alias>.api_key.

zerocode

En el panel Config, configure el campo providers.models.openrouter.<alias>.api_key.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.api_key    # entrada enmascarada, almacenada cifrada

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__api_key=
chat_template_kwargs table · default

Pares arbitrarios de clave/valor reenviados sin modificaciones como un objeto de nivel superior chat_template_kwargs en el cuerpo de la solicitud de proveedores compatibles con OpenAI. Los backends compatibles con plantillas de chat, como vLLM, SGLang y llama.cpp, lo utilizan para pasar variables de plantilla específicas de la familia del modelo que controlan comportamientos no expuestos por otros campos. Debe ser un objeto JSON (tabla insertada de TOML); los valores que no sean objetos se ignoran y se muestra una advertencia. Ejemplo (supresión del razonamiento de Qwen3): chat_template_kwargs = { enable_thinking = false }

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/openrouter y establece el campo providers.models.openrouter.<alias>.chat_template_kwargs.

zerocode

En el panel Config, configure el campo providers.models.openrouter.<alias>.chat_template_kwargs.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.chat_template_kwargs <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__chat_template_kwargs=
context_window integer? · default

Tamaño de la ventana de contexto (máximo de tokens de entrada) para este modelo. Se rellena automáticamente durante la configuración desde el endpoint /models del proveedor, si está disponible. Sobrescribe manualmente para endpoints personalizados o cuando la detección automática falla.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models.openrouter y establece el campo providers.models.openrouter.<alias>.context_window.

zerocode

En el panel de Config, establece el campo providers.models.openrouter.<alias>.context_window.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.context_window <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__context_window=
extra_headers 🔑 secret · default

Encabezados HTTP adicionales que se envían con cada solicitud. Caso de nicho: se usa para puentes de autenticación, proxies corporativos o gateways personalizados que exigen un encabezado de rastreo. La mayoría de los usuarios nunca lo modifican; edite config.toml directamente si lo necesita.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abra /config/providers.models/openrouter y configure el campo providers.models.openrouter.<alias>.extra_headers.

zerocode

En el panel Config, establece el campo providers.models.openrouter.<alias>.extra_headers.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.extra_headers    # entrada enmascarada, almacenada cifrada

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__extra_headers=
fallback string[] · default

Lista ordenada de otros alias de proveedor que se intentarán cuando todos los modelos de este alias hayan fallado. Cada entrada es una referencia con puntos <type>.<alias> dentro de providers.models y se resuelve con sus propias credenciales, endpoint y modelo. Un fallback nunca hereda la clave de este alias. El recorrido es en profundidad: primero se agotan los modelos de este alias, luego se desciende por cada alias de fallback en orden (aplicando sus propios fallback_models y fallback). Vacío significa que no hay fallback a nivel de proveedor.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/openrouter y establece el campo providers.models.openrouter.<alias>.fallback.

zerocode

En el panel Config, configure el campo providers.models.openrouter.<alias>.fallback.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.fallback <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__fallback=
fallback_models string[] · default

Modelos alternativos ordenados para probar en ESTE proveedor antes de recurrir a los alias de fallback. Mismo endpoint, clave y encabezados que el model principal. Solo cambia el identificador del modelo. Usa esto cuando un proveedor ofrece un modelo de respaldo (p. ej., una variante más pequeña o antigua) que debería probarse antes de abandonar el proveedor por completo. Vacío significa que solo se prueba model.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/openrouter y configura el campo providers.models.openrouter.<alias>.fallback_models.

zerocode

En el panel Config, configure el campo providers.models.openrouter.<alias>.fallback_models.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.fallback_models <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__fallback_models=
kind string? · default

Implementación de proveedor a instanciar para este perfil. Use esto cuando un slot tipado canónico deba ejecutarse a través de una implementación compatible, p. ej. [providers.models.openai.proxy] kind = "openai-compatible".

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/openrouter y establece el campo providers.models.openrouter.<alias>.kind.

zerocode

En el panel Config, establece el campo providers.models.openrouter.<alias>.kind.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.kind <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__kind=
live_pricing bool · default

Obtén los precios de tokens en vivo para los modelos de este proveedor desde su propio listado /models compatible con OpenAI (la pasarela es la fuente de verdad de sus precios), completando las tarifas de seguimiento de costes para los modelos que el operador NO haya fijado bajo [cost.rates] / pricing. Los modelos que la pasarela no tarifa (o los proveedores sin ningún listado HTTP /models, como una pasarela de subproceso como kilocli) recurren al catálogo público de models.dev. Las tarifas configuradas siempre prevalecen; los precios en vivo solo rellenan los huecos. Una tarea en segundo plano actualiza la instantánea de precios cada hora; la ruta de registro de costes lee la instantánea en caché y nunca bloquea en la red. Predeterminado false: desactivado significa que no hay obtención y el comportamiento es idéntico al de una compilación sin la función.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models.openrouter y establece el campo providers.models.openrouter.<alias>.live_pricing.

zerocode

En el panel Config, establece el campo providers.models.openrouter.<alias>.live_pricing.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.live_pricing <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__live_pricing=
max_tokens integer? · default

Límite estricto de la longitud de respuesta en tokens. La mayoría de los modelos ya aplican límites integrados razonables; déjelo sin configurar a menos que necesite específicamente recortar salidas largas por razones de costo o latencia.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/openrouter y establece el campo providers.models.openrouter.<alias>.max_tokens.

zerocode

En el panel Config, configure el campo providers.models.openrouter.<alias>.max_tokens.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.max_tokens <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__max_tokens=
merge_system_into_user bool · default

Particularidad específica de ModelProvider: incorpora el prompt del sistema en el primer mensaje del usuario en lugar de enviar un rol system separado. Solo es necesario para modelos que rechazan (o manejan incorrectamente) un rol system independiente, p. ej., ciertas variantes antiguas de Mistral.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/openrouter y establece el campo providers.models.openrouter.<alias>.merge_system_into_user.

zerocode

En el panel Config, establece el campo providers.models.openrouter.<alias>.merge_system_into_user.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.merge_system_into_user <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__merge_system_into_user=
model string? · default

Identificador de modelo que se envía con cada solicitud: la cadena de ID del catálogo del model_provider (p. ej. gpt-4o, claude-sonnet-4-5, llama-3.3-70b). Debe coincidir con un modelo que el model_provider realmente sirva en esta cuenta.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/openrouter y establece el campo providers.models.openrouter.<alias>.model.

zerocode

En el panel Config, establece el campo providers.models.openrouter.<alias>.model.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.model <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__model=
native_tools bool? · default

Anula el valor predeterminado del proveedor para las llamadas nativas a herramientas. None (predeterminado) respeta la opción integrada del proveedor. Some(true) fuerza la activación de las llamadas nativas a herramientas, Some(false) fuerza el fallback a texto. Actualmente solo lo consulta la factory de Groq, que usa por defecto el fallback a texto porque los modelos de Groq de la familia llama rechazan las llamadas nativas a herramientas con HTTP 400. Establecer native_tools = true vuelve a habilitar las llamadas nativas a herramientas para los modelos de Groq que las admiten.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/openrouter y establece el campo providers.models.openrouter.<alias>.native_tools.

zerocode

En el panel Config, establece el campo providers.models.openrouter.<alias>.native_tools.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.native_tools <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__native_tools=
pricing map · default

Precios por modelo para el seguimiento de costos, en USD por 1M de tokens. Mapa de clave/valor de formato libre. Las claves son identificadores de modelo definidos por el usuario; un sufijo opcional .input / .output codifica la dimensión de precios cuando el operador desea dividir las tarifas. Una clave sin sufijo se usa como tarifa plana por token cuando no se especifica ninguna dimensión. El valor predeterminado es vacío: el seguimiento de costos recurre a tarifas “unknown” y solo se registra el uso de tokens. Ejemplo: pricing = { opus = 15.0, sonnet = 3.0 } O dividido: pricing = { "opus.input" = 15.0, "opus.output" = 75.0 }

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/openrouter y configura el campo providers.models.openrouter.<alias>.pricing.

zerocode

En el panel Config, configure el campo providers.models.openrouter.<alias>.pricing.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.pricing <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__pricing=
provider_extra table · default

Parámetros JSON adicionales para incluir en las solicitudes a la API. Se fusionan en el nivel superior del cuerpo de la solicitud, lo que permite funciones específicas del proveedor (enrutamiento, transformaciones, etc.) sin cambios en el código. Ejemplo: provider_extra = { model_provider = { only = ["Anthropic"] } }

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/openrouter y establece el campo providers.models.openrouter.<alias>.provider_extra.

zerocode

En el panel Config, establece el campo providers.models.openrouter.<alias>.provider_extra.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.provider_extra <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__provider_extra=
replay_assistant_reasoning bool? · default

Si debe reproducirse el razonamiento del asistente almacenado en los mensajes salientes del historial del asistente. Some(false) elimina reasoning_content y reasoning antes de enviarlos. None (predeterminado) respeta el valor predeterminado integrado del proveedor (true para la mayoría de los proveedores compatibles, false para Groq).

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/openrouter y establece el campo providers.models.openrouter.<alias>.replay_assistant_reasoning.

zerocode

En el panel Config, establece el campo providers.models.openrouter.<alias>.replay_assistant_reasoning.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.replay_assistant_reasoning <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__replay_assistant_reasoning=
requires_openai_auth bool · default

Cuando es verdadero, el cliente toma las credenciales del perfil de autenticación openai-codex almacenado de ZeroClaw en lugar del campo api_key anterior. Importe un inicio de sesión existente de Codex CLI con zeroclaw auth login --model-provider openai-codex --import ~/.codex/auth.json, o ejecute zeroclaw auth login --model-provider openai-codex. Actívelo solo para el model_provider de OpenAI Codex; déjelo desactivado para los model_providers estándar de clave de API.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/openrouter y establece el campo providers.models.openrouter.<alias>.requires_openai_auth.

zerocode

En el panel Config, configura el campo providers.models.openrouter.<alias>.requires_openai_auth.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.requires_openai_auth <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__requires_openai_auth=
temperature number? · default

Temperatura de muestreo que se pasa al modelo. Los valores más bajos (0.0–0.3) producen una salida determinista, casi literal, adecuada para código, enrutamiento y resúmenes. Los valores más altos (0.7–1.2) producen una salida más variada, adecuada para conversaciones abiertas.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abra /config/providers.models/openrouter y configure el campo providers.models.openrouter.<alias>.temperature.

zerocode

En el panel Config, configure el campo providers.models.openrouter.<alias>.temperature.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.temperature <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__temperature=
think bool? · default

Habilita o deshabilita el pensamiento en cadena (chain-of-thought) para los modelos que lo admiten (p. ej., Qwen3, GLM-4). true activa el pensamiento, false lo desactiva. None (predeterminado) deja que el modelo decida. Se envía como enable_thinking en el cuerpo de la solicitud; refleja el campo think del proveedor Ollama.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/openrouter y configura el campo providers.models.openrouter.<alias>.think.

zerocode

En el panel Config, establece el campo providers.models.openrouter.<alias>.think.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.think <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__think=
timeout_secs integer? · default

Tiempo de espera de la solicitud HTTP en segundos. Aumenta este valor para model_providers locales lentos (Ollama en CPU, modelos locales grandes) o redes de alta latencia; déjalo sin configurar en caso contrario.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abra /config/providers.models/openrouter y configure el campo providers.models.openrouter.<alias>.timeout_secs.

zerocode

En el panel Config, establece el campo providers.models.openrouter.<alias>.timeout_secs.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.timeout_secs <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__timeout_secs=
tls_ca_cert_path string? · default

Ruta a un certificado de CA codificado en PEM para conexiones TLS a este proveedor. Debe ser una ruta absoluta; no se realiza expansión de shell (p. ej. ~). Déjelo sin configurar para usar el almacén de confianza predeterminado del sistema.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/openrouter y establece el campo providers.models.openrouter.<alias>.tls_ca_cert_path.

zerocode

En el panel Config, establece el campo providers.models.openrouter.<alias>.tls_ca_cert_path.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.tls_ca_cert_path <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__tls_ca_cert_path=
tool_result_image_policy table · default

Política para los marcadores de imagen incrustados en el contenido nativo de los resultados de herramientas.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abra /config/providers.models/openrouter y establezca el campo providers.models.openrouter.<alias>.tool_result_image_policy.

zerocode

En el panel Config, establece el campo providers.models.openrouter.<alias>.tool_result_image_policy.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.tool_result_image_policy <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__tool_result_image_policy=
uri string? · default

URI del endpoint al que accede el cliente. Sobrescriba el endpoint predeterminado de la familia cuando apunte a un gateway autoalojado (LiteLLM, vLLM, Ollama), un proxy personalizado o cualquier URL no estándar. Déjelo sin definir para usar el URI predeterminado de la familia desde su implementación de ModelEndpoint. Establezca aquí la URL COMPLETA del endpoint; no existe un campo separado para el sufijo de ruta.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/openrouter y establece el campo providers.models.openrouter.<alias>.uri.

zerocode

En el panel Config, establece el campo providers.models.openrouter.<alias>.uri.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.uri <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__uri=
vision bool? · default

Anula la capacidad de visión (entrada de imágenes) del proveedor. None (predeterminado) usa el valor predeterminado integrado de la familia de proveedores. Varias familias (llama.cpp, el endpoint genérico compatible con OpenAI, etc.) asumen capacidad de visión porque pueden servir modelos multimodales. Establece vision = false para un modelo de solo texto servido por dicha familia (p. ej., un LLM de texto detrás de llama.cpp) para que los mensajes de imagen se enruten a un [multimodal] vision_model_provider configurado en lugar de enviarse a un modelo que los rechaza. Some(true) fuerza la activación de visión.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abra /config/providers.models/openrouter y configure el campo providers.models.openrouter.<alias>.vision.

zerocode

En el panel Config, establece el campo providers.models.openrouter.<alias>.vision.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.vision <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__vision=
wire_api `responses` \| `chat_completions` · default

Variante del protocolo de comunicación para el cliente de model_provider. responses enruta a través de la API de Responses de OpenAI (POST /v1/responses); chat_completions enruta a través del /v1/chat/completions heredado (o el endpoint compatible con chat-completions de la familia). Los nuevos slots de proveedor de OpenAI usan responses por defecto; otras familias usan chat-completions por defecto (o ignoran el campo) cuando no se establece.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/openrouter y configura el campo providers.models.openrouter.<alias>.wire_api.

zerocode

En el panel Config, establece el campo providers.models.openrouter.<alias>.wire_api.

zeroclaw config

zeroclaw config set providers.models.openrouter.<alias>.wire_api <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__openrouter__<alias>__wire_api=

Principal

openrouter https://openrouter.ai/api/v1
anthropic https://api.anthropic.com
openai dynamic / resolved at runtime
telnyx https://api.telnyx.com/v2/ai
azure operator required

Slot-specific fields (in addition to the shared fields above):

api_version string? · default

Cadena de versión de la API de Azure (p. ej., 2024-10-21).

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/azure y configura el campo providers.models.azure.<alias>.api_version.

zerocode

En el panel Config, establece el campo providers.models.azure.<alias>.api_version.

zeroclaw config

zeroclaw config set providers.models.azure.<alias>.api_version <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__azure__<alias>__api_version=
deployment string? · default

Nombre de implementación de Azure: la implementación creada en Azure AI Studio.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/azure y establece el campo providers.models.azure.<alias>.deployment.

zerocode

En el panel Config, establece el campo providers.models.azure.<alias>.deployment.

zeroclaw config

zeroclaw config set providers.models.azure.<alias>.deployment <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__azure__<alias>__deployment=
resource string? · default

Nombre del recurso de Azure (la parte <resource> de <resource>.openai.azure.com).

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abra /config/providers.models/azure y configure el campo providers.models.azure.<alias>.resource.

zerocode

En el panel Config, establece el campo providers.models.azure.<alias>.resource.

zeroclaw config

zeroclaw config set providers.models.azure.<alias>.resource <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__azure__<alias>__resource=
ollama http://localhost:11434/v1 · local

Slot-specific fields (in addition to the shared fields above):

num_ctx integer? · default

Sobrescribe el num_ctx de Ollama (ventana de contexto, en tokens) enviado en cada solicitud /api/chat. Cuando no se establece, usa por defecto la constante del framework (OLLAMA_DEFAULT_NUM_CTX).

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/ollama y configura el campo providers.models.ollama.<alias>.num_ctx.

zerocode

En el panel Config, establece el campo providers.models.ollama.<alias>.num_ctx.

zeroclaw config

zeroclaw config set providers.models.ollama.<alias>.num_ctx <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__ollama__<alias>__num_ctx=
num_predict integer? · default

Anula el num_predict de Ollama (máximo de tokens de salida) enviado en cada solicitud a /api/chat. Cuando no está configurado, usa por defecto la constante del framework (OLLAMA_DEFAULT_NUM_PREDICT).

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/ollama y configura el campo providers.models.ollama.<alias>.num_predict.

zerocode

En el panel Config, configure el campo providers.models.ollama.<alias>.num_predict.

zeroclaw config

zeroclaw config set providers.models.ollama.<alias>.num_predict <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__ollama__<alias>__num_predict=
temperature_override number? · default

Fuerza que cada solicitud /api/chat de Ollama use esta temperatura, anulando el valor por llamada pasado a través de ModelProvider::chat_with_system(.., temperature). Cuando no está establecida (None, el valor predeterminado), la temperatura por llamada prevalece: compatibilidad total con versiones anteriores.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abra /config/providers.models/ollama y configure el campo providers.models.ollama.<alias>.temperature_override.

zerocode

En el panel Config, establece el campo providers.models.ollama.<alias>.temperature_override.

zeroclaw config

zeroclaw config set providers.models.ollama.<alias>.temperature_override <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__ollama__<alias>__temperature_override=
gemini dynamic / resolved at runtime

Slot-specific fields (in addition to the shared fields above):

auth_mode table · default

Modo de autenticación para familias de model_provider que admiten más de uno (p. ej., Qwen, Minimax pueden usar API key U OAuth). Las familias que solo admiten un único flujo de autenticación simplemente omiten este campo de su struct de configuración.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/gemini y establece el campo providers.models.gemini.<alias>.auth_mode.

zerocode

En el panel Config, establece el campo providers.models.gemini.<alias>.auth_mode.

zeroclaw config

zeroclaw config set providers.models.gemini.<alias>.auth_mode <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__gemini__<alias>__auth_mode=
oauth_client_id string? · default

client_id de la aplicación OAuth de Google, usado cuando este alias controla el flujo de inicio de sesión propio de ZeroClaw mediante navegador/código de dispositivo (zeroclaw auth login --model-provider gemini --profile <alias>). Los operadores que dependen de la herramienta upstream gemini login no lo necesitan; esa herramienta escribe su propio client_id / client_secret en ~/.gemini/oauth_creds.json.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/gemini y establece el campo providers.models.gemini.<alias>.oauth_client_id.

zerocode

En el panel Config, configura el campo providers.models.gemini.<alias>.oauth_client_id.

zeroclaw config

zeroclaw config set providers.models.gemini.<alias>.oauth_client_id <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__gemini__<alias>__oauth_client_id=
oauth_client_secret string? · default

client_secret de la aplicación OAuth de Google. Se configura junto con oauth_client_id.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/gemini y establece el campo providers.models.gemini.<alias>.oauth_client_secret.

zerocode

En el panel Config, establece el campo providers.models.gemini.<alias>.oauth_client_secret.

zeroclaw config

zeroclaw config set providers.models.gemini.<alias>.oauth_client_secret <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__gemini__<alias>__oauth_client_secret=
oauth_project string? · default

Fija un ID de proyecto de GCP específico para la llamada de descubrimiento loadCodeAssist de OAuth. Cuando no está configurado, el descubrimiento sondea un proyecto ya incorporado en la cuenta de la credencial. Reemplaza las variables de entorno GOOGLE_CLOUD_PROJECT / GOOGLE_CLOUD_PROJECT_ID.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/gemini y establece el campo providers.models.gemini.<alias>.oauth_project.

zerocode

En el panel Config, establezca el campo providers.models.gemini.<alias>.oauth_project.

zeroclaw config

zeroclaw config set providers.models.gemini.<alias>.oauth_project <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__gemini__<alias>__oauth_project=

Compatible con OpenAI

venice https://api.venice.ai
nearai https://cloud-api.near.ai/v1
vercel https://ai-gateway.vercel.sh/v1
cloudflare https://gateway.ai.cloudflare.com/v1
atlascloud https://api.atlascloud.ai/v1
moonshot dynamic / resolved at runtime

Slot-specific fields (in addition to the shared fields above):

endpoint table · default

Variantes de endpoint de Moonshot. Los operadores seleccionan la región que corresponde a su cuenta; el runtime resuelve el URI a partir de la variante elegida, a menos que se sobrescriba mediante base.uri. La variante Code es solo internacional (intl-only).

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/moonshot y establece el campo providers.models.moonshot.<alias>.endpoint.

zerocode

En el panel Config, establece el campo providers.models.moonshot.<alias>.endpoint.

zeroclaw config

zeroclaw config set providers.models.moonshot.<alias>.endpoint <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__moonshot__<alias>__endpoint=
synthetic https://api.synthetic.new/openai/v1
opencode https://opencode.ai/zen/v1
zai dynamic / resolved at runtime

Slot-specific fields (in addition to the shared fields above):

endpoint `cn` \| `global` · default

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/zai y configura el campo providers.models.zai.<alias>.endpoint.

zerocode

En el panel Config, configura el campo providers.models.zai.<alias>.endpoint.

zeroclaw config

zeroclaw config set providers.models.zai.<alias>.endpoint <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__zai__<alias>__endpoint=
glm dynamic / resolved at runtime

Slot-specific fields (in addition to the shared fields above):

endpoint `cn` \| `global` · default

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/glm y configura el campo providers.models.glm.<alias>.endpoint.

zerocode

En el panel Config, configura el campo providers.models.glm.<alias>.endpoint.

zeroclaw config

zeroclaw config set providers.models.glm.<alias>.endpoint <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__glm__<alias>__endpoint=
minimax dynamic / resolved at runtime

Slot-specific fields (in addition to the shared fields above):

auth_mode table · default

Modo de autenticación para familias de model_provider que admiten más de uno (p. ej., Qwen, Minimax pueden usar API key U OAuth). Las familias que solo admiten un único flujo de autenticación simplemente omiten este campo de su struct de configuración.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/minimax y configura el campo providers.models.minimax.<alias>.auth_mode.

zerocode

En el panel Config, establece el campo providers.models.minimax.<alias>.auth_mode.

zeroclaw config

zeroclaw config set providers.models.minimax.<alias>.auth_mode <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__minimax__<alias>__auth_mode=
endpoint `cn` \| `intl` · default

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/minimax y configura el campo providers.models.minimax.<alias>.endpoint.

zerocode

En el panel Config, establece el campo providers.models.minimax.<alias>.endpoint.

zeroclaw config

zeroclaw config set providers.models.minimax.<alias>.endpoint <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__minimax__<alias>__endpoint=
oauth_client_id string? · default

Anulación del client_id de OAuth publicado por MiniMax. La mayoría de los operadores deberían dejar esto sin configurar; el runtime usa de forma predeterminada el client_id publicado por el proveedor (el mismo que utiliza el propio portal de MiniMax).

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/minimax y establece el campo providers.models.minimax.<alias>.oauth_client_id.

zerocode

En el panel Config, establece el campo providers.models.minimax.<alias>.oauth_client_id.

zeroclaw config

zeroclaw config set providers.models.minimax.<alias>.oauth_client_id <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__minimax__<alias>__oauth_client_id=
oauth_refresh_token string? · default

Token de actualización OAuth de larga duración emitido por MiniMax. Cuando se establece, el runtime lo intercambia por un token de acceso de corta duración en el momento de la construcción del proveedor y lo usa como credencial de la API. Los operadores que prefieran claves de API de larga duración generadas desde el panel pueden dejar este valor sin configurar y completar api_key directamente.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/minimax y establece el campo providers.models.minimax.<alias>.oauth_refresh_token.

zerocode

En el panel Config, establece el campo providers.models.minimax.<alias>.oauth_refresh_token.

zeroclaw config

zeroclaw config set providers.models.minimax.<alias>.oauth_refresh_token <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__minimax__<alias>__oauth_refresh_token=
bedrock dynamic / resolved at runtime

Slot-specific fields (in addition to the shared fields above):

region string? · default

Región de AWS para el endpoint de Bedrock (p. ej., us-east-1, eu-west-1).

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/bedrock y establece el campo providers.models.bedrock.<alias>.region.

zerocode

En el panel Config, configure el campo providers.models.bedrock.<alias>.region.

zeroclaw config

zeroclaw config set providers.models.bedrock.<alias>.region <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__bedrock__<alias>__region=
qianfan https://qianfan.baidubce.com/v2
doubao https://ark.cn-beijing.volces.com/api/v3
qwen dynamic / resolved at runtime

Slot-specific fields (in addition to the shared fields above):

auth_mode table · default

Modo de autenticación para familias de model_provider que admiten más de uno (p. ej., Qwen, Minimax pueden usar API key U OAuth). Las familias que solo admiten un único flujo de autenticación simplemente omiten este campo de su struct de configuración.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abra /config/providers.models/qwen y configure el campo providers.models.qwen.<alias>.auth_mode.

zerocode

En el panel Config, establece el campo providers.models.qwen.<alias>.auth_mode.

zeroclaw config

zeroclaw config set providers.models.qwen.<alias>.auth_mode <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__qwen__<alias>__auth_mode=
endpoint table · default

Variantes de endpoints de Qwen. Los operadores eligen la región que coincida con su cuenta.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/qwen y configura el campo providers.models.qwen.<alias>.endpoint.

zerocode

En el panel Config, configure el campo providers.models.qwen.<alias>.endpoint.

zeroclaw config

zeroclaw config set providers.models.qwen.<alias>.endpoint <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__qwen__<alias>__endpoint=
oauth_client_id string? · default

Anulación del client_id de OAuth publicado por Qwen. La mayoría de los operadores deberían dejar esto sin configurar.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/qwen y establece el campo providers.models.qwen.<alias>.oauth_client_id.

zerocode

En el panel Config, configure el campo providers.models.qwen.<alias>.oauth_client_id.

zeroclaw config

zeroclaw config set providers.models.qwen.<alias>.oauth_client_id <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__qwen__<alias>__oauth_client_id=
oauth_refresh_token string? · default

Token de actualización OAuth de Qwen de larga duración. Cuando se establece, el runtime lo intercambia por un token de acceso de corta duración en el momento de la construcción del proveedor. Los operadores que dependen de la herramienta upstream qwen login (que escribe ~/.qwen/oauth_creds.json) lo dejan sin establecer; la integración de caché de archivos toma el control.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/qwen y establece el campo providers.models.qwen.<alias>.oauth_refresh_token.

zerocode

En el panel Config, configure el campo providers.models.qwen.<alias>.oauth_refresh_token.

zeroclaw config

zeroclaw config set providers.models.qwen.<alias>.oauth_refresh_token <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__qwen__<alias>__oauth_refresh_token=
oauth_resource_url string? · default

Anulación por parte del operador de la URL del recurso con la que se empareja el token de acceso renovado. Cuando no está establecida, el runtime recurre a la URL derivada del endpoint\ (o a la resource_url almacenada en caché al leer desde ~/.qwen/oauth_creds.json).

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/qwen y establece el campo providers.models.qwen.<alias>.oauth_resource_url.

zerocode

En el panel Config, configure el campo providers.models.qwen.<alias>.oauth_resource_url.

zeroclaw config

zeroclaw config set providers.models.qwen.<alias>.oauth_resource_url <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__qwen__<alias>__oauth_resource_url=
groq https://api.groq.com/openai/v1
mistral https://api.mistral.ai/v1
xai https://api.x.ai/v1
deepseek https://api.deepseek.com
together https://api.together.xyz
fireworks https://api.fireworks.ai/inference/v1
novita https://api.novita.ai/openai
perplexity https://api.perplexity.ai
cohere https://api.cohere.com/compatibility
copilot dynamic / resolved at runtime
gemini_cli CLI-backed · local

Slot-specific fields (in addition to the shared fields above):

binary_path string? · default

Ruta al binario CLI de gemini. Si no se especifica, se usa gemini (búsqueda en PATH).

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/gemini_cli y configura el campo providers.models.gemini_cli.<alias>.binary_path.

zerocode

En el panel Config, configura el campo providers.models.gemini_cli.<alias>.binary_path.

zeroclaw config

zeroclaw config set providers.models.gemini_cli.<alias>.binary_path <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__gemini_cli__<alias>__binary_path=
grok_cli CLI-backed · local

Slot-specific fields (in addition to the shared fields above):

binary_path string? · default

Ruta al binario de la CLI grok. Se recurre a grok como alternativa (búsqueda en PATH).

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/grok_cli y establece el campo providers.models.grok_cli.<alias>.binary_path.

zerocode

En el panel Config, establece el campo providers.models.grok_cli.<alias>.binary_path.

zeroclaw config

zeroclaw config set providers.models.grok_cli.<alias>.binary_path <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__grok_cli__<alias>__binary_path=
env_passthrough string[] · default

Nombres de variables de entorno adicionales heredados por el subproceso grok. Los valores se resuelven desde el entorno de procesos de ZeroClaw en el momento de iniciar el proceso. El valor predeterminado está vacío para que los secretos no relacionados del demonio sigan bloqueados. XAI_API_KEY es el único nombre compatible propiedad del proveedor y habilita la autenticación mediante clave de API cuando se incluye explícitamente y no está vacío; se rechazan otros nombres XAI_* y todos los nombres GROK_*.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/grok_cli y establece el campo providers.models.grok_cli.<alias>.env_passthrough.

zerocode

En el panel Configuración, establece el campo providers.models.grok_cli.<alias>.env_passthrough.

zeroclaw config

zeroclaw config set providers.models.grok_cli.<alias>.env_passthrough <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__grok_cli__<alias>__env_passthrough=
extra_args string[] · default

Indicadores largos globales adicionales de Grok insertados antes de agent stdio. Las opciones conocidas pueden colocar su valor en el token siguiente; otras opciones que aceptan valores usan --flag=value. Los argumentos posicionales y cortos se rechazan. ZeroClaw usa de forma predeterminada --sandbox strict, --permission-mode dontAsk y un conjunto vacío de herramientas integradas. Proporcionar aquí los indicadores correspondientes constituye una habilitación explícita por alias para relajar esos valores predeterminados. Los indicadores de transporte de ACP, prompt/model/session, cwd, debug-file y update-policy están reservados.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/grok_cli y establece el campo providers.models.grok_cli.<alias>.extra_args.

zerocode

En el panel Config, establece el campo providers.models.grok_cli.<alias>.extra_args.

zeroclaw config

zeroclaw config set providers.models.grok_cli.<alias>.extra_args <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__grok_cli__<alias>__extra_args=
max_acp_stdout_bytes integer? · default

Máximo de bytes acumulados de stdout aceptados de grok agent stdio para una solicitud ACP. Si no se establece, ZeroClaw usa 4 MiB. Los valores deben estar entre 1 MiB y 64 MiB; el proveedor rechaza los valores no válidos cuando se construye.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abra /config/providers.models/grok_cli y establezca el campo providers.models.grok_cli.<alias>.max_acp_stdout_bytes.

zerocode

En el panel Configuración, establece el campo providers.models.grok_cli.<alias>.max_acp_stdout_bytes.

zeroclaw config

zeroclaw config set providers.models.grok_cli.<alias>.max_acp_stdout_bytes <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__grok_cli__<alias>__max_acp_stdout_bytes=
working_directory* string · default

Directorio de trabajo absoluto obligatorio para el subproceso grok y el límite de sesión de ACP. El directorio debe existir cuando se construya el proveedor. La configuración de Grok específica del proyecto se resuelve en relación con esta ruta.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abra /config/providers.models/grok_cli y establezca el campo providers.models.grok_cli.<alias>.working_directory.

zerocode

En el panel Config, configura el campo providers.models.grok_cli.<alias>.working_directory.

zeroclaw config

zeroclaw config set providers.models.grok_cli.<alias>.working_directory <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__grok_cli__<alias>__working_directory=
kilocli CLI-backed · local

Slot-specific fields (in addition to the shared fields above):

binary_path string? · default

Ruta al binario CLI de kilo. Si no se especifica, se usa kilo (búsqueda en PATH).

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/kilocli y configura el campo providers.models.kilocli.<alias>.binary_path.

zerocode

En el panel de Config, configura el campo providers.models.kilocli.<alias>.binary_path.

zeroclaw config

zeroclaw config set providers.models.kilocli.<alias>.binary_path <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__kilocli__<alias>__binary_path=
kilo https://api.kilo.ai/api/gateway

Slot-specific fields (in addition to the shared fields above):

endpoint `gateway` · default

Endpoint de Kilo AI Gateway. Endpoint canónico único en kilo.ai.

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/kilo y configura el campo providers.models.kilo.<alias>.endpoint.

zerocode

En el panel Config, establece el campo providers.models.kilo.<alias>.endpoint.

zeroclaw config

zeroclaw config set providers.models.kilo.<alias>.endpoint <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__kilo__<alias>__endpoint=
zerorouter https://zerorouter.ai/v1
lmstudio http://localhost:1234/v1 · local
llamacpp http://localhost:8080/v1 · local
sglang http://localhost:30000/v1 · local
vllm http://localhost:8000/v1 · local
osaurus http://localhost:1337/v1 · local
nvidia https://integrate.api.nvidia.com/v1
siliconflow https://api.siliconflow.com/v1
aihubmix https://aihubmix.com/v1
litellm http://localhost:4000/v1
atomic_chat http://127.0.0.1:1337/v1 · local
astrai https://as-trai.com/v1
deepmyst https://api.deepmyst.com/v1
manifest https://app.manifest.build/v1
morph https://api.morphllm.com/v1
github_models https://models.github.ai/inference
upstage https://api.upstage.ai/v1
featherless https://api.featherless.ai/v1
arcee https://api.arcee.ai/api/v1
lambda_ai https://api.lambda.ai/v1
inception https://api.inceptionlabs.ai/v1
custom operator required

Inferencia rápida

cerebras https://api.cerebras.ai/v1
sambanova https://api.sambanova.ai/v1
hyperbolic https://api.hyperbolic.xyz/v1

Plataformas de alojamiento de modelos

deepinfra https://api.deepinfra.com/v1/openai
huggingface https://router.huggingface.co/v1
ai21 https://api.ai21.com/studio/v1
reka https://api.reka.ai/v1
baseten https://inference.baseten.co/v1
nscale https://inference.api.nscale.com/v1
anyscale https://api.endpoints.anyscale.com/v1
nebius https://api.tokenfactory.nebius.com/v1
friendli https://api.friendli.ai/serverless/v1
lepton https://llama3-1-405b.lepton.run/api/v1

IA china

stepfun dynamic / resolved at runtime

Slot-specific fields (in addition to the shared fields above):

endpoint table · default

Colócalo sobre cualquier superficie:

Panel de control del gateway

Abre /config/providers.models/stepfun y establece el campo providers.models.stepfun.<alias>.endpoint.

zerocode

En el panel Config, configure el campo providers.models.stepfun.<alias>.endpoint.

zeroclaw config

zeroclaw config set providers.models.stepfun.<alias>.endpoint <value>

Variable de entorno

Exporte la anulación (shells POSIX; colóquelo en ~/.bashrc, ~/.zshrc, .env o un Dockerfile). Reemplace <alias> con el alias literal:

export ZEROCLAW_providers__models__stepfun__<alias>__endpoint=
baichuan https://api.baichuan-ai.com/v1
yi https://api.lingyiwanwu.com/v1
hunyuan https://api.hunyuan.cloud.tencent.com/v1

Endpoints de IA en la nube

ovh https://oai.endpoints.kepler.ai.cloud.ovh.net/v1
avian https://api.avian.io/v1

Para ver un ejemplo práctico por familia, consulta Configuración. Si tu proveedor no aparece en la lista, usa el espacio custom (Proveedores personalizados).

Ejemplos prácticos: Morph, GitHub Models, Upstage, Featherless, Arcee, Lambda AI, Inception

Cada uno de estos es un slot estándar compatible con OpenAI: configure model y api_key, omita uri (el endpoint tipado lo proporciona). Ninguno de ellos incluye un índice público de modelos, por lo que el selector de modelos permanece vacío hasta que pegue una credencial. Una vez configurada una clave, ZeroClaw lista los modelos desde el endpoint /models en vivo del proveedor. Los IDs de modelos a continuación son ilustrativos; confirme el catálogo actual en el panel del proveedor.

Morph: slot morph. Modelos rápidos de aplicación de ediciones (morph-v3-large, morph-v3-fast o auto). Clave desde el panel de Morph.

GitHub Models: slot github_models (alias github-models). Modelos de OpenAI / Meta / Microsoft detrás de un único GitHub Personal Access Token. Crea un PAT con el permiso models (de granularidad fina); un token de Copilot no es la misma credencial. Los IDs de modelo llevan el prefijo del editor (p. ej. openai/gpt-4o).

Upstage: slot upstage. Solar Pro / Solar Mini (p. ej. solar-pro2). Clave desde la consola de Upstage.

Featherless: slot featherless. Modelos serverless de pesos abiertos, direccionados por sus IDs de repositorio de Hugging Face (p. ej., meta-llama/Meta-Llama-3.1-8B-Instruct). Clave de featherless.ai.

Arcee: slot arcee. Los modelos nativos incluyen conductor, maestro, virtuoso-large, coder-large y blitz. Clave desde la plataforma Arcee. La API de la plataforma de Arcee usa la ruta base no estándar /api/v1; el endpoint tipado ya tiene esto en cuenta, así que igualmente omita uri.

Lambda AI: slot lambda_ai (alias lambda-ai). Inferencia alojada de Lambda (p. ej. hermes3-405b). Clave desde la página de claves API de Lambda Cloud.

Inception: slot inception. La familia de LLM de difusión Mercury (mercury-coder y el más reciente mercury-2). Clave de la plataforma Inception.

Atlas Cloud: ranura atlascloud. Punto de conexión compatible con OpenAI https://api.atlascloud.ai/v1 con autenticación mediante token bearer. Usa únicamente la ranura canónica atlascloud; atlas, atlas-cloud y atlas_cloud no son alias en tiempo de ejecución.

[providers.models.atlascloud.home]
model = "..."
api_key = "..."

Las credenciales provienen únicamente de la configuración (api_key) o de la anulación --credential en tiempo de ejecución; estas ranuras no leen una variable de entorno *_API_KEY por proveedor.

Ejemplo de NEAR AI Cloud:

[providers.models.nearai.tee]
model   = "..."       # elige un modelId de https://cloud-api.near.ai/v1/model/list
api_key = "..."

El slot nearai usa https://cloud-api.near.ai/v1 de forma predeterminada y envía Authorization: Bearer <api_key>. Para integrar una variable de shell NEARAI_API_KEY existente en la superficie de entorno de réplica de esquema de ZeroClaw, configura ZEROCLAW_providers__models__nearai__tee__api_key="$NEARAI_API_KEY".


Familias multirregión

Varios proveedores chinos exponen distintos endpoints regionales con diferentes modelos predeterminados. Usa una única ranura canónica y selecciona la región con el campo endpoint tipado en la entrada del alias.

Moonshot: ranura moonshot

Variantes: cn, intl, code.

Qwen / DashScope: slot qwen

Las cuentas de Qwen respaldadas por OAuth usan la misma ranura con auth_mode = "o_auth".

GLM: slot glm

MiniMax: slot minimax

[providers.models.minimax.intl]
model    = "MiniMax-M3"                       # o MiniMax-M2.7, MiniMax-M2.7-highspeed
api_key  = "..."
endpoint = "intl"                            # variantes: cn, intl

Para la API compatible con Anthropic de MiniMax, usa [providers.models.anthropic.minimax] con uri = "https://api.minimax.io/anthropic" (Global) o uri = "https://api.minimaxi.com/anthropic" (China) en su lugar.

Z.AI: slot zai

Para la API compatible con Anthropic de Z.AI, usa [providers.models.anthropic.zai] con uri = "https://api.z.ai/api/anthropic" en su lugar.

Doubao / Volcengine: slot doubao

Los slots restantes de la región de China (yi, hunyuan, qianfan, baichuan) aparecen en la tabla de todos los slots anterior; seleccione la región con el campo endpoint tipado en la entrada del alias.


Capas de enrutamiento

OpenRouter se trata como un único proveedor de primera clase, no como un meta-enrutador. El runtime ve un solo endpoint; OpenRouter gestiona la distribución entre proveedores detrás de ese endpoint.

Para enrutamiento por tarea, ejecuta múltiples agentes y deja que los canales elijan qué agente maneja qué tráfico, consulta Enrutamiento. Para un mecanismo de sugerencias en la configuración más limitado, usa [[model_routes]].


¿Algo falta?

  • Si el endpoint es compatible con OpenAI, usa el slot custom con uri definido.
  • Si tiene su propio slot canónico arriba, usa ese, incluso si solo ves una de sus regiones, el enum endpoint del slot cubre el resto.
  • Si utiliza un formato de protocolo distinto al de OpenAI y necesita su propia implementación, consulte Proveedores personalizados.