پرش به محتوای اصلی
پرش به محتوای مقاله

آنتروپیک با Claude Code Mods کنترل لایه‌ی میانی عامل‌های کدنویسی را باز کرد

·۱۰ مهر ۱۴۰۵۶ دقیقه مطالعه
کد Claude Code Mods منتشر شد: اولین Hook، محافظ Blast Radius و چرا Sandboxed نیستند
کد Claude Code Mods منتشر شد: اولین Hook، محافظ Blast Radius و چرا Sandboxed نیستند
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

باز شدن حلقه‌ی رویداد (Event Loop) در Claude Code؛ توسعه‌دهندگان اکنون می‌توانند بدون تغییر در هسته مدل، رفتار عامل را در سطح سیستم‌عامل تغییر دهند یا مسدود کنند.

تصور کنید بتوانید هر دستوری را که هوش مصنوعی قصد اجرای آن را دارد، در لحظه‌ی آخر متوقف کنید، بازنویسی کنید یا کلاً رد کنید. این همان قدرتی است که آنتروپیک در ۱ اکتبر ۲۰۲۶ با معرفی Claude Code Mods در اختیار برنامه‌نویسان قرار داد. با معرفی یک لایه‌ی میان‌افزار (Middleware) سفارشی بین کاربر و حلقه‌ی اجرای عامل، آنتروپیک Claude Code را از یک ابزار بسته به یک میزبان باز برای افزونه‌ها تبدیل کرده است.

این تغییر در حالی رخ می‌دهد که عامل‌های کدنویسی از رابط‌های چت ساده به اپراتورهای خودکار سیستم تبدیل می‌شوند. برای توسعه‌دهندگان، ریسک اجرای یک دستور مخرب مانند rm -rf یا اجرای یک مهاجرت دیتابیس (Database Migration) در محیط عملیاتی (Production)، یکی از موانع اصلی پذیرش این ابزارهاست. طبق اعلام Anthropic، با باز کردن دسترسی به حلقه‌ی رویداد (Event Loop)، تیم‌ها می‌توانند حفاظ‌های ایمنی (Guardrails) خود را مستقیماً در منطق عامل پیاده کنند، به جای آنکه به پوشش‌های خارجی شل (Shell Wrappers) تکیه کنند.

سازوکار میان‌افزار

به نقل از راهنمای Addy Osmani، هر «ماد» (Mod) یک ماژول کوچک TypeScript یا JavaScript است که درون یک پلاگین زندگی می‌کند. ساختار این ابزار از یک فرمت استاندارد پلاگین (.claude-plugin/plugin.json) پیروی می‌کند که در آن، یک فایل hooks/hooks.json به ماژول خاصی اشاره دارد. این ماژول تابعی به نام register(on, options) را صادر می‌کند که به توسعه‌دهندگان اجازه می‌دهد هندلرهای خود را با استفاده از الگوی on(event, matcher?, hook) متصل کنند.

این قلاب‌ها (Hooks) دقیقاً مانند میان‌افزارهای Express عمل می‌کنند و به صورت زنجیره‌ای به هم متصل می‌شوند؛ به گونه‌ای که اولین مادی که بارگذاری شده است، ابتدا رویداد را می‌بیند و در نهایت نتیجه را دریافت می‌کند. این قانون ترتیب بارگذاری توسط هر دو منبع اوزمانی و AI Weekly تأیید شده است. این قابلیت‌ها در راستای ارتقای توانمندی‌های مدل است، چرا که پلاگین‌های Claude Code نقش مهمی در بهبود مهارت‌های عملی مدل ایفا می‌کنند.

توسعه‌دهندگان می‌توانند سه الگوی اصلی را در یک قلاب پیاده کنند:

  • مشاهده (Observe): ماد رویداد و نتیجه‌ی زنجیره‌ی بعدی را بدون تغییر دادن آن‌ها بررسی می‌کند. برای مثال: const r = await next(e); return r;. این الگو برای ثبت لاگ، اندازه‌گیری میزان مصرف توکن‌ها یا ساخت یک سیستم بازپخش (Replay) استفاده می‌شود.
  • بازنویسی (Rewrite): ماد داده‌های رویداد را تغییر می‌دهد — مثلاً یک دستور Bash را ایمن‌تر می‌کند — و سپس آن را به پایین زنجیره می‌فرستد. برای مثال: return next({ ...e, command: safer });.
  • پاسخ (Answer): ماد بدون فراخوانی next مستقیماً پاسخی برمی‌گرداند. این کار در واقع فراخوانی ابزار را رد کرده و دستور جایگزین خود را ارائه می‌دهد. برای مثال: return { deny: "..." };.

مشخصات فنی و دسترسی

برای استفاده از مادها، کاربران باید از نسخه Claude Code 2.1.287 یا بالاتر استفاده کنند. مادها به صورت پیش‌فرض فعال هستند، به این معنی که کاربران وارد یک API آزمایشی نشده‌اند، بلکه از همان لایه‌ی میان‌افزاری استفاده می‌کنند که ویژگی‌های رسمی (First-party) خودِ آنتروپیک را مدیریت می‌کند.

رویدادهایی که می‌توان به آن‌ها قلاب زد شامل فراخوانی ابزارها (Tool Calls)، ارسال پرامپت‌ها، شروع و پایان نوبت‌ها (Turn start/finish)، چرخه حیات نشست (Session lifecycles)، دستورات اسلش و رندرینگ رابط کاربری (ui.render) است. سیستم یک شیء API تخصصی به نام فراهم می‌کند که دسترسی به سیستم فایل (fs)، مدیریت پردازش (process) و درخواست‌های HTTP را ممکن می‌سازد.

نکته حیاتی این است که این مادها در محیط ایزوله یا سندباکس (Sandboxing) اجرا نمی‌شوند. به گزارش AI Weekly، آنتروپیک صراحتاً هشدار داده است که مادها با همان سطح دسترسیِ ماشینِ خودِ Claude Code اجرا می‌شوند. اوزمانی اشاره می‌کند که اگرچه ماژول دسترسی مستقیم به DOM یا Node ندارد، اما همه چیز از طریق مسیریابی می‌شود. این بدان معناست که نصب یک ماد از منبع نامعتبر، دقیقاً معادل اجرای یک اسکریپت ناشناس روی ماشین محلی شماست. باید با نصب مادها مانند npm رفتار کنید: یا از منبعی مورد اعتماد استفاده کنید یا اصلاً آن را نصب نکنید.

پیاده‌سازی‌های عملی

آنتروپیک در حال حاضر از این سیستم برای محصولات خود استفاده می‌کند (Dogfooding)؛ ویژگی‌هایی مانند پنل /diff و پشتیبانی از AGENTS.md به صورت ماد پیاده شده‌اند. کد منبع این‌ها در دایرکتوری mods/ در مخزن عمومی anthropics/claude-code در دسترس است. این رویکرد ساختاریافته برای مدیریت دستورات، مشابه روشی است که فایل CLAUDE.md برای کاهش توهمات در محیط‌های خاص مانند React Native به کار می‌رود.

سه نمونه ماد در راهنمای اوزمانی پتانسیل این سیستم را به خوبی نشان می‌دهند:

  • Token Weather (حدود ۸۰ خط): این ماد پس از هر نوبت از حلقه‌ی اصلی، مقدار $.session.usage() را می‌خواند و تاریخچه را در $.state ذخیره می‌کند. سپس یک پیش‌بینی یک‌خطی در باند AbovePrompt رسم می‌کند که از وضعیت «آسوده» (Clear) شروع شده و به «ابری» (Cloudy)، «بارانی» (Showers)، «طوفانی» (Storm) و در نهایت «به‌زودی فشرده شود» (Compact soon) تغییر می‌کند.
  • Blast Radius: یک حفاظ ایمنی است که دستورات پرخطر Bash (مانند git reset --hard یا force push یا مهاجرت‌های دیتابیس) را طبقه‌بندی می‌کند. این ماد ابتدا تأثیر دستور را از طریق $.process.run شبیه‌سازی (Dry-run) کرده، یک پنل تأیید/لغو باز می‌کند و سپس یا next(e) را فراخوانی می‌کند یا پاسخی به صورت { deny: "..." } برمی‌گرداند. اوزمانی صراحتاً هشدار می‌دهد که این یک تور ایمنی است و نه یک مسدودکننده سخت‌افزاری، زیرا ممکن است برخی نام‌های مستعار (Aliases) یا اسکریپت‌های تودرتو را نادیده بگیرد.
  • Replay Theater: یک ماد مشاهده است که فراخوانی‌های Edit/Write را ضبط کرده و یک دستور /replay را ثبت می‌کند تا کاربر بتواند مراحل تغییرات (Diffs) را در یک پنل مرور کند. این ماد با استفاده از e.agentId زیر-عامل‌ها (Subagents) را فیلتر کرده و turn.start را با turn.complete جفت می‌کند.

حفاظ‌های سازمانی

برای طرح‌های تیمی و سازمانی (Team and Enterprise)، آنتروپیک یک ماد داخلی به نام sec-default قرار داده است. این ماد در ابتدای زنجیره بارگذاری می‌شود تا از دور زدن ریسکیِ عدم دسترسی‌ها (Permission Denials) جلوگیری کند و تضمین کند که سیاست‌های امنیتی سازمان به راحتی توسط پلاگین‌های بعدی دور زده نمی‌شوند. AI Weekly این موضوع را مطرح کرده است که آیا کاربران محلی می‌توانند این لایه را تضعیف کنند یا خیر، که این یک پرسش مدیریتی باز است. در تحلیل‌های پیشین، تفاوت عملکرد مدل‌های پایه در برابر نسخه‌های پلاگین‌دار نشان داده است که لایه‌های افزونه می‌توانند دقت عملیاتی را به شدت تغییر دهند.

گردش کار توسعه‌دهنده

انتشار یک ماد از طریق کانال موجود پلاگین‌ها انجام می‌شود. توسعه‌دهندگان می‌توانند از دستورات زیر استفاده کنند:

  • /plugin marketplace add your-org/my-mods
  • /plugin install token-weather@your-mods
  • /reload-plugins

برای تکرار سریع، فلگ --plugin-dir امکان بارگذاری nóng (Hot Reloading) را فراهم می‌کند. توسعه‌دهندگان هشدار یافته‌اند که برای حفظ داده‌ها حتماً از $.state استفاده کنند، زیرا بارگذاری مجدد، متغیرهای محلی ماژول را پاک می‌کند. برای تضمین کیفیت، اجرای دستور claude plugin validate ./your-mod ضروری است که کلیدهای وضعیت تعریف‌نشده و فراخوانی‌های نامعتبر API را بررسی می‌کند.

برای کسانی که توسعه به کمک هوش مصنوعی را ترجیح می‌دهند، اوزمانی پیشنهاد می‌کند ماد مورد نظر را برای Claude Code توصیف کنند تا ساختار اولیه (Scaffold) پلاگین را بسازد. با این حال، توسعه‌دهنده باید پیش از اجرای /plugin install روی یک ماشین مشترک، کد را بازبینی کند.

چک‌لیست سازنده

اگر قصد دارید این هفته مادها را پیاده کنید، این توالی را دنبال کنید:

  • سیستم خود را به نسخه Claude Code 2.1.287+ به‌روزرسانی کرده و با claude --version تأیید کنید.
  • پیش از نصب مادهای مارکت‌پلیس، یک لیست از منابع مورد اعتماد ایجاد کنید.
  • ابتدا یک ماد از نوع Observe (مانند Token Weather) بسازید تا با $.state و ui.render آشنا شوید، بدون اینکه دسترسی Bash را به خطر بیندازید.
  • یک ماد از نوع Answer (مانند Blast Radius) برای سه دستوری که تیم شما بیشترین ترس را از آن‌ها دارد (مثلاً terraform apply یا drop-table SQL) طراحی کنید.
  • پیش از اشتراک‌گذاری، دستور claude plugin validate و حداقل یک claude plugin test را اجرا کنید.
  • برای بقا در برابر Hot Reloads، به جای متغیرهای let در سطح ماژول، از $.state استفاده کنید.
  • هر ماد تولید شده توسط AI را مانند یک PR که درخواست دسترسی به fs و process داده است، بازبینی کنید.

این معماری فرض بنیادی امنیت عامل‌ها را تغییر می‌دهد. به جای امیدواری به اینکه مدل زبانی (LLM) از یک پرامپت سیستمی برای «مراقب بودن» پیروی کند، توسعه‌دهندگان اکنون می‌توانند محدودیت‌ها را به صورت برنامه‌نویسی‌شده (Programmatically) اعمال کنند. بارِ امنیت از مهندسی پرامپت به بهداشت نصب (Install Hygiene) منتقل شده است.

منتظر ظهور «مادهای سیاست‌گذاری» (Policy Mods) سازمانی باشید که می‌توانند به طور خودکار اسرار (Secrets) را حذف کنند یا استانداردهای کدنویسی خاص شرکت را پیش از آنکه هوش مصنوعی حتی یک خط کد بنویسد، اعمال کنند.

چرا این موضوع مهم است؟

این قابلیت با فراهم کردن کنترل لایه‌ی میانی، اعتماد سازمان‌ها برای استقرار عامل‌های خودکار در محیط‌های عملیاتی را افزایش می‌دهد. اعتبار این رویکرد در استفاده از همان ساختاری است که خود آنتروپیک برای ویژگی‌های داخلی‌اش به کار می‌برد.

تأثیر برای ایران

به‌دلیل محدودیت‌های دسترسی به APIهای آنتروپیک برای کاربران ایرانی، این قابلیت فعلاً بیشتر برای توسعه‌دهندگانی که از طریق زیرساخت‌های خارجی با Claude Code کار می‌کنند کاربرد دارد.

·نگاه ما
تحریریه دات‌هوش

انتقال مسئولیت امنیت از مهندسی پرامپت به بهداشت نصب (Install Hygiene) یک چرخش بنیادین است. دیگر نمی‌توان امیدوار بود مدل با یک دستور «مراقب باش» ایمن بماند، بلکه باید محدودیت‌ها را به صورت برنامه‌نویسی‌شده تحمیل کرد. این رویکرد، عامل‌های AI را از «جعبه‌های سیاه» به سیستم‌های قابل مدیریت و نظارت تبدیل می‌کند.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.