ผู้ควบคุมแบบลำดับชั้น (ผู้ประสานงาน + ผู้ปฏิบัติงาน)
ผู้ควบคุมวางแผนและมอบหมายงาน ส่วนผู้ปฏิบัติงานลงมือทำและรายงานกลับ เป็นรูปแบบที่แข็งแกร่งสำหรับงานซับซ้อน
ผู้ควบคุมแบบลำดับชั้น (ผู้ประสานงาน + ผู้ปฏิบัติงาน) เป็นบทเรียน AI Agents ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Agents และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ
รูปแบบผู้กำกับดูแล
เอเจนต์ "supervisor" หนึ่งตัวจะตัดสินใจว่าต้องทำอะไรและมอบหมายงานให้เอเจนต์ "ผู้ปฏิบัติงาน" ที่เชี่ยวชาญ ผู้ปฏิบัติงานรายงานผลกลับมา แล้ว supervisor สังเคราะห์ผลลัพธ์
รูปแบบนี้ใกล้เคียงกับวิธีทำงานของทีมมนุษย์มากกว่าบทสนทนาแบบอิสระ
โครงสร้าง
มีสองระดับ (บางครั้งอาจมากกว่านั้น):
- Supervisor — เห็นคำถามของผู้ใช้ แบ่งงานออกเป็นส่วนย่อย เลือกผู้ปฏิบัติงาน และรวมผลลัพธ์
- ผู้ปฏิบัติงาน — เอเจนต์เฉพาะทาง เช่น การวิจัย โค้ด และคณิตศาสตร์ โดยแต่ละตัวมีเครื่องมือและพรอมป์ของตนเอง
เหตุใดจึงใช้ลำดับชั้น
- การให้เหตุผลชัดเจนขึ้น — supervisor เห็นภาพรวม
- ความเชี่ยวชาญเฉพาะด้าน — ผู้ปฏิบัติงานแต่ละตัวมีขนาดเล็กและมุ่งเน้น
- ประเมินได้ง่ายขึ้น — ทดสอบผู้ปฏิบัติงานแยกกัน
- เพิ่มความสามารถใหม่ได้ง่ายขึ้น — เพียงลงทะเบียนผู้ปฏิบัติงานตัวใหม่
LangGraph Implementation
from langgraph.graph import StateGraph, END
from typing import TypedDict, Annotated
import operator
class State(TypedDict):
messages: Annotated[list, operator.add]
next: str
def supervisor(state):
# Ask LLM which worker should handle this
decision = supervisor_llm.invoke(state['messages']).content # 'researcher' / 'coder' / 'FINISH'
return {'next': decision}
def researcher(state):
result = research_agent.run(state['messages'][-1].content)
return {'messages': [{'role': 'tool', 'content': result}], 'next': 'supervisor'}
def coder(state):
result = code_agent.run(state['messages'][-1].content)
return {'messages': [{'role': 'tool', 'content': result}], 'next': 'supervisor'}Wiring the Graph
g = StateGraph(State)
g.add_node('supervisor', supervisor)
g.add_node('researcher', researcher)
g.add_node('coder', coder)
g.set_entry_point('supervisor')
g.add_conditional_edges(
'supervisor',
lambda s: s['next'],
{'researcher': 'researcher', 'coder': 'coder', 'FINISH': END}
)
g.add_edge('researcher', 'supervisor')
g.add_edge('coder', 'supervisor')
app = g.compile()ความเป็นอิสระของผู้ปฏิบัติงาน
ผู้ปฏิบัติงานแต่ละตัวเป็นเอเจนต์ขนาดเล็กที่ทำงานได้ด้วยตนเอง สร้างและทดสอบแต่ละตัวแยกกัน แล้วประกอบเข้าด้วยกันภายใต้ supervisor
ชุดเครื่องมือของผู้ปฏิบัติงาน
จำกัดผู้ปฏิบัติงานแต่ละตัวให้ใช้ ONLY เครื่องมือที่จำเป็น:
- Researcher — search, ดึงข้อมูล
- Coder — อ่านไฟล์, เขียนไฟล์, เรียกใช้ Python
- ฐานข้อมูล — แสดงรายการตาราง, เรียกใช้ SQL
คำอธิบายเครื่องมือชัดเจนขึ้นและสับสนน้อยลง
รูปแบบการสื่อสาร
ผู้ปฏิบัติงานส่งคืนสรุปแบบมีโครงสร้างให้ supervisor ไม่ใช่บทถอดเสียงทั้งหมด ช่วยประหยัดโทเค็นและทำให้ supervisor รวมผลลัพธ์ได้ง่ายขึ้น:
class WorkerResult(BaseModel):
summary: str
citations: list[str]
next_step_suggestion: str = ''การสิ้นสุด
Supervisor เป็นผู้ตัดสินใจว่าจะหยุดเมื่อใด โดยทั่วไปจะหยุดเมื่อ:
- ค่าความมั่นใจสูงกว่าเกณฑ์
- ได้รับสัญญาณว่างานเสร็จสิ้นจากผู้ปฏิบัติงาน
- ตัวนับขั้นตอนเกินกำหนด
ลำดับชั้นหลายระดับ
สำหรับงานที่ซับซ้อนมาก ให้เพิ่มชั้นที่สาม เช่น supervisor ที่เป็น "หัวหน้าทีม" สำหรับงานวิศวกรรม และอีกตัวสำหรับการวิจัย แต่ละตัวจะมอบหมายงานให้ผู้ปฏิบัติงานในแต่ละด้าน
รูปแบบต้นทุน
การตัดสินใจของ supervisor แต่ละครั้งคือการเรียกใช้ LLM หนึ่งครั้ง ผู้ปฏิบัติงานแต่ละตัวมีลูปของตนเอง ต้นทุนรวมโดยประมาณ = จำนวนการตัดสินใจของ supervisor × ต้นทุนต่อการตัดสินใจ + จำนวนลูปของผู้ปฏิบัติงาน × ต้นทุนต่อลูป
ควรใช้เมื่อใด
- งานซับซ้อนที่มีขอบเขตย่อยชัดเจน
- งานที่ต้องใช้รูปแบบการเขียนพรอมป์แตกต่างกันในแต่ละขั้นตอน
- ระบบที่ต้องการเพิ่มความสามารถทีละส่วน
รูปแบบที่ควรหลีกเลี่ยง
- Supervisor ทำงานจริงทั้งหมด — ทำให้จุดประสงค์ของรูปแบบนี้สูญเสียไป
- ผู้ปฏิบัติงานเรียกใช้ผู้ปฏิบัติงานตัวอื่นโดยที่ supervisor ไม่ทราบ — ทำให้สูญเสียการควบคุม
- มีผู้ปฏิบัติงานมากเกินไป (มากกว่า 10 ตัว) — การเลือกของ supervisor จะไม่น่าเชื่อถือ
บทบาทของ supervisor
งานหลักของ supervisor ในรูปแบบนี้คืออะไร
สรุป
Supervisor + ผู้ปฏิบัติงาน ดีกว่าเอเจนต์ขนาดใหญ่ตัวเดียว ผู้ปฏิบัติงานแต่ละตัวมีขนาดเล็ก มุ่งเน้น และทดสอบแยกกันได้ Supervisor เป็นผู้ตัดสินใจว่าใครจะทำงานอะไร
คำถามที่พบบ่อย
บทเรียน “ผู้ควบคุมแบบลำดับชั้น (ผู้ประสานงาน + ผู้ปฏิบัติงาน)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ผู้ควบคุมแบบลำดับชั้น (ผู้ประสานงาน + ผู้ปฏิบัติงาน)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Agents ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Agents มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ผู้ควบคุมแบบลำดับชั้น (ผู้ประสานงาน + ผู้ปฏิบัติงาน)”
ผู้ควบคุมวางแผนและมอบหมายงาน ส่วนผู้ปฏิบัติงานลงมือทำและรายงานกลับ เป็นรูปแบบที่แข็งแกร่งสำหรับงานซับซ้อน คุณปฏิบัติ AI Agents ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Agents หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Agents บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “ผู้ควบคุมแบบลำดับชั้น (ผู้ประสานงาน + ผู้ปฏิบัติงาน)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน AI Agents นี้ได้ไหม
ได้ บทเรียน AI Agents ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- หลายเอเจนต์แบบสนทนา (AutoGen)
- ผู้ควบคุมแบบลำดับชั้น (ผู้ประสานงาน + ผู้ปฏิบัติงาน)
- บทบาทและความเชี่ยวชาญของเอเจนต์
- โพรโทคอลการสื่อสาร (บัสข้อความ)