단순히 모델에 질문을 던지는 것을 넘어 실제 세상과 업무 환경에서 사람이 하던 일을 맡기는 단계로 기술 활용 방식이 바뀌고 있습니다. 이에 발맞춰 에이전트 중심 설계(Agent-Centric Design)에 대한 관심도 높아지고 있습니다. 이는 AI 시스템을 구축하는 관점을 근본적으로 바꾸는 접근법입니다. AI를 수동적인 정보 처리 도구가 아닌 능동적으로 목표를 지향하는 행위자로 설계하고자 하는 것입니다.
AI 에이전트의 사고 과정과 진화하는 모델
에이전트 중심 설계를 이해하려면 먼저 AI 에이전트는 LLM 그 자체가 아니라는 점을 명확히 인지해야 합니다. AI 에이전트는 LLM을 ‘두뇌’로 사용하지만, 그것으로 완전한 시스템이 될 수 없습니다. 강력한 두뇌가 있어도 현실 세계와 상호작용할 ‘팔과 다리’가 없다면 아무것도 할 수 없는 것과 같습니다.
AI 에이전트는 사용자의 요청을 받으면 다양한 상호작용 속에서 ‘생각-계획-실행’의 과정에 따라 주어진 임무를 수행합니다. 이 과정에서 AI 에이전트는 문제의 성격에 따라 다양한 사고 전략을 구사합니다. 예를 들어 빠른 대응이 필요할 때는 판단과 실행을 바로 반복하는 ReAct 방식을 사용합니다. 복잡한 절차는 논리적인 단계로 나누어 해결하는 CoT(Chain of Thought)가 적합합니다. 여러 대안을 탐색하고 평가해 최적의 결정을 내릴 때는 ToT(Tree of Thought) 전략을 활용합니다.
이러한 설계 철학의 변화는 소프트웨어 아키텍처를 넘어 최신 AI 모델의 개발 방향에도 직접적인 영향을 미치고 있습니다. 최근 등장하는 에이전트 중심 모델들은 도구 활용과 추론 능력에 최적화되어 있습니다. 예를 들어 Alibaba의 Qwen3 모델은 복잡한 문제에 심층 추론을 수행하는 thinking 모드와 간단한 질문에 즉각 답변하는 non-thinking 모드를 도입했습니다. 이를 통해 속도와 정확성의 균형을 맞추며 AI 에이전트가 주도적으로 사고하고 행동하도록 모델 수준에서부터 지원합니다.
멀티 AI 에이전트 시스템
복잡한 문제를 여러 전문가가 협력하여 해결하듯이 AI 세계 역시 모든 것을 잘하는 거대한 단일 AI 에이전트 대신 여러 소규모 전문 에이전트가 협력하는 ‘멀티 AI 에이전트 시스템’이 새로운 표준으로 자리 잡고 있습니다.
이는 소프트웨어 아키텍처가 거대한 모놀리식 애플리케이션에서 작고 독립적인 마이크로서비스로 진화한 맥락과 같습니다. 각 AI 에이전트는 특정 기능에 특화된 ‘AI 마이크로서비스’인 셈입니다. 가령 ‘여행 플래너’ 에이전트는 ‘항공편 에이전트’에게 항공권 예약을 ‘호텔 에이전트’에게 숙소 검색을 위임한 뒤 그 결과를 종합해 사용자에게 제시할 수 있습니다. Google Cloud의 ADK는 이러한 에이전트 중심 설계 기반 멀티 AI 에이전트 철학을 바탕으로 전문화된 AI 에이전트들을 계층 구조로 쉽게 구성하고 이들 간의 복잡한 조정을 구현하도록 돕습니다.
이게 어떻게 가능할까요? ADK가 제공하는 다양한 도구와 패턴을 상황과 필요에 맞게 활용하면 됩니다. 가상의 금융 분석 에이전트 Finwise를 ADK를 활용해 구현하는 시나리오를 통해 그 방법을 알아보겠습니다.
먼저 가장 기본적인 표준 함수 도구(Standard Function Tool)가 있습니다. 이 도구는 ‘새로 추천된 주식의 현재 가격은 얼마인가?’와 같이 상태 저장이 필요 없는 간단한 API를 호출할 때 적합합니다. 일반 파이썬 함수에 @adk.tools.function_tool 데코레이터만 추가하면 간단히 구현할 수 있습니다. 이때 LLM이 함수의 기능을 제대로 이해하도록 명확하고 상세한 독스트링(docstring)을 작성하는 것이 중요합니다. 이는 ‘도구를 위한 프롬프트 엔지니어링’이라고도 설명할 수 있습니다.
다음으로 보안과 세션 관리가 필요할 때는 인증된 함수 도구(Authenticated Function Tool)를 사용합니다. ‘내가 승인하면, 그 주식 10주를 매수해줘.’와 같은 작업이 이에 해당합니다. 함수 파라미터에 tool_context: ToolContext를 추가하면 ADK 프레임워크가 세션 상태에 접근 가능한 ToolContext 객체를 자동으로 주입해 줍니다. 도구는 이 객체를 통해 현재 세션의 인증 토큰 유효성을 확인하고 필요 시 인증 절차를 거친 후 민감한 API를 호출합니다.
요청이 개방적이어서 모든 경우의 수를 함수로 만들기 어려울 때는 도구로서의 에이전트(Agent as a Tool) 패턴이 유용합니다. ‘내 포트폴리오의 지난 1년간 성과를 분석하고 S&P 500 지수와 비교해 그래프로 그려줘.’와 같은 요청이 좋은 예입니다. ADK에는 코드 실행기처럼 강력한 내장 도구를 사용하는 AI 에이전트는 다른 도구를 함께 쓸 수 없다는 설계 규칙이 있습니다. 이를 해결하기 위해 데이터 분석 및 시각화만 전문으로 수행하는 ‘분석가 AI 에이전트’를 별도로 만들고, 이 전문가 AI 에이전트 자체를 메인 AI 에이전트의 ‘도구’로 활용하는 것입니다. 이는 모듈성과 재사용성을 높이는 우아한 해결책입니다.
계산량이 매우 많아 메인 AI 에이전트의 작동을 멈추게 할 위험이 있는 작업은 MCP(Model Context Protocol) 기반 독립형 서비스로 분리하는 것이 좋습니다. 포트폴리오 최적화 시뮬레이션 같은 무거운 작업이 여기에 속합니다. MCP는 ‘AI 도구를 위한 범용 플러그’처럼 작동하여 AI 에이전트와 별도의 도구 서버 간 통신을 표준화합니다. 서버는 자신이 제공하는 도구 목록을 외부에 알리고 AI 에이전트는 이 서비스를 마치 내장된 도구처럼 호출하여 시스템 안정성과 확장성을 확보할 수 있습니다.
기존 자산을 효과적으로 재활용하는 방법도 있습니다. 수백 개의 엔드포인트를 가진 REST API를 통합해야 한다면 OpenAPI Toolset을 활용해 OpenAPI 명세서 파일 하나만으로 모든 도구를 자동으로 생성할 수 있습니다. 이미 LangChain 등으로 구축해 둔 도구가 있다면 LangChain 도구 래퍼를 통해 코드 수정 없이 ADK 기반 AI 에이전트에서 즉시 재사용할 수 있습니다.
마지막으로 대규모 데이터 분석처럼 완료까지 오랜 시간이 걸리는 작업은 LongRunningFunctionTool을 사용해 비동기 방식으로 처리하면 됩니다. AI 에이전트가 이 도구를 호출하면 작업은 백그라운드에서 시작되고 AI 에이전트는 즉시 ‘추적 ID’를 돌려받아 다른 일을 계속할 수 있습니다. 작업이 최종적으로 끝나면 웹훅 등을 통해 결과가 AI 에이전트에게 전달되고, 중단됐던 지점부터 다시 작업을 이어갑니다. 이 패턴은 AI 에이전트를 복잡한 비즈니스 프로세스를 관리하는 진정한 ‘자율 비서’로 만들어 줍니다.
훌륭한 AI 에이전트는 훌륭한 도구에서 시작된다
‘어떤 도구를 어떻게 설계하여 AI 에이전트에게 제공할 것인가?’ 이 질문에 어떤 답을 하느냐에 따라 미래 AI 시스템의 경쟁력이 좌우될 것입니다. 이제 개발자들은 단순히 모델을 호출하는 코더를 넘어 지능적인 시스템을 설계하는 아키텍트의 관점을 가져야 할 때입니다. 이러한 역량을 쌓을 수 있는 기회가 필요하다면 메가존소프트가 도움을 드리겠습니다.