a↗Agent 工程实战中文课程 / v1.0.0⌕ 搜索课程/
本页目录

L03 参考解:有版本、有权限、有证据的检索与上下文

这是可讨论的参考设计,不是唯一架构。先完成实验题面,再对照本解。

关键推导

先过滤再排名的意义不只是隐藏结果。若敏感文本已经送入模型或第三方reranker,最后页面不显示它并不能撤销泄露。参考代码在计算语料统计量与评分前过滤租户和active。

RRF示例:A=1/61≈0.016393,B=1/62+1/61≈0.032522,C=1/62≈0.016129,因此顺序B/A/C。不要把BM25原始分和相似度直接相加后称作校准概率。

Context builder的参考答案不是“永远保留最近N条”。先固定不可丢失状态,再按任务相关性选择证据,最后压缩冗余输出。摘要属于派生视图;未确认副作用与审批状态必须保留在持久系统中,不能只写进自然语言摘要。

参考算法与实现位置

visible_docs = filter(tenant=current_tenant AND active=true)
lexical = bm25(query, visible_docs)
optional_dense = embedding_search(query, visible_docs)
ranked = rrf([lexical.ids, optional_dense.ids])
context = mandatory_state + selected_evidence_with_ids + bounded_history

不要在没有dense检索时伪造一份“语义排名”;RRF单元测试的第二份列表明确是教学输入。

应当得到的可检查结果

输入 验收
shop-a任意查询 不返回P06
查询含“旧版退款” 不返回inactive的P05
空查询/limit=0 空列表,不报成功证据
RRF [A,B]+[B,C] B第一,分数1/62+1/61
排名[A,A] A只获得一次贡献
压缩后继续待确认退款 operation_id与unknown状态仍可恢复

怎样判断替代实现是否等价

替代实现必须保留题面中的身份来源、状态归属和失败语义。数据库/框架可以更换,但应把相同故障窗口重新跑一遍。只在正常路径输出一致,不足以证明恢复与授权等价。异步或并发实现还必须解释取消传播、竞争窗口和资源回收。

常见错误与修正

第一类错误是把协议或框架提供的局部保证放大成业务保证:格式正确不等于授权,执行结束不等于业务成功,持久化不等于外部副作用恰好一次。修正方式是找到事实源并把不变量放在拥有该事实的层。

第二类错误是用演示数据替代证据。已有fixture可以检查确定性公式与状态机,但真实模型、网络或容器的结论需要实际运行。报告同时写出“已验证”“仅模拟”“未验证”,比宣称全部完成更有工程价值。

实现范围与限制

参考仓库提供检索基线与融合,不包含真实embedding服务或自动摘要模型。context策略的实验要求和答案有文字规格,需学习者实现并测试。

开放题评分要点

权限与版本30;基线正确性25;引用与状态保留20;实验15;局限解释10。 正确的反例、失败分析和替代方案论证应获得分数;框架堆叠、只报最终成功截图、删除失败成本不应获得同等评价。