大家好,我是小小。
写在前面
我最近用 Claude Code 写项目,发现一个让人心疼的事——每次让它探索代码库,它都要 grep 一堆文件,然后把整个文件内容读进来。
一个简单的"认证流程是怎么实现的?"问题,它可能要读三四个 800 行的文件,花了十几万 token 才找到真正有用的那 40 行代码。
这就好比你问朋友"你家厨房装修参考了哪家店",结果他把整条街的装修图册全搬过来给你翻。
直到我刷 GitHub 看到这个叫 Semble 的项目,眼前一亮。
🔍 Semble 是什么
Semble 是一个专门为 AI 编程助手设计的代码搜索引擎。用一句话概括:AI 问代码库问题,它直接返回精准的代码片段,而不是一整堆文件。
它来自 MinishLab 团队,这帮人一直在搞"小模型解决大问题"的方向。他们之前做的 Model2Vec 就挺有名,这次把技术用在代码搜索上,效果相当炸裂。
从他们的 benchmark 数据来看:
索引一个普通代码库只要 250ms 查询响应 1.5ms 比 grep+read 方案 省 98% 的 token 检索质量达到专业代码嵌入模型的 99%
最关键的是——全部跑在 CPU 上,不需要 API key,不需要 GPU,不依赖任何外部服务。
💡 它是怎么做到的
我琢磨了一下它的技术原理,其实思路挺巧妙的。
传统的代码搜索基本就两条路:要么用 grep 做关键词匹配,要么用大模型做语义理解。grep 快但不准,大模型准但慢且烧钱。
Semble 走了条中间路线——混合检索。
它用了两个互补的检索器:
Model2Vec 静态嵌入:用的是他们自研的 potion-code-16M 模型,专门针对代码优化过。因为是静态模型(没有 transformer 前向传播),所以查询时几乎零开销。
BM25 词法搜索:对标识符和 API 名称做精准匹配,比如你搜 getUserById,它能精确找到包含这个函数名的代码。
两个检索器的结果通过 RRF(Reciprocal Rank Fusion)融合,再经过一轮代码感知的重排序。
打个比方,Model2Vec 像是"听你描述大概找哪个方向",BM25 像是"按门牌号精确定位",两者一结合,又快又准。
🚀 怎么用
我用了一下,安装确实简单得离谱。
# 先装 uv(Python 包管理器,一行搞定)pip install uv# 装 sembleuv tool install semble# 一键配置,自动检测你装的 AI 编程工具semble installsemble install 会自动检测你装了哪些编程助手(Claude Code、Cursor、Codex、OpenCode 等),然后让你选要开启哪些集成。
三种使用方式:
- MCP Server
:直接作为工具调用,AI 助手原生支持 - CLI 工具
:命令行直接搜,适合脚本场景 - 子代理
:安装为独立的搜索子代理
日常使用就是一句话的事:
# 搜本地项目semble search "认证流程是怎么实现的" ./my-project# 甚至直接搜远程仓库semble search "模型保存到磁盘" https://github.com/xxx/repo⚡ 实际效果如何
我拿自己的项目试了一下,对比 grep+read 的方案,感触最深的就是 token 消耗的差距。
Semble 提供了个 semble savings 命令,可以直观看到省了多少 token:
Semble Token Savings ════════════════════════════════════════════════════════════════ Period Calls Savings ──────────────────────────────────────────────────────────────── Today 42 [███████████████░] ~58.4k tokens (95%) Last 7d 287 [██████████████░░] ~312.4k tokens (90%) All time 1.4k [██████████████░░] ~1.2M tokens (89%)省下来的 token 就是真金白银。如果你重度使用 Claude Code 或 Cursor,一个月下来这个数字可能相当可观。
🎯 谁适合用
我觉得这东西特别适合以下场景:
代码库比较大的项目(几百个文件以上) 重度依赖 AI 编程助手的开发者 对 API token 费用敏感的团队和个人 需要频繁让 AI 理解陌生代码的场景
不过如果你的项目就几个文件,或者你偶尔才让 AI 帮忙看看代码,那其实也没必要装这个。
🔥 HN 上的讨论
这个项目上了 Hacker News 首页,讨论还挺有意思的。有人质疑说"AI 助手自己就知道怎么高效搜索",但也有人反驳说实际体验中 Claude Code 经常用 sed 去读文件、内联生成 Python 脚本来改文件,行为模式并不总是最优的。
我觉得关键点在于——给 AI 工具一个好的基础设施,它就能更高效地工作,而不是自己发明轮子。
项目作者的态度也让我好感度很高,有人提了 bug 和性能对比建议,他们都正面回应,还说正在做更完整的 agent 级别 benchmark。这种开源精神值得点赞。
结语
总的来说,Semble 解决了一个很实际的问题:AI 编程助手在探索代码库时浪费大量 token。它的混合检索方案在速度和质量之间找到了一个很棒的平衡点,而且完全本地运行,没有隐私顾虑。
从更大的趋势来看,我觉得这类"让 AI 工具更高效的基础设施"会是接下来一个很值得关注的方向。不是让模型本身更强,而是让模型用更少资源做更多事。
这不就是程序员最擅长的事嘛——优化。
项目地址:https://github.com/MinishLab/semble
(觉得有用请点赞、收藏、转发三连!有问题评论区见~)
夜雨聆风