字节搜广推引擎架构一面:JSON 输出、并发与系统基础

11 道题 · 更新于 2026-10-31

本场面试题

  1. 怎样说明 Agent 项目的完整技术链路?
  2. 系统、子系统和模块边界怎样划分?
  3. 项目做了哪些改进,怎样验证收益?
  4. Agent 必须返回 JSON 时,怎样约束并验证输出?
  5. 面对很大的用户规模,怎样开始容量设计?
  6. HNSW 的分层近邻图怎样支持向量检索?
  7. 进程、线程和协程各自代表什么?
  8. 线程共享地址空间时,哪些执行状态仍是私有的?
  9. 旧连接请求滞留时,两次握手可能造成什么问题?
  10. 用户订单日榜的评分公式会变化,怎样设计 Top-K?
  11. 只能向右或向下移动时,怎样求网格最小路径和?

面经与参考答法

字节搜广推引擎架构一面:JSON 输出、并发与系统基础

原帖标题标注 2026 年 9 月 7 日一面,岗位自述为搜广推引擎架构,涉及 HR 助手与语义搜索项目。职位说明列有多个业务方向,无法据此确认具体部门;本页不把岗位池误归为某个团队,也不保留与技术题无关的争执和个人背景。

面试经历为个人自述,未经企业独立确认。以下短答及示例为编辑教学整理,不代表当事人的现场回答、项目配置或实验结果。

(1)怎样说明 Agent 项目的完整技术链路?

先交代用户目标、输入和成功标准,再沿上下文准备、模型决策、工具或检索执行、结果验证与返回说明路径。区分模型建议与确定性执行,指出权限、状态和超时由谁负责,并用实际 Trace 解释失败分支。原帖没有公开该 HR 助手的实现,不能把教学上的组件列表写成当事人的技术栈。

(2)系统、子系统和模块边界怎样划分?

围绕职责、数据所有权与变化边界拆分,给模块明确的输入输出和失败语义,而不是只按文件数量分层。模型适配、工具执行、状态存储和验证应能独立测试,但是否拆成网络服务还要依据团队、延迟和部署约束。先说明调用和信任边界,再讨论复用与扩展,避免把过度拆分当作架构能力。

(3)项目做了哪些改进,怎样验证收益?

先说明真实改动针对哪类失败、基于什么假设以及为何选择,再用可测任务和基线验证:固定代表性测试集、模型与环境版本,比较完成率、关键失败切片、延迟和成功任务成本。能用环境终态或可执行测试验证的结果,应优先用真实结果判断;开放质量再结合校准后的评分与人工抽查。没有对照和测量时,应明确未知,不能用调用量或个人体验替代效果证据。

(4)Agent 必须返回 JSON 时,怎样约束并验证输出?

先定义机器可校验的 Schema,使用实际接口支持的结构约束,再在服务端完成解析、字段类型与业务条件校验;Prompt 中写“必须返回 JSON”不能替代校验。格式有效也不代表内容真实或有权限执行。错误处理须有预算、可观测记录与明确终态,不能无限让模型“修到成功”或在校验前产生业务副作用。

(5)面对很大的用户规模,怎样开始容量设计?

先把用户总数转换为有依据的活跃比例、峰值请求率、任务时长和下游调用量,再用压测确认瓶颈。围绕入口有界准入、队列、Worker、缓存、扩缩容与背压设计,分别约束模型、检索和数据库资源;同时守住权限、质量、成本与失败恢复。原帖给的是规模假设,没有负载与硬件条件,不能直接报出需要多少机器。

(6)HNSW 的分层近邻图怎样支持向量检索?

HNSW 用稀疏的多层近邻图组织向量,上层帮助较快找到接近目标的区域,底层在候选中继续搜索;结果仍是近似近邻,不是底层精确穷举。图连接与构建、查询候选预算分别影响内存、建图成本、召回和延迟。参数要对照相同数据上的精确基线评估,并说明过滤、更新和版本条件,不能给出普遍适用的准确率保证。

(7)进程、线程和协程各自代表什么?

进程通常承载独立的地址空间与资源边界,线程是在进程内被调度执行的单位,共享进程中的部分资源;协程则组织可挂起、恢复的执行上下文,具体调度取决于运行时。它们不直接等同于并行程度,CPU 并行还受线程、核心和调度方式约束。比较时要说明共享、通信、切换与故障隔离的成本。

(8)线程共享地址空间时,哪些执行状态仍是私有的?

同进程线程通常共享代码、堆和打开的资源,但各自有寄存器上下文、执行栈及线程局部状态等。私有栈并不等于栈上所有对象永远不被其他线程访问,引用逸出仍可能造成共享;线程局部变量也须按语言和运行时的传播规则处理。具体布局和资源语义不能脱离系统与语言实现一概而论。

(9)旧连接请求滞留时,两次握手可能造成什么问题?

服务端仅凭旧 SYN 就确认连接,可能为客户端早已放弃的历史请求建立无效状态,且还没有确认客户端收到了服务端的当前初始序列号。第三次 ACK 让服务端获得这项确认,旧报文与当前连接还需结合序列号和状态校验处理。三次握手不是为避免所有旧包或攻击提供绝对保证,重传、超时和资源保护仍有各自作用。

(10)用户订单日榜的评分公式会变化,怎样设计 Top-K?

先固定“当天”的时区、统计截止、水位与评分版本,聚合每个用户的有效订单数量和金额,再按该版本计算分数并选 Top-K。有限 K 的批量选择可用堆,反复按分数查询也可评估有序索引;并列排名要有稳定决胜字段。退款、重复订单与迟到数据需要明确重算或修正规则,不能只用一个排名容器代替完整统计语义。

(11)只能向右或向下移动时,怎样求网格最小路径和?

定义 dp[i][j] 为到达该格的最小累计代价,当前格只能来自上方或左方,因此取二者最小值再加当前格数值。首行、首列分别只有一个可达前驱;可按行扫描,用一维数组保存上一行与当前行左侧结果。原题只要求最小和,不需要额外保存路径;空输入、矩形形状和数值范围应按实际输入契约处理。

面经是候选人自述,解析为 Agent Journey 整理。更多大厂 AI / Agent 岗面经 · 按目标公司模拟面试