2026年に/goalを使ってClaude CodeとCodexを一晩実行する方法:14時間の自律モード
MarkdownClaude Code 2.1.139とCodex CLIの/goalコマンドは、AIエージェントを何時間も自律的に実行します。セットアップ方法、実例、消費トークン数を解説します。
記事の全文を読む
重要なポイント
/goalコマンドはClaude Code 2.1.139(2026年5月11日)とCodex CLI 0.128.0(2026年4月30日、5月21日から安定版)に登場しました。「完了」の基準を一度定義すると、基準を満たすかトークンが尽きるまで、エージェントは計画、実行、検証のサイクルを自律的に繰り返します。OpenAIは、1,300万トークンを使った25時間の実行を公表しました。これは、測定可能な基準がある移行、ベンチマーク、リファクタリングに適しています。UI作業、本番データベース、または「もっと良くして」のような曖昧な依頼には適していません。
Ailootの利用方法については、ドキュメントをご覧ください。
/goalとは何か、なぜ2026年に登場したのか?
重要なポイント
/goalが登場する前は、エージェントの各ターンで手動の「続けて」が必要でした。ファイルを開いて読み、何かを書き、停止して待ちます。/goalコマンドでは完了基準を一度設定すれば、エージェントが自分でタスクの終了を判断し、完了するまで制御を返しません。
2026年4月以前、私たちが皆経験していたのは、こんな状況でした。Claudeに「プロジェクトをPydantic v1からv2に移行して」と頼みます。作業を始めますが、30秒後に止まります。結果を確認して「続けて」と入力すると、次の手順を進めてまた止まり、もう一度「続けて」と入力します。大規模な移行では、手動で200~300回「続けて」と入力することになり、並行して別のコードを書く代わりに、実質的にエージェントの面倒を見ることになります。
OpenAIの分析によると、問題はモデルの「頭の悪さ」ではなく、ループのアーキテクチャにありました。モデルはいつ止まればよいか分からず、ターンごとにブレーキをかけていました。「完了」の基準を与えれば、モデル自身が判断できるようになります。
こうして/goalが生まれました。モデルではなく、ハーネスに組み込まれた仕組みです。
この発言は、2026年5月19~20日にロンドンで開催されたCode with Claudeカンファレンスでのものです。両方のツールで/goalが公開されてからの1カ月に、実際に起きたことを表しています。
Claude CodeでGoalモードを設定するには?
重要なポイント
Claude Code 2.1.139は、/goalコマンドとともに2026年5月11日にリリースされました。小型モデル(デフォルトではHaiku)が、各ターンの後に基準を確認します。基準が満たされていない場合、Claudeは次のターンに進みます。基準は最大4,000文字で、セッションごとに設定できるゴールは1つです。
Anthropicの公式ドキュメントにある最小限の例です。
claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"
このコマンドは、ゴールを1つ設定してエージェントをバックグラウンドで起動します。ClaudeはPRを探し、CHANGELOG.mdと照合し、不足する行を追加して、基準を満たした時点で停止します。
対話モードでは、/goalに続けて条件を入力するだけです。
/goal all pytest tests pass and mypy strict reports zero errors
その後Claudeは、次のように動作します。
- 各ターンの後、別の高速モデル(デフォルトではHaiku)に現在の条件と会話履歴が渡される
- このモデルは、短い理由を添えて「はい」または「いいえ」と答える
- 答えが「いいえ」の場合、Claudeはユーザーに制御を返さず、自動的に次のターンに進む
- 答えが「はい」の場合、ゴールが解除され、制御がユーザーに戻る
各ターンの後、小型で高速なモデルが条件を満たしたか確認します。満たしていない場合、Claudeはユーザーに制御を返さず、次のターンを開始します。
実際に使うまで気づきにくい、厳しい制限があります。
/goalが使えるのは、信頼確認ダイアログを承認済みの作業ディレクトリだけです。新しいマシンで、Claudeがそのディレクトリをまだ記憶していない場合、コマンドは失敗しますdisableAllHooksまたはallowManagedHooksOnlyが設定された企業環境では、このコマンドを利用できません- 条件は最大4,000文字です
- 1つのセッションで有効にできるゴールは1つだけです。新しい
/goalを設定すると、以前のゴールはリセットされます --resumeを使うと条件は保持されますが、ターン数、時間、トークンのカウンターはリセットされます
制御用コマンド:
- 引数なしの
/goal— 現在の状態を表示 /goal clear(またはstop、off、reset、none、cancel)— ゴールを解除
Anthropicによると、評価にかかるコストは「通常、メインターンのコストと比べて無視できるほど」です。Haikuは基準と会話テキストを評価し、ツールは呼び出さないため、確認は安価です。費用がかさむのは、メインモデルのターンです。
Codex CLIで/goalを設定するには?
重要なポイント
Codex CLI 0.128.0では、2026年4月30日に実験的機能として/goalが追加されました。5月21日には、リリース26.519/npm 0.133.0で安定版になりました。2つのプロンプトテンプレート、continuation.md(「続行」)とbudget_limit.md(「停止」)を通じて動作します。ゴールはスレッドに紐づき、再起動後も保持されます。
コマンドはClaudeの場合と同じです。
codex
> /goal all vitest tests pass and there are no eslint errors
Codexには、ゴールを制御するコマンドがさらにあります。
| コマンド | 動作 |
|---|---|
/goal condition | ゴールを設定 |
/goal | 状態を表示 |
/goal pause | 一時停止 |
/goal resume | 再開 |
/goal edit | 条件を変更(GA版) |
/goal clear | ゴールを解除 |
Claudeとの主な違いは、別のモデルではなくCodex自身が「完了したか」を確認することです。各ターンの後、Codexはopenai/codexリポジトリのcontinuation.mdテンプレートを自動的にコンテキストに挿入します。文字どおりに訳すと、次のとおりです。
「アクティブなスレッドのゴールに向かって作業を続けてください。完了した作業を繰り返してはいけません。ゴール達成に向けた次の具体的な行動を選んでください。ゴールが実際に達成され、必要な作業が残っていないことを監査で確認できた場合に限り、達成済みとしてください。」
トークンが上限に近づくと、2つ目のテンプレートbudget_limit.mdが挿入されます。
「ゴールがトークン上限に達しました。新たな大きな作業を始めないでください。このターンをできるだけ早く終えてください。有用な進捗をまとめ、残りの作業とブロッカーを明らかにし、次に何をすればよいかをユーザーに分かりやすく示してください。」
考え方は同じです。「実行したことについて嘘をつかない」。ゴールが本当に未達の場合にだけ続行します。budget_limitでは停止しますが、残っている作業を正直に説明します。
Claudeとは違い、Codexはゴールをセッションではなくスレッドに紐づけます。夜にターミナルを閉じて朝に開き直し、/goal resumeを実行すると、同じゴールとメモリ内の同じ事実を引き継いで作業が再開されます。自分のスケジュールに合わせて実行を分割したい場合に便利です。
Claude Codeの/goalとCodexの/goalの違いは?
重要なポイント
Claudeでは、作成者と判定者が分かれています。メインモデルがコードを書き、別の小型モデルが判定します。Codexでは、1つのエージェントが自分の作業を確認し、「実行したことについて嘘をつくな」と自分に言い聞かせます。アーキテクチャは異なりますが、ループに陥るリスクは同じです。
比較の際に最も見落とされやすい点なので、詳しく見てみましょう。
| 項目 | Claude Code /goal | Codex /goal |
|---|---|---|
| リリース | v2.1.139、2026年5月11日 | v0.128.0、2026年4月30日(実験版)→ v0.133.0/26.519、2026年5月21日(安定版) |
| ゴールの範囲 | セッション | スレッド(再起動後も保持) |
| 制御 | set、clear(および別名) | set、view、pause、resume、edit、clear |
| 「完了したか」を確認するもの | 別のモデル(デフォルトではHaiku) | 同じエージェントが、挿入されたプロンプトを通じて確認 |
| 評価役のファイルアクセス | なし。会話テキストのみを基に判定 | あり。ファイル、テスト、ログを調べられる |
| 予算 | 条件文に「または20ターン後に停止」と記述 | 組み込みのトークン上限に達するとbudget_limit.mdを自動挿入 |
| ハードな支出上限 | なし。サブスクリプションの制限のみ | なし。サブスクリプションの制限のみ |
| 条件の長さ | 最大4,000文字 | 指定なし |
| 対応環境 | 対話モード、-p、デスクトップアプリ、Remote Control | アプリ、IDE拡張、CLI、ACPクライアント |
概念上の違いは、Claudeがループを品質契約(外部評価役)として扱い、Codexが実行の仕組み(エージェントが自己管理)として扱う点です。
実際の使い分けとして、「完了」基準を独立した視点で判定してほしい場合はClaudeを選びます。評価時にエージェント自身がファイルやログを確認できる必要がある場合は、Codexを選びます。
ツール自体について詳しくは、CodexとClaude Codeの比較ガイドをご覧ください。
実例:Pydantic v1からv2への移行を31時間で完了
重要なポイント
Codexの/goalは、社内サービスの14,000行をPydantic v1からv2へ移行する作業を、4セッションに分け、実時間で31時間かけて完了しました。gpt-5.3-codexでの費用は約44ドルでした。
タスクは次のように設定されました。「Pydantic v1からv2へ移行し、すべてのpytestテストを通過させ、mypy strictでエラーが0件になること。」
実際に起きたこと:
- セッション1(8時間)— Codexがインポートを分析し、
BaseModelの宣言を書き換えて、mypyを設定 - セッション2(10時間)— バリデーターを書き換え、約200件のテストを失敗させる
- セッション3(7時間)— テストを修正し、循環依存を発見
- セッション4(6時間)— 残りのmypyエラーとリグレッションを解消
トークン費用:
「実時間の合計:約31時間、4セッション。gpt-5.3-codexの料金で計算したCodexトークン費用の合計:約$44。」
費用の大部分を占めるのは、100万トークンあたり$14のgpt-5.3-codex出力トークンです。つまり、自律的に31時間作業させる費用は、ChatGPT Plusの数週間分の料金とほぼ同じです。
エージェントが自力でできなかったこと:
- チーム向けの移行ドキュメントを書かなかった(Codexは、それが「移行」の一部だと理解しなかった)
- 新しいバージョンのPydanticで公開するための設定ファイルを更新しなかった
- 本番環境のリグレッションを1つ見落とし、発見されたのは翌日だった
言い換えれば、/goalが作業の95%を行い、残りの5%はまだ手作業で行う必要があります。現行世代では普通のことであり、使わない理由にはなりません。
macOSドライバーを一晩で14時間作業させる
重要なポイント
ドライバー開発は対話型の作業には適さない一方、長時間動くループには適しています。
この方法で最も大きな効果が得られるタスクは次のとおりです。
- 1回の反復と確認に数分かかる低レベルの作業(コンパイル、テストの実行)
- 明確で形式化できる基準がある移行(型、テスト、lint)
- 測定可能な結果があるベンチマークと最適化
- 構成が明確なドキュメントや変更履歴
Claudeの/goalでも同様にうまくできますが、Codexは外部の判定役に頼らず、自分でファイルやログを確認できるため、ドライバー開発ではより多く選ばれています。
料金はいくらかかる?一晩でトークンを使い切らない方法は?
重要なポイント
/goalにはハードな支出上限がなく、あるのはプランの制限だけです。Codexをgpt-5.3-codexで1時間実行する実費は約1.50~3ドルです。Claudeは実行コストが高い一方、評価コストは低くなります。唯一の予防策は、条件自体に「またはNターン後に停止」と書くことです。
公開情報にある数値:
| 実行 | 時間 | トークン | 費用 |
|---|---|---|---|
| OpenAIのデザインツールのデモ | 25時間 | 1,300万 | (社内での実行) |
| Pydantic v1→v2 | 31時間、4セッション | 約310万出力トークン | 約$44 |
| 音声インタビューシステム | 合計6時間44分(計算処理は41分) | 入力680万、94%キャッシュ | - |
| フォントのスモークテスト | 5分 | 188,832 | 週間クォータの5%未満 |
理解しておくべき大切な点は、Claude CodeにもCodexにも「$Nに達したら支出を停止」というハードな上限がないことです。予防策は3つあります。
- サブスクリプションの制限 — Pro、Max、またはEnterprise。AnthropicのMaxプラン(月額100ドル)なら、14時間の夜間実行も、週間クォータに余裕を残して収まります
- 条件に含めるテキスト上の制限 —
/goalに「または20ターン後に停止」と直接書きます。Claudeの判定役がこれを読み、ゴールを終了します - Codexのトークン上限 — トークンが尽きると
budget_limit.mdを挿入する組み込みの仕組み
一晩のうちに請求額を押し上げるもの:
- 「もっと使いやすくして」のような曖昧な基準。評価役には「より良い」の意味が分からないため、エージェントは決して停止しません
- スタブのない外部APIへのアクセス。再試行するたびにトークンを消費します
- 長いコンテキスト。670万トークンを超えるとコンテキストの圧縮が始まり、メモリの一部が失われます
費用の節約について詳しくは、Claude Codeのトークン消費先と利用上限を使い切らない方法のガイドをご覧ください。
/goalを実行しない方がよい5つの状況
重要なポイント
「見栄えを良くする」のような曖昧な基準、1行だけの編集、ユーザーデータがある本番データベース、セキュリティ上重要な変更、外部依存関係が不明確なタスクです。この5つの状況では、エージェントがループに陥るか、何の成果もなくトークンを消費します。
OpenAIのドキュメントでは、避けるべきことが明確に示されています。
- 1行だけの編集 — 変数名を変更するために
/goalを使う方が、手作業より高くつきます - 曖昧なゴール — 「性能を向上させる」「コードをきれいにする」「もっと使いやすくする」など。評価役には判断基準がないため、エージェントは延々と処理を続けます
- ユーザーデータがある本番データベース — エージェントが移行を壊す可能性があり、バックアップからの復元費用が節約額を上回ります
- セキュリティ変更 — 認証、暗号化、決済処理など。この場合は、コミットのすべてを人が確認する必要があります
- スタブのない外部API — ネットワーク障害が起きるたびにトークンを消費し、制御できません
エージェントが行き詰まったらどうする?
重要なポイント
エージェントが同じ箇所を3~4ターン編集した後、元に戻すなら、ループに陥っている兆候です。Ctrl+Cで中断してログを確認し、基準を厳しくするか、タスクを1つの作業に絞ります。Claudeでは/goal clearが役立ちます。Codexでは/goal pauseを使い、条件を編集します。
ループをすばやく見つける方法:
- エージェントが3ターン以上同じファイルを変更し、以前の状態に戻している
- すでに対応したはずのエラーがログに繰り返し現れる
- あなたには条件が満たされているように見えるのに、エージェントは「未達」と答える
- ターンあたりのトークン使用量が増えているのに、コードに進展がない
次にすること:
- Claude Codeの場合:
/goal clearを実行し、条件をより具体的にする - Codexの場合:
/goal pauseを実行し、現在のスレッドを確認してから、/goal editで条件を編集し、/goal resumeを実行する - どちらの場合も、基準が本当に検証可能か確認する(コマンドが終了コード0を返す、または特定の出力を生成するなど)
ループの原因は、多くの場合エージェントではなくタスク自体にあります。「すべてのテストが通る」という条件は、そもそもテストが通る状態にできることを前提としています。コードに根深いアーキテクチャ上の問題があると、エージェントは症状の周りを回り続けます。
「完了」の基準:/goalでタスクを規律正しく進める
重要なポイント
良い基準とは、終了コード0を返すコマンドや、特定の出力が得られることです。「すべてのテストが成功する」は有効ですが、「コードがよりきれいになる」は有効ではありません。テストと最低カバレッジのように、形式的な確認と測定可能な指標を組み合わせるのが最適です。
OpenAIは公式Codex Cookbookで、このルールを明確に述べています。
モデルが完了したと思っただけでは、ゴールが完了したことにはなりません。ファイル、テスト、ログ、ベンチマーク、その他の具体的な成果物に照らして結果を確認した場合に限り、ゴールは完了です。
実際に使える基準のテンプレート:
| 基準の種類 | 表現方法 |
|---|---|
| テスト | 「pytest tests/が終了コード0を返し、カバレッジが80%以上」 |
| 型 | 「src/に対するmypy strictのエラーが0件」 |
| Lint | 「変更したすべてのファイルでeslint .が終了コード0を返す」 |
| ビルド | 「npm run buildが成功し、TypeScriptのエラーがない」 |
| ベンチマーク | 「k6 run perf testでp95が200 ms未満」 |
| 差分 | 「git diffの変更がファイルX、Y、Zのみ」 |
| 組み合わせ | 「pytestが成功し、かつmypy strictのエラーが0件で、かつruff checkが成功する」 |
この例では、テスト、mypy、lintを組み合わせています。確認項目が1つでも失敗していれば、ゴールは終了しません。評価役がごまかす余地はありません。
アンチパターン:
- 「コードが良くなる」
- 「使いやすさが向上する」
- 「性能が向上する」
- 「ドキュメントが完成する」
「動作する」と「動作しない」の違いは、検証可能かどうかです。コマンドで確認できない基準は、何を使っても確認できません。これはOpenAIの言う「長期的な一貫性」も意味しています。エージェントは長時間考えることはできますが、何をもって「十分に良い」とするかを自分で決めることはできません。
実際のプロジェクトで「1つのプロンプト、1つの結果」という考え方を試すことができます。/goalを設定し、基準を定めて実行し、何がうまくいかなかったかを分析してください。
出典
Ailootについて詳しく知る。
詳細を見る
2026年に/goalを使ってClaude CodeとCodexを一晩実行する方法:14時間の自律モード:よくある質問
/goalの完了条件はどう書けば役立ちますか?
テスト、型チェック、ビルド、ベンチマークの名前と必要な結果を挙げ、確認可能な条件にします。必要なチェックを明示的に組み合わせ、編集してよいファイル範囲も指定してください。「改善して」だけでは、測定できる停止条件になりません。
エージェントが同じ失敗した編集を繰り返す場合は?
実行を中断してログを確認します。同じファイルを変更して戻し続けるなら、タスクを絞るか合格条件を具体化してください。再開前に、そのチェックが実際に合格可能なことを確かめます。