今天这盘面经,难度直接上一个台阶。
不是业务岗,是一场中厂 Agent 开发岗(算法偏向,工业软件 + 文档 RAG)
学员复盘原话我印象很深:这种偏算法的,真得去读 langchain 和 langgraph源码。
意思很明白,背八股在这场面完全不够,面试官拿着你项目的代码模块直接问细节,你没真钻过底层,当场就卒。
这场问的全是 RAG 和 Agent 的工程深水区,文档解析、召回、容错、版本管理、数据溯源,每一个都是生产中真刀真枪的坑。
13 道题,我原样还原,逐题拆成「面试官怎么问 → 怎么答 → 阳哥点评」。学员找我们重点复盘的几题,我把标准答法补在「怎么答」里,照着背能少踩坑。
一、详细介绍你项目的 RAG 流程
面试官怎么问:详细介绍一下你项目的 RAG 流程。
怎么答:我们分两条链。入库链是把文档变成可检索的知识,文档接入后先解析出文本和表格,再按结构切片,每块向量化写进向量库,同时带来源、页码这些元数据。查询链是用户提问后,先做混合召回,向量加关键词各取一部分,再重排精筛 top-k,拼成上下文喂给大模型,生成时要求带引用。

关键我认为是闭环,用户反馈和 badcase 会回流,反过来优化切片策略和召回参数。这样系统不是一次性搭完就完事,而是越用越准。
阳哥点评:RAG 流程谁都能背个「切块向量化召回生成」,分水岭在你能不能讲出「混合召回」「重排」「带引用」「反馈闭环」这四个词。讲全了说明你真做过生产级 RAG,不是跑了个 demo。
二、如何处理数量多、格式多样的大量文档
面试官怎么问:你们怎么处理数量多、格式还多样的大量文档?
怎么答:核心是做接入层统一抽象。不同格式走不同解析器,但上层对 RAG 流水线暴露的接口是一致的,解析完都归一成「带元数据的文本块」。PDF、Word、PPT、图片各自有解析器,图片和扫描件走 OCR 或者多模态模型。
量大的话用批量 pipeline 跑,解析、切片、向量化分步处理,失败的任务单独重试不影响整体。还有质量门禁,解析出来太脏的文档直接拦下人工处理,别污染知识库。最后是增量更新,新文档只增量入向量库,不全量重跑。
阳哥点评:数量多格式杂最考工程能力。你能说出「统一抽象 + 分类型解析器 + 批量 pipeline + 质量门禁 + 增量更新」,面试官就知道你扛过真实文档量,不是拿几篇 markdown 测的。
三、具体的文档解析步骤,比如 PPT
面试官怎么问:具体的文档解析步骤是什么?比如 PPT 你怎么解析的?
怎么答:(学员原话:这不就一百多行模块代码吗,结果真拿来问细节了,当场卒。)我补一份能过的答法。
PPT 解析用 python-pptx 遍历每一页的 shape。文本型的 shape 直接提文字,表格型的 shape 按行列提,图片型的 shape 把图抠出来,要么 OCR 要么丢给多模态模型出描述。备注页的文字也要提,很多干货在备注里。图表单独处理,转成图片再走视觉模型。
关键是保留结构信息,每一块记上页码、顺序、标题层级,作为元数据,后面切片和溯源都靠它。所以你说一百多行,没错,但每一行对应的就是「shape 类型判断 + 提取 + 元数据挂载」这一套,面试官问细节就是问你这些分支有没有覆盖全。
阳哥点评:这题卒的人,是只记得「用库提文本」,答不出分支处理。工业软件的 PPT 满是图表和公式,你只要讲清「文本、表格、图片、备注、图表分别怎么提、结构信息怎么留」,一百多行的工作量反而成了你的加分项,证明你真写过。
四、召回文档块召不回有哪些常见原因
面试官怎么问:召回的时候文档块召不回来,常见的原因有哪些?
怎么答:学员当时答了分块大小、overlap、数据清洗、超出上下文,方向对但不够。我补全一份更系统的清单。
分块切得太碎,一句话被腰斩,语义断了自然召不回。embedding 模型没做领域适配,工业术语、专名向量化后区分度差。只用了向量召回,没上 BM25,编号、型号这类专名向量检索很弱。元数据过滤条件写太严,把该召的也过滤掉了。query 和文档用词不一致,同义词没桥接。top-k 设太小,相关块排在后面被截掉。分数阈值卡太死, borderline 的被扔了。还有索引没及时更新,新文档根本不在库里。
阳哥点评:这题是 RAG 岗的试金石。你能从「分块、模型、召回方式、过滤、同义、top-k、阈值、索引」八个角度列原因,说明你真调过召回。只答两三个的,基本没碰过真实坏召回,面试官一眼看穿。
五、召回和重排后,大模型仍然有丢失怎么处理
面试官怎么问:你 RAG 召回和重排之后,大模型还是把内容弄丢了,怎么处理?
怎么答:先确认是不是真丢失还是没进上下文。处理上几招。召回阶段做多路召回扩候选集,别只靠一路。query 做改写或者问题分解,把隐含需求显式化。生成时强制引用,让模型标出来源块,没法标的就说明没用上。再用一步丢失检测,让模型自查「你的回答是否都来自给定上下文」,不一致就触发二次检索。
兜底还可以接知识图谱或者网络检索补刀,实在覆盖不到就设计成不确定拒答,别硬编。
阳哥点评:这题考的是「召回之后还不够怎么办」的工程意识。很多人以为重排完就万事大吉,真做过的都知道还有 query 改写、引用强制、丢失检测、拒答这几道保险。答得出这几层,RAG 深度就立住了。
六、Agent 系统的鲁棒性和容错性怎么设计
面试官怎么问:你们 Agent 整个系统的鲁棒性和容错性是怎么设计的?
怎么答:我们做多层兜底,核心原则是任何一步都要假设会失败,而且失败要能接着跑,不是从头来。

模型调用层加重试加退避加降级,调不通就换模型或者走规则。HTTP 层 try except 之外还要熔断和幂等,避免雪崩和重复写。多轮 RAG 把中间状态做 checkpoint 持久化,崩了从最近一步恢复,不用整轮重跑。框架层比如 LangGraph 用 checkpointer 把图状态落库,出错节点能被捕获、能人工介入、能补偿。
阳哥点评:鲁棒性这题最忌讳答成「我们加了个 try catch」。能讲出「分层、重试、降级、熔断、checkpoint、可恢复」这套,才是生产级思维。面试官要的是你系统崩过、所以才懂兜底。
七、Skill 体系版本管理的具体实践
面试官怎么问:你们 Skill 体系的版本管理具体怎么做的?
怎么答:(学员这题卒了,我补标准答法。)我们把每个 skill 当代码和配置一起管,不当黑盒。
每个 skill 有 manifest,写清名称、描述、版本号、入参出参 schema。版本用语义化版本号,破坏性改动升主版本。所有 skill 进注册表统一发现,运行时按版本号加载,不会出现「改一个全崩」。上线走灰度,新版本先小流量,指标没问题再全量。出问题一键回滚到上一个稳定版。变更都有记录,谁改的、改了啥、为什么改,全留痕。
阳哥点评:Skill 版本管理是 Agent 工程化的硬骨头,也是中厂最爱挖的点。卒的人大多是没把 skill 当资产管。记住关键词:manifest、语义版本、注册表、灰度、回滚。这五样讲出来,你就是做过大规模 Agent 的人。
八、提示词的版本迭代怎么管理
面试官怎么问:你们提示词的版本迭代是怎么管理的?
怎么答:(这题学员也卒了,补答法。)提示词我们模板化进代码仓库,不当散落的字符串。
每条提示词带版本号和变更说明,改了什么、为什么改都记着。关键是接评测集回归,改一条提示词就跑一遍评测看指标涨跌,不能凭感觉。线上走灰度,新提示词先放一小部分流量,对比老版本效果。历史版本全存档,效果不好立刻回滚。这样提示词迭代是有数据支撑的,不是拍脑袋。
阳哥点评:提示词管理看着简单,真做工程化的人都懂坑。没评测集回归的提示词迭代就是瞎调,今天好了明天崩。你能说出「模板化、版本号、评测回归、灰度、回滚」,面试官就知道你把这事当系统工程在做。
九、模型调用失败、HTTP 中断,多轮 RAG 下怎么容错
面试官怎么问:模型调用失败或者 HTTP 请求中断,特别是多轮 RAG 流程下,容错机制怎么做的?
怎么答:学员当时只答了 try except,确实不够。多轮 RAG 的容错要比单轮重得多。
首先每轮的中间状态做 checkpoint 持久化,把已召回的块、已生成的半成品、当前步序号都落库。某一步挂了,不用整轮重来,从最近 checkpoint 接着跑,已经召回的块不重复调模型,省钱也省时间。重试要带指数退避和上限,不能死循环。超时和断线要能被捕获并恢复,不是抛异常就崩。还要幂等,重试不会重复写数据。上游扛不住就熔断,模型实在调不通就降级到规则或者缓存答案。
阳哥点评:这题答「try except」只是入门,面试官要的是多轮状态下的可恢复性。 checkpoint、步骤级重试、幂等、熔断、降级,这五个词答全,多轮容错才立得住。学员卒在只讲了第一层,补上后面四层就稳了。
十、讲一下 LangGraph 自己的容错设计
面试官怎么问:讲一下 LangGraph 自己的容错设计。
怎么答:LangGraph 的容错核心是状态持久化加节点级控制。它用 checkpointer 把整张图的状态按步骤落库,所以流程跑到一半崩了,重启能从最后一个 checkpoint 恢复,不用重头跑。每个节点可以单独配重试,失败自动重跑不牵连全图。
它还支持 interrupt,流程跑到某个节点可以主动暂停,等人确认或者补数据再继续,特别适合需要人工介入的长流程。出错时有补偿机制,可以把出错那一步往回退、做清理。因为状态都在图里管理,一个节点的异常被图捕获,不会直接让整个进程挂掉。
阳哥点评:这题就是学员复盘里说的「得读 langgraph 源码」的典型。背得出 checkpointer、节点重试、interrupt、补偿这四点,说明你真翻过源码,不是只看官方 quickstart。中厂算法岗就吃这一套。
十一、正则和 RAG 之后,大模型仍有幻觉,怎么治理
面试官怎么问:你正则和 RAG 之后,大模型还是有幻觉,你们怎么治理?
怎么答:幻觉治理是组合拳,单靠 RAG 堵不住。第一是检索质量,垃圾进垃圾出,切片和召回做干净是基础。第二是约束解码和引用校验,要求答案每一句都能对应到召回的块,对不上的就砍。第三是不确定性校准,模型自己置信度低就设计成拒答或者转人工,别硬编。
第四是后验事实核查,生成完再跑一遍校验,关键数字和实体对不对。第五是人工复核闭环,高风险场景人确认后再发出去。正则和规则做兜底,固定事实不走模型。这些一起上,幻觉率才能压到可接受。
阳哥点评:这题最怕答成「用 RAG 就不会幻觉了」,那是外行话。你能从检索、约束、拒答、核查、复核、规则六层讲治理,说明你真被幻觉坑过、也真解决过。面试官听到「引用校验」和「拒答」,基本就信你是干真的。
十二、如何做数据溯源
面试官怎么问:你们怎么做的数据溯源?
怎么答:溯源要从入库就埋好。每个切片块都带元数据,来源文件、页码、段落、章节,写进向量库。生成时要求模型输出带引用,定位到具体块。检索日志全留,哪次 query 召回了哪些块、用了哪个块生成,都有记录。
端到端用 id 串联,用户一条 query 从进来到召回哪些块、生成什么答案,整条链路可追。出了问题能精确定位是切片切错了、召回召偏了还是模型编了,反推优化点在哪。
阳哥点评:溯源看着是附属功能,其实是 RAG 能不能持续优化的命门。没溯源,badcase 永远查不出根因。你能讲清「块级元数据 + 引用 + 检索日志 + 端到端 id」,说明你把 RAG 当可观测系统在做,这是高阶信号。
十三、如何做客户反馈
面试官怎么问:你们怎么收集客户反馈?
怎么答:我们分显式和隐式。显式是产品上放点赞、点踩、纠错按钮,用户直接标对错。隐式是行为数据,答案被采纳没、停留多久、有没有追问、有没有转人工,这些比打分更真实。
反馈统一进 badcase 库,定期回流优化,该调切片的调切片、该改提示词的改提示词、该补数据的补数据。最后做闭环看板,反馈量、解决率、复发率都看得见,知道优化有没有用。
阳哥点评:客户反馈是 RAG 系统越用越准的燃料。答得出「显式加隐式、进 badcase、回流优化、闭环看板」,说明你想的是长期迭代,不是交付即结束。这点中厂特别看重,因为他们要的是能一直变好的系统。
阳哥总结
回过头看这 13 题,你会明白学员那句复盘有多准:偏算法的 Agent 岗,真得去读 langchain 和 langgraph 源码。
这场的提问方式很典型,不考你背概念,拿着你项目的代码模块直接问细节,PPT 解析怎么写、Skill 怎么版本化、LangGraph 怎么容错。每一个卒点,都是「只看过文档、没钻过源码」的人才会栽的地方。所以准备这类岗,别只刷八股,把常用的 Agent 框架源码翻一遍,把你自己项目里那一百多行的解析模块讲透,比背十个原理管用。
把工程细节讲到源码级,比把概念背到滚瓜烂熟,更让中厂算法面试官点头。
欢迎链接
我是王中阳,粉丝们都叫我阳哥。
自媒体全网30万+读者,人民邮电出版社、掘金、极客时间、极客学院签约作者,各大技术社区专家博主。靠AI编程在北京买房买车的程序员创业者。
如果你正在转 AI、简历投出去没回应、面试总卡在项目深度上,欢迎加我微信聊聊。
我整理了一份《后端转 AI 高薪岗知识地图》,加我微信就送你,帮你少走半年弯路。
个人微信:wangzhongyang1993
也可以扫下方企业微信二维码,直接找我:

如果你想系统学习 AI Agent 工程化落地,快速补齐生产级项目经验,冲击 25K+ 的 AI 后端岗,欢迎了解我的 AI 就业陪跑训练营。
从简历包装、项目打磨、模拟面试到 Offer 谈判,全程一对一陪跑,帮你少走半年弯路。
点击下方「阅读原文」,了解训练营详情。
夜雨聆风