概要
ウェブ検索は AI エージェントがリアルタイム情報を取得するための重要な機能です。OpenClaw の web 組み込みツールは強力な検索機能を提供し、複数の検索エンジンバックエンドをサポートし、ブラウザツールと連携して詳細な情報抽出を実現できます。本記事では、OpenClaw のウェブ検索スキルを設定・最適化する方法を詳しく紹介します。
Web ツールアーキテクチャ
OpenClaw の web ツールは、七段階ツールパイプラインの「OpenClaw 組み込みツール」段階で注入されるコアツールの一つです。Pi SDK 埋め込み層内で直接動作し、HTTP リクエストの実行、検索 API の呼び出し、ウェブページコンテンツの取得が可能です。
ブラウザツール(browser)とは異なり、web ツールは実際のブラウザインスタンスを必要とせず、HTTP クライアントを通じて直接リクエストを発行します。これにより、より軽量で高速になり、大量の並行検索操作に適しています。
検索エンジン設定
Google Search API
tools:
web:
search:
provider: google
apiKey: ${GOOGLE_API_KEY}
searchEngineId: ${GOOGLE_CX}
defaultResultCount: 10
safeSearch: moderate
language: zh-CN
region: CN
Bing Search API
tools:
web:
search:
provider: bing
apiKey: ${BING_API_KEY}
defaultResultCount: 10
market: zh-CN
safeSearch: moderate
SearXNG(セルフホスト)
プライバシーを重視する場合や検索動作を完全に制御したい場合、OpenClaw はセルフホストの SearXNG インスタンスへの接続をサポートしています。
tools:
web:
search:
provider: searxng
endpoint: "http://localhost:8888/search"
format: json
engines:
- google
- bing
- duckduckgo
defaultResultCount: 10
検索結果の処理
結果のフォーマット
検索結果はフォーマット処理された後に AI エージェントに提示されます。各結果にはタイトル、URL、概要、ソース情報が含まれます。AI エージェントはこれらの情報に基づいて、どの結果を詳しく読む価値があるかを判断します。
コンテンツ抽出
AI エージェントがある検索結果を詳しく読むことを決定すると、web ツールがターゲットページを取得して本文コンテンツを抽出します。抽出プロセスには以下が含まれます。
- HTML 解析:ページの DOM 構造を解析
- 本文識別:アルゴリズムを使用してページのメインコンテンツ領域を識別し、ナビゲーション、広告、サイドバーなどの無関係なコンテンツをフィルタリング
- フォーマット変換:HTML をクリーンなプレーンテキストまたは Markdown 形式に変換
- 長さ制御:過長なコンテンツを切り詰め、最も関連性の高い部分を保持
tools:
web:
extraction:
method: readability
maxContentLength: 5000
includeImages: false
includeLinks: true
outputFormat: markdown
キャッシュ戦略
重複リクエストの削減とレスポンス速度の向上のために、web ツールには多層キャッシュが組み込まれています。
tools:
web:
cache:
searchResults:
enabled: true
ttl: 3600
maxEntries: 1000
pageContent:
enabled: true
ttl: 7200
maxSize: 100MB
検索結果キャッシュの TTL は通常短め(1 時間)に設定します。検索結果は頻繁に更新される可能性があるためです。ページコンテンツキャッシュはより長い TTL を設定できます。ページ内容の変化は比較的遅いためです。
検索品質の最適化
クエリ書き換え
AI エージェントは検索を呼び出す前に、ユーザーの自然言語の質問を自動的にクエリ書き換えし、キーワードを抽出してより効果的な検索クエリに組み合わせます。
tools:
web:
queryRewriting:
enabled: true
addDateFilter: auto
expandAcronyms: true
addDateFilter を auto に設定すると、AI エージェントは質問の時効性要件に基づいて自動的に日付フィルターを追加します。例えば、「最新のテクノロジーニュース」は自動的に検索範囲を最近のコンテンツに限定します。
複数ラウンド検索
複雑な質問の場合、一度の検索では十分でないことがあります。OpenClaw は AI エージェントが複数ラウンドの検索を実行することをサポートします——まず広範な検索で大まかな方向を把握し、初期結果に基づいてクエリを絞り込んで深い検索を行います。
tools:
web:
multiRound:
enabled: true
maxRounds: 3
maxTotalResults: 30
ソースの多様性
情報ソースの偏りを避けるため、ソースの多様性要件を設定できます。
tools:
web:
diversity:
minDomains: 3
maxResultsPerDomain: 3
ブラウザツールとの連携
web ツールと browser ツールは相互補完的な関係にあります。
- web ツール:高速検索と軽量なコンテンツ抽出に適し、JavaScript レンダリングが不要
- browser ツール:インタラクティブ操作や JavaScript レンダリングが必要なページに適する
AI エージェントはページの特性に基づいて適切なツールを自動的に選択します。web ツールで抽出したコンテンツが不完全な場合(例:シングルページアプリケーション)、エージェントはブラウザツールに切り替えて完全なレンダリングと抽出を行います。
チャンネル適応
検索結果は異なるチャンネルで異なる表示方法を取ります。
- Discord:埋め込みメッセージで検索結果カードを表示、タイトル・概要・リンクを含む
- Telegram:HTML フォーマットを使用、リンクは直接プレビュー可能
- Slack:Block Kit を使用して構造化された検索結果を表示
- WhatsApp:プレーンテキスト形式、クリック可能なリンク付き
セキュリティとコンプライアンス
ドメインフィルタリング
tools:
web:
security:
blockedDomains:
- "*.malware.com"
- "phishing-site.example"
allowedDomains: [] # 空はブロックされていないすべてのドメインを許可
コンテンツフィルタリング
検索結果と抽出されたコンテンツはコンテンツ安全チェックを受け、不適切なコンテンツがフィルタリングされます。
レート制限
tools:
web:
rateLimit:
searchesPerMinute: 30
pagesPerMinute: 60
perUser:
searchesPerMinute: 5
監視と分析
OpenClaw は検索ツールの使用統計を記録します。検索回数、平均レスポンス時間、キャッシュヒット率、よく使われる検索ワードなどのデータが含まれます。これらのデータにより、検索ツールの使用パターンを把握し、継続的に設定を最適化できます。
まとめ
ウェブ検索スキルは、OpenClaw AI エージェントがインターネットの世界とつながるための窓口です。検索エンジンの適切な設定、クエリ戦略の最適化、キャッシュとセキュリティルールの設定により、AI エージェントが効率的かつ安全にリアルタイム情報を取得し、ユーザーに正確でタイムリーな回答を提供できるようになります。