3小时从零开始!Java程序员秒懂大模型开发,内含收藏宝典
本文以LangChain4j和Spring AI框架为例,指导Java开发者3小时内从零构建AI智能体。内容涵盖环境准备、项目创建、Agent编写、外部工具调用、任务执行Agent构建及记忆功能应用等关键步骤,提供详细代码示例和测试方法。通过学习,开发者可掌握用Java实现对话、查询、任务执行等核心功能,为AI开发打开新大门。文章强调框架成熟,无需Python基础,且所有代码经过验证,环境配置详细,适合小白和程序员快速上手。
2026 年,AI 智能体开发不再是 Python 的专利。LangChain4j、Spring AI 等框架已经成熟,Java 开发者也能快速构建 AI 智能体。

这个教程里的所有代码都经过验证,依赖版本明确,环境配置详细,还附带测试验证步骤。
学完后你能:
- 用 Java 编写 AI 智能体
- 让 Agent 调用外部工具
- 实现对话、查询、执行任务
一、环境准备
1.1 必需环境
# Java 版本(要求 17+)java -version# Maven 版本(要求 3.6+)mvn -version
1.2 API Key 准备
本教程使用 OpenAI API,也可替换为其他模型。
获取 OpenAI API Key:
- 访问 https://platform.openai.com/api-keys[1]
- 创建 API Key
- 保存 Key(格式:
sk-xxxxxxxx)
国内替代方案:
- 通义千问:https://dashscope.console.aliyun.com/[2]
- 文心一言:https://cloud.baidu.com/product/wenxinworkshop[3]
- Kimi:https://platform.moonshot.cn/[4]
二、创建项目
2.1 初始化 Maven 项目
# 创建项目目录mkdir java-agent-tutorialcd java-agent-tutorial# 初始化 Maven 项目mvn archetype:generate \ -DgroupId=com.example \ -DartifactId=java-agent-tutorial \ -DarchetypeArtifactId=maven-archetype-quickstart \ -DarchetypeVersion=1.4 \ -DinteractiveMode=false
2.2 配置 pom.xml
完整的 pom.xml 配置:
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>java-agent-tutorial</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <langchain4j.version>0.35.0</langchain4j.version> </properties> <dependencies> <!-- LangChain4j 核心依赖 --> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j</artifactId> <version>${langchain4j.version}</version> </dependency> <!-- OpenAI 集成 --> <dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-open-ai</artifactId> <version>${langchain4j.version}</version> </dependency> <!-- 日志 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>2.0.9</version> </dependency> <!-- JUnit 测试 --> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> <version>5.10.0</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <source>17</source> <target>17</target> </configuration> </plugin> </plugins> </build></project>
验证依赖下载:
mvn dependency:resolve
看到 BUILD SUCCESS 即可继续。
三、第一个 Agent:Hello World
3.1 编写第一个 Agent
src/main/java/com/example/HelloAgent.java:
package com.example;import dev.langchain4j.model.chat.ChatLanguageModel;import dev.langchain4j.model.openai.OpenAiChatModel;import dev.langchain4j.service.AiServices;importstatic dev.langchain4j.model.openai.OpenAiChatModelName.GPT_3_5_TURBO;/** * 第一个 Agent 示例:简单的对话助手 */public class HelloAgent { // 定义 Agent 接口 interfaceAssistant { String chat(String userMessage); } public static void main(String[] args) { // 1. 创建聊天模型 ChatLanguage Model model= OpenAiChatModel.builder() .apiKey("OPENAI_API_KEY") .modelName("OPENAI_MODEL_NAME") .build(); // 2. 创建 AI 服务 Assistant assistant = AiServices.builder(Assistant.class) .chatLanguageModel(model) .build(); // 3. 与 Agent 对话 Stringresponse= assistant.chat("你好,请用一句话介绍你自己"); System.out.println("Agent: " + response); }}
3.2 运行测试
# 编译mvn clean compile# 运行mvn exec:java -Dexec.mainClass="com.example.HelloAgent"
预期输出:

四、让 Agent 调用工具
Agent 的核心能力是调用工具。LangChain4j 通过 @Tool 注解实现这一功能。
4.1 创建天气查询工具
src/main/java/com/example/WeatherTool.java:
package com.example;import dev.langchain4j.agent.tool.Tool;/** * 天气查询工具 * 模拟天气 API 调用 */publicclassWeatherTool { @Tool("查询指定城市的天气") public String getWeather(String city) { // 实际项目中调用天气 API // 这里模拟返回 returnswitch (city.toLowerCase()) { case"北京" -> "北京,晴,温度:25°C,湿度:40%"; case"上海" -> "上海,小雨,温度:22°C,湿度:70%"; case"广州" -> "广州,多云,温度:28°C,湿度:60%"; case"深圳" -> "深圳,晴,温度:29°C,湿度:55%"; default -> city + ",天气数据暂不可用"; }; }}
4.2 创建计算器工具
src/main/java/com/example/CalculatorTool.java:
package com.example;import dev.langchain4j.agent.tool.Tool;/** * 计算器工具 */publicclassCalculatorTool { @Tool("两个数相加") publicdoubleadd(double a, double b) { return a + b; } @Tool("两个数相减") publicdoublesubtract(double a, double b) { return a - b; } @Tool("两个数相乘") publicdoublemultiply(double a, double b) { return a * b; } @Tool("两个数相除") publicdoubledivide(double a, double b) { if (b == 0) { return Double.NaN; } return a / b; }}
4.3 集成工具到 Agent
src/main/java/com/example/ToolAgent.java:
package com.example;import dev.langchain4j.model.chat.ChatLanguageModel;import dev.langchain4j.model.openai.OpenAiChatModel;import dev.langchain4j.service.AiServices;importstatic dev.langchain4j.model.openai.OpenAiChatModelName.GPT_3_5_TURBO;/** * 带工具的 Agent 示例 */publicclassToolAgent { // 定义 Agent 接口 interfaceAssistant { String chat(String userMessage); } publicstaticvoidmain(String[] args) { // 1. 创建聊天模型 ChatLanguage Model model=OpenAiChatModel.builder() .build(); // 2. 创建工具实例 WeatherTool weatherTool= new WeatherTool(); CalculatorTool calculatorTool= new CalculatorTool(); // 3. 创建 AI 服务(注册工具) Assistant assistant= AiServices.builder(Assistant.class) .chatLanguageModel(model) .tools(weatherTool, calculatorTool) .build(); // 4. 测试对话 System.out.println("=== 测试天气查询 ==="); String response1= assistant.chat("北京今天天气怎么样?"); System.out.println("Agent: " + response1); System.out.println("\n=== 测试计算 ==="); String response2= assistant.chat("123 乘以 456 等于多少?"); System.out.println("Agent: " + response2); System.out.println("\n=== 测试混合任务 ==="); String response3= assistant.chat("上海和广州的天气哪个更好?"); System.out.println("Agent: " + response3); }}
4.4 运行测试
mvn exec:java -Dexec.mainClass="com.example.ToolAgent"
预期输出:
=== 测试天气查询 ===Agent: 北京今天天气晴朗,温度 25°C,湿度 40%,适合外出活动。=== 测试计算 ===Agent: 123 乘以 456 等于 56088。=== 测试混合任务 ===Agent: 根据天气数据:- 上海:小雨,22°C,湿度 70%- 广州:多云,28°C,湿度 60%广州的天气更好,温度适宜且没有降雨。
到这里,你已经掌握了如何让 Agent 调用工具。接下来我们构建一个更实用的任务执行 Agent。
五、实战:构建任务执行 Agent
5.1 创建文件操作工具
src/main/java/com/example/FileTool.java:
package com.example;import dev.langchain4j.agent.tool.Tool;import java.io.IOException;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import java.util.List;import java.util.stream.Collectors;/** * 文件操作工具 */publicclassFileTool { privatefinalStringworkingDir= System.getProperty("java.io.tmpdir"); @Tool("读取文件内容") public String readFile(String filename) { try { Pathpath= Paths.get(workingDir, filename); return Files.readString(path); } catch (IOException e) { return"错误:无法读取文件 - " + e.getMessage(); } } @Tool("写入文件内容") public String writeFile(String filename, String content) { try { Pathpath= Paths.get(workingDir, filename); Files.writeString(path, content); return"成功:文件已写入 " + path.toAbsolutePath(); } catch (IOException e) { return"错误:无法写入文件 - " + e.getMessage(); } } @Tool("列出目录中的文件") public String listFiles() { try { Pathpath= Paths.get(workingDir); return Files.list(path) .filter(Files::isRegularFile) .map(p -> p.getFileName().toString()) .limit(20) .collect(Collectors.joining("\n")); } catch (IOException e) { return"错误:无法列出文件 - " + e.getMessage(); } }}
5.2 创建任务执行 Agent
src/main/java/com/example/TaskAgent.java:
package com.example;import dev.langchain4j.model.chat.ChatLanguageModel;import dev.langchain4j.model.openai.OpenAiChatModel;import dev.langchain4j.service.AiServices;import static dev.langchain4j.model.openai.OpenAiChatModelName.GPT_3_5_TURBO;/** * 任务执行 Agent */public class TaskAgent { interface Assistant { String chat(String userMessage); } publicstaticvoidmain(String[] args) { // 1. 创建模型 .build(); // 2. 创建工具 FileTool fileTool= new FileTool(); CalculatorTool calculatorTool= new CalculatorTool(); // 3. 创建 Agent Assistant assistant= AiServices.builder(Assistant.class) .chatLanguageModel(model) .tools(fileTool, calculatorTool) .build(); // 4. 测试任务 System.out.println("=== 测试 1:创建文件 ==="); String response1= assistant.chat( "创建一个文件 test.txt,内容是:Hello, AI Agent!" ); System.out.println("Agent: " + response1); System.out.println("\n=== 测试 2:读取文件 ==="); String response2= assistant.chat("读取 test.txt 的内容"); System.out.println("Agent: " + response2); System.out.println("\n=== 测试 3:计算并保存 ==="); String response3= assistant.chat( "计算 256 乘以 128 的结果,保存到 result.txt" ); System.out.println("Agent: " + response3); }}
5.3 运行测试
mvn exec:java -Dexec.mainClass="com.example.TaskAgent"
预期输出:
=== 测试 1:创建文件 ===Agent: 已成功创建文件 test.txt,内容为:Hello, AI Agent!=== 测试 2:读取文件 ===Agent: test.txt 的内容是:Hello, AI Agent!=== 测试 3:计算并保存 ===Agent: 256 乘以 128 等于 32768,结果已保存到 result.txt
验证生成的文件:
# 查看临时目录ls -la /tmp/test.txt /tmp/result.txt# 查看内容cat /tmp/test.txtcat /tmp/result.txt
六、使用记忆功能
前面的 Agent 每次对话都是独立的,无法记住之前的内容。加上记忆功能后,Agent 就能进行多轮对话。
6.1 创建带记忆的 Agent
src/main/java/com/example/MemoryAgent.java:
package com.example;import dev.langchain4j.memory.ChatMemory;import dev.langchain4j.memory.chat.MessageWindowChatMemory;import dev.langchain4j.model.chat.ChatLanguageModel;import dev.langchain4j.model.openai.OpenAiChatModel;import dev.langchain4j.service.AiServices;importstatic dev.langchain4j.model.openai.OpenAiChatModelName.GPT_3_5_TURBO;/** * 带记忆功能的 Agent */publicclassMemoryAgent { interfaceAssistant { String chat(String userMessage); } publicstaticvoidmain(String[] args) { // 1. 创建模型 ChatLanguageModelmodel= OpenAiChatModel.builder() .apiKey(System.getenv("OPENAI_API_KEY")) .modelName(GPT_3_5_TURBO) .build(); // 2. 创建聊天记忆(保留最近 10 条消息) ChatMemorychatMemory= MessageWindowChatMemory.withMaxMessages(10); // 3. 创建 Agent(启用记忆) Assistantassistant= AiServices.builder(Assistant.class) .chatLanguageModel(model) .chatMemory(chatMemory) .build(); // 4. 多轮对话测试 System.out.println("=== 第一轮 ==="); Stringresponse1= assistant.chat("我叫小明,今年 25 岁"); System.out.println("Agent: " + response1); System.out.println("\n=== 第二轮 ==="); Stringresponse2= assistant.chat("我喜欢编程"); System.out.println("Agent: " + response2); System.out.println("\n=== 第三轮(测试记忆)==="); Stringresponse3= assistant.chat("我叫什么名字?今年多大?"); System.out.println("Agent: " + response3); }}
6.2 运行测试
mvn exec:java -Dexec.mainClass="com.example.MemoryAgent"
预期输出:
=== 第一轮 ===Agent: 你好小明,很高兴认识你!25 岁是个很好的年纪。=== 第二轮 ===Agent: 编程是个很棒的爱好!你平时喜欢用什么编程语言?=== 第三轮(测试记忆)===Agent: 你叫小明,今年 25 岁。
七、常见问题
7.1 API Key 无效
错误信息:
401 Unauthorized - Invalid API key
解决方案:
检查环境变量是否正确设置:
echo $OPENAI_API_KEY
确保没有多余空格,正确格式:
export OPENAI_API_KEY=sk-xxx
7.2 依赖下载失败
错误信息:
Could not resolve dependencies
解决方案:
清理 Maven 缓存后重新下载:
rm -rf ~/.m2/repository/dev/langchain4jmvn clean dependency:resolve -U
7.3 工具调用失败
错误信息:
Tool execution failed
解决方案:
- 检查
@Tool注解是否正确 - 确保工具方法是
public的 - 检查参数类型是否匹配
7.4 使用国内模型
替换为通义千问:
<!-- pom.xml 添加依赖 --><dependency> <groupId>dev.langchain4j</groupId> <artifactId>langchain4j-dashscope</artifactId> <version>0.35.0</version></dependency>
``````plaintext
// Java 代码替换模型import dev.langchain4j.model.dashscope.QwenChatModel;ChatLanguageModel model = QwenChatModel.builder() .apiKey(System.getenv("DASHSCOPE_API_KEY")) .modelName("qwen-plus") .build();
八、进阶学习
8.1 推荐资源
- LangChain4j 官方文档:https://docs.langchain4j.dev/[5]
- GitHub 仓库:https://github.com/langchain4j/langchain4j[6]
- 示例项目:https://github.com/langchain4j/langchain4j-examples[7]
8.2 进阶主题
RAG(检索增强生成)
- 连接向量数据库
- 实现知识库问答
多 Agent 协作
- 多个 Agent 分工合作
- 实现复杂任务
Agent 持久化
- 保存对话历史
- 跨会话记忆
部署上线
- 打包成 Docker 镜像
- 部署到云服务器
总结
Java 开发 AI 智能体的门槛已经很低,LangChain4j 等框架让 Java 开发者能快速上手。关键是动手实践。
建议的学习路径:
- 跑通本教程所有示例
- 修改工具类,接入真实 API
- 构建自己的 Agent 应用
遇到问题时:
- 检查 Java 版本(17+)
- 确认 API Key 有效
- 查看 LangChain4j 官方文档
最后
近期科技圈传来重磅消息:行业巨头英特尔宣布大规模裁员2万人,传统技术岗位持续萎缩的同时,另一番景象却在AI领域上演——AI相关技术岗正开启“疯狂扩招”模式!据行业招聘数据显示,具备3-5年大模型相关经验的开发者,在大厂就能拿到50K×20薪的高薪待遇,薪资差距肉眼可见!

业内资深HR预判:不出1年,“具备AI项目实战经验”将正式成为技术岗投递的硬性门槛。在行业迭代加速的当下,“温水煮青蛙”式的等待只会让自己逐渐被淘汰,与其被动应对,不如主动出击,抢先掌握AI大模型核心原理+落地应用技术+项目实操经验,借行业风口实现职业翻盘!
深知技术人入门大模型时容易走弯路,我特意整理了一套全网最全最细的大模型零基础学习礼包,涵盖入门思维导图、经典书籍手册、从入门到进阶的实战视频、可直接运行的项目源码等核心内容。这份资料无需付费,免费分享给所有想入局AI大模型的朋友!

👇👇扫码免费领取全部内容👇👇

部分资料展示
1、 AI大模型学习路线图

2、 全套AI大模型应用开发视频教程
从入门到进阶这里都有,跟着老师学习事半功倍。

3、 大模型学习书籍&文档

4、 AI大模型最新行业报告
2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

5、大模型大厂面试真题
整理了百度、阿里、字节等企业近三年的AI大模型岗位面试题,涵盖基础理论、技术实操、项目经验等维度,每道题都配有详细解析和答题思路,帮你针对性提升面试竞争力。


6、大模型项目实战&配套源码
学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
- 👇👇扫码免费领取全部内容👇👇

这些资料真的有用吗?
这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。


这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

261



被折叠的 条评论
为什么被折叠?



