問題の説明
OpenClaw の起動時や会話中に、API 認証に関連するエラーが発生する場合があります。
[openclaw:gateway] Error: 401 Unauthorized - Invalid API key provided.
[openclaw:gateway] Provider: openai, Model: gpt-4o
または Anthropic の認証エラー:
[openclaw:gateway] Error: 401 - {"type":"error","error":{"type":"authentication_error","message":"invalid x-api-key"}}
Google Gemini の認証失敗:
[openclaw:gateway] Error: 403 - API key not valid. Please pass a valid API key.
認証エラーは、OpenClaw が AI モデルプロバイダーの本人確認を通過できず、リクエストが拒否されたことを意味します。通常は API キーの設定ミス、有効期限切れ、または取り消しが原因です。
診断手順
ステップ1:設定ファイルのキーを確認する
現在の設定における API キー設定を確認します(キーは一部の文字のみ表示されます)。
openclaw config show --unmask-partial
出力例:
providers.openai.apiKey: sk-proj-...Xk3a
providers.anthropic.apiKey: sk-ant-...9f2b
表示されるキーのプレフィックスとサフィックスが、プロバイダーのコンソールで確認できるものと一致していることを確認してください。
ステップ2:API キーを直接検証する
curl を使用して各プロバイダーの API キーが有効かどうかを直接テストします。
OpenAI:
curl https://api.openai.com/v1/models \
-H "Authorization: Bearer sk-your-key-here"
Anthropic:
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: sk-ant-your-key-here" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-4-20250514","max_tokens":10,"messages":[{"role":"user","content":"Hi"}]}'
Google Gemini:
curl "https://generativelanguage.googleapis.com/v1/models?key=YOUR_API_KEY"
401 または 403 エラーが返された場合、キー自体が無効です。
ステップ3:環境変数のオーバーライドを確認する
OpenClaw は環境変数を通じた API キーの設定をサポートしており、環境変数は設定ファイルよりも優先されます。環境変数によるオーバーライドの有無を確認します。
env | grep -i "OPENCLAW\|OPENAI\|ANTHROPIC\|GEMINI"
環境変数に間違ったキーが設定されていると、設定ファイルの正しいキーを上書きしてしまいます。
解決策
問題1:API キーの誤りまたは不正な形式
プロバイダーごとに API キーの形式は異なります。
- OpenAI:
sk-proj-またはsk-で始まる - Anthropic:
sk-ant-api03-で始まる - Google Gemini:通常39文字の英数字文字列
設定ファイルに余計なスペース、改行、引用符の問題がないか確認します。
cat -A ~/.openclaw/openclaw.json | grep apiKey
行末に ^M(Windows の改行コード)や余計なスペースがある場合は、クリーンアップが必要です。
API キーの更新推奨方法:
openclaw config set providers.openai.apiKey "sk-proj-your-new-key"
openclaw config set providers.anthropic.apiKey "sk-ant-api03-your-new-key"
openclaw config set コマンドを使用することで、手動で JSON を編集する際のフォーマットエラーを避けられます。
問題2:API キーの有効期限切れまたは取り消し
API キーは以下の理由で無効になる可能性があります。
- プロバイダーのコンソールで手動で古いキーを取り消した
- キーが設定された有効期限に達した
- プロバイダーがセキュリティ上の理由で強制的にキーをローテーションした
- アカウントの残高不足によりキーが一時停止された
解決方法は、対応するプロバイダーのコンソールにログインして新しい API キーを生成することです。
- OpenAI:platform.openai.com/api-keys
- Anthropic:console.anthropic.com/settings/keys
- Google AI Studio:aistudio.google.com/apikey
新しいキーを生成したら、OpenClaw の設定を更新してください。
問題3:マルチプロバイダーのキーローテーション設定
単一のキー障害によるサービス中断を避けるために、キーのローテーションと自動検証を設定します。
{
"providers": {
"openai": {
"apiKeys": [
"sk-proj-primary-key",
"sk-proj-backup-key"
],
"keyValidation": {
"enabled": true,
"intervalMinutes": 60,
"removeInvalid": true
}
}
}
}
keyValidation 機能は定期的に各キーの有効性を確認します。キーの無効化が検出された場合、自動的にローテーションリストから除外し、ログに警告を出力します。
問題4:環境変数を使用した安全なキー管理
API キーを設定ファイルに平文で書き込むことを避けるため、環境変数の使用を推奨します。
export OPENCLAW_OPENAI_API_KEY="sk-proj-your-key"
export OPENCLAW_ANTHROPIC_API_KEY="sk-ant-api03-your-key"
設定ファイルで環境変数を参照します。
{
"providers": {
"openai": {
"apiKey": "${OPENCLAW_OPENAI_API_KEY}"
},
"anthropic": {
"apiKey": "${OPENCLAW_ANTHROPIC_API_KEY}"
}
}
}
systemd で OpenClaw サービスを管理している場合は、service ファイルで環境変数を設定します。
[Service]
EnvironmentFile=/etc/openclaw/env
ExecStart=/usr/local/bin/openclaw start
修正の検証
キーを更新した後、OpenClaw を再起動して検証します。
openclaw restart
openclaw doctor
openclaw doctor は設定されたすべてのプロバイダーに対して API 接続テストを実行し、各プロバイダーの認証状態を表示します。すべてのプロバイダーがグリーンのステータスを示していれば、認証問題は解決済みです。
手動でテストリクエストをトリガーすることもできます。
openclaw test-message --channel telegram --text "テストメッセージ"
ログを確認して、メッセージが正常に処理されたことを確認してください。