编码 Agent 的语义搜索:和 grep 配合,而不是替代 grep
grep 擅长找已经知道的符号,语义搜索擅长把“登录失败在哪里处理”这类意图映射到陌生代码。二者解决的不是同一问题。检索改进是否有效,也不能只看返回结果像不像;要先用已知答案的离线题测“找对位置”,再用真实任务观察代码是否被保留、用户是否需要返工。
原文解决什么
Section titled “原文解决什么”Cursor 的 Agent 同时使用正则搜索和语义搜索。文章称,加入语义搜索后,问答准确率平均提高 12.5%,不同模型范围为 6.5%–23.5%;线上 A/B 中还观察到代码保留和不满意后续请求的变化。这些数字来自 Cursor 内部数据,均属厂商自报,本站未独立验证。
更值得迁移的是训练信号来源:一次真实 Agent 轨迹往往先搜错、打开多个文件,最后才找到关键代码。Cursor 回看这些轨迹,让 LLM 排序“某一步最该更早出现的内容”,再训练 embedding 贴近这种帮助度。它学习的是任务过程中的有用性,不只是两段代码表面相似。
接入 Zero-to-AI 的实践
Section titled “接入 Zero-to-AI 的实践”先建一个小型 known-answer 集:问题、应该命中的文件或段落、允许的同义答案、为什么相关。离线只测召回与排名,不拿它证明修改质量。随后挑真实但低风险的维护任务做 A/B:同一模型和快照,一组只有 rg,另一组同时有语义搜索;最终仍由测试、diff 和人工返工判定。
轨迹可用于发现训练或评测候选,但要先脱敏,且不能把“Agent 最后打开过”直接当正例。最后打开的文件可能只是验证页,真正关键的线索在更早的配置或调用者里。
一个低成本实验
Section titled “一个低成本实验”输入: 六个仓库问答,其中三题给出精确符号,三题只描述业务意图;每题预先标注 1–3 个正确位置。
步骤:
- 固定仓库提交与模型,用
rg跑一组,用rg + semantic跑一组。 - 记录前五个结果是否含正确位置、首次命中排名、Agent 打开的无关文件数。
- 再选两题要求完成最小修改,用相同测试和人工复核比较返工。
成功证据: 意图题的正确位置召回或排名改善,符号题不退化,两项修改均通过原验收且无额外误改。
停止线: 没有可靠答案标注、索引版本不同、或两组模型与权限不一致;停止作因果结论。
- 语义搜索会淘汰 grep:精确符号、错误码和配置键仍更适合字面搜索。
- 召回高就代表 Agent 更好:错误上下文也会增加阅读与误改。
- 把线上指标当离线标签:代码保留受用户重构、分支切换等因素影响。
原文与证据边界
Section titled “原文与证据边界”本文依据 2026-08-30 可读取的 Cursor 官方页面。12.5% 及线上 A/B 数字均为 Cursor 自报,数据集、流量和模型分布未公开到足以复现。本轮未取得 TraceFetch 签名正文包,不能声明 verification.valid=true。本文实验只验证本站小样本检索,不推出大仓生产收益。
本文是原创中文实践解读,不是逐句翻译。阅读英文原文。