أقسام قاعدة المعرفة ▾

التنقل

▸ ابدأ من هنا حسب الدور

الفئات

أدوات 52
قاموس المصطلحات 12

أدوات

DeepSeek Harness: مزودك الخاص عبر JoinGonka Gateway

DeepSeek Harness (الأمر dsh) — هو وكيل (harness) مفتوح المصدر من DeepSeek AI: غلاف يقوم فيه النموذج بقراءة وتعديل ملفات المشروع، وتشغيل الأوامر، وتفويض المهام الفرعية، والحفاظ على خطة العمل، بينما تتابع أنت ذلك من المتصفح وتؤكد الخطوات الخطرة. المشروع لا يزال في مراحله الأولى: المؤلفون أنفسهم يسمونه developer preview ويحذرون صراحة من وجود تغييرات غير متوافقة. لذلك، كل ما يلي مرتبط بإصدار محدد — 0.1.5-rc.2، والذي قمنا من خلاله بإعداد كل شيء بدءاً من الشاشة الأولى وحتى استجابة الوكيل.

عند التشغيل الأول، يطلب dsh مفتاح API الرسمي للمزود الخاص به، ولكن طبقة النموذج مفتوحة: في صفحة Settings → Models يمكن إضافة أي مزود يتحدث بأحد البروتوكولات الثلاثة — OpenAI Chat Completions أو OpenAI Responses أو Anthropic Messages. توفر JoinGonka Gateway كل هذه البروتوكولات الثلاثة، لذا يتصل الـ harness بشبكة Gonka اللامركزية بالوسائل القياسية، بدون إضافات أو ترقيعات.

تفصيل مثير للاهتمام من صفحة التطبيق في كتالوج OpenRouter: في ترتيب النماذج التي يعمل من خلالها DeepSeek Harness، خلال الـ 30 يوماً الماضية، احتل DeepSeek V4 Flash 0731 المركز الثاني، وGLM 5.3 Flash المركز الثالث (الإحصائية بتاريخ 21 سبتمبر 2026؛ في المركز الأول نموذج اختبار مجهول). يتم تقديم كلا النموذجين المفتوحين بواسطة شبكة Gonka — جنباً إلى جنب مع MiniMax M2.7 — لذا فإن المجموعة المعتادة تنتقل إلى endpoint آخر دون تغيير النموذج: يتغير العنوان والسعر لكل توكن فقط.

ما هو DeepSeek Harness وكيفية تشغيله

الـ Harness هو كل ما يحيط بالموديل في العمل الوكيلي: حلقة «طلب ← استدعاء أداة ← نتيجة ← الخطوة التالية»، وأدوات الملفات والطرفية، والصلاحيات والتأكيدات، وسجل الجلسة، وضغط السياق. ويجمع DeepSeek Harness كل ذلك من الإضافات: فمعمارية «everything is a plugin» مبنيّة على إطار Cordis، وأي مكوّن — من الأداة إلى محوّل الموديل — يمكن استبداله دون تعديل النواة. الكود مفتوح بموجب رخصة MIT.

لا حاجة إلى تثبيت — يكفي وجود Node.js (سلسلة 22 بدءًا من 22.19، أو 24 وما أحدث):

npx @deepseek-ai/dsh web

يشغّل هذا الأمر واجهة الويب على http://127.0.0.1:3080 ويفتحها في المتصفح؛ وعند التشغيل عبر SSH يُطبع العنوان في الطرفية فقط. أما الخيار --no-open فيشغّل الخادم دون فتح المتصفح، ويغيّر --port رقم المنفذ. ويصبح المجلد الذي شُغِّل منه dsh هو مجلد العمل الافتراضي، لكن الواجهة لا تبدأ الجلسة إلا بعد اختيار مساحة العمل صراحةً.

الوضعالأمرالغرض
واجهة الويبdsh webالواجهة الأساسية: الجلسات، والإعدادات، وتأكيد العمليات
مهمة لمرة واحدةdsh --profile headless "task"السكربتات و CI: الرد إلى stdout، ومسار التفكير إلى stderr
ACPdsh --profile acpالمحرّرات والعملاء الداعمون لـ Agent Client Protocol
SDKdsh --profile sdkعملاء JSON-RPC، ومنهم Python SDK

تتكوّن طبقة الموديلات من محوّلَين. المحوّل المباشر يخاطب واجهة API الرسمية للجهة المزوّدة. أما محوّل تعدّد المزوّدين — dsh-llm-pi-ai — فيبني على مكتبة pi-ai ذاتها التي يقوم عليها الوكيل الطرفي Pi؛ ومن خلاله تتصل المزوّدات المدمجة في الكتالوج وأي endpoint خاص بك. ولذلك تتطابق أسماء الحقول في الإعدادات — api، وcontextWindow، وmaxTokens — مع تلك المعروفة من Pi.

عن النضج. يبدأ README الخاص بالمشروع بتحذير: إصدار تطويري أوّلي، وتكرارات سريعة، وتغييرات كاسرة للتوافق. ويوضّح مستند منفصل باسم SAFETY.md أنه لم يُجرَ أي تدقيق أمني وأن الوكيل ينفّذ أوامر يولّدها الموديل. والخلاصة العملية بسيطة: شغّل dsh داخل حاوية أو آلة افتراضية أو تحت حساب منفصل، واحتفظ بنسخ احتياطية من كل ما يمكن أن يصل إليه.

التوصيل عبر Web UI: Settings → Models

الخطوة 1: المفتاح. سجّل في gate.joingonka.ai/register: بعد تأكيد العنوان ستُضاف إلى حسابك 3M من الرموز المجانية. في لوحة التحكم، افتح قسم "مفاتيح API" وأنشئ مفتاحًا يبدأ بالبادئة jg-. من المفيد تخصيص مفتاح منفصل للـ harness — عندها سيظهر حجم حركته في الإحصاءات كسطر مستقل.

الخطوة 2: الشاشة الأولى. بعد إشعار الحالة التجريبية (زر Continue) سيطالبك dsh بإدخال مفتاح API الرسمي ("Add an API key to get started"). وهو غير إلزامي: اضغط Configure later.

الخطوة 3: المزوّد. افتح Settings → Models واختر Add a custom provider. حقول النموذج:

الحقلالقيمةملاحظة
Provider IDjoingonkaبحروف لاتينية صغيرة، يبدأ بحرف. المعرّف ثابت: يدخل في الطلبات والجلسات المحفوظة واسم الإشارة إلى المفتاح. لا يمكن تغييره — فقط إنشاء مزوّد جديد وحذف القديم
Display nameJoinGonka Gatewayأي تسمية للقوائم
Base URLhttps://gate.joingonka.ai/v1مع اللاحقة /v1
API protocolopenai-completionsكيف تختار البروتوكول — في الجدول أدناه
API keyjg-your-keyحقل للكتابة فقط: بعد الحفظ تحصل الصفحة على واصف مُقنَّع وليس المفتاح نفسه

الخطوة 4: النماذج. في قسم Models اضغط Fetch available models: سيطلب dsh القائمة من البوابة ويفتح نافذة "Choose models to add". في تجربتنا ظهرت فيها النماذج الثلاثة كلها — MiniMaxAI/MiniMax-M2.7 وdeepseek-ai/DeepSeek-V4-Flash-0731 وzai-org/GLM-5.3-Flash — وبعد Add selected حدّد الـ harness تلقائيًا لكل نموذج نافذة السياق وسقف الرد بحسب بيانات البوابة. لم يبقَ سوى الضغط على Create provider.

الخطوة 5: اختيار النموذج. أغلق الإعدادات، اضغط Choose workspace وأضف مجلد المشروع. ستظهر نماذج المزوّد الجديد في القائمة؛ ويصبح النموذج المختار النموذج الافتراضي للجلسات الجديدة.

يحفظ dsh المفتاح منفصلًا عن الإعدادات: في الملف ~/.dsh/.credentials.yaml بصلاحيات المالك فقط. وفي settings.yaml لا يبقى سوى اسم الإشارة إليه — في تجربتنا JOINGONKA_API_KEY، وفق معرّف المزوّد.

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

API protocolBase URLمتى تختاره
openai-completionshttps://gate.joingonka.ai/v1الخيار الأساسي: المسار المتعارف عليه للبوابة، وقائمة النماذج تُجلب بزر واحد، ومسار استدلال نموذج reasoning يصل في تدفق منفصل
openai-responseshttps://gate.joingonka.ai/v1إذا كانت إضافاتك أو سيناريوهاتك مبنية على Responses API
anthropic-messageshttps://gate.joingonka.aiبصيغة Anthropic Messages؛ والعميل يضيف المسار /v1/messages بنفسه

المزوّد الواحد في dsh يتحدث ببروتوكول واحد، لذا فإن البروتوكول الثاني يعني مزوّدًا ثانيًا بمعرّف Provider ID مختلف. للعمل اليومي يكفي الخيار الأول؛ وفي تجربتنا عملت حلقة الوكيل مع استدعاء الأدوات على البروتوكولات الثلاثة كلها.

الإعداد عبر الملف: settings.yaml

يكتب نموذج Models إلى مستند YAML عادي — $DSH_HOME/settings.yaml، والافتراضي هو ~/.dsh/settings.yaml. يمكنك تحريره مباشرة: زر Open configuration file في رأس الإعدادات يفتح الملف، وتعيد المحوّلات قراءته عند الطلب التالي — دون حاجة إلى إعادة التشغيل. إليك الإعداد الكامل لشبكة Gonka:

# ~/.dsh/settings.yaml
llm-pi-ai:
  providers:
    joingonka:
      displayName: JoinGonka Gateway
      apiKeyEnv: JOINGONKA_API_KEY
      api: openai-completions
      baseURL: https://gate.joingonka.ai/v1
      models:
        - id: deepseek-ai/DeepSeek-V4-Flash-0731
          name: DeepSeek V4 Flash
          contextWindow: 380000
          maxTokens: 32768
        - id: zai-org/GLM-5.3-Flash
          name: GLM-5.3 Flash
          contextWindow: 390000
          maxTokens: 8192
          reasoningEfforts:
            off: low
            high: high
        - id: MiniMaxAI/MiniMax-M2.7
          name: MiniMax M2.7
          contextWindow: 200000
          maxTokens: 8192
agent-default-model:
  provider: joingonka
  model: deepseek-ai/DeepSeek-V4-Flash-0731

ما يهم هنا:

  • apiKeyEnv — ليس المفتاح نفسه بل اسم الإشارة إليه. يبحث dsh عن القيمة بالترتيب: متغيّر البيئة عند لحظة التشغيل، ثم .credentials.yaml (حيث يكتب النموذج)، ثم .env في مجلد التشغيل، ثم ~/.dsh/.env. إذا كنت تُعدّ الـ harness بدون متصفح، يكفي سطر JOINGONKA_API_KEY=jg-your-key في ~/.dsh/.env بصلاحيات 600. المتغيّر الذي يُصدَّر بعد بدء التشغيل لن تراه العملية قيد التشغيل.
  • حدّد contextWindow وmaxTokens صراحةً. النموذج الذي لا يعرفه dsh يُنسب إليه 262 144 و32 768 توكن — وهذا لا يطابق الحدود الفعلية. كما يصبح maxTokens المحدَّد حدًّا افتراضيًا لطول الرد في كل طلب.
  • reasoningEfforts — مستويات التفكير في قائمة Effort. النموذج المُدخَل يدويًا لا يملك مستويات، ولن تظهر له قائمة. في GLM-5.3 Flash المفتاح ثنائي: القيمة low تُطفئ التفكير، وأي قيمة أخرى تُبقيه كاملًا. لذلك تمّ ربط المستوى off بـ low، بينما يمرّ high كما هو. في تجربتنا مع off لم تظهر كتل التفكير إطلاقًا، ومع high عادت.
  • agent-default-model — النموذج المخصّص للوكلاء الجدد، بما في ذلك وضع headless. يفعل اختيار النموذج في الواجهة الشيء نفسه؛ ويمكن هنا أيضًا إضافة reasoningEffort.

مفاتيح compat التي توصي بها وثائق dsh للبوّابات الصارمة (supportsDeveloperRole: false، maxTokensField: max_tokens) غير مطلوبة هنا: فبوّابة JoinGonka Gateway تقبل كلًا من دور developer وحقل max_completion_tokens.

أداة التثبيت npx @joingonka/setup لا تُعدّ هذا الـ harness: كل عملية الربط تنحصر في النموذج المذكور في القسم السابق أو في مقطع YAML أعلاه.

التحقق والأخطاء الشائعة

أسرع طريقة لاختبار الاتصال هي تشغيل تجريبي واحد من دليل الكود. ضع بجانبه ملفًا صغيرًا يحتوي على خطأ واضح واطلب منه العثور عليه:

cd /path/to/project
npx @deepseek-ai/dsh --profile headless "Read calc.py and tell me in one sentence whether it has a bug."

تُطبع الإجابة النهائية في stdout، ومسار الاستدلال — في stderr مع علامة dsh: reasoning:. يجب على الوكيل أن يستدعي أداة قراءة الملف بنفسه وأن يجيب بشكل جوهري: في تجربتنا، حدد كل من النماذج الثلاثة في الشبكة السطر الخاطئ. هذا يعني أن الدورة الكاملة «طلب ← استدعاء أداة ← نتيجة ← إجابة» عبر البوابة تُجمَّع بشكل صحيح.

النصف الثاني من الاختبار على جانب البوابة. في لوحة التحكم افتح «الاستخدام»: هناك تظهر الطلبات حسب الساعات والأيام، وتوزيعها حسب النماذج والمفاتيح. ظهر سطر يحمل مفتاح الـ harness ووقت أحدث طلب — أي أن حركة المرور تمر فعلاً عبر البوابة.

إذا حدث خطأ ما، فعادةً ما يُقرأ التشخيص مباشرة من الرسالة:

ما يظهرماذا يعنيما يجب فعله
AUTH: 401: … Invalid API keyالبوابة لم تقبل المفتاحأدخل المفتاح من جديد في صفحة Models أو صحّح المتغير الذي يشير إليه apiKeyEnv
MISSING_CREDENTIAL: … no credential for provider route "joingonka"لم يُعثر على شيء عبر الرابط من apiKeyEnvاحفظ المفتاح في النموذج أو عيّن المتغير قبل تشغيل dsh: تُقرأ البيئة مرة واحدة عند البدء
UNKNOWN_MODELالنموذج غير موجود في قائمة models الخاصة بالمزوّدأضفه إلى النموذج أو إلى الملف، أو اختر نموذجًا مُعدًّا مسبقًا
400 … Model "…" not found. Available: …المعرّف مكتوب بشكل غير دقيق، وغالبًا بدون بادئة المزوّدانسخ الـ id من القائمة التي توردها البوابة في الرسالة نفسها
429 … currently overloaded … (rate limit)نفدت السعة المتاحة للنموذج في الشبكة حاليًاوضع طبيعي تحت الضغط: يعيد dsh الطلب تلقائيًا. إذا استُنفدت المحاولات — بدّل النموذج أو انتظر دقيقة؛ الحالة ظاهرة على صفحة الحالة
Fetch available models يرد بـ 401طُلبت القائمة بمفتاح خاطئتحقّق من المفتاح في النموذج؛ يمكن إدخال النماذج يدويًا أيضًا — وستعمل بالطريقة ذاتها
نموذج الاستدلال لا يحتوي على قائمة Effortلم تُعلن المستويات في سجل النموذجأضف reasoningEfforts إلى settings.yaml كما في المثال أعلاه
إجابة نموذج الاستدلال تنقطع أو تكون فارغةالاستدلال يدخل ضمن حد الإجابة واستهلكه بالكامللا تخفّض maxTokens؛ للمهام القصيرة اختر المستوى off
في حقل الإدخال تظهر عبارة Select model، والإدخال معطّلالنموذج الافتراضي يشير إلى مزوّد محذوفاختر نموذجًا آخر من القائمة

أي نموذج تختار

سعر جميع النماذج في الشبكة موحد، لذا فإن الاختيار يعتمد على السلوك وليس الميزانية. فيما يلي القيود وكيفية أداء النماذج في تجربتنا dsh على نفس المهمة: قراءة ملف والعثور على خطأ فيه.

النموذجالمعرفالسياق / الاستجابةكيف يعمل في dsh
DeepSeek V4 Flashdeepseek-ai/DeepSeek-V4-Flash-0731380K / 32768استجابة نظيفة مع تحديد السطر. يمتلك أكبر سقف للاستجابة في الشبكة — يسمح بتعديلات طويلة وملفات كبيرة في جولة واحدة
GLM-5.3 Flashzai-org/GLM-5.3-Flash390K / 8192نموذج استنتاجي (Reasoning): يعرض dsh عملية الاستنتاج في تدفق منفصل، وتبقى الاستجابة نظيفة. يقع الاستنتاج ضمن حد الاستجابة
MiniMax M2.7MiniMaxAI/MiniMax-M2.7200K / 8192يحل المهمة بشكل صحيح؛ يأتي الاستنتاج في حقل منفصل reasoning_content، بينما يحتوي نص الاستجابة على الجواب فقط

التوصية الافتراضية هي DeepSeek V4 Flash: العمل كوكيل (agent) يستهلك سياق العمل وطول التعديلات بسرعة، وهذا النموذج يوفر فائضاً في كلا المعيارين. عندما تتطلب المهمة التفكير في منطق معقد، انتقل إلى GLM-5.3 Flash واضبط مستوى الاستنتاج على high؛ وللتعديلات السريعة، يوفر نفس المزود النتيجة بمستوى off. يعد MiniMax M2.7 خياراً متوازناً للمهام القصيرة عندما لا يشكل ظهور مسار الاستنتاج عائقاً. يتم تغيير النموذج في محدد الواجهة أو عبر السطر model في الكتلة agent-default-model.

يتم تحديد تكوين الشبكة من خلال تصويت المشاركين ويتغير بمرور الوقت؛ يتم توفير القائمة المحدثة مع القيود دائماً عبر GET https://gate.joingonka.ai/v1/models — وهو الرابط الذي يستخدمه زر Fetch available models.

ما هي التكلفة وما يجب مراعاته في العمل

تستهلك أدوات الوكيل (agent tools) الرموز (tokens) بشكل مختلف عن الدردشة: فمع كل عبارة ترسلها، يقوم الـ harness بإضافة رسالة نظام (system prompt) ووصف لجميع الأدوات، ثم يجري حواراً متعدد الخطوات مع النموذج. في تجربتنا، استغرقت مهمة «قراءة الملف والعثور على الخطأ» من خطوتين إلى ثلاث خطوات، وما بين 14 إلى 22 ألف رمز، مع العلم أن معظم ذلك هو مدخلات: يتم استهلاك حوالي سبعة آلاف رمز مع كل خطوة قبل حتى طرح سؤالك. هذا ثمن طبيعي للاستقلالية — وهذا هو السبب في أن سعر الرمز (token) هو العامل الحاسم.

من خلال JoinGonka Gateway، تبلغ تكلفة الرموز $0.0069 لكل مليون رمز للمدخلات و $0.021 لكل مليون رمز للمخرجات — السعر موحد لجميع نماذج الشبكة ويتم استخلاصه في هذه الصفحة من مصدر مباشر. تقديرات الأسعار لشهر سبتمبر 2026:

السيناريوالاستهلاكعبر Gateway
مهمة لمرة واحدة (قراءة ملف، البحث عن خطأ)14-22 ألف رمزأجزاء من السنت
يوم عمل نشط3-7 مليون رمزبضعة سنتات
شهر تطوير نشط~150 مليون رمزحوالي دولار

يتم الدفع مقابل الاستهلاك الفعلي، بدون اشتراك وبدون قيود على عدد الطلبات؛ يمكن رؤية الرصيد والاستهلاك اليومي في لوحة التحكم.

النسخة. بينما لا يزال المشروع في حالة developer preview، تحقق بعد كل تحديث من أن المزود يعمل، ولضمان إمكانية التكرار، قم بتثبيت النسخة مباشرة في الأمر: npx @deepseek-ai/[email protected] web.

الصلاحيات. تعمل الجلسات الجديدة افتراضياً في وضع Workspace Write — الكتابة داخل دليل العمل؛ تطلب الواجهة تأكيداً للعمليات التي تتجاوز السياسة. يمكن تغيير الوضع في Settings → General.

إعادة المحاولة. عند حدوث خطأ في الشبكة، يقوم dsh بإعادة المحاولة تلقائياً — وفقاً للوثائق حتى خمس مرات — لذا فإن ارتفاع حمل الشبكة اللحظي غالباً ما يمر دون ملاحظة.

الخصوصية. لا يحفظ البوابة (gateway) محتوى الرسائل أو الردود: لا يتبقى في الإحصائيات سوى إجمالي الاستهلاك. يقرأ الوكيل ملفات المشروع محلياً على جهازك.

إذا كنت بحاجة للعمل مع الصور — لقطة شاشة للواجهة، رسم بياني في صورة — قم بإضافة مزود ثانٍ بجانبه يستخدم نموذجاً قادراً على الرؤية: يدعم dsh عدة مزودين في وقت واحد، بينما نماذج شبكة Gonka هي نماذج نصية.

DeepSeek Harness ليس الوكيل الوحيد الذي تنتجه مختبرات تطوير النماذج: لدى Z.ai، مطوري GLM، بيئة ZCode، ولدى MiniMax برنامج MiniMax Code الطرفي. كلاهما يتصل بنفس البوابة باستخدام نفس المفتاح.

DeepSeek Harness هو وكيل مفتوح المصدر من DeepSeek AI في حالة developer preview: واجهة ويب، مهام لمرة واحدة، ACP و SDK فوق بنية إضافات. يتم توصيل نقطة النهاية (endpoint) الخاصة بك بشكل طبيعي: Settings → Models → Add a custom provider، العنوان https://gate.joingonka.ai/v1، البروتوكول openai-completions، المفتاح jg-…؛ يقوم زر Fetch available models بجلب DeepSeek V4 Flash و GLM-5.3 Flash و MiniMax M2.7 تلقائياً مع الحدود. يتم كتابة نفس الإعدادات في كتلة llm-pi-ai داخل ~/.dsh/settings.yaml. بالنسبة لـ GLM-5.3 Flash، أعلن عن المستويات off: low و high: high — سيصبح الاستنتاج قابلاً للتبديل. قم بتشغيل الـ harness في بيئة معزولة وقم بتثبيت النسخة حتى يستقر التنسيق.

تريد معرفة المزيد؟

استكشف الأقسام الأخرى أو ابدأ في كسب GNK الآن.

احصل على المفتاح والرموز المجانية →