**AIエージェント ハーネス設計(Harness Engineering)**

2026年現在、AIエージェントの実用化で最も重要なシフトは「モデル性能を上げる」ことから「モデルを囲む仕組み(ハーネス)を設計する」ことへ移っています。プロンプトエンジニアリング → コンテキストエンジニアリング → **ハーネスエンジニアリング**というレイヤーの進化が定着しています。[[1]](https://x.com/tetumemo/status/2037876018745385083)[[2]](https://x.com/i/status/2037876018745385083)

### ハーネスとは何か
- **語源**: 馬具(手綱・鞍など)。AIの「馬」の力を制御し、信頼できる方向に導くための「装備一式」。
- **比喩**: **モデル = CPU**、**ハーネス = OS**。賢い脳(LLM)だけでは不十分で、身体・記憶・安全装置・フィードバック機構を設計する必要がある。[[1]](https://x.com/tetumemo/status/2037876018745385083)
- **核心**: Agent = Model + Harness。同じモデルでもハーネス次第で性能が劇的に変わる(Terminal BenchでTop30→Top5になった事例や、OpenAIが人間が1行もコードを書かずに5ヶ月で約100万行・1500PRの社内プロダクトを構築した事例が象徴的)。[[3]](https://x.com/taimuhanashiro/status/2023008135464788127)

ハーネス設計のゴールは「**Humans steer, Agents execute**」(人間は舵取り、エージェントは実行)を実現し、安全・高品質・再現性のある長期実行を可能にすることです。[[4]](https://x.com/i/status/2023008135464788127)

### ハーネス設計の主要原則
1. **失敗駆動の蓄積** — 失敗事例を`AGENTS.md`やルールセットに明文化し、再発防止(Hashimoto派的なアプローチ)。
2. **Creator-Evaluator分離** — 自己評価バイアスを避けるため、「作るエージェント」と「評価するエージェント」を明確に分離(Anthropicの重要指摘)。[[5]](https://x.com/masahirochaen/status/2037175753620807701)
3. **原則のRubric化(ルーブリック化)** — 「良い設計か?」のような主観を「設計原則に準拠しているか?」というチェックリストに変換。`DESIGN.md`(憲法)として最初に読ませる。
4. **Observability First** — 全ての思考・行動・結果をトレース可能に。JSONL監査証跡、コスト帰属、プロvenanceを必須。
5. **Reproducible & Revertible** — 状態はチェックポイント化、アクションは可能な限りロールバック可能に。
6. **最小権限 + 多層ガードレール** — ツール呼び出しごとにリスクパターン照合、承認ゲート、権限スコープを適用。

### 推奨アーキテクチャ(2026年時点のベストプラクティス)

```mermaid
graph TD
subgraph Constitutional ["Layer 0: Constitutional Layer"]
Principles[DESIGN.md / AGENTS.md
憲法・失敗ルール・原則]
Rubrics[評価ルーブリック]
end

subgraph Core ["Layer 1-2: Harness Core"]
Supervisor[Supervisor / Orchestrator Agent]
Executor[Agent Executor
(State Machine)]
ToolRegistry[Tool Registry + Guardrails
(契約・リスク検知)]
Memory[ Durable Memory + Checkpoint]
end

subgraph Verification ["Layer 3: Verification Layer"]
Judge[Judge / Reviewer Agent
(別個のモデル推奨)]
Tests[自動テスト + 回帰テスト]
HITL[Human-in-the-Loop Gate]
end

subgraph Governance ["Layer 4-5: Governance & Observability"]
Logger[Full Tracing + Audit Log
(JSONL + Cost Attribution)]
Graph[Graph Orchestration
(LangGraph風)]
Dashboard[監視ダッシュボード + Alert]
end

User[Human Steer
(目標・制約設定)] --> Principles
Principles --> Supervisor
Supervisor <--> Executor
Executor <--> ToolRegistry
Executor <--> Memory
Executor --> Judge
Judge --> Tests & HITL
All[All Components] --> Logger & Dashboard
Graph --> Supervisor
```

**レイヤー説明**:
- **Constitutional Layer**: 最初に読む「憲法」。ここが弱いと全て崩れる。
- **Harness Core**: 実行エンジン。ツール呼び出しごとにガードレールを挟む。
- **Verification Layer**: 自己評価を避ける別エージェントによるレビューが最重要。
- **Governance Layer**: 運用で最も価値が出る部分。事故防止と改善ループの源。

### 具体的な設計ポイント(実務で優先すべきもの)

**1. 憲法・原則設計**
- `DESIGN.md`(Layer 1: 憲法)
- `contracts/`(JSON化した28コンポーネント + 89禁止ルール例など)
- 失敗が発生したら即座にルールを追加(失敗駆動)。

**2. ツール層の厳格化**
- 全てのツールに型付き契約(Input/Output Schema)。
- 呼び出し前にリスクパターン・マッチング(危険なシェルコマンド、path traversal、secret露出など)。
- 3段階モード(Core / Standard / Enhanced)でガバナンス強度を調整。

**3. 検証ループ**
- Creator ≠ Evaluator。
- Rubricベース評価(「設計原則にX/Y/Zを守っているか?」をスコアリング)。
- セルフレビューループではなく、独立したReviewer Agent + 自動テスト。

**4. 状態・メモリ管理**
- 単なる文字列蓄積ではなく、参照渡しや構造化状態を重視(NVIDIAの2026年研究でも強調)。
- チェックポイント + 部分ロールバック機構。

**5. オブザーバビリティ**
- 毎アクションのトレース、トークン/コスト帰属、人間介入ポイントの明確化。
- AgentOps的なMCP(Model Context Protocol)対応も有効。

### 実装技術スタック例(2026年時点)
- **基盤**: LangGraph / CrewAI / AutoGen をカスタム拡張、またはゼロから構築。
- **Sandbox**: e2b, Firecracker, または厳格なPython制限環境。
- **Guardrails**: LlamaGuard系 + カスタムSemantic Guard + ルールエンジン。
- **レビュー分離**: 作成はSonnet/Opus系、評価はより厳格な別モデル(または同じモデルでも別コンテキスト)。
- **監視**: OpenTelemetry + 専用ダッシュボード + アラート。

最近のNVIDIA研究(NOOAフレームワークなど)では、AIを「Pythonのクラス」として定義し、メソッド・状態・型付きI/Oをハーネスで厳格に管理することで、モデル変更なしでベンチマークが大幅向上した事例も出ています。ハーネスが「身体と記憶の仕組み」そのものだという再確認です。[[6]](https://x.com/k_naokun0329/status/2082073624987783468)

### まとめ:今すぐ始めるべきこと
1. 既存のエージェントに`DESIGN.md`と失敗ルール蓄積仕組みを追加。
2. Creator/Evaluatorを分離した2エージェント構成にリファクタ。
3. ツール呼び出し全てに「事前ガード + 事後検証」を入れる。
4. 完全なトレースと人間承認ゲートを導入。

ハーネス設計は「一度作ればスケールする」資産です。モデルは進化し続けますが、良いハーネスはモデルを超えて価値を発揮します。

必要であれば、特定のドメイン(コーディング、業務自動化、研究エージェントなど)に特化した詳細設計図、コード例、または特定の流派(Chase派・Fowler派・Codex派など)の比較も深掘りできます。どのようなユースケースを想定していますか?