秋招 AI应用开发 Agent 复习笔记

5388 words
27 minutes
秋招 AI应用开发 Agent 复习笔记

🎯 AI 应用开发 / Agent 方向 · 秋招复习笔记#

📅 整理时间:2026-06-02 📚 来源:基于 workspace 内 18 份面经资料整合 🎯 适用:AI 应用开发 / Agent 开发 / 大模型应用 校招岗位


📖 总目录#

  1. Agent 核心概念与架构
  2. Agent 四种范式深度对比
  3. RAG 检索增强生成
  4. MCP 协议
  5. Memory 记忆系统
  6. Prompt 工程
  7. Function Calling / Tool Use
  8. Multi-Agent 多智能体架构
  9. 幻觉处理
  10. 上下文管理
  11. 工程化与可靠性设计
  12. Agent 评测体系
  13. 项目面试话术
  14. 算法 / CS 基础高频点
  15. 各家大厂面经速览
  16. 贴心避坑指南

1. Agent 核心概念与架构#

1.1 什么是 Agent?#

Agent(智能体)是一种能够感知环境、做出决策并采取行动的系统。与普通 LLM 应用的核心区别:

维度普通 LLM 应用Agent
交互模式输入→输出,单轮多轮循环,自主规划
工具使用调用外部 API、代码执行等
推理能力单次推理多步推理,反思纠错
目标驱动被动响应主动规划直到完成任务

1.2 Agent 四大核心组件(面试高频)#

┌─────────────────────────────────────┐
│ Agent │
│ ┌──────┐ ┌──────┐ ┌──────┐ ┌──┐ │
│ │规划 │ │记忆 │ │工具 │ │执行│ │
│ │Planning│ │Memory │ │Tools │ │Act│ │
│ └──────┘ └──────┘ └──────┘ └──┘ │
└─────────────────────────────────────┘
  1. Planning(规划):任务分解、反思、ReAct、CoT
  2. Memory(记忆):短期记忆(上下文窗口)、长期记忆(向量库)、工作记忆(执行状态)
  3. Tools(工具):Function Calling、MCP、自定义工具
  4. Action(执行):执行操作并观察结果

💡 面试回答模板:先讲这四要素,再结合你的项目具体展开。

1.3 Agent vs 大模型的本质区别#

  • 大模型:静态参数推理,无记忆无工具
  • Agent:感知 → 规划 → 工具调用 → 执行 → 反馈 闭环
  • Agent 具备:自主性、反应性、目标导向、与环境的交互能力

2. Agent 四种范式深度对比#

⚠️ 高频难题:对比 React、Plan-and-Execute、Tool Use、Multi-Agent 四种范式 ⚠️ 最大误区:认为它们是线性进化关系(低级→高级)。实际上它们是不同维度的!

2.1 层次关系(面试必讲)#

组织架构层 → Multi-Agent
流程控制层 → Plan-and-Execute / ReAct
推理框架层 → ReAct
基础能力层 → Tool Use / Function Calling

👉 一个 Agent 可以同时用 ReAct + Function Calling,整个系统又是 Multi-Agent 架构。

2.2 各范式详解#

范式层次核心机制优点缺点适用场景
Tool Use基础能力层模型自主决定是否调工具、调哪个、传什么参数延迟低,架构简单缺少全局规划,易偏离目标简单调用(查天气、发邮件)
ReAct推理框架层Thought → Action → Observation 三段循环可解释性强,有决策链路日志每轮多一次 LLM 调用,延迟高中等复杂度,需可观测性
Plan-and-Execute流程控制层先规划完整计划,再逐步执行,可重规划全局视野,避免迷失规划消耗资源,计划可能不准确步骤多、结构清晰的任务(代码重构)
Multi-Agent组织架构层多 Agent 分工协作,消息通信职责分离,上下文专注通信开销,协调复杂度角色天然分离的场景

2.3 技术选型优先级(面试加分回答)#

  1. 看任务复杂度:简单 → Tool Use;多步推理 → ReAct;步骤多/结构化高 → Plan-and-Execute;角色天然分离 → Multi-Agent
  2. 看延迟敏感度:实时交互优先 Tool Use 或最简 ReAct
  3. 看可观测性需求:ReAct 的循环是天然审计追踪

3. RAG 检索增强生成#

3.1 RAG 完整链路#

文档 → 分块(Chunking) → Embedding向量化 → 向量数据库存储
用户提问 → Embedding查询 → 检索Top-K → Rerank重排序
→ 注入Prompt上下文 → LLM生成回答

3.2 面试常考细节#

(1) Chunking 策略#

策略说明适用场景
固定大小滑动窗口简单,实现容易通用场景
语义分块按段落/章节自然边界切分结构化文档
递归分块大块→小块逐级拆分长文档

关键认知:chunking 决定了检索系统的上限。需要用评估集跑不同策略的效果对比

(2) Embedding 模型#

  • OpenAI text-embedding-3-small/large
  • BGE 系列(BAAI)
  • M3E(国产)
  • Cohere Embed

(3) 向量数据库选型#

名称特点
Milvus开源高性能,企业级
Pinecone云原生,管理简单
Weaviate支持混合搜索
Chroma轻量级,适合原型
FAISSFacebook 开源,高效本地部署

(4) RAG 优化六大手段#

  1. 分块策略优化:按语义分块而不是固定长度
  2. 多路检索:向量检索 + 关键词(BM25)检索 + 混合检索
  3. 重排序(Rerank):对候选结果二次排序,提升精度
  4. 上下文压缩:只保留和问题最相关的部分
  5. 查询改写:把用户问题改写成更适合检索的形式
  6. 反馈循环:根据用户满意度反向调整检索策略

(5) RAG vs 微调#

维度RAGFine-tuning
成本高(需要 GPU 训练)
更新实时更新文档即可需要重新训练
适用场景知识问答、事实查询特定风格/格式/行为对齐
对幻觉影响减少(有参考依据)可能加剧(死记硬背)

💡 面试高频追问:什么时候不应该上 RAG?答:当知识变化极快、或对延迟极度敏感、或模型本身已具备足够知识时。

(6) RAG 常见失败原因#

  • 检索召回率不足(Top-K 太少或 chunking 不当)
  • 检索到的上下文相关性低
  • 注入的上下文干扰了模型判断
  • 用户问题表述不规范

4. MCP 协议#

4.1 什么是 MCP#

MCP(Model Context Protocol)是 Anthropic 推出的模型上下文协议,用于标准化 LLM 与外部工具/数据源的交互方式。

4.2 MCP 工作方式#

LLM ←→ MCP Client ←→ MCP Server ←→ 外部工具/数据源
↑ ↑
JSON-RPC Tool Schema 注册

4.3 MCP vs Function Calling#

对比维度Function CallingMCP
标准化程度模型厂商各自定义统一开放协议
工具发现需预注册动态发现
通信方式JSON Schema 内嵌独立 Server 进程
跨语言取决于 SDKServer 独立,语言无关
安全性需自行隔离Server 级隔离

4.4 MCP vs Skill(面试高频)#

对比MCPSkill
定位标准化工具调用协议封装好的任务级能力
粒度单个工具/能力一个完整功能的集合
复用性跨平台通用平台特定
关系可作为 Skill 内部调用协议可组合多个 MCP 工具

4.5 其他工具协议#

  • A2A(Agent-to-Agent):Google 提出的 Agent 间通信协议
  • SSE(Server-Sent Events):服务端推送,常用于流式输出
  • WebSocket:全双工通信,用于实时交互

5. Memory 记忆系统#

5.1 三层记忆结构(面试必答)#

层级说明存储方式典型实现
短期记忆当前对话上下文滑动窗口 / 摘要压缩Context Window
工作记忆当前任务中间状态进程内存当前子目标、已收集证据
长期记忆跨会话持久化信息向量数据库 / KV存储用户偏好、历史交互

5.2 记忆设计核心问题#

  1. 写入时机:不是所有信息都值得存 → 需要重要性打分+去重
  2. 检索方式相关性和时效性要兼顾 → 时间衰减权重
  3. 遗忘策略:记忆库越来越大 → 检索精度下降 → 需要定期整理

5.3 长期记忆的生成与检索#

触发条件(任务完成/用户明确指示/重要信息出现)
→ 调用 LLM 对当前会话做摘要/结构化提取
→ 向量化存储到记忆库
→ 下次需要时通过语义检索召回
→ 动态注入上下文

💡 面试追问点:agent.md vs memory.md vs skills.md 的职责区分?

  • agent.md:定义 Agent 的行为规则、系统 prompt
  • memory.md:存储跨会话的长期记忆
  • skills.md:注册可复用的能力模块

6. Prompt 工程#

6.1 常见 Prompt 技术#

技术说明面试要点
Zero-shot直接提问,无示例基础
Few-shot给几个输入输出示例要能说清楚选 few shot 的原则
Chain-of-Thought (CoT)引导模型逐步推理适合数学/逻辑问题
ReAct推理+行动交替Agent 核心
Self-consistency多次采样选最一致的答案提升准确率

6.2 结构化 Prompt 设计原则#

系统角色指令(你是谁、要做什么)
核心约束(不能做什么、必须遵循什么)
工具/技能描述(可用能力注册)
上下文信息(记忆/RAG检索结果)
用户输入(当前轮)
输出格式要求

6.3 优化 Prompt 的常见手段#

  • 所有 Prompt 修改要版本化管理
  • 关键指令放前面(模型更关注开头和结尾)
  • 用分隔符明确区分不同信息块
  • 显式注入约束减少模型”猜”的概率

7. Function Calling / Tool Use#

7.1 完整链路#

工具注册(定义 Schema) → 候选筛选(工具多时) → 模型决策
→ 参数校验 → 执行隔离 → 结果处理 → 注入上下文

⚠️ 很多初学者只关注”模型怎么输出 function call”,忽略了前后两端的工程细节。

7.2 工具设计原则#

  1. 工具粒度:太大(模型难以理解) vs 太小(增加调用次数)
  2. Schema 设计:description 对完成率影响很大
  3. 工具装载:不要一次性加载所有工具,按需选择
  4. 并发处理:独立工具可并行调用

7.3 工具 Schema 示例#

{
"name": "search_document",
"description": "搜索知识库中的文档,返回相关片段",
"parameters": {
"type": "object",
"properties": {
"query": {"type": "string", "description": "搜索关键词"},
"top_k": {"type": "integer", "description": "返回结果数量"}
},
"required": ["query"]
}
}

8. Multi-Agent 多智能体架构#

8.1 为什么用 Multi-Agent(面试话术)#

  • 职责分离:不同 Agent 专注不同任务,代码结构清晰
  • 能力扩展:独立扩展子 Agent,不影响整体
  • 上下文精简:每个 Agent 只需关注自己的上下文窗口
  • 协作效率:主 Agent 分解调度,子 Agent 并行执行

8.2 三种通信模式#

模式说明适用场景
Orchestrator(编排器)主 Agent 拆任务、分配、汇总简单分解任务
Peer-to-Peer(对等)Agent 间平等协商需要多方讨论
Hierarchical(层级)上级管理下级复杂组织结构

8.3 主Agent与子Agent通信#

  • 通信方式:消息队列(Redis/RabbitMQ)、HTTP/RPC、共享存储
  • Memory 访问:一般不直接访问对方记忆,通过消息传递数据

9. 幻觉处理#

9.1 幻觉产生原因#

  • 模型训练数据的偏差和不完整
  • 上下文约束不足,模型自由发挥
  • 检索到的信息相关性不足或错误

9.2 多层幻觉防御策略#

第一层:Prompt 约束
→ 要求模型引用来源、设置 temperature=0、指令约束
第二层:工具/函数调用
→ 用精确计算替代模型猜测(如计算器、查询数据库)
第三层:RAG 召回
→ 提供参考文档,减少依赖模型内部知识
第四层:后处理验证
→ 对输出做静态检查、格式校验、事实核查
第五层:微调对齐
→ 特定场景下用微调纠正模型行为

10. 上下文管理#

10.1 上下文压缩#

触发时机

  • 当前上下文长度接近模型上限(如 80%)
  • 多轮对话中历史信息冗余

压缩方法

方法说明
摘要压缩用模型生成历史摘要,保留核心信息
关键信息提取抽取实体、动作、意图,丢弃次要描述
滑动窗口只保留最近 N 轮对话

10.2 上下文结构组织#

优先级策略(从高到低):

1. 系统规则 / 约束
2. 当前轮用户明确输入
3. 外部工具返回结果 / 知识库证据
4. 用户历史偏好(soft hint,不可覆盖当前事实)

10.3 会话压缩面试参考#

阿里淘天面试官追问:会话压缩怎么做的?

参考回答:当上下文窗口接近限制时,触发摘要压缩。先用模型对当前上下文生成摘要,保留系统指令、关键决策、已收集的重要信息,丢弃中间重复的推理过程和低价值日志。摘要完成后替换原始上下文,节省 token 空间。同时记录摘要的历史版本,必要时可回溯。


11. 工程化与可靠性设计#

11.1 异常处理三层策略#

层级策略说明
第一层重试指数退避重试,限制最大次数
第二层降级主工具失败换备用工具/简化路径
第三层上报处理不了交给人类介入

11.2 鲁棒性设计要点#

输入校验 → 意图识别 → 敏感词过滤 → 上下文截断 → 错误兜底
二次校验与格式解析

关键原则

  • 先校验用户输入,再决定是否调用模型
  • 对关键输出做二次校验
  • 不要为了”好看”,是为了系统不会因为一次异常直接崩掉

11.3 性能优化(面试要能展开)#

维度具体措施
模型推理流式输出(SSE),减少感知延迟
工具调用并行调用独立工具,连接池复用
网络传输缓存(Semantic Cache),减少重复请求
上下文组装只注入必要上下文
预计算确定性中间结果提前算好存储
熔断机制工具连续失败超阈值时自动熔断

11.4 Token 消耗优化#

  • 上下文压缩(摘要替换原始历史)
  • 缓存(常用技能、知识不重复加载)
  • 批处理(合并小请求)
  • 模型选择(简单任务用轻量模型)

11.5 可审计 Agent 设计#

审计目标:能追责、能定因、能复现

需记录的信息:

  • 用户输入
  • 系统 prompt 版本
  • 工具候选集 + 最终选择
  • 调用参数 + 工具返回结果
  • 状态变迁
  • 模型输出 + 最终结果
  • 扩展:模型版本、知识库版本、trace_id

12. Agent 评测体系#

12.1 四层评测体系(面试杀手锏)#

层级内容作用
第一层:保底确保系统每次改动后仍能稳定运行防止”改坏”
第二层:Benchmark固定题目,用通过率、耗时、失败原因量化避免”凭感觉”
第三层:过程记录记录运行过程以便复盘不只看到最终结果
第四层:回归将真实翻车 case 放回评测集贴近真实场景

12.2 Agent 评估维度#

维度说明
任务完成率是否达到目标
步骤效率花了多少步,有没有走弯路
工具调用准确率选对工具、参数正确
幻觉率编造不存在的信息或工具
异常恢复率出错后能否自己修复
人类介入率多少任务需要人接管

12.3 评估方式#

  • 离线评估:benchmark 跑回归测试
  • 在线评估:真实用户留存、反馈、复用率
  • LLM-as-Judge:用 GPT-4 或其他模型评分

13. 项目面试话术#

13.1 项目介绍的”四步公式”#

业务痛点 → 初版方案 → 踩坑迭代 → 量化收益

错误示范:“我用了一套多 Agent 的系统,用了 RAG、Prompt 优化……” 正确示范:“我在 XX 场景下遇到了 XX 问题(业务场景),一开始尝试了 XX 方案(初版),但发现了 XX 问题(踩坑),于是改成了 XX,最终 XX 指标提升了 XX%(收益)。“

13.2 面试官最怕的 5 个追问(校招生专供)#

  1. “这个设计你是怎么考虑的?有没有考虑过其他方案?” → 展示技术选型思考,说清楚为什么选 A 不选 B

  2. “遇到过什么问题?怎么解决的?” → 展示真实踩坑经验,这是区分”做过”和”看过”的关键

  3. “如果 XX 情况发生,系统会怎么样?” → 展示对边界情况的思考

  4. “有量化的效果吗?” → 必须有指标,不能用”感觉”回答

  5. “为什么这么设计?Trade-off 是什么?” → 展示架构权衡能力

13.3 项目包装要点#

  • 不要说自己项目是”网上找的”,可以说”参考了 xx 开源方案,结合实际业务做了 xx 改进”
  • 每个功能点都要能说出”为什么”,不只是”做了什么”
  • 准备 1-2 个深度模块展开讲,其他一笔带过
  • 准备完整的叙事:场景 → 问题 → 方案 → 迭代 → 收益

13.4 Skill 机制面试回答#

问题:skill 是怎么运作的? 当用户提问触发条件时,系统从 skill 库匹配最合适的 skill,将其内容(自然语言描述 + JSON Schema)注入 Prompt 上下文,交由大模型处理。

问题:内置 skill 和业务自定义 skill 冲突了怎么办?

  • 命名空间隔离(不同前缀/目录)
  • 优先级机制(按规则选择)
  • 冲突检测告警

问题:太长或不当的 skill 会导致什么?

  • 上下文溢出,关键指令被截断
  • 性能下降,Token 消耗增加
  • 噪音干扰,降低执行准确性

14. 算法 / CS 基础高频点#

14.1 必刷算法#

  • 高频题:合并两个有序数组、字符串相加、单例模式
  • 每日必做:LeetCode Hot 100 + 剑指 Offer
  • Tips:刷过的题面试时假装思考一下再写

14.2 Java 高频八股#

模块重点面试要求
线程池核心参数、拒绝策略、工作原理✅ 能讲清配置,能设计
HashMap底层结构、红黑树转换阈值(8)、扩容✅ 原理+并发安全
JVM类加载机制(三大步骤)、垃圾回收算法、内存分布✅ 经典必考
并发synchronized 原理、ReentrantLock、CAS、AQS✅ 死锁要能写出来
MySQLundo log/redo log/binlog + 两阶段提交✅ 经典组合
单例双检锁 + volatile✅ 手写级

14.3 Python 相关#

  • 多进程、多线程、协程的区别
  • Python vs JS 的区别

14.4 网络基础#

  • HTTP 1.0 / 2.0 / 3.0 区别
  • 前后端分离概念
  • SSE / WebSocket

14.5 LLM / 算法基础(非训练岗也要知道)#

  • Transformer 流程
  • 注意力机制
  • 位置编码
  • 过拟合 / 梯度消失
  • 模型并行 / 数据并行

15. 各家大厂面经速览#

字节跳动(一面)#

题号问题核心考点
1为什么要自己搞 code agent?挑战?项目动机+深度
2同一个模型不同 context 长度下的差异?上下文工程
3怎么减少 Agent 幻觉?多层防御体系
4Prompt 怎么构建的?模块化+版本管理
5Memory 机制怎么做?短/长期记忆
6任务恢复怎么做?状态快照+恢复
7怎么评测和验证优化效果?四层评测体系

阿里淘天(一面)#

题号问题核心考点
1会话压缩怎么做?上下文管理
2长期记忆写入时机?记忆系统设计
3上下文结构 / 长度约束?Prompt 工程+Token控制
4agent.md vs memory.md 职责区分?架构理解
5工具和 skill 位置互换的后果?架构权衡
6怎么评测 Agent 回答质量?评估体系
7HashMap + 线程池 + 并发Java 基础

腾讯(一面→二面)#

  • 一面:概念型题(什么是 Agent、RAG、Prompt Engineering)
  • 二面:系统设计题(Planner 设计、上下文优先级、异常处理、可审计 Agent)
  • 二面和一面最大区别:一面问”会不会”,二面问”为什么不这么做、不这么做会出什么问题”

滴滴 AI 全栈(一面)#

  • MCP 深度题(运作方式、协议对比、并发处理)
  • AI coding tools 了解程度
  • MCP vs Skill 区别
  • 前端基础+后端基础都会问
  • 智能体三要素

16. 贴心避坑指南#

❌ 常见翻车现场#

1. 项目被问倒

  • 项目是网上找的 → 被面试官看轻
  • 项目挑战答不上来 → 面试官觉得你没做过
  • 没有量化指标 → 话术再好也白搭

2. 八股只会背

  • 背了线程池参数 → 追问”怎么设计一个” → 露馅
  • 背了 RAG 流程 → 追问”chunking 怎么选” → 卡住

3. 忽略工程细节

  • 会说”流式输出” → 说不清缓存、超时、降级
  • 会说”做了评测” → 说不清评测维度

✅ 制胜关键点#

  1. 实习经历是最大加分项 → 你现在就在做 AI 应用+Agent,珍惜每个遇到的真实问题
  2. 每天实习时记录踩坑细节 → 面试时这就是你的”真实感”
  3. 项目表达用”先讲场景,再讲方案”
  4. 准备一个”原理→配置→常见问题→排查方法”四件套
  5. 每个设计决策都要能说出 trade-off

👑 最终面试官想看到的#

企业现在更看重的,不是你会不会调 API,而是:

  • 出了问题你能不能定位
  • 系统异常你能不能兜住
  • 方案落地后你能不能让它稳定跑起来

💪 退出挑战杯省下的时间和心力,现在全部可以投入到秋招准备中。 方向正是你感兴趣的 AI Agent,这就是你说的”想做的有意义的事”。 加油!

Share Article

If this article helped you, please share it with others!

秋招 AI应用开发 Agent 复习笔记
https://estars-blog.pages.dev/posts/求职作战室-面经-agent面经-秋招-ai应用开发-agent-复习笔记/
Author
Estars
Published at
2026-06-10
License
CC BY-NC-SA 4.0
Profile Image of the Author
Estars
这条路要走完,才能看到世界的终点,是海纳百川,还是星火燎原。
公告
欢迎来到我的博客!这是一则示例公告。
Music
Cover

Music

No playing

0:00 0:00
No lyrics available
Categories
Tags
Site Statistics
Posts
91
Categories
5
Tags
44
Total Words
374,063
Running Days
0 days
Last Activity
0 days ago

Table of Contents