Skip to content

RAG与Agent面试题集


Q1: RAG的完整流程?

离线(索引):
文档加载 → 文本清洗 → 语义切分 → 向量化 → 存入向量数据库

在线(查询):
用户Query → Query向量化 → 向量检索 → 重排序
→ Prompt组装(Query+Context) → LLM生成 → 返回答案

Q2: 文档切分策略对比?

策略优点缺点
固定大小简单可能切断语义
语义切分(按段落/句子)保持语义完整实现复杂
重叠切分保持连续性冗余存储
递归切分灵活需调参

推荐:递归切分(RecursiveCharacterTextSplitter)+ 语义边界


Q3: 如何优化检索质量?

  1. 混合检索:向量相似度 + BM25关键词
  2. 查询改写:对用户query做扩展或重写
  3. 重排序:用Cross-Encoder对初筛结果重新评分
  4. 元数据过滤:基于文档标签/时间等过滤
  5. HyDE:先生成假设答案,用假设答案检索

Q4: RAG评估指标?

指标含义
Recall@K前K个结果中包含正确答案的比例
MRR第一个正确答案排名的倒数均值
NDCG考虑排名的检索质量
RAGAS端到端RAG评估(忠实度/相关性)

Q5: ReAct vs CoT vs ToT?

  • CoT:Think step by step,纯推理不行动
  • ReAct:Think → Act → Observe,推理+行动交替
  • ToT:探索多条推理路径,适合复杂规划问题

实际Agent开发中ReAct是最常用的范式。


Q6: Agent的架构设计?

Agent = LLM + Planning + Memory + Tools

Planning:
- 任务分解
- 步骤规划
- 反思/调整

Memory:
- 短期记忆:对话上下文
- 长期记忆:向量数据库存储
- 工作记忆:当前任务状态

Tools:
- MCP协议
- Function Calling
- API集成

Q7: 如何解决Agent的幻觉?

  1. 可靠工具:用确定性工具而非LLM推理
  2. 验证机制:让Agent验证自己的输出
  3. 约束输出:结构化输出格式
  4. 检索增强:基于真实文档
  5. 人机协作:关键决策需人类确认

Q8: Multi-Agent协作模式?

模式描述
顺序Agent A → Agent B → Agent C
层级Manager Agent分配任务
辩论多个Agent讨论达成共识
并行不同Agent独立完成子任务

LangGraph是实现复杂Agent工作流的主要框架。