Sembleとは?AIエージェント向けコード検索ライブラリの導入方法と基本的な使い方

Semble のロゴと「Sembleとは?導入方法と基本的な使い方」のタイトル AI

Claude CodeやCursorなどのAIコーディングエージェントを使っていて、「すぐにコンテキストがいっぱいになる」「トークンの消費が多い」と感じたことはありませんか?

その原因の多くは、エージェントがコードを探すときの動き方にあります。Sembleは、この「コード探し」で消費するトークンを大幅に減らすための、AIエージェント向けのコード検索ライブラリです。

結論:Sembleで得られる3つのメリット

先に結論からお伝えします。Sembleを導入すると、次の3つのメリットがあります。

トークン消費
99%削減
grep+ファイル読み込みと比べた平均
検索の精度
97%
約2,000トークンで目的のコードを発見
導入の手間
2コマンド
APIキー・GPU不要、無料で使える
数値は開発元の公式ベンチマーク(Semble v0.6.1時点)による
  • トークン消費を約99%削減:エージェントがコードを探すときに使うトークン量が、grep+ファイル読み込みに比べて平均で約99%少なくなります
  • 少ないトークンで目的のコードにたどり着ける:約2,000トークンで探したいコードの97%を見つけられます。grep+ファイル読み込みでは約100,000トークンを使っても85%にとどまります
  • 無料・ローカル・2コマンドで導入:MITライセンスのオープンソースで、CPUだけで動きます。APIキーやGPU、外部サービスは不要で、導入は2つのコマンドで完了します

※リコールは「探したいコードをどれだけ見つけられたか」の割合です。数値は開発元の公式ベンチマークによるもので、実際の削減率はリポジトリや使い方によって変わります。記載内容は執筆時点(2026年9月、Semble v0.6.1)の公式GitHubリポジトリ(MinishLab/semble)の情報に基づいています。

なぜAIエージェントはトークンを大量に消費するのか?

AIエージェントにコードを調べさせると、多くの場合、grep(文字列検索)で候補のファイルを探し、ヒットしたファイルを丸ごと読み込みます。本当に必要なのが数十行だけでも、ファイル全体がコンテキストに入ってしまいます。目的のコードでなければ、別のファイルを探して読み込む、という動きを繰り返します。

Sembleを使うと、エージェントは自然言語で質問するだけで、関連するコード断片だけを受け取れます。ファイル全体を読み込む必要がないため、消費するトークンが大きく減ります。

従来grep+ファイル読み込み
grepでキーワードに一致するファイルを探す
→ ヒットしたファイルを丸ごと読み込む
→ 違えば次のファイルへ(繰り返し)
auth.py
 
 
 
 
 
 
 
 
コンテキストに入るトークン量
 
約100,000トークンリコール 85%
Semble必要な断片だけを返す
自然言語で質問する
→ 関連するコード断片を約1ミリ秒で検索
→ 必要な行だけを受け取る
auth.py
 
 
 
 
 
 
 
 
コンテキストに入るトークン量
 
約2,000トークンリコール 97%
必要な行不要なのに読み込まれる行読み込まない行
目的のコードを見つけるまでにコンテキストへ入るトークン量の違い(公式ベンチマーク)

Sembleとは?基本情報

Sembleは、Model2Vecなどを手がけるMinishLabが開発し、GitHubのMinishLab/sembleで公開しているPythonライブラリです。ライセンスはMITで、無料で使えます。

ひとことで言えば、AIエージェント専用の検索エンジンです。Semble自体はAIサービスではなく、手元のPCのCPU上で動く検索ツールなので、コードを外部に送信する必要はありません。

対応するエージェントとして、Claude Code、Cursor、Codex、OpenCode、VS Codeなどが挙げられており、MCPに対応したエージェントであれば基本的に利用できます。

主な特徴

  • 高速:平均的なリポジトリを約500ミリ秒でインデックス化し、検索には約1ミリ秒で応答します(すべてCPU上)
  • 高精度:公式ベンチマークでNDCG@10(検索結果上位10件の質を表す指標)が0.854です。コード特化型のAIモデル「CodeRankEmbed」(1億3,700万パラメータ)と同等の検索品質で、インデックス作成は約380倍、検索は約17倍高速です
  • セットアップ不要:APIキー、GPU、外部サービスは必要ありません
  • ローカル・リモート両対応:ローカルのフォルダだけでなく、gitのURLを指定して検索することもできます。複数のリポジトリをまとめて検索することも可能です

仕組み:なぜ速くて正確なのか

Sembleは、コードを関数やクラスなどの単位に区切り、2種類の検索を組み合わせて結果を返します。

ソースコード
▼
関数・クラス単位に分割
tree-sitterでコード構造に沿って区切る
▼
2種類の検索を同時に実行
意味検索
potion-code-16M-v2(Model2Vec)
意味が近いコードを探す
キーワード検索
BM25
関数名・API名の一致に強い
▼
2つの順位を統合
RRF(Reciprocal Rank Fusion)
▼
コード向けに並べ替え
定義は上位に、テストやサンプルは下位に
▼
関連するコード断片だけを返す
CPUだけで約1ミリ秒
Sembleが検索結果を返すまでの流れ
  • 意味検索:コード特化の埋め込みモデル「potion-code-16M-v2」(Model2Vec)を使い、「意味が近いコード」を探します
  • キーワード検索(BM25):関数名やAPI名など、識別子の一致に強い検索です

埋め込みモデルが「静的」で、検索のたびに重いAIモデルの計算をしないため、CPUだけでもミリ秒単位で検索できます。一度作ったインデックスはキャッシュされ、ファイルが変更されたときは変わった部分だけが更新されます。

Sembleの導入方法

導入は、次の4ステップで完了します。

 
1
uvをインストール
Pythonのパッケージ管理ツール。公式サイトの手順で入れる
 
2
Sembleをインストール

uv tool install semble

 
3
インストーラーを起動
使っているコーディングエージェントを自動で検出

semble install

4
連携方法を選ぶ

MCPサーバーInstructionsサブエージェント

Sembleの導入手順(設定を戻すときは semble uninstall)

対話型インストーラーで導入する(おすすめ)

Pythonのパッケージ管理ツール「uv」をインストールしたうえで、ターミナルで次のコマンドを実行します。

uv tool install semble
semble install

semble installを実行すると、Claude Code・Codex・OpenCodeなど、インストール済みのコーディングエージェントが自動で検出されます。続けて、有効にする連携方法を選びます。

連携方法 できること
MCPサーバー エージェントがSembleをツールとして直接呼び出せるようになる
Instructions AGENTS.md / CLAUDE.mdに、SembleのCLIの使い方を追記する
サブエージェント コード検索専用のsemble-searchサブエージェントを追加する

設定を元に戻したいときはsemble uninstallを実行します。

対話なしでインストールする

サンドボックス環境やスクリプトから導入する場合は、エージェントと連携方法をオプションで指定すれば、確認プロンプトを省略できます。

semble install --agent claude --type mcp subagent --yes

--typeにはmcp、instructions、subagent、all(デフォルト)を指定できます。

アップデート方法と初回利用時の注意

アップデートはuv tool upgrade sembleで行います。MCPサーバーとして使っている場合は、続けてuv cache clean sembleを実行し、MCPクライアント(エージェント)を再起動してください。

なお、初回利用時には埋め込みモデルがHugging Faceからダウンロードされます。ネットワーク接続が必要なのはこの1回だけです。

Sembleの基本的な使い方

エージェントから使う(MCPサーバー)

MCPサーバーとして連携すると、エージェントは次の2つのツールを使えるようになります。

ツール できること
search 自然言語またはコードでコードベースを検索する。repoにローカルパスやgitのURL、contentに検索対象の種類を指定できる
find_related ファイルパスと行番号を指定し、その位置のコードと意味が近いコードを探す

効果を最大にするコツは、エージェントに「grepで探す前に、まずSembleのsearchを使う」と指示しておくことです。ファイル全体を読み込む回数が減り、トークンとコンテキストの消費を抑えられます。semble installで「Instructions」を選ぶと、この指示がAGENTS.md / CLAUDE.mdに追記されます。

CLIで使う

SembleはCLIツールとして単体でも使えます。インデックスは初回の検索時に自動で作成・キャッシュされます。

# ローカルのリポジトリを自然言語で検索
semble search "authentication flow" ./my-project

# リモートのリポジトリを検索(必要に応じてクローンされる)
semble search "save model to disk" https://github.com/MinishLab/model2vec

# 複数のリポジトリをまとめて検索
semble search "invoice endpoint" ./service-a ./service-b

# 取得件数を指定
semble search "save model to disk" ./my-project --top-k 10

# コード以外(ドキュメント)を検索
semble search "deployment guide" ./my-project --content docs

# 指定した位置のコードに似たコードを探す
semble find-related src/auth.py 42 ./my-project

主なオプションは次のとおりです。

  • --content:検索対象。code(デフォルト)、docs、config、all
  • --format:出力形式。json(デフォルト)かtext
  • --max-snippet-lines:結果ごとに表示するコードの行数(0ならファイルパスと行番号だけ)

検索対象を調整する

Sembleは.gitignoreと.sembleignoreを読んで、インデックスの対象を決めます。.sembleignoreを使えば、.gitignoreを変えずにSemble専用のルールを追加できます。node_modules/や.venv/、dist/などの一般的なディレクトリは自動で除外されます。

# .sembleignore
generated/     # 生成コードを除外
!*.proto       # デフォルトでは対象外の拡張子を追加

削減できたトークン量を確認する

semble savingsを実行すると、これまでの検索で削減できたトークン数の推計を、期間別・呼び出しの種類別に確認できます。公式READMEに掲載されている出力例では、削減率は約94%でした。

semble savings

削減量は「結果を返したファイル全体の文字数 − 実際に返したコード断片の文字数」を4文字=1トークンとして換算した推計値です。「ファイルを丸ごと読んだ場合」と比べた、控えめな見積もりとされています。

Pythonライブラリとして使う

独自のツールに検索機能を組み込みたい場合は、Pythonから直接呼び出すこともできます。

from semble import SembleIndex

index = SembleIndex.from_path("./my-project")
results = index.search("save model to disk", top_k=3)
print(results[0].chunk.file_path, results[0].chunk.start_line)

Sembleとgrepの使い分け

Sembleを入れても、grepが不要になるわけではありません。目的に応じて使い分けるのがおすすめです。

やりたいこと おすすめの方法
「〇〇の処理はどこ?」と機能や意味で探したい Sembleのsearch
見つけたコードと似た実装を探したい Sembleのfind_related
ドキュメントや設定ファイルを探したい Sembleのsearch(--content docs / config)
特定の文字列の出現箇所をすべて洗い出したい grep

Sembleのメリット・デメリット

メリット

  • トークンとコンテキストの節約:必要なコード断片だけを返すため、エージェントがファイルを丸ごと読む回数が減ります
  • ローカルで完結:CPUだけで動き、コードを外部サービスに送る必要がありません
  • 導入が簡単:uv tool install sembleとsemble installの2コマンドで主要なエージェントと連携できます
  • 無料で使える:MITライセンスのオープンソースです

デメリット・注意点

  • 開発者向けのツール:AIコーディングエージェントを使わない人にはメリットが少ないです
  • 初回はモデルのダウンロードが必要:オフライン環境では、事前にモデルを用意して環境変数SEMBLE_MODEL_NAMEで指定する必要があります
  • 大きなファイルは対象外:1MBを超えるファイルはデフォルトでインデックス化されません(SEMBLE_MAX_FILE_BYTESで変更できます)
  • 完全一致の網羅には不向き:特定の文字列をすべて洗い出す用途では、grepを併用したほうが確実です

まとめ

Sembleは、AIコーディングエージェントのコード探しで消費するトークンを大幅に減らせる、無料のコード検索ライブラリです。

  • grep+ファイル読み込みに比べて、トークン消費を平均で約99%削減(公式ベンチマーク)
  • 約2,000トークンでリコール97%と、少ないトークンで目的のコードにたどり着ける
  • CPUだけで動き、APIキー・GPU・外部サービスは不要。MITライセンスで無料
  • 導入はuv tool install sembleとsemble installの2コマンド
  • エージェントには「grepより先にSembleのsearchを使う」と指示しておくと効果的
  • semble savingsで、実際に削減できたトークン量を確認できる

まずは手元のリポジトリでsemble searchを試し、エージェントに組み込んだあとはsemble savingsで効果を確かめてみてください。

コメント

タイトルとURLをコピーしました