Java 工程师 AI 智能体学习路线 · 阶段 4智能体Agent核心原理 详解本阶段目标理解会思考、能调用工具、有记忆的智能体是如何构成的掌握其四大支柱规划/记忆/工具/执行、主流规划模式与工程风险为编写可运行的单智能体打基础。注博客https://blog.csdn.net/badao_liumang_qizhi4.1 什么是 Agent智能体讲解智能体Agent不是单纯的问答模型而是一个能自主循环、调用工具、利用记忆去完成目标的程序。最小公式Agent LLM大脑 Tools手脚连接外部世界 Memory记忆短期/长期 Planning规划拆解与决策循环它区别于普通对话的关键模型输出不一定是最终答案也可能是下一步要执行的动作。常见场景自动订票/报销模型查日历→调接口→填表单→确认。代码助手读仓库→改文件→跑测试→根据报错重试。面试知识点QAgent 和普通 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再喂回循环。示例四大支柱对应代码职责AgentagentAgent.builder().planner(newReActPlanner())// Planning.memory(newConversationMemory())// Memory短期.tools(searchTool,dbTool,codeTool)// Tools.actionExecutor(toolRegistry)// Action.build();面试知识点Q为什么说让模型想和说把算和查交给工具ALLM 擅长语言理解与推理但不擅长精确计算、实时数据与状态修改把这些交给确定性工具既提升正确性也降低幻觉。4.3 规划模式4.3.1 ReActReasoning 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 自我纠错。面试知识点QReAct 和 Plan-and-Execute 怎么选A路径不确定、需实时信息→ReAct步骤可预见、偏流程化→Plan-and-Execute。两者也可结合先粗规划再 ReAct 执行每步。QReflexion 解决了什么问题A普通 Agent 失败即终止Reflexion 让其在失败后分析错误、调整策略重试显著提升复杂任务成功率。4.4 记忆机制讲解类型存储生命周期示例短期记忆内存中的消息列表单次会话多轮对话历史长期记忆向量库/数据库跨会话用户偏好、知识库压缩记忆摘要文本会话内把前 20 轮对话摘要成 3 句常见场景客服机器人记住用户已报过订单号避免重复询问短期。个人助理记住用户偏好简洁回复长期向量库检索。面试知识点Q短期记忆过长会有什么问题如何解决A超出上下文窗口、成本与延迟上升、注意力稀释。解决滑动窗口截断、摘要压缩、只保留关键事实长期记忆检索回填。4.5 执行循环与状态机讲解Agent 本质是一个状态机每步由 LLM 决策下一个状态调工具 or 结束。核心循环示例极简 Agent 循环Java 示意ListMessagehistorynewArrayList();history.add(newSystemMessage(你是能调用工具的助手按需输出 Action 或 Final Answer。));history.add(newUserMessage(task));for(intstep0;stepMAX_STEPS;step){Decisiondplanner.decide(history);// LLM 输出 Thought/Actionif(d.isFinal()){returnd.answer();// 终止}StringobstoolRegistry.call(d.action(),d.input());// Actionhistory.add(newToolMessage(obs));// Observation 回灌}thrownewAgentTimeoutException(超过最大步数);常见场景工具调用结果是关键分支依据如查到库存为 0则转而推荐替代品。面试知识点QAgent 循环里为什么要把工具结果再喂回历史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、输出护栏审计。