Published on

การพัฒนาเอเจนต์ของ Anthropic: ความเรียบง่ายชนะความซับซ้อน

ผู้เขียน
  • avatar
    ชื่อ
    Ajax
    Twitter

ความหมายของเอเจนต์อัจฉริยะ

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

  • เวิร์กโฟลว์: ระบบที่จัดลำดับแบบจำลองภาษาขนาดใหญ่ (LLM) และเครื่องมือผ่านเส้นทางโค้ดที่กำหนดไว้ล่วงหน้า
  • เอเจนต์: ระบบที่ LLM กำหนดขั้นตอนและวิธีการใช้เครื่องมือแบบไดนามิก สามารถควบคุมวิธีการทำภารกิจให้สำเร็จได้เอง

เมื่อใดควรเลือกใช้เอเจนต์

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

  • เวิร์กโฟลว์: เหมาะสำหรับงานที่ต้องการความสามารถในการคาดการณ์และความสอดคล้องกัน
  • เอเจนต์: เหมาะสำหรับสถานการณ์ขนาดใหญ่ที่ต้องการความยืดหยุ่นและการตัดสินใจที่ขับเคลื่อนด้วยแบบจำลอง

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

การใช้เฟรมเวิร์ก

ปัจจุบันมีเฟรมเวิร์กมากมายที่ช่วยนักพัฒนาในการสร้างเอเจนต์อัจฉริยะ AI เช่น:

  • LangGraph ของ LangChain
  • เฟรมเวิร์ก AI Agent ของ Amazon Bedrock
  • เครื่องมือสร้างเวิร์กโฟลว์แบบลากและวาง Rivet
  • เครื่องมือ GUI Vellum สำหรับสร้างและทดสอบเวิร์กโฟลว์ที่ซับซ้อน

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

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

Anthropic มีตัวอย่างเฉพาะใน cookbook

ส่วนประกอบ เวิร์กโฟลว์ และเอเจนต์

ส่วนประกอบพื้นฐาน: LLM ที่ได้รับการปรับปรุง

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

เมื่อขยายฟังก์ชันการทำงาน ควรให้ความสำคัญกับ:

  • การปรับแต่งฟังก์ชันให้เหมาะสมกับกรณีการใช้งานเฉพาะ
  • การตรวจสอบให้แน่ใจว่ามีอินเทอร์เฟซที่เรียบง่ายและมีเอกสารครบถ้วนสำหรับแบบจำลอง

โปรโตคอลบริบทแบบจำลองที่ Anthropic เพิ่งเปิดตัว ช่วยลดความซับซ้อนในการรวมแบบจำลอง AI เข้ากับระบบนิเวศเครื่องมือของบุคคลที่สาม

เวิร์กโฟลว์: ห่วงโซ่คำแนะนำ

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

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

ตัวอย่างการใช้งานทั่วไป:

  • สร้างสำเนาการตลาดก่อน แล้วจึงแปลเป็นภาษาอื่น
  • เขียนโครงร่างเอกสารก่อนและตรวจสอบความสอดคล้อง แล้วจึงเขียนเอกสารฉบับเต็มตามโครงร่าง

เวิร์กโฟลว์: การแบ่งประเภทอัจฉริยะ

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

ตัวอย่างการใช้งานทั่วไป:

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

เวิร์กโฟลว์: ขนาน

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

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

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

ตัวอย่างการใช้งานทั่วไป:

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

เวิร์กโฟลว์: ผู้นำ-ผู้ปฏิบัติงาน

แบบจำลองภาษาขนาดใหญ่ส่วนกลางจะแบ่งงานแบบไดนามิก กำหนดให้กับแบบจำลองผู้ปฏิบัติงาน และสรุปผลลัพธ์

เวิร์กโฟลว์นี้เหมาะสำหรับงานที่ซับซ้อนซึ่งยากต่อการกำหนดขั้นตอนที่เฉพาะเจาะจงล่วงหน้า การแบ่งงานไม่ได้คงที่ แต่ระบบ AI เป็นผู้กำหนดแบบไดนามิกตามสถานการณ์

ตัวอย่างการใช้งานทั่วไป:

  • แอปพลิเคชันการเขียนโปรแกรมที่ต้องแก้ไขไฟล์หลายไฟล์อย่างซับซ้อน
  • งานค้นหาที่ต้องรวบรวมและวิเคราะห์ข้อมูลที่เกี่ยวข้องจากหลายแหล่ง

เวิร์กโฟลว์: การประเมิน-การปรับปรุง

LLM หนึ่งตัวเรียกใช้เพื่อสร้างการตอบสนอง และอีกตัวหนึ่งให้การประเมินและข้อเสนอแนะ ซึ่งก่อให้เกิดวงจร

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

ตัวอย่างการใช้งานทั่วไป:

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

เอเจนต์

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

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

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

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

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

ตัวอย่างการใช้งานเอเจนต์:

  • เอเจนต์โค้ดที่ใช้ในการแก้ไขไฟล์หลายไฟล์ตามคำอธิบายภารกิจของ SWE-bench
  • ฟังก์ชัน 'การใช้คอมพิวเตอร์' ของ Anthropic ซึ่ง Claude ใช้คอมพิวเตอร์เพื่อทำภารกิจ

การรวมและการปรับแต่ง

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

เมื่อปรับใช้เอเจนต์ ต้องปฏิบัติตามหลักการดังต่อไปนี้:

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