ایجنت‌ها

AutoGen مایکروسافت

AutoGen مایکروسافت — راهنمای فارسی از مجموعهٔ «ایجنت‌ها» در وبلاگ آیرا. بازنویسی‌شده با تمرکز روی کاربر ایرانی و روایت شناخت پیوسته.

نوشتهٔ به‌روزرسانی: ۴ دقیقه مطالعه
تصویر مقالهٔ AutoGen مایکروسافت

AutoGen یه فریم‌ورک متن‌باز از مایکروسافت ریسرچه که برای ساخت سیستم‌های چند-ایجنتی طراحی شده. ایدهٔ اصلی‌ش اینه که به جای اینکه یه AI همه کار رو بکنه، چند ایجنت مختلف با هم «حرف بزنن» و کارها رو بین‌شون تقسیم کنن. این مقاله نگاه دقیق‌تری به AutoGen داره — چطور کار می‌کنه، کِی به دردت می‌خوره، و کجا محدودیت داره.

AutoGen چیه و از کجا اومد

AutoGen در اواخر ۲۰۲۳ توسط تیم تحقیقاتی مایکروسافت (Microsoft Research) معرفی شد. نسخهٔ اصلی‌ش (که الان بهش AutoGen 0.2 می‌گن) خیلی سریع محبوب شد چون ساختار ساده‌ای برای تعریف ایجنت‌های متعدد داشت که می‌تونستن با هم در قالب یه مکالمه تعامل کنن.

در اوایل ۲۰۲۴، مایکروسافت نسخهٔ جدیدتری به اسم AutoGen 0.4 ارائه داد که معماری کاملاً بازنویسی‌شده داشت — رویکرد actor-based با event-driven architecture. این تغییر بزرگ بود و کاربرهایی که کد قدیمی داشتن باید migrate می‌کردن.

مفهوم اصلی: مکالمه بین ایجنت‌ها

ایدهٔ محوری AutoGen اینه که ایجنت‌ها با هم صحبت می‌کنن. هر ایجنت یه شخصیت (persona) داره، می‌تونه ابزار (tool) داشته باشه، و می‌تونه پیام ایجنت دیگه رو دریافت کنه، پردازش کنه، و جواب بده.

یه مثال ساده: می‌خوای یه تابع Python بنویسی و تستش کنی:

۱. ایجنتِ مهندس (Engineer Agent) — کد می‌نویسه ۲. ایجنتِ اجرا (Code Executor) — کد رو اجرا می‌کنه، خطا رو برمی‌گردونه ۳. ایجنتِ ناقد (Critic Agent) — کد رو بررسی می‌کنه، بهبود پیشنهاد می‌ده

این سه تا با هم «حرف می‌زنن» تا کد نهایی آماده بشه. هیچ‌کدام به‌تنهایی نمی‌تونستن این کار رو به همین کیفیت انجام بدن.

انواع ایجنت در AutoGen

AutoGen چند نوع ایجنت اصلی داره:

AssistantAgent — ایجنت پیش‌فرضه. از یه LLM استفاده می‌کنه (GPT، Claude، یا مدل محلی) و می‌تونه کد بنویسه، تحلیل کنه، یا برنامه‌ریزی کنه.

UserProxyAgent — نمایندهٔ کاربره. می‌تونه کد اجرا کنه، تأیید کاربر رو بگیره، یا ورودی انسانی رو به جریان اضافه کنه.

GroupChat و GroupChatManager — وقتی بخوای چند ایجنت با هم در یه «اتاق» باشن، GroupChat این رو مدیریت می‌کنه و تعیین می‌کنه نوبت بعدی با کیه.

در AutoGen 0.4 جدید، رویکرد تغییر کرده: AssistantAgent همچنان هست ولی حالا روی یه معماری event-driven بنا شده. Agents می‌تونن به topic های مختلف subscribe کنن و پیام‌ها رو asynchronously پردازش کنن — برای سیستم‌های پیچیده‌تر مناسب‌تره.

سازگاری با مدل‌های مختلف

یکی از نقاط قوت AutoGen اینه که با مدل‌های مختلف کار می‌کنه:

  • OpenAI (GPT-4o، o3)
  • Azure OpenAI
  • Anthropic Claude
  • Google Gemini
  • مدل‌های محلی از طریق Ollama یا LiteLLM

این یعنی می‌تونی یه ایجنت داشته باشی که از Claude استفاده می‌کنه و یه ایجنت دیگه از GPT-4o — هر کدام برای وظیفه‌ای که بهتر بلدنش.

Microsoft Magentic-One — نسل بعدی

مایکروسافت در اواخر ۲۰۲۴ یه پیاده‌سازی پیشرفته‌تر روی AutoGen معرفی کرد: Magentic-One. این یه سیستم multi-agent هست با پنج ایجنت تخصصی:

  • Orchestrator — رهبر، وظایف رو تقسیم و ردیابی می‌کنه
  • WebSurfer — مرورگر رو کنترل می‌کنه
  • FileSurfer — فایل‌ها رو می‌خونه
  • Coder — کد می‌نویسه و بررسی می‌کنه
  • ComputerTerminal — کد رو اجرا می‌کنه

Magentic-One روی بنچمارک‌های ایجنت عملکرد خوبی داره و نشون می‌ده چطور می‌شه AutoGen رو برای وظایف واقعی (نه فقط آزمایشگاهی) استفاده کرد.

کِی AutoGen مناسبه

AutoGen برای این موارد خوبه:

تحقیق و پروتوتایپ: تیم‌هایی که می‌خوان ایده‌های multi-agent رو سریع آزمایش کنن.

وظایف برنامه‌نویسی پیچیده: نوشتن، اجرا، دیباگ، و بهبود کد به صورت حلقهٔ خودکار.

تحلیل داده: ایجنت‌هایی که داده می‌خونن، تحلیل می‌کنن، تصویرسازی می‌کنن، و نتایج رو به هم منتقل می‌کنن.

اتوماسیون فرایند: جایی که یه workflow پیچیده رو می‌شه به مراحل مشخص تقسیم کرد و هر مرحله رو به یه ایجنت داد.

محدودیت‌ها و چالش‌ها

هزینهٔ API: هر تبادل پیام بین ایجنت‌ها یه API call هست. یه task که ۵ ایجنت در ۱۰ دور با هم صحبت می‌کنن = ۵۰ API call. این در مقیاس بزرگ گران می‌شه.

قابلیت اطمینان: ایجنت‌ها ممکنه وارد حلقه‌های بی‌نهایت بشن یا از مسیر اصلی خارج بشن. مدیریت این حالت‌ها نیاز به طراحی دقیق داره.

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

مهاجرت بین نسخه‌ها: API تغییر کرده بین 0.2 و 0.4 و این باعث شده مستندات قدیمی گمراه‌کننده باشن.

AutoGen در مقابل رقبا

  • LangChain/LangGraph: ابزار چندمنظوره‌تر، جامعهٔ بزرگ‌تر، ولی پیچیده‌تر برای شروع
  • CrewAI: تمرکز بیشتر روی «نقش‌بازی» ایجنت‌ها، کدنویسی‌ساده‌تر
  • LlamaIndex: بیشتر برای RAG و جستجو در داده، نه multi-agent

AutoGen در ساخت پیپلاین‌های مکالمه‌ای بین ایجنت‌ها راحت‌تره، ولی برای workflow های graph-based، LangGraph قوی‌تره.

شروع کار

نصب ساده‌ست:

pip install autogen-agentchat

یه مثال ساده با دو ایجنت:

from autogen import AssistantAgent, UserProxyAgent

assistant = AssistantAgent("assistant", llm_config={"model": "gpt-4o"})
user_proxy = UserProxyAgent("user_proxy", code_execution_config={"work_dir": "coding"})

user_proxy.initiate_chat(assistant, message="یه تابع Python بنویس که فیبوناچی حساب کنه")

مستندات رسمی در microsoft.github.io/autogen بیشتر مثال داره.

همچنین بخوان

#ایجنت‌ها

ادامهٔ مسیر

همهٔ مقاله‌ها ←

بیشتر در «ایجنت‌ها»