3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AgentgatewayのQuickstartを試してみた

3
Last updated at Posted at 2025-12-22

はじめに

株式会社 日立製作所の岡井倫人です。

近年、AIは急速に進化をしており、特にAIエージェントが注目を集めています。実際に、2025年は「AIエージェントの年」と呼ばれるほどです。AIエージェントでは、ツール、他のAIエージェントなど外部のシステムとの連携が不可欠です。

Solo.ioはAIエージェントとツール間やAIエージェント同士の連携を容易にするAgentgatewayを公開しています。そこで、今回、AgentgatewayのQuickstartを試してみました。

Agentgatewayとは

Agentgatewayは多様な連携を可能にするゲートウェイとして機能します。その中でも特に、AIエージェントとツール間やAIエージェント同士の連携を容易にするゲートウェイとして使用されることが想定されます。AIエージェントは、様々なツールや外部のエージェントと連携しながらタスクを遂行します。そのため、連携においてはプロトコルの統一、セキュリティ、可観測性、ガバナンスが重要な課題になります。この課題において、Agentgatewayは、MCP(Model Context Protocol)やA2A(Agent2Agent)などのAIネイティブなプロトコルに対応し、AIエージェントとツール間、AIエージェント同士の連携に対して、上記の課題を解決することができます。以下は、Agentgatewayの簡単なイメージ図になります。

画像1.png
図1 Agentgatewayのイメージ図

AgentgatewayのQuickstart

今回はUbuntu 22.04を使用してAgentgatewayのQuickstartを試してみました。

Agentgatewayのインストール

まずは以下のコマンドでAgentgatewayのバイナリをインストールします。

$ curl https://raw.githubusercontent.com/agentgateway/agentgateway/refs/heads/main/common/scripts/get-agentgateway | bash

正しくインストールされたかを確認するために、以下のコマンドを実行します。

$ agentgateway --version

今回の出力結果は以下になります。今回使用するAgentgatewayのバージョンは0.10.5になります。

{
  "version": "0.10.5",
  "git_revision": "dc4d4fd9715fb6623f9050e59353bb5cea0361b0",
  "rust_version": "1.90.0",
  "build_profile": "release",
  "build_target": "x86_64-unknown-linux-musl"
}

設定ファイルのダウンロードとAgentgatewayの起動

次に以下のコマンドで公開されている簡易な設定ファイルをダウンロードします。

$ curl https://raw.githubusercontent.com/agentgateway/agentgateway/refs/heads/main/examples/basic/config.yaml -o config.yaml

ダウンロードされる設定ファイルは以下になります。

# yaml-language-server: $schema=../../schema/local.json
binds:
- port: 3000
  listeners:
  - routes:
    - policies:
        cors:
          allowOrigins:
            - "*"
          allowHeaders:
            - mcp-protocol-version
            - content-type
            - cache-control
      backends:
      - mcp:
          targets:
          - name: everything
            stdio:
              cmd: npx
              args: ["@modelcontextprotocol/server-everything"]

上記の設定ファイルの概要は以下になります。次の章でもUIから設定内容を確認します。

  • 3000ポートのHTTPリスナーが作成される
  • HTTPリスナーに1つのルートが作成される
  • ルートにはCORSのポリシーが適用される
  • ルートに1つのバックエンドが作成される
  • バックエンドにMCPサーバが設定される
  • バックエンドの送信先であるターゲットにサンプルのオープンソースのMCPテストサーバであるserver-everythingが設定される

最後に以下のコマンドでダウンロードした設定ファイルを読み込み、Agentgatewayを起動します。

$ agentgateway -f config.yaml

組み込みUIへのアクセス

Agentgatewayには設定の更新やMCPサーバで公開されているツールを確認できる組み込みUIがあります。ブラウザで http://localhost:15000 にアクセスすると、以下のホーム画面が表示されます。

home.png
図2 ホーム画面

ホーム画面から様々な設定を確認することができます。まずはリスナーの設定を確認します。リスナーは、Agentgatewayがどのようにリクエストを受け付け、処理するかを定義します。「Listeners」を押下するとリスナーの一覧が表示されます。今回は3000ポートが空いており、プロトコルにはHTTPが設定されていることが確認できます。

listeners.png
図3 リスナーの一覧画面

次にルートの設定を確認します。ルートは、リスナー上に設定され、トラフィックをバックエンドにルーティングします。「Routes」を押下するとルートの一覧が表示されます。3000ポートには1つのルートがあり、そのルートには1つのバックエンドが設定されていることが確認できます。

routes.png
図4 ルートの一覧画面

次にバックエンドの設定を確認します。バックエンドは、トラフィックの最終的な送信先であるターゲットを定義します。1つのバックエンドに対して複数のターゲットを設定することもできます。「Backends」を押下するとバックエンドの一覧が表示されます。バックエンドはMCPサーバで、ターゲットとしてserver-everythingが設定されていることが確認できます。

backends.png
図5 バックエンドの一覧画面

次にポリシーの設定を確認します。ポリシーは、バックエンドのトラフィック管理、変換、セキュリティを定義します。「Policies」を押下するとポリシーの一覧が表示されます。ルートに対してポリシーが設定されていることが確認できます。

policies.png
図6 ポリシーの一覧画面

ポリシーの一覧画面で、右にある「Select」を押下するとポリシーの詳細が表示されます。このポリシーはCORSが設定されていることが確認できます。CORS以外にもMCP AuthenticationやTimeoutなど様々なポリシーが設定できます。

policies_select.png
図7 ポリシーの詳細画面

最後に、「Playground」を押下すると、MCPサーバに接続できるプレイグラウンド画面が表示されます。

playground.png
図8 Playgroundの画面

Connectを押下するとターゲットに接続し、利用可能なツールの一覧が表示されます。

playground_connect.png
図9 ツールの一覧画面

今回はechoツールを試してみます。「echo」を選択すると、メッセージ入力欄が表示されます。

playground_echo.png
図10 echo選択後の画面

メッセージ入力欄に「This is my first agentgateway setup.」を入力して、「Run Tool」を押下すると、echoツールが実行され、画面下部にレスポンスが表示されます。このように、組み込みUIでツールを実行することができます。

playground_run.png
図11 echo実行後の画面

以上がAgentgatewayのQuickstartになります。

おわりに

今回はAgentgatewayのQuickstartをやってみました。今後はセキュアなシステムにするために、MCPの認証認可を実現できるKeycloakとAgentgatewayを連携させるなど、引き続きAgentgatewayを調査していきたいと思います。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?