مهم
autogen-agentchat~=0.2
PYPI.Autogen هو إطار مفتوح المصدر لبناء أنظمة وكيل الذكاء الاصطناعى. إنه يبسط إنشاء تطبيقات وكيل مدفوعة الحدث ، موزعة ، قابلة للتطوير ، ومرنة. يتيح لك بناء أنظمة بسرعة حيث يتعاون وكلاء الذكاء الاصطناعي وأداء المهام بشكل مستقل أو مع الإشراف على الإنسان.
تبسيط Autogen تنمية AI وبحوث AI ، مما يتيح استخدام نماذج لغة كبيرة متعددة (LLMS) ، والأدوات المتكاملة ، وأنماط تصميم متعددة الوكلاء المتقدمة. يمكنك تطوير واختبار أنظمة الوكيل محليًا ، ثم النشر إلى بيئة سحابية موزعة مع نمو احتياجاتك.
يوفر Autogen الميزات الرئيسية التالية:
↑ العودة إلى الأعلى ↑
يحتوي Autogen على العديد من الحزم ويتم بناءه على بنية ذات طبقات. حاليًا ، هناك ثلاثة واجهات برمجة التطبيقات الرئيسية التي يمكن أن يستهدفها تطبيقك:
تم تصميم واجهة برمجة التطبيقات الأساسية لـ Autogen ، autogen-core
، بعد نموذج الممثل. وهو يدعم رسالة غير متزامنة بين الوكلاء وسير العمل القائم على الأحداث. الوكلاء في الطبقة الأساسية معالجة وإنتاج الرسائل المكتوبة ، باستخدام إما الرسائل المباشرة ، والتي تعمل مثل RPC ، أو عن طريق البث إلى الموضوعات ، والتي هي pub-sub. يمكن توزيع الوكلاء وتنفيذها بلغات برمجة مختلفة ، بينما لا يزالون يتواصلون مع بعضهم البعض. ابدأ هنا إذا كنت تقوم ببناء أنظمة وكيل قابلة للتطوير والتي تعتمد على الأحداث.
APAICHAT API ، autogen-agentchat
، مدفوعة بالمهمة وعلى مستوى عالٍ مثل Autogen 0.2. يتيح لك تحديد وكلاء المحادثة ، وتكوينهم في فرق ثم استخدامها لحل المهام. تم بناء AgentChat نفسها على الطبقة الأساسية ، لكنها تتجذ الكثير من مفاهيم نظامها منخفضة المستوى. إذا كانت مهام سير العمل الخاصة بك لا تتناسب مع واجهة برمجة تطبيقات AgentChat ، فإن Target Core بدلاً من ذلك. ابدأ هنا إذا كنت ترغب فقط في التركيز على البدء بسرعة مع سير العمل متعدد العوامل.
تحتوي حزمة الامتداد autogen-ext
على تطبيقات الواجهات الأساسية باستخدام أنظمة الطرف الثالث ، مثل Openai Model Client و Azure Code Secorters. إلى جانب الامتدادات المدمجة ، تستوعب الحزمة امتدادات تم توزيعها على المجتمع من خلال الحزم الفرعية للمساحة. نحن نتطلع إلى مساهماتك!
↑ العودة إلى الأعلى ↑
قم أولاً بتثبيت الحزم:
pip install ' autogen-agentchat==0.4.0.dev6 ' ' autogen-ext[openai]==0.4.0.dev6 '
يستخدم الرمز التالي طراز GPT-4O من Openai وتحتاج إلى توفير مفتاح API الخاص بك للتشغيل. لاستخدام نماذج Azure Openai ، اتبع التعليمات هنا.
import asyncio
from autogen_agentchat . agents import AssistantAgent
from autogen_agentchat . task import Console , TextMentionTermination
from autogen_agentchat . teams import RoundRobinGroupChat
from autogen_ext . models import OpenAIChatCompletionClient
# Define a tool
async def get_weather ( city : str ) -> str :
return f"The weather in { city } is 73 degrees and Sunny."
async def main () -> None :
# Define an agent
weather_agent = AssistantAgent (
name = "weather_agent" ,
model_client = OpenAIChatCompletionClient (
model = "gpt-4o-2024-08-06" ,
# api_key="YOUR_API_KEY",
),
tools = [ get_weather ],
)
# Define termination condition
termination = TextMentionTermination ( "TERMINATE" )
# Define a team
agent_team = RoundRobinGroupChat ([ weather_agent ], termination_condition = termination )
# Run the team and stream messages to the console
stream = agent_team . run_stream ( task = "What is the weather in New York?" )
await Console ( stream )
asyncio . run ( main ())
لا يدعم .NET SDK بعد جميع الواجهات التي يقدمها Python SDK ولكننا نعمل على جلبها إلى التكافؤ. لاستخدام .NET SDK ، تحتاج إلى إضافة مرجع حزمة إلى SRC في مشروعك. سنقوم بإصدار حزم Nuget قريبًا وسنقوم بتحديث هذه الإرشادات عندما يحدث ذلك.
git clone https://github.com/microsoft/autogen.git
cd autogen
# Switch to the branch that has this code
git switch staging-dev
# Build the project
cd dotnet && dotnet build AutoGen.sln
# In your source code, add AutoGen to your project
dotnet add <your.csproj> reference <path to your checkout of autogen>/dotnet/src/Microsoft.AutoGen/Agents/Microsoft.AutoGen.Agents.csproj
ثم ، حدد وتشغيل وكيلك الأول:
using Microsoft . AutoGen . Abstractions ;
using Microsoft . AutoGen . Agents ;
using Microsoft . Extensions . DependencyInjection ;
using Microsoft . Extensions . Hosting ;
// send a message to the agent
var app = await App . PublishMessageAsync ( " HelloAgents " , new NewMessageReceived
{
Message = " World "
} , local : true ) ;
await App . RuntimeApp ! . WaitForShutdownAsync ( ) ;
await app . WaitForShutdownAsync ( ) ;
[ TopicSubscription ( " HelloAgents " ) ]
public class HelloAgent (
IAgentContext context ,
[ FromKeyedServices ( " EventTypes " ) ] EventTypes typeRegistry ) : ConsoleAgent (
context ,
typeRegistry ) ,
ISayHello ,
IHandle < NewMessageReceived > ,
IHandle < ConversationClosed >
{
public async Task Handle ( NewMessageReceived item )
{
var response = await SayHello ( item . Message ) . ConfigureAwait ( false ) ;
var evt = new Output
{
Message = response
} . ToCloudEvent ( this . AgentId . Key ) ;
await PublishEventAsync ( evt ) . ConfigureAwait ( false ) ;
var goodbye = new ConversationClosed
{
UserId = this . AgentId . Key ,
UserMessage = " Goodbye "
} . ToCloudEvent ( this . AgentId . Key ) ;
await PublishEventAsync ( goodbye ) . ConfigureAwait ( false ) ;
}
public async Task Handle ( ConversationClosed item )
{
var goodbye = $" ********************* { item . UserId } said { item . UserMessage } ************************ " ;
var evt = new Output
{
Message = goodbye
} . ToCloudEvent ( this . AgentId . Key ) ;
await PublishEventAsync ( evt ) . ConfigureAwait ( false ) ;
await Task . Delay ( 60000 ) ;
await App . ShutdownAsync ( ) ;
}
public async Task < string > SayHello ( string ask )
{
var response = $" n n n n ***************Hello { ask } ********************** n n n n " ;
return response ;
}
}
public interface ISayHello
{
public Task < string > SayHello ( string ask ) ;
}
dotnet run
↑ العودة إلى الأعلى ↑
↑ العودة إلى الأعلى ↑
Autogen V0.4 هي إعادة كتابة من الأليئة التلقائية من الألف إلى الياء لإنشاء مكتبة أكثر قوة وقابلة للتطوير وأسهل في الاستخدام والمكتبة عبر اللغة لبناء وكلاء الذكاء الاصطناعي. تشمل بعض الميزات الرئيسية الرسائل غير المتزامنة ، ودعم العوامل الموزعة القابلة للتطوير ، والتصميم القابل للتمديد المعياري (إحضار الوكلاء الخاص بك ، وتنفيذ السلوكيات كما تريد) ، ودعم اللغة المتقاطع ، وتحسين الملاحظة ، وتكامل الكتابة الكامل. إنه تغيير كسر.
لقد استمعنا إلى مستخدمي Autogen لدينا ، وتعلمنا مما كان يعمل ، وتكييفنا لإصلاح ما لم يكن. جمعنا فرق واسعة النطاق تعمل على العديد من أنواع مختلفة من وكلاء الذكاء الاصطناعى وتعاوننا لتصميم إطار محسّن مع نموذج برمجة أكثر مرونة وقابلية التوسع بشكل أفضل.
نريد إعادة التأكيد على التزامنا بدعم كل من الإصدار الأصلي من Autogen (0.2) وإعادة التصميم (0.4). لا يزال Autogen 0.4 يعمل أثناء التقدم ، وقد شاركنا الكود الآن للبناء مع المجتمع. لا توجد خطط لإهانة Autogen الأصلية في أي وقت قريب ، وسيتم الحفاظ على كلا الإصدارين بنشاط.
لا يزال هذا الرمز تجريبيًا ، لذا توقع التغييرات والبق أثناء عملنا نحو إصدار مستقر 0.4. نحن نشجع المتبنين الأوائل على تجربتها ، وإعطائنا ملاحظات ، والمساهمة. لأولئك الذين يبحثون عن نسخة مستقرة نوصي بمواصلة استخدام 0.2
إذا كنت تعتبر نفسك متمردًا مبكرًا ، فأنت مرتاح لإجراء بعض التغييرات على التعليمات البرمجية الخاصة بك ، وكنت على استعداد لتجربته ، ثم نعم.
يمكن تثبيت Autogen 0.2 مع:
pip install autogen-agentchat~=0.2
نعم ، هذا على خريطة الطريق. تتمثل خطتنا الحالية في تمكين تنفيذ استوديو Autogen على واجهة برمجة تطبيقات AgentChat عالية المستوى والتي تنفذ مجموعة من وظائف الوكيل (الوكلاء ، الفرق ، إلخ).
بالنسبة للمستخدمين المطلعين على Autogen ، توفر مكتبة AgentChat في 0.4 مفاهيم مماثلة. نحن نعمل على دليل الترحيل.
ما زلنا نطور Autogen 0.4 بنشاط. ميزة جديدة ومثيرة هي ظهور SDKs جديدة لـ .NET. تم تقديم Python SDKs في هذا الوقت ولكن هدفنا هو تحقيق التكافؤ. نهدف إلى إضافة لغات إضافية في الإصدارات المستقبلية.
ما زلنا نعمل على تحسين الوثائق والعينات وتعزيز الكود. نأمل أن ننشر قبل نهاية العام عندما تكون الأمور جاهزة.
بدأت بنية البحث في الإطار مع العديد من فرق Microsoft معا لمعالجة الفجوات والتعلم من Autogen 0.2 - دمج الأفكار من العديد من المشاريع السابقة. عمل الفريق على هذا داخليًا لبعض الوقت لضمان المحاذاة قبل العودة إلى العمل المفتوح في أكتوبر 2024.
استخدم مشكلات github لتقارير الأخطاء وطلبات الميزات. استخدم مناقشات github للأسئلة والمناقشات العامة.
نحن غير قادرين على استخدام Discord لمناقشات المشروع. لذلك ، نطلب أن تتم جميع المناقشات على https://github.com/microsoft/autogen/discussions/ للمضي قدمًا.
https://github.com/microsoft/autogen/ لا يزال الريبو الرسمي الوحيد لتطوير ودعم Autogen. نحن ندرك أن هناك الآلاف من الشوكات من Autogen ، بما في ذلك الكثير من أجل التطوير الشخصي وإنشاء الشركات الناشئة مع أو علاوة على المكتبة. نحن لسنا متورطين في أي من هذه الشوكات ولا ندرك أي خطط تتعلق بها.
يظل مشروعنا مفتوحًا بالكامل ويمكن للوصول إلى الجميع. نحن نفهم أن بعض الشوكات تستخدم تراخيص مختلفة للتوافق مع المصالح المختلفة. سوف نستمر في استخدام أكثر الترخيص المسمار (MIT) للمشروع.
في الوقت الحالي ، لا يمكننا إصدار إصدارات إلى حزمة pyautogen
عبر PYPI بسبب تغيير في ملكية الحزمة التي تم إجراؤها دون مشاركتنا. بالإضافة إلى ذلك ، ننتقل إلى استخدام حزم متعددة للتوافق مع التصميم الجديد. يرجى الاطلاع على التفاصيل هنا.
نحن ممتنون لجميع المساهمين في Autogen 0.2 ونتطلع إلى الاستمرار في التعاون مع الجميع في مجتمع Autogen.
↑ العودة إلى الأعلى ↑
يمنحك Microsoft وأي مساهمون ترخيصًا لوثائق Microsoft والمحتوى الآخر في هذا المستودع بموجب ترخيص Creative Commons Attribution 4.0 الدولي ، راجع ملف الترخيص ، ومنحك ترخيصًا لأي رمز في المستودع بموجب ترخيص معهد ماساتشوستس للتكنولوجيا ، انظر ملف رمز الترخيص.
قد تكون Microsoft و Windows و Microsoft Azure و/أو منتجات وخدمات Microsoft الأخرى المشار إليها في الوثائق إما علامات تجارية أو علامات تجارية مسجلة لـ Microsoft في الولايات المتحدة و/أو دول أخرى. لا تمنحك تراخيص هذا المشروع حقوقًا في استخدام أي أسماء أو شعارات أو علامات تجارية. يمكن العثور على إرشادات العلامة التجارية العامة لـ Microsoft على http://go.microsoft.com/fwlink/؟linkid=254653.
يمكن العثور على معلومات الخصوصية على https://go.microsoft.com/fwlink/؟linkid=521839
تحتفظ Microsoft وأي مساهمون بجميع الحقوق الأخرى ، سواء كانت حقوق النشر أو براءات الاختراع أو العلامات التجارية الخاصة بكل منها ، سواء عن طريق التضمين ، أو estoppel ، أو غير ذلك.
↑ العودة إلى الأعلى ↑