搭建 model-radar:筛选出真正能发起工具调用的免费大语言模型(LLM)
model-radar 是我为 AI 智能体(agent)准备的两个小命令。第一个就是 model-radar 本尊:它列出 OpenRouter 上的免费模型,并逐个实际要求新模型发起一次工具调用。很多免费模型嘴上说支持工具调用,真到用的时候却只回一段文字。第二个命令 model-canary 盯着智能体所用的付费模型和账户余额,两者中任何一者见底,就切换到更便宜的模型或本地模型。这两个工具都不向模型「征求意见」,而是直接测量、直接处理。搭建大约花十分钟,这份指南每周都会在一台全新的 Ubuntu 机器上跑一遍。
安装 Python 3.11 或更新版本,无需用 pip 安装任何东西。
git clone https://github.com/casareanderson/model-radar.git && cd model-radar cp config.example.toml config.toml
./bin/model-radar --help
先确认它能安全地失败
在填入密钥之前,先不提供任何凭据,把两个命令都跑一遍:
./bin/model-radar --dry-run # 两个数据源都显示 "no credential, skipped",基线为空
./bin/model-canary --dry-run # 显示 "no OPENROUTER_API_KEY -- nothing to check",退出码 1
那个退出码 1 很关键。如果 canary 什么也检查不了,定时任务应该能发现这件事,而不是视而不见。
正式运行
export OPENROUTER_API_KEY = sk-or-...
运行 ./bin/model-radar --dry-run,每个模型输出一行:PASS、FAIL 或 BUSY。BUSY 表示被限流或超时,这不算最终判定,下次运行会重试。10 月 8 日那次,探测了 8 个模型,4 个通过,2 个返回 403,2 个处于 BUSY。我之前试过的一个免费模型,每个请求都答得上来,却一次也没真正调用工具。去掉 --dry-run 跑一次,存下基线。之后它只探测还没见过的模型。
canary:把它指向你的 agent 实际在用的配置(JSON 文件或 hermes-agent profiles),在 config.toml 里配好付费回退阶梯和一个本地模型,再用 cron 每隔几小时跑一次。连续两次硬失败,它就会沿着阶梯往下切。超时和 429 不计入。
CI 证明不了的:任何需要 key 的东西。每周运行不带 key,所以只能证明安装、配置、help 命令,以及无 key 时的行为。探测和 canary 的故障转移得用你自己的 OpenRouter 账号。
完整指南:github.com/casareanderson/model-radar/blob/main/docs/SETUP.md
你是怎么给 agent 挑模型的?又怎么发现某个模型悄悄不干活了?
🤖 本文借助 AI 起草,素材来自我自己的 homelab 笔记、日志和代码仓库,发布前经过审阅和编辑。
model-radar 是我为 AI agent 跑的两个小命令。model-radar 会列出 OpenRouter 上的免费模型,并真的让每个新模型发起一次工具调用。很多免费模型嘴上说支持工具调用,真到调用时却只回一段文字。model-canary 盯着 agent 用的付费模型和账户余额,哪个快用完了,就切到更便宜的模型或本地模型。这两个工具都不问模型自己的意见,只做测量,然后行动。配置大约十分钟,指南是在一台全新的 Ubuntu 上跑通的。