مقارنة DeepSeek Harness وClaude Code وOmnigent
قارن بين DeepSeek Harness وClaude Code وOmnigent من حيث البنية، وارتباط النموذج، والترخيص، والنضج، وما يحتاجه كل خيار للتشغيل على VPS.
DeepSeek Harness مقابل Claude Code مقابل Omnigent: أيّها تحتاج؟
يُطلَق على DeepSeek Harness وClaude Code وOmnigent جميعاً اسم أطر تشغيل الوكلاء، لكنها تحل أجزاءً مختلفة من المشكلة. DeepSeek Harness هو بيئة تشغيل إضافية بواجهة ويب (واجهة مستخدم) توفّر لها النموذج الذي تريد استخدامه. أما Claude Code فهو برنامج طرفية من Anthropic يشغّل نماذج Anthropic. وOmnigent هو منسّق من Databricks يدير أطر تشغيل أخرى، ومنها Claude Code، بدلاً من تنفيذ حلقة وكيل خاصة به. لا يمكن لأيّ منها أن يحل محل الآخر مباشرةً، لذلك فإن السؤال الأهم هو: أي طبقة تفتقدها؟
تتمثل أوجه الاختلاف الفعلية في البنية، والارتباط بالنموذج، والواجهة، ودرجة النضج، والترخيص. جرى التحقق من كل إصدار وتاريخ أدناه في 18 August 2026. يتطور اثنان من هذه الخيارات الثلاثة بسرعة كافية بحيث ينبغي أن تعيد التحقق من المعلومات قبل الالتزام بأحدها.
ما هو DeepSeek Harness، وما الفائدة التي يوفّرها نموذج الإضافات؟
نشرت DeepSeek مشروع DeepSeek Harness، أو dsh، في github.com/deepseek-ai/deepseek-harness في أغسطس 2026. يصف المستودع التصميم بالكامل في أربع كلمات: كل شيء إضافة. محوّل النموذج، وسجل الأدوات، وسجل الجلسة، وبيئة sandbox، وحلقة الوكيل نفسها، كلها إضافات تُحمَّل بواسطة runtime مبني على Cordis. كان التبنّي سريعاً على نحو غير معتاد، وتجاوز المستودع 150,000 نجمة خلال أيام من نشره (تم التحقق في 18 أغسطس 2026).
DeepSeek Harness حالياً في مرحلة معاينة للمطورين، ويتغير بسرعة. ستحدث تغييرات تكسر التوافق.
هذا هو التحذير الوارد في README نفسه، وهو أهم جملة في هذه المقارنة. أي شيء تكتبه اليوم اعتماداً على plugin API (واجهة برمجة التطبيقات) يجب أن تتوقع إعادة كتابته.
شغّله باستخدام npx، الذي يتطلب تثبيت Node.js:
npx @deepseek-ai/dsh webيطبع الأمر عنوان URL الخاص به. تكون واجهة الويب متاحة افتراضياً على http://127.0.0.1:3080. أما البناء من المصدر فيستخدم pnpm بدلاً من ذلك:
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh webdsh web اختصار لـ dsh --profile web. الملف التعريفي عبارة عن دليل داخل $DSH_HOME/profiles/، ويشغّل launcher الملف الذي تسميه. وهذا مهم لأن هناك ملفاً تعريفياً headless أيضاً: يشغّل dsh --profile headless "job" جلسة محفوظة واحدة، ويطبع النتيجة ثم يخرج. وهذا هو الشكل المناسب لمهمة cron أو لخطوة build. يجب أن تسبق خيارات launcher، مثل --profile و--patch، الوسائط الخاصة بالتطبيق، لأن launcher يتوقف عن تحليل الوسائط عند تسليم التحكم. أما خيار مثل --port فيخص الملف التعريفي الذي جرى تشغيله، وليس launcher، ولذلك يؤثر موضعه. تُدار الإضافات عبر تمرير الوسائط إلى pnpm، كما في dsh plugin --profile web add <package>.
ما هو Claude Code، ولماذا هو برنامج طرفية؟
Claude Code هو وكيل CLI (واجهة سطر الأوامر) الخاص بـ Anthropic. لا تتضمن الأداة نفسها واجهة ويب. تعمل في الطرفية داخل الدليل الذي تريدها أن تعمل فيه، ولذلك تناسب جلسة الخادم جيداً. التثبيت عبارة عن أمر واحد على macOS وLinux وWSL:
curl -fsSL https://claude.ai/install.sh | bash
claude --versionيطبع التثبيت الناجح رقم الإصدار واسم المنتج، مثل 2.1.211 (Claude Code). إذا فشل ذلك، يطبع claude doctor معلومات تشخيصية للقراءة فقط عن التثبيت والإعدادات، من دون بدء جلسة. تتوفر أيضاً حزمة npm، وهي npm install -g @anthropic-ai/claude-code، وتتطلب Node.js 22 أو إصداراً أحدث اعتباراً من v2.1.198. تثبّت الحزمة الملف التنفيذي الأصلي نفسه، لذلك لا يستخدم claude ملف Node.js في وقت التشغيل. تنشر Anthropic أيضاً مستودعات apt وdnf وapk موقّعة لأنظمة Debian وUbuntu وFedora وRHEL وAlpine. وهذا خيار أفضل على الخادم الذي تديره باستخدام إدارة الإعدادات، لأن التحديثات تصل عندئذ عبر سير عمل الترقية المعتاد لديك.
يتطلب Claude Code حساب Pro أو Max أو Team أو Enterprise أو Console. لا تتيح خطة Claude.ai المجانية الوصول إليه. يؤثر الاختيار بين اشتراك Claude والفوترة عبر API في المبلغ الذي تدفعه بدرجة أكبر بكثير من أي إعداد داخل الأداة.
ما هو Omnigent، وما الذي ينسّقه meta-harness؟
أعلنت Databricks عن Omnigent في June 2026، وأصدرته بموجب ترخيص Apache 2.0. ويصف نفسه بأنه meta-harness. لا ينفّذ حلقة agent بنفسه، بل يشغّل الحلقات الموجودة مسبقاً: Claude وCodex وCursor وOpenCode وHermes وPi وOpenAI's agents SDK (مجموعة تطوير البرمجيات). تظهر عدة عناصر منها مرتين في قائمة harness: مرة بصيغة تتصل بـSDK الخاص بالمورّد، ومرة بصيغة native تغلّف برنامج الطرفية الفعلي الخاص بالمورّد.
الـagent هو ملف YAML، وYAML هو تنسيق إعدادات نصي عادي:
name: my_agent
prompt: You are a helpful data analyst.
executor:
harness: claude-sdk
tools:
word_count:
type: function
callable: mypackage.mymodule.word_count
docs:
type: mcp
url: https://example.com/mcp
researcher:
type: agent
prompt: Search for relevant information.يمثّل السطر executor.harness جوهر المشروع كله. غيّر claude-sdk إلى codex، وسيعمل prompt نفسه بالأدوات نفسها مع مورّد مختلف. يمكن أن تكون الأداة دالة Python، أو خادم MCP (بروتوكول سياق النموذج)، أو agent آخر. وهذه الحالة الأخيرة هي طريقة التعبير عن العمل متعدد الوكلاء: فالـsub-agent هو ببساطة أداة. إذا لم تكن قد حسمت بعد موضع skills وMCP servers وملفات rules، فمن المفيد قراءة الفرق بين agent skills وMCP وملفات rules أولاً، لأن Omnigent يرث أيّاً من هذه العناصر التي يدعمها harness الأساسي.
يوضّح المثال المرفق الفكرة عملياً. Polly هو coding orchestrator لا يكتب أي كود بنفسه. يخطط العمل، ويفوّض المهام إلى coding sub-agents بالتوازي داخل git worktrees، ثم يوجّه كل diff إلى reviewer يعمل على نموذج تابع لمورّد مختلف.
ثبّته باستخدام script المنشور:
curl -fsSL https://raw.githubusercontent.com/omnigent-ai/omnigent/main/scripts/install_oss.sh | shأو ثبّته يدوياً، ويتطلب ذلك Python 3.12 أو إصداراً أحدث:
uv tool install omnigent
omnigent setup
omnigent startيعمل pip install "omnigent" أيضاً، ويمكن اختيار الإضافات بالطريقة المعتادة باستخدام uv tool install "omnigent[databricks,modal]". يجمع omnigent setup بيانات الاعتماد والقيم الافتراضية. يبدأ omnigent start الخادم، ويسجّل الجهاز بوصفه host، ويعرض web UI على http://localhost:6767. أما omnigent server status وomnigent stop فهما الأمران الآخران اللذان ستستخدمهما يومياً. يفتح omnigent وحده جلسة تفاعلية من دون بدء الخادم.
قائمة التبعيات أطول مما يوحي به installer ذو السطر الواحد: Python 3.12 أو إصدار أحدث، وgit، وNode.js 22 LTS (دعم طويل الأمد) أو إصدار أحدث مع npm وpnpm، وtmux لتغليفات الطرفية native، وbubblewrap (bwrap) لبيئة sandbox في Linux. وهذا نتيجة مباشرة للتصميم. إذ يجب على Omnigent تثبيت CLIs الخاصة بالمورّدين والإشراف عليها بنفسه، ولذلك فهو برنامج Python تتمثل مهمته في تشغيل برامج Node.js.
من يوفّر النموذج، ومن يدفع تكلفته؟
هذا هو المحور ذو أكبر الآثار العملية، والإجابات الثلاث مختلفة فعلاً.
DeepSeek Harness يعمل وفق مبدأ إحضار مزوّد الخدمة الخاص بك. يتضمن دليل المزوّدين المثبّت Anthropic وOpenAI وBedrock وVertex وAzure وCodex. يتطلب إدخال مزوّد مخصّص معرّف مزوّد بأحرف صغيرة، واسماً للعرض، وعنوان URL أساسياً، وبروتوكول API، وبيانات اعتماد، ونموذجاً واحداً على الأقل. بهذه الطريقة، يمكنك توجيهه إلى بوابة الشركة أو خادم مستضاف ذاتياً. تُكتب المفاتيح في $DSH_HOME/.credentials.yaml، بينما يحتفظ $DSH_HOME/settings.yaml بمرجع إليها فقط. وهذا يعني أن ملف الإعدادات آمن للمشاركة، أما ملف بيانات الاعتماد فليس كذلك. ويمكن لإدخال البوابة استخدام متغير بيئة بدلاً من ذلك، مع سطر مثل apiKeyEnv: GATEWAY_API_KEY. ورغم اسم المشروع، لا شيء فيه يفرض عليك استخدام نماذج DeepSeek الخاصة.
يرتبط Claude Code بمزوّد واحد عن قصد. تسجّل الدخول باستخدام حساب مدفوع، أو تضبط ANTHROPIC_API_KEY، ثم يطلب منك Claude Code مرة واحدة الموافقة على هذا المفتاح بدلاً من فتح متصفح. هذا هو المسار الذي يعمل على خادم بلا واجهة رسومية. ويمكن للمؤسسات التي تشتري السعة من جهة أخرى بالفعل توجيه الطلبات عبر Amazon Bedrock أو Agent Platform من Google Cloud أو Microsoft Foundry.
يحتاج Omnigent إلى كل ما يحتاج إليه الـharness الأساسي، ويجمعه عبر omnigent setup. وهو يقبل مفاتيح API، واشتراكات CLI الحالية، والبوابات المتوافقة مع OpenAI أو Anthropic، ومساحات عمل Databricks. هذه هي التكلفة الفعلية لاستخدام meta-harness: سينتهي الأمر بآلة واحدة تحتفظ ببيانات اعتماد كل مزوّد. اقرأ كيفية إبقاء الأسرار خارج متناول وكيل AI قبل أن تقترب هذه الآلة من الإنترنت العام.
ما مدى نضج كل منها حتى August 2026؟
أصبح Claude Code متاحاً عموماً منذ 2025، وهو ضمن سلسلة 2.1.x حتى August 2026. يُحدّث نفسه تلقائياً في الخلفية، ويوفّر قناتي إصدار latest وstable، وينشر بيانات إصدارات موقّعة عبر GPG، كما يوثّق تثبيت minimumVersion للمؤسسات التي تحتاج إلى حد أدنى ثابت. هذه هي خصائص منتج يستخدمه الناس فعلياً في بيئات الإنتاج.
أصبح Omnigent متاحاً للعامة منذ June 2026، ولا يزال ضمن سلسلة 0.x، ويصفه ملف README بأنه إصدار alpha. توقّع استمرار تغيّر قائمة harness ومخطط YAML. يمكن استخدامه، لكنه لم يصبح مستقراً بعد.
يُعد DeepSeek Harness الأحدث بفارق كبير. نُشر في August 2026، قبل أيام من كتابة هذه المقارنة، ويعد ملف README الخاص به بإجراء تغييرات قد تكسر التوافق. يخبرك العدد الكبير جداً من النجوم بأن كثيراً من الأشخاص يتابعونه. لكنه لا يخبرك بشيء عن استقرار واجهة API الخاصة بالمكوّن الإضافي.
ما الترخيص الذي يحمله كل منها؟
يخضع DeepSeek Harness لترخيص MIT، مع الإفصاح عن تراخيص الجهات الخارجية في THIRD_PARTY_NOTICES.md. ويخضع Omnigent لترخيص Apache 2.0. أما Claude Code فليس مفتوح المصدر؛ بل هو منتج تجاري من Anthropic، ويتطلب تشغيله حساباً مدفوعاً أو وصولاً إلى API تتم فوترته. إذا كان شرطك هو أن تتمكن من قراءة كل سطر وتعديله، فسيُستبعد Claude Code قبل بدء أي مقارنة للميزات. أما إذا كان شرطك هو أن تواصل الأداة العمل الشهر المقبل من دون تدخل منك، فهذا الشرط يرجّح الخيار الآخر.
ما المتطلبات اللازمة لتشغيل كل أداة منها على VPS؟
Claude Code هي الأبسط بين الأدوات الثلاث. ثبّتها، وسجّل الدخول، وشغّلها داخل tmux حتى تستمر الجلسة عند انقطاع اتصال SSH (secure shell). توثّق Anthropic الحاجة إلى 4 GB من RAM (random access memory) أو أكثر، ومعالج x64 أو ARM64، على Ubuntu 20.04 أو أحدث، أو Debian 10 أو أحدث، أو Alpine 3.19 أو أحدث. في Alpine، تحتاج أيضاً إلى تثبيت bash وcurl وlibgcc وlibstdc++ وripgrep أولاً، لأن أمر التثبيت يفشل بخطأ not found من دونها. يشرح تشغيل Claude Code على VPS داخل tmux إدارة الجلسة بالتفصيل.
يحتاج DeepSeek Harness إلى Node.js ومتصفح موجّه إلى واجهة الويب الخاصة به. يطلب README استخدام Node.js من دون تحديد إصدار أدنى، لذلك يُعد Node 22 LTS خياراً آمناً، لأن هذا هو الإصدار الذي تستهدفه المنظومة المحيطة. لا تنشر المنفذ 3080. اترك الخادم يستمع على 127.0.0.1، وأعد توجيه المنفذ من حاسوبك المحمول:
ssh -N -L 3080:127.0.0.1:3080 you@your-vpsثم افتح http://127.0.0.1:3080 محلياً. يشرح دليل تثبيت DeepSeek Harness بالكامل على VPS تخطيط الملفات التعريفية وأوامر الإضافات.
يُعد Omnigent الأثقل، لأنه يثبّت أدوات CLI مملوكة لجهات أخرى ويشرف عليها. يحتاج إلى Python 3.12 وNode.js 22 وnpm وpnpm وtmux وbubblewrap على الخادم نفسه، ثم ينزّل أداة CLI الخاصة بكل مورّد تفعّله. أعد توجيه منفذه بالطريقة نفسها:
ssh -N -L 6767:127.0.0.1:6767 you@your-vpsبالنسبة إلى خادم يستخدمه أشخاص آخرون، فإن المسار المدعوم هو نشر Docker ضمن deploy/، الذي يفعّل حسابات المستخدمين المتعددين افتراضياً. يتوفر السلوك نفسه على خادم يبدأ يدوياً عند ضبط OMNIGENT_AUTH_ENABLED=1، كما يعمل تسجيل الدخول عبر OIDC (OpenID Connect) مع Google وGitHub وOkta وMicrosoft. يشرح دليل Omnigent لتشغيل harness متعدد الوكلاء موفّري sandbox، الذين تزداد أهميتهم بمجرد أن تكتب الوكلاء إلى القرص.
لماذا تكون واجهة الويب فارغة عند استخدام عنوان IP العام للخادم؟
تستمع واجهتا الويب إلى loopback افتراضياً، وقد يبدو الحل الواضح هو ربطهما بـ0.0.0.0 وفتح المنفذ. لكن ذلك يسبب مشكلتين منفصلتين. الأولى أمنية: لا تتضمن أي من الواجهتين مصادقة في وضعها المحلي الافتراضي، لذلك يصبح المنفذ المفتوح shell مفتوحاً على VPS. والثانية قاعدة في المتصفح تفاجئ كثيراً من المستخدمين. لا تكون crypto.randomUUID() معرّفة إلا في سياق آمن، أي HTTPS (بروتوكول نقل النص التشعبي الآمن)، أو localhost أو 127.0.0.1. عند تحميل واجهة المستخدم نفسها عبر عنوان غير آمن مثل http://203.0.113.10:3080، تعرض وحدة تحكم المتصفح الرسالة التالية:
TypeError: crypto.randomUUID is not a functionتُعرض الصفحة بعد ذلك جزئياً أو لا تُعرض مطلقاً، لأن إنشاء الجلسة يفشل قبل إمكانية عرض أي عنصر. لا يوجد عطل في الخادم، وستعرض السجلات طلباً عادياً. لا يثق المتصفح في المصدر، ولذلك لم تُعرَّف دالة تعتمد عليها الواجهة الأمامية. يحل نفق SSH المشكلة من دون شهادة، لأن 127.0.0.1 يُعدّ سياقاً آمناً. كما يحلها reverse proxy يحتفظ بشهادة TLS (أمان طبقة النقل) حقيقية، لكن سيتعين عليك عندئذٍ إضافة المصادقة بنفسك.
ما الخيار الأنسب لك؟
اختر Claude Code إذا كنت تريد وكيل برمجة يعمل اليوم، ومستعداً للدفع إلى Anthropic، وتعمل أصلاً من الطرفية. فهو المنتج التجاري المكتمل الوحيد بين الخيارات الثلاثة، وليس إصداراً تجريبياً.
اختر DeepSeek Harness إذا كان نموذج الإضافات هو العامل الأساسي: أي إذا كنت تريد استبدال محوّل النموذج، أو sandbox، أو حلقة الوكيل، وتقبل أن الواجهة التي تبرمج عليها ستتغير. يغطي فهرس موفّريه Anthropic وOpenAI، لذلك فإن اختياره رهان على بيئة التشغيل، وليس على نماذج DeepSeek.
اختر Omnigent إذا كنت تشغّل أصلاً أكثر من CLI واحد للوكلاء، وكانت مشكلتك الفعلية هي التنسيق: السياسات، وsandbox، والمراجعة باستخدام نموذج من موفّر آخر، وجلسة مشتركة يمكن للآخرين مراقبتها. يضيف طبقة إلى مكدسك، والطبقة التي لا تحتاج إليها قد تتسبب في تعطّل النظام. إذا كانت مشكلة التنسيق لديك أصغر من ذلك، فيمكن لجلسَتَي Claude Code على الجهاز نفسه تبادل الرسائل من دون orchestrator بينهما.
إذا كنت لا تزال تضع قائمة مختصرة، فإن وكيل البرمجة Mimo Code AI يندرج ضمن فئة وكلاء الطرفية نفسها التي ينتمي إليها Claude Code، كما أن تشغيل وكلاء البرمجة داخل VM مؤقتة يستحق القراءة أياً كان اختيارك، لأن أياً من هذه الخيارات الثلاثة لا يجعل rm -rf غير الآمن آمناً بمفرده. ولا يحدد أيٌّ منها حجم diff الذي يقترحه الوكيل، فذلك سؤال يتعلق بمستوى prompt؛ لذلك يجدر بك إضافة مهارة تدفع الوكيل نحو أصغر تغيير يحقق الغرض إلى أي harness تختاره.
FAQ
هل أحتاج إلى خطة Anthropic مدفوعة لاستخدام Claude Code؟
نعم. يتطلب Claude Code حساب Pro أو Max أو Team أو Enterprise أو Console، ولا تتيح خطة Claude.ai المجانية الوصول إليه. على VPS بلا واجهة رسومية، عيّن ANTHROPIC_API_KEY قبل التشغيل الأول. سيطلب منك Claude Code بعد ذلك الموافقة على هذا المفتاح مرة واحدة، بدلاً من محاولة فتح متصفح. ويمكن للمؤسسات التي تتوفر لديها سعة في مكان آخر توجيهه إلى Amazon Bedrock أو Google Cloud's Agent Platform أو Microsoft Foundry.
هل يستطيع DeepSeek Harness تشغيل نماذج Claude أو OpenAI؟
نعم. يغطي كتالوج موفّري الخدمة المثبّت Anthropic وOpenAI وBedrock وVertex وAzure وCodex. أضف مفتاحاً لكل موفّر ضمن Settings ثم Models. أضف أي موفّر غير موجود في الكتالوج كموفّر مخصص. ويتطلب ذلك معرّف موفّر بأحرف صغيرة، وعنوان URL أساسياً، وبروتوكول API، وبيانات اعتماد، ونموذجاً واحداً على الأقل. تُخزَّن المفاتيح في $DSH_HOME/.credentials.yaml، بينما يحتوي $DSH_HOME/settings.yaml على مرجع فقط. لذلك احتفظ بنسخة احتياطية من ملف بيانات الاعتماد بشكل منفصل، ولا تضعه في نظام التحكم بالإصدارات.
هل يستبدل Omnigent Claude Code؟
لا. يشغّل Omnigent Claude Code. وتتضمن قائمة الـharnesss لديه Claude وCodex وCursor وOpenCode وHermes وPi. ويختار agent أحدها عبر سطر harness: واحد في ملف YAML الخاص به. ما زلت تحتاج إلى تثبيت CLI الأساسي والمصادقة عليه بنفسك. يضيف Omnigent طبقة التنسيق والسياسات والعزل فوق ذلك. لذلك لا تستحق اعتماداته الإضافية إلا عند تشغيل أكثر من agent أو أكثر من مورّد.
لماذا تظهر واجهة DeepSeek Harness على الويب فارغة عند استخدام عنوان IP العام للخادم؟
لأن مصدر HTTP العادي ليس سياقاً آمناً، ولأن crypto.randomUUID() غير معرّف هناك، وتعرض وحدة تحكم المتصفح TypeError: crypto.randomUUID is not a function. يفشل إنشاء الجلسة. لذلك تُعرض الصفحة جزئياً أو لا تُعرض مطلقاً، مع بقاء سجلات الخادم طبيعية. مرّر المنفذ عبر SSH باستخدام ssh -N -L 3080:127.0.0.1:3080 you@your-vps، وافتح http://127.0.0.1:3080، لأن loopback يُعد سياقاً آمناً. ويمكنك أيضاً استخدام reverse proxy مع شهادة TLS حقيقية. عندها يجب أن تضيف المصادقة بنفسك.
ما مقدار RAM الذي يحتاج إليه VPS لتشغيل هذه الـharnesses؟
توثّق Anthropic الحاجة إلى 4 GB أو أكثر لتشغيل Claude Code. لم تنشر DeepSeek Harness ولا Omnigent رقماً محدداً. لذلك قِس الاستخدام بدلاً من التخمين. يعمل النموذج عن بُعد في الحالات الثلاث، لذا يقتصر عمل الـharness نفسه على الإشراف على العمليات والعمل على الملفات، لا على الاستدلال. العامل الذي يحدد حجم الخادم فعلياً هو العمل الذي ينفّذه agent عليه، مثل عملية build ومجموعة اختبارات. يحتاج Omnigent إلى أكبر قدر من الموارد، لأن Python وNode.js وtmux وكل CLI خاص بالمورّد الذي تفعّله تعمل على الجهاز نفسه.