Hacker News 中文摘要

RSS订阅

Show HN: Semble——代码搜索代理工具,比grep节省98%的令牌 -- Show HN: Semble – Code search for agents that uses 98% fewer tokens than grep

文章摘要

Semble是一个专为AI代理设计的快速精准代码搜索库,能即时返回所需代码片段,比传统grep+read方法减少98%的token使用。它能在1秒内完成全代码库的索引和搜索,索引速度比专用transformer快200倍,查询速度快10倍且保持99%检索质量。无需GPU或API密钥,支持MCP服务器或shell调用,让各类AI代理即时访问任何代码库。

文章总结

Semble:面向AI代理的高效代码搜索工具

Semble是一款专为AI代理设计的代码搜索库,能够快速返回精准的代码片段。相比传统grep+read方法,它减少98%的令牌消耗,并显著降低延迟。其核心优势包括:

核心特性

  • 极速性能:在CPU上运行,平均250毫秒完成代码库索引,1.5毫秒响应查询
  • 高准确率:NDCG@10评分达0.854,接近专用Transformer模型效果
  • 令牌高效:仅返回相关代码块,节省代理的上下文预算
  • 零配置:无需API密钥、GPU或外部服务
  • 多模式支持:可作为MCP服务器或通过Bash集成调用,兼容Claude Code、Cursor等主流代理

快速部署

  1. MCP模式(适用于Claude Code等):
    bash claude mcp add semble -s user -- uvx --from "semble[mcp]" semble
  2. Bash集成(适用于脚本或子代理):
    bash pip install semble # 在AGENTS.md中添加搜索指令模板

技术原理

  • 混合检索:结合静态嵌入模型(Model2Vec)和BM25算法,通过权重自适应提升符号/自然语言查询效果
  • 智能排序:根据代码定义、文件关联性等信号优化结果,自动降噪测试文件等非核心内容
  • 本地运行:基于Chonkie分块技术,全程无需调用外部API

性能对比

| 方法 | NDCG@10 | 索引时间 | 查询延迟 |
|--------------------|---------|----------|----------|
| Semble | 0.854 | 263ms | 1.5ms |
| CodeRankEmbed混合 | 0.862 | 57s | 16ms |
| ripgrep | 0.126 | - | 12ms |

开源信息

  • 许可证:MIT
  • 引用:支持通过Zenodo DOI引用学术研究

(注:已剔除重复的安装指令和次要技术细节,保留核心功能说明与性能数据。完整文档可参考GitHub仓库

评论总结

以下是评论内容的总结,平衡呈现不同观点并保留关键引用:

  1. 功能定位与适用性

    • 支持观点:认为该工具对人类和AI都有价值
      • "Semantic code search seems like a useful tool for human too. Not just for agents."(评论5)
    • 质疑观点:询问非代码文档的适用性
      • "Does this work well for non-coding documents? Say api docs or AI memory files?"(评论3)
  2. 技术实现质疑

    • 语言选择争议:
      • "why write a cli in python? would surely be faster with go or rust?"(评论6)
    • 基准测试建议:
      • "I'd be interested in seeing actual agent benchmarks...all token savings are lost because the model does not trust the results"(评论4)
  3. 同类工具对比

    • 横向比较需求:
      • "How does it compare to context-mode or serina?"(评论7)
      • "How does this compare with colgrep?"(评论10)
    • LSP相关讨论:
      • "how does this compare to existing LSPs?"(评论11)
  4. 技术细节探讨

    • 索引功能:
      • "using a real parser instead of grepping can save tokens"(评论14)
    • 工具集成:
      • "Shouldn’t it be a part of the harness for local codebase?"(评论9)
  5. 正面反馈

    • 发布祝贺:
      • "Congratulations on the release! Could you add fff to benchmarks?"(评论8)
    • 实用认可:
      • "Very useful thanks for sharing!"(评论15)

关键争议点集中在:基准测试方法(评论1/4)、工具信任度问题(评论4/13)、以及与现有解决方案的差异化(评论7/10/12)。