4. Providers y modelos
4. Providers y modelos
La pieza más importante de Goose: el provider define cómo habla con el modelo.
Hay tres familias de providers:
flowchart TD
G[Goose] --> CP[CLI Providers]
G --> ACP[ACP Providers]
G --> OAI[OpenAI-compat APIs]
CP --> C1[Claude Code]
CP --> C2[Codex]
CP --> C3[Cursor Agent]
CP --> C4[Gemini CLI]
ACP --> A1[Agentes\nempresariales]
OAI --> O1[OpenAI directo]
OAI --> O2[OpenRouter]
OAI --> O3[Together / Local]
style CP fill:#dcfce7,stroke:#166534
style ACP fill:#bfdbfe,stroke:#1e40af
style OAI fill:#fef3c7,stroke:#92400e
CLI providers — la novedad de Goose
Idea: en lugar de que Goose hable directo con la API de Anthropic/OpenAI/Google, invoca la CLI oficial de cada vendor.
flowchart LR
G[Goose] -->|spawn process| CC[claude-code CLI]
CC -->|API calls| AT[API Anthropic]
¿Por qué hacer esto?
- Reutilizás la auth que ya configuraste para esa CLI (Claude Code, Codex, Gemini CLI).
- Heredás features que solo esa CLI tiene (sus tool definitions, su memory, su sampling).
- No tenés que mantener API keys duplicadas.
- Cambiar de provider es swappear el binario, no reescribir tu config.
Claude Code provider
# ~/.config/goose/config.yaml
goose_provider: claude-code
goose_model: claude-sonnet-4-5
Pre-requisito: tener claude instalado y autenticado:
which claude # /usr/local/bin/claude
claude --version
Si Claude Code está autenticado, Goose hereda esa autenticación. No tenés que pasar API keys a Goose.
Codex provider
goose_provider: codex
goose_model: gpt-5-codex
Misma lógica con codex CLI de OpenAI.
Cursor Agent provider
goose_provider: cursor-agent
goose_model: claude-sonnet-4-5 # o el que Cursor soporte
Pre-requisito: Cursor instalado con cursor-agent en PATH. Permite usar tu suscripción de Cursor desde Goose CLI.
Gemini CLI provider
goose_provider: gemini-cli
goose_model: gemini-2.5-pro
Pre-requisito: gcloud auth configurado o API key de Google AI Studio.
Cuándo usar CLI providers
- Ya pagás suscripción de Claude Pro / Cursor / ChatGPT y querés aprovecharla.
- Querés evitar gestionar API keys en otro lado.
- Querés acceso a features avanzadas de la CLI subyacente (Claude Code memory, recipes propias, etc.).
Cuándo no
- Necesitás latencia mínima (un proxy CLI suma overhead).
- Vas a correr Goose en CI / containers donde no querés instalar la CLI del vendor.
- Querés cobrar a un budget API distinto del que usa la CLI.
ACP providers (Agent Connect Protocol)
ACP es un protocolo abierto para que agentes externos se enchufen a Goose. Pensado para entornos enterprise donde existe un servicio interno que ya hace inferencia.
flowchart LR
G[Goose] -->|ACP HTTP/gRPC| EA[Enterprise Agent\nendpoint]
EA --> M[Modelo interno\non-prem]
Configuración típica:
goose_provider: acp
acp:
endpoint: https://agents.empresa.com/v1
auth:
type: bearer
token_env: ACP_TOKEN
ACP es la respuesta de Goose a “¿cómo me integro con el plataforma de agentes que ya tiene mi empresa?”. Si tu organización tiene una capa de IA interna con su propia gobernanza, ACP es el camino.
OpenAI-compatible APIs
La opción clásica: API key + endpoint. Funciona con:
- OpenAI directo
- OpenRouter (acceso a 100+ modelos con una sola API)
- Together AI
- Modelos locales con servidor compatible (vLLM, Ollama, LM Studio en modo OpenAI)
goose_provider: openai
goose_model: gpt-4o
openai:
api_key_env: OPENAI_API_KEY
base_url: https://api.openai.com/v1 # default
Para OpenRouter:
goose_provider: openai
goose_model: anthropic/claude-sonnet-4.5
openai:
api_key_env: OPENROUTER_API_KEY
base_url: https://openrouter.ai/api/v1
Para Ollama local:
goose_provider: openai
goose_model: llama3.1
openai:
api_key_env: OLLAMA_KEY # cualquiera, ollama no valida
base_url: http://localhost:11434/v1
Configuración interactiva
Si no querés escribir YAML a mano:
goose configure --provider
Te lleva por un wizard:
? ¿Qué provider querés? (Use arrow keys)
> claude-code
codex
cursor-agent
gemini-cli
openai
acp
? ¿Modelo default? claude-sonnet-4-5
? ¿Verificar conexión? Y
✓ provider responde correctamente
Variables de entorno relevantes
| Variable | Uso |
|---|---|
GOOSE_PROVIDER | Override del provider en runtime |
GOOSE_MODEL | Override del modelo |
OPENAI_API_KEY | Para provider openai |
OPENROUTER_API_KEY | Para OpenRouter via provider openai |
ANTHROPIC_API_KEY | Si Claude Code provider la necesita |
GOOGLE_API_KEY | Para Gemini directo |
ACP_TOKEN | Auth para ACP provider |
Cobertura completa en el capítulo 14.
Cambiar provider en una sesión
Sin salir:
> /model claude-haiku-4-5
✓ switched to claude-haiku-4-5
Si necesitás cambiar el provider, salí y arrancá nueva sesión:
GOOSE_PROVIDER=openai goose session
Benchmarking de providers
¿Cuál provider corre tu workload más rápido / barato / mejor? Goose tiene un comando incluido:
goose bench
Corre una batería de tareas estándar contra cada provider configurado y reporta:
- Tokens consumidos
- Latencia p50, p99
- Tasa de éxito en tareas
- Costo estimado (si tenés precios configurados)
Útil antes de elegir provider para producción, no después.
Recomendaciones por caso de uso
| Situación | Provider recomendado |
|---|---|
| Desarrollador individual con Claude Pro | claude-code |
| Desarrollador individual con ChatGPT Plus | codex |
| Equipo con Cursor empresarial | cursor-agent |
| Plataforma interna con modelos privados | acp |
| Multi-modelo (planner barato + executor caro) | openai con OpenRouter (capítulo 5) |
| Modelos locales / on-prem | openai apuntando a vLLM/Ollama |
| CI / pipelines | openai directo (sin dependencias de CLI extras) |
Errores típicos
”provider claude-code: command not found”
La CLI subyacente no está instalada o no está en PATH. Instalala primero (claude para Claude Code, cursor-agent para Cursor).
“401 Unauthorized” en provider openai
API key inválida o expirada. Verificá:
echo $OPENAI_API_KEY | head -c 20 # debería empezar con sk-
“model not found”
El nombre del modelo cambió o no existe en tu provider. Listá modelos disponibles del provider directamente:
# OpenAI
curl https://api.openai.com/v1/models -H "Authorization: Bearer $OPENAI_API_KEY"
CLI provider mucho más lento que API directa
Es esperable: estás añadiendo una capa de IPC. Si latencia importa, usá API directa.
¿Qué viene?
Sabés conectar un provider. Pero los workflows serios usan múltiples modelos en la misma sesión: uno barato para planificar, otro caro para ejecutar. En el próximo capítulo cubrimos multi-model config — una de las features que distingue a Goose de la competencia.