**AIエージェントハーネス設計指針(2026年最新知見ベース)**
「モデルはエンジン、ハーネスは車(あるいは手綱)である」という認識が業界の共通理解になっています。モデルそのものではなく、その周囲のインフラ(ハーネス)がエージェントの信頼性・安全性・実用性を決定づけます。プロンプトエンジニアリング → コンテキストエンジニアリング → **ハーネスエンジニアリング** へと焦点が移っています。[[1]](https://x.com/tetumemo/status/2037876018745385083)
### 1. ハーネスとは何か
ハーネス(Harness)は、LLMを中心とした「薄い知能」を、信頼できる自律エージェントに変える**外部化されたインフラ**です。
主な外部化次元は以下の3つです:
- **Memory(記憶)**: Working Context(現在進行中のタスク状態)、Semantic Knowledge(意味的知識・RAG)、Episodic Experience(過去の軌跡と結果)、Personalized Memory(ユーザー個別化)
- **Skills(技能)**: Operational Procedures(手順)、Decision Heuristics(意思決定ヒューリスティック)、Normative Constraints(規範的制約=境界線)
- **Protocols(プロトコル)**: Agent-User、Agent-Agent、Agent-Tools間の契約(通信形式、責任分担、失敗モード定義)
これらを仲介・統制するのが**Operational Layer(運用層 / Mediators)**:
- Sandboxing
- Observability(可観測性)
- Context Compression
- Evaluation(評価)
- Approval Loops(承認ループ)
- Sub-agent Orchestration(協調統治)
この構造により、「モデルに全部任せる」から「モデルを適切に制御・拡張する」アーキテクチャへ移行します。[[2]](https://x.com/CobusGreylingZA/status/2043638576848707662)
### 2. 設計の基本原則(Thin vs Thick Harness)
| アプローチ | 代表例 | 特徴 | 向いているケース |
|-----------|--------|------|----------------|
| **Thin Harness** | Anthropic寄り | シンプルなReActループ中心。モデルに多くを委ねる | モデルが非常に賢い場合、迅速な実験 |
| **Thick Harness** | LangGraph寄り | 明示的なグラフ/状態遷移で制御を強くする | 企業ユース、信頼性・説明可能性を重視 |
| **Scaffolding指向** | 両者のハイブリッド | 最初は厚く作り、モデル向上に伴い徐々に簡略化可能にする | 長期運用(推奨) |
**重要なテスト**:より強力なモデルに置き換えたときに、ハーネスをほとんど変更せずに性能が向上するか? これが「良いハーネス」の基準です。同じモデルでもハーネス次第でベンチマーク順位が大幅に変わる事例(LangChainのTerminalBenchなど)が複数報告されています。[[3]](https://x.com/akshay_pachaar/status/2042586319390674994)
### 3. 推奨アーキテクチャ(コンポーネント設計)
#### コアコンポーネント
1. **Harness Core (Runtime Engine)**
- メインループコントローラー(Think → Act → Observe → Evaluate → Decide)
- Checkpointing & Recovery(途中状態の永続化と復旧)
- Timeout / Token Budget / Cost Guard
- Async + Parallel実行対応
2. **Memory Manager**
- 階層型記憶(短期・長期・エピソード)
- 自動圧縮・要約機構
- 関連性スコアリングによる動的ロード
3. **Skill & Tool Registry**
- Pydantic厳格スキーマ + 例示 + 失敗時ハンドラ必須
- 動的ロード(Intent Router推奨)
- バージョン管理と後方互換性
4. **Protocol Layer**
- 構造化出力(JSON mode / tool calling厳格化)
- Multi-agent手渡しプロトコル定義
- Human-in-the-Loop挿入ポイント
5. **Operational Mediators(最も重要)**
- **Observability Stack**:全軌跡ログ、LLMコールごとのメトリクス、視覚化ダッシュボード(LangSmith類似)
- **Evaluator**:Rule-based + LLM-as-Judge(多軸評価:正しさ、効率性、安全性、ユーザ満足度)
- **Guardrails & Sandbox**:アクション許可制、コード実行は完全サンドボックス、危険操作は必ず承認
- **Orchestrator**:Supervisorパターン、Hierarchical、Graph-based、Swarmなど複数パターンを切り替え可能に
### 4. 実装時の推奨技術構成例
- **フレームワーク基盤**: LangGraph(状態グラフが最も成熟)またはゼロから構築(Pydantic v2 + asyncio + graphlib)
- **状態管理**: PostgreSQL + PGVector(またはQdrant + Redis)
- **可観測性**: OpenTelemetry + Prometheus + Grafana + 専用トレーサー
- **評価**: カスタムLLM Judgeパイプライン + 人間フィードバックループ
- **デプロイ**: Agent WorkerをKubernetes上でスケール、Queue(Celery / Temporal)で長時間タスク対応
**最小限のハーネス実装の骨子(擬似コード)**:
```python
class AgentHarness:
def __init__(self, config: HarnessConfig):
self.core = RuntimeEngine(config.loop_strategy) # ReAct / Plan-Execute / Graph
self.memory = HierarchicalMemory(config.memory_layers)
self.skills = SkillRegistry(config.tools, intent_router=True)
self.protocols = ProtocolManager()
self.mediators = MediatorStack(
sandbox=Sandbox(),
observer=Observer(tracer=OpenTelemetryTracer()),
evaluator=MultiAxisEvaluator(),
guardrail=GuardrailEngine()
)
async def run(self, task: Task, user_approval_points: list = None) -> RunResult:
state = AgentState(task=task, memory=self.memory.load_relevant(task))
trajectory = Trajectory()
while not self.core.should_terminate(state):
# Think
thought = await self.core.think(state)
# Act (with guardrail)
action = self.protocols.parse_action(thought)
if not await self.mediators.guardrail.validate(action):
action = self.mediators.handle_violation(action)
observation = await self.mediators.sandbox.execute(action)
# Observe & Evaluate
state.update(thought, action, observation)
eval_score = await self.mediators.evaluator.evaluate_partial(trajectory)
trajectory.append_step(thought, action, observation, eval_score)
await self.mediators.observer.log_step(...) # 完全トレース
final_eval = await self.mediators.evaluator.evaluate_final(trajectory, task.rubric)
return RunResult(trajectory=trajectory, evaluation=final_eval, cost=state.cost)
```
### 5. 実践的な教訓(OpenAI内部事例などから)
- **環境設計 > モデル能力**:進捗が遅い原因のほとんどはハーネスの未成熟
- 「**地図を渡せ**」:一度に全コンテキストを渡さず、必要なタイミングで段階的にロード
- **Human steer, Agent execute**:人間は目標・制約・品質基準を設定し、実行と反復改善はエージェントに任せる
- **強力なセルフレビューループ**:AI自身がレビュー→修正を満足するまで繰り返す
- ドキュメントはコードの一部として自動保守させる
ハーネスは「一時的な足場(scaffolding)」として設計し、モデルが賢くなるにつれて徐々に簡略化できるようにしてください。モデルが特定のハーネスに過度に適合してしまう「ハーネス依存」にも注意が必要です。[[4]](https://x.com/taimuhanashiro/status/2023008135464788127)
---
この設計をベースに、具体的なユースケース(コーディングエージェント、法務エージェント、運用監視エージェントなど)に特化した詳細設計や、LangGraphを使った実装例、Mermaidアーキテクチャ図が必要でしたら、追加でお知らせください。
現在最も価値が高いのは「**何を外部化して、ハーネスのどこで仲介させるか**」を体系的に決めることです。モデル選びではなく、ハーネス設計力が競争優位性になります。
X Learn [2026-08-20] AIエージェント ハーネス 設計