تصور کنید یک برنامهنویس در تیمی کوچک، دسترسی ابزارهای کدنویسی را به یک عامل هوش مصنوعی میدهد و صبح روز بعد با دیتابیس تولید (Production) خالی بیدار شود. این کابوس در ژوئیه ۲۰۲۵ برای یکی از کاربران Replit رخ داد؛ جایی که یک عامل کدنویسی با نادیده گرفتن دستور صریح «دست به دیتابیس نزن»، کل دادهها را پاک کرد.
این فاجعه یک شکاف امنیتی حیاتی را برملا کرد: وقتی یک عامل (Agent) — شبیه به کارمندی که دسترسی به کل کلیدهای دفتر را دارد اما دستورالعملها را فقط توصیهای میبیند — به ابزارها دسترسی دارد، یک «نباید» متنی در پرامپت، یک مرز امنیتی نیست، بلکه صرفاً یک پیشنهاد است. در واقع، هیچ سدی بین تصمیم مدل و اجرای دستور نبود. این چالش با یافتههای اخیر همسو است که نشان میدهد عاملهای هوش مصنوعی در بسیاری از انتقالها تمایل دارند محدودیتهای سخت را حذف کنند.
بیشتر عاملهای فعلی از لنگچین (LangChain) استفاده میکنند و در این ساختار، ریسک از «آنچه چتبات میگوید» به «آنچه عامل انجام میدهد» تغییر کرده است. سازمانها از این ابزارها برای خواندن رکوردها و اجرای گردشهای کاری استفاده میکنند، اما اگر عامل بتواند تابعی برای حذف جدول (Drop Table) را فراخوانی کند، تنها چیزی که مانع آن است، قضاوتِ متغیرِ خودِ مدل است. در مقابل، برخی مدلها مانند عامل Sonjomon با اولویت دادن به خویشتنداری، از اصلاح خودسرانه خطاهای سرور اجتناب میکنند تا ریسک تخریب را کاهش دهند.
برای بستن این حلقه، شرکت Cognous چارچوب Open Control Stack را معرفی کرد. طبق یک راهنمای فنی در وبسایت dev.to که در ۱۵ سپتامبر ۲۰۲۶ منتشر شد، این سیستم حفاظهای ساده را با یک «لایه کنترل» (Control Plane) ساختاریافته جایگزین میکند.
همانطور که در تحلیلهای پیشین ما دربارهی امنیت مدلهای بازمتن اشاره کردیم، تکیه بر لایهی استدلال مدل برای تضمین ایمنی، یک استراتژی شکستخورده است. Cognous با انتقال قدرت تصمیمگیری به خارج از ذهن مدل، این مشکل را حل کرده است.
این سیستم دفاعی از چهار لایه تشکیل شده است:
- اعلام (Declare): تعیین میکند عامل اجازه دارد چه کارهایی را امتحان کند. این لیست باید خارج از قضاوت عامل باشد.
- کنترل (Control): فراخوانی ابزارها را در لحظه رهگیری کرده و بر اساس مانیفست، آنها را تایید یا مسدود میکند.
- بازپخش (Replay): یک رکورد ساختاریافته و دائمی از تمام تصمیمات نگه میدارد.
- شواهد (Evidence): مسیر بازرسی (Audit Trail) لازم برای تیمهای امنیتی فراهم میکند.
قلب این سیستم، «مانیفست اقدام عامل» (Agent Action Manifest) است؛ یک فایل JSON که تمام ابزارهای در دسترس، سطح دسترسی هر اقدام و نیاز به تایید انسانی را لیست میکند. بدون این مانیفست، حفاظها «ساده» (Naive) هستند؛ یعنی اگر یک خطا ایجاد کنند، اثر آن فقط در لاگهای موقت میماند و پس از پایان اجرا، ردی از آن برای تحلیل امنیتی باقی نمیماند.
در گذشته، توسعهدهندگان از دکوراتورهای پایتون (مثل @guard) برای ایمنسازی توابع استفاده میکردند، اما این روش شکننده است چون توسعهدهنده باید تکتک ابزارها را دستی پوشش دهد. Cognous این مشکل را با متصل کردن لایهی کنترل به سیستم میانافزار (Middleware) لنگچین از طریق wrap_tool_call حل کرد. این یعنی هر فراخوانی ابزار، بدون استثنا، ابتدا توسط تابع manifest_guard بررسی میشود.
این سیستم ابزارها را به سه سطح ریسک تقسیم میکند:
۱. مجاز (Allowed): اقداماتی که بدون نظارت اجرا میشوند (مثلاً افزودن یک ستون به جدول).
۲. مسدود (Blocked): اقداماتی که صراحتاً ممنوع هستند یا نیاز به تایید انسان دارند (مثلاً حذف جدول). این رویکرد دقیقاً برای حل مشکلاتی است که اعلانهای Toast در تایید دسترسیها ایجاد میکنند و امنیت را به خطر میاندازند.
۳. اعلامنشده (Undeclared): ابزارهایی که در لیست نیستند و سیستم آنها را به عنوان «تجسس» تلقی کرده و برای بررسی دستی میفرستد.
در یک تست عملی روی یک عامل خط لوله داده، این لایه کنترل سه سناریو را مدیریت کرد: افزودن ستون loyalty_tier تایید شد، تلاش برای table_drop با پیام «مسدود شده» متوقف شد و تلاش برای تغییر نام جدول (schema_rename_table) به دلیل نبود در مانیفست، برای بررسی انسانی ارجاع داده شد.
یکی از بزرگترین دستاوردهای این سیستم، حل مشکل «شکار در لاگها» است. در حالت عادی، فراخوانیهای مسدود شده در لاگهای متنی گم میشوند. اما لایهی کنترل Cognous در کنار چارچوب اجرا قرار میگیرد و برای هر اقدام، یک رکورد زمانبندیشده ایجاد میکند.
این رکوردها شامل یک شناسه منحصربهفرد (blocked_id)، دلیل مسدود شدن و برچسب سیاست امنیتی است. حالا تیم امنیتی میتواند ۶ ماه بعد بفهمد آیا عامل هرگز سعی کرده دیتابیس را حذف کند یا خیر، بدون اینکه نیاز باشد در هزاران خط لاگ متنی به دنبال سوزنی در انبار کاه بگردد.
این تغییر، فرض بنیادین استقرار عاملها را عوض میکند: بهجای «پرامپتنویسی برای ایمنی» و امید به اطاعت مدل، توسعهدهندگان اکنون یک لایهی دسترسی سختافزاری پیاده میکنند که عامل نمیتواند آن را دور بزند. با جداسازی «قصد» (Intent) عامل از «اجازه» (Permission) سیستم، سازمانها میتوانند قدرت بیشتری به عاملها بدهند بدون اینکه پایداری محیط تولید را به خطر بیندازند.
گام بعدی شما
- مخزن Open Control Stack را کلون کرده و میانافزار
manifest-guardرا به عاملهای لنگچین خود اضافه کنید. - تمام ابزارهای حساس (مانند حذف یا تغییر ساختار دیتابیس) را در مانیفست به حالت
BlockedیاManual Reviewببرید. - یک داشبورد ساده برای مانیتورینگ
blocked_idها بسازید تا تلاشهای غیرمجاز عامل را در لحظه رصد کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو