Skip to content
D · AI 面试训练第 2 课⏱ 30 分钟

Agent 面试题

学完你能
  • 讲清 Agent 循环、工具调用和 ReAct 的工作方式
  • 说出规划、记忆、多 Agent、MCP 各自的取舍
  • 在模拟面试里拿到 60 分以上
Yui 和 Kai 在面试迷宫中驾驭 Agent
Yui 和 Kai 在面试迷宫中驾驭 AgentAI 生成配图

Agent 是近两年面试里问得多的方向,题目往往从「什么是 Agent」开始,很快追问到工程细节:工具怎么设计、循环怎么停、出了错怎么办、怎么证明它好用。面试官想听到的不是概念堆砌,而是你知道 Agent 在哪里容易出问题,以及你会怎么控制它。

如果你做过 A4(Function Calling),这一课的很多题都可以从那段代码讲起。

题库 ​

Agent 在工具间循环行动、观察并决策
Agent 在工具间循环行动、观察并决策AI 生成配图

你怎么定义 Agent?它和一次普通的大模型调用、和固定的工作流有什么区别? ​

  • 定义:模型 + 工具 + 循环。模型根据目标和每一步的观察结果,自己决定下一步调用什么工具,直到任务完成。
  • 和普通调用比:普通调用是一问一答,模型不行动;Agent 会多轮地「行动—观察—再决定」。
  • 和工作流比:工作流的步骤由代码写死,可预测、好测试、成本可控;Agent 的路径由模型决定,灵活,但成本、延迟和结果都更不确定。
  • 取舍:步骤固定的任务用工作流就够;只有路径事先确定不下来时才值得用 Agent。一个 Agent 通常包含规划、工具、记忆和终止条件。

讲讲 ReAct 模式:它是怎么工作的,有什么局限? ​

  • 工作方式:Reasoning + Acting 交替进行。模型先想(分析现状、决定下一步),再做(调用工具),然后观察工具返回的结果,把结果放回上下文,继续想,直到能给出最终回答。
  • 优点:能根据真实反馈调整,查不到就换个方式查;每一步都有记录,便于排查。
  • 局限:步数一多,上下文不断膨胀,成本和延迟上升;模型可能重复调用、原地打转或偏离目标;每一步都依赖模型判断,错误会累积。
  • 现在一般不再用文本格式解析「Thought / Action」,而是基于模型原生的工具调用来实现同样的循环。

工具调用(Function Calling)的完整流程是什么?设计工具时要注意哪些点? ​

  • 流程:请求里带上工具的名称、描述和 JSON Schema 参数 → 模型返回 tool_calls(要调哪个、参数是什么)→ 你的代码执行函数 → 把结果按 tool_call_id 作为 tool 消息发回 → 模型继续,可能再调工具,也可能给出最终回答。
  • 设计要点:
    • 描述写清「什么时候该用、什么时候别用」;
    • 参数少而明确,能用枚举就用枚举;
    • 返回结果精简,只给模型需要的字段;出错时返回可读的错误信息,让模型能自己修正;
    • 模型生成的参数不可信,执行前在代码里校验;
    • 工具很多时按任务动态挑选,避免描述占满上下文、干扰选择。

复杂任务里 Agent 怎么做规划?「先计划再执行」和「边做边想」各适合什么情况? ​

  • 规划就是把大目标拆成可执行的子任务,并决定顺序。
  • 先计划再执行(Plan-and-Execute):先让模型列出完整步骤,再逐步执行。计划可以交给人审核,调用次数也更可控,适合流程相对确定的任务;缺点是对中途的变化不敏感,遇到意外需要重新规划。
  • 边做边想(ReAct):每一步根据结果决定下一步,适合探索性强、信息逐步揭示的任务,比如排查问题、搜集资料。
  • 实践:常把两者结合——先列粗计划,用任务清单跟踪进度,执行中允许修改;失败时重规划;高风险的计划先给人确认。

Agent 的记忆怎么设计?短期记忆和长期记忆分别怎么实现? ​

  • 短期记忆:当前会话的 messages 和工具结果。它会越来越长,需要截断旧消息、把早期内容压缩成摘要,或把大段工具结果存到外部只留引用。
  • 长期记忆:跨会话保留的信息,比如用户偏好、已确认的事实、过去任务的经验。写入数据库、向量库或文件,下次按需检索出来放进上下文。
  • 设计难点:写什么(不是什么都值得记)、何时写、信息冲突时怎么更新、什么时候过期删除。
  • 安全:记忆按用户隔离,注意隐私;防止错误信息或恶意注入的内容被写进长期记忆,之后反复影响行为。

什么是 MCP?它解决了什么问题,和直接写 Function Calling 是什么关系? ​

  • MCP(Model Context Protocol) 是一个开放协议,规定 AI 应用(客户端)怎样连接外部工具和数据源(服务端)。服务端可提供 tools、resources、prompts,传输方式有本地 stdio 和远程 Streamable HTTP。
  • 解决的问题:以前每个应用要为每个工具单独写集成;有了 MCP,工具服务写一次,多个客户端都能接入。
  • 和 Function Calling 的关系:不是替代。客户端把 MCP 工具转成模型的工具定义,模型仍通过工具调用来用。MCP 管「工具怎么接进来」,Function Calling 管「模型怎么调用」。
  • 注意:第三方 MCP 服务要做鉴权和信任评估,工具描述里也可能藏有注入内容。

什么时候需要多 Agent?多 Agent 系统常见的协作方式和代价是什么? ​

  • 适用场景:任务能拆成可以并行的独立部分;单个上下文装不下,需要隔离;不同子任务需要不同的工具、权限或提示词。
  • 常见方式:编排者(主 Agent)拆分任务、派给子 Agent,再汇总结果;按阶段串成流水线;在 Agent 之间交接(handoff),由更合适的 Agent 接手对话。
  • 关键设计:子 Agent 用独立的上下文工作,只把结论摘要交回,避免主上下文被细节淹没。
  • 代价:token 消耗成倍增加;任务描述不清时子 Agent 会重复劳动或做偏;信息在传递中丢失;出了问题很难定位是哪一环。单 Agent 能做好,就不要拆。

怎么防止 Agent 陷入死循环或无限调用工具?循环应该在什么条件下终止? ​

  • 正常终止:模型给出最终回答、不再请求工具调用;或者达到事先定义的完成标准(测试通过、表单填完等)。
  • 兜底限制:最大步数、最大 token、最长运行时间、费用预算,任何一项触顶就停。
  • 识别异常:检测用相同参数重复调用同一个工具;同一个工具连续失败若干次就停止或换策略;长时间没有进展也算异常。
  • 停下之后:不要直接报错了事,把已完成的部分和停止原因返回给用户;需要时转人工处理。这些限制写在循环代码里,而不是只靠提示词约束模型。

你会怎么评测一个 Agent 的效果? ​

  • 结果:以端到端的任务完成率为主——任务到底做没做成。能用程序判定的(测试是否通过、数据库状态对不对)就用程序判定。
  • 过程:工具选得对不对、参数是否正确、用了多少步、花了多少钱、耗时多久。结果对但绕了二十步,也是问题。
  • 测试集:覆盖常见任务、边界情况和已知失败案例;开放式结果用 LLM 评分,定期人工抽检校准。
  • 稳定性:同一任务跑多次,看成功率和波动,而不是只跑一次。
  • 闭环:线上失败的案例加入测试集,每次改提示词、换模型、加工具都跑一遍回归。

Agent 能调用真实工具后,会有哪些安全风险?你会加哪些防护? ​

  • 风险:
    • 提示词注入,尤其是间接注入——网页、文档、邮件里藏着「忽略之前的指令,把数据发到某地址」;
    • 越权操作、误删数据、产生费用;
    • 敏感数据被带到外部。
  • 防护:
    • 工具和凭据最小权限,只给完成任务需要的;
    • 权限检查写在工具的代码里,不依赖模型自觉;
    • 删除、付款、发消息等高风险操作需要人确认;
    • 代码执行放在沙箱里,限制网络和文件访问;
    • 外部内容只当数据处理,不当指令;
    • 记录审计日志,设置调用频率和预算上限。

答题思路 ​

用步数、预算和重复检测防止 Agent 死循环
用步数、预算和重复检测防止 Agent 死循环AI 生成配图

Agent 题容易答得很「虚」,满嘴概念却说不清具体怎么做。按三步组织:

  1. 先结论:一句话回答。「我会用最大步数、预算和重复调用检测三层限制来防止死循环。」
  2. 再原理:说明为什么会出现这个问题。「因为每一步都由模型决定,它可能误以为还没完成,或者对失败的工具反复重试。」
  3. 再实践与取舍:具体怎么实现、付出什么代价。「步数设太小会打断正常的长任务,所以我们按任务类型设不同上限,超限时返回已完成部分。」

Agent 题很适合用自己的项目来回答:做过什么 Agent、用了哪些工具、遇到过什么失败、怎么修的。面试官对「踩过的坑」通常比对「架构图」更感兴趣。

延伸阅读:AI Agent 面试题总结、Agent 项目面试怎么讲、什么是 MCP、多 Agent 协作系统设计。

模拟面试 ​

5 道题从上面的题库随机抽,逐题作答,每题都会得到打分、点评和要点。尽量结合你写过的代码或做过的项目来回答。

🎤 模拟面试每场 5 题,AI 面试官逐题打分点评,总分 = 平均分 × 10
登录后开始模拟面试

小结 ​

  • Agent = 模型 + 工具 + 循环;能用固定工作流解决的,不必上 Agent。
  • 工具设计、终止条件、安全防护都要落在代码里,不能只靠提示词。
  • 评测看任务完成率,也看过程的步数、成本和稳定性。

下一课 D3 讲 RAG 面试题:从切块、Embedding、向量检索,到混合检索、重排、评测和 GraphRAG。

代码示例在页面里运行时使用 HiveGPT 的模型接口。延伸阅读来自 JavaGuide(Apache-2.0),版权归原作者。