跳转到内容

快手校招AI+Agent

📝

面经概览

本文档整理了快手校招 AI+Agent 方向一面的完整面经,共 13 个技术大类、56 道问题,涵盖 RAG 召回、Rerank 策略、上下文工程、Agent 工具调用、安全控制、限流系统、算法基础、数据库索引、RAG 评测与优化、数据处理设计等核心方向。每个大类下列出主问题追问,方便针对性准备。

主问题

Q1:为什么要设计父子索引,而不是只用普通 chunk 检索?

Q2:检索阶段为什么还要加入 BM25?

追问

🔍

Q3:BM25 检索和向量召回是怎么配合的?两者的权重或占比怎么确定?

🔍

Q4:从用户 query 进来到最终组装上下文,中间完整链路是怎样的?

🔍

Q5:召回之后有没有再做 rerank?具体采用了什么 rerank 方式?

二、Rerank 与结果截断策略

主问题

Q6:经过 rerank 之后,通常会保留多少个文本块?

Q8:rerank 之后的 topK 是如何截断的?

追问

🔍

Q7:这个数量是怎么定下来的?有没有做过对比或验证?

🔍

Q9:为什么选择当前这个 topK 值?有没有尝试过其他截断策略?

🔍

Q10:当上下文内容太少或者超出长度限制时,你是怎么处理的?

三、上下文工程与记忆设计

主问题

Q11:介绍一下你们的上下文工程是怎么做的。

Q14:记忆机制是如何设计的?

追问

🔍

Q12:最终拼给模型的上下文结构是什么样的?

🔍

Q13:如何控制上下文长度,避免内容过长影响模型效果?

🔍

Q15:短期记忆和长期记忆分别存什么?两者怎么区分?

🔍

Q16:记忆内容什么时候更新?更新规则是什么?

四、Agent 规划与工具调用

主问题

Q17:Function Calling 在项目里是怎么设计和落地的?

Q18:Agent 的任务规划流程是怎样的?

追问

🔍

Q19:任务规划主要依赖模型完成,还是通过规则控制?

🔍

Q20:涉及多个工具时,调用顺序是怎么决定的?

🔍

Q21:如果某个工具调用失败,系统会怎么处理?

五、安全控制与防护机制

主问题

Q22:如何防御 Prompt 注入攻击?

追问

🔍

Q23:有没有做输入过滤、规则拦截或内容校验?

主问题

Q24:工具调用过程中的安全控制怎么做?

追问

🔍

Q25:如何避免模型调用敏感接口?

🔍

Q26:有没有做权限校验、接口白名单或访问控制?

六、限流相关系统设计

主问题

Q27:讲一下分布式令牌桶限流的实现思路。

Q28:漏桶算法的核心原理是什么?

Q29:滑动窗口限流是怎么实现的?

Q31:滑动窗口和令牌桶有什么区别?

追问

🔍

Q30:如果用滑动窗口实现限流,结构体里一般需要包含哪些字段?

🔍

Q32:如果基于 Redis 做限流,你会选择什么数据结构?

七、基础算法与数据结构

主问题

Q33:介绍一下布隆过滤器。

追问

🔍

Q34:布隆过滤器可能会带来什么问题?

🔍

Q35:误判率一般怎么控制?

八、数据库索引

主问题

Q36:哪些场景会导致数据库索引失效?

Q37:like 查询一定会导致索引失效吗?

追问

🔍

Q38:哪些 like 写法或者查询方式会让索引无法命中?

九、RAG 评测与数据集建设

主问题

Q39:RAG 系统一般怎么做效果评测?

Q40:RAG 的评测维度有哪些?

Q42:评测数据集通常需要包含哪些内容?

追问

🔍

Q41:常见评测指标有哪些?

🔍

Q43:怎么构建一套质量比较高的 RAG 评测数据?

十、RAG 效果优化

主问题

Q44:如果要提升检索相关性,你会从哪些方向优化?

Q45:如果要提升最终回答质量,你会怎么做?

追问

🔍

Q46:你会优先优化检索阶段,还是优化生成阶段?

🔍

Q47:怎么判断一次优化确实带来了效果提升?

十一、数据处理系统设计题

主问题

Q48:如果有一个数据处理任务,比如对一千条数据做求和,你会怎么设计处理流程?

追问

🔍

Q49:如果数据量扩大到百万级,方案需要怎么调整?

🔍

Q50:如何保证计算效率和系统稳定性?

十二、RAG 性能优化

主问题

Q51:如果要提升 RAG 系统性能,你会从哪些方面入手?

追问

🔍

Q52:是从检索层、模型层,还是系统架构层优化?

🔍

Q53:有没有使用缓存、并行处理等优化方式?

十三、上下文优化

主问题

Q54:当前上下文是怎么处理和组织的?

追问

🔍

Q55:后续有哪些优化方向?

🔍

Q56:如何减少无关上下文对模型回答的干扰?