mcpField
A
answers

answers

github.com/brave生産性1921.2k 回インストール11 週間前に更新
リポジトリ

answers について

answers は、ウェブ情報に基づく回答を生成する Brave Search API スキルです。単一検索による回答と、引用付きの反復調査に対応します。

主な機能

  1. 01単一検索による AI 回答
  2. 02引用付きストリーミング応答
  3. 03反復的な複数検索による調査
  4. 04OpenAI SDK 互換エンドポイント

活用シーン

  1. 01チャット画面へのウェブ情報付き回答の追加
  2. 02複数検索による複雑なテーマの調査
  3. 03生成回答へのインライン引用の付与

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/brave/brave-search-skills --skill answers

インストール後、Claude Code で/answersを入力して読み込まれたか確認します。

詳細

Answers — AI グラウンディング

API キーが必要です:https://api.search.brave.com で取得してください。

プラン:Answers プランに含まれています。https://api-dashboard.search.brave.com/app/subscriptions/subscribe をご覧ください。

使用する場面

ユースケーススキル理由
手早く事実を確認する回答(生のコンテキスト)llm-context1 回の検索で、ユーザーの LLM 向けに生のコンテキストを返します
引用付きの高速な AI 回答answers(単一検索)ストリーミング、引用
複数回検索による徹底的な詳細調査answers(リサーチモード)反復的な詳細調査、引用付きの回答を統合

このエンドポイント(/res/v1/chat/completions)は、次の 2 つのモードに対応しています。

  • 単一検索(デフォルト):1 回の検索に基づく、AI でグラウンディングされた高速な回答です。enable_citations に対応しています。
  • リサーチ(enable_research=true):進捗イベントと引用付きの回答の統合を伴う、複数回の反復的な詳細調査です。

クイックスタート(cURL)

ブロッキング(単一検索)
curl -X POST "https://api.search.brave.com/res/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -d '{
    "messages": [{"role": "user", "content": "How does the James Webb Space Telescope work?"}],
    "stream": false
  }'
引用付きストリーミング(単一検索)
curl -X POST "https://api.search.brave.com/res/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -d '{
    "messages": [{"role": "user", "content": "What are recent breakthroughs in fusion energy?"}],
    "stream": true,
    "enable_citations": true
  }'
リサーチモード
curl -X POST "https://api.search.brave.com/res/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -d '{
    "messages": [{"role": "user", "content": "Compare quantum computing approaches"}],
    "stream": true,
    "enable_research": true,
    "research_maximum_number_of_iterations": 3,
    "research_maximum_number_of_seconds": 120
  }'

エンドポイント

POST https://api.search.brave.com/res/v1/chat/completions

認証:X-Subscription-Token: <API_KEY> ヘッダー(または Authorization: Bearer <API_KEY>)

SDK 互換:base_url="https://api.search.brave.com/res/v1" を使用すると、OpenAI SDK で動作します。

2 つのモード

機能単一検索(デフォルト)リサーチ(enable_research=true)
速度高速低速
検索回数1 回複数回(反復)
ストリーミング任意(stream=true/false)必須(stream=true)
引用enable_citations=true(ストリーミング時のみ)組み込み(<answer> タグ内)
進捗イベントなしあり(<progress> タグ)
ブロッキング応答あり(stream=false)なし

パラメーター

標準パラメーター
パラメーター型必須デフォルト説明
messagesarrayはい-ユーザーメッセージ 1 件(メッセージは正確に 1 件)
streamboolいいえtrueSSE ストリーミングを有効にします
countrystringいいえ"US"検索対象の国(2 文字の国コードまたは ALL)
languagestringいいえ"en"応答の言語
safesearchstringいいえ"moderate"検索の安全レベル(off、moderate、strict)
max_completion_tokensintいいえnull生成トークン数の上限
enable_citationsboolいいえfalseインライン引用タグを含めます(単一検索のストリーミング時のみ)
web_search_optionsobjectいいえnullOpenAI 互換。search_context_size:low、medium、high
リサーチパラメーター
パラメーター型必須デフォルト説明
enable_researchboolいいえfalseリサーチモードを有効にします
research_allow_thinkingboolいいえtrue拡張思考を有効にします
research_maximum_number_of_tokens_per_queryintいいえ8192クエリごとの最大トークン数(1024-16384)
research_maximum_number_of_queriesintいいえ20検索クエリの合計上限(1-50)
research_maximum_number_of_iterationsintいいえ4リサーチの反復回数の上限(1-5)
research_maximum_number_of_secondsintいいえ180時間制限(秒)(1-300)
research_maximum_number_of_results_per_queryintいいえ60検索クエリごとの結果数(1-60)
制約(重要)
制約エラー
enable_research=true には stream=true が必要です"Blocking response doesn't support 'enable_research' option"
enable_research=true と enable_citations=true は併用できません"Research mode doesn't support 'enable_citations' option"
enable_citations=true には stream=true が必要です"Blocking response doesn't support 'enable_citations' option"

OpenAI SDK の使用方法

ブロッキング(単一検索)
from openai import OpenAI

client = OpenAI(
    base_url="https://api.search.brave.com/res/v1",
    api_key="your-brave-api-key",
)

response = client.chat.completions.create(
    model="brave",
    messages=[{"role": "user", "content": "How does the James Webb Space Telescope work?"}],
    stream=False,
)
print(response.choices[0].message.content)
引用付きストリーミング(単一検索)
from openai import OpenAI

client = OpenAI(
    base_url="https://api.search.brave.com/res/v1",
    api_key="your-brave-api-key",
)

stream = client.chat.completions.create(
    model="brave",
    messages=[{"role": "user", "content": "What are the current trends in renewable energy?"}],
    stream=True,
    extra_body={"enable_citations": True}
)

for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")
リサーチモード
from openai import AsyncOpenAI

client = AsyncOpenAI(
    base_url="https://api.search.brave.com/res/v1",
    api_key="your-brave-api-key",
)

stream = await client.chat.completions.create(
    model="brave",
    messages=[{"role": "user", "content": "Compare quantum computing approaches"}],
    stream=True,
    extra_body={
        "enable_research": True,
        "research_maximum_number_of_iterations": 3,
        "research_maximum_number_of_seconds": 120
    }
)

async for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

応答形式

ブロッキング応答(stream=false、単一検索のみ)

標準的な OpenAI 互換 JSON:

{
  "id": "chatcmpl-...",
  "object": "chat.completion",
  "choices": [{"message": {"role": "assistant", "content": "The James Webb Space Telescope works by..."}, "index": 0, "finish_reason": "stop"}],
  "usage": {"prompt_tokens": 10, "completion_tokens": 50, "total_tokens": 60}
}
ストリーミング応答

OpenAI 互換チャンクを含む SSE 応答:

data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[{"delta":{"content":"Based on"},"index":0}]}

data: {"id":"chatcmpl-...","object":"chat.completion.chunk","choices":[{"delta":{"content":" recent research"},"index":0}]}

data: [DONE]
モード別ストリーミングタグ
単一検索(enable_citations=true の場合)
タグ目的
<citation>インラインの引用参照
<usage>JSON 形式のコスト/課金データ
リサーチモード
タグ目的保持する?
<queries>生成された検索クエリデバッグ
<analyzing>URL の件数(詳細)デバッグ
<thinking>URL 選択の理由デバッグ
<progress>統計情報:時間、反復回数、クエリ数、分析した URL 数、トークン数監視
<blindspots>特定された知識の不足はい
<answer>統合された最終回答(最終回答のみ出力され、中間の下書きは破棄されます)はい
<usage>JSON 形式のコスト/課金データ(ストリーミングレスポンスの末尾に含まれます)はい
Usage タグの形式

<usage> タグには、コストとトークンのデータが JSON 文字列化されて含まれます。

<usage>{"X-Request-Requests":1,"X-Request-Queries":8,"X-Request-Tokens-In":15000,"X-Request-Tokens-Out":2000,"X-Request-Requests-Cost":0.005,"X-Request-Queries-Cost":0.032,"X-Request-Tokens-In-Cost":0.075,"X-Request-Tokens-Out-Cost":0.01,"X-Request-Total-Cost":0.122}</usage>

ユースケース

  • チャットインターフェースとの統合:ウェブ情報に基づく回答を提供する、OpenAI SDK のドロップイン置換です。base_url="https://api.search.brave.com/res/v1" を設定します。
  • 詳細なリサーチ/トピックの包括的な調査:複数の情報源を統合する必要がある複雑な質問(例:「核融合へのアプローチを比較する」)には、リサーチモード(enable_research=true)を使用します。
  • OpenAI SDK のドロップイン置換:同じ SDK、同じストリーミング形式です。base_url と api_key を変更するだけで、同期クライアントと非同期クライアントの両方で動作します。
  • 引用付きの回答:単一検索モードで enable_citations=true を有効にするとインライン引用タグが付きます。または、回答に引用が自動的に含まれるリサーチモードを使用します。

注意事項

  • タイムアウト:単一検索ではクライアントのタイムアウトを 30 秒以上、リサーチでは 300 秒(5 分)に設定します。
  • 単一メッセージ:messages 配列には、ユーザーメッセージを 1 つだけ含める必要があります。
  • コストの監視:ストリーミングレスポンスから <usage> タグを解析して、コストを追跡します。

コメント