# Harness Engineering AI エージェント(特に [[Codex]] のようなコーディングエージェント)を囲む**足場・制約・フィードバックループの完全な環境**を設計・維持する工学的規律。[[OpenAI]] が 2026 年 2 月に提唱した概念で、エージェントが安定した長時間の自律実行を行えるようにする。 ## 定義 > The name they gave to that environment — and to the emerging discipline of building it — is a harness. プロンプトエンジニアリング・コンテキストエンジニアリングとは異なる第三の設計層: | 概念 | 中心課題 | スコープ | |------|--------|--------| | プロンプトエンジニアリング | メッセージの表現・構造 | 単一ターン | | コンテキストエンジニアリング | 情報の可視性管理 | コンテキストウィンドウ | | **ハーネスエンジニアリング** | 運用環境全体の設計 | 数時間に及ぶ自律実行 | ## 主要要素 ### 1. コンテキストファイル(AGENTS.md / CLAUDE.md) エージェントへの共有理解を提供する機械可読ドキュメント。肥大化を防ぎ、構造化されたドキュメントへのインデックスとして機能させる。OpenAI 事例では 100 行のインデックス + `/docs/` ディレクトリに縮小。 ### 2. 機械的強制(Mechanical Enforcement) カスタムリンターと CI による依存関係の強制。OpenAI 事例での依存フロー: ``` Types → Config → Repo → Service → Runtime → UI ``` 違反時に自動修正指示をエージェントのコンテキストに注入する「一方向依存関係バリデーション」。 ### 3. フィードバックループ エージェントが自身の出力を検証するための観測環境: - Chrome DevTools Protocol(スクリーンショット) - LogQL(ログクエリ) - PromQL(メトリクス監視) ### 4. ガベージコレクション バックグラウンドエージェントによる技術負債の継続スキャンと自動リファクタリング PR 提出。 ### 5. エージェント間レビュー(Agent-to-Agent Review) レビューを人間からエージェントに委譲し、人間は高水準の設計判断に集中。 ## エンジニアの役割変化 ハーネスエンジニアリングにより、エンジニアの仕事は以下に移行する: - **環境を設計する**(Design the environment) - **意図を仕様化する**(Specify intent) - **フィードバックループを構築する**(Build feedback loops) ## OpenAI 実験の成果 [[OpenAI-Harness-Engineering]] によると、3 名のエンジニアが 5 ヶ月で以下を達成: - 100 万行の本番コード生成 - 1,500 本超の PR マージ - 平均 3.5 PR/エンジニア/日 - 手書きコード: **0 行** ## 実装事例・成果データ | 事例 | 変化 | 成果 | |------|------|------| | [[OpenAI]] Codex プロジェクト | ハーネス全体設計 | 100 万行・1,500 PR・手書き 0 行 | | [[Symphony]] 採用チーム | オーケストレーション層追加 | PR マージ 500% 増 | | Hashline | 編集フォーマット変更のみ | Grok Code Fast: 6.7% → 68.3% | | LangChain | ハーネス改善 | ベンチマーク: 52.8% → 66.5%、順位: 30 位台 → 5 位 | ## 設計哲学 > 「最良のハーネスコンポーネントは削除されるよう設計されている」 モデルが向上するにつれて、かつて必要だった制約は不要になる。ハーネスはモデルの現在の限界を補う一時的な足場であり、常に削減可能な余地を意識して設計する。 ## エージェント自己評価問題への対処 ### コンテキスト不安(Context Anxiety) エージェントがコンテキスト上限を感知して早期終了する問題。対策: 大きなコンテキスト枠を公開しつつ実使用を制限。 ### 自己評価バイアス エージェントが自身の出力を過大評価する問題。GAN から借用した生成器・評価器分離パターンで対処。 ## 関連概念・エンティティ - [[Codex]] — ハーネスエンジニアリングの主要対象エージェント - [[Symphony]] — ハーネスエンジニアリング原則のオープンソース実装 - [[OpenAI]] — 概念の提唱組織 - [[agentic SRE]] — SRE 文脈でのエージェント自律実行(関連領域) ## Anthropic のハーネス設計知見 [[OpenAI]] が概念を提唱した同時期に、[[Anthropic]] 側も独立して類似の知見を蓄積した。 ### Initializer + Coding エージェント(Justin Young, 2025-11-26) [[Justin Young]] による [[@2025__Anthropic Engineering Blog__Effective Harnesses for Long-Running Agents]] は、**マルチコンテキストウィンドウ**問題——各セッション終了時にエージェントがメモリを失う問題——に特化したハーネス設計を報告する。 - **Initializer エージェント**(初回):`init.sh`・進捗ファイル・JSON フィーチャーリスト・初期 git コミットを作成 - **Coding エージェント**(後続):固定シーケンス(git ログ確認 → 1 機能選択 → サーバー起動 → E2E テスト → 実装)で再現性を確保 - JSON フィーチャーリスト:モデルが Markdown より誤修正しにくいため JSON を使用 - Puppeteer MCP によるブラウザ E2E テストが品質向上に寄与 ### Planner + Generator + Evaluator(Prithvi Rajasekaran, 2026-03-24) [[Prithvi Rajasekaran]] による [[@2026__Anthropic Engineering Blog__Harness Design for Long-Running Application Development]] は、**自己評価バイアス**と**コンテキスト不安**に対応する 3 エージェント構成を提示する。 - **コンテキストリセット**:圧縮ではなく白紙再開でコヒーレンス保持 - GAN 着想の**ジェネレータ・エバリュエータ**分離で自己評価バイアスを構造的に解消 - Playwright MCP で実際のブラウザ操作を伴う評価(スクリーンショット・DOM 検査) - Solo vs フルハーネス比較:20 分/$9(動作不可)vs 6 時間/$200(高品質) - Opus 4.6 でスプリント分解を削除——**荷重仮定の再評価**の好例 > 「ハーネスの各コンポーネントは、モデルが単独ではできないことに関する仮定をエンコードしている。それらの仮定はストレステストする価値がある。」—— [[Prithvi Rajasekaran]] ## 横断的知見 - 今後の取り込みで、複数ソース間の関係を追記する。 ## 未解決の問い - この概念をどのソース群で継続的に検証するか。 ## 出典 - [[OpenAI-Harness-Engineering]] (2026-02-11, OpenAI) - [[@2025__Anthropic Engineering Blog__Effective Harnesses for Long-Running Agents]] (2025-11-26, [[Justin Young]], Anthropic) - [[@2026__Anthropic Engineering Blog__Harness Design for Long-Running Application Development]] (2026-03-24, [[Prithvi Rajasekaran]], Anthropic)