题目重点:RAG搜索的成本、延迟、规模与工具边界,需要同时说明。
题意与假设
这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。
- 10万用户是给定规模,不等于10万并发;训练负载假设2%同时活跃、每人每分钟1请求。
- 检索内部文件,Agent默认只读;文档ACL、删除与权限变更必须影响检索及答案缓存。
解题路线
- 数据同步保存docId/version/tenant/ACL/更新时间,分块保留出处。检索在tenant/ACL过滤后做词法+向量召回,rerank与引用前再次核验;不依赖模型“别泄漏”的提示替代授权。
- 将重写、检索、rerank、生成各阶段独立计时计token;简单查询先走短路径,复杂多跳再允许限次数工具循环。流式返回减少首字等待,但首token快不等于总延迟低。
- 缓存键需包括租户、授权版本、语料版本、查询和模型配置;共享缓存不能跨ACL。embedding批量增量更新,长上下文用可验证摘要与选择性引用控制token。
- 框架选择围绕可观测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比直接检索生成带来收益,且没有扩大延迟与失败率?
