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代理逐个文件搜索,不如预先对整个代码库建立语义索引,然后用向量相似度搜索找到最相关的代码。
具体流程:
- 索引阶段:Semble扫描代码库,将每个函数、类、模块转换为向量表示
- 查询阶段:AI代理用自然语言描述需求(如”处理用户认证的函数”)
- 匹配阶段:Semble用向量相似度找到最相关的代码片段
- 返回阶段:只返回最相关的代码,而不是整个文件
安装和使用
安装非常简单:
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编程工具,值得试试。
© 版权声明
THE END















暂无评论内容