تصور کنید یک دستیار هوشمند به شما میگوید «منتظر میمانم تا کار تمام شود»، اما در واقع هیچ زنگ هشدار یا یادداشتی برای بازگشت به آن موضوع تنظیم نکرده است. این دقیقاً همان نقطهای است که بسیاری از گردشکارهای عاملمحور در مقیاس واقعی شکست میخورند.
به گزارش وبسایت dev.to، در ۳۰ سپتامبر ۲۰۲۶، یک توسعهدهنده فاش کرد که راهکارهای ساده برای رفع خطای زمانبندی (Timeout) در عاملها، مشکل عمیقتری به نام «وضعیت پایدار» (Durable State) را حل نمیکند. در دنیای جریانهای کاری خودکار، عامل (Agent) — شبیه کارمندی که وظایفی را به دیگران میسپارد و منتظر جواب میماند — اغلب وارد حالت انتظار میشود. اکثر برنامهنویسان این وضعیت را یک مشکل فنیِ مربوط به سقف زمانی میبینند و سعی میکنند با افزایش این سقف، مشکل را حل کنند.
همانطور که در تحلیلهای قبلی ما دربارهی پایداری حافظه در مدلهای زبانی اشاره کردیم، تکیه بر حافظه کوتاهمدت مدل برای مدیریت زمان، یک ریسک بزرگ است. این توسعهدهنده ابتدا سعی کرد با تغییر متغیر CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS به مقدار صفر، سقف زمانی را حذف کند تا عامل بتواند تا ابد منتظر بماند. اما طبق بررسیهای فنی، این یک «اصلاح ضعیف» است؛ زیرا تنها وعده انتظار را ابدی میکند، بدون اینکه راهی برای پیگیری تکلیف کار در صورت شکست واقعی فراهم کند. این نوع نقص در مدیریت وضعیت، میتواند منجر به رفتارهای پیشبینیناپذیری شود، مشابه آنچه در بررسی نقصهای ساختاری گردشکارها و خطاهای محاسباتی گذرا مشاهده کردیم.
مکانیسم انتظار پایدار
برای تبدیل یک اصلاح ضعیف به یک راهکار «قوی»، باید هر وظیفه به تعویق افتاده توسط ماشین مدیریت شود، نه توسط متن تولید شده توسط هوش مصنوعی زاینده (Generative AI) — که مثل نویسندهای است که ایدهها را میسازد اما تقویمی برای پیگیری آنها ندارد. این سیستم نیازمند چهار رکن است:
- شناسههای منحصربهفرد: اختصاص یک ID خاص برای هر وظیفه معلق.
- ضربالاجلهای صریح: تعیین یک برچسب زمانی دقیق برای پایان انتظار.
- اقدامات بعدی تعریفشده: برنامهریزی پاسخ سیستم در صورت رسیدن به ضربالاجل.
- تطبیق خارجی: وجود یک فرآیند مستقل برای بررسی رکوردها، جدا از خروجی عامل.
این تغییر، تعریف موفقیت را دگرگون میکند. موفقیت دیگر این نیست که عامل «وعده» دهد منتظر بماند، بلکه وجود خودِ مکانیسم پیگیری است. در این راستا، ابزارهایی مانند کتابخانه FreshCtx برای جلوگیری از اجرای دستورات منقضیشده توسعه یافتهاند تا از اجرای برنامههایی که زمان اعتبارشان به پایان رسیده است، جلوگیری کنند. در مورد گزارش شده، دو نوبت اجرای عامل ۲.۷۹ دلار هزینه داشت و چون خطایی صادر نکرد، «موفق» علامت شد، در حالی که هیچ رکورد پایداری از آن وجود نداشت.
برای کسانی که سیستمهای عاملمحور میسازند، تکیه بر وضعیت داخلی یک مدل زبانی بزرگ (LLM) — مثل کتابخانهداری که میلیاردها صفحه را خوانده و حالا با همان لحن جواب میدهد — برای تایید انتظار، یک نقطه ضعف است. اگر ماشین مالک ضربالاجل نباشد، کل فرآیند شکننده است. این موضوع منجر به رویهای میشود که در آن تفویض اختیار بر اساس «دستگیره» (Handle) صورت میگیرد و ماشین چرخه حیات وظیفه را مدیریت میکند.
گام بعدی شما
- بررسی کنید آیا «انتظار» در سیستم شما یک وضعیت ثبتشده در دیتابیس است یا فقط یک جمله در تاریخچه چت.
- برای هر وظیفه معلق، یک Timeout سختافزاری تعریف کنید که مستقل از پاسخ مدل عمل کند.
- مکانیسمی برای «تطبیق مجدد» (Reconciliation) طراحی کنید تا وظایفی که در حالت انتظار گم شدهاند، بازیابی شوند.
اما چالش بعدی این است که وقتی ضربالاجل تمام میشود و کار تنها نیمی از مسیر را رفته، سیستم باید چه واکنشی نشان دهد؛ موضوعی که در تحلیلهای مربوط به مدیریت خطای عاملها بررسی خواهیم کرد.




گفتگو