Qwen開発チーム、ローカル検索層「zg」をオープンソース化
本文の状態
日本語全文を表示中
詳細モードで約8分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
MarkTechPost
Qwen Developer チームは、semantic search、BM25、ripgrep を統合したオープンソースの検索レイヤー「zg」を公開し、コーディングエージェントのツール使用効率を向上させる実用的な解決策を提供する。
AI深層分析を開く2026年9月3日 09:01
AI深層分析
キーポイント
多様な検索ルートを統合したハイブリッド検索層
zg は意図と語彙的アンカーを組み合わせたデフォルトのハイブリッドモードに加え、BM25 ベースの完全一致やベクトル検索、ripgrep による正規表現マッチングを一つのインターフェースで提供する。
ローカルファーストかつ GPU 不要な実装
同ツールは Node.js 22 以上で動作し、デフォルトモデルでは GPU を必要とせず、npm パッケージとして即座に導入可能である。
エージェントとの MCP インテグレーション
Codex や Claude Code などの主要エディタを検出するとローカル MCP サーバーを起動し、意図が不明確な場合と記号が明確な場合に使い分けられるようツールを制限して設計されている。
インデックス管理の厳格なポリシー
エージェントによるインデックスの無断作成や削除を防ぐため、基本機能は検索に限定され、ライフサイクル操作は CLI またはオプトイン設定でのみ実行可能となる。
検索結果の形式と制限
結果はファイル単位でグループ化され、行範囲が表示されるが、デフォルトではインデックスソースプレビューは省略される。出力を変更する ripgrep フラグ(--json, --count など)は拒否され、コンパクトなフォーマットが維持される。
重要な引用
zg indexes a workspace once and then exposes several ways to query it.
The design decision worth noting is restraint.
An agent must never silently create, rebuild, or delete a persistent index.
zg also rejects output-changing ripgrep flags such as --json, --count, -l, and --vimgrep so the compact result format holds.
編集コメントを表示
編集コメント
コーディングエージェントの検索コスト削減という実務的な課題に対し、複数の検索手法を統合したローカルファーストな解決策が提示された点は評価できる。特に、エージェントによるインデックス操作を制限する設計思想は、システム安定性の観点から重要な指針となる。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
コーディングエージェントは、ツール使用量の多くを検索に費やしています。対象が特定のシンボルである場合、ripgrep は正確な回答を提供します。一方、自然言語で記述された振る舞いを対象とする場合、キーワードマッチングでは見逃すことが多く、エージェントは用語の推測に頼ったり、ファイル全体を読み込んだり、手動で文脈を構築したりする必要があります。これらの迂回経路は、ツール呼び出しの数、トークン数、そして実際の経過時間を無駄にします。
Qwen Developer チームは、人間とエージェントの両方に対して、意味検索、BM25、ripgrep を一つのインターフェースで統合するオープンソースのローカルファースト検索レイヤー「zg (zvec-grep)」を発表しました。このコードは zvec-ai GitHub オルガニゼーションの下に Apache 2.0 ライセンスで公開されています。
実用化可能ですか?はい、今日から利用できます。npm から @zvec/zvec-grep としてインストールでき、macOS、Linux、Windows で Node.js 22 以上が必要です。デフォルトモデルを使用する場合は GPU は不要であり、Apache 2.0 ライセンスにより商用利用も許可されています。
一つのインデックス、4 つの検索ルート
zg はワークスペースを一度だけインデックス化し、その後複数の方法でクエリを実行できるようにします。検索パイプラインのドキュメントでは、以下の 4 つのルートが定義されています。意図と語彙的なアンカーを組み合わせたハイブリッドなデフォルトモード、BM25 ランキングによる正確な用語を検索する --fts、語彙的なランク付けを排除した概念的な類似性を探す --vector、そして網羅的なリテラルまたは正規表現マッチングを行う --rg です。最初の 3 つはインデックスを読み取りますが、--rg ルートにはインデックスが不要です。これはまだインデックス化されていないリポジトリにおいて特に重要です。
インデックスは匿名のワークスペースとして /.zvec-grep/ ディレクトリに保存されます。.git や .zvec-grep はもちろん、一般的な依存関係やビルドキャッシュ、ログディレクトリ、そしてリポジトリ自身の ignore ルールで除外されるファイルもすべて対象外となります。
zg index を再実行するとインデックスは増分更新されますが、埋め込みモデルを変更する場合は --rebuild オプションを明示的に指定する必要があります。異なるモデルから生成されたベクトル空間は次元数が一致していても互換性がないためです。
検索結果には「fresh(最新)」または「possibly_stale(おそらく古くなっている)」という鮮度状態が表示されます。これにより、エージェントは事前ステータスチェックを実行する前に、十分な精度を持つ結果に基づいて即座に行動できます。
エージェントが実際にアクセスできる MCP サーフェスについて
zg install を実行すると、マシン上に存在する Codex、Claude Code、Cursor、OpenCode が検出され、ローカル MCP 統合が自動的に設定されます。サーバーはループバック専用エンドポイント http://127.0.0.1:7999/mcp で Streamable HTTP MCP を使用し、オプションでベアラー認証にも対応しています。
特筆すべき設計思想は「自制心」です。MCP ガイドに従い、デフォルトのエージェントツールセットが公開するのは、意図は明確だが正確な文字列が不明な場合に使用する zvec_grep_search と、シンボル、パス、または正規表現が既知の場合に使用する zvec_grep_rg の 2 つだけです。インデックスのライフサイクル管理は CLI に委ねられています。
zg server --mcp-toolset full を指定することでオプトインできる、6 つのツールからなる互換性セット(インデックス作成・削除、ステータス確認、サーバー状態確認など)も存在しますが、ドキュメントでは「エージェントが永続的なインデックスを黙って作成、再構築、または削除してはならない」と明記されています。
出力はコンテキストの効率化を考慮して設計されています。結果はファイル単位でグループ化され、行範囲と共に返されます。インデックス付きソースプレビューは、明示的にリクエストしない限りデフォルトでは省略されます。また、compact な結果形式を維持するため、--json、--count、-l、--vimgrep といった出力を変更する ripgrep のフラグは zg では拒否されます。
埋め込みベクトル計算は、デフォルトでデバイス上で行われます。
現在の埋め込みカタログには、10 種類のローカルモデルと 3 つのリモート Qwen エンドポイントが記載されています。クイックスタートのデフォルト設定である local/potion-code-16m-v2 は、Model2Vec の静的モデルで、出力次元は 256、入力トークン制限は 8,192 です。このモデルは静的ベクトル検索を利用するため、GPU を選択しても処理速度が向上することはありません。より重厚なローカルオプションには、jina-embeddings-v2-base-code、embeddinggemma-300m、qwen3-embedding-0.6b などがあります。
リモート利用は制限されています。プロバイダーの認証情報を設定しただけではデータ転送が許可されるわけではなく、単発のコマンド実行には --allow-remote を指定するか、zg auth grant による署名付きワークスペース権限が必要です。この権限は zg auth revoke コマンドで取り消すことができます。
発表時の記事ではオンデバイスモデルが 11 種類と紹介されていましたが、現在のドキュメントでは 10 種類となっています。このわずかな不一致にも注意を払う必要があります。
ベンチマーク数値から読み取れること
評価結果はリポジトリではなく、ローンチポストに記載されています。リポジトリ内のベンチマークセクションはまだプレースホルダーの状態です。
両方のテストは A/B 比較実験で、エージェント、モデル、プロンプト、ランタイム、タスクの制約を固定した上で実施されました。zg の条件では、事前構築されたインデックス、MCP ツール、利用ガイダンスのみを追加しています。表にはインデックス構築のコストは含まれていません。
20 問からなる SWE-QA-Bench サンプルでは、zg はツール呼び出しを半分未満に削減し、入力トークン数を約半分まで減らしつつ、Judge スコアを 1.50 ポイント向上させました。また、80 問の BrowseComp-Plus サンプルでは、精度が 98.67% から 99.00% に改善した一方で、入力トークンは 37.56%、ツール呼び出しは 43.52%、エージェントの実行時間は 38.58% 減少しました。さらに、Django リポジトリ(3,457 ファイル)のインデックス作成については、Apple M4 Pro で 30 秒未満で完了すると報告されています。
サンプルサイズが 20 問と 80 問と小規模であること、また報告された削減効果はベンダー自身のテスト結果に基づいていることから、独立した再現実験が次のステップとして明確に求められます。
インタラクティブ解説
主なポイント
zg は、人間とエージェント向けのローカルファーストインターフェースの背後で、ripgrep、BM25、ベクトル検索を統合します。
デフォルトの MCP ツールセットは 2 つのツールのみを公開しており、インデックスのライフサイクルは設計上 CLI で管理されます。
インデックス作成、埋め込み(embedding)、検索はデバイス上で実行され、リモートでの埋め込みにはコマンド単位またはワークスペースごとの明示的な承認が必要です。
ベンダーによる A/B テストでは、小規模サンプルでツール呼び出しと入力トークン数がそれぞれ約 40% から 50% 削減されたことが報告されています。
ライセンスは Apache 2.0 で npm インストール可能。Node.js 22 以上が必要ですが、デフォルトモデルを使用する場合は GPU は不要です。
「zvec-ai/zvec-grep」のプロジェクトページ、Qwen Developers の公式発表記事、ロードマップをチェックしましょう。また、Twitter でフォローしていただくことも歓迎です。ぜひ 15 万人以上の ML 専門家が参加する SubReddit に加入し、ニュースレターも購読してください。
Telegram を利用している方へ:今なら Telegram でもコミュニティに参加できます。
関連記事
News to Guide
ニュースの次に確認する
発表内容を、現在の料金や仕様と照らし合わせられる関連ガイドです。
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み