주제: 6-3 Agent 구조 (ReAct / Toolformer / Self-RAG)
일반 LLM은 프롬프트 하나를 보고 곧바로 응답을 만든다. 반면 agent는 문제를 여러 단계로 쪼개고, 검색이나 계산기 같은 외부 도구를 호출하며, 그 결과를 다시 다음 입력으로 사용한다. 그래서 더 복잡한 작업 흐름을 다룰 수 있다.
즉 agent 구조는 LLM을 단순 생성기에서 문제 해결 루프로 확장하는 시도라고 볼 수 있다. 이 차이를 잡아두면 ReAct, Toolformer, Self-RAG가 왜 등장했는지 이해하기 쉬워진다.
문제 설정
일반적인 LLM은 다음 방식으로 동작합니다.
즉 입력 프롬프트만 기반으로 답을 생성합니다.
하지만 실제 문제 해결에서는 다음 기능이 필요합니다.
- 외부 정보 검색
- 도구 호출
- 중간 추론 기반 의사결정
이 문제를 해결하기 위해 등장한 구조가 LLM Agent입니다.
핵심은 "모델이 답을 아느냐"보다 "필요한 정보를 찾고, 도구를 호출하고, 중간 결과를 이용해 다음 행동을 선택할 수 있느냐"에 있다. 그래서 agent는 reasoning과 acting을 함께 다룬다.
일반 LLM은 프롬프트 하나를 보고 곧바로 응답을 만든다. 반면 agent는 문제를 여러 단계로 쪼개고, 검색이나 계산기 같은 외부 도구를 호출하며, 그 결과를 다시 다음 입력으로 사용한다. 그래서 더 복잡한 작업 흐름을 다룰 수 있다.
직관 비유
- 기존 LLM -> 질문 -> 답
- Agent -> 생각 -> 행동 -> 관찰 -> 답
Thought → Action → Observation
이 차이가 중요한 이유는, 복잡한 업무에서는 "답을 아는가"보다 "필요한 정보를 찾고 조합할 수 있는가"가 더 중요하기 때문이다. agent 구조는 LLM을 단순 생성기에서 문제 해결 루프로 확장한다.
1. Agent 의사결정 구조
Agent는 다음 루프 구조를 가집니다.
User Query
↓
Reasoning
↓
Tool Call
↓
Observation
↓
Next Reasoning
즉 모델이 스스로 다음 행동을 결정합니다.
2. ReAct (Reason + Act)
ReAct는 reasoning과 tool use를 결합한 프롬프트 방식입니다.
구조
Thought: 문제 분석
Action: tool 호출
Observation: 결과 확인
예:
Question: What is the capital of France?
Thought: I should search for the capital.
Action: Search("capital of France")
Observation: Paris
Answer: Paris
수식 관점
기호 의미
- state_t : 현재 context
- a_t : 선택된 action
왜 필요한가
LLM이 외부 도구를 사용할 수 있도록 합니다.
주의점
프롬프트 설계가 중요합니다.
3. Toolformer
Toolformer는 LLM이 스스로 tool 사용을 학습하도록 만든 모델입니다.
핵심 아이디어
- LLM이 tool API를 호출하는 방법을 학습
예:
Input:
The result of 234 * 45 is [Calculator(234*45)].
모델은 tool 호출 위치를 학습합니다.
수식
기호 의미
- tool_call : API 호출
왜 중요한가
프롬프트 없이도 tool 사용이 가능합니다.
4. Self-RAG
Self-RAG는 retrieval을 모델이 스스로 판단하는 구조입니다.
기존 RAG:
Query
↓
Retrieval
↓
Generation
Self-RAG:
Query
↓
LLM decides retrieval
↓
Retrieve or generate
수식
기호 의미
- a_t : retrieval action
왜 필요한가
항상 retrieval을 수행할 필요는 없습니다.
주의점
retrieval 판단이 중요합니다.
5. Agent 실행 루프
while not finished:
thought = LLM(reason)
action = select_tool(thought)
observation = tool(action)
update_context()
Agent는 iterative reasoning 구조를 가집니다.
6. ReAct vs Toolformer vs Self-RAG
| 방법 | 특징 |
|---|---|
| ReAct | prompt 기반 reasoning + action |
| Toolformer | tool usage 학습 |
| Self-RAG | retrieval decision 학습 |
7. Agent 시스템 구성
User Query
↓
Planner (LLM)
↓
Tool Execution
↓
Observation
↓
Final Answer
즉 LLM이 planner 역할을 합니다.
코드-수식 연결
| 개념 | 코드 | 설명 |
|---|---|---|
| agent loop | while not done: |
반복 reasoning |
| tool call | tool.run() |
외부 도구 실행 |
| LLM reasoning | llm.generate() |
다음 행동 결정 |
자주 하는 오해 5개
- Agent는 모델 구조를 변경한다고 생각한다
- ReAct는 학습 기반 방법이라고 생각한다
- 모든 질문에 tool 사용이 필요하다고 생각한다
- Agent는 항상 더 정확한 답을 준다고 생각한다
- Self-RAG는 단순 retrieval 시스템이라고 생각한다
체크리스트 (스스로 설명 가능해야 하는 질문)
- LLM Agent는 어떤 문제를 해결하는가?
- ReAct 구조에서 Thought/Action/Observation의 역할은 무엇인가?
- Toolformer는 어떤 방식으로 tool 사용을 학습하는가?
- Self-RAG는 기존 RAG와 어떤 차이가 있는가?
- Agent 시스템에서 LLM의 역할은 무엇인가?