에이전트 워크플로우 구축하기: Gemini 2.5 Pro, 과연 괜찮은가?

채널 아이콘
Prompt Engineering 구독자 190,000명

요약

이 영상은 Gemini 2.5 Pro의 성능과 특히 함수 호출 기능에 초점을 맞춰 에이전트 워크플로우를 구축하는 방법을 소개합니다. 독립 벤치마크 결과와 다양한 예제를 통해 모델이 코딩 작업, 병렬 및 순차 함수 호출, 그리고 텍스트→SQL 변환 같은 실제 응용 프로그램에서 뛰어난 성능을 보여줌을 설명합니다. 또한 복잡한 시나리오, 예를 들어 여행 계획 및 비즈니스 인텔리전스 대시보드 구축 예제를 통해 모델의 유연성과 한계를 분석합니다. 마지막으로, 개발자와 기업을 위한 실질적 조언과 컨설팅 서비스 제안도 함께 언급됩니다.

주요 키워드

Gemini 2.5 Pro LLM 함수 호출 에이전트 자동화 병렬 호출 SQL 어시스턴트 여행 계획 비즈니스 인텔리전스

하이라이트

  • 🔑 Gemini 2.5 Pro가 최근 독립 벤치마크에서 우수한 결과를 보여주며, 코딩 및 함수 호출 성능에서 큰 강점을 나타냅니다.
  • ⚡️ 영상은 기본 함수 호출 개념부터 자동화된 도구 연동까지 여러 실사용 예제를 통해 에이전트 워크플로우 구축 과정을 상세히 설명합니다.
  • 🌟 간단한 날씨 정보 기능, 병렬 함수 호출을 통한 인구 및 기상 정보 비교, 그리고 텍스트를 SQL 쿼리로 변환하는 어시스턴트 구현 예제가 포함되어 있습니다.
  • 📌 더욱 복잡한 사례로 여행 계획 및 비즈니스 인텔리전스 대시보드 예제를 다루며, 단계별 함수 호출과 순차/병렬 처리 전략을 제시합니다.
  • 🚀 내부 체인 오브 솟트(chain-of-thought) 출력 부재에 대한 아쉬움과 함께, 시스템 프롬프트의 중요성을 강조하며 개발자들에게 실질적인 조언을 제공합니다.

용어 설명

Gemini 2.5 Pro

구글에서 제공하는 최신 AI 모델로, 뛰어난 코딩 및 추론 능력을 바탕으로 복잡한 함수 호출 및 에이전트 워크플로우 구축에 적합합니다.

LLM (대형 언어 모델)

자연어 처리 및 생성에 최적화된 인공지능 모델로, 사용자 질의에 기반해 내부 지식과 외부 도구를 활용합니다.

함수 호출 (Function Calling)

LLM이 특정 작업 수행을 위해 외부 함수를 자동 또는 수동으로 호출하는 기능으로, 에이전트가 다양한 도구를 연동하여 작업을 실행하도록 도와줍니다.

SDK (Software Development Kit)

개발자가 특정 플랫폼이나 시스템을 활용할 수 있도록 지원하는 도구 모음으로, Gemini 2.5 Pro의 자동화된 함수 호출 기능 구현에 사용됩니다.

에이전트

사용자 질의에 따라 적절한 도구나 함수를 호출하여 문제를 해결하는 자동화 시스템을 의미합니다.

[00:00:00] 모델 성능 및 벤치마크 소개

영상은 Gemini 2.5 Pro의 뛰어난 벤치마크 결과와 코딩 성능을 소개합니다. 초기 하이프와 독립 테스트 결과에 대해 설명합니다.

Gemini 2.5 Pro가 벤치마크에서 뛰어난 성능을 보여주고 있으며, 특히 실시간 벤치마크에서 다른 모델들을 6포인트 이상 앞서고 있습니다.
[00:00:42] 기능 호출 기본 개념 및 도구 설정

에이전트가 외부 도구를 호출하여 작업을 수행하는 기본 흐름과 함수 호출의 개념을 설명합니다. 내부 처리와 자동/수동 호출 방식에 대해 소개합니다.

이 모델의 함수 호출 능력을 테스트하기 위해, 기본적인 함수 호출부터 병렬 함수 호출, SQL 어시스턴트 구현까지 다양한 실험을 진행할 예정입니다.
함수 호출의 기본 개념을 설명하며, 에이전트가 외부 도구를 사용하여 실제 세계와 상호작용하는 방식과 사용자 질문에 대한 처리 과정을 소개합니다.
Gemini SDK for Python은 자동화된 함수 호출 기능을 제공하면서도 필요한 경우 수동 제어가 가능한 유연성을 갖추고 있습니다.
AI 스튜디오를 소개하고 Gemini 2.5 모델의 무료 사용 가능성과 2025년 1월까지의 최신 지식을 보유하고 있음을 설명합니다.
API 사용량 제한(분당 5개, 일일 50개 요청)과 100만 토큰 입력, 65,000 토큰 출력이 가능한 큰 컨텍스트 윈도우를 설명합니다.
Gemini 2.5 Pro Experimental 0325를 사용한 기본적인 LLM 호출 예시와 응답 형식을 설명합니다.
API가 사고 과정을 공개하지 않는 이유와 도구 사용 정보, 토큰 수 등의 메타데이터 제공에 대해 설명합니다.
[00:05:32] 간단한 날씨 정보 기능 구현

get current weather 함수를 통한 기본적 함수 호출 예제를 시연합니다. 간단한 입력에 따른 날씨 정보를 반환하는 방식이 설명됩니다.

get_current_weather 함수의 구현과 더미 데이터 반환 방식, 도구로서의 활용 방법을 설명합니다.
함수 호출의 작동 방식과 결과를 상세히 설명합니다. 사용자 입력에 따라 get_weather 함수가 호출되고, 이를 통해 샌프란시스코의 날씨 정보를 얻어 응답을 생성하는 과정을 보여줍니다.
여러 함수의 병렬 호출 기능을 소개합니다. get_current_weather와 get_population 함수를 동시에 사용하여 뉴욕과 샌프란시스코의 날씨와 인구를 비교하는 예시를 설명합니다.
[00:07:44] 병렬 함수 호출: 날씨와 인구 정보 비교

여러 도구를 동시에 활용해 두 도시의 날씨와 인구를 비교하는 병렬 함수 호출 과정을 보여줍니다. 복수의 함수 호출이 어떻게 조합되는지 시연합니다.

SQL 어시스턴트 구축 예제를 소개합니다. 자연어 쿼리를 SQL로 변환하여 데이터베이스와 상호작용하는 시스템을 설명하며, 직원 정보를 포함한 데이터베이스 구조와 execute_SQL_query 함수의 동작 방식을 설명합니다.
[00:08:45] 텍스트 → SQL 어시스턴트 구현

자연어 질의를 SQL 쿼리로 변환해 데이터베이스로부터 정보를 조회하는 예제를 통해 텍스트→SQL 어시스턴트의 기본 구조를 설명합니다.

데이터베이스 스키마를 먼저 확인하도록 설정된 시스템 프롬프트에 대해 설명하고, employees 테이블의 구조와 스키마 자동 추출 기능을 소개합니다.
부서별 평균 급여를 조회하는 SQL 쿼리를 실행하여 재무부서 88,000달러, HR 65,000달러, 엔지니어링 부서의 평균 급여 결과를 확인합니다.
기업 투자 결정을 위해 뉴스 데이터를 수집하고 감성 분석을 수행하는 기능을 구현합니다. 애플, 마이크로소프트, 구글의 뉴스를 분석하여 투자 판단에 도움을 줍니다.
여행 계획을 위한 복잡한 함수 호출 시스템을 소개합니다. 날씨 정보, 항공편 검색, 호텔 검색, 환율 변환 등 총 6개의 기능이 통합된 시스템을 구축합니다.
[00:12:15] 여행 계획 예시: 단계별 함수 호출

여행 일정 계획을 위해 날씨, 항공권, 호텔 등 여러 API를 순차 및 병렬로 호출하는 복잡한 워크플로우 구축 예제를 다룹니다. 단계별 실행 흐름을 강조합니다.

사용자가 2025년 4월 10일부터 13일까지 뉴욕에서 파리로 가는 여행 계획에 대한 도움을 요청했습니다. 항공편, 날씨, 호텔, 일정 계획 등 다양한 정보가 필요합니다.
이러한 복잡한 요청을 처리하기 위해서는 여러 API를 순차적으로 호출해야 하며, 각 API의 출력이 다음 API의 입력으로 사용됩니다. LLM은 이러한 함수들을 순차적으로 실행할 수 있어야 합니다.
시스템은 파리 여행에 대한 종합적인 계획을 수립했습니다. 항공편, 날씨 정보, 호텔 추천, 예산 계산(유로 환전 포함), 일일 활동 계획 등이 포함되어 있습니다.
LLM은 약 3,400개의 토큰을 사용하여 초기 응답을 생성하고, 여러 함수를 순차적/병렬적으로 호출하여 종합적인 여행 계획을 수립했습니다.
마지막 예제에서는 자연어 처리, SQL 변환, 비정형 출력 생성 등을 포함한 비즈니스 인텔리전스 대시보드 구축 방법을 설명합니다.
[00:16:07] 비즈니스 인텔리전스 대시보드 구현

내부 데이터와 외부 시장 데이터를 결합, SQL 및 비정형 함수 호출로 종합 분석을 수행하는 대시보드 구축 과정을 설명합니다. 체계적 정보 수집과 분석 방법을 제시합니다.

데이터베이스 구조 설명: 매출, 제품, 지역, 직원 등 여러 테이블로 구성된 실제 환경과 유사한 무작위 데이터를 포함한 데이터베이스 구조를 소개합니다.
데이터베이스 기능 설명: SQL 쿼리 실행기, 스키마 조회, 시장 데이터 접근, 판매 동향 분석, 경쟁사 분석 등 6개의 특화된 도구들의 기능을 설명합니다.
사용자 쿼리 예시: 비즈니스 임원의 관점에서 전자제품 카테고리에 대한 종합 분석 요청 사례를 설명하고, 이에 필요한 분석 요소들을 제시합니다.
시스템 프롬프트의 중요성: 에이전트의 행동을 제어하는 시스템 프롬프트 작성의 중요성과 단계별 지침 제공의 필요성을 강조합니다.
전자제품 카테고리에 대한 경쟁 분석 결과를 검토합니다. 주요 경쟁사 식별과 높은 진입 장벽, 빠른 혁신 주기 등의 경쟁 우위 특성을 분석했습니다.
AI가 내부 판매 데이터, 외부 시장 전망, 경쟁사 정보를 수집하기 위한 SQL 쿼리를 생성하고 실행하는 과정을 설명합니다.
실제 기업 데이터는 더 복잡하므로, 데이터 이해와 에이전트 설계에 충분한 시간을 투자해야 함을 강조합니다.
에이전트는 즉흥적 계획보다 정해진 워크플로우를 따르는 것이 바람직하며, 관련 컨설팅 서비스를 제공한다고 안내합니다.
지금쯤이면 여러분들도
Gemini 2.5 Pro에 대한 모든 관심과 기대를 보셨을 것 같습니다.
벤치마크 결과와
사람들이 공유한 결과들을 보면
이제 독립적인 벤치마크 결과들이
나오기 시작했는데, 특히 실시간 벤치마크에서
이 모델이 다른 모델들을 크게 앞서며
최고의 성능을 보여주고 있습니다.
거의 6포인트 차이가 나면서
코딩 측면에서도
이전 세대 모델들보다 훨씬 뛰어난
성능을 보여주고 있습니다.
폴리글랏 ADER 벤치마크에서도
독립적인 테스트 결과가 구글의 발표를
확인해주고 있죠.
코딩 능력이 정말 뛰어나서, 이 모델을
테스트해보고 싶었습니다. 하지만
게임을 만들거나 단발성 작업을 요청하는 대신
저는 많은 에이전트를 만들어봤고
에이전트 시스템의 핵심 요소 중 하나는
LLM이 함수를 정확하게 호출하는
능력입니다.
이 새로운 모델의 함수 호출 능력이
얼마나 좋은지 테스트해보겠습니다.
기본적인 함수 호출부터 시작해서
병렬 함수 호출 능력도 살펴볼 건데,
이는 실제 응용 프로그램 개발에
매우 유용합니다.
그 다음으로는
텍스트를 SQL로 변환하는 어시스턴트를
이 모델로 만들어보겠습니다. 기본적인
예제가 될 텐데,
제가 정말 기대하는 부분은
이 텍스트-SQL 시스템과
비정형 데이터에 대한 병렬 함수 호출을
결합했을 때입니다. 이것이야말로
우수한 코딩 LLM의 진정한 힘을 보여줄 것입니다.
코드를 보여드리기 전에
함수 호출에 대해 간단히 복습해보겠습니다.
제 이전 영상들을 보셨다면
아시겠지만,
기본적으로 에이전트는
실제 세계와 상호작용할 수 있는 도구 세트를 가지고 있습니다.
수학 계산이나
웹 검색, 날씨 확인 등이
여기에 포함됩니다.
사용자 질문이 들어오면
LLM이나 에이전트는 외부 도구가 필요한지
아니면 자체 학습 데이터로
답변할 수 있는지 판단해야 합니다.
외부 도구가 필요 없다면
LLM이 응답을 생성하여
사용자에게 보여주지만
도구가 필요한 경우에는 적절한 도구를
선택하고 해당 도구나 함수에
적절한 입력값을 생성합니다.
그리고 응답을 받아
최종 사용자 응답을 생성하는 데 활용합니다.
이것이 일반적인
함수 호출의 흐름입니다.
보통은 사용자가 실행을 제어해야 하는데
함수를 호출하고
그 응답을 다시
LLM에 전달해야 합니다. 하지만 Gemini
파이썬 SDK는 이 모든 것을
자동으로 처리할 수 있으면서도
필요한 경우 수동으로
함수를 호출할 수 있는
유연성도 제공합니다.
이 영상에서는
Google SDK에 내장된 자동화된
함수 호출을 사용할 것입니다.
먼저 Google SDK를 설치하고 API 키를 설정해야 합니다.
Vortex AI를 사용하고 싶다면
Vortex 버전을 사용할 수도 있지만, 저는
AI 스튜디오에만 집중해서
AI 스튜디오에 가서
Gemini 2.5를 선택하면 이 모델을
무료로 사용할 수 있습니다. 지식 기준일은
2025년 1월입니다.
따라서 최신 지식을 학습한
최신 모델이라고
할 수 있죠.
한 가지 주의할 점은
사용량 제한입니다. 현재 무료 API로는
분당 5개의 요청 또는
하루 총 50개의 요청만 가능합니다. 하지만
많은 사람들이 주목하지 않는
큰 특징은 거대한 컨텍스트 윈도우입니다.
입력으로 100만 토큰을 처리할 수 있을 뿐만 아니라
출력으로 최대 65,000 토큰을 생성할 수 있어서
정말 훌륭합니다.
특히 대규모
코드베이스 작업에 적합하죠. 자, 이제 우리 코드에서는
Gemini 2.5 Pro
Experimental
0325를 사용할 겁니다. 간단한
LLM 호출을 해보겠습니다. 예를 들어
'샌프란시스코의 날씨는 어떤가요?'라고 물으면
JSON 딕셔너리로 응답이 오는데
text라는 키를 포함합니다. 여기
응답을 보면
실시간으로 최신 정보를
전용 날씨 앱이나 웹사이트처럼
제공할 수 없다고 합니다. 즉, 자신의
한계를 알고 있는 거죠. API는 또한
모델 번호와 사용된 총 토큰 수,
입력 토큰의 총 개수와
출력 토큰의 총 개수를
알려줍니다. 한 가지 더 중요한 점은
API가 사고 과정을 보여주지 않는다는 건데,
이는 아쉽습니다. 볼 수 있으면
좋겠지만
이해할 만한 이유가 있습니다. 만약
API가 사고 과정을 공개하면
다른 사람들이 그 사고 과정을 이용해
모델을 학습시킬 수 있기 때문에
이런 결정을 한 것 같습니다. 또한
도구 사용에 대한 정보와
프롬프트 토큰 수도 받을 수 있습니다.
이를 통해 구조화된 출력을
생성하고 도구 호출이
가능하다는 것을 알 수 있습니다. 이제 아주
기본적이고 간단한 함수 호출을 해보겠습니다.
다른 사람들처럼 저도
get_current_weather라는 함수를 만들었는데,
API 호출은 하지 않고 단순히
더미 데이터만 반환합니다. 누군가
샌프란시스코를 언급하면
안개 끼고 15도라고 합니다.
뉴욕이면 맑음에
22도를 반환하고, 다른 지역을 입력하면
구름 조금에
20도를 반환합니다. 이게 바로 간단한
함수의 구현입니다. 그리고
함수 설명에는 독스트링을 추가해서
모델에게 이 함수가
정확히 무엇을 하는지와
예상되는 입력이 무엇인지 알려줍니다. 이것을
도구로 사용하는 건 매우 간단합니다.
같은 구조를 가지고
도구 리스트가 있는 설정만 추가하면 됩니다.
현재는 하나의 도구만 사용하므로
여기에 그 도구만 제공합니다.
'샌프란시스코 날씨는 어떤가요?'라고 물으면
'샌프란시스코의 현재 날씨는 안개가 끼었고
기온은 15도입니다'라고
답변합니다.
실제 애플리케이션에서는
API를 호출하고
API 데이터를 반환하게 됩니다. 출력을 보면
정확히 어떤 일이 일어났는지
여기서 실제로 어떤 일이 일어났는지
각각의 후보들, 또는 다르게 말하면
각각의 역할들을 살펴보겠습니다.
여기 사용자의 질문이 있고, 실제로 볼 수 있는 것은
입력 토큰과 출력 토큰의 수,
그리고 추가된 자동 함수 호출 기록입니다.
자동 함수 호출 기록을 보면
사용자 입력을 받았을 때, 사용 가능한 함수들을 살펴보고
get_weather 함수를 호출하기로 결정했습니다.
입력값은 위치 정보인 샌프란시스코이고,
이 응답을 받아서
최종 사용자 출력을 생성하는 데
활용했습니다.
여기 함수 호출의 또 다른 예시가 있습니다.
지금까지 본 것은
LLM이 단일 도구에만 접근할 수 있는 간단한 함수 호출이었습니다.
하지만 여러 도구가 있고
LLM이 여러 함수를 병렬로 호출하고 싶다면 어떨까요?
여기 기존의 get_current_weather 함수와
LLM이 여러 함수를 병렬로
호출하게 하고 싶습니다. 여기 동일한
get_current_weather 함수가 있고
이제 get_population이라는 새로운 함수도 있어서
이 두 함수를 도구 세트에 추가했습니다.
이 경우 우리의 프롬프트는
뉴욕과 샌프란시스코의
날씨와 인구를 비교하는 것입니다. 먼저 두 도시의
날씨 정보를 가져오고
두 도시의 인구 정보도 가져옵니다.
그리고 뉴욕이 현재
샌프란시스코보다 따뜻하고
인구가 훨씬 더 많다고 알려줍니다.
이처럼 두 가지 함수 호출을
두 개의 쿼리에 대해 실행할 수 있고
상대적으로 복잡한 쿼리에도
문제가 없어 보입니다.
여기서 볼 수 있듯이
병렬 함수 호출이 실제로
일어나고 있습니다. 두 개의 함수 대신
더 많은 함수를 사용할 수 있는데,
나중에 예시를 보여드리겠습니다.
지금까지는 전혀 어려움을
보이지 않았는데, 이는 정말 좋은 소식입니다.
특히 Gemini 2.5 Pro 기반으로
에이전트를 구축하려는 경우에 더욱 그렇습니다.
다음으로는
SQL 어시스턴트를 만들어보겠습니다.
이것은 기본적으로 LLM이나 에이전트가
데이터베이스와 상호작용하는 예시입니다.
현재는 매우 간단한 예시지만
나중에 영상에서 확장해보겠습니다.
기본 아이디어는 사용자가
자연어로 쿼리를 하면
LLM이 이러한 자연어 쿼리를
SQL 쿼리로 변환해서
SQL 데이터베이스에서 실행할 수 있게 하는 것입니다.
우리는 SQLite를
사용할 것입니다. 여기 샘플 데이터베이스
설명이 있고, 데이터베이스에 넣을
데이터가 있습니다. 이 데이터는
네 개의 열로 구성되어 있습니다.
첫 번째는 직원 번호, 이름,
부서,
그리고 각각의 급여입니다. 이제 모델이
자연어 쿼리를 받아서
SQL 쿼리를 생성하길 기대합니다.
execute_SQL_query라는 함수가 있는데
LLM으로부터 SQL 쿼리를 받아
실행하고 결과를 반환하면, 그 결과를
LLM이 사용해서
최종 응답을 생성합니다. 앞서 본
날씨 예제와 매우 유사하게
이 execute_SQL_query 함수를 도구로 전달합니다.
이 경우에는
이 경우에는 시스템 프롬프트가 있어서
항상 데이터베이스 스키마를 먼저 확인하도록 되어 있습니다.
데이터베이스에는 다음과 같은 컬럼이 있는 employees 테이블이 있죠.
나중에 테이블에서 스키마를 자동으로
추출하는 방법을 보여드리겠습니다.
우리의 쿼리는 '부서별 평균 급여가 얼마인가?' 입니다.
그리고 이 쿼리를 실행할 수 있습니다.
쿼리는 부서별 평균 급여를 반환하는데,
재무 부서는 88,000달러,
HR은 65,000달러입니다.
엔지니어링 부서는 두 개의 항목이 있어서
이 둘의 평균값을 반환합니다.
여기서 정확히 어떤 일이 일어났는지 보면,
사용자 입력을 기반으로 생성된
중간 SQL 쿼리가 바로 이것입니다.
이제 영상이 진행되면서 이런 간단한 예제들을
더 복잡한 상황으로 발전시켜 나갈 텐데요.
여기 한 가지 예시가 있습니다.
기업들의 최근 뉴스를 살펴보고
해당 기업에 투자할지 말지를 결정하는 상황입니다.
여기서는 서로 다른 기업들의
뉴스를 가져오는 함수가 있습니다.
간단한 예시로,
여기 딕셔너리를 만들었는데
애플, 마이크로소프트, 구글에 대한
여러 뉴스 기사들이 있습니다.
또 다른 함수는 뉴스를 가져와서
실제 감성 분석을 수행합니다.
여기서 감성은 긍정적인 단어나
부정적인 단어의 존재 여부로 판단됩니다.
이 두 도구를 에이전트에 전달하고,
사용자는 '애플에 대한 최근 뉴스와
전반적인 감성이 어떤지' 물어봅니다.
먼저 get_company_news 함수를 사용해
뉴스 기사들을 가져오고,
그 다음 sentiment_analyzer 함수로
감성을 분석합니다.
최종 응답을 받아서
LLM에 전달하면,
출력으로 '애플에 대한 두 개의 뉴스 기사를 찾았다'고 하면서
해당 뉴스 기사들을 보여주고
이 두 기사를 바탕으로
전반적인 감성이 중립적이라고 알려줍니다.
이제 실제 사용 사례에
더 가까운 복잡한 예제들을
살펴보도록 하겠습니다.
첫 번째는 복잡한 함수 호출을 사용한
여행 계획입니다.
여러 단계가 필요한
실제 사용 사례를 대표하는 예시죠.
복잡한 함수 호출이 포함된 여행 계획을 보겠습니다.
여러 단계가 필요한
여행을 계획한다고 할 때
에이전트의 도움을 받고 싶다고 합시다.
여기에는 여러 가지 함수들이 있는데,
예를 들어 첫 번째는 날씨 정보를 가져오는 함수입니다.
외부 API를 사용하는 대신
하드코딩된 정보를 사용합니다.
그 다음은 목적지, 출발지, 날짜에 따라
항공편을 검색하는 함수가 있고,
호텔 검색 함수도 있습니다.
이러한 함수들은 각각 별도의 API 호출로
특정 입력을 받아 API를 호출하고
API가 데이터를 반환하면
LLM이 그 데이터를 사용해
최종 응답을 생성하게 됩니다.
환율 변환을 위한 함수도 있고
여행 계획을 위한 함수도 있습니다.
총 6개의 서로 다른 함수가 있고
각각은 하나의 도구로 취급됩니다.
여행 계획을 위해서는
지금 총 6개의 함수가 있고
각각은 도구로 사용될 것입니다.
이제 이것들이 어떻게 작동하는지 보겠습니다.
제가 질문할 내용은 2025년 4월 10일부터 13일까지 뉴욕에서 파리로 여행을 계획하고 있는데,
4월 10일 뉴욕에서 파리행 항공편을 찾고,
체류 기간 동안의 날씨를 확인하고,
2인용 호텔을 추천받고,
일정 계획을 세우는 것에 대한 도움이 필요합니다.
이것이 제가 가진 총 예산입니다.
일반적으로는 이러한 요청들에 대해
개별적인 API 호출을 사용하게 되는데,
이들을 순차적으로 실행하여
첫 번째 API의 출력이 두 번째 API의 입력으로 전달되도록 해야 합니다.
따라서 에이전트나 LLM은
이러한 함수들을 순차적으로 실행할 수 있어야 하죠.
시스템 지시사항에서는 '당신은 여행 계획 도우미이며,
사용 가능한 도구들을 활용하여
정보를 수집하고 사용자의 여행 계획을 도와주세요'라고 명시합니다.
이것들이 도움을 줄 수 있는 항목들입니다.
자, 이제 우리의 복잡한 쿼리를 바탕으로
다음과 같은 계획이 나왔습니다.
목적지는 파리, 출발지는 뉴욕이고
이러한 날짜들로 계획이 잡혔습니다.
다양한 항공편을 제안했고,
날씨 정보도 알려주었습니다.
여기 몇 가지 호텔 추천 사항이 있고,
주어진 예산을 기준으로
총 예상 지출이 어떻게 될지 계산했습니다.
유로로 환전할 경우,
환율 변환 기능을 사용했고,
또한 이용 가능한 모든 관광지를 살펴보고
그것을 바탕으로 일일 활동 목록도 생성했습니다.
정확히 어떤 일이 일어났는지
그리고 총 토큰 수가 얼마나 되는지 볼 수 있는데,
약 3,400개의 토큰이 사용되었습니다.
여기 사용자의 초기 질문이 있고,
모델의 첫 응답은 '네, 뉴욕에서 파리로 가는 여행 계획을 도와드리겠습니다.
항공편 옵션, 날씨 예보, 호텔 제안을 수집하고
가능한 일정을 만들어 예산도 환산해드리겠습니다'입니다.
이것이 LLM이 생성하는 첫 번째 응답입니다.
하지만 아직 사용자에게 보여주지 않습니다.
모든 함수 호출을 실행해야 하기 때문이죠.
실제로 모든 함수 호출을 실행하고
각각에서 정보를 수집한 다음
순차적으로 다음 단계로 전달하고
최종 응답을 형성할 수 있습니다.
이 경우에는 순차적 함수 호출과
병렬 함수 호출을 모두 수행하고 있습니다.
하나 아쉬운 점은
내부적인 사고 과정이 보이지 않는다는 것입니다.
정확히 어떤 순서로 실행할지를 어떻게 결정했는지
Google이 API를 통해
이러한 기능을 제공했으면 좋겠습니다.
개발자들에게 매우 유용할 것 같네요.
마지막 예제에서는 지금까지 본 모든 것을 결합할 것입니다.
이 경우에는 비즈니스 인텔리전스 대시보드를 구축하려고 하는데,
사용자가 자연어로 질문할 수 있고,
텍스트를 SQL로 변환하여 접근해야 하는 데이터베이스가 있으며,
비정형 출력을 생성하는 도구들도 있을 것입니다.
이것이 어떻게 작동하는지
자세히 설명해드리겠습니다.
한 가지 아쉬운 점은 정확한 순서를 어떻게 결정했는지
내부적인 사고 과정이 보이지 않는다는 것입니다.
Google이 API를 통해 이를 제공한다면
개발자들에게 매우 유용할 것 같네요.
자, 이 마지막 예제는 지금까지 본 모든 것을 통합합니다.
이 경우에는 비즈니스 인텔리전스 대시보드를 만드는데,
사용자가 자연어로 질문할 수 있고,
텍스트를 SQL로 변환하여 데이터베이스에 접근해야 하며,
비정형 출력을 생성하는 도구들도 있습니다.
이것이 실제로 어떻게 작동하는지
함수 관점에서 어떻게 보이는지
설명해드리도록 하겠습니다.
비정형 출력을 생성하는 도구들이 있을 것이고,
이것이 어떻게 구성되는지 보여드리겠습니다.
함수 관점에서 이것이 어떻게 보이는지 살펴보겠습니다.
이제 함수들에 대해 말씀드리겠는데요,
단일 테이블이 아닌 여러 개의
테이블이 있고, 각각의 테이블에는
서로 다른 정보가 담겨 있습니다.
예를 들어, 매출 테이블, 제품 테이블,
지역 테이블, 직원 테이블이 있고
무작위로 생성된 데이터가 있습니다.
이게 실제 현장에서 마주할 수 있는
데이터를 더 잘 반영하고 있죠.
실제 환경과 비슷하게 만들기 위해
테이블을 기반으로 샘플을 무작위로 생성하고
데이터베이스에 넣었습니다.
이전과 비슷한 SQL 쿼리 실행기가 있고,
또한 회사 데이터베이스의
스키마를 가져오는 함수가 있습니다.
이 함수는 자동으로 테이블 이름과
해당 스키마를 가져옵니다.
그리고 또 다른 데이터 소스가 있는데,
이것은 시장 데이터를 가져오는 것입니다.
회사가 자사의 판매 실적을 기반으로
시장 데이터에 접근할 수 있다고 가정하면,
여기에 그 데이터가 채워져 있습니다.
또한 판매 동향을 분석하는
함수도 있습니다. 이것도 SQL 쿼리로
데이터의 다양한 트렌드를
분석하는 데 도움을 줍니다.
그리고 여기 경쟁사
분석을 제공하는
함수가 있습니다. 입력값을 생성하고
이것은 더미 데이터인데,
경쟁사 분석을 제공합니다. 우리는 6개의
서로 다른 도구를 가지고 있고,
각각 매우 특정한 작업을 수행합니다.
여기 사용자 쿼리가 있는데,
비즈니스 임원의 입장에서
이런 종류의 질문을 할 수 있습니다.
'전자제품 카테고리에 대한
종합적인 분석이 필요합니다.'
에이전트는 사용자가 어떤 카테고리에 대해
이야기하는지 파악해야 합니다.
에이전트가 해야 할 일이 여러 가지인데,
우리 전자제품 매출이 다른 카테고리와
비교해서 어떤지, 전자제품 시장의
전망은 어떤지, 그리고
이 분야의 주요 경쟁사는 누구인지입니다.
이것이 사용자 입력 또는
사용자 요청입니다. 이제 시스템 프롬프트를 보면,
시스템 프롬프트에 매우 주의를
기울여야 하고, 많은 시간을 들여
작성해야 합니다. 왜냐하면 이것이
에이전트의 행동을 제어하기 때문입니다.
이 경우 프롬프트는 '당신은
회사 데이터와 시장 정보에 접근할 수 있는
비즈니스 인텔리전스 어시스턴트입니다.
사용자가 회사 성과와 시장 상황에 대해 물으면
먼저 SQL을 사용해 데이터베이스를 조회하여
내부 회사 데이터를 검색하고,
함수 호출을 통해 관련된 외부 시장과
경쟁사 데이터를 가져온 다음,
데이터에 기반한 통찰력을 잘 구조화된
분석으로 제시하세요.'입니다.
제가 강력히 추천하는 것은
시스템이 어떻게 동작해야 하는지
단계별 지침을 제공하는 것입니다.
LLM의 확률적 특성에 의존하여
자체적으로 결정을 내리게 하지 마세요.
계획을 제공하고 그 계획을
따르기를 기대해야 합니다.
특히 대규모 추론 모델의 경우
잘 작성된 계획이라면
그 계획을 잘 따를 수 있습니다.
우리는 그것을 제공했고,
각 데이터베이스에 대한 통찰력도 제공했습니다.
지금 여기 출력 결과를 보시죠.
전자제품 카테고리에 대한 경쟁 분석이 나왔습니다.
먼저 이 분야의 주요 경쟁사들을 파악했고,
그 다음 경쟁 우위가
높은 진입 장벽과 빠른 혁신 주기로
특징지어진다는 것을 분석했습니다.
이는 시장 분석에서
도출된 정보입니다.
그리고 지금까지 수집한 정보를 바탕으로
요약과 분석을 생성했습니다.
내부 단계별 실행 과정을 보면,
우선 사용자 입력이 있고,
AI가 도움을 줄 수 있다고 판단하여
내부 판매 데이터, 외부 시장 전망,
그리고 경쟁사 정보를 수집하기로 했습니다.
전자제품 카테고리에 대한
정보를 수집하기로 결정했죠.
그 다음 전자제품 카테고리에 대한
SQL 쿼리를 생성해서
정보를 수집했습니다.
받은 결과를 보실 수 있죠.
이 결과를 다른 함수로 전달했습니다.
내부 판매 데이터를 가지고
다른 카테고리와 전자제품을 비교했는데,
이는 사용자 쿼리나
데이터베이스 쿼리를 기반으로 했습니다.
생성된 데이터베이스 쿼리를 보시면,
이 정보를 가져와서
기본적으로 그 정보를 활용해
두 번째 단계로 전달했습니다.
단계별 접근 방식을 사용하여
수집한 모든 정보를 바탕으로
꽤 포괄적인 응답을 생성할 수 있었습니다.
하지만 이것은 단순한 예시일 뿐이며,
실제 기업 데이터는
훨씬 더 복잡하고 지저분합니다.
따라서 먼저 데이터를 이해하는 데
시간을 투자해야 하고,
그 다음 데이터에 맞춰
에이전트의 동작을 설계해야 합니다.
에이전트가 적절한 계획을 수립하고
실행하는 능력에 너무 의존해서는 안 됩니다.
제 추천은 단계별 지침을
명확하게 제공하는 것입니다.
즉, 에이전트가
정확히 어떻게 실행할 수 있는지
단계별 지침을 제공하는 것이죠.
기본적으로 에이전트가 즉흥적인 계획을
세우는 것보다는 정해진 워크플로우를
따르도록 하는 것이 좋습니다.
만약 비즈니스에서 이와 유사한 문제를 해결하려고
하시고 조언이나 도움이 필요하시다면,
제가 다시 컨설팅과 자문 서비스를
시작했으니 연락 주시기 바랍니다.
자세한 내용은 영상 설명란에 있습니다.
어쨌든, Gemini 2.5 Pro는 정말 강력한 모델이며,
특히 추론 능력과
코딩 능력을 결합한
복잡한 워크플로우에 매우 적합한 모델입니다.
한번 사용해보시길 추천드립니다.
이 영상이 도움이 되었길 바랍니다.
시청해주셔서 감사하고,
다음 영상에서 만나요.