과거의 AI 챗봇은 질문을 받으면 한 번 답변하고 끝나는 식이었습니다.
하지만 지금의 AI 에이전트나 ChatGPT, Claude, Gemini와 같은 진화된 AI는 다릅니다.
'이 프로젝트의 버그를 찾아 고쳐줘', '이 데이터를 읽어서 그래프를 만들어줘'라고 요청하면, 파일을 읽고 코드를 작성하거나 수정하며, 테스트를 실행하고, 잘 안 되면 다시 수정하는 등... 작업이 완료될 때까지 내부적으로 자율적인 작업을 계속합니다.
이러한 '스스로 생각하고 움직이는 힘'을 만들어내는 것이 바로 Agent Loop입니다.
Agent Loop는 기본적으로 다음 3단계로 이루어져 있습니다. 작업이 끝날 때까지 이 3단계를 순환하며 반복합니다.
생각하기 (Model)
AI가 현재 상황을 분석하여 '다음으로 무엇을 해야 할지'를 결정합니다. 에이전트의 '두뇌'에 해당합니다.
관찰하기 (Observation)
도구로부터 반환된 결과물(파일 내용, 에러 메시지, 검색 결과 등)을 모델에 전달합니다.
그 후 '작업이 완료되었는지?'를 판단하고, 아직 아니라면 ① 단계로 돌아가 루프를 계속합니다. 작업이 완료되었다면 사용자에게 최종 답변을 반환합니다.
여기서 중요한 점은, 에이전트는 미리 정해진 절차(스크립트)에 따라 움직이는 것이 아니라는 것입니다. 매번 직전의 결과를 보고 다음 행동을 결정합니다.
| 회차 | 🤔 생각하기 (Model) | 🛠️ 실행하기 (Tool) | 👀 관찰하기 (Observation) |
|---|
| 1 | 먼저 에러를 확인해 보자 | run_tests() | TypeError at line 42 |
| 2 | 42행을 읽지 않으면 알 수 없어 | read_file("app.py") | 해당 행의 코드가 보임 |
| 3 | null 체크가 부족하네. 수정하자 | edit_file(...) | 수정 완료 |
| 4 | 정말 고쳐졌는지 확인해 보자 | run_tests() | ✅ All tests passed |
| 5 | 작업 완료 | ― | 사용자에게 결과 보고 |
일반화하면, Agent Loop는 다음과 같은 단순한 루프 구조로 작성할 수 있습니다.
messages = [user_request]
while True:
response = llm(messages) # ① 생각하기 (Model)
...
핵심은 모델의 응답과 도구의 결과를 모두 messages에 쌓아 올리는 것입니다. 이를 통해 모델은 매번 '지금까지 무엇을 했고, 어떤 일이 발생했는지'를 바탕으로 다음 행동을 생각해낼 수 있습니다.
루프 자체는 간단하다
Model → Tool → Observation의 사이클만 이해하면 에이전트 작동 방식의 큰 틀을 파악할 수 있습니다.
- 능력의 원천은 도구(Tool)
모델이 '두뇌'라면, 도구는 '사지'입니다. 좋은 도구를 많이 가질수록 에이전트가 할 수 있는 일은 늘어납니다.
요즘 AI는 단순히 질문받은 것에 한 번 답하는 존재에서, 문제를 처음부터 끝까지 책임지고 해결하는 에이전트로 변화하고 있습니다.
이를 가능하게 하는 것이 바로 간단하지만 강력한 Agent Loop입니다. 이 기본 원리를 확실히 이해해 둔다면 앞으로 등장할 새로운 AI 기술을 다루는 데도 분명 도움이 될 것입니다.
본 기사는 제가 지금까지 학습했거나 읽은 서적 등을 바탕으로, AI의 도움을 받아 작성되었습니다. 오류나 의견이 있다면 댓글로 알려주시면 감사하겠습니다.
- 이전 글: AI 에이전트를 실제 환경에서 구동하기 위한 'Agent Harness' 입문
- 원문 기사 (미얀마어): Agent Loop (Medium)