砍掉向量数据库,Agent 工具选择召回率不变、成本几乎归零
BenefitGrand8752 · reddit · 2026-09-18
一位运行自托管个人助手(本地 Gemma 做规划器、约 96 个工具、Telegram + HTTP)的开发者分享了一次反直觉的工程实践:把嵌入模型和向量库从工具选择链路中完全移除,召回率没有下降,推理成本几乎消失。
核心做法
- 原方案:嵌入所有工具描述 + 查询,近邻检索取 top-k(BGE-M3 + ONNX)
- 新方案:token 重叠匹配工具名 + 四条类型化规则,纯 CPU、约 17ms,无需加载任何模型
- 关键洞察:作者刻意把工具命名设计成封闭的组合文法(verbobject[qualifier],23 个动词 × 21 个对象 + 有限修饰词,如 readfilespdf),查询与工具词表处于同一小词汇表内,token 重叠已是强信号,嵌入步骤变成冗余
- 四条规则:路径/扩展名加权、查询模式加权、动词→生产者家族兼容性、稀有 token 未匹配惩罚
数据
- 基准:96 个真实工具、234 条真实查询、冻结语料、确定性执行、ground truth 为生产环境实际调用
- 生产配置 Recall@5 0.786、Recall@1 0.487、均值约 10ms;不加载模型的 token 方案与稠密基线在所有目录规模上打平
作者的定位
- 「词法优于稠密」在文献中已有支撑:ToolBench 上 BM25 NDCG@5 0.853 vs 稠密 0.834(arXiv:2502.15526),工具名/描述对 LLM 选择脆弱性见 arXiv:2505.18135;业界最佳实践是混合检索
- 新贡献在于框架视角:用封闭词表工程主动消解检索的模糊语义问题,而非词法本身更聪明。基准公开可复现。
对做 agent 工具编排的人来说,这是一份「少即是多」的可复现实证:如果嵌入没带来增益,在低功耗设备上它只是在烧钱。
「编程与Agent」频道最新
- 为什么让 AI 删代码它却写文档解释删了什么?因为过去在 git 里 — ZeroStateReflex · 2026-09-18
- 开发者发布插件:苹果 20B 端侧模型可接入 OpenClaw 使用 — film_girl · 2026-09-18
- 法律科技公司 Parley 发布自助版:为 Agent 原生设计律所软件 — ycombinator · 2026-09-18
- 零手写 spec:Hydro 框架用 Verus 自动验证分布式系统交换律 — ShadajL · 2026-09-18
- 30 轮实测五种代码评审 skill:Vercel 版综合最优 — bootstrapper-919 · 2026-09-18
- 开源全套 Agent 集群编码工作流,Jeffrey Emanuel 飞轮方法论完整指南 — doodlestein · 2026-09-18