百度北京后端秋招一面:Agent 安全、检索与存储

岗位:后端开发 · 6 道题 · 更新于 2026-10-15

本场面试题

  1. Agent 项目的安全怎样做?
  2. 为什么要做混合检索?
  3. 单机节点为什么还可能使用 Redis 锁?
  4. Redis ZSet 的结构是什么?
  5. 承接 ZSet:怎样解释 Redis 没有采用 B+ 树这一选择?
  6. MySQL 为什么不用跳表?

面经与参考答法

百度北京后端秋招一面:Agent 安全、检索与存储

以下内容依据候选人自述整理,未经独立证实。原帖记录百度北京后端开发秋招一面约 43 分钟,面试日期写作 8.10,未注明年份;内容从 Agent 项目和检索延伸到 Redis 与 MySQL 索引。

问题依原帖整理;下方短答为教学补充,不代表候选人的实际回答或项目成果。

开场提到了介绍实习与 Agent 项目,原帖未给出具体方案。

(1)Agent 项目的安全怎样做?

先识别资产、外部内容和工具权限形成的信任边界;模型只提出调用,服务端在执行前校验身份、资源范围、参数与副作用。再结合隔离、审计与对抗测试控制注入、越权和泄露,不能承诺单靠 Prompt 消除攻击。

(2)BM25 是怎样做关键词检索排序的?

关联知识点待核实。

BM25 结合词频、词项在语料中的稀有程度和文档长度计算相关性;词频收益会饱和,长度归一化用于减轻长文档的天然优势。具体分词、参数与统计口径取决于实现,分数不是事实正确概率;知识关联仍待语义核验。

(3)为什么要做混合检索?

词法检索便于保留错误码、型号等精确词项,向量检索可补充同义改写和语义近似,两路错误有互补时能改善候选覆盖。是否有收益仍需在相同查询集上对比质量、延迟和成本;融合、重排和评测可以教学展开,但不是原帖记录的额外追问。

(4)单机节点为什么还可能使用 Redis 锁?

单机不等于单进程:多个 Worker 仍可能竞争同一任务或外部资源。先比较进程内锁、本机进程间协调、数据库约束与 Redis 租约的部署和故障边界;需要共享协调才评估 Redis,不能把跨进程等同于必须用 Redis。

(5)Redis ZSet 的结构是什么?

ZSet 的 member 唯一,按 score 排序;相同 score 再按 member 的字典序排列。以 Redis 8.4 为例,小集合可用 listpack,超过相应编码条件后以字典查 member 对应分数、以跳表维护顺序;具体编码受版本、数据和配置影响,不能笼统说始终只有跳表。

(6)承接 ZSet:怎样解释 Redis 没有采用 B+ 树这一选择?

这里结合前题限定为 ZSet,比较的是相关有序编码:跳表与字典分别支持分数顺序和 member 查分,页式多路 B+ 树有另一组布局与维护取舍。可从内存访问、范围遍历和实现复杂度解释,不应宣称跳表在所有负载更快,也不能把工程推理当作已核实的官方历史决策。

(7)MySQL 为什么不用跳表?

以下以常见 InnoDB 普通有序索引为例;原帖未注明存储引擎。InnoDB 按页管理索引,高扇出的树降低层数,叶子有序便于范围扫描。比较跳表时应同时讨论页局部性、访问和维护成本;这是一组工程取舍,不能仅凭平均复杂度断言优劣,也不能把结论扩展到所有 MySQL 索引。

背景记录:反问涉及业务性质、增量业务与部门 AI 应用;原帖没有记录对方回答。

延伸阅读

Agent 安全威胁建模、混合检索与 RRF 融合、分布式锁与租约、Redis 数据结构、数据库索引原理与查询优化。

最小权限与工具确认。

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