Meysam Sarabadani

Blog|About|Newsletter|Contact

•8 min read•
AIAgentsEngineering

رمزگشایی از Agent Harness در هوش مصنوعی: راهنمای مبتدیان برای موتور پشت صحنه کدهای Agent مدرن

یک AI Agent فقط یک LLM نیست؛ بلکه ترکیبی از یک LLM و یک Agent Harness است. در حالی که LLM به عنوان «مغز» عمل میکند، Harness نقش سیستم عصبی، اسکلت و دستها را ایفا میکند و به AI اجازه میدهد تا با جهان تعامل داشته باشد.

خلاصه در یک نگاه: بایدها و نبایدها
رویکرد پیشنهادی (بایدها)
  • ✓خروجی مدل‌های زبانی را در ساندباکس‌های امن و آزمون‌های خودکار مهار کنید.
  • ✓حلقه‌های بازخورد بسازید تا عامل بتواند خطاها را ببیند و خودکار اصلاح کند.
  • ✓دسترسی ابزارهای عامل را شفاف، ماژولار و تفکیک‌شده تعریف کنید.
تله‌های رایج (نبایدها)
  • ✕مدل زبانی خام را بدون ابزار و سیستم مهارکننده به کار نگیرید.
  • ✕به جای ساخت زیرساخت هارنس، روی پرامپت‌های بیش‌ازحد طولانی تکیه نکنید.
  • ✕کدهای تولیدشده توسط هوش مصنوعی را بدون محیط تست ایزوله اجرا نکنید.

در دنیای به سرعت در حال توسعه هوش مصنوعی، ما اغلب درباره قدرت مدلهای پایه مانند GPT-5 یا Claude 4 میشنویم. اما اگر تا به حال تلاش کرده باشید یک Large Language Model (LLM) خام را وادار به انجام یک کار پیچیده و چند مرحله ای کنید—مانند رفع یک باگ در یک مخزن کد، پیمایش در یک مرورگر وب، یا مدیریت یک گردش کار سرتاسری (end-to-end workflow)—خیلی زود متوجه میشوید که یک LLM خام، بدون لایههای کمکی، با محدودیتهای جدی روبهرو میشود.

اینجاست که Agent Harness وارد میدان میشود.

یک AI Agent فقط یک LLM نیست؛ بلکه ترکیبی از یک LLM و یک Agent Harness است. اگر LLM مغز Agent باشد، Agent Harness نقش سیستم عصبی، اسکلت و دستهای آن را دارد؛ یعنی ساختاری که به AI اجازه میدهد با محیط اطراف خود تعامل کند.

این مقاله مفاهیم اصلی، روند تکامل مرحلهبهمرحلهی Agent ها، طبقهبندی معماری آنها و مسیر آیندهی نرمافزارهای Agentic را توضیح میدهد.


۱. تکامل گام به گام یک Agent Harness

برای درک اینکه یک Agent Harness چه کاری انجام میدهد، میتوانیم مسیر تبدیل یک فراخوانی ساده LLM به یک سیستم Agent کامل و خودمختار را دنبال کنیم.

۱. مدل زبانی خام (Naked LLM)
مدل پایه خام؛ ورودی و خروجی متن بدون هیچ ساختار کمکی.
۲. مدل + پرامپت‌ها
افزودن پرامپت‌های سیستمی و مهندسی کانتکست (Few-shot, CoT).
۳. مدل + ابزارها
دسترسی به جستجوی وب، پایگاه‌های داده و APIهای استاندارد.
۴. عامل خودمختار کامل
سیستم هماهنگ‌کننده کامل (Harness) همراه با حافظه، چرخه حیات و محافظ‌ها.

گام ۱ تا ۴: دوران Prompting

  • Raw LLM: ما کار را تنها با یک مدل پایه شروع میکنیم که متن را پردازش کرده و در پاسخ، متن تولید میکند.
  • User Prompt: یک درخواست یا دستور از طرف کاربر به مدل میدهیم تا جهت کار مدل مشخص شود.
  • System Prompt: ما یک دستورالعمل سیستمی (System Prompt)—یعنی دستورالعملهای پنهانی که پرسونای مدل، مرزها و قوانین تعامل را تعریف میکنند—معرفی میکنیم.
  • Context Engineering: ما Prompt را با تکنیک هایی مانند Multi-shot Examples (نمایش نمونه هایی از رفتار مطلوب) و دستورالعملهای Chain-of-thought غنی میکنیم تا مدل مسئله را با یک فرایند مرحلهبهمرحله بررسی کند.

گام ۵ تا ۷: ابزارهای پویا و استدلال چندمرحله ای

  • Search Engine: ما به مدل ابزاری برای جستجو در موتورهای جست و جوی خارجی میدهیم تا بهجای اینکه فقط به دانشی متکی باشد که در وزنهای مدل تثبیت شده است، اطلاعات بهروز و مرتبط با همان لحظه را دریافت کند.
  • System Integrations: ما Agent را مستقیماً به Telemetry و لاگ های سیستم متصل میکنیم تا بتواند خطاهای Application را مستقیما مشاهده کند.
  • Multi-Step Reasoning: به جای انتظار دریافت پاسخ در یک نوبت (Turn)، به Agent اجازه میدهیم در یک حلقه (Loop) اجرا شود. مدل فکر میکند، اقدام می کند، نتایج را مشاهده میکند و گام بعدی خود را به صورت پویا اصلاح میکند.

گام ۸ تا ۱۲: محیط اجرا (Operating Environment)

  • Tool Interfaces و MCP: مجموعهای از Tool Interfaceهای ساختاریافته در اختیار Agent قرار میگیرد تا از طریق پروتکلهای استاندارد مانند Model Context Protocol (MCP) با سیستم عامل محلی، مرورگرهای وب یا API ها تعامل داشته باشد.
  • Lifecycle & Context Management: بخش Harness چرخه حیات اجرا را کنترل میکند—ایجاد و آمادهسازی Sandbox ها، ذخیره نقاط بازیابی (Checkpoints) برای احیا پس از خرابیها، و مدیریت Context Window محدود مدل.
  • Sub-agents: برای اهداف پیچیده، Agent اصلی میتواند چندین Sub-agent تخصصی را برای انجام کارهای مجزا و کوچکتر راه اندازی کند.

گام ۱۳ تا ۱۶: Agent Harness در سطح Production

  • Governance و Security: محیط اجرا داخل یک Sandbox ایزوله قرار میگیرد تا اجرای کد ناامن یا حملات Prompt Injection نتوانند به سیستم آسیب بزنند. بهجای اینکه امنیت صرفاً به رعایت دستورهای Prompt توسط مدل وابسته باشد، محدودیتها در سطح کد و زیرساخت اعمال میشوند.
  • Memory و Skills Management: عامل (Agent) یک لایه حافظه پایدار برای به خاطر سپردن تلاشهای قبلی و یک Skill Registry به دست می آورد—که اساساً خط مشیهای زبان طبیعی و با قابلیت استفاده مجدد هستند که مشخص میکنند Agent برای انجام انواع مشخصی از Taskها باید چه روشی را دنبال کند.
  • Observability: توسعهدهندگان دید کاملی نسبت به Tool Callها، Token Cost، مسیر اجرای Agent و رخدادهای میانی پیدا میکنند تا الگوهای شکست و خطا را عیب یابی کنند.

۲. طبقه بندی یک Agent Harness مدرن

در معماریهای مدرن Agentic، مسئولیتهای Harness معمولاً به چند لایهی اصلی تقسیم میشوند. یک طبقهبندی پرکاربرد به نام ETCLOVG وجود دارد که هفت لایه یک Agent Harness آماده برای محیط تولید را دستهبندی میکند:

معماری عامل‌محور مدل

نمودار تعاملی جریان سیستم

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

موتور جستجو
+
LLM
راهبری و امنیت
رابط ابزارها
مدیریت چرخه حیات
مدیریت حافظه
مدیریت کانتکست
مدیریت مهارت‌ها
مشاهده‌پذیری
پرامپت سیستمپرامپت کاربرخروجی مدلOS,browser,MCPمهارت‌ها
بازرس اجزاء

یک جزء را انتخاب کنید

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

راهنمای سریع:

  1. با استفاده از کنترل‌های بالا، شبیه‌سازی جریان پرامپت را اجرا کنید.
  2. مراحل مختلف سیستم از جمله تحریک، بازیابی، ارزیابی و ثبت وقایع را مشاهده کنید.

مفاهیم کلیدی موجود

RAG
بازیابی و جستجو

امکان تزریق فعال نتایج جستجوی زنده وب و برداری قبل از استنتاج مدل.

MCP
پروتکل کانتکست مدل

رابط ابزارها از استاندارد MCP برای ارتباط بدون درز با سیستم‌عامل و مرورگر استفاده می‌کند.

LOOP
حلقه‌های چرخه حیات

حفظ چرخه‌های نظارت مداوم و اصلاح خودکار برای حل جریان‌های کاری مرکب.

لایهمسئولیتهدف کلیدی
ExecutionSandbox & Environmentکد را در محیطی ایزوله و امن اجرا میکند، سلامت اجرا را بررسی میکند و State را در صورت نیاز Reset میکند.
ToolingTool InterfacesAgent را به مرورگرها، APIهای سیستمعامل یا پایگاههای داده متصل میکند.
ContextContext Managementاسناد و اطلاعات مرتبط را بهصورت پویا وارد Context میکند تا Context Window مدل با اطلاعات غیرضروری پر نشود.
LifecycleOrchestrationLoopهای چندمرحلهای را مدیریت میکند و اجرای Task را تا رسیدن به نتیجه هماهنگ میکند.
ObservabilityTracing & LogsTrajectoryهای اجرای Agent را ثبت میکند و مصرف منابع را زیر نظر میگیرد.
VerificationOutput Validationبررسی میکند که خروجی Tool یا نتیجهی نهایی با Success Criteria مطابقت داشته باشد.
GovernanceSecurity & Safetyمحدودیتهای سختگیرانه و مجوزهای دسترسی را روی اقدامات عامل اعمال میکند.

۳. چهار فاز تکامل Harness

Agent Harness ها چگونه مهندسی میشوند و به مرور زمان چگونه بهبود می یابند؟ پژوهشگران سیستمهای عاملی را به چهار فاز تکاملی مجزا تقسیم میکنند:

فاز ۱

پرامپت تک‌نوبته (Single-Turn)

پرسش از مدل با تمام کانتکست در یک نوبت. بدون حلقه بازخورد.

فاز ۲

حلقه چندنوبته (Multi-Turn)

حلقه تعاملی که در آن عامل اقدامات را اجرا می‌کند، بازخورد (مانند خطای کامپایلر) را می‌خواند و خود را تنظیم می‌کند.

فاز ۳

سیستم قابل بهینه‌سازی (Optimizable)

یک هوش مصنوعی ارزیاب به طور خودکار شکست‌ها را عیب‌یابی کرده و پرامپت‌ها، ابزارها یا مهارت‌ها را بهروز می‌کند.

فاز ۴

هم‌تکاملی (Co-Evolution)

مدل LLM مستقیماً برای درونی‌سازی رفتارهای Harness آموزش می‌بیند؛ مرز بین مدل و کد محو می‌شود.

  1. Phase 1: Single-Turn Prompting مدل با یک Prompt واحد که شامل تمام Context است در یک نوبت پرسش میشود (مانند تولید کدهای ساده).
  2. Phase 2: Multi-Turn Loop عامل در یک حلقه تعاملی کار میکند. ابزاری را فعال میکند، بازخورد فوری و قابل اقدام (مانند خطاهای کامپایلر) را مشاهده کرده و اقدام بعدی خود را تنظیم میکند.
  3. Phase 3: The Harness as an Optimization Target توسعه دهندگان دیگر به صورت دستی پرامپتهای سیستم یا دستورالعملهای عامل را ویرایش نمی کنند، بلکه سیستم خودش را بهبود میبخشد. یک «عامل ارزیاب» (Evaluator Agent) لاگهای اجرا (مسیرها) را بررسی میکند، علت شکست عامل اصلی را تشخیص میدهد و پرامپتها، Skillها یا Tool Pipelineهای Agent را بهصورت خودکار اصلاح میکند.
  4. Phase 4: Co-Evolution of LLM and Harness مدل پایهای که Agent بر آن متکی است بهطور خاص متناسب با رفتار و ساختار Harness آموزش داده میشود. از طریق یادگیری تقویتی (Reinforcement Learning) یا فرآیند Fine-tuning، مدل کارهایی را که پیش از این به کدهای پیچیده در لایه Harness نیاز داشتند، درونیسازی میکند. با گذشت زمان، مرز بین مدل و زیرساخت محو میشود.

۴. بحث های کلیدی مهندسی

همزمان با اینکه صنعت به سمت ساخت نرم افزارهای خودمختار تر پیش میرود، چند سوال کلیدی رویکرد تیمهمای مهندسی را در طراحی Agent ها شکل میدهد:

کارهای کوتاه مدت در برابر کارهای بلندمدت (Short-Horizon vs. Long-Horizon)

  • وظایف Short-horizon (مانند پاسخ به یک سوال سریع، نوشتن یک تابع ساده) بیشتر به توان خام مدل وابستهاند تا کیفیت Harness.
  • وظایف Long-horizon (مانند توسعه یک وب اپلیکیشن کامل از ابتدا، حل مسائل نرمافزاری پیچیده) به طرز چشمگیری به کیفیت Harness وابسته هستند. بدون مدیریت پیشرفته Context و محافظت در برابر انحراف از هدف (State-drift)، حتی بهترین مدلها نیز با گذشت زمان هدف نهایی را گم میکنند.

ظهور Natural-Language Harnesses

آیا یک Harness باید کاملاً با کدهای قابلاعتمد و ساختیافته (مثل Python یا TypeScript) نوشته شود یا خود Harness نیز میتواند در قالب زبان طبیعی پیاده سازی شود؟ در حالی که Agent Harnessهای سنتیِ مبتنی بر کد، رفتار قابلپیشبینی و deterministic دارند، مقرون به صرفه و ایمن هستند، محققان با موفقیت از "Natural-Language Harnesses" استفاده میکنند؛ جایی که قواعد Orchestration، مراحل تایید و انتقال وظایف Agent به صورت Skillهای قابلویرایش در فایلهای Markdown تعریف میشوند. در ساختارهای مدرن، مرز بین کانتکست پرامپت و زیر ساخت کنترلی هاردکد شده (Hardcoded scaffolding) مدام در حال محو شدن است.

سازگاری مدل و Harness (Model-Harness Compatibility)

Benchmarkها عملکرد مجموعهی Model + Harness را اندازهگیری میکنند، نه صرفاً خود LLM را. یک مدل متن باز ضعیف تر که روی یک Harness بسیار بهینه شده و اختصاصی برای یک دامنه خاص اجرا میشود، اغلب میتواند از یک مدل پیشرو و بسته (Closed-source) که روی یک Harness عمومی و ضعیف اجرا شده است، بهتر عمل کند.


نتیجه گیری: آینده در هم تکاملی (Co-Evolution) است

ساخت یک Agent Harness در سطح جهانی به شدت پر هزینه است و به منابع انبوه، تستهای دقیق، محیطهای امن (Sandboxing) و پروتکلهای ارزیابی نیازمند است.

با حرکت به سمت فاز ۴، توسعهدهندگان دیگر صرفاً به نوشتن پرامپتها یا کدنویسی حلقههای ایستا بسنده نخواهند کرد. در عوض، ما محیطهایی را طراحی خواهیم کرد که در آنها عاملها مسیرهای اجرای خود را جمعآوری کنند، مهارتهای خود را بر اساس شکستها بهینهسازی کنند و همراه با مدلهای زبانی زیربنایی، بهصورت مشترک تکامل پیدا کنند.

Share: