web-search について
LLM エージェント向けのウェブ検索スキルです。`duckduckgo-cli` で簡潔な DuckDuckGo の結果を取得し、期間、地域、サイト、件数を指定できます。
主な機能
- 01`ddg` による DuckDuckGo 検索
- 02テキストまたは JSON 出力
- 03期間と地域の指定
- 04サイトと件数の設定
- 05検索結果のページ送り
活用シーン
- 01最近のニュースや更新の確認
- 02事実に関する主張の検証
- 03ドキュメントや参考資料の検索
- 04複数のクエリによるトピック調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ysm-dev/ skills --skill web-searchインストール後、Claude Code で/web-searchを入力して読み込まれたか確認します。
詳細
Web Search
このスキルでは、DuckDuckGo の検索結果をプレーンテキストまたは JSON で返すコマンドライン検索ツール duckduckgo-cli を使用します。LLM エージェント向けに構築されており、プレーンテキスト出力は簡潔(結果ごとにタイトル、URL、スニペット)で、フラグを使って期間、地域、サイト、件数を指定できます。
どんなときに使うか
- 「最新」「今日」「現在」や、知識のカットオフ以降または同年の情報について質問されたとき
- 主張の裏付けを確認する必要があるとき
- ドキュメント、参考資料、外部の情報が必要なとき
- 検索、調査、情報の確認を依頼されたとき
- 事実に関する質問に答える際、知識が最新かどうか確信が持てないとき
会話が始まった後は、明示的な許可は必要ありません。そのまま検索してください。
コマンド
CLI は ddg(duckduckgo-cli の短縮エイリアス)として呼び出します。
ddg rust async tutorial # plain text, default 10 results
ddg -n 5 "best Rust web framework 2026"
ddg --json -n 5 "topic" # JSON envelope, for parsing
echo "tokio runtime overhead" | ddg # query via stdin
通常はプレーンテキストが最適です。簡潔で、URL やスニペットをそのまま引用できます。
知っておくと便利なフラグ
-n <N> — 結果の件数(1〜100、既定値は10)。簡単な検索には3〜5件、幅広い調査には10〜20件を使います。結果を増やすとトークンを消費しますが、検索結果の下位は役に立たないことがほとんどです。
-t <d|w|m|y> — 過去の日/週/月/年に絞り込みます。「最新」や「最近」の情報を探すときに重要です。指定しないと、古い情報が新しい情報より上位に表示され、古い情報を引用してしまうことがあります。
-w <DOMAIN> — サイトのフィルターを指定します。繰り返し指定できます。公式ドキュメント(-w docs.python.org)、信頼できる情報源、またはスパムを避ける場合に使います。
-r <CODE> — 地域を指定します(例:us-en、kr-ko、jp-jp、de-de)。クエリの言語に合わせてください。ddg --list-regions を実行すると、すべての地域を確認できます。
--json — コンパクトな JSON 形式で出力します。結果の件数を数えたり、スクリプトで URL を抽出したりするなど、プログラムで解析する場合にのみ使ってください。通常の閲覧や引用には、プレーンテキストの方が適しています。
--page <N> — 1ページ目に必要な情報がなかった場合に、ページを切り替えます。
使用例
すばやく事実を調べる
ddg -n 3 "current ceo of openai"
合意された見解を把握するには、3件の結果で十分です。
最新ニュース/最近の更新情報
ddg -n 5 -t w "anthropic claude release"
このフィルターを使うことで、検索順位の高い古い記事ではなく、役立つ情報が得られます。
ドキュメント
ddg -n 5 -w docs.python.org "asyncio gather exception"
特定の主張のファクトチェック
ddg -n 5 "the exact phrasing of the claim"
スニペットを注意深く読んでください。情報源によって見解が異なる場合は、どれか一つを選んで事実として提示せず、その違いをユーザーに伝えてください。
幅広い調査
一つの大きなクエリを実行するより、テーマを絞ったクエリを複数実行してください。異なる切り口で -n 10 のクエリを3回実行する方が、-n 30 を1回実行するより効果的です。
出力の読み方
各結果には、順位、タイトル、URL、短いスニペットが含まれます。通常、スニペットを見れば、WebFetch でページ全体を取得する必要があるか判断できます。ユーザーに引用を示す際は、内容を確認できるよう URL を含めてください。スニペットしか確認していない場合は、ページ全体を読んだかのように示さず、「検索結果のスニペットによると……」と伝えてください。
注意点
- レート制限:
--jsonモードでは、レスポンスにmeta.rate_limit.tokens_remainingが含まれます。値が0になったら、短時間にクエリを連続実行せず、間隔を空けてください。 - すぐに答えが表示されないのは正常です — ほとんどのクエリは番号付きの結果一覧を返します。
- 地域は言語に合わせてください — 韓国語のクエリに
-r us-enを指定すると、結果の精度が下がります。-r kr-koを使ってください。 - 出力を切り詰めるために
headへパイプしないでください — 代わりに-nを使ってください。そうしないと、スニペットの途中で結果が切れることがあります。 - バイナリがインストールされていない場合は、
npm i -g duckduckgo-cliまたはcargo install duckduckgo-cliでインストールしてください。