コンテンツにスキップ

ADK向けJavaクイックスタート

このガイドでは、Java向けAgent Development Kitのセットアップと実行方法について説明します。開始する前に、以下がインストールされていることを確認してください。

  • Java 17以降
  • Maven 3.9以降

エージェントプロジェクトの作成

次のファイルとディレクトリ構造でエージェントプロジェクトを作成します。

my_agent/
    src/main/java/com/example/agent/
                        HelloTimeAgent.java # メインエージェントコード
                        AgentCliRunner.java # コマンドラインインターフェイス
    pom.xml                                 # プロジェクト構成
    .env                                    # APIキーまたはプロジェクトID
コマンドラインを使用してこのプロジェクト構造を作成する
mkdir my_agent\src\main\java\com\example\agent
type nul > my_agent\src\main\java\com\example\agent\HelloTimeAgent.java
type nul > my_agent\src\main\java\com\example\agent\AgentCliRunner.java
type nul > my_agent\pom.xml
type nul > my_agent\.env
mkdir -p my_agent/src/main/java/com/example/agent && \
    touch my_agent/src/main/java/com/example/agent/HelloTimeAgent.java && \
    touch my_agent/src/main/java/com/example/agent/AgentCliRunner.java && \
    touch my_agent/pom.xml my_agent/.env

エージェントコードの定義

getCurrentTime()というADK関数ツールの簡単な実装を含む、基本的なエージェントのコードを作成します。プロジェクトディレクトリのHelloTimeAgent.javaファイルに次のコードを追加します。

my_agent/src/main/java/com/example/agent/HelloTimeAgent.java
package com.example.agent;

import com.google.adk.agents.BaseAgent;
import com.google.adk.agents.LlmAgent;
import com.google.adk.tools.Annotations.Schema;
import com.google.adk.tools.FunctionTool;

import java.util.Map;

public class HelloTimeAgent {

    public static BaseAgent ROOT_AGENT = initAgent();

    private static BaseAgent initAgent() {
        return LlmAgent.builder()
            .name("hello-time-agent")
            .description("指定された都市の現在時刻を伝えます")
            .instruction(""
                あなたは都市の現在時刻を伝える役立つアシスタントです
                この目的のためにgetCurrentTimeツールを使用してください
                ")
            .model("gemini-2.5-flash")
            .tools(FunctionTool.create(HelloTimeAgent.class, "getCurrentTime"))
            .build();
    }

    /** モックツール実装 */
    @Schema(description = "指定された都市の現在時刻を取得します")
    public static Map<String, String> getCurrentTime(
        @Schema(name = "city", description = "時刻を取得する都市の名前") String city) {
        return Map.of(
            "city", city,
            "forecast", "時刻は午前10時30分です"
        );
    }
}

プロジェクトと依存関係の構成

ADKエージェントプロジェクトには、pom.xmlプロジェクトファイルに次の依存関係が必要です。

my_agent/pom.xml (partial)
<dependencies>
    <dependency>
        <groupId>com.google.adk</groupId>
        <artifactId>adk-core</artifactId>
        <version>0.3.0</version>
    </dependency>
</dependencies>

次の構成コードを使用して、この依存関係と追加設定を含むようにpom.xmlプロジェクトファイルを更新します。

プロジェクトの完全なpom.xml構成

次のコードは、このプロジェクトの完全なpom.xml構成を示しています。

my_agent/pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example.agent</groupId>
    <artifactId>adk-agents</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!-- 使用するJavaのバージョンを指定します -->
    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <!-- ADKコア依存関係 -->
        <dependency>
            <groupId>com.google.adk</groupId>
            <artifactId>google-adk</artifactId>
            <version>0.3.0</version>
        </dependency>
        <!-- エージェントをデバッグするためのADK開発Web UI -->
        <dependency>
            <groupId>com.google.adk</groupId>
            <artifactId>google-adk-dev</artifactId>
            <version>0.3.0</version>
        </dependency>
    </dependencies>

</project>

APIキーの設定

このプロジェクトでは、APIキーが必要なGemini APIを使用します。まだGemini APIキーをお持ちでない場合は、Google AI StudioのAPIキーページでキーを作成してください。

ターミナルウィンドウで、APIキーをプロジェクトの.envファイルに書き込み、環境変数を設定します。

Update: my_agent/.env
echo 'export GOOGLE_API_KEY="YOUR_API_KEY"' > .env
Update: my_agent/env.bat
echo 'set GOOGLE_API_KEY="YOUR_API_KEY"' > env.bat
ADKで他のAIモデルを使用する

ADKは、多くの生成AIモデルの使用をサポートしています。ADKエージェントで他のモデルを構成する方法の詳細については、モデルと認証を参照してください。

エージェントコマンドラインインターフェイスの作成

コマンドラインからHelloTimeAgentを実行して対話できるように、AgentCliRunner.javaクラスを作成します。このコードは、エージェントを実行するためのRunConfigオブジェクトと、実行中のエージェントと対話するためのSessionオブジェクトを作成する方法を示しています。

my_agent/src/main/java/com/example/agent/AgentCliRunner.java
package com.example.agent;

import com.google.adk.agents.RunConfig;
import com.google.adk.events.Event;
import com.google.adk.runner.InMemoryRunner;
import com.google.adk.sessions.Session;
import com.google.genai.types.Content;
import com.google.genai.types.Part;
import io.reactivex.rxjava3.core.Flowable;
import java.util.Scanner;

import static java.nio.charset.StandardCharsets.UTF_8;

public class AgentCliRunner {

    public static void main(String[] args) {
        RunConfig runConfig = RunConfig.builder().build();
        InMemoryRunner runner = new InMemoryRunner(HelloTimeAgent.ROOT_AGENT);

        Session session = runner
                .sessionService()
                .createSession(runner.appName(), "user1234")
                .blockingGet();

        try (Scanner scanner = new Scanner(System.in, UTF_8)) {
            while (true) {
                System.out.print("\nYou > ");
                String userInput = scanner.nextLine();
                if ("quit".equalsIgnoreCase(userInput)) {
                    break;
                }

                Content userMsg = Content.fromParts(Part.fromText(userInput));
                Flowable<Event> events = runner.runAsync(session.userId(), session.id(), userMsg, runConfig);

                System.out.print("\nAgent > ");
                events.blockingForEach(event -> {
                    if (event.finalResponse()) {
                        System.out.println(event.stringifyContent());
                    }
                });
            }
        }
    }
}

エージェントの実行

定義したインタラクティブなコマンドラインインターフェイスAgentCliRunnerクラスまたはADKでAdkWebServerクラスを使用して提供されるADK Webユーザーインターフェイスを使用して、ADKエージェントを実行できます。これらのオプションの両方で、エージェントをテストして対話できます。

コマンドラインインターフェイスで実行

次のMavenコマンドを使用して、コマンドラインインターフェイスAgentCliRunnerクラスでエージェントを実行します。

# キーと設定を読み込むことを忘れないでください:source .envまたはenv.bat
mvn compile exec:java -Dexec.mainClass="com.example.agent.AgentCliRunner"

adk-run.png

Webインターフェイスで実行

次のMavenコマンドを使用して、ADK Webインターフェイスでエージェントを実行します。

# キーと設定を読み込むことを忘れないでください:source .envまたはenv.bat
mvn compile exec:java \
    -Dexec.mainClass="com.google.adk.web.AdkWebServer" \
    -Dexec.args="--adk.agents.source-dir=target --server.port=8000"

このコマンドは、エージェント用のチャットインターフェイスを備えたWebサーバーを起動します。(http://localhost:8000)でWebインターフェイスにアクセスできます。左上隅でエージェントを選択し、リクエストを入力します。

adk-web-dev-ui-chat.png

次へ:エージェントの構築

ADKをインストールして最初のエージェントを実行したので、ビルドガイドを使用して独自のエージェントを構築してみてください。

```