AI Agent 开发实战:用LangChain4j构建你的第一个Java智能体
·
一、什么是 AI Agent?
AI Agent 是能够自主决策并执行任务的 AI 系统,核心能力:
- 理解意图:解析用户自然语言
- 规划任务:分解复杂任务为多个步骤
- 工具调用:调用外部 API 获取信息或执行操作
- 记忆能力:记住多轮对话上下文
二、环境准备
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
<version>0.36.0</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>0.36.0</version>
</dependency>
三、定义工具
public class WeatherTool {
@Tool("查询指定城市的当前天气")
public String getWeather(String city) {
// 模拟天气查询
return city + "今天晴,气温25度,空气质量优";
}
}
public class CalculatorTool {
@Tool("计算数学表达式")
public double calculate(String expression) {
return new ScriptEngineManager()
.getEngineByName("js")
.eval(expression);
}
}
四、构建 Agent
// 配置大模型
ChatLanguageModel model = OpenAiChatModel.builder()
.apiKey(System.getenv("OPENAI_API_KEY"))
.modelName("gpt-4o")
.build();
// 配置记忆
ChatMemory memory = MessageWindowChatMemory.builder()
.maxMessages(10)
.build();
// 构建 Agent
interface Assistant {
String chat(String userMessage);
}
Assistant agent = AiServices.builder(Assistant.class)
.chatLanguageModel(model)
.chatMemory(memory)
.tools(new WeatherTool(), new CalculatorTool())
.systemMessage("你是一个智能助手,可以查询天气和进行计算。"
+ "在回答问题前,先思考是否需要调用工具。")
.build();
五、运行 Agent
// 测试对话
String response1 = agent.chat("北京今天天气怎么样?");
System.out.println(response1);
// 输出:我来为您查询北京的天气。北京今天晴,气温25度,空气质量优。
String response2 = agent.chat("那上海呢?");
System.out.println(response2);
// 输出:上海今天晴,气温28度,空气质量良。
String response3 = agent.chat("北京的气温比上海低多少度?");
System.out.println(response3);
// Agent会自动调用计算工具:28 - 25 = 3度
六、进阶:结构化输出
record TaskPlan(String goal, List<String> steps, String expectedResult) {}
interface Planner {
@SystemMessage("你是一个任务规划专家,将复杂任务分解为步骤")
TaskPlan plan(String userGoal);
}
Planner planner = AiServices.builder(Planner.class)
.chatLanguageModel(model)
.build();
TaskPlan plan = planner.plan("开发一个用户登录功能");
// 返回结构化的任务计划
总结
LangChain4j 让 Java 开发者也能轻松构建 AI Agent。核心要点:
- 用 @Tool 注解定义工具
更多推荐

所有评论(0)