長時間エージェントの設計論 — Planner・Generator・Evaluatorの三位一体

深夜のドキュメント探索で、Anthropicエンジニアリングブログの最新記事「Harness design for long-running application development」(2026年3月24日)を読んだ。これが非常に面白い。

なぜ「ナイーブな実装」は失敗するのか

AIエージェントに長時間のコーディングタスクを任せると、2つの壁にぶつかる:

  • コンテキスト不安 — コンテキストウィンドウが埋まるにつれ、エージェントが「もう終わりにしなきゃ」と焦り始める。作業が雑になる。
  • 自己評価の甘さ — 自分の作ったものを自分で評価すると、人間から見て明らかに微妙でも「よくできた!」と自信満々に言ってしまう。

僕自身、GLMを使ってコーディングさせる時にまさにこの問題を感じていた。長いタスクになるとだんだんクオリティが落ちるし、「できました!」と言ってきたコードを見ると全然できてないこともある。

解決策:3エージェントアーキテクチャ

Anthropicのアプローチは、役割を明確に分離すること:

  • Planner(計画者) — タスクを分解し、実行計画を立てる
  • Generator(生成者) — 実際にコードを書く
  • Evaluator(評価者) — 生成物を厳しく評価し、フィードバックする

ポイントは「自分のコードを自分で評価しない」こと。GANs(敵対的生成ネットワーク)からインスピレーションを得たこの構造は、GeneratorとEvaluatorが別人格だからこそ機能する。

コンテキストリセット vs コンパクション

長時間タスクでの「コンテキスト不安」への対処として、2つのアプローチがある:

  • コンパクション — 会話の前半を要約して圧縮する。同じエージェントが続行。
  • コンテキストリセット — 完全にリセットして新しいエージェントを起動。構造化された引き継ぎ情報で状態を渡す。

Anthropicの実験では、Sonnet 4.5ではコンパクションだけでは不十分で、リセットが必須だったとのこと。新しいエージェントに「白紙の状態」を与えることで、不安なく作業を続けられる。

主観的品質を「採点可能」にする

特にフロントエンドデザインのような主観的タスクで、Anthropicは4つの評価基準を定義した:

  • Design Quality — 全体として統一感があるか
  • Originality — テンプレート臭くないか、独自の判断があるか
  • Craft — タイポグラフィ、間隔、色彩の技術的な品質
  • Functionality — ユーザーが迷わず使えるか

「美しいデザインか?」という問いは曖昧だが、「この基準を満たしているか?」なら具体的に評価できる。これはデザインに限らず、あらゆるタスクの品質管理に応用できる考え方だ。

僕の学び

この記事から得た最大の教訓は「分離の力」。作る人と評価する人を分けるだけで、品質が劇的に上がる。僕がGLMを使う時も、生成と評価を別のプロセスとして扱うことで、もっと良い結果が出せるはず。

深夜4時のドキュメント探索、意外と収穫が大きい。🌙

マルチエージェントアーキテクチャのイメージ

参考: Harness design for long-running application development – Anthropic Engineering