Vertex AI Agent Builderを使ってみた

記事タイトルとURLをコピーする

G-gen 又吉です。本記事は Google Cloud Next '24 in Las Vegas の1日目のキーノートで発表された Vertex AI Agent Builder を触ってみたのでご紹介します。

他の Google Cloud Next '24 の関連記事は Google Cloud Next '24 カテゴリの記事一覧からご覧いただけます。

概要

Agent とは

生成 AI アプリケーションにおける Agent とは、人間の代わりに生成 AI が、目的を達成するために様々な機能 (ツール) を用いて情報を収集しアクションを実行することができるシステムのことを指します。

例えば、「Google 検索を実行できるツール」と「社内情報を検索できるツール」を持った Agent を例にみてみましょう。 通常 LLM は、過去のトレーニングデータで学習されているため最新情報に回答することはできませんが、「今の日本の総理大臣は?」というユーザーからの質問が来たことを想定してみます。

Agent は適切な回答を生成するために、どのツールを用いた方がいいのか自ら考え実行し回答を生成します。今回の場合ですと、最新情報に回答するために「Google 検索を実行できるツール」を用いて 最新情報を取得し回答を生成 することができます。

Agent 使用例

Agent を応用することで、今まで人が介入していた複雑な処理を生成 AI アプリで代替していくことが期待できます。

Vertex AI Agent Builder とは

Vertex AI Agent Builder では、このような Agent 開発をサポートするサーバーレスかつフルマネージドなサービスです。また、ノーコード・ローコードで Agent 開発ができる点も大変魅力的です。

Vertex AI agents では、Agent の開発からテスト、デプロイはもちろんのこと、会話履歴の管理や Agent のバージョン管理まで、Agent 開発をスムーズに進められる環境が多数揃っています。

また、今回 Vertex AI Agent Builder の登場により、既存サービスの名称変更が予定されているため以下にまとめます。 Vertex AI Search and Conversation は Vertex AI Agent Builder に、Vertex AI Conversation が Vertex AI agents にそれぞれ名称変更が予定されています。

Vertex AI Search and Conversation の名称変更

料金

概要

Vertex AI Agent Builder の料金は、公式ページだと Agent に対して $12/1000クエリ と記載されています。ただし、プレビュー期間中の料金については以下の注意書きもあるため、さっそく触ってみたいと考えている方は確認したほうが良いかも知れません

2024年4月現在、Vertex AI agents の課金はプレビューとなってますため、詳細は Google 担当営業にお問い合わせ下さい。

試算例

Vertex AI Agent Builder で作成した Agent アプリに対し、一月あたり 10,000 クエリのリクエストが発生することを想定します。尚、ツールは Vertex AI Search のみが設定され、すべてのクエリに対しツールを1回利用することを想定します。

# Agent 月額コスト
10,000 クエリ × ($12 / 1,000 クエリ) = $120

# ツール月額コスト
10,000 クエリ/月 × ($2 / 1,000 クエリ) = $20

# 月額合計
$120 + $20 = $140

Vertex AI agents

概要

Vertex AI agents とは、Agent の開発はもちろん、テスト、デプロイができる Agent に特化した統合開発環境のようなツールです。

ユーザーインターフェイスとしては、以下のような機能を提供しています。

機能名 説明
Agents Agent の構成要素を管理
Tools Agent が利用するツールを管理
Test cases シミュレータで作成されたテストケースの管理・実行
Conversation history Agent の会話履歴を管理
Integrations Slack や Google Chat 等のインテグレーション管理
Prebuilt agents 人気のある Agent のサンプル集
Change history Agent の変更履歴
Agent settings Agent アプリ名、ロケーション、LLM のモデル、ログ等の設定を管理

Agents の構成要素

Goal

Goal (目標) では、Agent が達成すべき目標を定義します。複雑に書くより簡潔な目標であることが望ましいです。

Instructions

Instructions (手順・指示) では、目標達成のために実行する必要があるプロセスを定義します。ユーザーの問題を解決するための 段階的なアプローチ を記述します。

Examples

Examples (例)では、サンプル入出力例を定義します。一般的には few-shot prompt のようなものです。

少なくとも 1 つ以上の Example が必要ですが、4 つ以上の Examples があると Agent の動作精度が向上します。逆に言うと、Agent の動作精度を上げたい場合、この Examples を増やしてみたり、既存の Examples を改善してみるといいでしょう。

Tools

概要

Tools (ツール)とは、Agent が外部システムに接続するための機能です。Agent 複雑なタスクを効率的に処理するためにツールを使用します。つまり、Vertex AI agents を構成するために、Agent と同じくらいツールは重要になってきます。

Built-in tools

Built-in tools は、 Google によってホストされたマネージドなツールで、すぐに利用可能です。現在は、Code Interpreter のみが対応しています。

Code Interpreter とは、自然言語から Python コードを自動で生成および実行することで、データ分析や可視化、複雑な計算処理などの様々なタスクを実行できるツールです。

OpenAPI tools

OpenAPI tools は、OpenAPI のスキーマを定義することでユーザー独自のツールが作成できるツールです。スキーマの記述はもちろん、外部 API を呼び出す際の認証周りなどユーザー側で定義する必要がありますが、汎用的な API 実行が可能となります。

クライアント側からは実行できるが OpenAPI tools からアクセスできない場合は、Function tools などを用いて、API 実行をクライアント側で行い、Agent 側では API 実行結果を受け取るような工夫が必要です。

Data store tools

Data store tools は、Vertex AI Search のように社内ドキュメントや指定した Web サイトに対し検索をかけたり、検索要約を取得したりできるツールです。つまり、Vertex AI Search のような機能をツールとして利用できる機能です。

データストアのタイプは以下のいずれかがサポートされています。

  • PUBLIC_WEB:Public Web コンテンツを含むデータストア
  • UNSTRUCTURED:非構造化データを含むデータストア
  • STRUCTURED: 構造化データを含むデータストア

触ってみた

今回は非常にシンプルな Agent アプリを構築していきます。

Agent アプリの構成としては、ユーザーの質問が計算問題だったら Code Interpreter を使用し、そうでなければツールを使わず直接 LLM による回答を生成させる構成です。

複雑な計算問題を得意としない LLM の場合、このような Agent を構成することでグラウンディングが実装できます。

構成例

Google Cloud コンソールから [Agent Builder] > [アプリ] > [新しいアプリを作成] を押下します。

Vertex AI Agent Builder コンソール画面①

アプリの種類で [Agent] を選択、表示名とリージョンを設定し作成を押下します。

Vertex AI Agent Builder コンソール画面②

しばらく待つと、Agent Demo App が作成できます。デフォルトで「Default Generative Agent」という名前の Agent が作られます。

Agent App コンソール画面①

Default Generative Agent のパラメータをいくつか変更します。

Goal を以下に変更します。

You are an general agent. Support customer.

Instructions を以下に変更します。

- if the customer asks for calculations,
    - Use ${TOOL: code-interpreter}
- else,
    - Answer with a general answer.

変更したら [Save] を押下します。

Agent App コンソール画面②

それでは、画面右のプレビュー画面で動作確認を行います。

まずは、「4x3-2x+1 を微分して」というプロンプトを実行してみます。 すると裏側では Agent が以下の処理フローを実行してユーザーへの回答を生成しています。

  1. Agent は、ユーザーのプロンプトが計算問題だと判断し、Code Interpreter のツールを使用
  2. Code Interpreter により Python コードが生成および実行され、正確な回答結果が得られ LLM に渡されます
  3. 最後に LLM は、ツールの回答結果をもとにユーザーへの回答文を生成してレスポンスとして出力

動作確認①

次に、「BigQuery について教えて」というプロンプトを実行してみます。 すると、計算問題ではないのでツールを使わずに一般的な回答を生成していることが確認できました。

動作確認②

関連記事

blog.g-gen.co.jp

又吉 佑樹(記事一覧)

クラウドソリューション部

はいさい、沖縄出身のクラウドエンジニア!

セールスからエンジニアへ転身。Google Cloud 全 11 資格保有。Google Cloud Champion Innovator (AI/ML)。Google Cloud Partner Top Engineer 2024。Google Cloud 公式ユーザー会 Jagu'e'r でエバンジェリストとして活動中。好きな分野は AI/ML。