Qué trabajamos
Hoy tomé una decisión que venía postergando: cómo estructurar la infraestructura del orquestador de agentes.
El contexto
Llevo semanas con la idea de automatizar la asignación de trabajo a Claude Code. El flujo ideal: pongo un ticket en mi issue tracker, el agente lo toma, trabaja, y me deja un PR listo para revisar.
Encontré agent-worker de Owain Lewis que hace exactamente eso. Pero tiene su propio daemon de polling — un proceso que hay que hostear y mantener.
Me resistía a eso. Ya tengo suficientes procesos corriendo que monitorear.
El insight
Estaba complicando algo simple. Trigger.dev ya hace todo lo que necesito:
- Polling via schedules (cron)
- Reintentos automáticos
- Dashboard con logs
- Alertas cuando algo falla
No necesito construir infraestructura de background jobs. Ya existe.
Lo que decidí
Arquitectura de repo central. Un solo proyecto de Trigger.dev en gnb-labs/main-repo que orquesta todo:
- Jobs internos (diario, LinkedIn, docs)
- Shared jobs (webhooks, notificaciones)
- Jobs de clientes (diferenciados por PROJECT_ID)
Los repos de clientes no tienen Trigger.dev instalado. El orquestador los lee vía GitHub API.
Consideré la alternativa (Trigger.dev en cada repo), pero para mi caso no tiene sentido. No tengo requerimientos de aislamiento estricto por cliente. Y mantener N deploys separados es más trabajo que uno central.
Lo que funcionó
- La comparación daemon vs. Trigger.dev fue clara una vez que la escribí
- El diagrama de arquitectura ayudó a visualizar las opciones
Lo que todavía no sé
- ¿Cómo manejar rate limits del issue tracker si escalo a muchos tickets?
- ¿Git worktrees escalan bien con 5+ agentes en paralelo?
- ¿Qué pasa si Claude Code se queda colgado? ¿Cómo detecto timeout?
Errores cometidos
Perdí tiempo considerando soluciones más complejas:
- Kubernetes para escalar agentes (overkill para mi volumen)
- Base de datos para trackear estado (el issue tracker ya es mi fuente de verdad)
- Queue propia con Redis (Trigger.dev ya tiene cola)
La regla que me recuerdo: empieza con lo más simple que funcione.
Guía de Operaciones GNB Labs
Hoy también publiqué la Guía de Operaciones para Equipos Humanos + Agentes de IA — el documento que define cómo funciona GNB Labs como equipo híbrido.
Qué cubre la guía
- Linear como fuente de verdad: estructura de workspace, nomenclatura de issues, labels obligatorios (
agent-ok,agent-first,human-only), estados del flujo, y cómo escribir issues que los agentes entienden. - Slack como hub de comunicación: estructura de canales, protocolo de mensajes para agentes, y cómo usar Slack como input via MCP.
- GitHub como entorno de ejecución: convención de branches, el
CLAUDE.mdcomo manual del agente, y Claude Code Action para revisión automática de PRs. - Trigger.dev como motor: arquitectura del repo central y el job
check-ticketsque activa a los agentes cada 30 minutos. - 4 flujos operativos: tarea técnica por agente, revisión de PR con @claude, generación de contenido, y peticiones ad-hoc desde Slack.
- Reglas para agentes: qué siempre hacer, qué nunca hacer, y cómo actuar ante la duda.
Por qué publicarla
Decidí hacerla pública porque:
- Me obliga a ser riguroso — si alguien la puede leer, tiene que tener sentido
- Es la referencia para cualquier colaborador o agente nuevo que entre al equipo
- El valor no está en el secreto, sino en la ejecución
Lo que falta
La guía describe la arquitectura objetivo. Mañana empiezo la implementación real: el primer job check-tickets en Trigger.dev que tome tareas de Linear y active a Claude Code.
Resultados
| Entregable | URL | Estado |
|---|---|---|
| Artículo de blog (arquitectura) | /trigger-dev-orquestar-agentes-ia | En producción |
| Guía de operaciones | /guia-operaciones-equipos-humanos-agentes-ia | En producción |
| Ficha Trigger.dev | /trigger-dev | En producción |
| Post LinkedIn | Pendiente de publicar | Listo |
Aprendizaje clave
El mejor código es el que no escribes. Antes de construir infraestructura propia, busca si ya existe algo que resuelva el problema. En este caso, Trigger.dev ya tenía todo: scheduling, reintentos, observabilidad, alertas.
El tiempo que habría gastado construyendo un daemon propio lo puedo invertir en la lógica del agente — que es lo que realmente importa.
Próximo paso concreto
Implementar el primer job: check-tickets. Un schedule que corre cada 30 minutos, consulta el issue tracker, y loggea los tickets encontrados. Sin invocar Claude Code todavía — solo el polling.
Una vez que eso funcione, agrego la invocación del agente.
Bonus: 10 Tips de Claude Code que no conocías
Encontré un artículo de Trigger.dev con tips avanzados de Claude Code. Los más útiles para mi workflow:
1. Context Pre-Warming via Session Forking
Duplica sesiones completas para crear ramas independientes sin contaminar el contexto.
claude --resume master-context --fork-session
2. Seamless Code Review Loops
Retoma sesiones anteriores vinculadas a PRs automáticamente.
claude --from-pr 447
3. Compose Prompts in Your Editor
Abre tu editor preferido para redactar prompts complejos. Atajo: Ctrl+G
4. Execution via Inline Shell
Ejecuta comandos directamente sin LLM. Prefija con ! y el output se añade al contexto automáticamente.
5. Effort Levels
Controla el nivel computacional mediante /model: Low, Medium, High, Max.
CLAUDE_CODE_EFFORT_LEVEL=low
6. Parallel Worktrees
Crea directorios aislados para múltiples sesiones.
claude --worktree feature/auth-refactor
7. Structured JSON Output
Produce salida estructurada y parseable.
claude -p --output-format json --json-schema ./schemas/security-audit.schema.json
8. Surgical Context Compaction
Comprime sesiones largas preservando contexto crucial. Atajo: Esc doble para rewind menu.
9. Dynamic Multi-Agent Orchestration
Define subagentes en tiempo de ejecución con delegación por modelo.
10. Headless CI/CD with Hard Budget Caps
Asegura pipelines autónomas con límites.
claude -p --max-turns 3 --max-budget-usd 1.50
Fuente: 10 Claude Code Tips You Didn't Know
Recursos
- Trigger.dev — ficha de herramienta
- Mi Primer Empleado de IA — el programa para construir tu primer agente
- Claudia en acción — cómo opera este sitio con IA