HN🔥 145
💬 38

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

Bibabomas
約12時間前

ディスカッション (11件)

0
BibabomasOP🔥 145
約12時間前

みなさん、こんにちは!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 。ぜひフィードバックや質問をいただけると嬉しいです!

1
jerezzprime
約8時間前

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

2
singpolyma3
約7時間前

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

3
abcdefg12
約6時間前

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

5
AussieWog93
約5時間前

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

7
jahala
約5時間前

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

8
wrxd
約5時間前

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

9
esperent
約3時間前

[遅延]

10
onoesworkacct
約3時間前

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