أدوات البرمجة

DeepSeek Harness

إعداد نموذج TokenLab في Harness والتحقق من الطلب واختيار MCP أو Skills أو حزمة المزوّد

اختيار طريقة الاتصال

لاستخدام TokenLab كنموذج رئيسي، أضف custom provider في واجهة Harness Web. حزمة TokenLab الاختيارية ليست شرطًا. يضيف MCP أدوات وتوفّر Skill تعليمات API؛ ولا يغيّر أيّ منهما النموذج الرئيسي تلقائيًا.

Harness معاينة للمطورين. روجعت هذه الخطوات في 27 سبتمبر 2026 مقابل الوثائق الرسمية والحزمة المنشورة @deepseek-ai/dsh 0.1.5-rc.3. تستهدف تعليمات الحزمة أدناه الإصدار نفسه؛ تحقّق من التوافق مع إصدارات Harness الأخرى بشكل مستقل.

مهمة لوكيلك الحالي

اقرأ https://tokenlab.sh/docs/ar/integrations/deepseek-harness وتحقق من الإصدار المثبت ونظام التشغيل لديّ.
تأكد هل أحتاج TokenLab كنموذج رئيسي أم أدوات MCP أم Skill لتعليمات API.
احتفظ بالحسابات وإعدادات المزوّدين والأذونات، واشرح كيفية استعادة الإعدادات المعدّلة.
لا تطلب مفاتيح API في المحادثة؛ سأدخلها محليًا وأنفّذ خطوات الواجهة اللازمة.
اشرح تكلفة طلب تحقق صغير، ولا تساعد في تنفيذه ومطابقته بسجل TokenLab إلا بعد اختياري الصريح لذلك الاختبار.

تشغيل Harness

استخدم إصدار Node مدعومًا على macOS أو Linux أو Windows؛ يمكن البدء بـ Node 24 LTS. نفّذ من مجلد المشروع في الطرفية أو PowerShell:

node --version
npx @deepseek-ai/dsh@0.1.5-rc.3 web

افتح العنوان المحلي المطبوع، ثم أضف مشروعك واختره عبر Choose workspace. تستخدم الأوامر profile باسم web؛ ولا تدير هذه الخطوات profile desktop الخاص بتطبيق Electron. راجع دليل البدء ودليل Web UI.

إعداد مزوّد TokenLab واحد

  1. افتح Settings → Models → Add a custom provider واحتفظ بالمزوّدين والأذونات الحالية.
  2. أدخل Provider ID بأحرف صغيرة مثل tokenlab-chat، واختر بروتوكولًا واحدًا وBase URL مطابقًا من الجدول.
  3. احفظ مفتاح TokenLab في النموذج المحلي. تحفظ مفاتيح الواجهة في $DSH_HOME/.credentials.yaml، وتحتفظ الإعدادات بمرجع فقط. لا ترسل المفتاح في المحادثة أو git.
  4. أضف معرّفًا دقيقًا من الكتالوج الحالي، وطابق tokenlab.accepted_request_formats في تفاصيل النموذج.
  5. احفظ المزوّد واختر النموذج ثم أنشئ جلسة جديدة. الجلسة التي أرسلت طلبًا بالفعل تحتفظ بنموذجها المسجّل.
مثال Provider IDHarness API protocolBase URLصيغة الطلب العامة المطلوبة
tokenlab-chatopenai-completionshttps://api.tokenlab.sh/v1openai_chat_completions
tokenlab-responsesopenai-responseshttps://api.tokenlab.sh/v1openai_responses
tokenlab-messagesanthropic-messageshttps://api.tokenlab.shanthropic_messages

لأول طلب نصي، يمكن استخدام gpt-4.1-mini مع صف Chat إن ظل متاحًا. يساعد Fetch available models → Add selected على الاكتشاف، لكن يلزم الحفظ بعده؛ أدخل المعرّف يدويًا إذا تعذّر ذلك. القائمة لا تثبت توافق البروتوكول. لا يوجد بروتوكول Gemini native هنا؛ استخدم Chat فقط عندما يصرّح النموذج بدعمه. قد تحتاج الصور والتحكم في الاستدلال إلى حقول إضافية في settings.yaml؛ راجع وثائق المزوّد الرسمية وتفاصيل النموذج.

التحقق بطلب صغير

أرسل في الجلسة الجديدة:

أجب فقط بـ TOKENLAB_CONNECTION_OK. لا تستخدم أدوات ولا تعدّل ملفات.

هذا الطلب مدفوع. طابق الإجابة والنموذج والوقت والحالة في طلبات TokenLab. لا يلزم اختبار ثلاثة بروتوكولات أو توليد وسائط مدفوعة للتحقق الأول. نجاح قائمة النماذج أو اكتشاف MCP لا يثبت صلاحية التوليد.

اختياري: حزمة TokenLab

تستهدف @tokenlabai/dsh-provider@0.1.5 الإصدار Harness 0.1.5-rc.3. استخدم خطوات المزوّد الأصلي أعلاه لإعداد نموذج واحد، أو ثبّت الحزمة للحصول على مسارات النماذج والأدوات المعدّة مسبقًا.

تتضمن الحزمة لقطة ثابتة لـ 136 نموذج دردشة عامًا، جرى التحقق منها في 27 سبتمبر 2026: Responses 27، وMessages 10، وChat 99. يظهر كل نموذج في مسار واحد فقط. تثبّت الحزمة الإصدار @tokenlabai/mcp-server@0.6.24 وتضيف الأداة المستقلة tokenlab_wait_task. تثبيت هذا الإصدار لا يحدّث كتالوج النماذج. راجع المعرّفات في الكتالوج الحالي وأضف النماذج الأحدث عبر custom provider عند الحاجة.

في تثبيت متوافق موجود، تأكد أولًا من وجود pnpm في PATH. استخدم إصدار dsh وprofile نفسيهما للتثبيت والتشغيل. إذا كنت تستخدم npx، فاستبدل dsh أدناه بأمر التشغيل نفسه المحدد الإصدار:

dsh --version
pnpm --version
dsh plugin --profile web add --workspace-root @tokenlabai/dsh-provider@0.1.5

قبل تشغيل profile، اضبط المفتاح في بيئة التشغيل أو ملف .env الذي يقرؤه:

TOKENLAB_API_KEY=sk-your-tokenlab-key

يقرأ Harness ملف .env في مجلد التشغيل وفي $DSH_HOME، وهو عادةً ~/.dsh، مع أولوية متغيرات البيئة الموروثة. اختيار workspace لاحقًا لا يغيّر ملف .env. لا تحفظه في git، وأعد تشغيل profile بعد التعديل. مفتاح النموذج المحفوظ في الواجهة لا يصبح تلقائيًا TOKENLAB_API_KEY للحزمة. لاستخدام headless، ثبّت وشغّل في ذلك profile بدل web.

يدمج Harness 0.1.5-rc.3 إعدادات llm-pi-ai.providers المحفوظة بحسب مفتاح المزوّد. تتعايش المزوّدات ذات المفاتيح المختلفة. أما الإدخالات المحفوظة tokenlab-responses أو tokenlab-messages أو tokenlab-chat فتتقدم على مسار الحزمة ذي المفتاح نفسه؛ راجعها عند ترقية كتالوج قديم. احتفظ بالمزوّدات والنماذج الأخرى في $DSH_HOME/settings.yaml، ولا تستبدل مستند الإعدادات كاملًا بملف Cordis patch.

تحدّد تفاصيل النماذج العامة قدرة الاستدلال، لكنها لا تسرد قيم effort المدعومة لكل نموذج. لذلك لا تعرّف الحزمة reasoningEfforts. لا يعرض Harness مستويات effort لهذه المسارات المخصّصة، ولا يعني ذلك تعطيل الاستدلال على الخادم. إذا ضبطت reasoningEfforts بنفسك، فاستخدم فقط قيمًا جرى التحقق منها بشكل مستقل في إدخال النموذج ضمن قائمة models الخاصة بمزوّده، مع الاحتفاظ بالنماذج الأخرى. وجود قدرة الاستدلال وحده لا يثبت دعم xhigh أو max.

الإعداد الافتراضي هو TOKENLAB_MCP_TOOL_PROFILE=core مع 32 أداة MCP، وTOKENLAB_MCP_SCHEMA_MODE=portable. اختر catalog للاكتشاف فقط (6 أدوات)، أو full لجميع الأدوات الثمانين، بما فيها العمليات الإضافية لدورة حياة response وbatch وأصول ومجموعات Seedance وworlds. تبقى أداة الاستطلاع المستقلة tokenlab_wait_task متاحة في كل profile، ولا تدخل ضمن أعداد أدوات MCP المذكورة. بقية متغيرات البيئة موضّحة أدناه:

المتغيرالقيمة الافتراضيةالغرض
TOKENLAB_API_KEYلا يوجدمصادقة النماذج وMCP وpolling غير المتزامن
TOKENLAB_API_BASEhttps://api.tokenlab.shRoot لواجهات MCP وtask
TOKENLAB_OPENAI_BASE_URLhttps://api.tokenlab.sh/v1Base URL لـ Responses وChat
TOKENLAB_ANTHROPIC_BASE_URLhttps://api.tokenlab.shBase URL لـ Messages
TOKENLAB_MCP_TOOL_PROFILEcorecatalog (6) / core (32) / full (89)
TOKENLAB_MCP_SCHEMA_MODEportableاختر portable أو exact أو strict

إذا كانت delivery.mode تساوي complete، استخدم النتيجة مباشرةً. عند async مرّر delivery.task_id إلى tokenlab_wait_task واقرأ الحالة النهائية status وresponse وresult_urls. انتهاء مهلة الانتظار لا يعني اكتمال المهمة. احتفظ بالموافقة على الأدوات المدفوعة أو المدمّرة، وراجع المهام غير المتزامنة.

لإزالة الحزمة، استخدم أمر التشغيل وprofile نفسيهما ثم أعد التشغيل:

dsh plugin --profile web remove --workspace-root @tokenlabai/dsh-provider

معالجة الأخطاء

  • حقل الكتابة معطّل: اختر workspace ونموذجًا.
  • MISSING_CREDENTIAL أو 401: تحقق من بيانات المزوّد؛ تقرأ أدوات الحزمة TOKENLAB_API_KEY من بيئة التشغيل بشكل مستقل.
  • UNKNOWN_MODEL أو معرّف متقاعد: راجع الكتالوج الحالي واضبط المعرّف الدقيق ثم ابدأ جلسة جديدة. إعادة تثبيت 0.1.5 لا تحدّث اللقطة.
  • فشل التوليد: طابق البروتوكول وBase URL والصيغ المقبولة. لا تحذف السجل أو الأدوات أو الصور لمجرد الحصول على نجاح.
  • غياب dsh أو pnpm: استخدم أمر npx المحدد الإصدار أعلاه، وثبّت pnpm قبل أوامر plugin.

MCP وSkills خياران مستقلان

لا يثبّت المزوّد اليدوي أدوات. اتبع دليل TokenLab MCP إن احتجت أدوات دون الحزمة، وتحقق من اكتشافها قبل التوليد. ضع مجلد Skill كاملًا مع SKILL.md ومراجعه في .dsh/skills/tokenlab-api-integration/ داخل جذر المشروع؛ يدعم Harness أيضًا .agents/skills/. لا تثبّت Skill مزوّدًا أو خادم MCP أو مفتاحًا. راجع مرجع Skills الرسمي.

Jev / System One & Webhooks

لاستخدام Jev (POST /v1/systemone)، استدعِ mcp__tokenlab__evaluate_decisions ضمن core أو full. تحقّق من category=decision وتفاصيل النموذج. القرارات متزامنة وليست نماذج محادثة أو مهام غير متزامنة؛ لا تستخدم منتقي النماذج أو tokenlab_wait_task.

تتطلب إدارة Webhook ملف full ومتغيرًا مستقلًا TOKENLAB_MANAGEMENT_TOKEN=mt-... في بيئة التشغيل، تمرره الحزمة صراحةً إلى MCP. مفتاح الاستدلال لا يحل محله، وللرمز صلاحيات إدارية إضافية. التسجيل لا يجعل Harness جهة استقبال.

في هذه الصفحة