面试面经 · 小鹏汽车
【小鹏汽车】【Agent 开发】【暑期实习HR面】面经(八股+大模型项目+手撕)
海外一年制硕士,投递小鹏汽车 Agent 开发暑期实习,HR 面(实为技术初筛 + HR 混合面)约 40 分钟,以下是完整复盘。
题目摘要
- Go 语言基础:
slice与array的区别、slice扩容机制、map是否并发安全、defer执行顺序与返回值陷阱。 - MySQL / Redis 八股:聚簇索引与回表、
EXPLAIN中type字段含义、Redis 缓存穿透/击穿/雪崩的区别与各自解法、Redis 分布式锁的过期时间与续期问题。 - Agent 项目深挖:RAG 检索链路、Function Calling 的 schema 设计与失败重试、多轮对话的上下文窗口管理、推理成本优化手段。
- 手撕算法:给定一个整数数组和一个目标值
target,返回所有和为target的不重复子集(每个元素最多用一次)。关键思路:先排序,DFS 回溯时同层跳过重复元素(i > start && nums[i] == nums[i-1]则continue),递归入口i+1保证元素不重复使用,时间复杂度 O(2^n) 级别,需在草稿上写清剪枝条件。 - 场景设计题:如果 Agent 要调用车控接口(如远程开空调),如何保证调用安全与幂等。
- 行为面:为什么选 Agent 方向、实习时长能否保证、对车企做 AI 的理解。
项目深挖
简历上写了一个基于 RAG + Function Calling 的智能助手项目,面试官追问集中在三处。
追问一:RAG 的召回质量怎么保证?
参考回答方向:先分层说清链路——文档切分(按语义/固定窗口 + overlap)、向量化(embedding 模型选型)、召回(向量检索 + BM25 混合)、重排(rerank 模型)。重点讲你实际调过的参数:chunk size 从 512 调到 256 后召回准确率的变化、overlap 设多少、top-k 取几、rerank 后保留几条。面试官想听的是你有没有真的跑过评测,而不是背概念。可以补一句:用一组标注好的 QA 对做召回率/命中率对比,证明改动有效。
追问二:Function Calling 失败怎么处理?
参考回答方向:分三层。第一层是 schema 校验,模型返回的 JSON 参数可能缺字段或类型不对,用 JSON Schema 做强校验;第二层是重试,参数错误时把错误信息回灌给模型让它重新生成,设最大重试次数(如 2 次)避免死循环;第三层是兜底,重试仍失败则降级为追问用户或走固定话术。可以主动提幂等:车控类接口必须带幂等键,避免模型重试导致重复执行。
追问三:上下文越来越长,成本和延迟怎么控?
参考回答方向:几个可落地的点——滑动窗口保留最近 N 轮 + 对早期对话做摘要压缩;把系统提示词和工具定义做成可缓存的 prefix(如 prompt caching),命中缓存的部分不计费或降费;简单意图走小模型,复杂推理才路由到大模型;对工具返回结果做截断,别把整段日志塞进上下文。面试官会追问“摘要压缩会不会丢信息”,可以答:关键实体(订单号、时间、地点)单独抽成结构化字段常驻上下文,摘要只压对话流水。
准备建议
- 八股按“能画图 + 能说清 why”准备。MySQL 索引别只背 B+ 树,能手画出聚簇索引叶子节点存整行、二级索引叶子存主键、回表怎么发生;Redis 三个缓存问题要能各说出两种以上解法并对比适用场景。Go 的
slice扩容、map并发写 panic、defer与命名返回值的坑,建议直接写代码验证一遍。
- 项目准备一份“数据化”口述稿。把 RAG 的召回率、响应延迟、token 成本这些数字记牢,面试官一定会问“优化前后差多少”。没有真实数据就自己搭评测集跑一遍,哪怕是 50 条 QA 的小样本,也比空谈架构强。Function Calling 部分准备一个真实的失败 case 和你的修法。
- 手撕算法专项刷回溯与去重。子集、组合、排列这三类模板必须默写无 bug,重点练“同层去重”和“元素不可重复使用”两个变体。面试时先口述思路再写,写完主动跑一个含重复元素的用例自测。另外准备一道 Agent 场景设计题(工具调用安全/幂等),这类题在车企 Agent 岗出现频率很高。
面试整体偏基础 + 项目,没有刁钻的智力题。一面结束当天收到反馈,3 天后约了下一轮技术面。
想系统备战大厂大模型/Agent 开发?NiceOffer 提供 SDE+LLM 双轨 1v1 陪跑,合同保底 40w 年薪,文末扫码咨询。