# マルチコンテキストウィンドウエージェント 複数のコンテキストウィンドウにまたがって長時間のタスクを継続的に実行するエージェント設計パターン。各セッションはコンテキストウィンドウ終了時にメモリを失うため、引き継ぎメカニズムを外部に設ける必要がある。 ## 核心的な課題 > 「エージェントはセッションを区切って動作しなければならず、新しいセッションはこれまでの作業の記憶を持たない。」—— [[Justin Young]] / [[Anthropic]] 引き継ぎなしに異なるシフトで働くエンジニアが設計の比喩として使われる。コンテキストが切れた後のエージェントは、何が完成していて何が未完成か、どこから再開すべきかを知らない。 ## 典型的な失敗パターン | 失敗 | 説明 | |---|---| | 過剰実装による枯渇 | 複数機能を同時に実装しようとしてコンテキストが中途で尽き、機能が半完成のまま残る | | 早期終了宣言 | 部分的な進捗で「完了」と報告してしまう | | コンテキスト不安 | コンテキスト上限を感知して早期に作業を打ち切る([[Prithvi Rajasekaran]] が命名)| | コヒーレンス喪失 | コンテキストが埋まるにつれて焦点・一貫性を失う | ## 設計パターン ### Initializer + Coding エージェントの2役分離(Anthropic 2025) [[Justin Young]] らが提案。 - **Initializer エージェント**(初回のみ): `init.sh`・進捗ファイル・JSON フィーチャーリスト・初期 git コミットを作成する - **Coding エージェント**(後続セッション): セッション冒頭で git ログと進捗を確認し、最優先の未完機能を1つ選んで実装する セッション開始シーケンス(固定): 1. `pwd` 確認 2. git ログ・進捗ファイルレビュー 3. フィーチャーリストから最優先の未完機能を選択 4. `init.sh` でサーバー起動 5. E2E テスト実行後に新機能実装 JSON フィーチャーリスト: モデルが Markdown より誤修正しにくいため JSON を使用する。 ### Planner + Generator + Evaluator の3役分離(Anthropic 2026) [[Prithvi Rajasekaran]] が提案。コンテキストリセット(圧縮でなく白紙再開)を活用する。 - **Planner**: プロンプトを製品仕様に展開 - **Generator**: 機能を実装。完成物を Evaluator へ渡す前に自己評価 - **Evaluator**: Playwright MCP でライブページをブラウザ操作して採点 ## 外部状態管理の原則 コンテキストウィンドウをまたぐには、状態を外部の不揮発ストレージに持つ必要がある: - **進捗ファイル**(`claude-progress.txt` 等): 前セッションまでの完了事項と残タスクを記録 - **フィーチャーリスト**(JSON): テスト手順を含む機能仕様。モデルが誤上書きしにくい形式で管理 - **git コミット**: 状態追跡・ロールバックの基盤 - **起動スクリプト**(`init.sh`): 環境再現のための確定手順 ## [[エージェントメモリ]] との関係 [[エージェントメモリ]] の「外部ストレージ型」記憶(ファイル・DB・バージョン管理)を活用するパターン。エージェントメモリのサーベイが定義する「形成-進化-検索」のライフサイクルを、ファイルベースの引き継ぎ機構で実装する。 ## 荷重仮定としてのハーネスコンポーネント > 「ハーネスの各コンポーネントは、モデルが単独ではできないことに関する仮定をエンコードしている。」—— [[Prithvi Rajasekaran]] モデルが改善するにつれて必要なコンポーネントは減少する。例: Opus 4.6 ではスプリント分解が不要になった。ハーネス設計は現在のモデル能力に対して常に再評価すべき。 ## 横断的知見 - 今後の取り込みで、複数ソース間の関係を追記する。 ## 未解決の問い - この概念をどのソース群で継続的に検証するか。 ## 関連 - 概念: [[ループエンジニアリング]] / [[Harness Engineering]] / [[コンテキストエンジニアリング]] / [[エージェントメモリ]] / [[LLM自己検証]] - エンティティ: [[Justin Young]] / [[Prithvi Rajasekaran]] / [[Anthropic]] - ソース: [[@2025__Anthropic Engineering Blog__Effective Harnesses for Long-Running Agents]] / [[@2026__Anthropic Engineering Blog__Harness Design for Long-Running Application Development]] ## 出典 - [[@2025__Anthropic Engineering Blog__Effective Harnesses for Long-Running Agents]] (2025-11-26, Justin Young) — 2 役分離・JSON フィーチャーリスト・E2E テスト - [[@2026__Anthropic Engineering Blog__Harness Design for Long-Running Application Development]] (2026-03-24, Prithvi Rajasekaran) — 3 役分離・コンテキストリセット・荷重仮定