تصور کنید یک برنامهنویس برای بهینهسازی مهارتهای یک عامل هوشمند، ۱۵۸ خط کد مینویسد، اما تمام این تلاشها به دلیل یک اشتباه معماری شکست میخورد. این اتفاق زمانی رخ میدهد که شما به جای ایجاد یک مسیر مشخص، سعی میکنید با «حدس زدن» تغییرات، سیستم را مدیریت کنید.
طبق گزارشی در dev.to، در ۲۸ ژوئن ۲۰۲۶، یک عامل (Agent) — برنامهای که میتواند بهطور مستقل اهداف را دنبال کند — سعی کرد نظارت بر مهارتهای خود را از طریق تشخیص غیرفعالِ زمان تغییر فایلها (timestamp) خودکار کند. نتیجه این اقدام، تولید هشدارهای اشباعشده و تکراری بود که هیچ ارزش افزودهای نداشت.
این سناریو دقیقاً شبیه به یک توسعهدهگری است که برای سادهتر کردن یک API، لایههای میانی (Middleware) غیرضروری اضافه میکند و در نهایت پیچیدگی را بیشتر میکند. همانطور که در تحلیلهای پیشین ما دربارهی امنیت مدلهای بازمتن اشاره کردیم، پیچیدگی بیمورد در معماری، همواره نقطه شروع خطاهای بحرانی است. در اینجا نیز عامل به جای اجبار به تغییر وضعیت (State Change)، از یک «قلاب غیرفعال» استفاده کرد که سعی داشت قصد کاربر را حدس بزند.
بر اساس مستندات این مورد، شکست عامل از طریق سه پرسش کلیدی سازنده آن آشکار شد:
- دلیل فعال شدن هشدار چه بود؟ سیستم هشدار داد که یک تخته بهروزرسانی نشده است، اما این یک «مثبت کاذب» بود که فقط به دلیل ویرایش یک یادداشت ساده رخ داد.
- چرا سه مسیر مختلف برای تغییر مهارت وجود دارد؟ سیستم دارای سه مسیر همپوشان (skill_manage، edit و write) بود که یک «جعبه سیاه» ایجاد کرده بود و هیچ نقطه کنترل واحدی نداشت.
- آیا واقعاً اشتباهی رخ داده بود؟ اگرچه منطق کد درست بود، اما کل معماری نسخه ۲ غیرضروری بود چون گردش کار (Workflow) پیش از این یک گیت اعتبارسنجی فعال داشت.
با حذف افزونههای غیرفعال و بازگشت به گیت اعتبارسنجی فعال (Active Validation Gate)، حجم کد از ۱۵۸ خط به ۳۱ خط کاهش یافت. این چرخش با دیدگاه مقاله SkillOpt از مایکروسافت همسو است؛ جایی که اسناد مهارت به عنوان وضعیتی قابل آموزش دیده میشوند و یک گیت اعتبارسنجی تصمیم میگیرد که آیا ویرایش اعمال شود یا خیر.
برای کسانی که عاملهای هوشمند میسازند، این یعنی نظارتهای «هوشمندانه» و غیرفعال، بیشتر از آنکه ارزش خلق کنند، نویز تولید میکنند. اثر درجه دوم این موضوع، از دست رفتن شفافیت است؛ وقتی عامل بر اساس زمان تغییر فایل «حدس» میزند، اپراتور انسانی دیگر نمیتواند به راحتی گزارش تغییرات را بازرسی کند.
توسعهدهندگان باید نقاط ورود ابزارهای عامل خود را بازرسی کنند تا مطمئن شوند هیچ مسیر تکراری وجود ندارد.
گام بعدی شما
- نقاط ورود (Entry Points) ابزارهای عامل خود را لیست کنید و هر مسیر تکراری را حذف کنید.
- به جای استفاده از Event-driven hooks برای تغییرات حساس، از مدل اعتبارسنجی صریح در هر گام استفاده کنید.
- مقاله SkillOpt مایکروسافت را برای درک مدیریت وضعیت مهارتها مطالعه کنید.
اما چالش بعدی این است که چگونه این نظم سختگیرانه را با انعطافپذیری مورد نیاز برای استدلالهای پیچیده و چندمرحلهای ترکیب کنیم؛ موضوعی که در بررسی معماریهای Reasoning بررسی خواهیم کرد.




گفتگو