การสร้าง AI Agents ด้วย LangChain
LangChain agents ทำงานโดยใช้ LangGraph โดยโมเดลจะเรียกใช้ tools ในรูปแบบลูป (loop) และจะทำงานต่อไปเรื่อยๆ จนกว่าจะพบคำตอบสุดท้าย
คุณสามารถสร้าง support triage agent ได้โดยใช้ createAgent ซึ่งคุณต้องมี 3 สิ่ง ดังนี้:
- โมเดล (model)
- รายการของ tools
- system prompt
การทำงานของลูป: โมเดลจะทำงานเป็นรอบ (turn) โดยในแต่ละรอบจะทำอย่างใดอย่างหนึ่งจากสองสิ่งนี้:
- ส่งคืนข้อความเพื่อสิ้นสุดการทำงาน
- เรียกใช้ tool โดย LangChain จะรัน tool นั้นและเริ่มรอบใหม่พร้อมกับผลลัพธ์ที่ได้
คุณควรตั้งค่า recursionLimit เพื่อป้องกันไม่ให้ agent ทำงานวนลูปไปเรื่อยๆ อย่างไม่สิ้นสุด
วิธีการกำหนด tools:
ใช้ฟังก์ชัน tool ร่วมกับ Zod schema โดยกำหนดชื่อและคำอธิบาย (description) ให้กับแต่ละ tool เพื่อช่วยให้โมเดลตัดสินใจได้ว่าควรจะใช้งานเมื่อใด
ตัวอย่างขั้นตอนการทำงานสำหรับ support agent:
- ผู้ใช้ถามคำถาม
- โมเดลเรียกใช้
get_customer - โมเดลเรียกใช้
get_invoice - โมเดลเรียกใช้
search_knowledge_base - โมเดลสร้าง ticket หรือให้คำตอบ
การเปรียบเทียบ SDKs:
LangChain:
- เหมาะที่สุดสำหรับ RAG และ agent stacks ที่มีความซับซ้อน
- ใช้
tool()ร่วมกับ Zod schemas - ใช้
agent.invokeหรือagent.stream - ใช้ LangGraph สำหรับการจัดการหน่วยความจำ (memory)
Vercel AI SDK:
- เหมาะที่สุดสำหรับแอปพลิเคชัน TypeScript
- ใช้
tool()ร่วมกับinputSchema - ใช้
generateText
OpenAI Agents SDK:
- เหมาะที่สุดสำหรับเวิร์กโฟลว์ที่เน้น OpenAI เป็นหลัก
- ใช้
tool()ร่วมกับ Zod parameters - ใช้
run()
เลือก LangChain หากคุณต้องการ document loaders และ retrievers รวมไว้ในที่เดียว เลือก Vercel หรือ OpenAI หากคุณต้องการเลเยอร์ของ agent ที่เรียบง่าย
Source: https://dev.to/zsevic/building-ai-agents-with-langchain-5e69
Optional learning community: https://t.me/GyaanSetuAi