2026年3月17日、OpenAIがGPT-5.4 miniとnanoをリリースした。GPT-5.4本体(3月5日リリース)からわずか12日後の展開だ。
「サブエージェント時代の到来」とOpenAIが表現するとおり、miniとnanoは単体で使うモデルではない。フラッグシップが計画を立て、miniとnanoが並列で実行する——そういう役割分担が前提の設計になっている。Codexユーザーにとっては、どちらをどの用途に使うかで月のAPIコストが大きく変わる話だ。
スペック比較
| 項目 | GPT-5.4 mini | GPT-5.4 nano | Claude Haiku 4.5 | Gemini 3 Flash |
|---|---|---|---|---|
| リリース日 | 2026年3月17日 | 2026年3月17日 | 2026年2月 | 2026年1月 |
| 入力コスト | $0.75/M tokens | $0.20/M tokens | $1.00/M tokens | $0.50/M tokens |
| 出力コスト | $4.50/M tokens | $1.25/M tokens | $5.00/M tokens | $3.00/M tokens |
| コンテキスト | 400K tokens | 未公開 | 200K tokens | 1M tokens |
| OSWorld-Verified | 72.1% | 39.0% | — | — |
| SWE-Bench Pro | フラッグシップに迫る | 52.4% | 73.3%(Verified) | 78%(Verified) |
| マルチモーダル | あり | なし | あり | あり |
| Codex統合 | あり | APIのみ | — | — |
| コスト消費 | フラッグシップの30% | 最小 | — | — |
料金情報の最終確認: 2026-03-21
コスト効率で比較する
nanoの$0.20/Mというインプットコストは、現行の主要モデルの中で最安クラスだ。同じOpenAIファミリーでもminiの約4分の1。Gemini 3 Flash($0.50/M)と比べても60%安い。
ただし、「安ければよい」という単純な話ではない。ベンチマークを見ると、OSWorld(コンピュータ操作ベンチマーク)でminiが72.1%、nanoが39.0%と30ポイント以上の差がある。視覚情報の理解を伴うタスクでnanoを使うと精度が落ち、後工程で人間の修正コストが発生する可能性がある。
コスト最適化は「安いモデルを全タスクに」ではなく、「タスクの性質に応じてモデルを選ぶ」ことで達成される。
Codexサブエージェントでの使い分けを考える
OpenAIの設計思想では、フラッグシップGPT-5.4がオーケストレーターとして計画を立て、mini/nanoがワーカーとして並列実行する。Codexでminiをサブエージェントに使うと、フラッグシップのクォータの30%しか消費しない。
以下に、Codexのカスタムエージェント設定でモデルを指定するコード例を示す。
# OpenAI Agents SDK でのサブエージェント設定例
# 動作環境: Python 3.11+, openai-agents>=0.1.0
# 必要パッケージ: pip install openai-agents
# 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
from agents import Agent, Runner, handoff
# オーケストレーター(高コスト・高精度)
planner_agent = Agent(
name="Planner",
model="gpt-5.4", # フラッグシップ
instructions="""
ユーザーのリクエストを分析し、適切なサブエージェントに委任してください。
- コード生成タスク → CodeAgent(mini)へ
- テキスト分類・データ抽出 → ClassifierAgent(nano)へ
- 視覚情報が必要なタスク → VisualAgent(mini)へ
""",
handoffs=["code_agent", "classifier_agent", "visual_agent"]
)
# コード生成サブエージェント(mini推奨)
code_agent = Agent(
name="CodeAgent",
model="gpt-5.4-mini", # SWE-Benchで高スコア、コスト効率良好
instructions="与えられた仕様に基づいてコードを生成してください。"
)
# 分類・抽出サブエージェント(nano推奨)
classifier_agent = Agent(
name="ClassifierAgent",
model="gpt-5.4-nano", # 最安値、単純タスクに最適
instructions="テキストを指定されたカテゴリに分類してください。"
)
# 視覚情報処理(mini必須 — nanoはマルチモーダル非対応)
visual_agent = Agent(
name="VisualAgent",
model="gpt-5.4-mini", # OSWorld 72.1%、スクリーンショット解析に適切
instructions="スクリーンショットを解析してUIの状態を説明してください。"
)
runner = Runner()
result = await runner.run(planner_agent, "GitHubのPRコメントを分析してバグを修正してください")
ポイント: nanoはマルチモーダル対応なし。スクリーンショットやUI解析が必要な場面では必ずminiを使うこと。
用途別の選び方で比較する
どちらを選べばいいか、用途別に整理する。
GPT-5.4 miniが向いているケース
OSWorld 72.1%という数字が示すとおり、視覚情報を伴うタスク全般でminiが優位だ。コンピュータ操作の自動化、スクリーンショットからのUI状態解析、複雑なコード生成とリファクタリングなどが該当する。
# miniを使ったコンピュータ操作タスクの例
# 動作環境: Python 3.11+, openai>=1.50.0
# 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
from openai import OpenAI
import base64
client = OpenAI()
def analyze_screenshot(image_path: str) -> str:
"""スクリーンショットを解析してUI状態を返す"""
with open(image_path, "rb") as f:
image_data = base64.b64encode(f.read()).decode()
response = client.chat.completions.create(
model="gpt-5.4-mini", # マルチモーダル対応、OSWorld 72.1%
messages=[
{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{image_data}"}},
{"type": "text", "text": "このスクリーンショットで次に行うべきアクションを1文で説明してください。"}
]
}
],
max_tokens=200
)
return response.choices[0].message.content
GPT-5.4 nanoが向いているケース
分類、データ抽出、ランキング、単純な文章変換——これらはコンテキスト理解より処理速度とコストが重要なタスクだ。大量バッチ処理での活用が特に効果的で、nanoの$0.20/Mは100万件の分類で約$0.20という計算になる。
# nanoを使ったバッチ分類の例
# 動作環境: Python 3.11+, openai>=1.50.0
# 注意: 本番環境で使用する前に、必ずテスト環境で動作確認してください。
from openai import OpenAI
from concurrent.futures import ThreadPoolExecutor
from typing import List
client = OpenAI()
CATEGORIES = ["バグ報告", "機能要望", "質問", "その他"]
def classify_ticket(ticket_text: str) -> str:
"""サポートチケットを分類(nano使用)"""
response = client.chat.completions.create(
model="gpt-5.4-nano", # 分類タスクに最適、コスト最小
messages=[
{
"role": "system",
"content": f"次のカテゴリのいずれかで分類してください: {', '.join(CATEGORIES)}nカテゴリ名のみ回答してください。"
},
{"role": "user", "content": ticket_text}
],
max_tokens=20 # カテゴリ名だけなので短くて十分
)
return response.choices[0].message.content.strip()
# バッチ処理(ThreadPoolExecutorで並列化)
def batch_classify(tickets: List[str], max_workers: int = 10) -> List[str]:
with ThreadPoolExecutor(max_workers=max_workers) as executor:
results = list(executor.map(classify_ticket, tickets))
return results
筆者のおすすめ
正直に言うと、nanoは「とにかく安い」という用途で強い。ただし、精度が求められるタスクでnanoに頼りすぎると、後工程の修正コストで「安さ」が消える。miniは現状の小型モデルとして最高クラスの性能を持ちながら、Claude Haiku 4.5より25%安い。
私の使い分け基準はシンプルだ:
- 画面・画像の処理が必要 → mini一択(nanoは非対応)
- コード生成・デバッグ → mini(SWE-Bench Proで高スコア)
- 分類・タグ付け・抽出の大量バッチ → nano
- コスト最優先でテキスト変換 → nano
- Gemini 3 Flashの1Mコンテキストが必須 → Gemini 3 Flash(nanoでは対応不可)
Codexサブエージェントの設定については、Codex完全活用ガイドでより詳しく解説している。
参考・出典
- Introducing GPT-5.4 mini and nano — OpenAI(参照日: 2026-03-21)
- OpenAI releases GPT-5.4 mini and nano, its ‘most capable small models yet’ — 9to5Mac(参照日: 2026-03-21)
- GPT-5.4 Mini and Nano: Full Breakdown, Pricing, and Use Cases — BuildFastWithAI(参照日: 2026-03-21)
- OpenAI API Pricing — OpenAI(参照日: 2026-03-21)
あわせて読みたい:
- OpenAI Codex活用ガイド — Codexでサブエージェントを最大活用する方法
- Devin vs Codex vs Claude Code vs Cursor比較 — AIコーディングエージェントの選び方
この記事はAIgent Lab編集部がお届けしました。