Trigger.dev: پلتفرم ساخت AI Workflow با تایپاسکریپت
خلاصهٔ کاملتر
Trigger.dev یه پلتفرم متنباز (Apache 2.0) برای ساخت AI agentها و workflowهای async با تایپاسکریپته. هدفش اینه که توسعهدهندهها بتونن بدون دردسر زیرساخت، taskهای سنگین و طولانی رو روی ابر اجرا کنن، چه پردازش ویدیو باشه، چه agent هوش مصنوعی، چه صفهای ایمیل.
مشکل اصلی که Trigger.dev حل میکنه اینه که وقتی یه AI workflow پیچیده داری، نه میتونی به timeout سرورهای معمولی اعتماد کنی، نه میخوای کل زیرساخت scaling رو خودت مدیریت کنی. این پلتفرم هر دو مشکل رو برمیداره: بدون تایماوت کار میکنه و scaling رو خودش هندل میکنه.
یکی از مهمترین قابلیتهاش اینه که میتونی AI agentهایی با tool calling بسازی که با هر مدلی مثل Claude یا GPT کار میکنن. به عنوان مثال، یه research agent که میتونه جستجو کنه، صفحات وب رو بخونه و تحلیل کنه، به این شکل تعریف میشه:
export const researchAgent = task({
id: "research-agent",
run: async ({ topic }: { topic: string }) => {
const messages: CoreMessage[] = [
{ role: "user", content: `Research: ${topic}` },
];
for (let i = 0; i < 10; i++) {
const { text, toolCalls, steps } = await generateText({
model: anthropic("claude-opus-4-20250514"),
system: "You are a research assistant with web access.",
messages,
tools: { search, browse, analyze },
maxSteps: 5,
});
if (!toolCalls.length) {
return { summary: text, stepsUsed: steps.length };
}
for (const call of toolCalls) {
const result = await executeTool(call);
messages.push({ role: "tool", content: result });
}
}
},
});سیستم retry خودکار هم یکی از نقاط قوت Trigger.dev هست. میتونی برای هر task مشخص کنی که چند بار تلاش کنه، با چه فاصله زمانی، و با چه ضریب backoffی. مثلاً:
export const simpleTask = task({
id: "simple-task",
retry: {
maxAttempts: 3,
minTimeoutInMs: 1000,
maxTimeoutInMs: 5000,
factor: 2,
randomize: true,
},
run: async (payload, { ctx }) => {
logger.log(`Attempt ${ctx.attempt.number}`);
throw new Error("This will cause a retry.");
},
});یه ویژگی جالب دیگهاش Realtime API هست که بهت اجازه میده وضعیت taskها رو مستقیم توی فرانتاندت نشون بدی. میتونی stream پاسخهای LLM رو از هر providerی مستقیم به کاربر forward کنی، بدون اینکه بخوای خودت این لایه ارتباطی رو بسازی.
آزادی runtime هم یه مزیت بزرگه. برخلاف خیلی از پلتفرمهای مشابه، Trigger.dev محدودیت خاصی نداره. میتونی Python اجرا کنی، از Puppeteer برای browser automation استفاده کنی، FFmpeg برای پردازش ویدیو اضافه کنی، و حتی با apt-get پکیجهای سیستمی نصب کنی.
از نظر observability هم کامله: فیلترینگ پیشرفته روی runها، لاگگیری و tracing، alert برای خطاها از طریق ایمیل یا Slack، versioning اتمیک برای هر deploy، و dashboard برای مانیتورینگ کامل.
Trigger.dev حالا با ۱۴.۸ هزار ستاره در GitHub و بیش از ۴.۸ هزار عضو در Discord، یه جامعه فعال داره. شرکتهایی مثل Supabase، Resend و Unkey ازش استفاده میکنن. یه تیم هم گفته بعد از مهاجرت از Temporal به Trigger.dev، نرخ موفقیت taskهاشون از ۸۷٪ به ۱۰۰٪ رسیده.
نکات کلیدی:
- پلتفرم متنباز (Apache 2.0) برای ساخت AI workflow و agent با تایپاسکریپت
- بدون تایماوت، بدون مدیریت سرور، با scaling خودکار
- retry خودکار با کنترل کامل روی تنظیمات
- Realtime API برای نمایش وضعیت task و stream کردن پاسخ LLM به فرانتاند
- پشتیبانی از Python، Puppeteer، FFmpeg، Prisma و ابزارهای دیگه
- observability کامل با لاگ، alert، فیلترینگ و versioning اتمیک




