semble 是 MinishLab 给 AI agent 做的代码搜索库:用自家的 model2vec 静态嵌入,对整个代码库端到端索引 + 检索不到一秒、全程 CPU 无需 API key/GPU/外部服务,agent 用自然语言或符号名查询即拿回最相关的代码片段,比 grep+read 省约 98% token;可作为 MCP server 接 Claude Code/Cursor/Codex/OpenCode,也可经 CLI / AGENTS.md 在 shell 调用。
来源:README 首段 + Main Features + pyproject(model2vec) 查看 GitHub 仓库 →agent 找代码的默认方式是 grep + read 整个文件,token 开销大、还经常读进一堆无关内容。semble 用 MinishLab 的 model2vec 静态嵌入把语义代码搜索做到「快到离谱又便宜」:索引平均仓库 ~250ms、查询 ~1.5ms,比 code-specialized transformer 索引快 ~200x、查询快 ~10x,却保持 99% 的检索质量(NDCG@10 0.854),而且全在 CPU 上跑、零 API key/GPU/外部服务。对 agent 的直接价值是 ~98% 的 token 节省——只回相关片段而非整文件。再加上 MCP server 一行接入主流 agent、本地路径自动监听重索引、支持远程 git URL 按需克隆,是「为 agent 优化的代码检索」这条线上罕见地把速度、成本、质量三者同时拿下的实现。MinishLab 作为静态嵌入(model2vec/Potion)的提出团队,技术可信度也高。
来源:README 首段 + Main Features + Benchmarks核心用 MinishLab 自家的 model2vec 静态嵌入对代码分块做向量检索。相比 code-specialized transformer,静态嵌入推理是查表式的、无需逐 token 前向,因此索引快 ~200x、查询快 ~10x,却保持 99% 检索质量(NDCG@10 0.854)。全程 CPU、依赖只有 model2vec + numpy,极轻。
来源:README 首段 / Main Features / How it works + pyproject depsagent 用自然语言(如「认证是怎么处理的?」)或符号/标识符查询,semble 只返回匹配的代码 chunk 而非整文件,相比 grep 命中后再 read 整文件,token 开销降约 98%。这是它面向 agent 的核心价值主张,benchmark 有量化。
来源:README 首段 / Code Search / Benchmarksclaude mcp add semble -s user -- uvx --from "semble[mcp]" semble 即接入;支持 Claude Code、Cursor、Codex、OpenCode、VS Code 等任意 MCP 兼容 agent。仓库按需克隆并索引、index 在 session 生命周期内缓存、本地路径自动监听文件变更并重索引。
来源:README MCP Server / Setupsemble search 直接在 shell 按描述或符号名搜(替代 grep),semble index 索引本地目录或远程 git 仓库,semble similar 找与某结果相似的代码。可写进 AGENTS.md 让任意 agent(含不能直接调 MCP 的 sub-agent)经 bash 调用;推荐工作流是「先 semble 语义搜,grep 只用于穷举字面匹配」。
来源:README Bash / AGENTS.md / CLI / Workflow传本地路径或 git URL 都行,远程仓库按需克隆;本地路径被 watch、文件变更自动重新索引保持新鲜;index 缓存复用。end-to-end 索引+搜索整库不到一秒。
来源:README Main Features / MCP Serverbenchmarks/ 目录(94 文件)给出与 code-specialized transformer 的对比(速度 200x/10x、质量 99%、NDCG@10 0.854、token 节省 98%)。带 CITATION.cff 可引用、codecov 覆盖率、pre-commit、Makefile,工程规范。
来源:README Benchmarks + benchmarks/ 目录 + CITATION.cffsemble 是个聚焦、轻量的 Python 包,src/(35 文件)实现核心:用 model2vec 静态嵌入把代码分块编码成向量、建索引、做最近邻检索,再把命中 chunk(带文件位置)返回。依赖极轻——只有 model2vec + numpy,没有重型 transformer 或向量数据库服务,索引和检索都在内存/本地 CPU 完成,这是「~250ms 索引、~1.5ms 查询、全 CPU」的根本原因。对外有三种接口:MCP server(semble[mcp] extra,给 agent 用,仓库按需克隆+索引+缓存+本地路径 watch 自动重索引)、CLI(semble search/index/similar)、以及写进 AGENTS.md 经 bash 调用(覆盖不能直接调 MCP 的 sub-agent)。benchmarks/(94 文件)是与 transformer 模型对比的完整评测床。设计判断:把「静态嵌入」这个 MinishLab 的看家技术用到代码搜索,是一个非常聪明的取舍——牺牲一点点检索质量(99% vs transformer)换来 200x 索引和 10x 查询提速 + 纯 CPU + 零依赖,恰好契合 agent 高频、低延迟、低成本检索的需求。代价是静态嵌入对深层语义/跨文件推理的理解上限低于大模型嵌入,对「需要真正理解代码意图」的复杂查询可能不如重型方案。
来源:src/ + pyproject deps + README How it works / Benchmarks中心为项目本体,内环 = 核心功能模块,外环 = 关键技术依赖;按 deep.json 中的 core_features 与 tech_stack.key_deps 自动生成
model2vec ≥0.4numpyuvx / uvMCP(Model Context Protocol)— agent 接入1. 给 agent 装语义代码搜索:让 Claude Code/Cursor/Codex 经 MCP 用自然语言查代码,只拿回相关片段,省 token 又快;2. 大代码库导航:对陌生大仓库用 semble search 按「做什么」找代码,而非 grep 关键词碰运气;3. sub-agent 检索:sub-agent 不能直接调 MCP,写进 AGENTS.md 经 bash 用 semble;4. 离线/隐私场景:全 CPU 本地跑、无 API key/外部服务,代码不出本机;5. 找相似实现/重复代码:semble similar 找与某位置相似的代码做重构或参考;6. 远程仓库速查:传 git URL 按需克隆索引,临时查第三方库实现。
来源:README Code Search / Workflow / MCP Server / CLIv0.2.0(2026-05-21)。最近 4 个 release:v0.1.8 (2026-05-18) → v0.1.9 (2026-05-19) → v0.1.10 (2026-05-19) → v0.2.0 (2026-05-21),近期高频迭代。仓库 2026-04-06 创建,仍处 0.x 早期但发版活跃。
来源:GitHub Releases API(4 个 tag)+ repo created_at如果你想给 agent 装一个又快又省 token 的代码搜索,semble 是目前性价比最高的选择之一:静态嵌入带来 200x 索引/10x 查询提速、纯 CPU 零依赖、~98% token 节省,MCP 一行接入主流 agent。务实建议:1) 直接用 MCP 接 Claude Code/Cursor 体验「自然语言查代码只回相关片段」,对大仓库导航和省 token 立竿见影;2) 按 README 工作流——先 semble 语义搜、grep 只用于穷举字面匹配,两者互补别替代;3) 它用速度换了一点质量(99% vs transformer),意图复杂的查询若召回不理想,回退到更重的语义检索或人工 grep;4) benchmark 数字是其自有数据集上的,对你的语言/代码库自测一遍再下结论;5) sub-agent 用不了 MCP,记得走 AGENTS.md + bash 那条路;6) 0.x 早期版本、API 可能变,但 MinishLab 是静态嵌入正主、技术底子可信,可以放心试。
来源:综合分析