LangChain으로 AI 에이전트 구축하기
LangChain 에이전트는 LangGraph를 사용하여 작동합니다. 모델은 루프 내에서 도구(tools)를 호출하며, 최종 답변을 찾을 때까지 이 과정을 반복합니다.
createAgent를 사용하여 지원 분류(support triage) 에이전트를 구축할 수 있습니다. 다음 세 가지가 필요합니다:
- 모델
- 도구 목록
- 시스템 프롬프트
루프 작동 방식: 모델이 한 차례 동작합니다. 한 차례의 루프에서 모델은 다음 두 가지 중 하나를 수행합니다:
- 실행을 종료하기 위해 텍스트를 반환합니다.
- 도구를 호출합니다. LangChain은 해당 도구를 실행하고 그 결과와 함께 새로운 차례를 시작합니다.
recursionLimit을 설정해야 합니다. 이는 에이전트가 무한 루프에 빠지는 것을 방지합니다.
도구 정의 방법:
Zod 스키마와 함께 tool 함수를 사용하세요. 각 도구에 이름과 설명을 부여합니다. 이는 모델이 언제 도구를 사용할지 결정하는 데 도움이 됩니다.
지원 에이전트의 예시 흐름:
- 사용자가 질문을 합니다.
- 모델이
get_customer를 호출합니다. - 모델이
get_invoice를 호출합니다. - 모델이
search_knowledge_base를 호출합니다. - 모델이 티켓을 생성하거나 답변을 제공합니다.
SDK 비교:
LangChain:
- RAG 및 복잡한 에이전트 스택에 가장 적합합니다.
- Zod 스키마와 함께
tool()을 사용합니다. agent.invoke또는agent.stream을 사용합니다.- 메모리를 위해 LangGraph를 사용합니다.
Vercel AI SDK:
- TypeScript 앱에 가장 적합합니다.
inputSchema와 함께tool()을 사용합니다.generateText를 사용합니다.
OpenAI Agents SDK:
- OpenAI 우선 워크플로우에 가장 적합합니다.
- Zod 파라미터와 함께
tool()을 사용합니다. run()을 사용합니다.
문서 로더(document loaders)와 리트리버(retrievers)를 한 곳에서 모두 사용해야 한다면 LangChain을 선택하세요. 간단한 에이전트 레이어를 원한다면 Vercel 또는 OpenAI를 선택하세요.
출처: https://dev.to/zsevic/building-ai-agents-with-langchain-5e69
선택 사항 학습 커뮤니티: https://t.me/GyaanSetuAi