AI 에이전트 시스템을 설계할 때 알아두면 좋은 내용

TL;DR

시작하며

요즘 에이전트 기반으로 만들고 있는게 있는데, 백오피스 같은걸 만들때 어떤 부분들이 어떻게 확장되어야 할 지 애매한 부분이 많았다.

본 글에서는 AI 에이전트 시스템의 종류를 대략(내 맘대로) 분류해보고, 해당 시스템을 설계할 때 알아두면 좋은 내용을 정리해본다.

Thinking, fast and slow

에이전트 관련된 글에서 자주 인용하는 것이 Daniel Kahneman의 Thinking, fast and slow 에서 소개된 두 가지 시스템이다.

system

이게 에이전트 기반 시스템과 기존 시스템의 차이점을 이해할 때 유용한 것 같아서, 여기서도 붙여본다.

쉽게 말하면 System 1은 빠르고 직관적인 판단을 하는 시스템으로 일반적인 챗봇 시스템이라고 볼 수 있다.

반면 System 2는 느리고 논리적인 판단을 하는 시스템으로 ReAct 기반의 AI 에이전트 시스템이라고 볼 수 있다.

그리고 좋은 의사결정을 위해서는 이 두 시스템을 적절히 사용하는 것이 중요하다.

AI 기반 시스템 분류

단일 프롬프팅 시스템 (System 1)

프롬프트 체이닝 시스템 (Extended System 1)

단일 AI 에이전트 시스템 (System 2)

멀티 AI 에이전트 시스템 (Extended System 2)

복잡한 멀티 AI 에이전트 시스템 (Complex extended System 2)

AI 에이전트 기반 시스템 설계

간단한 Text 2 SQL 시스템

아래의 두 그림은 같은 작업을 하는 서로 다른 구현방식이다.

고려할 내용

트레이싱 및 디버깅

요청 시간 및 비용

동시성 제어

비동기 요청 처리

백오피스

마치며

에이전트 시스템을 구현할 때는 또 다른 내용들이 고려되어야 하는데 글에서는 다루지 않았다.

구현시 고려할 내용의 예를 하나만 들면 패키징 단위 가 있을 것이다.

구체적으로는, 하나의 에이전트당 하나의 컨테이너로 빌드해서 배포한다고 할 때, 툴을 같이 묶어서 빌드할 것인지(일반적인 에이전트 프레임워크 방식들), 아니면 툴과 에이전트를 개별로 빌드할 것인지 (아마존 베드락 에이전트가 람다를 이용하서 툴을 호출하는 방식) 이다.

이러한 내용들은 구현하려는 시스템의 특성에 따라 다르게 결정되어야 하므로, 구현 전에 충분한 검토가 필요하다.