تصور کنید بتوانید هر دستوری را که هوش مصنوعی قصد اجرای آن را دارد، در لحظهی آخر متوقف کنید، بازنویسی کنید یا کلاً رد کنید. این همان قدرتی است که آنتروپیک در ۱ اکتبر ۲۰۲۶ با معرفی 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) را حذف کنند یا استانداردهای کدنویسی خاص شرکت را پیش از آنکه هوش مصنوعی حتی یک خط کد بنویسد، اعمال کنند.




گفتگو