0
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?

Google の「Agent Development Kit(ADK)」の Typescript版を Node.js+Gemini API で軽く試す【生成AIカレンダー】

Last updated at Posted at 2025-11-08

(この記事は 生成AI の Advent Calendar 2025 の記事にする予定です)
 

はじめに

過去に、Python版については軽く試して、以下の記事を書いていた Googleさんの「Agent Development Kit(ADK)」の話です。

●Googleさんの「Agent Development Kit(ADK)」を使ったエージェント実装を試してみる(公式のクイックスタートの手順 +α) - Qiita
 https://qiita.com/youtoy/items/1d129272bd2bebc7c0f5

Typescript版の ADK

それに関して直近で書かれた記事で、以下の ADK の Typescript版について触れた記事を見かけました。

●[ADK] ADK for TypeScript(@google/adk) を利用して、TypeScriptでAIエージェントを書く
 https://zenn.dev/soundtricker/articles/a0b902f224cf9c

それで、これを軽く試したみたというのが、今回の内容です。

その際、自分は Node.js/JavaScript を使ってみます。また、参照元の手順で Vertex AI が使われていたところを、自分は Gemini API にして進めてみます。

さっそく試してみる

公式の情報などを見つつ、さっそく試して見ます。

公式のリポジトリ

上で掲載していた記事で出てきた、Agent Development Kit(ADK)の Typescript版のリポジトリは以下になるようです。

●google/adk-js
 https://github.com/google/adk-js

ちなみに、ADK の以下の公式ページでは、記事執筆時点では、上記の Typescript版の話には触れられていないようでした。

●Index - Agent Development Kit
 https://google.github.io/adk-docs/

2025-11-08_20-59-38.jpg

公式手順などを見て下準備を進める

公式のインストール手順

公式のインストール手順を見てみます。

2025-11-08_21-04-16.jpg

とりあえず、npmコマンドを使う場合は、以下を実行して始めればよさそうです。

npm i @google/adk

以下のパッケージをインストールするコマンドになります。

●@google/adk - npm
 https://www.npmjs.com/package/@google/adk

Zenn の記事の手順を参照してパッケージを追加

上記の公式のリポジトリの説明だけだと、情報が不足していそうです。それで、上で掲載していた Zenn の記事の情報も見つつ進めてみます。

●[ADK] ADK for TypeScript(@google/adk) を利用して、TypeScriptでAIエージェントを書く
 https://zenn.dev/soundtricker/articles/a0b902f224cf9c

この記事を見ると、以下を追加して進めるのが良いようです。

●@google/adk-devtools - npm
 https://www.npmjs.com/package/@google/adk-devtools

そのため、追加で以下のコマンドでパッケージのインストールを行います。

npm i @google/adk-devtools

Zenn の記事の手順を参照したサンプルコード

ここで、公式のリポジトリに掲載されていたコードと、上記の Zenn の記事に書かれたコードを見比べてみます。

Zenn の記事のサンプルは「rootAgent を export している」という部分が違っていました。とりあえず、実際の動作実績がある Zenn の記事のサンプルの実装を使うことにします。

その際、Zenn の記事の配置・ファイル名とは違う内容で準備してみました。具体的には、ルートディレクトリに app.mjs というファイル名でエージェント用のコードを準備しました。

コードの内容は、以下のように Zenn の記事に書かれていた内容そのままです。

import { LlmAgent, GOOGLE_SEARCH } from "@google/adk";

export const rootAgent = new LlmAgent({
  name: "search_assistant",
  description: "Web検索用エージェント.",
  model: "gemini-2.5-flash",
  instruction:
    "あなたは有能でフレンドリーなエージェントです。ユーザーの問いに必要であれば、Web検索をして答えてください。",
  tools: [GOOGLE_SEARCH],
});

.envファイルの準備

また、.envファイルに関しても Zenn の記事に書かれていた内容とは違うやり方にしました。具体的には Vertex AI を利用していた部分を、Gemini API を利用する形にしました。

.envファイルの内容は、自分の過去のお試し(Python版の ADK を使ったもの)で用意したのと同じ構成で、環境変数名だけ少し変えた以下の内容にしました(※ 過去のお試しの変数名のままだと、この後の手順を進めていった時に、変数名を「GOOGLE_GENAI_API_KEY か GEMINI_API_KEY」にするように、というエラーがでました)。

GOOGLE_GENAI_USE_VERTEXAI="False"
GEMINI_API_KEY="【Google AI Studio の APIキー】"

ファイルを置いた場所

上記のコード・.envファイルは、ルートディレクトリに置いて進めました。treeコマンドで出力した、ファイルの配置を示した情報を以下に掲載します。

2025-11-08_21-57-04.jpg

サーバーを立ち上げてブラウザでアクセスする

上記の下準備を全て終えたら、以下のコマンドでサーバーを立ち上げます。

npx adk web .

そして、 http://localhost:8000/ にブラウザでアクセスしてみます。そうすると、以下のようなページが表示されました。

2025-11-08_22-00-57.jpg

そして、上記の右下のテキストボックスからメッセージを送ったところ、返答を得られました。

2025-11-08_22-04-12.jpg

さらに、元の「instruction」で「ユーザーの問いに必要であれば、Web検索をして答えてください」という内容があったので、検索を必要とする質問をしてみました。具体的には東京の天気を提示するよう依頼したのですが、以下のように検索をした結果をもとにした回答を示してくれたようでした。

2025-11-08_22-05-49.jpg

とりあえずのお試しは、以上です!

0
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
0
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?