一、什么是 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注解定义工具