RAG、Agent、工具调用:大模型岗位面试怎么答

· · 9 分钟阅读

大模型应用岗(做 RAG、Agent、工具调用的那类岗位)的面试,常见问题可以归成三层:原理与概念(RAG 是什么、工具调用怎么走)、工程取舍(切块、检索、评估、出错怎么办)、安全与边界(幻觉、提示注入、权限)。真正拉开差距的,通常是第二层。本文只写能对照官方文档核实的内容,并标出哪些是文档原话、哪些是我们的经验归纳;文中的回答示例都是示意,请用你自己的项目经历来答,不要照背。

先说范围:这篇文章不做什么

我们没有收集任何具体公司的面试题,也不会编造“某大厂面经”。题目是按岗位通用知识点归纳的,答案对照官方文档校对。模型、框架更新很快,凡是和具体版本相关的内容,请以你使用的 API 提供商和框架的当前文档为准。

一、RAG:从“是什么”追问到“检索错了怎么办”

1. RAG 解决什么问题?

让模型在回答前先从外部知识库取回相关资料,再基于资料生成。适合知识会更新、或模型本身没见过的私有资料。注意不要说成“RAG 能消除幻觉”:检索不到或检索错了,模型仍然可能答错。

2. 切块(chunking)会带来什么问题?

Anthropic 在《Contextual Retrieval》一文里指出,传统 RAG 在编码时会丢失上下文。文中的例子是:一个块里写着“公司营收环比增长 3%”,但没有写是哪家公司、哪个季度,这样的块既难被检索到,也难被用好。回答时可以先说出这个现象,再说你会怎么补救。

3. 怎么改进检索?

该文介绍的做法是:在编码前给每个块加上说明它所处位置的上下文(Contextual Embeddings 和 Contextual BM25)。文中给出的结果是:两者结合,前 20 个块的检索失败率下降 49%(5.7% → 2.9%);再加重排序,下降 67%(5.7% → 1.9%)。这是该文在其自有数据集上的报告结果,面试里引用时要说明来源和条件,别当成通用数字。

4. 一定要用 RAG 吗?

不一定。同一篇文章提到,知识库小于大约 20 万 token 时,可以直接把整个知识库放进提示词,并借助提示缓存降低延迟和成本,这时不需要 RAG。能说出“什么情况下不用”,比只会说“怎么用”更加分。

5. 怎么评估一个 RAG 系统?

这一条是我们的经验归纳,不是官方条文:把“检索”和“生成”分开评估。检索看正确资料有没有进入候选(比如前 K 个块里是否命中),生成看答案是否忠于资料。分开测,才知道问题出在哪一环。如果你做过,讲你用的测试集怎么来、怎么标注;没做过就如实说。

二、Agent 与工具调用:把“循环”讲清楚

6. 工具调用的流程是什么?

Anthropic 的文档写明:模型根据用户请求和工具描述决定是否调用工具,返回一个结构化的调用,由你的应用执行(客户端工具)或由提供商执行(服务端工具)。客户端工具的往返是:模型返回 stop_reason: "tool_use" 和 tool_use 块,你的代码执行后把 tool_result 发回去,模型再据此作答。OpenAI 的函数调用文档的流程也类似:带上工具发请求、收到工具调用、执行并返回结果、最终得到答案(或更多工具调用)。

7. Agent 和“一次工具调用”有什么区别?

一个常见的讲法:Agent 是把这个往返放进循环里,模型每一轮决定是继续调用工具还是给出最终回答。这是概念归纳;要补充你的循环怎么终止(模型不再请求工具、达到最大步数、预算用尽等),这部分是你自己的设计,不是 API 自动给你的。

8. 工具描述写得好不好有什么影响?

Anthropic 文档说,模型是根据用户请求和工具描述来决定是否调用的。OpenAI 文档建议明确描述函数的目的、每个参数(及其格式)以及输出代表什么。工具多时也有成本:OpenAI 文档建议一个回合开始时可用的函数少于 20 个(文档称这只是软性建议)。

9. 怎么让参数符合 schema?

两家文档都有严格模式:OpenAI 建议始终开启 strict mode;Anthropic 文档说在自定义工具定义里加 strict: true,可确保工具调用与 schema 完全匹配。即便如此,业务层的校验(权限、取值范围、幂等)仍然要自己做。

10. 缺少必填参数时模型会怎样?

Anthropic 文档提到,当用户提示没有提供足够的必填参数时,不同模型表现不同:有的更可能追问,有的可能推断一个看似合理的值,且这种行为不保证。所以对有副作用的工具(下单、转账、删除),要在应用侧确认参数,而不是依赖模型“会问”。

三、MCP:被问到“协议”时怎么答

11. MCP 是什么?

据 MCP 规范,它是一个开放协议,用标准化的方式把 LLM 应用与外部数据源和工具连接起来,消息格式基于 JSON-RPC 2.0,角色分为 Host(发起连接的 LLM 应用)、Client(宿主里的连接器)、Server(提供上下文和能力的服务)。服务端可提供三类能力:Resources(上下文和数据)、Prompts(模板化消息和工作流)、Tools(供模型执行的函数)。

12. 用 MCP 要注意什么安全问题?

规范的“安全与信任”部分写明:工具代表任意代码执行,必须谨慎对待;对工具行为的描述(例如 annotations)应被视为不可信,除非来自可信服务端;宿主在调用任何工具之前必须取得用户的明确同意。答这题,可以顺势谈到提示注入:外部内容和工具返回的内容都不应被当作指令(这是安全实践,不是规范原话)。

四、高频问题速查表

整理于 2026 年 11 月 12 日;“依据”列为对应的官方文档,其余为经验归纳
问题答题要点依据
RAG 为什么要切块?控制检索粒度;但切块会丢上下文,需要补救Anthropic Contextual Retrieval
怎么降低检索失败率?给块加上下文、BM25 与向量检索结合、重排序Anthropic Contextual Retrieval
什么时候不用 RAG?知识库很小(文中约 20 万 token 以内),可直接放进提示词Anthropic Contextual Retrieval
工具调用的往返是什么?tool_use,应用执行,tool_result 回传,再生成Anthropic / OpenAI 文档
如何保证参数合法?strict 模式加应用侧校验Anthropic / OpenAI 文档
工具太多怎么办?减少同时可用的数量,按需加载OpenAI 文档
MCP 的三类能力?Resources、Prompts、ToolsMCP 规范
工具调用的安全原则?用户同意;工具描述视为不可信MCP 规范
怎么评估 RAG?检索与生成分开测经验归纳
Agent 如何终止?不再请求工具、最大步数、预算上限经验归纳

五、怎么回答才不被一追到底

  1. 先给一句话结论,再说取舍:“RAG 适合知识会更新的场景;资料很小时直接放进提示词更简单。”
  2. 区分“文档说的”和“我做过的”:引用官方数字时说明来源;说自己的经验时说明场景和规模。
  3. 讲失败案例:检索不到、工具参数错误、循环不收敛,你是怎么发现和修的。没有就如实说没有,不要虚构项目或指标。
  4. 承认版本差异:“具体参数以当前文档为准”,比自信地背一个可能过期的细节更稳。

系统设计类的开放题可以参考《系统设计面试:一套每次都能照跑的框架》,技术面试的整体准备见《技术面试怎么准备》,如果面试要用英文,见《英文技术面试》。

如果面试中被问住了

可以先复述问题、确认范围,再讲你的推理路径。说“这块我没有在生产里做过,但按文档的描述,我会这样设计……”是可以接受的回答。

Interview Copilot 是桌面端的实时面试提示工具:监听通话的系统声音,识别问题并给出回答提示,也能对屏幕上的代码题截图给出思路,有无需绑卡的免费方案。是否可以使用辅助工具由面试方决定,使用前请先问招聘方,不允许就不要用;在 macOS 和 Windows 上它的窗口会请求不被屏幕捕获,在 Linux 上窗口可见,实际效果取决于你的共享软件,请自己私下测试。了解产品:AI 编程面试助手、免费方案。

参考来源

以上页面于 2026 年 11 月 12 日查阅。API 与框架更新频繁,请以官方最新文档为准。

FAQ

大模型应用岗面试一般考什么?

大致分三层:RAG、工具调用等原理概念,切块、检索、评估、出错处理等工程取舍,以及幻觉、提示注入、权限等安全边界。本文是按通用知识点归纳的,并非某家公司的真题。

RAG 一定比直接放进提示词好吗?

不一定。Anthropic 的 Contextual Retrieval 一文提到,知识库小于约 20 万 token 时,可以直接把整个知识库放进提示词,并用提示缓存降低成本,此时不需要 RAG。

怎么降低 RAG 的检索失败率?

该文的做法是给每个块在编码前加上上下文,并结合 BM25 与重排序。文中报告在其数据集上前 20 块检索失败率分别下降 49% 和 67%。引用时要说明这是该文的报告结果。

Agent 的工具调用流程是什么?

模型返回结构化的工具调用,应用执行后把结果发回,模型据此继续或给出最终回答。Anthropic 文档中对应 stop_reason 为 tool_use 的响应和 tool_result 回传;Agent 通常是把这个往返放进循环。

MCP 的三类服务端能力是什么?

据 MCP 规范,服务端可提供 Resources(上下文和数据)、Prompts(模板化消息和工作流)和 Tools(供模型执行的函数)。规范同时强调调用工具前宿主必须取得用户明确同意。

回答不上来时怎么办?

如实说明没有在生产里做过,再讲你依据文档的推理路径,并说明细节以当前文档为准。不要编造项目、指标或公司名。面试前可向招聘方确认是否允许使用辅助工具。

应用在这里如何帮忙

相关文章

继续阅读