منصات الوكلاء عادة تنمو بمرور الوقت لتصبح كتلة واحدة متشابكة: استدعاء الأدوات وإدارة السياق وتنسيق الوكلاء الفرعيين والصلاحيات وحالة الجلسة، كلها تعيش في نفس العملية وتعتمد على بعضها. لو تعطّل مكوّن واحد، أو أردت استبدال أداة وقت التشغيل، الحل المعتاد إعادة تشغيل العملية كاملة. DeepSeek Harness (يُختصر dsh، رخصة MIT، من DeepSeek AI) يقترح حلًا مختلفًا: لا يوجد جزء مميّز في النظام، وكل قدرة، بما فيها حلقة الوكيل نفسها، إضافة قابلة للتركيب والاستبدال.
Cordis: الأساس تحت الغطاء
المشروع مبني بالكامل فوق Cordis، إطار مستقل مفتوح المصدر بعمر أربع سنوات، مصمَّم حول فكرة «الآثار القابلة للعكس» (reversible effects). كل إضافة تُسجّل قدراتها في سياق مشترك، وحين تُزال الإضافة، كل تسجيل قامت به يُلغى تلقائيًا وبالترتيب العكسي. هذا يعني أن تركيب وإزالة الإضافات وقت التشغيل عملية آمنة ومضمونة الاتساق، لا حلًا مؤقتًا يترك بقايا خلفه.
كل قدرة إضافة، بلا استثناء
محول النموذج، وسجلّ الأدوات، وسجلّ الجلسة، وحلقة الوكيل نفسها، كلها إضافات تُركَّب جنبًا إلى جنب. لا يوجد كود أساسي مميَّز تُعدِّله لإضافة قدرة جديدة؛ التوسعة تعني تركيب إضافة جديدة بجانب الموجودة.
التركيب عبر Profiles وBundles
نسخة تشغيل واحدة من dsh تُبنى من تركيبة طبقات مرتّبة تُختار عند الإقلاع، تُسمى Profile. الملف الشخصي يحدد نقطة الدخول ومجموعة الإضافات الابتدائية، ويمكن أن يكدّس عدة Bundles (حزم إضافات جاهزة) فوق بعضها. هذا التصميم يتيح لنفس الكود أن يعمل كواجهة ويب محلية، أو تطبيق مستضاف، أو وكيل بلا واجهة (headless)، فقط بتبديل التركيبة لا الكود.
سجل جلسة كامل قابل للاستئناف
كل ما يراه النموذج يُسجَّل في سجل إضافة فقط (append-only): توجيهات النظام، التفكير الداخلي، استدعاءات الأدوات ونتائجها، جدولة الوكلاء الفرعيين، وكل حقن سياق. واجهة «Trajectory» تعرض هذا السجل مصنّفًا حسب المصدر، وعمليات الاستئناف والتفريع والبحث وإعادة التشغيل كلها تعمل على نفس تدفق الأحداث.
وضعان للتنفيذ
الوضع القياسي يمنح الوكيل مجموعة الأدوات كاملة. وضع الكود (Code mode) يستخدم كودًا يولّده النموذج نفسه لتنسيق عدة جولات من استدعاءات الأدوات، بدل استدعاء أداة واحدة في كل دورة.
التشغيل السريع
يعمل عبر npm بأمر واحد (`npx @deepseek-ai/dsh web`) يشغّل واجهة ويب على المنفذ 3080 محليًا، أو من الكود المصدري عبر pnpm. المشروع بلا واجهة سطر أوامر تفاعلية؛ الويب هو الواجهة الأساسية، وهي نفسها إضافة أخرى في نفس شجرة Cordis تتواصل مع الخلفية.
تحذير رسمي من المشروع نفسه
المستودع يصف نفسه صراحة بأنه «معاينة للمطورين» (developer preview) مع تنبيه مباشر: «ستحدث تغييرات كاسرة للتوافق». من يبني عليه إنتاجيًا الآن يجب أن يتوقع كسرًا في الواجهات البرمجية بين الإصدارات.
نقطة أمنية تستحق الانتباه
غياب النواة المميَّزة ميزة معمارية، لكنه يحمل ثمنًا أمنيًا: أي إضافة تُركَّب تدخل نفس سياق Cordis الذي يضم سجلّ الأدوات ومخزن بيانات الاعتماد. لا يوجد عزل صندوق رملي افتراضي بين إضافة وأخرى. تثبيت إضافة من مصدر غير موثوق يمنحها عمليًا نفس نطاق وصول الإضافات الرسمية، نفس النمط الذي رأيناه في مخاطر مشاريع MCP الأخرى: مركزية القدرات تعني أن إضافة واحدة مخترقة قد تصل لكل شيء آخر في نفس السياق.
سؤالان يحددان الملاءمة
السؤالان اللذان يحددان ملاءمته: هل يحتاج نظامك فعليًا تركيب وإزالة قدرات وقت التشغيل، وهل أنت مستعد تبني الكود حول نموذج حقن الاعتماديات (dependency injection) الخاص بـCordis مقابل هذه المرونة؟ لو الجواب نعم على الاثنين، يستحق التجربة. مع وسم «معاينة للمطورين» الصريح، الأنسب تقييمه في سير عمل معزول وغير حرج قبل أي اعتماد إنتاجي، وتثبيت إضافات من مصادر موثوقة فقط نظرًا لغياب العزل الافتراضي بينها.