فاز 14 · درس 18

محیط‌های اجرای ایجنت در پروداکشن: مقایسه Agno و Mastra

نوع
مفهومی
زمان
حدود 45 دقیقه
زبان‌ها
Python, TypeScript
پیش‌نیاز
فاز 14 · درس 01 (حلقه‌ی ایجنت)، فاز 14 · درس 13 (LangGraph)
دو مسیر موازی برای حرکت سریع و اتصال قطعات نرم‌افزاری بهینه در کنار یک مرکز پردازش سبک
فهرست مطالب
  1. اهداف یادگیری
  2. صورت مسئله
  3. مفهوم اصلی
  4. Agno
  5. Mastra
  6. جایگاه‌یابی
  7. کدام را چه زمانی انتخاب کنیم؟
  8. این الگو کجا به خطا می‌رود؟
  9. پیاده‌سازی از صفر
  10. استفاده از ابزارهای واقعی
  11. خروجی این درس
  12. تمرین‌ها
  13. اصطلاحات کلیدی
  14. برای مطالعه‌ی بیشتر

بسیاری از فریم‌ورک‌های رایج ساخت ایجنت هوش مصنوعی، برای ساخت نمونه‌های اولیه عالی هستند؛ اما وقتی زمان بردن سرویس به محیط پروداکشن و زیر بار ترافیک واقعی می‌رسد، سربار ناشی از ایجاد نشست و پیچیدگی ساختار گراف‌ها عملکرد سیستم را به‌شدت کاهش می‌دهد. گلوگاه اصلی در سامانه‌های پرترافیک، زمان و منابع مورد نیاز برای نمونه‌سازی ایجنت‌ها در هر درخواست است.

فریم‌ورک‌های نوینی مانند Agno در پایتون و Mastra در تایپ‌اسکریپت دقیقاً برای پاسخ به این چالش متولد شده‌اند. این ابزارها با حذف افزونگی‌های ساختاری، معماری بدون‌وضعیت (Stateless) و بهینه‌سازی فرآیند مقداردهی اولیه را در اولویت قرار داده‌اند تا بتوان ایجنت‌ها را بدون افت سرعت، مستقیماً در کنار فریم‌ورک‌هایی مثل FastAPI یا سرورهای جاوااسکریپتی مستقر کرد.

اگر برای راه‌اندازی این ابزارها و دانلود بسته‌ها از مخازن PyPI یا npm با اختلال یا کندی شبکه روبه‌رو شدید، استفاده از میرورهای داخلی بسته‌ها راهکاری عملی و پایدار خواهد بود. همچنین از آنجا که این فریم‌ورک‌ها از ارائه‌دهندگان متنوع مدل پشتیبانی می‌کنند، در صورت عدم دسترسی مستقیم به پرداخت ارزی یا کلیدهای خارجی، امکان اتصال کلاینت‌ها به گیت‌وی‌های ارائه‌دهنده سازگار با OpenAI وجود دارد.

یک محیط اجرای (runtime) ایجنت در پروداکشن، روی مواردی دست می‌گذارد که فریم‌ورک‌های پروتوتایپ نادیده‌اش می‌گیرند: هزینه‌ی نمونه‌سازی (instantiation)، سطوح تایپ‌شده‌ی گردش‌کار، و یک بک‌اندِ کاملاً آماده‌ی سرویس‌دهی. ترکیب سال 2026 این است: Agno (در پایتون) نمونه‌سازی میکروثانیه‌ای ایجنت و بک‌اندهای بی‌وضعیتِ (stateless) مبتنی بر FastAPI را هدف گرفته؛ Mastra هم ایجنت‌ها، ابزارها، پایپ‌لاین‌های کاری، مسیریابی یکپارچه‌ی مدل و ذخیره‌سازی ترکیبی را روی بستر Vercel AI SDK ارائه می‌دهد.

اهداف یادگیری

  • اهداف عملکردی Agno را بشناسید و بدانید در چه شرایطی اهمیت پیدا می‌کنند.
  • سه المان پایه‌ای Mastra — ایجنت‌ها (Agents)، ابزارها (Tools)، و پایپ‌لاین‌های کاری (Workflows) — به‌همراه تطبیق‌دهنده‌های سرور (server adapters) تحت پشتیبانی آن را نام ببرید.
  • توضیح دهید چرا یک بک‌اند بی‌وضعیت با دامنه‌ی نشست (session-scoped) در FastAPI، مسیر پیشنهادی و استاندارد Agno برای محیط پروداکشن است.
  • با توجه به پشته‌ی فناوری انتخابی (اولویت با پایتون در برابر اولویت با تایپ‌اسکریپت)، میان Agno و Mastra گزینه‌ی مناسب را انتخاب کنید.

صورت مسئله

فریم‌ورک‌هایی مثل LangGraph، AutoGen و CrewAI بیش‌ازحد سنگین‌اند. تیم‌هایی که صرفاً یک «حلقه‌ی ایجنتِ (agent loop) سریع و بی‌حاشیه در محیط اجرای خودمان» می‌خواهند، سراغ Agno (پایتون) یا Mastra (تایپ‌اسکریپت) می‌روند. هر دوی این ابزارها بخشی از ساختارهای اختصاصی فریم‌ورک‌ها را فدای سرعت خام و هماهنگی دقیق‌تر با پشته‌ی نرم‌افزاری موجود می‌کنند.

مفهوم اصلی

Agno

  • محیط اجرای پایتونی؛ نام قبلی آن Phi-data بود.
  • شعار آن‌ها: «بدون گراف، زنجیره یا الگوهای پیچیده و دست‌وپاگیر — فقط پایتون خالص.»
  • اهداف عملکردی طبق مستندات رسمی: نمونه‌سازی ایجنت در حدود 2μs، مصرف حافظه‌ی حدود 3.75 KiB به ازای هر ایجنت، و پشتیبانی از حدود 23 ارائه‌دهنده‌ی مدل.
  • مسیر پروداکشن: بک‌اند بی‌وضعیت FastAPI با دامنه‌ی نشست. با هر درخواست یک ایجنت تازه ساخته می‌شود و وضعیت نشست داخل پایگاه داده می‌نشیند.
  • پشتیبانی درون‌ساخت از مدل‌های چندحالته (متن، تصویر، صوت، ویدیو، فایل) و RAG ایجنتی (agentic RAG).

این اهداف سرعتی زمانی ارزش دارند که با هزاران ایجنت کوتاه‌عمر در هر ثانیه سروکار داشته باشید (تجمع چت‌ها یا پایپ‌لاین‌های ارزیابی). اگر قرار باشد یک ایجنت 10 دقیقه مداوم اجرا شود، این میکروثانیه‌ها دیگر اهمیتی ندارند.

Mastra

  • مبتنی بر تایپ‌اسکریپت، ساخته‌شده روی Vercel AI SDK.
  • سه المان پایه‌ای: ایجنت‌ها (Agents)، ابزارها (Tools) با اعتبارسنجی Zod، و پایپ‌لاین‌های کاری (Workflows).
  • مسیریاب مدلِ (Model Router) یکپارچه — دسترسی به بیش از 3,300 مدل از میان 94 ارائه‌دهنده (مارس 2026).
  • ذخیره‌سازی ترکیبی (Composite storage): تفکیک حافظه، پایپ‌لاین‌ها و مشاهده‌پذیری در بک‌اندهای مختلف؛ برای مشاهده‌پذیری در مقیاس بالا ClickHouse پیشنهاد می‌شود.
  • مجوز Apache 2.0 به‌همراه دایرکتوری‌های ee/ تحت مجوز تجاریِ منبع‌در‌دسترس (source-available).
  • تطبیق‌دهنده‌های سرور برای Express، Hono، Fastify و Koa؛ به‌همراه یکپارچگی پیش‌فرض و درجه‌یک با Next.js و Astro.
  • ارائه‌ی Mastra Studio (در آدرس localhost:4111) برای اشکال‌زدایی.
  • بیش از 22 هزار ستاره در گیت‌هاب و افزون بر 300 هزار دانلود هفتگی در npm تا نسخه‌ی 1.0 (ژانویه 2026).

جایگاه‌یابی

هیچ‌کدام نمی‌خواهند ادای LangGraph را درآورند. رقابت آن‌ها در این بخش‌هاست:

  • همخوانی با زبان برنامه‌نویسی. اگر پشته‌ی شما با پایتون چیده شده Agno را انتخاب کنید؛ اگر مبتنی بر تایپ‌اسکریپت است Mastra.
  • ارگونومی محیط اجرا. در Agno سربار سیستم نزدیک به صفر است؛ در Mastra همه‌چیز کاملاً با اکوسیستم Vercel چفت‌وبست دارد.
  • مشاهده‌پذیری. هر دو با Langfuse، Phoenix و Opik یکپارچه می‌شوند (درس 24)، ولی ابزار Mastra Studio متعلق به خود Mastra است.

کدام را چه زمانی انتخاب کنیم؟

  • Agno — بک‌اند پایتونی، تعداد زیادی ایجنت کوتاه‌عمر، الزامات سفت‌وسخت کارایی، و زیرساخت متکی به FastAPI.
  • Mastra — بک‌اند تایپ‌اسکریپتی، استقرار روی Next.js یا Vercel، مسیریابی یکپارچه میان چندین ارائه‌دهنده‌ی مدل، و ابزارهایی با تایپ دقیق با Zod.
  • LangGraph (درس 13) — زمانی که وضعیت پایدار (durable state) و استدلال صریح در قالب گراف، مهم‌تر از سرعت پردازش خام باشد.
  • OpenAI / Claude Agent SDK — زمانی که چارچوب استاندارد و محصولیِ ارائه‌دهنده را می‌خواهید (درس‌های 16 و 17).

این الگو کجا به خطا می‌رود؟

  • سرعت‌پرستی بیهوده. انتخاب Agno فقط به این دلیل که «2 میکروثانیه» جذاب به نظر می‌رسد، درحالی‌که کل پردازش شما یک فراخوانی کند ایجنت در هر درخواست است. در این حالت گلوگاه شما اصلاً سربار سیستم نیست.
  • قفل شدن در اکوسیستم (Lock-in). هماهنگی Mastra با سبک و سیاق Vercel، روی خود Vercel مزیت است اما در محیط‌های دیگر عیب به‌شمار می‌رود.
  • سوءتفاهم درباره‌ی مجوز سازمانی. پوشه‌های ee/ در Mastra منبع‌دردسترس هستند، نه Apache 2.0. اگر برنامه‌ای برای fork کردن پروژه دارید، حتماً متن مجوزها را بخوانید.
محیط اجرای پروداکشنیک ایجنت تازه به ازای هر درخواست
PRODUCTION RUNTIMEAgno's recommended production shape: a stateless session-scoped backend where every request instantiates a fresh agent in microseconds, session state lives in a store, and the agent is torn down after the response. Mastra makes the same bet in TypeScript with typed Agents, Tools, and Workflows served behind standard server adapters.درخواستپاسخایجنتایجنت تازه، ساخت در ~usمخزن نشستحلقهٔ بی‌وضعیت: ایجنت یک‌بارمصرف است، اما نشست پابرجا می‌ماند
ساختار پیشنهادی Agno برای پروداکشن: یک بک‌اند بی‌وضعیت با دامنهٔ نشست که در آن هر درخواست یک ایجنت تازه را در چند میکروثانیه می‌سازد، وضعیت نشست در یک پایگاه داده ذخیره می‌شود و پس از ارسال پاسخ، ایجنت منهدم می‌گردد. Mastra نیز همین رویکرد را در TypeScript با ایجنت‌ها، ابزارها و جریان‌های کاری تایپ‌شده در قالب تطبیق‌دهنده‌های استاندارد سرور در پیش می‌گیرد.

پیاده‌سازی از صفر

این درس ماهیت مقایسه‌ای دارد — هیچ دست‌سازه‌ی کدِ واحدی نمی‌تواند حق مطلب را درباره‌ی هر دو فریم‌ورک ادا کند. برای دیدن یک نمونه‌ی کوچک و مقایسه‌ی روبه‌رو، به code/main.py سر بزنید: جریان ساده‌ی «اجرای یک ایجنت، استریم کردن خروجی و ذخیره‌ی نشست» که دو بار پیاده‌سازی شده است (یک بار به سبک Agno و یک بار به سبک Mastra).

اجرای آن:

python3 code/main.py

این دستور دو ردگیری محاسبات (trace) با ساختار متفاوت ولی کارکردی کاملاً یکسان نمایش می‌دهد.

استفاده از ابزارهای واقعی

  • Agno — مناسب بک‌اند پایتونی که نیازمند سرعت بالا و ساختار آماده‌ی FastAPI است.
  • Mastra — مناسب بک‌اند تایپ‌اسکریپتی با تنوع بالایی از ارائه‌دهندگان مدل و نیازمند الگوهای پیشرفته‌ی پایپ‌لاین کاری.
  • هر دو فریم‌ورک هوک‌های مشاهده‌پذیری توکار ارائه می‌دهند و به‌راحتی با Langfuse یکپارچه می‌شوند.

خروجی این درس

فایل outputs/skill-runtime-picker.md بر اساس پشته‌ی فنی، سقف تاخیر (latency budget) و وضعیت عملیاتی شما، بهترین گزینه را از میان Agno، Mastra، LangGraph یا SDK اختصاصی ارائه‌دهندگان انتخاب می‌کند.

تمرین‌ها

  1. مستندات Agno را مطالعه کنید. حلقه‌ی ReAct با کتابخانه‌ی استاندارد (درس 01) را به Agno منتقل کنید. چه بخش‌هایی حذف شدند؟ چه چیزهایی دست‌نخورده باقی ماندند؟
  2. مستندات Mastra را بررسی کنید. همان حلقه را روی Mastra پیاده کنید. سیستم تایپ‌گذاری ابزارها (استفاده از Zod در برابر عدم استفاده از آن) چه تغییری کرد؟
  3. بنچ‌مارک بگیرید: تاخیر در نمونه‌سازی ایجنت را روی پشته‌ی خودتان بسنجید. آیا رسیدن به سرعت 2 میکروثانیه‌ای Agno واقعاً روی حجم کاری شما اثر ملموسی دارد؟
  4. برنامه‌ی مهاجرت طراحی کنید: اگر پروژه‌ای را با CrewAI در پایتون اجرا کرده‌اید، جابه‌جایی به Agno چه بخش‌هایی از سیستم را از کار می‌اندازد؟
  5. متن مجوز ee/ را در Mastra بررسی کنید. چه محدودیت‌هایی ممکن است مانع یک fork متن‌باز از این پروژه شود؟

اصطلاحات کلیدی

اصطلاح باور عامیانه معنای واقعی و فنی
Agno «ایجنت‌های سریع در پایتون» محیط اجرای ایجنت بی‌وضعیت با دامنه‌ی محدود به نشست
Mastra «ایجنت‌های تایپ‌اسکریپت روی Vercel AI SDK» ترکیب ایجنت‌ها + ابزارها + پایپ‌لاین‌های کاری + مسیریاب مدل
Unified Model Router «دسترسی به چند ارائه‌دهنده» کلاینت یکپارچه برای بیش از 3,300 مدل از 94 ارائه‌دهنده
Composite storage «پشتیبانی از چند بک‌اند» تفکیک حافظه، پایپ‌لاین‌ها و مشاهده‌پذیری در فضاهای ذخیره‌سازی مجزا
Mastra Studio «اشکال‌زدای محلی» رابط کاربری روی localhost:4111 برای بازرسی درون برنامه‌ای ایجنت‌ها
Source-available «متن‌باز نبودن» مجوزی که خواندن کدهای منبع را مجاز می‌داند اما کاربرد تجاری آن را محدود می‌کند

برای مطالعه‌ی بیشتر

  • مستندات Agno Agent Framework — اهداف عملکردی و شیوه‌ی اتصال به FastAPI
  • مستندات Mastra — المان‌های پایه‌ای، تطبیق‌دهنده‌های سرور و مسیریاب مدل
  • بررسی اجمالی LangGraph — گزینه‌ی جایگزین مبتنی بر گراف وضعیت‌دار
  • Comet Opik — مقایسه‌ی امکانات مشاهده‌پذیری که در یکپارچه‌سازی‌های Mastra به آن اشاره شده است

خودآزمایی

به سؤال‌ها جواب بدهید تا ببینید چقدر از درس در ذهنتان مانده است.

  1. پیش از درساین درس چه جفت‌زبانی را برای هر محیط اجرا پیشنهاد می‌کند؟
  2. پیش از درسساختار پیشنهادی Agno برای استقرار در پروداکشن چیست؟
  3. حین درسسه ساختار اولیه (primitives) در Mastra کدامند؟
  4. حین درسبر اساس مستندات Agno، هزینه ساخت هر ایجنت تقریباً چقدر برآورد شده است؟
  5. حین درسقابلیت Unified Model Router در Mastra چه امکانی فراهم می‌کند؟
  6. پس از درسدر چه حالتی انتخاب Agno صرفاً به دلیل کارایی و سرعت، تصمیم نادرستی است؟
  7. پس از درسپیش از fork کردن Mastra باید چه جنبه‌ای از مجوز (لایسنس) آن را با دقت بررسی کرد؟

سؤالات متداول

چرا سرعت نمونه‌سازی 2 میکروثانیه‌ای در Agno مهم است؟

این سرعت بالا برای سناریوهایی با هزاران ایجنت کوتاه‌عمر در ثانیه (مانند پردازش موازی چت‌ها یا پایپ‌لاین‌های ارزیابی) حیاتی است، اما در پردازش‌های تک‌درخواستی و طولانی اهمیت چندانی ندارد.

المان‌های پایه‌ای فریم‌ورک Mastra کدام‌اند؟

فریم‌ورک Mastra بر پایه سه المان ایجنت‌ها (Agents)، ابزارها با اعتبارسنجی Zod (یا همان Tools)، و پایپ‌لاین‌های کاری (Workflows) ساخته شده است.

چه تفاوتی میان انتخاب Agno و Mastra از نظر پشته فنی وجود دارد؟

اگر بک‌اند شما بر پایه‌ی پایتون و FastAPI است و نیاز به کمترین سربار حافظه دارید Agno انتخاب مناسبی است؛ اما برای پشته‌های تایپ‌اسکریپت و استقرار در اکوسیستم Vercel یا Next.js، فریم‌ورک Mastra اولویت دارد.

ما رو توی گوگل بیشتر ببین

با افزودن نکست ادمین به «منابع ترجیحی» گوگل، درس‌ها و مطالب ما را در بخش اخبار برتر جستجو بیشتر می‌بینید.