SSD Nodes Learn 🎉 VPS من $5.50/شهر
الأدلة Matt Connorبقلم Matt Connor · آخر تحديث في 2026-08-21

ما هو إطار تشغيل الوكيل؟ الفرق بينه وبين النموذج

تعرّف إلى حلقة الوكيل وأدواته وأذوناته وحالة جلسته، ولماذا يختلف إطار التشغيل عن النموذج والإطار البرمجي، مع مثال DeepSeek Harness وترخيص MIT.

ما هو إطار تشغيل الوكيل

إطار تشغيل الوكيل هو البرنامج الذي يعمل حول نموذج لغوي ويحوّله إلى وكيل. يحتفظ هذا الإطار بالحلقة التي تواصل استدعاء النموذج، وتعريفات الأدوات التي يُسمح للنموذج باستدعائها، وقواعد الأذونات التي تحدد أيّاً من هذه الاستدعاءات يُنفَّذ فعلياً، وحالة الجلسة التي تستمر بين الأدوار، ودليل العمل الذي تُنفَّذ فيه المهام. ويمكن استبدال النموذج داخله.

احتفظ بالجملة الأخيرة تحديداً. يجيب النموذج بمفرده عن سؤال ثم ينساك. أما إطار التشغيل فيسأل النموذج عمّا يجب فعله تالياً، وينفّذ الأمر الذي طلبه النموذج، ويعيد النتيجة إليه، ثم يسأله مرة أخرى. هذا التكرار هو ما يقصده الناس عندما يقولون «وكيل». وإذا كانت المصطلحات المحيطة لا تزال غير واضحة، فإن الفرق بين وكيل الذكاء الاصطناعي وLLM والمساعد يوضّح هذه الكلمات قبل أن تختار أداة.

الـharness ليس هو الـmodel

يختلط الاثنان لأن المورّدين يطرحونهما تحت اسم تجاري واحد.

dsh وDeepSeek منتجان مختلفان. DeepSeek Harness، المنشور في github.com/deepseek-ai/deepseek-harness بتاريخ 13 August 2026 بموجب ترخيص MIT، هو برنامج Node تثبّته على جهاز. أما نماذج DeepSeek فهي أوزان تُقدَّم عبر API (واجهة برمجة التطبيقات). وجّه dsh إلى نموذج من مورّد آخر، وسيستمر في العمل، لأن الـharness يحتاج فقط إلى مكوّن يقبل الرسائل ويعيد استدعاءات الأدوات.

Claude Code وClaude هما الزوج نفسه. Claude Code هو harness: برنامج طرفية يتضمن حلقة تشغيل ونظام أذونات وأدوات للملفات وshell. أما Claude فهو عائلة النماذج التي يستدعيها افتراضياً. وينطبق التقسيم نفسه على Codex وGemini CLI.

إليك الاختبار الذي يحسم الأمر في كل مرة. تثبّت harness. ثم تستدعي model. إذا كان للشيء إصدار موجود على القرص وملف إعدادات في الدليل الرئيسي، فهو harness. وإذا كان سلسلة نصية داخل ملف الإعدادات هذا، مثل deepseek-chat، فهو model.

ما الذي تنفذه الحلقة فعلياً

تبدو دورة واحدة من حلقة الـharness على النحو التالي. اقرأها ببطء، لأن معظم الفروق بين أطر التشغيل تكمن في هذه الخطوات الخمس.

  1. يرسل الـharness المحادثة حتى هذه اللحظة، بالإضافة إلى قائمة بتعريفات الأدوات، إلى النموذج.
  2. يرد النموذج بنص، أو يطلب استدعاء إحدى تلك الأدوات.
  3. يتحقق الـharness من هذا الطلب وفق قواعد الأذونات لديه، ثم ينفّذه أو يتوقف ليطلب منك التأكيد.
  4. ينفّذ الـharness الأداة، ويلتقط المخرجات ورمز الخروج، ويقتطع المخرجات إذا كانت طويلة جداً.
  5. يضيف الـharness هذه النتيجة إلى المحادثة ويعود إلى الخطوة 1.

تختلف أطر التشغيل أكثر ما تختلف في الخطوة 3 أثناء الاستخدام اليومي. فالـharness الذي يطلب التأكيد قبل كل أمر آمن ومرهق. أما الـharness الذي لا يطلب التأكيد أبداً فسوف ينفّذ في النهاية أمراً مدمّراً على مسار أخطأ النموذج في تحديده. لذلك تتضمن أطر التشغيل الجادة حالياً إعداداً وسطياً: قائمة سماح بالأوامر التي تُنفّذ دون طلب تأكيد، ومطالبة تأكيد لكل ما عداها.

يكمن باقي الاختلاف في الخطوة 1. تكبر المحادثة مع كل دورة، بينما تكون نافذة السياق لدى النموذج محدودة. لذلك يجب أن يقرر الـharness ما الذي يحذفه، وما الذي يلخّصه، وما الذي يكتبه في ملف ثم يقرأه لاحقاً. ويُعد هذا القرار السبب الأهم في اختلاف جودة العمل بين إطارَي تشغيل يقودان النموذج نفسه.

تربط معظم أطر التشغيل حالياً الأدوات الخارجية عبر MCP (بروتوكول سياق النموذج)، وهو أسلوب قياسي لإتاحة أداة لأي harness يدعم هذا البروتوكول، بحيث يصل تكامل واحد إلى عدة أطر تشغيل. يشرح تشغيل خوادم MCP على VPS هذا الجانب.

Agent harness مقابل agent framework

يظهر هذا السؤال مع كل harness جديد، وتختلف الإجابات لأن المورّدين أنفسهم يختلفون جزئياً. إليك الصيغة التي تصمد أمام التدقيق.

الـframework مكتبة تستوردها. تكتب الحلقة بنفسك، وتقرر متى تستدعي النموذج، وتعالج نتائج الأدوات بنفسك. يُعد LangChain المثال المعروف: تحصل على لبنات بناء، ثم تركّب الـagent في التعليمات البرمجية.

الـharness برنامج تشغّله. تكون الحلقة مكتوبة مسبقاً، وتكون الأدوات موجودة مسبقاً، ويكون لنموذج الصلاحيات إعداد افتراضي مسبق. تحصل على agent يعمل منذ الأمر الأول، ثم تضبطه بعد ذلك.

عادةً ما يحسم اختبار التثبيت الفرق. إذا ثبّتَّه ثم كتبت تعليمات برمجية، فهو framework. وإذا ثبّتَّه ثم تحدثت إليه، فهو harness.

الحد الفاصل موضع خلاف حقيقي، وأوضح دليل على ذلك وثائق LangChain نفسها. اعتباراً من August 2026، تصف Deep Agents بأنّها framework «محددة الرأي ومتكاملة بكل ما يلزم» مبنية على LangGraph، بينما يصف مستودع langchain-ai/deepagents نفسه بأنّه «harness للـagent متكامل بكل ما يلزم». كلا الوصفين منصف. Deep Agents هي Python SDK (حزمة تطوير برمجيات) تستوردها، ولذلك يصنفها اختبار التثبيت كمكتبة، كما أنّها تصدر بسلوك افتراضي كافٍ لجعل الناس يستخدمونها مثل harness. أصدرت Microsoft harness وhosted agents لإتاحتهما العامة في August 2026، ما يوضح أن الكلمة أصبحت فئة من المنتجات، لا مجرد مصطلح تقني.

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

كيف يختلف الـharness عن نافذة الدردشة

تعرض نافذة الدردشة والـharness مخرجات النموذج. الفرق هو الجهاز الذي تُنفَّذ عليه المهمة. في نافذة الدردشة، يُنفَّذ أي كود يشغّله النموذج داخل sandbox الخاص بالمورّد، على الملفات التي حمّلتها، ويختفي عند انتهاء الجلسة. أما الـharness فيشغّل الأدوات على الجهاز الذي بدأت تشغيله عليه، وبحساب المستخدم الذي بدأ تشغيله، ويتعامل مع ملفاتك الفعلية باستخدام بيانات الاعتماد الفعلية الموجودة في بيئته.

هذا هو كل ما يوفّره وكل ما ينطوي عليه من مخاطر في جملتين. يستطيع الوكيل أخيراً تنفيذ المهمة. لكنه يستطيع أيضاً حذف العمل.

الأطر التي يشغّلها المستخدمون فعلياً

هذه القائمة مؤرخة في 19 August 2026 عن قصد. يتغير هذا المجال أسبوعياً، وأي قائمة تلخيصية تصبح قديمة بسرعة.

  • Claude Code وCodex إطاران من مورّديهما. يعتمدان على الطرفية أولاً، ويرتبطان افتراضياً بنماذج المورّد نفسه، مع أكثر آليات إدارة الأذونات اكتمالاً. يشرح مقارنة Claude Code وCursor وCodex وCopilot هذه الأدوات بالتفصيل.
  • DeepSeek Harness (dsh) مرخّص بموجب MIT، ويستند إلى فكرة واحدة: كل شيء إضافة. لذلك يمكن استبدال النماذج والأدوات والجلسات وبيئات العزل وواجهة المستخدم كوحدات مستقلة. بلغ عدد نجومه على GitHub نحو 166,800 في 19 August 2026، بعد ستة أيام من نشره.
  • Hermes، من Nous Research، وكيل مستقل عام وليس أداة للبرمجة. أُصدر بموجب MIT في February 2026، ويحفظ ذاكرته ومهاراته في قاعدة بيانات SQLite محلية على جهازك. يشرح استضافة Hermes ذاتياً على VPS طريقة تشغيله.
  • Omnigent إطار فوقي يشغّل أطرًا أخرى، بما فيها Claude Code وCodex، من خلال API واحد مع جلسات مشتركة، وحدود للإنفاق، وبيئة عزل على مستوى نظام التشغيل. يوضح Omnigent كإطار متعدد الوكلاء فوائد ذلك.
  • OneCLI إطار معزول موجّه إلى الفرق، ويعتمد على بوابة تحقن بيانات الاعتماد الحقيقية في الطلبات الصادرة، بحيث لا يرى الوكيل نفسه إلا مفاتيح بديلة.

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

npx @deepseek-ai/dsh web

يشغّل ذلك واجهة الويب على http://127.0.0.1:3080. اقرأ README قبل الاعتماد عليه، لأن dsh يصف نفسه بأنه إصدار معاينة للمطورين، ويذكر بوضوح أنّ تغييرات قد تكسر التوافق ستطرأ. يشرح تشغيل DeepSeek Harness على VPS تثبيته على الخادم، بينما يوضح سبب بدء ذلك العنوان بـ127.0.0.1 سبب استخدام عنوان loopback افتراضياً.

تأتي Routers فوق طبقة harness

يعمل model router كـlocal proxy بين harness وواجهة provider API. ويُعد Claude Code Router المثال الشائع على ذلك: إذ يرتبط افتراضياً بالعنوان 127.0.0.1:3456، ويقبل الطلبات التي كان Claude Code سيرسلها إلى المورّد الخاص به، ثم يمررها إلى أي provider أعددته. ولا يعرف harness أن شيئاً قد تغيّر.

توجد Routers لأن model قابل للاستبدال، ولذلك فهي تثبت الفكرة الرئيسية في هذا المنشور. لكنها تركز المخاطر أيضاً، لأن proxy يرى كل prompt ويحتفظ بكل provider key. تعامل معها باعتبارها بنية تحتية، لا وسيلة ملائمة فحسب. تمثل المكان الذي يحتفظ فيه harness بمفاتيح API وإعدادات model المشكلة نفسها على طبقة أدنى.

ما الذي يتغير عند تشغيل الـharness على VPS

تتغير أربعة أمور عندما تنقل الـharness من حاسوبك المحمول إلى خادم تستأجره.

يستمر في العمل عند إغلاق الغطاء. تستمر المهمة الطويلة أثناء تنقلك وبعد نفاد بطارية جهازك. ابدأ تشغيلها داخل tmux وافصل الجلسة عنها:

tmux new -s agent
# start the harness, then press Ctrl-b and then d to detach
tmux attach -t agent

بالنسبة إلى أي مهمة يجب أن تعود بعد إعادة التشغيل، تكون خدمة المستخدم أفضل من جلسة طرفية:

loginctl enable-linger $USER
systemctl --user status my-agent.service

loginctl enable-linger هي النقطة التي يغفل عنها كثيرون. من دونها، يوقف systemd خدمات المستخدم فور إغلاق آخر جلسة SSH (secure shell)، لذلك يتوقف الـagent عند تسجيل الخروج من دون ظهور أي خطأ. يحتوي تشغيل dsh دون واجهة رسومية باستخدام systemd على ملف الوحدة. بعد تشغيل جلسة واحدة على ذلك الخادم، لا تكلفك الجلسة الثانية شيئاً إضافياً، ويمكن لـجلستي Claude Code على الخادم نفسه تبادل الرسائل، لذلك يمكن للجلسة التي بدأت تشغيلها هذا الصباح تسليم مهمة إلى الجلسة الأخرى من دون أن تنقلها يدوياً.

يحتفظ بمفاتيحك. يوجد مفتاح المزوّد الآن في ملف إعداد على ذلك الخادم. تحقّق من الأشخاص الذين يمكنهم قراءته:

ls -l ~/.config

يمكن لأي عملية تعمل باسم مستخدمك قراءة ذلك الملف، ويشمل ذلك الـagent وأي شيء يختار الـagent تشغيله.

يمكنه الوصول إلى أجهزتك الأخرى. يوفّر VPS الموجود على الشبكة الخاصة نفسها التي توجد عليها أجهزتك الأخرى مساراً إلى تلك الأجهزة أمام الـagent. وهذا هو الهدف تحديداً، لكنه أيضاً يحدد نطاق الضرر المحتمل.

يمكن الوصول إليه من أي مكان تكون فيه. تعرض معظم أدوات الـharness واجهة ويب، وتربط معظمها بالـloopback لسبب وجيه. تحقّق من إعدادك:

ss -tlnp | grep 3080

تعني 127.0.0.1:3080 أن الخادم نفسه فقط يمكنه الاتصال. وتعني 0.0.0.0:3080 أن أي شخص يعثر على العنوان يمكنه الاتصال. يمكنك الوصول إلى واجهة الـloopback عبر نفق SSH بدلاً من تغيير عنوان الربط:

ssh -N -L 3080:127.0.0.1:3080 you@your-server

ثم افتح http://127.0.0.1:3080 في المتصفح على حاسوبك المحمول. تمر حركة الشبكة داخل جلسة SSH، لذلك لا يُعرَّض أي شيء جديد للإنترنت.

كل واحدة من هذه الخصائص تمثل أيضاً سبباً أمنياً

أعد قراءة الخصائص الأربع من منظور المهاجم.

يعمل دون إشراف، لذلك لا أحد يراقب اللحظة التي يسيء فيها النموذج قراءة مسار. ويحتفظ بمفاتيحك، لذلك يكفي أن يكون ملف إعداد واحد قابلاً للقراءة للوصول إلى حسابك الكامل لدى مزود الخدمة. ويمكنه الوصول إلى أجهزتك الأخرى، لذلك يصبح حقن التعليمات، أي التعليمات المخفية في صفحة ويب أو ملف يقرأه الوكيل، مساراً إلى مضيف قاعدة بياناتك. ويمكن الوصول إليه من أي مكان، لذلك تكون واجهة ويب مرتبطة بـ 0.0.0.0 من دون كلمة مرور بمثابة shell على الإنترنت العام.

الحل في كل حالة بسيط، وهو الحل نفسه في كل مرة. امنح الوكيل حساب مستخدم خاصاً به وغير متمتع بالامتيازات بدلاً من استخدام حسابك:

sudo adduser --disabled-password --gecos "" agent

أبقِ واجهة الويب على loopback، ووصل إليها عبر SSH. امنح الوكيل أضيق بيانات اعتماد تتيح له إكمال المهمة، وهو ما يتناوله إبقاء الأسرار خارج وكلاء الذكاء الاصطناعي بالتفصيل. أما أي شيء يعمل أثناء غيابك عن المراقبة، فجهاز مؤقت أفضل من جهاز مُعد بعناية: يتبع كل من تشغيل وكلاء البرمجة داخل VM مؤقت وتشغيل Claude Code بأمان على VPS هذا النهج.

هل تحتاج إلى إطار تشغيل للوكيل؟

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

لا يزال معظم هذا المجال حديثاً. يذكر dsh في ملف README الخاص به أنه إصدار تجريبي للمطورين حتى August 2026، بينما تتطور الأدوات الأخرى بسرعة تكفي لجعل ملف إعداد تكتبه اليوم يحتاج إلى تعديل في الشهر المقبل. لذلك احرص على أن يكون إعدادك صغيراً وقابلاً لإعادة الإنتاج، وسجّل التغييرات التي أجريتها. يفيد هذا الانضباط أيضاً داخل الحلقة، حيث إن مهارة تدفع الوكيل إلى إجراء أصغر تغيير ينجح تترك لك diff يمكنك قراءته فعلياً في نهاية تشغيل غير مراقب. ابدأ بإطار تشغيل واحد على خادم واحد، وامنحه مهمة واحدة ومفتاحاً محدود الصلاحيات، ولا توسّع صلاحيات وصوله إلا بعد أن تكون تلك المهمة الأولى مملة لمدة أسبوع. ويُعد الوكلاء المستضافون ذاتياً الذين يستحقون التشغيل اليوم نقطة مناسبة لاختيار الوكيل الأول.

FAQ

ما المقصود بـ agent harness بطريقة بسيطة؟

هو البرنامج المحيط بالنموذج. يُنتج النموذج نصاً وطلبات لاستخدام الأدوات. يشغّل الـharness الحلقة التي تواصل إرسال الطلبات، وينفّذ الأدوات التي يطلبها النموذج، ويفرض القواعد التي تحدد الأدوات التي يمكن تشغيلها دون إذن، ويحافظ على حالة الجلسة والملفات بين التفاعلات. إذا بدّلت النموذج، يظل الـharness يعمل. وهذه أوضح علامة على أنّهما مكوّنان منفصلان.

هل Claude Code نموذج أم harness؟

Claude Code هو harness. وهو برنامج طرفية يتضمن حلقة ونظام صلاحيات وأدوات مضمّنة للملفات وshell. أما Claude فهو عائلة النماذج التي يستدعيها افتراضياً. وينطبق الفصل نفسه على DeepSeek Harness (dsh)، وهو برنامج Node تثبّته، وعلى نماذج DeepSeek التي تُقدَّم عبر API. تثبّت الـharness على جهاز. وتستدعي النموذج عبر الشبكة.

ما الفرق بين agent harness وagent framework؟

الـframework مكتبة تستوردها وتكتب التعليمات البرمجية التي تتعامل معها، ولذلك تكون أنت مسؤولاً عن الحلقة وإعادة المحاولات ومعالجة السياق. أما الـharness فهو برنامج تشغّله، ولذلك تأتي هذه الوظائف كلها معه بإعدادات افتراضية تضبطها بدلاً من كتابتها. لكن الحد الفاصل غير واضح عملياً: إذ إن Deep Agents من LangChain هو SDK قابلاً للاستيراد، ويصفه مستودعه الخاص بأنّه agent harness متكامل، اعتباراً من August 2026. اسأل نفسك ما إذا كنت ستكتب الحلقة بنفسك. تحدد الإجابة المصطلح الأنسب لحالتك.

هل أحتاج إلى VPS لتشغيل agent harness؟

لا. تعمل كل الـharnesses المذكورة هنا على حاسوب محمول. يغيّر الخادم أربعة أمور: يواصل الـagent العمل عند إغلاق الغطاء، ويحفظ مفاتيحك على جهاز يعمل دائماً، ويمكنه الوصول إلى خوادمك الأخرى، ويمكنك العودة إلى الجلسة نفسها من أي جهاز. وكل واحد من هذه الأمور يمثل أيضاً اعتباراً أمنياً، لذلك امنح الـagent حساب مستخدم خاصاً به، وأبقِ أي واجهة ويب مرتبطة بـ 127.0.0.1.

هل يمكنني استخدام نموذج مختلف داخل الـharness نفسه؟

نعم، في العادة، وهذه هي الخاصية المحددة للـharness. تقبل معظم هذه البرامج اسم النموذج وbase URL في إعداداتها، ولذلك يكون توجيه أحدها إلى موفّر آخر تعديلاً لا إعادة كتابة. عندما يرفض الـharness ذلك، يمكن لموجّه محلي مثل Claude Code Router أن يعمل بين الـharness والموفّر، ويترجم الطلبات، ويرتبط افتراضياً بـ 127.0.0.1:3456. تعامل مع هذا الـproxy بحذر، لأنه يرى كل prompt ويحتفظ بكل key.