Fase 5
OpenCode Go · LLM

OpenCode Go API · LLM para ITOps

OpenCode Go es una API compatible con OpenAI que ofrece modelos de lenguaje para automatizacion. En este proyecto, es el cerebro que analiza alertas de Prometheus, logs de Loki y genera recomendaciones accionables en tiempo real.

01

Configuracion del Endpoint

La API de OpenCode Go se configura como un nodo HTTP Request en n8n. Es compatible con el formato OpenAI chat completions — se puede usar el nodo nativo OpenAI con base URL personalizada.

Endpointhttps://opencode.ai/zen/go/v1/chat/completions
URL de la API. Compatible con el formato OpenAI chat completions. Soporta streaming y function calling.
AuthBearer {token}
Header Authorization con Bearer token. La API key se obtiene de opencode.ai → Settings → API Keys.
Modelodeepseek-v4-flash
Modelo recomendado para este proyecto: bajo costo, alto volumen. Soporta prompts de hasta 128K tokens.
FormatoOpenAI compatible
La API usa el mismo formato que OpenAI. Se puede usar el nodo nativo 'OpenAI' de n8n con base URL personalizada.
Temperature0.3
Baja temperatura para respuestas deterministicas. Los workflows de incidentes necesitan analisis consistente, no creatividad.
Max Tokens1024
Limite de tokens en la respuesta. Suficiente para un analisis de alerta con causas probables y acciones sugeridas.
La API key se almacena en Vault, no en el ConfigMap. El nodo HTTP Request de n8n lee la variable de entorno N8N_OPENCODE_API_KEY, que se inyecta via Vault Agent Injector. Nunca se hardcodea en el workflow.
02

Workflow de Verificacion

Antes de construir workflows complejos, se prueba la conexion con un workflow de 3 nodos. Si esto funciona, todo lo demas funciona.

1
Manual Trigger
Nodo Webhook o Manual Trigger. Permite ejecutar el workflow con un click desde la UI de n8n.
2
HTTP Request → OpenCode Go
POST a https://opencode.ai/zen/go/v1/chat/completions con un body JSON que incluye model, messages y temperature. La API key va en el header Authorization.
3
Verificar respuesta
El output del nodo HTTP Request contiene choices[0].message.content con la respuesta del LLM. Si el status es 200, la conexion funciona.
No avanzar al Workflow 1 hasta que esto funcione. Si la API no responde, revisar: API key valida, endpoint correcto, conectividad de red desde el pod de n8n. El workflow de prueba esta en k3s/manifests/n8n/workflows/test-opencode-connection.json.
03

Prompt Engineering

El prompt que se envia al LLM define la calidad del analisis. Cada workflow tiene su propio prompt diseniado para un proposito especifico. Este es el template del Workflow 1.

Prompt del Workflow 1 — Incident Response
Eres un SRE experto analizando una alerta de infraestructura.

DATOS DE LA ALERTA:
- Nombre: {{ alertname }}
- Severidad: {{ severity }}
- Descripcion: {{ description }}
- Valor: {{ value }}
- Labels: {{ labels }}

Analiza esta alerta y proporciona:
1. Causa probable (2-3 posibilidades ordenadas por probabilidad)
2. Impacto potencial si no se resuelve
3. Acciones correctivas inmediatas (comandos especificos si aplican)
4. Acciones preventivas a largo plazo

Responde en español, en formato Markdown para enviar a Discord.

El prompt usa variables de n8n ({{ alertname }}) que se reemplazan con los datos extraidos del webhook de Alertmanager. El formato Markdown permite que el mensaje de Discord tenga texto formateado (negrita, listas, codigo inline).

Siguiente: Workflow 1 — Incident Response

Con la API configurada, el primer workflow productivo: recibir alertas de Alertmanager, analizarlas con LLM y notificar a Discord en tiempo real.

Workflow 1