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

CrewAI คืออะไร และทำไมต้องเรียนรู้

CrewAI เป็นเครื่องมือที่ช่วยให้เราสร้าง "ตัวแทน AI" หลายตัวให้ทำงานร่วมกันเหมือนทีมงานจริงๆ ครับ ลองนึกภาพว่าเรามีพนักงาน AI หลายคน แต่ละคนมีหน้าที่แตกต่างกัน เช่น คนหนึ่งค้นหาข้อมูล อีกคนวิเคราะห์ และอีกคนเขียนรายงาน เมื่อรวมกันก็จะทำงานได้ครบวงจรมากขึ้น **ทำไมต้องใช้ HolySheep AI ในการเรียนนี้:** [สมัครที่นี่](https://www.holysheep.ai/register) เพราะบริการนี้มีความเร็วสูงมากที่ 50 มิลลิวินาที ราคาประหยัดสุดเมื่อเทียบกับบริการอื่น โดยอัตราแลกเปลี่ยน ¥1 เท่ากับ $1 ทำให้ประหยัดได้ถึง 85% แถมยังรองรับการจ่ายเงินผ่าน WeChat และ Alipay ได้สะดวก และเมื่อลงทะเบียนใหม่จะได้รับเครดิตฟรีทันทีครับ

การติดตั้งโปรแกรมพื้นฐาน

ก่อนจะเริ่มสร้าง Agent เราต้องเตรียมเครื่องมือก่อนครับ ทำตามนี้เลย

ขั้นตอนที่ 1: ติดตั้ง Python

Python คือภาษาที่ใช้เขียนโค้ดสำหรับ CrewAI ครับ ให้ไปที่เว็บไซต์ python.org แล้วกดปุ่มดาวน์โหลดเวอร์ชันล่าสุด เมื่อติดตั้งเสร็จแล้ว ให้เปิดโปรแกรม Command Prompt หรือ Terminal แล้วพิมพ์คำสั่งตรวจสอบว่าติดตั้งสำเร็จหรือไม่
python --version
ถ้าขึ้นหมายเลขเวอร์ชัน เช่น Python 3.11 หมายความว่าพร้อมใช้งานแล้วครับ

ขั้นตอนที่ 2: สร้างโฟลเดอร์สำหรับงาน

ให้สร้างโฟลเดอร์ใหม่ในเครื่องคอมพิวเตอร์ เช่น ตั้งชื่อว่า my_crew แล้วเปิด Terminal ไปที่โฟลเดอร์นั้น
cd my_crew

ขั้นตอนที่ 3: ติดตั้ง CrewAI และโปรแกรมที่จำเป็น

พิมพ์คำสั่งด้านล่างนี้เพื่อติดตั้งทุกอย่างที่ต้องใช้ในครั้งเดียว
pip install crewai crewai-tools python-dotenv
รอสักครู่จนติดตั้งเสร็จ อาจใช้เวลาประมาณ 2-3 นาทีครับ

การสร้าง Agent ตัวแรกของเรา

Agent คืออะไร

Agent ก็เหมือน "คน" ในทีมของเรา มี 3 ส่วนสำคัญดังนี้ **1. ชื่อ (Name):** ตั้งชื่อให้ Agent เพื่อให้รู้ว่าทำหน้าที่อะไร **2. บทบาท (Role):** กำหนดว่า Agent นี้เป็นใครในทีม เช่น นักวิจัย ผู้เขียน หรือผู้ตรวจสอบ **3. เป้าหมาย (Goal):** บอกว่า Agent นี้ต้องบรรลุอะไร

โค้ดพื้นฐานสำหรับ Agent เดี่ยว

ให้สร้างไฟล์ใหม่ชื่อ first_agent.py แล้วเขียนโค้ดดังนี้ครับ
import os
from crewai import Agent
from langchain_openai import ChatOpenAI

ตั้งค่า API Key สำหรับเชื่อมต่อกับ HolySheep AI

os.environ["OPENAI_API_KEY"] = "YOUR_HOLYSHEEP_API_KEY"

กำหนดให้ใช้ HolySheep แทน OpenAI โดยตรง

llm = ChatOpenAI( model="gpt-4o", openai_api_base="https://api.holysheep.ai/v1", openai_api_key=os.environ["OPENAI_API_KEY"] )

สร้าง Agent ตัวแรก

researcher = Agent( role="นักวิจัยข้อมูล", goal="ค้นหาและรวบรวมข้อมูลที่ถูกต้องเกี่ยวกับหัวข้อที่กำหนด", backstory="คุณเป็นนักวิจัยมืออาชีพที่มีประสบการณ์ในการค้นหาข้อมูลมากกว่า 10 ปี", allow_delegation=False, llm=llm )

ทดสอบว่า Agent ทำงานได้ไหม

print("Agent ถูกสร้างสำเร็จแล้ว!") print(f"ชื่อ: {researcher.role}") print(f"เป้าหมาย: {researcher.goal}")
เมื่อรันโค้ดนี้ จะเห็นว่า Agent ถูกสร้างขึ้นมาเรียบร้อยครับ

การสร้างทีม Agent หลายตัว

ต่อไปเราจะสร้างทีมที่มี 3 Agent ทำงานร่วมกันครับ

แนวคิดการทำงานเป็นทีม

ในการทำงานจริง เรามักต้องการ Agent หลายตัวทำหน้าที่ต่างกัน เช่น **Agent ที่ 1 - นักวิจัย:** ค้นหาข้อมูลจากแหล่งต่างๆ **Agent ที่ 2 - นักเขียน:** นำข้อมูลมาเขียนเป็นบทความ **Agent ที่ 3 - บรรณาธิการ:** ตรวจสอบความถูกต้องและปรับปรุงบทความ

โค้ดสำหรับสร้างทีม 3 Agent

import os
from crewai import Agent, Crew, Task, Process
from langchain_openai import ChatOpenAI

ตั้งค่า API Key - แทนที่ YOUR_HOLYSHEEP_API_KEY ด้วย Key จริงของคุณ

os.environ["OPENAI_API_KEY"] = "YOUR_HOLYSHEEP_API_KEY"

เชื่อมต่อกับ HolySheep AI

llm = ChatOpenAI( model="gpt-4o", openai_api_base="https://api.holysheep.ai/v1", openai_api_key=os.environ["OPENAI_API_KEY"] )

สร้าง Agent ที่ 1: นักวิจัย

researcher = Agent( role="นักวิจัยข้อมูล", goal="รวบรวมข้อมูลที่ถูกต้องและน่าเชื่อถือเกี่ยวกับหัวข้อที่ได้รับ", backstory="คุณเป็นนักวิจัยที่มีความเชี่ยวชาญในการค้นหาข้อมูลจากแหล่งที่เชื่อถือได้", allow_delegation=False, llm=llm )

สร้าง Agent ที่ 2: นักเขียน

writer = Agent( role="นักเขียนบทความ", goal="เขียนบทความที่น่าสนใจและเข้าใจง่ายจากข้อมูลที่ได้รับ", backstory="คุณเป็นนักเขียนมืออาชีพที่สามารถเขียนเนื้อหาให้ดึงดูดใจผู้อ่าน", allow_delegation=False, llm=llm )

สร้าง Agent ที่ 3: บรรณาธิการ

editor = Agent( role="บรรณาธิการ", goal="ตรวจสอบและปรับปรุงบทความให้สมบูรณ์ที่สุด", backstory="คุณเป็นบรรณาธิการที่มีสายตาที่คมกริบในการจับข้อผิดพลาด", allow_delegation=False, llm=llm )

กำหนดงานให้แต่ละ Agent

task1 = Task( description="ค้นหาข้อมูลเกี่ยวกับประโยชน์ของการเรียนรู้ภาษาอังกฤษ", agent=researcher ) task2 = Task( description="เขียนบทความ 500 คำจากข้อมูลที่นักวิจัยหามา", agent=writer ) task3 = Task( description="ตรวจสอบความถูกต้องและปรับปรุงบทความ", agent=editor )

รวมทุกอย่างเป็นทีม

my_crew = Crew( agents=[researcher, writer, editor], tasks=[task1, task2, task3], process=Process.sequential ) print("ทีมของเราพร้อมแล้ว!") print("ประกอบด้วย:") print("1. นักวิจัย - ค้นหาข้อมูล") print("2. นักเขียน - เขียนบทความ") print("3. บรรณาธิการ - ตรวจสอบบทความ")

การกำหนดวิธีการทำงานร่วมกัน

วิธีที่ 1: ทำงานตามลำดับ (Sequential)

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

วิธีที่ 2: ทำงานพร้อมกัน (Hierarchical)

วิธีนี้ Manager จะเป็นคนแบ่งงานให้ลูกน้องทำ แต่ละคนทำงานพร้อมกันแล้วส่งผลกลับมา ทำให้เสร็จเร็วกว่าแต่ต้องกำหนดการควบคุมให้ชัดเจน

โค้ดตัวอย่างการเลือกวิธีทำงาน

# วิธีที่ 1: ทำงานตามลำดับ
crew_sequential = Crew(
    agents=[researcher, writer, editor],
    tasks=[task1, task2, task3],
    process=Process.sequential  # ทำทีละขั้นตอน
)

วิธีที่ 2: ทำงานแบบมีผู้จัดการ

manager = Agent( role="ผู้จัดการโปรเจกต์", goal="ดูแลให้งานเสร็จทันเวลาและมีคุณภาพ", backstory="คุณมีประสบการณ์ในการบริหารโปรเจกต์มากว่า 15 ปี", allow_delegation=True, llm=llm ) crew_hierarchical = Crew( agents=[manager, researcher, writer, editor], tasks=[task1, task2, task3], process=Process.hierarchical # มีผู้จัดการบริหารงาน ) print("เลือกวิธีการทำงานได้ตามความเหมาะสมของโปรเจกต์")

การให้ Agent ส่งต่องานกัน

การส่งต่องานระหว่าง Agent เป็นสิ่งสำคัญมากในการทำงานเป็นทีมครับ เราต้องบอกให้ชัดเจนว่า Agent นี้ควรส่งงานให้ใครต่อ

โค้ดกำหนดการส่งต่องาน

# กำหนดให้นักวิจัยส่งงานให้นักเขียนโดยอัตโนมัติ
task1 = Task(
    description="ค้นหาข้อมูลเกี่ยวกับเทคนิคการเรียนรู้อย่างมีประสิทธิภาพ",
    agent=researcher,
    expected_output="รายงานข้อมูลที่ครอบคลุม 5 หัวข้อหลัก"
)

task2 = Task(
    description="เขียนบทความจากรายงานของนักวิจัย",
    agent=writer,
    context=[task1],  # รับงานจาก task1 มาใช้
    expected_output="บทความ 500 คำ มีโครงสร้างชัดเจน"
)

task3 = Task(
    description="ตรวจสอบบทความและแก้ไขข้อผิดพลาด",
    agent=editor,
    context=[task2],  # รับงานจาก task2 มาตรวจสอบ
    expected_output="บทความที่พร้อมเผยแพร่"
)

print("งานถูกเชื่อมโยงกันแล้ว:")
print("นักวิจัย -> นักเขียน -> บรรณาธิการ")

การรันทีม Agent ให้ทำงานจริง

หลังจากตั้งค่าทุกอย่างเรียบร้อยแล้ว มาดูวิธีสั่งให้ทีมทำงานกันครับ
# รวมทีมเป็น Crew พร้อมทำงาน
final_crew = Crew(
    agents=[researcher, writer, editor],
    tasks=[task1, task2, task3],
    process=Process.sequential
)

สั่งให้ทำงาน

print("เริ่มสั่งให้ทีมทำงาน...") result = final_crew.kickoff()

แสดงผลลัพธ์

print("\n========== ผลลัพธ์สุดท้าย ==========") print(result)

บันทึกผลลัพธ์ลงไฟล์

with open("result.txt", "w", encoding="utf-8") as f: f.write(str(result)) print("\nบันทึกผลลัพธ์ลงไฟล์ result.txt แล้ว")
เมื่อรันโค้ดนี้ ระบบจะเริ่มทำงานตามลำดับ อาจใช้เวลาประมาณ 1-3 นาทีขึ้นอยู่กับความซับซ้อนของงานครับ

การตรวจสอบว่า Agent ทำอะไรบ้าง

บางครั้งเราอยากรู้ว่าแต่ละ Agent ทำอะไรไปแล้วบ้าง ให้ใช้โค้ดด้านล่างครับ
# ดูรายละเอียดการทำงานของแต่ละ Agent
print("รายงานความคืบหน้า:")
print("=" * 50)

for idx, task in enumerate(final_crew.tasks):
    print(f"\nงานที่ {idx + 1}: {task.description}")
    print(f"ผู้รับผิดชอบ: {task.agent.role}")
    if task.output:
        print(f"ผลลัพธ์: {task.output}")
    else:
        print(f"สถานะ: กำลังดำเนินการ")

print("\n" + "=" * 50)
print("งานเสร็จสมบูรณ์!")

ข้อผิดพลาดที่พบบ่อยและวิธีแก้ไข

กรณีที่ 1: แจ้ง错误 "API Key ไม่ถูกต้อง"

**อาการ:** เมื่อรันโค้ดแล้วขึ้นข้อผิดพลาดเกี่ยวกับ API Key **สาเหตุ:** Key ที่ใส่ไม่ตรงกับที่ HolySheep สร้างให้ หรือยังไม่ได้ใส่ Key จริง **วิธีแก้ไข:** ให้ไปที่หน้าบัญชีผู้ใช้ของ HolySheep แล้วคัดลอก Key มาใส่แทนที่ YOUR_HOLYSHEEP_API_KEY ครับ
# วิธีแก้ไข: ตรวจสอบว่าใส่ Key ถูกต้อง
import os

วิธีที่ 1: ใส่ Key โดยตรงในโค้ด (ไม่แนะนำสำหรับงานจริง)

os.environ["OPENAI_API_KEY"] = "sk-your-real-key-from-holysheep"

วิธีที่ 2: อ่าน Key จากไฟล์ .env (แนะนำ)

from dotenv import load_dotenv load_dotenv() # อ่านไฟล์ .env อัตโนมัติ api_key = os.getenv("HOLYSHEEP_API_KEY") if api_key: os.environ["OPENAI_API_KEY"] = api_key print("API Key พร้อมใช้งานแล้ว") else: print("กรุณาตั้งค่า HOLYSHEEP_API_KEY ในไฟล์ .env")

กรณีที่ 2: ข้อความผิดพลาด "Connection Timeout"

**อาการ:** โค้ดค้างนานแล้วขึ้นข้อผิดพลาด Timeout **สาเหตุ:** เครือข่ายช้าหรือ API ตอบสนองช้า **วิธีแก้ไข:** เพิ่มการตั้งค่า timeout และลองใช้ endpoint ที่ใกล้บ้านที่สุด
# วิธีแก้ไข: เพิ่มการตั้งค่า timeout
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="gpt-4o",
    openai_api_base="https://api.holysheep.ai/v1",
    openai_api_key=os.environ["OPENAI_API_KEY"],
    request_timeout=120,  # รอได้สูงสุด 120 วินาที
    max_retries=3  # ลองใหม่ได้ 3 ครั้งถ้าล้มเหลว
)

ถ้าใช้ OpenAI SDK โดยตรง

from openai import OpenAI client = OpenAI( api_key=os.environ["OPENAI_API_KEY"], base_url="https://api.holysheep.ai/v1", timeout=120.0, max_retries=3 ) print("ตั้งค่า timeout เรียบร้อยแล้ว")

กรณีที่ 3: Agent ไม่ทำงานตามที่กำหนด

**อาการ:** Agent ทำอะไรไม่ได้ตามบทบาทที่กำหนด **สาเหตุ:** กำหนดคำอธิบายบทบาทหรือเป้าหมายไม่ชัดเจน **วิธีแก้ไข:** เขียนคำอธิบายให้ละเอี