007|Agent 面试高频问题串讲
从基础概念到设计能力、工具调用、记忆、推理、工程落地,把 Agent 面试中最常被问到的问题串一遍。
核心结论:Agent 面试考的是"知不知道全貌、会不会拆分问题、懂不懂工程落地"。回答时要有结构、有例子、有坑点。这篇文章按基础、设计、工具、记忆、推理、幻觉、工程、场景、开放性问题九个层次,把高频问题串一遍。
第一层:基础概念
Q1:什么是 Agent(艾·杰恩特)?
答: Agent 是一个能够感知环境、做决策、执行行动、并根据反馈调整的自主系统。传统软件按固定规则执行,Agent 则可以在不确定的情况下,通过推理和工具调用完成任务。
一句话补充: 聊天机器人只是回答,Agent 会行动。
Q2:Agent 和 LLM(艾·艾勒·艾姆)有什么区别?
答: LLM 是 Agent 的大脑,负责推理和生成。Agent 是完整的系统,包含 LLM、工具、记忆、规划、执行和反馈。LLM 本身不会调用工具、不会记状态,Agent 把这些能力补齐了。
| LLM | Agent |
|---|---|
| 只会生成文本 | 会调用工具、执行行动 |
| 无状态 | 有记忆 |
| 单次推理 | 多步骤规划 |
| 被动回答 | 主动完成任务 |
Q3:Agent 和 RAG(拉格)有什么区别?
答: RAG 是给 LLM 提供外部知识,解决"知识不足"问题。Agent 是在 RAG 基础上,增加规划、工具调用、记忆、执行能力,解决"怎么完成任务"问题。
关系: RAG ⊂ Agent。RAG 是 Agent 可能用到的一个模块。
Q4:Agent 和传统工作流/规则引擎有什么区别?
答: 传统工作流是固定的 if-else,所有分支都预先写好。Agent 是目标驱动,可以动态决定下一步做什么,遇到意外情况也能尝试处理。
| 传统工作流 | Agent |
|---|---|
| 规则固定 | 动态规划 |
| 不能处理未知情况 | 可以推理应对 |
| 可解释性强 | 可解释性弱 |
| 适合确定性任务 | 适合开放性任务 |
第二层:设计能力
Q5:设计一个 Agent 要考虑哪些要素?
答: 我会从六个要素考虑:角色、目标、工具、步骤、约束、输出格式。
- 角色:定义 Agent 是谁
- 目标:定义要完成什么
- 工具:定义能用什么能力
- 步骤:定义执行顺序
- 约束:定义禁止行为
- 输出格式:定义返回结构
Q6:一个复杂的任务,什么时候拆成多个 Agent?
答: 当任务出现以下情况时,我会考虑拆分:不同步骤需要不同的专业知识;步骤可以独立测试和优化;失败需要隔离;结果被多个下游消费;需要独立优化 prompt。
例子: 数据分析任务可以拆成:数据查询 Agent、归因分析 Agent、风控检查 Agent、输出 Agent。
Q7:多 Agent 之间怎么通信?
答: 常见方式有三种:函数调用、共享状态、消息队列。简单系统用共享状态;复杂、分布式系统用消息队列;LangGraph 用的是共享状态 + 图编排。
Q8:多 Agent 调度器做什么?
答: 调度器负责意图识别、路由选择、状态管理、错误处理。它决定用户请求交给哪个 Agent 执行,以及执行失败时怎么办。
第三层:工具调用与执行
Q9:什么是 Function Calling(方克·慎·考·灵)?
答: Function Calling 是 LLM 生成结构化参数,调用外部工具,并把工具返回的结果作为上下文继续推理。它不是 LLM 自己执行代码,而是 LLM 决定"调用什么工具、传什么参数"。
流程:
用户问题 → LLM 判断需要工具 → 生成工具参数 → 调用工具 → 工具返回结果 → LLM 生成最终回答
Q10:Tool Use(图·尤斯)和 Agent 的关系?
答: Tool Use 是 Agent 的核心能力之一。没有工具,Agent 只能空谈。有了工具,Agent 可以查数据库、调 API、读文件、写代码,真正完成任务。
Q11:怎么防止 Agent 调用危险工具?
答: 三层防护:工具层做权限控制,比如只读数据库;Agent 层在 prompt 里加约束;系统层做风控审计和人工复核。
第四层:记忆与 RAG
Q12:Agent 的 Memory(麦·莫·瑞)怎么设计?
答: 分两层。短期记忆保留当前会话上下文,用 Window Memory(温·道 麦·莫·瑞)控制长度。长期记忆存用户画像、关键实体、历史摘要,用向量数据库或结构化数据库。提问时短期直接读,长期按需检索。
Q13:Memory 和 RAG 的区别?
答: Memory 是记住"用户和 Agent 聊过什么",RAG 是检索"事实知识"。Memory 来自交互历史,RAG 来自知识库。两者互补。
Q14:上下文太长怎么办?
答: 三种方法:用 Window Memory 保留最近 N 轮;用 Summary Memory(萨·莫·瑞 麦·莫·瑞)压缩历史摘要;用 Vector Memory(维克·托 麦·莫·瑞)只检索相关历史。生产中通常组合使用。
第五层:规划与推理
Q15:ReAct(瑞·艾克特)是什么?
答: ReAct = Reasoning + Acting(推理 + 行动)。它让 LLM 交替进行思考(Thought)和行动(Action),通过行动获取信息,再用推理决定下一步。适合需要多步工具调用的任务。
格式:
Thought: 我需要先查销售额
Action: 调用 execute_sql
Observation: 销售额是 1200 万
Thought: 现在需要分析原因
...
Q16:CoT(西·欧·梯)和 ReAct 有什么区别?
答: CoT(Chain of Thought,链式思考)只在模型内部做推理,不调用外部工具。ReAct 是推理 + 行动,会调用工具获取信息。
| CoT | ReAct |
|---|---|
| 只做推理 | 推理 + 行动 |
| 适合纯推理题 | 需要外部信息的任务 |
| 不调用工具 | 调用工具 |
Q17:ToT(梯·欧·梯)是什么?
答: ToT = Tree of Thought(思维树)。它让 LLM 在多个可能的思考路径中探索,评估每个路径,选择最优方案。适合需要多步决策、有多种方案可选的任务。
Q18:Plan-and-Execute(普兰·安德·艾克·斯盖·特)是什么?
答: Plan-and-Execute 是两阶段:先做计划,再执行。计划阶段把大任务拆成子任务,执行阶段逐个完成。优点是流程清晰,缺点是计划赶不上变化时调整慢。
第六层:幻觉与兜底
Q19:Agent 怎么解决幻觉问题?
答: 四层防护:输入层做意图识别和拒绝;工具层做校验和权限控制;Agent 层做自我检查;系统层做独立风控。核心原则是不确定就拒绝,高风险必须人工复核。
Q20:Agent 出错了怎么办?
答: 重试、降级、人工兜底。比如 SQL 生成失败,重试 3 次;仍然失败,返回"无法查询";涉及高风险操作,转人工。所有失败都要记录审计日志。
第七层:工程与落地
Q21:Agent 系统怎么评估?
答: 分层评估:单元测试测单个 Agent 输出;集成测试测多 Agent 流程;回归测试保证改动不破坏历史用例;在线评估用用户反馈。指标包括任务成功率、工具调用准确率、用户满意度、延迟。
Q22:Agent 上线后怎么监控?
答: 监控三个层面:执行层面看任务成功率、工具调用次数、响应延迟;质量层面看幻觉率、用户满意度;成本层面看 token 消耗、模型调用次数。
Q23:Agent 项目怎么组织代码?
答: 按职责分层:agent 层定义每个 Agent 的 prompt 和工具;tools 层封装工具;orchestrator(奥·克·斯特·瑞·特)层负责调度;memory 层负责记忆;state 层定义共享状态;eval(伊·瓦尔)层做测试评估。
Q24:Agent 部署要考虑什么?
答: 模型调用延迟、并发能力、失败重试、状态持久化、成本、安全、可观测性。异步任务可以用消息队列,同步任务用 API。
第八层:进阶与场景
Q25:LangGraph(兰格·格拉夫)和 CrewAI(克鲁·艾)怎么选?
答: LangGraph 适合流程复杂、需要精细控制的生产系统;CrewAI 适合快速做 demo、角色扮演类项目。企业级 Agent 推荐 LangGraph。
Q26:Agent 的自主性怎么分级?
答: 从低到高:辅助建议型、人类确认型、低风险自动型、高风险告警型、完全自主型。企业场景建议从低风险自动型开始,高风险操作保留人类确认。
Q27:Agent 适合什么场景,不适合什么?
答: 适合:流程不固定、需要推理、需要调用外部工具、有明确目标但路径不确定的任务。不适合:完全确定性、可解释性要求极高、出错代价不可承受的任务。
第九层:开放性问题
Q28:如果让你设计一个电商客服 Agent,你会怎么做?
答题框架:
- 入口:对话 + 工单系统
- Agent 拆分:意图识别 Agent、订单查询 Agent、售后处理 Agent、推荐 Agent、风控 Agent
- 工具:订单 API、物流 API、知识库、退换货系统
- 记忆:用户订单历史、常见问题、用户偏好
- 风控:涉及退款、个人信息时人工确认
- 评估:解决率、用户满意度、平均处理时长
Q29:Agent 项目最大的风险是什么?
答题框架:
- 幻觉导致错误决策
- 工具调用权限失控
- 上下文管理不当
- 成本不可控
- 难以调试和评估
- 过度依赖 LLM,缺乏兜底
第十层:总结面试答题套路
推荐结构:总分总
- 一句话定义
- 讲核心差异/关键设计
- 举一个例子
- 补充注意事项/坑
示例:Memory 怎么设计?
- 定义:Agent Memory 分短期和长期。
- 核心设计:短期用 Window Memory 控制上下文,长期用 Vector DB 或结构化数据库存用户画像。
- 例子:电商客服要记住用户 VIP 等级、历史订单、最近咨询。
- 注意事项:注意隐私隔离、记忆冲突、上下文长度。
一句话总结
Agent 面试考的是:你知不知道 Agent 的全貌,会不会拆分问题,懂不懂工程落地。回答时要有结构、有例子、有坑点。
下一步可以读
- 008|Agent 项目工程化:代码组织、测试、部署(待更新)
- 009|LangGraph 和 RAG 结合实战(待更新)