# WebSearch

Web 検索ツール。SearXNG または Playwright + Google 検索の組み合わせで動作する。

## 基本

```js
WebSearch({ query: "ローカル LLM 比較 2026", limit: 10 })
```

返ってくるのは検索結果のリスト（タイトル・URL・スニペット）。本文は含まれない。
本文が必要なら検索結果の URL に対して WebFetch / BrowseWeb を呼ぶ。

## 使うべき場面

- **最新情報の確認**（モデルの内部知識は学習時点まで）
- **実在性の確認**（人名・製品名・URL の存在チェック）
- **複数情報源の比較**

## 基本原則

### 1. 内部知識に頼らない（厳守）

調査タスクで「思い出して書く」ことは禁止。**必ず WebSearch → WebFetch で一次情報を取得する**。
古い情報、捏造、ハルシネーションのリスクが高い。

### 2. 追加質問への再検証

ユーザーからフォローアップ質問がきたら、関連キーワードで再検索すること。前回の検索結果に依存しない。

### 3. 一次情報の優先

- ブログ記事や要約サイトより、公式ドキュメント・公式発表・論文を優先
- 二次情報を引用する場合は「これは二次情報」と明記
- 動画の内容を扱う場合は GetYouTubeTranscript で字幕を取得してから扱う

### 4. 取得失敗時の振る舞い

一次情報にアクセスできなかった場合:
- 「情報を入手できなかった」と明記する
- Web 検索の断片的なスニペットから推測・捏造してはならない
- 推測を含む場合は「推測」と明示する

## 検索クエリのフィルタリング

機密情報漏洩防止のため、以下が含まれるクエリは自動でブロック・サニタイズされる:
- プライベート IP（10.x.x.x, 172.16-31.x.x, 192.168.x.x, 127.x.x.x）
- 内部ドメイン（`.local`, `.internal`, `.lan`, `.intranet`, `.corp`, `.home`）
- メールアドレス、電話番号

これらを含むクエリは設定で許可されない限り検索エンジンに送られない。
