1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Codex CLIのtoken budget、上限5でも1.1万トークン使われた

1
Posted at

はじめに

2026年7月9日、OpenAIはCodexをChatGPTデスクトップアプリ(macOS/Windows)に統合したと発表した1。GitHub PRをサイドバーでレビューできるようになったほか、リリースノートでは「rollout token budget(トークン使用量の上限設定と自動中断)」「multi-agent delegation(マルチエージェント委任の制御)」「indexed web search(サーバー承認済みURLのみのライブ検索)」が主要機能として挙げられている。

このうち rollout token budget は、openai/codex リポジトリで実装の経緯を直接追える。3段階のPRに分けてマージされていた。

  1. #28746 「add rollout token budget configuration (1/N)」(2026-06-18マージ): 設定スキーマ定義のみ。PR本文に 「This PR only defines and validates configuration. It does not track usage, inject reminders, or stop a rollout.」 と明記。
  2. #28494 「rollout budget implementation (2/N)」(2026-06-18マージ): 使用量の追跡とリマインダー通知を実装。中断(abort)は「stacked follow-up」=次のPRに委譲。
  3. #28707 「abort turns when rollout budgets expire (3/3)」(2026-06-19マージ): ここでようやく中断ロジックが入る。ただしPR本文には 「This is intentionally a soft boundary: ... every thread aborts at its next usage-accounting boundary.」(ソフトな境界であり、次の使用量チェックのタイミングで中断される)という注記がある。

つまりコード自体は6月19日時点で「上限を使い切ったら中断する」機能としてマージ済みだ。ChatGPTデスクトップの発表から3週間、CLI側でも同じロジックが動いているはずなので、実際にインストールして検証してみた。

この記事で学べること

  • Codex CLI 0.144.1 の codex features list で見える「stable」と「under development」の内訳
  • rollout_budget / token_budget を有効化する手順と、必須パラメータの発見
  • 上限を極端に低く設定しても中断されなかった実測ログ
  • ChatGPTデスクトップの発表内容とCLIの実装状況にギャップがあるという事実

前提環境

  • OS: Linux(Ubuntu 24.04)
  • Node.js: v22.x
  • Codex CLI: @openai/codex v0.144.1(npm)
  • 認証: OPENAI_API_KEY を codex login --with-api-key で登録

TL;DR

  • rollout token budgetの中断ロジックは openai/codex に 2026年6月19日にマージ済み(PR #28707)。だが codex features list では2026年7月11日時点も rollout_budget / token_budget は 「under development」=デフォルト無効 のまま。
  • 有効化すると features.rollout_budget.limit_tokens の指定が 設定スキーマ上は必須 になる(未指定だとエラーで起動しない)。
  • しかし単発の codex exec タスクでは、limit_tokens=500 でも limit_tokens=5 でも 1万トークン超を平然と使い切って完走した。中断もリマインダーも出なかった。
  • PRの「soft boundary」という設計上、単発execタスクでは使用量チェックの機会自体が訪れない可能性がある。ChatGPTデスクトップ統合の発表文だけを読んで「CLIでもコスト上限を機械的に守れる」と早合点すると事故る、という実測結果。

検証環境のセットアップ

まず CLI をインストールし、バージョンとログイン状態を確認する。

npm install -g @openai/codex
codex --version
# => codex-cli 0.144.1

printenv OPENAI_API_KEY | codex login --with-api-key
codex login status
# => Logged in using an API key - sk-proj-***

feature flag を一覧する

Codex CLI には codex features list というサブコマンドがあり、実装中の機能も含めて一覧できる。ChatGPTデスクトップの発表で名前が挙がった機能を探すと、以下が見つかった。

codex features list | grep -iE "budget|delegat|rollout|token|websearch|web_search|multi_agent"
multi_agent                          stable             true
multi_agent_mode                     removed            false
multi_agent_v2                       under development  false
rollout_budget                       under development  false
standalone_web_search                under development  false
token_budget                         under development  false
web_search_cached                    deprecated         false
web_search_request                   deprecated         false

この時点でひとつ分かることがある。changelog で「マルチエージェント委任を disabled / explicit-request-only / proactive で制御できる」と書かれていた multi_agent は すでに stable で常時有効。一方、コスト管理の要である rollout_budget と token_budget、そして indexed web search に対応する standalone_web_search は 3つとも under development のままデフォルト無効 だった。同じ発表文の中でも機能の成熟度にはかなりの差がある。

rollout_budget を有効化してみる

feature flag を有効化するコマンドは用意されている。

codex features enable rollout_budget
codex features enable token_budget
Enabled feature `rollout_budget` in config.toml.
Under-development features enabled: rollout_budget. Under-development features are incomplete
and may behave unpredictably. To suppress this warning, set
`suppress_unstable_features_warning = true` in ~/.codex/config.toml.
Enabled feature `token_budget` in config.toml.
...
Error: features.rollout_budget.limit_tokens is required when rollout_budget is enabled

~/.codex/config.toml に [features] rollout_budget = true は書き込まれたものの、直後のコマンド実行で「limit_tokens を指定しないと動かせない」というエラーが出た。設定スキーマ自体はきちんと存在している。ここまでは「実装途中だが作り込まれている」という印象だった。

実測: 上限を守ってくれるか

-c オプションで limit_tokens を指定し、codex exec(非対話実行)でタスクを投げてみる。まずは 500 トークン。

codex exec --skip-git-repo-check \
  -c features.rollout_budget.limit_tokens=500 \
  "List the first 20 prime numbers, one per line, with a short comment on each."

結果、20行のコメント付きリストが最後まで生成され、末尾にはこう表示された。

tokens used
11,132

上限500に対して実測11,132トークン。中断もリマインダーも一切出なかった。 念のため、上限をさらに極端な 5 にして、より長いタスク(300語のエッセイ生成)でも試した。

codex exec --skip-git-repo-check \
  -c features.rollout_budget.limit_tokens=5 \
  "Write a 300-word essay about the history of the Roman Empire."
tokens used
11,522

結果は同じだった。上限を5トークンに設定しても、ローマ帝国史のエッセイが最後まで生成され、11,522トークン消費して正常終了した。エラーも警告も、budgetを使い切ったことを示すメッセージも出力されなかった。token_budget を同時に有効化していたにもかかわらずである。

なぜ動かないのか

PR #28707 の「soft boundary」という説明が手がかりになる。中断は即座には起きず、「次の使用量チェック(usage-accounting boundary)」のタイミングで発火する 設計だとPR本文に書かれている。多数のツール呼び出し・複数ターンにまたがる長いエージェントセッションなら、途中のどこかでこのチェックが走り中断されるだろう。しかし今回試した codex exec は「1プロンプト→1レスポンスで完結する非対話タスク」であり、レスポンスが生成し切られるまで次の使用量チェックの機会がそもそも訪れなかった可能性が高い。

さらに codex features list を見ると、rollout_budget と token_budget は実装コードがマージされて3週間以上経った今も 「under development」のまま(=デフォルト無効、suppress_unstable_features_warning を求める警告つき)で、multi_agent のように stable へは昇格していない。コードはあるのに機能フラグが上がっていないのは、まさに「単発 codex exec のような境界チェックが発生しにくいケースで機能しない」ことをOpenAI自身が把握しているからかもしれない——あくまで推測だが、PRの設計意図と実測結果は矛盾しない。

ChatGPTデスクトップ統合の発表文だけを読むと「上限を設定すれば安全にコストを制御できる」と受け取りやすいが、実際には タスクの形(単発exec vs 長い多ターンセッション)によって効くかどうかが変わる、という注意点がある。

実務への示唆

現時点(Codex CLI 0.144.1)で codex exec のような単発タスクに rollout_budget / token_budget を過信するのは避けたほうがよい。代わりに以下のような運用が現実的だ。

  • codex exec の出力末尾に出る tokens used をログに落とし、外部スクリプトで閾値監視する
  • OpenAI 組織のUsage APIやダッシュボードで日次上限をアカウント側から強制する
  • 長時間の対話的セッション(多ターン・マルチエージェント)で使う場合は改めて中断が効くか再検証する
  • codex features list を定期的に確認し、対象フラグが stable に昇格したタイミングで再検証する

まとめ

  • rollout token budget の中断ロジックは openai/codex に2026年6月19日(PR #28707)にはマージ済みだったが、codex features list では2026年7月11日時点も rollout_budget / token_budget は「under development」のまま。
  • 単発の codex exec タスクでは limit_tokens=5 に設定しても中断されず、11,522トークン消費して正常終了した(limit_tokens=500 でも同様に11,132トークン)。
  • PRの「soft boundary」という設計上、単発execタスクでは使用量チェックの機会自体が訪れない可能性がある。長い多ターンセッションでは挙動が異なるかもしれない。
  • multi_agent は同じ発表内の機能でもすでに stable。ChatGPTデスクトップの発表文だけで機能の完成度を判断せず、codex features list で個々のフラグの成熟度を確認する習慣が実務では重要。
  • codex exec は OPENAI_API_KEY を codex login --with-api-key で登録するだけで動く。手元で同じ検証を再現できる。

著者視点の発見ポイント

筆者が最初に想定していたのは「limit_tokens を低く設定すればすぐにエラーで止まる」だった。実際に試すまでは、コスト管理機能として素直に信用しかけていた。中断されない実測結果を見た時点で「バグか、未実装か」のどちらかだと思ったが、openai/codex のPR履歴(#28746 → #28494 → #28707)を遡ると、中断ロジック自体は6月19日にきちんとマージされていることが分かった。ここで初めて「機能が無い」のではなく「soft boundary という設計上、単発execタスクでは境界チェックの機会が訪れない」という、より解像度の高い仮説にたどり着けた。ニュース発表の要約だけで終わらせず、実装のPR本文まで遡って一次情報を確認したことで、「動かない」という結果を「なぜ動かないと考えられるか」まで踏み込んで説明できた。

参考リンク

  1. Codex is now part of the ChatGPT desktop app(OpenAI、2026-07-09) ↩

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?