**AIエージェント「Harness」の設計**(2026年現在の実践的ガイド)
「Harness」は現在、AIエージェント開発において**最も重要なレイヤー**と認識されています。モデル(LLM)はエンジンに過ぎず、本当に差がつくのはその周囲の「ハーネス」です。
### 1. Harnessとは何か?
Harnessとは、LLMを**信頼性・観測可能性・制御可能性のあるシステム**に変える包括的なオペレーティングレイヤーです。
主な役割:
- 行動の完全なトレーシングと再現
- 安全・承認・ポリシーの強制
- 記憶・スキル・プロトコルの外部化
- 評価・自己修正ループ
- コスト・レイテンシのガバナンス
- Sub-agent orchestration
Canva AIの事例では、90%のエンジニアが日常的に「Subagent Harness」(メインのSonnetがOpus/Haikuにタスクを委譲する仕組み)を使っていると言われています。
### 2. 設計哲学のスペクトラム(2026年現在)
| 思想 | 代表 | 特徴 | 向いているケース |
|------|------|------|----------------|
| **Thin Harness** | Anthropic | モデルに多くを任せる。シンプルなReActループ中心 | モデルが極めて賢い場合 |
| **Explicit/Thick Harness** | LangGraph, CrewAI Flows | ロジックをグラフやコードで明示的に定義 | 生産性・制御性・デバッグを重視 |
| **Composable Harness** | 先進チームの新潮流 | Policy, Approval, Router, Budgetなどを独立マイクロサービス化 | 大規模・長期運用 |
現在最も推奨されるのは**「将来取り外せる足場(Scaffolding)」として設計する**考え方です。モデルが賢くなったら対応するHarness部品を削除できるようにする。
### 3. 推奨アーキテクチャ(レイヤード設計)
**Core Principle**: 「モデルを中心にするな。Harnessを中心にして、モデルをその中に埋め込め。」
#### 主要レイヤー
**1. Orchestration Layer(中枢)**
- State Machine または Event Bus を推奨
- LangGraphのPersistent Graph + カスタムState Schemaが現時点で最強クラス
- Sub-agent Coordinator(メインエージェントが専門エージェントにタスクを投げる)
**2. Memory Architecture(最も重要)**
- **Working Memory**: 現在のタスクコンテキスト(圧縮必須)
- **Semantic Memory**: Vector + Knowledge Graph + 構造化データ
- **Episodic Memory**: 過去実行トレース(成功パターン・失敗パターン・コスト情報)
**3. Skills & Tools Layer**
- Tool定義は抽象化(実装詳細を隠蔽)
- 実行前に **Policy Engine** で権限チェック
- Sandbox/Mock環境の完全分離
**4. Control & Mediation Plane**
- **Observability**(最優先):OpenTelemetry + 専用Tracer(LangSmith, Phoenix, 自前)
- **Guardrails & Approval Workflow**(Human-in-the-Loop含む)
- **Evaluation Engine**:Binary success criteria(曖昧な評価を避ける)
- **Cost Governor**:トークン予算・モデルルーティング
**5. Persistence & Replay Layer**
- すべての実行を完全に再現可能にする(これがないと本格的な改善は不可能)
- Git worktree分離(並列エージェント実行時に重要)
### 4. 設計原則(守るべき10箇条)
1. **Observability First** — 見えないものは改善できない
2. **Explicit Binary Criteria** — 「完了したか?」を明確に定義
3. **Fast Feedback Loop** — エージェントが自分の行動結果を即座に見られるように
4. **Scaffolding Mindset** — いつか削除することを前提に設計
5. **Composability** — Policy, Router, Approverなどは交換可能に
6. **Harnessability** — 対象ドメイン(コードベース、業務システム)がエージェントに扱われやすい構造か?
7. **Persistent Progress File** — シンプルだが非常に効果的
8. **One Agent = One Worktree** — 並列実行時の混乱防止
9. **Linter/Compiler at Write Time** — 後で直すとコンテキストが死ぬ
10. **記録を学習に変える** — 失敗トレースをEpisodic Memoryに積極投入
### 5. 実装スタートの推奨ルート
**初心者〜中級者**
- LangGraph + LangSmithから始める(最もバランスが良い)
**本気で理解したい人**
1. まず**Minimal Harness**をゼロから自作(300-500行程度)
2. その後でLangGraphやOpenAI Agents SDKを「部品」として使う
**生産性最重視**
- Subagent Harnessパターン(メインエージェント + 専門子エージェント群)
- CanvaやClaude Codeが実践しているアプローチ
### 追加リソース(2026年時点)
- Martin Fowlerの「Harness Engineering for Coding Agents」
- Akshayの長文(harness engineeringの詳細解説)
- Canva AI Headの講演(Subagent Harnessの実践例)
---
**質問を深掘りできます:**
- 特定のユースケース(Coding Agent / Business Process Agent / Research Agentなど)
- 技術スタック指定(LangGraph中心、ゼロからPython、TypeScriptなど)
- 評価システムの詳細設計
- Multi-agent coordinationの設計
- コスト最適化に特化した設計
どの方向を深く知りたいですか?
X Learn [2026-06-23] AIエージェント ハーネス 設計