找回密码
 立即注册
首页 业界区 安全 AI Agent 开发实战:用LangChain4j构建你的第一个Java智 ...

AI Agent 开发实战:用LangChain4j构建你的第一个Java智能体

咚獭 昨天 16:44
前言

AI Agent(智能体)是2026年最热门的技术方向之一。不同于传统的问答机器人,Agent能够自主规划任务、调用工具、记住上下文,真正实现"自主决策"。本文用 LangChain4j 带你从零构建一个 Java 智能体。
一、什么是 AI Agent?

AI Agent 是能够自主决策并执行任务的 AI 系统,核心能力:

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

LangChain4j 让 Java 开发者也能轻松构建 AI Agent。核心要点:

  • @Tool 注解定义工具
  • AiServices 构建 Agent 接口
  • ChatMemory 实现多轮记忆
  • 大模型会自动决定何时调用工具

觉得有帮助请点赞收藏!有问题欢迎评论区交流
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册