Providers
Infiere
inferrs puede servir modelos locales detrás de una API /v1 compatible con OpenAI. OpenClaw funciona con inferrs mediante la ruta genérica openai-completions.
| Propiedad | Valor |
|---|---|
| Id. de proveedor | inferrs (personalizado; configúralo en models.providers.inferrs) |
| Plugin | ninguno — inferrs no es un Plugin de proveedor incluido con OpenClaw |
| Variable de entorno de autenticación | Opcional. Cualquier valor funciona si tu servidor inferrs no tiene autenticación |
| API | compatible con OpenAI (openai-completions) |
| URL base sugerida | http://127.0.0.1:8080/v1 (o dondequiera que esté tu servidor inferrs) |
Primeros pasos
Iniciar inferrs con un modelo
inferrs serve google/gemma-4-E2B-it \
--host 127.0.0.1 \
--port 8080 \
--device metal
Verificar que el servidor sea accesible
curl http://127.0.0.1:8080/health
curl http://127.0.0.1:8080/v1/models
Agregar una entrada de proveedor de OpenClaw
Agrega una entrada de proveedor explícita y apunta tu modelo predeterminado a ella. Consulta el ejemplo de configuración completo a continuación.
Ejemplo de configuración completo
Este ejemplo usa Gemma 4 en un servidor local inferrs.
{
agents: {
defaults: {
model: { primary: "inferrs/google/gemma-4-E2B-it" },
models: {
"inferrs/google/gemma-4-E2B-it": {
alias: "Gemma 4 (inferrs)",
},
},
},
},
models: {
mode: "merge",
providers: {
inferrs: {
baseUrl: "http://127.0.0.1:8080/v1",
apiKey: "inferrs-local",
api: "openai-completions",
models: [
{
id: "google/gemma-4-E2B-it",
name: "Gemma 4 E2B (inferrs)",
reasoning: false,
input: ["text"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 131072,
maxTokens: 4096,
compat: {
requiresStringContent: true,
},
},
],
},
},
},
}
Configuración avanzada
Por qué requiresStringContent importa
Algunas rutas Chat Completions de inferrs solo aceptan
messages[].content de cadena, no arreglos estructurados de partes de contenido.
compat: {
requiresStringContent: true
}
OpenClaw convertirá las partes de contenido de texto puro en cadenas simples antes de enviar la solicitud.
Advertencia sobre Gemma y el esquema de herramientas
Algunas combinaciones actuales de inferrs + Gemma aceptan solicitudes directas pequeñas a
/v1/chat/completions, pero aun así fallan en turnos completos del runtime de agentes de OpenClaw.
Si eso ocurre, prueba primero esto:
compat: {
requiresStringContent: true,
supportsTools: false
}
Eso desactiva la superficie de esquema de herramientas de OpenClaw para el modelo y puede reducir la presión del prompt en backends locales más estrictos.
Si las solicitudes directas mínimas siguen funcionando, pero los turnos normales de agentes de OpenClaw continúan
fallando dentro de inferrs, el problema restante suele estar en el comportamiento del modelo/servidor
upstream y no en la capa de transporte de OpenClaw.
Prueba rápida manual
Una vez configurado, prueba ambas capas:
curl http://127.0.0.1:8080/v1/chat/completions \
-H 'content-type: application/json' \
-d '{"model":"google/gemma-4-E2B-it","messages":[{"role":"user","content":"What is 2 + 2?"}],"stream":false}'
openclaw infer model run \
--model inferrs/google/gemma-4-E2B-it \
--prompt "What is 2 + 2? Reply with one short sentence." \
--json
Si el primer comando funciona pero el segundo falla, revisa la sección de solución de problemas a continuación.
Comportamiento de estilo proxy
inferrs se trata como un backend /v1 de estilo proxy compatible con OpenAI, no como un
endpoint nativo de OpenAI.
- El moldeado de solicitudes exclusivo de OpenAI nativo no se aplica aquí
- Sin
service_tier, sin Responsesstore, sin indicios de caché de prompt y sin moldeado de payload de compatibilidad de razonamiento de OpenAI - Los encabezados ocultos de atribución de OpenClaw (
originator,version,User-Agent) no se inyectan en URL base personalizadas deinferrs
Solución de problemas
curl /v1/models falla
inferrs no se está ejecutando, no es accesible o no está enlazado al
host/puerto esperado. Asegúrate de que el servidor esté iniciado y escuchando en la dirección que
configuraste.
messages[].content esperaba una cadena
Configura compat.requiresStringContent: true en la entrada del modelo. Consulta la
sección requiresStringContent anterior para obtener detalles.
Las llamadas directas a /v1/chat/completions pasan, pero openclaw infer model run falla
Prueba configurar compat.supportsTools: false para desactivar la superficie de esquema de herramientas.
Consulta la advertencia sobre el esquema de herramientas de Gemma anterior.
inferrs sigue fallando en turnos de agente más grandes
Si OpenClaw ya no obtiene errores de esquema, pero inferrs sigue fallando en turnos de agente más grandes,
trátalo como una limitación upstream de inferrs o del modelo. Reduce
la presión del prompt o cambia a otro backend local o modelo.
Relacionado
Ejecutar OpenClaw contra servidores de modelos locales.
Depurar backends locales compatibles con OpenAI que pasan las pruebas, pero fallan en ejecuciones de agentes.
Resumen de todos los proveedores, referencias de modelos y comportamiento de conmutación por error.