3 分•作者: Bibabomas•大约 2 个月前
嘿,HN!我们(Stephan 和 Thomas)最近开源了 Semble。在使用 Claude Code 处理大型代码库时,我们一直遇到同样的问题:当代理无法直接找到某些内容时,它会退回到 grep,读取完整的文件或启动子代理。这会消耗大量 token,而且往往仍然会错过相关的代码。虽然已经存在一些现成的工具,但它们要么索引速度太慢,无法按需索引,要么需要 API 密钥,或者检索质量不佳。
Semble 是我们为此提供的解决方案。它结合了静态 Model2Vec 嵌入(使用我们最新的静态模型:potion-code-16M)和 BM25,通过 RRF 融合,并使用代码感知信号进行重新排序。由于没有涉及 transformers,所有操作都在 CPU 上运行。在我们的基准测试中,针对 63 个代码库和 19 种语言的约 1250 对查询/文档,它比 grep+read 少使用 98% 的 token,并且达到了 137M 参数代码训练的 transformer 99% 的检索质量,同时速度快了约 200 倍。
主要特点:
* **Token 效率高:** 比 grep+read 少使用 98% 的 token
* **速度快:** 在我们的基准测试中,索引一个典型的代码库大约需要 250 毫秒,每次查询在 CPU 上大约需要 1.5 毫秒(非常大的代码库可能需要更长时间)
* **准确:** 0.854 NDCG@10,达到我们测试的最佳 transformer 设置的 99%
* **MCP 服务器:** 可直接用于 Claude Code、Cursor、Codex、OpenCode
* **零配置:** 无需 API 密钥,无需 GPU,无需外部服务
在 Claude Code 中安装:
```
claude mcp add semble -s user -- uvx --from "semble[mcp]" semble
```
或者查看我们的 README 以获取其他安装说明、基准测试和方法:
Semble: [https://github.com/MinishLab/semble](https://github.com/MinishLab/semble)
基准测试: [https://github.com/MinishLab/semble/tree/main/benchmarks](https://github.com/MinishLab/semble/tree/main/benchmarks)
模型: [https://huggingface.co/minishlab/potion-code-16M](https://huggingface.co/minishlab/potion-code-16M)
如果您有任何反馈或问题,请告诉我们!