بنية التوجيه التي تُفرِّع طلبات Claude Code إلى خلفيات نماذج متعددة

نظرة عامة

Claude Code أداة برمجة ذكية تعمل في سطر الأوامر. يقوم سلوكها الافتراضي على إرسال كل طلب إلى واجهة برمجة تطبيقات Anthropic، غير أن الطلبات لا تتساوى في ثقلها. التلخيص في الخلفية، والإكمال التلقائي القصير، وتحليل السياقات الطويلة، وإعادة الهيكلة التي تستدعي تفكيراً عميقاً — كل منها يحتاج إلى مستوى مختلف من النماذج. إرسال كل طلب عبر النموذج الأغلى يُراكم التكاليف بسرعة، بينما إرسال الكل عبر نموذج رخيص يُفسد الجودة.

يحل claude-code-router (اختصاراً CCR) هذه المعضلة بطبقة توجيه. يضع وكيلاً بين Claude Code وخلفيات النماذج، ويُفرِّع حركة المرور إلى مزودين ونماذج مختلفة بحسب نوع الطلب. انتشرت الأداة مؤخراً على وسائل التواصل الاجتماعي تحت عنوان استفزازي من قبيل “كيف تستخدم Claude Code مجاناً إلى الأبد”، لكن هذا المقال يتجاوز المبالغة ويركز على القيمة الحقيقية: توجيه النماذج والاستضافة الذاتية.

من منظور ThakiCloud، الجاذبية في CCR واضحة. نحن نُجدوِل وحدات GPU بـ Kueue على Kubernetes ونخدم النماذج المفتوحة بـ vLLM. تتيح CCR توجيه طلبات Claude Code إلى نقاط نهاية vLLM الداخلية، وهو ما يتطابق تماماً مع متطلب الأمان المتمثل في تشغيل أدوات إنتاجية المطورين دون إخراج الكود المصدري خارج المنظمة.


ما الذي يفعله claude-code-router

CCR خادم وكيل يستقبل الطلبات بصيغة رسائل Anthropic، ويحوِّلها اختيارياً إلى صيغة متوافقة مع OpenAI أو صيغة أخرى، ثم يُعيد توجيهها إلى المزود المُهيَّأ. لا يُعدِّل عميل Claude Code نفسه. تكفي إشارة متغيرات البيئة إلى CCR، وتتولى الأداة بعدها كل عمليات التوجيه.

القدرات الجوهرية:

يوضح الرسم أعلاه تدفق التوجيه في بيئة ThakiCloud. تذهب مهام البرمجة الاعتيادية (default) إلى Qwen3 أو DeepSeek التي يخدمها mجموعة vLLM الداخلية؛ المهام الخفيفة في الخلفية تذهب إلى نسخة Ollama محلية؛ مهام التفكير العميق تصل إلى واجهة برمجة Anthropic عند الضرورة فحسب؛ طلبات السياق الطويل تمر عبر OpenRouter. هكذا يتوافق طبيعة الطلب مع تكلفة النموذج.


التثبيت والتكامل

CCR موزَّعة كحزمة npm عالمية. الأمر الفعلي للتثبيت وناتجه:

npm install -g @musistudio/claude-code-router

التحقق من الإصدار بعد التثبيت:

$ ccr version
claude-code-router version: 2.0.0

الأوامر المتاحة تظهر بـ ccr -h. جزء من الناتج الفعلي:

Usage: ccr [command] [preset-name]

Commands:
  start         Start server
  stop          Stop server
  restart       Restart server
  status        Show server status
  code          Execute claude command
  model         Interactive model selection and configuration
  preset        Manage presets (export, install, list, delete)
  install       Install preset from GitHub marketplace
  activate      Output environment variables for shell integration
  ui            Open the web UI in browser
  -v, version   Show version information

يوجد ملف الإعدادات في ~/.claude-code-router/config.json. المقطعان الأساسيان هما مصفوفة Providers وكائن Router. مثال على إعداد يُسجِّل vLLM الداخلي لـ ThakiCloud ونسخة Ollama محلية معاً:

{
  "LOG": true,
  "API_TIMEOUT_MS": 600000,
  "Providers": [
    {
      "name": "thaki-vllm",
      "api_base_url": "http://vllm.internal.thaki:8000/v1/chat/completions",
      "api_key": "internal",
      "models": ["Qwen3-32B", "deepseek-v3"]
    },
    {
      "name": "ollama",
      "api_base_url": "http://localhost:11434/v1/chat/completions",
      "api_key": "ollama",
      "models": ["qwen2.5-coder:latest"]
    }
  ],
  "Router": {
    "default": "thaki-vllm,Qwen3-32B",
    "background": "ollama,qwen2.5-coder:latest",
    "longContext": "thaki-vllm,deepseek-v3"
  }
}

تشغيل الخادم وتوجيه Claude Code عبر CCR:

ccr start            # تشغيل خادم التوجيه
ccr code "..."       # تنفيذ Claude Code عبر CCR
# أو تطبيق متغيرات البيئة على مستوى الصدفة بأكملها
eval "$(ccr activate)"

بمجرد ضبط api_base_url على نقطة نهاية داخلية، يتدفق ذلك الحركة المرورية إلى نسخة vLLM في مجموعتنا بدلاً من Anthropic. الكود والمحادثات لا تغادر المنظمة.


التحقق من السلوك الفعلي

يتحقق هذا المقال من الأداة عبر التثبيت والتشغيل. اكتمل التثبيت العالمي عبر npm في أقل من ثانية؛ الإصدار هو 2.0.0؛ ويكشف CLI بالضبط الأوامر الموثَّقة — start وstop وcode وmodel وpreset وui وغيرها. كل الناتج المقتبس أعلاه مأخوذ من بيئة محلية.

في المقابل، لم تُقَس جولات الاستدلال الفعلية على نقطة نهاية vLLM داخلية في هذه البيئة. يتطلب ذلك نقطة نهاية GPU فعَّالة ومفتاح API صالحاً، ولم يُخترَع أي رقم للتأخير أو معدل معالجة الرموز لملء الفراغ. جودة التوجيه وموثوقية استدعاء الأدوات تعتمدان اعتماداً كبيراً على النموذج الخلفي، لذا يتوجب على كل من يعتمد CCR في الإنتاج إجراء معايرة مباشرة على أعبائه الفعلية.


الانعكاسات على منصة ThakiCloud لـ AI/ML على Kubernetes

نموذج توجيه CCR يتلاءم بشكل طبيعي مع البنية التحتية التي تُشغِّلها ThakiCloud بالفعل.

أمن الكود. في البيئات الخاضعة للتنظيم — الخدمات المالية، والقطاع العام، والرعاية الصحية — حيث لا يمكن إخراج الكود المصدري والبيانات الداخلية من المنظمة، تتيح CCR ربط حركة مرور أداة البرمجة الذكية بنسخة vLLM داخلية. الحفاظ على قابلية استخدام Claude Code مع ضمان عدم وصول المحادثات والكود إلى API خارجية يُشكِّل ميزة تنافسية واضحة لمنصة AI على خوادم المنظمة.

التحكم في التكاليف. التوجيه حسب المهمة هو توجيه حسب التكلفة. المهام ذات التكرار العالي والتعقيد المنخفض — كالإكمال التلقائي والتلخيص في الخلفية — تذهب إلى نموذج برمجة صغير مستضاف ذاتياً؛ المهام عالية المخاطرة كالتفكير في القرارات المعمارية تذهب إلى نموذج متميز. يُساهم جدولة GPU عبر Kueue وسلوك تحجيم vLLM في خفض تكاليف أوقات الخمول أيضاً.

التوافق مع التشغيل متعدد المستأجرين. إعدادات المزودين والتوجيه في CCR تُدار في ملفات نصية وإعدادات مسبقة. نشر إعدادات مسبقة لكل مستأجر تربط فرقاً مختلفة بخلفيات ونماذج مختلفة يُطبِّق سياسات النماذج بصيغة كود — متسق مع توجه ThakiCloud في تحويل السياسات إلى كود.

خلاصة القول، CCR ليست منتجاً قائماً بذاته، لكنها حين تُقرَن بخلفية مستضافة ذاتياً تُنتِج قيمة محددة: أداة برمجة ذكية لا تُرسِل الكود خارج المنظمة قط. وهو ما يتطابق تماماً مع رسالة ThakiCloud المتمحورة حول الخوادم الداخلية والكفاءة في التكاليف والاستضافة الذاتية.


القيود والحجج المضادة

طبقة التوجيه لا تحل كل المشكلات. ثمة نقاط تستحق فحصاً صادقاً.

CCR ليست خدعة سحرية لإلغاء التكاليف؛ هي آلية تحكم في التوجيه. حين يُقرَن هذا التحكم ببنية تحتية مستضافة ذاتياً، يغدو تحقيق مكاسب ذات معنى على محورين — الأمن والتكلفة — أمراً ممكناً.


المصادر