DeepSeek を Claude Code に接続する方法

Written by

in

Claude Code は Anthropic のコンソール エージェントで、プロジェクト ファイルの読み取り、コードの編集、コマンドとテストの実行、リポジトリの検索、git の操作を行うことができます。これを使用する際の主な不便な点はコストです。多くのコンテキストを含む長いセッションはすぐにサブスクリプション予算を使い果たしてしまいます。

解決策はあります。 DeepSeek は、Anthropic API と互換性のあるエンドポイントを提供します。ベース アドレスとトークンを変更するだけで十分です。再インストールやパッチを必要とせずに、Claude Code が DeepSeek モデルで動作し始めます。この記事では、macOS、Linux、Windows でこれを設定する方法を説明します。

これが必要な理由

理由は異なる場合があります。
価格。 DeepSeek モデルは Claude よりも著しく安価であり、プロジェクトのナビゲート、軽微な編集、テストの実行などの日常的なエージェントのタスクでは、常に最高の品質が必要なわけではありません。
利用可能性。 サブスクリプションを持っていない場合、または何らかの理由で Anthropic カードでの支払いが利用できない場合、DeepSeek が有効なオプションになります。
実験。 異なるモデルが同じ環境で同じコードベースをどのように処理するかを比較するのは興味深いです。

必要なもの

Claude Code のインストールと DeepSeek API キーが必要です。 Claude Code がまだインストールされていない場合、順序は次のとおりです。
1. Node.js 18 以降をインストールします。 Windows では、さらに Git for Windows が必要になります。
2. 以下のコマンドを使用してClaude Code本体をインストールします。
3. インストールを確認します。

npm install -g @anthropic-ai/claude-code
claude --version

バージョンが表示されれば、インストールは成功しています。 API キーは、キー ページの DeepSeek 個人アカウントに作成されます。

環境変数による設定

すべての統合は環境変数によって決まります。 macOS と Linux の場合は次のようになります。

export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=ваш_ключ_deepseek

export ANTHROPIC_MODEL=deepseek-flash[1m]
export ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-flash[1m]
export ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-flash[1m]
export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-flash
export CLAUDE_CODE_SUBAGENT_MODEL=deepseek-flash

export CLAUDE_CODE_EFFORT_LEVEL=max
export CLAUDE_CODE_AUTO_COMPACT_WINDOW=786432

Windows の PowerShell では構文が異なりますが、変数名は同じです。

$env:ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
$env:ANTHROPIC_AUTH_TOKEN="ваш_ключ_deepseek"
$env:ANTHROPIC_MODEL="deepseek-flash[1m]"

ここで何が何であるかを理解しましょう。 「ANTHROPIC_BASE_URL」変数は、リクエストを Anthropic サーバーから DeepSeek にリダイレクトします。 `ANTHROPIC_AUTH_TOKEN` がキーの代わりになります。残りの変数は、どのモデルがどの役割で使用されるかを決定します。 `[1m]` 接尾辞が付いたモデルがあります。これは、約 100 万トークンのコンテキスト ウィンドウを持つオプションであり、エージェントが一度に大幅に多くのプロジェクト ファイルを保持できるようになります。したがって、履歴の自動圧縮が早すぎないように、`CLAUDE_CODE_AUTO_COMPACT_WINDOW` がこのウィンドウのサイズに設定されます。

変数を毎回手動でエクスポートするのではなく、クロードコードの設定に登録しておくと便利です。その後、設定は起動時に自動的に取得されます。

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic",
    "ANTHROPIC_AUTH_TOKEN": "ваш_ключ_deepseek",
    "ANTHROPIC_MODEL": "deepseek-flash[1m]",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-flash",
    "CLAUDE_CODE_SUBAGENT_MODEL": "deepseek-flash"
  }
}

その後、プロジェクト ディレクトリに移動し、エージェントを実行します。

cd ваш_проект
claude

VS Code のクロード コード

Claude Code はターミナル内だけでなく、VS Code の拡張機能としても利用できます。これは通常の方法でインストールされます。Cmd+Shift+X を使用して拡張パネルを開き、「Claude Code」を見つけて「インストール」をクリックします。この拡張は Anthropic 自体によって行われます。

拡張機能には CLI の独自のコピーが含まれており、ターミナル バージョンと同じ ~/.claude/settings.json ファイルを読み取ります。前のセクションの設定もここに適用されますが、ほとんどの場合混乱を引き起こすため、1 つ注意点があります。

起動前に入力検証が行われます

開始する前に、拡張機能は settings.json ではなく、独自の `claudeCode.environmentVariables` 設定から資格情報をチェックします。 settings.json の値は実行中のプロセスに到達します。つまり、API アドレスと選択されたモデルは正しく取得されますが、拡張機能自体のログイン チェックには合格しません。ターミナルですべてがすでに動作しているにもかかわらず、ログイン画面が表示される場合は、これが原因です。

これは、VS Code 設定の数行で解決できます。`claudeCode.environmentVariables` 内の変数を複製し、ログイン要求を無効にします。

{
  "claudeCode.environmentVariables": [
    { "name": "ANTHROPIC_BASE_URL", "value": "https://api.deepseek.com/anthropic" },
    { "name": "ANTHROPIC_AUTH_TOKEN", "value": "ваш_ключ_deepseek" },
    { "name": "ANTHROPIC_MODEL", "value": "deepseek-flash[1m]" }
  ],
  "claudeCode.disableLoginPrompt": true
}

macOS のニュアンス

Dock または Finder から VS Code を起動する場合、~/.zshrc から環境変数を継承しません。これは macOS の標準的な動作であり、クロード コードのドキュメントで詳しく説明されています。つまり、拡張機能のシェルで「export ANTHROPIC_BASE_URL=…」を実行しても機能しません。この変数はその環境に存在しません。

ここから得られる結論は 2 つあります。まず、`claudeCode.environmentVariables` の設定はシェル変数よりも信頼性が高くなります。次に、それでもシェルを使用したい場合は、変数がすでにエクスポートされているターミナルからエディターを起動します。

code .

うまくいかないこと

サードパーティプロバイダーでは、claude.ai アカウントが必要なため、一部の拡張機能は利用できません。
– クラウド セッションにはプラン使用量バー、音声入力、Web タブはありません。
– ログアウト コマンドはメニューに表示されません。
– `/usage` には、プランの制限ではなく、現在のセッションのトークンの消費量と数が表示されます。
– ベース アドレスが Anthropic でない場合、リモート コントロールは機能しません。

これは予期された動作であり、セットアップが失敗したことを示すものではありません。

これとは別に、JetBrains には独自のプラグインがあることを付け加えておきますが、その設計は異なります。組み込みの CLI は含まれておらず、統合ターミナルにすでにインストールされているものを起動します。環境変数の設定はないため、エクスポート済みの変数を使用してターミナルから IDE を起動する必要があります。

DeepSeek がクロード モデル名を理解する方法

Claude Code は内部的にモデルを claude-opus、claude-sonnet、claude-haiku などの名前で参照します。 DeepSeek はこれらの名前をインターセプトし、独自の名前に置き換えます。
claude-opus で始まるものはすべて deepseek-v4-pro になります。
claude-sonnet または claude-haiku で始まるものはすべて deepseek-flash に送られます。
– 不明なモデル名もディープシークフラッシュに短縮されます。

これは、モデルを明示的に指定しなくても統合は機能しますが、どのモデルとどの料金でリクエストに応えるかを明示的に制御する方が良いことを意味します。そのため、上記の設定ではすべてのロールが手動で書き込まれます。

注意すべきこと

互換性は不完全なので、事前に知っておく必要があります。 DeepSeek は、Anthropic API の一部の機能を単純に無視します。

プロンプトのキャッシュ。 「cache_control」フィールドはサポートされていません。 Claude Code は、同じコンテキストを繰り返し送信することで過剰な料金が発生しないように、キャッシュを積極的に使用します。ここではこのようなことは起こらないため、長時間のセッションはトークンあたりの価格から予想されるよりも高価になります。古い対話を際限なく続けるのではなく、定期的に新しい対話を開始します。
思考予算。 ` Thinking` パラメータはサポートされていますが、その中の `budget_tokens` は無視されます。
その他。 「top_k」、「service_tier」、「container」フィールド、および API からの MCP サーバーの接続も無視されます。
MCP。 エージェントの通常のツール (ファイルの読み取り、編集、コマンドの実行、検索) は正常に機能しますが、DeepSeek 側の組み込み MCP サーバー メカニズムは機能しません。

これとは別に、プロキシについても言及する価値があります。コミュニティには「ds-cc-proxy」のようなプロジェクトがあり、Claude Code と DeepSeek の間に配置され、軽微な非互換性を解消し、メイン セッションとサブエージェントを異なるモデルに分離するタスクを引き受けます。標準セットアップの動作が不安定な場合は、このような中間層が役に立ちます。

クロード コード ルーター

上で説明した方法では、すべてのタスクに対して 1 つのモデルを配置します。しかし、エージェントはまったく異なることを行います。プロジェクトの構造を理解し、小さな点を修正し、時には本当に複雑な問題を解決します。作業の種類ごとに異なるモデルを使用するのは論理的です。これはまさに、クロード コード ルーター (CCR)、つまりクロード コードとモデル プロバイダーの間に立つローカル ゲートウェイが実行できることです。

それは何をもたらしますか

ルールによるルーティング。 どのモデルがメイン セッションを担当するか、どのモデルがバックグラウンド タスクを担当するか、どのモデルがスケジュール モードを担当するかを設定できます。複雑な推論にのみ高価なモデルを使用し、ルーチンを安価なモデルに譲るのは理にかなっています。
バックアップ オプション。 プロバイダーがエラーを返した場合、リクエストはセッションをドロップせずに、チェーン内の次のモデルに送信されます。
可観測性。 インターフェイスには、リクエスト ログ、遅延、トークン消費量、コストが表示されます。これらは、直接接続した場合のみ推測できます。
複数のエージェントに 1 つのアドレス。 プロバイダー、キー、ルールは 1 か所に存在し、クライアントは 1 つのローカル アドレスに接続します。

まずバージョンについて – これは重要です

時間を節約できるので、ここで警告する価値があります。 CCR はその歴史の中で大幅に再設計されており、 検索で見つかる記事のほとんどが古い バージョンについて説明しています。

古いバージョンでは、構成は Providers ブロックと Router ブロックを含むファイル ~/.claude-code-router/config.json にあり、すべては `ccr code` コマンドで起動されました。今はもうそのようには機能しません。現在のバージョン (3.x) は、設定を SQLite データベースに保存し、Web インターフェイス経由で管理します。データベースがまだない場合、古い config.json は移行ソースとして一度だけ読み込まれます。その後、編集しても何も影響しません。

つまり、インターネットで config.json と「ccr code」コマンドを編集する手順を見つけても何も機能しなかった場合は、もう誰も読まないファイルを編集していることになります。それはあなたのせいではありません。

インストール

Node.js 22 以降が必要です。

npm install -g @musistudio/claude-code-router
ccr ui

「ccr ui」コマンドは、バックグラウンドでサービスを起動し、ブラウザで管理インターフェイスを開きます。他のコマンドについても知っておくと便利です。`ccr start` はサービスを開始し、`ccr stop` はサービスを停止します。`ccrserve` はフォアグラウンドで動作し、ログを表示する必要がある場合に便利です。

デフォルトでは、管理インターフェイスはポート 3458 に存在し、モデルのゲートウェイ自体はポート 3456 に存在します。

設定

ファイルを手動で編集することなく、すべてが Web インターフェイスで行われます。
1. 「プロバイダー」セクションで、DeepSeek プロバイダーを追加し、そのキーを指定します。注意: ここではドメインだけでなく、チャット/完了ポイントまでの完全なアドレスが必要です。
2. 「モデル」セクションで、このモデルが何であるかを説明します。説明はルーティングに役立ちます。
3. 「エージェント構成」セクションで、デフォルトのモデルを設定します。
4. [ルーティング] セクションで、どのモデルがどのリクエストに応答するかというルールを設定します。
5. [API キー] ページで、CCR クライアント キーを作成します。これは、DeepSeek キーではなく、Claude Code が使用するものです。

この後、残っているのは、クロード コードをゲートウェイに送信することだけです。インターフェイスに表示されるゲートウェイ アドレスをベース アドレスとして指定し、CCR クライアント キーをトークンとして指定します。

良い点: ルーティング ルールは、フィールドだけでなく、ロジックが 1 つのフィールドを比較するよりも複雑な場合は、JavaScript スクリプトでも作成できます。

使用する価値はありますか

DeepSeek を Claude Code に接続することは、主に、便利なエージェント環境を犠牲にすることなくコストを削減する方法です。同じインターフェイス、同じツール、同じワークフローが得られますが、モデルは異なります。セットアップには数分かかりますが、完全に元に戻すことができます。環境変数を削除するだけで Anthropic モデルに戻ります。

制限も明らかです。プロンプト キャッシュがなく、API フィールドに関する互換性が不完全で、複雑なアーキテクチャ タスクではモデルの品質が異なる可能性があります。リポジトリでの日常的な作業 (ナビゲーション、リファクタリング、テストの実行) には、これで十分です。

リンク

https://platform.deepseek.com/api_keys
https://api-docs.deepseek.com
https://docs.anthropic.com/en/docs/claude-code
https://github.com/anthropics/claude-code
https://github.com/musistudio/claude-code-router
https://ccrdesk.top/en/guides/cli/

ソース

https://api-docs.deepseek.com/guides/anthropic_api
https://api-docs.deepseek.com/quick_start/agent_integrations/claude_code
https://ccrdesk.top/en/routing/
https://code.claude.com/docs/en/vs-code

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *