본문 바로가기

IT 공부기

[IT 공부기] AI Agent Architecture, 흐름으로 이해하기

본 글은 AI Agent를 학습하며 정리한 내용입니다.
전체적인 흐름을 설명하는 데 초점을 두었으며, 세부 구현은 경우에 따라 다를 수 있습니다.
잘못된 부분이나 추가 의견이 있다면 언제든 환영합니다!

 


AI Agent의 전체 흐름

AI Agent는 보통 아래 흐름으로 움직입니다.

  • 사용자의 입력을 받습니다 (Perception)
  • 필요한 정보가 있는지 확인하고 저장합니다 (Memory)
  • 무엇을 어떻게 할지 계획을 세웁니다 (Reasoning)
  • 실제로 행동합니다 (Action)
  • 결과를 확인합니다 (Observation)
  • 결과가 마음에 들지 않으면 다시 계획합니다
  • 조건을 만족하면 최종 결과를 출력합니다 (Feedback Loop)

중간에 Reasoning ↔ Action이 여러 번 반복될 수 있다는 게 핵심이에요.

한 번에 끝내는 구조가 아닙니다.


1. Perception – 입력을 이해하는 단계

먼저, 사용자가 무언가를 입력합니다.
텍스트일 수도 있고, 이미지나 음성일 수도 있죠.

이 단계에서 하는 일은 단순합니다.

사람의 입력을 모델이 이해할 수 있는 형태로 바꾸는 것

 

예를 들면,

  • 텍스트는 → 토크나이저를 거쳐 → 임베딩 벡터로 변환되고
  • 이미지는 → CNN이나 Vision Transformer를 거쳐 → 특징 벡터가 됩니다
  • 음성은 → STFT 같은 전처리를 거쳐 → 음성 임베딩으로 바뀝니다

이렇게 변환된 벡터를 기반으로,
이후 단계에서 “의미”를 다루게 됩니다.


2. Memory – 기억을 저장하고 다시 꺼내는 곳

Agent는 매번 모든 걸 새로 생각하지 않습니다.
대화 내용이나 이전 결과를 기억해 두고 필요할 때 다시 씁니다.

여기서 중요한 포인트가 하나 있어요.

무엇을 기억할지는 자동이 아니라, 설계의 영역

 

보통 이렇게 나뉩니다.

  • 단기 메모리
    • 현재 대화 내용
    • 방금 나온 실행 결과(Observation)
  • 장기 메모리
    • 벡터 DB에 저장된 문서나 지식

장기 메모리로는 Chroma, FAISS 같은 벡터 DB가 자주 사용됩니다.

벡터 DB는 DB이긴 하지만, PostgreSQL 같은 일반 DB와는 성격이 좀 달라요.

  • PostgreSQL → 정형 데이터 중심
  • 벡터 DB → 의미를 담은 고차원 벡터 전용

검색할 때도 정확히 같은 값이 아니라,
의미가 비슷한 것을 찾습니다.


3. Reasoning – AI Agent의 두뇌

여기가 AI Agent의 핵심입니다.

Reasoning 단계에서는 이런 걸 결정합니다.

“지금 상황에서
무엇을,
어떤 순서로,
어떤 도구를 써서
처리할까?”

 

이 단계에서 바로 답을 만들지 않습니다.
먼저 계획부터 세웁니다.


Reasoning은 이렇게 흘러갑니다

먼저 컨텍스트를 정리합니다.

  • 사용자 입력
  • 지금 사용할 수 있는 DB나 외부 도구
  • 시스템 프롬프트(모델의 고정 규칙)

이걸 하나로 묶어서 하나의 문서처럼 만든 상태가 프롬프트 컨텍스트입니다.

그 다음에,

  • 해야 할 일을 잘게 나누고
  • 순서를 정하고
  • 중간 목표를 세웁니다

이때 사용되는 게 CoT, ReAct, ToT 같은 추론 기법들이에요.


도구도 이 단계에서 고릅니다

예를 들어,

  • 검색이 필요하면 search
  • 계산이나 가공이 필요하면 python
  • 데이터 조회면 sql
  • 외부 시스템이면 http_request

이렇게 어떤 도구를 쓸지 결정만 합니다.

실제 실행은 아직 안 합니다.


4. Action – 그냥 실행만 한다

Action 단계는 생각보다 단순합니다.

Reasoning에서 정한 걸 그대로 실행하는 단계

 

여기서는,

  • 판단 ❌
  • 평가 ❌
  • 추론 ❌

그냥 실행만 합니다.

미리 정의된 Tool Interface나 Function Calling을 통해 실제 동작을 수행하고,
그 결과를 다시 Agent에게 돌려줍니다.


5. Observation & 다시 Reasoning

Action이 끝나면 결과가 나옵니다.
이게 Observation입니다.

이제 다시 Reasoning 단계로 돌아가서 묻습니다.

  • 결과가 목표를 만족했나?
  • 조건을 충족했나?
  • 더 보완할 게 있나?

만족하지 못하면
계획을 수정해서 다시 Action으로 갑니다.

이 루프가 계속 반복될 수 있어요.


6. Feedback Loop – 최종 점검

마지막 단계는 Feedback Loop입니다.

여기서 하는 일은 딱 하나입니다.

조건을 만족했는지 확인

 

중요한 점은,

  • 내용이 “맞는지”를 다시 판단하지는 않습니다
  • 사전에 정해둔 조건을 충족했는지만 봅니다

조건을 만족하면 그때서야 사용자에게 결과를 출력합니다.


추가 설명!

간단한 예시로 보면

Reasoning 단계에서는 이렇게 생각합니다

2025년 11월 평균 온도를 알아야 한다.
월별 평균 온도는 날씨 API로 조회할 수 있다.
weather_api.get_monthly_temp(2025, 11)을 호출하자.
필요하면 Python으로 후처리한다.

 

Action 단계에서는 실제로 실행합니다

API 호출 결과, 2025년 11월 평균 온도는 13도이다.
최종 결과를 사용자에게 전달한다.
 

정리해보면

AI Agent는 단순히 질문에 답하는 존재가 아닙니다.

  • 계획을 세우고
  • 실행해보고
  • 결과를 보고
  • 다시 판단하는

반복 구조를 가진 시스템입니다.

그래서 Agent를 설계할 때는 모델 성능뿐 아니라,

  • Memory를 어떻게 쓸지
  • Reasoning 루프를 어디까지 허용할지
  • 어떤 기준으로 종료할지

이런 구조적인 고민이 더 중요해집니다.

반응형