Naato 字节飞书
根据转写整理,岗位方向偏 AI 质量效能 / Agent 测试。以下只保留核心题目和少量上下文。
简历项目深挖#
- 简历里两个项目,哪个更难?为什么?
- 略去(偏向简历项目本身)
AI Agent / 比赛项目#
- MCP、Skill、CLI 分别怎么理解?它们的区别是什么?
- 飞书 AI 挑战赛里你主要做了什么?
- 略去(偏向项目本身)
- 对多 Agent 协作有什么理解?
- 自己用过 openclaw 或者 hermes 吗?
基础知识#
- Go 和 Python 哪个更熟?
- 对于 AOP(面向切面编程)有什么了解?
- RabbitMQ 的生产消费模型是什么?
- RabbitMQ 如何保证顺序消费?
- 限流器的令牌怎么算?令牌桶的核心思想是什么?
- MySQL 有哪些索引类型?
- 联合索引怎么判断是否命中?
(A, B, C)跳过B用A和C会怎样? - Linux 文件权限怎么表示?
chmod 755是什么意思?
算法#
行为面与反问#
- 有没有跟老师做项目?平时有没有和同学合作项目?
- 最近压力最大的事情是什么?怎么排解压力?
- 什么时候可以入职?能实习多久?
- 反问:团队业务更偏测试,还是更偏 Agent 本身?
参考答案(AI 生成)#
以下答案由 AI 生成,仅供面试复盘参考。
1. MCP、Skill、CLI 分别怎么理解?它们的区别是什么?#
答:可以把这三个概念分层理解。Skill 更像给模型看的操作说明或知识卡片,告诉模型在某类任务里该怎么做;MCP(Model Context Protocol)是由 Anthropic 提出的开放标准,用统一协议把外部工具、本地资源和数据源暴露给模型;CLI 是命令行交互方式,是人或程序操作系统工具的一种入口。简单说,Skill 偏知识和流程,MCP 偏工具接入标准,CLI 偏具体交互形式。
2. 对多 Agent 协作有什么理解?#
答:多 Agent 协作的核心是拆任务、分角色、做汇总。通常会有一个主 Agent 负责理解目标、拆分子任务、分配给不同子 Agent,再把结果汇总和仲裁。它的优点是可以隔离上下文污染,让不同角色并行处理不同问题,比如检索、编码、测试、总结分别交给不同 Agent。真正落地时还要考虑共享状态、通信方式、失败重试和冲突解决,不然多个 Agent 只会把复杂度放大。
3. 对于 AOP(面向切面编程)有什么了解?#
答:AOP 可以理解成把日志、鉴权、监控、事务这类和业务无关但又经常重复出现的横切逻辑,从业务代码里抽出来统一处理。它的核心价值是降低耦合、减少重复代码、让主业务流程更清晰。Java 里常见的是基于代理或织入来做 AOP;如果放到 Go 里,虽然没有完全一样的框架形态,但也可以通过中间件、装饰器函数、接口包装等方式实现类似思想。
4. RabbitMQ 的生产消费模型是什么?#
答:RabbitMQ 的核心链路是 Producer、Exchange、Queue、Consumer。生产者先把消息发给 Exchange,Exchange 再根据 routing key 和绑定规则把消息路由到一个或多个 Queue,消费者从 Queue 拉取或订阅消息并处理,处理完成后通过 ack 确认。它的价值主要在于异步解耦、削峰填谷和失败重试。
5. RabbitMQ 如何保证顺序消费?#
答:RabbitMQ 只能天然保证队列里的入队顺序,不能天然保证并发消费者下的处理完成顺序。想尽量保证顺序,常见做法是把同一业务 key 的消息路由到同一个队列(可借助一致性哈希),再让这个队列只对应一个消费者,或者消费者侧接收后根据 key 投递到内存中的内存队列串行处理。如果业务对顺序要求特别高,还可以在消息里加 sequence id,在消费端做校验、缓冲和重排。同时要注意重试、死信和并发 ack 都可能破坏顺序。
6. 限流器的令牌怎么算?令牌桶的核心思想是什么?#
答:令牌桶的核心思想是系统按固定速率向桶里放令牌,桶有容量上限。请求到来时必须先拿到令牌,拿到就放行,拿不到就限流、等待或失败。这样既能限制平均速率,又允许一定程度的突发流量,因为桶里可以提前积累令牌。和漏桶相比,令牌桶更适合“平时限速,但允许短时突发”的场景。
7. MySQL 有哪些索引类型?#
答:如果按逻辑功能分,常见有主键索引、唯一索引、普通索引和联合索引;如果按存储引擎 InnoDB 的实现分,可以分成聚簇索引和二级索引。聚簇索引的叶子节点直接存整行数据,通常主键就是聚簇索引;二级索引的叶子节点存的是主键值,所以查不到的列还需要回表。面试里最好把“索引分类”和“InnoDB 里怎么存”这两层一起说出来。还可以提一句:InnoDB 会在内存中自动为主键或查询频繁的二级索引维护“自适应哈希索引(AHI)”来加速热点数据的查询。
8. 联合索引怎么判断是否命中?(A, B, C) 跳过 B 用 A 和 C 会怎样?#
答:判断联合索引能不能用,核心看最左前缀原则。索引是 (A, B, C) 时,查询里从左往右连续使用这些列,索引利用率最高;如果跳过了 B 直接用 A 和 C,一般只能利用到 A 做索引树查找,C 往往无法继续利用这个联合索引做等值/范围定位。
加分项补充:
- 索引下推(ICP):在 MySQL 5.6 及之后,虽然
C没法走 B+ 树定位,但引擎层可以在沿着A扫描的同时,把C的条件用于过滤,不满足条件的行直接丢弃,从而极大减少了回表次数。 - 索引跳跃扫描(Index Skip Scan):在 MySQL 8.0 中,如果
A的唯一值基数很少(比如性别),优化器可能会自动触发跳跃扫描,从而连B和C也能部分走索引。
实际排查时最好补一句:会用 EXPLAIN 看 key、type、rows、Extra(如 Using index condition 说明用到了索引下推),确认到底命中了多少。
9. Linux 文件权限怎么表示?chmod 755 是什么意思?#
答:Linux 权限通常分成 owner、group、others 三组,每组都有 r、w、x 三种权限,分别表示读、写、执行。chmod 755 的意思是 owner 拥有 rwx,group 和 others 拥有 r-x。换成数字就是 r=4、w=2、x=1,所以 7=4+2+1,5=4+1。如果是目录,x 权限还表示能不能进入这个目录。