**AIエージェント ハーネス設計(Harness Engineering)**
2026年現在、これは**最も重要なテーマの一つ**になっています。プロンプトエンジニアリングやコンテキストエンジニアリングの次のレイヤーとして定着し、「モデルはCPU、ハーネスはOS」という比喩が広く使われています。
### ハーネスとは何か
**ハーネス(Harness)**とは、AIエージェントの能力を**制御・方向づけ・検証・改善**するための全体アーキテクチャです。馬具(手綱・鞍)のメタファーから来ており、「Humans steer, agents execute(人間が操縦し、エージェントが実行する)」という思想を体現します。
単なるプロンプトやワークフローではなく、**エージェントが長期的に安定して高品質な成果を出し続けるための足場全体**を指します。
### なぜ今、ハーネス設計が重要なのか
- フロンティアモデルが強力になるほど、**生のモデルだけでは信頼性が足りない**ことが明確になってきた
- OpenAI内部でも「人間が1行もコードを書かずにCodexエージェントだけで100万行規模のプロダクトを構築」した事例が報告されており、そこでの鍵がHarness Engineeringだった
- 「良いハーネス vs 悪いハーネス」で、同じモデルでも性能が劇的に変わる(Claude Fable 5の事例など)
### ハーネス設計の4つの主要ループ(LangChain整理)
1. **Agent Loop**:思考→行動→観測の基本サイクル(ReAct系)
2. **Verification Loop**:出力に対してRubric(評価基準)を適用し、自動採点・修正するループ
3. **Event-driven Loop**:スケジュールや外部Webhookでエージェントを起動・連携させる
4. **Hill Climbing Loop**:本番トレースを分析し、ハーネス自体(Rubric、ツール、ワークフロー、プロンプト)を継続的に改善する
この4つをすべて設計・実装できるかどうかが、プロダクション級ハーネスの分水嶺です。
### 推奨アーキテクチャ(2026年時点)
**コアエンジン**
- **LangGraph**(最有力):状態を明示的なグラフとしてコードで定義。チェックポイント・永続化・人間介入・時間旅行デバッグが強力。
- 代替:CrewAI(シンプルなチーム指向)、AutoGen、Semantic Kernel、または自前状態機械。
**主要レイヤー(重ねる順序が重要)**
**1. Guardrails Layer(最外殻)**
- 入力/出力の有害性フィルタリング
- ポリシー違反検知(Llama-Guard、Nemo Guardrails、カスタム分類器)
- スコープ制限(このエージェントは何をしても良いのかを明文化)
**2. Orchestration & State Layer**
- LangGraphで状態遷移を明示的に定義
- すべての状態を永続化(チェックポイント)
- サブエージェント/ツール呼び出しの階層管理
**3. Memory & Context Engineering Layer**
- 階層的メモリ(短期作業記憶、長期ベクトル記憶、グラフ知識、プロシージャル記憶)
- コンテキスト圧縮・要約機構
- 「今このエージェントは何を知っているか」を追跡可能にする(これが最も難しい部分)
**4. Evaluation & Verification Layer**
- Rubric-based LLM Judge(詳細な評価軸を複数定義)
- ドメイン特化評価関数
- Trajectory評価(最終回答だけでなく、過程全体を評価)
**5. Observability & Hill Climbing Layer**
- 詳細トレース(思考過程、ツール呼び出し、コスト、レイテンシ、Rubricスコア)
- LangSmith / Phoenix / Helicone + 自前分析パイプライン
- トレースを分析してハーネスを自動/半自動改善する仕組み
**6. Human-in-the-Loop & Governance Layer**
- 承認フロー(重要アクションは自動承認か人間承認か)
- フィードバック収集とハーネスへの反映
- 責任所在の明確化(誰がこのハーネスの品質に責任を持つか)
**7. Tool & Execution Layer**
- 権限管理付きTool Registry
- Sandbox実行環境(e2b、セキュアDocker、Firecrackerなど)
- 最小権限の原則を徹底
### 設計原則(優先順位)
1. **Observability First** — 見えないものは改善できない
2. **Verification by Default** — 大事な出力は必ず自動評価
3. **Explicit State** — 暗黙の状態を極力なくす(LangGraphが強い理由)
4. **Composable & Evolvable** — ハーネス自体を改善しやすくする(メタハーネス)
5. **Secure & Fail-safe by Default**
6. **Incremental Autonomy** — 最初は人間の介入を多めに設定し、信頼が貯まるごとに自動化を増やす
### 参考になる実践事例
- mizutani氏(Ubie)のセキュリティ特化ハーネス実装(Zenn記事) — 最も具体的な実装例の一つ
- findyのGota氏の「無駄にファストなハーネスの設計」(SpeakerDeck)
- LayerX松本氏の考察(役割が変わるという話)
- LangChain公式の「AIエージェントを動かす4つのループ」資料
---
**実装を始めるなら、まずはこれをやってください:**
1. LangGraphでシンプルな状態グラフを書く
2. すべてのノードで詳細トレースを入れる
3. 重要な出力に対してRubric評価を必ず入れる
4. トレースを蓄積して「何が頻繁に失敗しているか」を可視化する
これができたら、次にGuardrailsとMemoryの階層化、人間介入フローを追加していく形が現実的です。
具体的に「セキュリティ分析向け」「コーディングエージェント向け」「業務自動化向け」など、**ユースケースを教えていただければ**、もっと具体的なコンポーネント選定とアーキテクチャ図を提案できます。
X Learn [2026-06-18] AIエージェント ハーネス 設計