OpenRouterセットアップガイド
APIキーの取得から最初のエージェント実行までの完全ガイド
OpenRouterとは
OpenRouterは、400以上のAIモデル(GPT-5、Claude 4、Gemini 2.5など)に1つのAPIでアクセスできるサービス。OpenAI互換のAPIを提供するため、既存のコードを最小限の変更で移行可能。
400+
利用可能モデル数
1 API
統一インターフェース
Free
無料モデルあり
ステップ1: アカウント作成
1
OpenRouterにアクセス
https://openrouter.ai にアクセス
2
サインアップ
右上の「Sign In」をクリックし、Google/GitHubアカウントまたはメールでサインアップ
3
APIキーを生成
ダッシュボードの「Keys」セクションから「Create Key」をクリック。生成されたキーを安全に保存。
ステップ2: 環境設定
重要: APIキーは絶対にコードに直接書かないでください。環境変数を使用しましょう。
環境変数の設定
Linux/macOS (.bashrc または .zshrc)
bash
export OPENROUTER_API_KEY="sk-or-v1-xxxxxxxxxxxx"Windows (PowerShell)
powershell
$env:OPENROUTER_API_KEY = "sk-or-v1-xxxxxxxxxxxx".envファイル(推奨)
text
# .env
OPENROUTER_API_KEY=sk-or-v1-xxxxxxxxxxxxステップ3: Python環境セットアップ
必要なライブラリのインストール
bash
# OpenAI SDK(OpenRouter互換)
pip install openai
# 環境変数読み込み用
pip install python-dotenv
# オプション: エージェントフレームワーク
pip install langchain langchain-openai基本的な接続テスト
python
import os
from openai import OpenAI
from dotenv import load_dotenv
# 環境変数を読み込む
load_dotenv()
# OpenRouterクライアントを設定
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=os.getenv("OPENROUTER_API_KEY"),
)
# テストリクエスト
response = client.chat.completions.create(
model="anthropic/claude-sonnet-4", # 使用するモデル
messages=[
{"role": "user", "content": "Hello! Please respond with 'Connection successful!'"}
]
)
print(response.choices[0].message.content)
# 出力: Connection successful!ステップ4: 最初のエージェントを作成
シンプルなツール呼び出しエージェントを作成してみましょう。このエージェントは計算ツールを使って数学の問題を解きます。
ツール呼び出しエージェント
python
import os
import json
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv()
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=os.getenv("OPENROUTER_API_KEY"),
)
# ツール定義
tools = [
{
"type": "function",
"function": {
"name": "calculate",
"description": "数学の計算を実行します",
"parameters": {
"type": "object",
"properties": {
"expression": {
"type": "string",
"description": "計算する式(例: '2 + 2', '10 * 5')"
}
},
"required": ["expression"]
}
}
}
]
# ツール実行関数
def execute_tool(name: str, args: dict) -> str:
if name == "calculate":
try:
result = eval(args["expression"]) # 注意: 本番環境ではsafe_evalを使用
return str(result)
except Exception as e:
return f"エラー: {e}"
return "未知のツール"
# エージェントループ
def run_agent(user_message: str):
messages = [{"role": "user", "content": user_message}]
while True:
response = client.chat.completions.create(
model="anthropic/claude-sonnet-4",
messages=messages,
tools=tools,
tool_choice="auto"
)
assistant_message = response.choices[0].message
# ツール呼び出しがない場合は終了
if not assistant_message.tool_calls:
return assistant_message.content
# ツールを実行
messages.append(assistant_message)
for tool_call in assistant_message.tool_calls:
result = execute_tool(
tool_call.function.name,
json.loads(tool_call.function.arguments)
)
messages.append({
"role": "tool",
"tool_call_id": tool_call.id,
"content": result
})
# テスト実行
result = run_agent("125 * 48 + 367 を計算してください")
print(result)
# 出力: 125 * 48 + 367 = 6,367 です。モデル選択ガイド
| 用途 | 推奨モデル | 理由 |
|---|---|---|
| 開発・テスト | meta-llama/llama-3.3-70b-instruct:free | 無料で高品質 |
| 一般的なエージェント | anthropic/claude-sonnet-4 | バランスが良い |
| 複雑な推論 | anthropic/claude-opus-4 | 最高の推論能力 |
| コーディング | openai/gpt-5 | コード特化 |
| 大量処理(低コスト) | x-ai/grok-4.1 | 最安価格帯 |
トラブルシューティング
401 Unauthorized エラー
APIキーが正しく設定されているか確認。環境変数が読み込まれているかテスト。
429 Rate Limit エラー
リクエスト制限に達しています。少し待つか、クレジットを追加してください。
モデルが見つからない
モデル名は正確に指定する必要があります。モデル一覧で確認してください。