この記事は、コーディングエージェントとの協働が、ターンごとに直接プロンプトを与えることから、「ループ」を設計することへと移りつつあると論じている。ループとは、人が毎ターンプロンプトを与えなくても、作業を見つけ出し、それをエージェントに渡し、結果をチェックし、何を行ったかを記録し、次のステップを決める小さなシステムである。記事はこれを「ハーネスエンジニアリング」(単一のエージェントが動作する環境を設計すること)の一段上に位置づける。ループはハーネスをスケジュールに沿って実行し、補助エージェントを生成し、自らに作業を供給する。記事によれば、OpenAI の Codex アプリと Anthropic の Claude Code がそのための同等のプリミティブを提供するようになったことで、これは手作業で維持する特注のものというより、製品自体に組み込まれたものになってきているという。
要点
- ループには 5 つの構成要素と、状態を記憶する場所が必要である。作業を発見してトリアージするスケジュールされた自動化、並列に動くエージェント同士が衝突しないよう分離するワークツリー、エージェントが実行のたびに導き直さなくて済むようプロジェクトの知識を体系化するスキル、エージェントを実際のツールにつなぐプラグイン/コネクタ(MCP 上に構築)、そして作業を書く者とそれをチェックする者を分けるサブエージェントである。加えて、モデル自体は実行と実行の間にすべてを忘れてしまうため、実行をまたいで状態が残るよう、永続的な外部メモリ(Markdown ファイルやプロジェクト管理ボード)が必要になる。
- Codex と Claude Code はどちらも、名前は異なるものの、今では 5 つのプリミティブすべてを提供していると報告されている。Codex の Automations タブと
/goalに対して、Claude Code のスケジュールされたタスク/cron、/loop、/goal、フック。組み込みのワークツリーサポートに対して、git worktree/--worktree/isolation: worktree。両者に共通する Agent Skills。両者に共通する MCP ベースのコネクタとプラグイン。.codex/agents/に TOML で定義するサブエージェントに対して、.claude/agents/のサブエージェントと Agent Teams。 /goalは、検証可能な停止条件が成立するまで、ターンをまたいでエージェントに作業を続けさせる。Claude Code では、この条件は各ターンの後に、作業を行ったエージェントではなく別のモデルによってチェックされる。これは、作成者/チェック者の分離を停止条件そのものに適用したものだと説明されている。- 書くエージェントとチェックするエージェントを分けることが、構造上最も有用な要素だとされる。自分の作業を自分で採点するモデルは甘すぎると判断されるためであり、異なる指示を持つ(ときには異なるモデルの)検証者こそが、ループを無人で動かすことを可能にする。
- 記事は、ループの形の 1 つを具体例で示している。毎日の自動化が CI の失敗、イシュー、コミットをトリアージして状態ファイルにまとめる。対処する価値のある発見ごとに、専用のワークツリー、ドラフトを書くサブエージェント、レビューするサブエージェントが割り当てられる。その後コネクタが PR を作成して追跡チケットを更新し、ループで対処できないものは人間のトリアージ用インボックスに回される。
- ループエンジニアリングは、ループが改善されるほど深刻になる 3 つの問題を、取り除くのではなく変質させるものとして提示されている。ループも無人のまま誤りを犯すため、検証は引き続き人間の仕事であること。ループが生み出したものを人が読まなくなると、出荷したコードへの理解がより速く劣化しうること。そして、うまく動くループの手軽さが、使う人を「認知的降伏」、つまり自分の意見を持たずに返ってきたものを何でも受け入れる状態へと誘うことである。
背景
この記事は、Peter Steinberger の公開発言(「エージェントにプロンプトを与えるループを設計すべきだ」)と、Anthropic で Claude Code を率いる Boris Cherny の発言(「私は Claude にプロンプトを与えるループを走らせている……私の仕事はループを書くことだ」)を土台にしていると位置づけている。また、隣接するアイデア(エージェントハーネスエンジニアリング、ファクトリーモデル、長時間稼働エージェント、オーケストレーション税、意図の負債、理解の負債、認知的降伏)を扱う著者自身の一連の記事の 1 つでもあるとしている。著者はループの設計を、プロンプトエンジニアリングより易しいものではなく難しいものと位置づけ、2 人の異なる人が作った同じループでも、よく理解している作業をより速く進めるために使うのか、それとも作業を理解すること自体を避けるために使うのかによって、正反対の結果を生みうると強調している。