AI 에이전트 구축의 방법
LLM(대형 언어 모델, Large Language Model) 기반 AI 에이전트는 다양한 분야에서 높은 잠재력을 보이며, 실제로 많은 팀이 도입을 고려하거나 이미 활용하고 있습니다. 하지만 복잡한 프레임워크나 라이브러리를 바로 도입하기보다는, 목적에 맞는 단순하고 조합 가능한 패턴으로 시작하는 것이 더욱 효과적일 수 있습니다. 이 글은 Anthropic의 Building effective agents 연구에서 소개된 실무자를 위한 효과적인 에이전트 구축 방법을 소개합니다.
이전에 다음 글들을 통해 AI 에이전트와 멀티 에이전트 활용 방법을 정리한 바 있습니다:
- Ollama #3: OpenAI API와의 호환 통합 및 AutoGen 활용으로 혁신적 AI 개발 시작
- AutoGen Studio #1: 직관적인 다중 AI 에이전트 워크플로우 구성 및 관리
- Ollama #3: OpenAI API와의 호환 통합 및 AutoGen 활용으로 혁신적 AI 개발 시작
에이전트란 무엇인가?
에이전트의 정의는 폭넓으며, 사용 목적에 따라 다양하게 해석됩니다. Anthropic의 개념을 바탕으로 주요 유형을 살펴보면:
- 워크플로우(Workflows) : 사전에 정해진 코드 흐름으로 LLM과 도구를 순서대로 실행합니다. 이는 단순한 프로세스를 최적화하기 위한 기본적인 접근 방식입니다.
- 에이전트(Agents) : LLM이 작업 방식을 스스로 선택하고, 도구 사용을 동적으로 결정하며 문제 해결 과정을 주도합니다. 이를 통해 복잡한 문제를 더 효과적으로 해결할 수 있습니다.

에이전트를 선택할 때의 판단 기준
- 작업의 복잡도: 단순한 작업은 워크플로우로 처리하되, 여러 도구와 복잡한 의사결정이 필요한 경우 에이전트를 고려합니다.
- 유연성 요구: 에이전트는 예측 불가능한 상황에서 유연하게 대처하는 데 적합합니다.
- 비용 대비 효과: 에이전트는 구축과 운영 비용이 높으므로 ROI(Return on Investment)를 신중히 평가해야 합니다.

에이전트 설계의 주요 원칙
에이전트 구축 시 다음 원칙을 염두에 두는 것이 중요합니다:
- 단순성 유지: 처음부터 복잡한 구조를 설계하기보다는, 간단한 시스템에서 출발해 점진적으로 확장하는 접근법이 효과적입니다.
- 투명성 확보: 에이전트의 행동과 의사결정 과정을 로깅하여 가시적으로 드러나게 만듭니다.
- 안전장치 설계: 오작동을 방지하기 위한 철저한 테스트와 거버넌스 체계를 마련합니다.

AI 에이전트 워크플로우 패턴
LLM 기술을 활용한 주요 워크플로우 패턴을 살펴보겠습니다:
1. 증강 LLM (Augmented LLM)
기본 LLM에 Retrieval, 툴 사용, 메모리 등을 결합하여 정보를 탐색하고 결과를 반영하는 구조입니다. 예를 들어, 고객 지원 에이전트는 고객 정보를 검색하고, 이를 통해 개인화된 답변을 제공합니다.
2. 프롬프트 체이닝 (Chaining)
큰 문제를 단계별로 나누어 해결하는 방법으로, 각 단계의 결과를 다음 단계의 입력으로 전달합니다. 중간 단계에서 게이트를 배치해 목표와 부합하지 않는 경우 피드백을 제공하여 과정을 조정할 수 있습니다.
3. 라우팅 (Routing)
입력을 분류하여 서로 다른 유형의 작업에 적합한 프로세스로 보내는 방식입니다. 예를 들어, 기술 지원과 환불 요청을 다른 프로세스로 나누는 고객 서비스 에이전트를 설계할 수 있습니다.
4. 병렬화 (Parallelization)
작업을 여러 부분으로 나누어 동시에 처리하거나 동일한 작업을 여러 번 수행하여 결과를 비교하는 방식입니다. 예를 들어, 번역 작업에서 다양한 번역 결과를 생성하고 가장 적합한 것을 선택할 수 있습니다.
5. 오케스트레이터-워커 (Orchestrator-Workers)
중앙 LLM(오케스트레이터)이 작업을 분할하고 워커 LLM에게 배정합니다. 예측하기 어려운 작업 구조에 적합하며, 유연한 대응이 가능합니다.
6. 평가자-최적화 (Evaluator-Optimizer)
한 LLM이 작업을 생성(Optimizer)하고, 다른 LLM이 이를 평가(Evaluator)하여 반복적으로 개선하는 방식입니다. 번역 품질 향상, 코드 리뷰 등에서 활용될 수 있습니다.
에이전트 사례 연구
1. 고객 지원 에이전트
고객 문의를 처리하기 위해 LLM이 주문 이력 조회, 데이터베이스 접근, 티켓 업데이트 등을 수행합니다. 고객이 원하는 결과를 제공하면 세션을 종료하도록 설계하여 효율성을 극대화합니다.
2. 코딩 에이전트
개발 지원을 위한 에이전트는 코드 생성과 수정, 자동화 테스트를 수행합니다. 예를 들어, GitHub 이슈를 분석하고 적절한 해결책을 제안하는 시스템을 설계할 수 있습니다.
ACI (Agent-Computer Interface) 설계 원칙
에이전트가 외부 시스템과 잘 소통하기 위해서는 툴 정의가 중요합니다. 이를 위해 다음을 고려하세요:
- 간결한 형식: 모델이 쉽게 이해할 수 있도록 JSON이나 Markdown과 같은 간단한 형식을 사용합니다.
- 명확한 예시 제공: 도구 사용 방법과 입력 형식에 대한 명확한 가이드라인을 제공합니다.
- 테스트와 반복 개선: 다양한 입력을 테스트하여 모델이 의도한 대로 동작하는지 확인하고 구조를 개선합니다.
결론
LLM 에이전트는 높은 잠재력을 지니고 있지만, 복잡하게 설계한다고 해서 항상 더 나은 결과를 보장하지는 않습니다. 단순한 프롬프트와 Retrieval로 시작해 점진적으로 복잡도를 높이는 방식이 효과적입니다. 다음과 같은 점을 기억하세요:
- 단순성: 간단한 시스템에서 출발하세요.
- 투명성: 의사결정 과정을 명확히 하고 로깅을 통해 가시성을 높이세요.
- 안전성: 안전장치를 설계하고 철저히 테스트하세요.
결국, 성공적인 에이전트 시스템은 기술적 역량뿐만 아니라, 이를 효과적으로 통합하고 운영하는 데 달려 있습니다. 이를 염두에 두고 설계한다면, 유용하고 신뢰할 수 있는 AI 시스템을 구축할 수 있을 것입니다.
참고