面试面经 · 懂车帝
【懂车帝】【Agent 开发】【暑期实习三面】面经(八股+大模型项目+手撕)
海外一年制硕士,投递懂车帝 Agent 开发暑期实习,三面约 60 分钟,面试官是 Agent 方向的技术负责人,全程围绕项目细节和工程落地追问,八股占比不高但问得很深。
题目摘要
1. Go 语言基础:slice 扩容与 map 并发安全
slice的扩容策略(1.18 之后growslice的容量计算逻辑,小于 256 翻倍、大于 256 按 1.25 倍增长并做内存对齐),以及扩容后底层数组指针变化对共享 slice 的影响。map为什么并发读写会 panic(concurrent map read and map write的检测机制),sync.Map的适用场景(读多写少、key 相对稳定),以及它在 Agent 场景下缓存工具描述、会话元数据时是否合适。
2. MySQL / Redis 八股
- MySQL 聚簇索引与回表,
explain里type从ALL到ref的优化路径;为什么 Agent 会话表按session_id建索引后,范围查询created_at仍可能走全表。 - Redis 缓存穿透 / 击穿 / 雪崩的区别与对应方案,重点问了大模型场景下「工具调用结果缓存」如何设计 key(工具名 + 参数规范化后的 hash)以及 TTL 怎么定。
3. Agent 项目深挖:RAG 与 Function Calling
- RAG 链路里 chunk 切分策略、embedding 模型选型、召回后 rerank 的必要性;追问「召回率上不去时你排查了哪些环节」。
- Function Calling 的 schema 设计:工具数量多了之后模型选择准确率下降怎么办,是否做过工具分层或两阶段路由。
- 上下文管理:多轮对话 token 超限时的裁剪策略(滑动窗口 / 摘要压缩 / 关键信息抽取),以及裁剪后如何避免模型「失忆」。
4. 推理成本优化
- 如何统计单次请求的 token 消耗与成本,缓存命中率对成本的影响,是否做过 prompt 精简、模型分级(简单意图走小模型、复杂推理走大模型)。
5. 手撕算法:最小覆盖子串
题意:给字符串 s 和 t,在 s 中找到包含 t 所有字符(含重复)的最短子串,不存在返回空串。
关键思路:滑动窗口 + 哈希计数。右指针扩张直到窗口满足条件,然后左指针收缩并更新最小长度,用 need / window 两个计数表 + valid 变量判断是否满足,时间复杂度 O(n)。面试官要求手写并跑通边界用例(t 长度大于 s、t 有重复字符)。
项目深挖
追问一:你的 RAG 系统召回效果怎么评估的?
参考回答方向:不能只说「感觉还行」。要讲清楚评估集怎么构建(从真实 query 里采样 + 人工标注相关文档),指标用 Recall@K 和 MRR,分别测向量召回、BM25、混合召回三档。如果召回差,先看是切分粒度问题(chunk 太大语义稀释、太小上下文断裂)还是 embedding 与业务语料不匹配,再决定是否加 rerank 或换模型。面试官在意的是你有没有「定位—验证—迭代」的闭环,而不是堆技术名词。
追问二:Function Calling 里模型选错工具或者参数格式错误,你怎么处理?
参考回答方向:分两层。第一层是 schema 层面,参数用 JSON Schema 严格约束,枚举值写全,description 写清楚使用场景和反例;第二层是运行时,解析失败时做一次带错误信息的重试(把报错回传给模型让它修正),仍失败则降级到规则匹配或直接反问用户澄清。可以补充:工具数量超过 20 个后准确率明显下降,所以做了按意图先粗筛候选工具再让模型选,相当于两阶段路由。
追问三:多轮对话上下文怎么管理,成本和效果怎么平衡?
参考回答方向:先说策略分层——最近 N 轮原文保留,更早的对话做摘要压缩,实体和关键约束(比如用户明确说过的车型、预算)单独抽出来存结构化字段,每轮都注入。再说成本:统计过摘要压缩能省多少 token,以及摘要本身也要调模型、也有成本,所以要设阈值,不是每轮都压。最后说效果验证:构造长对话测试用例,看压缩后模型是否还能正确引用早期信息。
准备建议
- 把项目里的每个技术选型都准备好「为什么不用另一个」的答案。 比如为什么用向量库 A 不用 B、为什么 chunk 设 512 不设 256。面试官不关心你用了什么,关心你决策的依据。提前把项目里 3-5 个关键决策点写成「背景—方案对比—结论—验证结果」的四段式。
- 八股不要背结论,要能讲清楚机制和边界。 Go 的 slice 扩容、map 并发、GMP 调度,MySQL 索引失效场景,Redis 持久化和过期策略,这些要能画图讲清楚底层。Agent 岗虽然偏应用,但三面往往会用八股筛掉「只会调 API」的候选人。
- 手撕题按高频清单刷,重点练滑动窗口、双指针、二叉树、DP 和链表。 每道题不仅要写对,还要能说清时间空间复杂度、边界条件、以及如果数据量变大怎么优化。面试时先讲思路再动手,写完主动跑 2-3 个边界用例,这个习惯很加分。
三面结束当天收到 HR 通知通过,约一周后进入 HR 面。
想系统备战大厂大模型/Agent 开发?NiceOffer 提供 SDE+LLM 双轨 1v1 陪跑,合同保底 40w 年薪,文末扫码咨询。