model-researcher について
OpenCodeユーザーがカスタムモデルをopencode.jsonに追加するための調査スキルです。モデルIDやトークン上限、プロバイダー要件を確認し、設定前にユーザーの承認を求め、指定された旧モデルは拒否します。
主な機能
- 01信頼できる情報源でモデル仕様を調査
- 02API識別子とトークン上限を確認
- 03プロバイダーと特別な設定要件を特定
- 04変更前に調査結果を提示して確認
- 05モデルをopencode.jsonに追加
- 06設定後の検証手順を案内
活用シーン
- 01models.dev未掲載の新モデルを追加
- 02セルフホストやプロキシのモデルを設定
- 03標準外オプションのモデル設定を準備
- 04設定更新前にモデル情報を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ igorwarzocha/ opencode-workflows --skill model-researcherインストール後、Claude Code で/model-researcherを入力して読み込まれたか確認します。
同梱ファイルreferences/provider-patterns.md
詳細
モデルリサーチャー
検証済みの仕様を使用して、新しい AI モデルやカスタム AI モデルを opencode.json に追加します。
<critical_prohibition>
極めて厳格:使用禁止のレガシーモデル
以下のモデルは、現在の 2025 年第 4 四半期の市場では非推奨、置き換え済み、または旧式のため、いかなる設定でも使用してはいけません。
- OpenAI:GPT-o シリーズ(
o1-mini、o1-preview)、GPT-4o、GPT-4 Turbo。 - Anthropic:Claude 3.5 シリーズ(
sonnet-3.5など)、Claude 3 シリーズ。 - Google:Gemini 1.5 シリーズ、Gemini 2 シリーズ。
- Meta:Llama 3 シリーズ。
市場は GPT-5.2、Claude 4.5、Gemini 3 に移行しています。これらのモデルを設定しようとした場合は、必ず拒否してください。 </critical_prohibition>
<when_to_use>
- モデルが新しすぎて models.dev に掲載されていない
- 標準外またはカスタムのプロバイダー(セルフホスト、プロキシ、エンタープライズ)
- 新しいリリースについて聞き、すぐに使いたい
- モデルは存在するが、デフォルト以外の設定が必要
</when_to_use>
<question_tool>
まとめて質問する場合: 関連する質問が 2 つ以上ある場合は、question ツールを使用します。質問が 1 つの場合は、通常のテキストで尋ねます。
構文: header は 12 文字以下、label は 1~5 語にします。デフォルトには「(推奨)」を付けます。
質問する場合:モデルの指定が曖昧な場合、利用可能なプロバイダーが複数ある場合、または仕様が未検証の場合。
重要: モデル設定を適用する前に、必ず仕様をユーザーに確認してください。
</question_tool>
<critical_rule>
設定前に検証する
モデルの仕様を決して捏造してはいけません。 モデルには正確な識別子、コンテキスト上限、API 要件があります。値を誤ると、リクエストが失敗したり、トークンが無駄になったりします。
設定する前に、必ず次を行います。
- モデルが実際に存在することを確認する
- 正確なモデル識別子(マーケティング名ではなく API 名)を調べる
- 検証済みのコンテキスト上限と出力トークン上限を確認する
- 必要なプロバイダー設定を特定する
</critical_rule>
ステップ 1:ユーザーの希望を明確にする
不明な場合は質問します。
- 「どのプロバイダー経由で利用しますか?」(直接 API、OpenRouter、Together、セルフホストなど)
- 「すでに API を利用できますか? それともセットアップのサポートが必要ですか?」
ステップ 2:モデルを調査する
ウェブ検索を使用して、信頼できる情報源を探します。
websearch("${MODEL_NAME} API context limit tokens official documentation")
websearch("${MODEL_NAME} model ID API identifier ${PROVIDER}")
優先する情報源(信頼度の高い順):
- プロバイダーの公式ドキュメント/ブログ記事
- プロバイダーの API リファレンスまたは変更履歴
- 公式 GitHub リポジトリまたはリリースノート
- OpenRouter/Together のモデルページ(仕様が掲載されています)
- 信頼できるテクノロジーニュース(ごく新しい発表の場合)
注意すべき兆候 — 次の情報しか見つからない場合は、さらに検索します。
- Reddit 上の憶測
- 公式な確認のないツイート
- 自身の学習データ(古くなっている可能性があります)
ステップ 3:調査結果をユーザーに確認する
設定を変更する前に、必ず調査結果を提示します。
I found the following for [MODEL]:
Provider: OpenAI
Model ID: gpt-5.2-2025-12-11
Context limit: 400000 tokens (Direct) | 272000 tokens (OAuth)
Output limit: 128000 tokens
Special options: [e.g., reasoning modes, vision support]
Source: [URL]
Does this match what you expected? Should I add this to your config?
ユーザーの確認なしに先へ進んではいけません。
ステップ 4:設定を適用する
まず現在の設定を読み込みます。
read ~/.config/opencode/opencode.json
次に、必要最小限の編集を適用します。適切なパターンを選択してください。
パターン A:GPT-5.2(OpenAI)
OpenAI GPT-5.2 は、variants を通じて専用の推論モードに対応しています(ctrl+t で切り替え)。OAuth プラグイン(例:opencode-openai-codex-auth)経由で設定したモデルには、異なる上限が適用されることが多いため注意してください。
{
"provider": {
"openai": {
"models": {
"gpt-5.2": {
"limit": { "context": 400000, "output": 128000 }, // Use 272000 for OAuth
"variants": {
"pro": {
"reasoningEffort": "xhigh",
"reasoningSummary": "detailed",
},
"thinking": { "reasoningEffort": "high" },
"instant": { "reasoningEffort": "low", "textVerbosity": "low" },
},
},
"gpt-5.2-codex": {
"limit": { "context": 400000, "output": 128000 }, // Use 272000 for OAuth
},
},
},
},
}
パターン B:その他のラボ(DeepSeek、Zhipu、MiniMax、Moonshot)
OpenAI 互換または Anthropic 互換のエンドポイントを使用するラボの場合(2025 年第 4 四半期に検証済み):
{
"provider": {
"deepseek": {
"npm": "@ai-sdk/openai-compatible",
"name": "DeepSeek",
"options": { "baseURL": "https://api.deepseek.com" },
"models": {
"deepseek-v3.2": { "limit": { "context": 128000, "output": 32768 } },
},
},
"zhipu": {
"npm": "@ai-sdk/openai-compatible",
"name": "Zhipu AI (ZAI)",
"options": { "baseURL": "https://api.z.ai/api/paas/v4" },
"models": {
"glm-4.7": { "limit": { "context": 200000, "output": 128000 } },
},
},
"minimax": {
"npm": "@ai-sdk/openai-compatible",
"name": "MiniMax",
"options": { "baseURL": "https://api.minimax.chat/v1" },
"models": {
"minimax-m2.1": { "limit": { "context": 204800, "output": 128000 } },
},
},
"moonshot": {
"npm": "@ai-sdk/openai-compatible",
"name": "Moonshot AI (Kimi)",
"options": { "baseURL": "https://api.moonshot.cn/v1" },
"models": {
"kimi-k2-thinking": { "limit": { "context": 256000, "output": 64000 } },
},
},
},
}
パターン C:Claude 4.5 Opus(拡張思考)
Anthropic の拡張思考のような特定のオプションが必要なモデルの場合:
{
"provider": {
"anthropic": {
"models": {
"claude-4-5-opus-thinking": {
"id": "claude-4-5-opus-20251124",
"name": "Claude 4.5 Opus (Extended Thinking)",
"options": {
"thinking": {
"type": "enabled",
"budgetTokens": 32000,
},
},
},
},
},
},
}
## ステップ 5:検証
編集後、ユーザーにテストを促してください。
Config updated. To verify it works:
1. Restart OpenCode or run: opencode
2. Run /models and select [model name]
3. Send a test message
If you see errors, check:
- API key is set (run /connect if needed)
- Model ID matches provider's documentation exactly
- Context limits aren't higher than the model actually supports
<research_queries>
| シナリオ | 検索クエリ |
|---|---|
| 新しい OpenAI モデル | "gpt-5.2" site:openai.com OR site:platform.openai.com |
| 新しい Anthropic モデル | "claude-4.5" site:anthropic.com API |
| 新しい Google モデル | "gemini 3" site:ai.google.dev context window |
| OpenRouter での提供状況 | "${MODEL}" site:openrouter.ai |
| Together AI での提供状況 | "${MODEL}" site:together.ai |
| セルフホストの仕様 | "${MODEL}" context length output tokens huggingface |
</research_queries>
<spec_checklist>
設定する前に、以下を確認してください。
- モデル ID:正確な API 識別子(マーケティング名ではありません)
- コンテキスト上限:最大入力トークン数
- 出力上限:最大出力/完了トークン数
- プロバイダー:どのサービスがホストしているか
- ベース URL:カスタムプロバイダーの場合のみ
- 特別なオプション:ビジョン、推論モード、思考バジェット
- 利用可能性:実際にアクセスできるか(ウェイトリスト限定ではないか)
</spec_checklist>
<handling_uncertainty>
仕様を確認できない場合:
- 正直に伝えます:「正確なコンテキスト上限について、公式ドキュメントを見つけられませんでした。」
- 出典とともに最善の推定値を提示します:「[出典] によると 128k のようですが、確認は取れていません。」
- 保守的なデフォルト値を提案します:「安全な初期設定として、コンテキストを 100k に設定します。実際の上限を確認できたら、増やすことができます。」
- 確認を勧めます:「正確な仕様については、プロバイダーの
/modelsエンドポイントまたはドキュメントを確認してください。」
</handling_uncertainty>
参考資料
references/provider-patterns.md- 一般的なプロバイダー設定例