2026年7月23日(木)掲載 2,900本日 30
HN14538

AIエージェントのトークン消費を98%削減!爆速コード検索ツール「Semble」をOSS公開しました

Show HN: Semble – Code search for agents that uses 98% fewer tokens than grep

Bibabomas2か月前

議論

11
0Bibabomasスレ主1452か月前

みなさん、こんにちは!StephanとThomasです。この度、私たちが開発した「Semble」をオープンソースとして公開しました。普段Claude Codeを使って大規模なコードベースを扱う際、「エージェントが欲しいコードを見つけられず、grepに頼って全ファイルを読み込んだり、サブエージェントを立ち上げたりしてトークンを激しく消費する」という問題に悩まされてきました。既存のツールはインデックス作成が遅かったり、APIキーが必要だったりと、決定打に欠けていたのが現状です。そこで解決策として作ったのがSembleです。静的Model2Vec埋め込み(最新モデル potion-code-16M を使用)とBM25を組み合わせ、RRF(Reciprocal Rank Fusion)で統合し、コード特有のシグナルでリランクする仕組みを採用しました。Transformerを使わずすべてCPU上で動作するのが特徴です。19言語・63のリポジトリ・約1250のクエリペアによるベンチマークでは、grep+readと比較してトークン消費を98%削減。137MパラメータのTransformerモデルと同等の検索精度(99%)を維持しつつ、約200倍の高速化を実現しました。主な特徴は以下の通りです。・圧倒的なトークン効率:grep+read比で98%削減。・爆速インデックス:一般的なリポジトリなら約250msで完了、クエリごとのレスポンスもCPUで約1.5ms。・高精度:NDCG@10で0.854を達成。・MCPサーバー対応:Claude Code、Cursor、Codex、OpenCodeでドロップイン利用可能。・ゼロコンフィグ:APIキーもGPUも不要、外部サービスへの依存もなし。Claude Codeへのインストールはこちらのコマンドから:claude mcp add semble -s user -- uvx --from "semble[mcp]" semble。詳細な手順やベンチマークの結果、手法についてはGitHubのREADMEをご覧ください。Semble: https://github.com/MinishLab/semble 。ベンチマーク: https://github.com/MinishLab/semble/tree/main/benchmarks 。モデル詳細: https://huggingface.co/minishlab/potion-code-16M 。ぜひフィードバックや質問をいただけると嬉しいです!

1jerezzprime2か月前

実際のエージェントベンチマーク(例えばCCやCopilot CLIからgrepを除いて、代わりにこのツールを使った場合など)を見てみたい。個人的にはRTKや様々なLSPの実装を試してきたけど、モデルがgrepにかなり強くRL(強化学習)されていて、他の形式の結果を信用せず、何度も再試行や再読み込みを繰り返してしまうんだよね。結局、モデルが他のツールの結果を信じてくれないから、トークンの節約分がすべて無駄になってしまう。

2singpolyma32か月前

セマンティックなコード検索って、エージェントだけじゃなくて人間にとっても便利なツールになりそう。

3abcdefg122か月前

ローカルのコードベースに対しては、少なくともハーネス(検証用テスト環境)の一部であるべきじゃないかな?すでにどれくらいのハーネスがそうしているのか気になる。

5AussieWog932か月前

grepより優れているのは明らかだけど、既存のLSPと比較するとどうなの?

7jahala2か月前

これ最高だね!自分も同じ領域でツールを作ったことがあるんだけど、一番の難題はエージェントにbashツールより優先してそのツールを使わせることだった。その辺り、どういう経験をしてる?

8wrxd2か月前

https://maki.sh のインデックス機能も気に入ってる。ソースコードには多くの構造があるから、grepでファイルを読むんじゃなくて、本物のパーサーを使えばトークンを大幅に節約できる可能性があるよね。

9esperent2か月前

[遅延]

10onoesworkacct2か月前

トークンの節約とパフォーマンスは素晴らしいね…。でもgrepと違って、これは検索クエリに対する確率的な検索になるわけだ。その点は問題にならないの?小さなモデルだと、重要な情報がヒットしない可能性があるんじゃないかな。