AI Agent 面试 - 核心概念详解与参考答案

面试高频必考题的完整参考答案,可直接用于准备


一、AI Agent 核心概念

Q1: 什么是 AI Agent?与传统 AI 的区别?

参考答案: AI Agent 是具备自主感知、决策、执行和迭代能力的智能系统。

维度 传统 AI AI Agent
交互模式 被动响应(输入→输出) 主动规划 + 持续交互
能力边界 固定功能,不能调用外部工具 动态调用工具、API、数据库
决策方式 单次推理 多步推理 + 反思 + 重规划
记忆 无状态或简单上下文 短期 + 长期记忆体系
举例 分类模型返回航班链接 Agent 查询→比价→预订→通知用户

Q2: Agent 的核心组件有哪些?

参考答案:

  1. 感知模块(Perception)

    • 接收用户输入、环境反馈
    • 多模态:文本/语音/图像/传感器
  2. 规划模块(Planning)

    • 任务分解(Task Decomposition)
    • 方法:CoT(链式思考)、ToT(树状思考)、GoT(图状思考)
    • 框架:ReAct(推理+行动交替)、Plan-and-Execute(先规划后执行)
  3. 记忆模块(Memory)

    • 短期记忆:当前对话上下文(In-context Window)
    • 长期记忆:向量数据库持久化存储(用户偏好、历史交互)
    • 工作记忆:当前任务的中间状态和推理链
  4. 工具调用模块(Tool Use)

    • Function Calling / MCP 协议调用外部 API
    • 搜索引擎、数据库、代码执行器、第三方服务
  5. 行动模块(Action)

    • 执行具体操作并观察结果
    • 根据反馈调整策略(闭环)

Q3: ReAct 框架如何工作?

参考答案: ReAct = Reasoning + Acting,交替执行"思考"与"行动":

1
2
3
4
5
循环:
1. 观察(Observation):接收用户输入或上一步结果
2. 思考(Thought):LLM 生成推理链,分析当前状态
3. 行动(Action):选择并执行工具调用
4. 观察结果 → 回到步骤 2,直到任务完成

优势:减少幻觉(有真实观察做锚点)、可解释性强(每步有思考过程) 劣势:串行执行,多步任务延迟高

Q4: Agent 记忆系统怎么设计?

参考答案:

记忆类型 实现方式 存储内容 生命周期
短期记忆 LLM 上下文窗口 当前对话历史 单次会话
工作记忆 变量/状态机 任务中间结果 单次任务
长期记忆 向量数据库(Milvus/PGVector) 用户偏好、历史摘要 永久

协同机制

  • 每轮对话结束 → 摘要压缩 → 存入长期记忆

  • 新对话开始 → 从长期记忆检索相关上下文 → 注入短期记忆

  • 关键设计:什么时候压缩、保留什么、丢弃什么


二、RAG 全链路详解

Q5: RAG 完整流程?

参考答案:

1
2
3
4
5
6
离线阶段(知识库构建):
文档收集 → 预处理 → 分块(Chunking)→ Embedding → 存入向量数据库

在线阶段(查询响应):
用户查询 → Query 改写/扩展 → Embedding → 向量检索(Top-K)
→ 重排序(Rerank)→ 上下文拼接 → LLM 生成 → 返回答案 + 引用

Q6: Chunk 大小怎么确定?

参考答案:

  • 太小(<100 tokens):语义不完整,检索到碎片

  • 太大(>1000 tokens):噪声多,相关性被稀释

  • 经验值:256-512 tokens,overlap 50-100 tokens

  • 最佳实践

    • 按语义分块(段落/章节边界)而非固定长度
    • 递归分块:先按段落 → 段落太长再按句子
    • A/B 测试不同 chunk 大小的检索效果

Q7: 向量召回不准怎么办?

参考答案:

  1. Query 改写:HyDE(生成假设文档再检索)、Multi-Query(多角度改写)

  2. 混合检索:向量检索 + BM25 关键词检索,结合两者优势

  3. Rerank:用 Cross-Encoder 模型对 Top-K 结果重排序

  4. Embedding 模型升级:BGE-M3、E5-Mistral 等更强模型

  5. 元数据过滤:先按时间/类别缩小范围,再做向量检索

  6. 知识图谱辅助:对实体关系类查询用 GraphRAG

Q8: RAG vs 微调怎么选?

参考答案:

维度 RAG 微调
适用场景 知识频繁更新、需要引用来源 学习特定风格/格式、领域深度理解
成本 低(不用训练) 高(需要 GPU + 训练数据)
实时性 好(更新知识库即可) 差(需要重新训练)
幻觉控制 好(有检索依据) 一般(仍可能幻觉)
推荐 优先选 RAG,不够再加微调 两者可以结合使用

Q9: "Lost in the Middle" 问题?

参考答案: LLM 对上下文中间位置的信息关注度最低,开头和结尾最高。

缓解方法

  • 将最相关的文档放在上下文的开头和结尾

  • 减少检索文档数量,只保留最相关的 3-5 个

  • 使用 Map-Reduce:先对每个文档单独问答,再汇总


三、LoRA / QLoRA

Q10: LoRA 原理?QLoRA 怎么优化显存?

参考答案:

LoRA(Low-Rank Adaptation)

  • 冻结原始权重 W₀,注入低秩矩阵:W = W₀ + BA

  • B ∈ R^(d×r),A ∈ R^(r×k),r << min(d,k)

  • 只训练 B 和 A,参数量通常只有原模型的 0.01%-1%

  • 优势:训练快、避免灾难性遗忘、可热插拔

QLoRA 进一步优化

  1. 4-bit 量化:将冻结的基础模型从 FP16 量化到 NF4(4-bit NormalFloat)

  2. 双重量化:对量化常数也做二次量化,进一步压缩

  3. 分页优化器:当 GPU 显存不够时,自动将优化器状态转移到 CPU 内存

效果:QLoRA 可以在单张 24GB 显卡上微调 65B 参数模型

Q11: LoRA 效果不好怎么办?

参考答案:

  1. 增大 rank r(从 8 → 16 → 32)

  2. 扩大 LoRA 应用层(不只 Q/V,加上 K/O/FFN)

  3. 检查训练数据质量和多样性

  4. 学习率调整(LoRA 通常需要比全量微调更大的学习率)

  5. 考虑 DoRA(Weight-Decomposed LoRA)或 rsLoRA


四、RLHF / DPO / GRPO

Q12: RLHF 三阶段详解?

参考答案:

阶段 1:SFT(有监督微调)

  • 用高质量人工标注的指令-回答对微调基座模型

  • 让模型学会遵循指令

阶段 2:奖励模型训练(RM)

  • 人类标注者对模型生成的多个回答进行排序

  • 训练一个判别模型预测人类偏好分数

  • 损失函数:Bradley-Terry 模型 → 最大化 chosen 与 rejected 的分数差

阶段 3:PPO 强化学习

  • 将 SFT 模型作为策略(policy)

  • 奖励 = RM 分数 - β × KL散度(防止偏离 SFT 太远)

  • 迭代优化策略,最大化期望奖励

Q13: DPO 与 RLHF 的区别?

参考答案:

维度 RLHF (PPO) DPO
是否需要 RM 需要单独训练 不需要
训练稳定性 不稳定,超参敏感 稳定,类似 SFT
实现复杂度 高(RM + PPO) 低(直接优化)
计算成本
核心思想 先训 RM 再用 RL 优化策略 数学上将 RM 和策略优化合并为一个损失函数

DPO 损失函数直觉:直接让模型增大 chosen 回答的概率,减小 rejected 的概率。

Q14: DeepSeek 的 GRPO?

参考答案: GRPO(Group Relative Policy Optimization):

  • 去掉 Critic 模型(PPO 需要 Critic,增加计算量)

  • 对同一个 prompt 采样一组回答(Group),用组内相对排名作为优势函数

  • 奖励 = 组内回答的相对好坏,而非绝对分数

  • 优势:减少一半模型参数需求,训练效率更高

  • DeepSeek R1 用 GRPO 训练出了强大的推理能力


五、MCP vs A2A 协议(新热点!)

Q15: MCP 和 A2A 的区别?

参考答案:

维度 MCP(Model Context Protocol) A2A(Agent-to-Agent)
发起者 Anthropic(2024.11) Google(2025.04)
解决什么 Agent 如何调用外部工具/数据 Agent 之间如何通信协作
方向 纵向:Agent ↔ 工具 横向:Agent ↔ Agent
类比 USB-C 接口(连接设备和外设) HTTP 协议(设备间通信)
协议基础 JSON-RPC 2.0 JSON-RPC 2.0 over HTTPS
核心特性 工具发现、函数调用标准化 Agent Card(能力描述)、任务委托

关键面试答案:MCP 和 A2A 是互补关系,不是竞争关系。

  • MCP 让 Agent 有能力(调工具)

  • A2A 让 Agent 会协作(跨 Agent 通信)

  • 一个完整的多 Agent 系统两者都需要

举例

  1. 库存 Agent 通过 MCP 查询数据库发现库存不足

  2. 库存 Agent 通过 A2A 通知采购 Agent 下单补货

  3. 采购 Agent 通过 MCP 调用供应商 API 完成采购


六、系统设计类

Q16: 高并发 Agent 系统怎么设计?

参考答案:

1
2
3
4
5
6
7
8
用户请求 → 负载均衡(Nginx/K8s Ingress)
→ 请求队列(Kafka/RabbitMQ)
→ Agent 服务集群
├── 语义缓存层(相似 query 直接返回)
├── LLM 推理层(vLLM/TGI,Continuous Batching)
├── 向量检索层(Milvus 集群)
└── 工具调用层(异步执行 + 超时控制)
→ 流式返回(SSE/WebSocket)

关键优化点

  1. 语义缓存:Embedding 相似度 > 阈值的 query 直接命中缓存

  2. 模型路由:简单问题用小模型,复杂问题用大模型

  3. 异步工具调用:不阻塞主流程

  4. 降级策略:LLM 超时 → 返回预设回答

  5. 成本控制:Token 计量 + 按业务方配额限制

Q17: 如何控制 LLM 成本?

参考答案:

  1. 模型分级:简单 query 用 GPT-3.5/小模型,复杂用 GPT-4

  2. 语义缓存:相似问题直接返回缓存答案

  3. Prompt 压缩:删除冗余上下文、摘要历史对话

  4. Batch 推理:合并请求降低单次调用开销

  5. 开源模型替代:Qwen/DeepSeek 部署私有化

  6. Token 配额:按用户/业务方设限

Q18: 如何解决大模型幻觉?

参考答案:

  1. RAG:提供检索依据,约束生成范围

  2. Prompt 约束:"仅基于提供的上下文回答,如无信息请说不知道"

  3. Self-Consistency:采样多次取多数一致的答案

  4. Citation 生成:要求模型标注来源,便于验证

  5. 后处理校验:用规则/小模型检查事实性

  6. 温度调低:减少随机性(temperature → 0.1-0.3)