semble 是什么?

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 调用。

⭐ 4,406 Stars 🍴 175 Forks Python MIT 作者: MinishLab
来源: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

核心功能

model2vec 静态嵌入语义代码搜索

核心用 MinishLab 自家的 model2vec 静态嵌入对代码分块做向量检索。相比 code-specialized transformer,静态嵌入推理是查表式的、无需逐 token 前向,因此索引快 ~200x、查询快 ~10x,却保持 99% 检索质量(NDCG@10 0.854)。全程 CPU、依赖只有 model2vec + numpy,极轻。

来源:README 首段 / Main Features / How it works + pyproject deps
~98% token 节省(只回相关片段)

agent 用自然语言(如「认证是怎么处理的?」)或符号/标识符查询,semble 只返回匹配的代码 chunk 而非整文件,相比 grep 命中后再 read 整文件,token 开销降约 98%。这是它面向 agent 的核心价值主张,benchmark 有量化。

来源:README 首段 / Code Search / Benchmarks
MCP server(多 agent 一行接入)

claude mcp add semble -s user -- uvx --from "semble[mcp]" semble 即接入;支持 Claude Code、Cursor、Codex、OpenCode、VS Code 等任意 MCP 兼容 agent。仓库按需克隆并索引、index 在 session 生命周期内缓存、本地路径自动监听文件变更并重索引。

来源:README MCP Server / Setup
CLI + AGENTS.md(无 MCP 也能用)

semble 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 Server
完整 benchmark + 可复现

benchmarks/ 目录(94 文件)给出与 code-specialized transformer 的对比(速度 200x/10x、质量 99%、NDCG@10 0.854、token 节省 98%)。带 CITATION.cff 可引用、codecov 覆盖率、pre-commit、Makefile,工程规范。

来源:README Benchmarks + benchmarks/ 目录 + CITATION.cff

技术架构

semble 是个聚焦、轻量的 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

项目知识图谱

知识图谱:项目核心节点(中心)+ 核心功能(内环六边形)+ 关键技术依赖(外环 chip) model2vec ≥0.4 — MinishLab 静态嵌入(核心,查表式快速推理)model2vec ≥0.4 numpy — 向量运算numpy uvx / uv — 运行与分发(uvx --from semble[mcp])uvx / uv MCP(Model Context Protocol)— agent 接入MCP(Model Con… model2vec 静态嵌入语义代码搜索model2vec 静态嵌入语… ~98% token 节省(只回相关片段)~98% token 节省(只… MCP server(多 agent 一行接入)MCP server(多 agen… CLI + AGENTS.md(无 MCP 也能用)CLI + AGENTS.md(无… 本地与远程 + 自动重索引 完整 benchmark + 可复现完整 benchmark + 可… semble 项目本体 核心功能 关键依赖

中心为项目本体,内环 = 核心功能模块,外环 = 关键技术依赖;按 deep.json 中的 core_features 与 tech_stack.key_deps 自动生成

技术栈

语言Python 3.10+框架MCP server(semble[mcp])+ CLI + 库;静态嵌入检索
model2vec ≥0.4numpyuvx / uvMCP(Model Context Protocol)— agent 接入
纯本地 CPU,无 API key/GPU/外部服务/向量数据库;pip/uvx 安装;MCP server 经 uvx --from "semble[mcp]" semble 跑;index 内存缓存 + 本地路径文件监听自动重索引;远程 git URL 按需克隆;MIT 协议;pre-commit + codecov + Makefile 工程规范
来源:pyproject.toml + README Quickstart/MCP Server

快速上手

# MCP(Claude Code) claude mcp add semble -s user -- uvx --from "semble[mcp]" semble # 其它 agent harness 的 MCP 配置见 README MCP Server # CLI(无 MCP 也能用) semble search "how is authentication handled" # 自然语言搜 semble search "" # 按符号/标识符搜 semble search --repo # 远程仓库(按需克隆) semble search --limit 5 # 限制结果数 semble similar # 找相似代码 # 显式索引 semble index semble index # 若 semble 不在 PATH,用 uvx --from "semble[mcp]" semble 代替 # 写进 AGENTS.md 让任意 agent(含 sub-agent)经 bash 调用 # 工作流建议:先 semble 语义搜,grep 仅用于穷举字面匹配
来源:README Quickstart / CLI / Workflow 原文

使用场景

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 / CLI

优势与局限

优势

  • 速度/成本/质量三者兼得:静态嵌入让索引快 ~200x、查询快 ~10x(vs code transformer),却保持 99% 检索质量(NDCG@10 0.854),整库索引+搜索 <1s,对 agent 高频检索是质变
  • 极轻依赖、纯 CPU、零外部服务:只依赖 model2vec + numpy,无 GPU/API key/向量数据库,代码不出本机,部署和隐私都简单
  • 面向 agent 的 token 节省实在:只回相关 chunk 而非整文件,~98% token 节省有 benchmark 支撑,直接降低 agent 使用成本
  • 接入方式全:MCP server 一行接主流 agent + CLI + AGENTS.md bash(覆盖不能调 MCP 的 sub-agent),本地路径自动重索引、远程 git 按需克隆
  • 技术可信 + 工程规范:MinishLab 是 model2vec/静态嵌入提出团队,benchmarks/ 完整可复现,带 CITATION.cff、codecov、pre-commit、Makefile

局限

  • 可扩展性 / 质量上限:静态嵌入用速度换了一点质量(99% vs transformer),对需要深层语义理解、跨文件推理的复杂查询,理解上限低于大模型嵌入;NDCG@10 0.854 是好但非顶尖,难查的意图型查询可能不如重型方案
  • 可测试性 / benchmark 代表性:NDCG@10 / 98% token / 200x 提速是在其自有 benchmark 上测的,对你的代码库、语言、查询分布是否同样成立需自测;不同语言/代码风格的检索质量未必齐平
  • 稳定性风险:仍是 0.x(v0.2.0 刚发,0.1.x 一周多个版本),API/CLI 可能演进;index 缓存仅 session 生命周期,长会话或频繁切仓库的缓存行为需注意
  • 可维护性 / 依赖绑定:核心能力深度绑定 model2vec 的静态嵌入模型,模型质量与更新由 MinishLab 决定;分块策略、嵌入模型对不同语言的适配度影响检索效果,调优空间对用户不完全透明
  • 性能声明依赖规模:~250ms 索引是「平均仓库」,超大仓库(百万行级)的索引时间、内存占用、查询延迟未量化;全内存索引对超大库可能有内存压力
  • 功能边界:是检索工具不是理解工具——它找相关片段,但不替你读懂/解释代码;README 也建议 grep 仍用于穷举字面匹配,semble 不覆盖精确字符串全量匹配场景
来源:综合 README + pyproject + benchmarks 说明 + 静态嵌入特性

最新版本

v0.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 是静态嵌入正主、技术底子可信,可以放心试。

来源:综合分析
透明度声明
本页内容由 AI(大语言模型)基于以下公开材料自动生成:GitHub README、代码目录结构、依赖文件、Release 信息。 分析时间: 2026-05-22 10:09. 质量评分: 100/100.

数据来源:README、GitHub API、依赖文件