Enclave در GitHub Agentic Workflows: جلوی نشت ریپوهای خصوصی
خلاصهٔ کاملتر
ماجرا از افشاگری GitLost شروع شد: محققهای Noma Labs یه agent ساختن که به ریپوهای عمومی و خصوصی یه سازمان دسترسی داشت و یه issue عمومی مخرب باز کردن که agent رو راضی کرد محتوای یه ریپوی خصوصی رو تو یه کامنت عمومی بذاره. نه sandboxی شکسته شد نه توکنی دزدیده شد؛ agent فقط از دسترسیهایی که داشت جوری استفاده کرد که صاحبش نمیخواست. حالا که GitHub Agentic Workflows هفتهی پیش تو GitHub Universe عمومی شده، تیم GitHub Next یه راهحل آزمایشی به اسم enclave معرفی کرده.
enclave یه sandbox یهبارمصرفه که agent اصلی برای کار روی یه ریپوی دیگه راه میندازه. agent اصلی فقط به ریپوی خودش دسترسی داره و موقع راه انداختن enclave سه چیز رو مشخص میکنه: ریپو، کاری که باید انجام بشه، و یه response schema، یعنی قالبی که جواب باید دقیقاً توش جا بشه. این schemaها معمولاً فقط boolean، enum و عدد محدودن و enclave نمیتونه توضیح، فایل یا رشتهی آزاد برگردونه. یه broker مورد اعتماد وسط این دو تا هست که هر جواب رو با schema چک میکنه.
مقدار اطلاعاتی که جواب میتونه حمل کنه با یه information budget بر حسب بیت محدود میشه. مثلاً سطح حساسیت confidential اجازهی ۸ بیت برای هر ریپو در هر اجرا میده. نمونهی مقاله: یه schema با سه مقدار برای سازگاری و یه boolean برای نیاز به migration، شش جواب ممکن داره یعنی ۳ بیت؛ بهعلاوهی ۴ بیت برای زمان پاسخ و ۱ بیت برای موفقیت یا خطا، میشه دقیقاً ۸ بیت. هزینه قبل از اجرا و برای بدترین حالت کم میشه و همهی صدا زدنها از یه دفتر حساب مشترک برای هر ریپو کم میکنن، پس با سؤالهای پشتسرهم نمیشه یه راز رو بیت به بیت بیرون کشید.
دو نوع enclave داریم: script enclave که یه برنامهی Python محدود رو بدون شبکه روی یه snapshot فقطخوندنی اجرا میکنه، و agent enclave که یه coding agent جدا برای کارهای استدلالی راه میندازه. تنظیمش تو front matter ورکفلو انجام میشه:
enclaves:
- agent:
model: gpt-5
repos:
- repo: contoso/private-repo
sensitivity: confidential
timeout: 180سطحهای حساسیت از trusted و public (بدون سقف بیت) تا internal با ۶۴ بیت، confidential با ۸ بیت و sealed با صفر بیت هستن. کانالهای جانبی هم بسته شدن: زمان پاسخ تو ۱۲ دستهی ثابت گرد میشه و یه تأخیر تصادفی ۰ تا ۱۰۰۰ میلیثانیهای میگیره، خطاها یه پیام استاندارد دارن و لاگها خروجی آزاد رو حذف میکنن. یعنی اگه enclave فریب بخوره و بخواد README خصوصی رو به جواب بچسبونه، جواب رد میشه و agent اصلی فقط یه خطا میگیره.
خود نویسندهها محدودیتها رو هم گفتن: حتی یه بیت میتونه جواب یه سؤال حساس باشه، schema درست بودن جواب رو تضمین نمیکنه، و agent enclave محتوای ریپو رو به ارائهدهندهی مدل میفرسته. بودجه هم برای هر اجراست، پس باید به تعداد اجراها هم فکر کرد. enclave جای credentialهای حداقلی، integrity filtering و safe outputs رو نمیگیره و کنارشون کار میکنه.
نکات کلیدی:
- enclave یه قابلیت آزمایشی تو GitHub Agentic Workflows هست که از ۲۸ اکتبر ۲۰۲۶ عمومی شده.
- agent اصلی هیچوقت snapshot ریپوی خصوصی یا credentialها رو نمیبینه.
- بودجهی اطلاعات: internal ۶۴ بیت، confidential ۸ بیت، sealed صفر بیت برای هر ریپو در هر اجرا.
- schemaی رشتهی آزاد مثل {"type":"string"} برای ریپوی confidential رد میشه.
- ۴ بیت برای زمان پاسخ و ۱ بیت برای خطا همیشه از بودجه کم میشه.




