面试知识库

冲刺模拟面试 3 · 行为面与反问#

面试官画像: 部门主管/HR,关注动机、学习能力、抗压能力、协作潜力 时长: 30-35 分钟 · 难度: ★★★☆☆ 风格: STAR 法则追问——每个故事要追到 Situation → Task → Action → Result


动机类(8 分钟)#

面试官: 你生物医学工程的背景,为什么想做 Agent 开发?

候选人: 本科智能医学工程有编程和机器学习基础。研究生阶段发现大模型不只是”聊天机器人”——真正的价值在于把 AI 能力编排成可靠的自动化系统。这需要工程能力——并发控制、状态管理、可观测性、安全边界。我觉得这比纯学术研究更能创造直接价值,所以从去年开始系统性地做 Agent 项目。

面试官: 不做医学方向的研究了?

候选人: 导师支持我探索工程方向。医学背景不是浪费——做 SREOps 时的分层诊断思路其实就借鉴了临床诊断的递进排查逻辑。长远看,AI Agent 在医疗辅助诊断、个性化用药推荐这些场景有很大空间,两个方向将来可能合流。

面试官: 为什么选实习而不是直接找正式工作?

候选人: 两个原因。第一,我还在读研,时间上只能实习。第二,我的项目经验都是个人项目,缺乏在真实业务场景中和团队协作的经验——需求变更、代码评审、线上事故处理这些只有在实际团队里才能学到。


踩坑与成长类(10 分钟)#

面试官: 做这两个项目,最大的一次翻车是什么?

候选人: ShoppingX 上线后第一次跑完整的跨 5 平台搜索,5 分钟后页面空白。排查发现:第四个子 Agent 不停换关键词重搜了 7 轮,第五个自己调了 shopping_summary 输出了一段推荐文案——主 Agent 期望 JSON 候选列表,拿到的是自然语言。

根因不是代码 bug,是 prompt 对弱模型不可靠。告诉子 Agent”不要调终结工具”,它就是会调。

面试官: 你怎么解决的?

候选人: 第一反应是改 prompt——加粗、重复强调。没用。然后意识到:LLM 是概率模型,规则类约束必须用代码兜底。上了四层机制:深度闸硬拦 fork 嵌套、超时+迭代上限、循环检测(连续 3 次相同工具调用 pattern 直接终止)、结果截断。另外阶段状态机拦住子 Agent 调终结工具。

效果:弱模型还是会尝试越权——但每次都被机制拦住,优雅降级返回已有候选。

面试官: 这个经历让你学到什么?

候选人: “机制兜底不靠 prompt 祈祷”。这个原则贯穿了后续所有设计——检索预算、token 预算、工具权限、漂移检测——全是代码硬约束,prompt 只是告诉模型”建议这样做”,代码保证”你不这样做也没关系,我会拦你”。

面试官: 另一个翻车呢——不同类型的。

候选人: 评测陷阱。第一次跑 Rubric 评测,均分很低。我花了两天改 prompt、改检索策略。后来回头看,发现 40% 的”扣分”是 Judge 模型的误判——比如 Agent 正确地把某个中间数据写进了 Langfuse trace,Judge 说”泄露了内部信息给用户”——但那段信息根本不在用户可见文本里。

教训:先校准尺子再改 Agent。校准 Judge 的评分纪律后,同样的 Agent 分数涨了 61%,一行 Agent 代码没动。


自驱力与学习方式(5 分钟)#

面试官: 你怎么学一个新技术的?比如 LangGraph。

候选人: 三步。第一,跑通官方最小示例——理解核心概念(LangGraph 的 state、node、edge)。第二,带着真实需求去改——比如我需要在 Agent 循环里加 Hook 点,就去研究 LangGraph 的 callback 机制,发现不够用就在外层自己封装 HookPipeline。第三,看源码理解内部实现——比如 LangGraph 的 recursion_limit 是按 super-step 计数的,一轮 Think→Act = 2 个 super-step,不看源码会设错值。

面试官: 没有同事可以讨论,遇到卡点怎么办?

候选人: 两个路径。第一,看 trace——Langfuse 里每个 LLM 调用、工具调用的输入输出都有记录,90% 的 bug 通过看 trace 能定位。第二,做对照实验——比如怀疑是 reranker 排序有问题,就跳过 reranker 直接看召回结果,确认问题出在哪一层。实在解决不了的——目前还没遇到。


团队协作潜力(5 分钟)#

面试官: 你的项目都是一个人做的,进团队能适应代码评审和分工吗?

候选人: 个人项目也有代码规范——pyproject.toml 配了 Ruff 格式化和 lint,有单元测试和集成测试,Git 提交有规范。代码评审的价值我理解——另一个人看到的盲区和你自己不一样。ShoppingX 的很多 bad case 都是”代码自测通过但实际效果有问题”——如果有人在 review 时问”这个边界情况怎么办”,能提前发现。

面试官: 如果你的方案和团队 senior 意见不一致怎么办?

候选人: 先听理由。如果对方的方案确实更好——接受,学到东西。如果我觉得我的方案有优势,会拿数据说话——比如”这个方案延迟多 200ms 但代码复杂度降一半,维护成本更低”,让事实来决定。实在分歧大的,听 senior 的——他们有我没有的上下文。


反问环节(5 分钟)#

面试官: 你有什么问题?

候选人:

  1. 团队里实习生的成长路径是什么样的——有 mentor 机制吗?多久能独立负责一个模块?
  2. 团队目前在 Agent 工程上最想解决但还没解决的问题是什么?(帮我判断我能贡献什么)
  3. 如果入职,前两周的 onboarding 大概是什么节奏?