archive

[Agent]Agent(에이전트)란 무엇인가? _ 구글 백서

jylee00 2025. 4. 11. 12:48

이 글은 개인 공부를 위해 작성한 글로 계속 수정이 이뤄질 예정입니다.


1. Agent란?

기존의 LLM 기반 시스템과는 차별화된 특징을 가지고 있음

1) 전체적 구조

에이전트의 구성요소

 

  • Orchestration, Tools, Model 세 가지 요소로 구성
    1. Orchestration
      • 사용자가 미리 정한 profile, goals, instructions을 기반으로 사고를 하기 시작
      • 기억을 이용하여 이전 정보를 활용
      • 계획을 수립
    2. Tools
      • 자신이 수행할 수 없는 경우 외부에서 Tools(API)을 가져와 사용
      • GET, POST, PATCH, DELETE 메서드 활용 가능
    3. Model
      • LLM (대규모 언어 모델, Large Language Model)
        • 텍스트 기반으로 사고하고 추론하는 모델 (GPT, PaLM 등)
      • LMM (대규모 멀티모달 모델, Large Multimodal Model)
        • 텍스트뿐만 아니라 이미지, 오디오, 영상 등 다양한 데이터를 처리할 수 있는 모델

2) 에이전트의 동작 방식

에이전트는 단순히 입력을 받아 응답하는 챗봇과는 다르게 복잡한 사고 과정을 거쳐 행동을 결정한다.

1단계: 정보 수집

  • Agent는 사용자 쿼리를 입력받거나 외부 데이터를 조회합니다.

2단계: 내부 추론

  • 수집된 정보를 바탕으로 어떤 행동을 실행할지 결정하고, 모델을 활용하여 다음 행동을 결정합니다.

3단계: 행동 실행

  • 도구를 사용하여 외부 시스템과 상호작용하며 행동을 실행합니다.

4단계: 피드백 및 조정

  • 오케스트레이션 레이어에서 이전 결과에 기반하여 다음 행동을 조정합니다.

Agent는 이러한 과정을 반복하며 목표를 달성합니다. 특히, Agent는 Orchestration layer에서 메모리, 상태, 추론, 계획을 관리하며, 프롬프트 엔지니어링 기술을 활용하여 더욱 효율적으로 작업을 수행합니다.

 

대표적인 추론 프레임워크

1.ReAct

추론(Reasoning)과 행동(Acting)을 결합한 방식으로, 에이전트가 자율적으로 사고하면서 외부 환경과 상호작용할 수 있도록 설계된 추론 프레임워크입니다.

  • 모델은 먼저 문제에 대해 추론(생각 단계)을 하고, 이 추론에 기반하여 행동(ex. 데이터베이스 쿼리, 정보 검색)을 실행합니다.
  • 이 과정을 반복하여 최종 해결책에 도달합니다.

사용 사례

  • 외부 도구(ex. API, 데이터베이스)와 상호작용이 필요한 문제 해결 상황에서 사용됩니다.

장점

  • 모델이 외부 데이터를 동적으로 가져오며 다단계 문제를 해결할 수 있습니다.
  • 복잡한 작업에서도 유연한 대응이 가능합니다.

2.Chain-of-Thought (CoT)

모델이 문제를 해결할 때, 단번에 바로 도출하지 않고 단계별 추론 과정을 "생각을 말로 표현"하듯이 작성하게 만드는 프롬프트 기법입니다.

  • 모델이 중간 추론 단계를 거쳐 최종 답을 도출하도록 유도합니다.

예시

  • 질문: "앨리스가 사과 3개를 가지고 있고, 밥에게 2개를 주었다면 몇 개가 남나요?"
  • Chain of Thought:"앨리스는 처음에 사과 3개를 가지고 있다. 2개를 밥에게 준다. 3 - 2 = 1. 따라서 앨리스에게는 사과 1개가 남는다."

사용 사례

  • 수학 문제, 논리적 추론, 또는 답변 과정이 명확해야 하는 상황에 적합합니다.

장점

  • 모델이 중간 과정을 거쳐 생각을 명확히 정리함으로써 정확도가 향상됩니다.

3.Tree-of-Thoughts (ToT)

의사결정 트리에서 영감을 받은 프레임워크로, 모델이 문제를 해결하는 과정에서 여러 가능성을 나무 구조로 분기하여 탐색합니다.

  • 각각의 "가지(branch)"는 문제를 해결하는 하나의 잠재적 경로를 나타냅니다.
  • 다양한 경로를 탐색한 후, 정확도나 일관성 기준에 따라 최적의 경로를 선택합니다.

예시

  • 다양한 해결책이 있는 전략을 고려하는 작업:
    • 게임 전략 설계, 창의적인 문제 해결 과정에서 유용함.

장점

  • 단일 경로에 지나치게 의존하지 않고, 다양한 해결책을 탐색하여 최적의 답을 도출합니다.
  • 복잡한 문제에서 강력한 의사결정 및 해결 능력을 발휘합니다.

3) 도구 활용

외부 API, 데이터베이스, 기능 모듈 등을 호출

1. Extenstions

확장(Extensions)은 에이전트(Agent)가 외부 API와 직접 상호 작용할 수 있도록 해주는 도구입니다. 에이전트(Agent)는 확장(Extensions)을 통해 실시간 정보를 얻고, 시스템을 제어하며, 복잡한 작업을 자동화할 수 있습니다.다음과 같이 확장 기능을 활용할 수 있습니다.

1.구현 방법

  • API 정의
    • 사용할 외부 API의 엔드포인트, 매개변수, 응답 형식을 정의합니다. 예를 들어, Google Flights API의 get_flights 엔드포인트를 정의할 수 있습니다.
  • 확장 구현
    • 에이전트가 API를 호출할 수 있도록 확장 코드를 구현합니다. 이 코드는 API 호출에 필요한 인증, 매개변수 설정, 응답 처리 등을 담당합니다.
  • 예시 제공
    • 에이전트가 확장을 언제 어떻게 사용해야 할지 알 수 있도록, 명확한 예시를 제공합니다. 예를 들어 “사용자가 항공편을 검색할 때 get_flights API를 호출해야 한다”와 같은 예시를 제공할 수 있습니다.

extenstion을 여러 층을 쌓을 수 있음
extenstion을 여러 층을 쌓을 수 있음

 

2. 개발자 활용

  • 복잡한 작업 자동화
    • 확장을 통해 복잡한 작업들을 자동화할 수 있으며, 에이전트(Agent)의 기능 확장을 통해 다양한 시스템과의 연결 및 자동화 시나리오를 구축할 수 있습니다.
  • 실시간 데이터 접근
    • 외부 API를 통해 실시간 데이터에 접근하여 더욱 정확하고 유용한 정보를 제공할 수 있으며, 사용자에게 최신 정보를 바탕으로 한 답변 및 실행 결과를 제공합니다.
  • 다양한 서비스 연동
    • 다양한 API를 연동하여 에이전트(Agent)의 활용 범위를 확장할 수 있으며, 사용자에게 더 폭넓고 통합적인 서비스를 제공할 수 있습니다.
  • 재사용성 증대
    • 다양한 에이전트(Agent)에서 확장을 재사용하여 개발 효율성을 향상시킬 수 있습니다.

3. 실제 사용 사례

  • 항공편 예약 에이전트
    • 사용자가 “서울에서 뉴욕으로 가는 항공편을 찾아줘”라고 요청하면, 에이전트(Agent)는 Google Flights API를 호출하여 실시간 항공편 정보를 검색하고 사용자에게 제공합니다.
  • 날씨 정보 에이전트
    • 사용자가 “오늘 서울 날씨는 어때?”라고 물으면, 에이전트(Agent)는 날씨 API를 호출하여 실시간 날씨 정보를 가져와 사용자에게 알려줍니다.
  • 스마트 홈 제어 에이전트
    • 사용자가 “거실 불을 켜줘”라고 말하면, 에이전트(Agent)는 스마트 홈 제어 API를 호출하여 거실 불을 켜줍니다.
  • 코드 인터프리터 확장
    • 사용자의 자연어 설명을 바탕으로 Python 코드를 생성하고 실행하여 복잡한 계산이나 데이터 처리를 수행합니다.

2. Functions

모델(Model)이 특정 작업(함수, …)을 수행할 수 있도록 하는 코드 모듈

확장(Extension)과 달리 클라이언트 측에서 실행되며, API 호출을 직접 하지 않습니다.

  • Functions으로 데이터를 정리(어떠한 API가 있는지 등)하여 클라이언트에게 전달하여 UI/Middleware에서 API 호출
  • 언제 필요한가?
    • API 호출이 에이전트 아키텍처 흐름 외부에 필요한 경우
    • 보안/인증 제약으로 에이전트(Agent)가 직접 API를 호출할 수 없는 경우
    • API 호출 타이밍 또는 순서 제어가 필요한 경우
    • API 응답에 추가적인 데이터 변환 로직이 필요한 경우

3. Data Stores

  • 학습 데이터 이외에 데이터를 사용하게 만들기 위해

RAG 기반 에이전트 프로세스

검색 증강 생성(RAG) 애플리케이션에서 핵심적인 역할을 하며, 벡터 데이터베이스를 사용하여 사용자 쿼리와 관련 있는 정보를 빠르게 검색합니다.

→ RAG와 함께 빠르게 결함 데이터를 추출?

4. 정리

번역본 아래 링크에서 참고 가능 https://blog.naver.com/economic_moat/223717382054

 

Multi-hop planning: 질문에 대해 여러 단계를 거쳐 답을 찾는 과정

3) 멀티 에이전트의 유형

1. 협업형 멀티 에이전트

2. 감독형 멀티 에이전트

상위 에이전트가 순차적으로 하위 에이전트에게 일을 시킴

3. 위계형 멀티 에이전트

상위 에이전트가 판단하여 필요한 작업만을 시킴

4) Agents vs. models

  • Models → 학습데이터 기반, 단계적 절차 X, tool 연동 X
  • Agents → 학습 데이터 + 외부 tool 기반, 여러 단계를 거쳐 대답 도출, tool 연동 O

5) 프레임워크와 관련 사이트

LangGraph

https://rudaks.tistory.com/entry/langgraph-Multi-agent-supervisor

CrewAI

https://docs.crewai.com/concepts/agents

AutoGen

https://blog.naver.com/ilovehandson/223740905205?trackingCode=rss

RASA

https://rasa.com/docs/rasa/reference/rasa/core/agent/

 


<출처>

이 글은 구글에서 발행한 agents 백서를 보고 정리한 자료입니다.