哔哩哔哩大模型面试岗,我悟了!!!

哔哩哔哩大模型面试岗,我悟了!!!

大家好,我是Yuki。周末跟一个在B站面试大模型算法实习岗的学员聊了整整两个小时,他说这场面试让他“一边冒汗一边开窍”。我让他把面试题完整复述了一遍,今天就把这场高质量的技术对话分享给大家。

说实话,这几道题问得是真有水平——不是那种背八股文能应付的,而是实打实考察你做项目的深度和思考力。

面试复盘:一场关于Agent的技术拷问

第一关:你现在做的Agent到底是什么?

面试官开门见山,没有废话。

如果你回答“就是一个能调用工具的AI”,那基本就凉了。面试官要听的是:你对自己做的事情有没有系统性的理解

正确的打开方式是这样的:

“我负责的是一个面向科研场景的辅助Agent。它的核心定位不是替代研究者,而是解决科研流程中的三个痛点:文献检索碎片化、实验记录不规范、代码复现困难。我们把它设计成一个多角色协作系统,每个Agent负责科研环节中的一个具体任务。”

看出来差别了吗?先说痛点,再说方案,最后说架构。这是第一道门槛。

第二关:整个流程怎么设计的?

面试官追问流程设计,意思是在问:你有没有真正理解业务流和技术流的映射关系

这里我画了一张图帮助大家理解:

面试官真正想看的是:你能不能把“一个Agent”拆解成“一组Agent”,并且说清楚它们之间怎么配合

我那位学员答得不错,他提到了一个关键设计:反馈闭环。子Agent的执行结果会回流到主Agent,主Agent根据结果决定是直接输出还是启动修正流程。这个细节让面试官点了点头。

第三关:你说文献检索,是Deep Research吗?代码层面怎么实现的?

这个问题很刁钻。面试官在测试两件事:一是你能不能区分概念,二是你有没有真的写过代码。

先区分概念:Deep Research是一个完整的自主研究流程,包含假设生成、实验验证、结果整合;而你做的文献检索只是其中的一个模块。不要给自己脸上贴金,也不要妄自菲薄,准确表达即可。

再谈实现,这才是重头戏。这位学员当时是这么回答的:

“代码层面主要解决三个问题:检索策略、结果解析、质量评估。”

检索策略用的是查询扩展——用户输入‘LLM推理效率’,我们通过同义词库和领域本体扩展成3-5个检索式,并行访问arXiv、Semantic Scholar、PubMed等多个数据源。

结果解析麻烦的是PDF。我们用了一种分层解析方案:先用PyMuPDF快速提取文本和基础元数据,对包含公式和复杂表格的论文再调起Grobid做结构化解析。

质量评估这块,我们做了一个轻量级的相关性打分模型,基于SBERT,对标题和摘要做向量召回,过滤掉相关性低于阈值的结果。”

面试官接着问了一句:“那你们怎么处理检索结果的去重?”——这位学员说他们用了SimHash加上DOI精确匹配,双重去重。面试官明显对这个回答比较满意。

第四关:主Agent和子Agent共用同一个上下文吗?

这个问题考察的是对多Agent通信机制的理解。

正确答案是:分场景讨论,没有银弹

这位学员的回答逻辑是:

  • 共享场景:当多个Agents需要协作完成一个连贯任务时,比如文献调研→提炼观点→生成综述,共享上下文能避免信息断层。
  • 不共享场景:当一个子Agent只负责独立子任务(比如纯代码生成)时,让它共享主Agent的完整历史只会引入噪声,降低性能,还容易泄露不该泄露的信息。

他最后总结了一句:“我们的方案是选择性共享——主Agent维护一个核心上下文窗口,子Agent只接收过滤后的相关片段。”这个回答有深度,说明他真的踩过坑。

第五关:讲一讲Tool Calling的具体实现

这道题是实打实的技术考察。大模型本身不能调用工具,它只能“表示想调用的意图”——这是很多新手容易搞混的点。

完整的实现流程是这样的:

技术细节上需要关注三层:

  1. 工具描述层:用OpenAI的Function Calling格式或Anthropic的Tool Use格式,把工具的名称、描述、参数schema传给大模型。
  2. 解析执行层:大模型返回的是一个JSON结构,你需要解析出tool名称和参数,然后去注册中心找到对应工具的真实函数,执行它。
  3. 结果回填层:工具执行的输出要重新喂给大模型,让它基于工具结果生成自然语言回复。

面试官可能会追问:“如果工具执行失败怎么办?”——这位学员回答了他们做了重试机制和降级策略。比如搜索引擎超时了,会尝试备用源;如果所有源都失败了,会明确告诉用户“工具调用失败,以下是根据模型自身知识生成的回答”,并且标注出来。这个细节很加分。

第六关:知道渐进式披露吗?解释一下

这个问题问得非常聪明。渐进式披露最初是UI/UX领域的概念,放到Agent场景里,指的是不要一次性给用户塞太多信息,而是按需、分层次地展示

举几个例子你就明白了:

  • 文献检索:先展示标题、作者、年份、摘要摘要,用户点开才显示全文解析结果和关键图表
  • 代码生成:先展示代码的整体结构和核心函数,用户确认逻辑后再展开细节实现和依赖说明
  • 多步推理:Agent先给出最终结论,用户追问“为什么”时才展开推理链

这位学员还举了一个反面案例:他们刚开始做Agent的时候,每次返回直接把几千字的完整分析全甩给用户,结果用户反馈“看着很炫酷但不知道怎么用”。后来改成分层展示,用户停留时长反而提升了。

面试官听完微微一笑——这说明你真的用过、踩过坑、优化过。

第七关:用LangGraph遇到的最大困难是什么?

这道题是压轴题。面试官不是在问你LangGraph的缺点,而是在问:你在复杂系统里解决问题的能力

这位学员的回答很真诚,他说最大的困难是状态管理的不可预测性

具体来说:

“LangGraph虽然提供了状态图的概念,但当你的Graph有十几个节点、几十条条件边时,状态在节点间的传递经常出现‘幽灵变量’——某些字段莫名其妙变成了None。我们排查了很久,最后发现是LangGraph在深拷贝状态时的bug。我们的解决方案是重新封装了状态传递层,所有跨节点的关键数据强制用JSON序列化后再反序列化,防止引用传递带来的副作用。”

他还补充了第二个困难:调试体验差。LangGraph没有像LangSmith那样好用的可视化调试工具,他们被迫自己写了一个状态日志记录器,每个节点进出都打印状态快照,才能追踪问题的根源。

这个回答好在哪里?承认了困难,但没有甩锅给框架,而是说了自己怎么解决和规避的。这就是面试官想看到的态度。

这场面试给我的启发

复盘完这七道题,我想说三点:

第一,大模型面试已经告别“八股文时代”。不会有人再问你“什么是自注意力机制”这种问题,因为答案GPT都能告诉你。面试官要考察的是:你在真实场景里做过什么、遇到了什么问题、怎么解决的

第二,Agent是一个系统工程,不是模型调试。这七道题里有六道都在问系统设计、数据流、异常处理、状态管理——这些都是后端和架构的范畴。想做Agent的同学,建议补一补系统设计的基础。

第三,深度比广度重要一万倍。用过十个框架不如把一个框架的坑讲透。这位学员被追问LangGraph的时候,那种“我们踩过坑”的真实感,是任何面试技巧都没法伪装的。

如果觉得这篇文章对你有帮助,欢迎点赞、在看、转发。你的支持是我继续深挖高质量面经的最大动力。

下期预告:某大厂RAG系统的三面实录,从Naive RAG到Graph RAG的演进之路,敬请期待。

评论区聊聊:你在Agent开发中踩过最大的坑是什么?

本文已获得学员授权发布,关键信息已做脱敏处理。

评论区互动:你在面试中遇到过哪些“本以为会了,一细问就跪”的题目?留言区一起吐槽~

#我的求职进度条##金三银四,你的春招进行到哪个阶段了?##校招第一份工作你干了多久?#
全部评论
大模型应用开发岗?
点赞 回复 分享
发布于 05-05 21:50 美国

相关推荐

04-30 12:02
门头沟学院 Java
攒人品中,祝大家都能拿到满意的Offer!1、你们团队的multi-agents是你自己设计的?还是你只是完成了其中的一部分?2、所以你只是做了,没有参与底层设计对吧,讲讲你在团队里日常都做什么?3、你门团队的agent端到端成功率和工具误调用率是怎么量化的?用了什么工具?怎么去进行改进的?4、我看你还有做医学语料的预处理工作,这块你们是怎么分工的?5、你刚才讲了那么多步骤,所有工作都是你一个人完成的吗?或者说你主要负责哪几个环节6、论文有很多不同的形式,你在做layout-aware parsing的时候,具体用的哪个工具去解析pdf?有没有横向对比其他工具?7、噪声剔除的工作你平时是怎么做的?技术方案是什么?能不能详细讲一下8、有多篇文章出现了重复片段,你是怎么去识别并归纳的?9、业界对chunk切分和边界修正的主流策略是什么?10、假设我现在有一个表格被切分成了两半,你怎么在众多paper中找到并纠错?11、你们做的Graph RAG用了什么工具去进行评价?12、你说的这个Graph里的三元组使用LLM去进行抽取的吗?怎么保证大模型不会因上下文过长而出现幻觉?13、那你在设计三元组的时候是人工操作还是AI?有没有用到学术界提供的映射表之类的?14、假设大模型在抽取实体的时候出现错误了,你怎么去排查?15、我看你有在Graph RAG基础上做community summary,讲一下你这个设计思路16、你怎么看待你做的这个图检索增强生成,和市面上常见的向量检索、混合检索有什么区别?17、不同的RAG有做横向对比并量化成效吗?笔试题:用AI IDE写一个工具,语言不限,要求是能准确的从给定文本提炼出关键实体,并把对应的entity、relationship、claim用标准json形式输出。
查看17道真题和解析
点赞 评论 收藏
分享
04-28 17:31
已编辑
南京林业大学 后端工程师
发面经 攒人品面完后第二天挂1. 自我介绍2. 讲一下react和plan-excute-replan的使用场景3. 讲一下react和plan-excute-replan的区别(回答了几个面试官觉得不够又追问,不会了)4. 设计agent的时候怎么能在保证效果的前提下减少token消耗?(不会,随便蒙了几条)5. 思考一下有没有其他的方案,能够减少token消耗?(不会,蒙的是特定领域微调和后训练增强模型能力)6. function call、mcp、skill的区别?7.  skills和rules的区别?(不会)8.  大模型调参过程中经常调两个参数,一个是温度,一个是topK,你怎么理解这两个参数?(不会)9.  redis的hash大key怎么优化?10. redis的hash大key优化后怎么兼容老业务老数据?新业务怎么用优化后的缓存?老缓存删不删?11. 为什么业务实际应用中要避免使用threadlocal?(头一次听说要避免使用threadlocal,不会)12. 事务的特性13. 之前实习中最大的难点是什么?jdk用的什么版本?14. java创建一个对象,虚拟机会有哪些变化?JVM的内存会有哪些变化?15. 垃圾回收的触发条件16. TCP怎么保证数据包一定能到达?17. TCP拥塞控制怎么做的?(具体细节忘了)反问:1. 什么业务?- 业务安全中的内容安全相关,检测视频、音频、文字中的违法行为2. 具体涉及哪些工作?运维和开发占比怎么样?- 简单来说要负责所有事情的研发。大概20%运维。80%开发。大模型来了后之前所有的运维的同学全转开发了。
查看17道真题和解析
点赞 评论 收藏
分享
评论
3
7
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务