Google 近日发布的 Agent Development Kit (ADK) for Java 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 文档中查看完整的支持模型列表。下面我们通过两个具体示例进行说明:通过 Docker Model Runner 运行 Gemma 模型,以及通过 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>
随后创建 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();
请注意,两个框架之间的桥梁正是通过 model(new LangChain4j(dmrChatModel))
指令实现的。至此,您的 AI 智能体已成功搭载本地模型!
<!-- 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
端口运行。在 Java 中使用 LangChain4j 时,您可以按如下方式实例化 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
允许在工具调用后以编程方式中断或停止智能体循环,从而提供更精细的执行控制。前后
事件的链式回调支持,使您能在智能体生命周期中实现更复杂、更精细的逻辑控制。InMemoryMemoryService
,用于实现简单、快速的内存管理;同时通过 AI Platform API 实现了 VertexAiRagRetrieval
,支持更高级的 RAG 模式。./mvnw
),确保所有创作贡献者都能获得统一且简化的构建流程。我们非常荣幸推出这个新版本。与 LangChain4j 的集成标志着 ADK for Java 向前迈出了重要一步,使其成为构建强大 AI 智能体更开放、更灵活的框架。
要了解 ADK for Java 新版本的更多信息,请阅读 GitHub 版本说明。初次使用 ADK 进行 Java 智能体开发?请查阅 ADK for Java 官方文档、入门指南(及视频教程),或创建 GitHub 模板项目分支以快速开始。
我和我的同事 Michael Vorburger 很荣幸能与 LangChain4j 的创建者 Dmytro Liubarskyi 合作,共同完成了此次 LangChain4j 集成工作。如果您正在使用 ADK 构建 Java 版 AI 智能体,欢迎通过 Twitter/X 的 @glaforge 或 Bluesky 的 @glaforge.dev 账号与我们联系。我们期待了解您的精彩应用案例。