Anthropic نسخه 2.1.207 Claude Code را در این ماه عرضه کرد و در میان یادداشت‌های انتشار، تغییری نهفته است که قوانین توسعه به کمک هوش مصنوعی را بازنویسی می‌کند. حالت خودکار (Auto mode) اکنون در سه پلتفرم اصلی ابری که این عامل (agent) را میزبانی می‌کنند، یعنی Amazon Bedrock، Google Vertex AI و Microsoft Azure Foundry به صورت پیش‌فرض فعال است. همین یک تغییر، مالکیت زنجیره تأیید را در زمانی که کد نوشته شده توسط ماشین به مخزن (repository) شما می‌رسد، دگرگون می‌کند.

روش قدیمی معیوب بود

تا پیش از این نسخه، Claude Code به طور پیش‌فرض در حالت دستی (manual mode) اجرا می‌شد. عامل ابتدا ویرایش فایل را آماده، یک دستور شل (shell command) را تنظیم یا یک دستور git commit را در صف قرار می‌داد و سپس متوقف می‌شد. منتظر می‌ماند تا یک انسان تغییرات (diff) را بخواند، دستور را بررسی کند و روی تایید (approve) کلیک کند. تئوری منطقی بود: هرگز اجازه ندهید هوش مصنوعی بدون تأیید یک فرد، به کد تولید (production) دست بزند.

واقعیت متفاوت بود. Anthropic دریافت که ۹۳٪ از کاربران در حالت دستی، بدون خواندن پرامپت‌ها، آن‌ها را تأیید می‌کردند. توسعه‌دهندگان با صفحه تأیید به عنوان یک مزاحمت برخورد می‌کردند، نه یک نقطه بازرسی. آن‌ها برای حفظ جریان کاری خود، با سرعت پشت سر هم روی "yes" کلیک می‌کردند که این امر دروازه دستی را بی‌اثر می‌کرد. یک کنترل امنیتی که همه از آن عبور می‌کنند، دیگر کنترل نیست؛ بلکه اصطکاکی است که در لباس امنیت ظاهر شده است.

چگونه حالت خودکار جایگزین کلیک انسان می‌شود

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

این نوع متفاوتی از شبکه ایمنی است. یک طبقه‌بندی‌کننده در ساعت ۲ صبح خسته نمی‌شود. به دلیل نزدیک شدن ضرب‌الاجل، از خواندن صرف‌نظر نمی‌کند. و همان دقت و سخت‌گیری را که برای اولین اقدام به کار می‌برد، برای صدمین اقدام نیز اعمال می‌کند. یک مهندس خسته نمی‌تواند چنین ادعایی داشته باشد.

یک چرخش در حاکمیت (Governance)

تغییر عمیق‌تر در اینجا مربوط به پیش‌فرض‌ها و مسئولیت‌پذیری است. قبل از نسخه 2.1.207، تیم‌ها باید فعالانه حالت خودکار را انتخاب می‌کردند. اکنون بار مسئولیت معکوس شده است: شما باید برای خاموش کردن آن اقدام صریحی انجام دهید. اگر مجموعه شما با داده‌های تحت نظارت در حوزه‌های مالی یا مراقبت‌های بهداشتی سروکار دارد، این یک تغییر جزئی در تجربه کاربری (UX) نیست، بلکه یک رویداد سیاستی (policy event) است. تیم انطباق (compliance) شما باید بداند که اگر کسی صراحتاً این ویژگی را غیرفعال نکرده باشد، ممکن است commitهای خودکار از قبل در مخازن شما قرار بگیرند.

همین حالا باید چه کار کنید

اول، وضعیت فعلی خود را ممیزی کنید. در لاگ‌های اخیر و تاریخچه git خود جستجو کنید. اگر commitهایی را می‌بینید که به Claude Code نسبت داده شده‌اند اما هیچ پرامپت تأیید انسانی متناظری در سوابق نشست (session records) وجود ندارد، یعنی حالت خودکار از قبل فعال شده است. فرض نکنید تنظیمات قدیمی شما حفظ شده است.

اگر نیاز به بازگشت به کنترل دستی دارید، بدانید که اهرم‌های قدیمی دیگر کار نمی‌کنند. Anthropic پشتیبانی از متغیرهای محیطی (environment variables) قبلی را که این رفتار را تغییر می‌دادند، متوقف کرده است. اکنون باید disableAutoMode را در فایل تنظیمات مدیریت‌شده خود تنظیم کنید. هرگونه راهکار قدیمی در پیکربندی‌های شل یا تصاویر کانتینر (container images) شما بی‌صدا با شکست مواجه خواهد شد، بنابراین پس از ارتقا، خط لوله‌های استقرار (deployment pipelines) خود را اسکن کنید.

شما نمی‌توانید طبقه‌بندی‌کننده را تنظیم دقیق (fine-tune) کنید. هیچ کنترلی برای میزان تهاجمی بودن یا آستانه ریسک آن وجود ندارد. تنها کنترل‌های عملی شما، کنترل‌های دسترسی (access controls) هستند. شعاع انفجار (blast radius) را محدود کنید. عامل را به دایرکتوری‌های خاص محدود کنید. به آن اعتبارنامه‌های (credentials) کوتاه‌مدت با حداقل مجوزهای مورد نیاز بدهید. اگر طبقه‌بندی‌کننده زمانی یک اقدام بد را از قلم انداخت، یک عامل با محدوده دسترسی محدود، بسیار کمتر از عاملی که کلیدهای ادمین در اختیار دارد، می‌تواند آسیب برساند.

جایی که حالت خودکار ارزش خود را ثابت می‌کند

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

این موضوع اهمیت دارد زیرا زمان مهندسی محدود است. هر دقیقه‌ای که صرف کلیک کردن روی "approve" برای اصلاح یک فضای خالی (whitespace) می‌شود، دقیقه‌ای است که از معماری، پاسخ به حوادث یا آن بیست درصد از کارهای واقعاً سخت که هنوز نیازمند قضاوت انسانی است، دزدیده شده است. حالت خودکار آن زمان را بازمی‌گرداند.

اما سرعت بدون انضباط، فقط بدهی فنی (technical debt) سریع‌تر است. طبقه‌بندی‌کننده بررسی می‌کند که آیا یک اقدام با پرامپت مطابقت دارد یا خیر. اما بررسی نمی‌کند که آیا کد حاصل از آن از مجموعه تست یکپارچه‌سازی (integration suite) شما عبور می‌کند، به قوانین ثابت دامنه (domain invariants) شما احترام می‌گذارد یا از راهنمای سبک (style guide) شما پیروی می‌کند یا خیر. شما همچنان به دروازه‌های CI، بازبینی کد (code review) و تست‌های خودکار قبل از رسیدن هر چیزی به مرحله تولید نیاز دارید.

پیچیدگی‌های محیط‌های چند-ابری

از آنجایی که این تنظیم پیش‌فرض به‌طور هم‌زمان در Bedrock، Vertex AI و Azure Foundry اعمال شده است، شرکت‌هایی که از ساختارهای چند-ابری استفاده می‌کنند باید به موضوع یکپارچگی فکر کنند. مگر اینکه هر پلتفرم را به‌طور دقیق پیکربندی کنید، نمی‌توانید اجازه دهید auto mode در AWS با دسترسی‌های آزاد اجرا شود در حالی که در GCP محدود و بسته نگه داشته شده است. اگر با این سه ابر به‌عنوان یک شبکه عملیاتی واحد برخورد می‌کنید، همین حالا سیاست disableAutoMode و مرزهای هویتی خود را استانداردسازی کنید. اختلاف (Drift) بین پلتفرم‌ها تا زمانی که باعث شکست خوردن یک build یا حتی بدتر از آن نشود، نامرئی باقی می‌ماند.

همچنین شایسته است به یاد داشته باشید که classifier چه چیزهایی را نمی‌بیند. این ابزار ارزیابی می‌کند که آیا agent طبق وظیفه خود عمل می‌کند یا خیر، اما بررسی نمی‌کند که آیا یک refactor باعث ایجاد اثرات زنجیره‌ای در کل کد شما می‌شود یا نه. یک agent که در حال استخراج یک utility مشترک است، ممکن است کاملاً با prompt خود همسو به نظر برسد، در حالی که به‌طور نامحسوس رابطی (interface) را تغییر می‌دهد که ده سرویس دیگر به آن وابسته هستند. classifier یک معمار ارشد نیست؛ بلکه یک کنترل‌کننده وظایف است.

چک‌لیستی برای اسپرینت بعدی

اگر مدیریت این انتقال را بر عهده دارید، در اینجا گام‌های عملی برای این هفته آورده شده است:

  • دو هفته از لاگ‌ها را بازرسی کنید. هر commit در Claude Code را ردیابی کنید. هر موردی را که بدون درخواست تایید انسانی ثبت شده است، علامت‌گذاری کنید.
  • محدوده اعتبارنامه‌ها (credentials) را تعیین کنید. یک service account اختصاصی برای agent ایجاد کنید. دسترسی نوشتن را فقط به دایرکتوری‌هایی بدهید که واقعاً به آن‌ها نیاز دارد. هرگز به آن دسترسی به پایگاه‌های داده تولید (production)، کلیدهای استقرار (deployment keys) یا مخازن داده مشتریان را ندهید.
  • مستندات خود را به‌روز کنید. ارجاعات به سوئیچ‌های قدیمی متغیرهای محیطی (environment variable) را حذف کنید. مهندسانِ در حال شیفت (on-call) را به تنظیمات مدیریت‌شده‌ی جدید disableAutoMode هدایت کنید.
  • بر اساس ریسک بخش‌بندی کنید. اجازه استفاده از auto mode را برای وظایف نگهداری محیط توسعه (dev-only hygiene tasks) مانند فرمت‌بندی و به‌روزرسانی‌های جزئی وابستگی‌ها (dependency bumps) بدهید. برای هر چیزی که با منطق تجاری (business logic)، احراز هویت (authentication) یا کدهای مدیریت داده در ارتباط است، حالت دستی (manual mode) یا بررسی کامل توسط انسان را الزامی کنید.
  • تیم انطباق (compliance) خود را مطلع کنید. توضیح دهید که classifier یک بررسی خودکار است، نه تاییدیه انسانی. به آن‌ها نشان دهید که پیش‌فرض جدیدِ عدم مشارکت (opt-out) چگونه با سیاست‌های کنترل تغییر فعلی شما تعامل دارد.

حفاظ‌ها را حفظ کنید، نمایش‌ها را کنار بگذارید

auto mode با حذف تشریفات تایید که در حالت دستی به یک رسم تبدیل شده بود، کدنویسی با کمک هوش مصنوعی را سریع‌تر می‌کند. بررسی agent توسط یک مدل دوم، محافظت بهتری نسبت به یک توسعه‌دهنده خسته است که نیمه‌شب مدام روی "yes" کلیک می‌کند. اما یک تنظیم پیش‌فرض، تصمیمی است که از قبل گرفته شده است، و این تنظیم فرض را بر این می‌گذارد که شما تا زمانی که خلاف آن را نگویید، خواهان خودمختاری هستید.

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

در GyaanSetu AI Community on Telegram به بحث بپیوندید.