关于 9router-web-search
9router-web-search 是通过已配置的 9Router 网关执行网页和 X 搜索的技能,支持提供方专属选项、结果数量限制及可用时的游标分页。
主要功能
- 01通过已配置提供方搜索
- 02网页、新闻和 X 搜索类型
- 03提供方专属搜索选项
- 04Xquik 游标分页
适用场景
- 01通过 9Router 搜索网页结果
- 02按国家或域名筛选结果
- 03继续分页获取 Xquik 搜索结果
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ decolua/ 9router --skill 9router-web-search安装后在 Claude Code 中输入/9router-web-search确认已加载。
详细介绍
9Router — 网页搜索
需要设置 NINEROUTER_URL(如果启用了鉴权,还需设置 NINEROUTER_KEY)。设置方法参见 https://raw.githubusercontent.com/decolua/9router/refs/heads/master/skills/9router/SKILL.md。
发现
curl $NINEROUTER_URL/v1/models/web | jq '.data[] | select(.kind=="webSearch") | .id'
# Per-provider params (searchTypes, maxResults, required options like cx for google-pse)
curl "$NINEROUTER_URL/v1/models/info?id=tavily/search"
ID 以 /search 结尾(例如 tavily/search)。组合(owned_by:"combo")会串联多个服务商并自动回退。
端点
POST $NINEROUTER_URL/v1/search
| 字段 | 是否必填 | 说明 |
|---|---|---|
model(或 provider) | 是 | 来自 /v1/models/web(例如 tavily 或 brave) |
query | 是 | 搜索查询词 |
max_results | 否 | 默认为 5 |
search_type | 否 | web(默认)/ news / x(Xquik 专用) |
country、language、time_range、domain_filter | 否 | 取决于服务商 |
示例
curl -X POST $NINEROUTER_URL/v1/search \
-H "Authorization: Bearer $NINEROUTER_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"tavily","query":"9Router open source","max_results":5}'
JS:
const r = await fetch(`${process.env.NINEROUTER_URL}/v1/search`, {
method: "POST",
headers: { "Authorization": `Bearer ${process.env.NINEROUTER_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({ model: "search-combo", query: "latest LLM benchmarks", max_results: 10 }),
});
console.log(await r.json());
使用 Xquik 进行 X 搜索:
curl -X POST $NINEROUTER_URL/v1/search \
-H "Authorization: Bearer $NINEROUTER_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"xquik","query":"from:github release","max_results":10,"provider_options":{"queryType":"Latest"}}'
请在 9Router 的服务商设置中添加 Xquik API 密钥。Xquik 每返回一条帖子收取 1 积分。若要继续搜索,请将 pagination.next_cursor 作为 provider_options.cursor 传入。
Xquik 的响应包含服务商分页和积分用量信息:
{
"pagination": { "has_more": true, "next_cursor": "cursor-2" },
"usage": { "queries_used": 1, "search_cost_usd": null, "provider_credits_used": 10 }
}
响应结构
{
"provider": "tavily",
"query": "9Router open source",
"results": [
{
"title": "...", "url": "https://...", "display_url": "github.com/...",
"snippet": "...", "position": 1, "score": 0.92,
"published_at": null, "favicon_url": null, "content": null,
"metadata": { "author": null, "language": null, "source_type": null, "image_url": null },
"citation": { "provider": "tavily", "retrieved_at": "2026-...", "rank": 1 }
}
],
"answer": null,
"usage": { "queries_used": 1, "search_cost_usd": 0.008 },
"metrics": { "response_time_ms": 850, "upstream_latency_ms": 700, "total_results_available": 12 },
"errors": []
}
服务商差异
所有服务商都接受 query 和 max_results。其他可选字段因服务商而异:
| 服务商 | 支持的参数 | 必需的额外参数 |
|---|---|---|
tavily | country、domain_filter、新闻主题 | — |
exa | domain_filter(包含/排除)、新闻分类 | — |
brave-search | country、language | — |
serper | country、language、新闻端点 | — |
perplexity | country、language、domain_filter | — |
linkup | domain_filter、time_range | depth: fast/standard/deep(可选) |
google-pse | country、language、time_range、offset | 必须提供 cx(providerOptions) |
searchapi | country、language、分页 | — |
youcom | country、language、time_range、domain_filter、full_page | — |
searxng | language、time_range | 可自托管,noAuth |
xquik | X/Twitter 搜索运算符、language、游标分页 | queryType: Latest/Top、cursor(选项) |
Provider 即 model,即 "provider":"tavily" ≡ "model":"tavily"。
评论
支持 Markdown