หลายเอเจนต์แบบสนทนา (AutoGen)
Microsoft AutoGen เปิดให้เอเจนต์หลายตัวสนทนากันจนได้ข้อสรุปร่วมกัน
หลายเอเจนต์แบบสนทนา (AutoGen) เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ
เหตุใดจึงใช้หลายเอเจนต์
เอเจนต์หนึ่งตัวที่มีเครื่องมือทั้งหมดมักแย่กว่าเอเจนต์เฉพาะทางสองตัวที่สื่อสารกัน ความเชี่ยวชาญเฉพาะด้านดีกว่าความสามารถรอบด้าน
ตัวอย่าง:
- Researcher + นักเขียน — ตัวหนึ่งรวบรวมข้อมูล อีกตัวเรียบเรียงคำตอบ
- Coder + ผู้ตรวจทาน — ตัวหนึ่งเขียนโค้ด อีกตัววิจารณ์โค้ด
- พร็อกซีผู้ใช้ + ผู้ช่วย — ตัวหนึ่งทำหน้าที่แทนผู้ใช้ อีกตัวสื่อสารกับผู้ปฏิบัติงาน
รูปแบบ AutoGen
Microsoft AutoGen ช่วยให้เอเจนต์สนทนากันได้ โดยแต่ละตัวเป็น AssistantAgent หรือ UserProxyAgent ทั้งสองจะแลกเปลี่ยนข้อความจนกว่าจะได้ข้อสรุปร่วมกัน
Two-Agent Example
# pip install pyautogen
from autogen import AssistantAgent, UserProxyAgent
llm_config = {'model': 'gpt-4o-mini', 'api_key': '...'}
assistant = AssistantAgent(
name='coder',
system_message='You write Python code. Reply with code only.',
llm_config=llm_config
)
user_proxy = UserProxyAgent(
name='user',
human_input_mode='NEVER',
code_execution_config={'work_dir': './workdir'}
)
user_proxy.initiate_chat(assistant, message='Write a function that returns the factorial of n.')UserProxyAgent
ทำหน้าที่แทนมนุษย์ (หรือสคริปต์) สามารถเรียกใช้โค้ดที่ผู้ช่วยส่งกลับมา ถามคำถามเพื่อขอความชัดเจน และตัดสินใจว่างานเสร็จสิ้นเมื่อใด
เอเจนต์ที่สนทนาได้
เอเจนต์ AutoGen ทั้งหมดสืบทอดมาจาก ConversableAgent คุณสามารถสร้างคลาสย่อยเพื่อกำหนดพฤติกรรมแบบกำหนดเองได้
GroupChat for >2 Agents
class AssistantAgent:
def __init__(self, name, system_message=''):
self.name = name
self.system_message = system_message
def initiate_chat(self, manager, message):
manager.run(self, message)
class GroupChat:
def __init__(self, agents, messages, max_round=12):
self.agents = agents
self.messages = messages
self.max_round = max_round
class GroupChatManager:
def __init__(self, groupchat, llm_config=None):
self.groupchat = groupchat
def run(self, initiator, message):
self.groupchat.messages.append({'role': initiator.name, 'content': message})
for i, agent in enumerate(self.groupchat.agents):
if i >= self.groupchat.max_round:
break
reply = f'{agent.name} contributes to: {message}'
self.groupchat.messages.append({'role': agent.name, 'content': reply})
print(reply)
user_proxy = AssistantAgent(name='user_proxy')
researcher = AssistantAgent(name='researcher')
writer = AssistantAgent(name='writer')
critic = AssistantAgent(name='critic')
group = GroupChat(agents=[user_proxy, researcher, writer, critic], messages=[], max_round=12)
manager = GroupChatManager(groupchat=group, llm_config={})
user_proxy.initiate_chat(manager, message='Write a blog post about RAG.')
การเลือกผู้พูด
GroupChatManager จะตัดสินใจว่าใครพูดต่อไป กลยุทธ์มีดังนี้:
- วนรอบ — หมุนเวียนตามลำดับที่กำหนด
- อัตโนมัติ — LLM เลือกตามบทสนทนา
- ด้วยตนเอง — มนุษย์เป็นผู้เลือก
เงื่อนไขการสิ้นสุด
บทสนทนาจะสิ้นสุดเมื่อ:
- เอเจนต์ส่งคีย์เวิร์ด TERMINATE
- ครบจำนวนรอบสูงสุด
- UserProxyAgent ตัดสินใจว่างานเสร็จสิ้นแล้ว
การเรียกใช้โค้ด
UserProxyAgent สามารถเรียกใช้โค้ดใด ๆ ที่ผู้ช่วยส่งมาในบล็อกโค้ดได้ ควรใช้แซนด์บ็อกซ์:
user_proxy = UserProxyAgent(
name='user',
code_execution_config={
'work_dir': './workdir',
'use_docker': True # safer
}
)จับตาดูต้นทุน
บทสนทนาหลายเอเจนต์มีค่าใช้จ่ายสูง — เอเจนต์ N ตัว × รอบ M รอบ = การเรียกใช้ LLM N×M ครั้งต่องาน ควรจำกัดจำนวนรอบอย่างเข้มงวด
ควรใช้เมื่อใด
- งานที่มีการแบ่งบทบาทชัดเจน เช่น การวิจัย การเขียนโค้ด และการตรวจทาน
- งานที่คุณภาพดีขึ้นเมื่อมีการวิจารณ์
- งานที่ซับซ้อนเกินกว่าจะจัดการด้วยพรอมป์ของเอเจนต์เดียว
เมื่อไม่ควรใช้ NOT
- ถามตอบทั่วไป — เอเจนต์เดียวเร็วกว่าและประหยัดกว่า
- เส้นทางที่ไวต่อเวลาแฝง
- งานที่เอเจนต์ตัวเดียวสามารถทำได้ดีทั้งหมด
AutoGen เทียบกับ LangGraph
AutoGen ขับเคลื่อนด้วยบทสนทนา (การสนทนาแบบอิสระระหว่างเอเจนต์) ส่วน LangGraph ขับเคลื่อนด้วยกราฟ (เครื่องสถานะที่กำหนดไว้อย่างชัดเจน) ทั้งสองแบบใช้ได้ดี ให้เลือกตามลักษณะที่งานของคุณเข้ากับแนวทางนั้นได้เป็นธรรมชาติ
รูปแบบ AutoGen
นามธรรมหลักใน AutoGen คืออะไร
สรุป
AutoGen คือเอเจนต์ตามบทบาทที่สนทนากัน เหมาะสำหรับงานที่เอเจนต์หนึ่งทำหน้าที่กำกับดูแลและตัวอื่นทำงานเฉพาะด้าน ควรจับตาดูต้นทุนและจำกัดจำนวนรอบ
คำถามที่พบบ่อย
บทเรียน “หลายเอเจนต์แบบสนทนา (AutoGen)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “หลายเอเจนต์แบบสนทนา (AutoGen)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “หลายเอเจนต์แบบสนทนา (AutoGen)”
Microsoft AutoGen เปิดให้เอเจนต์หลายตัวสนทนากันจนได้ข้อสรุปร่วมกัน คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “หลายเอเจนต์แบบสนทนา (AutoGen)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม
ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- หลายเอเจนต์แบบสนทนา (AutoGen)
- ผู้ควบคุมแบบลำดับชั้น (ผู้ประสานงาน + ผู้ปฏิบัติงาน)
- บทบาทและความเชี่ยวชาญของเอเจนต์
- โพรโทคอลการสื่อสาร (บัสข้อความ)