همه درباره پرامپتها صحبت میکنند. حلقهها جایی هستند که عاملها واقعاً شکست میخورند
مهندسی پرامپت تمام توجهات را به خود جلب کرده است. مردم پرامپتها را به اشتراک میگذارند و احساس باهوش بودن میکنند. اما در سیستمهای عاملی (agentic systems) که من میسازم، پرامپتها خراب نمیشوند؛ بلکه حلقه (loop) میشکند.
یک عامل (agent) صرفاً یک پرامپت و پاسخ واحد نیست؛ بلکه یک حلقه است.
- وضعیت را مشاهده کن.
- اقدامی انجام بده.
- نتیجه را ارزیابی کن.
- تصمیم بگیر که ادامه دهی یا متوقف شوی.
اگر یکی از این مراحل با شکست مواجه شود، عامل نیز شکست میخورد. من برای مطالعه این موضوع، ۱۲ مدل را در قالب ۱,۴۱۲ اجرا تحلیل کردم. در اینجا نحوه شکست خوردن حلقهها و روش اصلاح آنها آورده شده است.
شکستهای رایج در حلقهها:
- مارپیچهای توکن (Token Spirals): عامل خودش را تکرار میکند و توکنهای بسیار زیادی مصرف میکند.
- نقاط کور (Blind Spots): عامل نمیتواند محیط خود را ببیند و همان اشتباه را تکرار میکند.
- موفقیت کاذب (False Success): عامل پاسخ اشتباهی تولید میکند اما فکر میکند درست است.
- بنبستها (Dead Ends): عامل خطایی را پیدا میکند اما نمیتواند از آن داده برای بهبود استفاده کند.
یک پرامپت بهتر نمیتواند این مشکلات را حل کند. شما به مهندسی حلقه (loop engineering) نیاز دارید.
چهار اصل طراحی برای حلقههای بهتر:
- محدود کردن حلقه: یک حد نهایی برای تکرارها (iterations) و توکنها تعیین کنید. اگر عامل به سقف (ceiling) تعیینشده رسید، باید متوقف شود و درخواست کمک کند.
- خوانا کردن محیط: اطمینان حاصل کنید که مرحله مشاهده (observe)، تمام واقعیتها را در اختیار عامل قرار میدهد. اگر عاملی یک اقدام ناموفق را تکرار میکند، یعنی فاقد اطلاعات صحیح است.
- جداسازی اجراکننده از ارزیاب: اجازه ندهید همان مدل، کار خودش را بررسی کند. برای قضاوت درباره خروجی، از مدل دیگری یا یک بررسی مبتنی بر قانون (rule-based check) استفاده کنید.
- بستن حلقه: از خطاها برای ایجاد اصلاحات واقعی استفاده کنید. وقتی یک حلقه شکست میخورد، یک تست رگرسیون (regression test) اضافه کنید تا دیگر هرگز تکرار نشود.
من یک عامل پشتیبان به نام RelayOps با استفاده از این قوانین ساختم. ما از یک داور مستقل برای امتیازدهی به عامل استفاده کردیم.
یک بار، عامل به مقاله درستی استناد کرد اما در پاسخ به سوال اصلی شکست خورد. یک بررسی ساده مبتنی بر قانون، آن را تایید کرد، اما ارزیاب مستقل ما متوجه خطا شد. ما از آن شکست برای اصلاح سیستم استفاده کردیم و تستی اضافه کردیم تا از وقوع دوباره آن جلوگیری کنیم.
نیازی نبود عامل باهوشتر شود؛ بلکه نیاز بود حلقه بهتر طراحی شود.
تمرکز خود را فقط بر پرامپتها نگذارید. بر ساختار تمرکز کنید.
شما چه نوع شکست در حلقهای را دیدهاید؟ یک مارپیچ توکن، یک نقطه کور، یا عاملی که با اطمینان اشتباه میکرد؟
انجمن یادگیری اختیاری: https://t.me/GyaanSetuAi