最近 Google が公開した Java 向け Agent Development Kit(ADK)のリリース 0.2.0 では、LangChain4j LLM フレームワークとの統合が追加されています。この統合により、デベロッパーは LangChain4j がサポートする幅広い大規模言語モデル(LLM)を使用して AI エージェントを構築できます。
ADK に組み込まれている Google Gemini および Anthropic Claude の統合に加えて、デベロッパーは LangChain4j を使用して、サードパーティ プロバイダ(OpenAI、Anthropic、GitHub、Mistral など)の他のモデルや、Ollama や Docker Model Runner などを介したローカルのオープンウェイト モデルにもアクセスできるようになりました。
LangChain4j LLM フレームワークは、幅広いモデルをサポートしています。LangChain4j のドキュメントでサポートされているモデルのリストを確認できます。具体例として、Gemma と Docker Model Runner を使った例と、Ollama と Qwen を使った例を見ていきます。
LlmAgent
ビルダーで ADK エージェントを宣言するときは、model()
ビルダー メソッドを使用して LLM を指定します。通常、「gemini-2.5-flash
」のように、モデルの名前を表す文字列を渡します。
BaseLlm
抽象クラスを拡張するクラスのインスタンスを使用することもできます。これはまさに、LangChain4j との統合が、両方のフレームワーク間のブリッジを作成するために行うことです。この BaseLlm
クラスを拡張する新しい LangChain4j
クラスを使用する必要があります。
Docker Model Runner をマシンにインストールして有効化した後、次のコマンドを使用して Gemma 3 モデルを簡単にプルできます。
docker model pull ai/gemma3
Docker Model Runner モデルは OpenAI 互換の API サーフェスを公開しているため、Maven pom.xml
で次の依存関係を指定することで、OpenAI 互換のモデルに LangChain4j モジュールを使用できます。
<dependency>
<groupId>com.google.adk</groupId>
<artifactId>google-adk-contrib-langchain4j</artifactId>
<version>0.2.0</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>1.4.0</version>
</dependency>
次に、使用するモデルと、ローカル URL とポートを指定して、LangChain4j チャットモデルを作成します。
OpenAiChatModel dmrChatModel = OpenAiChatModel.builder()
.baseUrl("http://localhost:12434/engines/llama.cpp/v1")
.modelName("ai/gemma3n")
.build();
次に、そのモデルを使用してチェスのコーチのエージェントを構成します。
LlmAgent chessCoachAgent = LlmAgent.builder()
.name("chess-coach")
.description("Chess coach agent")
.model(new LangChain4j(dmrChatModel))
.instruction("""
You are a knowledgeable chess coach
who helps chess players train and sharpen their chess skills.
""")
.build();
ここで重要なのは、2 つのフレームワーク間の橋渡しが model(new LangChain4j(dmrChatModel))
という命令を介して行われる点です。これで、ローカルモデルを利用する AI エージェントの完成です。
Ollama を介してマシン上でローカルに実行される Qwen 3 モデルを使用して、フレンドリーな理数系教師のエージェントを構築する場合は、まず、Maven pom.xml ビルドファイル内で依存関係を定義します。
<!-- the code ADK framework -->
<dependency>
<groupId>com.google.adk</groupId>
<artifactId>google-adk</artifactId>
<version>0.2.0</version>
</dependency>
<!-- the LangChain4j integration -->
<dependency>
<groupId>com.google.adk</groupId>
<artifactId>google-adk-contrib-langchain4j</artifactId>
<version>0.2.0</version>
</dependency>
<!-- the LangChain4j Ollama provider -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-ollama</artifactId>
<version>1.4.0</version>
</dependency>
すでにマシンに Ollama をインストールしており、Qwen 3 モデルをプルしてポート 11434
で実行していると仮定します。LangChain4j を使用すると、Java で、次のように Ollama モデル プロバイダをインスタンス化できます。
OllamaChatModel ollamaChatModel = OllamaChatModel.builder()
.modelName("qwen3:1.7b")
.baseUrl("http://127.0.0.1:11434")
.build();
次に、このモデルをシンプルな理数系教師のエージェントに組み込みます。
LlmAgent scienceTeacherAgent = LlmAgent.builder()
.name("science-app")
.description("Science teacher agent")
.model(new LangChain4j(ollamaChatModel))
.instruction("""
You are a helpful science teacher
who explains science concepts to kids and teenagers.
""")
.build();
モデルが関数呼び出しをサポートしている場合は、エージェントにツールへのアクセスを許可することもできます。たとえば、MCP サーバーやローカルコード駆動関数へのアクセスを許可できます。利用可能なさまざまなツールの詳細については、ADK ツールについて解説したこの記事や、ADK のドキュメントをご覧ください。
LangChain4j の統合という目玉以外にも、バージョン 0.2.0 にはエージェント開発ワークフローを強化する複数の改良が加えられています。
FunctionTools
: 静的メソッドだけでなく、オブジェクト インスタンスからも FunctionTools
を作成できるようになり、エージェントのアーキテクチャの柔軟性が向上しました。FunctionTools
が Single
を返すメソッドをサポートするようになりました。これにより、非同期操作のサポートが向上し、エージェントの応答性が向上します。endInvocation
フィールドにより、ツール呼び出し後にエージェント ループをプログラムによって中断または停止できます。これにより、エージェントの実行をより細かく制御できます。before/after
イベントのチェーン コールバックのサポートが追加されました。これにより、エージェントのライフサイクル内でより複雑かつ細かいロジックが可能になります。InMemoryMemoryService
を導入しており、より高度な RAG パターンに対応するために、AI Platform API を使用して VertexAiRagRetrieval
を実装しています。./mvnw
)が含まれ、すべてのコントリビュータに対して一貫性のある簡単なビルドプロセスを提供します。この新しいバージョンをお届けできることを嬉しく思います。LangChain4j の統合は、Java 向け ADK を、強力な AI エージェントを構築するためのよりオープンで柔軟なフレームワークにするための大きな一歩となります。
この Java 向け ADK 最新バージョンの詳細については、GitHub リリースノートをご覧ください。ADK を使用した Java でのエージェント開発が初めての方は、Java 向け ADK のドキュメントもしくはこちらのスタートガイド(動画あり)を確認するか、GitHub テンプレート プロジェクトのフォークをお試しください。すぐに始められます。
同僚の Michael Vorburger とともに、LangChain4j を作成した Dmytro Liubarskyi 氏と協力して、この LangChain4j の統合に取り組めたことを嬉しく思います。ADK を使用して Java で AI エージェントを構築している方は、Twitter / X の @glaforge、または Bluesky の @glaforge.dev にメッセージをお送りください。素晴らしいユースケースのご報告をお待ちしております。