ผู้ประสานงานและผู้ปฏิบัติงาน
การประสานงานตามลำดับชั้น
ผู้ประสานงานและผู้ปฏิบัติงาน เป็นบทเรียน AI Prompt Engineering ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Prompt Engineering และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Prompt Engineering มีบทเรียนทั้งหมด 4 บทเรียน
รูปแบบผู้ประสานงาน
ในรูปแบบผู้ประสานงานและผู้ปฏิบัติงาน เอเจนต์ผู้ประสานงานเพียงตัวเดียวรับผิดชอบแผนงานและเป้าหมาย ส่วนเอเจนต์ผู้ปฏิบัติงานดำเนินงานย่อยตามขอบเขตและรายงานผลกลับมา ผู้ประสานงานแบ่งงาน มอบหมายงาน รวมผลลัพธ์ และตัดสินใจว่างานเสร็จสิ้นเมื่อใด
- ผู้ประสานงาน: การวางแผน การกำหนดเส้นทาง การสังเคราะห์ และลำดับการควบคุม
- ผู้ปฏิบัติงาน: การดำเนินงานที่มุ่งเน้นภายใต้สัญญาที่รัดกุม
ลำดับชั้นนี้รวมการใช้ดุลยพินิจไว้ในจุดเดียว และกระจายงานที่ทำแบบขนานได้ไปยังหลายจุด
การแยกการวางแผนออกจากการดำเนินการ
วินัยสำคัญคือการแยกการวางแผนออกจากการลงมือทำ ผู้ประสานงานใช้เหตุผลเกี่ยวกับกลยุทธ์โดยมีบริบทระดับสูงขนาดเล็ก ส่วนผู้ปฏิบัติงานทำงานกับบริบทที่ละเอียดแต่แคบ การผสมสองส่วนนี้เข้าด้วยกันจะทำให้กลับไปเป็นผู้รอบรู้ทั่วไปที่มีภาระมากเกินไป
โดยทั่วไป ผู้ประสานงานไม่ควรแตะต้องผลลัพธ์ดิบจากเครื่องมือโดยตรง แต่ควรใช้เหตุผลจากบทสรุปของผู้ปฏิบัติงาน
plan = orchestrator.decompose(goal) # high-level
results = [worker.run(sub) for sub in plan] # detailed, scoped
final = orchestrator.integrate(results) # over summariesคุณภาพการแบ่งงานกำหนดทุกสิ่ง
ระบบจะดีได้เท่ากับการแบ่งงานของผู้ประสานงานเท่านั้น งานย่อยต้องเป็นอิสระมากพอที่จะทำแบบขนานได้ มีขอบเขตชัดเจนพอที่จะส่งต่องานได้อย่างราบรื่น และเมื่อรวมกันแล้วต้องครอบคลุมงานทั้งหมด ให้ผู้ประสานงานสร้างแผนงานที่ชัดเจนและตรวจสอบได้ เพื่อให้คุณตรวจสอบก่อนที่ผู้ปฏิบัติงานคนใดจะเริ่มทำงาน
- งานย่อยที่เป็นอิสระ -> การดำเนินงานแบบขนาน
- ครอบคลุมครบถ้วน -> ไม่มีส่วนขาดในคำตอบสุดท้าย
plan = {
'subtasks': [
{'id': 1, 'goal': '...', 'inputs': [...], 'depends_on': []},
{'id': 2, 'goal': '...', 'inputs': [...], 'depends_on': [1]}
]
}มอบหมายงานด้วยสัญญาที่รัดกุม
การมอบหมายแต่ละครั้งต้องส่งให้ผู้ปฏิบัติงานเฉพาะเป้าหมาย ข้อมูลเข้า และโครงสร้างผลลัพธ์ที่คาดหวังเท่านั้น ไม่มีสิ่งอื่นเพิ่มเติม ผู้ปฏิบัติงานที่รู้เฉพาะส่วนของตนจะไม่ถูกรบกวนด้วยเป้าหมายที่กว้างกว่า และจะส่งผลลัพธ์ในรูปแบบที่คาดเดาได้ ซึ่งผู้ประสานงานสามารถนำไปรวมได้
ข้อความมอบหมายงานคือสัญญา โดยต้องมีสิ่งส่งมอบที่ชัดเจน รูปแบบที่ชัดเจน และเกณฑ์ระบุว่างานเสร็จแล้วที่ชัดเจน
dispatch = {
'goal': 'Summarize doc 7 risks',
'context': doc7,
'output_schema': {'risks': [{'text': str, 'severity': str}]},
'done_when': 'all risk clauses covered'
}การแยกบริบทระหว่างผู้ปฏิบัติงาน
โดยค่าเริ่มต้น ผู้ปฏิบัติงานไม่ควรเห็นบริบททั้งหมดของกันและกัน การแยกบริบทป้องกันไม่ให้ข้อผิดพลาดหรือการสร้างข้อมูลหลอนของผู้ปฏิบัติงานคนหนึ่งปนเปื้อนอีกคน และช่วยให้พรอมต์ของผู้ปฏิบัติงานแต่ละตัวมีขนาดเล็กและแคชได้ ผู้ประสานงานเป็นองค์ประกอบเดียวที่มีมุมมองโดยรวม
ให้ผู้ปฏิบัติงานแบ่งปันข้อมูลกันผ่านบทสรุปที่ผู้ประสานงานตรวจสอบแล้วเท่านั้น ห้ามสื่อสารข้ามกันโดยใช้ข้อมูลดิบ
งานย่อยแบบขนานเทียบกับแบบลำดับ
งานย่อยที่เป็นอิสระ run แบบขนานเพื่อช่วยลดเวลาแฝง ส่วนงานย่อยที่ขึ้นต่อกันต้องเคารพลำดับ การวางแผนของผู้ประสานงานจะเข้ารหัสกราฟการพึ่งพา และระบบขณะทำงานจะจัดลำดับให้สอดคล้องกัน โดยกระจายงานย่อยปลายทางที่เป็นอิสระออกไป แล้วจึงรวมผลลัพธ์
- การกระจายงาน: มอบหมายงานย่อยที่พร้อมทั้งหมดพร้อมกัน
- การรวมผลลัพธ์: รอการพึ่งพาให้เสร็จก่อนมอบหมายงานที่ขึ้นต่อกัน
def schedule(plan):
ready = [t for t in plan if not t['depends_on']]
run_parallel(ready)
# then unlock tasks whose deps are now doneการรวมผลลัพธ์และการแก้ไขข้อขัดแย้ง
การรวมผลลัพธ์ไม่ใช่การนำข้อความมาต่อกัน ผู้ประสานงานต้อง reconcile ผลลัพธ์จากผู้ปฏิบัติงานที่ทับซ้อน ขัดแย้ง หรือมีความเชื่อมั่นต่ำให้เป็นผลลัพธ์เดียวที่สอดคล้องกัน โดยตัดสินใจว่าจะเชื่อผลลัพธ์ใดและเปิดเผยข้อขัดแย้งที่ยังไม่ได้รับการแก้ไข
กำหนดขั้นตอนการแก้ไขข้อขัดแย้งให้ผู้ประสานงานอย่างชัดเจนพร้อมกฎ ได้แก่ ให้ความสำคัญกับผลลัพธ์ที่มีความเชื่อมั่นสูงกว่า แจ้งข้อขัดแย้ง และขอให้ดำเนินการใหม่เมื่อข้อมูลยังไม่ครอบคลุม
merged = orchestrator.reconcile(
results,
rules='prefer higher confidence; flag contradictions; re-dispatch on gaps'
)ผู้ประสานงานในฐานะตัวควบคุม
ผู้ประสานงานยังรับผิดชอบลำดับการควบคุมด้วย ได้แก่ ตัดสินใจว่าจะหยุดเมื่อใด จะลองผู้ปฏิบัติงานที่ล้มเหลวอีกครั้งเมื่อใด จะวางแผนใหม่เมื่อใด และจะยกระดับปัญหาเมื่อใด จึงเป็นจุดที่ใช้บังคับขีดจำกัดต่าง ๆ เช่น จำนวนรอบสูงสุด ค่าใช้จ่ายสูงสุด และความลึกสูงสุด เพื่อป้องกันลูปที่ทำงานต่อเนื่องอย่างควบคุมไม่ได้
หากไม่มีผู้ประสานงานที่ควบคุมระบบหลายเอเจนต์ ระบบจะวนเวียนจนควบคุมไม่ได้
if iterations > MAX_ITERS or spend > BUDGET:
return orchestrator.best_effort_answer()การแบ่งงานแบบเรียกซ้ำ
ผู้ปฏิบัติงานสามารถทำหน้าที่เป็นผู้ประสานงานของปัญหาย่อยได้เอง จนเกิดเป็นลำดับชั้น วิธีนี้รองรับงานที่ลึกซับซ้อน แต่เพิ่มเวลาแฝงและความลึกของการส่งต่อข้อผิดพลาด ให้จำกัดความลึกของการเรียกซ้ำ และกำหนดให้แต่ละระดับส่งบทสรุปที่ชัดเจน เพื่อไม่ให้ระดับบนจมอยู่กับรายละเอียดระดับล่าง
การจำกัดผลกระทบจากความล้มเหลว
ออกแบบระบบให้ความล้มเหลวของผู้ปฏิบัติงานเพียงคนเดียวทำให้คุณภาพลดลงอย่างควบคุมได้ ผู้ประสานงานควรตรวจพบผลลัพธ์ของผู้ปฏิบัติงานที่ผิดรูปแบบหรือว่างเปล่า ลองใหม่ด้วยสัญญาที่ชัดเจนขึ้น และใช้ fallback แทนการหยุดทำงาน ผู้ปฏิบัติงานล้มเหลวได้อย่างเป็นอิสระ ส่วนผู้ประสานงานจะรับผลกระทบและเปลี่ยนเส้นทางการทำงาน
- ตรวจสอบผลลัพธ์ที่ผู้ปฏิบัติงานส่งกลับมาทุกครั้งเทียบกับโครงสร้างของผลลัพธ์
- ลองใหม่แล้วใช้ fallback ห้ามส่งต่อความล้มเหลวดิบขึ้นไป
def collect(worker, dispatch):
out = worker.run(dispatch)
if not valid(out, dispatch['output_schema']):
out = worker.run(clarify(dispatch))
return out or fallback(dispatch)พิมพ์เขียวการประสานงาน
พิมพ์เขียวมีดังนี้ ผู้ประสานงานแบ่งงานเป็นแผนกราฟการพึ่งพาที่ตรวจสอบได้ มอบหมายสัญญาที่รัดกุมให้ผู้ปฏิบัติงานซึ่งแยกบริบท ทำงานย่อยที่เป็นอิสระแบบขนาน ตรวจสอบและแก้ไขผลลัพธ์ตามกฎข้อขัดแย้งที่ชัดเจน บังคับใช้ขีดจำกัดและเงื่อนไขหยุด และจำกัดความล้มเหลวของผู้ปฏิบัติงานด้วยการลองใหม่แล้วใช้ fallback การใช้ดุลยพินิจยังคงรวมศูนย์ ส่วนการดำเนินงานยังกระจายออกไป
ตรวจสอบความเข้าใจอย่างรวดเร็ว
คุณกำลังออกแบบระบบผู้ประสานงาน-ผู้ปฏิบัติงานสำหรับงานวิจัยที่มีหัวข้อย่อยหลายหัวข้อซึ่งเป็นอิสระต่อกัน
ทบทวน: ผู้ประสานงานและผู้ปฏิบัติงาน
รวมการวางแผน การกำหนดเส้นทาง การผสานรวม และการควบคุมไว้ที่ผู้ประสานงานเพียงตัวเดียว แล้วมอบหมายการดำเนินงานเฉพาะด้านให้ผู้ปฏิบัติงานที่แยกจากกันภายใต้สัญญาที่รัดกุม แบ่งงานออกเป็นกราฟการพึ่งพาที่ตรวจสอบได้ ดำเนินงานย่อยที่เป็นอิสระแบบขนาน หาข้อสรุปจากผลลัพธ์ด้วยกฎจัดการความขัดแย้งที่ระบุไว้อย่างชัดเจน บังคับใช้ขีดจำกัดงบประมาณและเงื่อนไขหยุด และจำกัดผลกระทบจากความล้มเหลวของผู้ปฏิบัติงานด้วยการตรวจสอบ-ลองใหม่-ใช้ทางเลือกสำรอง ผู้ประสานงานใช้เหตุผลจากบทสรุปเท่านั้น ไม่ใช่การสื่อสารดิบระหว่างกัน เพื่อให้ลำดับชั้นมีความสอดคล้องและควบคุมได้
คำถามที่พบบ่อย
บทเรียน “ผู้ประสานงานและผู้ปฏิบัติงาน” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ผู้ประสานงานและผู้ปฏิบัติงาน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Prompt Engineering ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Prompt Engineering มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ผู้ประสานงานและผู้ปฏิบัติงาน”
การประสานงานตามลำดับชั้น คุณปฏิบัติ AI Prompt Engineering ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Prompt Engineering หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Prompt Engineering บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “ผู้ประสานงานและผู้ปฏิบัติงาน” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน AI Prompt Engineering นี้ได้ไหม
ได้ บทเรียน AI Prompt Engineering ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- บทบาทและความเชี่ยวชาญเฉพาะด้าน
- ผู้ประสานงานและผู้ปฏิบัติงาน
- การสื่อสารระหว่างเอเจนต์
- เอเจนต์อภิปรายและลงคะแนน