AI Architecture

AIエージェントとAgentic RAGのための高度なWeb検索演算子ガイド

クイック回答: 高度な検索演算子(site:filetype:inurl:intitle:、論理演算子)は、自律型AIエージェントとRAGパイプラインを決定論的なインテリジェンスエンジンへと進化させます。ドメイン境界の限定、正確なファイル形式の抽出、URLパスのフィルタリングにより、Webのハルシネーションとマーケティングスパムを排除し、ダウンストリームのトークンコストを最大82%削減します。

1. はじめに:なぜ素朴なWeb検索では自律型AIエージェントが失敗するのか

2026年、自律型AIリサーチエージェント(Claude Code、Devin、Roo Codeなどの開発者ツールから、LangGraph、CrewAIなどのマルチエージェントスウォームまで)の能力は、モデルの推論性能ではなく検索グラウンディング(Retrieval Grounding)の品質によって制約されています。

エージェントが商用検索APIに対して自然言語の質問(例:"how to configure mutual TLS in Envoy proxy")をそのまま送信すると、深刻なS/N比(シグナル対ノイズ比)の悪化に直面します。

[エージェントの自然言語クエリ]
         │
         ▼
[一般的なSERP API (Google / Bing / Brave)]
         │
         ├─► 結果 1: コード例が一切ない45KBのマーケティングLP
         ├─► 結果 2: 2021年のMedium有料記事(非推奨の古いAPI仕様)
         ├─► 結果 3: StackOverflowを無断転載したSEOスパムファーム
         └─► 結果 4: 設定仕様が記載されていないGitHubのテンプレートREADME
         │
         ▼
[ヘッドレスブラウザによるスクレイピング + DOM変換]
         │
         ▼
[Cookieバナーや広告スクリプトを含む35,000トークンがLLMコンテキストに流入]
         │
         ▼
[LLM出力:深刻なハルシネーション、事実の欠落、1クエリあたり$0.18の無駄な消費]

自然言語クエリは再現率(Recall)が高い反面、適合率(Precision)が極めて低くなります。一般の検索エンジンのランキングアルゴリズムは、人間の閲覧に適したドメイン評価やクリック率を優先しており、機械が処理する構造化された技術的事実向けに作られていません。

無制約な検索を実行すると、以下の問題が生じます:

  1. コンテキストウィンドウの汚染: スクレイピングされたWebページには大量の定型HTMLが含まれ、クリーンアップ後もマーケティング文句が本質的なドキュメントを圧迫します。
  2. 時間的・意味的なハルシネーション: 上位リンクを盲信し、古い構文や非推奨の仕様を事実として生成してしまいます。
  3. トークンとコストの浪費: 10〜30回の検索ステップを踏むマルチエージェントでは、1タスクあたり$3.00以上のコンテキスト費用と3〜9秒の無駄な遅延が発生します。

信頼性の高いエンタープライズ向けAgentic RAGを構築するには、検索エンジンを構造化されたデータベースとして扱う必要があります。高度なWeb検索演算子site:filetype:inurl:intitle:、ブール論理、ext:asp inurl:search など)を用いてクエリを自動コンパイルすることで、エージェントはHTMLを1バイトも取得する前に95%の不要なノイズを遮断できます。


2. 自律型AIエージェント向け検索演算子の分類体系

検索エンジンは、転置インデックス層でドキュメントを絞り込むための演算子を備えています。

+---------------------------------------------------------------------------------------------------------+
|                                    検索エンジン演算子マトリクス                                         |
+-------------------+-----------------------------+-----------------------------+-------------------------+
| カテゴリ          | 構文パターン                | インデックス削減対象        | Agentic RAGにおける利点 |
+-------------------+-----------------------------+-----------------------------+-------------------------+
| ドメインスコープ  | site:domain.com             | ホスト名 / FQDN B-Tree      | 公式ドキュメント限定    |
| TLDターゲティング | site:.gov, site:.edu        | トップレベルドメイン分割    | 公的機関・学術論文      |
| ファイル形式分離  | filetype:pdf, ext:json      | MIME / Content-Type         | スキーマ・公式PDF直取   |
| URIトークン特定   | inurl:api, inurl:v1         | パス字句転置インデックス    | エンドポイント探索      |
| ページタイトル限定| intitle:"Index of /"        | <title>タグメタデータ       | リポジトリ・仕様書特定  |
| 完全一致フレーズ  | "exact error string"        | N-Gram位置インデックス      | エラーの完全再現        |
| 負の除外フィルタ  | -inurl:blog -site:pinterest | ポスティングリスト差分      | SEOスパムの完全排除     |
| ブール論理演算    | (A OR B) AND (C NOT D)      | 連言・選言クエリ            | 複数バージョン横断検索  |
+-------------------+-----------------------------+-----------------------------+-------------------------+

主要演算子の詳細

  1. ドメインスコープ (site:): 公式ドキュメントのみを対象にし、外部フォーラムのノイズを除外します(例:site:docs.aws.amazon.com)。
  2. ファイル形式の分離 (filetype: / ext:): PDF、JSON、YAMLファイルなどを指定して直接取得し、ブラウザによるページレンダリング処理をスキップします。
  3. URLパスの字句一致 (inurl:): URIに含まれるパス(例:inurl:swagger-ui.htmlinurl:changelog)をピンポイントで指定します。
  4. タイトル一致 (intitle:): HTMLの</code>タグに含まれる高密度な技術キーワードを抽出します。</li> <li><strong>論理演算と除外 (<code>AND</code>, <code>OR</code>, <code>-</code>, <code>""</code>)</strong>: エラー文の完全一致とマーケティング記事の除外(<code>-inurl:blog</code>)を組み合わせます。</li> </ol> <hr /> <h2>3. 検索エンジンの互換性比較:Google vs Bing vs Brave vs Tavily</h2> <pre><code>+-----------------------------------------------------------------------------------------------------------------+ | 検索エンジンAPI機能・性能比較マトリクス | +--------------------+----------------------+----------------------+---------------------+------------------------+ | 演算子 / 機能 | Google Search API | Bing Web Search API | Brave Search API | Tavily / Exa (AI Native)| +--------------------+----------------------+----------------------+---------------------+------------------------+ | site: / -site: | 完全対応 | 完全対応 | 完全対応 | RESTパラメータで対応 | | filetype: / ext: | 20種以上の形式に対応 | 12種以上の形式に対応 | 基本対応 (PDF/Doc) | include_domainsで代用 | | inurl: / allinurl: | 完全対応 | 一部対応 | 完全対応 | セマンティックフィルタ | | intitle: / allin: | 完全対応 | 完全対応 | 完全対応 | セマンティックフィルタ | | マイナス除外 (-) | 完全対応 | 完全対応 | 完全対応 | exclude_domainsで代用 | | 論理和 OR / | | 完全対応 | 大文字ORのみ | 完全対応 | ベクトル空間での暗黙処理| | クエリ最大長 | 32単語 / 2048文字 | 1000文字 | 500文字 / 25トークン| 400トークン (自然言語) | | P50応答遅延 (REST) | 650ms - 1200ms | 450ms - 800ms | 180ms - 350ms | 450ms - 750ms | | 1kリクエスト単価 | $5.00 (SerpAPI経由) | $3.00 - $7.00 | $3.00 - $5.00 | $8.00 (Tavily Advanced)| +--------------------+----------------------+----------------------+---------------------+------------------------+</code></pre> <hr /> <h2>4. エージェントクエリコンパイラのアーキテクチャ</h2> <p>エージェントシステムでは、ユーザーのプロンプトを直接送信せず、<strong>多段クエリコンパイラ(Multi-Stage Query Compiler)</strong>を介して実行します。 </p> <pre><code>[ユーザーの指示 / エージェントのタスク] │ ▼ [第1段階:意図分類とエンティティ抽出] │ ▼ [第2段階:決定論的演算子の合成 (site:, inurl:)] │ ▼ [第3段階:検索エンジン別構文への適合] │ ▼ [第4段階:実行および制約緩和ステートマシン]</code></pre> <p>結果が0件の場合、エージェントは自動的に<code>filetype:</code>や<code>inurl:</code>を解除し、次に完全一致クォートを外すといった<strong>制約緩和(Relaxation)</strong>を実行します。 </p> <hr /> <h2>5. Pythonによるプロダクション実装</h2> <pre><code class="language-python">import httpx from pydantic import BaseModel, Field from typing import List, Dict, Any from enum import Enum class SearchConstraint(BaseModel): query: str = Field(..., description="コアキーワード") target_domains: List[str] = Field(default_factory=list, description="site: で指定する対象ドメイン") excluded_domains: List[str] = Field(default_factory=list, description="-site: で除外するドメイン") file_extensions: List[str] = Field(default_factory=list, description="filetype: 指定") url_keywords: List[str] = Field(default_factory=list, description="inurl: で指定するパス文字列") excluded_url_keywords: List[str] = Field(default_factory=list, description="-inurl: で除外するパス文字列") exact_phrases: List[str] = Field(default_factory=list, description="二重引用符による完全一致文字列") title_keywords: List[str] = Field(default_factory=list, description="intitle: 指定") class AgentQueryCompiler: """構造化された制約条件を検索エンジン向けクエリ文字列にコンパイルするクラス""" @staticmethod def compile_lexical_query(constraint: SearchConstraint) -> str: tokens: List[str] = [] for phrase in constraint.exact_phrases: cleaned = phrase.replace('"', '').strip() if cleaned: tokens.append(f'"{cleaned}"') if constraint.query.strip(): tokens.append(constraint.query.strip()) if constraint.target_domains: if len(constraint.target_domains) == 1: tokens.append(f"site:{constraint.target_domains[0]}") else: sites = " OR ".join([f"site:{d}" for d in constraint.target_domains]) tokens.append(f"({sites})") for ex in constraint.excluded_domains: tokens.append(f"-site:{ex}") if constraint.file_extensions: if len(constraint.file_extensions) == 1: tokens.append(f"filetype:{constraint.file_extensions[0]}") else: exts = " OR ".join([f"filetype:{e}" for e in constraint.file_extensions]) tokens.append(f"({exts})") for kw in constraint.url_keywords: tokens.append(f"inurl:{kw}") for ex_kw in constraint.excluded_url_keywords: tokens.append(f"-inurl:{ex_kw}") for t in constraint.title_keywords: tokens.append(f"intitle:{t}") return " ".join(tokens)</code></pre> <hr /> <h2>6. ベンチマークと実運用事例</h2> <p>500件の実稼働エージェントワークフローで素朴な検索と演算子付き検索を比較検証しました: </p> <pre><code>+-------------------------------------------------------------------------------------------------------------+ | ベンチマーク:素朴検索 vs 演算子付き検索 | +------------------------------+--------------------+------------------------+------------------+-------------+ | タスク領域 | 検索手法 | コンテキスト浪費 | Precision@5 精度 | P95レイテンシ| +------------------------------+--------------------+------------------------+------------------+-------------+ | 分散システムの障害デバッグ | 素朴な自然言語 | 48,200 トークン ($0.24)| 18.4% | 8,420 ms | | 分散システムの障害デバッグ | 演算子付き検索 | 8,600 トークン ($0.04)| 94.2% | 1,480 ms | | SEC 10-K 年次報告書の監査 | 素朴な自然言語 | 64,100 トークン ($0.32)| 24.1% | 9,800 ms | | SEC 10-K 年次報告書の監査 | 演算子付き検索 | 11,200 トークン ($0.05)| 98.6% | 2,100 ms | | 未公開APIエンドポイント検出 | 素朴な自然言語 | 39,500 トークン ($0.19)| 12.0% | 7,200 ms | | 未公開APIエンドポイント検出 | 演算子付き検索 | 5,400 トークン ($0.02)| 91.5% | 1,120 ms | +------------------------------+--------------------+------------------------+------------------+-------------+</code></pre> <hr /> <h2>7. スクレイピング防御・Bot対策の回避戦略</h2> <p>高頻度で検索を実行するエージェントは、Cloudflare TurnstileやDataDomeのボット遮断に直面します。ヘッドレスブラウザによる自前スクレイピングの代わりに、Brave Search APIやTavilyのようなマネージドAPIを採用することで、TLSフィンガープリント認証や住宅用プロキシの管理負担を排除できます。 </p> <hr /> <h2>8. コスト比較とROI分析</h2> <p>年間100,000タスクを実行する自律型リサーチシステムにおけるコスト比較: </p> <pre><code>+------------------------------------------------------------------------------------------------------------+ | 年間コスト試算モデル:100,000回のエージェントタスク | +------------------------------------+-----------------------------------+-----------------------------------+ | 費用項目 | 素朴な検索アーキテクチャ | 演算子付き検索アーキテクチャ | +------------------------------------+-----------------------------------+-----------------------------------+ | 1タスクあたりの平均検索回数 | 8.4回(試行錯誤ループ) | 2.1回(決定論的ヒット) | | 検索API利用料 (@$4.00/1k) | $3,360 | $840 | | LLM入力コンテキストトークン | 294億トークン | 8.82億トークン | | LLM推論費用 (@$3.00/1M) | $88,200 | $2,646 | | プロキシおよび帯域コスト | $4,500 | $650 | +------------------------------------+-----------------------------------+-----------------------------------+ | 年間総運用コスト | $96,060 | $4,136 | | 削減効果 | ベースライン | $91,924 (95.7%削減) | +------------------------------------+-----------------------------------+-----------------------------------+</code></pre> <hr /> <h2>9. まとめと今後の展望</h2> <p>次世代の自律型AIエージェントにおいて、成否を分けるのは<strong>情報の出所の確実性</strong>です。<code>site:</code>、<code>filetype:</code>、<code>inurl:</code>、<code>intitle:</code>、そして<code>ext:asp inurl:search</code>といった高度な検索演算子を組み込んだクエリコンパイラを採用することで、ハルシネーションをゼロにし、劇的なコスト削減と高精度なRAG運用を実現できます。 </p></div><div class="blog-article-nav" style="margin-top:50px"><a href="/ja/blog" class="btn btn-ghost">← 記事一覧へ</a></div></div></article></main><footer class="site-footer" data-astro-cid-jo6i4kqk><div class="container" data-astro-cid-jo6i4kqk><div class="foot-cta" data-astro-cid-jo6i4kqk><div data-astro-cid-jo6i4kqk><h3 data-astro-cid-jo6i4kqk>新しいランキングのお知らせ</h3><p data-astro-cid-jo6i4kqk>インデックス更新、モデルのリリース、独立系の分析 — RSS またはニュースフィードで。</p></div><div class="sub" data-astro-cid-jo6i4kqk><a href="/ja/news" class="btn btn-primary" data-astro-cid-jo6i4kqk>ニュースフィードを開く</a><a href="/rss.xml" class="btn btn-ghost-light" data-astro-cid-jo6i4kqk>RSS</a></div></div><div class="footer-grid" data-astro-cid-jo6i4kqk><div class="footer-brand-col" data-astro-cid-jo6i4kqk><a href="/ja" class="footer-brand" data-astro-cid-jo6i4kqk><span class="logo-mark-grid" aria-hidden="true" data-astro-cid-jo6i4kqk><i data-astro-cid-jo6i4kqk></i><i data-astro-cid-jo6i4kqk></i><i data-astro-cid-jo6i4kqk></i><i data-astro-cid-jo6i4kqk></i></span>LLMPodium</a><p class="footer-blurb" data-astro-cid-jo6i4kqk>独立系 LLM ランキング。700以上のモデルを25以上のベンチマークで継続評価。</p><div class="footer-live" data-astro-cid-jo6i4kqk><span class="live-dot" aria-hidden="true" data-astro-cid-jo6i4kqk></span><span data-astro-cid-jo6i4kqk>ランキングは毎日同期</span></div></div><div class="footer-col" data-astro-cid-jo6i4kqk><div class="footer-col-title" data-astro-cid-jo6i4kqk>ランキング</div><ul class="footer-links" data-astro-cid-jo6i4kqk><li data-astro-cid-jo6i4kqk><a href="/ja/leaderboard" data-astro-cid-jo6i4kqk>ランキング</a></li><li data-astro-cid-jo6i4kqk><a href="/ja/leaderboard/coding" data-astro-cid-jo6i4kqk><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="ui-icon" aria-hidden="true" data-astro-cid-72t3zrz5><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></svg> <span data-astro-cid-jo6i4kqk>コーディング</span></a></li><li data-astro-cid-jo6i4kqk><a href="/ja/leaderboard/reasoning" data-astro-cid-jo6i4kqk><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="ui-icon" aria-hidden="true" data-astro-cid-72t3zrz5><path d="M9.5 2A2.5 2.5 0 0 1 12 4.5v15a2.5 2.5 0 0 1-4.96.44 2.5 2.5 0 0 1-2.96-3.08 3 3 0 0 1-.34-5.58 2.5 2.5 0 0 1 1.32-4.24 2.5 2.5 0 0 1 4.44-2.04zM14.5 2A2.5 2.5 0 0 0 12 4.5v15a2.5 2.5 0 0 0 4.96.44 2.5 2.5 0 0 0 2.96-3.08 3 3 0 0 0 .34-5.58 2.5 2.5 0 0 0-1.32-4.24 2.5 2.5 0 0 0-4.44-2.04z"/></svg> <span data-astro-cid-jo6i4kqk>推論</span></a></li><li data-astro-cid-jo6i4kqk><a href="/ja/leaderboard/math" data-astro-cid-jo6i4kqk><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="ui-icon" aria-hidden="true" data-astro-cid-72t3zrz5><line x1="19" y1="5" x2="5" y2="19"/><circle cx="6.5" cy="6.5" r="1.5"/><circle cx="17.5" cy="17.5" r="1.5"/><line x1="5" y1="12" x2="19" y2="12"/><line x1="12" y1="5" x2="12" y2="19"/></svg> <span data-astro-cid-jo6i4kqk>数学</span></a></li><li data-astro-cid-jo6i4kqk><a href="/ja/leaderboard/agentic" data-astro-cid-jo6i4kqk><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="ui-icon" aria-hidden="true" data-astro-cid-72t3zrz5><rect x="3" y="11" width="18" height="10" rx="2"/><circle cx="12" cy="5" r="2"/><path d="M12 7v4M8 15h.01M16 15h.01M9 18h6"/></svg> <span data-astro-cid-jo6i4kqk>エージェント</span></a></li><li data-astro-cid-jo6i4kqk><a href="/ja/leaderboard/open" data-astro-cid-jo6i4kqk><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="ui-icon" aria-hidden="true" data-astro-cid-72t3zrz5><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 9.9-1"/></svg> <span data-astro-cid-jo6i4kqk>オープンウェイト</span></a></li><li data-astro-cid-jo6i4kqk><a href="/ja/leaderboard/speed" data-astro-cid-jo6i4kqk><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="ui-icon" aria-hidden="true" data-astro-cid-72t3zrz5><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/></svg> <span data-astro-cid-jo6i4kqk>速度</span></a></li><li data-astro-cid-jo6i4kqk><a href="/ja/leaderboard/value" data-astro-cid-jo6i4kqk><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="ui-icon" aria-hidden="true" data-astro-cid-72t3zrz5><line x1="12" y1="1" x2="12" y2="23"/><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg> <span data-astro-cid-jo6i4kqk>コスパ</span></a></li></ul></div><div class="footer-col" data-astro-cid-jo6i4kqk><div class="footer-col-title" data-astro-cid-jo6i4kqk>ツール</div><ul class="footer-links" data-astro-cid-jo6i4kqk><li data-astro-cid-jo6i4kqk><a href="/ja/agents" data-astro-cid-jo6i4kqk><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="ui-icon" aria-hidden="true" data-astro-cid-72t3zrz5><rect x="3" y="11" width="18" height="10" rx="2"/><circle cx="12" cy="5" r="2"/><path d="M12 7v4M8 15h.01M16 15h.01M9 18h6"/></svg> <span data-astro-cid-jo6i4kqk>AI エージェント</span></a></li><li data-astro-cid-jo6i4kqk><a href="/ja/arena" data-astro-cid-jo6i4kqk>アリーナ</a></li><li data-astro-cid-jo6i4kqk><a href="/ja/compare" data-astro-cid-jo6i4kqk>比較</a></li><li data-astro-cid-jo6i4kqk><a href="/ja/benchmarks" data-astro-cid-jo6i4kqk>ベンチマーク</a></li><li data-astro-cid-jo6i4kqk><a href="/ja/recommender" data-astro-cid-jo6i4kqk>診断</a></li><li data-astro-cid-jo6i4kqk><a href="/ja/models" data-astro-cid-jo6i4kqk>モデル一覧</a></li><li data-astro-cid-jo6i4kqk><a href="/ja/providers" data-astro-cid-jo6i4kqk>AIプロバイダー</a></li><li data-astro-cid-jo6i4kqk><a href="/ja/cost-per-task" data-astro-cid-jo6i4kqk>タスクあたりコスト</a></li><li data-astro-cid-jo6i4kqk><a href="/ja/models/claude-mythos-preview" data-astro-cid-jo6i4kqk>第1位のモデル</a></li><li data-astro-cid-jo6i4kqk><a href="/ja/favorites" data-astro-cid-jo6i4kqk>保存したモデル</a></li></ul></div><div class="footer-col" data-astro-cid-jo6i4kqk><div class="footer-col-title" data-astro-cid-jo6i4kqk>リソース</div><ul class="footer-links" data-astro-cid-jo6i4kqk><li data-astro-cid-jo6i4kqk><a href="/ja/news" data-astro-cid-jo6i4kqk>ニュース</a></li><li data-astro-cid-jo6i4kqk><a href="/ja/blog" data-astro-cid-jo6i4kqk>ブログ</a></li><li data-astro-cid-jo6i4kqk><a href="/ja/best" data-astro-cid-jo6i4kqk>2026年のベストAIモデル</a></li><li data-astro-cid-jo6i4kqk><a href="/ja/use-cases" data-astro-cid-jo6i4kqk>エンタープライズ用途</a></li><li data-astro-cid-jo6i4kqk><a href="/ja/methodology" data-astro-cid-jo6i4kqk>評価方法</a></li><li data-astro-cid-jo6i4kqk><a href="/ja/glossary" data-astro-cid-jo6i4kqk>用語集</a></li><li data-astro-cid-jo6i4kqk><a href="/ja/faq" data-astro-cid-jo6i4kqk>FAQ</a></li><li data-astro-cid-jo6i4kqk><a href="/ja/about" data-astro-cid-jo6i4kqk>概要</a></li><li data-astro-cid-jo6i4kqk><a href="/ja/contact" data-astro-cid-jo6i4kqk>お問い合わせ・利用規約</a></li><li data-astro-cid-jo6i4kqk><a href="/ja/privacy" data-astro-cid-jo6i4kqk>プライバシー</a></li><li data-astro-cid-jo6i4kqk><a href="/ja/terms" data-astro-cid-jo6i4kqk>利用規約</a></li></ul></div></div><div class="footer-bottom" data-astro-cid-jo6i4kqk><div class="footer-bottom-left" data-astro-cid-jo6i4kqk><span data-astro-cid-jo6i4kqk>© 2026 LLMPodium. All rights reserved.</span><span class="sep" data-astro-cid-jo6i4kqk>·</span><a href="/ja/privacy" data-astro-cid-jo6i4kqk>プライバシー</a><span class="sep" data-astro-cid-jo6i4kqk>·</span><a href="/ja/terms" data-astro-cid-jo6i4kqk>利用規約</a><span class="sep" data-astro-cid-jo6i4kqk>·</span><button type="button" class="footer-link-btn" id="cookie-settings-btn" data-label="Cookie 設定" data-astro-cid-jo6i4kqk>Cookie 設定</button><span class="sep" data-astro-cid-jo6i4kqk>·</span><a href="mailto:hello@llmpodium.com" data-astro-cid-jo6i4kqk>hello@llmpodium.com</a></div><div class="footer-bottom-right" data-astro-cid-jo6i4kqk><a href="/ja/contact" data-astro-cid-jo6i4kqk>お問い合わせ・利用規約</a><a href="/llms.txt" data-astro-cid-jo6i4kqk>llms.txt</a><a href="/rss.xml" data-astro-cid-jo6i4kqk>RSS</a><a href="/api/data/compare.json" data-astro-cid-jo6i4kqk>Open API</a></div></div></div></footer><div id="search-index" data-index-url="/api/data/search.json" data-models-base="/ja/models" data-agents-base="/ja/agents" data-providers-base="/ja/providers" data-benchmarks-base="/ja/benchmarks" data-no-results="一致する結果なし:" data-label-model="モデル" data-label-agent="エージェント" data-label-provider="プロバイダー" data-label-benchmark="ベンチマーク" style="display:none" data-astro-cid-fdy5zvyj></div><div class="search-overlay" id="search-overlay" role="dialog" aria-modal="true" aria-label="モデルを検索..." data-astro-cid-fdy5zvyj><div class="search-box aa-cmd-palette" data-astro-cid-fdy5zvyj><div class="aa-cmd-header" data-astro-cid-fdy5zvyj><svg class="search-icon" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-astro-cid-fdy5zvyj><circle cx="11" cy="11" r="8" data-astro-cid-fdy5zvyj></circle><line x1="21" y1="21" x2="16.65" y2="16.65" data-astro-cid-fdy5zvyj></line></svg><input type="text" class="search-input" id="search-input" placeholder="モデル・プロバイダー・エージェント・ベンチマークを入力…" aria-label="モデル・プロバイダー・エージェント・ベンチマークを入力…" autocomplete="off" spellcheck="false" data-astro-cid-fdy5zvyj><button type="button" class="cmd-badge cmd-close-btn" id="search-close-btn" aria-label="検索を閉じる" data-astro-cid-fdy5zvyj><span class="cmd-badge-esc" data-astro-cid-fdy5zvyj>ESC</span><span class="cmd-badge-close" data-astro-cid-fdy5zvyj>✕</span></button></div><div class="aa-cmd-quick-links" data-astro-cid-fdy5zvyj><span class="quick-title" data-astro-cid-fdy5zvyj>クイックジャンプ:</span><a href="/ja/agents" class="quick-tag" data-astro-cid-fdy5zvyj><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="ui-icon" aria-hidden="true" data-astro-cid-72t3zrz5><rect x="3" y="11" width="18" height="10" rx="2"/><circle cx="12" cy="5" r="2"/><path d="M12 7v4M8 15h.01M16 15h.01M9 18h6"/></svg> AI エージェント</a><a href="/ja/leaderboard" class="quick-tag" data-astro-cid-fdy5zvyj><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="ui-icon" aria-hidden="true" data-astro-cid-72t3zrz5><path d="M6 9H4.5a2.5 2.5 0 0 1 0-5H6M18 9h1.5a2.5 2.5 0 0 0 0-5H18M4 22h16M10 14.66V17c0 .55-.45 1-1 1H7M14 14.66V17c0 .55.45 1 1 1h2M18 2H6v7a6 6 0 0 0 12 0V2z"/></svg> ランキング</a><a href="/ja/leaderboard/coding" class="quick-tag" data-astro-cid-fdy5zvyj><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="ui-icon" aria-hidden="true" data-astro-cid-72t3zrz5><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></svg> コーディング & SWE-Bench</a><a href="/ja/leaderboard/reasoning" class="quick-tag" data-astro-cid-fdy5zvyj><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="ui-icon" aria-hidden="true" data-astro-cid-72t3zrz5><path d="M9.5 2A2.5 2.5 0 0 1 12 4.5v15a2.5 2.5 0 0 1-4.96.44 2.5 2.5 0 0 1-2.96-3.08 3 3 0 0 1-.34-5.58 2.5 2.5 0 0 1 1.32-4.24 2.5 2.5 0 0 1 4.44-2.04zM14.5 2A2.5 2.5 0 0 0 12 4.5v15a2.5 2.5 0 0 0 4.96.44 2.5 2.5 0 0 0 2.96-3.08 3 3 0 0 0 .34-5.58 2.5 2.5 0 0 0-1.32-4.24 2.5 2.5 0 0 0-4.44-2.04z"/></svg> 深い推論と数学</a><a href="/ja/models" class="quick-tag" data-astro-cid-fdy5zvyj><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="ui-icon" aria-hidden="true" data-astro-cid-72t3zrz5><line x1="16.5" y1="9.4" x2="7.5" y2="4.21"/><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"/><polyline points="3.27 6.96 12 12.01 20.73 6.96"/><line x1="12" y1="22.08" x2="12" y2="12"/></svg> モデル一覧</a><a href="/ja/recommender" class="quick-tag" data-astro-cid-fdy5zvyj><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="ui-icon" aria-hidden="true" data-astro-cid-72t3zrz5><circle cx="12" cy="12" r="10"/><circle cx="12" cy="12" r="6"/><circle cx="12" cy="12" r="2"/></svg> 診断</a><a href="/ja/cost-per-task" class="quick-tag" data-astro-cid-fdy5zvyj><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="ui-icon" aria-hidden="true" data-astro-cid-72t3zrz5><line x1="12" y1="1" x2="12" y2="23"/><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg> タスクあたりコスト</a></div><div class="search-results" id="search-results" data-astro-cid-fdy5zvyj></div></div></div><div id="aa-compare-dock" class="aa-compare-dock" aria-live="polite" inert data-compare-base="/ja/compare" data-tpl-add="{name} を比較に追加しました。" data-tpl-remove="{name} を比較から外しました。" data-tpl-limit="同時に比較できるのは最大4モデルです。" data-tpl-clear="比較をクリアしました。" data-count-label="モデル" data-astro-cid-zoo3qkdf><div class="dock-inner" data-astro-cid-zoo3qkdf><div class="dock-info" data-astro-cid-zoo3qkdf><div class="dock-badge" data-astro-cid-zoo3qkdf><span class="pulse-dot" data-astro-cid-zoo3qkdf></span><span id="dock-count" data-astro-cid-zoo3qkdf>0</span> / 4 <span class="dock-count-word" data-astro-cid-zoo3qkdf></span></div><div id="dock-chips" class="dock-chips" data-astro-cid-zoo3qkdf></div></div><div class="dock-actions" data-astro-cid-zoo3qkdf><button id="dock-clear-btn" class="dock-btn-clear" data-astro-cid-zoo3qkdf>クリア</button><a id="dock-launch-btn" href="/ja/compare" class="dock-btn-launch" data-astro-cid-zoo3qkdf>比較する →</a></div></div><div id="dock-toast" class="dock-toast" role="status" data-astro-cid-zoo3qkdf></div></div><script> (function () { var STORAGE_KEY = 'llmpodium_compare_models'; function loadSavedModels() { try { var raw = localStorage.getItem(STORAGE_KEY); return raw ? JSON.parse(raw) : []; } catch (e) { return []; } } function persistModels(models) { try { localStorage.setItem(STORAGE_KEY, JSON.stringify(models)); } catch (e) {} } var selectedModels = loadSavedModels(); var toastTimer = null; var lastCount = null; function tpl(name, key) { var dock = document.getElementById('aa-compare-dock'); var raw = dock ? dock.getAttribute(key) : ''; return raw ? raw.replace('{name}', name) : ''; } function showToast(msg) { var toast = document.getElementById('dock-toast'); if (!toast || !msg) return; toast.textContent = msg; toast.classList.add('visible'); clearTimeout(toastTimer); toastTimer = setTimeout(function () { toast.classList.remove('visible'); }, 2600); } function updateDock() { var dock = document.getElementById('aa-compare-dock'); var countEl = document.getElementById('dock-count'); var chipsEl = document.getElementById('dock-chips'); var launchBtn = document.getElementById('dock-launch-btn'); if (!dock || !countEl || !chipsEl || !launchBtn) return; countEl.textContent = String(selectedModels.length); var headerCountEl = document.getElementById('nav-compare-count'); if (headerCountEl) { headerCountEl.textContent = String(selectedModels.length); headerCountEl.setAttribute('data-count', String(selectedModels.length)); /* subtle bump animation whenever the selection grows */ if (lastCount !== null && selectedModels.length > lastCount) { headerCountEl.classList.remove('bump'); void headerCountEl.offsetWidth; /* restart the animation */ headerCountEl.classList.add('bump'); } } lastCount = selectedModels.length; var countWord = dock.querySelector('.dock-count-word'); if (countWord) countWord.textContent = dock.getAttribute('data-count-label') || 'Models Selected'; if (selectedModels.length > 0) { dock.classList.add('visible'); dock.removeAttribute('inert'); } else { dock.classList.remove('visible'); dock.setAttribute('inert', ''); } chipsEl.innerHTML = selectedModels .map(function (m) { return '<div class="dock-chip" data-slug="' + m.slug + '">' + '<span>' + m.name + '</span>' + '<button type="button" class="dock-chip-remove" data-remove="' + m.slug + '" aria-label="Remove ' + m.name.replace(/"/g, '"') + ' from comparison">×</button>' + '</div>'; }) .join(''); var baseHref = dock.dataset.compareBase || '/compare'; launchBtn.setAttribute('href', baseHref + '?models=' + selectedModels.map(function (m) { return m.slug; }).join(',')); /* Update checkboxes state in table/cards */ document.querySelectorAll('[data-compare-slug]').forEach(function (btn) { var slug = btn.getAttribute('data-compare-slug'); var isSel = selectedModels.some(function (m) { return m.slug === slug; }); btn.classList.toggle('selected', isSel); }); /* Bind remove handlers */ chipsEl.querySelectorAll('.dock-chip-remove').forEach(function (btn) { btn.addEventListener('click', function (e) { e.stopPropagation(); var slug = btn.getAttribute('data-remove'); selectedModels = selectedModels.filter(function (m) { return m.slug !== slug; }); persistModels(selectedModels); updateDock(); }); }); } /* the inline script re-executes after every client-side navigation — bind the delegated click handler exactly once to avoid duplicated toasts */ if (!window.__compareDockBound) { window.__compareDockBound = true; document.addEventListener('click', function (e) { var btn = e.target.closest('[data-compare-slug]'); if (!btn) return; e.preventDefault(); var slug = btn.getAttribute('data-compare-slug'); var name = btn.getAttribute('data-compare-name') || slug; var exists = selectedModels.some(function (m) { return m.slug === slug; }); if (exists) { selectedModels = selectedModels.filter(function (m) { return m.slug !== slug; }); showToast(tpl(name, 'data-tpl-remove')); } else { if (selectedModels.length >= 4) { showToast(tpl('', 'data-tpl-limit')); return; } selectedModels.push({ slug: slug, name: name }); showToast(tpl(name, 'data-tpl-add')); } persistModels(selectedModels); updateDock(); }); } document.addEventListener('astro:page-load', function () { selectedModels = loadSavedModels(); lastCount = null; var clearBtn = document.getElementById('dock-clear-btn'); if (clearBtn && !clearBtn.dataset.bound) { clearBtn.dataset.bound = '1'; clearBtn.addEventListener('click', function () { selectedModels = []; persistModels(selectedModels); updateDock(); showToast(tpl('', 'data-tpl-clear')); }); } updateDock(); }); })(); </script><div id="consent-banner" class="consent-banner" role="region" aria-label="プライバシーを尊重します" hidden data-astro-cid-u6s5b3h2><div class="consent-inner" data-astro-cid-u6s5b3h2><div class="consent-copy" data-astro-cid-u6s5b3h2><strong data-astro-cid-u6s5b3h2>プライバシーを尊重します</strong><p data-astro-cid-u6s5b3h2>ランキングの利用状況を理解するために分析 Cookie を使用します。許可・拒否どちらでもサイトは完全に動作します。</p></div><div class="consent-actions" data-astro-cid-u6s5b3h2><button type="button" class="consent-btn primary" id="consent-accept" data-astro-cid-u6s5b3h2>すべて許可</button><button type="button" class="consent-btn ghost" id="consent-decline" data-astro-cid-u6s5b3h2>拒否</button><a class="consent-more" href="/privacy" data-astro-cid-u6s5b3h2>プライバシー</a></div></div></div><script> (function () { var CONSENT_KEY = 'llmpodium-consent'; function readConsent() { try { return localStorage.getItem(CONSENT_KEY); } catch (e) { return null; } } function showBanner() { var banner = document.getElementById('consent-banner'); if (banner) banner.hidden = false; } function hideBanner() { var banner = document.getElementById('consent-banner'); if (banner) banner.hidden = true; } function choose(value) { try { localStorage.setItem(CONSENT_KEY, value); } catch (e) {} window.llmpodiumConsent = value; hideBanner(); if (value === 'granted' && typeof window.llmpodiumLoadAnalytics === 'function') { window.llmpodiumLoadAnalytics(); } } /* inline scripts re-run after every client-side navigation — guard against stacking duplicate document-level listeners */ if (!window.__llmpodiumConsentBound) { window.__llmpodiumConsentBound = true; document.addEventListener('click', function (e) { var t = e.target.closest('#consent-accept, #consent-decline, #cookie-settings-btn'); if (!t) return; if (t.id === 'consent-accept') choose('granted'); else if (t.id === 'consent-decline') choose('denied'); else showBanner(); }); document.addEventListener('astro:page-load', function () { if (!readConsent()) showBanner(); }); if (!readConsent()) showBanner(); } /* expose for footer "Cookie settings" re-open */ window.llmpodiumOpenConsent = showBanner; })(); </script><div id="route-announcer" class="sr-only" role="status" aria-live="polite" aria-atomic="true"></div><script type="module" src="/_astro/Base.astro_astro_type_script_index_0_lang.CCY_hx3h.js"></script></body></html>