Java 工程师 AI 智能体学习路线 · 阶段 4:智能体(Agent)核心原理 详解

Java 工程师 AI 智能体学习路线 · 阶段 4:智能体(Agent)核心原理 详解

本阶段目标:理解"会思考、能调用工具、有记忆"的智能体是如何构成的,掌握其四大支柱(规划/记忆/工具/执行)、主流规划模式与工程风险,为编写可运行的单智能体打基础。


注:

博客:

https://blog.csdn.net/badao_liumang_qizhi

4.1 什么是 Agent(智能体)

讲解

智能体(Agent)不是单纯的"问答模型",而是一个能自主循环、调用工具、利用记忆去完成目标的程序。最小公式:

复制代码
Agent = LLM(大脑)
      + Tools(手脚,连接外部世界)
      + Memory(记忆,短期/长期)
      + Planning(规划,拆解与决策循环)

它区别于普通对话的关键:模型输出不一定是"最终答案",也可能是"下一步要执行的动作"。

常见场景

  • 自动订票/报销:模型查日历→调接口→填表单→确认。
  • 代码助手:读仓库→改文件→跑测试→根据报错重试。

面试知识点

  • Q:Agent 和普通 LLM 调用的本质区别?
    A:普通调用是"一次输入→一次输出";Agent 是"感知→决策→行动→观察"的循环,能调用工具改变外部状态,并基于反馈持续迭代直到目标达成。

4.2 四大支柱

4.2.1 Planning(规划)

把复杂目标拆解为可执行的子任务,并决定执行顺序。

  • 简单任务:ReAct 边想边做。
  • 复杂任务:先整体规划(Plan-and-Solve),再逐步执行。

4.2.2 Memory(记忆)

  • 短期记忆:当前会话的对话历史(User/Assistant/Tool 消息)。
  • 长期记忆:跨会话沉淀的知识,通常存向量库/数据库。
  • 压缩:历史过长时用摘要替代原文。

4.2.3 Tools(工具)

把"算"和"查"交给外部能力:HTTP 接口、数据库查询、代码执行、搜索引擎等。模型只负责决定"调哪个、传什么参"。

4.2.4 Action(执行)

将模型的决策落地为工具调用或最终回答;执行结果(Observation)再喂回循环。

示例(四大支柱对应代码职责)

java 复制代码
Agent agent = Agent.builder()
    .planner(new ReActPlanner())        // Planning
    .memory(new ConversationMemory())   // Memory(短期)
    .tools(searchTool, dbTool, codeTool)// Tools
    .actionExecutor(toolRegistry)       // Action
    .build();

面试知识点

  • Q:为什么说"让模型想和说,把算和查交给工具"?
    A:LLM 擅长语言理解与推理,但不擅长精确计算、实时数据与状态修改;把这些交给确定性工具,既提升正确性也降低幻觉。

4.3 规划模式

4.3.1 ReAct(Reasoning + Acting)

交替进行 Thought(思考)→ Action(调工具)→ Observation(观察),最常用。

复制代码
Thought: 需要查北京天气
Action:  get_weather(city="北京")
Observation: 晴 28℃
Thought: 信息足够,可回答
Final Answer: 北京今天晴,28℃

4.3.2 Plan-and-Execute

先生成完整计划,再逐条执行;适合步骤清晰、可预见的任务。

复制代码
Plan:
 1. 读取需求文档
 2. 生成接口定义
 3. 写单元测试
 4. 运行测试并修复

4.3.3 Reflexion(自我反思)

任务失败后,模型反思错误原因并改进重试,形成"尝试→反思→再尝试"闭环。

场景:代码生成调试、Agent 自我纠错。

面试知识点

  • Q:ReAct 和 Plan-and-Execute 怎么选?
    A:路径不确定、需实时信息→ReAct;步骤可预见、偏流程化→Plan-and-Execute。两者也可结合(先粗规划,再 ReAct 执行每步)。
  • Q:Reflexion 解决了什么问题?
    A:普通 Agent 失败即终止;Reflexion 让其在失败后分析错误、调整策略重试,显著提升复杂任务成功率。

4.4 记忆机制

讲解

类型 存储 生命周期 示例
短期记忆 内存中的消息列表 单次会话 多轮对话历史
长期记忆 向量库/数据库 跨会话 用户偏好、知识库
压缩记忆 摘要文本 会话内 把前 20 轮对话摘要成 3 句

常见场景

  • 客服机器人记住"用户已报过订单号",避免重复询问(短期)。
  • 个人助理记住"用户偏好简洁回复"(长期,向量库检索)。

面试知识点

  • Q:短期记忆过长会有什么问题?如何解决?
    A:超出上下文窗口、成本与延迟上升、注意力稀释。解决:滑动窗口截断、摘要压缩、只保留关键事实(长期记忆检索回填)。

4.5 执行循环与状态机

讲解

Agent 本质是一个状态机:每步由 LLM 决策下一个状态(调工具 or 结束)。核心循环:

示例(极简 Agent 循环,Java 示意)

java 复制代码
List<Message> history = new ArrayList<>();
history.add(new SystemMessage("你是能调用工具的助手,按需输出 Action 或 Final Answer。"));
history.add(new UserMessage(task));

for (int step = 0; step < MAX_STEPS; step++) {
    Decision d = planner.decide(history);     // LLM 输出 Thought/Action
    if (d.isFinal()) {
        return d.answer();                    // 终止
    }
    String obs = toolRegistry.call(d.action(), d.input()); // Action
    history.add(new ToolMessage(obs));        // Observation 回灌
}
throw new AgentTimeoutException("超过最大步数");

常见场景

  • 工具调用结果是关键分支依据(如"查到库存为 0,则转而推荐替代品")。

面试知识点

  • Q:Agent 循环里为什么要把工具结果再喂回历史?
    A:模型本身无状态,只有把 Observation 写回上下文,下一步决策才能基于真实反馈,形成"感知---行动"闭环。

4.6 终止条件

讲解

必须有明确的"停下"机制,否则 Agent 会无限循环:

  • 目标达成:模型输出 Final Answer。
  • 步数上限 :超过 MAX_STEPS 强制停止(防死循环)。
  • 人工介入:关键动作前暂停等待确认(HITL)。
  • 错误熔断:连续工具失败 N 次则中止。

面试知识点

  • Q:为什么必须给 Agent 设最大步数?
    A:防止模型在错误路径上反复横跳、无限调用工具,造成成本失控与超时;步数上限是基本安全保障。

4.7 风险与防范

风险 说明 防范
死循环 反复调用同一工具 步数上限 + 重复动作检测
工具误用 传错参数/调错工具 Schema 校验 + 参数预检
成本失控 长循环、长输出 步数/Token 预算上限
越权操作 删库、发消息 工具权限最小化 + 高危动作人工确认
不可控输出 泄露/违规 输出护栏 + 审计日志

常见场景

  • 自动化运维 Agent 执行"重启服务"前必须人工确认。
  • 对外发消息的 Agent 需二次校验收件人与内容。

面试知识点

  • Q:如何防止 Agent 误删生产数据?
    A:工具权限最小化(只给必要权限)、高危操作加人工确认(HITL)、执行前参数校验与 dry-run、全程审计日志与回滚预案。

4.8 阶段 4 自测清单

  • 能画出 ReAct 循环流程图
  • 能解释短期记忆与长期记忆的区别与实现
  • 能说明 Agent 死循环的防范手段
  • 能对比 ReAct 与 Plan-and-Execute 的取舍
  • 能说出至少 3 个 Agent 工程风险及对策

4.9 阶段 4 面试题与参考答案

1. Agent 和普通 LLM 调用的本质区别?

普通调用是一次输入→一次输出;Agent 是"感知---决策---行动---观察"的循环,能调用工具改变外部状态,并基于反馈持续迭代直到目标达成。

2. Agent 的四大支柱是什么?

Planning(规划拆解)、Memory(短期/长期记忆)、Tools(调用外部能力)、Action(执行决策或回答)。四者协同使 Agent 能自主完成任务。

3. 为什么说"让模型想和说,把算和查交给工具"?

LLM 擅长语言理解与推理,不擅长精确计算、实时数据与状态修改;交给确定性工具可提升正确性、降低幻觉与成本。

4. ReAct 和 Plan-and-Execute 怎么选?

路径不确定、需实时信息→ReAct;步骤可预见、偏流程化→Plan-and-Execute。也可结合:先粗规划,再用 ReAct 执行每一步。

5. Reflexion 解决了什么问题?

普通 Agent 失败即终止;Reflexion 让其在失败后反思错误原因、调整策略重试,形成"尝试---反思---再尝试"闭环,提升复杂任务成功率。

6. 短期记忆过长有什么问题?如何解决?

超出上下文窗口、成本/延迟上升、注意力稀释。解决:滑动窗口截断、摘要压缩、关键事实沉淀到长期记忆并检索回填。

7. 为什么要把工具结果回灌到历史?

模型本身无状态,只有把 Observation 写回上下文,下一步决策才能基于真实反馈,形成闭环。

8. 为什么必须给 Agent 设最大步数?

防止模型在错误路径上反复横跳、无限调用工具,造成成本失控与超时;步数上限是基本安全保障。

9. 如何防止 Agent 误删生产数据?

工具权限最小化、高危操作人工确认(HITL)、执行前参数校验与 dry-run、全程审计日志与回滚预案。

10. Agent 有哪些典型工程风险?

死循环、工具误用、成本失控、越权操作、不可控输出;对应防范为步数上限、Schema 校验、预算限制、权限最小化+HITL、输出护栏+审计。

相关推荐
取地址符1 小时前
Rust语法学习 (基于Rustlings)(1):基础语法
经验分享·笔记·学习·rust
拓向AI1 小时前
南京高性价比DeepSeek优化推广指南
大数据·人工智能
一路向北North1 小时前
Spring Security OAuth2.0(18):资源服务测试
java·后端·spring
ZX0X学习中1 小时前
一句话让 AI 生成 Excel 多文件合并工具:码道 CLI 实战
人工智能·excel·ai编程·华为云码道
绝世番茄1 小时前
VisualEffect 视觉特效鸿蒙HarmonyOS ArkTS原生学习
学习·华为·harmonyos·鸿蒙
AI小码1 小时前
WAIC 2026前瞻:AI产业进入拼落地的下半场
人工智能·算法·ai·程序员·大模型·编程·智能体
小企鹅么么1 小时前
【AI应用开发工程师】第六章:Context Engineering
人工智能·ai
code 小楊2 小时前
LLM Wiki 深度解析:颠覆传统RAG,开启大模型知识管理新纪元
人工智能·科技
前端H2 小时前
生成式 UI 实战:AI 如何重塑前端界面
前端·人工智能·ui
nanawinona2 小时前
2026年AI量化学习,交易认知和技术实现要一起走
人工智能·python