تم تصميم إطار عمل Atomic Agents ليكون معياريًا وقابل للتوسيع وسهل الاستخدام. هدفها الرئيسي هو القضاء على التعقيد الزائد والتجريد غير الضروري والافتراضات الخفية مع الاستمرار في توفير منصة مرنة وقوية لبناء تطبيقات الذكاء الاصطناعي من خلال الذرة. يوفر إطار العمل مجموعة من الأدوات والوكلاء التي يمكن دمجها لإنشاء تطبيقات قوية. إنه مبني على Instructor ويستفيد من قوة Pydantic للتحقق من صحة البيانات والمخطط والتسلسل.
في حين أن الأطر الحالية للذكاء الاصطناعي الوكيل تركز على بناء أنظمة مستقلة متعددة الوكلاء، فإنها غالبًا ما تفتقر إلى التحكم والقدرة على التنبؤ المطلوبين لتطبيقات العالم الحقيقي. تحتاج الشركات إلى أنظمة الذكاء الاصطناعي التي تنتج مخرجات متسقة وموثوقة تتماشى مع علامتها التجارية وأهدافها.
تعالج Atomic Agents هذه الحاجة من خلال توفير:
النمطية: إنشاء تطبيقات الذكاء الاصطناعي من خلال الجمع بين المكونات الصغيرة القابلة لإعادة الاستخدام.
القدرة على التنبؤ: تحديد مخططات واضحة للمدخلات والمخرجات لضمان السلوك المتسق.
القابلية للتوسعة: يمكنك تبديل المكونات بسهولة أو دمج مكونات جديدة دون تعطيل النظام بأكمله.
التحكم: ضبط كل جزء من النظام بشكل فردي، بدءًا من مطالبات النظام وحتى عمليات تكامل الأدوات.
في Atomic Agents، يتكون الوكيل من عدة مكونات رئيسية:
موجه النظام: يحدد سلوك الوكيل والغرض منه.
مخطط الإدخال: يحدد البنية وقواعد التحقق من صحة إدخال الوكيل.
مخطط الإخراج: يحدد البنية وقواعد التحقق من صحة مخرجات الوكيل.
الذاكرة: تخزن سجل المحادثات أو البيانات الأخرى ذات الصلة.
موفرو السياق: أدخل السياق الديناميكي في موجه نظام الوكيل في وقت التشغيل.
فيما يلي مخطط معماري عالي المستوى:
لتثبيت Atomic Agents، يمكنك استخدام النقطة:
نقطة تثبيت العوامل الذرية
تأكد أيضًا من تثبيت الموفر الذي تريد استخدامه. على سبيل المثال، لاستخدام OpenAI وGroq، يمكنك تثبيت حزمتي openai
و groq
:
نقطة تثبيت openai groq
يؤدي هذا أيضًا إلى تثبيت CLI Atomic Assembler ، والذي يمكن استخدامه لتنزيل الأدوات (وقريبًا أيضًا Agents وPiplines).
للتطوير المحلي، يمكنك التثبيت من المستودع:
استنساخ بوابة https://github.com/BrainBlend-AI/atomic-agents.gitcd atomic-agents تثبيت شعر
يستخدم Atomic Agents بنية monorepo مع المكونات الرئيسية التالية:
atomic-agents/
: مكتبة العوامل الذرية الأساسية
atomic-assembler/
: أداة CLI لإدارة مكونات Atomic Agents
atomic-examples/
: أمثلة على المشاريع التي تعرض استخدام العوامل الذرية
atomic-forge/
: مجموعة من الأدوات التي يمكن استخدامها مع Atomic Agents
يمكن العثور على قائمة كاملة من الأمثلة في دليل الأمثلة.
نحن نسعى جاهدين لتوثيق كل مثال بدقة، ولكن إذا كان هناك شيء غير واضح، فيرجى عدم التردد في فتح مشكلة أو سحب طلب لتحسين التوثيق.
فيما يلي مقتطف سريع يوضح مدى سهولة إنشاء وكيل قوي باستخدام Atomic Agents:
# تحديد فئة مخطط الإخراج المخصص CustomOutputSchema(BaseIOSchema):""" docstring لمخطط الإخراج المخصص """chat_message: str = Field(..., description="رسالة الدردشة من الوكيل.")suggested_questions: List[str ] = Field(..., description="أسئلة المتابعة المقترحة.")# إعداد النظام موجهsystem_prompt_generator = SystemPromptGenerator(background=["هذا المساعد واسع المعرفة ومفيد ويقترح أسئلة متابعة."],steps =["تحليل مدخلات المستخدم لفهم السياق والقصد."،"صياغة استجابة ذات صلة وغنية بالمعلومات."،"إنشاء 3 أسئلة متابعة مقترحة للمستخدم."],output_instructions=["تقديم معلومات واضحة وموجزة ردًا على استفسارات المستخدم."،"اختتم كل إجابة بثلاثة أسئلة مقترحة ذات صلة للمستخدم."] )# تهيئة الوكيل = BaseAgent(config=BaseAgentConfig(client=your_openai_client, # استبدله بنموذج العميل الفعلي = "gpt-4o-mini"،system_prompt_generator=system_prompt_generator،memory=AgentMemory(),output_schema=CustomOutputSchema) )# استخدم agentresponse = agent.run(user_input)print(f"Agent: {response.chat_message}")print("الأسئلة المقترحة:")للسؤال في الاستجابة.suggested_questions:print(f"- {question}")
يعرض هذا المقتطف كيفية إنشاء وكيل قابل للتخصيص يستجيب لاستفسارات المستخدم ويقترح أسئلة للمتابعة. للحصول على أمثلة كاملة وقابلة للتشغيل، يرجى الرجوع إلى الملفات التالية في دليل atomic-examples/quickstart/quickstart/
:
Chatbot الأساسي مثال بسيط لـ chatbot لتبدأ به.
Custom Chatbot مثال أكثر تقدمًا مع موجه نظام مخصص.
Chatbot مخصص مع المخطط مثال متقدم يتميز بمخطط إخراج مخصص.
يوضح Chatbot متعدد الموفرين كيفية استخدام مقدمي خدمات مختلفين مثل Ollama أو Groq.
بالإضافة إلى أمثلة البدء السريع، لدينا أمثلة أكثر تعقيدًا توضح قوة العوامل الذرية:
وكيل بحث الويب: وكيل ذكي يقوم بإجراء عمليات بحث على الويب والإجابة على الأسئلة بناءً على النتائج.
YouTube Summarizer: وكيل يستخرج المعرفة ويلخصها من مقاطع فيديو YouTube.
للحصول على قائمة كاملة من الأمثلة، راجع دليل الأمثلة.
توفر هذه الأمثلة نقطة انطلاق رائعة لفهم العوامل الذرية واستخدامها.
يتيح لك Atomic Agents تحسين عملائك من خلال سياق ديناميكي باستخدام موفري السياق . يمكّنك موفرو السياق من إدخال معلومات إضافية في موجه نظام الوكيل في وقت التشغيل، مما يجعل وكلائك أكثر مرونة ووعيًا بالسياق.
لاستخدام موفر السياق، قم بإنشاء فئة ترث من SystemPromptContextProviderBase
وتقوم بتنفيذ طريقة get_info()
، التي ترجع سلسلة السياق المراد إضافتها إلى موجه النظام.
إليك مثال بسيط:
من atomic_agents.lib.components.system_prompt_generator import SystemPromptContextProviderBaseclass SearchResultsProvider(SystemPromptContextProviderBase):def __init__(self, title: str, search_results: List[str]):super().__init__(title=title)self.search_results = search_resultsdef get_info(self ) -> str:return "n".join(self.search_results)
يمكنك بعد ذلك تسجيل موفر السياق الخاص بك مع الوكيل:
# تهيئة موفر السياق الخاص بك باستخدام datasearch_results_provider = SearchResultsProvider(title="Search Results"،search_results=["Result 1"، "Result 2"، "Result 3"] )# سجل موفر السياق باستخدام agentagent.register_context_provider("search_results"، search_results_provider)
يتيح ذلك لوكيلك تضمين نتائج البحث (أو أي سياق آخر) في موجه النظام الخاص به، مما يعزز استجاباته بناءً على أحدث المعلومات.
تعمل Atomic Agents على تسهيل ربط الوكلاء والأدوات معًا من خلال محاذاة مخططات الإدخال والإخراج الخاصة بهم. يتيح لك هذا التصميم إمكانية تبديل المكونات بسهولة، مما يعزز النمطية وقابلية إعادة الاستخدام في تطبيقات الذكاء الاصطناعي لديك.
لنفترض أن لديك وكيلًا يقوم بإنشاء استعلامات بحث وتريد استخدام هذه الاستعلامات مع أدوات بحث مختلفة. من خلال محاذاة مخطط إخراج الوكيل مع مخطط الإدخال الخاص بأداة البحث، يمكنك بسهولة ربطهما معًا أو التبديل بين موفري البحث المختلفين.
وإليك كيف يمكنك تحقيق ذلك:
import teacherimport openaifrom pydantic import Fieldfrom atomic_agents.agents.base_agent import BaseIOSchema, BaseAgent, BaseAgentConfigfrom atomic_agents.lib.components.system_prompt_generator import SystemPromptGenerator# قم باستيراد أداة البحث التي تريد استخدامها من web_search_agent.tools.searxng_search import SearxNGSearchTool# تحديد مخطط الإدخال للاستعلام Agentclass QueryAgentInputSchema(BaseIOSchema):"""مخطط الإدخال لـ QueryAgent."""instruction: str = Field(..., description="تعليمات لإنشاء استعلامات بحث لـ.")num_queries: int = Field(..., description="عدد الاستعلامات المراد إنشاؤها.")# تهيئة الاستعلام agentquery_agent = BaseAgent(BaseAgentConfig(client=instructor.from_openai(openai.OpenAI()),model="gpt-4o-mini",system_prompt_generator=SystemPromptGenerator(background= ["أنت خبير ذكي في إنشاء الاستعلامات."،"مهمتك هي إنشاء عدد محدد من الاستعلامات المتنوعة وذات الصلة العالية بناءً على تعليمات معينة."],steps=["تلقي التعليمات وعدد الاستعلامات المطلوب إنشاؤها" ."،"إنشاء الاستعلامات بتنسيق JSON."],output_instructions=["تأكد من أن كل استعلام فريد وذو صلة."،"قدم الاستعلامات في المخطط المتوقع."], ),input_schema=QueryAgentInputSchema,output_schema=SearxNGSearchTool.input_schema, # محاذاة مخطط الإخراج) )
في هذا المثال:
النمطية : من خلال تعيين output_schema
الخاص بـ query_agent
لمطابقة input_schema
الخاص بـ SearxNGSearchTool
، يمكنك استخدام مخرجات الوكيل مباشرة كمدخل للأداة.
قابلية التبديل : إذا قررت التبديل إلى موفر بحث مختلف، فيمكنك استيراد أداة بحث مختلفة وتحديث output_schema
وفقًا لذلك.
على سبيل المثال، للتبديل إلى خدمة بحث أخرى:
# استيراد أداة بحث مختلفة من web_search_agent.tools.another_search import AnotherSearchTool# تحديث schemaquery_agent.config.output_schema = AnotherSearchTool.input_schema
يعمل نمط التصميم هذا على تبسيط عملية تسلسل العوامل والأدوات، مما يجعل تطبيقات الذكاء الاصطناعي لديك أكثر قدرة على التكيف وأسهل في الصيانة.
لتشغيل واجهة سطر الأوامر (CLI)، ما عليك سوى تشغيل الأمر التالي:
الذري
أو إذا قمت بتثبيت Atomic Agents مع الشعر، على سبيل المثال:
تشغيل الشعر الذري
أو إذا قمت بتثبيت Atomic Agents باستخدام الأشعة فوق البنفسجية:
الأشعة فوق البنفسجية تشغيل الذرية
بعد تشغيل هذا الأمر، ستظهر لك قائمة تسمح لك بتنزيل الأدوات.
كل أداة لها خاصيتها:
مخطط الإدخال
مخطط الإخراج
مثال الاستخدام
التبعيات
تعليمات التثبيت
تمنحك واجهة atomic-assembler
تحكمًا كاملاً في أدواتك، وتجنب فوضى التبعيات غير الضرورية. فهو يجعل أدوات التعديل سهلة بالإضافة إلى ذلك، حيث تأتي كل أداة مع مجموعة اختبارات الموثوقية الخاصة بها.
لكنك لا تقتصر على CLI! إذا كنت تفضل ذلك، يمكنك الوصول مباشرة إلى مجلدات الأداة وإدارتها يدويًا ببساطة عن طريق النسخ واللصق حسب الحاجة.
يعتمد الوكلاء الذريون على حزمة المدرب. وهذا يعني أنه في جميع الأمثلة التي يتم فيها استخدام OpenAI، يمكن أيضًا استخدام أي واجهة برمجة تطبيقات أخرى يدعمها Instructor، مثل Ollama وGroq وMistral وCohere وAnthropic وGemini والمزيد. للحصول على قائمة كاملة، يرجى الرجوع إلى وثائق المدرب على صفحة GitHub الخاصة بها.
يمكن العثور على وثائق API هنا.
Atomic Forge عبارة عن مجموعة من الأدوات التي يمكن استخدامها مع Atomic Agents لتوسيع وظائفها. تشمل الأدوات الحالية ما يلي:
آلة حاسبة
بحث سيركس إن جي
يوتيوب نسخة مكشطة
لمزيد من المعلومات حول استخدام الأدوات وإنشائها، راجع الملف التمهيدي لـ Atomic Forge.
نحن نرحب بالمساهمات! يرجى الاطلاع على دليل المطور للحصول على معلومات مفصلة حول كيفية المساهمة في Atomic Agents. فيما يلي بعض الخطوات السريعة:
شوكة المستودع
إنشاء فرع جديد ( git checkout -b feature-branch
)
قم بإجراء التغييرات الخاصة بك
تشغيل الاختبارات ( pytest --cov atomic_agents
)
قم بتنسيق الكود الخاص بك ( black atomic_agents atomic_assembler
)
قم بفرز الكود الخاص بك ( flake8 atomic_agents atomic_assembler
)
تنفيذ تغييراتك ( git commit -m 'Add some feature'
)
ادفع إلى الفرع ( git push origin feature-branch
)
افتح طلب السحب
للحصول على إعداد التطوير الكامل وإرشاداته، يرجى الرجوع إلى دليل المطور.
تم ترخيص هذا المشروع بموجب ترخيص MIT - راجع ملف الترخيص للحصول على التفاصيل.