Penting
autogen-agentchat~=0.2
PIPI Paket.Autogen adalah kerangka kerja open-source untuk membangun sistem agen AI. Ini menyederhanakan penciptaan aplikasi agen yang digerakkan oleh peristiwa, terdistribusi, dapat diskalakan, dan tangguh. Ini memungkinkan Anda untuk dengan cepat membangun sistem di mana agen AI berkolaborasi dan melakukan tugas secara mandiri atau dengan pengawasan manusia.
Autogen merampingkan pengembangan dan penelitian AI, memungkinkan penggunaan beberapa model bahasa besar (LLM), alat terintegrasi, dan pola desain multi-agen canggih. Anda dapat mengembangkan dan menguji sistem agen Anda secara lokal, kemudian menyebarkan ke lingkungan cloud terdistribusi seiring dengan meningkatnya kebutuhan Anda.
Autogen menawarkan fitur utama berikut:
↑ Kembali ke atas ↑
Autogen memiliki beberapa paket dan dibangun di atas arsitektur berlapis. Saat ini, ada tiga API utama yang dapat ditargetkan oleh aplikasi Anda:
API inti autogen, autogen-core
, dibangun mengikuti model aktor. Ini mendukung pesan asinkron yang lewat antara agen dan alur kerja berbasis peristiwa. Agen di lapisan inti menangani dan memproduksi pesan yang diketik, menggunakan pesan langsung, yang berfungsi seperti RPC, atau melalui penyiaran ke topik, yang merupakan pub-sub. Agen dapat didistribusikan dan diimplementasikan dalam bahasa pemrograman yang berbeda, sambil tetap berkomunikasi satu sama lain. Mulailah di sini jika Anda membangun sistem agen yang dapat diskalakan dan digerakkan oleh peristiwa.
AgenChat API, autogen-agentchat
, didorong oleh tugas dan pada tingkat tinggi seperti autogen 0,2. Ini memungkinkan Anda untuk mendefinisikan agen percakapan, menyusunnya menjadi tim dan kemudian menggunakannya untuk menyelesaikan tugas. Agenchat sendiri dibangun di atas lapisan inti, tetapi mengabstraksi banyak konsep sistem tingkat rendahnya. Jika alur kerja Anda tidak cocok dengan AgenChat API, sebagai gantinya target inti. Mulailah di sini jika Anda hanya ingin fokus untuk memulai dengan cepat dengan alur kerja multi-agen.
Paket ekstensi autogen-ext
berisi implementasi antarmuka inti menggunakan sistem pihak ke-3, seperti klien model OpenAI dan pelaksana kode Azure. Selain ekstensi bawaan, paket ini mengakomodasi ekstensi yang dikontribusikan masyarakat melalui sub-paket namespace. Kami menantikan kontribusi Anda!
↑ Kembali ke atas ↑
Pertama instal paket:
pip install ' autogen-agentchat==0.4.0.dev6 ' ' autogen-ext[openai]==0.4.0.dev6 '
Kode berikut menggunakan model GPT-4O OpenAI dan Anda perlu memberikan kunci API Anda untuk dijalankan. Untuk menggunakan model Azure Openai, ikuti instruksi di sini.
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 belum mendukung semua antarmuka yang ditawarkan Python SDK tetapi kami berupaya membawa mereka ke paritas. Untuk menggunakan .NET SDK, Anda perlu menambahkan referensi paket ke SRC di proyek Anda. Kami akan segera merilis paket Nuget dan akan memperbarui instruksi ini saat itu terjadi.
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
Kemudian, tentukan dan jalankan agen pertama Anda:
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
↑ Kembali ke atas ↑
↑ Kembali ke atas ↑
Autogen V0.4 adalah penulisan ulang autogen dari bawah ke atas untuk menciptakan perpustakaan yang lebih kuat, dapat diskalakan, lebih mudah digunakan, lintas bahasa untuk membangun agen AI. Beberapa fitur utama termasuk pesan asinkron, dukungan untuk agen terdistribusi yang dapat diskalakan, desain modular yang dapat diperluas (membawa agen Anda sendiri, mengimplementasikan perilaku sesuka Anda), dukungan lintas-bahasa, peningkatan pengamatan, dan integrasi pengetikan penuh. Ini adalah perubahan yang melanggar.
Kami mendengarkan pengguna autogen kami, belajar dari apa yang berhasil, dan disesuaikan untuk memperbaiki apa yang tidak. Kami menyatukan tim luas yang bekerja pada berbagai jenis agen AI dan berkolaborasi untuk merancang kerangka kerja yang lebih baik dengan model pemrograman yang lebih fleksibel dan skalabilitas yang lebih baik.
Kami ingin menegaskan kembali komitmen kami untuk mendukung versi asli autogen (0,2) dan desain ulang (0,4). Autogen 0.4 masih bekerja dalam proses, dan kami membagikan kode sekarang untuk dibangun dengan masyarakat. Tidak ada rencana untuk mencela autogen asli dalam waktu dekat, dan kedua versi akan dipertahankan secara aktif.
Kode ini masih eksperimental, jadi harapkan perubahan dan bug saat kami bekerja menuju rilis 0,4 yang stabil. Kami mendorong pengadopsi awal untuk mencobanya, memberi kami umpan balik, dan berkontribusi. Bagi mereka yang mencari versi stabil, kami sarankan untuk terus menggunakan 0.2
Jika Anda menganggap diri Anda sebagai adopter awal, Anda merasa nyaman membuat beberapa perubahan pada kode Anda, dan bersedia mencobanya, maka ya.
Autogen 0.2 dapat dipasang dengan:
pip install autogen-agentchat~=0.2
Ya, ini ada di peta jalan. Rencana kami saat ini adalah untuk memungkinkan implementasi Autogen Studio pada API tingkat tinggi AgentChat yang mengimplementasikan serangkaian fungsionalitas agen (agen, tim, dll).
Untuk pengguna yang akrab dengan Autogen, perpustakaan AgenChat di 0,4 memberikan konsep serupa. Kami sedang mengerjakan panduan migrasi.
Kami masih secara aktif mengembangkan autogen 0,4. Salah satu fitur baru yang menarik adalah munculnya SDK baru untuk .NET. SDK Python lebih jauh di depan saat ini tetapi tujuan kami adalah untuk mencapai paritas. Kami bertujuan untuk menambahkan bahasa tambahan dalam rilis mendatang.
Kami masih berupaya meningkatkan dokumentasi, sampel, dan meningkatkan kode. Kami berharap untuk merilis sebelum akhir tahun ketika semuanya siap.
Rekel -receare dari kerangka kerja dimulai dengan beberapa tim Microsoft yang berkumpul untuk mengatasi kesenjangan dan pembelajaran dari Autogen 0.2 - menggabungkan ide -ide dari beberapa proyek pendahulunya. Tim mengerjakan ini secara internal selama beberapa waktu untuk memastikan keselarasan sebelum pindah pekerjaan kembali ke Open pada Oktober 2024.
Gunakan masalah GitHub untuk laporan bug dan permintaan fitur. Gunakan diskusi GitHub untuk pertanyaan dan diskusi umum.
Kami tidak dapat menggunakan perselisihan untuk diskusi proyek. Oleh karena itu, kami meminta semua diskusi terjadi di https://github.com/microsoft/autogen/discussions/ maju.
https://github.com/microsoft/autogen/ tetap menjadi satu -satunya repo resmi untuk pengembangan dan dukungan autogen. Kami sadar bahwa ada ribuan garpu autogen, termasuk banyak untuk pengembangan pribadi dan pembangunan startup dengan atau di atas perpustakaan. Kami tidak terlibat dengan salah satu dari garpu ini dan tidak mengetahui adanya rencana yang terkait dengannya.
Proyek kami tetap sepenuhnya open-source dan dapat diakses oleh semua orang. Kami memahami bahwa beberapa garpu menggunakan lisensi yang berbeda untuk menyelaraskan dengan minat yang berbeda. Kami akan terus menggunakan lisensi yang paling permisif (MIT) untuk proyek tersebut.
Saat ini, kami tidak dapat melakukan rilis ke paket pyautogen
melalui PYPI karena perubahan untuk paket kepemilikan yang dilakukan tanpa keterlibatan kami. Selain itu, kami beralih menggunakan beberapa paket untuk menyelaraskan dengan desain baru. Silakan lihat detailnya di sini.
Kami berterima kasih kepada semua kontributor untuk Autogen 0.2 dan kami berharap dapat terus berkolaborasi dengan semua orang di komunitas autogen.
↑ Kembali ke atas ↑
Microsoft dan setiap kontributor memberi Anda lisensi untuk dokumentasi Microsoft dan konten lainnya di repositori ini di bawah Lisensi Publik Internasional Creative Commons Attribution 4.0, lihat file lisensi, dan beri Anda lisensi untuk kode apa pun dalam repositori di bawah lisensi MIT, lihat file kode lisensi.
Microsoft, Windows, Microsoft Azure, dan/atau produk dan layanan Microsoft lainnya yang dirujuk dalam dokumentasi dapat berupa merek dagang atau merek dagang terdaftar dari Microsoft di Amerika Serikat dan/atau negara lain. Lisensi untuk proyek ini tidak memberi Anda hak untuk menggunakan nama, logo, atau merek dagang Microsoft. Pedoman merek dagang umum Microsoft dapat ditemukan di http://go.microsoft.com/fwlink/?linkid=254653.
Informasi privasi dapat ditemukan di https://go.microsoft.com/fwlink/?linkid=521839
Microsoft dan kontributor apa pun memiliki semua hak lain, baik di bawah hak cipta, paten, atau merek dagang masing -masing, baik secara implikasi, estoppel, atau sebaliknya.
↑ Kembali ke atas ↑