Agent 开发一面面经
完整信息
本篇目录
#离开互联网,发现外面并没有下雨#
面试时间:10.21,美团 Agent 开发,日常实习。
结果:凉。今天收到通知,正好有空写一下。
体感:面试官特别细,一个问题往下钻三层。属于那种你糊不过去、但他也不会为难你的类型。
问题清单
- 自我介绍。
- 为什么想做这个智能运维 Agent?
- 描述一下整个系统怎么运转的,中间件选型的依据是什么。
- 为什么用 RAG?现在上下文窗口这么大了,为什么不直接把原始文档全丢给 Agent 让它自己查?
- 十篇以上文档,或者让它读一个很大的代码仓库,用 RAG 和让它自己 grep,不考虑 token 消耗的情况下,各有什么优劣?(这题我答得不完整)
- 从原始文档到最终答案,切块、索引、存储、检索、排序,哪几步对效果影响最大?
- 如果你的 Markdown 没有标题,怎么切?
- 混合检索里,关键词检索有什么优缺点?向量检索有什么缺点?
- chunk 一两百字,query 就三五个字,怎么把短 query 和长 chunk 放到同一个空间比?你对比过长 query 和三字 query 的向量召回差异吗?
- 除了压缩,长 query 还怎么处理?
- 父子索引解决什么问题?父块多大、子块多大,为什么这么定?
- 知识库持续更新,旧的向量怎么失效?
- 召回结果互相矛盾的时候,谁说了算?
- 工具调用返回结构怎么设计?
- 上下文超窗口,滑动窗口和动态摘要各自的坑。
- 你这个系统上线了吗,日均多少请求?
第 7 题是我当场卡死的地方。我项目里所有文档都有标题,因为我手动整理过。面试官一句"那真实业务里的文档呢",我直接没词。
复盘
这场凉得心服口服。
但复盘下来,我发现一个挺反直觉的事:RAG 面试里,最难的问题全都跟向量库选型无关。
你用什么库、什么索引、什么距离度量,面试官基本不问,因为这层已经商品化了,谁来都一样。他问的全是脏活:文档没标题怎么办、表格被 chunk 从中间截断怎么办、旧文档还在召回怎么办、父子块比例为什么是四比一。
这些问题的共同点是,它们都不是"技术选型",是"数据在真实世界里长得很丑"。
所以 RAG 的门槛从来不在检索,在清洗。
我一直以为自己做过 RAG,其实我只是做过一个"数据已经被我整理干净"的 RAG。这两者之间的差距,就是实习和玩具的差距。
(那天被问到最后我甚至开始怀疑自己切块策略是不是抄的,因为我说不出为什么是 512。)
回去把切块那段代码重写了一遍,加了按标题、按表格、按代码块三种 splitter。
不是为了下一场面试,是因为第七题真的问到点子上了。
文档不会自己长标题。
—— AIGC小白入门记
#晒晒我的offer##秋招面试记录#
本篇目录
当前问题0116
- 01
自我介绍。
- 02
为什么想做这个智能运维 Agent?
- 03
描述一下整个系统怎么运转的,中间件选型的依据是什么。
- 04
为什么用 RAG?现在上下文窗口这么大了,为什么不直接把原始文档全丢给 Agent 让它自己查?
- 05
十篇以上文档,或者让它读一个很大的代码仓库,用 RAG 和让它自己 grep,不考虑 token 消耗的情况下,各有什么优劣?(这题我答得不完整)
- 06
从原始文档到最终答案,切块、索引、存储、检索、排序,哪几步对效果影响最大?
- 07
如果你的 Markdown 没有标题,怎么切?
- 08
混合检索里,关键词检索有什么优缺点?向量检索有什么缺点?
- 09
chunk 一两百字,query 就三五个字,怎么把短 query 和长 chunk 放到同一个空间比?你对比过长 query 和三字 query 的向量召回差异吗?
- 10
除了压缩,长 query 还怎么处理?
- 11
父子索引解决什么问题?父块多大、子块多大,为什么这么定?
- 12
知识库持续更新,旧的向量怎么失效?
- 13
召回结果互相矛盾的时候,谁说了算?
- 14
工具调用返回结构怎么设计?
- 15
上下文超窗口,滑动窗口和动态摘要各自的坑。
- 16
你这个系统上线了吗,日均多少请求?