Stories

ReAct 기반 AI 에이전트 실행 엔진 설계

· 1 min read
Agent SystemsReActLLMarchitecture

ReAct (Reasoning + Acting) 패턴은 이제 꽤 알려진 에이전트 아키텍처다. 하지만 실제 프로덕션에 올리는 순간, 이론과 현실 사이의 간극이 생각보다 깊다.

왜 ReAct를 선택했나

에이전트에게 “이 기사가 사실인지 확인해줘”라고 요청하면, 단순 LLM 호출로는 검색, 판단, 재검색, 결론의 흐름을 만들기 어렵다.

ReAct는 이 루프를 명시적으로 구조화한다:

Thought → Action → Observation → Thought → ...

세션과 행동 루프 분리

핵심 설계 결정은 세션(Session)행동 루프(Action Loop) 를 완전히 분리한 것이다.

  • 세션: 사용자 의도, 컨텍스트, 크레딧 관리
  • 행동 루프: Tool 선택 → 실행 → Observation 피드백

이렇게 하면 같은 루프 엔진으로 서로 다른 세션 타입(Prediction/Claim)을 처리할 수 있다.

LLM 어댑터 레이어

Claude ↔ Azure OpenAI 전환을 위해 어댑터 레이어를 설계했다. 비용/성능 상황에 따라 런타임에 LLM을 교체할 수 있다.

class LLMAdapter:
    def complete(self, messages: list[Message]) -> str: ...

다음 과제

  • 슬라이딩 윈도우 컨텍스트 관리로 품질 vs 비용 최적화
  • 에이전트 메모리 시스템 (크로스 세션 장기 기억)