ساختن حلقه عامل در محیط عملیاتی
ساختن یک عامل برای نمایش (دمو) آسان است، اما ساختن یک عامل برای محیط عملیاتی (production) دشوار است.
در یک دمو، حلقه ساده است: مشاهده، تصمیمگیری، اقدام، بررسی، تکرار. مدل یک نتیجه را میبیند و به مرحله بعد میرود.
در محیط عملیاتی، همان حلقه به قوانین سختگیرانهای نیاز دارد. یک عامل عملیاتی صرفاً یک مدل و چند ابزار نیست؛ بلکه حلقهای است که در یک ساختار قرار گرفته تا از صحت عملکرد آن اطمینان حاصل شود.
بزرگترین تله، اعتماد کردن به پاسخهای ابزار است.
تصور کنید یک عامل نیاز دارد یک سفارش را لغو کرده و مبلغی را مسترد کند.
- عامل تابع
cancel_orderرا فراخوانی میکند. - ابزار پاسخ
200 OKرا برمیگرداند. - عامل بلافاصله تابع
issue_refundرا فراخوانی میکند.
در یک دمو، این روش کار میکند. در محیط عملیاتی، این یک فاجعه است.
یک پاسخ 200 OK اغلب به این معناست که درخواست پذیرفته شده است، نه اینکه کار انجام شده است. لغو سفارش ممکن است هنوز در یک صف (queue) در انتظار پردازش باشد. اگر عامل قبل از تأیید لغو، مبلغی را مسترد کند، شما بر اساس یک فرض، پول جابهجا میکنید.
شما باید یک قانون را رعایت کنید: پاسخ یک ابزار، وضعیت درخواست را توصیف میکند، نه لزوماً وضعیت واقعی جهان را.
برای ساختن یک حلقه عملیاتی ایمن، به این اجزا نیاز دارید:
• قراردادهای ابزار (Tool Contracts): هر ابزار باید ورودی، خروجی، حالتهای شکست و یک کلید همارزی (idempotency key) را تعریف کند. • دروازههای تأیید (Verification Gates): فقط بررسی نکنید که آیا ابزار کد موفقیت برگردانده است یا خیر. وضعیت واقعی جهان را مجدداً بخوانید تا تأیید کنید که تغییر واقعاً رخ داده است. • وضعیت کاری (Working State): حقایق را از تاریخچه گفتگو جدا نگه دارید. این کار از توهم زدن (hallucinating) عامل بر اساس متن گفتگو جلوگیری میکند. • دروازههای تأیید (Approval Gates): برای اقدامات حساس، از انسانها برای تأیید نیت (intent) استفاده کنید. • قوانین توقف (Stop Rules): برای جلوگیری از حلقههای بیانتها، محدودیتهایی برای تعداد مراحل، هزینه، زمان و سکوت تعیین کنید.
ساختار حلقه تغییر نمیکند، بلکه پیادهسازی سختگیرانهتر میشود.
برای اقدامات دارای پیامد مهم، مرحله «بررسی» (check) شما باید دو بخش داشته باشد:
- تأیید (Verify): آیا جهان واقعاً همانطور که انتظار میرفت تغییر کرد؟
- ثبت نهایی (Commit): حالا که تأیید شده است، آیا رفتن به مرحله بعد ایمن است؟
ایمنترین عامل، عاملی است که محدودیتهای مشخصی دارد. قابلیت اطمینان از ایجاد مرزهای شفاف در اطراف مدل حاصل میشود، نه از دادن آزادی بیشتر به آن.
Source: https://dev.to/gursharansingh/ai-agents-in-practice-part-6-building-the-production-agent-loop-2lfi
Optional learning community: https://t.me/GyaanSetuAi