mcpField
O
openrouter-models

openrouter-models

github.com/openrouterteamAgent 工作流309878 次安装1 天前更新
代码仓库

关于 openrouter-models

面向使用 OpenRouter 的 Agent 开发者,提供模型发现、搜索、解析和比较脚本,并可查询各提供方的延迟、可用率与吞吐量。它将模糊模型名称解析为精确 ID,便于后续查询和比较。

主要功能

  1. 01列出、筛选和搜索模型
  2. 02解析模糊名称为模型 ID
  3. 03按价格、上下文和吞吐量比较
  4. 04查询提供方性能与状态
  5. 05查看模型模态和支持参数

适用场景

  1. 01按类别或价格寻找模型
  2. 02确认自然语言提及对应的模型 ID
  3. 03比较多个模型的价格和上下文长度
  4. 04检查模型提供方的延迟与可用率

安装

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

$npx skills add https://github.com/openrouterteam/skills --skill openrouter-models

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
scripts/
compare-models.ts
get-endpoints.ts
lib.ts
list-models.ts
package-lock.json
package.json
resolve-model.ts
search-models.ts

详细介绍

OpenRouter 模型

发现、搜索并比较 OpenRouter 上提供的 300 多种 AI 模型。查询实时数据,包括定价、上下文长度、各提供商的延迟和正常运行时间、吞吐量、支持的模态和参数。

前提条件

对于大多数脚本,OPENROUTER_API_KEY 环境变量是可选的。只有 get-endpoints.ts(提供商性能数据)需要此变量。请在 https://openrouter.ai/keys 获取密钥。

首次设置

cd <skill-path>/scripts && npm install

决策树

根据用户的需求选择合适的脚本:

用户想要……脚本示例
查看所有可用模型list-models.ts“OpenRouter 有哪些模型?”
查找最近新增的模型list-models.ts --sort newest“最新的模型有哪些?”
查找最便宜的模型list-models.ts --sort price“最便宜的模型是什么?”
查找吞吐量最高的模型list-models.ts --sort throughput“哪些模型的输出能力最强?”
查找某个类别中的模型list-models.ts --category X“最好的编程模型有哪些?”
按名称搜索search-models.ts "query"“他们有 Claude 吗?”
解析非正式的模型名称resolve-model.ts "query"“使用 nano banana 2.0 模型”
查找支持图像的模型search-models.ts --modality image“哪些模型接受图像?”
比较指定模型compare-models.ts A B“比较 Claude 和 GPT-4o”
按吞吐量比较compare-models.ts A B --sort throughput“Claude 和 GPT-4o 哪个吞吐量更高?”
查看提供商性能get-endpoints.ts "model-id"“哪个提供商运行 Claude 最快?”
查找速度最快的提供商get-endpoints.ts "model-id" --sort throughput“Claude Sonnet 哪个提供商最快?”
查找延迟最低的提供商get-endpoints.ts "model-id" --sort latency“GPT-4o 哪个提供商的延迟最低?”
查看模型是否可用get-endpoints.ts "model-id"“Claude Sonnet 4 现在可以使用吗?”

解析模型

使用模糊匹配,将非正式或模糊的模型名称解析为准确的 OpenRouter 模型 ID:

cd <skill-path>/scripts && npx tsx resolve-model.ts "claude sonnet"
cd <skill-path>/scripts && npx tsx resolve-model.ts "gpt 4o mini"
cd <skill-path>/scripts && npx tsx resolve-model.ts "llama 3.1"

结果包含 confidence 置信度级别和 score 分数:

置信度分数操作
high(≥0.85)直接使用该模型——匹配结果明确无误
medium(≥0.55)继续操作前先与用户确认
low(≥0.30)提供匹配结果,并请用户澄清

**两步工作流:**先使用 resolve-model.ts 解析非正式名称,再将解析出的 id 传入其他脚本(如 compare-models.ts、get-endpoints.ts 等)。

列出模型

cd <skill-path>/scripts && npx tsx list-models.ts
按类别筛选

服务端类别筛选:

cd <skill-path>/scripts && npx tsx list-models.ts --category programming

类别:programming、roleplay、marketing、marketing/seo、technology、science、translation、legal、finance、health、trivia、academia

排序结果
cd <skill-path>/scripts && npx tsx list-models.ts --sort newest      # Recently added first
cd <skill-path>/scripts && npx tsx list-models.ts --sort price       # Cheapest first
cd <skill-path>/scripts && npx tsx list-models.ts --sort context     # Largest context first
cd <skill-path>/scripts && npx tsx list-models.ts --sort throughput  # Most output tokens first

如果模型的 expiration_date 即将到期,会触发 stderr 警告。

搜索模型

cd <skill-path>/scripts && npx tsx search-models.ts "claude"
cd <skill-path>/scripts && npx tsx search-models.ts --modality image
cd <skill-path>/scripts && npx tsx search-models.ts "gpt" --modality text

模态:text、image、audio、file

比较模型

并排比较两个或多个模型,价格以每百万 token 为单位。使用精确 ID 匹配——openai/gpt-4o 只会匹配该模型,不会匹配 gpt-4o-mini 等变体。

cd <skill-path>/scripts && npx tsx compare-models.ts "anthropic/claude-sonnet-4" "openai/gpt-4o"
cd <skill-path>/scripts && npx tsx compare-models.ts "anthropic/claude-sonnet-4" "openai/gpt-4o" "google/gemini-2.5-pro" --sort price

排序选项:price(价格从低到高)、context(上下文长度从大到小)、speed/throughput(输出 token 数从多到少)

提供商性能(端点)

获取任意模型各提供商的延迟、正常运行时间和吞吐量:

cd <skill-path>/scripts && npx tsx get-endpoints.ts "anthropic/claude-sonnet-4"
cd <skill-path>/scripts && npx tsx get-endpoints.ts "anthropic/claude-sonnet-4" --sort throughput
cd <skill-path>/scripts && npx tsx get-endpoints.ts "openai/gpt-4o" --sort latency

排序选项:throughput(每秒令牌数最快优先)、latency(p50 毫秒数最低优先)、uptime(可靠性最高优先)、price(价格最低优先)

每个提供商会返回:

  • 延迟(p50/p75/p90/p99,单位为毫秒)——从中位数到最坏情况的响应时间
  • 吞吐量(p50/p75/p90/p99,单位为令牌/秒)——生成速度
  • 正常运行时间——过去 30 分钟内的百分比
  • 状态——operational 或 degraded
  • 提供商专属定价——部分提供商提供折扣
  • 支持的参数——因提供商而异(部分提供商不支持所有功能)

API 响应结构

GET /api/v1/models 返回 { data: Model[] }。字段完整说明请参阅模型参考。

查询参数(均为可选):

参数示例效果
category?category=programming服务端类别筛选
supported_parameters?supported_parameters=tools仅返回支持此参数的模型

处理响应的提示:

  • 要检查模型是否支持某项功能,请使用 model.supported_parameters(例如 .includes("tools")),或使用 ?supported_parameters=tools 在服务端筛选。
  • 要检查模态,请使用 model.architecture.input_modalities / model.architecture.output_modalities。
  • 定价值是以字符串表示的每令牌美元价格——乘以 1,000,000 即可换算为每百万令牌价格。
  • knowledge_cutoff 和 expiration_date 是日期字符串或 null。
  • links.details 指向该模型的各提供商端点 API。GET /api/v1/models/{author}/{slug}/endpoints 返回 { data: { id, name, endpoints: Endpoint[] } }。
  • 端点 status:0 = 正常运行,非零 = 性能下降。
  • 端点 latency_last_30m / throughput_last_30m:包含 p50、p75、p90、p99 的百分位对象。

脚本输出格式

以下脚本会重新整理原始 API 数据。直接调用 API 时(例如通过 fetch),请参阅 OpenAPI 规范了解字段名称。

list-models.ts / search-models.ts

原始 API 字段的子集——脚本会运行 formatModel(),移除 canonical_slug、hugging_face_id、default_parameters、knowledge_cutoff 和 links。如果需要这些字段,请直接调用 API。

compare-models.ts
{
  "id": "anthropic/claude-sonnet-4",
  "name": "Anthropic: Claude Sonnet 4",
  "context_length": 1000000,
  "max_completion_tokens": 64000,
  "per_request_limits": null,
  "pricing_per_million_tokens": {
    "prompt": "$3.00",
    "completion": "$15.00",
    "cached_input": "$0.30"
  },
  "modalities": { "input": ["text", "image"], "output": ["text"] },
  "supported_parameters": ["max_tokens", "temperature", "..."],
  "is_moderated": false
}
get-endpoints.ts
{
  "model_id": "anthropic/claude-sonnet-4",
  "model_name": "Anthropic: Claude Sonnet 4",
  "total_providers": 5,
  "endpoints": [
    {
      "provider": "Anthropic",
      "tag": "anthropic",
      "status": "operational",
      "uptime_30m": "100.00%",
      "latency_30m_ms": { "p50": 800, "p75": 1200, "p90": 2000, "p99": 5000 },
      "throughput_30m_tokens_per_sec": { "p50": 45, "p75": 55, "p90": 65, "p99": 90 },
      "context_length": 1000000,
      "max_completion_tokens": 64000,
      "pricing_per_million_tokens": { "prompt": "$3.00", "completion": "$15.00", "cached_input": "$0.30" },
      "supports_implicit_caching": true,
      "supported_parameters": ["max_tokens", "temperature", "tools", "..."]
    }
  ]
}

关键字段

字段含义
pricing.prompt / pricing.completion每令牌的美元费用。乘以 1,000,000 即可换算为每百万令牌价格
context_length最大总令牌数(输入 + 输出)
top_provider.max_completion_tokens最佳提供商可生成的最大输出令牌数
top_provider.is_moderated是否会进行内容审核
per_request_limits每个请求的令牌数限制(非 null 时)
supported_parameters模型接受的 API 参数(例如 tools、structured_outputs、reasoning、web_search_options)
createdUnix 时间戳——可用于按时间由近到远排序
expiration_date非 null 表示该模型即将弃用
latency_30m_ms.p50过去 30 分钟的中位响应延迟
throughput_30m_tokens_per_sec.p50过去 30 分钟的中位生成速度
uptime_30m过去 30 分钟内提供商的可用率

呈现结果

  • 当用户使用非正式名称提及模型时,先使用 resolve-model.ts,然后将解析出的 id 传递给其他脚本
  • 将价格换算为每百万 Token 的格式,以便于阅读
  • 进行比较时,使用以模型为列的 Markdown 表格
  • 对于提供商端点,标出速度最快(p50 延迟最低)和最可靠(正常运行时间最高)的提供商
  • 指出值得注意的受支持参数:tools、structured_outputs、reasoning、web_search_options
  • 有缓存定价时请注明——这可以将输入成本降低 90% 以上
  • 将带有 expiration_date 的模型标记为已弃用
  • 当一个模型有多个价格不同的提供商时,注明最便宜的选项

评论

支持 Markdown