帆软后端一面面经
- 轮次
- 一面
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- 选一个案例,详细讲一讲 Agent 工作的完整过程。
- 如何评估 Agent 任务执行的准确率?
- 千万级数据库的等值过滤和范围查询很慢,如何排查和优化?
- 同时包含等值查询和范围查询时,索引如何设计?
- 索引失效有哪些常见场景?
- 单独给字段建索引和建立联合索引有什么区别?
- PDF 解析、模型调用、网络 I/O 分别适合进程、线程还是协程?为什么?
- 进程、线程、协程的区别和开销是什么?
- TCP 如何保证可靠传输?
- WebSocket 断开重连如何设计?
- 接口超时如何处理?
- 服务端同时收到大量请求时如何处理?如何保证请求幂等?
- Java 对象内存大小如何估算?
- Java 基本数据类型各占多少字节?
- JVM 内存模型是什么?
- 8 杯酒中有 1 杯有毒,小白鼠喝后 10 分钟出结果,如何在 10 分钟内找出毒酒,最少需要几只小白鼠?
- 计算峰值占用 50–100MB 的多类 Agent/RAG 请求,机器只有 8GB 内存,如何兼顾并发、延迟与稳定性?
- 如何设计多类任务队列保证公平性,防止一类请求占满资源?
- Agent+RAG 场景下缓存如何设计?
- 200 个请求中,完整请求耗时 1 分钟,30 秒时依赖资源发生变更,最终多久能拿到结果?
《参考解析》
- Agent 评估:把任务拆成可观测步骤,记录工具选择、参数、执行结果和最终答案,使用带标准答案或人工标注的离线集评估任务成功率、事实一致性和工具调用正确率。
- 索引设计:等值条件通常放在联合索引前部,范围条件放在后部,并结合选择性、排序与回表成本决定列顺序;最终用 EXPLAIN 和真实数据验证,不能只凭字段数量建索引。
- 进程线程协程:CPU 密集任务适合多进程并行利用多核;阻塞 I/O 可在线程池或协程中复用执行资源;协程切换开销低,但依赖异步 I/O,不能替代 CPU 并行。
- 可靠与幂等:TCP 通过序列号、确认、重传和滑动窗口保证有序可靠传输。接口应设置超时、取消和有限重试,并以业务唯一键或幂等 token 约束重复请求。
- 8GB 资源治理:按请求估算并发预算,使用有界队列、信号量和超时取消限制峰值;对相同依赖版本的结果做带版本键缓存,资源变更时使相关缓存失效。
- 毒酒问题:每只小白鼠只有生死两种结果,8 杯酒用 3 只小白鼠即可通过二进制编码区分(2³=8)。