AI 应用 / Agent 开发工程师
2026 面试题库与学习路线

2026 年大厂 Agent 岗的考核已从"你知不知道 Agent 是什么"升级为"你能不能设计一个不崩的 Agent 系统"。 本手册基于字节、阿里、腾讯、小米、美团、蚂蚁等公司 2026 年真实面经,按 推理框架、Agent 架构、工具与协议、RAG、工程化、安全评估、模型基础、手撕代码八大模块整理高频真题与答题要点, 并给出一条"先懂它会怎么坏、再学框架怎么填坑"的四阶段学习路线。

整理日期:2026 年 9 月 题源:牛客、掘金、CSDN 公开面经(2026 年 3–8 月) 用法:点击每题展开参考回答;建议配合项目实战使用

00 · 面试全景:面试官到底在考什么

综合 2026 年春招至暑期的面经,Agent 岗面试题目虽分散在 RAG、工具调用、多智能体、记忆、评测等方向, 但所有追问都指向同一件事:你有没有真的搭过、调过、在线上踩过坑。 背概念只能过前三分钟,能把"非确定性的概率程序"讲成"带确定性安全阀的工程系统"才是通过线。[2]

表 1:2026 Agent 面试五大考点维度
维度核心考点区分度
① 推理框架CoT → ReAct → ToT 的递进;ReAct 消息格式(think / tool_call / observation 的角色分配);Action 失败处理基础必过
② Agent 架构Agentic Loop;记忆三层(工作 / 短期 / 长期);任务规划与 DAG;上下文压缩;多智能体编排工程落地
③ 工具与协议Function Calling 机制与局限;MCP 五大原语、Server-First;MCP 与 A2A 的分层关系;Skills 封装2026 必考
④ 系统设计死循环三层防御;多工具依赖 / 超时 / 熔断;并行编排;状态持久化与恢复;成本(Prompt Caching)核心区分度
⑤ 安全与评估Prompt Injection 四层防御;高危操作防呆;幻觉治理;检索 / 生成 / Agent 三层评测指标加分 → 必考
表 2:各公司面试风格差异(2026 面经总结)
公司侧重点
字节跳动技术密度最高,深挖工程细节并层层追问:ReAct 细节、工具调用死循环处理(迭代限制 / 循环检测 / 降级)、上下文压缩策略[1]
阿里 / 蚂蚁最全面:必问 Agent / Workflow / 工具调用差异,要求画出"路由—管理—执行"三层架构,强调落地瓶颈与务实方案;RAG 评测指标(召回率、忠实度)抠得很细[1]
腾讯偏生态与协议:Workflow 与 Agent 的区别、MCP / A2A 多智能体协作、记忆系统设计[1]
小米项目"极深挖":Embedding 模型结构与输出维度、切片策略、LoRA 更新参数、RAG 文档增量更新,外加 Transformer 原理与手撕代码[1]
美团Agent 循环 + 后端基本功组合拳:Java 线程、锁、缓存一致性、TCP、Redis 分布式锁都可能问[1]
模型厂商(混元 / Kimi / MiniMax)追问模型底层:MoE vs Dense、对齐方法(RLHF / DPO / GRPO)、推理优化、模型能力边界[1]
典型面试流程(以小米四轮为例) 一面:技术基础 + 项目深挖(含手撕代码)→ 二面:业务场景 + 系统设计 + 进阶追问 → 三面:综合素质 / 交叉面(结合业务场景的产品思维)→ HR 面。 Agent 方向在二面几乎必问:"你怎么理解 Agent,和普通大模型问答最大的区别是什么?"[1]
01

Agent 基础与推理框架

第一道分水岭。不要背定义,要讲清"为什么需要它"以及在真实项目里踩过什么坑。

Q1. Agent 和传统 LLM Chatbot 的本质区别是什么?
字节/阿里/腾讯高频概念必问题

参考回答

Chatbot 是"用户输入 → LLM 推理 → 输出文本"的单轮映射;Agent 是"推理 → 决定用什么工具 → 执行 → 观察结果 → 决定下一步 → 循环直到达成目标"的自主系统,具备感知(Perception)、规划(Planning)、行动(Action)、记忆(Memory)四种能力。

加分点:自主性是双刃剑——给太多自主权可能产生不可预期操作,给太少就退化成 Chatbot;真正的工程挑战是设计"安全的自主边界"。[2]

Q2. 什么是 Agentic Loop?请描述 Think→Act→Observe 循环。
几乎所有岗位都问

参考回答

Agentic Loop 是 Agent 的工作流水线。以"帮我退掉上周五买的书"为例:模型先判断要查订单(Think)→ 调用订单查询工具(Act)→ 发现书已发货不能直接取消(Observe)→ 再查退货政策 → 确认符合条件后创建退货单,每一步都在思考—行动—观察的循环中推进,直到目标达成。[2]

回答时最好在纸上画出循环图,并指出循环必须有终止条件(目标达成 / 最大轮次 / 熔断)。

Q3. ReAct 的核心循环和消息格式怎么设计?<tool_call> 用 user 还是 assistant 角色?
字节校招一面工程细节

参考回答

ReAct = Reasoning + Acting,把推理(Thought)和行动(Action)交错,用 Observation 回灌结果。消息格式是工程落地的核心:

  • 模型在 assistant 消息中输出结构化的工具调用请求(如 <tool_call> 或 OpenAI 的 tool_calls 字段);
  • 程序解析后执行真实函数,结果以 tool 角色(或约定的 <tool_response> / observation 消息)回传;
  • 再把拼好的消息数组发回模型继续推理,形成闭环。

关键点:LLM 并不会真的执行工具,它只是按 schema 输出一段 JSON/结构化文本,执行与回灌完全由你的代码控制——角色与格式必须严格匹配各模型 API 的协议,否则模型会"失忆"或重复调用。[2][4]

Q4. CoT、ReAct、ToT 的递进关系是什么?为什么要从 CoT 升级到 ReAct?
推理框架

参考回答

  • CoT(思维链):让模型写出逐步推理过程,解决"推理能力",但只能想、不能做;
  • ReAct:推理与行动交错,解决"推理 + 行动",能与外部世界交互;
  • ToT(思维树):同时探索多条推理路径并评估择优,解决"多路径探索",代价是 token 与延迟显著上升。

升级动因:真实任务需要调用工具、获取外部信息,CoT 只在文本空间推理,会出现"想得很好但什么都没做"。可补充 ReAct 在 ALFWorld 等基准上相对纯推理有约 34% 的成功率提升。[2]

Q5. ReAct 循环有哪些典型失败模式?
2026 新考点

参考回答(四类)

  1. 死循环:Observation 不满足预期就反复重试同一工具;
  2. 上下文爆炸:循环轮次过多,历史塞满上下文窗口;
  3. 早停:未拿到关键信息就判定"任务完成";
  4. 过度思考:推理模型开启 extended thinking 后在 Thought 阶段消耗大量 token 钻牛角尖——生产中需设置 thinking.budget_tokens 上限,简单任务用 reasoning_effort: minimal。[4]
Q6. Agent 和 Workflow 的区别是什么?哪些节点该用确定性工作流、哪些交给 LLM?
腾讯/阿里必问扣子是 Agent 还是工作流平台?

参考回答

Workflow 的路径是预先编排好的(确定性 DAG),LLM 只填某个节点;Agent 的路径由模型在运行时动态决策(调哪个工具、何时结束)。工程原则:能用确定性工作流就不要交给模型决策——规则明确、可枚举的步骤(如固定格式转换、审批路由)用 Workflow;需要语义理解、开放域判断的节点才交给 LLM。

对"扣子(Coze)是 Agent 平台还是工作流平台"的稳妥回答:它两者都支持,大量实际应用以可视化 Workflow 为主、在关键节点挂载 LLM 决策,属于低代码 Agent / Workflow 混合平台。[1]

追问:为什么不全部做成自主 Agent?——非确定性意味着难调试、难评估、成本高;Anthropic《Building Effective Agents》主张优先 Workflow + 单 Agent,Multi-Agent 仅在必要时引入。[4]
02

Agent 架构:记忆 / 规划 / 多智能体

从"面经型回答"切换到"工程型回答":每个组件怎么落地、怎么调参、怎么兜底。

Q7. 多轮对话里的 Memory 怎么设计?为什么不能"全塞进去"?
小米/字节二面

参考回答(三层记忆)

  • 工作记忆:当前任务状态与中间变量(如 DAG 执行状态);
  • 短期记忆:会话内上下文,用 messages + 滑动窗口 + 自动摘要(参考 Claude Code 的 /compact),并分层——项目级规则、用户偏好、会话上下文分开存储;
  • 长期记忆:跨会话持久化,主流方案是向量库 + 时间衰减 + 重要性加权(Mem0 / Zep 等封装),辅以 SQLite 全文索引。[2][4]

不能全塞的原因:长上下文存在 Lost in the Middle(中段信息利用率低)与 Context Rot(无关内容越多准确率越低),且延迟与成本随长度暴涨——主动剪枝比无脑堆砌效果好。

高阶加分:当前主流记忆本质是"检索式备忘录(Memo)"而非把经验内化进权重的"真记忆(True Memory)",能主动区分"基于检索的记忆 vs 基于权重的记忆"会显著加分。[2]
Q8. 上下文过长导致性能下降怎么处理?讲一下你的压缩策略。
字节 coding agent 实习

参考回答

  • 分层压缩:早期轮次只保留摘要,近期轮次保留原文;工具返回结果先结构化提取再入库;代码 / 日志类只留 diff 与错误栈;
  • 触发条件按 token 水位分级(如 50% 触发摘要、75% 触发激进剪枝),不同层压缩内容不同;
  • 压缩必须保留任务目标、已做决策、未完成事项(handoff 三要素);
  • 异常兜底:压缩后若模型表现下降(如工具选择错误率升高),应能回滚到未压缩版本或对关键段落"解压重取",并通过离线评测监控压缩损失。[1]
Q9. 复杂任务的 Plan 怎么做?动态重规划如何实现?
字节/阿里

参考回答

规划模块负责任务拆解与动态重规划:把复杂任务拆成有依赖关系的子任务,用 DAG 管理执行顺序;每个子任务执行后做状态校验,失败或发现新信息时触发重规划(Replan),而不是死守原计划。可用 Planner Agent 出计划、Executor Agent 执行、Critic 校验结果的结构,并为计划设置最大重规划次数。

Q10. 多 Agent 如何分工、通信和终止?如何避免互相扯皮 / 死循环?
高区分度

参考回答

  • 分工:按能力边界拆(如 Planner / Research / Code / Summary),每个子 Agent 有独立系统提示与工具集,避免工具重叠导致抢任务;
  • 通信:通过共享状态(黑板模式)或结构化消息传递,只传结论 / 摘要而非全量上下文;
  • 终止:由 Orchestrator 依据完成条件统一裁决,设全局最大轮次与预算;
  • 防扯皮:DAG 去环、共享状态锁、调用链监控(检测 A→B→A 重复模式即熔断)。[2]
追问 · Claude Code 两套架构:Subagents(父子工头制)——子任务在全新干净上下文独立执行、返回压缩摘要,轻量但不能互通信;Agent Teams(团队制)——Lead Agent + 共享任务列表 + Mailbox,可互相通信、适合跨模块联调但 token 开销大。判断标准:子任务无需通信→Subagents;需要通信→Teams。并发改同一文件用乐观并发控制 + 文件级锁,冲突时人工介入。[2]
Q11. LangGraph 和 LangChain 的区别?State / Node / Edge 各解决什么?为什么选 LangGraph 而不是 AutoGen / CrewAI?
字节二面

参考回答

LangChain 是链式调用的组件库(模型、提示、检索器等),擅长线性流程;LangGraph 是面向有状态、可循环 Agent 的图编排框架——Node 是执行单元(一次 LLM 调用或工具执行),Edge(含条件边)决定流转路径,State 在节点间传递并合并的共享状态,配合 Checkpoint 实现持久化、断点恢复与人机协同(Human-in-the-loop)。

选型理由:业务需要循环、分支、回滚、人工审批等图结构时 LangGraph 更可控、可调试;AutoGen 偏多 Agent 对话、CrewAI 偏角色协作模板,灵活性与可控性各有取舍。务实回答还应包括"框架不满足时用自定义 Node / 直接手写状态机扩展",并知道 2026 年厂商 SDK(Claude Agent SDK、OpenAI Agents SDK)也在崛起。[1][4]

Q12. Skill 和 Tool 有什么区别?能用 Skill 替代工具吗?
2026 新考点

参考回答

Tool 是单一的、可执行的能力原子(一个函数 / 一次 API 调用),有明确输入输出 schema;Skill 是"模型按需加载的指令包 / 能力包",通常包含操作指南、提示模板与一组工具的编排,采用渐进式披露(progressive disclosure)——平时不占上下文,命中场景才加载。两者互补而非替代:Skill 解决"模型知道什么时候、按什么 SOP 用工具",Tool 解决"具体执行动作"。[2][1]

03

工具调用与协议:Function Calling / MCP / A2A

2026 年最硬核的考点:MCP 已从"加分题"变成"必答题"。

Q13. Function Calling 的完整落地流程是怎样的?模型真的"调用"了函数吗?
基础必考

参考回答

  1. 用 JSON Schema 向模型声明工具(名称、描述、参数类型、枚举、示例);
  2. 模型根据意图输出结构化调用请求(函数名 + 参数 JSON)——它没有执行任何代码;
  3. 客户端解析 JSON、做参数校验,调用真实函数;
  4. 把执行结果以 tool 角色消息回填,模型继续推理或给最终答复。

schema 质量直接决定调用质量:描述含糊→选错工具;类型 / 枚举不全→参数错误。2026 年主流模型均支持并行工具调用(一次返回多个 tool_use 块,并发执行后批量回填,链路延迟可降至 1/N)。[4]

Q14. 你怎么设计 Tool Calling?参数错误、调用失败、危险工具分别怎么兜底?
字节二面

参考回答

  • Schema 设计:工具命名无歧义、职责单一不重叠;参数给类型、枚举、必填约束与 few-shot 示例;
  • 参数错误:服务端用 Pydantic 等强校验,校验失败把具体错误信息结构化回传给模型自我修正(而非抛异常中断);
  • 执行失败:工具内 try-catch,返回 {"status":"failed","error_type":"Timeout","retry_after":5} 这类结构化错误;设硬超时(如 15s)与重试上限;
  • 危险工具:不直接暴露给模型,高危操作经服务端策略层 / 人工确认;工具做分级权限与只读 / 写入隔离;
  • 架构:工具经服务端统一注册与分发,不把内部接口裸暴露给模型,便于审计与限流。[1]
Q15. MCP 相比传统 Function Calling 最大的改进是什么?
2026 必答题

参考回答

传统 Function Calling 有三大绝症:厂商绑定(各家工具定义语法不同)、静态配置(新增工具要改代码、重新部署)、无执行标准(超时、错误处理全靠硬编码)。

MCP(Model Context Protocol)把工具描述与执行分离:工具定义统一存在 Server 端,Client 通过标准协议动态发现并调用,LLM 只负责决策。更深一层的价值:把工具调用从"一次性编码"变成"可复用资产"——MCP Server 写一次,所有 Agent、项目、模型都能用,治理集中、审计可追溯,集成复杂度从 O(N×M) 降到 O(N+M)。

应能说出五大原语:Tools / Resources / Prompts / Sampling / Roots;并知道它已是 OpenAI、Google、Cursor 等全面采纳的事实标准。[2][4]

Q16. MCP 和 A2A 是什么关系?
腾讯/阿里

参考回答

二者是分层协作而非竞争:MCP 是垂直连接——Agent 如何调用外部工具与数据(解决"我能用什么");A2A(Agent-to-Agent)是水平连接——Agent 之间如何互相发现、委托任务、交换结果(解决"我能和谁合作")。一个完整系统里 A2A 负责任务在 Agent 间流转,每个 Agent 再通过 MCP 去落地具体工具操作。[2]

Q17. MCP 有什么安全风险?如何防御?
高频追问

参考回答

致命缺陷之一是 Context Poisoning(上下文投毒):工具描述会被全量注入 Agent 上下文,恶意指令可借工具元数据操纵模型推理,OWASP 已将其列为 LLM 应用头号风险;有基准显示超 50% 的 agentic 任务存在注入漏洞。

三大攻击面:Context Manipulation(篡改工具描述)、Server-Side Injection(恶意 Server 注入)、Cross-Server Compromise(跨 Server 扩散)。

生产级防御:工具描述入库前审计与签名、权限最小化(默认只读、按需授权)、MCP 隧道加密、第三方 Server 白名单与沙箱隔离、敏感凭证不进 Agent 上下文而在网络边界注入。[2]

04

RAG 系统设计与优化

面试官不问"什么是 RAG",只问"检索质量差怎么办、上线后怎么维护、你怎么证明它有效"。

Q18. 完整描述 RAG 的流程,以及每个环节的关键决策。
基础题

参考回答(离线索引 + 在线问答两阶段)

  • 解析与清洗:PDF / Word / 网页 Loader,去页眉页脚、表格 / 图片特殊处理,剔除冗余;
  • 切分(Chunking):按语义结构切而非只按固定 token,控制块大小与重叠(overlap),保留标题 / 条款编号等 metadata;
  • 向量化与入库:Embedding 模型 + 向量库(Milvus / Qdrant / Faiss 等);
  • 检索:Query 向量化做 ANN 召回,常配 Query 改写、混合检索;
  • 增强:召回片段拼接 Prompt,控制顺序(关键信息放头尾)与长度;
  • 生成:LLM 基于上下文作答,带引用出处与"不知道就说不知道"的约束。[3]
Q19. 你的 Embedding 模型结构是什么?输出维度多少?切片模型 / 策略怎么选的?
小米"压力三连问"之一 · RAG 必考

参考回答

必须能说清自己项目用的模型:例如 BGE-M3 / Qwen3-Embedding / text-embedding-3-large 等基于 Transformer Encoder(双塔 Bi-Encoder),输出固定维度向量(如 768 / 1024 / 3072),维度越高表达力越强但存储与检索成本越高,需按召回效果与成本权衡。

切片要结合业务语义:法律文档中"第三条第二款"与"第三条之二"含义不同,固定 512 token 切分会切断条款——应按标题层级 / 条款边界切,块间加 overlap,并把条款号、文档来源写进 metadata 用于过滤与溯源。[1]

字节真实翻车点:被问"500 份 PDF 切了多少 chunk、粒度多少、会不会切散语义条款"时,只报数字没考虑语义边界即崩盘。准备项目时务必量化:文档数、chunk 数、平均长度、overlap、清洗规则。[1]
Q20. 检索质量差怎么优化?为什么要加 Rerank?
字节/小米

参考回答(按收益排序)

  1. 混合检索:BM25(关键词精确匹配,对专有名词、编号友好)+ 向量语义检索,结果融合(RRF);
  2. 两阶段召回 + Rerank:先用双塔 Bi-Encoder 粗排取 Top-20~50,再用 Cross-Encoder 交叉编码 Query 与文档精排取 Top-3~5——精度更高但计算贵 10–100 倍,所以只对小候选集做;Rerank 被普遍认为是成本最低、收益最高的优化手段;[5]
  3. Query 侧:改写、扩展、HyDE(假设答案嵌入)、多查询并行召回;
  4. Chunk 侧:调整块大小与 overlap、父子索引(小块检索、大块喂模型)、metadata 过滤;
  5. Top-K 动态化:按问题复杂度或相似度阈值动态决定取几条,避免噪声片段稀释上下文。
Q21. RAG 知识库上线后文档更新了怎么办?每次重建全量吗?
小米经典题

参考回答(增量更新)

  • 给每个文档 / chunk 存内容 hash 与版本号,更新时计算 hash 比对,只处理变更部分;
  • 关键坑点:文档内容变化后 chunk 边界会漂移,不能只"替换变化 chunk 的向量"——稳妥做法是以文档为单位"先删后增"(删除旧版本全部 chunk,重新切分入库),或用稳定的语义锚点切分降低边界漂移;
  • 删除与写入放在同一事务 / 带版本切换(蓝白索引),避免更新中间态被检索到;
  • 配套版本控制与回滚:错误文档入库后可按版本撤回,并保留操作审计。[1]
Q22. 不同文档内容冲突、用户问题超出知识库范围,分别怎么处理?
阿里校招

参考回答

  • 内容冲突:用 metadata 记录来源、生效时间、权威等级;检索后做冲突检测,优先高权威 / 最新版本,在答案中并列展示分歧而不是让模型私自裁决;
  • 超范围问题:设置相关性阈值,召回分数过低则走"拒答 / 澄清 / 转人工"分支;可让模型先判断是否需要补充信息并向用户反问;多轮澄清仍无法解决则升级人工,而不是硬编答案。[1]
Q23. Agentic RAG 和传统 RAG 有什么区别?检索失败后怎么办?
字节二面

参考回答

传统 RAG 是固定的"检索一次 → 生成"管线;Agentic RAG 让 Agent 自主决定是否检索、检索几次、怎么改写查询、是否切换数据源 / 工具,形成多轮检索与策略调整闭环。Query Rewrite 本身只是固定增强,只有当"是否改写、如何改写"由 Agent 根据中间结果动态决策时才算 Agentic。

检索失败的策略:换关键词 / 子查询分解重试 → 切换数据源(向量库→BM25→联网搜索)→ 放宽过滤条件 → 仍失败则如实告知并澄清问题。代价是 token 与延迟上升,需要设置检索轮次上限与成本监控。[1]

Q24. 你怎么评估 RAG 有没有效果?Recall@K / 忠实度怎么定义,baseline 是什么?
字节/阿里面崩重灾区

参考回答(三层评测)

  • 检索层:Recall@K(标注的相关文档是否出现在前 K,分子=命中相关文档数、分母=全部相关文档数)、Precision@K、MRR、Hit Rate、NDCG;
  • 生成层:忠实度 / Faithfulness(答案是否忠于检索内容、有无外在幻觉)、答案相关性、上下文利用率;可用 RAGAS 等框架或 LLM-as-Judge;
  • 端到端:标准答案匹配、人工评分、业务指标(解决率、转人工率)。

关键纪律:评测集要够量且按问题类型 / 难度分层抽样;必须有 baseline(朴素切片 + 单路向量检索)作对照,每次改动报相对提升,而不是只丢一个"Recall@5 = 0.81";判断 LLM-as-Judge 本身的可靠性要看评委模型的一致性 / 与人工标注的吻合率。[1][6]

Q25. RAG 和 GraphRAG 在多跳推理上的根本差异?
字节算法岗

参考回答

向量 RAG 按"局部语义相似"召回孤立片段,跨多个实体的关系链容易断;GraphRAG 先从语料抽取实体与关系构建知识图谱,多跳问题可沿图的边做结构化遍历与社区摘要汇总,擅长"A 和 B 通过 C 有什么关系"这类全局 / 关联推理,代价是构建与维护成本高。工程上常做混合:向量召回实体入口,再沿图谱扩展邻域。[1]

05

工程化与系统设计

2026 年面试的核心区分度:概念人人会背,工程细节讲得清的人极少。

Q26.【明星题】你的 Agent 调了三个工具就死循环了,异常处理在哪写?
2026 字节最经典题

参考回答(三层防御)

  1. 工具层硬隔离:每次调用包 try-catch + 硬超时,返回结构化错误(错误类型、是否可重试、retry_after),而不是一段 error 字符串;
  2. 推理层熔断:同一工具连续失败 N 次(如 3 次)、或检测到"调用→失败→再调用"重复模式 / 超过最大迭代次数,强制中断当前推理链;
  3. 规划层自修正:失败后让 Agent 反思原因(参数错?工具选错?),换参数或换工具重试,即 Reflection Pattern;仍失败则降级(转人工 / 告知用户)。[2]
reflection 失败 3 次后怎么办?这是面经中的连环追问——必须有终局策略:停止重试 → 带着已获取信息给出部分答案或明确失败原因 → 转人工,绝不能无限反思。[1]
Q27. LLM 一次要调多个工具,如何保证顺序、依赖清晰,且单个超时不拖垮全局?
字节二面高频

参考回答(拆成三个问题)

  • 依赖管理:无依赖的工具并行调用(利用模型一次返回多个 tool_use 块,客户端并发执行后统一回填);有依赖的编码为 DAG,按拓扑序执行;
  • 超时控制:每个工具调用前设定硬超时阈值(MCP 生态通常期望 7–10 秒返回,可设 15s),超时立即中断并返回结构化超时信息;
  • 异常熔断:连续失败达阈值或检测到重复调用模式即熔断;整体采用异步编排 + 资源调度,单工具失败走降级分支而不是让整轮对话崩溃。[2]
Q28. Agent 的状态怎么保存和恢复?会话中断后如何续跑?
字节二面

参考回答

把对话消息、任务状态(DAG 各节点状态)、中间产物与 checkpoint 持久化到数据库;基于 LangGraph 等框架的 Checkpointer 可在每个节点后落盘,恢复时从最近 checkpoint 重建 State 继续执行,支持断点续跑、时间旅行调试与人机审批后恢复。长任务用事件溯源(event log)记录每步动作,保证可重放、可审计。

Q29. 如何解决大模型 API 的响应延迟与高并发?成本怎么压?
字节/美团

参考回答

  • 流式输出(SSE)降低首字延迟 TTFT;
  • Prompt Caching:system prompt、工具定义、长文档前缀开启 KV Cache 持久化,命中后延迟可降约 80%、成本降约 90%;注意缓存前缀里不要放时间戳 / 随机 ID;[4]
  • 模型分级:简单节点用小模型、复杂节点才用大模型 / reasoning,按任务设置 reasoning_effort;
  • 并行与缓存:工具并行、语义结果缓存;
  • 服务化:FastAPI + vLLM / SGLang 自托管开源模型,配合 K8s 弹性扩缩、限流与排队;
  • 预算控制:每会话 / 每任务设 token 与轮次预算。
Q30. 系统设计:为电商场景设计一个支持退换货的客服 Agent。
阿里/腾讯风格

参考回答(端到端分层,建议边画边讲)

  • 接入层:意图识别与权限校验,区分咨询 / 查询 / 办理类意图;
  • 编排层:确定性流程(订单状态机:下单→发货→签收→售后期)用 Workflow;开放问答与异常分支交给 Agent 决策;
  • 工具层:订单查询、退货政策 RAG、退货单创建、物流查询、优惠券发放等,写操作分级并要求确认;
  • 数据层:政策知识库 RAG(含版本与生效时间)、用户画像与订单系统;
  • 记忆:会话短期记忆 + 用户历史长期记忆;
  • 安全与兜底:退款等高风险动作二次确认 / 规则引擎拦截,失败转人工;
  • 评测:意图准确率、工具成功率、任务完成率、转人工率、CSAT 与成本 / 延迟看板。
Q31. 手机端 / 端侧 Agent 的整体架构怎么设计?
小米二面

参考回答

分层讲:端侧小模型负责意图理解、隐私敏感数据处理与离线兜底;云端大模型负责复杂规划与推理;工具层打通系统能力(通讯录、日历、支付等)并做权限沙箱;通过统一的任务调度与状态同步层连接端云。重点回答功耗、延迟、隐私(敏感数据不出端)、弱网降级与跨 App 动作的授权确认。[1]

06

安全、幻觉与效果评估

从"加分项"变成必考项:Agent 有了手和脚,安全就是生死线。

Q32. Prompt Injection 为什么难防?架构层面如何防御?
安全必问题

参考回答

根源是 Context Mixing:单一上下文窗口里模型无法可靠区分系统指令、用户指令与不可信外部数据,所以它比 SQL 注入更难,防御必须建在模型外部。四层体系:

  1. 前置隔离:采用 Execute-Only 等架构,尽量不让 LLM 直接接触不可信数据(对外部内容先净化 / 沙箱处理);
  2. 工具调用审查:在工具执行边界部署独立的语义审计层,拦截异常调用;
  3. 影响溯源:标记并追踪不可信内容如何传播到最终决策(数据流标签);
  4. 权限最小化:静态最小权限 + 凭证移出 Agent,改为网络边界注入。[2]
Q33. AI 要执行"删库 / 高危操作"时如何防呆?
真实事故题

参考回答(四层,不是"加个确认弹窗")

  1. 确认层:高危操作执行前经独立安全分类器审查(分类器脱离 Agent 上下文运行,只看用户消息与调用请求,不看工具结果,防止被注入带偏);
  2. 规则层:PreToolUse Hook 做确定性规则匹配,DROP TABLE、kubectl delete 等直接拒绝,不经过 AI 判断;
  3. 权限层:Agent 不持有生产凭证,敏感凭证经 MCP 隧道在网络边界注入、按需短时授权;
  4. 治理层:全量审计操作日志,异常行为实时熔断与告警。[2]
Q34. 幻觉分哪两类?有哪些治理手段?
小米/通用

参考回答

  • 内在幻觉:检索结果里有正确信息,但生成内容与之矛盾(如检索是 91%,答成 95%);
  • 外在幻觉:生成了检索结果中根本不存在的内容。

治理组合拳:Prompt 强约束("仅依据给定材料、无依据就说不知道"、要求引用出处);提升检索质量与上下文组织;输出校验(事实比对、结构化约束、自检);温度调低;必要时用微调让模型学会该领域的拒答边界;上线后用忠实度指标持续监控 Badcase 并回流。[7]

Q35. 怎么评估一个 Agent 的好坏?
快手/字节评测岗

参考回答(过程 + 结果 + 成本三维)

  • 结果指标:任务成功率(端到端)、目标达成率、答案正确率;
  • 过程指标:工具选择准确率、参数正确率、平均调用轮数、死循环 / 熔断率、人工干预率;工具调用能力可对标 BFCL(Berkeley Function-Calling Leaderboard);
  • 效率指标:平均延迟、token 消耗与单任务成本;
  • 方法:构造贴近真实分布的评测集(τ-bench 式多轮工具调用场景)、离线回归 + 线上灰度、LLM-as-Judge + 人工抽检、轨迹级评估(trajectory eval)而不只看最终答案。[4]
Q36. 模型不听指令 / Badcase 怎么定位:是 Prompt 问题还是模型能力问题?
字节二面

参考回答

建立可复现的最小样例与消融实验:固定输入逐个变量排查——换更强模型若问题消失→能力问题;同一模型改提示 / 示例 / 输出 schema 后稳定改善→指令遵循问题;再看是工具描述歧义、上下文噪声还是参数约束缺失。修复手段按成本排序:Prompt / few-shot → 结构化输出与后处理校验 → 流程约束(不让模型做该决策)→ 微调。每次修复必须用评测集给出前后对比数据,避免"感觉变好了"。[1]

07

大模型基础八股(应用 / Agent 岗也会问)

应用岗对推导要求低于算法岗,但高频原理题必须能用自己的话讲清楚,反感背书。

表 3:应用岗高频模型基础题速查
题目答题要点
Transformer 基本结构 / 自注意力Encoder-Decoder(或 Decoder-only);自注意力 Q·Kᵀ/√dₖ 后 softmax 加权 V;多头并行捕捉不同子空间关系;残差 + LayerNorm + FFN。[1]
为什么除以 √dₖ?dₖ 大时点积方差变大,softmax 进入饱和区梯度趋近 0;除以 √dₖ 把方差缩回 1 附近,稳定训练。[1]
LayerNorm 对哪个维度归一化?对每个 token 的特征维(hidden dimension)做归一化;能区分 LayerNorm / BatchNorm、Pre-Norm / Post-Norm 及可学习参数 γ、β 更佳。[1]
位置编码绝对位置编码 vs RoPE 旋转位置编码;RoPE 通过对 Q/K 旋转实现相对位置依赖;长度内插与外推(外扩)的区别。[1]
MHA / GQA / MQA / MLA优化目标都是降低 KV-Cache 显存与带宽:MHA 每头独立 K/V;MQA 所有 Q 头共享一组 K/V;GQA 分组共享(效果与效率折中);MLA 是 DeepSeek 的低秩压缩方案。[1]
KV-Cache 为什么能加速推理自回归生成时缓存历史 token 的 K、V,每步只算新 token,避免重复计算;代价是显存占用,故有量化、PagedAttention、PD 分离等优化。[1]
LoRA 原理与细节冻结原权重 W,旁路加低秩矩阵 BA(W+BA,B 初始化为 0 保证起步等价),只训练少量参数;常作用于 Attention 的 Q/K/V/O;LoRA 学习率通常比全参 SFT 高。能对比 P-Tuning / Adapter / 全参微调。[1]
SFT 与 RLHF 区别;DPO/GRPOSFT 用示范数据教模型"怎么答";RLHF 用偏好奖励对齐"答得好不好"(RM + PPO);DPO 直接用偏好对做优化、免显式 RM;GRPO 用组内相对奖励、去掉价值网络(DeepSeek-R1 采用)。[1]
MoE vs DenseMoE 每次只激活部分专家,参数量大但单 token 计算量低,收益是容量 / 成本比,代价是路由负载均衡、通信与训练稳定性问题。[1]
量化 / 推理加速GPTQ、AWQ 等权重量化降低显存;vLLM(PagedAttention)、SGLang、TensorRT-LLM;投机解码;长文本显存优化。[1]
08

手撕代码与项目深挖

代码以 LeetCode Medium 为主,Agent 岗会额外考核心机制手写;项目追问是真正的胜负手。

手撕代码高频清单

  • 常规算法:反转链表、合并两个有序链表、二叉树层序遍历、最长回文子串、编辑距离、括号生成、最长连续递增子序列、0/1 矩阵路径判断(DFS/DP);难度以 Medium 为主,偶有 Hard 二选一。[1]
  • 硬核手写:仅用 NumPy 手写多头自注意力(init + forward)、手写位置编码;
  • 工程手写:不依赖框架手写 50 行 minimal Agent(手动解析 tool_use、拼 messages、实现计算器 + 搜索两个工具、加超时与重试)。[4]
代码样例:不用框架的最小 ReAct Agent 长什么样?

面试白板伪代码(Python)

def run_agent(user_msg, tools, max_steps=5):
    messages = [{"role": "system", "content": SYSTEM_PROMPT},
                {"role": "user", "content": user_msg}]
    fail_count = {}
    for _ in range(max_steps):                 # ② 推理层:最大迭代
        resp = llm.chat(messages, tools=tools)  # 模型只输出决策
        if not resp.tool_calls:
            return resp.content                 # 终止条件
        messages.append(resp.raw)
        for call in resp.tool_calls:
            try:
                result = execute_with_timeout(  # ① 工具层:硬超时
                    call, timeout=15)
            except ToolError as e:              # 结构化错误回灌
                result = {"status": "failed",
                          "error_type": e.type, "retry_after": 5}
                fail_count[call.name] = fail_count.get(call.name, 0) + 1
                if fail_count[call.name] >= 3:  # ② 熔断
                    return escalate_to_human(messages)
            messages.append(tool_result_message(call.id, result))
    return "已达最大步数,转人工处理"            # 终局兜底

这段代码天然对应 Q26 的三层防御,面试时可直接边写边讲。

项目深挖:你必须提前量化好的数字

面经复盘出的四大崩盘点 ① 切片只报 token 数、没考虑业务语义边界;② 评测只报一个分数,没有 baseline、没有分布分析;③ Agent 异常路径(重试 3 次后)完全没设计;④ 对面试公司近期 AI 产品一无所知。[1]
  • RAG 项目:文档量级、chunk 总数与平均长度、Embedding 模型与维度、向量库与索引参数、混合检索 / Rerank 前后的 Recall@K 对比、评测集规模与分层、延迟与成本;
  • Agent 项目:为什么这样拆流程?哪些节点确定性、哪些交给 LLM?失败分支与重试机制?状态如何保存恢复?多 Agent 如何分工 / 通信 / 终止?
  • 每个优化都要能答:问题现象 → 定位方法 → 解决方案 → 评测数据证明有效 → 有无副作用。

09 · 四阶段学习路线:先懂它会怎么坏,再学框架怎么填坑

多数路线的错误是"顺序错":一上来学一堆框架 API,demo 能跑、一遇真实场景就崩,且不知道为什么崩。 2026 年推荐顺序为:底层机制(含 Prompt Caching / MCP)→ LangGraph + 厂商 SDK → 工程深度(MCP / BFCL / 评测)→ 能讲清"精度 / 延迟 / 成本"三维数据的项目。 全职学习者约 8–12 周走完前三阶段,在职可按 2–3 个月拉长。[4][8]

1底层机制筑基期建议 1–2 周

目标:不用任何框架跑通 LLM 调用与工具闭环,理解 Agent"会怎么坏"。

学习内容

  • Python 工程强化:类型注解、异步 asyncio、FastAPI、Pydantic
  • Prompt 工程:结构化系统提示、Few-shot、输出格式约束
  • 手写 Function Calling 全流程:schema → 解析 JSON → 执行 → 回灌
  • ReAct 循环与四大失败模式;并行工具调用
  • 上下文窗口物理限制:Lost in the Middle、Context Rot
  • Prompt Caching:缓存前缀设计、TTL、cache breakpoint

配套动作

  • 先用 Dify / Coze 搭一个知识库 Agent 建立整体认知
  • 再手写 50 行 minimal Agent(计算器 + 搜索)
  • 给它加上超时、重试、最大步数与 Prompt Caching
  • 刻意制造死循环并观察 token 增长
阶段产出:一个无框架、带基础容错的命令行 Agent,能讲清每一段 messages 的角色与结构。
2框架与 RAG 进阶期建议 2–3 周

目标:掌握主流编排框架与生产级 RAG 管道,完成第一个完整应用。

学习内容

  • LangChain 组件 → 重点 LangGraph:State / Node / Edge / Conditional Edge / Checkpoint
  • 了解厂商 SDK:Claude Agent SDK、OpenAI Agents SDK,知道与 LangGraph 的取舍
  • RAG 全链路:解析清洗、语义切分、Embedding、Milvus/Qdrant
  • 混合检索(BM25 + 向量 + RRF)、Rerank(Cross-Encoder)、Query 改写 / HyDE
  • RAG 评测:Recall@K、MRR、Faithfulness、RAGAS、LLM-as-Judge

配套动作

  • 做一个垂直领域知识库问答(法律 / 客服 / 内部文档)
  • 建立 ≥100 条、分层抽样的评测集与 baseline
  • 每次优化记录 Recall / 忠实度 / 延迟 / 成本对比表
  • 实现文档增量更新(hash 检测 + 先删后增 + 版本回滚)
阶段产出:一个带评测报告的 RAG 应用,能量化说出每项优化带来的提升。
3工程化与协议深化期建议 2–4 周

目标:从"能跑的 demo"进化为"不崩的系统",拿下 2026 必考协议与工程考点。

学习内容

  • MCP:五大原语、自己写一个 MCP Server、动态发现与权限设计
  • A2A 多智能体协作;Skills 封装与渐进式披露
  • 可靠性:三层防御(硬隔离 / 熔断 / 自修正)、DAG 依赖、超时与降级
  • 记忆分层:滑动窗口 + 摘要、Mem0/Zep、上下文压缩管线
  • 可观测性:Langfuse / LangSmith 全链路 trace、token 与成本看板
  • 安全:Prompt Injection 防御、高危操作 Hook、OWASP Agentic AI 风险
  • 部署:Docker、FastAPI 流式接口、vLLM 自托管、限流与 K8s 基础

配套动作

  • 把阶段二的 Agent 接入自建 MCP Server 替换裸函数调用
  • 加入人机协同审批节点与 Checkpoint 断点恢复
  • 用 BFCL 风格的用例集评测工具调用成功率
  • 做一次 Prompt Injection 红队测试并加固
阶段产出:具备监控、熔断、权限、审计的生产级 Agent 服务(可容器化部署)。
4标杆项目与求职冲刺期持续迭代

目标:用公开基准讲出"精度 / 延迟 / 成本"三维数据,形成可被追问十层的简历项目。

推荐项目方向(2026 有故事性)

  • Code Agent on SWE-Bench Verified(500 题人工核验子集)
  • 客服 Agent on τ-bench(多轮工具调用)
  • Text2SQL Agent on BIRD-SQL
  • Browser Agent on WebArena / VisualWebArena
  • GUI Agent on OSWorld[4]

求职动作

  • GitHub 开源:README 写清架构图、评测集、三维数据
  • 用"问题→方案→量化收益"结构打磨 2 个核心项目
  • 刷牛客 / 脉脉最新面经,按本手册八模块自测
  • LeetCode Hot 100 保持手感,准备手写 MHA 与 minimal Agent
阶段产出:1–2 个可在线演示、有公开基准成绩、三维数据齐全的代表作。

10 · 实战项目与简历写法

2026 年简历只写"准确率提升"已经不够,面试官会追问成本与延迟——能同时讲清 accuracy / latency / cost 才是合格的 Agent 工程师。[4]

简历项目金标准模板(可直接套用改写) "基于 LangGraph + Claude Agent SDK 构建 Code Agent,在 SWE-Bench Verified 上从基线 32% 优化到 51%。主要手段:① 改进文件搜索工具的 schema 设计 → +8pp;② 增加测试失败后的反思-修正子图 → +6pp;③ 用 Prompt Caching 将单任务成本降低 60%、延迟降低 70%。"[4]
表 4:三个梯度的项目组合建议
梯度项目证明的能力
入门保底垂直领域知识库问答(RAG + Rerank + 评测集 + 增量更新)RAG 全链路与评测纪律
进阶主力多工具业务 Agent(LangGraph + MCP Server + 熔断/审批/记忆 + 可观测)工程化落地与系统设计
冲刺亮点SWE-Bench / τ-bench / BIRD-SQL 基准项目,报三维数据技术深度与科研式优化能力

11 · 避坑清单与 30 天冲刺

五个高频误区

  1. Multi-Agent 不要早学:单 Agent + Workflow 优先,状态同步与循环依赖在单 Agent 没吃透前全是坑;[4]
  2. 不要迷信推理模型:简单任务开 thinking 更慢更贵,按 reasoning_effort: minimal/low/medium/high 分级;
  3. 不要堆框架:简历列 LangChain+LlamaIndex+AutoGen+Dify+Coze+MCP+A2A 会显得都没深用过,专精 1–2 个并讲清选型理由;
  4. 不要绕过 Prompt Caching:生产环境不开缓存等于烧钱,这个细节一问就扣分;
  5. 不要只报准确率:必须同时准备成本、延迟数据与 baseline 对比。

30 天冲刺清单(在职版,每天 1.5–2 小时)

  • 第 1 周:手写 minimal Agent + ReAct,整理 messages 协议与四大失败模式笔记
  • 第 2 周:LangGraph 官方教程走通,做带条件分支与 Checkpoint 的小应用
  • 第 3 周:RAG 项目补评测集、baseline、Rerank 与增量更新;手写一个 MCP Server
  • 第 4 周:按本手册八模块逐题口述录音,重点练 Q26/Q27/Q32/Q33 系统题;每天 2 道 LeetCode Medium
  • 贯穿全程:把目标公司近期 AI 产品(如豆包、扣子、腾讯元器等)逐一体验并形成观点
一句话记住考核本质 面试官要的不是"会背概念的人",而是"能在非确定性系统中装上确定性安全阀的工程架构师"。最好的准备不是刷题,而是真的把一个 Agent 跑到生产 / 准生产环境,看它在哪里崩,再亲手修好。[2]