ایجنت هوش مصنوعی (AI Agent) را اکثر راهنماها ربات خودمختاری معرفی می‌کنند که خودش فکر می‌کند و خودش کار می‌کند. این تصویر گمراه‌کننده‌ترین نقطه‌ی شروع است. آنچه در عمل ایجنت را ایجنت می‌کند، نه هوش خالص، بلکه حلقه‌ی محدودسازی‌شده‌ی تصمیم‌گیری است — جایی که مدل زبانی هر بار یک ابزار صدا می‌زند، نتیجه را می‌خواند و بر اساس آن تصمیم بعدی را می‌گیرد.

ایجنت هوش مصنوعی چیست و چه فرقی با چت‌بات و RAG دارد؟#

ایجنت هوش مصنوعی سیستمی است که یک مدل زبانی بزرگ (Large Language Model) را در حلقه‌ی تکرارشونده با ابزار و حافظه ترکیب می‌کند و مسیر اجرا را در زمان اجرا (runtime) خودش تصمیم می‌گیرد. چت‌بات فقط متن تولید می‌کند؛ workflow مسیر از پیش تعریف‌شده دارد. ایجنت، تصمیم‌گیر است.

تعریف آکادمیک ایجنت از کتاب Russell و Norvig (1995) آمده: موجودی که محیط را ادراک می‌کند و بر اساس آن عمل می‌کند. تفاوت بنیادین با تعریف LLM-based agent این است که در ایجنت مدرن، مدل زبانی خودش تصمیم می‌گیرد کدام ابزار را صدا بزند و چه زمانی متوقف شود.

ایجنت و RAG (Retrieval-Augmented Generation) رقیب نیستند. RAG یک الگوی بازیابی‌محور است؛ ایجنت می‌تواند RAG را به‌عنوان یکی از ابزارهای خود صدا بزند. مثال ساده: چت‌بات به سؤال «هوا چطور است؟» یک پاسخ متنی می‌دهد. ایجنت، API هواشناسی را صدا می‌زند، نتیجه را می‌خواند و پاسخ را بر اساس داده‌ی واقعی می‌سازد.

Rich Sutton در مقاله‌ی «The Bitter Lesson» استدلال می‌کند که روش‌های عمومی با قدرت محاسباتی در بلندمدت بر دانش دستی‌ساخته غلبه می‌کنند. ایجنت‌ها دقیقاً همین الگو را دنبال می‌کنند: به‌جای کدنویسی منطق هر سناریو، از مدل می‌خواهیم در زمان اجرا تصمیم بگیرد.

معماری ایجنت: حلقه‌ی اجرا و 5 جزئی که آن را می‌سازند#

معماری ایجنت از 5 جزء ساخته می‌شود: مدل زبانی (مغز)، حافظه (کوتاه‌مدت و بلندمدت)، ابزارها (توابع قابل‌صدا)، برنامه‌ریز (Planner) و حلقه‌ی اجرا (Agent Loop) که این اجزا را به هم متصل می‌کند. حذف هر کدام، ایجنت را به یک چت‌بات یا اسکریپت تبدیل می‌کند.

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

حلقه‌ی اجرا: قلب ایجنت#

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

while iterations < max_iterations:
response = llm.call(messages, tools)
if response.tool_call:
result = execute_tool(response.tool_call)
messages.append(result)
else:
return response.text

پنج جزء معماری#

  • مدل زبانی: نقش مغز تصمیم‌گیر. خروجی‌اش فقط متن نیست؛ ساختار ابزار و پارامترها را هم تولید می‌کند.
  • حافظه‌ی کوتاه‌مدت (Short-term Memory): پنجره‌ی زمینه (Context Window) و تاریخچه‌ی گفتگو. ایجنت تک‌جلسه‌ای فقط به همین نیاز دارد.
  • حافظه‌ی بلندمدت (Long-term Memory): فقط در ایجنت‌های چندجلسه‌ای لازم است. افزودن vector DB به ایجنت تک‌مرحله‌ای، پیچیدگی الکی است.
  • ابزارها (Tool Use / Function Calling): تعریف دقیق schema هر ابزار حیاتی است. بدون schema، مدل بارها ابزار را با پارامتر غلط صدا می‌زند.
  • برنامه‌ریز (Planner): الگوی تصمیم‌گیری. ReAct یا Plan-and-Execute — انتخابش به نوع مسئله بستگی دارد.

ReAct یا Plan-and-Execute؟ انتخاب الگو بر اساس نوع مسئله#

ReAct (Reasoning and Acting) برای مسائلی مناسب است که تصمیم بعدی به نتیجه‌ی ابزار بستگی دارد. Plan-and-Execute برای مسائلی که کل مسیر از قبل قابل برنامه‌ریزی است. انتخاب غلط، هزینه‌ی توکن و تأخیر اضافه می‌سازد — و این هزینه در ایجنت‌های پرتعداد به‌سرعت انباشته می‌شود.

ReAct در مقاله‌ی Yao و همکاران (2022) معرفی شد: هر مرحله شامل فکر (Thought) و سپس عمل (Action) است. مدل قبل از صدا زدن ابزار، استدلال می‌کند. این الگو وقتی عالی است که نتیجه‌ی ابزار A، تصمیم بعدی را کاملاً تغییر می‌دهد.

Plan-and-Execute مسیر را از ابتدا طراحی می‌کند، سپس executor هر مرحله را اجرا می‌کند. برای ایجنت پردازش فایل CSV که همیشه مراحل ثابتی دارد، ReAct حلقه‌ی بی‌مورد اضافه می‌کند.

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

معیارReActPlan-and-Execute
تصمیم بعدی وابسته به نتیجه‌ی ابزار؟بله — مناسبخیر — مناسب
تعداد حلقه‌های اجرامتغیر (ممکن است زیاد)معمولاً 2 (برنامه‌ریزی + اجرا)
مصرف توکنبالاپایین‌تر
مثال عملیایجنت جستجوی وبایجنت گزارش‌دهی با مراحل ثابت

ساخت ایجنت: چرا برای شروع فریم‌ورک لازم نیست#

ساخت ایجنت برای شروع به فریم‌ورک نیاز ندارد. ایجنت تک‌ابزاری با 20 خط Python قابل‌فهم‌تر، سبک‌تر و قابل‌دیباگ‌تر از LangChain است. فریم‌ورک‌ها وقتی ارزش دارند که تعداد ابزارها و لایه‌های حافظه از حد معینی عبور کند. شروع با فریم‌ورک، یادگیری معماری را عقب می‌اندازد.

ایجنت تک‌ابزاری بدون فریم‌ورک#

یک ایجنت که فقط جستجوی وب می‌کند و پاسخ می‌دهد، به این شکل ساخته می‌شود: یک system prompt، یک tool schema، و یک حلقه‌ی while. OpenAI Function Calling یا Anthropic Tool Use هر دو این را پشتیبانی می‌کنند. هیچ لایه‌ی اضافه‌ای لازم نیست.

مقایسه‌ی فریم‌ورک‌ها#

فریم‌ورکتعداد ابزار مناسبپیچیدگیOverhead
LangChainزیاد (5+)بالاسنگین — abstraction زیاد
CrewAIمتوسطمتوسطتمرکز بر نقش‌های چندایجنتی
AutoGenمتوسطمتوسطایجنت‌های گفتگومحور
OpenAI Agents SDKکم تا متوسطکمسبک‌ترین گزینه در اکوسیستم OpenAI
حلقه‌ی دستیکم (1-2)کمهیچ — کنترل کامل

معیار انتخاب: تعداد ابزار × نیاز به حافظه × تعداد ایجنت. اگر حاصل‌ضرب این سه عدد کوچک است، فریم‌ورک اضافه‌کاری است.

چه زمانی ایجنت استفاده نکنم؟#

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

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

مثال واقعی از پروژه‌های کامیونیتی: ایجنتی برای «گزارش‌دهی ماهانه» ساخته شد. حلقه‌ی اجرا داشت، ابزار داشت، حافظه داشت. شکست خورد. در حالی که یک cron job ساده با 3 API call همان کار را با هزینه‌ی نزدیک به صفر و خروجی قطعی انجام می‌داد.

اشتباهات رایج که حلقه‌ی اجرا را منفجر می‌کند#

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

پادالگو: ایجنت بدون سقف#

ایجنتی در production که ابزار «جستجوی وب» را صدا می‌زند، نتیجه را ناکافی می‌بیند، دوباره جستجو می‌کند، دوباره ناکافی می‌بیند، و همین‌طور ادامه می‌دهد. بدون max_iterations، این حلقه تا اتمام توکن یا timeout ادامه دارد. حل عملی: max_iterations بین 5 تا 15، timeout سخت، و circuit breaker.

اشتباهات دیگر#

  • ابزار بدون schema دقیق: مدل نمی‌فهمد چه پارامتری لازم است و بارها صدا می‌زند.
  • حافظه‌ی بلندمدت بدون نیاز: افزودن vector DB به ایجنت تک‌مرحله‌ای فقط پیچیدگی و هزینه اضافه می‌کند.
  • نمایش ایجنت به‌عنوان «ربات خودمختار»: ایجنت‌های عملیاتی هنوز به محدودسازی شدید نیاز دارند. خودمختاری کامل، پادالگو است.
  • نداشتن fallback: اگر ایجنت به پاسخ نرسید، باید یک پاسخ ساده برگرداند، نه اینکه حلقه ادامه یابد.

حافظه، توکن و ایجنت چندمرحله‌ای#

حافظه و توکن، دو مقوله‌ای‌اند که در ایجنت چندمرحله‌ای مستقیماً هزینه و کیفیت را تعیین می‌کنند. هر بار که ایجنت ابزاری صدا می‌زند و نتیجه را به context برمی‌گرداند، توکن مصرف می‌شود. در ایجنت‌های چندابزاری، مدیریت پنجره‌ی زمینه (Context Window) به‌جای افزودن حافظه‌ی بلندمدت، اولویت اول است. توکن گران‌ترین منبع ایجنت است.

مکانیزم مصرف توکن در حلقه‌ی اجرا#

ورودی (system prompt + user message) + خروجی هر tool call + تاریخچه‌ی مکالمه. هر دور حلقه، توکن اضافه می‌کند. استراتژی‌های عملی: خلاصه‌سازی بین‌مرحله‌ای، حذف tool call‌های قدیمی، sliding window.

الگوی مشاهده‌شده در پروژه‌های کامیونیتی#

در پروژه‌های اعضا، الگوی غالب تک‌ایجنتی با 2 تا 4 ابزار بوده است. مولتی ایجنت (Multi-Agent System) در بیشتر موارد overkill است. الگوی supervisor-worker — یک ایجنت نظارت‌کننده که کارها را به ایجنت‌های کوچک‌تر تقسیم می‌کند — فقط وقتی لازم است که وظایف ذاتاً مستقل‌اند.

ساختار پوشه‌ی پیشنهادی#

agent/
├── main.py # حلقه‌ی اجرا
├── llm.py # فراخوانی مدل
├── tools/
│ ├── search.py
│ └── calculator.py
├── prompts/
│ └── system.txt
├── config.py # max_iterations، timeout
└── eval/
└── test_cases.json

نقش ارزیابی (Evaluation) جدی است. LLM-as-Judge — استفاده از یک مدل زبانی دیگر برای سنجش کیفیت خروجی ایجنت — در پروژه‌های کامیونیتی رایج‌ترین الگوی موفق قبل از production بوده است. ساخت eval set از سناریوهای واقعی، قبل از نوشتن کد ایجنت.

محدود کردن حلقه‌ی اجرا، نه خودمختار کردن ایجنت، مهارت اصلی است. اگر تازه می‌خواهید ایجنت بسازید، با حلقه‌ی دستی شروع کنید. اگر با n8n کار می‌کنید، دوره‌ی ساخت Ai Agent با N8N در کامیونیتی اسکول دقیقاً همین مسیر را پوشش می‌دهد — از معماری تا production.