XYZNOT

الأوراق البحثية · arXiv 2407.16741

OpenHands: منصة مفتوحة لمطوري البرمجيات القائمين على الذكاء الاصطناعي كوكلاء متعددي المهام

OpenHands: An Open Platform for AI Software Developers as Generalist Agents

تاريخ النشر cs.SEcs.AIcs.CL arXivPDF

اقرأ مع الترجمة والذكاء الاصطناعي

الملخص في ثلاثة أسطر

  1. 🎯 يتطلب بناء وكلاء البرمجيات القائمين على الذكاء الاصطناعي وصيانتهم وتقييمهم بأمان عبر مهام برمجية ومهام ويب متنوعة بيئات معزولة قياسية، وأدوات متكاملة، ومعايير تقييم قابلة لإعادة الإنتاج.
  2. 🔧 تجمع OpenHands بين بنية معمارية تعتمد على تدفق الأحداث وحاويات Docker المعزولة، ومكتبة AgentSkills قابلة للتوسيع، وتصفح يعتمد على BrowserGym، وتفويض متعدد الوكلاء، واختبارات تكاملية باستخدام نماذج LLM محاكاة.
  3. 📈 باستخدام Claude 3.5 Sonnet دون ضبط للمطالبات مخصص لكل معيار، يحقق CodeActAgent معدل حل يبلغ 26.0% على SWE-Bench Lite، و15.3% على WebArena، و52.0% على GPQA Diamond.

الملخص

تعد البرمجيات واحدة من أقوى الأدوات المتاحة للبشرية؛ إذ تتيح للمبرمج الماهر التفاعل مع العالم بطرق معقدة وعميقة. في الوقت نفسه، وبفضل التطورات في نماذج اللغة الكبيرة (LLMs)، شهدنا أيضاً تطوراً متسارعاً في وكلاء الذكاء الاصطناعي القادرين على التفاعل مع بيئاتهم المحيطة وإحداث تغيير فيها. نُقدّم في هذه الورقة منصة OpenHands (المعروفة سابقاً باسم OpenDevin)، وهي منصة لتطوير وكلاء ذكاء اصطناعي أقوياء ومرنين يتفاعلون مع العالم بأساليب مماثلة للمطور البشري: عبر كتابة الشيفرات البرمجية، والتفاعل مع واجهة سطر الأوامر، وتصفح الويب. نوضح كيف تتيح المنصة بناء وكلاء جدد، والتفاعل الآمن مع بيئات معزولة (Sandboxed) لتنفيذ الشيفرات، والتنسيق بين عدة وكلاء، ودمج معايير التقييم. بناءً على المعايير المدمجة حالياً، نُجري تقييماً للوكلاء عبر 15 مهمة مليئة بالتحديات، تشمل هندسة البرمجيات (مثل SWE-BENCH) وتصفح الويب (مثل WEBARENA)، وغيرها. أُطلقت OpenHands تحت رخصة MIT المرنة، وهي مشروع مجتمعي يجمع بين الأوساط الأكاديمية والصناعية بأكثر من 2.1 ألف مساهمة من أكثر من 188 مساهماً.

الملخص الأصلي (بالإنجليزية)

Software is one of the most powerful tools that we humans have at our disposal; it allows a skilled programmer to interact with the world in complex and profound ways. At the same time, thanks to improvements in large language models (LLMs), there has also been a rapid development in AI agents that interact with and affect change in their surrounding environments. In this paper, we introduce OpenHands (f.k.a. OpenDevin), a platform for the development of powerful and flexible AI agents that interact with the world in similar ways to those of a human developer: by writing code, interacting with a command line, and browsing the web. We describe how the platform allows for the implementation of new agents, safe interaction with sandboxed environments for code execution, coordination between multiple agents, and incorporation of evaluation benchmarks. Based on our currently incorporated benchmarks, we perform an evaluation of agents over 15 challenging tasks, including software engineering (e.g., SWE-BENCH) and web browsing (e.g., WEBARENA), among others. Released under the permissive MIT license, OpenHands is a community project spanning academia and industry with more than 2.1K contributions from over 188 contributors.

دليل القراءة

المشكلة والدافع

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

عانت أطر عمل الوكلاء السابقة غالباً من فجوات معمارية رئيسية: غياب بيئات التنفيذ المعزولة، وأدوات تنفيذ شيفرات عديمة الحالة (stateless)، والافتقار إلى قدرات تصفح الويب متعددة الوسائط، أو غياب أدوات التقييم المعيارية عبر المجالات المتباينة. تعالج منصة OpenHands (المعروفة سابقاً باسم OpenDevin) هذه المشكلات عبر منصة مفتوحة المصدر (مرخصة برخصة MIT) توفر بيئات تشغيل معزولة، وواجهات Agent-Computer Interfaces (ACI) قابلة للتوسيع، وتنسيقاً بين وكلاء متعددين، وأدوات تقييم معيارية.

الأفكار الرئيسية

  • بنية تدفق الأحداث (Event Stream Architecture): يتم تتبع تعليمات المستخدم وإجراءات الوكيل وملاحظات وقت التشغيل زمنياً في تدفق أحداث يوحد التواصل بين الواجهات الأمامية والوكلاء وبيئات التشغيل المعزولة.
  • أوليات لغة البرمجة (PL Primitives): بدلاً من واجهات البرمجة المخصصة والهشة، ترتكز تفاعلات الوكيل على إجراءات برمجية عامة: IPythonRunCellAction، وCmdRunAction، وBrowseInteractiveAction (عبر BrowserGym).
  • مكتبة AgentSkills القابلة للتوسيع: حزمة Python معيارية محملة مسبقاً في نواة IPython توفر أدوات مساعدة عالية المستوى (مثل تحرير الأسطر بالاعتماد على شجرة الإعراب المجردة AST عبر edit_file، وتحليل ملفات PDF، واستخراج الصور متعددة الوسائط) دون الحاجة لإعادة اختراع المكتبات المتاحة.
  • تفويض الوكيل (Agent Delegation): يتولى وكلاء متخصصون مسارات العمل الخاصة بمجالات معينة (مثل تفويض مهام الويب عبر AgentDelegateAction إلى وكيل متخصص وهو BrowsingAgent).
  • ضبط الجودة عبر الاختبارات المحاكاة (Mocked Testing): تختبر إجراءات التكامل المستمر الدورية التراجعات في الأداء، واستقرار الإجراءات، وأمان البيئة المعزولة باستخدام تخزين مؤقت حتمي لزوج (المطالبة-الاستجابة) بدلاً من استدعاءات واجهات البرمجة الحية المكلفة.

الطريقة (مع المعادلات الرئيسية)

تعمل دورة تنفيذ OpenHands وفق دالة خطوة منفصلة حيث يربط الوكيل بين حالة البيئة وإجراء : هنا، تلخص الحالة السجل الزمني للإجراءات والملاحظات السابقة: حيث تتتبع البيانات الوصفية المساعدة للحالة (التكلفة التراكمية للنماذج، مكدس تفويض الوكلاء النشطين، معاملات الإعدادات).

يتضمن فضاء الإجراءات ما يلي:

  • CmdRunAction(command): يشغل أوامر bash عشوائية في غلاف Linux المستهدف.
  • IPythonRunCellAction(code): ينفذ شيفرة Python محتفظة بالحالة في نواة Jupyter مستمرة، كاشفاً أدوات AgentSkills.
  • BrowseInteractiveAction(code): ينفذ أوليات BrowserGym المعتمدة على Playwright (مثل click(bid)، وfill(bid, val)، وgoto(url)، وغيرها).
  • AgentDelegateAction(subtask, agent_name): يدفع هدفاً فرعياً إلى مكدس الوكلاء لاستدعاء وكيل متخصص.
  • AgentFinishAction(): ينهي عملية التنفيذ.

يتم التنفيذ داخل بيئة Docker معزولة تعتمد هيكلية العميل والخادم. ويتم توسيع حاويات Docker الأساسية بخادم REST API خاص بـ OpenHands (runtime.py)، موسومة بآلية وسم مزدوجة: بصمة MD5 للمحتوى (target_image_repo:target_image_hash_tag) لضمان التكرارية الدقيقة، ووسم دلالي عام (runtime:oh_v{VERSION}_{BASE_IMAGE}_tag_{IMAGE_TAG}) لعمليات البناء المعتمدة على الطبقات الأساسية المخزنة مؤقتاً.

النتائج (مع أهم الأرقام)

تُقيّم OpenHands الوكلاء متعددي المهام عبر 15 معيار تقييم تغطي هندسة البرمجيات، وتصفح الويب، والمساعدة العامة دون ضبط مخصص للمطالبات لكل معيار:

  • SWE-Bench Lite (300 حالة، دون تلميحات): يحقق CodeActAgent v1.8 مع claude-3-5-sonnet@20240620 معدل حل قدره (بتكلفة متوسطة $1.10 لكل حالة)، متفوقاً على SWE-Agent () وAutoCodeRover ()، ومقترباً من Aider ().
  • HumanEvalFix (164 حالة): يحل CodeActAgent v1.5 مع gpt-4o-2024-05-13 ما نسبته في إعداد للتصحيح الذاتي دون أمثلة مسبقة (0-shot) (مقارنة بـ لنموذج StarCoder2-15B).
  • WebArena (812 حالة): يحقق BrowsingAgent v1.0 نسبة باستخدام claude-3-5-sonnet و باستخدام gpt-4o، بينما يصل CodeActAgent v1.8 عبر التفويض إلى .
  • MiniWoB++ (125 بيئة): يحقق BrowsingAgent v1.0 دون أمثلة مسبقة (Zero-shot) مع gpt-4o نسبة .
  • المساعدة العامة والاستدلال:
    • GPQA Diamond: يسجل CodeActAgent v1.8 + claude-3-5-sonnet نسبة (متفوقاً على خط الأساس البشري الخبير البالغ ، ومتجاوزاً GPT-4 مع سلسلة الأفكار وبضعة أمثلة البالغ ).
    • GAIA (مجموعة التحقق L1): يصل GPTSwarm v1.0 مع gpt-4o إلى (مقابل لـ AutoGPT).
    • AgentBench (المجموعة الفرعية لأنظمة التشغيل): يحقق CodeActAgent v1.5 نسبة .
    • MINT (الرياضيات / الشيفرة البرمجية): يصل CodeActAgent v1.5 إلى في الرياضيات و في البرمجة.

القيود والأسئلة المفتوحة

  • تعديل الملفات الكبيرة: تواجه أوليات التحرير الحالية صعوبات عند التعامل مع قواعد الشيفرات الضخمة أو ملفات المصدر الطويلة حيث تؤدي إزاحات أرقام الأسطر إلى تعارضات في التحرير.
  • التكامل متعدد الوسائط: على الرغم من أن المهارات المساعدة (parse_image، وparse_pdf) تستخرج ملخصات النصوص أو الصور عبر نماذج رؤية خارجية، إلا أن الاستدلال متعدد الوسائط الأصيل للمتصفح والطرفية لم يتم توحيده بالكامل بعد.
  • أتمتة مسارات العمل: لا تزال مسارات العمل تعتمد بشكل كبير على مطالبات النظام المصممة يدوياً وحلقات تنسيق الوكلاء بدلاً من المعماريات التخطيطية المحسنة تلقائياً (مثل GPTSwarm).

المصطلحات الرئيسية

OpenHands
منصة مفتوحة المصدر مدفوعة بالمجتمع لبناء وكلاء مطوري البرمجيات القائمين على الذكاء الاصطناعي ونشرهم وتقييمهم في بيئات معزولة.
CodeAct
معمارية للوكلاء يتم فيها توحيد فضاء الإجراءات حول تنفيذ شيفرات برمجية بلغات عامة (Python، bash، إجراءات المتصفح) بدلاً من مخططات JSON الصارمة.
Event Stream
سجل زمني تسلسلي يُضاف إليه فقط، يتتبع إجراءات الوكيل وتدخلات المستخدم وملاحظات البيئة طوال وقت تشغيل OpenHands.
AgentSkills
حزمة أدوات Python معيارية تُحقن داخل نواة IPython المعزولة لتزويد الوكلاء بأدوات مساعدة لتعديل الملفات والتنقل وتحليل المستندات.
BrowserGym
بيئة لأتمتة المتصفحات ولغة إجراءات مخصصة لمجال معين مبنية على Playwright وتستخدمها OpenHands لمهام التصفح.
Agent Runtime
بيئة التنفيذ المعزولة (عميل-خادم) التي تعمل داخل حاوية Docker وتتولى معالجة أوامر bash، وخلايا شيفرة IPython، وجلسات المتصفح.
AgentDelegateAction
نوع إجراء متخصص يُمكّن الوكيل العام الرئيسي من تفويض مهام فرعية محددة إلى وكيل متخصص في مجال معين.
SWE-Bench
معيار تقييم يقيس قدرة الوكيل على حل مشكلات حقيقية من GitHub واجتياز مجموعات اختبارات الوحدة دون توجيه بشري.

أسئلة شائعة

ما الفرق بين OpenHands وOpenDevin؟

تُعد OpenHands الامتداد الرسمي وإعادة التسمية لمشروع OpenDevin؛ حيث تطورت من كونها إعادة بناء مفتوحة المصدر لنموذج Devin من Cognition إلى منصة عامة لتطوير البرمجيات وبناء وكلاء رقميين متعددي المهام.

كيف تضمن OpenHands الأمان أثناء تنفيذ شيفرات برمجية عشوائية؟

تُنفَّذ جميع إجراءات الوكيل (أوامر الطرفية، مقتطفات Python، وإجراءات المتصفح) داخل حاوية Docker معزولة تتواصل مع الواجهة الخلفية عبر عميل REST API، مما يعزل النظام المضيف تماماً.

كيف تتجنب OpenHands استدعاءات LLM المكلفة أثناء الاختبارات المؤتمتة؟

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

هل يمكن تشغيل OpenHands باستخدام أي صورة Docker خاصة بالمستخدم؟

نعم. توفر OpenHands مسار عمل للبناء يُثبت خادم API الخاص بتنفيذ الإجراءات فوق أي صورة Docker أساسية يحددها المستخدم، مع تتبع عمليات البناء عبر بصمات MD5 للمصدر ووسوم عامة.

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

اقرأ مع الترجمة والذكاء الاصطناعي