TL;DR
- OpenRouter には
:freeサフィックス付きの無料モデルが複数存在し、Claude Code のサブエージェント・バッチ処理に活用できる - 2026年5月時点で実用レベルの無料モデルは Qwen3-235B-A22B、Gemini 2.0 Flash、DeepSeek R1、Mistral Small 3.2、Llama 4 Scout の5本柱
- タスク特性(コーディング / 要約 / 翻訳 / 長文推論)によって使い分けることで品質とゼロコストを両立できる
背景:なぜ「無料モデル」に本気で向き合うか
Claude Code や自作の LLM ワークフローを日常的に動かしていると、ランニングコストは思った以上に膨らみます。Claude Opus や GPT-4o を全タスクに投入し続けると、月数万円規模になることも珍しくありません。
OpenRouter は プロバイダを抽象化した統一 API を提供しており、同一エンドポイント (https://openrouter.ai/api/v1/chat/completions) で OpenAI・Anthropic・Google・Meta 等のモデルを切り替えられます。そのなかに :free モデルというカテゴリが存在し、レート制限はあるものの 料金ゼロで API コールできます。
ポイントは「ゼロコスト=使い物にならない」ではない点です。2025〜2026年にかけて無料枠に追加されたモデルは、2年前の有料最高峰と同等以上の能力を持つものが増えています。
OpenRouter :free モデルの仕組み
エンドポイントとモデル指定
import openai
client = openai.OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key="<YOUR_OPENROUTER_API_KEY>",
)
response = client.chat.completions.create(
model="qwen/qwen3-235b-a22b:free", # ← :free サフィックスで無料枠
messages=[{"role": "user", "content": "Explain MoE in 3 sentences."}],
)
print(response.choices[0].message.content)
:free を省くと有料になるため注意。モデル名の末尾に必ず :free を付与してください。
無料枠の制約
| 制約項目 | 概要 |
|---|---|
| RPM (Requests Per Minute) | モデルによって異なる (多くは 10〜60 RPM) |
| TPD (Tokens Per Day) | モデルによって異なる (数十万〜数百万トークン) |
| Context Length | 有料版と同一の場合が多い |
| ストリーミング | 対応モデルがほとんど |
| 優先度 | 有料トラフィックより低い場合があり、混雑時はレイテンシが増加 |
2026年5月時点の実用無料モデル5選
1. qwen/qwen3-235b-a22b:free — コーディング・推論の王者
Qwen3-235B-A22B は Alibaba Cloud が公開した MoE(Mixture of Experts)モデルで、235B パラメータのうち推論時にアクティブになるのは 22B です。
強み
- コーディング精度が非常に高い。HumanEval で GPT-4o 相当の数値を記録
- 中国語・日本語・英語のマルチリンガル対応
- 128K コンテキストウィンドウ (
:free枠でも同等) -
thinkingモードを有効にすると連鎖推論(Chain-of-Thought)が自動で走る
使いどころ
- コードレビュー
- SQL クエリ生成
- 技術文書の翻訳・要約
注意点
-
thinkingモードは出力トークンが増えるため、TPD を消費しやすい - RPM が比較的低め(ポーリングループを入れると良い)
# thinking モードの有効化 (extra_body で渡す)
response = client.chat.completions.create(
model="qwen/qwen3-235b-a22b:free",
messages=[{"role": "user", "content": "Write a Rust function that parses CSV."}],
extra_body={"thinking": {"type": "enabled", "budget_tokens": 2048}},
)
2. google/gemini-2.0-flash-exp:free — スピードと長文処理
Gemini 2.0 Flash は Google DeepMind が公開した実験版モデル。Flash シリーズの特徴は低レイテンシと**巨大コンテキスト(1M トークン)**です。
強み
- 最大 1,000,000 トークンのコンテキスト(ファイル丸ごと渡せる)
- 応答速度が速く、インタラクティブな用途に向く
- マルチモーダル対応(画像 → テキストの理解)
- 日本語品質が Gemini 1.5 Pro を上回る
使いどころ
- 長大なログファイル・コードベース全体を要約
- スクリーンショットから UI のフィードバックを生成
- リアルタイムに近い速度が求められるチャット補助
注意点
- 実験版 (
-exp) のため API 仕様が予告なく変わる可能性がある - 長文入力時は TPD を一気に消費する
3. deepseek/deepseek-r1:free — 数学・論理推論に特化
DeepSeek R1 は中国の DeepSeek が公開した推論特化モデル。OpenAI o1 と同クラスの性能を MIT ライセンスで公開したことで大きな話題になりました。
強み
- AIME(数学オリンピック難問)で o1 相当のスコア
- 長い推論チェーン(
<think>タグ内に思考過程を出力) - MIT ライセンスなので商用利用・ファインチューニングが可能
使いどころ
- アルゴリズム問題の解法検討
- 複雑なビジネスロジックのバグ原因調査
- テストケースの網羅性検討
注意点
-
<think>...</think>ブロックを除去してから最終回答を取り出す必要がある(以下参照) - 出力が長くなりやすい
import re
def extract_answer(raw: str) -> str:
"""<think>ブロックを除去して最終回答のみ返す"""
return re.sub(r"<think>.*?</think>", "", raw, flags=re.DOTALL).strip()
response = client.chat.completions.create(
model="deepseek/deepseek-r1:free",
messages=[{"role": "user", "content": "Prove why 0.1 + 0.2 != 0.3 in IEEE 754."}],
)
answer = extract_answer(response.choices[0].message.content)
4. mistralai/mistral-small-3.2:free — 欧州産・軽量・高速
Mistral Small 3.2 は Mistral AI(フランス)が公開した 22B クラスのモデルで、軽量ながら実用的な品質を持ちます。
強み
- トークン速度が速い(低レイテンシ)
- 関数呼び出し(Function Calling)の安定性が高い
- 欧州規制(AI Act)準拠を意識した透明性
- Apache 2.0 ライセンス
使いどころ
- Function Calling を使った構造化データ抽出
- 軽い Q&A・FAQ 応答
- 短文の翻訳・添削
# Function Calling の例
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get current weather",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string"},
},
"required": ["location"],
},
},
}
]
response = client.chat.completions.create(
model="mistralai/mistral-small-3.2:free",
messages=[{"role": "user", "content": "What's the weather in Tokyo?"}],
tools=tools,
tool_choice="auto",
)
5. meta-llama/llama-4-scout:free — Meta の最新・長文 Scout
Llama 4 Scout は Meta が 2025年にリリースした Llama 4 シリーズのうち、10M トークンコンテキストに対応した実験的モデルです。
強み
- 10,000,000 トークンという桁違いのコンテキスト長
- ネイティブマルチモーダル対応
- Llama ライセンス(商用利用は規模要件あり)で公開されたウェイトを使用
- RAG なしで丸ごとドキュメントを渡す「ブルートフォース検索」が可能
使いどころ
- 大規模コードリポジトリ全体を渡しての質問応答
- 長期ログの異常検知
- 複数ドキュメントにまたがるQ&A
注意点
- 実用上、10M トークンを使い切る前に TPD の上限に達することが多い
- コンテキスト長を活かすほどレイテンシが増加する
5モデルの比較表
| モデル | コーディング | 推論/数学 | 日本語 | 速度 | 長文対応 | ライセンス |
|---|---|---|---|---|---|---|
| Qwen3-235B-A22B | ★★★★★ | ★★★★☆ | ★★★★★ | ★★★☆☆ | 128K | Apache 2.0 |
| Gemini 2.0 Flash | ★★★★☆ | ★★★☆☆ | ★★★★☆ | ★★★★★ | 1M | 独自(実験版) |
| DeepSeek R1 | ★★★★☆ | ★★★★★ | ★★★☆☆ | ★★☆☆☆ | 128K | MIT |
| Mistral Small 3.2 | ★★★☆☆ | ★★★☆☆ | ★★★☆☆ | ★★★★★ | 32K | Apache 2.0 |
| Llama 4 Scout | ★★★☆☆ | ★★★☆☆ | ★★★☆☆ | ★★☆☆☆ | 10M | Llama 4 |
実践:Claude Code のサブエージェントに組み込む
Claude Code では Task ツールや外部スクリプト呼び出しでサブエージェントを並列起動できます。重いタスクはメインの Claude Sonnet に任せ、軽量・反復処理は :free モデルにオフロードするという使い方が有効です。
パターン1:コードレビューバッチ
# review_batch.py
import openai
import pathlib
client = openai.OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key="<YOUR_OPENROUTER_API_KEY>",
)
def review_file(path: pathlib.Path) -> str:
code = path.read_text()
resp = client.chat.completions.create(
model="qwen/qwen3-235b-a22b:free",
messages=[
{
"role": "system",
"content": "You are a strict code reviewer. Point out bugs and style issues.",
},
{"role": "user", "content": f"```python\n{code}\n```"},
],
max_tokens=1024,
)
return resp.choices[0].message.content
# 複数ファイルをバッチ処理
src_dir = pathlib.Path("src")
for py_file in src_dir.glob("**/*.py"):
review = review_file(py_file)
print(f"=== {py_file} ===\n{review}\n")
パターン2:フォールバックチェーン
Rate limit エラーが返ってきたら次のモデルに切り替えるフォールバックパターンです。
from openai import RateLimitError
import time
FREE_MODELS = [
"qwen/qwen3-235b-a22b:free",
"google/gemini-2.0-flash-exp:free",
"deepseek/deepseek-r1:free",
]
def call_with_fallback(messages: list, retries: int = 3) -> str:
for model in FREE_MODELS:
for attempt in range(retries):
try:
resp = client.chat.completions.create(
model=model,
messages=messages,
max_tokens=2048,
)
return resp.choices[0].message.content
except RateLimitError:
wait = 2 ** attempt # exponential backoff
print(f"[{model}] Rate limited. Retry in {wait}s...")
time.sleep(wait)
print(f"[{model}] Exhausted retries. Trying next model.")
raise RuntimeError("All free models exhausted.")
パターン3:タスク特性でルーティング
def route_to_model(task_type: str) -> str:
routing = {
"coding": "qwen/qwen3-235b-a22b:free",
"math": "deepseek/deepseek-r1:free",
"long_doc": "google/gemini-2.0-flash-exp:free",
"structured": "mistralai/mistral-small-3.2:free",
"huge_context": "meta-llama/llama-4-scout:free",
}
return routing.get(task_type, "qwen/qwen3-235b-a22b:free")
model = route_to_model("math")
品質ティアと使い分けの指針
無料モデルを使えばすべてのタスクがゼロコストになるわけではありません。品質要件に応じた使い分けが重要です。
品質ティア
─────────────────────────────────────────────
Tier 1 (最高品質): Claude Sonnet / GPT-4o
→ 最終納品物・ユーザー向け生成物・重要判断
Tier 2 (高品質 無料): Qwen3-235B / DeepSeek R1
→ コードレビュー・バグ解析・技術文書生成
Tier 3 (高速 無料): Gemini 2.0 Flash / Mistral Small
→ インタラクティブ補助・構造化抽出・翻訳
Tier 4 (特化用途): Llama 4 Scout
→ 10M コンテキスト専用・ブルートフォース検索
─────────────────────────────────────────────
コストポリシー的には「自動化バッチ処理は :free モデルを優先 → 品質不足なら Tier 1 にエスカレーション」というフローが現実的です。
よくあるハマりポイント
1. モデル名が変わる
:free モデルは OpenRouter 側のポリシー変更や提供元の判断で予告なく追加・削除・有料化されることがあります。定期的に openrouter.ai/models で :free フィルタを確認する運用が必要です。
2. max_tokens を省くと長文で詰まる
デフォルトの max_tokens は無指定だとモデルによって異なります。バッチ処理では必ず明示的に指定しましょう。
3. 思考ブロックをそのまま表示させない
DeepSeek R1 の <think> や Qwen3 の thinking モードは、エンドユーザーに生の思考過程を見せる設計ではありません。前述の extract_answer() のような後処理を入れましょう。
4. :free と有料版の context length が違う場合がある
モデルによっては、:free 版は有料版より短いコンテキスト長に制限されています。OpenRouter の /models エンドポイントで context_length を取得して確認してください。
import httpx
models = httpx.get(
"https://openrouter.ai/api/v1/models",
headers={"Authorization": "Bearer <YOUR_KEY>"},
).json()
free_models = [m for m in models["data"] if m["id"].endswith(":free")]
for m in free_models:
print(m["id"], m.get("context_length"))
まとめ
| # | ポイント |
|---|---|
| 1 | OpenRouter :free モデルは 2026年時点で実用レベルに達している
|
| 2 | コーディングは Qwen3-235B・推論は DeepSeek R1・速度は Gemini Flash・構造化は Mistral Small・超長文は Llama 4 Scout |
| 3 | フォールバックチェーン+タスクルーティングで安定性と品質を両立 |
| 4 | 最終成果物・ユーザー向け生成物は Tier 1 にエスカレーションする品質ゲートを設けること |
| 5 | モデルリストは定期チェック必須(無料枠は流動的) |
Claude Code のバックグラウンドタスクや CI/CD の自動レビューなど、人の目が直接届かないバッチ処理こそ :free モデルの出番です。ぜひコスト構造を見直してみてください。
参考リンク
- OpenRouter 公式ドキュメント
- OpenRouter モデル一覧 (
:freeフィルタ付き) - Qwen3 技術レポート (Hugging Face)
- DeepSeek R1 論文 (arXiv:2501.12948)
- Gemini 2.0 Flash 公式ブログ (Google DeepMind)
- Llama 4 発表ブログ (Meta AI)
- Mistral Small 3.2 リリースノート (Mistral AI)
✍️ 本記事の著者: 合同会社ジモラボ
ジモラボは、八王子を拠点に AI を活用した SaaS を多数開発しています。本記事の技術検証もそうした開発過程の副産物です。
- 🌐 公式サイト: https://locallab.jp
- 🔍 AI SEO 最適化 SaaS: lookupai.jp
- 📺 YouTube: @locallab_llc
- ✉️ お問い合わせ: info@locallab.jp
興味を持っていただけたら、ぜひ各 SNS のフォローもお願いします!