Anthropic (Claude)
TL;DR
ONGRID_ANTHROPIC_API_KEY=sk-ant-...
ONGRID_ANTHROPIC_MODEL=claude-sonnet-4-6 # default
ONGRID_ANTHROPIC_BASE_URL= # optional; relay / regional endpointProvider id: anthropic. Adapter SDK: API nativa Anthropic Messages (vía el cliente Anthropic de eino bajo internal/pkg/llm/).
Env vars
| Var | Default | Notas |
|---|---|---|
ONGRID_ANTHROPIC_API_KEY | — | Vacío = provider descartado del catálogo |
ONGRID_ANTHROPIC_MODEL | claude-sonnet-4-6 | El modelo usado cuando no hay override por-llamada seteado |
ONGRID_ANTHROPIC_BASE_URL | (Anthropic API default) | Override para relays / endpoints regionales |
ONGRID_ANTHROPIC_MODELS | claude-opus-4-7,claude-sonnet-4-6,claude-haiku-4-5 | Separado por comas; el conjunto cerrado que muestra el picker de la SPA |
Las cuatro se siembran en el primer boot a system_settings.llm.anthropic_* vía SetIfAbsent — los re-boots nunca sobrescriben ediciones de operador en la UI de Settings.
Catálogo default
De fábrica, el picker de modelos muestra estos tres modelos Claude:
claude-opus-4-7— el modelo frontier. Úsalo para pases difíciles de causa raíz donde la precisión marginal supera al costo.claude-sonnet-4-6— el default. Costo / calidad balanceado; lo que el picker de chat preselecciona.claude-haiku-4-5— el barato. Recomendado para el extractor estructurado RCA Pass-2 y para llamadas translate — prompts cortos, respuestas cortas, sin loop de tool.
Edita la lista en la página /settings/llm de la SPA o sobreescribiendo ONGRID_ANTHROPIC_MODELS al boot.
Override de BaseURL
ONGRID_ANTHROPIC_BASE_URL=https://api.anthropic-relay.example.com/v1Úsalo para:
- Proxies de relay corporativos (el request sigue usando tu key de Anthropic — el relay es transparente).
- Endpoints regionales — Anthropic no publica múltiples regiones hoy, pero la perilla está aquí para paridad con otros providers.
La base URL default está cableada en cmd/ongrid/main.go:507:
BaseURL: firstNonEmpty(cfg.LLM.Anthropic.BaseURL, "https://api.anthropic.com/v1"),Haciendo a Anthropic el default
ONGRID_LLM_DEFAULT_PROVIDER=anthropicO, desde la SPA: /settings/llm → radio "Default provider".
La perilla default-provider controla qué usa Chat() cuando no hay provider pineado por-llamada (el worker RCA, translate, el chat de home cuando nada está seleccionado). Ver Routing para el mecanismo dynamic-default que deja que esto tome efecto sin reinicio.
Selección por-llamada
El picker de modelo de la UI de chat escribe tanto provider como model al envelope de chat send. El router (RoutingChatModel.pick) toma la opción eino WithProvider(id):
resp, err := chatModel.Generate(ctx, msgs,
model.WithModel("claude-opus-4-7"),
llm.WithProvider("anthropic"),
)Quirks
- Stop reasons — Anthropic devuelve su propio vocabulario de stop-reason (
end_turn,tool_use,max_tokens). El adapter de Ongrid mapea estos alFinishReasonestándar de eino para que el código downstream no tenga que branchear. - Tool use — la API de tool-use de Anthropic usa content blocks, no la forma plana de tool_calls de OpenAI. El adapter hace la traducción transparentemente; escribes tools de la misma forma sin importar el provider.
- System messages — Claude toma un único parámetro
system(string), no un mensaje líderrole:system. El adapter mergea múltiples mensajes system con separadores\n\nantes de enviar.
Ver también
- Overview de modelos — cómo se ensambla el catálogo.
- Routing —
WithProvider, defaults dinámicos. - Budget — topes de tokens por-día que aplican globalmente a través de providers.