**AIエージェント ハーネス設計**(2026年最新動向)

2026年現在、「**Agent Harness**」は単なるテストフレームワークではなく、**LLMを核としたエージェントを信頼性高く長時間運用するための制御インフラ**として最も重要なレイヤーになっています。モデル自体を変えるより、Harnessの質が性能を大きく左右する時代です。

### 1. Agent Harnessとは何か

Agent Harnessは、以下のものを**opinionated(強く意見を持った形で)**に提供するレイヤーです:

- タスク計画の注入方法
- ツール呼び出しの扱い方(Human-in-the-Loop含む)
- 状態管理・記憶アーキテクチャ
- 検証・承認ゲート
- ライフサイクルフック
- 観測可能性(Tracing)
- Record & Replay機能

**LangGraphやCrewAIより上位**の概念で、「モデルをどう包むか」を定義します。

### 2. 推奨アーキテクチャ(3 Layer Model)

2026年の論文・実装で最も参照されている構造です。

**Layer 1: Harness Interface(接続層)**
- LLMと実行環境の標準化インターフェース
- Tool Callの正規化・契約定義(`contract.json`)
- Statefulなファイル/データベースモデル
- 入力/出力の厳密なスキーマ(Pydantic推奨)

**Layer 2: Harness Mechanisms(機構層)** ← **最も重要**
- **Planner**(タスク特化計画の生成・注入)
- **Context Engine**(tight context:ルールベースで不要情報をelideしてから要約)
- **Verifier / Oracle**(最終回答や中間状態の検証)
- Lifecycle Hooks(pre-tool, post-tool, error recovery, approval gate)
- **Record & Replay**(events.jsonlで全履歴を保存し、完全再現可能にする)

**Layer 3: Harness Scaling(スケーリング層)**
- Multi-agent / Sub-agent orchestration
- Peer review、自動検証フロー
- Dynamic vs Staticの切り替え(実行中にHarness自体を適応させる先進事例も増加)

### 3. 設計原則(これを守らないと破綻する)

1. **Reproducibility First**
同じシード・同じモックLLMレスポンスで100%同じトレースを再現できるようにする。これがないと評価も改善も不可能。

2. **Observability Native**
すべての「思考→計画→ツール呼び出し→結果→状態更新」を構造化ログとして残す。LangSmithやPhoenix、OpenTelemetryをベースに拡張。

3. **Evaluation-Driven**
- Golden Dataset
- LLM-as-Judge(Verifier)
- Human-in-the-Loop評価
- メトリクス:Success Rate, Cost@Success, False Positive Rate, Steps, Pass@Budget

4. **Safety by Design**
不可逆操作(支払い、コードデプロイ、データ削除など)は必ずpre-approval gateを入れる。事後Verifierだけでは不十分。

5. **Mode別運用**(実用的)
- **Native**:通常の高速運用
- **Portable**:境界を越える長時間タスク
- **Audited**:セキュリティ・リリース重要タスク(証跡を厳密に残す)

### 4. 実装スケルトン例

```python
class AgentHarness:
def __init__(self, llm, tools, config: HarnessConfig):
self.tracer = StructuredTracer() # events.jsonl出力
self.planner = TaskPlanner()
self.verifier = Verifier(model=llm)
self.context_engine = ContextEngine(rules=config.elide_rules)
self.replay_manager = ReplayManager()
self.guardrails = GuardrailManager()

async def execute(self, task: str, mode: str = "audited"):
trace = self.tracer.start_trace(task_id=generate_id())

plan = self.planner.generate(task, trace)
state = AgentState()

while not state.is_complete():
context = self.context_engine.build(state, plan, trace)
thought = await self.llm.think(context)

action = parse_action(thought)
if not await self.guardrails.check(action, mode):
break

result = await self.execute_tool(action)
state.update(result, trace)

if self.verifier.should_verify(state):
if not await self.verifier.verify(state, trace):
trace.mark_rejected()
break

self.replay_manager.save(trace)
return state.result, trace
```

### 5. 2026年現在のおすすめ参照実装

- **SUNRNEHUI/agent-harness**:Native/Portable/Auditedの3モード、contract.json + events.jsonl設計が非常に実践的。
- Sergii Makarevychの「Build Your Own Agent Harness」チュートリアルシリーズ(60論文を基にした体系的解説)。
- openJiuwen(dynamic harnessの強力事例、SWE-bench高スコア)。
- Hermes Agent, opencode, pi などのオープンソースを比較しながら作るのが効率的。

### あなたは何を設計したいですか?

- Coding Agent(SWE-bench系)
- Customer Service / Stateful Workflow Agent
- Research / Long-horizon Agent
- Multi-agent System
- 企業内プロダクションHarness

具体的なユースケースを教えていただければ、その用途に最適化した設計テンプレート(コンポーネント選定、評価戦略、コード構造)をより深くお渡しします。