مشروع OpenHands: نظرة عامة مفصلة
ملخص المشروع
OpenHands (الاسم الأصلي OpenDevin) هو منصة وكيل تطوير برمجيات مدفوعة بالذكاء الاصطناعي. يهدف هذا المشروع مفتوح المصدر إلى إنشاء وكلاء ذكاء اصطناعي قادرين على العمل مثل المطورين البشريين، مع القدرة على تعديل التعليمات البرمجية، وتشغيل الأوامر، وتصفح الويب، واستدعاء واجهات برمجة التطبيقات (APIs) وغيرها من قدرات التطوير الشاملة.
الميزات الأساسية
🤖 قدرات الوكيل
- تعديل التعليمات البرمجية: القدرة على فهم وتعديل قواعد التعليمات البرمجية الحالية.
- تنفيذ الأوامر: القدرة على تشغيل مختلف أوامر ونصوص النظام.
- تصفح الويب: القدرة على تصفح الويب للحصول على المعلومات.
- استدعاء واجهات برمجة التطبيقات: القدرة على استدعاء مختلف واجهات برمجة التطبيقات الخارجية.
- اقتباس التعليمات البرمجية: حتى القدرة على نسخ مقتطفات التعليمات البرمجية من مواقع مثل StackOverflow.
🌐 طرق نشر متعددة
- خدمة سحابية: توفير خدمة OpenHands السحابية، حيث يحصل المستخدمون الجدد على رصيد مجاني بقيمة 50 دولارًا أمريكيًا.
- نشر Docker محلي: دعم التشغيل عبر Docker على النظام المحلي.
- وضع التشغيل بدون رأس: دعم التشغيل بدون رأس باستخدام البرامج النصية.
- واجهة سطر الأوامر: توفير واجهة CLI تفاعلية سهلة الاستخدام.
- GitHub Action: القدرة على التشغيل على المشكلات (issues) التي تم وضع علامة عليها عبر GitHub Action.
🔧 الميزات التقنية
- دعم نماذج لغوية كبيرة متعددة (LLM): دعم نماذج لغوية كبيرة متعددة، ويوصى باستخدام Claude 3.7 Sonnet من Anthropic.
- حاويات Docker: بيئة صندوق رمل آمنة تعتمد بالكامل على Docker.
- اتصال نظام الملفات: القدرة على الاتصال بنظام الملفات المحلي للتطوير.
- مدفوعة بالمجتمع: مشروع مدفوع بمجتمع مفتوح المصدر، نرحب بالمساهمات.
بداية سريعة
النشر السحابي
قم بزيارة OpenHands Cloud للبدء في الاستخدام، يحصل المستخدمون الجدد على رصيد مجاني بقيمة 50 دولارًا أمريكيًا.
نشر Docker محلي
# سحب صورة وقت التشغيل
docker pull docker.all-hands.dev/all-hands-ai/runtime:0.36-nikolaik
# تشغيل OpenHands
docker run -it --rm --pull=always \
-e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:0.36-nikolaik \
-e LOG_ALL_EVENTS=true \
-v /var/run/docker.sock:/var/run/docker.sock \
-v ~/.openhands-state:/.openhands-state \
-p 3000:3000 \
--add-host host.docker.internal:host-gateway \
--name openhands-app \
docker.all-hands.dev/all-hands-ai/openhands:0.36
بعد التشغيل، قم بزيارة http://localhost:3000 للبدء في الاستخدام.
متطلبات النظام والتكوين
تكوين نموذج LLM
- النموذج الموصى به: Claude 3.7 Sonnet من Anthropic (
anthropic/claude-3-7-sonnet-20250219
)
- دعم نماذج متعددة: انظر وثائق LLM للحصول على التفاصيل.
- مفتاح API: يلزم تكوين مفتاح API المقابل.
ملاحظات الأمان
- مناسب للاستخدام في محطة عمل محلية لمستخدم واحد.
- غير مناسب للنشر متعدد المستأجرين.
- لا توجد آليات مصادقة وعزل مدمجة.
- يتطلب نشر الشبكة العامة الرجوع إلى دليل النشر الآمن.
وظائف متقدمة
وظائف المطور
- تعديل التعليمات البرمجية المصدرية: دعم تعديل التعليمات البرمجية المصدرية لـ OpenHands، انظر
Development.md
للحصول على التفاصيل.
- استكشاف الأخطاء وإصلاحها: توفير دليل مفصل لاستكشاف الأخطاء وإصلاحها.
- تكوين متقدم: دعم مختلف خيارات التكوين المتقدمة.
قدرات التكامل
- تكامل نظام الملفات: القدرة على الاتصال بنظام الملفات المحلي.
- تكامل GitHub: دعم أتمتة GitHub Action.
- تكامل API: قدرات استدعاء API غنية.
البنية التقنية
المكونات الأساسية
- محرك الوكيل الذكي: محرك الاستدلال واتخاذ القرار الأساسي للذكاء الاصطناعي.
- بيئة الصندوق الرمل: بيئة تنفيذ تعليمات برمجية آمنة.
- طبقة الواجهة: دعم طرق تفاعل متعددة مثل واجهة مستخدم الويب و CLI و API.
- نظام المكونات الإضافية: بنية مكونات إضافية قابلة للتوسيع.
النظام البيئي مفتوح المصدر
- ترخيص MIT: ترخيص مفتوح المصدر سهل الاستخدام.
- المشاريع التابعة: مبني على العديد من المشاريع مفتوحة المصدر.
- ملف الشكر والتقدير: انظر
CREDITS.md
لمعرفة جميع المشاريع التابعة.
خارطة طريق المشروع
يقوم القائمون على صيانة المشروع بتحديث خارطة الطريق الشهرية في نهاية كل شهر، لعرض اتجاهات وخطط تطوير المشروع.
الاقتباس الأكاديمي
إذا كنت بحاجة إلى اقتباس المشروع في بحث أكاديمي، يمكنك استخدام التنسيق التالي:
@misc{openhands,
title={{OpenHands: An Open Platform for AI Software Developers as Generalist Agents}},
author={Xingyao Wang and Boxuan Li and Yufan Song and Frank F. Xu and Xiangru Tang and Mingchen Zhuge and Jiayi Pan and Yueqi Song and Bowen Li and Jaskirat Singh and Hoang H. Tran and Fuqiang Li and Ren Ma and Mingzhang Zheng and Bill Qian and Yanjun Shao and Niklas Muennighoff and Yizhe Zhang and Binyuan Hui and Junyang Lin and Robert Brennan and Hao Peng and Heng Ji and Graham Neubig},
year={2024},
eprint={2407.16741},
archivePrefix={arXiv},
primaryClass={cs.SE},
url={https://arxiv.org/abs/2407.16741},
}
ملخص
يمثل OpenHands طليعة تطوير البرمجيات بمساعدة الذكاء الاصطناعي، من خلال توفير منصة وكيل تطوير ذكاء اصطناعي كاملة، مما يسمح للمطورين بإكمال مهام البرمجة المختلفة بكفاءة أكبر. سواء كان مطورًا فرديًا أو فريقًا مؤسسيًا، يمكنهم تجربة الراحة التي يوفرها التطوير الآلي المدفوع بالذكاء الاصطناعي من خلال OpenHands.
