闲社服务运行正常AI智能体自动化平台
u

更新免费模型

技能标识:updating-openrouter-free-models

Use when needing to fetch, test, and update OpenRouter free model lists in Claude Code or OpenClaw configurations

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 1.0.0
检测标记
后台标记通过
免费
免费获取
0
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

更新免费模型

更新 OpenRouter 免费模型

概述

一个系统化、测试驱动的流程,用于更新 OpenRouter 免费模型,确保只有经过验证可用的模型才会被添加到配置文件中。结合了自动获取、批量测试和多配置同步。

何时使用

适用场景:

  • - 向配置中添加新的 OpenRouter 免费模型
  • 在 Claude Code 和 OpenClaw 之间同步模型列表
  • 在添加前需要验证模型可用性
  • 管理模型回退和可用性白名单

不适用于:

  • - 单个模型添加(手动编辑更快)
  • 付费模型配置(测试标准不同)
  • 其他提供商类型(Anthropic、OpenAI 直连)

核心工作流程

mermaid
graph LR
A[从 OpenRouter API 获取模型] --> B[批量测试每个模型];
B --> C{通过测试?};
C -->|是| D[添加到已验证列表];
C -->|否| E[跳过 + 记录原因];
D --> F[更新配置];
F --> G[验证 JSON 语法];
G --> H[自测更新后的配置];
H --> I[重启 OpenClaw 服务];

快速参考

步骤命令目的
1python3 fetchmodels.py获取所有免费模型
2
python3 testmodels.py | 批量测试可用性 | | 3 | node applyupdatesopenclaw.js | 更新 OpenClaw 配置 | | 4 | ./restart_openclaw.sh | 重启服务 | | 5 | 验证 JSON | 防止语法错误 |

实现

步骤 1:从 OpenRouter API 获取免费模型

bash

使用提供的获取脚本,该脚本实现了全面的免费模型检测


python3 fetch_models.py

免费模型检测: 脚本通过以下方式识别免费模型:

  • - ID 包含 :free 后缀,或
  • 所有定价字段(prompt、completion、request)等于 0 或 0

这可以捕获像 openrouter/hunter-alpha 这样定价为零但缺少 :free 标签的模型。

步骤 2:批量测试可用性

bash

通过 API 测试每个获取的模型


python3 test_models.py

脚本将:

  • - 从 /tmp/freemodels.txt 读取模型
  • 使用简短的 API 调用测试每个模型
  • 将验证通过的模型保存到 /tmp/verifiedmodels.txt
  • 将失败的模型及其错误原因保存到 /tmp/failed_models.txt

注意: 脚本支持多种令牌来源:

  • - ANTHROPICAUTHTOKEN(Claude Code 兼容)
  • OPENROUTERAPIKEY(OpenRouter 直连)
  • OpenClaw 配置(~/.openclaw/openclaw.json → models.providers.openrouter.apiKey)

步骤 3:更新 Claude Code 设置

bash

为 availableModels 生成 JSON 数组


cat > /tmp/availableModels.json << EOF
$(python3 -c
models = open(/tmp/verified_models.txt).read().strip().split(\n)
print( \availableModels\: [)
for i, m in enumerate(models):
comma = , if i < len(models)-1 else
print(f \{m}\{comma})
print( ],)
)

然后手动或通过程序插入到 ~/.claude/settings.json 中。

步骤 4:更新 OpenClaw 配置

python
import json
from pathlib import Path

读取现有配置

with open(Path.home() / .openclaw / openclaw.json, r) as f: config = json.load(f)

更新提供商模型

verified = open(/tmp/verified_models.txt).read().strip().split(\n) provider_models = [] fallbacks = []

for i, model_id in enumerate(verified):
provider_models.append({
id: model_id,
name: model_id.split(/)[-1],
api: openai-completions
})
if i > 0: # 从回退列表中跳过主要模型(stepfun)
fallbacks.append(fopenrouter/{model_id})

config[models][providers][openrouter][models] = provider_models
config[agents][defaults][model][fallbacks] = fallbacks

添加到 agents.defaults.models

for model_id in verified: key = fopenrouter/{model_id} if key not in config[agents][defaults][models]: config[agents][defaults][models][key] = {}

保存

with open(Path.home() / .openclaw / openclaw.json, w) as f: json.dump(config, f, indent=2)

print(f已更新 OpenClaw 配置,包含 {len(verified)} 个模型)

步骤 5:验证和自测

bash

验证 JSON 语法


python3 -m json.tool ~/.claude/settings.json > /dev/null && echo ✓ Claude 设置有效
python3 -m json.tool ~/.openclaw/openclaw.json > /dev/null && echo ✓ OpenClaw 配置有效

自测:验证 models 字段存在且为数组

python3 -c import json with open(~/.claude/settings.json) as f: cfg = json.load(f) assert availableModels in cfg assert isinstance(cfg[availableModels], list) print(f✅ Claude:{len(cfg[\availableModels\])} 个模型可用)

常见陷阱

陷阱症状修复
缺少速率限制API 错误/超时在测试之间添加 time.sleep(0.5)
未过滤重复项
同一模型出现两次 | 对结果使用 set() | | 忘记回退数组 | 只有主要模型工作 | 同时更新 models 和 fallbacks | | 编辑后 JSON 无效 | 配置无法加载 | 运行 python3 -m json.tool 验证 | | 跳过自测 | 部署了损坏的配置 | 始终运行验证命令 |

实际示例

之前: 手动从网站复制模型 → 错误、过时模型、缺少配置

之后: 自动获取 + 测试 → 仅验证通过的模型、同步配置、可重复流程

反模式

❌ 不测试就添加所有模型

python

错误:直接获取列表并全部添加

models = fetch_all()

问题:某些模型可能受速率限制、已弃用或地区限制

❌ 只更新一个配置

python

错误:只更新 Claude 设置,忘记 OpenClaw

updateclaudesettings(verified_models)

问题:OpenClaw 仍使用旧列表 → 行为不一致

❌ 不自测

python

错误:写入文件并假设正确

with open(settings.json, w) as f: json.dump(config, f)

问题:语法错误会破坏整个应用程序

测试清单

  • - [ ] 获取产生非空模型列表
  • [ ] 所有验证通过的模型在批量测试中通过 API 测试
  • [ ] Claude 设置 JSON 有效
  • [ ] OpenClaw JSON 有效
  • [ ] availableModels 存在且为数组
  • [ ] OpenClaw models.providers.openrouter.models 已更新
  • [ ] OpenClaw agents.defaults.model.fallbacks 包含除主要模型外的所有模型
  • [ ] OpenClaw agents.defaults.models 包含所有模型的条目
  • [ ] 使用新列表中的至少一个模型进行实际 API 调用有效

维护

何时重新运行此技能:

  • - 每月一次(OpenRouter 定期添加/移除免费模型)
  • API 错误指示特定模型不可用后
  • 添加新的配置目标(例如,使用 OpenRouter 的新工具)

如果 API 更改需要更新什么:

  • - 模型过滤逻辑(免费检测标准可能变化 - 请查看 fetchmodels.py 中的 isfree_model())
  • 测试请求格式(API 端点可能版本化)
  • 速率限制(调整休眠时长)

OpenClaw 特定说明

OpenClaw 脚本

此技能包含工作区中的 OpenClaw 特定脚本:

脚本目的
testmodels.py批量测试模型(与 Claude Code 版本相同)
applyupdates_openclaw.js
用于 OpenClaw 配置更新的

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 updating-openrouter-free-models-1776067803 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 updating-openrouter-free-models-1776067803 技能

通过命令行安装

skillhub install updating-openrouter-free-models-1776067803

下载

⬇ 下载 updating-openrouter-free-models v1.0.0(免费)

文件大小: 22.67 KB | 发布时间: 2026-4-15 14:48

v1.0.0 最新 2026-4-15 14:48
Initial release introducing automated, test-driven updating and syncing for OpenRouter free model lists across Claude Code and OpenClaw.

- Automates fetching, testing, and verification of OpenRouter free models before config updates.
- Synchronizes model allowlists and fallback arrays between Claude Code and OpenClaw.
- Adds self-test and validation steps to prevent config errors.
- Includes OpenClaw-specific update scripts and restart helper.
- Documents common pitfalls, real-world usage, and a checklist for safe updates.
返回顶部