AI Agent 面试题目
AI 工程面试不只考术语,更看候选人能否分清模型能力、系统能力和业务指标。以下问题统一采用“简要回答 → 机制分析 → 工程取舍 → 追问准备”的结构。
本模块包含两个一一对应的入口:
常见失分方式
只罗列 ReAct、RAG、MCP、LangChain 等名词,没有说明控制流、信任边界、失败路径和验证指标;或者把某个框架的 API 当成通用原理。
一、先掌握答题框架
30 秒回答公式:先用一句话界定概念或给出选择,再解释核心机制,随后说明适用边界与主要风险,最后给出测试或线上指标。
例如回答“Agent 和 Workflow 怎么选”时,不要从框架开始。先回答“谁决定下一步”,再说明确定性与灵活性的交换,最后补充步数、预算、权限、轨迹与人工接管。
二、Agent、Workflow 与规划模式
1. Agent 和 Workflow 的区别是什么?如何选择?
简要回答
区别在于谁决定下一步。Workflow 的控制流由开发者预先定义,大语言模型(Large Language Model,LLM)只是某个节点;Agent 则由 LLM 根据目标、状态和工具观察动态选择下一步。生产系统通常优先 Workflow,只在路径无法穷举的局部引入 Agent。
| 维度 | Workflow | Agent |
|---|---|---|
| 控制流 | 代码和显式状态机决定 | 模型依据运行时上下文决定 |
| 确定性 | 高,便于回放与测试 | 较低,路径随输入和模型变化 |
| 灵活性 | 受预设分支限制 | 能处理未穷举的任务路径 |
| 治理重点 | 状态转换、补偿、重试 | 工具权限、循环、预算、轨迹 |
| 典型场景 | 审批流、固定 RAG、ETL | 开放研究、多工具排障 |
工程取舍
- 从可观测、可回放的最小 Workflow 开始。
- 把模型限制在检索策略、工具选择、异常归因等确需动态判断的节点。
- 对 Agent 节点设置工具白名单、最大步数、超时、预算与人工接管。
2. Chatbot、Copilot 与 Agent 有什么区别?
简要回答
Chatbot 主要生成回复;Copilot 由人持续发起、审阅和接受建议;Agent 围绕目标自主选择动作并依据观察迭代。是否使用 LLM 或工具都不是充分条件,关键仍是控制流归属和反馈闭环。
追问时可补充:高危动作即便位于 Agent 中,也应通过人在回路(Human-in-the-Loop,HITL)把最终执行权交还给人。
3. ReAct、Plan-and-Execute 与 Reflection 如何选择?
| 模式 | 核心过程 | 优势 | 代价 | 推荐场景 |
|---|---|---|---|---|
| ReAct | 判断 → 行动 → 观察 | 实现直接,工具调用自然 | 容易局部贪心或兜圈 | 步骤较短、结果驱动的任务 |
| Plan-and-Execute | 计划 → 分步执行 → 重规划 | 保留全局任务结构 | 额外模型调用、计划漂移 | 多步骤且存在依赖的任务 |
| Reflection | 生成 → 评估 → 修订 | 可能提升复杂输出质量 | 增加延迟、成本与误判 | 代码、报告等可评审产物 |
三者不是越多越好。所有模式都必须设置最大轮数、Token/费用预算、重复调用检测和明确终止状态。
4. 如何避免 Agent 无限循环?
简要回答
同时使用四类停止机制:任务状态终止、最大步数/时间/费用硬上限、重复动作检测,以及失败或不确定时转人工。不能只在 Prompt 中要求“不要循环”。
三、RAG 与知识库
1. RAG 的完整链路是什么?应该如何评估?
简要回答
检索增强生成(Retrieval-Augmented Generation,RAG)不是“向量库 + Prompt”,而是语料治理、切分、索引、查询处理、召回、重排、上下文装配、带引用生成和评测的完整链路。评估必须分层,否则最终答案错误时无法定位根因。
| 层级 | 关键指标 | 主要回答 |
|---|---|---|
| 召回 | Recall@K、MRR、nDCG | 正确证据是否被找回、排序是否靠前 |
| 上下文 | Context Precision / Recall | 拼给模型的内容是否相关且充分 |
| 生成 | Faithfulness、Answer Correctness、引用正确率 | 答案是否忠于证据、是否正确引用 |
| 业务 | 任务完成率、人工改写率、拒答准确率 | 系统是否真正解决用户问题 |
2. 文档应该如何切分?
先尊重文档结构,再控制 Token 大小。标题层级、代码块、表格和步骤不能被随意截断;每个 Chunk(文本块)保留来源、章节路径、版本、权限等元数据。固定长度切分实现简单,但容易破坏语义,通常只适合作为基线。
追问时说明:切分没有脱离数据集的“最佳参数”,应通过 Recall@K、引用完整性和端到端任务指标做实验,而不是凭经验固定为某个数字。
3. 如何减少 RAG 幻觉?
- 提升语料质量、召回和重排,而不是只改 Prompt。
- 要求答案引用具体证据,并校验引用是否真的支持结论。
- 证据不足时明确拒答或请求补充信息。
- 把检索文档视为不可信输入,隔离其中的提示注入内容。
- 分别监控“没召回”“召回但没使用”“使用后仍答错”三类失败。
4. 混合检索与 Rerank 解决什么问题?
向量检索擅长语义相似,关键词检索擅长专有名词、错误码、版本号和精确字段;混合检索先扩大候选集,再由 Reranker(重排器)按查询相关性排序。代价是额外延迟和成本,因此要用 Recall@K、MRR 与端到端收益验证。
四、MCP 与工具调用
1. MCP 解决什么问题?
简要回答
模型上下文协议(Model Context Protocol,MCP)为 LLM 应用发现和访问 Tools、Resources、Prompts 提供标准接口,降低每个客户端对每个数据源重复适配的成本。它解决的是连接与互操作,不是工具可信、用户授权或业务安全。
2. MCP 与 Function Calling 有什么区别?
Function Calling / Tool Calling 描述模型如何产生结构化工具调用请求;MCP 描述宿主应用如何发现并连接外部能力。前者是模型与编排层之间的调用机制,后者是应用与能力提供方之间的协议,两者可以组合使用。
3. 接入第三方 MCP Server 要检查什么?
- 来源、协议版本、SDK 兼容性与供应链风险。
- 暴露的工具、资源、提示及其真实权限。
- 文件、网络、数据库和进程访问范围。
- 参数校验、超时、结果大小、敏感数据和提示注入。
- 用户授权、撤销、审计和故障隔离。
一句话总结:能被发现不代表允许调用,能被调用不代表可以信任结果。
五、安全、权限与可靠性
1. 为什么 Prompt 无法防住 Prompt Injection?
简要回答
系统指令、用户输入、网页和检索文档最终都会进入同一模型上下文,模型无法提供传统安全机制那种强隔离。Prompt 可以降低误用概率,但无法替代身份鉴别、最小权限、允许列表、参数校验、沙箱和人工审批。
回答时应明确区分:
- 行为层:系统 Prompt、示例、拒答规则。
- 控制层:鉴权、授权、Schema、业务校验、HITL、幂等。
- 执行层:参数化 SQL、受限命令、网络/文件沙箱。
- 审计层:Trace、脱敏日志、告警和回放。
2. 高风险工具为什么同时需要审批和幂等?
审批解决“这次动作是否允许”,幂等解决“同一动作是否被重复执行”。只审批不幂等,超时重试可能重复扣款或重复建单;只幂等不审批,首次越权动作仍会发生。
3. 哪些错误可以重试?
连接重置、明确限流和临时不可用通常可以在满足幂等前提下退避重试;参数非法、权限不足、业务冲突和确定性解析失败不应盲目重试。超时属于结果未知,需要先查询执行状态或依赖幂等键再决定。
六、测试、评估与可观测性
1. 非确定性的 Agent 怎么测试?
简要回答
固定能固定的层,统计不能固定的层。工具、校验和状态转换做确定性单元测试;编排层用 Mock 模型断言轨迹;真实模型使用版本化数据集多次运行,统计任务完成率、工具正确率、安全违规率、延迟和成本。
只比较最终文本会漏掉“答案碰巧正确,但调用了错误工具或越过审批”的危险轨迹。
2. LLM-as-a-Judge 有什么风险?
模型裁判可能受提示、长度、位置、语言风格和自身知识偏差影响。应使用明确 Rubric(评分规则)、打乱候选顺序、抽样人工校准,并与可程序化指标结合;安全违规、权限和结构合法性不能只交给模型判断。
3. 一次 Agent 运行必须记录什么?
至少记录 trace_id、模型/Prompt/工具版本、输入摘要、状态转换、工具名与校验结果、工具耗时与错误、Token、费用、重试、终止原因和人工审批事件。敏感数据应在写日志前脱敏,而不是事后清洗。
4. 上线后看哪些指标?
- 业务:任务完成率、人工改写率、升级人工率。
- 质量:事实正确率、引用正确率、工具选择与参数正确率。
- 安全:越权拦截、注入成功、敏感数据泄露与审批绕过。
- 系统:P50/P95/P99 延迟、错误率、重试率、循环步数。
- 成本:单任务 Token、模型费用、工具费用和缓存命中率。
七、系统设计题:数据库运维 Agent
1. 如何设计一个能排查慢查询、但不能直接误杀会话的 Agent?
简要回答
采用“只读诊断 + 确定性审批 + 受控执行”的分层架构。Agent 可以自主选择查询指标和检索文档,但终止查询属于高危动作,必须生成不可变预览,经有权限的人确认后,由独立执行器使用幂等键完成。
追问准备
- 状态:
diagnosing → pending_approval → approved → executing → verified。 - 权限:诊断工具与执行工具使用不同身份;生产环境默认只读。
- 可靠性:审批参数哈希、幂等键、超时后查状态、不可盲目重试。
- 评估:诊断准确率、错误建议率、审批通过率、执行成功率、误杀率必须为零。
- 可观测性:保留证据、工具轨迹、审批人、执行结果与模型/Prompt 版本。
八、面试前自测
你应能在不依赖框架名的情况下回答:
- 谁决定下一步,状态由谁保存,工具由谁执行?
- 哪些输入不可信,哪些动作必须审批?
- 成功路径和失败路径分别如何测试?
- 用什么指标证明方案有效,而不是“看起来能跑”?
- 当模型、Prompt、工具或数据版本变化时,如何回归与回滚?
九、关联知识库
十、参考
- 小林面试笔记:AI 专题
- Anthropic:Building Effective Agents
- MCP、框架与模型版本以各章列出的官方资料和
verified_at为准。
