이 포스팅은 2025년 2월 Google이 발표한 whitepaper Agents(by Julia Wiesinger, Patrick Marlow and Vladimir Vuskovic)를 요약한 글입니다.
인간은 복잡한 패턴 인식 작업에 뛰어나지만, 결론에 도달하기 전에 책, Google Search, 계산기와 같은 도구를 사용하여 사전 지식을 보완한다. Generative AI 모델도 인간처럼 도구를 사용하도록 훈련될 수 있다.
예를 들어, 모델은 데이터베이스 검색 도구를 활용하여 고객의 구매 이력과 같은 특정 정보에 접근하고, 맞춤형 쇼핑 추천을 생성할 수 있다. 또는 사용자 쿼리에 기반하여 다양한 API 호출을 통해 동료에게 이메일을 보내거나 금융 거래를 완료할 수 있다.
이러한 추론, 논리, 외부 정보 접근의 조합이 Generative AI 모델에 연결되면 Agent라는 개념이 등장한다.
Agent는 단독 Generative AI 모델의 능력을 넘어서는 프로그램이다.
Generative AI agent는 세계를 관찰하고, 보유한 도구를 사용하여 목표 달성을 시도하는 애플리케이션으로 정의된다.
Agent의 핵심 특성은 다음과 같다:
Agent의 중앙 의사결정자 역할을 하는 언어 모델(LM)으로,
다음과 같은 특징을 가진다:
기본 모델은 인상적인 텍스트 및 이미지 생성 능력을 갖지만 외부 세계와 상호작용할 수 없는 한계를 가지는데, 이는 Tools로 극복할 수 있다.
Agent가 정보를 받아들이고, 내부 추론을 수행하며, 그 추론을 사용하여 다음 행동이나 결정을 알리는 순환 프로세스를 설명한다.
Models | Agents |
---|---|
훈련 데이터에서 사용 가능한 것으로 제한된 지식 | Tools를 통해 외부 시스템과 연결하여 확장된 지식 |
사용자 쿼리 기반 단일 추론/예측 | 관리된 세션 히스토리로 다중 턴 추론/예측 |
네이티브 tool 구현 없음 | Tools가 agent 아키텍처에 기본적으로 구현됨 |
네이티브 논리 레이어 구현 없음 | CoT, ReAct 또는 LangChain과 같은 추론 프레임워크를 사용하는 네이티브 cognitive architecture |
바쁜 주방의 요리사를 상상해보자. 요리사의 목표는 레스토랑 고객을 위한 맛있는 요리를 만드는 것이며, 이는 계획, 실행, 조정의 순환을 포함한다:
이 정보 수집, 계획, 실행, 조정의 순환이 요리사가 목표 달성을 위해 사용하는 독특한 cognitive architecture를 설명한다.
언어 모델이 사용자 쿼리에 대해 추론(Reason)하고 행동(Act)하는 사고 과정 전략을 제공하는 프롬프트 엔지니어링 프레임워크이다. ReAct 프롬프팅은 여러 SOTA 기준선을 능가하고 LLM의 인간 상호운용성과 신뢰성을 향상시킨다.
중간 단계를 통해 추론 능력을 가능하게 하는 프롬프트 엔지니어링 프레임워크이다. self-consistency, active-prompt, multimodal CoT를 포함한 다양한 하위 기법이 있다.
탐색이나 전략적 선견 작업에 적합한 프롬프트 엔지니어링 프레임워크이다. chain-of-thought 프롬프팅을 일반화하고 모델이 언어 모델을 사용한 일반적인 문제 해결을 위한 중간 단계 역할을 하는 다양한 사고 체인을 탐색할 수 있게 한다.
언어 모델은 정보 처리에 뛰어나지만, 실제 세계를 직접 인식하고 영향을 미칠 수 있는 능력이 부족하다. Tools는 이러한 격차를 해소하여 agent가 외부 데이터 및 서비스와 상호작용하고 기본 모델만으로는 불가능한 더 넓은 범위의 작업을 수행할 수 있게 한다.
Google 모델이 상호작용할 수 있는 세 가지 주요 tool 유형은 다음과 같다:
Extensions는 API와 agent 사이의 간격을 표준화된 방식으로 연결한다. Extension이 하는 일:
Extensions의 주요 강점: built-in example types를 통해 agent가 작업에 가장 적합한 Extension을 동적으로 선택할 수 있다.
Google은 즉시 사용 가능한 몇 가지 extension을 제공한다:
Functions는 소프트웨어 엔지니어링의 함수 개념과 유사하다. Extensions와의 주요 차이점:
Functions 사용 사례:
Data Stores는 언어 모델을 지속적으로 새로운 책을 획득하는 도서관이 아닌 정적인 도서관으로 비유할 수 있다. Data Stores는 이러한 한계를 해결하여 더 동적이고 최신 정보에 대한 액세스를 제공한다.
Data Stores가 지원하는 형식:
Extensions | Function Calling | Data Stores |
---|---|---|
Agent 측 실행 | 클라이언트 측 실행 | Agent 측 실행 |
개발자가 agent가 API 엔드포인트와의 상호작용을 제어하기를 원할 때 | 보안이나 인증 제한으로 agent가 API를 직접 호출할 수 없을 때 | RAG 구현을 원할 때 |
네이티브 사전 구축 Extensions 활용 시 유용 | 타이밍 제약이나 작업 순서 제약이 있을 때 | 웹사이트 콘텐츠, 구조화된/비구조화된 데이터 처리 |
다중 홉 계획 및 API 호출 | 인터넷에 노출되지 않은 API | 관계형/비관계형 데이터베이스 |
모델을 효과적으로 사용하는 데 있어 중요한 측면은 출력 생성 시 올바른 도구를 선택하는 능력이다. 이는 기본 요리 기술과 특정 요리 마스터하기의 차이와 같다.
일반화된 모델에 추론 시점에 프롬프트, 도구 및 few-shot 예제를 제공하여 특정 작업에 대해 '즉석에서' 학습할 수 있게 한다. ReAct 프레임워크가 자연어에서 이 접근법의 예이다.
외부 메모리에서 가장 관련성 높은 정보, 도구 및 관련 예제를 검색하여 모델 프롬프트를 동적으로 채운다. Vertex AI extensions의 'Example Store'나 이전에 언급된 data stores RAG 기반 아키텍처가 이에 해당한다.
추론 전에 특정 예제의 더 큰 데이터셋을 사용하여 모델을 훈련시킨다. 이는 모델이 사용자 쿼리를 받기 전에 특정 도구를 언제 어떻게 적용할지 이해하는 데 도움이 된다.
LangChain과 LangGraph 라이브러리를 사용한 실제 agent 구현 예제이다. 이러한 오픈 소스 라이브러리를 통해 사용자는 논리, 추론 및 도구 호출의 시퀀스를 "체인"하여 맞춤형 agent를 구축할 수 있다.
예제에서는 다음의 과정을 다룬다.
이는 Model, Orchestration, Tools가 모두 함께 작동하여 특정 목표를 달성하는 기본적인 구성요소를 보여준다. (자세한 내용은 생략하겠다.)
프로덕션 급 애플리케이션을 구축하려면 사용자 인터페이스, 평가 프레임워크, 지속적인 개선 메커니즘과 같은 추가 도구와 agent를 통합해야 한다.
Google의 Vertex AI 플랫폼은 완전 관리형 환경을 제공하여 이 프로세스를 단순화한다:
이를 통해 개발자는 인프라, 배포 및 유지 관리의 복잡성을 플랫폼이 관리하는 동안 agent 구축 및 개선에 집중할 수 있다.
Agent는 도구를 활용하여 언어 모델의 능력을 확장한다:
Agent 작동의 핵심은 orchestration layer이며, 이는 다음을 구조화하는 cognitive architecture이다:
Extensions, Functions, Data Stores와 같은 도구는 agent가 외부 세계와 상호작용할 수 있는 key 역할을 한다:
Agent의 미래는 흥미진진한 발전을 약속한다:
복잡한 agent 아키텍처 구축에는 반복적인 접근이 필요하다는 점을 기억하는 것이 중요하다. 실험과 개선이 특정 비즈니스 사례와 조직 요구 사항에 대한 솔루션을 찾는 열쇠이다.