Agent面经

0 阅读2分钟

Agent面经

Hello!好久没见,这段时间在准备期末周并且进行了一场Agent面试,这篇帖子就分享一下。先说一下背景吧,本人本科大二,当时做的是一个面向开源社区的重复 Issue 智能分诊项目。项目核心还是 RAG:通过混合检索和重排,判断新 Issue 属于 duplicate、similar 还是 new,并返回相关 Issue。

1. 自我介绍——介绍一下你的项目。

2. 为什么用混合检索? 纯 BM25 或纯向量会造成什么问题?

3. 版本号多的 issue(如 Python 项目指定库版本),更适合 BM25 还是 BGE 向量?为什么?

  - ↳ 追问:如果版本号/前置条件占了 issue 的 50%-70%(为了让别人复刻),真正讲问题的内容很短,这种情况怎么办?

 4. 你的 chunk 本身是什么粒度?切块策略是什么? 

 5. 混合检索时,你用的粒度是怎么对齐的?

  - ↳ 追问:有些 issue 被切成 3 个 chunk、有些 1 个,会有重复;一边返回 Top30 issues、一边返回 Top30 chunks,一个 chunk ≠ 一个 issue,这怎么处理?

6. issue 的结构化字段(title、number、tags 如 "good first issue")你有没有做专门处理?

  - ↳ 追问 a:字段和 issue 正文,你给同样的权重吗?

  - ↳ 追问 b:你具体提取了哪些元数据?

  - ↳ 追问 c:元数据是放在每一个 chunk 里面吗?

 7. 数据清洗做了什么? 基于 GitBugs,你做了哪些前期清洗?

8. 低置信度触发条件边,具体怎么做的?(LangGraph 四节点)

  - ↳ 追问:置信度怎么评估?什么样的答案算不好、什么样算及格?

9. 只有一句话的极短 issue(想提建议 / 懒得写长)怎么办?

  - ↳ 追问:内容就几个字,丢给 LLM 扩写,怎么保证不出现幻觉?(引入 LLM 就有幻觉风险

10. 重写 query 一定会有更好的结果吗? 什么样的数据会触发重写?

  - ↳ 追问 a:低置信度的原因不只是 query 写得不好,也可能是 rerank 或 BM25/向量那一步不对,不是吗?

  - ↳ 追问 b:你反思重写的 prompt 是什么?有没有把上一轮 Top5 的失败结果喂给 LLM?

  - ↳ 追问 c:你说"重排序靠前的比较好"——这个有没有一个评估标准?

  11. 你有没有构建负样本(negative 样本)? 或专门构造一批"检索出来是不好的"样本?

  二、通用 Agent 八股 

  12. 说说你对 Harness 的了解。

  13. 讲讲 Skills——解决了什么问题?又带来什么问题?(优缺点)

  14. Skills 多了,如何避免召回精度下降,可以采用那些方法?