|

الدليل الكامل لمتغيرات بيئة Claude Code: حل خطأ توافق AWS Bedrock بإعداد واحد فقط

ملاحظة المؤلف: شرح مفصل لجميع متغيرات البيئة الـ 60+ في Claude Code وطرق تكوينها، مع التركيز على استخدام CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS لحل مشكلة خطأ ترويسة (header) anthropic-beta في المنصات الخارجية.

عند استخدام Claude Code للاتصال بـ AWS Bedrock أو Google Vertex AI أو أي بوابة نماذج لغة كبيرة (LLM) خارجية أخرى، فمن المرجح جداً أن تواجه هذا الخطأ: "Unexpected value(s) for the anthropic-beta header". يعود أصل هذه المشكلة إلى أن Claude Code يرسل افتراضياً ترويسات تجريبية (Beta) خاصة بـ Anthropic API، وهي ترويسات لا تتعرف عليها المنصات الخارجية مثل AWS Bedrock.

الحل يتطلب سطراً واحداً فقط من الإعدادات: CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1.

لكن متغيرات البيئة في Claude Code تتجاوز هذا المتغير بكثير – حيث تسرد الوثائق الرسمية أكثر من 60 متغيراً للبيئة، تغطي تكوينات المصادقة، واختيار النموذج، وضبط الأداء، ومفاتيح الميزات، وغيرها من الجوانب. سأقوم في هذا المقال بتنظيم هذه المتغيرات بشكل منهجي لمساعدتك في تحديد وحل مختلف مشكلات التكوين في Claude Code بسرعة.

القيمة الجوهرية: بعد قراءة هذا المقال، ستتقن النظام الكامل لمتغيرات البيئة في Claude Code، وستتمكن من حل مشكلات التوافق مع AWS Bedrock/Vertex AI بسرعة، وتعلم كيفية تحسين تجربة استخدام وتكلفة Claude Code من خلال متغيرات البيئة.

claude-code-environment-variables-complete-guide-ar 图示


النقاط الأساسية لمتغيرات بيئة Claude Code

يمكن تقسيم أكثر من 60 متغير بيئة لـ Claude Code إلى 6 فئات رئيسية. إليك المتغيرات الأساسية التي تحتاج إلى الاهتمام بها:

الفئة المتغير الأساسي الوظيفة حالات الاستخدام الشائعة
التوافق مع المنصات CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS تعطيل ترويسات anthropic-beta التجريبية حل أخطاء AWS Bedrock/Vertex AI
إعدادات المصادقة ANTHROPIC_API_KEY تعيين مفتاح API الاستدعاء باستخدام منصات API خارجية
اختيار النموذج ANTHROPIC_MODEL تحديد النموذج المستخدم التبديل إلى إصدار نموذج محدد
ضبط الأداء CLAUDE_CODE_MAX_OUTPUT_TOKENS التحكم في الحد الأقصى لرموز المخرجات (Tokens) تقييد الردود الطويلة لتوفير التكلفة
مفاتيح الميزات DISABLE_PROMPT_CACHING تعطيل تخزين الموجه (Prompt) مؤقتًا احتياجات التصحيح أو التوافق
إدارة السياق CLAUDE_AUTOCOMPACT_PCT_OVERRIDE التحكم في عتبة الضغط التلقائي للسياق تحسين تجربة المحادثات الطويلة

طريقتان لتعيين متغيرات بيئة Claude Code

الطريقة الأولى: متغيرات بيئة Shell (تأثير مؤقت)

يتم تعيينها في الطرفية (Terminal) قبل تشغيل Claude Code، وتكون صالحة للجلسة الحالية فقط:

# تعطيل الترويسات التجريبية
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
# تعيين مفتاح API الخاص بك
export ANTHROPIC_API_KEY="your-api-key"
claude

الطريقة الثانية: تكوين settings.json (تأثير دائم)

قم بتكوين حقل env في ملف ~/.claude/settings.json ليتم تحميله تلقائيًا في كل مرة يتم فيها التشغيل:

{
  "env": {
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
    "ANTHROPIC_API_KEY": "your-api-key"
  }
}

🎯 الطريقة الموصى بها: بالنسبة للإعدادات التي تحتاج إلى مفعول طويل الأمد (مثل مفتاح API أو إصلاحات التوافق مع المنصات)، نقترح استخدام طريقة settings.json لتجنب القيام بعملية التصدير (export) يدويًا في كل مرة. إذا كان مفتاح API الخاص بك من منصة خارجية مثل APIYI (apiyi.com)، يمكنك تكوينه هنا أيضًا.

claude-code-environment-variables-complete-guide-ar 图示


شرح أهم متغيرات البيئة في Claude Code: حل مشكلات التوافق مع AWS Bedrock

تفاصيل CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS

هذا هو العنصر الأساسي في هذا المقال. عند استخدام Claude Code عبر AWS Bedrock أو Google Vertex AI أو LiteLLM أو غيرها من البوابات الخارجية، يقوم Claude Code تلقائيًا بإضافة معرفات Anthropic التجريبية (Beta) في ترويسة الطلب (Request Headers)، مثل:

anthropic-beta: prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20

هذه المعرفات هي ميزات خاصة بالاتصال المباشر بـ API الخاص بشركة Anthropic، ولا تستطيع المنصات الخارجية مثل AWS Bedrock التعرف عليها، مما يؤدي إلى ظهور خطأ:

Error: Unexpected value(s) for the anthropic-beta header

طريقة الحل:

# الطريقة الأولى: عبر أمر Shell
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1

# الطريقة الثانية: في ملف settings.json
{
  "env": {
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
  }
}

عند ضبط القيمة على 1 كقيمة منطقية، سيتوقف Claude Code عن إرسال ترويسات Beta التجريبية هذه، مما يجعله متوافقًا مع جميع المنصات الخارجية.

المشكلات المعروفة والحلول المؤقتة

وفقًا لسجلات GitHub Issues، تعاني بعض إصدارات Claude Code (بعد الإصدار 2.1.18) من مشكلة عدم تفعيل هذا المتغير بشكل كامل؛ حيث تظل بعض ترويسات Beta الجديدة (مثل advanced-tool-use-2025-11-20) تُرسل حتى مع ضبط CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1.

إذا كنت لا تزال تواجه مشكلات، يمكنك تجربة الإجراءات الإضافية التالية:

  • تخفيض إصدار Claude Code: العودة إلى إصدار مستقر معروف مثل 2.1.68.
  • استخدام بوابة LiteLLM: توفر LiteLLM ملف تكوين anthropic_beta_headers_config.json يتيح لك التحكم الدقيق في ترويسات Beta التي يتم تمريرها.
  • ضبط DISABLE_PROMPT_CACHING في نفس الوقت: يؤدي تعطيل تخزين الموجهات (Prompt Caching) إلى تجنب الترويسات المتعلقة بـ prompt-caching-scope.
# إعدادات التوافق الشاملة
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
export DISABLE_PROMPT_CACHING=1

دليل تصنيف متغيرات البيئة في Claude Code

الفئة الأولى: المصادقة وإعدادات API

هذه هي الفئة الأساسية والأكثر استخدامًا، وهي تتحكم في كيفية اتصال Claude Code بخدمة API:

اسم المتغير الوظيفة سيناريو الاستخدام
ANTHROPIC_API_KEY مفتاح API، يُرسل كترويسة X-Api-Key استخدام منصات API خارجية (مثل APIYI apiyi.com)
ANTHROPIC_AUTH_TOKEN قيمة مخصصة لترويسة Authorization (تُضاف بادئة Bearer تلقائيًا) حلول المصادقة المخصصة
ANTHROPIC_CUSTOM_HEADERS إضافة ترويسات طلب مخصصة (بصيغة Name: Value) البوابات التي تتطلب ترويسات إضافية
ANTHROPIC_BASE_URL عنوان نقطة نهاية API المخصص الاتصال ببوابات API الخارجية
CLAUDE_CODE_CLIENT_CERT مسار شهادة العميل mTLS المصادقة الأمنية على مستوى المؤسسات
CLAUDE_CODE_CLIENT_KEY مسار المفتاح الخاص mTLS المصادقة الأمنية على مستوى المؤسسات

🎯 تنبيه لمستخدمي المنصات الخارجية: عند استخدام منصات API خارجية مثل APIYI apiyi.com، يجب ضبط كل من ANTHROPIC_API_KEY و ANTHROPIC_BASE_URL. سيعطي Claude Code الأولوية لمفتاح API الموجود في متغيرات البيئة، حتى لو كنت قد سجلت الدخول بحساب اشتراك Anthropic.

الفئة الثانية: اختيار النموذج وإعداده

تتحكم في النموذج الذي يستخدمه Claude Code ومعايير سلوكه:

اسم المتغير الوظيفة القيمة الافتراضية
ANTHROPIC_MODEL تحديد اسم النموذج الرئيسي Claude Sonnet 4.6
ANTHROPIC_DEFAULT_OPUS_MODEL تحديد نموذج من فئة Opus Claude Opus 4.6
ANTHROPIC_DEFAULT_SONNET_MODEL تحديد نموذج من فئة Sonnet Claude Sonnet 4.6
ANTHROPIC_DEFAULT_HAIKU_MODEL تحديد نموذج من فئة Haiku (للمهام الخلفية) Claude Haiku 4.5
CLAUDE_CODE_SUBAGENT_MODEL النموذج المستخدم من قبل الوكلاء الفرعيين يرث من النموذج الرئيسي
CLAUDE_CODE_MAX_OUTPUT_TOKENS الحد الأقصى لعدد الـ Tokens في المخرجات 32,000 (بحد أقصى 64,000)
CLAUDE_CODE_EFFORT_LEVEL عمق الاستدلال (low/medium/high/max/auto) auto

الفئة الثالثة: التوافق مع المنصات وإعدادات البوابات

هذه المتغيرات مخصصة لحل مشكلات التوافق بين Claude Code ومختلف المنصات السحابية وبوابات نماذج اللغة الكبيرة:

اسم المتغير الوظيفة المنصة المناسبة
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS تعطيل ترويسات Beta التجريبية AWS Bedrock / Vertex AI / البوابات الخارجية
CLAUDE_CODE_USE_BEDROCK تفعيل وضع AWS Bedrock AWS Bedrock
CLAUDE_CODE_SKIP_BEDROCK_AUTH تخطي مصادقة AWS (عند استخدام بوابة) بوابة LLM + Bedrock
CLAUDE_CODE_USE_FOUNDRY تفعيل وضع Microsoft Foundry Azure AI
CLAUDE_CODE_SKIP_FOUNDRY_AUTH تخطي مصادقة Azure بوابة LLM + Azure
CLAUDE_CODE_SKIP_VERTEX_AUTH تخطي مصادقة Google Vertex بوابة LLM + Vertex
ANTHROPIC_FOUNDRY_BASE_URL عنوان URL الأساسي لموارد Foundry Microsoft Foundry
ANTHROPIC_FOUNDRY_API_KEY مفتاح API لـ Foundry Microsoft Foundry
ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION منطقة AWS لنموذج Haiku مناطق Bedrock المتعددة

الفئة الرابعة: مفاتيح الميزات

تعطيل ميزات معينة باستخدام المتغيرات التي تبدأ بـ DISABLE_ أو CLAUDE_CODE_DISABLE_:

اسم المتغير التأثير عند ضبطه على 1
DISABLE_PROMPT_CACHING تعطيل تخزين الموجهات (Prompt Caching)
DISABLE_AUTOUPDATER تعطيل التحديث التلقائي
DISABLE_TELEMETRY تعطيل جمع بيانات القياس عن بعد
DISABLE_ERROR_REPORTING تعطيل الإبلاغ عن الأخطاء
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC تعطيل جميع الزيارات غير الضرورية المذكورة أعلاه بضغطة واحدة
CLAUDE_CODE_DISABLE_AUTO_MEMORY تعطيل ميزة الذاكرة التلقائية
CLAUDE_CODE_DISABLE_1M_CONTEXT تعطيل نافذة السياق التي تصل لمليون Token
CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING تعطيل الاستدلال التكيفي
CLAUDE_CODE_DISABLE_FAST_MODE تعطيل الوضع السريع
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS تعطيل وظائف المهام الخلفية
CLAUDE_CODE_DISABLE_CRON تعطيل المهام المجدولة
CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS إزالة تعليمات Git المدمجة

الفئة الخامسة: إدارة السياق والأداء

تتحكم في كيفية إدارة Claude Code لنافذة السياق واستخدام الموارد:

اسم المتغير الوظيفة القيمة الافتراضية
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE نسبة التفعيل للضغط التلقائي 95%
CLAUDE_CODE_AUTO_COMPACT_WINDOW حجم نافذة الـ Tokens المستخدمة لحساب الضغط نافذة سياق النموذج
CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS الحد الأقصى للـ Tokens عند قراءة الملفات القيمة الافتراضية
CLAUDE_CODE_API_KEY_HELPER_TTL_MS فاصل تحديث بيانات الاعتماد (بالملي ثانية)
CLAUDE_CODE_TMPDIR دليل الملفات المؤقتة /tmp (في Unix)
CLAUDE_CODE_SHELL تحديد الـ Shell المستخدم اكتشاف تلقائي

🎯 نصيحة لتحسين الأداء: إذا وجدت أن Claude Code يقوم بضغط السياق بشكل متكرر في المحادثات الطويلة، يمكنك ضبط CLAUDE_AUTOCOMPACT_PCT_OVERRIDE على قيمة أقل (مثل 50) لتفعيل الضغط مبكرًا وتقليل فقدان المعلومات. هذه الإعدادات مدعومة أيضًا عند الاستدعاء عبر APIYI apiyi.com.

claude-code-environment-variables-complete-guide-ar 图示


دليل سريع لمتغيرات بيئة Claude Code

مثال مبسط: تهيئة Claude Code للاتصال بمنصة API خارجية

# قم بتشغيل Claude Code بعد ضبط متغيرات البيئة في الطرفية (Terminal)
export ANTHROPIC_API_KEY="sk-your-api-key"
export ANTHROPIC_BASE_URL="https://vip.apiyi.com/v1"
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
claude

عرض نموذج تهيئة settings.json الكامل (يتضمن إعدادات التوافق مع AWS Bedrock)
{
  "env": {
    "ANTHROPIC_API_KEY": "sk-your-api-key",
    "ANTHROPIC_BASE_URL": "https://vip.apiyi.com/v1",
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
    "CLAUDE_CODE_MAX_OUTPUT_TOKENS": "32000",
    "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "80",
    "DISABLE_TELEMETRY": "1"
  },
  "permissions": {
    "allow": ["Read", "Glob", "Grep"],
    "deny": []
  }
}

تهيئة خاصة بـ AWS Bedrock:

{
  "env": {
    "CLAUDE_CODE_USE_BEDROCK": "1",
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
    "DISABLE_PROMPT_CACHING": "1",
    "ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION": "us-east-1"
  }
}

تهيئة خاصة بـ Microsoft Foundry:

{
  "env": {
    "CLAUDE_CODE_USE_FOUNDRY": "1",
    "ANTHROPIC_FOUNDRY_BASE_URL": "https://my-resource.services.ai.azure.com/anthropic",
    "ANTHROPIC_FOUNDRY_API_KEY": "your-foundry-key",
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
  }
}

نصيحة: إذا كنت لا ترغب في التعامل مع التعقيدات البرمجية لـ AWS Bedrock أو Azure، يمكنك استخدام مجموعة نماذج Claude الكاملة مباشرة عبر APIYI (apiyi.com). كل ما عليك فعله هو ضبط متغيرين فقط: مفتاح API ورابط Base URL، دون الحاجة للتعامل مع مشكلات المصادقة والتوافق الخاصة بالمنصات السحابية.


الأسئلة الشائعة

س1: قمت بضبط CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 ولكن لا تزال تظهر رسالة خطأ في ترويسة anthropic-beta، ماذا أفعل؟

هذا خطأ معروف (Bug) في Claude Code (GitHub Issue #22893، #20031). بعض الإصدارات الجديدة تقدم ترويسات Beta جديدة لا يتم حظرها بالكامل بواسطة متغيرات البيئة. الحلول المقترحة:

  1. الرجوع إلى إصدار مستقر معروف مثل 2.1.68.
  2. ضبط DISABLE_PROMPT_CACHING=1 في نفس الوقت لتعطيل الترويسات المتعلقة بالتخزين المؤقت (Caching).
  3. إذا كنت تستخدم بوابة LiteLLM، قم بتهيئة anthropic_beta_headers_config.json لإجراء تصفية دقيقة.
  4. استخدم منصة خارجية ذات توافق أفضل مثل APIYI (apiyi.com) لتجنب مشكلات الترويسات عند الاتصال المباشر بـ Bedrock.

س2: ما هي أولوية التنفيذ بين متغير البيئة ANTHROPIC_API_KEY وتسجيل الدخول عبر /login؟

تتمتع أولوية مفتاح API الخاص بمتغير البيئة بأسبقية أعلى من مصادقة الاشتراك عبر /login. عند ضبط متغير البيئة ANTHROPIC_API_KEY سيستخدم Claude Code المفتاح الموجود في متغير البيئة حتى لو كنت قد سجلت الدخول مسبقًا عبر اشتراك Claude Pro/Team، وسيتم المحاسبة بنظام الدفع حسب الاستخدام (Pay-as-you-go). إذا حصلت على المفتاح من خلال APIYI (apiyi.com)، فسيتم تسوية التكاليف عبر تلك المنصة.

س3: كيف يمكنني عرض إعدادات متغيرات البيئة المفعلة حاليًا في Claude Code؟

قم بتشغيل الأمر /config داخل وضع التفاعل في Claude Code لعرض حالة جميع بنود التهيئة الحالية، بما في ذلك متغيرات البيئة، وإعدادات settings.json، والقيم الافتراضية. يمكنك أيضًا تشغيل env | grep -E "CLAUDE|ANTHROPIC|DISABLE" في الطرفية لعرض متغيرات البيئة ذات الصلة التي تم ضبطها.


ملخص

النقاط الأساسية لمتغيرات البيئة في Claude Code:

  1. حل أخطاء AWS Bedrock: قم بضبط CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 لتعطيل ترويسات Beta التجريبية، وهو إعداد من سطر واحد يحل خطأ "Unexpected value(s) for the anthropic-beta header".
  2. أكثر من 60 متغير بيئة مقسمة إلى 6 فئات رئيسية: إعدادات المصادقة، اختيار النموذج، توافق المنصات، مفاتيح الميزات، إدارة السياق، وإعدادات أخرى.
  3. طريقتان للتكوين: عبر Shell export (مؤقت) أو ملف settings.json (دائم)، ويُنصح بكتابة الإعدادات الدائمة في ملف settings.json.
  4. حلول مبسطة عبر منصات الطرف الثالث: من خلال منصات API الموحدة مثل APIYI (apiyi.com)، تحتاج فقط لضبط متغيرين: ANTHROPIC_API_KEY و ANTHROPIC_BASE_URL دون الحاجة للتعامل مع تعقيدات مصادقة المنصات السحابية أو مشاكل توافق ترويسات Beta.

نوصي باستخدام APIYI (apiyi.com) لتجربة سريعة لربط Claude Code، حيث توفر المنصة رصيداً مجانياً وواجهة موحدة، مما يجنبك مشاكل التوافق المعقدة في إعدادات AWS Bedrock أو Vertex AI.


📚 المراجع

  1. وثائق Claude Code الرسمية – متغيرات البيئة: قائمة كاملة بمتغيرات البيئة مع الشرح.

    • الرابط: code.claude.com/docs/en/env-vars
    • الوصف: المرجع الرسمي المعتمد لجميع متغيرات البيئة الـ 60+.
  2. وثائق Claude Code الرسمية – الإعدادات: نطاق الإعدادات ومعايير ملف settings.json.

    • الرابط: code.claude.com/docs/en/settings
    • الوصف: فهم نظام التكوين رباعي المستويات (Managed/User/Project/Local).
  3. وثائق Claude Code الرسمية – Amazon Bedrock: دليل التكامل مع AWS Bedrock.

    • الرابط: code.claude.com/docs/en/amazon-bedrock
    • الوصف: الإعدادات الخاصة بـ Bedrock وحلول المشكلات الشائعة.
  4. GitHub Issue #22893 – عدم فعالية DISABLE_EXPERIMENTAL_BETAS بشكل كامل: تقرير عن خطأ من المجتمع.

    • الرابط: github.com/anthropics/claude-code/issues/22893
    • الوصف: التعرف على القيود المعروفة لهذا المتغير والحلول المؤقتة.
  5. LiteLLM – إدارة ترويسات Claude Code Beta: حلول تصفية ترويسات Beta على مستوى البوابة (Gateway).

    • الرابط: docs.litellm.ai/docs/tutorials/claude_code_beta_headers
    • الوصف: التحكم الدقيق في ترويسات Beta عند استخدام بوابة LiteLLM.

المؤلف: فريق APIYI التقني
التواصل التقني: نرحب بمناقشة تجاربكم في إعداد Claude Code في قسم التعليقات. لمزيد من الشروحات التعليمية، يمكنكم زيارة مركز الوثائق في APIYI عبر docs.apiyi.com

موضوعات ذات صلة