面试面经 · 网易
【网易】【Agent 开发】【暑期实习HR面】面经(八股+大模型项目+手撕)
网易 Agent 开发 暑期实习 HR 面经
背景:海外一年制硕士,计算机相关专业,投递网易伏羲实验室 Agent 开发岗位,HR 面穿插两轮技术交叉面,整体流程偏实战。
题目摘要
- 编程语言基础(Java):HashMap 底层结构、ConcurrentHashMap 分段锁与 CAS 机制、JVM 内存区域划分及 GC 触发条件。
- MySQL/Redis 八股:InnoDB 索引结构为什么用 B+ 树、事务隔离级别与 MVCC、Redis 持久化 RDB/AOF 对比、缓存穿透/击穿/雪崩的解决方案。
- 大模型项目深挖:基于开源 LLM 的 RAG 问答系统,追问检索召回率优化、上下文窗口管理、Function Calling 实现细节、推理成本优化策略。
- 手撕算法题:合并区间(LeetCode 56 变体)——给定若干可能重叠的区间,要求合并后输出不重叠区间列表。关键思路:按左端点排序,遍历时维护当前区间右边界,若下一区间左端点大于当前右边界则输出当前区间并重置,否则更新右边界为两者较大值,时间复杂度 O(n log n)。
项目深挖
追问 1:你的 RAG 系统在召回阶段怎么处理 query 与文档的语义鸿沟?
参考回答方向:先拆解问题——是 query 表述模糊还是文档粒度不匹配。我当时的做法是双路召回:BM25 做关键词精确匹配 + embedding 向量做语义召回,再用 RRF(Reciprocal Rank Fusion)融合排序。另外针对 query 过短的问题,加了一层 query 改写模块(基于小模型生成多个子查询),实测 Recall@5 提升约 12%。面试官追问"改写模块的延迟开销怎么控制",我回答用 1.5B 模型 + 缓存高频 query,单次改写控制在 150ms 内。
追问 2:Function Calling 在 Agent 里是怎么设计和落地的?
参考回答方向:先说明场景——Agent 需要调用内部 API 查询天气、日历、数据库等。设计上采用 JSON Schema 描述函数签名,LLM 输出结构化 JSON 后做参数校验和意图确认。关键难点是多轮对话中的参数补全:用户第一次说"查下周五的天气",缺少地点,Agent 需要反问而不是直接报错。我实现了一个 slot-filling 状态机,跟踪已获取参数,缺失时生成澄清问题。面试官接着问"如果 LLM 输出 JSON 格式错误怎么办",我答了防御性重试 + 正则修正 + 降级为纯文本解析三层兜底。
追问 3:推理成本优化具体做了什么?
参考回答方向:从两个维度展开——显存和 token 消耗。显存方面用 vLLM 做 PagedAttention 管理 KV Cache,配合 continuous batching 提升吞吐;token 方面做了上下文裁剪,只保留最近 N 轮对话 + 与当前 query 相关的检索片段,同时把 system prompt 从 800 token 压缩到 300 token 以内。另外对简单意图(如天气查询)走小模型(7B)分流,复杂推理才调用大模型(72B),整体成本下降约 40%。面试官追问"怎么判断意图复杂度",我答基于分类器 + 置信度阈值,简单规则先过滤。
准备建议
- 项目要能讲出"数据" :不要只说"我做了 RAG",要准备 Recall@k、准确率、延迟、成本等具体数字,面试官听到"提升 12%""下降 40%"这类量化结果会明显更感兴趣。提前在项目里埋好 benchmark 结果。
- 手撕算法按"高频 50 题"刷两遍:Agent 岗不考难题偏题,但区间合并、TopK、LRU、二叉树遍历这类题必须闭眼写。重点练边界条件(空数组、单元素、完全重叠)和时间复杂度推导,面试时先讲思路再动笔,写完后主动跑一个测试用例。
- 准备 2-3 个"踩坑故事" :HR 面和交叉面都爱问"你遇到过什么技术难点怎么解决的"。挑一个调试了很久的 bug(比如 embedding 维度不一致导致检索报错、并发调用 LLM 时 API 限流),讲清楚定位过程和最终方案,比背八股更有区分度。
结果反馈
一面通过,约 5 天后收到二面通知。整体感受是网易更看重工程落地能力和对成本/性能的敏感度,纯理论八股占比不高,建议多花时间打磨项目细节。
想系统备战大厂大模型/Agent 开发?NiceOffer 提供 SDE+LLM 双轨 1v1 陪跑,合同保底 40w 年薪,文末扫码咨询。