https://claremont.tistory.com/entry/%EC%83%9D%EC%84%B1%ED%98%95-AI-LangChain%EC%9D%B4%EB%9E%80
[생성형 AI] LangChain이란?
ㅁLangChain: LLM을 활용하여 응용 프로그램을 개발하는 프레임워크주로 OpenAI의 GPT, Google의 PaLM, Meta의 Llama 등 다양한 LLM과 통합하여 문서 검색, 데이터 분석, 자동화된 AI 응답 시스템 등을 구축하는
claremont.tistory.com
ㅇLangGraph 라이브러리: LangChain 기반의 멀티 에이전트(Multi-Agent) 및 상태 관리(State Management) 라이브러리
기존 LangChain의 체인(Chains) 모델보다 더 유연하고 동적인 워크플로우를 구축할 수 있도록 설계되었다
[LangGraph 라이브러리 특징]
- 멀티 에이전트 시스템 구축
- 여러 개의 LLM 에이전트를 동시에 실행하며, 서로 상호작용하게 할 수 있다
- e.g. 한 에이전트는 요약을 담당하고, 다른 에이전트는 분석을 수행하는 구조 가능
- 그래프(Graph) 기반 워크플로우
- 기존 LangChain의 체인보다 더 복잡한 분기(branching) 구조를 만들 수 있다
- AI가 조건에 따라 다른 경로를 선택하여 실행할 수 있다
- 상태 관리(State Management)
- LLM이 이전 상태를 기억하면서 동적인 대화 흐름을 조정할 수 있도록 지원한다
(LangGraph를 활용한 멀티 에이전트 시스템 예제)
from langgraph.graph import StateGraph
from langchain.chat_models import ChatOpenAI
# LangGraph를 사용한 간단한 에이전트 구축
class State:
messages: list
llm = ChatOpenAI(model="gpt-4")
# 그래프 생성
workflow = StateGraph(State)
# LLM 실행 노드 추가
workflow.add_node("agent", llm)
# 시작 노드 지정
workflow.set_entry_point("agent")
# 실행
app = workflow.compile()
output = app.invoke({"messages": ["LangGraph란 뭐야?"]})
print(output)
ㅇCrewAI 라이브러리: LLM을 활용하여 다중 AI 에이전트(Multi-Agent)를 조정하는 라이브러리
LangGraph가 그래프 기반 워크플로우를 제공하는 반면, CrewAI는 여러 AI 에이전트들이 협력하여 작업을 수행하도록 설계되었다
[CrewAI 라이브러리 실행 순서]
- 역할 기반(Role-based) AI 에이전트 협업
- 에이전트를 정의하고 role(역할), goal(목표), backstory(배경 설명) 작성
- 에이전트들이 협력하여 지정된 작업을 순차적으로 해결한다
- 태스크(Task) 기반 워크플로우
- 태스크를 정의하고 description(설명), expected_output(예상 결과물), agent(수행 에이전트) 설정
- 단순한 개별 실행이 아니라, 특정 순서에 따라 태스크를 수행하는 워크플로우(workflow)를 구성
- 멀티 에이전트 조정 및 협력(Multi-Agent Orchestration)
- 에이전트들로 구성된 크루를 정의하고 해당 에이전트들이 수행할 태스크를 지정
- 각 AI가 개별적으로 작동하는 것이 아니라, 서로 정보를 주고받으며 협업하는 방식으로 동작한다
(CrewAI 라이브러리를 활용한 팀 구성 및 협업 예제)
from crewai import Agent, Task, Crew
from langchain.chat_models import ChatOpenAI
llm = ChatOpenAI(model="gpt-4")
# 역할 기반 AI 에이전트 생성
researcher = Agent(
name="Researcher",
role="AI 연구원",
goal="최신 AI 트렌드에 대한 정보를 수집",
backstory="AI 및 기술 발전을 연구하는 전문가",
llm=llm
)
writer = Agent(
name="Writer",
role="AI 콘텐츠 작성자",
goal="연구원이 제공한 정보를 바탕으로 블로그 글 작성",
backstory="기술 문서를 전문적으로 작성하는 AI",
llm=llm
)
# 태스크(Task) 정의
research_task = Task(description="최신 AI 연구 트렌드 검색", agent=researcher)
writing_task = Task(description="연구 내용을 바탕으로 블로그 작성", agent=writer)
# Crew 구성 (팀 운영)
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, writing_task]
)
# 실행
result = crew.kickoff()
print(result)
이 코드에서는 AI 연구원(Researcher)과 글 작성자(Writer) 두 명의 AI 에이전트가 협력하여 최신 AI 트렌드에 대한 블로그 글을 자동 생성한다
+ 원영적 사고 변환기 - LLM 오케스트레이션
https://github.com/imclaremont/wonyoung_thinking_converter
GitHub - imclaremont/wonyoung_thinking_converter: 원영적 사고 변환기 - LLM 오케스트레이션
원영적 사고 변환기 - LLM 오케스트레이션. Contribute to imclaremont/wonyoung_thinking_converter development by creating an account on GitHub.
github.com
[LangGraph 라이브러리 vs CrewAI 라이브러리]
(LangGraph 활용 사례)
- 멀티 에이전트 챗봇: 사용자의 요청에 따라 AI 에이전트들이 협력하여 정보를 제공
- 동적 AI 워크플로우: 입력값에 따라 실행 경로가 달라지는 AI 시스템
- 고급 검색 및 추천 시스템: AI가 정보를 검색하고 추천하는 엔진 개발
(CrewAI 활용 사례)
- AI 팀워크 자동화: 여러 AI가 협력하여 연구, 콘텐츠 생성, 데이터 분석 수행
- 기업 자동화 시스템: AI가 사내 문서를 분석하고 보고서를 자동으로 생성
- 프로젝트 매니지먼트: AI가 프로젝트 역할을 나누고 수행하는 시스템
(한 줄 정리)
👉 LangGraph는 동적인 워크플로우 자동화에, CrewAI는 역할 기반 AI 협업 시스템 구축에 최적화된 라이브러리이다
'인공지능 > 생성형 AI' 카테고리의 다른 글
[생성형 AI] OpenAI 이미지 생성 활용(w/DALL·E 3) (1) | 2025.02.17 |
---|---|
[생성형 AI] OpenAI 음성 생성 및 입력 활용 (0) | 2025.02.17 |
[생성형 AI] LangChain이란? (0) | 2025.02.17 |
[생성형 AI] AGI(Artificial General Intelligence): 인공지능의 최종 목표 (1) | 2025.02.17 |
[생성형 AI] LLM의 Tool Calling(도구 호출)이란? (0) | 2025.02.17 |