jpskill.com
🛠️ 開発・MCP コミュニティ

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本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
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
🪟 Windows (PowerShell)
$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. 1. 下の青いボタンを押して update-llm-model-list.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → update-llm-model-list フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

LLMモデルリストの更新

概要

標準のモデルリストは、sdk/agenta/sdk/assets.pysupported_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


主要なルール

  1. すべてのモデルは litellm.model_cost に存在する必要があります (直接のキー、またはプロバイダーのプレフィックスを削除したもの)。
    • anthropic/claude-* → litellm は claude-* として保存します (プレフィックスはルーティングのために意図的に付与され、コストルックアップのために削除されます)
    • cohere/command-* → litellm は command-* として保存します
    • 他のすべてのプロバイダーは、完全なプレフィックスを保持します (例: gemini/groq/together_ai/)
  2. プロバイダーキー ("anthropic""gemini"、…) は、api/oss/src/core/secrets/enums.py (StandardProviderKind) の Secrets API enum と一致する必要があります。
  3. プロバイダーリスト内に重複がないこと。

ステップ 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-proo3-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.pysupported_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

  1. Every model must exist in litellm.model_cost (direct key, or with provider prefix stripped).
    • anthropic/claude-* → litellm stores as claude-* (prefix is intentional for routing, stripped for cost lookup)
    • cohere/command-* → litellm stores as command-*
    • All other providers keep their full prefix (e.g. gemini/, groq/, together_ai/)
  2. Provider key ("anthropic", "gemini", …) must match the Secrets API enum in api/oss/src/core/secrets/enums.py (StandardProviderKind).
  3. 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_models for 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