Modelos baratos e locais
O Zeltro não vende IA. Ele roda o agente que você indicar, com o modelo que você quiser, inclusive modelos rodando na sua própria máquina.
Os agentes padrão cobram preços de modelos de ponta. Para boa parte do trabalho no Zeltro (criar a estrutura do projeto, ajustar configuração, edições de rotina) um modelo bem mais barato dá conta, e a diferença é grande:
| Modelo | Entrada / Saída por 1M de tokens |
|---|---|
| Claude Sonnet 5 (API da Anthropic) | $2 / $10 |
| Qwen3 Coder Next (OpenRouter) | ~$0.12 / ~$0.80 |
| Qwen3 Coder 30B A3B Instruct (OpenRouter) | ~$0.07 / ~$0.28 |
| Qualquer modelo no Ollama local | nada por token (seu hardware e sua energia) |
Preços de setembro de 2026; os preços do OpenRouter mudam, então confira a página do modelo
antes de contar com eles. Em um teste em agosto de 2026, o Qwen Code com
qwen/qwen3-coder-30b-a3b-instruct construiu um app Django funcionando de ponta a ponta por
$0.87.
O Zeltro já economiza tokens antes de o modelo entrar em cena: o ambiente, a rede, o banco de dados e a parte de contêineres já vêm prontos, então o agente gasta o contexto no seu app em vez de deduzir a configuração do Docker. Trocar de modelo soma a essa economia em vez de substituí-la.
Como funciona#
zeltro ai-set --agent <agent> --model <model> --api-base <url> --api-key <key>
O --api-base é o mais importante. O Zeltro o entrega ao agente pela configuração
que aquele CLI lê:
| Agente | Endpoint passado como | Chave passada como | Endpoint que ele espera |
|---|---|---|---|
qwen |
OPENAI_BASE_URL |
OPENAI_API_KEY |
Compatível com OpenAI |
aider |
--openai-api-base |
--api-key <provider>=<key> |
Compatível com OpenAI |
opencode |
um provedor compatível com OpenAI embutido em OPENCODE_CONFIG_CONTENT |
o apiKey desse provedor |
Compatível com OpenAI |
hermes |
OPENAI_BASE_URL, com --provider openai |
OPENAI_API_KEY |
Compatível com OpenAI |
claude |
ANTHROPIC_BASE_URL |
ANTHROPIC_API_KEY, só se começar com sk-ant- |
Compatível com Anthropic |
codex |
-c openai_base_url=… (o Zeltro passa para você) |
OPENAI_API_KEY, só se começar com sk- |
API Responses da OpenAI |
agy |
nada (recusado) | GEMINI_API_KEY |
O próprio login do Google, ou uma chave de API do Gemini |
gemini (obsoleto) |
GOOGLE_GEMINI_BASE_URL |
GEMINI_API_KEY |
Uma chave de API paga do Gemini |
"Compatível com OpenAI" inclui OpenRouter, DeepInfra, Together, Fireworks, Ollama,
LM Studio e vLLM, então qwen, aider, opencode e hermes são os agentes para usar
com modelos baratos ou locais. Nos nossos testes, o OpenCode e o Hermes funcionaram via
OpenRouter com o DeepSeek V4.1 Flash; o OpenCode com o Qwen3 Coder às vezes descrevia uma
edição de arquivo em vez de fazê-la, então experimente outro modelo se um deles se comportar mal.
Para uma execução com outro modelo, sem mexer na configuração global, use as
substituições por sessão (ZELTRO_AI_AGENT,
ZELTRO_AI_MODEL, ZELTRO_AI_API_BASE, ZELTRO_AI_API_KEY_FILE). No app Zeltro,
um perfil de IA faz o mesmo.
OpenRouter (o hospedado mais barato)#
zeltro ai-set --agent qwen \
--model qwen/qwen3-coder-30b-a3b-instruct \
--api-base https://openrouter.ai/api/v1 \
--api-key sk-or-v1-...
Pague pelo uso, sem assinatura. O qwen/qwen3-coder-next é um modelo de programação Qwen mais novo e maior,
por duas a três vezes o preço. Com o Aider, use o prefixo próprio do OpenRouter
e nenhum endpoint:
--agent aider --model openrouter/qwen/qwen3-coder-30b-a3b-instruct --api-key sk-or-v1-....
Ollama (local, privado)#
Instale o Ollama, baixe um modelo de programação e aponte o Zeltro para ele:
ollama pull qwen3-coder:30b
zeltro ai-set --agent qwen \
--model qwen3-coder:30b \
--api-base http://localhost:11434/v1 \
--api-key ollama
A chave é só um marcador. O Ollama a ignora, mas os CLIs esperam alguma coisa.
Nada sai da sua máquina, o que importa em trabalhos para clientes sob NDA.
Aumente o tamanho de contexto do Ollama antes de começar. O padrão depende da sua VRAM
e é de apenas 4k tokens abaixo de 24 GB, curto demais para um agente. O Ollama
recomenda pelo menos 64k para ferramentas de programação: inicie o servidor com
OLLAMA_CONTEXT_LENGTH=64000 ollama serve, ou use o controle deslizante nas configurações
do app do Ollama. Mais contexto exige mais VRAM.
O tamanho do modelo importa mais do que você gostaria, e isso foi medido, não
suposto. Testado aqui com o qwen2.5-coder:1.5b, o zeltro create --classify-only devolveu um JSON válido e no formato certo (a parte mecânica está ok),
mas recomendou um app de orçamento para um controle de pedais de guitarra, com a justificativa
"Laravel é ótimo para criar apps de orçamento". Saída coerente, raciocínio incoerente.
Ou seja, modelos pequenos falham do pior jeito: dão certo na mecânica e erram
no conteúdo. Um modelo de ~30B em 24 GB de VRAM é mais ou menos o mínimo para trabalho
com agentes (o qwen3-coder:30b é um download de 19 GB); abaixo disso, espere bobagens plausíveis
em vez de erros.
O Qwen Code também exige Node 22 ou mais recente. Ele instala e roda no Node 20
(o npm avisa EBADENGINE e funciona mesmo assim), mas isso não é suportado.
LM Studio ou vLLM#
Os dois oferecem um servidor compatível com OpenAI, então o formato é idêntico. O LM Studio escuta na porta 1234; o vLLM usa 8000 por padrão:
zeltro ai-set --agent qwen --model <model> \
--api-base http://localhost:1234/v1 --api-key local
Codex com outro endpoint#
O Codex CLI atual não lê mais OPENAI_BASE_URL, então o Zeltro passa o endpoint
de zeltro ai-set --agent codex --api-base ... (ou ZELTRO_AI_API_BASE) como
uma configuração do próprio Codex, -c openai_base_url="…", em toda execução. O problema é que
o Codex só fala a API Responses da OpenAI, que nem todo servidor compatível
implementa. Para algo mais elaborado, configure o próprio Codex em
~/.codex/config.toml com uma entrada [model_providers]. Para Ollama ou LM Studio,
o Codex tem o próprio modo --oss (oss_provider no mesmo arquivo). Veja a
configuração avançada do Codex.
Para modelos baratos ou locais, qwen ou aider dão menos trabalho.
Claude Code com um modelo local#
O Claude Code fala a API da Anthropic, não a da OpenAI. O Ollama 0.14 e posteriores também falam a API da Anthropic, então o Claude Code pode usar um modelo do Ollama diretamente:
zeltro ai-set --agent claude --model qwen3-coder:30b \
--api-base http://localhost:11434
Repare que a URL não tem /v1. Deixe o --api-key vazio: o Ollama ignora a chave, e o
Zeltro só repassa chaves que começam com sk-ant-. Se o Claude Code pedir para você fazer
login, rode antes export ANTHROPIC_AUTH_TOKEN=ollama no seu shell, como faz o
guia do Ollama.
Para um servidor que só fala a API da OpenAI, coloque na frente um proxy de tradução como o
LiteLLM e passe o endereço dele como
--api-base.
Só vale a pena se você quiser especificamente a interface do Claude Code com um modelo
local. Fora isso, o qwen dá menos trabalho.
Voltando atrás#
zeltro ai-set --agent claude --api-base none --api-key ""
none apaga o endpoint; um --api-key vazio apaga uma chave guardada. Trocar de
agente também apaga o modelo guardado, então isso leva você de volta ao modelo padrão
do próprio Claude Code. Confira como está a configuração com zeltro ai-set --json-output.
Escolhendo com honestidade#
Modelos mais baratos são de fato piores em trabalhos autônomos longos. A divisão realista:
- Edições de rotina, estrutura inicial, configuração, código repetitivo. Um modelo barato ou local dá conta, e a economia é real.
- O
zeltro createconstruindo um app inteiro a partir de uma frase, ou depurando algo sutil. Os modelos de ponta ainda valem o preço.
Nada impede você de trocar a cada tarefa. O zeltro ai-set leva um segundo e muda o
padrão global; as variáveis ZELTRO_AI_* mudam só para uma execução.
Achou um erro nesta tradução? Avise a gente no GitHub.