面灵AI→

字节后端一面:知识库 Agent 全链路拷打——异步入库、分块策略、混合检索与工具限流

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

《面试题目》

  1. 请做一个简短的自我介绍。
  2. 介绍你的知识库 Agent 项目:提供什么功能,用户如何使用,你具体实现了哪些部分?
  3. 用户上传文档后,向量化和入库是同步执行的吗?文档很大、处理很慢时用户端会不会超时?如果解析和入库需要一个小时,你会怎么优化?
  4. 如果文档改为异步处理,但执行过程中服务器突然下线,任务怎么办?如何判断哪些部分已落库、哪些还没有?如何恢复任务?
  5. 你当前的文档切块策略是什么?还了解哪些分块策略?
  6. 向量是什么?为什么向量检索能召回语义相关的内容?为什么向量距离近就代表语义相近,这种效果是怎么得到的?
  7. 这个场景也可以直接用关键词检索,为什么选择向量检索?
  8. 如果把关键词检索和向量检索结合,两路召回结果怎么合并、排序?
  9. 向量召回一般使用哪些索引?
  10. Agent 决定调用多个工具时,你的实现是并行执行还是串行执行?
  11. 如果平台要支持多个用户同时使用,你认为哪些地方需要改进?
  12. 外部地图工具每秒允许的调用量很低,多用户同时调用时如何保护工具?工具单次调用延迟约 500 毫秒。
  13. 如果工具调用改成通过消息队列异步执行,Agent 循环在等待期间做什么?需要怎样适配?
  14. 一个 MySQL 事务执行包含哪些步骤?事务有哪些特性?数据库通过哪些机制保证这些特性?
  15. 如果项目扩展到支持多个用户,应该采用多进程还是多线程?为什么?
  16. 从操作系统角度看,进程和线程有什么区别?
  17. 手撕:力扣 25,K 个一组翻转链表。

《参考解析》

「同步还是异步」这题要一次答到三层:先把大文档的解析切成阶段(下载 → 解析抽文本 → 分块 → 向量化 → 写库),说明每段的耗时量级与可并行度;再说明入口只做「建任务 + 落状态」就返回,进度靠任务表或消息推送;最后补上幂等键——按 (documentId, chunkIndex, contentHash) 做唯一约束或 Redis 去重,重跑时覆盖而不是追加。面试官追的「服务器下线怎么办」,标准答案就是状态机加断点续跑:任务表记 PENDING/PARSING/EMBEDDING/DONE 与已处理到的 chunk 偏移,重启后扫「心跳超时的进行中任务」重投,写库用 upsert 保证重放安全。

分块策略按场景取舍:固定长度(按 token 切,重叠 10%~20%)实现最简单但会切断语义;按标题 / 段落 / Markdown 结构切能保住层级,配合父块-子块(小块检索、大块喂模型)效果好;递归切分是先按大分隔符再降级;还有语义切分(相邻句向量相似度低于阈值才断开)与按问答对切。工程上常用组合:结构优先、超长再按 token 兜底、每块带元数据(文档名、章节、页码)以便引用溯源。

为什么向量检索:关键词检索靠字面命中,同义改写、跨语言、口语化提问就漏;embedding 把文本映射到一个高维空间,训练目标(对比学习)让语义相近的样本距离近,所以「怎么退租」能召回「如何解约」。代价是精确匹配弱(型号、错误码、人名),所以生产上做混合检索:向量召回给语义,BM25 给字面,两路各取 topN 后用 RRF(按排名倒数融合,不用对齐分数)或加权分数归一后融合,最后过 rerank 模型精排。

向量索引回答 IVF(倒排聚类,先找最近的 nprobe 个簇)、HNSW(分层小世界图,查询快、内存大)、PQ / IVF-PQ(量化压缩、牺牲精度换内存),再补一句「数据量小直接暴力扫更准」。

工具限流这题的关键是承认「串行 + 客户端限流会拖垮总时延」:在工具调用层加令牌桶 / 漏桶做 QPS 上限,超出的请求进队列并给等待上限,超时就降级(返回「工具繁忙」让模型换个说法或稍后重试);同时按用户分级配额,避免一个用户打满。改成消息队列异步后,Agent 循环不能阻塞等结果——它要把「工具任务已提交」当作一步结果继续推理,用 future / 回调把结果塞回下一轮上下文,这就是「暂停-恢复」式的 Agent 循环,需要持久化会话状态。

事务八股的骨架:ACID 对应实现分别是 redo log(持久性)、undo log(原子性,回滚)、锁 + MVCC(隔离性)、约束(一致性);执行流程是连接 → 解析 → 优化 → 加锁读 undo 构造一致性读视图 → 写 undo + 改 Buffer Pool → 写 redo(两阶段提交里先 prepare 再 commit binlog)→ 刷盘。进程 vs 线程按「资源分配单位 vs 调度单位、各自独立地址空间 vs 共享、切换成本、通信方式」四段讲即可。