Важный
autogen-agentchat~=0.2
пакета PYPI.Autogen-это рамка с открытым исходным кодом для построения систем агентов ИИ. Он упрощает создание движимых событий, распределенных, масштабируемых и устойчивых агентских приложений. Это позволяет быстро создавать системы, где агенты искусственного интеллекта сотрудничают и выполняют задачи автономно или с человеческим надзором.
Автоген оптимизирует разработку и исследования ИИ, обеспечивая использование нескольких крупных языковых моделей (LLMS), интегрированных инструментов и передовых моделей многоагентного проектирования. Вы можете разрабатывать и проверять свои агентские системы локально, а затем развернуть в распределенной облачной среде по мере роста ваших потребностей.
Автоген предлагает следующие ключевые функции:
↑ Вернувшись к вершине ↑
Автоген имеет несколько пакетов и построен на слоистой архитектуре. В настоящее время существует три основных API, которые может нацелиться на ваше приложение:
Основной API Autogen, autogen-core
, построен после модели актера. Он поддерживает асинхронное передачу сообщения между агентами и рабочими процессами на основе событий. Агенты в основном уровне направляют и создают типированные сообщения, используя либо прямые сообщения, которые функционируют как RPC, либо через вещание к темам, которое является Pub-Sub. Агенты могут быть распределены и реализованы на разных языках программирования, при этом все еще общаются друг с другом. Начните здесь, если вы создаете масштабируемые, управляемые событиями агентские системы.
API AgentChat, autogen-agentchat
, управляется задачей и на высоком уровне, как Autogen 0,2. Это позволяет вам определять разговорные агенты, составлять их в команды, а затем использовать их для решения задач. Сам Agentchat построен на основном слое, но он отвлекает большую часть своих низкоуровневых системных концепций. Если ваши рабочие процессы не вписываются в API AgentChat, целевой ядро. Начните здесь, если вы просто хотите сосредоточиться на том, чтобы быстро начать работу с многоагентными рабочими процессами.
autogen-ext
-Ext-Ext содержит реализации основных интерфейсов с использованием сторонних систем, таких как клиент Openai Model и исполнители кода Azure. Помимо встроенных расширений, в пакете участвуют расширения, соответствующие сообществу, через подпункты пространства имен. Мы с нетерпением ждем вашего вклада!
↑ Вернувшись к вершине ↑
Сначала установите пакеты:
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 (0,2), так и редизайна (0,4). Autogen 0.4 по-прежнему работает незаконно, и сейчас мы поделились кодом, чтобы построить с сообществом. В ближайшее время нет планов, чтобы установить первоначальный автоген, и обе версии будут активно поддерживаться.
Этот код все еще экспериментальный, поэтому ожидайте изменения и ошибки, пока мы работаем над стабильным выпуском 0,4. Мы призываем ранних последователей попробовать это, дать нам отзыв и внести свой вклад. Для тех, кто ищет стабильную версию, мы рекомендуем продолжать использовать 0,2
Если вы считаете себя ранним последователем, вам удобно внести некоторые изменения в свой код и готовы попробовать его, то да.
Автоген 0,2 может быть установлен с:
pip install autogen-agentchat~=0.2
Да, это на дорожной карте. Наш текущий план состоит в том, чтобы включить внедрение Autogen Studio в API высокого уровня AgentChat, который реализует набор функциональных возможностей агента (агенты, команды и т. Д.).
Для пользователей, знакомых с Autogen, библиотека Agentchat в 0,4 дает аналогичные концепции. Мы работаем над руководством по миграции.
Мы все еще активно разрабатываем автоген 0,4. Одна захватывающая новая особенность - появление новых SDK для .NET. Python SDK в настоящее время продвигаются дальше, но наша цель - достичь паритета. Мы стремимся добавить дополнительные языки в будущих выпусках.
Мы все еще работаем над улучшением документации, образцов и улучшением кода. Мы надеемся выйти до конца года, когда все будет готово.
Rearchitecture структуры началась с того, что несколько команд Microsoft собирались вместе, чтобы устранить пробелы и знания от Autogen 0.2 - слияние идей из нескольких проектов предшественника. Команда некоторое время работала над этим, чтобы обеспечить выравнивание, прежде чем перейти на работу на открытие в октябре 2024 года.
Используйте проблемы GitHub для отчетов об ошибках и запросов функций. Используйте дискуссии GitHub для общих вопросов и обсуждений.
Мы не можем использовать Discord для обсуждений проектов. Поэтому мы просим, чтобы все обсуждения проходили на https://github.com/microsoft/autogen/discussions/ в будущем.
https://github.com/microsoft/autogen/ остается единственным официальным репо для разработки и поддержки Autogen. Мы знаем, что есть тысячи вилок автогена, в том числе многие для личного развития и стартапов, строящихся с или на вершине библиотеки. Мы не участвуем ни в одном из этих вилок и не знаем о каких -либо планах, связанных с ними.
Наш проект остается полностью открытым и доступным для всех. Мы понимаем, что некоторые вилки используют разные лицензии, чтобы соответствовать различным интересам. Мы будем продолжать использовать самую разрешающую лицензию (MIT) для проекта.
В настоящее время мы не можем сделать выбросы в пакет pyautogen
через PYPI из -за изменения владения пакетом, которое было сделано без нашего участия. Кроме того, мы переходим к использованию нескольких пакетов, чтобы соответствовать новому дизайну. Пожалуйста, смотрите подробности здесь.
Мы благодарны всем участникам Autogen 0.2, и мы с нетерпением ждем продолжения сотрудничества со всеми в сообществе автоген.
↑ Вернувшись к вершине ↑
Microsoft и любые участники предоставляют вам лицензию на документацию Microsoft и другой контент в этом хранилище в рамках международной лицензии Creative Commons Attribution 4.0, см. Файл лицензии и предоставьте вам лицензию на любой код в хранилище в соответствии с лицензией MIT, см. Файл лицензии.
Microsoft, Windows, Microsoft Azure и/или другие продукты и услуги Microsoft, упомянутые в документации, могут быть либо товарными знаками, либо зарегистрированными товарными знаками Microsoft в Соединенных Штатах и/или других странах. Лицензии для этого проекта не предоставляют вам права использовать любые имена Microsoft, логотипы или товарные знаки. Общие руководящие принципы Microsoft можно найти по адресу http://go.microsoft.com/fwlink/?linkid=254653.
Информацию о конфиденциальности можно найти по адресу https://go.microsoft.com/fwlink/?linkid=521839
Microsoft и любые участники оставляют за собой все остальные права, будь то под их соответствующими авторскими правами, патентами или товарными знаками, будь то подразумеванием, эстоппелем или иным образом.
↑ Вернувшись к вершине ↑