تصور کنید یک برنامهنویس با یک عامل کدنویسی (Coding Agent) کار میکند که برای یافتن یک باگ، ۲۰۰ فایل را میخواند و سپس ناگهان پایگاه داده تولید (Production Database) را پاک میکند. اگر شما ۱۹۹ بار برای خواندن فایلهای کمریسک دکمه «بله» را زده باشید، به احتمال زیاد بار دومصدم را هم بدون نگاه کردن کلیک میکنید. این «تنزل سطح بیصدا» در مسیر حسابرسی (Audit Trail)، تشخیص علت وقوع یک شکست فاجعهبار را پس از حادثه غیرممکن میکند.
طبق یک گزارش فنی از Armorer Labs، وجود تنها یک دکمه «تأیید» (Confirm)، تجملِ مراحل دموی محصول است که در محیطهای عملیاتی شکست میخورد. این مدلِ سنتی از پرامپتهای تکبهتک، یک تقابل خطرناک ایجاد میکند: کاربر یا دچار «خستگی تأیید» (Approval Fatigue) شده و هر اقدامی را بدون بررسی مهر میزند، یا تبدیل به گلوگاهی میشود که بهرهوری عامل را میکشد.
این شکست به سه دلیل اصلی رخ میدهد. نخست اینکه وقتی یک عامل صدها گام کمریسک تولید میکند، کاربران نمیتوانند تکتک اقدامات را ارزیابی کنند. این چالش در مدیریت توالی عملیات ریشه دارد و در تحلیلهای پیشین ما درباره راهکارهای «صف اقدامات» بررسی کردیم که چگونه میتوان از هدررفت توکنها و کاهش پایداری عاملها در محیطهای عملیاتی جلوگیری کرد. دوم، «دامنه اثر» (Blast Radius) یک اقدام واحد، بسته به زمینه تغییر میکند؛ برای مثال، «ارسال پیام» در یک محیط آزمایشی (Sandbox) بیخطر است، اما در مقابل یک مشتری واقعی، ریسک بالایی دارد. معمولاً سیستم زمان اجرا (Runtime) از این زمینه خبر دارد، اما کاربر نه. سوم، پرامپتهای استاندارد «لبهها» را نادیده میگیرند؛ یعنی تلاشهای مجدد (Retries)، بازیابیها، جایگزینها و تصاعدهایی که بین نمایش پرامپت و اثر جانبی واقعی رخ میدهند.
برای حل این مشکل، Armorer Labs مکانیزم «تصاعد تأیید لایهای» (Tiered Approval Escalation) را معرفی کرده است. در این روش، منطق تصمیمگیری از متن پرامپت به درگاه زمان اجرا (Runtime Gateway) منتقل میشود. به جای اینکه سیستم صرفاً از کاربر بپرسد آیا یک اقدام مناسب است یا خیر، هر فراخوانی ابزار (Tool-call) را در یکی از چهار لایه ریسک زیر طبقهبندی میکند:
- لایه ۰ (فقط خواندن، محدود): نیازی به پرامپت ندارد. مثالها شامل خواندن فایلهای داخل ریشه پروژه، پرسوجوهای جستوجو در یک ایندکس داخلی، یا گرفتن اسنپشات از یک URL در محیط سندباکس است. در این لایه، هیچ رسیدی فراتر از لاگهای اجرا تولید نمیشود.
- لایه ۱ (تغییر وضعیت داخلی بازگشتپذیر): بدون نیاز به پرامپت، اما مستلزم یک رسید بادوام (Durable Receipt) و یک توکن «بازگشت» (Undo Token) است. مثالها شامل ایجاد یک شاخه (Branch) محلی، پیشنویس کردن یک سند یا پر کردن کشِ فضای کاری است.
- لایه ۲ (نوشتن خارجی محدود): در هر جلسه تنها یک بار برای آن دسته از اقدامات با یک دامنه مشخص، پرامپت ارسال میشود. پس از تایید، عامل میتواند پنج، پنجاه یا پانصد مورد نوشتن در آن دسته (مثلاً ارسال کامنت به یک رشته بحث خاص یا ارسال پیام به یک کانال تست) را بدون پرسش مجدد انجام دهد.
- لایه ۳ (غیربازگشتپذیر یا با دامنه اثر بالا): تأیید انسانی در هر بار اجرا اجباری است. این لایه نیازمند تأیید تازه توسط انسان همراه با هدف نهاییِ تحلیلشده، تصمیم سیاستی و یک مصنوع تأییدیه (Verification Artifact) است. مثالها شامل ادغام در شاخه اصلی (Merge to Main)، حذف یک رکورد، تغییر اعتبارنامهها (Credentials) یا ارسال پیام عمومی از یک حساب واقعی است.
به نقل از مستندات این پروژه، پیادهسازی این ساختار به چهار بخش متحرک کلیدی نیاز دارد:
۱. سجل ابزار (Tool Registry): این بخش لایهی هر اقدام را بر اساس طبقهبندی درگاه (Gateway) از فراخوانی تحلیلشده میشناسد، نه بر اساس توصیفی که خودِ عامل ارائه میدهد.
۲. شیء دامنه در سطح جلسه (Session-level Scope Object): وقتی کاربر یک دسته از اقدامات لایه ۲ را تایید کرد، این شیء همراه با اجرای مدل جابجا میشود. نوشتنهای بعدی در آن دسته، دامنه را چک کرده و بدون پرسش مجدد پیش میروند.
۳. رسید هر فراخوانی (Per-call Receipt): هر اقدام یک رکورد ساختاریافته شامل لایه، هدف تحلیلشده، تصمیم سیاستی، مرجع تأیید و مصنوع تأییدیه میسازد. رسیدهای لایه ۰ و ۱ بهصورت دستهای در لاگها قرار میگیرند، اما رسیدهای لایه ۲ و ۳ رکوردهایی درجهیک (First-class records) هستند.
۴. مسیر تصاعد (Escalation Path): اگر یک اقدام لایه ۱ ناگهان نیاز داشته باشد به لایه ۲ تبدیل شود (مثلاً اگر عامل تلاش کند خارج از دامنه تأییدشده بنویسد)، زمان اجرا متوقف شده و اقدام را مجدداً طبقهبندی میکند. سپس پرامپتی به کاربر اطلاع میدهد که اقدام مذکور تغییر لایه داده و از او میخواهد لایه جدید را تایید کند یا عملیات را متوقف نماید.
باید توجه داشت که این سیستم جایگزینی برای «حفاظ» (Guard) نیست. ابزاری مثل Armorer Guard — که یک اسکنر محلی با زبان Rust است — وظیفه بررسی تزریق پرامپت (Prompt Injection)، نشت اعتبارنامهها، الگوهای استخراج داده (Exfiltration) و دور زدن لایههای ایمنی را دارد. در واقع، حفاظ تصمیم میگیرد که آیا یک اقدام «میتواند» اجرا شود یا خیر، اما لایهبندی تعیین میکند که آیا «امضای انسانی» لازم است یا نه. برای مثال، یک خواندن لایه ۰ همچنان میتواند توسط حفاظ مسدود شود، و یک ارسال لایه ۳ که از سد حفاظ گذشته است، ممکن است باز هم برای تایید انسانی متوقف شود.
مدیران عملیات باید مراقب سه حالت شکست زودهنگام باشند. نخست «تورم لایهها» (Tier Inflation) است؛ جایی که عاملها اقدامات مرزی را از طریق لایه ۱ هدایت میکنند چون راحتتر است. راه حل این مشکل، اجبارِ زمان اجرا (Runtime) به انتخاب لایه است. دوم «انحراف دامنه» (Scope Drift) است که در آن یک دسته لایه ۲ بیش از حد گسترده میشود. راه حل این مورد، یک شیء دامنه برای هر دسته است که نوع هدف و مقصد دقیق را نامگذاری کند. سوم «کمتولیدی رسید» (Receipt Underproduction) است که در آن رسیدهای لایه ۰ و ۱ به ذخیرهسازهای بادوام منتقل نمیشوند و فقط لاگ اجرا باقی میماند. این مشکل با یکپارچهسازی طبقهبندی لایهها و صدور رسید در یک نقطه واحد حل میشود.
برای اپراتورها، این تغییر، مفروضات بنیادی ایمنی عامل را دگرگون میکند. با حذف انسان از چرخه کارهای کمریسک، «هزینه» هر کلیک برای عملیاتهای واقعاً خطرناک حفظ میشود. این رویکرد به عاملهای طولانیمدت اجازه میدهد بدون فدا کردن قابلیت حسابرسی (Auditability) مورد نیاز برای انطباق سازمانی (Enterprise Compliance)، بهصورت خودگردان عمل کنند. این سیستم تضمین میکند که هر نوشتن (Write) دارای یک رسید واقعی و یک دلیل معتبر برای اجازه اجرا باشد، فارغ از اینکه آیا انسان برای آن نمونه خاص دکمهای را کلیک کرده است یا خیر.
برای اپراتورها، این تغییر، مفروضات بنیادی ایمنی عامل را دگرگون میکند. با حذف انسان از چرخه کارهای کمریسک، «هزینه» هر کلیک برای عملیاتهای واقعاً خطرناک حفظ میشود. این رویکرد به عاملهای طولانیمدت اجازه میدهد بدون فدا کردن قابلیت حسابرسی (Auditability) مورد نیاز برای انطباق سازمانی (Enterprise Compliance)، بهصورت خودگردان عمل کنند. این سیستم تضمین میکند که هر نوشتن (Write) دارای یک رسید واقعی و یک دلیل معتبر برای اجازه اجرا باشد، فارغ از اینکه آیا انسان برای آن نمونه خاص دکمهای را کلیک کرده است یا خیر.
گام بعدی شما
- اگر از عاملهای AI برای اتوماسیون استفاده میکنید، لیست ابزارهای خود را بر اساس «دامنه اثر» به جای «نوع عملکرد» دستهبندی کنید.
- برای اقدامات لایه ۲، مکانیزم «تأیید در سطح جلسه» را جایگزین تأییدهای تکبهتک کنید تا خستگی تأیید کاهش یابد.
- مطمئن شوید که سیستم ثبت لاگ شما، رسیدهای لایه ۰ و ۱ را بهصورت دستهای ذخیره میکند تا فضای ذخیرهسازی هدر نرود.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو