สำคัญ
autogen-agentchat~=0.2
PYPI แพ็คเกจAutogen เป็นกรอบโอเพนซอร์ซสำหรับการสร้างระบบตัวแทน AI มันทำให้การสร้างแอพพลิเคชั่นที่ขับเคลื่อนด้วยเหตุการณ์, กระจาย, ปรับขนาดได้และแอพพลิเคชั่นตัวแทนที่ยืดหยุ่นและยืดหยุ่น ช่วยให้คุณสามารถสร้างระบบอย่างรวดเร็วที่ตัวแทน AI ทำงานร่วมกันและดำเนินงานอย่างอิสระหรือด้วยการกำกับดูแลของมนุษย์
Autogen ปรับปรุงการพัฒนาและการวิจัย AI ทำให้การใช้แบบจำลองภาษาขนาดใหญ่หลายแบบ (LLMS) เครื่องมือรวมและรูปแบบการออกแบบหลายตัวแทนขั้นสูง คุณสามารถพัฒนาและทดสอบระบบตัวแทนของคุณในพื้นที่จากนั้นปรับใช้กับสภาพแวดล้อมคลาวด์แบบกระจายเมื่อความต้องการของคุณเติบโต
Autogen มีคุณสมบัติสำคัญต่อไปนี้:
↑กลับไปด้านบน↑
Autogen มีหลายแพ็คเกจและสร้างขึ้นบนสถาปัตยกรรมแบบเลเยอร์ ปัจจุบันมี API หลักสามตัวที่แอปพลิเคชันของคุณสามารถกำหนดเป้าหมายได้:
API หลักของ autogen, autogen-core
ถูกสร้างขึ้นตามแบบจำลองนักแสดง รองรับข้อความแบบอะซิงโครนัสที่ผ่านระหว่างตัวแทนและเวิร์กโฟลว์ตามเหตุการณ์ ตัวแทนในการจัดการเลเยอร์หลักและสร้างข้อความที่พิมพ์โดยใช้การส่งข้อความโดยตรงซึ่งทำหน้าที่เช่น RPC หรือผ่านการออกอากาศไปยังหัวข้อซึ่งเป็น Pub-Sub ตัวแทนสามารถแจกจ่ายและนำไปใช้ในภาษาการเขียนโปรแกรมที่แตกต่างกันในขณะที่ยังคงสื่อสารกัน เริ่มต้นที่นี่หากคุณกำลังสร้างระบบตัวแทนที่ขับเคลื่อนด้วยเหตุการณ์ที่ปรับขนาดได้
AgentChat API, autogen-agentchat
เป็นงานที่ขับเคลื่อนและอยู่ในระดับสูงเช่น Autogen 0.2 ช่วยให้คุณกำหนดตัวแทนการสนทนาเขียนเข้ามาเป็นทีมแล้วใช้เพื่อแก้ปัญหางาน AgentChat นั้นสร้างขึ้นบนชั้นหลัก แต่มันเป็นบทสรุปแนวคิดระบบระดับต่ำมาก หากเวิร์กโฟลว์ของคุณไม่พอดีกับ AgentChat API ให้เป้าหมายแกนแทนแทน เริ่มต้นที่นี่หากคุณต้องการมุ่งเน้นไปที่การเริ่มต้นใช้งานอย่างรวดเร็วด้วยเวิร์กโฟลว์หลายตัวแทน
Package autogen-ext
มีการใช้งานอินเตอร์เฟสหลักโดยใช้ระบบบุคคลที่สามเช่น OpenAI Model Client และ Azure Code Consutors นอกเหนือจากส่วนขยายในตัวแล้วแพ็คเกจนี้ยังรองรับส่วนขยายที่มีชุมชนที่มีชุมชนผ่านแพคเกจย่อยเนมสเปซ เราหวังว่าจะมีส่วนร่วมของคุณ!
↑กลับไปด้านบน↑
ก่อนอื่นติดตั้งแพ็คเกจ:
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 จากพื้นดินเพื่อสร้างห้องสมุดข้ามภาษาที่มีความแข็งแกร่งมากขึ้นปรับขนาดได้ง่ายขึ้นและใช้งานง่ายกว่าสำหรับการสร้างตัวแทน AI คุณสมบัติที่สำคัญบางอย่าง ได้แก่ การส่งข้อความแบบอะซิงโครนัสสนับสนุนตัวแทนกระจายที่ปรับขนาดได้ มันเป็นการเปลี่ยนแปลงที่แตกหัก
เราฟังผู้ใช้ Autogen ของเราเรียนรู้จากสิ่งที่ทำงานและปรับให้เข้ากับสิ่งที่ไม่ได้ เรารวบรวมทีมงานที่หลากหลายที่ทำงานกับตัวแทน AI หลายประเภทและร่วมมือกันในการออกแบบกรอบการทำงานที่ได้รับการปรับปรุงด้วยรูปแบบการเขียนโปรแกรมที่ยืดหยุ่นมากขึ้นและความสามารถในการปรับขนาดที่ดีขึ้น
เราต้องการยืนยันความมุ่งมั่นของเราในการสนับสนุนทั้ง Autogen เวอร์ชันดั้งเดิม (0.2) และการออกแบบใหม่ (0.4) Autogen 0.4 ยังคงทำงานอยู่และเราได้แชร์รหัสตอนนี้เพื่อสร้างกับชุมชน ไม่มีแผนที่จะเลิกใช้ Autogen ดั้งเดิมได้เร็ว ๆ นี้และทั้งสองเวอร์ชันจะได้รับการดูแลอย่างแข็งขัน
รหัสนี้ยังคงทดลองอยู่ดังนั้นคาดว่าจะมีการเปลี่ยนแปลงและข้อบกพร่องในขณะที่เราทำงานไปสู่การเปิดตัว 0.4 ที่เสถียร เราขอแนะนำให้ผู้ใช้งานยุคแรกลองใช้ให้ข้อเสนอแนะและมีส่วนร่วม สำหรับผู้ที่กำลังมองหาเวอร์ชันที่เสถียรเราขอแนะนำให้ใช้ 0.2
หากคุณคิดว่าตัวเองเป็นผู้ใช้ก่อนหน้านี้คุณรู้สึกสบายใจที่จะทำการเปลี่ยนแปลงรหัสของคุณและยินดีที่จะลองใช้ใช่แล้วใช่
สามารถติดตั้ง Autogen 0.2 ได้ด้วย:
pip install autogen-agentchat~=0.2
ใช่นี่คือแผนงาน แผนปัจจุบันของเราคือการเปิดใช้งานการใช้งาน Autogen Studio ใน AgentChat ระดับสูง API ซึ่งใช้ชุดฟังก์ชันตัวแทน (ตัวแทนทีม ฯลฯ )
สำหรับผู้ใช้ที่คุ้นเคยกับ Autogen ห้องสมุด AgentChat ใน 0.4 ให้แนวคิดที่คล้ายกัน เรากำลังทำงานกับคู่มือการย้ายถิ่น
เรายังคงพัฒนา Autogen 0.4 คุณสมบัติใหม่ที่น่าตื่นเต้นอย่างหนึ่งคือการเกิดขึ้นของ SDK ใหม่สำหรับ. NET Python SDKs อยู่ข้างหน้าในเวลานี้ แต่เป้าหมายของเราคือการบรรลุความเท่าเทียมกัน เรามุ่งมั่นที่จะเพิ่มภาษาเพิ่มเติมในการเผยแพร่ในอนาคต
เรายังคงทำงานเพื่อปรับปรุงเอกสารตัวอย่างและการปรับปรุงรหัส เราหวังว่าจะเปิดตัวก่อนสิ้นปีเมื่อสิ่งต่าง ๆ พร้อม
การเขียนซ้ำของเฟรมเวิร์กเริ่มต้นด้วยทีม Microsoft หลายทีมที่มารวมกันเพื่อจัดการกับช่องว่างและการเรียนรู้จาก Autogen 0.2 - การรวมแนวคิดจากโครงการรุ่นก่อนหลายโครงการ ทีมทำงานในช่วงเวลานี้เพื่อให้แน่ใจว่ามีการจัดตำแหน่งก่อนที่จะย้ายกลับไปที่การเปิดในเดือนตุลาคม 2567
ใช้ปัญหา GitHub สำหรับรายงานข้อผิดพลาดและคำขอคุณสมบัติ ใช้การอภิปรายของ GitHub สำหรับคำถามทั่วไปและการอภิปราย
เราไม่สามารถใช้ Discord สำหรับการอภิปรายโครงการ ดังนั้นเราขอให้การอภิปรายทั้งหมดเกิดขึ้นใน https://github.com/microsoft/autogen/discussions/ กำลังก้าวไปข้างหน้า
https://github.com/microsoft/autogen/ ยังคงเป็น repo อย่างเป็นทางการเพียงอย่างเดียวสำหรับการพัฒนาและการสนับสนุนของ autogen เราตระหนักดีว่ามีส้อมของ autogen หลายพันครั้งรวมถึงการพัฒนาส่วนบุคคลและการสร้างที่เพิ่งเริ่มต้นด้วยหรือด้านบนของห้องสมุด เราไม่ได้เกี่ยวข้องกับส้อมเหล่านี้และไม่ได้ตระหนักถึงแผนใด ๆ ที่เกี่ยวข้องกับพวกเขา
โครงการของเรายังคงโอเพ่นซอร์สอย่างเต็มที่และสามารถเข้าถึงได้สำหรับทุกคน เราเข้าใจว่าส้อมบางตัวใช้ใบอนุญาตที่แตกต่างกันเพื่อให้สอดคล้องกับความสนใจที่แตกต่างกัน เราจะยังคงใช้ใบอนุญาตที่ได้รับอนุญาตมากที่สุด (MIT) สำหรับโครงการ
ปัจจุบันเราไม่สามารถวางจำหน่ายแพ็คเกจ pyautogen
ผ่าน PYPI เนื่องจากการเปลี่ยนแปลงการเป็นเจ้าของแพ็คเกจที่ทำโดยไม่มีการมีส่วนร่วมของเรา นอกจากนี้เรากำลังย้ายไปใช้หลายแพ็คเกจเพื่อให้สอดคล้องกับการออกแบบใหม่ โปรดดูรายละเอียดที่นี่
เราขอขอบคุณผู้มีส่วนร่วมทุกคนใน Autogen 0.2 และเราหวังว่าจะยังคงร่วมมือกับทุกคนในชุมชน Autogen
↑กลับไปด้านบน↑
Microsoft และผู้มีส่วนร่วมใด ๆ ให้สิทธิ์แก่คุณในเอกสาร Microsoft และเนื้อหาอื่น ๆ ในที่เก็บนี้ภายใต้ใบอนุญาต Creative Commons Attribution 4.0 International Public ดูไฟล์ใบอนุญาตและให้สิทธิ์ใช้งานรหัสใด ๆ ในพื้นที่เก็บข้อมูลภายใต้ใบอนุญาต MIT ดู ไฟล์รหัสใบอนุญาต
Microsoft, Windows, Microsoft Azure และ/หรือผลิตภัณฑ์และบริการ Microsoft อื่น ๆ ที่อ้างอิงในเอกสารอาจเป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Microsoft ในสหรัฐอเมริกาและ/หรือประเทศอื่น ๆ ใบอนุญาตสำหรับโครงการนี้ไม่อนุญาตให้คุณใช้ชื่อ Microsoft ชื่อโลโก้หรือเครื่องหมายการค้าใด ๆ แนวทางเครื่องหมายการค้าทั่วไปของ Microsoft สามารถดูได้ที่ http://go.microsoft.com/fwlink/?linkid=254653
ข้อมูลความเป็นส่วนตัวสามารถดูได้ที่ https://go.microsoft.com/fwlink/?linkid=521839
Microsoft และผู้มีส่วนร่วมใด ๆ ขอสงวนสิทธิ์อื่น ๆ ทั้งหมดไม่ว่าจะอยู่ภายใต้ลิขสิทธิ์สิทธิบัตรหรือเครื่องหมายการค้าของตนไม่ว่าจะโดยนัยยั้งหรืออื่น ๆ
↑กลับไปด้านบน↑