Agents

beaver.zip·2025년 7월 17일
1

[NLP] papers

목록 보기
1/3

들어가며

이 포스팅은 2025년 2월 Google이 발표한 whitepaper Agents(by Julia Wiesinger, Patrick Marlow and Vladimir Vuskovic)를 요약한 글입니다.


Table of Contents

  1. Introduction
  2. What is an agent?
  3. Cognitive architectures: How agents operate
  4. Tools: Our keys to the outside world
  5. Enhancing model performance with targeted learning
  6. Agent quick start with LangChain
  7. Production applications with Vertex AI agents
  8. Summary

Introduction

인간은 복잡한 패턴 인식 작업에 뛰어나지만, 결론에 도달하기 전에 책, Google Search, 계산기와 같은 도구를 사용하여 사전 지식을 보완한다. Generative AI 모델도 인간처럼 도구를 사용하도록 훈련될 수 있다.

예를 들어, 모델은 데이터베이스 검색 도구를 활용하여 고객의 구매 이력과 같은 특정 정보에 접근하고, 맞춤형 쇼핑 추천을 생성할 수 있다. 또는 사용자 쿼리에 기반하여 다양한 API 호출을 통해 동료에게 이메일을 보내거나 금융 거래를 완료할 수 있다.

이러한 추론, 논리, 외부 정보 접근의 조합이 Generative AI 모델에 연결되면 Agent라는 개념이 등장한다.

Agent는 단독 Generative AI 모델의 능력을 넘어서는 프로그램이다.

What is an agent?

Agent의 정의

Generative AI agent는 세계를 관찰하고, 보유한 도구를 사용하여 목표 달성을 시도하는 애플리케이션으로 정의된다.

Agent의 핵심 특성은 다음과 같다:

  • 자율성(Autonomous): 적절한 목표나 목적이 제공되면 인간 개입 없이 독립적으로 작동한다.
  • 능동성(Proactive): 인간의 명시적 지시가 없어도 최종 목표 달성을 위해 다음에 해야 할 일을 추론한다.

Agent의 3가지 핵심 구성요소

1. The Model

Agent의 중앙 의사결정자 역할을 하는 언어 모델(LM)으로,
다음과 같은 특징을 가진다:

  • 한 개 혹은 여러 개의 소형/대형 LM이 사용될 수 있음.
  • ReAct, Chain-of-Thought, Tree-of-Thoughts와 같은 지시 기반 추론 및 논리 프레임워크를 수행할 수 있음.
  • 범용, multimodal, fine-tuned 모델 모두 가능함.

2. The Tools

기본 모델은 인상적인 텍스트 및 이미지 생성 능력을 갖지만 외부 세계와 상호작용할 수 없는 한계를 가지는데, 이는 Tools로 극복할 수 있다.

  • Agent와 외부 데이터/서비스 간의 간격을 연결
  • GET, POST, PATCH, DELETE와 같은 일반적인 웹 API 메소드와 정렬
  • RAG(Retrieval Augmented Generation)와 같은 특수 시스템 지원

3. The Orchestration Layer

Agent가 정보를 받아들이고, 내부 추론을 수행하며, 그 추론을 사용하여 다음 행동이나 결정을 알리는 순환 프로세스를 설명한다.

  • 목표 달성이나 중단 지점에 도달할 때까지 계속되는 루프
  • 단순한 계산과 결정 규칙부터 체인 논리, 추가 머신러닝 알고리즘, 확률적 추론 기법까지 다양한 복잡도

Agents vs. Models 비교

ModelsAgents
훈련 데이터에서 사용 가능한 것으로 제한된 지식Tools를 통해 외부 시스템과 연결하여 확장된 지식
사용자 쿼리 기반 단일 추론/예측관리된 세션 히스토리로 다중 턴 추론/예측
네이티브 tool 구현 없음Tools가 agent 아키텍처에 기본적으로 구현됨
네이티브 논리 레이어 구현 없음CoT, ReAct 또는 LangChain과 같은 추론 프레임워크를 사용하는 네이티브 cognitive architecture

Cognitive Architectures: How Agents Operate

요리사 비유로 이해하는 Agent 작동 방식

바쁜 주방의 요리사를 상상해보자. 요리사의 목표는 레스토랑 고객을 위한 맛있는 요리를 만드는 것이며, 이는 계획, 실행, 조정의 순환을 포함한다:

  1. 정보 수집: 고객의 주문과 식료품 저장실 및 냉장고의 재료 확인
  2. 내부 추론: 수집한 정보를 바탕으로 만들 수 있는 요리와 맛 프로필 결정
  3. 행동 수행: 야채 썰기, 향신료 혼합, 고기 굽기

이 정보 수집, 계획, 실행, 조정의 순환이 요리사가 목표 달성을 위해 사용하는 독특한 cognitive architecture를 설명한다.

주요 추론 프레임워크

ReAct

언어 모델이 사용자 쿼리에 대해 추론(Reason)하고 행동(Act)하는 사고 과정 전략을 제공하는 프롬프트 엔지니어링 프레임워크이다. ReAct 프롬프팅은 여러 SOTA 기준선을 능가하고 LLM의 인간 상호운용성과 신뢰성을 향상시킨다.

Chain-of-Thought (CoT)

중간 단계를 통해 추론 능력을 가능하게 하는 프롬프트 엔지니어링 프레임워크이다. self-consistency, active-prompt, multimodal CoT를 포함한 다양한 하위 기법이 있다.

Tree-of-Thoughts (ToT)

탐색이나 전략적 선견 작업에 적합한 프롬프트 엔지니어링 프레임워크이다. chain-of-thought 프롬프팅을 일반화하고 모델이 언어 모델을 사용한 일반적인 문제 해결을 위한 중간 단계 역할을 하는 다양한 사고 체인을 탐색할 수 있게 한다.

ReAct Framework 실행 예시

  1. 사용자가 agent에 쿼리 전송
  2. Agent가 ReAct 시퀀스 시작
  3. Agent가 모델에 프롬프트를 제공하여 다음 ReAct 단계 중 하나와 해당 출력 생성:
  • Question: 사용자 쿼리의 입력 질문
  • Thought: 다음에 무엇을 해야 할지에 대한 모델의 생각
  • Action: 다음에 취할 행동에 대한 모델의 결정 (tool 선택 발생)
  • Action input: tool에 제공할 입력에 대한 모델의 결정
  • Observation: action/action input 시퀀스의 결과
  • Final answer: 원래 사용자 쿼리에 대한 모델의 최종 답변
  1. ReAct 루프가 종료되고 최종 답변이 사용자에게 반환

Tools: Our Keys to the Outside World

언어 모델은 정보 처리에 뛰어나지만, 실제 세계를 직접 인식하고 영향을 미칠 수 있는 능력이 부족하다. Tools는 이러한 격차를 해소하여 agent가 외부 데이터 및 서비스와 상호작용하고 기본 모델만으로는 불가능한 더 넓은 범위의 작업을 수행할 수 있게 한다.

Google 모델이 상호작용할 수 있는 세 가지 주요 tool 유형은 다음과 같다:

1. Extensions

Extensions는 API와 agent 사이의 간격을 표준화된 방식으로 연결한다. Extension이 하는 일:

  1. 예제를 사용하여 agent에게 API 엔드포인트 사용법 교육
  2. API 엔드포인트를 성공적으로 호출하는 데 필요한 인수나 매개변수 교육

Extensions의 주요 강점: built-in example types를 통해 agent가 작업에 가장 적합한 Extension을 동적으로 선택할 수 있다.

Sample Extensions

Google은 즉시 사용 가능한 몇 가지 extension을 제공한다:

  • Code Interpreter extension: 자연어 설명에서 Python 코드를 생성하고 실행
  • Google Flights extension
  • Google Maps extension
  • Weather extension

2. Functions

Functions는 소프트웨어 엔지니어링의 함수 개념과 유사하다. Extensions와의 주요 차이점:

  1. 모델은 Function과 그 인수를 출력하지만 실제 API 호출은 하지 않음
  2. Functions는 클라이언트 측에서 실행되고, Extensions는 agent 측에서 실행

Functions 사용 사례:

  • API 호출이 agent 아키텍처 흐름 외부의 다른 애플리케이션 스택 레이어에서 이루어져야 할 때
  • agent가 API를 직접 호출하지 못하게 하는 보안 또는 인증 제한이 있을 때
  • 실시간으로 API 호출을 하지 못하게 하는 타이밍 또는 작업 순서 제약이 있을 때
  • API가 인터넷에 노출되지 않거나 agent 인프라에서 액세스할 수 없을 때

3. Data Stores

Data Stores는 언어 모델을 지속적으로 새로운 책을 획득하는 도서관이 아닌 정적인 도서관으로 비유할 수 있다. Data Stores는 이러한 한계를 해결하여 더 동적이고 최신 정보에 대한 액세스를 제공한다.

Data Stores가 지원하는 형식:

  • 웹사이트 콘텐츠
  • 구조화된 데이터: PDF, Word Docs, CSV, 스프레드시트 등
  • 비구조화된 데이터: HTML, PDF, TXT 등

RAG 기반 애플리케이션에서의 프로세스

  1. 사용자 쿼리가 임베딩 모델로 전송되어 쿼리에 대한 임베딩 생성
  2. 쿼리 임베딩이 SCaNN과 같은 매칭 알고리즘을 사용하여 벡터 데이터베이스 내용과 매칭
  3. 매칭된 콘텐츠가 텍스트 형식으로 벡터 데이터베이스에서 검색되어 agent로 전송
  4. Agent가 사용자 쿼리와 검색된 콘텐츠를 모두 수신한 후 응답이나 행동 수립
  5. 최종 응답이 사용자에게 전송

Tools 비교표

ExtensionsFunction CallingData Stores
Agent 측 실행클라이언트 측 실행Agent 측 실행
개발자가 agent가 API 엔드포인트와의 상호작용을 제어하기를 원할 때보안이나 인증 제한으로 agent가 API를 직접 호출할 수 없을 때RAG 구현을 원할 때
네이티브 사전 구축 Extensions 활용 시 유용타이밍 제약이나 작업 순서 제약이 있을 때웹사이트 콘텐츠, 구조화된/비구조화된 데이터 처리
다중 홉 계획 및 API 호출인터넷에 노출되지 않은 API관계형/비관계형 데이터베이스

Enhancing Model Performance with Targeted Learning

모델을 효과적으로 사용하는 데 있어 중요한 측면은 출력 생성 시 올바른 도구를 선택하는 능력이다. 이는 기본 요리 기술과 특정 요리 마스터하기의 차이와 같다.

세 가지 학습 접근법

1. In-context Learning

일반화된 모델에 추론 시점에 프롬프트, 도구 및 few-shot 예제를 제공하여 특정 작업에 대해 '즉석에서' 학습할 수 있게 한다. ReAct 프레임워크가 자연어에서 이 접근법의 예이다.

2. Retrieval-based In-context Learning

외부 메모리에서 가장 관련성 높은 정보, 도구 및 관련 예제를 검색하여 모델 프롬프트를 동적으로 채운다. Vertex AI extensions의 'Example Store'나 이전에 언급된 data stores RAG 기반 아키텍처가 이에 해당한다.

3. Fine-tuning Based Learning

추론 전에 특정 예제의 더 큰 데이터셋을 사용하여 모델을 훈련시킨다. 이는 모델이 사용자 쿼리를 받기 전에 특정 도구를 언제 어떻게 적용할지 이해하는 데 도움이 된다.

요리사 비유로 이해하는 학습 접근법

  • In-context learning: 요리사가 고객으로부터 특정 레시피, 몇 가지 주요 재료, 몇 가지 예시 요리를 받고 '즉석에서' 요리를 만드는 것
  • Retrieval-based in-context learning: 요리사가 잘 갖춰진 식료품 저장실(외부 데이터 저장소)에서 재료와 요리책을 동적으로 선택할 수 있는 것
  • Fine-tuning based learning: 요리사를 학교로 보내 새로운 요리나 요리 세트를 배우게 하는 것

Agent Quick Start with LangChain

LangChain과 LangGraph 라이브러리를 사용한 실제 agent 구현 예제이다. 이러한 오픈 소스 라이브러리를 통해 사용자는 논리, 추론 및 도구 호출의 시퀀스를 "체인"하여 맞춤형 agent를 구축할 수 있다.

예제에서는 다음의 과정을 다룬다.

  • gemini-2.0-flash-001 모델 사용
  • SerpAPI (Google Search용)와 Google Places API 도구 사용
  • 사용자의 다단계 쿼리에 답변

이는 Model, Orchestration, Tools가 모두 함께 작동하여 특정 목표를 달성하는 기본적인 구성요소를 보여준다. (자세한 내용은 생략하겠다.)

Production Applications with Vertex AI Agents

프로덕션 급 애플리케이션을 구축하려면 사용자 인터페이스, 평가 프레임워크, 지속적인 개선 메커니즘과 같은 추가 도구와 agent를 통합해야 한다.

Vertex AI Platform의 주요 기능

Google의 Vertex AI 플랫폼은 완전 관리형 환경을 제공하여 이 프로세스를 단순화한다:

자연어 인터페이스: 개발자가 agent의 중요한 요소를 빠르게 정의

  • 목표 (goals)
  • 작업 지침 (task instructions)
  • 도구 (tools)
  • 작업 위임을 위한 하위 agent (sub-agents)
  • 예제 (examples)

개발 도구 세트:

  • 테스트
  • 평가
  • agent 성능 측정
  • 디버깅
  • 전반적인 품질 개선

이를 통해 개발자는 인프라, 배포 및 유지 관리의 복잡성을 플랫폼이 관리하는 동안 agent 구축 및 개선에 집중할 수 있다.

Summary

1. Agent의 확장된 능력

Agent는 도구를 활용하여 언어 모델의 능력을 확장한다:

  • 실시간 정보 액세스
  • 실제 행동 제안
  • 복잡한 작업의 자율적 계획 및 실행

2. Orchestration Layer의 중요성

Agent 작동의 핵심은 orchestration layer이며, 이는 다음을 구조화하는 cognitive architecture이다:

  • 추론 (reasoning)
  • 계획 (planning)
  • 의사결정 (decision-making)
  • 행동 안내 (guiding actions)

3. Tools의 역할

Extensions, Functions, Data Stores와 같은 도구는 agent가 외부 세계와 상호작용할 수 있는 key 역할을 한다:

  • Extensions: agent와 외부 API 간의 브리지
  • Functions: 개발자에게 더 세밀한 제어 제공
  • Data Stores: 구조화된/비구조화된 데이터에 대한 액세스

미래 전망

Agent의 미래는 흥미진진한 발전을 약속한다:

  • 도구가 더욱 정교해지고 추론 능력이 향상됨에 따라 agent는 점점 더 복잡한 문제를 해결할 수 있게 될 것이다
  • 'Agent chaining'의 전략적 접근법이 계속해서 추진력을 얻을 것이다
  • 특정 도메인이나 작업에서 뛰어난 전문 agent를 결합함으로써 다양한 산업과 문제 영역에서 탁월한 결과를 제공할 수 있는 'mixture of agent experts' 접근법을 만들 수 있다

복잡한 agent 아키텍처 구축에는 반복적인 접근이 필요하다는 점을 기억하는 것이 중요하다. 실험과 개선이 특정 비즈니스 사례와 조직 요구 사항에 대한 솔루션을 찾는 열쇠이다.

profile
NLP 일짱이 되겠다.

0개의 댓글