Codex CLI v0.124.0 の Amazon Bedrock 対応を試してみた

Codex CLI v0.124.0 の Amazon Bedrock 対応を試してみた

Codex CLI v0.124.0 が Amazon Bedrock にネイティブ対応しました。Bedrock Mantle の Responses API を経由し、OpenAI API キーを使わず AWS 認証だけでコーディングエージェントが利用できました。
2026.04.25

次週、4月28日に、AWS と OpenAI による「What's Next with AWS」が予定されています。

https://aws.amazon.com/events/whats-next-with-aws/

2026 年 2 月に発表された OpenAI と Amazon の戦略的パートナーシップ(最大 500 億ドルの投資や Bedrock 統合)以降、AWS と OpenAI の連携が加速しています。4月17日 の Opus 4.7 リリースの際にも、Bedrock Mantle の Anthropic 互換エンドポイントについて調査を行いました。

https://dev.classmethod.jp/articles/bedrock-mantle-anthropic-endpoint-opus-4-7/

Mantle 周辺の動きを追っていたところ、4月23日 にリリースされた OpenAI Codex CLI v0.124.0 の Change Log に以下の記載を見つけました。

https://github.com/openai/codex/releases/tag/rust-v0.124.0

Added first-class Amazon Bedrock support for OpenAI-compatible providers, including AWS SigV4 signing and AWS credential-based auth. (#17820)

イベントの一週間前というタイミングでこのリリースを見つけたため、今回は Mantle の OpenAI 互換側(Responses API)を Codex CLI から使った結果を紹介します。

Bedrock Mantle の API 体系

Bedrock Mantle は、Amazon Bedrock 上で OpenAI や Anthropic の API 仕様と互換性を持つ推論エンドポイントです。既存の OpenAI SDK や Anthropic SDK のコードを、ベース URL の変更だけで Bedrock 経由のモデルに接続できます。

現在、Mantle は 3 つの API を提供しています。

API 形式 用途
Responses API (/v1/responses) OpenAI 互換 ステートフルな会話(推奨)
Chat Completions API (/v1/chat/completions) OpenAI 互換 ステートレスなマルチターンチャット
Messages API (/anthropic/v1/messages) Anthropic 互換 Anthropic ネイティブインターフェース

https://docs.aws.amazon.com/bedrock/latest/userguide/apis.html

前回記事では Messages API を検証しました。Codex CLI は Responses API を使用するため、今回はこちらを試しました。

Codex CLI のインストール

Codex CLI は GitHub Releases からバイナリをダウンロードできます。Node.js は不要で、単一バイナリで動作しました。

curl -sL "https://github.com/openai/codex/releases/download/rust-v0.124.0/codex-aarch64-unknown-linux-musl.tar.gz" -o codex.tar.gz
tar xzf codex.tar.gz
mv codex-aarch64-unknown-linux-musl ~/.local/bin/codex
chmod +x ~/.local/bin/codex
$ codex --version
codex-cli 0.124.0

npm でのインストールや Homebrew にも対応しています。詳細はリリースページを参照してください。

Bedrock 接続の設定

config.toml

~/.codex/config.toml に以下を記述します。

model = "openai.gpt-oss-120b"
model_provider = "amazon-bedrock"
web_search = "disabled"

[model_providers.amazon-bedrock]
[model_providers.amazon-bedrock.aws]
region = "us-east-1"

ポイントは以下の 3 点です。

  • model_provider = "amazon-bedrock" でビルトインの Bedrock プロバイダーを指定
  • web_search = "disabled" で Web 検索ツールを無効化(後述)
  • aws.region で Mantle のリージョンを指定(デフォルトは us-east-1

web_search の無効化が必須

web_search = "disabled" を設定せずに実行すると、以下のエラーが発生しました。

ERROR: {"error":{"code":"validation_error","message":"Failed to deserialize the JSON body into the target type: ?[4]: Invalid 'tools': unknown variant `web_search`, expected `function` or `mcp` at line 1 column 31513","param":null,"type":"invalid_request_error"}}

Codex CLI はデフォルトで web_search ツールをリクエストに含めますが、Bedrock Mantle は functionmcp タイプのみをサポートしています。web_search = "disabled" を追加することで解決しました。

AWS 認証情報の渡し方

AWS の認証情報は環境変数で渡す必要がありました。~/.aws/credentials のプロファイルだけでは、以下のエラーが発生しました。

ERROR: stream disconnected before completion: failed to load AWS credentials: the credentials provider was not properly configured

aws configure export-credentials で環境変数にエクスポートすることで解決しました。

eval "$(aws configure export-credentials --format env)"

動作確認

設定が完了したので、codex exec で実行してみました。

codex exec --skip-git-repo-check "Say hello in Japanese. Reply in one short sentence only."
OpenAI Codex v0.124.0 (research preview)
--------
workdir: /tmp/codex-test
model: openai.gpt-oss-120b
provider: amazon-bedrock
approval: never
sandbox: read-only
reasoning effort: none
reasoning summaries: none
--------
user
Say hello in Japanese. Reply in one short sentence only.
codex
こんにちは。
tokens used
8,841
こんにちは。

動きました。provider: amazon-bedrock と表示されており、Bedrock Mantle 経由で推論が行われていることが確認できました。

コード生成のレスポンス速度も計測しました。

codex exec --skip-git-repo-check "FizzBuzzをPythonで書いてください。コードのみ、説明不要。"
for i in range(1, 101):
    if i % 15 == 0:
        print("FizzBuzz")
    elif i % 3 == 0:
        print("Fizz")
    elif i % 5 == 0:
        print("Buzz")
    else:
        print(i)

簡単なコード生成であれば 2〜3 秒程度で応答が返り、十分実用的な速度でした。

モデル タスク 所要時間
openai.gpt-oss-120b FizzBuzz (Python) 約 2.2 秒
openai.gpt-oss-20b FizzBuzz (Python) 約 3.1 秒
openai.gpt-oss-120b CSV集計→JSON出力関数 約 3.9 秒

Mantle で利用可能なモデルと Responses API 対応状況

Mantle の /v1/models エンドポイントで、利用可能なモデルの一覧を取得しました。

eval "$(aws configure export-credentials --format env)"
curl -s --aws-sigv4 "aws:amz:us-east-1:bedrock-mantle" \
  --user "${AWS_ACCESS_KEY_ID}:${AWS_SECRET_ACCESS_KEY}" \
  -H "x-amz-security-token: ${AWS_SESSION_TOKEN}" \
  "https://bedrock-mantle.us-east-1.api.aws/v1/models"

SigV4 署名時のサービス名が通常の bedrock-runtime ではなく bedrock-mantle となっている点に注意してください。

39 モデルがリストされていました。

モデル一覧(全 39 モデル)
anthropic.claude-opus-4-7
deepseek.v3.1
deepseek.v3.2
google.gemma-3-12b-it
google.gemma-3-27b-it
google.gemma-3-4b-it
minimax.minimax-m2
minimax.minimax-m2.1
minimax.minimax-m2.5
mistral.devstral-2-123b
mistral.magistral-small-2509
mistral.ministral-3-14b-instruct
mistral.ministral-3-3b-instruct
mistral.ministral-3-8b-instruct
mistral.mistral-large-3-675b-instruct
mistral.voxtral-mini-3b-2507
mistral.voxtral-small-24b-2507
moonshotai.kimi-k2-thinking
moonshotai.kimi-k2.5
nvidia.nemotron-nano-12b-v2
nvidia.nemotron-nano-3-30b
nvidia.nemotron-nano-9b-v2
nvidia.nemotron-super-3-120b
openai.gpt-oss-120b
openai.gpt-oss-20b
openai.gpt-oss-safeguard-120b
openai.gpt-oss-safeguard-20b
qwen.qwen3-235b-a22b-2507
qwen.qwen3-32b
qwen.qwen3-coder-30b-a3b-instruct
qwen.qwen3-coder-480b-a35b-instruct
qwen.qwen3-coder-next
qwen.qwen3-next-80b-a3b-instruct
qwen.qwen3-vl-235b-a22b-instruct
writer.palmyra-vision-7b
zai.glm-4.6
zai.glm-4.7
zai.glm-4.7-flash
zai.glm-5

OpenAI、Anthropic、DeepSeek、Mistral、Qwen、NVIDIA、Google など多数のプロバイダーのモデルが含まれていました。

Responses API 対応テスト

Codex CLI は Responses API(/v1/responses)を使用します。リストされた各モデルが Responses API に対応しているか、Codex CLI から実際に試しました。

動作したモデル:

モデル 応答例
openai.gpt-oss-120b ✅ 正常に動作
openai.gpt-oss-20b ✅ 正常に動作

Responses API 非対応のモデル:

それ以外のモデルはすべて、以下のエラーが返りました。

ERROR: {"error":{"code":"validation_error","message":"The model 'deepseek.v3.1' does not support the '/v1/responses' API","param":null,"type":"invalid_request_error"}}

anthropic.claude-opus-4-7 も Responses API では非対応でした。Opus 4.7 は前回記事の通り Messages API(/anthropic/v1/messages)でのみ利用可能です。

39 モデルがリストされていましたが、Responses API に対応していたのは openai.gpt-oss-120bopenai.gpt-oss-20b の 2 モデルのみでした。なお、Mantle のドキュメントに記載されているのは openai.gpt-oss-120b のみですが、openai.gpt-oss-20b でも動作しました。

まとめ

本記事では、Codex CLI v0.124.0 を用いて Bedrock Mantle の Responses API に接続を試み、OpenAI API キーを用意することなく、AWS の認証情報だけで OpenAI のコーディングエージェントを利用できました。

エンタープライズの観点では、AWS IAM によるアクセス制御や、利用費を AWS の請求に一本化できる点も魅力的です。bedrock:InvokeModel の IAM ポリシーやリソースタグによるコスト配分など、既存の AWS ガバナンスの仕組みに乗せられる可能性があります。

一方で、当記事の執筆時点で Responses API に対応しているのは 39 モデル中 2 モデルのみと限定的でした。

とはいえ、以前紹介した Bedrock の従量課金で Claude Desktop が利用できる件も含め、Bedrock のエコシステムに乗る AI ツールは確実に増えつつあります。

https://dev.classmethod.jp/articles/amazon-bedrock-claude-desktop-cowork-3p-inference/

今回の Codex CLI 対応もその流れの一つです。対応モデルの拡充など、今後の動向が注目されるところですが、次週のイベントの公式ページでは「Be the first to see new agentic solutions and platform capabilities」と案内されており、興味深く見守りたいと思います。

https://aws.amazon.com/events/whats-next-with-aws/

参考リンク

この記事をシェアする

関連記事