前言
AI Agent(智能体)是2026年最热门的技术方向之一。不同于传统的问答机器人,Agent能够自主规划任务、调用工具、记住上下文,真正实现"自主决策"。本文用 LangChain4j 带你从零构建一个 Java 智能体。
一、什么是 AI Agent?
AI Agent 是能够自主决策并执行任务的 AI 系统,核心能力:
- 理解意图:解析用户自然语言
- 规划任务:分解复杂任务为多个步骤
- 工具调用:调用外部 API 获取信息或执行操作
- 记忆能力:记住多轮对话上下文
二、环境准备
- <dependency>
- <groupId>dev.langchain4j</groupId>
- langchain4j</artifactId>
- <version>0.36.0</version>
- </dependency>
- <dependency>
- <groupId>dev.langchain4j</groupId>
- 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 注解定义工具
- 用 AiServices 构建 Agent 接口
- 用 ChatMemory 实现多轮记忆
- 大模型会自动决定何时调用工具
觉得有帮助请点赞收藏!有问题欢迎评论区交流
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |