Community研究與資料分析github.com

模型雷達 (Model Radar)

用於 OpenRouter 的 LLM 模型選擇工具,支援自然語言條件轉換為指令,並以 Markdown 表格呈現結果。

模型雷達 (Model Radar) 是什麼?

Model Radar 是一個專為 AI 代理設計的命令列工具,用於在 OpenRouter 平台上選擇最佳的 LLM 模型。它能將使用者的自然語言條件(如「預算 $10」、「需要工具使用」)解析為 `token:value` 格式的參數,並根據本地快取的模型資料與排名進行查詢。支援 `list`(篩選排序)、`recommend`(加權評分推薦)和 `compare`(並排比較)三種指令。輸出為結構化的 JSON,代理端會將其渲染成易讀的 Markdown 表格。該工具依賴 Node.js 18+,無需 API 金鑰,並內建自動更新機制,每 24 小時檢查 GitHub 上的最新版本。快取策略能降低網路請求次數,適合在唯讀或離線沙箱環境中安全使用。

相容平台✓Claude Code✓Codex CLI~Cursor
npx skills add primexiao/agent-skills

Installed? Explore more 研究與資料分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

模型雷達 (Model Radar) 是做什麼的?

OpenRouter 模型選擇命令列工具。將自然語言條件解析為 token:value 參數,查詢本地快取的模型元資料與排名,並輸出 JSON 供代理渲染為 Markdown 表格。

設定

  • 執行環境:Node.js 18+(無需安裝步驟,無 npm 依賴)
  • 無需 API 金鑰——使用 OpenRouter 公開端點
  • 所有指令請從本技能目錄(包含此檔案的目錄)執行
  • 首次執行會從網路取得資料填充快取;後續呼叫會使用本地快取(模型 TTL 6 小時,排名 TTL 24 小時)
  • 自動更新預設啟用。每次 CLI 執行時,最多每 24 小時檢查一次固定的 GitHub 來源,並自動更新已安裝的副本。設定 MODEL_RADAR_AUTO_UPDATE=0 可停用。

工作流程

  1. 使用技能前,先執行 node scripts/self-update.js auto。若 stderr 印出 MODEL_RADAR_UPDATED,請重新讀取此 SKILL.md 後再繼續。
  2. 根據下方的「意圖 → Token」對應表,將使用者的請求解析為 token:value 參數。
  3. 選擇指令:list(篩選+排序)、recommend(對某預設進行加權評分)、compare(並排比較)。
  4. 從技能目錄執行。scripts/main.js 也會自動執行相同的自我更新前置檢查,因此直接使用 CLI 時會保持最新狀態。
  5. 將 JSON 輸出渲染為 Markdown 表格(參見輸出)。
  6. 結尾加上 數據擷取時間為 {fetched_at};若超過 12 小時,建議執行 refresh。

指令

node scripts/main.js list      [tokens...]    # 篩選 + 排序
node scripts/main.js recommend [tokens...]    # 對某預設進行加權評分
node scripts/main.js compare   <id|name>...   # 並排比較
node scripts/main.js refresh                  # 強制重新整理兩個快取
node scripts/self-update.js status            # 檢視更新狀態
node scripts/self-update.js check             # 檢查 GitHub 上的更新
node scripts/self-update.js apply             # 套用最新的技能更新

自我更新

  • 來源由 package.json.repository 固定:primexiao/agent-skills,路徑 skills/model-radar。
  • 已安裝的副本會自動更新。來源檢出副本會跳過自動更新,除非設定 MODEL_RADAR_AUTO_UPDATE_SOURCE=1。
  • 技能目錄下的本地未提交變更會導致自動更新跳過。
  • 直接使用 scripts/main.js 時,若自我更新成功,會重新執行當前指令,確保結果由更新後的程式碼產生。
  • 更新過程使用暫存檢出、驗證必要檔案、備份當前技能、替換非執行時期檔案,並在失敗時回滾。
  • 成功更新會清除 cache/raw.json、cache/models.json 和 cache/rankings.json,避免新程式碼與舊資料快取混合。
  • 自我更新狀態與警告會輸出到 stderr。指令 JSON 保持在 stdout。

Token 語法

受 Tailwind 啟發的定位式 token:value 參數。順序無關。

Token意義值格式範例
sort排序維度預設詞彙(見下方)sort:cheap sort:popular
price混合 $/MTok..max / min.. / min..max / bare=maxprice:..10 price:5..20
ctx上下文長度同上,可加 k/m 後綴,bare=minctx:128k ctx:128k..1m
out最大輸出 Token 數同上,bare=minout:32k
cap能力(AND)逗號分隔cap:tool_use,reasoning
in輸入模態(AND)逗號分隔in:image in:audio,image
gen輸出模態(AND)逗號分隔gen:image gen:audio
open開源過濾true / falseopen:true
top結果數量限制數字(預設:list=20, recommend=3)top:5
preset評分預設(僅 recommend 使用)預設名稱preset:coding

sort 值: cheap expensive new(預設) ctx popular throughput latency

能力: tool_use reasoning structured_output vision long_output prompt_caching web_search audio_input video_input file_input image_generation audio_output

輸入模態: text image audio video file 輸出模態: text image audio

推薦預設: coding batch chat vision(權重與必要能力請參閱 config/presets.json)

意圖 → Token

使用者說法Token(s)
"預算 $X" / "低於 $X"price:..X
"至少 $X" / "高階方案"price:X..
"至少 Nk 上下文"ctx:Nk
"需要工具使用 / 視覺 / 推理能力"cap:tool_use / cap:vision / cap:reasoning
"結構化輸出" / "JSON 模式"cap:structured_output
"可以接受音訊 / 圖片輸入"in:audio / in:image
"可以產生圖片 / 音訊"gen:image / gen:audio
"僅限開源"open:true
"最便宜" / "最實惠"sort:cheap
"最受歡迎" / "熱門"sort:popular
"最新" / "最近推出"sort:new
"最快" / "最低延遲"sort:latency
"最高吞吐量"sort:throughput
"編寫程式碼的代理"recommend preset:coding
"批次 / 大量工作"recommend preset:batch
"視覺代理"recommend preset:vision

模型比對 (compare)

對 compare 的每個參數,比對優先順序如下:

  1. 完全符合 id — anthropic/claude-sonnet-4-5
  2. 後綴完全符合 — claude-sonnet-4 → anthropic/claude-sonnet-4(絕不會選到 -fast 變體)
  3. 部分子字串比對 id/name,取最新發布版本 — claude-sonnet → 最新的 Sonnet

輸出

請務必將 JSON 輸出渲染為 Markdown 表格——表格是主要的顯示格式。

list

| # | 模型 | $/MTok (提示/完成/混合) | 上下文 | 輸出 | 能力 | 人氣# |
  • $/MTok:提示 / 完成 / 混合價格
  • 能力:短標籤(tool reason vision …)
  • 人氣#:若排名快取為最新則顯示人氣排名,否則顯示 —

recommend

| 排名 | 模型 | 分數 | 成本↑ | 上下文↑ | 輸出↑ | 能力↑ | $/MTok | 能力標籤 |

每個模型加上一行簡短說明。分數及各維度分數範圍為 [0, 1]。

compare

垂直表格——每個模型一欄,每個維度一列:

| 維度              | 模型 A | 模型 B | 模型 C |
| ----------------- | ------ | ------ | ------ |
| 價格 (提示/完成/混合) |   …    |   …    |   …    |
| 上下文            |   …    |   …    |   …    |
| 最大輸出          |   …    |   …    |   …    |
| 輸入模態          |   …    |   …    |   …    |
| 輸出模態          |   …    |   …    |   …    |
| 能力              |   …    |   …    |   …    |
| 人氣排名          |   …    |   …    |   …    |
| 每週請求數        |   …    |   …    |   …    |

務必以 數據擷取時間為 {fetched_at} 結尾。若超過 12 小時,建議使用者執行 node scripts/main.js refresh。

快取

cache/
  raw.json       — 將 OpenRouter 前端卡片資料轉換為本地原始 schema(TTL 6 小時)
  models.json    — 增強版:正規化價格 + 能力標籤(TTL 6 小時)
  rankings.json  — 人氣 / 吞吐量 / 延遲 + 使用量分析(TTL 24 小時)
config/
  presets.json
  tier1-categories.json
  • 快取檔案位於 cache/ 目錄下,不會被提交——首次執行會連線網路
  • TTL 到期後,CLI 會以 10 秒超時重新擷取
  • 若擷取失敗,則回退到舊快取,並在 stderr 輸出 [warn]——因此唯讀 / 離線沙箱仍可回應(可能為舊資料)
  • 成功的技能自我更新會刪除模型資料快取檔案。下次執行模型指令時會重新填充。

沙箱注意事項

  • Codex CLI: 需要 -s workspace-write(CLI 會寫入 cache/)以及對 openrouter.ai 的網路出站權限。在 TTL 內則無需網路呼叫。
  • 全新檢出後的首次呼叫是唯一嚴格需要網路的時機。
  • 自我更新需要對技能目錄的檔案系統寫入權限以及對 GitHub 的網路存取權限。若不可用,則會發出警告或跳過,模型指令仍會以當前本地副本執行。

已知問題

  • OpenRouter 前端 API(/api/frontend/v1/models/find?active=true&fmt=cards)非官方;若失敗,CLI 會在可用時回退到舊快取,並輸出 [warn]。

資料來源

  • 模型: https://openrouter.ai/api/frontend/v1/models/find?active=true&fmt=cards
  • 排名: 相同端點,加上 order=top-weekly、order=throughput-high-to-low 和 order=latency-low-to-high

相關技能