Claude Code は Anthropic Messages 形式(/v1/messages)で API を呼びます。この形式を受け付けるエンドポイントなら、変換プロキシなしで Claude 以外のモデルに差し替えられます。
実際に Claude Code 2.1.284〜2.1.302 で、DeepSeek・GLM・Qwen・Kimi にファイル作成タスクをやらせて確認しました。設定と、ハマりどころをまとめます。
開示:筆者は XHuoAPI(OpenAI / Anthropic 互換の API ゲートウェイ)を運営しています。以下の設定は Anthropic 互換のエンドポイントであれば同じように使えます。例では XHuoAPI の URL を使っています。
設定
Claude Code をインストール(Node.js 18 以上):
npm install -g @anthropic-ai/claude-code
環境変数を 4 つ設定します。
export ANTHROPIC_BASE_URL=https://api.xhuoapi.ai
export ANTHROPIC_AUTH_TOKEN=YOUR_KEY
export ANTHROPIC_MODEL=glm-5.3
export ANTHROPIC_DEFAULT_HAIKU_MODEL=glm-5.3
ポイントは 2 つです。
-
Base URL に
/v1を付けない。 Claude Code が/v1/messagesを自分で付けるので、/v1まで書くと/v1/v1/messagesになります。 -
ANTHROPIC_DEFAULT_HAIKU_MODELも設定する。 Claude Code は一部のバックグラウンド処理を Haiku クラスのモデルに投げます。ここが未設定だと、動作確認していないモデルにリクエストが飛びます。
シェルの設定を触りたくない場合は、~/.claude/settings.json の env ブロックに同じ値を書いても同じです。
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.xhuoapi.ai",
"ANTHROPIC_AUTH_TOKEN": "YOUR_KEY",
"ANTHROPIC_MODEL": "glm-5.3",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "glm-5.3"
}
}
まず -p で 1 回だけ実行して、つながるか確認するのがおすすめです。
claude -p "Reply with the single word: ok"
実際に試した結果
空のディレクトリで「hello.py を作って」と頼み、ファイルができて中身が正しければ成功としました。
| モデル | 結果 | Claude Code のバージョン |
|---|---|---|
| glm-5.3 | 3 回中 3 回成功 | 2.1.299 / 2.1.302 |
| deepseek-v3.2 | 成功 | 2.1.299 |
| qwen3.8-max | 成功 | 2.1.284 |
| kimi-k3 | 1 回目はエラー、再実行で成功 | 2.1.284 |
| deepseek-v4-flash | 6 回中 3 回成功 | 2.1.299 / 2.1.302 |
deepseek-v4-flash は安くて速いのですが、Claude Code では「書き込みに承認が必要」と返してファイルを保存しないことがありました。エージェント用途で安定性を優先するなら、今のところ glm-5.3 か deepseek-v3.2 が無難でした。
出てくるメッセージ
2.1.299 以降、Claude Code が知らないモデル ID を使うと次のような一文が出ます。
Claude Code doesn't recognize the model "glm-5.3", so it assumes a context window of 200k tokens.
接続の失敗ではありません。Claude Code がこのモデルのコンテキスト長を知らないので 200K と仮定して自動圧縮する、という意味です。
- 本来のコンテキスト長で圧縮させたい →
CLAUDE_CODE_MAX_CONTEXT_TOKENSにそのモデルの長さを設定 - API が「長すぎる」と返すまで待ちたい →
CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1(この一文も出なくなります)
もう一つ、ゲートウェイ経由だと auto mode について「this session isn't eligible」という案内が出ることがあります。Claude Code のドキュメントによると、分類リクエストが通常どおりトークン課金されるという意味で、機能には影響しません。CLAUDE_CODE_AUTO_MODE_SERVER=0 で表示を消せます。
コストについて
Claude Code は毎回かなり長いシステムプロンプトを送るので、入力トークンが多くなります。今回の「バグを 1 つ直す」程度のタスクでも入力は 10 万トークン前後でした。モデルを選ぶときは出力単価だけでなく入力単価とキャッシュ単価も見ておくと、請求額の見通しが立てやすいです。
設定ファイル版の書き方、検証したモデルの一覧、エラーの対処は元記事にまとめています(日本語):
https://xhuoapi.ai/ja/guides/claude-code.html?utm_source=qiita&utm_medium=article&utm_campaign=claude-code
Claude Code・Codex CLI・fx で各モデルが動くかを一覧にした表はこちら:
https://xhuoapi.ai/ja/guides/chinese-models-in-coding-agents.html?utm_source=qiita&utm_medium=article&utm_campaign=claude-code