에이전트가 문제를 해결하는 방식은 인간의 사고 과정과 유사합니다. 그 중심에는 '계획(Planning)'이 있습니다. 가장 대표적인 두 가지 전략인 CoT와 ReAct를 상세히 비교합니다.
1. Chain-of-Thought (CoT): 내면의 독백
CoT는 모델이 최종 답변을 내놓기 전, 중간 추론 단계를 텍스트로 생성하도록 유도합니다. 이는 복잡한 산술이나 상식 추론에서 성능을 극적으로 높여줍니다.
사용자: "사과가 5개 있었는데 2개를 먹고 3개를 새로 샀어. 몇 개일까?"
LLM (CoT):
1. 처음 사과 수: 5개
2. 먹은 후: 5 - 2 = 3개
3. 새로 산 후: 3 + 3 = 6개
답변: 6개입니다.
LLM (CoT):
1. 처음 사과 수: 5개
2. 먹은 후: 5 - 2 = 3개
3. 새로 산 후: 3 + 3 = 6개
답변: 6개입니다.
2. ReAct (Reason + Act): 행동하는 사고
현실 세계의 에이전트는 모델 내부의 지식만으로는 부족합니다. ReAct는 '생각(Thought) -> 행동(Action) -> 관찰(Observation)'의 루프를 통해 외부 도구를 활용합니다.
| 특성 | Chain-of-Thought (CoT) | ReAct |
|---|---|---|
| 정보원 | 모델 내부 지식 (Internal) | 외부 도구 + 내부 지식 (External) |
| 정확성 | 훈련 데이터 시점에 국한됨 | 실시간 데이터로 최신성 유지 |
| 복잡도 | 낮음 (프롬프트만으로 가능) | 높음 (도구 연동 및 루프 제어 필요) |
3. 고급 전략: Plan-and-Execute
최근에는 한 단계 더 나아가, 전체 계획을 먼저 세우고(Planner) 각 단계를 실행하는(Executor) 방식이 인기를 얻고 있습니다. 이는 ReAct가 루프에 빠져 길을 잃는 '에이전트 미로' 현상을 방지해줍니다.
결론: 어떤 상황에 무엇을 쓸까?
수학 문제나 논리 퀴즈처럼 정적인 데이터만 필요하다면 CoT가 효율적입니다. 하지만 최신 뉴스 검색, API 호출, 파일 조작 등이 수반되는 실전 애플리케이션이라면 반드시 ReAct 또는 그 이상의 워크플로우를 도입해야 합니다.