AI Agent面试到底面什么?个人的分享和总结
一句话概括
作者复盘了自己在秋招阶段面多家公司 AI Agent / AI Engineer 岗位的真实经历,总结出面试问题高度收敛于“AI Native Software Engineer”能力模型——既要懂 LLM 的能力与不可靠性,又要能用传统后端工程把这种不确定性包裹进一个可靠的生产系统。
核心要点
一、总体趋势判断
面试问题正在收敛 :虽然各家业务完全不同,但问题最终都落到同一套能力上。不再是简单问 RAG、LangChain、LangGraph、MCP 等框架名词,而是深入追问设计动机与工程细节。
面试官对 Agent 项目“去魅” :不再关心你用了多少框架,更关心你为什么用 。如果写了 Multi-Agent 却答不出为什么需要 Multi-Agent,前面的技术名词只会被视为炫技。
从“会用工具”转向“判断能力” :面试官看重的是思考过程和对问题的判断力,而不是答案是否“正确”。正如他们更应关注 AI 的思考过程,而不是仅看 AI 的回答。
二、小红书面试(AI + 客户端/前端性能工程)
以真实业务场景切入 :从客户端埋点数据(从 APP 启动第一阶段到用户看到首屏结束)出发,考察如何把工程师现有的性能分析 workflow 变成 Agent。回答主线为:数据感知 → 异常检测 → 定位阶段 → Root Cause Analysis → 出报告,抽象为“感知、决策、执行、归一”四个词。
关键产出思路:确定性部分不要交给 LLM :SQL 查询是确定的、Python 聚合计算是确定的、指标变化阈值是确定的,这些不必让 LLM 自由发挥。LLM 真正适合做的是理解上下文、选择路径、归因和生成解释。
系统二分层设计 :数据查询层(deterministic,走固定 SQL / API / Python Script)与 LLM reasoning 层(归因、解释)分离。
多 Agent 的本质拷问 :面试官问“多 Agent 本质是不是在构建预编排逻辑链?能否做动态逻辑链?”结论是两个极端——完全预编排(稳定可控但灵活性差)vs 完全动态编排(灵活但生产环境危险,易无限循环、成本爆炸);更认同 Controlled 方案 :核心业务逻辑 workflow 控制,局部(选工具、选信息)由 Agent 动态判断。即“workflow 提供边界,agent 在边界内获得自主性”。
三、阿里面试(AI Agent Engineer / Application)
RAG 文档切片要讲前因后果 :不能只说“按文字切”,要解释为什么这么切。如车辆故障手册有明显章节结构(车型、故障码、故障链),若按 500 token 一刀切会把故障链与解决办法拆散导致 embedding 语义残缺。正确做法是 structure-aware chunking :先按标题做一级拆分,section 过长再用滑动窗口,并在 chunk 上保留元数据。
向量数据库选型考的是 trade-off :不要一上来就报 FAISS、Milvus 等参数,要先看场景。几十份手册、成千上万切片、内部原型、低并发——轻量方案更合理;若未来需要多租户、动态更新、高并发、高可用再换重型分布式向量库。
LangGraph 被追问 State 细节 :很多人说用了 LangGraph,但被问 Graph 里有什么 State 就卡住。State 不是抽象名词,如诊断 Agent 的 State 可能包含用户输入、车辆信息、故障诊断结果等,且在不同 Node 间被不断读取和更新,这才是 LangGraph 的核心,而非一个“多 Agent 框架”。
数据库选型考的是数据模型与存储模型是否匹配 :Agent state 动态、每个 workflow 中间字段不同 → Document Store 自然;存账单、账户、资金流水 → 另一套选型。Agent Engineer 非常需要传统软件工程能力(数据库、缓存、SQL、失败后 Resume)。
卡夫卡(Kafka)问题 :高峰期消息堆积怎么解决、怎么判断真堆积还是消费者能力不足、怎么判断消费者 CPU 不够、网络延迟等。生产 Agent 可能消费 Event、调十几个 Tool、产生 Trace,通过 MQ 做 Workflow,因此消费积压、消息延迟、重复消息、乱序、Exactly-Once 做不到时如何设计幂等,都是 Agent Engineer 的必答题。
Text-to-SQL 的模糊性问题 :用户说“帮我查一下卖得最好的商品”,系统如何理解“卖得最好”——销量最高还是销售额最高?LLM 最喜欢猜,但数据库场景猜错就是错。合理逻辑:confidence 足够高就继续执行,存在明显模糊就 Clarify (反问澄清)。一个好的 Agent 应该知道什么时候执行、什么时候拒绝、什么时候澄清,这比回答本身更重要。
生产 Agent 的核心不是让模型更聪明,而是限制模型犯错的空间 :多表 JOIN 保证字段正确、做 Schema Retrieval、元数据/字段描述/relationship 业务口径、重要指标做结果校验。限制模型边界(Harness、Prompt Engineering)比模型本身是否聪明更重要。
四、AI Coding 面试(约 40 分钟,沙盒环境类似 Cursor)
题目 :设计一个可扩展、线上安全、逻辑清晰的订单状态机引擎,允许使用 AI。面试官(后成为带教)真正在看的是你怎么使用 AI ——你的角色是 tech lead,AI 的角色是 junior developer。
四个考察点 :
自己是否先理解问题 :哪怕只是模糊框架,也要自己先想一遍,不要第一反应直接问 AI;
是否会拆任务 :把状态机引擎拆成不同部分,一块一块交给 AI;
是否会验证 AI :AI 写完模块后是否去读、跑 test、检查边界,还是看到绿色代码直接 accept;
能否解释 trade-off :如“用它定义状态”与“通过 metadata 定义状态和事件”各自的优劣。
真正的重点不是代码跑没跑,而是这个设计到底是不是你的决策 。
五、字节面试(项目细节与评估归因)
分层考察 :第一层架构确认(怎么设计、量级怎么判断);第二层路由细节(每个 Skill 查上游投放的某一部分,还是让 Agent 选 Skill);第三层评估与归因(方案怎么做 optimize、看 ABTest 后多久能拿到有效显著性结果、方案变好对 Skill 有多大 impact)。
核心难点:方案有效 ≠ Skill 有效 ,中间隔着一层归因问题。经典悖论:上了新 Skill 后原有的 Bad Case 消失,Analyzer 抓不到这类 Bad Case,如何知道它是被消灭的、且是因为 Skill 里对应内容才被消灭的?Bad Case 消失可能是 Skill 起作用、流量变化或代码修复,且消失后监控天然失去观测能力,这是一个“成功会摧毁自己证据”的悖论。
归因方法 :保留 hold-out 流量不吃新 Skill 做对照、构造回归测试集定期投放历史 Bad Case、看 Skill 命中日志与 Case 消失的时间相关性等。
多 Skill/工具的有效 Section 合并 :五个不同 Skill 和工具的有效 Section 怎么合并成一个对 Skill 的优化方向?本质是——你优化的究竟是一条轨迹还是一个 Skill?最大感受:搭建 Agent 的能力不稀缺,稀缺的是证明这个 Agent 在变好的能力 。全程不问框架和模型,只关心闭环有没有真的闭环、每环因果是否站得住。
六、能力分层模型(六层总结)
第一层 :会不会用 LLM——Prompt、Structured Output、基本模型能力(最低层)。
第二层 :能不能给 LLM 正确的信息——RAG、向量检索、Embedding、Retrieval、知识库(Knowledge Base)、Context Management。
第三层 :能不能控制 LLM 的行为——Workflow、LangGraph、State Machine、Multi-Agent、Routing、Planning。
第四层 :能不能把 Agent 接到真实世界——MCP、API、Database、Kafka、Python。
第五层 :Agent 犯错了怎么办——可靠性、正确性、一致性、安全性、可追溯性。
第六层 :怎么证明 Agent 真的有价值——企业中项目是否开展取决于可行性和价值程度,这是面试官非常关心的一点。
七、生产 Agent 的工程复杂度
复杂度藏在“箭头”里 :Agent Platform 从摘要看只是 input → Agent 判断 → 调 MCP → 输出结果,但生产系统的复杂度全在箭头之中——谁能调这个 Tool、读操作和写操作权限是否一样、参数合法性检查、高风险操作是否二次确认、脚本在哪里执行。
沙盒(Sandbox)问题 :Agent 生成的自定义 Python 代码不能直接在生产机器跑,必须丢进隔离沙盒,超时直接杀掉、访问未授权资源直接拒绝,此时 Agent 才从 demo 变成 system。Agent 工程的复杂度不在 ReAct Loop 本身(几行代码就写完),而在外围的授权、Permission、State、沙盒等。
传统后端不能丢 :Kafka 消费、消费组、消费者与 partition 的关系、消费数量比 partition 多会怎样、Rebalance、Offset 怎么提交;资金流水如何保证顺序、重复消费如何处理。LLM 本身不是 deterministic,必须用一个系统去包裹它。
八、给准备 AI Agent 岗位的建议
不要为了 Agent 而 Agent :如果一个 Pipeline 能解决就用 Pipeline,一个 SQL 就用 SQL,一个 Script 就用 Script。LLM 是系统中最贵、最不稳定的组件之一,不是越多越好。
所有技术选型都要准备“为什么” :不只准备“我用了这个”,更要准备“为什么是这个、为什么不是别的、什么时候会切换”。什么状态结构适合 Document Store,若是事务型数据还会不会这么选。要知其然并知其所以然。
传统后端基础不能丢 :Agent 不是漂在空中的,最终还是一个 Distributed System,数据库、Kafka、缓存、并发、分布式、网络等基础非常重要。
学会说“不确定” :领域变化太快,面试官很容易问到没实际做过的东西。与其硬往项目上套(会有漏洞和不可行性),不如坦诚并给出自己的看法与 trade-off。可用句式:“我没有在生产环境做过,但如果让我设计,我会从几个维度考虑……”
学会和 AI 一起工作 :未来很多 SWE 工作会变成——你负责定义任务、拆任务、做架构、审计结果,AI 负责生成、搜索、实现、Debug。Coding Interview 也可能从“能不能一个人手写所有代码”变成“当所有人都有 AI 时,你能不能比别人做出更可靠的系统”。
九、最终结论
AI Agent 岗位的本质是 AI Native Software Engineer :不能只懂模型,也不能只懂后端;既要懂 LLM 有什么能力、有多不可靠,又要能用这些能力把不确定性包在一个可靠的软件系统里。这就是作者对 AI Agent 岗位最强烈的感受。
⋯ 已提交 AI 生成深度整理,预计需要 10~60 秒(取决于文字稿长度),请稍候…
生成深度整理