تصور کنید سه دستیار دیجیتال روی یک فایل مشترک کار میکنند، اما هر کدام نسخهای قدیمی از آن را در ذهن دارند و مدام تغییرات یکدیگر را «اشتباه» تشخیص داده و به حالت قبل برمیگردانند. این وضعیت که «مارپیچ تخریبی» نام دارد، میتواند کل حافظهٔ یک سامانهٔ چندعاملی را پیش از آنکه انسانی متوجه شود، نابود کند.
به نقل از گزارش فنی منتشر شده در ۴ اکتبر ۲۰۲۶ در وبسایت dev.to، این مشکل زمانی رخ میدهد که عاملها (Agents) — شبیه به کارمندانی که هر کدام تکهای از یک گزارش را مینویسند اما با هم هماهنگ نیستند — از دادههای قدیمی استفاده کرده و حافظه را به حالتی نادرست بازمیگردانند. این تکرار، منجر به ایجاد حلقههایی از نوشتنهای سیستماتیک غلط میشود. این چالشها در واقع ادامهٔ بحرانهای عملیاتی در مدیریت رفتار عاملهاست که در سازوکار Hint-Guided برای اصلاح خودکار رفتار عاملها به بررسی آنها پرداختیم.
در این سناریو، سه عامل از یک سرور حافظه مبتنی بر پروتکل زمینهٔ مدل (MCP) — که مثل یک تختهسیاه مشترک برای مدلهای مختلف عمل میکند — استفاده میکنند. عامل A یک حقیقت قدیمی را اصلاح میکند، اما عامل C که هنوز نسخه قدیمی را در حافظه دارد، این اصلاح را خطا میبیند و آن را لغو میکند. همانطور که در تحلیل قبلی ما دربارهی امنیت مدلهای بازمتن اشاره کردیم، عدم همگامسازی در لایههای داده میتواند منجر به رفتارهای پیشبینیناپذیر شود.
برای شناسایی این بحران، توسعهدهندگان میتوانند یک شمارندهٔ «معکوسسازی اصلاحات» در مسیر بازرسی سرور حافظه پیاده کنند. سیستم با بررسی نوشتنهای متوالی در یک جایگاه خاص، هر بار که جهت معنایی تغییر میکند (مثلاً از A به B و دوباره به A)، شمارنده را افزایش میدهد. افزایش این عدد، اولین نشانهٔ شکست سیستم است. برای تحلیل دقیقتر این نوع خطاها، تغییر رویکرد از Log Stream به Run Card در دیباگینگ عاملها ابزارهای شناسایی سریعتری را در اختیار توسعهدهندگان قرار میدهد.
راهکار توقف مارپیچ
بر اساس مستندات فنی، دو مکانیزم اصلی برای شکستن این حلقهها وجود دارد:
- ناورداهای تفاضلی (Diff Invariants): یک لایه میانافزار MCP به عنوان دروازهبان عمل میکند. هر دستور نوشتن باید شامل شناسهٔ عامل، هشِ ردپای استدلال و توجیه باشد. اگر یک نوشتن، اصلاح قبلی را لغو کند، به صف «تأییدیه جمعی» فرستاده میشود.
- تأییدیه جمعی (Quorum Verification): یک عامل مستقل دوم باید با استفاده از شواهد متفاوت، آن اصلاح را بازتولید کند. اگر تنها یک عامل بر تغییر اصرار داشته باشد، دستور رد شده و آن بخش از حافظه برای بازرسی انسانی قفل میشود.
این تغییر، حافظهٔ عاملمحور را از یک فضای سادهٔ خواندن/نوشتن به یک دفتر کل تأییدشده تبدیل میکند. در واقع، هر عاملی که بخواهد یک حقیقت مشترک را تغییر دهد، باید «هزینهٔ» تأیید مستقل را بپردازد تا از نوسان حافظه جلوگیری شود.
گام بعدی شما
- لاگهای عاملهای خود را برای شناسایی الگوهای نوشتن A→B→A بررسی کنید.
- لایههای میانافزار را برای پیادهسازی سیستم Quorum در حافظههای مشترک طراحی کنید.
- از مکانیزمهای قفلگذاری (Locking) برای دادههای حساس در محیطهای چندعاملی استفاده کنید.
اما چالش بعدی، پیادهسازی لایههای مرجع منجمد برای ایجاد یک نقطهٔ اتکای خارجی در این حلقههای بازگشتی است که در گزارشهای آینده بررسی خواهیم کرد.




گفتگو