2026年AI智能体开发不再是Python的专属领域。本文将带你通过3小时的时间利用LangChain4j、Spring AI等框架从零开始实现你的第一个Java AI智能体。内容涵盖环境准备、项目创建、Hello World示例、工具调用、任务执行Agent构建、记忆功能实现以及常见问题解答适合所有希望了解AI智能体开发的Java开发者。这个教程里的所有代码都经过验证依赖版本明确环境配置详细还附带测试验证步骤。学完后你能用 Java 编写 AI 智能体让 Agent 调用外部工具实现对话、查询、执行任务一、环境准备1.1 必需环境# Java 版本要求 17 java -version # Maven 版本要求 3.6 mvn -version1.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]Kimihttps://platform.moonshot.cn/[4]二、创建项目2.1 初始化 Maven 项目# 创建项目目录 mkdir java-agent-tutorial cd java-agent-tutorial # 初始化 Maven 项目 mvn archetype:generate / -DgroupIdcom.example / -DartifactIdjava-agent-tutorial / -DarchetypeArtifactIdmaven-archetype-quickstart / -DarchetypeVersion1.4 / -DinteractiveModefalse2.2 配置 pom.xml完整的pom.xml配置?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd modelVersion4.0.0/modelVersion groupIdcom.example/groupId artifactIdjava-agent-tutorial/artifactId version1.0-SNAPSHOT/version packagingjar/packaging properties maven.compiler.source17/maven.compiler.source maven.compiler.target17/maven.compiler.target project.build.sourceEncodingUTF-8/project.build.sourceEncoding langchain4j.version0.35.0/langchain4j.version /properties dependencies !-- LangChain4j 核心依赖 -- dependency groupIddev.langchain4j/groupId artifactIdlangchain4j/artifactId version${langchain4j.version}/version /dependency !-- OpenAI 集成 -- dependency groupIddev.langchain4j/groupId artifactIdlangchain4j-open-ai/artifactId version${langchain4j.version}/version /dependency !-- 日志 -- dependency groupIdorg.slf4j/groupId artifactIdslf4j-simple/artifactId version2.0.9/version /dependency !-- JUnit 测试 -- dependency groupIdorg.junit.jupiter/groupId artifactIdjunit-jupiter/artifactId version5.10.0/version scopetest/scope /dependency /dependencies build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-compiler-plugin/artifactId version3.11.0/version configuration source17/source target17/target /configuration /plugin /plugins /build /project验证依赖下载mvn dependency:resolve看到 BUILD SUCCESS 即可继续。三、第一个 AgentHello World3.1 编写第一个 Agentsrc/main/java/com/example/HelloAgent.javapackage 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) .baseUrl(OPENAI_API_URL) .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.mainClasscom.example.HelloAgent预期输出四、让 Agent 调用工具Agent 的核心能力是调用工具。LangChain4j 通过Tool注解实现这一功能。4.1 创建天气查询工具src/main/java/com/example/WeatherTool.javapackage 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.javapackage 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 集成工具到 Agentsrc/main/java/com/example/ToolAgent.javapackage 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 modelOpenAiChatModel.builder() .apiKey(OPENAI_API_KEY) .modelName(OPENAI_MODEL_NAME) .baseUrl(OPENAI_API_URL) .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.mainClasscom.example.ToolAgent预期输出 测试天气查询 Agent: 北京今天天气晴朗温度 25°C湿度 40%适合外出活动。 测试计算 Agent: 123 乘以 456 等于 56088。 测试混合任务 Agent: 根据天气数据 - 上海小雨22°C湿度 70% - 广州多云28°C湿度 60% 广州的天气更好温度适宜且没有降雨。到这里你已经掌握了如何让 Agent 调用工具。接下来我们构建一个更实用的任务执行 Agent。五、实战构建任务执行 Agent5.1 创建文件操作工具src/main/java/com/example/FileTool.javapackage 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 创建任务执行 Agentsrc/main/java/com/example/TaskAgent.javapackage 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. 创建模型 ChatLanguage Model model OpenAiChatModel.builder() .apiKey(OPENAI_API_KEY) .modelName(OPENAI_MODEL_NAME) .baseUrl(OPENAI_API_URL) .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.mainClasscom.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.txt cat /tmp/result.txt六、使用记忆功能前面的 Agent 每次对话都是独立的无法记住之前的内容。加上记忆功能后Agent 就能进行多轮对话。6.1 创建带记忆的 Agentsrc/main/java/com/example/MemoryAgent.javapackage 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.mainClasscom.example.MemoryAgent预期输出 第一轮 Agent: 你好小明很高兴认识你25 岁是个很好的年纪。 第二轮 Agent: 编程是个很棒的爱好你平时喜欢用什么编程语言 第三轮测试记忆 Agent: 你叫小明今年 25 岁。七、常见问题7.1 API Key 无效错误信息401 Unauthorized - Invalid API key解决方案检查环境变量是否正确设置echo $OPENAI_API_KEY确保没有多余空格正确格式export OPENAI_API_KEYsk-xxx7.2 依赖下载失败错误信息Could not resolve dependencies解决方案清理 Maven 缓存后重新下载rm -rf ~/.m2/repository/dev/langchain4j mvn clean dependency:resolve -U7.3 工具调用失败错误信息Tool execution failed解决方案检查Tool注解是否正确确保工具方法是public的检查参数类型是否匹配7.4 使用国内模型替换为通义千问!-- pom.xml 添加依赖 -- dependency groupIddev.langchain4j/groupId artifactIdlangchain4j-dashscope/artifactId version0.35.0/version /dependency// 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 官方文档最后如果说程序员已经是高薪职业那么干AI的程序员就是高薪中的高薪。现在的市场已经用数据给程序员指明了方向学AI大模型就是冲刺高薪的最优解看着身边越来越多的同行转型大模型、拿到高薪offer很多人心里都动了心但真正的难题来了零基础小白不知道从哪入门有基础的程序员找不到系统学习路径实战项目练手无门面试不知道考什么别慌今天就给大家整理了一份【2026年最新版】AI大模型免费学习资源包覆盖从入门到实战、从理论到面试、从基础到进阶的全流程所有资料均已整理归档无冗余、无套路免费分享给每一位想抓住AI风口的程序员和小白扫码免费领取全部内容1、大模型系统化学习路线2、大模型学习书籍文档3、AI大模型最新行业报告4、大模型项目实战配套源码5、大模型大厂面试真题四阶段精细化学习规划附时间节点可直接照做结合上述资源给大家整理了一份可直接落地的四阶段学习规划总时长约2个月小白可循序渐进程序员可根据自身基础调整节奏高效掌握大模型核心能力快速实现从“入门”到“能落地、能面试”的跨越。第一阶段10天初阶应用该阶段让大家对大模型 AI有一个最前沿的认识对大模型 AI 的理解超过 95% 的人可以在相关讨论时发表高级、不跟风、又接地气的见解别人只会和 AI 聊天而你能调教 AI并能用代码将大模型和业务衔接。大模型 AI 能干什么大模型是怎样获得「智能」的用好 AI 的核心心法大模型应用业务架构大模型应用技术架构代码示例向 GPT-3.5 灌入新知识提示工程的意义和核心思想Prompt 典型构成指令调优方法论思维链和思维树Prompt 攻击和防范…第二阶段30天高阶应用该阶段我们正式进入大模型 AI 进阶实战学习学会构造私有知识库扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架抓住最新的技术进展适合 Python 和 JavaScript 程序员。为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示Embeddings向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署…第三阶段30天模型训练恭喜你如果学到这里你基本可以找到一份大模型 AI相关的工作自己也能训练 GPT 了通过微调训练自己的垂直大模型能独立训练开源多模态大模型掌握更多技术方案。到此为止大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗为什么要做 RAG什么是模型什么是模型训练求解器 损失函数简介小实验2手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建…第四阶段20天商业闭环对全球大模型从性能、吞吐量、成本等方面有一定的认知可以在云端和本地等多种环境下部署大模型找到适合自己的项目/创业方向做一名被 AI 武装的产品经理。硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身基于阿里云 PAI 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…扫码免费领取全部内容6、这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】https://mp.weixin.qq.com/s/2P64VRSHoOz31E2oAT_ZpQ
Java小白也能玩转AI:3小时从0到1打造你的第一个智能体(收藏版)
发布时间:2026/7/2 11:31:13
2026年AI智能体开发不再是Python的专属领域。本文将带你通过3小时的时间利用LangChain4j、Spring AI等框架从零开始实现你的第一个Java AI智能体。内容涵盖环境准备、项目创建、Hello World示例、工具调用、任务执行Agent构建、记忆功能实现以及常见问题解答适合所有希望了解AI智能体开发的Java开发者。这个教程里的所有代码都经过验证依赖版本明确环境配置详细还附带测试验证步骤。学完后你能用 Java 编写 AI 智能体让 Agent 调用外部工具实现对话、查询、执行任务一、环境准备1.1 必需环境# Java 版本要求 17 java -version # Maven 版本要求 3.6 mvn -version1.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]Kimihttps://platform.moonshot.cn/[4]二、创建项目2.1 初始化 Maven 项目# 创建项目目录 mkdir java-agent-tutorial cd java-agent-tutorial # 初始化 Maven 项目 mvn archetype:generate / -DgroupIdcom.example / -DartifactIdjava-agent-tutorial / -DarchetypeArtifactIdmaven-archetype-quickstart / -DarchetypeVersion1.4 / -DinteractiveModefalse2.2 配置 pom.xml完整的pom.xml配置?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd modelVersion4.0.0/modelVersion groupIdcom.example/groupId artifactIdjava-agent-tutorial/artifactId version1.0-SNAPSHOT/version packagingjar/packaging properties maven.compiler.source17/maven.compiler.source maven.compiler.target17/maven.compiler.target project.build.sourceEncodingUTF-8/project.build.sourceEncoding langchain4j.version0.35.0/langchain4j.version /properties dependencies !-- LangChain4j 核心依赖 -- dependency groupIddev.langchain4j/groupId artifactIdlangchain4j/artifactId version${langchain4j.version}/version /dependency !-- OpenAI 集成 -- dependency groupIddev.langchain4j/groupId artifactIdlangchain4j-open-ai/artifactId version${langchain4j.version}/version /dependency !-- 日志 -- dependency groupIdorg.slf4j/groupId artifactIdslf4j-simple/artifactId version2.0.9/version /dependency !-- JUnit 测试 -- dependency groupIdorg.junit.jupiter/groupId artifactIdjunit-jupiter/artifactId version5.10.0/version scopetest/scope /dependency /dependencies build plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-compiler-plugin/artifactId version3.11.0/version configuration source17/source target17/target /configuration /plugin /plugins /build /project验证依赖下载mvn dependency:resolve看到 BUILD SUCCESS 即可继续。三、第一个 AgentHello World3.1 编写第一个 Agentsrc/main/java/com/example/HelloAgent.javapackage 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) .baseUrl(OPENAI_API_URL) .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.mainClasscom.example.HelloAgent预期输出四、让 Agent 调用工具Agent 的核心能力是调用工具。LangChain4j 通过Tool注解实现这一功能。4.1 创建天气查询工具src/main/java/com/example/WeatherTool.javapackage 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.javapackage 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 集成工具到 Agentsrc/main/java/com/example/ToolAgent.javapackage 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 modelOpenAiChatModel.builder() .apiKey(OPENAI_API_KEY) .modelName(OPENAI_MODEL_NAME) .baseUrl(OPENAI_API_URL) .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.mainClasscom.example.ToolAgent预期输出 测试天气查询 Agent: 北京今天天气晴朗温度 25°C湿度 40%适合外出活动。 测试计算 Agent: 123 乘以 456 等于 56088。 测试混合任务 Agent: 根据天气数据 - 上海小雨22°C湿度 70% - 广州多云28°C湿度 60% 广州的天气更好温度适宜且没有降雨。到这里你已经掌握了如何让 Agent 调用工具。接下来我们构建一个更实用的任务执行 Agent。五、实战构建任务执行 Agent5.1 创建文件操作工具src/main/java/com/example/FileTool.javapackage 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 创建任务执行 Agentsrc/main/java/com/example/TaskAgent.javapackage 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. 创建模型 ChatLanguage Model model OpenAiChatModel.builder() .apiKey(OPENAI_API_KEY) .modelName(OPENAI_MODEL_NAME) .baseUrl(OPENAI_API_URL) .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.mainClasscom.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.txt cat /tmp/result.txt六、使用记忆功能前面的 Agent 每次对话都是独立的无法记住之前的内容。加上记忆功能后Agent 就能进行多轮对话。6.1 创建带记忆的 Agentsrc/main/java/com/example/MemoryAgent.javapackage 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.mainClasscom.example.MemoryAgent预期输出 第一轮 Agent: 你好小明很高兴认识你25 岁是个很好的年纪。 第二轮 Agent: 编程是个很棒的爱好你平时喜欢用什么编程语言 第三轮测试记忆 Agent: 你叫小明今年 25 岁。七、常见问题7.1 API Key 无效错误信息401 Unauthorized - Invalid API key解决方案检查环境变量是否正确设置echo $OPENAI_API_KEY确保没有多余空格正确格式export OPENAI_API_KEYsk-xxx7.2 依赖下载失败错误信息Could not resolve dependencies解决方案清理 Maven 缓存后重新下载rm -rf ~/.m2/repository/dev/langchain4j mvn clean dependency:resolve -U7.3 工具调用失败错误信息Tool execution failed解决方案检查Tool注解是否正确确保工具方法是public的检查参数类型是否匹配7.4 使用国内模型替换为通义千问!-- pom.xml 添加依赖 -- dependency groupIddev.langchain4j/groupId artifactIdlangchain4j-dashscope/artifactId version0.35.0/version /dependency// 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 官方文档最后如果说程序员已经是高薪职业那么干AI的程序员就是高薪中的高薪。现在的市场已经用数据给程序员指明了方向学AI大模型就是冲刺高薪的最优解看着身边越来越多的同行转型大模型、拿到高薪offer很多人心里都动了心但真正的难题来了零基础小白不知道从哪入门有基础的程序员找不到系统学习路径实战项目练手无门面试不知道考什么别慌今天就给大家整理了一份【2026年最新版】AI大模型免费学习资源包覆盖从入门到实战、从理论到面试、从基础到进阶的全流程所有资料均已整理归档无冗余、无套路免费分享给每一位想抓住AI风口的程序员和小白扫码免费领取全部内容1、大模型系统化学习路线2、大模型学习书籍文档3、AI大模型最新行业报告4、大模型项目实战配套源码5、大模型大厂面试真题四阶段精细化学习规划附时间节点可直接照做结合上述资源给大家整理了一份可直接落地的四阶段学习规划总时长约2个月小白可循序渐进程序员可根据自身基础调整节奏高效掌握大模型核心能力快速实现从“入门”到“能落地、能面试”的跨越。第一阶段10天初阶应用该阶段让大家对大模型 AI有一个最前沿的认识对大模型 AI 的理解超过 95% 的人可以在相关讨论时发表高级、不跟风、又接地气的见解别人只会和 AI 聊天而你能调教 AI并能用代码将大模型和业务衔接。大模型 AI 能干什么大模型是怎样获得「智能」的用好 AI 的核心心法大模型应用业务架构大模型应用技术架构代码示例向 GPT-3.5 灌入新知识提示工程的意义和核心思想Prompt 典型构成指令调优方法论思维链和思维树Prompt 攻击和防范…第二阶段30天高阶应用该阶段我们正式进入大模型 AI 进阶实战学习学会构造私有知识库扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架抓住最新的技术进展适合 Python 和 JavaScript 程序员。为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示Embeddings向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署…第三阶段30天模型训练恭喜你如果学到这里你基本可以找到一份大模型 AI相关的工作自己也能训练 GPT 了通过微调训练自己的垂直大模型能独立训练开源多模态大模型掌握更多技术方案。到此为止大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗为什么要做 RAG什么是模型什么是模型训练求解器 损失函数简介小实验2手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建…第四阶段20天商业闭环对全球大模型从性能、吞吐量、成本等方面有一定的认知可以在云端和本地等多种环境下部署大模型找到适合自己的项目/创业方向做一名被 AI 武装的产品经理。硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身基于阿里云 PAI 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…扫码免费领取全部内容6、这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】https://mp.weixin.qq.com/s/2P64VRSHoOz31E2oAT_ZpQ