AI/ML SWE L5 · System Design / 设计追问

十万人内部文档搜索Agent:权限先行、引用可核对

RAG搜索的成本、延迟、规模与工具边界,需要同时说明。

题目重点:RAG搜索的成本、延迟、规模与工具边界,需要同时说明。

题意与假设

这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。

  • 10万用户是给定规模,不等于10万并发;训练负载假设2%同时活跃、每人每分钟1请求。
  • 检索内部文件,Agent默认只读;文档ACL、删除与权限变更必须影响检索及答案缓存。

解题路线

  1. 数据同步保存docId/version/tenant/ACL/更新时间,分块保留出处。检索在tenant/ACL过滤后做词法+向量召回,rerank与引用前再次核验;不依赖模型“别泄漏”的提示替代授权。
  2. 将重写、检索、rerank、生成各阶段独立计时计token;简单查询先走短路径,复杂多跳再允许限次数工具循环。流式返回减少首字等待,但首token快不等于总延迟低。
  3. 缓存键需包括租户、授权版本、语料版本、查询和模型配置;共享缓存不能跨ACL。embedding批量增量更新,长上下文用可验证摘要与选择性引用控制token。
  4. 框架选择围绕可观测trace、超时取消、typed tool schema、可重放和版本管理。eval分检索相关性、引用支持率、权限泄漏、回答拒绝和线上用户成功,不能只用答案相似度。

手动走一遍

负载假设2000活跃/60≈33.3QPS;平均每请求6000输入+500输出token,约20万输入token/s和1.67万输出token/s,须按峰值/模型吞吐核预算。用户撤销对docA权限后,旧答案缓存仍含A摘要:必须因auth版本变动失效;即使当前检索过滤正确,旧缓存也会泄漏。

规模与取舍

端到端延迟是串行阶段和加排队,工具循环倍增成本;容量按QPS×token/请求×峰值系数估算。权限过滤的向量检索召回率需实测。

易错点与追问

容易失分的边界

  • 用用户ID作缓存键仍不处理同用户权限变化。
  • 把用户文档中的指令当Agent控制命令,会导致越权工具调用或错误答案。

继续深挖

  • 若权限系统不可用,哪些查询安全降级,哪些必须拒绝?
  • 怎样证明多跳Agent比直接检索生成带来收益,且没有扩大延迟与失败率?
✓已复制微信号!