اولین باری که یک agent مبتنی بر LLM (Large Language Model) را در یک pipeline تولیدی واقعی مستقر کردم، انتظار داشتم با موجودیتی خودمختار طرف باشم که کارها را انجام می‌دهد. آنچه در عمل دیدم چیز دیگری بود: حلقه‌ای تصمیم‌گیری احتمالاتی که هر بار با یک trace متفاوت برمی‌گشت و گاهی دقیقاً همان کاری را می‌کرد که در documentation نوشته نشده بود. آن تجربه نقطهٔ شروع وسواس من شد روی مهم‌ترین شکاف اتوماسیون مدرن: نه پرسش آیا agent می‌تواند، بلکه پرسش آیا می‌توان به آن در مسیر بحرانی اعتماد کرد.

اگر در حال ساختن سیستمی هستید که agentها را روی فرآیندهای واقعی سازمانی اجرا کند، این متن برای شماست. فرض من این است که با LLM کار کرده‌اید، مفهوم tool calling را می‌شناسید و اکنون با پرسش سخت‌تری روبه‌رو هستید: وقتی ده‌ها یا صدها agent باید روی داده‌های واقعی، APIهای واقعی و guardrailهای واقعی کار کنند، معماری درست چیست؟ در این متن از سطح مهندسی ارشد عبور می‌کنم و به لایه‌هایی می‌روم که در پیاده‌سازی‌های demo دیده نمی‌شوند. برای درک پیش‌زمینهٔ مفهومی، پیشنهاد می‌کنم ابتدا عامل هوش مصنوعی چیست و چگونه کار می‌کند را مرور کنید.

از RPA تا Agentic: چرا اتوماسیون قاعده‌محور به بن‌بست رسید؟

RPA که مخفف Robotic Process Automation است، در اواخر دههٔ ۲۰۱۰ به وعدهٔ اتوماسیون بدون تغییر سیستم تبدیل شد. اما در عمل روی سه محدودیت ساختاری متوقف شد. اول، هر تغییر کوچک در رابط کاربری یا API یک سیستم، script را می‌شکست. دوم، سناریوهایی که نیاز به قضاوت داشتند — اگر این ایمیل درخواست بازگشت بود و مشتری VIP بود و مبلغ زیر آستانه بود، این‌گونه عمل کن — به درخت‌های تصمیم غیرقابل‌مدیریت تبدیل می‌شدند. سوم، RPA مفهوم context را نمی‌فهمید و فقط الگوها را تطبیق می‌داد. تفاوت بنیادی agent و chatbot را می‌توانید در تفاوت عامل هوش مصنوعی و چت‌بات ببینید.

عامل‌های هوش مصنوعی یا AI Agents این محدودیت‌ها را با تغییر بنیادی مدل کنترل آدرس می‌دهند. به‌جای دنبال‌کردن فلوچارت از پیش تعریف‌شده، agent یک هدف می‌گیرد، وضعیت را درک می‌کند، ابزارها را انتخاب می‌کند، نتیجه را ارزیابی می‌کند و مسیر را در همان لحظه تصمیم می‌گیرد. این یعنی انعطاف‌پذیری در برابر تغییرات محیطی، همان چیزی که RPA در آن شکست خورد. اما این انعطاف‌پذیری هزینهٔ سنگینی دارد: از دست دادن قطعیت. کل بحث معماری agentic، تلاش برای بازگرداندن قطعیت در جایی است که ماهیت سیستم احتمالاتی است.

آمارها این گذار را تأیید می‌کنند. نظرسنجی McKinsey در سال ۲۰۲۵ نشان داد ۲۳ درصد سازمان‌ها در حال مقیاس‌دهی یک سیستم agentic در حداقل یک عملکرد سازمانی هستند و ۳۹ درصد دیگر وارد مرحلهٔ آزمایش شده‌اند. اما در هر عملکرد مشخص سازمانی، بیش از ۱۰ درصد پاسخ‌دهندگان گزارش نکرده‌اند که agentها را مقیاس می‌دهند. این شکاف بین آزمایش و تولید دقیقاً همان جایی است که پیچیدگی‌های معماری ظاهر می‌شوند.

نکته‌ای که در گزارش‌های سطح بالا کم‌رنگ می‌شود: بخش اعظم مقیاس‌دهی فعلی روی functions محدودی متمرکز است — software engineering، IT operations و service operations. در هر یک از این حوزه‌ها، محیط نسبتاً قابل‌پیش‌بینی است، ورودی‌ها نیمه‌ساختاریافته‌اند و هزینهٔ خطا در فاز اول پایین است. وقتی از این مرز عبور می‌کنیم — به finance، healthcare و legal — نرخ موفقیت به‌شدت افت می‌کند. این الگو تصادفی نیست؛ بازتاب‌دهندهٔ سطح عدم‌قطعیت در دامنه است.

RPA روی محیط ثابت ساخته شده بود؛ agent روی محیطی ساخته می‌شود که هر لحظه ممکن است تغییر کند. تفاوت بنیادی این دو، در معماری امنیت، observability و هزینهٔ نگهداری خودش را نشان می‌دهد.

آناتومی ReAct: چرا استدلال به‌هم‌پیوسته نقطهٔ عطف بود؟

قبل از ReAct، دو مسیر موازی وجود داشت. در یک سو، زنجیرهٔ تفکر یا Chain-of-Thought به مدل اجازه می‌داد استدلال کند اما grounded نبود؛ مدل در دنیای درونی خودش استدلال می‌کرد و نمی‌توانست با محیط تعامل کند. در سوی دیگر، مدل‌هایی بودند که action تولید می‌کردند — مثل navigation در محیط‌های شبیه‌سازی‌شده — اما reasoning سطح‌بالا و حافظهٔ کاری بلندمدت نداشتند. هیچ‌کدام به‌تنهایی نمی‌توانستند یک فرآیند واقعی را پیش ببرند. برای درک پیش‌نیاز این بحث، مدل‌های زبانی بزرگ و انقلاب آن‌ها را مطالعه کنید.

Shunyu Yao و همکارانش در Google Research و Princeton در مقاله‌ای که در ICLR 2023 ارائه شد، الگوی ReAct را معرفی کردند: تولید interleaved reasoning traces و task-specific actions. به‌زبان ساده، agent به‌جای اینکه یک بار فکر کند و بعد عمل کند، در حلقه‌ای پیوسته بین فکر کردن و انجام دادن حرکت می‌کند. هر observation از محیط، ورودی reasoning بعدی را تغییر می‌دهد و هر reasoning، انتخاب action بعدی را هدایت می‌کند. بخش عمدهٔ این ساختار امروز در تصمیم‌گیری agentها دیده می‌شود که در نحوه تصمیم‌گیری عامل‌های هوش مصنوعی باز شده است.

آنچه ReAct را از نظر مهندسی مهم می‌کند، صرفاً بهبود دقت نیست — اگرچه در بنچمارک‌هایی مثل HotpotQA و ALFWorld بهبود محسوسی نشان داد. مهم‌تر از دقت، ایجاد ساختار قابل‌trace است. reasoning traces به مهندس اجازه می‌دهند ببیند agent چرا یک ابزار را انتخاب کرده، چرا یک مسیر را رها کرده و کجا منطقش از هدف اصلی منحرف شده. بدون این traceها، debugging یک سیستم agentic عملاً غیرممکن می‌شود.

در عمل، پیاده‌سازی ReAct به یک loop سه‌مرحله‌ای تبدیل شده است که در شبه‌کد زیر خلاصه می‌شود:

while not task_complete:
    thought = llm.reason(observation, history)
    action  = llm.select_action(thought, available_tools)
    observation = tool_executor.run(action)
    history.append((thought, action, observation))
return final_answer

اما نکته‌ای که در implementationهای سطحی گم می‌شود این است: کیفیت observation به همان اندازه کیفیت reasoning اهمیت دارد. اگر ابزار شما خروجی JSON با هزاران فیلد برگرداند، agent نمی‌تواند از آن observation برای تصمیم‌گیری استفاده کند. طراحی observation — یعنی خلاصه‌سازی، فیلتر کردن و ساختاردهی خروجی ابزار قبل از بازگرداندن به مدل — یکی از پرتکرارترین نقاط شکست در production است. برای رویکرد ساخت practical، ساخت عامل هوش مصنوعی را ببینید.

ReAct نشان داد که agent خوب، agentی نیست که بیشتر فکر می‌کند؛ agentی است که observationهای بهتری دریافت می‌کند تا فکر بعدی‌اش grounded باشد.

خانوادهٔ الگوهایی که پس از ReAct آمدند — Reflexion، Tree-of-Thoughts و Plan-and-Execute — همه یک ایدهٔ مشترک دارند: شکستن مسئله به زیرمسئله‌ها و استفاده از feedback محیطی برای اصلاح مسیر. تفاوت آن‌ها در granularity feedback است. ReAct در سطح هر action بازخورد می‌گیرد، Reflexion در سطح کل episode و Plan-and-Execute قبل از اجرا یک نقشه می‌سازد و در صورت نیاز آن را بازبینی می‌کند. برای مهندس ارشد، انتخاب بین این الگوها یک تصمیم هزینه-فایده است: هرچه feedback دقیق‌تر، overhead محاسباتی بیشتر.

معماری‌های هماهنگ‌سازی از زنجیرهٔ خطی تا گراف حالت‌دار

وقتی از یک agent به چند agent می‌رویم، پرسش اصلی این نیست که چند agent داشته باشیم؛ پرسش این است که هماهنگ‌سازی چگونه انجام شود. در ادبیات فنی، چهار الگوی اصلی تثبیت شده‌اند که هر کدام trade-off مشخصی دارند.

الگوی اول: Prompt Chaining

در LangChain، مدل غالب orchestration یک زنجیرهٔ خطی از فراخوانی‌های LLM و APIهاست. هر مرحله خروجی مرحلهٔ قبل را به‌عنوان ورودی می‌گیرد و یک transformation مشخص انجام می‌دهد. مزیت اصلی سادگی است: جریان کنترل قابل‌پیش‌بینی، هر مرحله قابل تست و failure isolation آسان‌تر است. هزینه: هیچ adaptive rerouting وجود ندارد. اگر مرحلهٔ دوم شکست بخورد، کل زنجیره شکست می‌خورد مگر اینکه منطق retry صریح اضافه کنید.

برای فرآیندهایی که ورودی‌ها از پیش ساختاریافته‌اند — مثل پردازش فرم، استخراج داده از PDF و enrichment — این الگو کافی و بهینه است. زیاده‌روی در agentic کردن فرآیندی که ذاتاً خطی است، overhead محاسباتی و پیچیدگی debugging را بی‌دلیل بالا می‌برد.

الگوی دوم: Multi-Agent Conversation

AutoGen از Microsoft Research، agentها را به‌عنوان participant در یک گفتگوی گروهی مدل می‌کند. هر agent نقش خودش را دارد، پیام‌های دیگران را می‌بیند و می‌تواند در هر نقطه از مکالمه وارد شود. این الگو برای مسائلی مناسب است که راه‌حل از دل تقابل دیدگاه‌ها بیرون می‌آید: code review، طراحی معماری و حل مسئلهٔ چندبعدی. اما نقطهٔ ضعف آن predictable نبودن جریان است؛ در سیستم‌های تولیدی، گفتگویی که بیش از حد طول بکشد یا به حلقهٔ بی‌پایان بیفتد، یک failure mode جدی است.

الگوی سوم: Role-Based Workflow

CrewAI رویکرد متفاوتی دارد: به هر agent یک role، یک goal و مجموعه‌ای از tools اختصاص می‌دهد. interaction به‌صورت workflow مدل می‌شود — یک agent manager وجود دارد که وظایف را توزیع می‌کند و خروجی‌ها را جمع می‌کند. این الگو برای سناریوهای تحقیق، تحلیل، نوشتن و بازبینی بسیار مؤثر است، چون هر مرحله یک deliverable مشخص دارد و معیار پذیرش آن قابل تعریف است.

الگوی چهارم: Stateful Graph Orchestration

LangGraph که در سال‌های اخیر به استاندارد غیررسمی برای workflowهای پیچیده تبدیل شده، agentها را به‌عنوان node در یک graph حالت‌دار مدل می‌کند. Edgeها شرطی‌اند: بر اساس خروجی یک node، سیستم می‌تواند به node بعدی برود، به node قبلی برگردد یا به یک شاخهٔ کاملاً متفاوت منحرف شود. این الگو به‌طور مشخص برای فرآیندهایی طراحی شده که نیاز به human-in-the-loop، checkpointing و recovery دارند.

نکتهٔ کلیدی برای مهندس ارشد: گراف حالت‌دار امکان pause و resume در mid-execution را فراهم می‌کند. اگر agent در مرحلهٔ چهارم از هفت مرحله نیاز به تأیید انسانی داشته باشد، state ذخیره می‌شود، به اپراتور ارجاع داده می‌شود و پس از تأیید از همان نقطه ادامه می‌یابد. این قابلیت در محیط‌های regulated مثل finance و healthcare نه یک luxury، بلکه یک الزام است.

Microsoft Agent Framework نیز معماری مشابهی دارد: یک orchestrator مرکزی که agents تخصصی را روی Azure Container Apps هماهنگ می‌کند. Google Cloud ADK که مخفف Agent Development Kit است، رویکردی مشابه با orchestrator agent روی Cloud Run اتخاذ کرده است. روند صنعت به‌سمت orchestrator-mediated communication است: agentها مستقیماً با هم حرف نمی‌زنند؛ از طریق یک لایهٔ هماهنگ‌سازی که می‌تواند policy اعمال کند، trace ثبت کند و دسترسی را کنترل کند. گزینه‌های تجاری این لایه در بهترین ابزارهای اتوماسیون هوش مصنوعی فهرست شده است.

آنچه بنچمارک‌ها درباره واقعیت تولیدی می‌گویند

آمار adoption جذاب است، اما اگر می‌خواهید بدانید یک agent چقدر واقعاً می‌تواند کار کند، باید به بنچمارک‌های عملیاتی نگاه کنید. چند بنچمارک در سال‌های اخیر به معیارهای مرجع تبدیل شده‌اند و نتایج آن‌ها تصویری واقع‌بینانه‌تر از تبلیغات ارائه می‌دهند.

WebArena: جهش از ۱۵ به ۷۴ درصد

WebArena یک محیط وب واقع‌گرایانه با ۸۱۲ task افقی است که natural language intent را می‌گیرد و بررسی می‌کند آیا agent به هدف واقعی رسیده یا نه — با بررسی state سایت، دیتابیس، محتوا و URLها. نرخ موفقیت از حدود ۱۵ درصد در سال ۲۰۲۳ به ۷۴.۳ درصد در اوایل ۲۰۲۶ رسیده است. بهترین مدل‌ها الان در فاصلهٔ ۴ واحد درصدی baseline انسانی حدود ۷۸.۲ درصد هستند. این یکی از بنچمارک‌هایی است که شکاف مدل-انسان سریع‌ترین بسته شدن را نشان می‌دهد.

OSWorld: محیط دسکتاپ واقعی

OSWorld روی Ubuntu، Windows و macOS اجرا می‌شود و ۳۶۹ task شامل عملیات فایل، مرور وب و workflowهای چند-برنامه‌ای را ارزیابی می‌کند. دانشجویان علوم کامپیوتر حدود ۷۲ درصد این taskها را با median زمانی حدود دو دقیقه حل می‌کنند. مدل‌های قوی تاریخی فقط ۱ تا ۱۲ درصد موفقیت داشتند، به‌ویژه در taskهای graphical interface و multi-app. اما Claude Opus 4.5 با ۶۶.۳ درصد accuracy در صدر قرار گرفته و شکاف را به ۶ واحد درصدی انسان رسانده است.

MLE-bench: وظایف مهندسی یادگیری ماشین

MLE-bench شامل ۷۵ مسابقهٔ Kaggle در حوزه‌های NLP، computer vision و signal processing است. agentها از حدود ۱۷ درصد موفقیت در سال ۲۰۲۴ به ۶۴.۴ درصد در اوایل ۲۰۲۶ رسیده‌اند. این جهش ۴۷ واحد درصدی در دو سال، گویای سرعت رشد قابلیت در وظایف end-to-end یادگیری ماشین است — هرچند مسابقات ساختاریافته‌تر از کار واقعی data science هستند. اگر با پایه‌های این حوزه آشنا نیستید، یادگیری ماشین چیست و چگونه کار می‌کند نقطهٔ شروع مناسبی است.

AutomationBench: واقعیت SaaS workflow

AutomationBench-AA که با همکاری Zapier ساخته شده، ۶۵۷ task در ۴۰ محیط SaaS شبیه‌سازی‌شده مثل Gmail، Google Sheets، Slack، Salesforce، Zendesk، Jira و HubSpot را ارزیابی می‌کند. معیار اصلی، share of objectives completed without violating guardrails است. Claude Fable 5 و Opus 4.8 از Anthropic با ۴۸.۶ و ۴۸.۵ درصد پیشتازند؛ Gemini 3.5 Flash با ۴۲.۶ درصد و GPT-5.5 با ۴۲.۱ درصد در رتبه‌های بعدی قرار دارند.

یک یافتهٔ حیاتی از AutomationBench: هر مدلی قوانین کسب‌وکار را نقض می‌کند. نرخ نقض guardrail از ۰.۴۶ به‌ازای هر task برای Gemini 3.5 Flash تا ۱.۲۶ برای Qwen3.7 Plus متغیر است. Gemini 3.5 Flash با ۱۵ objective به‌ازای هر نقض guardrail بهترین ratio را دارد. این یعنی حتی بهترین مدل‌ها هم قادر نیستند بین هدف را کامل کن و قوانین را نقض نکن تعادل بی‌نقص برقرار کنند.

یافتهٔ دیگر: وظایف مالی سخت‌ترین هستند. agentها در Finance workflowها تقریباً نصف نسبت اهداف را کامل می‌کنند نسبت به Support و Operations. این الگو با مشاهدهٔ من از پروژه‌های واقعی همخوان است: هرچه قوانین کسب‌وکار پیچیده‌تر، state space بزرگ‌تر و هزینهٔ خطا بالاتر باشد، agentها بیشتر شکست می‌خورند. این یافته وقتی جدی‌تر می‌شود که بدانیم مدیران معمولاً از این شکست‌ها بی‌خبر می‌مانند، چون observability ضعیف است.

بنچمارکدامنهنرخ موفقیت فعلیشکاف با انسان
WebArenaمرور وب چندصفحه‌ای۷۴.۳٪~۴ واحد درصد
OSWorldمحیط دسکتاپ۶۶.۳٪~۶ واحد درصد
MLE-benchمسابقات ML۶۴.۴٪نامشخص
AutomationBench-AASaaS workflows۴۸.۶٪قابل توجه

الگوی مشترک این بنچمارک‌ها روشن است: در محیط‌های ساختاریافته مثل وب و دسکتاپ شکاف به‌سرعت بسته می‌شود؛ در محیط‌های با قوانین پیچیدهٔ کسب‌وکار مثل SaaS سازمانی و finance شکاف همچنان بزرگ است. برای مهندس ارشد، این یعنی انتخاب domain برای استقرار agent یک تصمیم استراتژیک است، نه صرفاً فنی. رویکرد عملی این انتخاب در اتوماسیون فرآیندهای کسب‌وکار با هوش مصنوعی باز شده است.

حالت‌های شکست در تولید و شکاف ایمنی-قابلیت

در محیط آزمایشگاهی، agentها impression خوبی می‌دهند. در تولید، الگوهای شکست متفاوتی ظاهر می‌شوند که در demo دیده نمی‌شوند. در مطالعه‌ای با ۳۰۶ پاسخ معتبر از practitioners و ۲۰ مصاحبهٔ عمیق که در arXiv منتشر شد، محققان دریافتند ۸۲ درصد از سیستم‌های گزارش‌شده در فاز production یا pilot هستند — یعنی شکست‌ها دیگر تئوریک نیستند.

Goal Drift

در فرآیندهای چندمرحله‌ای، agent به‌تدریج از هدف اصلی منحرف می‌شود. هر مرحله به‌خودی‌خود منطقی به نظر می‌رسد، اما مجموع مسیر به جایی می‌رسد که اصلاً هدف نبود. این پدیده به‌ویژه در loopهایی که reasoning trace طولانی دارند شایع است: context window پر می‌شود، agent هدف اصلی را فراموش می‌کند و روی زیرهدف اخیر تمرکز می‌کند.

راه‌حل معماری: goal re-anchoring. در هر cycle یا هر N cycle، هدف اصلی به‌صورت صریح به context تزریق شود. این کار ساده به نظر می‌رسد اما در پیاده‌سازی‌های واقعی بسیار مؤثر است. برخی تیم‌ها از یک agent ناظر جداگانه استفاده می‌کنند که فقط یک وظیفه دارد: بررسی اینکه آیا مسیر فعلی همچنان به هدف اصلی نزدیک می‌شود یا نه.

Tool Invocation Reliability

یک framework تشخیصی با ۱۲ دستهٔ خطا برای tool invocation در سیستم‌های multi-agent طراحی شده که failure modeها را در چهار لایهٔ مجزا دسته‌بندی می‌کند: initialization یعنی آیا ابزار درست مقداردهی شده، parameter handling یعنی آیا آرگومان‌ها درست‌اند، execution یعنی آیا فراخوانی موفق بود و result interpretation یعنی آیا agent خروجی را درست فهمید. در عمل، بیشترین شکست در لایهٔ سوم و چهارم رخ می‌دهد — یعنی حتی وقتی tool call موفق است، agent تفسیر اشتباهی از نتیجه می‌کند.

نکتهٔ کلیدی: وقتی تعداد ابزارهای در دسترس از حدود ۶۰ عدد عبور می‌کند، یک phase transition در دقت tool selection رخ می‌دهد. علت، semantic confusability است: ابزارهایی با توصیفات مشابه، مدل را در انتخاب گیج می‌کنند. راهکار hierarchical tool routing است — ابزارها در گروه‌های معنایی دسته‌بندی شوند و agent ابتدا گروه را انتخاب کند، سپس ابزار مشخص را.

Safety-Capability Gap

وقتی guardrailهایی برای جلوگیری از اقدامات ناایمن اعمال می‌کنید، task performance افت می‌کند. مطالعه‌ای با عنوان The Verifier Tax نشان می‌دهد نرخ بازیابی پس از blocked action پایین است — از ۲۱ درصد برای مدل‌های کوچک‌تر تا سطوح بالاتر برای مدل‌های بزرگ‌تر. این یعنی وقتی یک guardrail جلوی یک action را می‌گیرد، agent معمولاً نمی‌تواند مسیر جایگزین پیدا کند. نتیجه: یا guardrail را شل می‌کنید و ریسک امنیتی می‌پذیرید، یا سخت‌گیر می‌مانید و نرخ موفقیت را قربانی می‌کنید.

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

State Explosion در Multi-Agent

در سیستم‌های multi-agent، فضای حالت ترکیبی به‌صورت نمایی رشد می‌کند. اگر هر agent ۱۰ حالت ممکن داشته باشد و ۵ agent وجود داشته باشد، فضای حالت ۱۰ به توان ۵ است. در عمل، agentها state داخلی پیچیده‌تری دارند و این عدد بسیار بزرگ‌تر می‌شود. نتیجه: تست exhaustive غیرممکن می‌شود و failure modeهای emergent — رفتارهایی که از تعامل agentها بیرون می‌آیند اما در هیچ agent به‌تنهایی وجود ندارند — کشفشان دشوار است.

راهکار deterministic boundaries است. بین agentها contract صریح تعریف کنید — مثل Action Block در Pega Agentic AI که یک واحد امن اجرا با محدودیت‌های مشخص، contract تعریف‌شده و telemetry است. هر agent فقط می‌تواند از طریق این contractها با دیگران تعامل کند؛ نه از طریق free-form messaging. این الگو با درس‌های معماری مونولیتیک در برابر میکروسرویس قرابت مفهومی دارد که در معماری مونولیتیک یا میکروسرویس تفصیل داده شده است.

مطالعه‌ای در arXiv به شکست‌هایی پرداخته که نه در مدل و نه در ابزار، بلکه در تعامل بین آن‌ها ریشه دارند. مثلاً وقتی دو agent به‌طور همزمان روی یک منبع مشترک (فایل، ردیف دیتابیس، session) کار می‌کنند، رقابت بر سر آن منبع می‌تواند به deadlock یا inconsistency منتهی شود. این دقیقاً همان مسائل کلاسیک concurrency است که در سیستم‌های agentic به شکل جدیدی ظاهر می‌شوند.

سطح حمله در سیستم‌های agentic مدرن

وقتی agent به ابزارها دسترسی پیدا می‌کند — به APIها، به دیتابیس، به shell — سطح حمله به‌شدت گسترده می‌شود. این یک نگرانی نظری نیست؛ OWASP prompt injection را به‌عنوان ریسک شمارهٔ یک در LLM Top 10 فهرست کرده است.

Indirect Prompt Injection

در این حمله، دستور مخرب نه از طریق prompt کاربر، بلکه از طریق داده‌ای که agent برای پردازش دریافت می‌کند وارد می‌شود. مثال: agent برای خلاصه‌سازی یک ایمیل فراخوانی می‌شود؛ ایمیل حاوی دستوری است که می‌گوید قبل از خلاصه‌سازی، تمام فایل‌های پوشهٔ Downloads را به این آدرس ارسال کن. اگر agent نتواند بین داده و دستور تفکیک کند، حمله موفق می‌شود. این نوع حمله به‌ویژه در سیستم‌هایی که به RAG یا web browsing متصل‌اند شایع است. اگر با RAG آشنا نیستید، RAG چیست و چرا دقت مدل‌ها را بالا می‌برد را ببینید.

Rug-Pull Attack

در اکوسیستم‌های MCP که مخفف Model Context Protocol است، یک tool definition می‌تواند پس از تأیید اولیه به‌صورت بی‌صدا تغییر کند. agent به toolی اعتماد کرده که در ابتدا بی‌خطر بوده، اما حالا رفتارش عوض شده. این حمله به implicit trust بین agent و tool متکی است — همان اعتمادی که در سیستم‌های multi-agent بین agentها هم وجود دارد.

RAG Index Poisoning

اگر agent از یک vector database برای retrieval استفاده می‌کند، مهاجم می‌تواند documentهایی را تزریق کند که در embedding space به queryهای خاص نزدیک باشند. نتیجه: agent اطلاعات نادرست را به‌عنوان context معتبر دریافت می‌کند و بر اساس آن تصمیم می‌گیرد. این حمله به‌ویژه در سیستم‌هایی که داده از منابع خارجی می‌آید خطرناک است.

Cross-Agent Trust Escalation

در سیستم‌های multi-agent، اگر یک agent compromised شود، می‌تواند به agentهای دیگر دستور بدهد و privilege خود را گسترش دهد. مسئله این است که agentها معمولاً به پیام‌های یکدیگر اعتماد می‌کنند — چون در یک تیم تعریف شده‌اند. اگر مرز اعتماد صریح تعریف نشود، یک breach کوچک به breach سیستمی تبدیل می‌شود.

برای دفاع، سه لایه ضروری است. اول، input sanitization در سطح هر observation — هر دادهٔ خارجی باید از نظر دستورات مخفی بررسی شود. دوم، sandboxed execution — هر tool call در محیطی ایزوله اجرا شود که دسترسی‌هایش از پیش تعریف شده. سوم، deterministic policy enforcement — برای اقدامات با پیامد بالا مثل انتقال وجه، حذف داده یا ارسال ایمیل انبوه، یک لایهٔ غیر-LLM تصمیم بگیرد، نه خود agent.

چارچوب CaMeL که مخفف Capabilities for Machine Learning است، یک رویکرد capability-based ارائه می‌دهد: به‌جای اینکه به مدل بگوییم این کار را نکن، به آن capability مشخصی می‌دهیم که فقط اجازهٔ انجام کارهای خاص را دارد. این مدل ذهنی از امنیت سیستم‌عامل قرض گرفته شده و در context agentها بسیار مؤثر است. پوشش کامل‌تری از تهدیدات را می‌توانید در خطرات عامل‌های خودمختار هوش مصنوعی دنبال کنید.

معماری مرجع برای استقرار تولیدی

بر اساس الگوهایی که در سیستم‌های واقعی دیده‌ام و معماری‌هایی که Microsoft و Google منتشر کرده‌اند، یک معماری مرجع برای استقرار agentic در تولید قابل ترسیم است. این معماری پنج لایه دارد.

لایهٔ اول: Orchestrator

یک orchestrator مرکزی که مسئول routing، state management و policy enforcement است. این لایه نباید یک agent باشد؛ باید یک سرویس قطعی و deterministic باشد — مثل یک state machine یا graph executor. Orchestrator تصمیم می‌گیرد کدام agent با کدام ورودی فراخوانی شود، چه زمانی نیاز به human approval است و در صورت شکست چه recovery path وجود دارد. Dapr Agents یک نمونهٔ open-source از این لایه است که اجازه می‌دهد هزاران agent روی Kubernetes توزیع شوند.

لایهٔ دوم: Specialized Agents

هر agent یک domain مشخص دارد و فقط به ابزارهای همان domain دسترسی دارد. مرز بین agentها از طریق contract صریح تعریف می‌شود — نه از طریق free-form messaging. این جداسازی، blast radius یک breach را محدود می‌کند و debugging را ممکن می‌سازد.

لایهٔ سوم: Tool Layer

ابزارها نباید مستقیماً به agent متصل شوند. یک لایهٔ میانی وجود دارد که مسئول validation، rate limiting، audit logging و sandboxing است. هر tool call قبل از اجرا از این لایه عبور می‌کند. این لایه همچنین مسئول observation shaping است: خروجی خام ابزار که ممکن است هزاران فیلد داشته باشد، به یک ساختار خلاصه و مرتبط تبدیل می‌شود.

لایهٔ چهارم: Memory and Context

حافظهٔ agent نباید صرفاً یک context window بزرگ باشد. یک لایهٔ حافظهٔ ساختاریافته شامل working memory به‌معنی context جاری، episodic memory به‌معنی تاریخچهٔ تعاملات و semantic memory به‌معنی دانش دامنه ضروری است. Vector database برای semantic retrieval و یک مکانیزم برای summarization و forgetting که context window را پر نکند لازم است.

لایهٔ پنجم: Observability and Governance

هر تصمیم agent باید trace شود: چه observationی دید، چه reasoningی داشت، چه toolی را صدا زد و چه نتیجه‌ای گرفت. این traceها نه فقط برای debugging، بلکه برای compliance ضروری‌اند. استاندارد OpenTelemetry در حال گسترش به agent observability است. در محیط‌های regulated، evidence bundle که مجموعهٔ کامل traceها، تصمیمات و تأییدات است، بخشی از الزامات قانونی است.

نکته‌ای که در معماری‌های production دیده‌ام: تیم‌ها معمولاً لایهٔ پنجم را بعداً می‌سازند. اما بدون observability، debugging یک failure که در production رخ داده تقریباً غیرممکن است. traceها باید از روز اول در معماری باشند، حتی اگر dashboard نداشته باشند. اشتباهات رایج این استقرار در اشتباهات رایج اتوماسیون هوش مصنوعی مستند شده است.

برای مهندسانی که این معماری را در مقیاس بزرگ طراحی می‌کنند — مثل تیم‌های زیرساخت Google یا Meta — یک نکتهٔ ظریف: مرز بین deterministic orchestrator و probabilistic agent نباید مبهم باشد. هر تصمیمی که پیامد غیرقابل‌بازگشت دارد، باید یا در orchestrator گرفته شود یا از orchestrator عبور کند. agent فقط برای تصمیمات reversible و bounded آزادی کامل دارد.

پرسش‌های پرتکرار مهندسان درباره عامل‌های هوش مصنوعی

آیا agentها جایگزین RPA می‌شوند؟ نه به‌طور کامل. RPA برای taskهای بسیار ساختاریافته و تکراری که تغییر نمی‌کنند همچنان بهینه‌تر است. agentها برای taskهایی که نیاز به قضاوت، context و انعطاف در برابر تغییر دارند. در بسیاری از معماری‌های واقعی، RPA و agent در کنار هم کار می‌کنند: RPA کارهای مکانیکی را انجام می‌دهد و agent تصمیم می‌گیرد که کدام RPA script اجرا شود.

حداقل تعداد tool برای یک agent چقدر است؟ کمتر بهتر. تحقیقات نشان می‌دهد بالای ۶۰ tool، دقت انتخاب به‌شدت افت می‌کند. اگر agent شما به بیش از ۲۰ tool نیاز دارد، احتمالاً باید به چند agent تخصصی تقسیم شود که هر کدام مجموعهٔ کوچکی از toolها دارند.

چگونه بفهمیم یک agent آمادهٔ production است؟ سه معیار. اول، نرخ موفقیت در taskهای representative بالای ۸۵ درصد باشد — نه در demo، در محیط واقعی با داده واقعی. دوم، هر failure قابل trace و قابل توضیح باشد؛ یعنی بتوانید بگویید چرا شکست خورد. سوم، در صورت شکست، recovery path قطعی داشته باشد — نه اینکه agent دوباره تلاش کند و شاید موفق شود.

هزینهٔ اجرای agentها در مقیاس چقدر است؟ در AutomationBench، هزینه هر task از ۰.۴۹ دلار برای Gemini 3.5 Flash تا ۱.۳۲ دلار برای GPT-5.5 متغیر است. اما هزینهٔ کل شامل retryها، human review و observability است. در پروژه‌های واقعی، هزینهٔ کل معمولاً دو تا سه برابر هزینهٔ خام inference است.

آیا multi-agent همیشه بهتر از single-agent است؟ نه. multi-agent زمانی ارزش دارد که دامنه‌ها واقعاً مجزا باشند و نیاز به toolهای متفاوت داشته باشند، هر agent بتواند مستقل تست شود و overhead coordination کمتر از سود تخصص‌سازی باشد. در غیر این صورت، یک agent با context بهتر و toolهای کمتر، نتیجهٔ بهتری می‌دهد.

نقش human-in-the-loop در معماری agentic چیست؟ HITL نباید یک بعد از اجرا باشد؛ باید یک گرهٔ صریح در گراف orchestration باشد. قاعدهٔ من: هر action با پیامد غیرقابل‌بازگشت (ارسال ایمیل به مشتری، تغییر داده مالی، اجرای دستور مخرب‌پذیر) باید به یک node تأیید انسانی عبور کند. بدون این گره، سیستم حتی اگر عملکرد بالایی داشته باشد، در محیط regulated قابل استقرار نیست.

افق پیش رو برای مهندسی agentic در دههٔ آینده

اگر امروز در حال طراحی یک سیستم agentic هستید، سه چیز را در نظر بگیرید. اول، قابلیت‌ها سریع‌تر از زیرساخت‌ها رشد می‌کنند. مدل‌ها هر شش ماه جهش می‌کنند؛ اما observability، governance و tool ecosystem با سرعت بسیار کمتری بالغ می‌شوند. این یعنی bottleneck آینده نه مدل، بلکه ابزارهای اطراف آن خواهد بود. اگر تیم شما امروز فقط روی انتخاب مدل تمرکز کند و لایه‌های اطراف را عقب بیندازد، شش ماه دیگر با مدلی قوی‌تر و زیرساختی شکننده روبه‌رو خواهد شد.

دوم، مرز بین agent و workflow قطعی جابه‌جا خواهد شد. امروز، agentها در جاهایی استفاده می‌شوند که workflow قطعی کار نمی‌کند. اما همان‌طور که قابلیت‌های agentها قابل‌اعتمادتر می‌شوند، بخشی از workflowهای قطعی هم به agentها سپرده می‌شوند. برای مهندس ارشد، این یعنی طراحی باید modular باشد: هر جزء باید بتواند بین deterministic و agentic جابه‌جا شود بدون اینکه کل سیستم بازنویسی شود. الگوی state machine با nodeهای قابل تعویض، بهترین انتخاب معماری برای این آینده است.

سوم، آمار adoption فریبنده است. ۷۹ درصد مدیران می‌گویند agentها در شرکتشان پذیرفته شده‌اند، اما ۶۸ درصد می‌گویند نیمی یا کمتر از کارکنانشان روزانه با agent تعامل دارند. در هر عملکرد سازمانی، بیش از ۱۰ درصد در حال مقیاس‌دهی نیستند. این فاصلهٔ بین استفاده و تحول عملیاتی همان جایی است که فرصت واقعی و ریسک واقعی قرار دارد. آیندهٔ agentic در دست تیم‌هایی است که این فاصله را با مهندسی درست پر می‌کنند، نه با تبلیغات. مسیر آینده در آینده عامل‌های هوش مصنوعی با نگاه بلندمدت‌تری بررسی شده است.

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

برای مطالعهٔ عمیق‌تر دربارهٔ مبانی نظری این حوزه، می‌توانید مفهوم Automation را در ویکی‌پدیا دنبال کنید و از آن به مقاله‌های تخصصی‌تر برسید. اگر در پروژه‌ای این تعادل را تجربه کرده‌اید — جایی که agent در production رفتار غیرمنتظره‌ای داشت و شما root cause را پیدا کردید — تجربه‌تان را بنویسید. جزئیات آن failure mode برای مهندس بعدی که همین مسیر را می‌رود، از هر benchmarkی ارزشمندتر است.