تصميم Helium Agent

Helium Agent هو وكيل ذكاء اصطناعي خفيف الوزن مبني بلغة Python. يعمل عبر واجهة السطر البرمجي (terminal)، وقد صُمم ليكون بأقل قدر ممكن من التعقيد.

إليك القرارات التصميمية الأساسية من عملية البناء:

• البنية (Architecture) يستخدم النظام بنية مسطحة (flat architecture). أتجنب الأطر البرمجية الثقيلة وأشجار التبعيات العميقة. أستخدم وسوم XML مثل <action> بدلاً من استدعاء الدوال (function calling) الخاص بـ OpenAI. هذا يجعل الوكيل مستقلاً عن نوع النموذج (model agnostic)، حيث يمكنك استخدام أي نموذج لغوي كبير (LLM).

• القابلية للتركيب عبر حقن التبعيات (Dependency Injection) أستخدم حلقة بسيطة تسمى AgenticLoop. تقبل مدخلين: مستدعي النموذج (model caller) ومنفذ الأدوات (tool executor). هذا الخيار وحده يتيح أربعة أنماط مختلفة:

  • الدردشة العامة
  • سير عمل البرمجة
  • الوكلاء الفرعيون (Subagents)
  • المهارات المخصصة لا أستخدم الفئات الفرعية (subclasses) أو الأنماط المعقدة، بل مجرد دالتين بسيطتين.

• إدارة الحالة (State Management) Helium هو أداة لمستخدم واحد. أستخدم نمط الـ singletons على مستوى الوحدة (module-level) لسجل المحادثة والذاكرة. الحالة العامة (Global state) هي أبسط طريقة لتمثيل جلسة مستخدم واحدة، وهي تمنع الإفراط في الهندسة (over-engineering).

• بوابات الأمان (Safety Gates) أستخدم نظاماً من ثلاث طبقات لتنفيذ الأدوات:

  • آمن (Safe): ينفذ المهام تلقائياً مثل قراءة الملفات أو البحث.
  • مخاطر (Risky): يتطلب إذن المستخدم لمهام مثل كتابة الملفات.
  • مشروط (Conditional): يفحص الأوامر مثل سكربتات bash للتحقق من وجود خطر. هذا يمنع النموذج الذي يعاني من "الهلوسة" (hallucinating) من حذف ملفاتك.

• التواصل (Communication) أستخدم طلبات HTTP الخام بدلاً من OpenAI SDK. هذا يقلل من التبعيات ويحافظ على شفافية الكود؛ حيث يمكنك رؤية ما يتم إرساله إلى الـ API بالضبط.

• نظام المهارات (Skill System) المهارات هي مجرد ملفات Markdown. يمكنك إضافة مهارة جديدة عن طريق كتابة ملف نصي يحتوي على YAML frontmatter. لا توجد واجهة برمجة تطبيقات (API) معقدة للتسجيل، مما يجعل نظام الإضافات سهلاً للاستخدام من قبل أي شخص.

• الدروس المستفادة

  1. يوفر حقن التبعيات (Dependency injection) قابلية تركيب منخفضة التكلفة.
  2. الـ system prompt هو واجهة برمجة التطبيقات (API) الخاصة بك. تعامل معه كقطعة برمجية أساسية.
  3. إذا كنت بحاجة إلى الاستيراد الكسول (lazy imports) لإصلاح التبعيات الدائرية (circular dependencies)، فإن حدود الوحدات (module boundaries) لديك خاطئة. قم بإصلاح البنية بدلاً من ذلك.

البساطة تتوسع. اختر الحل الأبسط الذي يعمل لحالة الاستخدام الخاصة بك.

المصدر: https://dev.to/debmalyasen34/designing-helium-agent-1b39

مجتمع تعليمي اختياري: https://t.me/GyaanSetuAi