首页 / 开源热榜 / Semble / 使用教程

Semble 中文教程:给编码 Agent 加本地语义搜索

更新于 2026-09-23 · 约 7 分钟

Semble 用静态嵌入在本机索引代码,让 Agent 用“认证流程在哪里”这类自然语言找到相关片段。它可以作为 CLI 使用,也能给支持 MCP 的编码 Agent 安装工具、指令或专用搜索子代理。

当前版本:最新 GitHub Release 是 v0.6.0,加入多仓库搜索、CLI 进度条和分块行号修复。要求 Python 3.10+;README 当前推荐 uv tool install semble,旧版 uvx --from "semble[mcp]" 不再是首选入门流程。

1. 安装并让 Semble 识别 Agent

uv tool install semble
semble install

交互式安装器会检测 Claude Code、Codex、OpenCode 等环境,并让你选择 MCP、instructions 或 subagent。团队环境不要直接写全局配置;先检查安装器准备修改哪些文件。脚本化安装可显式指定目标:

semble install --agent codex --type mcp instructions --yes

2. 先从熟悉的仓库试搜

semble search "authentication flow" ./my-project
semble search "where is cache invalidated" ./my-project
semble search "shared protocol" ./api ./worker

第一次查询会建立索引,此后文件变化会使缓存失效。0.6.0 支持一次搜索多个仓库,适合前后端或协议仓库分开的项目。传入 Git URL 时会按需克隆,私有仓库的凭据和落盘目录要按团队规范管理。

3. 看懂官方 benchmark 的边界

README 报告平均仓库约 500 ms 建索引、约 1 ms 查询、NDCG@10 为 0.854,并称比 grep+read 少约 99% token。这些是项目 benchmark 的结果,不等于你的仓库会复现。语言、生成代码、超大文件和查询写法都会影响召回;上线前应准备一组已知答案的真实问题复测。

检索边界:语义相似不代表完整。查安全敏感调用、许可证文字、秘密格式或需要“一个都不能漏”的引用时,必须再用字面或正则搜索核对。

与 ripgrep 对比

ripgrep 按正则逐行递归搜索,并默认遵守 gitignore,适合已知符号、错误码或固定文本的精确匹配。Semble 根据自然语言返回排序后的相关片段,适合不知道函数名时探索。实际工作中可以先用 Semble 找方向,再用 ripgrep 穷举并确认影响范围。

4. 更新和撤销

uv tool upgrade semble
uv cache clean semble
semble uninstall

MCP 客户端可能缓存旧进程,升级和清理缓存后需要重启客户端。semble uninstall 用于撤销安装器加入的集成;手工改过的 Agent 配置仍要自行检查。

验证状态:本轮只核对官方 README、安装文档、pyproject.toml 和 v0.6.0 Release;没有安装 uv 或 Semble、下载模型、索引仓库或运行 benchmark。本文不复述旧稿的性能结论为实测结果。

这里仅补原教程没有展开的事实和边界。安装命令与操作步骤仍以前文为准。

先判断这个项目是否适合你

采用建议

Semble 适合给编码 Agent 增加轻量的本地语义检索。先在一个熟悉的仓库比较召回结果与耗时,再决定是否写入全局 Agent 配置;需要精确穷举时保留 ripgrep。

原教程未展开的系统信息

核心功能

  • 自然语言代码检索

    首次查询时建立本地索引,返回带文件位置的相关片段,并在文件变化后使缓存失效。

  • 本地与多仓库搜索

    查询可指向本地路径或 Git URL;0.6.0 新增一次搜索多个仓库的支持。

架构与数据流

Python 包把代码切片后交给 model2vec 静态嵌入,在本机 CPU 上建立和查询索引;CLI 负责 search/install/uninstall 等入口,MCP 适配层把检索暴露给支持该协议的 Agent。无需远程向量数据库或 API key。

技术栈和运行条件

语言

Python 3.10+

框架

CLI + MCP server

关键依赖

  • model2vec >=0.4,<0.10
  • numpy
  • watchfiles
  • GitPython

运行环境

uv;本机 CPU;无需 GPU、API key 或外部检索服务

常见问题

Semble 0.6.0 需要什么 Python 版本?

官方 pyproject.toml 要求 Python 3.10 或更高版本,当前 README 推荐通过 uv 安装。

Semble 会把代码发送到外部服务吗?

官方说明索引和检索在本机 CPU 上完成,不需要 API key、GPU 或外部服务;远程 Git URL 仍会按需克隆仓库。

Semble 能完全替代 ripgrep 吗?

不能。Semble 适合按语义找相关片段;需要完整枚举精确字符串或正则命中时,ripgrep 更合适。

更新 Semble 后为什么 MCP 还在用旧版本?

官方更新说明建议执行 uv tool upgrade semble,清理 semble 的 uv 缓存,然后重启 MCP 客户端。