Joye Personal Blog

Back

面了近 10 家 AI 创业公司后,我想聊聊 Agent 岗面试到底在考什么,以及那些比”背答案”重要一百倍的事。

写在前面#

我叫 Joye,墨尔本大学大二,计算与软件工程在读。过去几个月我在上海的特赞(Tezign)做 AIGC 研发实习,主要负责 Atypica——一个商业研究方向的 Multi-Agent 系统。

最近在看新的机会,陆陆续续面了将近 10 家公司,清一色都是 AI 创业公司和海外 Startup,岗位方向集中在 Agent 开发、LLM 应用工程这一块。面完之后回头看,我发现这个方向的面试经验在中文互联网上还挺稀缺的——不像前端后端有成体系的八股文可以刷,Agent 开发的面试更像是一场关于”你到底理不理解你在做的东西”的深度对话。

所以写这篇文章,一方面是把自己的面试记录做个整理和复盘,另一方面也希望给同样在这个方向上探索的同学一些参考。

但我想先说一件事:这篇文章不只是写给正在准备面试的人的,也同样写给正在学习 Agent 开发、正在写自己 Agent 项目的人。

为什么这么说?因为 Agent 开发的面试题和前端八股文有一个本质区别——前端八股你背完可能一辈子用不上,但 Agent 面试里被问到的这些问题,是你在做项目的时候真真切切需要去考虑的设计决策。“上下文爆了怎么办”不是一道面试题,它是你的 Agent 跑到第 20 轮对话时一定会遇到的工程问题。“如何防止 LLM 乱用 Tools”也不是面试官在刁难你,它是你部署到生产环境后第一周就会收到的 bug report。

换个角度想:如果你在自己的项目中已经认真做好了上下文工程、做好了 Tool-Calling 的可靠性保障、思考过 Prompt 注入的防御——那这些就不是需要”准备”的面试题,而是你可以自然而然讲出来的实战经验,这就是真正的加分项。我后续自己去做新的项目,也会带着这些问题去思考和设计。


Agent 岗面试到底在考什么#

和传统开发面试的区别#

面了这么多轮之后,我最大的一个感受是:Agent 开发的面试几乎没有”标准答案”。

传统的前端面试你可以背闭包、背事件循环、背虚拟 DOM diff 算法,背完就有个七八成把握。但 Agent 方向不一样,面试官问的很多问题是开放式的,他不是在考你记住了什么,而是在考你经历过什么。“你们的 Agent 出现死循环怎么办?“——这种问题,没踩过坑的人是编不出来的。

我观察下来,面试官关心的东西大致可以分成三个层次:

  1. 你会不会用——你用过 LangChain 吗?RAG 怎么搭的?MCP Server 怎么设计的?
  2. 你理不理解为什么这样设计——为什么用结构化 Prompt 效果更好?为什么要做记忆分层?为什么选 Vercel AI SDK?
  3. 你能不能在工程约束下做取舍——Token 预算有限怎么办?回复速度和质量怎么平衡?模型幻觉怎么兜底?

第一层靠经验,第二层靠理解,第三层靠判断力。越往后越难准备,但也越能体现一个人的工程成熟度。

面试题目全景分类#

我把这段时间遇到的面试题按主题做了一个分类整理,大概涵盖了 Agent 开发面试的主要考察方向:

RAG 与检索增强

  • 多重 RAG 和单一 RAG 的区别与适用场景
  • 如何做检索增强(Retrieval Augmentation)
  • RAG 什么时候用向量检索,什么时候用图数据库检索
  • RAG 的数据清洗怎么做
  • RAG → Agentic Search → Agentic Memory 的演进路径

Agent 架构与编排

  • Agent 的路由设计:如何决定调用哪个 Sub-Agent
  • Agent 的兜底机制设计
  • Sub-Agent 是并行还是异步?支不支持互相通信?
  • 如何防止 LLM 乱用 Tools
  • 如何处理 LLM 的死循环调用
  • 如何设计 MCP Server
  • Agent 流程的整体框架设计
  • 如何做回调(Callback)机制

上下文工程与 Token 管理

  • 如何节省 Token
  • 上下文爆了怎么办(除了 FIFO 还有什么方案)
  • 短期记忆如何转换成长期记忆
  • 提示词压缩策略
  • Prompt Cache 打在哪些位置

Prompt Engineering 与安全

  • 为什么结构化 Prompt 有助于提升回复质量
  • 如何设计情感类的隐晦情感 CoT
  • 如何防止 Prompt 恶意注入
  • 如何把抽象需求转化为实际需求(让 AI”更聪明""更有活人感”)
  • 访谈开始和结束时有没有做 Prompt 注入防护
  • One-shot 的负面作用:example 不够有差异化会限制模型思路

LLM 基础与模型工程

  • Attention 机制(公共知识)
  • Pretrain 与 LoRA 微调
  • LLM as a Judge 的设计与局限
  • 回复速度与回复质量的取舍
  • 如何避免 OOC(Out of Character)
  • 如何处理 LLM 幻觉

AI Infra 与工程化

  • 模型网关 / Agent 网关的设计
  • Eval 平台搭建
  • DPO / APO 算法评估
  • 为什么使用 Vercel AI SDK

行业认知与系统设计

  • Manus、OpenClaw、OpenCode 分别是如何做架构设计的
  • Agent 的主要应用场景:AI 搜索、Chat-to-BI 生成图表、Vibe Coding
  • Skill 和 MCP 的关系与区别
  • LangChain / LangGraph 的使用经验

看完这个列表你可能会发现,这些问题没有一个可以靠”背”来解决。它们考察的更多是你对系统的整体理解和你在实际工程中的判断力。


面试中最让我成长的几个问题#

比起列出每道题的”参考答案”,我更想分享几个在面试中真正让我成长的瞬间。这些问题当时有的答上来了,有的没答好,但它们都在面试结束后持续地影响着我对 Agent 开发的理解。

“上下文爆了怎么办?除了先进先出还有什么?”#

这个问题几乎每家都会问,而且面试官通常不满足于你只说”FIFO 淘汰最早的消息”。

我第一次被问到这个的时候,确实只答出了先进先出。面试官追问:如果用户在对话开头说了一个非常重要的约束条件,你用 FIFO 直接丢掉了怎么办?我当时愣住了。

后来复盘的时候我才意识到,这个问题本质上考的是**上下文工程(Context Engineering)**的全局视野。在 Atypica 项目里,我们其实已经在做这件事了——记忆分层(Working Memory / Short-term / Long-term)、摘要压缩、检索拼接、Token Budget 管控——但我当时没有把它们串成一个完整的 Pipeline 来表述。

这个经历教会我一件事:做过不等于能讲清楚。很多时候你在项目里已经解决了某个问题,但如果你没有把它抽象成一个系统性的方案,面试时就会支支吾吾说不出个所以然。从那之后,我开始刻意地用”问题 → 方案 → 权衡 → 结果”的框架重新梳理我在 Atypica 的每一个设计决策。

“如何防止 LLM 乱用 Tools?”#

这个问题初听起来好像很简单——加个权限控制不就行了?但面试官要的远不止这些。

在 Atypica 里,我们搭了一套 Tool-Calling 的异步状态机,包括 checkpoint、重试、幂等、超时回滚、状态恢复这些机制。但”防止乱用”不只是事后兜底的问题,更关键的是事前约束:Tool Schema 的设计是不是足够清晰?Function Calling 的描述有没有歧义?路由逻辑是不是能正确地把请求分发到对应的工具?

有一次面试中面试官继续追问:如果 LLM 进入了死循环反复调用同一个 Tool 怎么办?我提到了我们做的 watermark 和去重机制,还有断点续跑的设计。面试官点了点头,但又问了一句让我印象很深的话:“那你有没有想过,与其在运行时做这么多防御,不如在 Prompt 层面就把工具的使用边界讲清楚?”

这句话点醒了我。很多 Agent 可靠性的问题,根源不在 Runtime 层,而在 Prompt 层——你给 LLM 的指令如果本身就含糊不清,再多的工程兜底也是在给糟糕的 Prompt 擦屁股。这也是为什么后来我越来越重视 Prompt 的结构化设计和 guardrails 的前置约束。

“为什么结构化 Prompt 比自然语言 Prompt 效果更好?”#

这个问题我一开始觉得很好回答:“因为结构化信息更容易被模型解析嘛。“但面试官追问了一句:“从 Attention 机制的角度,你能解释一下为什么吗?”

我当时对 Attention 的理解还停留在”Q、K、V 做点积计算相关性”的层面,没有深入想过它和 Prompt 格式之间的关系。面试官给了一个很有启发的思路:结构化的 Prompt(比如用 XML 标签、JSON Schema 或者明确的分隔符)实际上是在帮助模型的注意力分配——它让关键信息在 token 序列中有更清晰的”锚点”,降低了模型在长上下文中”找重点”的难度。而自然语言的表述往往把关键信息淹没在大量的修饰语和过渡句中,增加了注意力的分散。

这次对话让我意识到,很多时候我们在工程层面做的 Prompt 优化,背后其实有很扎实的模型机制支撑。知其然更要知其所以然,这在面试中尤其重要——面试官能很快分辨出你是”背的经验”还是”真的理解了”。

“如何把抽象需求转化为实际需求?”#

这可能是我面试中遇到的最”软”的一个硬问题。

面试官的原话大概是:“用户说’让 AI 更聪明一点”更有活人感一点’,你怎么把这种模糊的需求变成可以落地的技术方案?”

这恰好是我在 Atypica 里花了大量时间做的事。我们设计了一套 Counter-Questioning(澄清式反问)系统:当用户的需求模糊时,Agent 不是硬着头皮去猜,而是通过显式和隐式的意图识别,把模糊的需求拆解成结构化的约束——目标是什么、受众是谁、风格偏好、限制条件各是什么。

我在面试中完整地讲了这套系统的设计思路,面试官听完之后问了一个我觉得很高级的问题:“那你怎么评判 Counter-Questioning 的质量?怎么知道你问的问题是有效的,而不是在浪费用户的耐心?”

说实话这个我当时没答好。后来我想了很久,觉得这可能需要用 LLM as a Judge 或者用户满意度的间接指标来做评估——但这个方向我确实还没有深入实践过。面试就是这样,它会精准地戳到你知识体系的边界。

“如何防止 Prompt 恶意注入?”#

这个问题在多场面试中都被问到了,但真正让我受益的不是面试本身,而是面试之后我做的功课。

面试中我大致聊了一些基础的防御思路——输入过滤、角色锁定、输出校验之类的。但面试官显然期待更系统化的回答。回去之后我去认真读了 OpenAI 和 Anthropic 各自关于 Prompt 安全的技术博客,发现这个领域其实有两个非常清晰的核心思想:

一个是 OpenAI 提出的 Instruction Hierarchy(指令层级)——核心理念是给不同来源的指令设定优先级,System Prompt > 开发者指令 > 用户输入,让模型在遇到冲突指令时知道该听谁的。另一个是 Anthropic 的沙盒化思路——把不可信的外部内容隔离在受限的执行环境中,从架构层面限制恶意指令的影响范围。

我为什么要特别提这个?因为我真心建议每一个做 Agent 开发的人都去花时间读一读 OpenAI 和 Anthropic 的技术博客。它们不是停留在理论层面的学术论文,而是非常优秀的、来自一线的工程实践建议,读完之后你对很多问题的理解会上一个台阶。当然论文也值得读——我后面会在我的个人博客上出一个精选论文系列,筛选对 Agent 开发实践最有价值的论文做解读。同时我也在做一个 RSS 订阅推送的东西,每天或每周汇总来自各大 AI 厂商的最新 Agent 开发实践,加上我自己的理解和点评,不是单纯的搬运,而是带观点的筛选和解读。感兴趣的可以关注我的博客 joyehuang.me 获取更新。

“你了解 Manus / OpenClaw / OpenCode 的设计吗?”#

这不是一个技术深度的问题,而是一个行业广度的问题。面试官想知道的是:你有没有在关注这个行业正在发生什么?你不只是在自己的项目里埋头干活,还有没有抬头看看别人在怎么解决类似的问题?

当时我对 Manus 和 OpenCode 有一些了解(我研究过 OpenCode 的架构),但对 OpenClaw 了解不多,回答得比较勉强。这个问题提醒了我:Agent 开发还处在快速演进的阶段,面试官考察行业认知本质上是在考你的学习速度和信息敏感度。

如果你平时不看 GitHub Trending、不追 Twitter/X 上的 AI 讨论、不去研究新出的开源项目,面试中遇到这类问题就会非常被动。我后来养成了一个习惯:每周花固定时间去看看 Manus、OpenCode 这些项目的 changelog 和 design doc,不一定要深入,但至少要知道行业的风向在往哪吹。


那些比”刷题”更重要的事#

关于面试本身#

复盘是面试最大的杠杆。

这是我最想强调的一点:不做复盘的面试是没有意义的。如果条件不允许录音,那就面试一结束立刻找个地方坐下来,趁记忆还热乎,把所有问题和自己的回答记录下来。尤其是没答上来的、答得磕磕巴巴的——那些才是最有价值的复盘素材。你现在看到的这篇文章里的面试题列表,就是这么一轮轮记下来的。

让面试官给你复盘。

很多人忽略了反问环节的价值。我后来养成了一个习惯,在反问环节一定会问两个问题:“我今天面试哪里表现得不太好、需要改进?“和”我哪里做得还不错?“你可能会觉得这样问很直接,但实际上大部分面试官都非常愿意回答。他们给你的反馈比你自己瞎猜精准得多,而且这也展示了你是一个积极寻求成长的人。

除了这两个问题,还可以问问”如果入职后第一个要上手的项目是什么”——这既能展示你的诚意,也能帮你判断这个岗位的实际工作内容是不是和 JD 描述的一致。

面试官也是你的人脉。

面完之后,不管结果怎样,尽量加个微信或者 LinkedIn。你不知道什么时候这段关系会产生价值。我有一个真实的经历:面了一家做 toB 方向的 Fintech Agent 公司,通过了一面,但面试官觉得他们公司的产品方向可能不太适合我的兴趣,就主动把我推荐给了另一家公司。我现在正在那家公司的笔试流程中。机会有时候就是这么来的——你永远不知道一次”没成功”的面试会通向哪里。

关于选 Offer:给实习生和初创方向的建议#

用一个问题筛掉不靠谱的创业公司。

在面试创业公司的时候,我一定会在反问环节问一个问题:“对比竞品,你们产品的核心优势是什么?“这个问题看似简单,但它的筛选效果非常好——一个创业公司的面试官如果连自家产品的差异化优势都讲不清楚,那这家公司的方向大概率是模糊的。创业公司对自己的产品都没有信心,你去了能学到什么?直接避雷。

不要被”天使轮融资 xxx 万”忽悠。

融资金额只是评判一家创业公司的一个维度,绝对不是唯一维度。当然,连融资都没有的公司确实需要更加谨慎。但有融资不代表一切都好——你还需要看产品方向是不是靠谱、团队背景如何、你在里面能不能真正学到东西、有没有 mentor 带你。实习不只是卖时间,更是一次学习投资,要想清楚你的时间花在哪里回报最高。

对我自己来说,选 offer 时最在意的几个点是:这个产品有没有意思?我自己是不是真的感兴趣?是不是出海方向?是不是 toC?这些偏好因人而异,但重要的是你得有自己的判断框架,而不是被融资额或者公司名头牵着走。

主动出击,不要被”全职”标签吓退。

在 Boss 直聘或者各种招聘平台上,很多岗位写的是招全职。但如果你觉得这个岗位方向很契合,完全可以主动联系,说明自己的情况:“虽然我目前还在读书,但如果贵公司有实习的需求,希望您可以看看我的简历。“最坏的结果不过是被拒绝,但很多时候对方其实是有实习 headcount 的,只是没有单独发出来而已。

说个题外话:如果你的实习经历足够扎实,甚至可以直接去面全职岗位。我就面过一个全职的 Agent 开发岗,被拷打得很惨但居然通过了——面试官到最后才发现我还没毕业。这件事让我意识到,不要自我设限,别人对你的预期往往没有你对自己的预期那么低。


行业观察:从面试题看 Agent 开发的风向#

面试题本身就是一个行业风向标——面试官问什么,某种程度上反映了这个行业当下最关心什么问题。从我这近 10 场面试中,我观察到了几个明显的趋势。

RAG 正在向 Agentic 方向演进#

几乎所有面试都问到了 RAG,但没有一个只停留在”检索 + 生成”的基础层面。面试官更关心的是 Agentic Search 和 Agentic Memory——也就是说,检索不再是一个被动的管道,而是 Agent 自己决定”什么时候搜、搜什么、搜到的结果怎么用”。这是一个从工具到能力的质变。

Agent 的三大落地场景反复被提及#

在和不同公司的面试官交流中,有三个应用场景被提到的频率最高:AI 搜索(从关键词匹配到语义理解的升级)、Chat-to-BI(用自然语言生成数据分析图表)、以及 Vibe Coding(用 AI 辅助甚至主导代码编写)。这三个方向各自对 Agent 的架构设计有不同的要求,但共同点是都在追求更强的”自主性”和”可靠性”。

AI Infra 层开始被认真对待#

早期做 Agent 开发,大家更关注上层应用逻辑——Prompt 怎么写、Chain 怎么串。但现在面试中越来越多地出现 AI Infra 层的问题:模型网关怎么设计?Agent 网关怎么做路由和限流?Eval 平台怎么搭建?DPO/APO 这些对齐算法你了解多少?这说明行业正在从”demo 阶段”走向”生产级”,基础设施的成熟度开始成为决定产品可靠性的关键因素。

MCP 和 Skill 体系正在标准化#

MCP(Model Context Protocol)在面试中被问到的频率很高,它代表的是 Agent 能力调用的一种标准化方向。同时,Skill 这个概念也在从 Manus 等产品中浮现出来——把 Agent 的能力打包成可复用、可组合的模块。这个趋势对开发者来说意味着:未来 Agent 开发可能不再是从零搭建,而是在一个标准化的能力市场里做组装和编排。

工具链选型体现工程品味#

为什么用 Vercel AI SDK 而不是 LangChain?这种问题看似在考技术选型,实际上在考你对工具链生态的理解和自己的工程判断力。在面试中能讲清楚”我为什么选这个、它的 trade-off 是什么、什么场景下我会换别的”,比单纯说”我用过 xxx”要有说服力得多。


写在最后#

面了这么多轮之后,我最大的感受是:面试是一面镜子,它不会骗你。

它会精准地照出你知识体系里的每一个漏洞,也会让你发现那些你以为自己懂了、其实只是”用过”的东西。从”我在项目里用过 Agent”到”我能设计一个可靠的 Agent 系统”,中间隔着的不是更多的项目经验,而是更深的理解和更系统的思考。

作为一个还在读大二的学生,我知道自己还有很多要学的。但这段密集面试的经历让我对 Agent 开发有了一个远比之前清晰的全景图——不只是技术上的,也包括行业判断上的。

最后送一句话给同样在这条路上的朋友们:

Build fast, learn faster. 面试不是终点,是下一段成长的起点。


如果这篇文章对你有帮助,欢迎在评论区交流你的面试经历,也可以在 GitHub 上找到我。

一个大二实习生的 Agent 开发面试修炼手册
https://astro-pure.js.org/blog/20260309---agentinterview/post
Author Joye
Published at 2026年3月9日
Comment seems to stuck. Try to refresh?✨