💡

Claude Codeを自由に操る!複数プロバイダ対応プロキシツール徹底解説

に公開

GitHub リポジトリ: nogataka/claude-code-proxy-ts


1. このツールでできること

Claude Code Proxy を導入すると、Claude形式のAPI呼び出しを維持したまま複数のプロバイダ(OpenAI, Azure, Ollama, Databricks など)を柔軟に切替利用できます。この記事では、概要から仕組み、設定方法、今後の展望までをわかりやすく紹介します。

図: 機能対応表

機能 OpenAI Azure Ollama Databricks
SSEストリーム △(同期中心)
ツール呼び出し
モデル抽象化

2. なぜ必要なのか?背景と課題

各プロバイダは API 仕様や挙動が微妙に異なり、クライアント実装が複雑になりがちです。Claude Code Proxy は Claude形式で統一されたAPI を提供し、差分をサーバ側で吸収します。

図: 従来の課題


3. Claude Code Proxyとは?

Claude Code Proxy は、Claude形式 /v1/messages を受け取り、各プロバイダへ変換・転送するプロキシサーバです。主な機能は以下の通りです。

  • 複数プロバイダ対応(OpenAI, Azure, Ollama, Databricks)
  • SSEストリーミング(Claudeイベント形式)
  • ツール呼び出し & マルチモーダル対応
  • モデル抽象化(big/middle/small)
  • クライアント認証 & ロギング機能

図: 全体像


4. まずは動かしてみよう

最短導入手順

npx @nogataka/claude-code-proxy-ts@latest
  • 初回起動で ~/.claude-code-proxy-ts/config.json が自動生成。
  • 環境変数で接続先を指定:
ANTHROPIC_BASE_URL=http://localhost:8082 claude

図: 導入フロー


5. 設定ファイルを理解する

設定は JSON 一枚で管理します。主要項目:

  • providers: 各プロバイダの adapter・APIキー・baseUrl・モデル定義
  • routing: defaultProvider・fallbackOrder
  • limits: timeout・retries・max/min tokens
  • client: expectedApiKey でアクセス制御

図: 設定ファイル構造


6. 仕組みをのぞいてみる(アーキテクチャ)

Fastify ベースで構成され、以下の流れで処理が進みます。

  1. API層でリクエスト受信
  2. 変換層で Claude形式 ⇔ プロバイダ形式を変換
  3. クライアント層で実際の API 呼び出し
  4. レスポンスを Claude形式 SSE に再構築

図: モジュール構成


7. リクエストとレスポンスの変換ロジック

リクエスト変換

  • Claude メッセージ → OpenAI/Azure/Ollama/Databricks の形式へ変換
  • system/user/assistant 役割、tools、画像、max_tokens 等を適用

レスポンス変換

  • Providerのレスポンスを Claude のイベント形式に再構築
  • SSE: message_start → content_block_start → content_block_delta → content_block_stop → message_stop
  • Usage 再構築、エラー統一

図: SSEタイムライン


8. プロバイダごとの特徴

Adapter 特徴 注意点
openai Chat Completions互換 SSE対応
azure デプロイ名を model に記入 baseUrl に /deployments を含めない
ollama JS SDK 利用、ローカルモデル対応 stream切替可能
databricks /invocations 経由で同期呼出 stream非対応

9. 運用のポイント

  • ログレベル切替(debugで変換前後を出力)
  • 認証:expectedApiKey によるAPIキー検証
  • リトライ・タイムアウト制御
  • fallbackOrder による可用性確保

図: リクエストライフサイクル監視ポイント


10. 使い方の具体例

  • OpenAI をデフォルト、Azure を /azure 経由で利用
  • Ollama をローカル検証に活用
  • Databricks を同期APIで呼出

図: プロバイダ切替シーケンス


11. これからの拡張(ロードマップ)

Claude Code Proxy はさらに以下の拡張を予定しています。

監視とメトリクス収集(Prometheus/Grafana)

  • Proxyに Prometheus Exporter を内蔵し、リクエスト数/エラー率/トークン使用量を収集
  • Grafana ダッシュボードで可視化し、SLA/コスト監視を強化

マルチテナント対応とアクセス制御

  • テナントごとの APIキー管理
  • テナント別ポリシー設定(利用可能モデル/プロバイダ制御)
  • 管理UI(React/Next.js)でテナント管理を容易化
  • Terraform/Helmと連携してクラウド運用対応

タイムライン

Claude Code Proxy 拡張ロードマップ


12. まとめ

Claude Code Proxy は「クライアントはClaude形式のまま、プロバイダ差分をサーバ側で吸収」することで、複数プロバイダを効率的に活用できます。導入の手軽さと運用のしやすさを両立し、今後の拡張でさらに強力な基盤になることが期待されます。

Discussion