Modelos baratos y locales
Zeltro no te vende IA. Ejecuta el agente que le indiques, con el modelo que quieras, incluidos los modelos que corren en tu propio equipo.
Los agentes predeterminados cobran a precio de modelo de frontera. Para buena parte del trabajo con Zeltro (crear la base de un proyecto, conectar configuración, ediciones rutinarias) un modelo mucho más barato basta, y la diferencia es grande:
| Modelo | Entrada / salida por 1M de tokens |
|---|---|
| Claude Sonnet 5 (API de Anthropic) | $2 / $10 |
| Qwen3 Coder Next (OpenRouter) | ~$0.12 / ~$0.80 |
| Qwen3 Coder 30B A3B Instruct (OpenRouter) | ~$0.07 / ~$0.28 |
| Cualquier modelo en Ollama local | nada por token (tu hardware y tu electricidad) |
Precios a septiembre de 2026; los precios de OpenRouter cambian, así que revisa
la página del modelo antes de fiarte de ellos. En una prueba de agosto de 2026,
Qwen Code con qwen/qwen3-coder-30b-a3b-instruct construyó de principio a fin
una app de Django que funcionaba por $0.87.
Zeltro ya ahorra tokens antes de que entre el modelo: el entorno, la red, la base de datos y la fontanería de contenedores ya vienen hechos, así que el agente gasta su contexto en tu app en lugar de deducir la configuración de Docker. Cambiar de modelo suma a ese ahorro, no lo reemplaza.
Cómo funciona#
zeltro ai-set --agent <agent> --model <model> --api-base <url> --api-key <key>
--api-base es la opción importante. Zeltro se la pasa al agente mediante el
ajuste que lea esa CLI:
| Agente | Endpoint pasado como | Clave pasada como | Endpoint que espera |
|---|---|---|---|
qwen |
OPENAI_BASE_URL |
OPENAI_API_KEY |
Compatible con OpenAI |
aider |
--openai-api-base |
--api-key <provider>=<key> |
Compatible con OpenAI |
opencode |
un proveedor compatible con OpenAI definido en línea en OPENCODE_CONFIG_CONTENT |
el apiKey de ese proveedor |
Compatible con OpenAI |
hermes |
OPENAI_BASE_URL, con --provider openai |
OPENAI_API_KEY |
Compatible con OpenAI |
claude |
ANTHROPIC_BASE_URL |
ANTHROPIC_API_KEY, solo si empieza por sk-ant- |
Compatible con Anthropic |
codex |
-c openai_base_url=… (Zeltro lo pasa por ti) |
OPENAI_API_KEY, solo si empieza por sk- |
API Responses de OpenAI |
agy |
nada (se rechaza) | GEMINI_API_KEY |
Su propio inicio de sesión de Google, o una clave de API de Gemini |
gemini (obsoleto) |
GOOGLE_GEMINI_BASE_URL |
GEMINI_API_KEY |
Una clave de API de Gemini de pago |
"Compatible con OpenAI" abarca OpenRouter, DeepInfra, Together, Fireworks, Ollama,
LM Studio y vLLM, así que qwen, aider, opencode y hermes son los agentes que
conviene usar con modelos baratos o locales. En nuestras pruebas, OpenCode y Hermes
funcionaron los dos a través de OpenRouter con DeepSeek V4.1 Flash; OpenCode con
Qwen3 Coder a veces describía una edición de archivo en lugar de hacerla, así que
prueba un segundo modelo si uno se porta mal.
Para una sola ejecución con otro modelo, sin tocar el ajuste global, usa los
ajustes por sesión (ZELTRO_AI_AGENT,
ZELTRO_AI_MODEL, ZELTRO_AI_API_BASE, ZELTRO_AI_API_KEY_FILE). En la app de
Zeltro, un perfil de IA hace lo mismo.
OpenRouter (la opción alojada más barata)#
zeltro ai-set --agent qwen \
--model qwen/qwen3-coder-30b-a3b-instruct \
--api-base https://openrouter.ai/api/v1 \
--api-key sk-or-v1-...
Pago por uso, sin suscripción. qwen/qwen3-coder-next es un modelo de programación
de Qwen más nuevo y más grande, por entre dos y tres veces el precio. Con Aider, usa
el prefijo propio de OpenRouter y ningún endpoint:
--agent aider --model openrouter/qwen/qwen3-coder-30b-a3b-instruct --api-key sk-or-v1-....
Ollama (local, privado)#
Instala Ollama, descarga un modelo de programación y apunta Zeltro hacia él:
ollama pull qwen3-coder:30b
zeltro ai-set --agent qwen \
--model qwen3-coder:30b \
--api-base http://localhost:11434/v1 \
--api-key ollama
La clave es de relleno. Ollama la ignora, pero las CLI esperan algo.
Nada sale de tu equipo, lo cual importa en trabajos para clientes bajo acuerdo de confidencialidad.
Aumenta la longitud de contexto de Ollama antes de empezar. Su valor predeterminado
depende de tu VRAM y es de solo 4k tokens por debajo de 24 GB, muy poco para un
agente. Ollama recomienda al menos 64k para herramientas de programación: arranca el
servidor con OLLAMA_CONTEXT_LENGTH=64000 ollama serve, o usa el control deslizante
de la configuración de la app de Ollama. Más contexto requiere más VRAM.
El tamaño del modelo importa más de lo que te gustaría, y esto está medido, no
supuesto. Probado aquí con qwen2.5-coder:1.5b, zeltro create --classify-only devolvió JSON válido y con la forma correcta (la fontanería
funciona), pero recomendó una app de presupuestos para un registro de pedales de
guitarra, con el motivo "Laravel es ideal para crear apps de presupuestos". Salida
coherente, razonamiento incoherente.
Así que los modelos pequeños fallan de la peor manera: funcionan mecánicamente y se
equivocan en el fondo. Un modelo de ~30B con 24 GB de VRAM es más o menos el mínimo
para trabajo con agentes (qwen3-coder:30b es una descarga de 19 GB); por debajo de
eso, espera disparates verosímiles en lugar de errores.
Qwen Code además requiere Node 22 o posterior. Se instala y se ejecuta en Node 20
(npm avisa con EBADENGINE y funciona de todos modos), pero no está soportado.
LM Studio o vLLM#
Los dos exponen un servidor compatible con OpenAI, así que la forma es idéntica. LM Studio escucha en el puerto 1234; vLLM usa el 8000 de forma predeterminada:
zeltro ai-set --agent qwen --model <model> \
--api-base http://localhost:1234/v1 --api-key local
Codex con otro endpoint#
La CLI de Codex actual ya no lee OPENAI_BASE_URL, así que Zeltro pasa el endpoint
de zeltro ai-set --agent codex --api-base ... (o de ZELTRO_AI_API_BASE) como
ajuste propio de Codex, -c openai_base_url="…", en cada ejecución. El problema es
que Codex solo habla la API Responses de OpenAI, y no todos los servidores
compatibles la implementan. Para algo más complejo, configura Codex directamente en
~/.codex/config.toml con una entrada [model_providers]. Para Ollama o LM Studio,
Codex tiene su propio modo --oss (oss_provider en el mismo archivo). Consulta la
configuración avanzada de Codex.
Para modelos baratos o locales, qwen o aider dan menos trabajo.
Claude Code con un modelo local#
Claude Code habla la API de Anthropic, no la de OpenAI. Ollama 0.14 y posteriores también hablan la API de Anthropic, así que Claude Code puede usar un modelo de Ollama directamente:
zeltro ai-set --agent claude --model qwen3-coder:30b \
--api-base http://localhost:11434
Fíjate en que la URL no lleva /v1. Deja --api-key vacío: Ollama ignora la clave,
y Zeltro solo pasa claves que empiecen por sk-ant-. Si Claude Code te pide iniciar
sesión, primero ejecuta export ANTHROPIC_AUTH_TOKEN=ollama en tu shell, como hace
la guía de Ollama.
Para un servidor que solo habla la API de OpenAI, pon delante un proxy traductor como
LiteLLM y pasa su dirección como --api-base.
Solo vale la pena si quieres específicamente la interfaz de Claude Code con un modelo
local. Si no, qwen implica menos maquinaria.
Volver atrás#
zeltro ai-set --agent claude --api-base none --api-key ""
none borra el endpoint; un --api-key vacío borra una clave guardada. Cambiar de
agente también borra el modelo guardado, así que esto te devuelve al modelo
predeterminado de Claude Code. Comprueba cómo está todo con zeltro ai-set --json-output.
Elegir con honestidad#
Los modelos más baratos son realmente peores en trabajos autónomos largos. El reparto realista:
- Ediciones rutinarias, crear la base de un proyecto, configuración, código repetitivo. Un modelo barato o local basta, y el ahorro es real.
- Que
zeltro createconstruya una app entera a partir de una frase, o depurar algo sutil. Los modelos de frontera todavía justifican su precio.
Nada te impide cambiar según la tarea. zeltro ai-set tarda un segundo y cambia el
valor predeterminado global; las variables ZELTRO_AI_* lo cambian para una sola
ejecución.
¿Encontraste un error en esta traducción? Avísanos en GitHub.