郑细元 發表於 2026-4-1 19:00:00

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

<h2>前言</h2>
<p>AI Agent(智能体)是2026年最热门的技术方向之一。不同于传统的问答机器人,Agent能够自主规划任务、调用工具、记住上下文,真正实现"自主决策"。本文用 LangChain4j 带你从零构建一个 Java 智能体。</p>
<h2>一、什么是 AI Agent?</h2>
<p>AI Agent 是能够自主决策并执行任务的 AI 系统,核心能力:</p>
<ul>
<li><strong>理解意图</strong>:解析用户自然语言</li>
<li><strong>规划任务</strong>:分解复杂任务为多个步骤</li>
<li><strong>工具调用</strong>:调用外部 API 获取信息或执行操作</li>
<li><strong>记忆能力</strong>:记住多轮对话上下文</li>
</ul>
<h2>二、环境准备</h2>
<pre><code>&lt;dependency&gt;
    &lt;groupId&gt;dev.langchain4j&lt;/groupId&gt;
    &lt;artifactId&gt;langchain4j&lt;/artifactId&gt;
    &lt;version&gt;0.36.0&lt;/version&gt;
&lt;/dependency&gt;
&lt;dependency&gt;
    &lt;groupId&gt;dev.langchain4j&lt;/groupId&gt;
    &lt;artifactId&gt;langchain4j-open-ai&lt;/artifactId&gt;
    &lt;version&gt;0.36.0&lt;/version&gt;
&lt;/dependency&gt;</code></pre>
<h2>三、定义工具</h2>
<pre><code>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);
    }
}</code></pre>
<h2>四、构建 Agent</h2>
<pre><code>// 配置大模型
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();</code></pre>
<h2>五、运行 Agent</h2>
<pre><code>// 测试对话
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度</code></pre>
<h2>六、进阶:结构化输出</h2>
<pre><code>record TaskPlan(String goal, List&lt;String&gt; steps, String expectedResult) {}

interface Planner {
    @SystemMessage("你是一个任务规划专家,将复杂任务分解为步骤")
    TaskPlan plan(String userGoal);
}

Planner planner = AiServices.builder(Planner.class)
    .chatLanguageModel(model)
    .build();

TaskPlan plan = planner.plan("开发一个用户登录功能");
// 返回结构化的任务计划</code></pre>
<h2>总结</h2>
<p>LangChain4j 让 Java 开发者也能轻松构建 AI Agent。核心要点:</p>
<ul>
<li>用 <strong>@Tool</strong> 注解定义工具</li>
<li>用 <strong>AiServices</strong> 构建 Agent 接口</li>
<li>用 <strong>ChatMemory</strong> 实现多轮记忆</li>
<li>大模型会自动决定何时调用工具</li>
</ul>
<p>觉得有帮助请点赞收藏!有问题欢迎评论区交流 🚀</p>

</div>
<div id="MySignature" role="contentinfo">
   

---

📌 **如果觉得文章对你有帮助,欢迎点赞👍收藏⭐!**

💬 有问题或建议?欢迎在评论区留言讨论~

🔗 更多技术干货请关注作者:弥烟袅绕

📚 本文地址:https://www.cnblogs.com/czlws/p/19808490/ai-agent-langchain4j-java-tutorial<br><br>
来源:https://www.cnblogs.com/czlws/p/19808490/ai-agent-langchain4j-java-tutorial
頁: [1]
查看完整版本: AI Agent 开发实战:用LangChain4j构建你的第一个Java智能体