¿Qué hace trigger-tasks?
Construye agentes de IA, flujos de trabajo y tareas de fondo duraderas con Trigger.dev. Úsalo al crear tareas, activar trabajos, manejar reintentos, programar trabajos cron o implementar colas y control de concurrencia.
Introducción
Este skill proporciona la integración con Trigger.dev, una plataforma para ejecutar tareas asíncronas, flujos de trabajo y agentes de IA de manera fiable. Utiliza TypeScript-first con soporte para reintentos automáticos, programación cron, colas y control de concurrencia.
Características principales
- Tareas duraderas: Ejecuta tareas que pueden durar horas, con recuperación automática tras fallos.
- Flujos de trabajo: Encadena múltiples pasos con dependencias y lógica condicional.
- Reintentos automáticos: Configura reintentos con retroceso exponencial y ventanas de tiempo.
- Programación cron: Programa tareas recurrentes con expresiones cron.
- Colas y concurrencia: Controla cuántas tareas ejecutar simultáneamente.
- Visibilidad: Panel en tiempo real para monitorear ejecuciones.
Funciones expuestas
triggerTask()
Desencadena una tarea definida con parámetros opcionales.
import { triggerTask } from 'triggerdev/skill';
const result = await triggerTask('my-task', {
payload: { userId: '123' },
options: {
delay: '5 minutes',
maxRetries: 3
}
});
defineJob()
Define un trabajo con configuración de reintentos y concurrencia.
import { defineJob } from 'triggerdev/skill';
const job = defineJob({
id: 'process-order',
name: 'Procesar pedido',
version: '1.0.0',
trigger: {
event: 'order.created',
filter: { status: 'pending' }
},
retry: {
maxAttempts: 5,
factor: 2,
minTimeoutInMs: 1000,
maxTimeoutInMs: 60000
},
run: async (payload, ctx) => {
// Lógica del trabajo
console.log('Procesando pedido:', payload.id);
}
});
onEvent()
Escucha eventos entrantes y ejecuta acciones.
import { onEvent } from 'triggerdev/skill';
onEvent('user.signup', async (event) => {
await sendWelcomeEmail(event.user.email);
});
Configuración
Variables de entorno
| Variable | Descripción |
|---|---|
TRIGGER_SECRET_KEY | Clave secreta de Trigger.dev |
TRIGGER_API_URL | URL de la API (por defecto: https://api.trigger.dev) |
Autenticación
trigger login --api-key TRIGGER_SECRET_KEY
Ejemplos de uso
Agente de IA con tareas
import { triggerTask, defineJob } from 'triggerdev/skill';
// Definir un agente como trabajo
const aiAgent = defineJob({
id: 'ai-agent',
name: 'Agente de IA',
trigger: {
event: 'agent.invoke',
schema: z.object({
prompt: z.string(),
context: z.object({})
})
},
run: async (payload, ctx) => {
// Llamar a un modelo de IA
const response = await callLLM(payload.prompt, payload.context);
return { response };
}
});
// Desencadenar el agente
await triggerTask('ai-agent', {
payload: {
prompt: 'Resume this document',
context: { docId: '123' }
}
});
Programación Cron
const cronJob = defineJob({
id: 'daily-report',
name: 'Informe diario',
trigger: {
cron: '0 8 * * *', // Cada día a las 8:00
timezone: 'America/Mexico_City'
},
run: async (_, ctx) => {
await generateDailyReport();
}
});
Control de Concurrencia
const limitedJob = defineJob({
id: 'rate-limited',
name: 'Tarea con límite de concurrencia',
trigger: {
event: 'data.process',
concurrencyLimit: 10 // Máximo 10 ejecuciones simultáneas
},
run: async (payload) => {
// Procesar datos
}
});
Manejo de errores
const robustJob = defineJob({
id: 'robust-task',
name: 'Tarea robusta',
retry: {
maxAttempts: 5,
strategies: [
{ error: ['NetworkError', 'TimeoutError'], maxAttempts: 3 },
{ error: ['ValidationError'], maxAttempts: 1 }
]
},
run: async (payload) => {
// Lógica propensa a errores
}
});
Integración con plataformas
Este skill es compatible con:
- Claude Code
- Cursor
- Codex (OpenAI)
- Otras herramientas que soporten skills markdown
Soporte
Para más información, consulta la documentación oficial de Trigger.dev.