NiceOffer

面试面经 · 小米

【小米】【Agent 开发】【暑期实习HR面】面经(八股+大模型项目+手撕)

小米面经Agent 开发实习

背景

海外一年制硕士,投递小米 Agent 开发暑期实习,HR 面约 40 分钟,技术问题占比高,HR 对 Agent 方向有基本了解,不是纯行为面。

题目摘要

  1. Go 语言基础:goroutine 与 channel 的使用场景、内存逃逸分析、defer 的执行顺序
  2. MySQL/Redis 八股:索引失效场景、事务隔离级别、Redis 缓存穿透与击穿区别及解决方案
  3. Agent 项目深挖:RAG 检索优化、Function Calling 的容错处理、多轮对话上下文管理策略
  4. 推理成本优化:如何降低 LLM API 调用成本,具体到 token 压缩与缓存方案
  5. 手撕算法:实现一个支持过期时间的 LRU Cache(LeetCode 460 变体),要求 set/get 均为 O(1),支持 expire 操作

手撕算法:带过期时间的 LRU Cache

题意:设计一个数据结构,支持 get(key)put(key, value, ttl)expire(key, timestamp) 三个操作。get 时若 key 已过期返回 -1;put 时若容量已满,淘汰最近最少使用且未过期的条目;expire 手动设置或更新过期时间。

关键思路

  • 哈希表 + 双向链表实现 O(1) 的 LRU 淘汰
  • 节点额外存储 expireAt 时间戳,get 时先判断当前时间是否超过 expireAt
  • 惰性删除:get 时发现过期直接删除,不主动扫描
  • 若需主动清理,可另维护一个最小堆按过期时间排序,但会牺牲空间复杂度

面试官关注点:是否主动提出惰性删除与主动清理的权衡,以及并发场景下是否需要加锁(我答了单线程假设下无需锁,多线程需分段锁或使用 sync.Mutex)。

项目深挖

追问 1:RAG 检索结果质量差,你怎么定位和优化?

参考回答方向:先区分是召回问题还是生成问题。召回侧检查 chunk 切分粒度(我用了 256 token 重叠 32 token)、embedding 模型选择(对比过 bge-large 与 text-embedding-ada-002)、混合检索(BM25 + 向量检索的 RRF 融合)。生成侧检查 prompt 中是否明确指示"仅基于给定上下文回答",以及是否有多轮对话中历史 query 干扰检索。实际优化中,我加了 query 改写模块,将指代消解后的 query 用于检索,hit rate 提升了约 15%。

追问 2:Function Calling 如果模型返回了不存在的函数名或参数格式错误,怎么处理?

参考回答方向:三层兜底。第一层在 prompt 中给出严格的 JSON Schema 并附带 few-shot 示例;第二层在代码中做 schema 校验,若校验失败则拼接错误信息重新请求模型,限制最多重试 2 次;第三层若仍失败,降级为普通文本回复,告知用户"该操作暂不可用"。另外提到对工具注册表做白名单校验,防止 prompt injection 导致模型调用未注册函数。

追问 3:多轮对话中上下文过长导致 token 超限,你的方案是什么?

参考回答方向:滑动窗口 + 摘要压缩。保留最近 3 轮完整对话,更早的对话用 LLM 生成摘要存入上下文。同时用 embedding 相似度召回历史中与当前 query 相关的片段,拼接到系统提示词后。成本优化方面,对摘要任务用小模型(如 Qwen-1.5B),对主任务用大模型,整体 token 消耗降低约 40%。

准备建议

  1. 把项目数据量化到小数点后一位:面试官对"提升效果"的追问非常细,建议提前跑通 benchmark,记录优化前后的准确率、延迟、token 消耗的具体数值。没有真实数据就做小规模评测,不要只给"有明显提升"这种定性描述。
  1. 手撕题练习带变体的 LRU/LFU:小米 HR 面出现算法题不常见,但今年 Agent 岗明显加码。建议在 LeetCode 刷完 146、460 后,自己设计变体(如加过期时间、加并发限制),口头演练一遍从暴力解到最优解的演进过程,面试时先讲思路再写码。
  1. 准备一个"成本优化"的故事线:Agent 方向面试必问推理成本,建议按"问题发现 → 方案对比 → 落地效果"结构准备。例如:发现每次请求平均消耗 5000 token → 对比 prompt 压缩、缓存、模型降级三种方案 → 最终用语义缓存 + 小模型重写,成本下降 35%。这个故事线可以套用在任何 Agent 项目上。

结果反馈

一面通过,约 5 天后收到二面通知,后续为技术面 + Leader 面。

想系统备战大厂大模型/Agent 开发?NiceOffer 提供 SDE+LLM 双轨 1v1 陪跑,合同保底 40w 年薪,文末扫码咨询。