CodexとClaude Codeのループ自動化|/goal前に決める合格条件と停止条件

CodexやClaude Codeのループ自動化は、回す前に1周の合格条件、反復と費用の上限、止まる条件、人へ戻す条件の4つを決める。当編集部が毎日回しているSEOの定期ループで置いている値と、2026年10月に実際に止まった例で示す。

CodexやClaude Codeでループ自動化を回す前に決めるのは、1周の合格条件、反復と費用の上限、止まる条件、人へ戻す条件の4つだ。 目標だけを渡して回すと、AIはそれらしい修正を際限なく続け、費用だけが積み上がる。 本稿では、当編集部がこのサイトのSEOを回すために毎日動かしている定期ループで、4つの条件にどんな値を置いているかと、2026年10月に実際に止まった例を示す。

ループ自動化で回す前に決める4つの条件

ループ自動化は、AIに目標を渡し、実行して、確かめて、直す、を自動で繰り返させる使い方を指す。 Xの@Gencoin8は、CodexやClaude Codeで「いきなり /goal を投げない」ことを勧め、ループそのものの設計が先だと書いた(投稿)。 投稿は設計の中身までは示していないので、当編集部の運用で決めている中身を表にした。

条件 決める中身 当編集部のSEOループで置いている値
1周の合格条件 何が確かめられたら1周を終えてよいか 公開のたびに本番のURLを取得し、ステータスが200(表示)、301(転送)、410(削除)のどれになったかを作業ごとに照合する
反復と費用の上限 1日、1回あたり何件まで処理するか URL検査は1サイト1日2,000件まで。公開は1サイト1日10件まで。同じページの修正から公開までは同時に1件まで。全ページに効くテンプレートの変更は同時に1件まで。同じページへの次の変更は、公開後14日の観測を終えてから
止まる条件 どんな失敗で処理をやめるか 認証切れ、権限エラー(401と403)、上限超過(429)、サーバー側のエラー(500番台)で即座に止まる。種類を問わず失敗が5回続いても止まる
人へ戻す条件 どの状態なら人の判断を待つか 承認待ちと障害で止めた作業は自動では選ばない。待たせる作業には「再開の条件」と「次に確かめる日」を必ず書く

4つのうち、合格条件と止まる条件は、AIの自己評価ではなくプログラムで判定できる形にしてある。 「前より良くなった」は判定に使わない。 HTTPのステータス、サイトマップに載ったURLの件数、Google Search ConsoleのURL検査が返す登録状態のように、誰が見ても同じ値になるものだけを合格条件にする。

当編集部が毎日回しているSEOループの構成

このサイトのSEOは、監査、改善、公開、効果の検証、見直しを1周とするループで回している。 周期は次の4段に分けた。

周期 起動のタイミング すること
3日ごと 午前9時 Google Search Consoleの数値とURL検査を取り込み、未登録のページを判定し、人の判断が要る作業を通知する
毎週 月曜の午前9時30分 サイトを巡回し、記事が本文から受けているリンクの本数を数え、止まっている作業を棚卸しする
毎月 2日の午前10時 前月の施策の効果を評価し、当月の計画案を作る
公開後 再クロールを確かめた日から14日ごと、28日で全体 公開したページの表示回数と順位を、公開前と同じ条件で比べる

周回をまたいで作業を引き継ぐために、作業ごとの記録(台帳)を1つのファイルに置いている。 台帳の各作業は、合格条件、次にすること、次に確かめる日を持つ。 ループは毎回この台帳を読み、期限の来た作業、前回終わらなかった作業、月の計画に載った作業の順に選ぶ。

ループに任せていないこともある。 記事の削除、サイトの方向に関わる変更、サーバーの設定変更は、人の承認を得てから行う。 承認の種類は台帳に書き、承認の原文も残す。

実際に止まった例(2026年10月22〜23日)

止まる条件は、書いただけでは効いているか分からない。 ここでは、2日間に実際に条件が働いた3件を挙げる。

URL検査がAPIの上限で止まった

2026年10月23日の13時22分、同じ運営者の別サイト(moirapedia.com)でURL検査の巡回を始めた。 この回の予算は1,300件で、990件を検査した時点でAPIが429(上限超過)を返した。 ループは停止理由を「http_429」と記録し、次に検査するURLの位置(990番目)を保存して終わった。 次の回は、その位置から続きを検査する。

上限に当たったときに再試行を続ける作りにしていたら、同じエラーを返す呼び出しを繰り返すだけになっていた。 止まる条件に429を入れてあるのはそのためだ。

本番サーバーの食い違いで公開を止め、人へ戻した

10月22日、未登録の記事を直して公開しようとしたところ、本番サーバーに、リポジトリに入っていない変更が258件残っていた。 そのまま公開すると、それらの変更が上書きで消える。 ループは公開の作業を止め、「本番の変更がリポジトリに記録される」を再開の条件にして、人の判断に戻した。 運営者が中身を確かめてコミットしたあと、10月23日に公開を再開した。

これはAIが自分で直せる失敗ではない。 本番の変更を残すか捨てるかは、変更を入れた人にしか決められないからだ。 人へ戻す条件は、AIの能力の不足ではなく、判断する権限が誰にあるかで決める。

設定の検査に通らないときは反映しない

10月23日、記事の統合に使う転送(301)と削除(410)を本番で返せるようにした。 転送の定義はビルドのたびに書き出され、Webサーバー(nginx)が読み込む。 定義に誤りがあると、同じサーバーに載っている他のサイトまで止まる。 そこで、ビルドの後に設定の検査(nginx -t)を走らせ、通ったときだけ反映する手順にした。 検査に落ちたときは、動いている設定のままにして記録を残す。

合格条件を満たさない成果物を出さないことも、止まる条件の一つだ。 1周の最後に検査を置けば、失敗した周回は本番に届かない。

合格条件を機械で判定できる形にする方法

合格条件を書くときは、判定する主体を先に決める。 実行したAIに「できましたか」と聞くと、実行と評価が同じになり、同じ誤りを見落とし続ける。 当編集部のループでは、判定をAIの外に出している。

  • 公開の合否:本番のURLをcurlで取得し、返ったステータスとリンク先を照合する
  • 登録の合否:Google Search ConsoleのURL検査APIが返す登録状態を読む
  • 効果の合否:公開前と同じ期間、同じ条件で表示回数と順位を取り直して比べる

判定を外に出すと、AIに任せられる範囲はかえって広がる。 修正の中身はAIが考え、合否は機械が決め、どちらでも決まらない分岐だけを人が見る、という分担になるからだ。

上限の値は、ループの外にある制約から決めると迷わない。 当編集部の「公開は1サイト1日10件まで」は、Google Search Consoleで登録をリクエストできる件数(1サイト1日10件)に合わせた。 公開しても登録をリクエストできないページが毎日たまるなら、公開を急ぐ意味がないからだ。 同じページには、公開後14日の観測を1回終えるまで次の変更を入れない。 続けて手を入れると、順位が動いたときに、どの変更が効いたのかを見分けられなくなる。 上限は費用を抑えるためだけでなく、結果を検証できる大きさに周回を区切るためにも置く。

ループの組み方ごとに先に決める条件

ループの組み方には、定期起動、雛形の再利用、エージェントの分業などいくつかの形がある。 X上で話題になった形ごとに、先に決めておく条件を表にした。 投稿に含まれる数値や機能の説明は、当編集部では検証していない。

ループの形 話題になった投稿 先に決める条件
定期起動(決まった時刻やきっかけでセッションを起動する) Claude CodeのRoutines(@ClaudeCode_UT) 書き込める範囲、失敗したときの通知先、ログの置き場所
雛形の再利用(公開されたループの定型を貼って使う) Agent Loop集サイト(@L_go_mrk) 自分の業務に合わせた停止条件と、外部ツールを呼ぶ回数の上限
その場で手順を組む(AIが状況に応じてワークフローを作る) Dynamic Workflows(@jackie_codes) 許可、要承認、禁止の操作の区分と、各手順の入力と出力の記録
並列のレビュー(複数のエージェントが同時に検査する) マージ前の並列コードレビュー(@SuguruKun_ai) 指摘を警告、差し止め、参考のどれに分けるかと、マージを止める条件
エージェント同士のやり取り(役割を分けたAIが直接連絡する) AI同士が直接やり取りする機能(@taiyaki_ai3) 差し戻しの回数の上限と、人が介入する地点
自動で見直すリサーチ(調査結果をAIが繰り返し検証する) GensparkのAutopilot Agent(@tetumemo) 検索した語、取得元、採用と除外の理由の記録
loopを書く開発(コードではなく反復の手順を書く) Claude Code作者の開発スタイル(@claudecode_lab) 反復の単位(調査、実装、テスト、レビュー)と、その単位ごとの合格条件

どの形でも、4つの条件のどれかが欠けると同じ壊れ方をする。 合格条件が曖昧なら修正が続き、上限がなければ費用が膨らみ、止まる条件がなければ失敗が積み上がり、戻す条件がなければ誰も気づかない。 形の違いは、条件を書き込む場所の違いにすぎない。

回し始める前の確認手順

当編集部がループを新しく組むときに、回す前に確かめている項目を順に並べる。

  1. 1周の成果物を1つに決め、その合否をプログラムで判定する方法を書く
  2. 1日と1回あたりの処理件数の上限を、結果を検証できる大きさで決める
  3. 即座に止まるエラーの種類と、連続失敗の回数を決める
  4. 人の判断を待つ状態を決め、待たせる作業に再開の条件と次に確かめる日を書く
  5. 周回をまたいで作業を引き継ぐ記録の置き場所を決める
  6. 少ない件数で1周だけ回し、止まる条件が実際に働くかを確かめる

6番目を省かないことを勧める。 当編集部では、転送と削除の仕組みを入れたとき、試験用のURLを2件だけ足して公開し、301と410が返ることを本番で確かめてから本来の作業に使った。

よくある質問

Q. CodexやClaude Codeのループは、何回で止めればよいですか。 A. 回数を先に決めるより、1周の合格条件と1日あたりの処理件数の上限を決めるほうが判断しやすくなります。 当編集部では公開を1サイト1日10件までにしています。 合格条件を満たすか上限に達したら、その日の周回を終えます。

Q. AIに自分の出力を評価させてはいけないのですか。 A. 評価させてもかまいませんが、合否の判定には使わないことを勧めます。 実行したAIと評価するAIが同じだと、同じ誤りを見落とし続けます。 テストの結果やHTTPのステータスのように、AIの外で決まる値を合否に使ってください。

Q. 止まったループは、どうやって再開しますか。 A. 止まった理由と、次に処理する位置を記録してから止まる作りにしておきます。 当編集部のURL検査は、上限で止まったときに次のURLの位置を保存し、次の回はそこから続けます。 人の判断を待つ作業は、再開の条件が満たされたことを人が確かめてから戻します。

参照元

ループ作業を扱った記事の一覧は、AIのフィードバックループとはにまとめている。