Show HN:Semble——给 Agent 用的代码搜索,省 98% 的 token

查看原文 HN 讨论

文章摘要

Semble 是 MinishLab 团队开源的一个给 AI agent 用的代码搜索库。卖点直接写在 README 第一句:比 grep + read 少用 98% 的 token。它的基准显示,要在一份大型代码库上达到 85% 的召回率,grep+read 需要约 100k token,而 Semble 用 2,000 token 就能达到 94%。

它不需要 API key、不需要 GPU、不需要外部服务,纯 CPU 本地跑。一份普通仓库的索引时间约 250 毫秒,单次查询约 1.5 毫秒——比传统的代码专用 Transformer 模型快 218 倍,但在 NDCG@10 指标上能达到 0.854,相当于它们 99% 的质量。

架构是混合检索(hybrid retrieval)。两条路并行:(1) 语义检索——用 Model2Vec 框架的 potion-code-16M 静态嵌入做向量相似度;(2) 词法检索——用 BM25 在标识符和 API 名称上做关键词匹配。两组结果通过 Reciprocal Rank Fusion (RRF) 融合,再叠一层针对代码的重排信号——查询是符号就给词法路径加权、查询是自然语言就保持均衡;定义比引用排得更高;标识符做词干化(camelCase 和 snake_case 互相匹配);同一文件多个 chunk 命中给整体加分;测试桩、legacy 兼容层、空声明则被降权。

部署上 Semble 既可以作为 MCP 服务器接入 Claude Code、Cursor 等 agent 平台,也可以作为 CLI 给 bash 脚本或子 agent 调用。整个项目用 Python 写、跑在 CPU 上、模型只有 16M 参数——本质是一个轻量、纯本地、不依赖任何外部服务的代码语义索引器。

HN 评论精华

整体来看,HN 的共识不是”Semble 不好”,而是”所有这类 retrieval 工具都需要拿出真正的 end-to-end agent benchmark,否则 grep 的简单路径很难被打败“。