Appearance
- 官网: https://docs.langchain4j.dev
- GitHub: https://github.com/langchain4j/langchain4j
- API 文档: https://docs.langchain4j.dev/apidocs
- 最新稳定版: 1.14.0(2026年)
- 开源协议: Apache 2.0
- JDK 要求: 17+
知识点清单
- [ ] LangChain4j 是什么?与 Python LangChain 的区别?
- [ ] 统一 API 设计:ChatModel / EmbeddingModel / ImageModel
- [ ] AI Services 声明式调用模式
- [ ] Tool Calling(工具调用 / Function Calling)
- [ ] RAG(检索增强生成)的实现方式
- [ ] Chat Memory(对话记忆)管理
- [ ] MCP 协议支持
- [ ] Spring Boot Starter 集成
- [ ] 支持的 LLM 提供商有哪些?
笔记
一、定位
LangChain4j 是面向 Java / JVM 生态的 LLM 应用开发框架。它不是 Python LangChain 的简单移植,而是围绕 Java 的 接口、注解、POJO、依赖注入 和类型安全重新设计。
核心理念:让 Java 开发者用熟悉的编程范式构建 AI 应用,无需学习 Python。
二、三大核心价值
| 能力 | 说明 |
|---|---|
| 统一 API | 抽象 20+ LLM 提供商(OpenAI、Anthropic、Google Gemini、Ollama、DeepSeek 等)和 30+ Embedding 存储 |
| AI Services 模式 | 通过声明式 Java 接口调用 LLM,类似 Spring Data JPA 的代理模式 |
| Agentic 系统 | 支持多智能体编排、工具调用、MCP 协议集成 |
三、统一 API 设计
LangChain4j 的核心抽象极其简洁,所有 LLM 提供商通过同一套接口接入:
java
// 切换模型只需换 Builder,调用代码无需改动
ChatModel model = OpenAiChatModel.builder()
.apiKey(System.getenv("OPENAI_API_KEY"))
.modelName("gpt-4o-mini")
.build();
String answer = model.chat("你好!");支持的提供商类型:
- ChatModel(对话):OpenAI、Anthropic Claude、Google Gemini、Ollama、DeepSeek、通义千问、文心一言 等
- EmbeddingModel(嵌入):OpenAI、Voyage、BGE、Cohere 等
- ImageModel(图像生成):DALL-E、Stable Diffusion 等
四、AI Services(核心推荐模式)
AI Services 是 LangChain4j 最具特色的功能。通过声明式接口即可调用 LLM,框架自动生成代理实现:
java
// 定义接口
interface Assistant {
String chat(String userMessage);
}
// 创建代理实例
Assistant assistant = AiServices.create(Assistant.class, model);
String answer = assistant.chat("解释一下 RAG");支持的能力:
- @SystemMessage 定义系统提示词
- @UserMessage 定义用户消息模板
- @Tool 注解定义可调用工具
- @MemoryId 支持多会话记忆隔离
- 自动序列化方法参数和返回值(支持 POJO)
五、Tool Calling
让 LLM 能够调用外部工具(API、数据库、函数等):
java
class OrderTools {
@Tool("根据订单号查询订单状态")
public String getOrderStatus(@P("订单号") String orderId) {
// 实际查询逻辑
return "订单 " + orderId + " 状态:已发货";
}
}
Assistant assistant = AiServices.builder(Assistant.class)
.chatModel(model)
.tools(new OrderTools())
.build();LLM 会自动判断何时需要调用工具,框架负责工具执行的编排。
六、RAG 支持
检索增强生成(RAG)是 LangChain4j 的一等公民:
java
// 1. 文档加载
Document document = FileSystemDocumentLoader.loadDocument(path);
// 2. 文档切分
List<TextSegment> segments = DocumentSplitter.split(document);
// 3. 向量化存储
EmbeddingStore<TextSegment> store = new InMemoryEmbeddingStore<>();
embeddingModel.embedAll(segments).forEach(store::add);
// 4. 检索 + 生成
ContentRetriever retriever = EmbeddingStoreContentRetriever.builder()
.embeddingStore(store)
.embeddingModel(embeddingModel)
.build();
AiServices.create(Assistant.class, model, retriever);支持的 Embedding 存储:Pinecone、Weaviate、Elasticsearch、Milvus、Redis、PgVector 等 30+ 种。
七、Spring Boot 集成
xml
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai-spring-boot-starter</artifactId>
<version>1.14.0-beta24</version>
</dependency>yaml
langchain4j:
open-ai:
api-key: ${OPENAI_API_KEY}
model-name: gpt-4o-miniSpring Boot 环境下,ChatModel、EmbeddingModel 等 Bean 自动配置,直接 @Autowired 即可使用。
八、与 Google ADK 的集成
2025 年 9 月,Google ADK for Java v0.2.0 正式集成 LangChain4j,开发者可在 ADK 中通过 LangChain4j 接入第三方模型(Ollama、Docker Model Runner 等)。参见 框架 Google ADK。
- 框架 AI框架选型对比 — 各框架差异与选型指南
九、适用场景
- 智能客服 / 企业知识库问答
- 代码审查助手 / SQL 生成
- 订单/工单智能助手
- 基于 Spring Boot 的 AI 后端服务