تنفيذ برمجي يوضح تنسيق السرب متعدد الوكلاء باستخدام ClawTeam
استكشف كيفية تنفيذ بنية ClawTeam لتنسيق الوكلاء المتعددين باستخدام OpenAI في دليل شامل.
في هذا الدليل الشامل، نستعرض البنية الأساسية لـ ClawTeam، وهو إطار عمل مفتوح المصدر للذكاء الاصطناعي للسرب تم تطويره من قبل HKUDS. سنقوم بتنفيذ المفاهيم الأساسية التي تجعل ClawTeam قويًا: وكيل قائد يقوم بتفكيك الأهداف المعقدة إلى مهام فرعية، ووكلاء عمل متخصصين ينفذون تلك المهام بشكل مستقل، بالإضافة إلى لوحة مهام مشتركة مع حل تلقائي للاعتمادات، ونظام رسائل بين الوكلاء يتيح التنسيق في الوقت الفعلي.
لقد صممنا هذا الدليل ليعمل بسلاسة في Colab، حيث يتطلب فقط مفتاح API الخاص بـ OpenAI، لذا يمكن لأي شخص تجربة تنسيق الوكلاء المتعددين دون الحاجة إلى إعداد بنية تحتية محلية مثل tmux أو git worktrees أو قوائم الرسائل المستندة إلى نظام الملفات التي تتطلبها واجهة سطر الأوامر الأصلية لـ ClawTeam.
إعداد البيئة المطلوبة
نبدأ بتثبيت الحزم المطلوبة، وهي OpenAI وrich، وجمع مفتاح API الخاص بـ OpenAI بشكل آمن من خلال أسرار Colab أو إدخالها عبر الطرفية.
import subprocess
import sys
def install_packages():
packages = ["openai", "rich"]
for pkg in packages:
subprocess.check_call([
sys.executable, "-m", "pip", "install", "-q", pkg],
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL,
)
print("All packages installed.")
install_packages()
بعد تثبيت الحزم، نقوم باستيراد جميع المكتبات التي نحتاجها طوال الدليل، بما في ذلك threading للتزامن، وdataclasses لنمذجة البيانات بشكل نظيف، وRich لتنسيق مخرجات الطرفية بشكل جميل. نقوم أيضًا بتهيئة عميل OpenAI العالمي.
بناء نظام المهام
نبدأ ببناء ثلاثة أنظمة أساسية تعكس بنية ClawTeam المعتمدة على نظام الملفات: لوحة المهام مع دورة حياة كاملة لحالة المهام، ونظام البريد الوارد الذي يدعم الرسائل من نقطة إلى نقطة والبث بين الوكلاء، وسجل الفريق الذي يتتبع دور كل وكيل وحالته وعدد المهام المكتملة.
@dataclass
class Task:
id: str = field(default_factory=lambda: str(uuid.uuid4())[:8])
subject: str = ""
description: str = ""
owner: str = ""
status: TaskStatus = TaskStatus.PENDING
blocked_by: list = field(default_factory=list)
result: str = ""
created_at: str = field(default_factory=lambda: datetime.now().isoformat())
completed_at: Optional[str] = None
def to_dict(self):
return {
"id": self.id,
"subject": self.subject,
"description": self.description,
"owner": self.owner,
"status": self.status.value,
"blocked_by": self.blocked_by,
"result": self.result[:200] if self.result else "",
}
نقوم بتطبيق قفل آمن عبر جميع الأنظمة الثلاثة للسماح لوكلاء متعددين بالقراءة والكتابة بشكل متزامن. يتم نمذجة المهام مع سلسلة الاعتمادات blocked_by التي تنتقل تلقائيًا من الحالة المحجوبة إلى الحالة المعلقة عندما تكتمل المتطلبات السابقة.
تنفيذ نظام الرسائل
يعمل نظام البريد الوارد على تسهيل الاتصال بين الوكلاء، مما يسمح لهم بالتفاعل بشكل فعال. يمكن لوكيل معين إرسال رسائل إلى وكلاء آخرين، مما يساعد على تنسيق المهام بشكل أفضل.
class InboxSystem:
def __init__(self):
self._inboxes: dict[str, list[Message]] = defaultdict(list)
self._lock = threading.Lock()
def send(self, sender: str, recipient: str, content: str):
msg = Message(sender=sender, recipient=recipient, content=content)
with self._lock:
self._inboxes[recipient].append(msg)
استنتاجات
توفر ClawTeam إطار عمل قوي لتنسيق الوكلاء المتعددين، مما يتيح تطوير أنظمة ذكاء اصطناعي قادرة على التعامل مع المهام المعقدة بكفاءة. من خلال استخدام مكتبة OpenAI، يمكن للمطورين استغلال قوة الذكاء الاصطناعي في مشاريعهم بسهولة.
يمكن للمستخدمين البدء في استخدام ClawTeam من خلال إعداد بيئة Colab الخاصة بهم وتجربة هذه الأدوات القوية. يوفر هذا الدليل نقطة انطلاق ممتازة للمطورين الذين يرغبون في استكشاف إمكانيات الذكاء الاصطناعي للسرب.
المصدر: MarkTechPost