AI Agent란?
1. AI를 통해 의사결정 및 판단하는 프로그램
2. LLM Agent란?
- 의사 결정의 도구로 LLM을 활용하는 Agent
- 좋은 Agent를 만들려면 LLM을 잘 활용할 수 있어야하는데 잘 활용하기 위한 도구가 LangGraph
LangGraph
랭그래프는 Stateful하고 Orchestration Framework
1. Stateful
상태를 유지한다. Agent니까 멀티 Agent의 경우 서로 소통하고 협력을 하는데 그때의 중간중간마다 결과물이 있는데, 그것을 여기서 말하는 상태라고 합니다.
여기의 상태는 챗봇의 채팅 히스토리와 유사하다.
2. Orchestration Framework
Agent가 협업할 때 어떻게 협업할 지 정해줘야한다. DevOps해보면 Kubernetes 활용해서 오케스트레이션 하는 것 처럼 랭그래프 활용하면 Agent들의 오케스트레이션을 비교적 쉽게 할 수 있다.
랭그래프는 랭체인 기반 Orchestration Framework
랭그래프의 기본 문법 = State, Node, Edge
간단히 말하면 노드 = Agent, 엣지 = 에이전트관의 관계를 설명.
에이전트들은 서로 협력하고 많은 LLM 호출들이 있고 많은 도구 호출들이 있기 때문에 State를 활용해서 그 값들을 관리한다.
1. State
현재 에이전트의 상태
다양한 값들을 넣을 수 있습니다.
메세지도 넣을수 있고 만약 RAG 구성했으면 가져온 문서를 State에 넣을 수도 있습니다.
2. Node
Agent가 수행하는 작업
다른 Agent가 될 수도 있고
멀티 에이전트를 구축했을때 사용자의 질문에 따라서 에이전트 A를 쓸건지 B를 쓸건지 구분할 수 있습니다.
노드는 다른 에이전트가 될 수도 있고 아니면 함수이다.
예를 들면 위 이미지는 Agentic RAG 입니다.
RAG 란 사용자의 질문(query)이 들어오면 질문을 답변하기 위해 질문과 관련된 chunk 들을 가져오는데 ( Retrieve)
Retrieve된 문서들을 활용해서 LLM을 통해 답변을 생성합니다.( Generate )
이런 것들이 에이전트가 수행하는 작업들 입니다. 이런 Retrieve, Generate 이런 것들이 노드에 해당합니다.
3. Edge ( 실선 )
노드사이를 연결하는 것. 즉 노드들의 관계를 나타낸다.
실선 엣지는 다음단계는 무조건 연결된 것. 즉 위 그림에서 rewrite를 하면 반드시 Agent로 돌아가는 것.
4. Conditional Edge ( 점선 )
위 그림에서 Retrieve의 경우에는 선택지가 있는 것. Conditional = 조건부
즉 조건에 따라서 노드를 선택할 수 있는 겁니다.
만약 Retrieve 했는데 리트리브가 너무 잘 되었으면 그러면 바로 답변을 생성(generate)하면 됩니다.
근데 리트리브 했는데 결과가 별로다. 그러면 리트리브를 다시 해와야 되잖아요.
그럴 때 많이 활용하는 방법이 키워드 사전을 활용해 가지고 사용자의 질문을 rewrite를 합니다.
rewrite를 진행하는데 랭체인을 활용하면 시퀀스이기 때문에 rewrite를 무조건 합니다.
rewrite 로직을 반드시 탑니다. 그렇기 때문에 굳이 수정할 필요가 없어도 rewrite를 하게되요.
하지만 LangGraph를 활용하면 조건부 엣지, Conditional Edge가 있기 때문에 rewrite가 반드시 필요할 때 만 rewrite 를 하는겁니다.
LLM 호출을 한 번 덜 하게되니까 굉장히 효율적이라고 볼 수 있습니다.
'공부 정리 > 면접 준비' 카테고리의 다른 글
간단 선형대수 용어 정리 (0) | 2025.02.26 |
---|---|
확증적 데이터 분석 vs 탐색적 데이터 분석 (0) | 2025.02.26 |
[ 디자인패턴 ] IoC와 DI (0) | 2025.01.06 |
[C#] LINQ의 지연 실행에 대해 (0) | 2025.01.06 |
[ 네트워크 ] 3-way handshake, 4-way handshake 과정을 설명해 보세요. (0) | 2023.05.10 |