지난 글 AI 에이전트와 워크플로우에서 워크플로우와 대비해 에이전트를 짧게 짚고 넘어갔다. 이번에는 그 “에이전트” 자체를 조금 더 뜯어보려 한다. 무엇으로 이루어져 있고, 어떻게 움직이는가.
무엇으로 이루어져 있나 — 세 가지 구성요소
AI 에이전트를 뜯어보면 결국 세 덩어리로 나뉜다. 모델, 메모리, 도구다.

모델(LLM) — 판단하는 두뇌
에이전트의 중심에는 판단을 맡는 모델이 있다. 대개 LLM을 사용하게 된다. 그리고 이미지나 음성까지 다루는 멀티모달 모델일 수도 있어 넓게는 ‘기반 모델’이라 부른다. 무엇을 할지 생각하고, 도구를 고르고, 결과를 해석하는 판단이 여기서 일어난다. 그리고 똑똑한 모델만큼 중요한 것이, 그 모델에게 무엇을 쥐여주느냐이다.
메모리 — 무엇을 기억하는가
모델은 기본적으로 지난 일을 기억하지 못한다. 매 호출은 백지에서 시작한다. 그래서 필요한 정보를 메모리에 담아 매번 다시 넣어 준다. 메모리는 지속 범위로 나뉜다.
- 단기 메모리 — 지금 이 대화 안에서만 필요한 것. 직전 발화, 방금 도구가 돌려준 결과 등.
- 장기 메모리 — 대화가 바뀌어도 이어져야 하는 것. 사용자의 취향, 반복되는 설정 등. 따로 저장해 두었다가 필요할 때 꺼내 온다.
도구 — 무엇을 할 수 있는가
모델은 혼자서는 텍스트만 뱉을 뿐, 바깥세상에 아무 영향도 주지 못한다. 검색하고, 조회하고, 예약하려면 손발이 필요하다. 모델이 실제로 행동하는 이 손발이 도구(tool) 다. 함수 호출, 스킬, 외부 API 등이 여기 속한다. 에이전트가 할 수 있는 일의 범위는 곧 도구의 범위다. (이 도구들을 통틀어 에이전트의 환경이라 부르기도 한다.)
어떻게 움직이나 — ReAct에서 계획까지
세 요소가 갖춰졌다면, 에이전트는 이것들을 하나의 루프 안에서 돌린다. 가장 널리 쓰이는 방식이 ReAct다.
ReAct — 생각, 행동, 관찰의 반복
ReAct는 생각(Reason) → 행동(Act) → 관찰(Observe)의 과정을 번갈아 반복한다.
- 생각(Reason) — 지금 상황을 보고 다음에 뭘 할지 정한다. (모델)
- 행동(Act) — 정한 대로 실행에 옮긴다. (도구)
- 관찰(Observe) — 그 결과를 받아 다음 생각의 재료로 삼는다. (메모리에 쌓임)
세 구성요소가 이 루프의 각 단계에 그대로 대응한다. 모델이 생각하고, 도구로 행동하고, 관찰한 결과가 메모리에 쌓여 다음 생각으로 이어진다.
예를 들어 “이번 주말 서울 날씨에 맞는 나들이 장소 추천해줘”라면:
- 생각 — 날씨부터 알아야겠다.
- 행동 — 날씨 조회 도구를 부른다.
- 관찰 — “주말 내내 비”라는 결과를 받는다.
- 생각 — 그럼 실내 위주로 찾아야겠다.
- 행동 — 실내 장소를 검색한다.
- 관찰 — 후보 목록을 받는다.
- 생각 — 이제 정리해 답하면 되겠다. → 완료.
몇 번을 돌지는 미리 정해져 있지 않다. 관찰 결과에 따라 다음 행동을 그때그때 정하고, 충분하다 싶으면 루프를 빠져나온다. 이 “스스로 반복하고 스스로 멈추는” 성질이 에이전트를 워크플로우와 구분 짓는 핵심이다.
ReAct의 한계
간단한 작업엔 잘 맞지만, ReAct는 한 걸음씩 근시안적으로 결정한다는 약점이 있다. 전체 계획 없이 매 순간 “지금 뭘 할까”만 보기 때문에, 작업이 길고 복잡해질수록 문제가 드러난다.
- 길을 잃는다 — 큰 목표를 놓치고 곁길로 새거나, 이미 한 일을 또 한다.
- 오류가 쌓인다 — 앞 단계의 잘못된 판단 위에 계속 쌓아 올려, 나중에 되돌리기 어렵다.
- 비효율적이다 — 서로 독립적인 하위 작업도 하나씩 순서대로 처리하고, 관찰이 쌓일수록 컨텍스트가 길어져 초점이 흐려진다.
Planning — 먼저 계획하고 실행한다
그래서 나온 게 계획(Planning) 패턴이다. 매 순간 즉흥적으로 정하는 대신, 먼저 목표를 하위 작업(subtasks)으로 쪼개 계획을 세운 뒤 실행한다.
계획이 명시적으로 있으니 전체 목표를 놓치지 않고, 독립적인 단계는 나눠서(때로는 병렬로) 처리할 수 있으며, 중간에 어긋나면 그 지점부터 다시 계획(re-plan) 해 복구한다. 위 날씨 예시라면 “① 날씨 확인 → ② 날씨에 맞는 장소 검색 → ③ 정리”라는 계획을 먼저 세우고 실행하는 식이다.
정리하면 ReAct는 유연하지만 근시안적이고, Planning은 멀리 보지만 계획을 세우고 관리하는 비용이 든다. 그래서 실제 에이전트는 둘을 섞기도 한다 — 큰 틀은 계획으로 잡고, 각 단계 안에서는 ReAct 기반의 하위 작업으로 유연하게 대응하는 식이다.
사실 섞을 수 있는 건 이 둘만이 아니다. 이 외에도 멀티 에이전트(여러 에이전트가 역할을 나눠 협업), 인간 참여(human-in-the-loop)(중요한 길목에서 사람이 개입) 같은 패턴이 더 있다. 그리고 이 패턴들은 하나만 골라 쓰는 게 아니라, 한 에이전트 안에서도 서로 보완하도록 함께 쓸 수 있다.
정리
AI 에이전트는 모델(생각) + 메모리(기억) + 도구(행동), 이 세 요소로 이루어진다. 그리고 이것들을 생각 → 행동 → 관찰로 반복하는 방식이나, 복잡한 작업이라면 먼저 계획을 세우고 실행하며 동작한다. 모델은 판단하고, 도구는 그 판단을 행동으로 옮기고, 메모리는 관찰한 것을 쌓아 다음 판단을 돕는다.
구조와 동작을 봤으니, 자연스럽게 다음 질문이 남는다. 그래서 이걸 잘 만들려면 무엇을 신경 써야 할까? 그건 직접 설계하며 정리한 다음 글에서 이어 가려 한다.