إذا حاولت توجيه Claude Code إلى DeepSeek V4 أو OpenRouter أو أي مزود نموذج طرف ثالث آخر وظهر لك الخطأ Invalid custom3p enterprise config، فالمشكلة غالبًا ليست في النموذج نفسه، بل في تهيئة Claude Code: عنوان URL الأساسي، نوع مفتاح المصادقة، ملف settings.json، أو إعدادات المؤسسة.
في هذا الدليل العملي ستجد معنى custom3p، أكثر الأسباب شيوعًا للخطأ، وكيفية إصلاح كل سبب بخطوات وأمثلة تهيئة قابلة للاستخدام مع OpenRouter وLiteLLM وvLLM.
خلاصة سريعة
Invalid custom3p enterprise config يعني أن Claude Code لم يستطع التحقق من صحة تهيئة مزود خارجي.
custom3p هو الاسم الداخلي في Claude Code لأي نقطة نهاية API غير تابعة لـ Anthropic يتم تفعيلها عبر:
ANTHROPIC_BASE_URL
ابدأ دائمًا بهذه الفحوصات:
- احذف
/v1من نهايةANTHROPIC_BASE_URL. - استخدم متغير المصادقة الصحيح:
-
ANTHROPIC_AUTH_TOKENللـ Bearer token. -
ANTHROPIC_API_KEYلرأسx-api-key.
-
- تحقق من صحة
~/.claude/settings.json. - تأكد أن الإعداد الأولي لـ Claude Code مكتمل.
- تأكد أن بوابتك تمرر الرؤوس المطلوبة.
- تحقق من عدم وجود سياسة مؤسسة تمنع المزود المخصص.
ماذا يعني custom3p؟
يوجه Claude Code الطلبات عبر عدة أوضاع:
| الوضع | كيف يتم تفعيله |
|---|---|
| Anthropic API الافتراضي | بدون تجاوز |
| Amazon Bedrock | CLAUDE_CODE_USE_BEDROCK=1 |
| Google Vertex AI | CLAUDE_CODE_USE_VERTEX=1 |
| Microsoft Foundry | CLAUDE_CODE_USE_FOUNDRY=1 |
| طرف ثالث مخصص |
ANTHROPIC_BASE_URL يشير إلى مزود آخر |
عندما تضبط ANTHROPIC_BASE_URL على مضيف غير تابع لـ Anthropic مثل OpenRouter أو LiteLLM أو vLLM أو بوابة داخلية، يتعامل Claude Code مع هذا المسار داخليًا باسم custom3p.
قبل إرسال أول طلب، يجري Claude Code تحققًا من التهيئة. إذا فشل، يظهر الخطأ:
Invalid custom3p enterprise config
هذا خطأ تهيئة، وليس حظرًا سياسيًا أو رفضًا تلقائيًا لاستخدام مزود خارجي.
لماذا يظهر هذا الخطأ الآن؟
بعد قيود Anthropic في أبريل 2026 على أدوات كانت تزيف معرف عميل Claude Code للوصول إلى اشتراكات Pro وMax، بدأ مطورون كثيرون باستخدام دعم الطرف الثالث الرسمي في Claude Code لتوجيه الجلسات عبر مزودين أرخص.
على سبيل المثال، وثّق أحد المواضيع استخدام DeepSeek V4 Pro عبر OpenRouter بتكلفة أقل بكثير من Anthropic. كما ظهرت أدوات مثل DeepClaude لتبسيط الإعداد.
المشكلة أن دعم الطرف الثالث الرسمي يتطلب تهيئة دقيقة. خطأ صغير في URL أو المصادقة أو JSON يكفي لإظهار:
Invalid custom3p enterprise config
السبب 1: وجود /v1 زائدة في ANTHROPIC_BASE_URL
هذا هو السبب الأكثر شيوعًا.
Claude Code يضيف تلقائيًا:
/v1/messages
إلى عنوانك الأساسي. لذلك إذا وضعت /v1 بنفسك، يصبح المسار النهائي:
/v1/v1/messages
وغالبًا تحصل على 404.
خطأ
export ANTHROPIC_BASE_URL="https://api.openrouter.ai/api/v1"
export ANTHROPIC_BASE_URL="https://litellm.yourcompany.com/v1"
صحيح
export ANTHROPIC_BASE_URL="https://api.openrouter.ai/api"
export ANTHROPIC_BASE_URL="https://litellm.yourcompany.com"
اختبار سريع
شغّل:
curl -s -o /dev/null -w "%{http_code}" \
-H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
"${ANTHROPIC_BASE_URL}/v1/messages" \
-d '{"model":"claude-sonnet-4-6","max_tokens":1,"messages":[{"role":"user","content":"hi"}]}'
التفسير:
-
200: المسار صحيح والطلب نجح. -
400: المسار موجود لكن الطلب غير مكتمل أو غير مطابق. -
404: غالبًا لديك مشكلة/v1مكررة أو مسار خاطئ.
السبب 2: استخدام متغير المصادقة الخاطئ
Claude Code يدعم طريقتين للمصادقة:
| المتغير | يرسل كـ | الاستخدام |
|---|---|---|
ANTHROPIC_API_KEY |
رأس x-api-key
|
بوابات تتوقع مفتاح API بأسلوب Anthropic |
ANTHROPIC_AUTH_TOKEN |
رأس Authorization: Bearer
|
LiteLLM وOpenRouter وبوابات OAuth-like |
OpenRouter
OpenRouter يتوقع Bearer token، لذلك استخدم:
export ANTHROPIC_AUTH_TOKEN="sk-or-your-openrouter-key"
export ANTHROPIC_BASE_URL="https://openrouter.ai/api"
لا تستخدم ANTHROPIC_API_KEY هنا إلا إذا كانت بوابتك تدعمه صراحة.
LiteLLM
export ANTHROPIC_AUTH_TOKEN="sk-litellm-your-virtual-key"
export ANTHROPIC_BASE_URL="https://your-litellm-server:4000"
vLLM أو بوابة تتوقع x-api-key
export ANTHROPIC_API_KEY="your-key-here"
export ANTHROPIC_BASE_URL="https://your-vllm-server"
إذا لم تكن متأكدًا، راجع وثائق البوابة لمعرفة الرأس المطلوب.
السبب 3: ملف settings.json غير صالح
إذا كنت تضع التهيئة في:
~/.claude/settings.json
فأي خطأ JSON يمنع Claude Code من قراءة الإعدادات.
خطأ: فاصلة زائدة
{
"env": {
"ANTHROPIC_BASE_URL": "https://openrouter.ai/api",
"ANTHROPIC_AUTH_TOKEN": "sk-or-your-key",
}
}
خطأ: علامات اقتباس ذكية
{
"env": {
“ANTHROPIC_BASE_URL”: “https://openrouter.ai/api”
}
}
صحيح
{
"env": {
"ANTHROPIC_BASE_URL": "https://openrouter.ai/api",
"ANTHROPIC_AUTH_TOKEN": "sk-or-your-openrouter-key"
}
}
تحقق من الملف
باستخدام Python:
python3 -c "import json, os; json.load(open(os.path.expanduser('~/.claude/settings.json')))" && echo "Valid JSON"
أو باستخدام jq:
jq . ~/.claude/settings.json
إذا فشل التحليل، أصلح JSON قبل تشغيل Claude Code.
السبب 4: تثبيت جديد لم يكمل الإعداد الأولي
في التثبيتات الجديدة، يتحقق Claude Code من:
~/.claude.json
ويبحث عن:
"hasCompletedOnboarding": true
إذا لم تكن موجودة، قد يتجاهل إعدادات الطرف الثالث ويحاول استخدام تدفق المصادقة الافتراضي.
تحقق من الحالة
cat ~/.claude.json | python3 -m json.tool 2>/dev/null | grep hasCompletedOnboarding
الإصلاح
أضف أو عدّل الملف:
{
"hasCompletedOnboarding": true,
"primaryApiKey": "sk-placeholder"
}
primaryApiKey هنا قيمة مؤقتة لتجاوز فحص التنسيق. سيتم تجاوزها بتهيئة المزود الخارجي.
بعد ذلك أعد تشغيل Claude Code.
السبب 5: البوابة لا تمرر الرؤوس المطلوبة
Claude Code يرسل رؤوسًا إضافية أثناء التحقق من التهيئة، ومنها:
anthropic-beta
anthropic-version
X-Claude-Code-Session-Id
إذا كانت بوابتك أو nginx أو proxy يحذف هذه الرؤوس، قد يفشل التحقق.
إعداد nginx
location /v1/ {
proxy_pass http://backend;
proxy_set_header anthropic-beta $http_anthropic_beta;
proxy_set_header anthropic-version $http_anthropic_version;
proxy_set_header X-Claude-Code-Session-Id $http_x_claude_code_session_id;
}
في LiteLLM، هذا مدعوم افتراضيًا في الإصدارات الحديثة مثل v1.82.9+.
حل بديل
إذا لم تستطع تمرير رأس anthropic-beta:
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
هذا يعطل بعض الميزات التجريبية، لكنه يسمح بتشغيل حلقة الوكيل الأساسية.
السبب 6: سياسة المؤسسة تمنع التهيئة
إذا كنت ضمن خطة Claude Teams أو Enterprise، قد تكون هناك إعدادات مُدارة تتجاوز إعداداتك المحلية.
تحقق من وجودها:
ls ~/.claude/managed-settings.json 2>/dev/null && echo "تم العثور على إعدادات مُدارة"
أو من داخل Claude Code:
/status
إذا كانت الإعدادات المُدارة نشطة، اطلب من المسؤول أحد الخيارات التالية:
- السماح بنطاق بوابتك في قائمة عناوين URL الأساسية.
- إضافة نماذج البوابة إلى
availableModels. - إعفاؤك من قيود
ANTHROPIC_BASE_URL.
في macOS، قد توجد الإعدادات المُدارة في:
/Library/Application Support/ClaudeCode/managed-settings.json
تهيئات جاهزة للعمل
Claude Code + OpenRouter + DeepSeek V4 Pro
ضع التالي في:
~/.claude/settings.json
{
"env": {
"ANTHROPIC_BASE_URL": "https://openrouter.ai/api",
"ANTHROPIC_AUTH_TOKEN": "sk-or-your-openrouter-key",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek/deepseek-v4-pro",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "deepseek/deepseek-v4-pro",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek/deepseek-v4-pro"
}
}
تجاوز أسماء النماذج مهم لأن Claude Code قد يستمر في طلب:
claude-sonnet-4-6
حتى بعد تغيير ANTHROPIC_BASE_URL.
ملاحظة: لا ينفذ OpenRouter كامل مواصفة تدفق Anthropic لاستدعاءات الأدوات في كل الحالات. قد تعمل الحلقة الأساسية، لكن بعض سلاسل الأدوات المعقدة قد تواجه مشكلات. تابع حالة توافق OpenRouter للتحديثات.
Claude Code + LiteLLM
مثال config.yaml لـ LiteLLM:
model_list:
- model_name: claude-sonnet-4-6
litellm_params:
model: deepseek/deepseek-v4
api_key: "sk-your-deepseek-key"
- model_name: claude-opus-4-7
litellm_params:
model: deepseek/deepseek-v4-pro
api_key: "sk-your-deepseek-key"
ثم في ~/.claude/settings.json:
{
"env": {
"ANTHROPIC_BASE_URL": "http://localhost:4000",
"ANTHROPIC_AUTH_TOKEN": "sk-litellm-your-key"
}
}
بهذا الشكل، يرسل Claude Code اسم نموذج Claude، ويقوم LiteLLM بتحويله إلى النموذج الفعلي.
Claude Code + vLLM محلي
ابدأ vLLM:
python -m vllm.entrypoints.openai.api_server \
--model deepseek-ai/DeepSeek-V3 \
--dtype auto \
--api-key local-key \
--port 8000
ثم اضبط Claude Code:
export ANTHROPIC_BASE_URL="http://localhost:8000"
export ANTHROPIC_API_KEY="local-key"
export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-ai/DeepSeek-V3"
راجع أيضًا توثيق vLLM مع Claude Code.
تصحيح الخطأ عمليًا
شغّل Claude Code بوضع التصحيح:
claude --debug 2>&1 | head -100
ابحث عن:
-
Sending request to:لمعرفة URL النهائي. -
Response status:لمعرفة كود HTTP. -
enterprise config error:لمعرفة سبب فشل التحقق.
اختبر الطلب يدويًا:
curl -v -X POST "${ANTHROPIC_BASE_URL}/v1/messages" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${ANTHROPIC_AUTH_TOKEN}" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: max-tokens-3-5-sonnet-2024-07-15" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 10,
"messages": [{"role": "user", "content": "hi"}]
}'
إذا حصلت على:
-
401أو403: مشكلة مصادقة. -
404: مشكلة URL. -
422: مشكلة تنسيق الطلب أو النموذج. -
200: البوابة تعمل، وراجع اختلافات رؤوس Claude Code في وضع--debug.
اختبار واجهات API باستخدام Apidog
عند تصحيح تكاملات مزودي الطرف الثالث، يساعدك Apidog على فحص الطلبات والاستجابات التي تمر عبر بوابة LLM الخاصة بك.
أنشئ مجموعة لنقطة النهاية:
/v1/messages
ثم أضف هذه الرؤوس كمتغيرات على مستوى المجموعة:
anthropic-version
anthropic-beta
Authorization
بهذا يمكنك اختبار بوابات مختلفة بتغيير المتغيرات بدل تعديل كل طلب يدويًا.
هذا مفيد خصوصًا عند التحقق من تمرير الرؤوس التي قد تسبب Invalid custom3p enterprise config.
إعدادات Claude Code مفيدة
تعطيل اعتماديات رؤوس beta
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
استخدمه عندما لا تمرر بوابتك الرؤوس المخصصة. ستفقد بعض الميزات التجريبية، لكن الحلقة الأساسية ستعمل.
اكتشاف النماذج من البوابة
من Claude Code v2.1.129:
export CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1
يستعلم Claude Code عن:
/v1/models
ويضيف النماذج المكتشفة إلى منتقي /model.
ملاحظة: يضيف عادةً النماذج التي تبدأ بـ claude أو anthropic. لنماذج مثل DeepSeek، استخدم:
export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek/deepseek-v4-pro"
إضافة نموذج مخصص إلى المنتقي
export ANTHROPIC_CUSTOM_MODEL_OPTION="deepseek/deepseek-v4-pro"
export ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="DeepSeek V4 Pro"
export ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="أرخص بـ 17 مرة من Claude Opus"
سيظهر النموذج في منتقي:
/model
أدلة ذات صلة
- كيفية كتابة ملفات AGENTS.md لفرق تطوير API
- Ruflo: تنسيق متعدد الوكلاء لـ Claude Code
- احصل على واجهة برمجة تطبيقات Claude مجانية غير محدودة عبر Puter.js
- أفضل نماذج LLM المحلية لعام 2026
الأسئلة الشائعة
هل استخدام مزود طرف ثالث مع Claude Code يخالف شروط Anthropic؟
لا. نمط ANTHROPIC_BASE_URL مدعوم لتوجيه الطلبات عبر Bedrock وVertex AI وFoundry والبوابات المخصصة. ما تم حظره هو أدوات كانت تزيف معرف عميل Claude Code للوصول إلى تسعير اشتراكات Anthropic.
هل تعمل حلقة وكيل Claude Code مع DeepSeek V4 Pro؟
تعمل الحلقة الأساسية مثل تحرير الملفات، أوامر الشل، والمهام متعددة الخطوات. القيود الرئيسية عبر مزودي الطرف الثالث هي أدوات MCP ومدخلات الصور/الرؤية.
لماذا تظهر عبارة enterprise config وأنا لست ضمن خطة مؤسسة؟
هذه تسمية داخلية في Claude Code لأي تهيئة مزود خارجي. لا تعني أنك تحتاج خطة Enterprise.
هل يمكنني التبديل بين Anthropic ومزود طرف ثالث داخل نفس الجلسة؟
لا. تتم قراءة ANTHROPIC_BASE_URL عند بدء التشغيل. للتبديل، أغلق Claude Code، عدّل البيئة أو الإعدادات، ثم ابدأ جلسة جديدة.
أداة DeepClaude تغلف هذا عبر خيارات مثل:
--backend ds
--backend anthropic
بوابتي خلف proxy. ماذا أفعل؟
اضبط:
export HTTPS_PROXY="http://your-proxy:8080"
export ANTHROPIC_BASE_URL="https://your-internal-gateway"
إذا كان proxy يعترض TLS، أضف شهادة CA:
export NODE_EXTRA_CA_CERTS="/path/to/corporate-ca-bundle.pem"
اختبار curl يعمل لكن Claude Code يفشل. لماذا؟
Claude Code يرسل طلب تحقق إضافيًا قد يتضمن رؤوسًا أو تنسيقًا مختلفًا. استخدم:
claude --debug
وقارن الطلب الفعلي مع اختبار curl.
الخلاصة
Invalid custom3p enterprise config هو خطأ تحقق من التهيئة. عالجه بهذا الترتيب:
- احذف
/v1منANTHROPIC_BASE_URL. - استخدم
ANTHROPIC_AUTH_TOKENأوANTHROPIC_API_KEYحسب نوع المصادقة. - تحقق من صحة
~/.claude/settings.json. - أكمل onboarding في
~/.claude.json. - تأكد أن البوابة تمرر رؤوس Claude Code.
- راجع سياسات المؤسسة إن وجدت.
بعد ضبط هذه النقاط، يمكن تشغيل Claude Code عبر OpenRouter أو LiteLLM أو vLLM مع نموذج مثل DeepSeek V4 Pro، مع الانتباه إلى القيود المتعلقة بـ MCP والرؤية.

Top comments (0)