stepのeffective modelがAnthropicならClaude Code adapterへdispatchします。
対応プロバイダー
AnthropicとOpenAIを、local・managedの対応範囲、built-in model、認証方法、実行時の制約で比較します。
このページの内容
runtimeごとの対応範囲
現行のLLM providerはAnthropicとOpenAIの2つです。models.<name>.providerが受け付ける値もanthropicとopenaiだけです。GitHubはrepository連携であり、LLM providerには含めません。
| provider | local | managed | 実行adapter |
|---|---|---|---|
| Anthropic | 対応 | 対応 | local: Claude Agent SDK / managed: Managed Agents API |
| OpenAI | 対応 | 非対応 | local: Codex SDK |
最初のOpenAI step到達時にCodex adapterをlazy loadします。
登録済みagentとenvironmentを使い、OpenAI modelはconfig validationで拒否されます。
対応範囲。 1つのlocal runでAnthropicとOpenAIをstep単位に混成できます。managed runでproviderを混成することはできません。
最初はinitで1つ選ぶ
| 選択 | scaffoldの既定 | 初回command |
|---|---|---|
| Anthropic | defaults: claude-sonnet-4-6。designはstep既定のclaude-opus-4-6[1m] | specrunner init --provider anthropic |
| OpenAI | defaults: gpt-5.4-mini、design: gpt-5.5 | specrunner init --provider openai |
TTYではproviderを質問し、未指定のnon-TTYではAnthropicを選びます。initはlocal-defaultのscaffold専用で、既存global configがあれば上書きしません。
# Anthropic local
npx specrunner init --provider anthropic
# OpenAI local
npx specrunner init --provider openai
codex login--runtimeはinitの選択肢ではありません。 init --runtime localとinit --runtime managedは現在argument errorです。managedはlocal scaffoldとは別にmanaged setupで構成します。
built-in registryにあるmodel
Claude family
claude-opus-4-8claude-opus-4-8[1m]claude-opus-4-7claude-opus-4-6claude-opus-4-6[1m]claude-opus-4-5claude-sonnet-4-6claude-sonnet-4-5claude-haiku-4-5
GPT / Codex family
gpt-5.5gpt-5.4gpt-5.4-minigpt-5.3-codex-spark
registry登録と利用権限は別です。 built-inにあるmodelでも、契約・account・SDK側で利用できるとは限りません。SpecRunnerのregistryはproviderへのroutingとconfig validationを行い、provider側のentitlementはrun時に決まります。
価格表はmodel registryと別管理です。対応modelでも価格が不明、または価格だけ登録されていてbuilt-in modelではない場合があります。詳しくはコスト目安と計測を参照してください。
localはeffective modelでstepごとに振り分ける
local runtimeは各stepのeffective modelをmerged registryで解決し、AnthropicならClaude runner、OpenAIならCodex runnerへ渡します。
{
"version": 1,
"steps": {
"defaults": { "model": "claude-sonnet-4-6" },
"design": { "model": "gpt-5.5" },
"code-review": { "model": "gpt-5.4" }
}
}npx specrunner config effective --type spec-change
npx specrunner doctorOpenAI runnerは最初のOpenAI stepで初めて読み込まれるため、未準備でもAnthropic stepまでは進めてしまう可能性があります。
managedはAnthropicの登録済みagentを使う
runtime: managedではAnthropic Managed Agents APIを使い、managed setupが登録したagent IDとenvironment IDを参照します。
export SPECRUNNER_API_KEY=...
npx specrunner managed setup
npx specrunner managed status
npx specrunner doctor| 設定 | managedでの扱い |
|---|---|
steps.*.model | 実行modelの選択には使わず、登録済みagentのmodelを使用 |
| OpenAI model | config validationで拒否 |
timeoutMs | session pollingのtimeoutへ反映 |
maxTurns | managed sessionのturn上限としては渡さない |
managedのAPI key、GitHub token、environmentの準備は権限・認証・環境変数を参照してください。
custom modelはproviderを明示して追加する
built-inにないmodel名はそのままではCONFIG_INVALIDです。modelsへ追加すると、指定providerのlocal runnerへroutingされます。
{
"version": 1,
"models": {
"provider-model-id": { "provider": "anthropic" }
},
"steps": {
"implementer": { "model": "provider-model-id" }
}
}anthropicまたはopenai。第三のprovider typeは追加できません。
alias変換はせず、model keyを対応SDKへ渡します。
custom registryへ追加してもpricing.tsへ単価は増えません。
built-in mappingの上書きは慎重に行います。 user registryはbuilt-inより優先します。同じmodel名を別providerへ割り当てると、その文字列が別SDKへ渡るため、通常は新しい実model IDを追加します。
providerごとに認証経路が違う
| 対象 | 対話実行 | headless / API key |
|---|---|---|
| Anthropic local | Claude Codeの保存済み認証 | CLAUDE_CODE_OAUTH_TOKENまたはspecrunner login --provider claude |
| OpenAI local | codex login | OPENAI_API_KEY |
| Anthropic managed | — | SPECRUNNER_API_KEY |
- 01effective config
対象request typeで各stepのmodelを解決します。
- 02credential
使うproviderだけでなく、混成時は両方の認証を確認します。
- 03doctor
CLI・token・managed resourceのrequired failureを解消します。
- 04small run
最初の1件は小さいrequestでprovider dispatchとusage記録を確認します。
対応表だけでは保証されないこと
| 境界 | 現行の制約 |
|---|---|
| OpenAI / managed | 非対応。OpenAI modelをmanaged configへ指定するとerror |
OpenAI / maxTurns | 値は解決されるがCodex SDK実行へ渡されない。timeoutMsを使う |
| OpenAI / doctor | byRequestType内だけのOpenAI modelをCLI checkが見落とす場合がある |
| OpenAI / auth hint | doctorのCODEX_API_KEY表示は古く、runnerが読むのはOPENAI_API_KEY |
| custom provider | provider enumはAnthropic / OpenAIのみ。互換APIを第三providerとして登録できない |
| model availability | registry登録はaccountの利用権限・region・quota・SDK対応を保証しない |
実行条件。 config effective --type、provider認証、doctor、小規模runの4点が揃ってから本番requestへ進みます。
参照ソース 10件
src/config/model-registry.tsprovider型・built-in models・scaffold既定値src/adapter/dispatching/agent-runner.tslocalのprovider dispatchsrc/core/runtime/local.tslocal runtime構成src/core/runtime/managed.tsmanaged runtime構成src/config/schema/validation.tsmodelとruntimeの検証src/cli/init.tsprovider選択とscaffoldsrc/cli/login.ts保存可能なcredentialsrc/adapter/claude-code/agent-runner.tsAnthropic local adaptersrc/adapter/codex/agent-runner.tsOpenAI local adaptersrc/core/doctor/checks/runtime/codex-cli.tsOpenAI prerequisite check