دو جایگاه برای قرار دادن یک کنترل
هر سیستم agent دو مکان نامزد برای یک کنترل ایمنی دارد. اولی درون دستورهای مدل است: یک system prompt که میگوید دادههای production را حذف نکن، یک توصیف tool که از exfiltrate کردن اسرار هشدار میدهد، یک بند سیاست که به context window افزوده شده است. دومی در مسیر زمان اجرا میان agent و چیزی است که میخواهد انجام دهد: tool call، درخواست egress، استفاده از credential.
این دو همارز نیستند، و تفاوتشان درجهای نیست. یک محدودیت سطح پرامپت ورودیای به یک سیستم احتمالاتی است. برای جلب توجه با پیام کاربر، اسناد بازیابیشده، خروجی tool که سه نوبت پیش رسیده، و هر آنچه مهاجم در صفحه وبی که agent همین حالا واکشی کرده جای داده، رقابت میکند. تابع هر حالت شکستی است که مدل دارد: drift دستور در contextهای طولانی، sycophancy در برابر کاربر مطمئن، آسیبپذیری به متن تزریقشده، و واریانس نمونهگیری ساده. وقتی کار میکند، کار میکند چون مدل تصمیم گرفته تبعیت کند. وقتی شکست میخورد، هیچ چیز در معماری متوجه نمیشود.
یک کنترل زمان اجرا در نقطهای رهگیری میکند که کنش از قبل عینی است. مدل یک tool call با نام و آرگومانها منتشر کرده است. آن call یک شیء ساختیافته است، نه یک disposition. میتوان آن را parse کرد، با سیاست تطبیق داد، نگه داشت، بازنویسی کرد، یا پیش از رسیدن هر چیزی به filesystem، شبکه یا مخزن اسرار رد کرد. کنترل نیازی ندارد که مدل با آن موافق باشد.
بحث کنونی پیرامون چارچوب امنیتی agent زمان اجرا از Nvidia و بحث گستردهتر کلید قطع اضطراری، در زیر زبان فروشنده، استدلالی است درباره اینکه کدام لایه اقتدار دارد. یک اردوگاه مدل را سطح اجرا میبیند و میکوشد دستورها را قویتر کند. اردوگاه دیگر مدل را یک planner غیرقابلاعتماد میبیند و اقتدار را در مسیری میگذارد که باید طی کند. اردوگاه دوم از نظر معماری درست است، و حرکت صنعت به سوی آن شرط درست است.
کلید قطع اضطراری یک نشانه است
کلید قطع اضطراری ایدهای جذاب است چون یک مسئله سخت حاکمیتی را به یک دکمه واحد فرو میکاهد. همچنین دو چیز را پیشفرض میگیرد که ناوگانهای agent بهندرت دارند: یک supervisor واحد با اقتدار بر کل استقرار، و یک کانال قابلاعتماد از آن supervisor به هر workload در حال اجرا.

هیچکدام با یک سیستم واقعی تماس پیدا نمیکنند. agentها توسط orchestratorها spawn میشوند، در مناطق مختلف scale میشوند، در صفها و cron jobها جاسازی میشوند، و credentialهایی میگیرند که از فرآیندی که آنها را درخواست کرده عمر بیشتری دارند. supervisor اغلب چندین لایه انتزاع از containerی که واقعاً یک socket باز را نگه داشته دور است. سیگنالی که در این زنجیره فرستاده میشود یک درخواست است، نه یک تضمین، و درخواستها توسط sidecarهای crashکرده، شبکههای partitionشده و workloadهایی که در میانه retry هستند رها میشوند.
آنچه واقعاً یک agent را متوقف میکند حذف capability است، نه تحویل intent. بهطور عینی: tokenی را که agent استفاده میکند باطل کنید، تا call بعدیاش صرفنظر از آنچه فکر میکند انجام میدهد در authorization شکست بخورد. مسیر egress را در مرز شبکه ببندید، تا درخواستی که از فرآیند خارج میشود به جایی نرسد. صفی را که agent از آن میخواند تخلیه کنید، تا کار جدیدی نرسد. secretی را که در آستانه خواندنش بود rotate کنید. اینها کنشهای اجرا هستند چون آنچه ممکن است را تغییر میدهند، نه آنچه قصد شده. یک رویه shutdown که بر ابطال capability بنا شده بهطور graceful تنزل مییابد: اگر یک ابطال شکست بخورد، بقیه هنوز اثر میکنند.
ارزش دارد دقیق باشیم درباره اینکه artefactهای سیاست چه هستند و چه نیستند. وقتی یک lab معیارهای shutdown یا بندی از model specification را منتشر میکند که توصیف میکند agent چه زمانی باید متوقف شود، آن یک سند حاکمیتی است. رفتار را شکل میدهد، intent را علامت میدهد، پاسخگویی ایجاد میکند. یک مکانیزم اجرا نیست، چون در همان سمت مرزی زندگی میکند که مدلی که محدودش میکند. خواندن چنین انتشاراتی بهعنوان تضمین ایمنی، بیانیه ارزشها را با بیانیه کنترل اشتباه میگیرد.
قاعده طراحی: رهگیری کن، دستور نده
قاعدهای که در پی میآید باریک و مکانیکی است. هر tool با پیامد، یک policy decision point روی مسیر call میگیرد، با وضعیت default-deny. «با پیامد» یعنی هر چیزی که مینویسد، حذف میکند، میفرستد، خرج میکند، احراز هویت میکند یا به بیرون از sandbox میرسد. «default-deny» یعنی tool تا زمانی که یک سیاست صریحاً شکل خاصی از call را مجاز نکند غیرقابلاستفاده است، نه اینکه تا زمانی که کسی یادش بیفتد مسدودش کند قابلاستفاده باشد.
مکانیزم بیتجمل است. runtime agent هر tool را در یک interceptor میپیچد. پیش از dispatch، interceptor یک درخواست تصمیم را میسازد: principal (کدام agent، کدام task، کدام هویت واگذارشده)، نام tool، یک digest از آرگومانها، و سیگنالهای زمینهای مانند طبقهبندی دادههای session. از یک policy engine پرسوجو میکند، حکم permit، deny یا transform میگیرد، و تنها پس از آن dispatch، بازنویسی یا رد میکند. transform اهمیت دارد: redact کردن یک فیلد یا باریک کردن یک مسیر اغلب بهتر از یک مسدودسازی دودویی است.

هر تصمیم با principal، tool، digest آرگومانها و حکم ثبت میشود. digest بهجای آرگومانهای خام، log را برای نگهداری ایمن میکند و در عین حال replay و اختلاف را ممکن میسازد. آن log بستر audit، بازبینی حادثه و تنظیم خود سیاست است.
دستورها زیر این طراحی ناپدید نمیشوند. آنها ابزار درست برای شکل دادن به رفتار باقی میمانند: لحن، استراتژی تجزیه، زمان پرسیدن یک پرسش روشنکننده، نحوه خلاصه کردن. آنچه تغییر میکند ادعایی است که مطرح میشود. هیچ ویژگی ایمنی نباید تنها بر یک دستور تکیه کند، چون یک دستور پیشنهادی است به سیستمی که تبعیتش بهحکم ساختار احتمالاتی است.
اجرا چه هزینهای دارد
رهگیری زمان اجرا رایگان نیست، و تظاهر به خلاف آن معماریهای بد تولید میکند. سه هزینه واقعی است.
اولی latency و یک single point of failure جدید است. هر call رهگیریشده اکنون منتظر یک تصمیم سیاست میماند، و مسیر سیاست روی critical path محصول است. اگر در دسترس نباشد، پیشفرض درست deny است، که یعنی سرویس سیاست به بودجه دسترسپذیری خودش حداقل به قوت toolهایی که محافظت میکند نیاز دارد. این یک تعهد مهندسی است، نه یک جزئیات پیکربندی: decision pointهای تکثیرشده، caching محلی bundleهای سیاست امضاشده با انقضای کوتاه، و رفتاری مستند برای حالت تنزلیافته.
دومی این است که نوشتن سیاست یک مسئله schema است. یک schema مبهم یکی از دو حالت شکست را تولید میکند: قواعدی چنان گسترده که همه چیز را مهر تأیید میزنند، یا قواعدی چنان تنگ که کار مشروع را مسدود میکنند و تیم دورشان میزند. کار در درست کردن درخواست تصمیم است — کدام attributeها در زمان call در دسترساند، کدام پایدارند، کدام را مهاجم میتواند تحت تأثیر قرار دهد. یک policy engine که context مدلنشده تغذیه میشود درباره چیزهای اشتباه تصمیمهای مطمئن میگیرد.
سومی measurement است. تعداد قواعد یک معیار ایمنی نیست؛ یک مجموعه قاعده بزرگ میتواند کاملاً بیاثر باشد. نتیجهای که ارزش ردیابی دارد نسبت کنشهای رهگیریشده به مجازشده روی toolهای با پیامد است، به تفکیک tool و principal. نسبتی نزدیک به صفر روی toolی که به production مینویسد نشانهای است که سیاست تزئینی است. نسبتی که پس از یک تغییر بهشدت جابهجا میشود نشانهای است که ارزش بررسی دارد. هیچکدام از این دو عدد تضمین نیست، اما هر دو توصیف میکنند که آیا کنترل واقعاً در مسیر است یا نه.
خلاصه صادقانه این است که حاکمیت زمان اجرا اعتماد را از تبعیت مدل به زیرساخت اپراتور منتقل میکند. ساختنش سختتر و audit کردنش بسیار آسانتر است. با توجه به اینکه به سیستمهای agent credential و دسترسی شبکه داده میشود، audit همان بخشی است که اهمیت دارد.
