The latest version 0.2.0 of the Java Agent Development Kit significantly enhances its capabilities by integrating with the LangChain4j LLM framework, enabling compatibility with all large language models supported by the framework.
Before the LangChain4j integration, Java ADK only supported two models: Google Gemini and Anthropic Claude. This stood in contrast to Python ADK, which offered broader support via LiteLLM. With LangChain4j, Java developers can now access models from OpenAI, Anthropic, and Mistral, as well as any models supported by Ollama or Docker Model Runner, including Gemma, Qwen, Phi, and others.
Guillaume Laforge, a Google Developer Relations Engineer and one of the contributors to LangChain4j who participated in its ADK integration, explained that using LangChain4j allows for mixing models within multi-agent scenarios. This is made possible through agent tools, which enable one agent to function as a tool for another agent.
In multi-agent environments, combining different models is particularly advantageous because you can select the most appropriate model for each task. For example, you might use a very fast model for simple classification tasks such as request routing, while reserving a more powerful model—like the Gemini 2.5 reasoning model—for complex, high-level tasks.
Laforge also demonstrated a basic implementation in which a primary agent is powered by Claude and a secondary tool agent utilizes OpenAI to provide weather information. Once these two agents—named weatherAgent and claudeModel—are instantiated, you can combine them by instantiating an agent as follows:
LlmAgent agent = LlmAgent.builder()
.name("friendly-weather-app")
.description("Friend agent that knows about the weather")
.model(new LangChain4j(claudeModel, CLAUDE_3_7_SONNET_20250219))
.instruction("""
You are a friendly assistant.
If asked about the weather forecast for a city,
you MUST call the `weather-agent` function.
""")
.tools(AgentTool.create(weatherAgent))
.build();
Beyond the LangChain4j integration, ADK 0.2.0 introduces several key enhancements aimed at boosting tool functionality and agent performance. On the tool side, it now supports the creation of FunctionTools from object instances, improves asynchronous tool execution, and provides more granular programmatic control over agent operations. Regarding agent logic and memory, it enhances logic and memory handling through callback chains and new memory management primitives, offering increased flexibility in how agents store, retrieve, and process data.
As part of its broader Agent Development Kit initiative, Java's ADK—launched earlier this year—is still in early development. To get started with Java ADK documentation, visit the getting started guide or fork Laforge's template project from GitHub.