Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ADK Java が出たので AI Agent を作ろう

ADK Java が出たので AI Agent を作ろう

2025/06/07 の JJUG CCC 2025 spring LT で発表した内容です。

Avatar for SatohJohn

SatohJohn

June 07, 2025
Tweet

More Decks by SatohJohn

Other Decks in Technology

Transcript

  1. ADK Java が出たので AI Agent を作ろう JJUG CCC 2025 spring

    LT 株式会社スリーシェイク Sreake 事業部 佐藤慧太 Copyright © 3-shake, Inc. All Rights Reserved.
  2. Agent Development Kit (ADK) とは 1. Google Cloud が Google

    Cloud Next ‘25 で発表した AI Agent を 作成するための Framework a. Flow, MCP, Evaluation, Artifacts, CodeExecution など b. Langchain とかイメージしてもらえると近い 2. Python (1.2.0) の次にできたのが Java (0.1.0) 3. 5月 の Google I/O ででた https://github.com/google/adk-java
  3. AI Agent の記載方法 import com.google.adk.agents.LlmAgent; import com.google.adk.tools.GoogleSearchTool; LlmAgent rootAgent =

    LlmAgent.builder() .name("search_assistant") .description("An assistant that can search the web.") .model("gemini-2.0-flash") // Or your preferred models .instruction("You are a helpful assistant. Answer user questions using Google Search when needed.") .tools(new GoogleSearchTool()) .build(); • LlmAgent が一つの AI Agent となる • Instruction、Description で Agent を設定する • subAgents, Tools を入れることで機能拡張する
  4. 起動方法 1. Gradle や Maven で ADK web を利用する 2.

    Spring の Controller 上で Runner を記載する implementation 'org.jboss.logging:jboss-logging:3.6.1.Final' implementation 'org.hibernate.common:hibernate-commons-annotations:7.0.3.Final' implementation 'com.fasterxml:classmate:1.7.0' implementation 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.2' implementation 'net.bytebuddy:byte-buddy:1.14.12' implementation 'net.bytebuddy:byte-buddy-agent:1.14.12' task runAdkWebServer(type: JavaExec) { classpath = sourceSets.main.compileClasspath mainClass = "com.google.adk.web.AdkWebServer" args = ["--adk.agents.source-dir=src/main/java/com/example/demo/agent"] description = "ADK Web Serverを起動します" group = "application" }
  5. 起動方法 1. Gradle や Maven で ADK web を利用する 2.

    Spring の Controller 上で Runner を記載する InMemoryRunner runner = new InMemoryRunner(searchAgent); Session session = runner.sessionService().getSession(searchAgent.name(), userId, sessionId, Optional.empty()).blockingGet(); Content userMsg = Content.fromParts(Part.fromText(query)); userMsg = userMsg.toBuilder().role("user").build(); RunConfig runConfig = RunConfig.builder().build(); List<Event> events = new java.util.ArrayList<>(); runner.runAsync(session, userMsg, runConfig) .blockingIterable() .forEach(event -> { events.add(event); }); Event finalAgentEvent = events.stream() .filter(event -> searchAgent.name().equals(event.author())) .reduce((first, second) -> second); return finalAgentEvent.stringifyContent();
  6. まとめ ADK という AI Agent 作るライブラリについての紹介 • まだまだ Python と比べると厳しい部分はある

    なんで Java っていうのは言わない約束 • Java 触ったことある方であれば生成 AI のアプリ作ったことないっていう のは言えなくなるぐらい簡単に作れる 1時間かからずできました よい AI Agent 開発を!