mcpField
L
llm-context

llm-context

github.com/braveAgent 工作流1921.3k 次安装11 周前更新
代码仓库

关于 llm-context

llm-context 是 Brave Search API 的网页内容提取接口,面向 Agent、RAG 流程及需要实时资料的 LLM 应用。它返回按相关性整理的网页片段、表格和代码等内容,便于直接用于回答依据。

主要功能

  1. 01搜索并提取相关网页内容
  2. 02返回文本片段及结构化内容
  3. 03配置上下文长度与相关性阈值
  4. 04用 Goggles 筛选或重排来源
  5. 05支持本地位置相关检索

适用场景

  1. 01为 RAG 流程获取实时网页依据
  2. 02为 Agent 提供可用于推理的搜索内容
  3. 03核查事实并收集来源材料

安装

复制下面的命令,在终端中运行。

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

安装后在 Claude Code 中输入/llm-context确认已加载。

详细介绍

LLM Context

需要 API 密钥:前往 https://api.search.brave.com 获取

套餐:包含在 Search 套餐中。请参阅 https://api-dashboard.search.brave.com/app/subscriptions/subscribe

Brave LLM Context API 提供经过预提取和相关性排序的网页内容,专为基于实时搜索结果为大模型响应提供依据而优化。与返回链接和摘要的传统网页搜索 API 不同,LLM Context 会提取网页的实际内容——文本块、表格、代码块和结构化数据,让你的大模型或 AI Agent 可以直接对其进行推理。

LLM Context 与 AI Grounding 的对比

功能LLM Context(本服务)AI Grounding(answers)
输出为你的大模型提供原始提取内容提供带引用的端到端 AI 答案
接口REST API(GET/POST)兼容 OpenAI 的 /chat/completions
搜索次数每个请求进行一次搜索多次搜索(迭代研究)
速度快(<1s)较慢
套餐SearchAnswers
端点/res/v1/llm/context/res/v1/chat/completions
最适合AI Agent、RAG 管道、工具调用聊天界面、研究模式

端点

GET  https://api.search.brave.com/res/v1/llm/context
POST https://api.search.brave.com/res/v1/llm/context

身份验证:X-Subscription-Token: <API_KEY> 标头

可选标头:

  • Accept-Encoding: gzip — 启用 gzip 压缩

快速入门

GET 请求
curl -s "https://api.search.brave.com/res/v1/llm/context?q=tallest+mountains+in+the+world" \
  -H "Accept: application/json" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}"
POST 请求(JSON 正文)
curl -s --compressed -X POST "https://api.search.brave.com/res/v1/llm/context" \
  -H "Accept: application/json" \
  -H "Accept-Encoding: gzip" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"q": "tallest mountains in the world"}'
使用 Goggles(内联)
curl -s "https://api.search.brave.com/res/v1/llm/context" \
  -H "Accept: application/json" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -G \
  --data-urlencode "q=rust programming" \
  --data-urlencode 'goggles=$discard
$site=docs.rs
$site=rust-lang.org'

参数

查询参数
参数类型必填默认值描述
qstring是-搜索查询(1-400 个字符,最多 50 个单词)
countrystring否US搜索国家/地区(2 个字母的国家/地区代码或 ALL)
search_langstring否en语言偏好(至少 2 个字符的语言代码)
countint否20要考虑的最大搜索结果数(1-50)
spellcheckbool否true搜索前是否检查查询中的拼写
freshnessstring否""按网页时效筛选搜索结果。网页时效根据内容报告的最相关日期确定,例如发布日期或最后修改日期。支持的值:pd(24 小时内)、pw(7 天内)、pm(31 天内)、py(365 天内),或自定义日期范围 YYYY-MM-DDtoYYYY-MM-DD(例如 2022-04-01to2022-07-30)。
上下文大小参数
参数类型必填默认值描述
maximum_number_of_urlsint否20响应中的最大 URL 数(1-50)
maximum_number_of_tokensint否8192上下文中的近似最大令牌数(1024-32768)
maximum_number_of_snippetsint否50所有 URL 中的最大片段数(1-256)
maximum_number_of_tokens_per_urlint否4096每个 URL 的最大令牌数(512-8192)
maximum_number_of_snippets_per_urlint否50每个 URL 的最大片段数(1-100)
筛选与本地参数
参数类型必填默认值描述
context_threshold_modestring否null纳入内容的相关性阈值(strict/balanced/lenient/disabled)
safesearchstring否null成人内容筛选(off/moderate/strict);未设置表示不进行筛选,但本地召回仍保持 strict
enable_localbool否null本地召回控制(true/false/null,见下文)
gogglesstring/list否null用于自定义重新排序的 Goggle URL 或内联定义
enable_source_metadatabool否false为每个 sources[url] 条目添加 site_name、favicon、thumbnail 和 description

上下文大小指南

任务类型数量max_tokens示例
简单事实查询52048"Python 是哪一年创建的?"
标准查询208192"React hooks 的最佳实践"
复杂研究5016384"比较适用于生产环境的 AI 框架"

更大的上下文窗口能提供更多信息,但会增加延迟和推理成本。请从默认值开始,再进行调整。

阈值模式

模式行为
null(未设置)默认 — 在当前 API 版本中解析为 lenient
strict更高的阈值 — 结果更少,但相关性更高
balanced在覆盖范围与相关性之间取得良好平衡
lenient更低的阈值 — 结果更多,但可能包含相关性较低的内容
disabled不进行阈值筛选 — 返回所有提取的内容

本地召回

enable_local 参数用于控制基于位置的召回:

值行为
null(未设置)自动检测 — 提供任何位置标头时启用本地召回
true强制本地 — 即使没有位置标头,也始终使用本地召回
false强制标准 — 即使有位置标头,也始终使用标准网页排名

对于大多数用例,请省略 enable_local,让 API 根据位置标头自动检测。

位置标头

标头类型描述
X-Loc-Latfloat纬度(-90.0 至 90.0)
X-Loc-Longfloat经度(-180.0 至 180.0)
X-Loc-Citystring城市名称
X-Loc-Statestring州/地区代码(ISO 3166-2)
X-Loc-State-Namestring州/地区名称
X-Loc-Countrystring2 位国家/地区代码
X-Loc-Postal-Codestring邮政编码

优先级:X-Loc-Lat + X-Loc-Long 优先级最高。提供这两个标头时,基于文本的标头(City、State、Country、Postal-Code)不会用于解析位置。仅当没有坐标时,才提供基于文本的标头。

示例:使用坐标
curl -s "https://api.search.brave.com/res/v1/llm/context" \
  -H "Accept: application/json" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -H "X-Loc-Lat: 37.7749" \
  -H "X-Loc-Long: -122.4194" \
  -G \
  --data-urlencode "q=best coffee shops near me"
示例:使用地点名称
curl -s "https://api.search.brave.com/res/v1/llm/context" \
  -H "Accept: application/json" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -H "X-Loc-City: San Francisco" \
  -H "X-Loc-State: CA" \
  -H "X-Loc-Country: US" \
  -G \
  --data-urlencode "q=best coffee shops near me"

Goggles(自定义排名)— Brave 独有

Goggles 让你可以控制哪些来源为大模型提供依据 — 这对 RAG 质量至关重要。

用例Goggle 规则
仅限官方文档$discard\n$site=docs.python.org
排除用户内容$discard,site=reddit.com\n$discard,site=stackoverflow.com
学术来源$discard\n$site=arxiv.org\n$site=scholar.google.com
无付费墙$discard,site=medium.com
方法示例
托管--data-urlencode "goggles=https://raw.githubusercontent.com/brave/goggles-quickstart/main/goggles/1k_short.goggle"
内联--data-urlencode 'goggles=$discard\n$site=example.com'

托管 Goggles 必须位于 GitHub/GitLab,包含 ! name:、! description:、! author: 标头,并在 https://search.brave.com/goggles/create 注册。内联规则无需注册。

语法:规则以 $ 开头,后接逗号分隔的选项。操作(任选其一):discard、boost[=N]、downrank[=N] — N 为 1–10 的整数。站点筛选器:site=DOMAIN。示例:$site=example.com,boost=3。使用 \n(%0A)分隔规则。

允许列表:$discard\n$site=docs.python.org\n$site=developer.mozilla.org — 屏蔽列表:$discard,site=pinterest.com\n$discard,site=quora.com

资源:发现 · 语法 · 快速入门

响应格式

标准响应
{
  "grounding": {
    "generic": [
      {
        "url": "https://example.com/page",
        "title": "Page Title",
        "snippets": [
          "Relevant text chunk extracted from the page...",
          "Another relevant passage from the same page..."
        ]
      }
    ],
    "map": []
  },
  "sources": {
    "https://example.com/page": {
      "title": "Page Title",
      "hostname": "example.com",
      "age": ["Wednesday, January 15, 2025", "2025-01-15", "392 days ago", "2025-01-15T13:45:02Z"]
    }
  }
}
本地响应(使用 enable_local)
{
  "grounding": {
    "generic": [...],
    "poi": {
      "name": "Business Name",
      "url": "https://business.com",
      "title": "Title of business.com website",
      "snippets": ["Business details and information..."]
    },
    "map": [
      {
        "name": "Place Name",
        "url": "https://place.com",
        "title": "Title of place.com website",
        "snippets": ["Place information and details..."]
      }
    ]
  },
  "sources": {
    "https://business.com": {
      "title": "Business Name",
      "hostname": "business.com",
      "age": []
    }
  }
}
响应字段
字段类型描述
groundingobject按类型归类所有依据内容的容器
grounding.genericarray包含提取内容的 URL 对象数组(主要依据数据)
grounding.generic[].urlstring来源 URL
grounding.generic[].titlestring页面标题
grounding.generic[].snippetsarray与查询相关的智能提取片段
grounding.poiobject/null兴趣点数据(仅限本地检索)
grounding.poi.namestring/null兴趣点名称
grounding.poi.urlstring/nullPOI 来源 URL
grounding.poi.titlestring/nullPOI 页面标题
grounding.poi.snippetsarray/nullPOI 文本片段
grounding.maparray地图/地点结果(仅限本地检索)
grounding.map[].namestring/null地点名称
grounding.map[].urlstring/null地点来源 URL
grounding.map[].titlestring/null地点页面标题
grounding.map[].snippetsarray/null地点文本片段
sourcesobject所有引用 URL 的元数据,以 URL 为键
sources[url].titlestring页面标题
sources[url].hostnamestring来源主机名
sources[url].agearray页面日期,按四个固定位置排列:完整日期、YYYY-MM-DD、相对时间、ISO 8601 时间戳。页面日期未知时为空
sources[url].descriptionstring页面自身的描述,与查询无关。需要 enable_source_metadata
sources[url].site_namestring网站名称。需要 enable_source_metadata
sources[url].faviconstring网站图标 URL。需要 enable_source_metadata
sources[url].thumbnailobject/null页面缩略图(src、original)。需要 enable_source_metadata
sources[url].snippetstring?页面最佳片段

注意:片段可能包含纯文本,也可能包含 JSON 序列化的结构化数据(表格、架构、代码块)。大模型能够很好地处理这种混合格式。

使用场景

  • AI Agent:为你的 Agent 提供一个网页搜索工具,通过一次调用即可返回可直接使用的内容
  • RAG 管道:以新鲜、相关的网页内容为大模型响应提供依据
  • AI 助手与聊天机器人:提供有真实来源支持的事实性回答
  • 问答:为特定查询检索聚焦的上下文
  • 事实核查:根据当前网页内容核实说法
  • 内容研究:通过一次 API 调用收集任意主题的来源资料

最佳实践

  • 令牌预算:从默认值开始(maximum_number_of_tokens=8192、count=20)。简单查询时调低,复杂研究时调高。
  • 来源质量:使用 Goggles 限定可信来源。精确率高于召回率时,将 context_threshold_mode=strict 设为 strict。
  • 性能:使用满足需求的最小 count 和 maximum_number_of_tokens。对于本地查询,请提供位置标头。

评论

支持 Markdown