面灵AI→

科大讯飞 Agent 开发一面:不考八股,全是场景题

轮次
一面
时间
2026-09
来源
牛客网

《面试题目》

  1. 最近在学什么?
  2. 介绍一下学习的内容,总结一下
  3. 在实习中有什么难点,怎么解决的?
  4. 操作系统场景题:CPU 利用率很低,为什么?怎么设计来解决该问题?
  5. 计网场景题:客户端到服务端 100ms、服务端处理数据 70ms,一次 HTTP 请求需要多少 ms?
  6. 工程场景题:如果 CPU 占用率突然变成 100%,是什么原因?(不是只列出原因,是要讲出怎么排查出这个原因)
  7. 面向对象的理解,怎么设计?
  8. 现在代码都是 AI 写了,那工程师之间的差异在哪?
  9. 兴趣爱好

《参考解析》

  1. 「最近在学什么」是整场的开场锚点:这题看着随意,实际上决定了后面二十分钟往哪聊。别报课程名或框架名就停,按「为什么学 → 学到哪一层 → 动手做了什么 → 卡在哪 → 下一步打算」讲三层。面试官接着问的「总结一下学习的内容」,考的就是你有没有把零散知识收成自己的框架。选一个和岗位沾边的方向(Agent、并发、存储都行),别挑自己讲不深的。

  2. CPU 利用率低要先确认是哪种「低」:压测打不上去、还是线上响应慢但机器很闲,这两件事的解法完全不同。常见的几个方向是并发度不够(单线程串行、连接数上限太低)、大量时间阻塞在 IO 或锁上(iowait、锁竞争、下游慢)、任务量本身不足、以及被 cgroup 配额限流——最后这种最容易被漏掉,cpu.stat 里的 nr_throttled 会把「被限流」伪装成「很闲」。定位靠 top / pidstat -w / vmstat / 线程栈 + 火焰图,先看 us、sy、wa 谁高,再谈优化。设计上落到具体的动作:把阻塞调用异步化、拆线程池隔离快慢任务、批量化、提高并发度,做完再压一次验证。

  3. HTTP 耗时题的第一步是问清楚口径:题面说「客户端到服务端 100ms」,要先确认它指的是单程时延还是往返 RTT。按单程算,一次请求-响应大致是 100(请求在路上)+ 70(服务端处理)+ 100(响应回来)= 270ms;若 100ms 是 RTT,则约 170ms。真实场景还要再算上 DNS 解析、TCP 三次握手(1 个 RTT,复用连接可省)、TLS 握手(1~2 个 RTT)和序列化开销。把假设和口径讲出来,比直接报一个数字更像工程师。

  4. CPU 打满这道题,问的是排查路径不是原因清单:面试官已经点明了「要讲怎么排查出原因」。可用的路径是:top 看整体和 us/sy 占比 → top -H 找最热的线程 → 拿线程号去 jstack / perf top 对齐栈,定位到方法级热点 → 结合监控判断是流量突增、死循环、正则回溯、频繁 GC 还是锁自旋 → 修复后在同等压力下回归验证。每一步都要说清「我拿到这个输出,下一步会去看什么」,只背原因清单会被追问穿。

  5. 面向对象设计题要有落地场景:别背封装、继承、多态三件套就完事。按「识别变化点 → 定抽象边界 → 定接口与职责 → 说明扩展方式」讲,最好挂一个自己写过的模块:当时哪些需求会变、怎么把它隔离出去的、新需求进来时改了哪几个文件。能讲清「为什么这么切」比讲清概念值钱。

  6. 「AI 都写代码了,工程师差异在哪」考的是自我定位:可以答的方向是——定义问题和验收标准的能力、对系统真实行为(性能、故障、边界)的理解与调试能力、领域知识与取舍、以及为合入生产的那行代码负责。反例是「会用 AI 提效」这种人人都会的答案,它区分不出任何人。