小红书产品工程师(社区工程)面经
《面试题目》
- 30一面
- JMM在多线程中的管理策略是什么
- happens-before 原则是什么
- 并发编程的三个重要特征是什么
- 锁如何保证原子性
- 乐观锁和悲观锁的原理
- Ai agent
- 如何降低大模型幻觉
- 知识库规模有多大
- RAG效果不好时如何优化
- RAG和Agent的区别
- 你的Agent是什么类型(ReAct等)
- Agent整体架构设计是什么
- Tools是如何被模型理解的
- Tools之间是否有编排/依赖关系
- 会话记忆是怎么实现的
- 项目是否真正落地使用,有无反馈
- 项目是如何迭代推进的
- 如果企业要用这个系统,最大瓶颈是什么
- 除了存储问题,还有哪些工程问题
- 如何防范prompt注入
- 说说xhs的ai,使用体验如何
- 如果在发布功能中引入ai可以从哪些方面入手
- 引入ai会让xhs丢失活人感吗?
- 3二面
- 拷打做的ai agent项目30分钟,问了长会话记忆存储策略,让介绍使用场景。
- 然后手撕,要求共享屏幕,在leetcode上直接做。第一题是215.数组中第k个最大元素,太久没学数据结构了没做出来。第二题是141.环形链表,做过但不记得了,我现想了一个方法,但追问能否优化,然后告诉我用双指针的方法实现,但我代码基础实在有点拉所以花了好长时间才a而且代码格式很丑。
- 总体一个小时。 27暑期实习
《参考解析》
- AI产品与 Agent 项目:回答这类问题要先讲清目标用户和业务场景,再说明模型、数据、工作流、评测指标和上线后的真实使用效果。面试官通常更看重你能否把 AI 能力转成可落地的产品闭环,而不是只罗列模型名。
- RAG 系统:RAG 的核心是召回质量、切分策略、排序和答案可追溯。BM25 擅长关键词精确匹配,向量检索更适合语义相近的问题,工程上常用混合检索加重排来提升稳定性。
- 进程与线程:进程是资源分配单位,线程是 CPU 调度单位。同一进程内线程共享地址空间和文件句柄,但各自拥有栈和执行上下文;回答时可结合通信方式、上下文切换成本和故障隔离展开。
- 项目深挖:项目深挖的核心是讲清背景、目标、你的职责、关键决策、难点和结果。遇到追问时优先用数据、取舍理由和复盘说明自己的判断,而不是只描述流程。