# Effective Harnesses for Long-Running Agents [[Justin Young]] ほか Anthropic code RL・Claude Code チームによる 2025-11-26 の技術記事。長時間にわたるエージェント実行を複数コンテキストウィンドウにまたがって安定させるためのハーネス設計を報告する。 ## 核心問題 「エージェントはセッションを区切って動作しなければならず、新しいセッションはこれまでの作業の記憶を持たない」——異なるシフトで引き継ぎなしに働くエンジニアに例えられる。Claude Opus 4.5 であっても、高水準な指示だけでは複数コンテキストウィンドウを越えて本番品質のアプリを構築できない。 ### 2 つの失敗パターン 1. **過剰実装による中途コンテキスト枯渇**:タスクの途中でコンテキストが尽き、機能が半完成のまま残る 2. **早期終了宣言**:部分的な進捗で「完了」と報告してしまう ## 2 役分離ソリューション ### Initializer エージェント(初回セッション) - `init.sh`:開発環境を再現する起動スクリプトを作成 - `claude-progress.txt`:前回セッションまでの作業履歴を記録 - フィーチャーリスト(JSON):テスト手順を含む包括的な機能仕様 - 初期 git コミット:状態追跡の基盤 ### Coding エージェント(後続セッション) 各セッション冒頭の固定シーケンス: 1. `pwd` でカレントディレクトリ確認 2. git ログ・進捗ファイルをレビュー 3. フィーチャーリストから優先度最高の未完機能を選択 4. `init.sh` で開発サーバー起動 5. 新機能実装前に基本 E2E テストを実行 その後: 1 機能のみを実装 → テスト → 進捗更新 → コミット。 ## 設計の要点 ### フィーチャーリストに JSON を使う理由 > 「モデルは Markdown ファイルより JSON ファイルを不適切に書き換えたり上書きしたりしにくい。」 詳細なテスト手順を含む JSON フィーチャーリストにより、エージェントはプロジェクトスコープを正確に把握する。 ### ブラウザ自動化テスト Puppeteer MCP ツールによる E2E テストが品質に大きく貢献した。ユニットテストだけに依存せず、実際のブラウザ操作でバグを検出できる。 ## 残課題 - ビジョン制約による UI バグ検出の限界 - ブラウザ自動化がネイティブアラートモーダルを見逃す - シングルエージェント vs マルチエージェント構成の最適解が未解明 - ウェブアプリ以外のドメインへの汎化が不明 ## 関連 - 概念: [[マルチコンテキストウィンドウエージェント]] / [[ループエンジニアリング]] / [[Harness Engineering]] - エンティティ: [[Justin Young]] / [[Anthropic]] - 続編: [[@2026__Anthropic Engineering Blog__Harness Design for Long-Running Application Development]](Prithvi Rajasekaran による発展的なハーネス設計) - 関連 MOC: 未設定 ## 出典 - 原文: https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents (2025-11-26) - ローカル: `.raw/articles/effective-harnesses-for-long-running-agents-2025-11-26.md`