Wichtig
autogen-agentchat~=0.2
PYPI-Paket.Autogen ist ein Open-Source-Rahmen für den Aufbau von AI-Agentensystemen. Es vereinfacht die Erstellung von ereignisorientierten, verteilten, skalierbaren und widerstandsfähigen Agentenanwendungen. Sie können schnell Systeme erstellen, in denen KI -Agenten zusammenarbeiten und Aufgaben autonom oder mit menschlicher Aufsicht ausführen.
Autogen optimiert die KI-Entwicklung und -forschung und ermöglicht die Verwendung mehrerer großer Sprachmodelle (LLMs), integrierten Tools und erweiterten Multi-Agent-Designmustern. Sie können Ihre Agentensysteme lokal entwickeln und testen und dann in einer verteilten Cloud -Umgebung eingesetzt werden, wenn Ihre Bedürfnisse wachsen.
Autogen bietet die folgenden Schlüsselmerkmale:
↑ zurück nach oben ↑
Autogen verfügt über mehrere Pakete und basiert auf einer geschichteten Architektur. Derzeit gibt es drei Haupt -APIs, die Ihre Anwendung abzielen kann:
Die Kern-API von Autogen, autogen-core
, wird nach dem Akteurmodell gebaut. Es unterstützt asynchrone Nachrichten zwischen Agenten und ereignisbasierten Workflows. Agenten in der Kernschichthandle und produzieren typisierte Nachrichten, wobei entweder Direct Messaging verwendet wird, die wie RPC funktionieren, oder über das Rundfunk zu Themen, die Pub-Subs sind. Agenten können in verschiedenen Programmiersprachen verteilt und implementiert werden und gleichzeitig miteinander kommunizieren. Beginnen Sie hier, wenn Sie skalierbare, ereignisorientierte Agentensysteme bauen.
Die Agentchat autogen-agentchat
API ist aufgabengetrieben und auf hohem Niveau wie Autogen 0,2. Es ermöglicht Ihnen, Konversationsmittel zu definieren, sie in Teams zu komponieren und sie dann zum Lösen von Aufgaben zu verwenden. AgentChat selbst basiert auf der Kernschicht, aber es wird viel von seinen Systemkonzepten auf niedriger Ebene abstrahiert. Wenn Ihre Workflows nicht in die Agentchat -API passen, zielen Sie stattdessen auf den Kern. Beginnen Sie hier, wenn Sie sich nur darauf konzentrieren möchten, schnell mit Multi-Agents-Workflows zu beginnen.
Das Extensionspaket- autogen-ext
enthält Implementierungen der Kernschnittstellen unter Verwendung von Systemen von Drittanbietern, wie z. B. OpenAI-Modell Client und Azure Code Executors. Neben den eingebauten Erweiterungen bietet das Paket durch den Namespace-Unterverpackungen auf die von der Gemeinschaft konstruierte Erweiterungen. Wir freuen uns auf Ihre Beiträge!
↑ zurück nach oben ↑
Installieren Sie zuerst die Pakete:
pip install ' autogen-agentchat==0.4.0.dev6 ' ' autogen-ext[openai]==0.4.0.dev6 '
Der folgende Code verwendet das GPT-4O-Modell von OpenAI und Sie müssen Ihren API-Schlüssel zum Ausführen bereitstellen. Um Azure OpenAI -Modelle zu verwenden, befolgen Sie hier die Anweisung.
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 ())
Das .NET SDK unterstützt noch nicht alle Schnittstellen, die das Python SDK bietet, aber wir arbeiten daran, sie zu Parität zu bringen. Um das .NET SDK zu verwenden, müssen Sie in Ihrem Projekt eine Paketreferenz zum SRC hinzufügen. Wir werden bald Nuget -Pakete veröffentlichen und diese Anweisungen aktualisieren, wenn dies geschieht.
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
Definieren Sie dann und führen Sie Ihren ersten Agenten aus:
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
↑ zurück nach oben ↑
↑ zurück nach oben ↑
Autogen V0.4 ist eine Umschreibung von Autogen von Grund auf, um eine robustere, skalierbare, leichter zu verwendende, brennende Cross-Sprach-Bibliothek für den Bau von KI-Agenten zu schaffen. Einige wichtige Merkmale sind asynchrones Messaging, Unterstützung für skalierbare verteilte Wirkstoffe, modulares, erweiterbares Design (bringen Sie Ihre eigenen Agenten mit, implementieren Sie Verhaltensweisen implementieren, wie Sie möchten), Cross-Sprach-Unterstützung, verbesserte Beobachtbarkeit und vollständige Integration des Typs. Es ist eine brichtliche Veränderung.
Wir haben unseren Autogenbenutzern zugehört, aus dem, was funktionierte, gelernt und uns angepasst, um das zu beheben, was nicht. Wir haben weitreichende Teams zusammengebracht, die an vielen Arten von AI-Agenten arbeiteten und zusammengearbeitet haben, um ein verbessertes Framework mit einem flexibleren Programmiermodell und einer besseren Skalierbarkeit zu entwerfen.
Wir möchten unser Engagement für die Unterstützung sowohl der ursprünglichen Version von Autogen (0,2) als auch der Neugestaltung (0,4) bekräftigen. Autogen 0.4 arbeitet immer noch in der Arbeit, und wir haben den Code nun mit der Community geteilt. Es gibt keine Pläne, das ursprüngliche Autogen in Kürze abzubauen, und beide Versionen werden aktiv aufrechterhalten.
Dieser Code ist immer noch experimentell. Erwarten Sie also Änderungen und Fehler, während wir auf eine stabile Version von 0,4 hinarbeiten. Wir ermutigen Early Adopters, es auszuprobieren, uns Feedback zu geben und einen Beitrag zu leisten. Für diejenigen, die nach einer stabilen Version suchen, empfehlen wir, weiterhin 0,2 zu verwenden
Wenn Sie sich als frühen Anwender betrachten, nehmen Sie sich wohl, um Änderungen an Ihrem Code vorzunehmen, und sind bereit, ihn auszuprobieren, dann ja.
Autogen 0.2 kann mit:
pip install autogen-agentchat~=0.2
Ja, das ist auf der Roadmap. Unser aktueller Plan besteht darin, eine Implementierung von Autogen Studio auf der AgentChat High -Level -API zu ermöglichen, die eine Reihe von Agentenfunktionalitäten (Agenten, Teams usw.) implementiert.
Für Benutzer, die mit Autogen vertraut sind, bietet die AgentChat -Bibliothek in 0,4 ähnliche Konzepte. Wir arbeiten an einem Migrationsleitfaden.
Wir entwickeln immer noch aktiv Autogen 0,4. Eine aufregende neue Funktion ist die Entstehung neuer SDKs für .NET. Die Python -SDKs sind zu diesem Zeitpunkt weiter voran, aber unser Ziel ist es, Parität zu erreichen. Wir wollen in zukünftigen Veröffentlichungen zusätzliche Sprachen hinzufügen.
Wir arbeiten immer noch an der Verbesserung der Dokumentation, der Proben und der Verbesserung des Codes. Wir hoffen, vor Jahresende zu veröffentlichen, wenn die Dinge fertig sind.
Dieforschung des Frameworks begann damit, dass mehrere Microsoft -Teams zusammenkamen, um die Lücken und Erkenntnisse von Autogen 0.2 zu beheben, das Ideen aus mehreren Vorgängerprojekten zusammenführte. Das Team arbeitete einige Zeit intern daran, um eine Ausrichtung zu gewährleisten, bevor sie im Oktober 2024 in die Open zurückgingen.
Verwenden Sie GitHub -Probleme für Fehlerberichte und Feature -Anfragen. Verwenden Sie GitHub -Diskussionen für allgemeine Fragen und Diskussionen.
Wir können keine Zwietracht für Projektdiskussionen verwenden. Daher fordern wir, dass alle Diskussionen auf https://github.com/microsoft/autogen/discussions/ stattfinden.
https://github.com/microsoft/autogen/ bleibt das einzige offizielle Repo für die Entwicklung und Unterstützung von Autogen. Wir sind uns bewusst, dass es Tausende von Autogengabeln gibt, darunter viele für die persönliche Entwicklung und Startups, die mit oder über der Bibliothek aufgebaut sind. Wir sind nicht mit einer dieser Gabeln beteiligt und sind sich von ihnen in Bezug auf sie nicht bewusst.
Unser Projekt bleibt voll und ganz offen und für alle zugänglich. Wir verstehen, dass einige Gabeln unterschiedliche Lizenzen verwenden, um sich mit unterschiedlichen Interessen auszurichten. Wir werden weiterhin die befreite Lizenz (MIT) für das Projekt verwenden.
Derzeit können wir nicht in der Lage sein, das pyautogen
-Paket über PYPI zu veröffentlichen, da es sich um eine Änderung des Verpackungsbesitzes handelt, das ohne unsere Beteiligung durchgeführt wurde. Darüber hinaus wechseln wir mit mehreren Paketen, um uns mit dem neuen Design auszurichten. Weitere Informationen finden Sie hier.
Wir sind allen Mitarbeitern von Autogen 0.2 dankbar und freuen uns darauf, weiterhin mit allen in der Autogen -Community zusammenzuarbeiten.
↑ zurück nach oben ↑
Microsoft und alle Mitwirkenden erteilen Ihnen eine Lizenz für die Microsoft -Dokumentation und andere Inhalte in diesem Repository im Rahmen der Creative Commons Attribution 4.0 International Public License, siehe die Lizenzdatei und gewähren Ihnen eine Lizenz für den Code im Repository im Rahmen der MIT -Lizenz finden die lizenzcode-Datei.
Microsoft, Windows, Microsoft Azure und/oder andere in der Dokumentation verwiesene Microsoft -Produkte und -Dienste können entweder Marken oder eingetragene Marken von Microsoft in den USA und/oder anderen Ländern sein. Die Lizenzen für dieses Projekt gewähren Ihnen keine Rechte, Microsoft -Namen, Logos oder Marken zu verwenden. Die allgemeinen Markenrichtlinien von Microsoft finden Sie unter http://go.microsoft.com/fwlink/?linkid=254653.
Datenschutzinformationen finden Sie unter https://go.microsoft.com/fwlink/?linkid=521839
Microsoft und alle Mitwirkenden reservieren alle anderen Rechte, sei es im Rahmen ihrer jeweiligen Urheberrechte, Patente oder Marken, sei es implizit, implizit, im Verstärker oder auf andere Weise.
↑ zurück nach oben ↑