DEV Community

Cover image for حل مشكلة خطأ "تكوين مؤسسة 3p مخصص غير صالح" في كود Claude
Yusuf Khalidd
Yusuf Khalidd

Posted on • Originally published at apidog.com

حل مشكلة خطأ "تكوين مؤسسة 3p مخصص غير صالح" في كود Claude

إذا حاولت توجيه Claude Code إلى DeepSeek V4 أو OpenRouter أو أي مزود نموذج طرف ثالث آخر وظهر لك الخطأ Invalid custom3p enterprise config، فالمشكلة غالبًا ليست في النموذج نفسه، بل في تهيئة Claude Code: عنوان URL الأساسي، نوع مفتاح المصادقة، ملف settings.json، أو إعدادات المؤسسة.

جرّب Apidog اليوم

في هذا الدليل العملي ستجد معنى custom3p، أكثر الأسباب شيوعًا للخطأ، وكيفية إصلاح كل سبب بخطوات وأمثلة تهيئة قابلة للاستخدام مع OpenRouter وLiteLLM وvLLM.

خلاصة سريعة

Invalid custom3p enterprise config يعني أن Claude Code لم يستطع التحقق من صحة تهيئة مزود خارجي.

custom3p هو الاسم الداخلي في Claude Code لأي نقطة نهاية API غير تابعة لـ Anthropic يتم تفعيلها عبر:

ANTHROPIC_BASE_URL
Enter fullscreen mode Exit fullscreen mode

ابدأ دائمًا بهذه الفحوصات:

  1. احذف /v1 من نهاية ANTHROPIC_BASE_URL.
  2. استخدم متغير المصادقة الصحيح:
    • ANTHROPIC_AUTH_TOKEN للـ Bearer token.
    • ANTHROPIC_API_KEY لرأس x-api-key.
  3. تحقق من صحة ~/.claude/settings.json.
  4. تأكد أن الإعداد الأولي لـ Claude Code مكتمل.
  5. تأكد أن بوابتك تمرر الرؤوس المطلوبة.
  6. تحقق من عدم وجود سياسة مؤسسة تمنع المزود المخصص.

ماذا يعني 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
Enter fullscreen mode Exit fullscreen mode

هذا خطأ تهيئة، وليس حظرًا سياسيًا أو رفضًا تلقائيًا لاستخدام مزود خارجي.

لماذا يظهر هذا الخطأ الآن؟

بعد قيود Anthropic في أبريل 2026 على أدوات كانت تزيف معرف عميل Claude Code للوصول إلى اشتراكات Pro وMax، بدأ مطورون كثيرون باستخدام دعم الطرف الثالث الرسمي في Claude Code لتوجيه الجلسات عبر مزودين أرخص.

على سبيل المثال، وثّق أحد المواضيع استخدام DeepSeek V4 Pro عبر OpenRouter بتكلفة أقل بكثير من Anthropic. كما ظهرت أدوات مثل DeepClaude لتبسيط الإعداد.

المشكلة أن دعم الطرف الثالث الرسمي يتطلب تهيئة دقيقة. خطأ صغير في URL أو المصادقة أو JSON يكفي لإظهار:

Invalid custom3p enterprise config
Enter fullscreen mode Exit fullscreen mode

السبب 1: وجود /v1 زائدة في ANTHROPIC_BASE_URL

هذا هو السبب الأكثر شيوعًا.

Claude Code يضيف تلقائيًا:

/v1/messages
Enter fullscreen mode Exit fullscreen mode

إلى عنوانك الأساسي. لذلك إذا وضعت /v1 بنفسك، يصبح المسار النهائي:

/v1/v1/messages
Enter fullscreen mode Exit fullscreen mode

وغالبًا تحصل على 404.

خطأ

export ANTHROPIC_BASE_URL="https://api.openrouter.ai/api/v1"
Enter fullscreen mode Exit fullscreen mode
export ANTHROPIC_BASE_URL="https://litellm.yourcompany.com/v1"
Enter fullscreen mode Exit fullscreen mode

صحيح

export ANTHROPIC_BASE_URL="https://api.openrouter.ai/api"
Enter fullscreen mode Exit fullscreen mode
export ANTHROPIC_BASE_URL="https://litellm.yourcompany.com"
Enter fullscreen mode Exit fullscreen mode

اختبار سريع

شغّل:

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"}]}'
Enter fullscreen mode Exit fullscreen mode

التفسير:

  • 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"
Enter fullscreen mode Exit fullscreen mode

لا تستخدم ANTHROPIC_API_KEY هنا إلا إذا كانت بوابتك تدعمه صراحة.

LiteLLM

export ANTHROPIC_AUTH_TOKEN="sk-litellm-your-virtual-key"
export ANTHROPIC_BASE_URL="https://your-litellm-server:4000"
Enter fullscreen mode Exit fullscreen mode

vLLM أو بوابة تتوقع x-api-key

export ANTHROPIC_API_KEY="your-key-here"
export ANTHROPIC_BASE_URL="https://your-vllm-server"
Enter fullscreen mode Exit fullscreen mode

إذا لم تكن متأكدًا، راجع وثائق البوابة لمعرفة الرأس المطلوب.

السبب 3: ملف settings.json غير صالح

إذا كنت تضع التهيئة في:

~/.claude/settings.json
Enter fullscreen mode Exit fullscreen mode

فأي خطأ JSON يمنع Claude Code من قراءة الإعدادات.

خطأ: فاصلة زائدة

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://openrouter.ai/api",
    "ANTHROPIC_AUTH_TOKEN": "sk-or-your-key",
  }
}
Enter fullscreen mode Exit fullscreen mode

خطأ: علامات اقتباس ذكية

{
  "env": {
    “ANTHROPIC_BASE_URL”: “https://openrouter.ai/api”
  }
}
Enter fullscreen mode Exit fullscreen mode

صحيح

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://openrouter.ai/api",
    "ANTHROPIC_AUTH_TOKEN": "sk-or-your-openrouter-key"
  }
}
Enter fullscreen mode Exit fullscreen mode

تحقق من الملف

باستخدام Python:

python3 -c "import json, os; json.load(open(os.path.expanduser('~/.claude/settings.json')))" && echo "Valid JSON"
Enter fullscreen mode Exit fullscreen mode

أو باستخدام jq:

jq . ~/.claude/settings.json
Enter fullscreen mode Exit fullscreen mode

إذا فشل التحليل، أصلح JSON قبل تشغيل Claude Code.

السبب 4: تثبيت جديد لم يكمل الإعداد الأولي

في التثبيتات الجديدة، يتحقق Claude Code من:

~/.claude.json
Enter fullscreen mode Exit fullscreen mode

ويبحث عن:

"hasCompletedOnboarding": true
Enter fullscreen mode Exit fullscreen mode

إذا لم تكن موجودة، قد يتجاهل إعدادات الطرف الثالث ويحاول استخدام تدفق المصادقة الافتراضي.

تحقق من الحالة

cat ~/.claude.json | python3 -m json.tool 2>/dev/null | grep hasCompletedOnboarding
Enter fullscreen mode Exit fullscreen mode

الإصلاح

أضف أو عدّل الملف:

{
  "hasCompletedOnboarding": true,
  "primaryApiKey": "sk-placeholder"
}
Enter fullscreen mode Exit fullscreen mode

primaryApiKey هنا قيمة مؤقتة لتجاوز فحص التنسيق. سيتم تجاوزها بتهيئة المزود الخارجي.

بعد ذلك أعد تشغيل Claude Code.

السبب 5: البوابة لا تمرر الرؤوس المطلوبة

Claude Code يرسل رؤوسًا إضافية أثناء التحقق من التهيئة، ومنها:

anthropic-beta
anthropic-version
X-Claude-Code-Session-Id
Enter fullscreen mode Exit fullscreen mode

إذا كانت بوابتك أو 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;
}
Enter fullscreen mode Exit fullscreen mode

في LiteLLM، هذا مدعوم افتراضيًا في الإصدارات الحديثة مثل v1.82.9+.

حل بديل

إذا لم تستطع تمرير رأس anthropic-beta:

export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
Enter fullscreen mode Exit fullscreen mode

هذا يعطل بعض الميزات التجريبية، لكنه يسمح بتشغيل حلقة الوكيل الأساسية.

السبب 6: سياسة المؤسسة تمنع التهيئة

إذا كنت ضمن خطة Claude Teams أو Enterprise، قد تكون هناك إعدادات مُدارة تتجاوز إعداداتك المحلية.

تحقق من وجودها:

ls ~/.claude/managed-settings.json 2>/dev/null && echo "تم العثور على إعدادات مُدارة"
Enter fullscreen mode Exit fullscreen mode

أو من داخل Claude Code:

/status
Enter fullscreen mode Exit fullscreen mode

إذا كانت الإعدادات المُدارة نشطة، اطلب من المسؤول أحد الخيارات التالية:

  • السماح بنطاق بوابتك في قائمة عناوين URL الأساسية.
  • إضافة نماذج البوابة إلى availableModels.
  • إعفاؤك من قيود ANTHROPIC_BASE_URL.

في macOS، قد توجد الإعدادات المُدارة في:

/Library/Application Support/ClaudeCode/managed-settings.json
Enter fullscreen mode Exit fullscreen mode

تهيئات جاهزة للعمل

Claude Code + OpenRouter + DeepSeek V4 Pro

ضع التالي في:

~/.claude/settings.json
Enter fullscreen mode Exit fullscreen mode
{
  "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"
  }
}
Enter fullscreen mode Exit fullscreen mode

تجاوز أسماء النماذج مهم لأن Claude Code قد يستمر في طلب:

claude-sonnet-4-6
Enter fullscreen mode Exit fullscreen mode

حتى بعد تغيير 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"
Enter fullscreen mode Exit fullscreen mode

ثم في ~/.claude/settings.json:

{
  "env": {
    "ANTHROPIC_BASE_URL": "http://localhost:4000",
    "ANTHROPIC_AUTH_TOKEN": "sk-litellm-your-key"
  }
}
Enter fullscreen mode Exit fullscreen mode

بهذا الشكل، يرسل 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
Enter fullscreen mode Exit fullscreen mode

ثم اضبط Claude Code:

export ANTHROPIC_BASE_URL="http://localhost:8000"
export ANTHROPIC_API_KEY="local-key"
export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-ai/DeepSeek-V3"
Enter fullscreen mode Exit fullscreen mode

راجع أيضًا توثيق vLLM مع Claude Code.

تصحيح الخطأ عمليًا

شغّل Claude Code بوضع التصحيح:

claude --debug 2>&1 | head -100
Enter fullscreen mode Exit fullscreen mode

ابحث عن:

  • 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"}]
  }'
Enter fullscreen mode Exit fullscreen mode

إذا حصلت على:

  • 401 أو 403: مشكلة مصادقة.
  • 404: مشكلة URL.
  • 422: مشكلة تنسيق الطلب أو النموذج.
  • 200: البوابة تعمل، وراجع اختلافات رؤوس Claude Code في وضع --debug.

اختبار واجهات API باستخدام Apidog

عند تصحيح تكاملات مزودي الطرف الثالث، يساعدك Apidog على فحص الطلبات والاستجابات التي تمر عبر بوابة LLM الخاصة بك.

أنشئ مجموعة لنقطة النهاية:

/v1/messages
Enter fullscreen mode Exit fullscreen mode

ثم أضف هذه الرؤوس كمتغيرات على مستوى المجموعة:

anthropic-version
anthropic-beta
Authorization
Enter fullscreen mode Exit fullscreen mode

بهذا يمكنك اختبار بوابات مختلفة بتغيير المتغيرات بدل تعديل كل طلب يدويًا.

هذا مفيد خصوصًا عند التحقق من تمرير الرؤوس التي قد تسبب Invalid custom3p enterprise config.

إعدادات Claude Code مفيدة

تعطيل اعتماديات رؤوس beta

export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
Enter fullscreen mode Exit fullscreen mode

استخدمه عندما لا تمرر بوابتك الرؤوس المخصصة. ستفقد بعض الميزات التجريبية، لكن الحلقة الأساسية ستعمل.

اكتشاف النماذج من البوابة

من Claude Code v2.1.129:

export CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1
Enter fullscreen mode Exit fullscreen mode

يستعلم Claude Code عن:

/v1/models
Enter fullscreen mode Exit fullscreen mode

ويضيف النماذج المكتشفة إلى منتقي /model.

ملاحظة: يضيف عادةً النماذج التي تبدأ بـ claude أو anthropic. لنماذج مثل DeepSeek، استخدم:

export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek/deepseek-v4-pro"
Enter fullscreen mode Exit fullscreen mode

إضافة نموذج مخصص إلى المنتقي

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"
Enter fullscreen mode Exit fullscreen mode

سيظهر النموذج في منتقي:

/model
Enter fullscreen mode Exit fullscreen mode

أدلة ذات صلة

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

هل استخدام مزود طرف ثالث مع 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
Enter fullscreen mode Exit fullscreen mode

بوابتي خلف proxy. ماذا أفعل؟

اضبط:

export HTTPS_PROXY="http://your-proxy:8080"
export ANTHROPIC_BASE_URL="https://your-internal-gateway"
Enter fullscreen mode Exit fullscreen mode

إذا كان proxy يعترض TLS، أضف شهادة CA:

export NODE_EXTRA_CA_CERTS="/path/to/corporate-ca-bundle.pem"
Enter fullscreen mode Exit fullscreen mode

اختبار curl يعمل لكن Claude Code يفشل. لماذا؟

Claude Code يرسل طلب تحقق إضافيًا قد يتضمن رؤوسًا أو تنسيقًا مختلفًا. استخدم:

claude --debug
Enter fullscreen mode Exit fullscreen mode

وقارن الطلب الفعلي مع اختبار curl.

الخلاصة

Invalid custom3p enterprise config هو خطأ تحقق من التهيئة. عالجه بهذا الترتيب:

  1. احذف /v1 من ANTHROPIC_BASE_URL.
  2. استخدم ANTHROPIC_AUTH_TOKEN أو ANTHROPIC_API_KEY حسب نوع المصادقة.
  3. تحقق من صحة ~/.claude/settings.json.
  4. أكمل onboarding في ~/.claude.json.
  5. تأكد أن البوابة تمرر رؤوس Claude Code.
  6. راجع سياسات المؤسسة إن وجدت.

بعد ضبط هذه النقاط، يمكن تشغيل Claude Code عبر OpenRouter أو LiteLLM أو vLLM مع نموذج مثل DeepSeek V4 Pro، مع الانتباه إلى القيود المتعلقة بـ MCP والرؤية.

Top comments (0)