AIDive

Claude Codeの一語で上限を2x消費。5つの設定で抑えられる

AIDive · 公開

コーディングエージェント自動化とワークフロー

イントロ: 同じチェック、2倍のメーター、5つの上限

ultracodeは、Claude Codeに入力する1つの依頼をエージェントのチーム全体に変えるキーワード、またはトグルです。同じ仕様で行ったペアテストでは、2つの実行が同じ隠しチェックに通り、ultracode実行はセッションメーターを2倍以上使いました。理由はモデルが賢くなったからではありません。ハーネスが注入する一文と、オフになる3つのガードです。

この記事では4つのことを扱います。

  • プランのメーターで読むペアテスト。
  • 複数のペアで見たトークンの倍率。
  • 単独のエージェントが14個のバグを見つけた一方で、チームが仕込まれた66個を見つけた、ある種類の仕事。
  • 実行があなたの1週間を食い潰す前に上限をかける5つの設定。そのうち1つは、usage limit そのもので実行を止めます。

ultracodeが切り替えるもの: キーワード、トグル、エージェントのworkflow

ultracodeには2つのスイッチがあります。1つのプロンプトの中に ultracode と入力すると、セッションのeffortレベルには触れずに、そのタスクだけをworkflowとして走らせます。/effort コマンドからトグルを入れると、Claudeはすべての実質的なタスクでworkflowを計画するようになり、1つの依頼が続けて複数のworkflowになることがあります。

workflowとは、Claudeが自分のために書くスクリプトで、そのスクリプトがエージェントのチームをフェーズごとに動かします。小さなサンドボックス(promiseの扱いが雑なファイルが2つ、読み取り専用のレビューを依頼)では、Claudeはファイルを偵察し、「unhandled promise audit」と名付けたworkflowを展開しました。プロンプト欄の下にはタスク行が現れ、進捗バー、エージェント数、経過時間、増え続けるトークン合計が表示されました。/workflows コマンドは、エージェントごとに1行とそれぞれのトークン数を一覧にし、一時停止、停止、再開のキーも備えています。

その実行では、検証役が動き出す前の時点で、各finderがすでに約45,000トークンを読んでいました。対象はわずか数行のコードです。

どのセッションにもサイズの目安があり、Claudeが超えないよう勧められるエージェント数を示します。

サイズの目安 推奨されるエージェント数
small(Proのデフォルト) 5未満
medium 10未満

各エージェントは、あなたの会話の上に自分のリクエストを送ります。workflowの請求は1回分ではなく、エージェントの数だけあり、メーターはそのすべてを数えます。

ペアテスト: 同じ136のチェック、8パーセント対18パーセント、止まらない

ある開発者が、最上位のサブスクリプションプランで、きれいな条件でコストを測りました。小さな表計算アプリの同じ仕様、同じモデルと同じeffortで、通常実行を1回、ultracode実行を1回行いました。どちらも隠しチェック、つまりモデルが見ないテストで採点され、2つとも136個すべてに通りました。

実行 終了 使ったセッション上限 通ったチェック
通常 自力で終了、25分 8 % 136 / 136
Ultracode 76分で時間切れ、まだ確認中 18 % 136 / 136

ultracode実行の中で、Claudeはチームを動かすことだけが仕事のスクリプトを書きました。数えられたエージェントは12で、テスター、数人の審査役、そのあとページを壊すのが仕事の「breaker」たちです。breakerの1人が、数式バーの実際のバグを見つけました。別のセルをクリックしたあとも、古いテキストが表示され続けるというものです。

1分あたりで見ると、ultracode実行は通常実行とほぼ同じ速さで上限を使い、平均ではむしろ少し遅いくらいでした。燃え方が速かったのではなく、止まらなかったのです。ultracodeはClaudeを賢くするのではなく、Claudeに確認させるものであり、その確認のたびにあなたが払います。これは小さな仕様での1つのペアで、2回目の実行は時計で打ち切られましたが、形ははっきりしています。答えは同じで、セッション枠は2倍以上、増えた時間はすべて確認でした。

なぜ高いのか: 一文と、外れた3つのガード

モデルは同じです。変わるのは、ハーネスがモデルに渡すテキストです。ハーネスとは、Claude Code自体、そのツール、モデルのまわりの指示のことです。

ultracodeがオンのとき、Claude Codeはworkflowを書く前にリファレンスを読み込みます。そのテキストは、実質的なタスクのたびにデフォルトでworkflowを走らせるようモデルに伝え、請求を説明する一文を含んでいます。「The goal is the most exhaustive, correct answer you can produce, and token cost is not a constraint.」これはハーネス自身のテキストで、公開のGitHub issueにも同じ行が引用されています。

同時に3つのガードがオフになります。

  1. 実行が多すぎるエージェントをスケジュールしたときに通常出る、大規模workflowの警告が出なくなります。
  2. 同時に動かせるエージェント数というセッションの制限が、Claudeが生み出すエージェントには適用されません。
  3. autoモードでは、最初の起動が承認に回されません。

サイズの目安は助言であり、上限ではありません。サンドボックスでsmall(5エージェント未満)に設定しても、ultracode実行は9つを生み出しました。公平のために言えば、その一文はモデルがまだ天秤にかけられるデフォルトであり、ガードは非常に大きな仕事のために意図的に外されています。答えは一行に収まります。ultracodeはモデルを変えず、指示を「すべてにチームを、コストは制約ではない」に変えるのです。

倍率: 3組のペア、effortの段階、30倍のペア

2人目の開発者が、Proプランで、単独エージェントとworkflowのペアを複数回走らせました。レビュー形式のスクリプトで、毎回、前後で使用量メーターを読んでいます。

指標 単独エージェント Workflow
1つのレビュースクリプトのトークン 約115,000 972,000
ペア全体のトークン倍率 1x 最大18x、発見はほぼ同じ
メーターの動き 1x 最大3x
実時間 ほぼ同じ ほぼ同じ

workflowは速く終わりませんでした。待つ時間は同じなのに、使う量は増えたのです。並列が元を取った唯一の場面は独立した調査ジョブのバッチで、エージェントは速く終わりましたが、それでもトークンは2倍以上でした。

3つ目のテストでは、APIの価格で、すべてのeffortレベルでいくつかの小さなアプリを作りました。段階を1つ上げるごとに請求はおよそ2倍になり、ultracodeは max の数倍の費用になったのに、一度も首位に立ちませんでした。それらのトークンの大半はキャッシュ読み取りという安いものでしたが、出力トークンのごくわずかな部分が費用のほぼ半分を占めました。

もう1つのペアは都市のシーンです。単独エージェントは約1時間で、APIの価格で数ドル。ultracode実行はほぼ丸1日かかり、数十のサブエージェントを使い、費用は約30倍でした。

これらは整数単位のメーター読み取り、APIの価格で作ったゼロからのアプリ、1つの都市シーンなので、どれも単独ではスコアボードになりません。ただ、並べるとパターンはいつも同じです。ファンアウトが買うのは確認とカバー範囲であり、仕事が独立した部分に分かれない限り、より良い答えではありません。

ファンアウトが報われる場面: 判定役のテストスイートと一行のルール

この形の仕事は確かにあります。移行、監査、コードベース全体への一括処理です。

Bunは、Claude Codeで約50の動的workflowを11日間連続で走らせ、ZigからRustに書き直されました。Zigのソースは50万行を超え、着手から、同じ期間内にすべてのプラットフォームでテストスイート全体が通るところまで到達しました。うまくいった理由はエージェントの数ではなく、判定役です。既存の巨大なテストスイートが、誰の意見も介さずに合格か不合格かを示しました。

Anthropicのバグ探しも同じことを示しています。大きなコードベースに70個のバグを仕込み、単独エージェントを複数回走らせました。

エージェント 70個のうち見つけたバグ
単独エージェント(3回) 14、15、27
Workflow(3回) 毎回66

注意点が1つあります。このテストはClaude Managed Agents、つまりAPIの製品で行われ、Claude Codeではありません。コストも示されていません。

ローンチのスレッドには、報告されている他の成功例が載っていて、どれも似ています。ルールファイルに対するレビュー、コードベース全体の翻訳、スキャンされたページの山の整理です。ローンチのブログははっきり書いています。従来のコーディングタスクの大半には、5人のレビュアーのパネルは要りません。

ルールはこうです。テストスイートまたはルールセットが出力を判定し、仕事が独立した部分に分かれるときだけ、ファンアウトする。それ以外はhighで普通に走らせる。ペアテストをした人も、自分の言葉で同じことを言いました。確認そのものが仕事である場面、たとえば何百ものファイルにまたがる移行のために取っておく、と。

実行を抑える5つの設定

それぞれの上限は、すでに知っている場所にあります。

# 設定 場所 効果
1 workflowSizeGuideline: "small" /config のDynamic workflow size、またはsettings.json 助言(5エージェント未満)で、大規模workflow警告のしきい値も下がる
2 CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS 環境変数、起動前にexport デフォルトで最大16エージェントが同時に動く。4にすると残りは待ち行列に入り、実行を殺さずに燃える速度が落ちる
3 CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL 環境変数 他のサブエージェントはそのままで、すべてのworkflowエージェントを選んだ1つのモデルで動かす。安いモデルなら確認も安くなる
4 ultracode キーワード、トグルは使わない プロンプトの中。settingsの ultracode キーは使わない キーワードは1つのタスクをworkflowとして走らせて終わる。トグルは切るまで常時になる
5 autoContinueAtUsageLimit settings オン: 上限に当たった実行は一時停止し、リセットを待って続き、これを複数回行う。オフ: エージェントは壁で失敗し、実行はそこで終わる

3つの習慣がこれに加わります。ローンチのブログによると、「use 10k tokens」のようにプロンプトに書いた予算が上限になります。実行のあとは、/usage で最近の使用量のうちサブエージェントとworkflowにどれだけ回ったかが分かり、それらが支配的なときは警告が出ます。実行中におかしいと感じたら、/workflows ペインと x キーで止められ、ここまでの作業は通常残ります。

どれもエージェントを安くするわけではありません。実行が使えるエージェントの数と、使い続けられる時間に上限をかけるものです。

暴走した実行、上限、結論

公開されたある報告は、1週間がどう消えるかを示しています。最大のプランで、モデルが書いたスクリプトが1時間足らずで221のエージェントを起動しました。最初のセッション上限エラーのあとも、スクリプトは配布を続け、次の数分でさらに189のエージェントが始まりました。報告者自身の表では、壁に当たるまでの各フェーズで数千万トークンが数えられています。

フェーズ トークン(キャッシュ込み)
Ground 11,063,801
Find 35,885,272
Merge 516,226
合計 47,465,299

原因は、生成されたスクリプトの1行でした。エージェントが何も返さなかったら、生のリストを使って続ける、というフォールバックです。mergeは失敗したのに、実行は進み続けました。このバージョンは、usage limitでの一時停止より前のものであり、報告者によれば、それらのトークンは失敗したエージェントのものではありません。同時実行の上限があればこの実行は薄まり、auto-continueをオフにしていれば壁で終わっていたはずです。

結論です。同じタスクで、同じチェックに通りながら、ultracodeは通常実行の2倍以上のメーターを使いました。賢いからではなく、注入された一文と、外されたガードのせいです。元が取れるのは、テストスイートまたはルールセットが出力を判定し、各部分が互いを待たないときです。それ以外の場面では、入力して、確認の代金を払うことになります。実行が使えるものに上限をかける設定は5つです。サイズの目安、同時実行の上限、workflowのモデル、トグルよりキーワード、そして上限で止めること。

無料リソース

出典

よくある質問

Claude Codeでultracodeは何をしますか?
プロンプトの中に入力したultracodeキーワードは、そのタスク1つを動的workflowとして走らせます。動的workflowとは、Claudeが書くスクリプトで、エージェントのチームをフェーズごとに動かすものです。/effortからトグルとして入れると、オフにするまで、すべての実質的なタスクでClaudeがworkflowを計画します。
ultracodeはClaude Codeの枠をより多く使いますか?
はい。同じ仕様と同じ隠しチェックのペアテストで、通常実行はセッション上限の8%、ultracode実行は18%を使い、満点は同じなのに2倍以上でした。ほかのペアでは、発見がほぼ同じなのにトークンは最大18倍、メーターは最大3倍でした。
ultracodeはより良いモデルですか?
いいえ。モデルは同じです。ultracodeが変えるのは、ハーネスがモデルに渡す指示で、その中に「token cost is not a constraint」という一文が含まれます。さらに3つのガードをオフにします。大規模workflowの警告、生み出されたエージェントへの同時実行制限、autoモードでの最初の起動の承認です。
Claude Codeのworkflowはいつトークンに見合いますか?
テストスイートまたはルールセットが出力を判定し、仕事が独立した部分に分かれるときです。何百ものファイルにまたがる移行、ルールファイルに対する監査、バグの一括探索などがそうです。BunのZigからRustへの書き直しと、Anthropicの70個の仕込みバグのテスト(workflowが66個、単独エージェントが14から27個)がその形です。普通のコーディングタスクは、highのeffortで普通に走らせます。
Claude Codeのworkflowが使える量に上限をかけるには?
workflowSizeGuidelineをsmallにし、CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS=4をexportし、CLAUDE_CODE_WORKFLOW_SUBAGENT_MODELをより安いモデルに向け、トグルではなくプロンプトの中のultracodeキーワードを使い、autoContinueAtUsageLimitをオフにします。そうすれば、実行はリセットを待って続けるのではなく、usageの壁で終わります。
暴走しているClaude Codeのworkflowを止めるには?
/workflowsペインを開いてxを押します。ここまでの作業は通常残ります。実行のあとは、/usageで最近の使用量のうちサブエージェントとworkflowにどれだけ回ったかが分かります。

関連動画