web-search について
web-searchは、curlでローカルのSearXNGを検索し、結果を解析するスキルです。エンジン、言語、期間による絞り込みに対応し、スニペットの利用やページ取得の指針も示します。
主な機能
- 01curlによるローカルSearXNG検索
- 02エンジンと言語による絞り込み
- 03期間による検索結果の絞り込み
- 04Pythonによる結果スニペットの解析
- 05セットアップとトラブルシューティングの案内
活用シーン
- 01期間指定で最近のニュースを検索
- 02エンジンを選んでコードを検索
- 03中国語の検索結果を調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ hachiman566/ miao-skills --skill web-searchインストール後、Claude Code で/web-searchを入力して読み込まれたか確認します。
同梱ファイルscripts/setup.sh
詳細
SearXNG 検索スキル
前提条件:
bash skills/searxng/scripts/setup.shを実行すると、SearXNG が自動的にインストールされ、起動します(Docker ベースで冪等性があり、安全に再実行できます)。
検索
curl を使ってローカルの SearXNG インスタンスにクエリを送信します(推奨 — WebFetch は localhost をブロックします)。
curl -s "http://localhost:8888/search?q=YOUR+QUERY&format=json"
よく使うバリエーション:
# Target specific engines (reduces noise)
curl -s "http://localhost:8888/search?q=react+hooks&engines=google,bing&format=json"
# Filter by recency
curl -s "http://localhost:8888/search?q=openai+news&time_range=week&format=json"
# Chinese content
curl -s "http://localhost:8888/search?q=人工智能&engines=baidu,bing&lang=zh&format=json"
# Dev/code questions
curl -s "http://localhost:8888/search?q=rust+async+error&engines=stackoverflow,github&format=json"
python で検索結果を解析する(推奨):
curl -s "http://localhost:8888/search?q=YOUR+QUERY&format=json" | \
python3 -c "import sys,json; data=json.load(sys.stdin); [print(f'- {r[\"title\"]}\n {r[\"url\"]}\n {r[\"content\"][:150]}') for r in data.get('results',[])[:5]]"
パラメーター
| パラメーター | 説明 | 値 |
|---|---|---|
q | 検索クエリ | URL エンコードされた文字列 |
engines | 特定の検索エンジン | google,bing,duckduckgo,stackoverflow,github,baidu,... |
lang | 言語 | zh、en、all |
pageno | ページ番号 | 1、2、... |
time_range | 新しさのフィルター | day、week、month、year |
safesearch | セーフサーチ | 0、1、2 |
ベストプラクティス
ページを取得する前にスニペットを読みます。 各検索結果には関連する抜粋が content フィールドに含まれており、そこに答えが直接記載されていることもよくあります。ページ全体を取得するとトークンを大幅に消費するため、スニペットだけでは不十分な場合に限って取得してください。
上位 3~5 件に絞ります。 最初の数件でほぼ十分です。検索結果を増やしても、回答の質はほとんど向上せず、トークンが増えるだけです。
タスクに合った検索エンジンを指定します。 関連する検索エンジンに絞ると、ノイズが減り、結果をすばやく取得できます。
- コード/開発:
engines=stackoverflow,github - 中国語コンテンツ:
engines=baidu,bing&lang=zh - 最近の出来事:
&time_range=weekを追加
SearXNG が起動していない場合
まずセットアップスクリプトを実行してから、再試行してください。
bash skills/web-search/scripts/setup.sh
WebFetch に関する注意
SearXNG には WebFetch を使用しないでください。SSRF 対策により、すべてのローカル/プライベートアドレス(localhost、127.0.0.1、192.168.x.x、[::1]、カスタム hosts エントリ)がブロックされます。必ず Bash 経由で curl を使用してください。
注意事項
- 最初のリクエストは遅くなる場合があります(検索エンジンのウォームアップ)。
- リモートまたは本番環境で使用する場合は、SearXNG インスタンスに認証を追加してください。