**AIエージェント ハーネス設計(2026年最新コンセンサス)**

「モデルはエンジン、ハーネスは車である」という表現が今最も正確です。モデル(LLM)は薄く保ち、知能の大部分を**ハーネス(周辺アーキテクチャ)**に外部化する設計が主流になっています。同じモデルを使っても、ハーネスの質で性能が劇的に変わります。[[1]](https://x.com/CobusGreylingZA/status/2043638576848707662)

### 1. ハーネスの核心アーキテクチャ(推奨フレーム)

中央に**Thin Model**を置き、周囲に3つの主要レイヤーを配置します。これを**Mediator(仲介層)**が繋ぎます。

- **Memory Layer**
- Working Context(現在進行中のタスク状態)
- Semantic Knowledge(長期知識・RAG)
- Episodic Memory(過去の実行履歴と結果)
- Personalized Memory(ユーザー固有の好み・スタイル)

- **Skills Layer**
- Operational procedures(手順書)
- Decision heuristics(判断基準)
- Normative constraints(禁止事項・ポリシー・ベストプラクティス)

- **Protocols Layer**
- Agent ↔ User(承認フロー、説明責任)
- Agent ↔ Agent(Handoff、協調プロトコル)
- Agent ↔ Tools(ツール呼び出し契約、スキーマ、タイムアウト)

- **Mediator / Operational Layer**(これがハーネスの本質)
- Sandboxing(実行隔離)
- Observability & Tracing(全軌跡の記録)
- Compression(コンテキスト圧縮)
- **Evaluation**(最重要:Outcome + Process評価)
- Approval loops & Human-in-the-loop
- Sub-agent orchestration

この構造の最大の利点は「**どこに新機能を置くか**」が明確になる点です。安定した知識→Memory、判断 playbook→Skills、通信規則→Protocols、ループ制御→Mediatorに配置します。[[2]](https://x.com/akshay_pachaar/status/2045510648474530263)

### 2. 設計原則(必ず守るべきもの)

1. **Modularity & Composability**
ハーネスを1つの巨大フレームワークにせず、Policy Engine、Approval Layer、Memory Backend、Provider Routerなどを独立コンポーネント化。Event Bus(または共有状態ストア)で結合。

2. **Observability First**
すべての思考・行動・観測・評価結果を構造化して記録(Trajectory)。後から再生・デバッグ・分析可能に。

3. **Eval-Driven Development**
変更するたびに自動評価を実行。LLM-as-Judge(詳細なRubric使用)+ルールベース+人間フィードバックを組み合わせる。

4. **Scaffolding Mindset(足場思考)**
モデルが賢くなるにつれてハーネスを徐々に薄くできる設計に。モデルが特定のハーネスに最適化されて学習している場合は注意(性能低下に注意)。

5. **Safety & Sandbox by Default**
すべてのツール呼び出しにガードレール、権限境界、タイムアウト、キャンセル semanticsを実装。

### 3. 必須コンポーネント一覧(実装優先度順)

- **Task & Experiment Manager**:データセット読み込み、構成管理(モデル・プロンプト・ツールセットの組み合わせ実験)
- **Standardized Agent Runtime**:ReAct、Plan-and-Execute、Graph-based(LangGraph風)、Multi-Agentなどプラグイン可能
- **Trajectory Recorder**:`(thought, action, observation, evaluation)` の時系列ログ
- **Multi-level Evaluator**:
- Outcome(最終結果の正しさ)
- Process(思考過程の質、安全性、効率)
- Safety & Policy
- Cost / Latency / Loop Count
- **Environment Sandbox**:コード実行、ブラウザ、ファイルシステム、外部APIの仮想化
- **Memory & Skill Orchestrator**:動的ロード・圧縮・忘却機構
- **Dashboard & Analysis**:失敗モード分類、成功率、ベンチマーク比較、Red Teamingツール

### 4. 実装選択肢(2026年現在)

**おすすめ組み合わせ**:
- **制御**:LangGraph(明示的制御が欲しい場合)またはOpenAI Agents SDK / Anthropic風シンプルループ
- **観測**:LangSmith + Arize Phoenix(または同等)
- **ベンチマーク用**:Inspect AI(UK AISI系)が非常に洗練されている
- **Microsoft Agent Framework**:最近「Claw + Agent Harness」として注目

**ゼロから最小ハーネスを作る場合**の基本スケルトン(Python):

```python
from pydantic import BaseModel
from typing import List, Callable, Any
from enum import Enum

class Step(BaseModel):
thought: str
action: str
observation: Any
evaluation: float | None = None

class Trajectory(BaseModel):
steps: List[Step]
final_outcome: Any
metrics: dict

class AgentHarness:
def __init__(self,
evaluators: List[Callable],
sandbox,
memory_orchestrator,
tracer):
self.evaluators = evaluators
self.sandbox = sandbox
self.memory = memory_orchestrator
self.tracer = tracer

async def run(self, agent, task: dict, max_steps=50) -> Trajectory:
trajectory = Trajectory(steps=[], final_outcome=None, metrics={})

for step in range(max_steps):
# 1. 現在の状態をMemoryから取得
context = self.memory.get_context()

# 2. Agentに思考させる(モデル呼び出し)
response = await agent.think(context, task)

# 3. Action実行(Sandbox内で安全に)
observation = self.sandbox.execute(response.action)

step_obj = Step(
thought=response.thought,
action=response.action,
observation=observation
)
trajectory.steps.append(step_obj)
self.tracer.log(step_obj)

# 4. 途中評価(早期終了判定)
for evaluator in self.evaluators:
score = evaluator(trajectory)
if score < threshold:
break

# 最終評価
trajectory.final_outcome = self._run_final_evaluators(trajectory)
self.memory.commit_episode(trajectory)
return trajectory
```

この最小版を起点に、各レイヤーを本格的に実装していきます。

### 5. 今後の進化方向

- Self-improving Loop(Eval → Synthetic Data → Harness改善の自動サイクル)
- Composable Micro-Harnesses(15個程度の独立ジョブをイベントバスで結合)
- モデルに依存しない「Business Brain」(自社固有のSkills/Protocols/Memory)

ハーネス設計は現在、AIエンジニアリングで最もレバレッジの高い領域です。モデルは commoditize(一般化)しつつあり、差別化はハーネスの質で決まります。

具体的に「コーディングエージェント用」「ウェブエージェント用」「企業内業務エージェント用」など、**用途を限定**した設計を深掘りしたい場合は、用途を教えてください。より具体的なコンポーネント図やコード、評価Rubricまで落とし込みます。