ข้ามไปยังเนื้อหา

บล็อก

การสร้างระบบ AI หลายตัวแทน: ทีมอิสระที่คิด

วิธีการออกแบบ ประสานงาน และปรับใช้ทีมตัวแทน AI ที่ทำงานร่วมกันเพื่อแก้ไขปัญหาที่ซับซ้อน

  • Balinder Walia
  • อ่าน 2 นาที
  • Updated

การสร้างระบบ AI หลายตัวแทน: ทีมอิสระที่คิด

เจ้าหน้าที่ AI ตัวเดียวนั้นทรงพลัง แต่ก็มีขีดจำกัด เจ้าหน้าที่เพียงคนเดียวที่พยายามวางแผน เขียนโค้ด ตรวจสอบ ทดสอบ และปรับใช้ก็เหมือนกับการขอให้คนคนหนึ่งทำงานทุกงานในบริษัท ผลลัพธ์ที่ได้คือปานกลางที่ดีที่สุด ระบบ AI หลายตัวแทนแก้ปัญหานี้ด้วยการมอบหมายบทบาทพิเศษให้กับเจ้าหน้าที่แต่ละราย และปล่อยให้พวกเขาทำงานร่วมกัน เหมือนกับทีมมนุษย์ที่ได้รับการจัดการอย่างดี

ในบทความนี้ เราจะมาสำรวจว่าระบบหลายเอเจนต์คืออะไร วิธีกำหนดบทบาทของเอเจนต์ เฟรมเวิร์กใดบ้างที่พร้อมใช้งานสำหรับการสร้าง และวิธีการจัดการกับหน่วยความจำและการจัดการ เราจะสรุปด้วยตัวอย่างในทางปฏิบัติ: ทีมพัฒนา AI ที่วางแผนฟีเจอร์ เขียนโค้ด และตรวจทานคำขอดึงข้อมูลโดยอัตโนมัติ

ระบบ AI หลายตัวแทนคืออะไร?

ระบบหลายตัวแทน (MAS) เป็นสถาปัตยกรรมที่ตัวแทน AI หลายคนทำงานภายในสภาพแวดล้อมที่ใช้ร่วมกัน โดยแต่ละบทบาทมีบทบาท ชุดเครื่องมือ และวัตถุประสงค์ที่กำหนดไว้ แตกต่างจากตัวแทนเสาหินที่จัดการทุกอย่าง MAS แบ่งย่อยงานที่ซับซ้อนออกเป็นงานย่อยและมอบหมายงานให้กับตัวแทนเฉพาะทาง

คุณสมบัติที่สำคัญของระบบหลายตัวแทนที่ออกแบบมาอย่างดี ได้แก่:

  • ความเชี่ยวชาญ: ตัวแทนแต่ละรายมุ่งเน้นไปที่ความรับผิดชอบชุดแคบๆ ซึ่งนำไปสู่ผลลัพธ์ที่มีคุณภาพสูงขึ้น
  • เอกราช: ตัวแทนสามารถตัดสินใจและดำเนินการภายในขอบเขตของตนได้โดยไม่ต้องมีการควบคุมดูแลจากมนุษย์อย่างต่อเนื่อง
  • การสื่อสาร: ตัวแทนแลกเปลี่ยนข้อมูลผ่านข้อความที่มีโครงสร้าง สถานะที่ใช้ร่วมกัน หรือผู้เรียบเรียงส่วนกลาง
  • การประสานงาน: ขั้นตอนการทำงานที่กำหนดไว้ช่วยให้มั่นใจว่าตัวแทนดำเนินการตามลำดับที่ถูกต้องและจัดการการขึ้นต่อกันได้อย่างถูกต้อง

การกำหนดบทบาทของตัวแทน

ขั้นตอนแรกในการสร้างระบบหลายตัวแทนคือการกำหนดบทบาทที่ชัดเจน จากการพัฒนาซอฟต์แวร์เพื่อเป็นการเปรียบเทียบ ให้พิจารณาต้นแบบเอเจนต์ทั่วไปเหล่านี้:

  • ตัวแทนวางแผน: วิเคราะห์เป้าหมายระดับสูง แบ่งออกเป็นงาน กำหนดเกณฑ์การยอมรับ และสร้างแผนงานที่มีโครงสร้าง เอเจนต์นี้ไม่ได้เขียนโค้ด — แต่คิดอย่างมีกลยุทธ์
  • ตัวแทนนักพัฒนา: รับข้อกำหนดเฉพาะของงานและสร้างโค้ด มีสิทธิ์เข้าถึงเครื่องมือระบบไฟล์ การค้นหาโค้ด และเอกสารประกอบ เป็นไปตามแผนแต่ทำการตัดสินใจเชิงกลยุทธ์เกี่ยวกับการดำเนินการ
  • ตัวแทนผู้ตรวจสอบ: ตรวจสอบผลลัพธ์ของนักพัฒนาเพื่อหาจุดบกพร่อง ปัญหาด้านความปลอดภัย การละเมิดสไตล์ และข้อผิดพลาดเชิงตรรกะ โดยจะให้ข้อเสนอแนะที่มีโครงสร้างซึ่งนักพัฒนาซอฟต์แวร์สามารถดำเนินการได้
  • ตัวแทนผู้ทดสอบ: สร้างกรณีทดสอบ เรียกใช้ และรายงานผลลัพธ์ โดยจะมุ่งเน้นไปที่กรณีขอบและการทดสอบการถดถอย
  • ตัวแทนการทำให้ใช้งานได้: จัดการการดำเนินการไปป์ไลน์ CI/CD การจัดเตรียมโครงสร้างพื้นฐาน และการตั้งค่าการตรวจสอบ

แต่ละบทบาทควรมีพร้อมท์ของระบบที่ชัดเจนซึ่งกำหนดบุคลิกภาพ ข้อจำกัด และเครื่องมือที่มีอยู่ ยิ่งการกำหนดบทบาทมีความเฉพาะเจาะจงมากขึ้นเท่าใด เจ้าหน้าที่ก็จะยิ่งทำงานได้ดีขึ้นเท่านั้น

สถาปัตยกรรมหลายตัวแทน ตัวแทนออร์เคสตราเตอร์ แผน ผู้ร่วมประชุม มอนิเตอร์ นักวิจัย รวบรวมบริบท โค้ดเดอร์ เขียนโค้ด ผู้วิจารณ์ ตรวจสอบคุณภาพ ผู้ปรับใช้ จัดส่งไปที่ผลิตภัณฑ์ ข้อความผ่านเลเยอร์ ข้อความที่มีโครงสร้าง • สถานะที่แชร์ • แฮนด์ออฟอาร์ติแฟกต์ • การอัปเดตสถานะ

กรอบการทำงานสำหรับระบบหลายตัวแทน

มีกรอบการทำงานหลายอย่างเพื่อทำให้การสร้างระบบหลายตัวแทนง่ายขึ้น ต่อไปนี้คือตัวเลือกที่มีความสามารถมากที่สุดสามตัวเลือกที่มีอยู่ในปัจจุบัน:

ลูกเรือเอไอ

CrewAI มอบสิ่งที่เป็นนามธรรมระดับสูงสำหรับการกำหนดตัวแทน งาน และทีมงาน (ทีมของตัวแทน) โดยเน้นการออกแบบตามบทบาทและการดำเนินงานตามลำดับหรือแบบขนาน CrewAI นั้นยอดเยี่ยมสำหรับทีมที่ต้องการเริ่มต้นอย่างรวดเร็วโดยไม่ต้องสร้างตรรกะในการเตรียมการตั้งแต่เริ่มต้น ไวยากรณ์การประกาศทำให้ง่ายต่อการกำหนดบทบาทของตัวแทนและเชื่อมโยงเข้าด้วยกัน

ออโต้เจน (ไมโครซอฟต์)

AutoGen มุ่งเน้นไปที่เวิร์กโฟลว์หลายตัวแทนในการสนทนา เจ้าหน้าที่สื่อสารผ่านอินเทอร์เฟซเหมือนการแชท ทำให้เป็นเรื่องปกติที่จะใช้รูปแบบการอภิปราย ทบทวน และทำซ้ำ AutoGen รองรับทั้งการดำเนินการอัตโนมัติเต็มรูปแบบและโหมด Human-in-the-Loop ซึ่งมีประโยชน์สำหรับระบบการผลิตที่คุณต้องการการควบคุมดูแลที่จุดการตัดสินใจที่สำคัญ

SDK ตัวแทนของ Claude

Claude Agent SDK จัดเตรียมเฟรมเวิร์กสำหรับการสร้างเอเจนต์ที่ขับเคลื่อนโดยโมเดล Claude ของ Anthropic โดยนำเสนอการใช้เครื่องมือ ผลลัพธ์ที่มีโครงสร้าง และการจัดการการสนทนาแบบสำเร็จรูป จุดแข็งอยู่ที่คุณภาพของโมเดลพื้นฐานและความสามารถในการกำหนดสกีมาเครื่องมือที่แม่นยำซึ่งตัวแทนสามารถเรียกใช้ได้ สำหรับทีมที่ใช้ Claude ในสแต็กอยู่แล้ว Agent SDK มอบเส้นทางที่เป็นธรรมชาติไปยังสถาปัตยกรรมแบบหลายเอเจนต์

การจัดการหน่วยความจำและสถานะ

หนึ่งในความท้าทายที่ใหญ่ที่สุดในระบบหลายเอเจนต์คือหน่วยความจำ เจ้าหน้าที่ต้องจดจำสิ่งที่ทำไปแล้ว สิ่งที่กำลังดำเนินการ และบริบทปัจจุบันเป็นอย่างไร มีหลายวิธีในการแก้ปัญหานี้:

  • ความจำระยะสั้น: ประวัติการสนทนาถูกส่งผ่านในหน้าต่างบริบท เรียบง่ายแต่ถูกจำกัดด้วยข้อจำกัดของโทเค็น
  • หน่วยความจำระยะยาวผ่านฐานข้อมูลเวกเตอร์: เจ้าหน้าที่จัดเก็บและดึงข้อมูลจากร้านค้าเวกเตอร์ เช่น Pinecone, Weaviate หรือ ChromaDB ซึ่งช่วยให้ตัวแทนสามารถเรียกคืนการโต้ตอบในอดีต ข้อมูลโค้ด หรือเอกสารประกอบที่เกี่ยวข้องได้โดยไม่ต้องกรอกหน้าต่างบริบท
  • ร้านค้าของรัฐที่ใช้ร่วมกัน: ที่จัดเก็บคีย์-ค่าส่วนกลาง (Redis ฐานข้อมูล หรือแม้แต่ไฟล์ JSON ที่ใช้ร่วมกัน) ที่เอเจนต์อ่านและเขียนสถานะที่มีโครงสร้าง สิ่งนี้มีประโยชน์สำหรับการติดตามสถานะของงาน การขึ้นต่อกัน และสิ่งประดิษฐ์
  • สิ่งประดิษฐ์ที่ผ่าน: เอเจนต์จะสร้างเอาต์พุต (ไฟล์ แผน บทวิจารณ์) ที่ถูกส่งผ่านเป็นอินพุตไปยังเอเจนต์ถัดไปในไปป์ไลน์ นี่เป็นรูปแบบหน่วยความจำที่ง่ายที่สุดและทำงานได้ดีกับเวิร์กโฟลว์เชิงเส้น

รูปแบบการเรียบเรียง

วิธีที่ตัวแทนประสานงานงานมีความสำคัญพอๆ กับสิ่งที่ตัวแทนแต่ละคนทำ รูปแบบการเรียบเรียงที่พบบ่อยที่สุดสามรูปแบบคือ:

  • ไปป์ไลน์ตามลำดับ: ตัวแทนดำเนินการตามลำดับคงที่ ผู้วางแผนจะทำงานก่อน จากนั้นจึงจะเป็นนักพัฒนา จากนั้นจึงเป็นผู้ตรวจสอบ เรียบง่ายและคาดเดาได้ แต่ช้าสำหรับการทำงานแบบขนาน
  • การมอบหมายตามลำดับชั้น: ตัวแทนผู้จัดการได้รับเป้าหมายระดับบนสุดและมอบหมายงานย่อยให้กับตัวแทนผู้ปฏิบัติงาน ผู้จัดการติดตามความคืบหน้าและมอบหมายงานใหม่หากจำเป็น สิ่งนี้สะท้อนให้เห็นว่าองค์กรของมนุษย์ดำเนินงานอย่างไร
  • วงความร่วมมือ: เอเจนต์ทำงานในวงจรวนซ้ำ นักพัฒนาเขียนโค้ด ผู้ตรวจสอบให้ข้อเสนอแนะ และนักพัฒนาแก้ไข การวนซ้ำนี้จะดำเนินต่อไปจนกว่าผู้ตรวจสอบจะอนุมัติหรือถึงจำนวนการวนซ้ำสูงสุด
รูปแบบการสื่อสารของตัวแทน การส่งข้อความโดยตรง ก บี ค ดี แบบจุดต่อจุด เรียบง่าย รวดเร็ว แนบแน่น กระดานดำ แบ่งปันแล้ว รัฐ (อ่าน/เขียน) ก บี ค ดี คลังความรู้กลาง แยกส่วน ยืดหยุ่น ปรับขนาดได้ ผับ/ซับ หัวข้อ ก บี ค ผับ ย่อย ย่อย ข้อความที่ขับเคลื่อนด้วยเหตุการณ์ คลัปหลวม ออกอากาศ เลือกรูปแบบที่เหมาะกับความต้องการในการประสานงานของตัวแทนของคุณมากที่สุด

ตัวอย่างจริง: ทีมพัฒนา AI

ให้เรานำทั้งหมดนี้มารวมกันด้วยตัวอย่างที่เป็นรูปธรรม ลองนึกภาพคุณต้องการทีม AI ที่สามารถรับปัญหา GitHub และสร้างคำขอดึงที่ใช้งานได้:

  • ขั้นตอนที่ 1: The ตัวแทนวางแผน อ่านปัญหา GitHub วิเคราะห์โครงสร้างโค้ดเบส และสร้างแผนงานพร้อมไฟล์เฉพาะเพื่อแก้ไขและเกณฑ์การยอมรับ
  • ขั้นตอนที่ 2: The ตัวแทนนักพัฒนา ได้รับแผนและดำเนินการเปลี่ยนแปลง ใช้เครื่องมืออ่าน/เขียนไฟล์ ค้นหาโค้ด และสามารถเรียกใช้การทดสอบในเครื่องได้
  • ขั้นตอนที่ 3: The ตัวแทนผู้ตรวจสอบ ตรวจสอบความแตกต่าง ตรวจสอบจุดบกพร่อง ปัญหาด้านความปลอดภัย และการปฏิบัติตามแผน จัดทำการตรวจสอบแบบมีโครงสร้างพร้อมอนุมัติ/ปฏิเสธและแสดงความคิดเห็น
  • ขั้นตอนที่ 4: หากถูกปฏิเสธ Developer Agent จะได้รับคำติชมและทำซ้ำ วงนี้วิ่งได้ถึงสามครั้ง
  • ขั้นตอนที่ 5: เมื่อได้รับการอนุมัติแล้ว ตัวแทนการติดตั้งใช้งาน สร้างคำขอดึง รัน CI และรายงานผลลัพธ์

ขั้นตอนการทำงานทั้งหมดนี้สามารถทำงานได้โดยอัตโนมัติ โดยจะมีการควบคุมดูแลโดยมนุษย์ในขั้นตอนการตรวจสอบประชาสัมพันธ์ขั้นสุดท้ายเท่านั้น กุญแจสำคัญในการทำให้มันใช้งานได้คือการกำหนดบทบาทที่ชัดเจน การเข้าถึงเครื่องมือที่มีโครงสร้างดี และความเข้าใจร่วมกันเกี่ยวกับโค้ดเบสผ่านเอกสารประกอบที่จัดทำดัชนีเวกเตอร์

บทสรุป

ระบบ AI แบบหลายตัวแทนแสดงถึงวิวัฒนาการครั้งต่อไปในการใช้โมเดลภาษาขนาดใหญ่ ด้วยการแบ่งงานที่ซับซ้อนออกเป็นบทบาทเฉพาะทาง การจัดหาเครื่องมือและหน่วยความจำที่เหมาะสมแก่ตัวแทน และประสานการทำงานร่วมกันผ่านรูปแบบที่กำหนดไว้อย่างดี เราจึงสามารถสร้างทีมที่เป็นอิสระซึ่งจัดการกับปัญหาที่ไม่มีตัวแทนคนใดสามารถจัดการได้โดยลำพัง เริ่มต้นจากเล็กๆ — กำหนดตัวแทนสองหรือสามคนที่มีบทบาทที่ชัดเจน — และทำซ้ำจากจุดนั้น เฟรมเวิร์กมีความสมบูรณ์เพียงพอที่จะรองรับการใช้งานจริง และผลลัพธ์มักจะมีความสามารถอย่างน่าประหลาดใจ