update-llm-model-list
litellmのレジストリを参照し、assets.pyに記載されたLLMモデルリストを監査・更新することで、新しいモデルの追加や古いモデルの削除、リストの正確性を検証し、常に最新の状態に保つようにするSkill。
📜 元の英語説明(参考)
Audit and update the supported LLM model list in assets.py against litellm's registry (models.litellm.ai). Use when adding new models, pruning outdated ones, or verifying the list is correct.
🇯🇵 日本人クリエイター向け解説
litellmのレジストリを参照し、assets.pyに記載されたLLMモデルリストを監査・更新することで、新しいモデルの追加や古いモデルの削除、リストの正確性を検証し、常に最新の状態に保つようにするSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o update-llm-model-list.zip https://jpskill.com/download/10078.zip && unzip -o update-llm-model-list.zip && rm update-llm-model-list.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/10078.zip -OutFile "$d\update-llm-model-list.zip"; Expand-Archive "$d\update-llm-model-list.zip" -DestinationPath $d -Force; ri "$d\update-llm-model-list.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
update-llm-model-list.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
update-llm-model-listフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
LLMモデルリストの更新
概要
標準のモデルリストは、sdk/agenta/sdk/assets.py → supported_llm_models に存在します。
これは、プレイグラウンドのモデルドロップダウン、コストメタデータ、および model_to_provider_mapping を駆動します。
信頼できる外部ソースは litellm.model_cost (2600以上のエントリ) であり、これは
https://models.litellm.ai/ を反映しています。
pytest ガードは以下に存在します。
sdk/oss/tests/pytest/unit/test_supported_llm_models.py
主要なルール
- すべてのモデルは
litellm.model_costに存在する必要があります (直接のキー、またはプロバイダーのプレフィックスを削除したもの)。anthropic/claude-*→ litellm はclaude-*として保存します (プレフィックスはルーティングのために意図的に付与され、コストルックアップのために削除されます)cohere/command-*→ litellm はcommand-*として保存します- 他のすべてのプロバイダーは、完全なプレフィックスを保持します (例:
gemini/、groq/、together_ai/)
- プロバイダーキー (
"anthropic"、"gemini"、…) は、api/oss/src/core/secrets/enums.py(StandardProviderKind) の Secrets API enum と一致する必要があります。 - プロバイダーリスト内に重複がないこと。
ステップ 1 — 現在のモデルのうち、どれが古くなっているか/間違っているかを確認する
これを uvx で実行します (ローカルインストールは不要です)。
cat > /tmp/check_agenta_models.py << 'SCRIPT'
# /// script
# requires-python = ">=3.11"
# dependencies = ["litellm"]
# ///
import litellm, sys
# paste supported_llm_models here or import it
from agenta.sdk.assets import supported_llm_models
mc = set(litellm.model_cost.keys())
def exists(m):
if m in mc: return True
if "/" in m and m.split("/", 1)[1] in mc: return True
return False
fails = []
for provider, models in supported_llm_models.items():
for model in models:
if not exists(model):
fails.append((provider, model))
total = sum(len(v) for v in supported_llm_models.values())
print(f"Total models checked: {total}")
if fails:
for p, m in fails:
print(f" MISSING [{p}] {m}")
sys.exit(1)
else:
print("All models valid ✓")
SCRIPT
uvx --with litellm python /tmp/check_agenta_models.py 2>/dev/null
あるいは、pytest ユニットテストを直接実行します (agenta のインストールが必要です)。
pytest sdk/oss/tests/pytest/unit/test_supported_llm_models.py -v
ステップ 2 — Agenta に欠落しているモデルを見つける (big-3 監査)
このスクリプトは、litellm 内で Agenta がまだリストしていないモデルを見つけ、ノイズ (オーディオ、ビデオ、埋め込み、codex、スナップショット) を削除するようにフィルタリングします。
cat > /tmp/find_missing.py << 'SCRIPT'
# /// script
# requires-python = ">=3.11"
# dependencies = ["litellm"]
# ///
import litellm, re
AGENTA_ANTHROPIC = set() # fill from assets.py (bare names, no prefix)
AGENTA_OPENAI = set() # fill from assets.py
AGENTA_GEMINI = set() # fill from assets.py (with gemini/ prefix)
mc = set(litellm.model_cost.keys())
NOISE = [
"audio","tts","speech","whisper","transcri","realtime","diarize",
"dall-e","image","video","veo","embed","moderat","search",
"babbage","davinci","ada","instruct","codex","computer-use",
"robotics","learnlm","gemma","live","v1:0",
]
KEEP = {"gpt-4o","gpt-4o-mini"}
DATED = re.compile(r"-\d{4}-\d{2}-\d{2}$")
EXP = re.compile(r"exp-\d{4}|\d{2}-\d{2}$")
def noise(m):
if m in KEEP: return False
return any(kw in m.lower() for kw in NOISE)
def dated(m):
return bool(DATED.search(m)) or bool(EXP.search(m))
def report(label, candidates, known, prefix=""):
print(f"\n=== {label} ===")
for m in sorted(candidates):
bare = m[len(prefix):] if prefix else m
if bare in known or m in known: continue
tag = "[dated/exp]" if dated(m) else "[alias]" if m.endswith("-latest") else "*** MISSING ***"
print(f" {m} {tag}")
# Anthropic
report("ANTHROPIC", [m for m in mc if m.startswith("claude-") and not noise(m)],
AGENTA_ANTHROPIC)
# OpenAI (no slash, starts with gpt- / o1 / o3 / o4)
OAI = [m for m in mc if any(m.startswith(p) for p in ("gpt-","o1","o3","o4","chatgpt"))
and "/" not in m and not noise(m)]
report("OPENAI", OAI, AGENTA_OPENAI)
# Gemini
report("GEMINI", [m for m in mc if m.startswith("gemini/") and not noise(m)],
AGENTA_GEMINI, prefix="gemini/")
SCRIPT
uvx --with litellm python /tmp/find_missing.py 2>/dev/null
実行する前に、現在の assets.py から *`AGENTA_` セットに入力**します。
ステップ 3 — assets.py を編集する
ファイル: sdk/agenta/sdk/assets.py
- 正しいプロバイダーリスト内にモデルを追加します (新しいものから順に)。
- Gemini 1.5 モデル (まだ広く使用されています) の場合は、
"gemini"の下に追加します。 - OpenAI o-series pro tiers (
o1-pro、o3-pro) の場合は、ベースモデルの後に追加します。 - Groq の場合は、常に
litellm.groq_modelsをクロスチェックしてください — Groq はモデルカタログを頻繁にローテーションします。 - DeepInfra / Together AI の場合は、現在の名前について
litellm.deepinfra_models/litellm.together_ai_modelsを確認してください。
プロバイダープレフィックスの規則
| プロバイダーキー | Agenta プレフィックス | litellm コストキープレフィックス |
|---|---|---|
anthropic |
anthropic/ |
claude- (プレフィックスなし) |
cohere |
cohere/ |
command- (プレフィックスなし) |
gemini |
gemini/ |
gemini/ |
groq |
groq/ |
groq/ |
mistral |
mistral/ |
mistral/ |
openai |
(なし) | (なし) |
openrouter |
openrouter/ |
openrouter/ |
perplexityai |
perplexity/ |
perplexity/ |
together_ai |
together_ai/ |
together_ai/ |
deepinfra |
deepinfra/ |
deepinfra/ |
ステップ 4 — ruff とテストを実行する
# フォーマット + リント
uvx --from ruff==0.14.0 ruff format sdk/agenta/sdk/assets.py
uvx --from ruff==0.14.0 ruff check --fix sdk/agenta/sdk/assets.py
# すべてのモデルを litellm に対して検証する (agenta のインストールは不要)
uvx --with litellm python /tmp/check_agenta_models.py 2>/dev/null
コミットする前に、すべてのチェックに合格する必要があります。
関連ファイル
| ファイル | 目的 |
|---|---|
sdk/agenta/sdk/assets.py |
標準モデルリスト + コストメタデータビルダー |
sdk/oss/tests/pytest/unit/test_supported_llm_models.py |
Pytest ガード (モデルごとにパラメータ化) |
api/oss/src/core/secrets/enums.py |
プロバイダーキー — 同期を維持する必要があります |
api/oss/src |
(原文がここで切り詰められています)
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Update LLM Model List
Overview
The canonical model list lives in sdk/agenta/sdk/assets.py → supported_llm_models.
It drives the model dropdown in the playground, cost metadata, and the model_to_provider_mapping.
The authoritative external source is litellm.model_cost (2 600+ entries), which mirrors
https://models.litellm.ai/.
A pytest guard lives at:
sdk/oss/tests/pytest/unit/test_supported_llm_models.py
Key rules
- Every model must exist in
litellm.model_cost(direct key, or with provider prefix stripped).anthropic/claude-*→ litellm stores asclaude-*(prefix is intentional for routing, stripped for cost lookup)cohere/command-*→ litellm stores ascommand-*- All other providers keep their full prefix (e.g.
gemini/,groq/,together_ai/)
- Provider key (
"anthropic","gemini", …) must match the Secrets API enum inapi/oss/src/core/secrets/enums.py(StandardProviderKind). - No duplicates within a provider list.
Step 1 — Check which current models are outdated / wrong
Run this with uvx (no local install needed):
cat > /tmp/check_agenta_models.py << 'SCRIPT'
# /// script
# requires-python = ">=3.11"
# dependencies = ["litellm"]
# ///
import litellm, sys
# paste supported_llm_models here or import it
from agenta.sdk.assets import supported_llm_models
mc = set(litellm.model_cost.keys())
def exists(m):
if m in mc: return True
if "/" in m and m.split("/", 1)[1] in mc: return True
return False
fails = []
for provider, models in supported_llm_models.items():
for model in models:
if not exists(model):
fails.append((provider, model))
total = sum(len(v) for v in supported_llm_models.values())
print(f"Total models checked: {total}")
if fails:
for p, m in fails:
print(f" MISSING [{p}] {m}")
sys.exit(1)
else:
print("All models valid ✓")
SCRIPT
uvx --with litellm python /tmp/check_agenta_models.py 2>/dev/null
Alternatively, run the pytest unit test directly (requires agenta installed):
pytest sdk/oss/tests/pytest/unit/test_supported_llm_models.py -v
Step 2 — Find models missing from Agenta (big-3 audit)
This script finds models in litellm that Agenta doesn't list yet, filtered to remove noise (audio, video, embeddings, codex, snapshots):
cat > /tmp/find_missing.py << 'SCRIPT'
# /// script
# requires-python = ">=3.11"
# dependencies = ["litellm"]
# ///
import litellm, re
AGENTA_ANTHROPIC = set() # fill from assets.py (bare names, no prefix)
AGENTA_OPENAI = set() # fill from assets.py
AGENTA_GEMINI = set() # fill from assets.py (with gemini/ prefix)
mc = set(litellm.model_cost.keys())
NOISE = [
"audio","tts","speech","whisper","transcri","realtime","diarize",
"dall-e","image","video","veo","embed","moderat","search",
"babbage","davinci","ada","instruct","codex","computer-use",
"robotics","learnlm","gemma","live","v1:0",
]
KEEP = {"gpt-4o","gpt-4o-mini"}
DATED = re.compile(r"-\d{4}-\d{2}-\d{2}$")
EXP = re.compile(r"exp-\d{4}|\d{2}-\d{2}$")
def noise(m):
if m in KEEP: return False
return any(kw in m.lower() for kw in NOISE)
def dated(m):
return bool(DATED.search(m)) or bool(EXP.search(m))
def report(label, candidates, known, prefix=""):
print(f"\n=== {label} ===")
for m in sorted(candidates):
bare = m[len(prefix):] if prefix else m
if bare in known or m in known: continue
tag = "[dated/exp]" if dated(m) else "[alias]" if m.endswith("-latest") else "*** MISSING ***"
print(f" {m} {tag}")
# Anthropic
report("ANTHROPIC", [m for m in mc if m.startswith("claude-") and not noise(m)],
AGENTA_ANTHROPIC)
# OpenAI (no slash, starts with gpt- / o1 / o3 / o4)
OAI = [m for m in mc if any(m.startswith(p) for p in ("gpt-","o1","o3","o4","chatgpt"))
and "/" not in m and not noise(m)]
report("OPENAI", OAI, AGENTA_OPENAI)
# Gemini
report("GEMINI", [m for m in mc if m.startswith("gemini/") and not noise(m)],
AGENTA_GEMINI, prefix="gemini/")
SCRIPT
uvx --with litellm python /tmp/find_missing.py 2>/dev/null
*Fill in the `AGENTA_sets from the currentassets.py`** before running.
Step 3 — Edit assets.py
File: sdk/agenta/sdk/assets.py
- Add models inside the correct provider list, newest first.
- For Gemini 1.5 models (still widely used): add under
"gemini". - For OpenAI o-series pro tiers (
o1-pro,o3-pro): add after their base model. - For Groq: always cross-check
litellm.groq_models— Groq rotates its model catalogue frequently. - For DeepInfra / Together AI: check
litellm.deepinfra_models/litellm.together_ai_modelsfor current names.
Provider prefix conventions
| Provider key | Agenta prefix | litellm cost key prefix |
|---|---|---|
anthropic |
anthropic/ |
claude- (no prefix) |
cohere |
cohere/ |
command- (no prefix) |
gemini |
gemini/ |
gemini/ |
groq |
groq/ |
groq/ |
mistral |
mistral/ |
mistral/ |
openai |
(none) | (none) |
openrouter |
openrouter/ |
openrouter/ |
perplexityai |
perplexity/ |
perplexity/ |
together_ai |
together_ai/ |
together_ai/ |
deepinfra |
deepinfra/ |
deepinfra/ |
Step 4 — Run ruff then the test
# Format + lint
uvx --from ruff==0.14.0 ruff format sdk/agenta/sdk/assets.py
uvx --from ruff==0.14.0 ruff check --fix sdk/agenta/sdk/assets.py
# Validate all models against litellm (no agenta install needed)
uvx --with litellm python /tmp/check_agenta_models.py 2>/dev/null
All checks must pass before committing.
Related files
| File | Purpose |
|---|---|
sdk/agenta/sdk/assets.py |
Canonical model list + cost metadata builder |
sdk/oss/tests/pytest/unit/test_supported_llm_models.py |
Pytest guard (parametrized per model) |
api/oss/src/core/secrets/enums.py |
Provider keys — must stay in sync |
api/oss/src/resources/evaluators/evaluators.py |
Separate (shorter) model list for evaluator dropdown |