Semble:面向AI代理的代码搜索库,比grep少用98%的token,纯CPU运行

AI编程代理(如Claude Code、Codex CLI等)在处理大型代码库时面临一个共同问题:为了找到相关代码,需要先用grep搜索、再用read读取文件,这个过程消耗大量token,既慢又贵。MinishLab团队开源的Semble项目,用一种全新的代码搜索方式,将token消耗减少了98%。

Semble是什么?

Semble是一个专为AI代码代理设计的语义代码搜索库。它不是简单的文本匹配工具,而是通过向量嵌入(embedding)技术,让AI代理能够用自然语言描述需求,直接找到最相关的代码片段。

核心优势:

  • Token节省98%:传统方式需要grep搜索+read读取,Semble直接返回最相关的代码片段
  • 索引速度快200倍:使用优化的向量索引,大型代码库的索引只需几秒
  • 纯CPU运行:不需要GPU,任何开发机都能用
  • 支持MCP协议:可以无缝集成到支持MCP的AI工具中
  • MIT开源:完全免费,可以商用

工作原理

Semble的核心思路是:与其让AI代理逐个文件搜索,不如预先对整个代码库建立语义索引,然后用向量相似度搜索找到最相关的代码。

具体流程:

  1. 索引阶段:Semble扫描代码库,将每个函数、类、模块转换为向量表示
  2. 查询阶段:AI代理用自然语言描述需求(如”处理用户认证的函数”)
  3. 匹配阶段:Semble用向量相似度找到最相关的代码片段
  4. 返回阶段:只返回最相关的代码,而不是整个文件

安装和使用

安装非常简单:

pip install semble

基本用法:

from semble import Semble

# 初始化并索引代码库
s = Semble()
s.index("./my-project")

# 搜索相关代码
results = s.search("如何处理用户登录验证")
for r in results:
    print(f"文件: {r.file}")
    print(f"函数: {r.function}")
    print(f"相关度: {r.score}")
    print(f"代码:
{r.code}
")

与MCP集成

Semble支持MCP(Model Context Protocol)协议,可以直接作为MCP服务器使用。这意味着Claude Code、Cursor等支持MCP的AI工具可以直接调用Semble的代码搜索能力。

配置方式:

# 启动MCP服务器
python -m semble.server --port 3000

然后在AI工具的MCP配置中添加Semble服务器地址即可。

性能对比

在一个中型Python项目(约5万行代码)上的测试数据:

  • 传统方式(grep+read):平均消耗12000 token/查询,耗时2-3秒
  • Semble方式:平均消耗200 token/查询,耗时0.1秒
  • Token节省:98.3%
  • 速度提升:20-30倍

对于频繁进行代码搜索的AI代理来说,这个节省是非常可观的。以Claude API的定价计算,一个典型的编码会话可以节省数美元的token费用。

适合谁?

  • AI工具开发者:正在构建AI编程代理的团队,可以直接集成Semble降低token成本
  • Claude Code/Cursor用户:通过MCP集成,让AI助手更高效地理解代码库
  • 大型代码库维护者:代码量大、文件多的项目,Semble可以帮助快速定位相关代码
  • 开源贡献者:需要快速理解陌生代码库时,Semble比grep更高效

简评

Semble解决了一个AI编程工具的实际痛点:token消耗。随着AI代理越来越多地参与代码开发,高效的代码搜索将成为基础设施级别的需求。

纯CPU运行+MIT开源+MCP支持,让它几乎没有接入门槛。如果你正在使用AI编程工具,值得试试。

来源:
GitHub: MinishLab/semble

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容