DeepSeek في كل مكان: توصيل عقل سحابي رخيص بـ Claude Code ومنظومة وكلاء محلية

تاريخ النشر
11 يوليو 2026
بقلم
جاكوب لويد — كُتب بمساعدة الذكاء الاصطناعي بعد إنجاز المشروع
مدة القراءة
قراءة 2 دقيقة

بعبارة مبسطة: دليل لتوصيل DeepSeek — وهي خدمة ذكاء اصطناعي سحابية رخيصة جدًا — بأدواتك الحالية بدلًا من الدفع مقابل خيارات أغلى ثمنًا. يعرض ثلاثة إعدادات جاهزة للنسخ، بما في ذلك إعداد يُبقي مفتاح الوصول السرّي مخفيًا بأمان. تحصل على مساعدة ذكاء اصطناعي قوية مقابل أجزاء من السنت للرسالة الواحدة.

أصبح DeepSeek يشغّل ثلاثة أشياء مختلفة في منزلي الآن: عقل منظومة الوكلاء لديّ، وواجهة Claude Code، والدرجة السحابية من سلّم احتياطي. مجمل جهد التوصيل كان بعض JSON، وحفنة من متغيرات البيئة، وعلّة إفلات واحدة في systemd التهمت أمسية كاملة.

tl;dr

  • ما هو: واجهة DeepSeek السحابية المدفوعة كعقل خلف منظومة وكلاء منزلية متعددة، وكخلفية بديلة جاهزة لواجهة Claude Code — وليس دليلًا آخر من نوع "شغّله على بطاقة الرسومات الخاصة بك".
  • تكلفته: أجزاء من السنت للرسالة الواحدة عند استخدام الفئة الرخيصة. لا اشتراك، فقط مفتاح API.
  • ما تحتاجه: مفتاح API من DeepSeek، وأي شيء يتحدث بأسلوب chat completions من نوع OpenAI، وsystemd إن أردت استخدام حيلة Claude Code.
  • ما ستحصل عليه: ثلاثة إعدادات جاهزة للنسخ واللصق، وقائمة قرار بين السحابة والمحلي، وحيلة للتعامل مع الأسرار تُبقي المفتاح بعيدًا عن ps وsystemctl show وسجلاتك.

ما ستحصل عليه

قبل شرح الخطوات، إليك الصورة العامة. أشغّل OpenClaw، وهي بوابة وكلاء، مع ثمانية وكلاء مُسمّين خلف واجهة دردشة، بالإضافة إلى واجهة Claude Code التي يستدعيها هؤلاء الوكلاء لأعمال البرمجة الفعلية. DeepSeek يشغّل الاثنين معًا.

النمطما يفعلهالتكلفة
1. عقل الوكيلDeepSeek كمزوّد في إعدادات البوابة؛ يمكن لأي وكيل اختياره كخيار أساسي أو احتياطي0.14$–0.87$ لكل مليون رمز
2. خلفية Claude Codeملف systemd drop-in يعيد توجيه الواجهة إلى نقطة نهاية DeepSeek المتوافقة مع Anthropic، دون إعادة تثبيتنفس التسعير لكل رمز
3. السلّم الاحتياطيقائمة قرار لتحديد متى تذهب المهمة إلى DeepSeek ومتى تبقى على نموذج محلي0$ عندما تبقى محلية

السطر الوحيد الذي يجعل كل هذا ممكنًا: يوفّر DeepSeek نقطة نهاية متوافقة مع Anthropic على https://api.deepseek.com/anthropic. أي شيء مُصمَّم للتحدث مع Claude — بما في ذلك واجهة Claude Code — يمكن توجيهه إليها بمجرد متغيرات بيئة. لا حاجة لسكربت غلاف، ولا لأي تفريع (fork).

النمط الأول: DeepSeek كعقل للوكيل

كتلة مزوّد واحدة في إعدادات البوابة. هذا هو الشيء الحقيقي، مع إخفاء المفتاح:

"deepseek": {
  "baseUrl": "https://api.deepseek.com/v1",
  "api": "openai-completions",
  "apiKey": "CHANGE_ME",
  "timeoutSeconds": 450,
  "models": [
    {
      "id": "deepseek-v4-pro",
      "name": "deepseek-v4-pro",
      "reasoning": true,
      "input": ["text"],
      "cost": { "input": 0.435, "output": 0.87,
                "cacheRead": 0.003625, "cacheWrite": 0.435 },
      "contextWindow": 1000000,
      "maxTokens": 384000
    },
    {
      "id": "deepseek-v4-flash",
      "name": "deepseek-v4-flash",
      "reasoning": true,
      "input": ["text"],
      "cost": { "input": 0.14, "output": 0.28,
                "cacheRead": 0.0028, "cacheWrite": 0.14 },
      "contextWindow": 1000000,
      "maxTokens": 384000
    }
  ]
}

بعد ذلك يختار كل وكيل نموذجًا أساسيًا وسلسلة احتياطية:

"model": {
  "primary": "deepseek/deepseek-v4-flash",
  "fallbacks": ["deepseek/deepseek-v4-pro", "vllm/google/gemma-4-31b"]
}

إليك ما يحدث عندما تصل رسالة عبر هذا التوجيه:

إليك الروستر الفعلي لديّ. معظم الوكلاء يبدؤون بـ DeepSeek وينتقلون احتياطيًا إلى المحلي؛ أما Doxy فيعمل بالعكس عمدًا:

الوكيلالأساسيالاحتياطي
Bits (الدردشة الرئيسية)DeepSeek flashDeepSeek pro → محلي gemma-4-31b
BrainsDeepSeek proمحلي gemma-4-31b
FlashDeepSeek flashDeepSeek pro → محلي
Hermes (وكيل النشر)DeepSeek proDeepSeek flash → محلي
Alpha (آمن للعائلة)DeepSeek flashDeepSeek pro → محلي
Doxy (حصان العمل المحلي)محلي 120BDeepSeek flash (معكوس — المحلي هو الأساسي)
betaمحليDeepSeek flash → DeepSeek pro
Charley (رؤية)محلي gemma-31bDeepSeek pro → DeepSeek flash

Charley مهم هنا: مدخلات DeepSeek هذه نصية فقط ("input": ["text"])، لذا يبقى عمل الصور محليًا بغض النظر عمّا تقوله السلسلة الاحتياطية. الأسماء المستعارة (ds-flash، ds-brain) تتيح لي تبديل النماذج في منتصف المحادثة بدلًا من تعديل الإعدادات.

إعدادان سيؤذيانك إن تجاهلتهما:

  • خيار "reasoning": true إلزامي لنماذج الاستدلال. فهي تبث reasoning_content قبل الإجابة الفعلية؛ وعندما يكون هذا الخيار معطّلًا، تسمع البوابة صمتًا، فتقرر أن النموذج توقّف، وتقتل الدور بعد نحو 390 ثانية. لا تسألني كيف أعرف ذلك.
  • ارفع قيمة timeoutSeconds. كانت مهلة الطلب الافتراضية 120 ثانية؛ وعمليات الاستدلال الطويلة تتجاوزها وتخفق بشكل عشوائي. حللت المشكلة عندي برفعها إلى 450، وإعدادات المزوّد تُعاد تحميلها فورًا دون الحاجة لإعادة تشغيل البوابة.

النمط الثاني: تشغيل واجهة Claude Code على DeepSeek

تقرأ واجهة Claude Code المتغيرات ANTHROPIC_BASE_URL وANTHROPIC_MODEL وANTHROPIC_AUTH_TOKEN/ANTHROPIC_API_KEY من بيئتها، ونقطة نهاية /anthropic الخاصة بـ DeepSeek تتحدث بصيغة الاتصال نفسها التي يتحدث بها Claude. إذن، إعادة توجيه الواجهة هي مجرد تغيير للبيئة التي تمررها البوابة لكل عملية فرعية من Claude Code تستدعيها — تبقى الواجهة نفسها تثبيتًا قياسيًا دون تعديل.

الملف هو ملف drop-in خاص بمستخدم systemd. ملفي يُولَّد بواسطة تطبيق GTK صغير بنيته بنفسي يبدّل بين أربعة أوضاع (Local LM Studio / DeepSeek / Anthropic Cloud / Off)، لكنه قصير بما يكفي لكتابته يدويًا:

# ~/.config/systemd/user/openclaw-gateway.service.d/60-subagent-routing.conf
[Service]
# Routes Claude Code CLI sub-processes to DeepSeek's Anthropic-compatible
# endpoint. The key is NOT copied here: $$DEEPSEEK_API_KEY is systemd's escape
# for a literal $DEEPSEEK_API_KEY, which bash expands at runtime from the
# gateway EnvironmentFile -- the secret never enters the unit or the argv.
Environment="ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic"
Environment="ANTHROPIC_MODEL=deepseek-v4-pro"
ExecStart=
ExecStart=/usr/bin/bash -c 'export ANTHROPIC_AUTH_TOKEN="$$DEEPSEEK_API_KEY"; export ANTHROPIC_API_KEY="$$DEEPSEEK_API_KEY"; exec node /path/to/openclaw/dist/index.js gateway --port 18789'

المفتاح نفسه يعيش في مكان واحد بالضبط: EnvironmentFile الخاص بالخدمة (~/.openclaw/gateway.systemd.env، بصلاحيات chmod 600)، والذي لا يحتوي سوى على DEEPSEEK_API_KEY=CHANGE_ME.

مطب $$ (السبب الكامل وراء وجود هذا المقال)

محاولتي الأولى استخدمت علامة دولار واحدة $. لم تسر الأمور بشكل جيد. داخل ملف الوحدة، يُوسَّع $VAR بواسطة systemd نفسه عند لحظة التشغيل، ما يخبز المفتاح مباشرة في سطر الأوامر — مرئيًا في ps، وفي /proc/<pid>/cmdline، وفي systemctl show. ليس بالضبط المكان الذي تريد لسرّك أن يجلس فيه.

$$VAR هي طريقة systemd للإفلات من $VAR الحرفية: يمرر systemd السلسلة دون لمسها، ويوسّعها bash وقت التشغيل، من البيئة التي ملأها EnvironmentFile مسبقًا. النتيجة الصافية: السرّ موجود في ملف واحد بصلاحيات chmod-600 ولا مكان آخر — لا يظهر أبدًا في ملف الوحدة، ولا في systemctl show، ولا في أي argv. مدير أسرار بديل بسيط مبني من systemd وbash، لكنه يعمل.

مطبّات إضافية من التشغيل الفعلي لهذا:

  • اضبط متغيري المصادقة كليهما. إصدارات مختلفة من الواجهة تقرأ إما ANTHROPIC_AUTH_TOKEN أو ANTHROPIC_API_KEY؛ ضبط واحد منهما فقط بمثابة رمي عملة.
  • ثبّت قيمة ANTHROPIC_MODEL، وإلا فإن الأسماء المستعارة المعتادة sonnet/opus في الواجهة تُرسل إلى نقطة نهاية DeepSeek وتفشل برمز 404.
  • يحجب ملف drop-in أي مفتاح Anthropic حقيقي. بيئة واحدة تسيطر على الواجهة بأكملها — واكتشفت ذلك عندما كسرت بصمت الأسماء المستعارة الخاصة بي لـ"التوجيه إلى Claude الحقيقي".
  • ضع سطر ExecStart= فارغًا أولًا — السطر الفارغ قبل سطر التجاوز — وإلا سيضيف systemd أمرك إلى الأصل بدلًا من استبداله.
  • تحديثات الحزم قد تترك الغلاف يتيمًا. فهو يضمّن أمر التشغيل بشكل ثابت في الكود، لذا فإن أي تحديث يغيّر ExecStart الأصلي يعني ضرورة إعادة توليد ملف drop-in. مولّدي الخاص يقرأ الأمر القياسي من FragmentPath الخاص بالوحدة، ويرفض تغليف أي شيء يحتوي بالفعل على $$DEEPSEEK_API_KEY.
  • ثم أعد التحميل: systemctl --user daemon-reload && systemctl --user restart <service>.

لإثبات المسار بأكمله من طرف إلى طرف، تجاوز الواجهة واستخدم curl مباشرة:

curl https://api.deepseek.com/anthropic/v1/messages \
  -H "x-api-key: $DEEPSEEK_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"deepseek-v4-pro","max_tokens":16,"messages":[{"role":"user","content":"ping"}]}'

عودة استجابة تحتوي على "type":"message" تعني أن مسار التوافق مع Anthropic بأكمله يعمل فعلًا.

النمط الثالث: متى تستخدم DeepSeek فعليًا مقابل المحلي

وجود الخيارين لا يعني أن كل مهمة تذهب إلى السحابة. لكل مليون رمز، ومع أسعار Claude الرسمية للمقارنة (Opus بسعر 5$/25$، وSonnet بسعر 3$/15$، وHaiku بسعر 1$/5$):

الخيارالإدخالالإخراجملاحظات
DeepSeek flash0.14$0.28$قراءة التخزين المؤقت 0.0028$ — عمل وكيل الدردشة يكلف بضعة سنتات يوميًا
DeepSeek pro0.435$0.87$فئة "التفكير"، لا تزال أرخص من Sonnet بمقدار 7 إلى 17 مرة
محلي (نفس الجهاز)0$0$الكهرباء فقط

كانت السرعة المفاجأة الأكبر. النماذج المحلية من فئة 100B اضطرتني لرفع مهلة الدور إلى 20–30 دقيقة، وعندما يتشارك وكيلان جهاز رسومات واحد يتعطلان معًا. أما DeepSeek فيجيب خلال ثوانٍ؛ ولم يكن سقف الـ450 ثانية مهمًا إلا في أسوأ حالات الاستدلال. الفجوة الأخرى هي السياق — نافذة بمليون رمز مقابل نحو 128 ألف رمز للنماذج المحلية — لذا فإن الجلسات الوكيلية الطويلة ومهام البرمجة على قواعد أكواد كبيرة تذهب افتراضيًا إلى DeepSeek. أما الرؤية فتسير بالاتجاه المعاكس: مدخلات DeepSeek لديّ نصية فقط، لذا يبقى "انظر إلى هذه الصورة" على نموذج رؤية محلي.

قاعدة الخصوصية العملية التي أتّبعها فعليًا: لا ترسل إلى السحابة أي شيء لا تضعه في بريد إلكتروني.

سلاسل الاحتياط تعمل في الاتجاهين، وهذا هو الجزء المفضّل لديّ. الوكلاء الذين تكون السحابة أساسية لديهم ينتقلون إلى نموذج محلي عندما يتعطل الإنترنت أو الواجهة؛ وحصان العمل الذي يكون المحلي أساسيًا لديه ينتقل إلى DeepSeek flash عندما يكون الخادم المحلي مشغولًا أو معطّلًا. لا أحد يُترك بلا حل.

مطبّات، القائمة المختصرة

خيار reasoning: true، ومهلة الـ120 ثانية، وإفلات $$، وحجب ملف drop-in لمفتاح Anthropic الحقيقي — كل هذه غُطّيت ضمن النمطين الأول والثاني. وهناك اثنان آخران:

  • قائمة السماح غير الفارغة للإضافات صارمة. في OpenClaw، أي مدخل مزوّد مفعّل لكنه غائب عن plugins.allow لا يُحمَّل أبدًا. لا خطأ، ولا تحذير، مجرد صمت.
  • DeepSeek هنا نصي فقط. تحقّق من "input" في مدخل النموذج قبل توجيه مهام الرؤية إليه.

تريده محليًا بالكامل بدلًا من ذلك — بلا مفتاح API، وبلا فاتورة سحابية؟ كتبت عن ذلك أيضًا: DeepSeek: التشغيل محليًا — دليل من 4 خطوات، حيث تشغّل نماذج DeepSeek المقطّرة على بطاقة الرسومات الخاصة بك مع Ollama وDocker وOpen WebUI. ذلك هو المسار المناسب للمبتدئين؛ أما هذا المقال فمخصص لما إذا كانت المهام الصعبة تفوق قدرة بطاقة رسوماتك لكنك ما زلت تريد إبقاء الأمور الخاصة في المنزل.


← المزيد من الذكاء الاصطناعي والنماذج المحلية