字节 Agent 开发一面:RAG、AI Coding 与高并发系统(2026 年 8 月)
面经与参考答法
字节 Agent 开发一面:RAG、AI Coding 与高并发系统(2026 年 8 月)
这轮一面持续约一小时,问题从候选人的 Agent 项目出发,延伸到 RAG、AI 生成代码质量、实时通信、数据库索引和热点榜单。考察重点不是背框架名,而是能否把 AI 能力放进可验证、可扩展的工程系统。
(1)项目介绍怎样避免变成技术名词罗列?
先说明用户、痛点和成功标准,再沿一条真实请求讲输入、Agent 决策、工具、状态、输出和失败路径。明确本人负责的边界,并用任务成功率、P95 延迟、单任务成本、人工接管率等指标说明结果。面试官继续追问时,应能解释一个关键取舍和一个真实 Bad Case。
(2)怎样完整介绍 RAG 经验?
按离线建库和在线查询两条链路回答。离线侧包含解析、清洗、语义切块、元数据与权限、Embedding 和索引版本;在线侧包含 Query Rewrite、混合召回、过滤、融合、Rerank、上下文组装和带证据生成。最后补上评测集、Recall@K、排序指标、回答正确性和失败诊断,证明系统不是“能跑的 Demo”。
延伸阅读:RAG 完整流程实战。
(3)AI Coding 如何保证生成代码质量?
把质量门禁放在模型之外:先给明确需求、影响范围和验收标准;让模型做小步修改;用失败测试锁定行为;再执行格式化、静态检查、类型检查、单元/集成测试和人工 Diff Review。高风险改动还要做依赖审计、权限检查、灰度与回滚。模型可以提出实现,但不能自行修改验收规则或绕过失败测试。
延伸阅读:Coding Agent 的架构与执行循环。
(4)SSE 与 WebSocket 应怎样比较?
SSE 是基于 HTTP 的服务端单向事件流,浏览器原生支持自动重连,适合 Token 流式输出和进度通知;WebSocket 建立全双工长连接,适合客户端与服务端都频繁发送消息、低延迟协作或实时控制。选择时比较通信方向、代理兼容、重连、心跳、背压、连接数量和鉴权刷新,而不是简单回答“WebSocket 更实时”。
延伸阅读:SSE 流式响应、WebSocket 实时通信。
(5)数据库索引应从哪些层次回答?
先区分 B+ 树、哈希、倒排和向量索引解决的查询类型,再说明联合索引的最左前缀、选择性、覆盖索引、回表和范围条件。落到具体 SQL 时要结合查询谓词、排序、分页和执行计划判断,不应只凭字段数量建索引。索引提升读性能,但增加写放大、空间和维护成本。
(6)热点榜单怎样支持实时更新和高并发读取?
入口先做限流与幂等,行为事件写入消息队列,流式聚合按时间窗计算热度;Redis Sorted Set 保存 Top-N,数据库或日志系统保留可回放明细。读路径走缓存并允许短暂最终一致,写路径按事件 ID 去重。要说明分片键、热门 Key、过期策略、迟到事件、榜单重建和缓存失效时的降级。
(7)两个栈怎样实现队列?如何保证线程安全?
入栈负责接收元素;出栈为空时,把入栈全部倒入出栈,再从出栈弹出,因此每个元素最多搬运一次,均摊复杂度为 O(1)。线程安全版本必须保护“检查出栈为空—整体搬运—弹出”这一复合操作,可用一把互斥锁保证线性化;若拆成多把锁,则要定义固定加锁顺序并重新证明边界情况,不能只把底层栈替换成并发容器。