أدوات البرمجة
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 واحد
- افتح Settings → Models → Add a custom provider واحتفظ بالمزوّدين والأذونات الحالية.
- أدخل Provider ID بأحرف صغيرة مثل
tokenlab-chat، واختر بروتوكولًا واحدًا وBase URL مطابقًا من الجدول. - احفظ مفتاح TokenLab في النموذج المحلي. تحفظ مفاتيح الواجهة في
$DSH_HOME/.credentials.yaml، وتحتفظ الإعدادات بمرجع فقط. لا ترسل المفتاح في المحادثة أو git. - أضف معرّفًا دقيقًا من الكتالوج الحالي، وطابق
tokenlab.accepted_request_formatsفي تفاصيل النموذج. - احفظ المزوّد واختر النموذج ثم أنشئ جلسة جديدة. الجلسة التي أرسلت طلبًا بالفعل تحتفظ بنموذجها المسجّل.
| مثال Provider ID | Harness API protocol | Base URL | صيغة الطلب العامة المطلوبة |
|---|---|---|---|
tokenlab-chat | openai-completions | https://api.tokenlab.sh/v1 | openai_chat_completions |
tokenlab-responses | openai-responses | https://api.tokenlab.sh/v1 | openai_responses |
tokenlab-messages | anthropic-messages | https://api.tokenlab.sh | anthropic_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_BASE | https://api.tokenlab.sh | Root لواجهات MCP وtask |
TOKENLAB_OPENAI_BASE_URL | https://api.tokenlab.sh/v1 | Base URL لـ Responses وChat |
TOKENLAB_ANTHROPIC_BASE_URL | https://api.tokenlab.sh | Base URL لـ Messages |
TOKENLAB_MCP_TOOL_PROFILE | core | catalog (6) / core (32) / full (89) |
TOKENLAB_MCP_SCHEMA_MODE | portable | اختر 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 جهة استقبال.