ハードコードされた5分タイムアウトを修正:ローカルLLMや拡張思考が途切れなくなった
原文(日本語に翻訳)
API_TIMEOUT_MS の設定に関わらず、低速なバックエンド(ローカルLLM、拡張思考、低速ゲートウェイ)でリクエストを中断していたハードコードされた5分リクエストタイムアウトを修正
原文(英語)
Fixed a hardcoded 5-minute request timeout that aborted slow backends (local LLMs, extended thinking, slow gateways) regardless of API_TIMEOUT_MS
概要
Claude Codeには API_TIMEOUT_MS という環境変数でタイムアウトを設定できる機能がありましたが、内部に5分のハードコードされたタイムアウトが存在し、設定値に関わらず5分でリクエストが強制終了されていました。今回の修正により、API_TIMEOUT_MS が正しく尊重されるようになり、ローカルLLM、拡張思考(Extended Thinking)、低速なAPIゲートウェイなど、応答に時間がかかる場合でも適切に動作します。
基本的な使い方
タイムアウトの延長設定
bash
# タイムアウトを30分に設定(ミリ秒単位)
export API_TIMEOUT_MS=1800000
claudeローカルLLM使用時の推奨設定
bash
# Ollamaなどのローカルモデルを使用する場合
export ANTHROPIC_BASE_URL=http://localhost:11434
export API_TIMEOUT_MS=3600000 # 60分
claude実践例
ローカルLLMとの接続
bash
# Ollamaでローカルモデルを実行している場合
# モデルによっては応答に数分かかることも
export ANTHROPIC_BASE_URL=http://localhost:11434/v1
export API_TIMEOUT_MS=600000 # 10分
claude -p "このコードを詳しく分析して"
# 以前はローカルLLMが遅い場合に5分で強制終了されていたが、
# 今後は設定したタイムアウトまで待機する拡張思考(Extended Thinking)モード
bash
# 複雑な問題で拡張思考を使用する場合
# 思考プロセスに時間がかかることがある
export API_TIMEOUT_MS=900000 # 15分
claude -p "この複雑なアーキテクチャ問題を深く考えて解決策を提案して"企業プロキシ・低速ゲートウェイ環境
bash
# 企業のAPIゲートウェイ経由でアクセスする場合
# ゲートウェイの処理に時間がかかることがある
export API_TIMEOUT_MS=1200000 # 20分
export ANTHROPIC_BASE_URL=https://corporate-gateway.example.com/anthropic
claude.env ファイルでの永続設定
env
# プロジェクトの .env ファイル
API_TIMEOUT_MS=1800000 # 30分(ミリ秒単位)タイムアウト値の目安
| ユースケース | 推奨タイムアウト |
|---|---|
| 標準的な使用 | 300000(5分、デフォルト相当) |
| 拡張思考モード | 900000(15分) |
| 軽量ローカルLLM | 600000(10分) |
| 重量ローカルLLM(70B+) | 3600000(60分) |
| 低速企業ゲートウェイ | 1200000(20分) |
注意点
- 単位はミリ秒:
API_TIMEOUT_MS=300000= 5分(300秒) - 長すぎるタイムアウトのリスク: 不必要に長いタイムアウトは、ハングしたリクエストが長時間占有される可能性があります
- 以前の回避策: 以前は
NODE_OPTIONS=--max-old-space-size=...など様々な回避策が必要でしたが、今後はAPI_TIMEOUT_MSのみで制御できます - この修正の影響を受ける環境: ローカルLLM(Ollama、LM Studio)、拡張思考使用時、遅いAPIプロキシ経由での利用