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

تنظیمات حریم خصوصی Claude Code دسترسی به دستورالعمل‌های محلی را مسدود می‌کند

·۱ مهر ۱۴۰۵۴ دقیقه مطالعه
کد کلود فقط زمانی فایل AGENTS.md را می‌خواند که قابلیت تله‌متری فعال باشد.
کد کلود فقط زمانی فایل AGENTS.md را می‌خواند که قابلیت تله‌متری فعال باشد.
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

کشف یک مکانیسم مسدودسازی پنهان در Claude Code که دسترسی به فایل‌های تنظیمات محلی را به تاییدیه سرور و فعال بودن تلمتری گره زده است.

تصور کنید ساعت‌ها وقت صرف نوشتن دستورالعمل‌های دقیق برای عامل هوش مصنوعی خود کرده‌اید، اما مدل بدون هیچ هشداری تمام آن‌ها را نادیده می‌گیرد. این اتفاق در Claude Code نسخه ۲.۱.۲۸۰ رخ می‌دهد؛ جایی که یک گیت پنهان در سمت سرور، دسترسی به خواندن دستورالعمل‌های محلی پروژه را برای کاربرانی که به حریم خصوصی اهمیت می‌دهند، به طور مخفیانه غیرفعال می‌کند. اگر تلمتری (Telemetry) را غیرفعال کرده باشید، این ابزار فایل AGENTS.md شما را بدون هیچ پیامی نادیده می‌گیرد و بسیاری از کاربران به اشتباه تصور می‌کنند که مدل صرفاً در پیروی از پرامپت‌ها شکست خورده است.

این کشف در حالی صورت می‌گیرد که توسعه‌دهندگان به طور فزاینده‌ای برای هدایت عامل‌های هوش مصنوعی به فایل‌های پیکربندی محلی متکی شده‌اند. همان‌طور که در تحلیل قبلی ما درباره‌ی تلاش‌های Anthropic برای کاهش هزینه‌های مدل‌های سطح بالا مانند Claude Opus اشاره کردیم، این شرکت اکنون در حال انتقال قابلیت‌های عامل‌محور (Agentic) — یعنی توانایی‌هایی که به مدل اجازه می‌دهد ابزارها را مستقیماً در محیط شل (Shell) محلی اجرا کند — به محیط ترمینال است. اما این پیاده‌سازی خاص، برای کسانی که تنظیمات سخت‌گیرانه‌ی حریم خصوصی دارند، یک نقطه اصطکاک و مانع جدی ایجاد کرده است. این چالش‌های عملیاتی در حالی رخ می‌دهد که بسیاری از عامل‌های سفارشی Claude Code به دلیل عدم بهره‌وری یا مشکلات پیکربندی، در ماه اول هیچ فراخوانی‌ای نداشته‌اند.

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

بر اساس یک گزارش فنی که در ۲۳ سپتامبر ۲۰۲۶ توسط وب‌سایت blog.szypowi.cz منتشر شد، پلاگین agents-md با مقدار isOnByDefault برابر با false ثبت شده است. ابزار سپس سعی می‌کند یک پرچم ویژگی (Feature Flag) از راه دور به نام tengu_agents_md_mod را فراخوانی کند تا تعیین کند آیا این قابلیت باید فعال باشد یا خیر.

در بسته نرم‌افزاری نسخه ۲.۱.۲۸۰، منطق ثبت به این صورت تعریف شده است: var W = !1; var B = () => Oa("tengu_agents_md_mod", W);. در اینجا، W همان مقدار پیش‌فرض (false) است و B تابع isAvailable است. اگر Claude Code نتواند این پرچم را از سرور دریافت کند، پلاگین غیرقابل دسترس باقی می‌ماند و فایل محلی هرگز خوانده نمی‌شود.

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

  • DISABLE_TELEMETRY=1
  • CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1

اندازه‌گیری و تست‌های عملی

برای تایید این ادعا، نویسنده از یک تست «کلمه قناری» (Canary Word) استفاده کرد. او یک دایرکتوری خالی ایجاد کرد که تنها شامل یک فایل AGENTS.md با متن «کلمه قناری PERIWINKLE است» بود. سپس دستور زیر را اجرا کرد: claude -p 'What is the canary word from the project instructions? Answer NONE if you have none. Do not read files.'

اندازه‌گیری‌ها چندین رفتار بحرانی را افشا کرد:

  • پایداری خطا: تغییر مقدار هر یک از متغیرهای محیطی مذکور به 0 کمکی نمی‌کند؛ مسدودسازی همچنان پابرجا می‌ماند.
  • محدودیت دامنه: ایجاد یک بلوک محیطی در فایل .claude/settings.json که هر دو متغیر را پاک می‌کند، هیچ اثری ندارد. این یعنی هیچ راهی برای فعال کردن این قابلیت تنها برای یک مخزن (Repository) خاص وجود ندارد.
  • جایگزین‌های نشست: یک بازنویسی در سطح نشست (Session-level override) از نشست دوم به بعد با استفاده از دستور زیر عمل می‌کند: claude --settings '{"env":{"DISABLE_TELEMETRY":"","CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC":""}}'.
  • مشکل گیت‌وی‌ها: کاربرانی که از گیت‌وی‌های شخص ثالث مانند Bedrock و Vertex استفاده می‌کنند، با همین مشکل مواجه هستند، زیرا پرچم راه دور در این محیط‌ها نمی‌تواند به مقدار true تغییر یابد.

تست‌ها تایید کردند که وقتی این متغیرها تنظیم شده باشند، مدل در پاسخ به پرسش‌های مربوط به دستورالعمل‌ها، کلمه «NONE» را برمی‌گرداند، حتی اگر فایل AGENTS.md روی دیسک موجود باشد. هیچ‌یک از این موارد شکست، هیچ هشدار یا خطایی چاپ نمی‌کنند؛ نشست به سادگی شروع می‌شود و مدل بدون دسترسی به دستورالعمل‌ها پاسخ می‌دهد.

راهکار جایگزین (Workaround)

برای کسانی که امروز به یک راه حل نیاز دارند، نویسنده یک راهکار ساده را پیشنهاد می‌کند: ایجاد یک فایل تک‌خطی به نام CLAUDE.md که حاوی عبارت @AGENTS.md باشد. از آنجایی که وارد کردن فایل‌ها از طریق @path به پرچم تلمتری راه دور وابسته نیست، این کار ابزار را مجبور می‌کند تا دستورالعمل‌ها را بدون توجه به تنظیمات حریم خصوصی شما بارگذاری کند.

این کار را می‌توان از طریق دستور زیر انجام داد:
echo '@AGENTS.md' > CLAUDE.md

با وجود این فایل، تست کلمه قناری حتی با فعال بودن CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 پاسخ درست را برمی‌گرداند. تنها هزینه این کار، اضافه شدن یک فایل اضافی به هر مخزن است؛ دقیقاً همان چیزی که پشتیبانی از AGENTS.md قصد داشت آن را حذف کند.

تحلیل شکست تجربه کاربری

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

این گیت به طور خاص کاربرانی را هدف قرار می‌دهد که احتمالاً بیشترین نیاز به AGENTS.md را دارند: کسانی که یک فایل دستورالعمل برای چندین عامل نگهداری می‌کنند و در مورد انتقال داده‌ها حساس هستند، یا تیم‌هایی در Bedrock و Vertex که طبق سیاست‌های سازمانی، ترافیک غیرضروری را غیرفعال می‌کنند.

فقدان قابلیت‌های محلی-محور

علاوه بر گیت تلمتری، این گزارش به نبود پشتیبانی بومی از مهارت‌های مشترک عامل‌ها و پیکربندی‌های جهانی اشاره می‌کند:

  • دستورات جهانی: برخلاف Codex که فایل ~/.codex/AGENTS.md را می‌خواند، Claude Code فقط در دایرکتوری‌های پروژه به دنبال AGENTS.md می‌گردد. هیچ فایلی در سطح کاربر در کنار CLAUDE.md کاربر وجود ندارد.
  • انحراف مهارت‌ها (Skill Drift): نسخه ۲.۱.۲۸۰ Claude Code مهارت‌ها را در مسیر .agents/skills تنها در هنگام اجرای دستور /import شناسایی می‌کند، که منجر به ایجاد یک کپی استاتیک در .claude/skills می‌شود. چون این کپی‌ها از منبع اصلی فاصله می‌گیرند (منسوخ می‌شوند)، نویسنده توصیه می‌کند که .claude/skills را به ../.agents/skills لینک نمادین (Symlink) کنید تا مطمئن شوید به‌روزرسانی‌ها اعمال می‌شوند. برای دستیابی به نتایج پایدارتر، می‌توان از عادات کلیدی در ساخت مهارت‌های قابل اعتماد برای Claude بهره برد تا اثرات منفی انحراف مهارت‌ها کاهش یابد.

در نهایت، این موضوع نشان‌دهنده تضاد بین تمایل Anthropic برای عرضه مرحله‌ای قابلیت‌ها از طریق Feature Flagها و انتظارات توسعه‌دهندگان حرفه‌ای است که به رفتاری قطعی (Deterministic) و محلی-محور (Local-first) در زنجیره ابزارهای خود نیاز دارند.

گام بعدی شما

  • اگر از Claude Code استفاده می‌کنید و احساس می‌کنید دستورات پروژه شما نادیده گرفته می‌شوند، فوراً فایل CLAUDE.md را با ارجاع به @AGENTS.md ایجاد کنید.
  • متغیرهای محیطی DISABLE_TELEMETRY را بررسی کنید تا متوجه شوید آیا در معرض این شکست خاموش هستید یا خیر.
  • برای مدیریت مهارت‌ها، از لینک‌های نمادین (Symlinks) استفاده کنید تا تغییرات در مهارت‌های عامل به‌صورت آنی اعمال شود.

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

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

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

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

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

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

وابستگی قابلیت‌های محلی به پرچم‌های سروری (Server-side flags) در ابزارهای توسعه، یک ضدالگو (Anti-pattern) است که اعتماد برنامه‌نویسان را سلب می‌کند. این رویکرد نشان می‌دهد که شرکت‌های بزرگ ترجیح می‌دهند کنترل کامل روی نرخ پذیرش ویژگی‌ها داشته باشند، حتی به قیمت ایجاد خطاهای نامفهوم برای کاربر. در دنیای ابزارهای CLI، پیش‌بینی‌پذیری (Determinism) ارزشمندتر از عرضه مرحله‌ای است.

منابع

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

گفتگو

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

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

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

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

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

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

دات‌هوش

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

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