الدرس 15: أشجار عمل Git — الوكلاء المتوازيون
الدرس 15: أشجار عمل Git — الوكلاء المتوازيون — دليل سهل الفهم مبني على الوثائق الرسمية
هذا جزء من سلسلة الدروس الرسمية لـ Hermes Agent. عرض جميع الدروس
تخيّل أن لديك مطبخًا واحدًا وطبّاخين اثنين. إذا طبخ كلاهما على نفس الطاولة، فسيصطدمان ببعضهما، وينثران الدقيق، ويُفسدان أطباق بعضهما البعض. تمنحك Git worktrees كل طبّاخ طاولته الخاصة—نفس المطبخ، لكن مساحات عمل منفصلة. هذا بالضبط ما تفعله هذه الميزة لوكلاء الذكاء الاصطناعي لديك.
لماذا نهتم؟ مشكلة النسخة الواحدة
يعامل Hermes Agent المجلد الذي تشغّله فيه كجذر المشروع. إذا شغّلت وكيلين في نفس المجلد، فسيتشاركان كل ملف. هذا يعني:
- قد يحذف الوكيل “أ” ملفًا يقوم الوكيل “ب” بتحريره.
- لا يمكنك معرفة أي التغييرات جاءت من أي تجربة.
- يصبح التراجع فوضويًا—تراجع أحد الوكلاء قد يمسح عمل الآخر.
تحل الـ Worktrees هذه المشكلة بمنح كل وكيل:
- فرعه الخاص (حتى لا تتصادم التغييرات)
- مجلد العمل الخاص به (حتى لا تتعارض الملفات)
- سجل نقاط تفتيش خاص به (حتى يؤثر
/rollbackعلى ذلك الوكيل فقط)
الخطوة 1: إنشاء Worktree (الأمر الأساسي)
من مستودعك الرئيسي (الذي يحتوي على .git/ بداخله)، شغّل:
git worktree add ../my-agent-folder -b my-feature-branch
لنفكّك هذا الأمر:
../my-agent-folder– المكان الذي سيعيش فيه المجلد الجديد (خارج مستودعك الرئيسي)-b my-feature-branch– ينشئ فرعًا جديدًا لهذا الوكيل
الآن لديك نسخة جديدة ومعزولة من مشروعك.
الخطوة 2: توجيه Hermes إلى الـ Worktree
يمكنك استخدام الـ worktree بطريقتين:
الخيار أ: CLI (الأبسط)
فقط انتقل إلى الـ worktree وشغّل Hermes هناك:
cd ../my-agent-folder
hermes chat
الخيار ب: بوابات المراسلة (مثل Slack أو Discord)
إذا كنت تستخدم بوابة، عدّل ~/.hermes/config.yaml وضبط terminal.cwd على مسار الـ worktree:
terminal:
cwd: /path/to/my-agent-folder
الآن كل رسالة يستقبلها ذلك الوكيل ستعمل داخل ذلك المجلد المعزول.
الخطوة 3: تشغيل عدة وكلاء بالتوازي
أنشئ أكبر عدد تريده من الـ worktrees:
git worktree add ../agent-experiment-1 -b exp-1
git worktree add ../agent-experiment-2 -b exp-2
ثم ابدأ جلسة Hermes في كل مجلد. لن يلمس أيٌّ منهما ملفات الآخر، ولكلٍّ فرعه الخاص للالتزام به.
الخطوة 4: التنظيف عند الانتهاء
عند انتهاء التجربة، أزل الـ worktree:
git worktree remove ../agent-experiment-1
git branch -d exp-1
الأمر الأول يحذف المجلد؛ والأمر الثاني يحذف الفرع. يبقى مستودعك الرئيسي نظيفًا.
نقاط أساسية للتذكّر
- الـ Worktrees رخيصة – لا تنسخ المستودع كاملًا، فقط الملفات التي تحتاجها.
- كل وكيل له سجل
/rollbackالخاص به – لا مزيد من كوارث التراجع العابرة بين الوكلاء. - استخدم الفروع بحكمة – سمِّها بوضوح (مثل
refactor-login،fix-bug-42) لتعرف ما فعله كل وكيل.
ملخص
تتيح لك Git worktrees تشغيل عدة وكلاء Hermes على نفس المشروع دون أن يتداخلوا مع بعضهم البعض. أنشئ worktree لكل وكيل، وجّه Hermes إليه، وانتهيت. الأمر أشبه بمنح كل طبّاخ لوح تقطيع خاصًا به—نفس المطبخ، صفر تصادمات.
التالي: في الدرس 16، سننشر Hermes باستخدام Docker—مساعد دائم التشغيل وقادر على إصلاح نفسه.
📖 التوثيق الرسمي
この記事は Hermes Agent のالتوثيق الرسميに基づいています:التوثيق الرسمي › user-guide/git-worktrees