生产搜索不是“找一个更好的公式”,而是在目标、候选集合、时效性先验和昂贵模型之间连续做决定。真正困难的部分,往往不是某一步算得准不准,而是每一步应该看见哪些候选、改变什么,以及怎样让下一页仍然接得上。
本文不讨论某个具体系统的参数,而是整理一套可以迁移的多阶段搜索设计:相关性排序与时间排序为什么应该分流,复杂 Query 为什么是一种策略信号,为什么完整智能排序通常集中在第一页,以及时效性为什么需要在融合前后各出现一次。
A production search engine is not a scoring formula with an API around it. It is a sequence of decisions: what the user is optimizing for, which documents are allowed to compete, where freshness belongs, when an expensive model is justified, and how page two can continue after page one has been rearranged.
This article presents a reusable model for that sequence. It deliberately stays above any one implementation: the interesting engineering ideas are the boundaries between stages, not a particular threshold, dictionary, or weight.
这是口述 + Claude 协作整理的架构长文,v2 版本。v1 在 从 Chatbot 到 Multi-Agent (v1) ,v2 诞生过程中的"中肯 review"在 十个盲点 。
v2 相对于 v1 的主要变化:在开头补上了"为什么要 Agent"这个一直被架构文章忽略的哲学问题;把"模型与 harness 共进化"作为一条贯穿全文的暗线;在 B 阶段显著加厚 eval 的讨论;在 B+ 新增了"失败模式目录""成本经济学""Prompt Injection 防御"三块;在 B++ 新增了"Human-in-the-loop 作为设计轴"和"现场保存与还原";在 C 阶段补充了 Gemini function calling 的差异和 Computer Use 作为另一种范式。
这不是一份对 v1 的打补丁,而是一次重写——主干保留,但加入了 v1 缺失的三条主线:为什么要做、会怎么失败、怎么被经济性反噬。
学习「评测迭代」的笔记。整体路径是:从生产 trace 出发,经粗筛 + 精筛两层过滤,再到 prompt / 模型两条优化路线的闭环。
生产 trace
│
├── 粗筛层(便宜、自动、覆盖广)
│ ├─ LLM-as-Judge 抽样打分 ← 主观质量
│ ├─ 用户点踩 ← 显式负反馈
│ └─ 停留时长 / 复制率 / 重问率 ← 隐式行为信号
│
├── 精筛层(贵、人工、高质量)
│ └─ 标注师挑 hard case → 评测集 + 训练集
│
└── 优化层(两条路并行)
├─ Prompt 层:自进化 + 蒙特卡洛搜 fewshot
└─ 模型层:SFT(学会做对) / DPO(学会偏好)
主要学习内容: