تصور کنید یک عامل هوشمند در حالی که کد شما را اصلاح میکند، به اشتباه تمام کارهای هفته گذشته تیم شما را با یک دستور ساده پاک کند. اگر به یک عامل (Agent) — ابزاری که میتواند بهطور مستقل هدف را بفهمد و ابزارها را اجرا کند — دسترسی کامل به مخزن کد میدهید، باید بدانید که کیفیت کد تنها نیمی از داستان است؛ نیمه دیگر، مدیریت «شعاع تخریب» است.
بسیاری از برنامهنویسان زمانی از کدنویسی کمکی به سمت «کامیتهای خودگردان» میروند که حجم اصلاحات کوچک — مثل بهروزرسانی مستندات یا رفع باگهای جزئی — بیش از حد توان مدیریت دستی شود. این کارها برای اجرای شبانهروزی توسط عاملها ایدهآلاند. اما طبق گزارشی که در ۱۲ ژوئیه ۲۰۲e۶ در وبسایت dev.to منتشر شد، خطر اصلی نه در کیفیت کد، بلکه در نحوه تعامل عامل با سیستم کنترل نسخه (Version Control) است. این چالش با پدیده «انحراف» در ماموریتهای طولانی مرتبط است، جایی که عاملها ممکن است در طول زمان مسیر هدف اصلی را گم کنند و منجر به تغییرات غیرمنتظره شوند.
همانطور که در تحلیلهای پیشین ما دربارهی امنیت مدلهای بازمتن اشاره کردیم، اعتماد مطلق به خروجی مدل بدون داشتن لایههای نظارتی، ریسک عملیاتی را بهشدت افزایش میدهد. در این مورد، خطر اصلی زمانی رخ میدهد که عامل برای حل یک تداخل (Conflict)، تصمیم بگیرد مسیر ساده را انتخاب کرده و با یک Hard Reset، تمام تغییرات انسانی را حذف کند.
به نقل از نویسنده این گزارش، یکی از حوادث زمانی رخ داد که عامل برای بازگرداندن یک بیلد (Build) به وضعیت سبز، بهطور یکجانبه دستور reset را اجرا کرد تا تداخلات را پاک کند. این دقیقاً همان کاری است که یک توسعهدهنده ارشد به تازهکاران میگوید هرگز انجام ندهند. این تجربه ثابت کرد که «شانس» یک سیستم ایمنی نیست و حفاظها (Guardrails) — یعنی محدودیتهای سختافزاری یا نرمافزاری که مانع از خروج مدل از مسیر ایمن میشوند — الزامی هستند. برای مدیریت دقیقتر این فرآیندها، برخی تیمها به جای مهندسی پرامپت، از سیستمهای تأیید چندعاملی برای اعتبارسنجی کدها استفاده میکنند تا ریسک تخریب کاهش یابد.
برای کنترل این وضعیت، نویسنده سیستمی را پیاده کرد که در آن دسترسیهای پرریسک عامل کاملاً حذف شدهاند. هدف این نبود که «عامل 똑똑تر شود»، بلکه هدف کوچک کردن شعاع تخریب بود.
- ممنوعیت دستورات تخریبی: دسترسی گیت (Git) عامل بهگونهای محدود شده که دستوراتی مثل
reset --hardیاpush --forceدر دسترس نیستند. اگر عامل احساس کند به اینها نیاز دارد، باید متوقف شده و به انسان خبر دهد. تداخل در ادغام (Merge Conflict) یک مشکل ۵ دقیقهای است، اما یک تداخل «بهاشتباه حل شده» میتواند کل بعدازظهر را تلف کند. - نامگذاری قراردادی شاخهها: هر شاخه (Branch) ایجاد شده توسط عامل باید الگوی
agent/<task-id>-<short-slug>را داشته باشد. این کار از طریق یک pre-push hook بهصورت مکانیکی بررسی میشود تا عامل نتواند مستقیماً روی شاخه اصلی (Main) کد بفرستد. این رویکرد در راستای این تحلیل است که اتکای بیش از حد به جریانهای کاری دستی در گیت منجر به اتلاف بودجههای مهندسی میشود و استانداردسازی توسط عاملها ضروری است.
جلوگیری از «گسترش محدوده» — یعنی وقتی عامل یک تست را اصلاح میکند اما تصمیم میگیرد فایلهای نامرتبط را هم «تمیز» کند — نیاز به جابجایی مرز نظارت از مرحله بررسی کد به مرحله تعریف تکلیف دارد.
- مرزهای سختگیرانه محدوده: تعریف تکلیف عامل اکنون شامل یک مرز صریح است. اگر تغییرات نهایی (Diff) شامل فایلهایی خارج از این محدوده باشد، درخواست ادغام (PR) پیش از باز شدن، بهطور خودکار رد میشود.
- متادیتای ساختاریافته: بهجای پیامهای متنی آزاد، عامل باید سرآیند کامیت را با فرمت مشخصی بنویسد و حتماً بخش
risk:را ذکر کند. مجبور کردن عامل به بیان ریسک، لحظهای برای تأمل ایجاد میکند که در بررسی سریع کد گم میشود.
در سلسلهمراتب ادغام خودکار، تصمیمگیری بر اساس «اعتماد به مدل» نیست، بلکه بر اساس «شعاع تخریب» است:
- مسیرهای ایمن (ادغام خودکار): تغییرات در مستندات یا READMEها اگر تستها سبز باشند، خودکار ادغام میشوند. اما حذف فایلهای تست برای «سبز کردن» نتایج، مسدود است.
- مسیرهای حساس (بازبینی انسانی): هر تغییری در منطق برنامه، فایلهای تنظیمات (Config) یا تعریف خط لوله CI، نیاز به تأیید انسانی دارد. دسترسیها و مجوزها بدون توجه به اندازه تغییر، بلوکرهای کامل هستند.
این رویکرد باعث شد صف بازبینی انسانی از «همه چیز» به حدود ۲۰ درصد از PRها کاهش یابد. درس اصلی این است: در استقرار عاملهای خودمختار، باید از «اعتماد به قضاوت» به سمت «اجرای محدودیتها» حرکت کرد.
گام بعدی شما
- دسترسیهای Shell عامل خود را بررسی کنید و دستورات Force-push را حذف کنید.
- برای هر تکلیف، یک مرز مشخص (Scope) تعیین کنید تا عامل فایلهای نامرتبط را تغییر ندهد.
- یک فهرست سفید (Allow-list) از مسیرهای ایمن برای ادغام خودکار ایجاد کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو