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

CrewAI: คู่มือพร้อมตัวอย่างของระบบ Multi AI Agent

CrewAI เป็นแพลตฟอร์มที่ช่วยให้นักพัฒนาสร้างและปรับใช้เวิร์กโฟลว์อัตโนมัติด้วยเอเจนต์ AI หลายตัวที่ทำงานร่วมกันเพื่อทำงานซับซ้อนได้
อัปเดตแล้ว 2 มิ.ย. 2569  · 9 นาที อ่าน

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

แต่เอเจนต์ AI ต่างจากเอนทิตี AI อื่น ๆ อย่างไร เช่น โมเดลภาษาขนาดใหญ่ ที่หลายคนคุ้นชื่อกัน?

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

เอเจนต์ AI vs. LLMs

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

AI Agents vs LLMs

โมเดลภาษา เช่น ChatGPT และ Gemini มีความเชี่ยวชาญอย่างยิ่งในการใช้ภาษา ผ่านการฝึกบนข้อความและโค้ดจำนวนมหาศาล ทำให้เข้าใจและสร้างภาษาที่คล้ายกับการสื่อสารของมนุษย์ได้

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

ขณะที่เอเจนต์ มุ่งเน้นไปที่การลงมือทำเป็นหลัก สามารถนำทาง โต้ตอบกับวัตถุ และตัดสินใจจากการรับรู้ของตนเองได้ 

โดยสรุป โมเดลภาษาเปรียบเหมือนสมอง ส่วนเอเจนต์คือมือ เมื่อนำมารวมกันจึงทรงพลัง

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

ความจำเป็นของเฟรมเวิร์กเอเจนต์

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

การจัดสรรและประสานงาน

เมื่อระบบ AI ขยายใหญ่ขึ้น มักประกอบด้วยเอเจนต์จำนวนมากที่มีความสามารถหลากหลาย การจัดการปฏิสัมพันธ์เหล่านี้และทำให้ทำงานสอดประสานกันจึงยากขึ้นเรื่อย ๆ

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

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

โมดูลาร์และนำกลับมาใช้ใหม่

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

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

ความสามารถในการปรับตัวและการเรียนรู้

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

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

และเมื่อพูดถึงเฟรมเวิร์กเอเจนต์ ขอแนะนำหนึ่งในเครื่องมือที่กำลังโดดเด่นในชุมชน AI: CrewAI

CrewAI คืออะไร

CrewAI เป็นเฟรมเวิร์ก Python แบบโอเพนซอร์สที่สร้างขึ้นจากบล็อกสำคัญสองส่วนที่เสริมกันคือ

  • Crews — ทีมของเอเจนต์ AI ที่ร่วมมือกันโดยอัตโนมัติผ่านการตัดสินใจตามบทบาท — และ
  • Flows — เวิร์กโฟลว์พร้อมใช้งานจริงแบบขับเคลื่อนด้วยเหตุการณ์ ที่ให้คุณควบคุมงานอัตโนมัติได้

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

CrewAI logo

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

การออกแบบและความสามารถในการสเกลของ CrewAI ทำให้เหมาะกับการพัฒนาแอปหลายเอเจนต์ทั้งแบบพื้นฐานและซับซ้อน สนับสนุนแนวทางการทำงานร่วมกันเพื่อแก้ปัญหาและตัดสินใจภายในระบบ AI

มาดูคุณสมบัติสำคัญบางอย่างที่ทำให้ CrewAI เป็นเครื่องมือทรงพลังสำหรับสร้างระบบหลายเอเจนต์

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

แล้ว CrewAI มีประโยชน์อย่างไรบ้าง มาสำรวจกัน

CrewAI Flows และ Crews

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

Crews คือทีมของเอเจนต์ AI ที่ทำงานร่วมกันโดยอัตโนมัติ เอเจนต์แต่ละตัวใน Crew จะมีบทบาท เป้าหมาย และประวัติย่อที่กำหนดไว้ — และร่วมมือกันทำงาน มอบหมายงานต่อกัน และตัดสินใจโดยไม่ต้องสคริปต์ทุกขั้นตอน เหมาะเมื่ออยากให้เอเจนต์คิดวิธีทำงานให้เสร็จ

Flows คือเลเยอร์ออร์เคสเตรตเหนือ Crews ช่วยเชื่อมหลาย Crew เข้าด้วยกัน เพิ่มลอจิกเชิงเงื่อนไขระหว่างสเต็ป จัดการสเตตข้ามไปป์ไลน์ และทริกเกอร์การกระทำตามเหตุการณ์ หาก Crew ให้ความเป็นอิสระ Flow จะให้การควบคุม

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

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

ประโยชน์ของการใช้ CrewAI

CrewAI ทำให้เอเจนต์ AI หลายตัวร่วมมือ แบ่งปันความรู้ และประสานการกระทำเพื่อเป้าหมายร่วมกันได้

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

เฟรมเวิร์กยังสนับสนุนความยืดหยุ่น ให้เอเจนต์ปรับพฤติกรรมตามเงื่อนไขหรือเป้าหมายที่เปลี่ยนไปได้

นอกจากนี้ CrewAI ยังทำให้กระบวนการพัฒนาง่ายขึ้น ด้วยแพลตฟอร์มที่ใช้งานสะดวกสำหรับการสร้างและจัดการระบบหลายเอเจนต์

benefits of CrewAI

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

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

ภาคปฏิบัติ: สร้างเครื่องมือค้นหาบนเว็บด้วย CrewAI

มาลงมือสร้างเวิร์กโฟลว์โดยใช้เครื่องมือของ CrewAI เพื่อสกัดเนื้อหาจากเว็บไซต์ แล้วทำ RAG กับเนื้อหานั้นกัน 

จำเป็นต้องเขียนโค้ดเพื่อให้เครื่องมือทำงาน ก่อนเริ่ม ให้ติดตั้งแพ็กเกจ crewai-tools และ crewai ด้วย pip:

# Install CrewAI with tools support
pip install 'crewai[tools]'

# Or using uv (recommended by CrewAI for dependency management)
uv add 'crewai[tools]'

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

ขั้นตอนที่ 1: สกัดข้อมูลจากเว็บไซต์

เริ่มจากอิมพอร์ตไลบรารีที่จำเป็นและอินิเทียไลซ์ ScrapeWebsiteTool เครื่องมือนี้ใช้สำหรับดึงเนื้อหาจากเว็บไซต์ ในที่นี้ตั้งค่าให้สกัดเนื้อหาจากหน้า "Artificial Intelligence" ของวิกิพีเดีย

from crewai_tools import ScrapeWebsiteTool, FileWriterTool, TXTSearchTool
import requests

# Initialize the tool, potentially passing the session
tool = ScrapeWebsiteTool(website_url='https://en.wikipedia.org/wiki/Artificial_intelligence')  

# Extract the text
text = tool.run()
print(text)

ขั้นตอนที่ 2: เขียนข้อความที่สกัดได้ลงไฟล์

ต่อไปใช้ FileWriterTool เพื่อบันทึกข้อความที่สกัดได้ลงในไฟล์ชื่อ ai.txt 

# Initialize the tool
file_writer_tool = FileWriterTool()

# Write content to a file in a specified directory
result = file_writer_tool._run(filename='ai.txt', content = text, directory = '', overwrite=True)
print(result)

ขั้นตอนที่ 3: ตั้งค่าเครื่องมือค้นหาข้อความ

ตั้งค่าอีกเครื่องมือหนึ่งเพื่อค้นหาเนื้อหาในไฟล์ ai.txt ที่เพิ่งบันทึกไว้ พร้อมทั้งตั้งตัวแปรแวดล้อมสำหรับคีย์ OpenAI API

import os
from crewai_tools import TXTSearchTool

os.environ['OPENAI_API_KEY'] = 'API-KEY'

# Initialize the tool with a specific text file, so the agent can search within the given text file's content
tool = TXTSearchTool(txt='ai.txt')

ขั้นตอนที่ 4: สร้างเอเจนต์สำหรับงานและรัน

สร้างเอเจนต์นักวิเคราะห์ข้อมูลในบทบาทผู้สอน หน้าที่ของเอเจนต์นี้คือการตอบคำถาม "Natural Language Processing คืออะไร" โดยอิงจากข้อความที่ค้นหาในไฟล์

from crewai import Agent, Task, Crew

context = tool.run('What is natural language processing?')

data_analyst = Agent(
    role='Educator',
    goal=f'Based on the context provided, answer the question - What is Natural Language Processing? Context - {context}',
    backstory='You are a data expert',
    verbose=True,
    allow_delegation=False,
    tools=[tool]
)

test_task = Task(
    description="Using the provided context, answer the question: What is Natural Language Processing?",
    tools=[tool],
    agent=data_analyst,
    expected_output='A clear, 2-3 paragraph explanation of Natural Language Processing, covering its definition, key techniques, and common applications.'
)

crew = Crew(
    agents=[data_analyst],
    tasks=[test_task]
)

output = crew.kickoff()

crew agent output

เปรียบเทียบ CrewAI กับ LangGraph และ AutoGen

ทางเลือกหลักของ CrewAI คือ LangGraph และ AutoGen ของ Microsoft จุดแข็งที่สุดของ CrewAI คือพาราไดม์เอเจนต์แบบกำหนดบทบาท กล่าวคือ เมื่อกำหนดเอเจนต์ด้วยบทบาท เป้าหมาย และประวัติย่อ จะได้พฤติกรรมที่คล้ายกับการทำงานเป็นทีมของมนุษย์

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

สรุป

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

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

หัวข้อ

เรียนรู้ AI ด้วยคอร์สเหล่านี้!

Tracks

การพัฒนาแอปพลิเคชัน AI

21 ชม.
เรียนรู้การสร้างแอปพลิเคชันที่ขับเคลื่อนด้วย AI ด้วยเครื่องมือสำหรับนักพัฒนา AI ล่าสุด รวมถึง OpenAI API, Hugging Face และ LangChain
ดูรายละเอียดRight Arrow
เริ่มหลักสูตร
ดูเพิ่มเติมRight Arrow