Skip to content

Agent 面试 · 高频快答 ​

定位: 面试前 10 分钟速记 + 一面 30~60 秒开口答。
不是 Agent 教程。展开见同目录其它页;项目细节必须换成你自己的真实经历。

面试官其实想确认五件事:
懂 Agent 是什么 → 知道何时该用 → 知道怎么编排 → 出了问题怎么办 → 能把自己的项目讲清楚。


① 概念类 ​

Q:Agent 是什么? ​

结论: Agent 是「目标驱动的模型应用」——模型判断下一步做什么,工具真正执行,系统根据结果继续循环,直到完成或触发停止条件。

三点:

  1. 决策(下一步干什么)
  2. 工具(真去执行)
  3. 多步执行(按结果继续)

可补一句: 核心不是「用了大模型」,而是模型参与了任务执行过程中的下一步决策。


Q:Agent 和 Chatbot 有什么区别? ​

结论: Chatbot 主要解决对话和信息交互;Agent 更强调把事情办完。

区别不在「更聪明、更会聊」,而在:

  1. 有没有工具调用
  2. 有没有状态 / 多步
  3. 成功标准是「任务完成」还是「答得像」

Q:RAG 和 Agent 是什么关系? ​

结论: RAG 解决「模型不知道的知识从哪来」;Agent 解决「为了完成任务下一步做什么」。

可组合: Agent 可以把检索当成其中一个工具。
知识问答优先 RAG;要调系统、多步办事再上 Agent。


Q:Workflow 和 Agent 有什么区别? ​

结论: Workflow 是流程基本定死,由代码规定下一步;Agent 是目标定了,中间步骤允许模型根据当前结果动态选。

选型:

  • 流程稳定、规则明确 → 优先 Workflow(更稳、更便宜、更好测)
  • 需要动态决策、工具结果会改变路径 → 再考虑 Agent

Q:为什么需要 Agent?什么时候不要上? ​

需要时: 任务有目标,但中间路径依赖工具结果动态决定;且工具真能帮完成任务。

不要上时:

  1. 一次问答 / 摘要 / 分类 → 普通模型调用就够
  2. 流程固定、规则明确 → Workflow 更合适
  3. 还没做好超时、重试、幂等、权限、状态恢复、审计 → 别急着做高自主 Agent

Q:要不要微调? ​

结论: 一般不一上来就微调。

先看 Prompt、RAG、工具调用、换模型能不能解决。这些都不够,且有稳定数据和评估集,再考虑微调。多数中小业务用不到先微调。


② 工程类 ​

解释框架可以记:模型 → Agent 编排 → 生产工程;下面按「编排问题 + 生产问题」开口,不把三层当目录。

Q:Tool Calling 是什么? ​

结论: 模型不直接执行工具,而是输出符合 Schema 的调用请求;后端校验参数、执行工具,再把结果返回给模型继续判断。

要会提的词: Schema · 参数校验 · 权限 · 超时 · 幂等 · 审计

展开 → Tool Calling 面试页


Q:Agent 为什么需要状态? ​

结论: Agent 是多步的,后面决策常依赖前面已完成的步骤、工具结果和用户上下文,所以要显式存状态,而不是每步重新猜。

可提: 当前目标、已完成步骤、工具结果摘要、失败次数、是否可恢复。


Q:超时、重试、幂等、审计——项目一开始怎么嵌? ​

结论: 这四件不是上线前再补的「安全补丁」,是多步 / 多 Agent 流水线 Day 1 就要进状态机和日志 的默认项。面试里我会按四句说:

  1. 超时
    每步 Tool / 模型调用有 deadline,整条流水线有总超时;超时进「失败 / 待重试 / 待人工」,不挂死、不空转烧钱。

  2. 重试
    只对能安全重试的步骤(读 API、检索);写操作默认不盲目重试,要重试必须先有幂等。

  3. 幂等
    每个会改世界的动作带 idempotencyKey(比如 runId + step);重复执行不产生第二封邮件、第二条文档、第二笔单。

  4. 审计
    至少记:谁发起、哪个 Agent、调了啥工具、入参出参摘要、耗时、成功/失败、人工有没有确认——出事能回放,不是只看最终答案。

多 Agent 补一句: 编排 Agent 管总超时和总预算;子 Agent / 每步 Tool 管自己的 deadline;写操作的 key 跨 Agent 也要唯一,避免 A 调过、B 再调又写一遍。

金句: Checkpoint 管「执行到哪」,幂等管「再跑一次安不安全」,审计管「谁干的、能不能复查」——三件事别混成一句「我们做了可靠性」。


Q:怎么防止死循环? ​

结论: 别指望模型自己停,靠系统设安全边界。

常用边界:

  1. 最大步数
  2. 总超时
  3. Token / 成本预算
  4. 连续失败次数 → 熔断或人工接管

和上面「四件套」一起说更完整:死循环靠步数/预算刹住;单步卡死靠超时;误伤靠幂等和审计兜底。


Q:怎么处理超时和重试? ​

结论: 模型调用和工具调用都要有明确超时;重试要限次数,并区分「可重试错误」和「直接失败」。

开口版: 读可以重试,写默认不瞎重试;超时不要挂在「调用中」,要进明确状态(失败 / 待重试 / 待人工)。


Q:为什么需要幂等?写操作怎么控制? ​

结论: 网络超时再试时,可能第一次其实已经成功,再执行一次会双花、双下单、双发消息——所以写操作要幂等键或去重。

控制:

  • 读操作可自动
  • 删 / 付 / 发 / 改核心数据 → 权限分级,必要时人工确认

分清两件事:

  • Checkpoint → 执行到哪里了
  • 幂等 → 这个动作重复执行有没有问题

可举例: key 用 runId + step,同一 run 同一布再进一次,业务侧识别为重复请求,直接返回上次结果。


Q:执行到一半失败 / 服务挂了怎么办? ​

结论: 先分清「从哪恢复」和「重新执行会不会有副作用」。

常提: 状态持久化 · Checkpoint · 按失败节点恢复 · 有限 Retry · 幂等 · 人工接管

展开 → 可靠性与安全


Q:怎么做可观测和审计? ​

结论: 至少能看见一次 Agent Run 做了什么,而不只看最终答案。

建议能查到: 谁发起、Run ID、哪个 Agent、节点、Tool 调用、参数/结果摘要、模型调用、Token/成本、耗时、错误与重试、人工是否确认。

开口版: 审计不是合规口号,是排障和追责的原材料;多 Agent 时更要能回答「这一步是哪个 Agent 调的」。


Q:怎么评价 Agent 效果?成本为什么容易失控? ​

效果别只说准确率,至少:

  • 任务成功率
  • 人工接管率
  • 工具调用成功率
  • 平均步数 / 耗时 / 单任务成本
  • 失败类型分布

强调: 按「任务有没有完成」评,不是只看回答像不像。

成本: 多步 × 多工具 × 重试 × 大上下文,费用会指数涨;要用步数/预算上限,能 Workflow 就别全 Agent。


③ 产品与技术选型类 ​

Q:什么时候用 Agent,什么时候用 Workflow? ​

原则: 能用确定性代码解决的,不要为了「AI 化」硬交给 Agent。

  • 路径固定 → Workflow
  • 路径依赖工具结果动态变 → Agent
  • 只是查知识 → RAG / 普通调用

Q:Code Agent 和普通 AI 编程助手有什么区别? ​

结论: 普通助手偏补全/对话框改片段;Code Agent 更强调读仓、改多文件、跑命令、围绕目标多步推进(如 Cursor Agent、Claude Code)。

说自己用过什么就说什么,没深度用过的框架别装。


Q:Worker 是什么? ​

结论: Worker 偏「办事」——浏览器、文档、业务系统里的任务交付;和 Code Agent(改代码)不是一类。国内如办公向 Agent,国外如 Operator 一类能力。

先说清自己做的是 Code 还是 Worker,别混谈。


Q:MCP 是什么? ​

结论: 一种让模型侧连接工具/上下文的协议思路(Model Context Protocol);把它理解成「工具与上下文的连接层」即可。

没用过就诚实说「了解定位,项目里没用到生产」;别编集成故事。


Q:Agent 和普通后端服务最大的工程区别?一个业务为什么不该全部 Agent 化? ​

区别: 普通服务路径大多确定;Agent 路径部分由模型动态决定,所以失败模式更杂,更依赖状态、护栏、审计和按任务成功评价。

不该全 Agent 化: 稳定规则、强一致写库、高频低成本接口,用确定性服务更合适;Agent 只切在「真有动态决策价值」的切口上。


④ 项目类 ​

不要虚构。 没有完整自主 Agent,就讲编排 + API + 状态机,别硬贴 Agent 标签。
口述骨架 → 项目讲述模板

Q:你做过 Agent 吗? ​

答法: 按真实项目填空——

项目背景 → AI 做什么 → 工具是什么 → 怎么编排 → 状态怎么管 → 为什么这样设计 → 遇到什么问题 → 怎么验证

可结合你经历的诚实口径(示例,面试前改成自己的原话):

  • AI 漫剧 / 生成流水线:多模型 API、异步任务、状态机;若步骤由代码编排为主,就说「工作流 + 模型调用」,有动态决策再称 Agent。
  • MES / 业务系统:AI 切口若是助手问答或固定流程,别夸大成全自主 Agent。

Q:为什么这么设计?为什么不用一个 Prompt / 不用纯 Workflow? ​

开口模板:

  • 不用单 Prompt:要落库、调外部系统、多步且结果要可恢复
  • 不用纯 Workflow:某几步路径依赖模型/工具结果才分支(若实际没有,就承认是 Workflow)
  • 这样设计:可控、可观测、成本和失败可兜底

Q:Agent 里有哪些 Tool?失败了怎么办? ​

Tool: 只列你项目里真实有的(查库、调生成 API、写任务状态、通知……)。

失败: 超时 → 有限重试 → 幂等(写)→ 记失败状态 → 人工/重跑入口。
细节链到工程类同一套答案,别另背一篇。


Q:死循环 / 执行一半挂了 / 写操作重复 / 怎么证明有效? ​

直接复用工程类口径,用项目里的具体数字或现象举例(步数上限设过多少、有没有重复生成、成功率怎么看)。

证明有效: 任务完成率、人工介入次数、耗时/成本对比旧方案——有数据说数据,没有就说「还在用人工抽检 + 失败日志」,别编。


Agent 面试追问链 ​

真实一面很少随机跳题,常见是一条链往下追:

text
Agent 是什么?
  → 为什么需要 Agent? / 和 Chatbot 区别?
    → 为什么不用 Workflow? / 什么时候不要上?
      → 怎么调用工具?(Tool Calling)
        → Tool 失败怎么办?
          → 死循环怎么办?
            → 执行一半失败怎么办?
              → 写操作重复怎么办?(幂等)
                → 怎么审计 / 可观测?
                  → 这四件事项目一开始怎么嵌的?
                    → 怎么评价效果?
                      → 结合你的项目讲一遍

复习用法: 从上到下能不看稿说完;卡在哪一环,就去对应小节页补 5 分钟。


相关页 ​

需要展开时去哪
概念边界概念与边界
Tool 设计Tool Calling
护栏与翻车可靠性与安全
白板设计场景设计题
产品对比口述对比与选型
项目 STAR项目讲述模板