spring aop maven SpringBoot 3.x 结合 LangChain4j 开发 AI Agent 实战,含 Maven 准备
本实战将从零开始,用 3.x + 快速开发一个具备工具调用能力的 AI Agent(不是单纯的聊天机器人,而是能调用工具完成实际任务的智能体),最终通过 HTTP 接口对外提供服务。
核心技术栈
3.2.5(JDK 17+)
0.32.0(Java 生态最成熟的 AI 集成框架)
AI 模型: GPT-3.5-turbo(新手首选,也可替换为本地 模型)
核心能力:AI Agent + 工具调用(计算器、天气查询)
一、前置准备
JDK 17+ 环境
Maven/ 构建工具
API Key(获取地址,没有可看文末替换本地 模型)
IDEA 开发工具

二、步骤 1:创建 项目,引入核心依赖
创建一个空白 项目,在 pom.xml 中添加 核心依赖 + Web 依赖:
xml
4.0.0
org.springframework.boot
spring-boot-starter-parent
3.2.5
com.example
langchain4j-agent-demo
0.0.1-SNAPSHOT
17
0.32.0
org.springframework.boot
spring-boot-starter-web
dev.langchain4j
langchain4j-spring-boot-starter
${langchain4j.version}
dev.langchain4j
langchain4j-open-ai
${langchain4j.version}
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-maven-plugin
三、步骤 2:配置 AI 模型参数
在 .yml 中配置 模型信息(替换为你的 API Key):
yaml
server:
port: 8080
# LangChain4j OpenAI 配置
langchain4j:
open-ai:
chat:
model-name: gpt-3.5-turbo # 模型名称
api-key: sk-xxxxxxxxxxxx # 你的 OpenAI API Key
temperature: 0.7 # 随机性(0=严谨,1=灵活)
四、步骤 3:开发 AI Agent 核心(工具 + AI 服务)
AI Agent 的核心是工具调用:让 AI 能调用我们写的工具类完成实际任务(计算、查数据、操作数据库等)。
1. 编写 Agent 工具类
创建两个工具:计算器 + 模拟天气查询,用 @Tool 注解标记( 自动识别为 AI 可调用工具)。
工具 1:计算器工具
java
package com.example.agent.tool;
import dev.langchain4j.agent.tool.Tool;
import org.springframework.stereotype.Component;
/**
* AI Agent 计算器工具
*/
@Component
public class CalculatorTool {
// @Tool 标记:AI 可调用的方法
@Tool("计算两个数的和")
public int add(int a, int b) {
System.out.println("=== AI 调用了计算器工具:" + a + " + " + b);
return a + b;
}
@Tool("计算两个数的乘积")
public int multiply(int a, int b) {
System.out.println("=== AI 调用了计算器工具:" + a + " * " + b);
return a * b;
}
}
工具 2:天气查询工具
java
package com.example.agent.tool;
import dev.langchain4j.agent.tool.Tool;
import org.springframework.stereotype.Component;
/**
* AI Agent 天气查询工具(模拟)
*/
@Component
public class WeatherTool {
@Tool("查询指定城市的天气")
public String getWeather(String city) {
System.out.println("=== AI 调用了天气查询工具:查询城市:" + city);
// 模拟返回天气数据(实际可对接天气 API)
return city + "今天晴天,气温25℃,微风";
}
}
2. 定义 AI (核心)
用 @ 注解定义 AI 服务,自动绑定工具,无需手动实现接口:
java
package com.example.agent.service;
import dev.langchain4j.service.AiService;
import com.example.agent.tool.CalculatorTool;
import com.example.agent.tool.WeatherTool;
/**
* AI Agent 核心服务
* @AiService:自动生成实现类,tools 指定 AI 可调用的工具
*/
@AiService(tools = {CalculatorTool.class, WeatherTool.class})
public interface AiAgentService {
// AI 聊天方法(自动处理工具调用)
String chat(String userMessage);
}
五、步骤 4:编写 HTTP 接口(对外发布 Agent)
创建 ,将 AI Agent 暴露为 REST 接口,供前端 / 其他服务调用:
java
package com.example.agent.controller;
import com.example.agent.service.AiAgentService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* AI Agent 对外接口
*/
@RestController
@RequestMapping("/ai")
@RequiredArgsConstructor
public class AiAgentController {
// 注入 AI 服务
private final AiAgentService aiAgentService;
/**
* AI Agent 聊天接口
* @param message 用户提问
* @return AI 回答(自动调用工具)
*/
@GetMapping("/chat")
public String chat(@RequestParam String message) {
return aiAgentService.chat(message);
}
}

六、步骤 5:启动项目 & 实战测试
1. 启动 项目
运行主启动类,控制台打印启动成功即可。
2. 测试 AI Agent(3 个场景)
用浏览器 / /Curl 访问接口:
测试 1:普通聊天
请求:http://localhost:8080/ai/chat?message=你好,你是什么角色?
返回:你好!我是一个具备工具调用能力的AI Agent,可以帮你计算、查询天气哦~
测试 2:调用计算器工具
请求:http://localhost:8080/ai/chat?message=100加200再乘以2等于多少?
返回:100加200等于300,再乘以2等于600。
控制台日志:AI 自动调用了 add 和 工具!
测试 3:调用天气查询工具
请求:http://localhost:8080/ai/chat?message=北京今天天气怎么样?
返回:北京今天晴天,气温25℃,微风。
控制台日志:AI 自动调用了 工具!
七、扩展:替换为本地 模型(无 API Key)
如果没有 Key,可使用本地大模型(),零成本运行:
1. 本地安装
官网 下载安装,执行命令拉取模型:
ollama pull qwen:7b # 拉取通义千问7B本地模型
2. 替换依赖(移除 ,添加 )
xml
dev.langchain4j
langchain4j-ollama
${langchain4j.version}
3. 修改配置文件
yaml
langchain4j:
ollama:
chat:
model-name: qwen:7b # 本地模型名称
base-url: http://localhost:11434 # Ollama 默认地址
重启项目,功能完全一致,无需修改任何业务代码!
八、项目结构(清晰易懂)
langchain4j-agent-demo/
├── src/main/java/com/example/agent/
│ ├── Langchain4jAgentDemoApplication.java # 启动类
│ ├── controller/AiAgentController.java # HTTP 接口
│ ├── service/AiAgentService.java # AI 核心服务
│ └── tool/CalculatorTool.java、WeatherTool.java # 工具类
└── src/main/resources/application.yml # 配置文件
总结
核心简化: 通过 @ + @Tool 注解,让 Java 开发者零门槛开发 AI Agent;
Agent 本质:不是单纯聊天,而是大模型 + 工具调用,能完成实际业务任务;
无缝扩展:可快速对接数据库、API、第三方服务,打造企业级智能体;
部署简单: 项目可直接打包部署到服务器,对外发布 AI 服务。























