herder: هل هذا هو مضاعف الوكلاء الأمثل؟

BBetter Stack
Computing/SoftwareInternet Technology

Transcript

00:00:00هيردر (Herder) هو معدد وكلاء يعمل داخل الطرفية التي تستخدمها بالفعل،
00:00:05بحيث يمكنك تشغيل مجموعة من وكلاء البرمجة جنباً إلى جنب في نوافذ أو علامات تبويب مختلفة،
00:00:10ومعرفة أيهم يعمل وأيهم عالق أو مكتمل، مع إشعارات النظام في ملف ثنائي واحد مكتوب بلغة راست (Rust)،
00:00:15مما يعني عدم الحاجة إلى إلكترون (Electron) أو تطبيق منفصل. حتى أنه يمتلك طريقة ذكية للعمل عبر SSH،
00:00:20ولكن مع تزايد شعبية أدوات مثل cmux، لماذا قد تهتم باستخدام هيردر؟ اشترك في القناة ولنكتشف ذلك.
00:00:28بنى هيردر مطور يدعى أوجل كانسيليكس (Ogle Cancelix)، وأفترض أنه حذف حرف “e” من كلمة
00:00:34هيردر (Herder) لأنه من محبي أوائل العقد الأول من القرن الحادي والعشرين. لا أعرف، لكنني أفترض أن هيردر أداة
00:00:39يمكنك استخدامها لرعاية (Herd) وكلاء متعددين مثل راعي الأغنام، وهي مشكلة تواجه، حسناً، لنقل معظم
00:00:45المطورين الذين يستخدمون الذكاء الاصطناعي في البرمجة، لأنه من الصعب متابعة
00:00:49ما يفعله كل وكيل. استلهم هيردر الكثير من tmux، وهو معدد طرفية
00:00:54يتميز بعلامات تبويب، نوافذ مقسمة، وجلسات مستمرة حتى بعد قطع الاتصال. لكن tmux
00:01:00بُني قبل عقود طويلة من وجود وكلاء الذكاء الاصطناعي، لذا إذا انتهى بك الأمر بتشغيل وكيل داخل إحدى
00:01:06نوافذه، فهو لا يعرف بوجوده أو بحالته. لهذا السبب توجد أدوات مثل warp أو cmux
00:01:12التي تخرجك من طرفيتك الخاصة إلى طرفياتهم، مما يضطرك لتعلم سير عمل شخص آخر،
00:01:18وهو سبب بناء أوجل كانسيليكس لهيردر ليفعل الأمرين معاً: استمرارية tmux مع وعي مدمج بالوكلاء.
00:01:24وبما أن هيردر مجرد ملف ثنائي بلغة راست بُني باستخدام راتاتوي (Ratatouille)، فإن الأمر كله مجرد
00:01:29عرض نص في طرفيتك، لذا يمكن تشغيله في أي مكان يمكن لطرفيتك تشغيله، بما في ذلك عبر SSH.
00:01:35هناك أيضاً واجهة برمجة تطبيقات (Socket API) مما يعني أن الوكلاء يمكنهم قيادة هيردر بأنفسهم، وهو أمر مثير للإعجاب حقاً.
00:01:40في الواقع، لنقم بعرض سريع. بعد تثبيت هيردر باستخدام brew أو curl أو حتى
00:01:46nix flake (أنا سعيد جداً لأنهم أضافوا هذا الخيار)، يمكنك ببساطة تشغيل أمر هيردر الذي سيعطيك
00:01:50هذا العرض الذي يظهر الطرفية وبعض مساحات العمل وبعض الوكلاء. لقد قمت بالتكبير قليلاً لذا هناك
00:01:56أشياء لن تتمكن من رؤيتها مثل النطاق الكامل للأوامر، لكنني سأبذل قصارى جهدي لعرض هيردر.
00:02:00هنا يمكنك أن ترى أنه لا توجد مساحات عمل، وبشكل افتراضي البادئة
00:02:05هي Ctrl + b، وهو مشابه لـ tmux، لكنني سأريك كيف تغير ذلك لاحقاً. الآن البادئة
00:02:10قد تم تفعيلها بالفعل، وهو ما يمكنني رؤيته في التنقل أدناه. لذا كل ما علي فعله هو الضغط على
00:02:14Shift + n لإنشاء مساحة عمل جديدة. بالطبع يمكنك التنقل بالكامل باستخدام لوحة المفاتيح،
00:02:19لذا يمكنني الضغط على البادئة وعلامة الاستفهام لرؤية جميع اختصارات لوحة المفاتيح، لكن يمكنك أيضاً
00:02:23استخدام الفأرة. يمكنني إنشاء علامة تبويب جديدة باسم “two”، ويمكنني النقر بزر الفأرة الأيمن لإغلاق علامة التبويب، وإعادة تسمية
00:02:28مساحة العمل الخاصة بي إلى “test”، وإنشاء مساحة عمل جديدة، والوصول إلى هذه الإعدادات في القائمة، وهكذا. يمكنني حتى
00:02:34إنشاء تقسيمات أفقية وعمودية بالإضافة إلى إعادة تسمية النافذة المحددة والتنقل بين
00:02:38النوافذ باستخدام الفأرة. لكن نقطة البيع الحقيقية لهيردر هي كيفية تفاعله مع الوكلاء.
00:02:43في الوقت الحالي يستخدم Bash، لكنني أحب استخدام Fish، لذا سأغير هاتين الطرفيتين،
00:02:46وبعد ذلك سأفتح “Claude Code” في الجزء العلوي و”Codex” في الجزء السفلي. بالفعل يمكننا رؤية أن
00:02:51هيردر التقط تلقائياً الوكلاء وأعطاهم حالات؛ لذا كلود (Claude) معلق
00:02:55وكودكس (Codex) في وضع الخمول. لنخاطبهما بمنحهما حق الوصول إلى هذه المجلدات، وبالطبع يمكنني
00:03:00إعطاؤهما أوامر مثل “ما هو النموذج الذي أستخدمه؟” ويمكننا أن نرى أن هيردر يحدث نفسه فوراً
00:03:05ليخبرنا أن كلود يعمل، وهو ما يعمل أيضاً مع واجهة كودكس البرمجية. لقد لاحظت أيضاً أنني في
00:03:09مساحة العمل الخطأ، لذا لنحذف هذه ونعيد تسمية هذه إلى “test”. لكن مع هيردر يمكن للوكلاء أيضاً
00:03:15إنشاء مساحات عمل وعلامات تبويب وتقسيمات أيضاً. لنرَ كيف يعمل ذلك. لذا سأخرج من “Herder”
00:03:20بالضغط على البادئة ثم “q”، ومن ثم يمكنك رؤية كل الخيارات التي توفرها واجهة هيردر البرمجية هنا.
00:03:24إذن ما سأفعله هو العودة إلى هيردر، وهذه إحدى نقاط البيع حيث أنه يعود إلى
00:03:29نفس مساحة العمل ونفس الوكلاء الذين تركتهم مفتوحين مع نفس الجلسات. لكنني سأنشئ
00:03:34مساحة عمل جديدة، سأدخل إلى مجلد، ثم سأفتح “Claude Code”، والآن
00:03:38سأعطي أمراً لاستخدام واجهة هيردر البرمجية لإنشاء نافذتين بداخلها “Claude Code”. سأقوم بـ
00:03:44تشغيل واحدة بهذا الأمر لتلخيص أكبر ملف في المشروع، وأخرى بهذا الأمر
00:03:49للبحث في قاعدة الكود عن أي مفتاح API أو أسرار مشفرة بداخل الكود. وهنا قام بتحميل نافذة جديدة بداخلها
00:03:54“Claude Code”. في الواقع سأقوم بالتصغير حتى نتمكن من رؤية هذا بشكل أفضل. والآن هو يقوم بتشغيل
00:03:58الأمر الآخر في قاعدة الكود، لذا يمكننا التمرير للأعلى لنرى أن هذه قد انتهت. يمكننا أيضاً رؤية
00:04:03أنه يعطيها عناوين مناسبة مثل “كلود - أسرار” و”ديسكورد”، وهنا لم يجد أي مفاتيح API
00:04:09مشفرة بداخل الكود. نعم، من هنا يمكننا تلخيص مخرجات كلتا النافذتين ثم جعل “كلود” يغلقهما. لذا الآن
00:04:14لقد حصل على المعلومات من النافذة الأولى وأغلقها، وهو يفعل الشيء نفسه مع النافذة الثانية
00:04:18التي أغلقها أيضاً. وفي الأسفل يقدم لي ملخصاً لطيفاً. الآن لأن هيردر
00:04:23مجرد ملف ثنائي يمكنك تثبيته في طرفيتك، يمكنني الدخول عبر SSH إلى خادم لينكس وتثبيت هيردر
00:04:28بنفس الطريقة التي ثبت بها على جهاز الماك. يمكنك رؤية أنني قمت بذلك في وقت سابق وقد استعاد جلستي السابقة،
00:04:32لذا لدي “Claude Code” مفتوح في نافذة واحدة، وأستخدم Vim لاستعراض بعض الكود في نافذة أخرى.
00:04:36لكن المشكلة هنا هي أنها لا تنقل إعدادات تكوين هيردر التي لدي على
00:04:41جهاز الماك الخاص بي. لأكون صادقاً، ليس لدي الكثير من الإعدادات، كل ما فعلته هو تغيير المفاتيح من
00:04:45Ctrl + b إلى Ctrl + space، وقمت بتغيير النسق إلى “terminal”. ولكن لو كان لدي ملف تكوين
00:04:50معدل للغاية مع اختصارات لوحة مفاتيح محددة، فقد يكون هذا مزعجاً جداً. لذا إحدى طرق
00:04:55التغلب على هذا هي استخدام هيردر مع العلم “remote” وSSH مباشرة إلى خادمك، وسأشرح
00:05:01بالضبط ما يفعله قبل أن أضغط على Enter. يعمل هيردر عن طريق تشغيل خادم وعميل خفيف
00:05:06يتواصلان باستخدام مقبس Unix (Unix socket). لذا يرسل العميل ضغطات المفاتيح إلى الخادم، ويدير الخادم
00:05:11علامات التبويب والنوافذ والاستمرارية وأشياء أخرى. الآن في حالة الـ SSH، عند استخدام “remote”، يعمل الخادم على
00:05:18الجهاز البعيد ويعمل العميل في الواقع على جهازك المحلي. لذا فهو يرسل ضغطات المفاتيح عبر مقبس Unix
00:05:24إلى الخادم، ويمكن للخادم أن يعرض للعملاء الملفات الموجودة على الجهاز نفسه
00:05:30ولكن العميل نفسه يمكنه استخدام جميع إعدادات التكوين الموجودة على الجهاز المحلي الذي
00:05:35هو متصل به. لذا لنلقِ نظرة على ذلك أثناء العمل. بالعودة إلى حيث توقفنا، الآن إذا ضغطت على Enter
00:05:40سيتصل مباشرة بجهاز SSH الخاص بي، والذي يمكننا أن نرى أنه يحتوي على “Claude Code” وملف الكود
00:05:45الذي نستعرضه باستخدام Vim. لكن إذا ضغطت Ctrl + b، فلا يبدو أنه يفعل أي شيء لأنه يستخدم
00:05:49التكوين الموجود على جهاز الماك الخاص بي، والذي يعمل مع Ctrl + space لرؤية البادئة. الآن بينما نحن هنا، لنلقِ
00:05:54نظرة على ما يمكننا القيام به أيضاً في القائمة. يمكننا عرض اختصارات المفاتيح التي عرضتها عليك سابقاً، ولكن
00:05:59يمكننا أيضاً تغيير النسق، ويقدم هيردر العديد من النسق للاختيار من بينها، من “nord” إلى “govbox” وحتى
00:06:04“catppuccin”، وهناك أيضاً خيار لتفعيل تنبيهات الصوت وقائمة التنبيهات (toast menu) التي يمكنك تغييرها
00:06:10عبر الطرفية أو عبر النظام. الآن كالمعتاد، هناك العديد من الميزات الأخرى لهيردر التي
00:06:15لم أحصل على فرصة لاستعراضها، مثل تكاملات work tree، وتكاملات الـ harness الرسمية، بعض
00:06:19التي رأيتها في العرض التوضيحي والتي تمنح الـ harness الخاص بك الوصول إلى مهارات هيردر الرسمية وتسمح لك باستئناف
00:06:24نفس الجلسات التي كنت تستخدمها قبل إغلاق هيردر. بصراحة، حقيقة أن هذا يعمل في طرفيتك الحالية
00:06:29بالنسبة لي هي نقطة البيع الرئيسية، لأنني بقدر ما أحب استخدام cmux، فأنا أحب استخدام “Westerm” أكثر بكثير،
00:06:35لقد قمت بتهيئته بالطريقة التي أحب استخدامها بالضبط، وحقيقة أنه إذا أردت إدارة
00:06:39وكلائي، كل ما علي فعله هو فتح علامة تبويب طرفية جديدة بداخل “Westerm” وتشغيل هيردر. نعم، أنت
00:06:45تفتقد متصفح الويب الموجود في cmux، لكن لأكون صادقاً، لم أستخدمه كثيراً على أي حال. وبالنسبة لأولئك
00:06:50منكم الذين يشاهدون الآن ويستخدمون ويندوز، لدي بعض الأخبار السيئة حقاً لكم، بسبب كل موضوع
00:06:54مقبس Unix وحقيقة أن هيردر يستخدم PTY الخاص بالطرفية، لا يوجد حالياً دعم جيد للويندوز
00:06:59في وقت التسجيل. ولكن إذا كنت تستخدم ويندوز، أعتقد أن الوقت قد حان لاتخاذ القرار الصعب و
00:07:04استخدام نظام لينكس بنظام التشغيل المزدوج. نعم، WSL موجود، لكنه ليس تماماً نفس الشيء، أليس كذلك؟

Key Takeaway

يوفر هيردر (Herder) بيئة عمل موحدة ومنظمة للوكلاء البرمجيين داخل الطرفية باستخدام لغة راست، مما يجمع بين استمرارية جلسات tmux والقدرة على التحكم البرمجي في مساحات العمل.

Highlights

  • يعمل هيردر (Herder) كأداة معددة للوكلاء تعتمد على لغة راست (Rust) داخل الطرفية، مما يلغي الحاجة إلى استخدام تطبيق إلكترون (Electron) منفصل.

  • يدعم هيردر استمرارية الجلسات عبر SSH من خلال تشغيل خادم على الجهاز البعيد وعميل على الجهاز المحلي، مما يحافظ على إعدادات اختصارات لوحة المفاتيح المحلية.

  • تسمح واجهة برمجة التطبيقات (Socket API) لوكلاء الذكاء الاصطناعي بالتحكم المباشر في هيردر لإنشاء مساحات عمل، وتقسيم النوافذ، وإدارة المهام تلقائياً.

  • يعتمد هيردر على اختصارات مشابهة لـ tmux، حيث تكون البادئة الافتراضية هي Ctrl + b، مع إمكانية التخصيص الكامل حسب تفضيلات المستخدم.

  • يوفر هيردر تكاملاً بصرياً فورياً لحالة الوكلاء، حيث يوضح ما إذا كان الوكيل يعمل، أو في حالة خمول، أو معلقاً ضمن بيئة العمل.

Timeline

مقدمة حول هيردر وهندسته التقنية

  • يعمل هيردر كملف ثنائي مبني بلغة راست لعرض وإدارة وكلاء البرمجة.
  • يستلهم النظام هيكليته من tmux مع دمج وعي مدمج بحالة وكلاء الذكاء الاصطناعي.
  • يعمل هيردر في أي بيئة تدعم الطرفية، بما في ذلك الاتصالات عبر SSH.

صُمم هيردر ليكون معدد وكلاء خفيفاً داخل الطرفية دون الحاجة لتطبيقات ثقيلة. يعالج الأداة مشكلة نقص الوعي في معددات الطرفية التقليدية مثل tmux تجاه عمليات وكلاء الذكاء الاصطناعي النشطة. يتميز النظام بواجهة برمجة تطبيقات تسمح للوكلاء بقيادة الأداة ذاتياً.

تجربة المستخدم وإدارة الوكلاء

  • يستخدم النظام اختصارات لوحة المفاتيح (Ctrl + b) للتنقل وإدارة النوافذ ومساحات العمل.
  • تتغير حالة الوكلاء في واجهة هيردر تلقائياً بمجرد إعطائهم أوامر برمجية.
  • يستطيع الوكلاء التحكم في واجهة هيردر لفتح نوافذ جديدة وتلخيص المخرجات.

تتيح الأداة للمستخدمين تنظيم الوكلاء في مساحات عمل وعلامات تبويب مخصصة. عند تنفيذ الأوامر، يقوم هيردر بتحديث حالة كل وكيل فوراً، كما يمكن للوكلاء أنفسهم فتح نوافذ داخل هيردر لتنفيذ مهام محددة مثل البحث عن الأسرار في الكود أو تلخيص الملفات.

العمل عبر SSH وتخصيص النظام

  • يتيح وضع العمل (remote) ربط عميل محلي بخادم بعيد للحفاظ على التكوينات الشخصية.
  • يوفر النظام خيارات متعددة للنسق (themes) مثل nord وcatppuccin.
  • يعتمد هيردر حالياً على Unix socket وPTY، مما يحد من دعمه لأنظمة ويندوز.

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

Community Posts

No posts yet. Be the first to write about this video!

Write about this video