**AIエージェントハーネスの設計(2026年最新思想対応版)**

「モデルはエンジン、ハーネスは車(またはOS)」という考え方が主流になっています。プロンプトエンジニアリング → コンテキストエンジニアリング → **ハーネスエンジニアリング** への明確な進化です。

良いハーネス設計により、モデルを交換しても成果が安定し、長期実行(数ヶ月・数百万行規模)でも信頼性が保たれます。以下に、実践的なアーキテクチャ設計を示します。

### 1. 設計原則(最重要)

1. **Intelligence Externalization(知能の外部化)**
LLMは「薄く」保つ。記憶・スキル・判断基準・プロトコルはハーネス側に持つ。

2. **Environment Design First**
モデル能力より環境(ハーネス)が進捗を決める(OpenAIの実例より)。

3. **Human Steer, Agent Execute**
人間は「地図(ゴール・制約・品質基準)」を渡し、AIは実行。失敗時は「何が足りないか」を人間が特定。

4. **Self-Review & Iterative Loops**
セルフレビュー、自動テスト実行、修正ループをハーネスに組み込む。

5. **Plugin-First & Observability-First**
モデル・ストレージ・サンドボックス・スケジューラ・UIまで全てプラグイン化。全ての行動をトレース可能にする。

6. **Protocol & Permission Centric**
Agent-User、Agent-Agent、Agent-Tool間の契約を明確に定義。

### 2. 全体アーキテクチャ

```mermaid
graph TD
Kernel[Harness Kernel
Execution Engine + Plugin System] --> Memory[Memory Hierarchy]
Kernel --> Skills[Skills & Tools Registry
+ Sandbox]
Kernel --> Protocols[Protocols & Interfaces]
Kernel --> Mediators[Operational Mediators]

Mediators --> Evaluator[Evaluator & Self-Critic
Quality Gates]
Mediators --> Observer[Observability & Tracing]
Mediators --> Orchestrator[Orchestrator
Multi-Agent / Workflow]
Mediators --> Guardrails[Guardrails & Permissions]

Memory --> STM[Short-term Working Context]
Memory --> Semantic[Semantic Memory
Vector DB]
Memory --> Episodic[Episodic Memory
Trajectory Store]
Memory --> Procedural[Procedural Memory
Skills & Heuristics]

subgraph "Thin LLM"
Kernel
end

classDef core fill:#3b82f6,stroke:#1e40af,color:white
class Kernel core
```

**Harness Kernel**を中心に、全てがプラグインとしてマウントされる設計(DeepSeek dshの思想に近い)です。

### 3. 主要コンポーネント詳細

#### **1. Harness Kernel(中核)**
- メインループの制御(Observe → Reason → Act → Critique → Continue)
- プラグインシステム(モデル、メモリ、ツール、サンドボックス全てを動的にマウント/アンマウント)
- 状態機械(LangGraph風だが、より汎用的なWorkflow Engine)

#### **2. Memory Hierarchy(4層メモリ)**
- **Short-term Working Context**: 現在のタスクに必要な最小情報(「地図を渡す」思想)
- **Semantic Memory**: Vector DB(Qdrant/Chroma)+ 自動圧縮
- **Episodic Memory**: 過去の成功・失敗トレース(RAGで類似事例検索)
- **Procedural Memory**: スキル・ヒューリスティック・規範(再利用可能なプレイブック)

#### **3. Skills & Tools Layer**
- ツールに豊富なメタデータ(権限、事前条件、事後条件、例)
- サンドボックス必須(E2B推奨 or Firecracker)
- スキルは「手順書」としてバージョン管理

#### **4. Evaluation & Self-Review System**
- 専用Critic Agent(別モデルでも可)
- 自動テスト生成 → 実行 → 修正のループ
- LLM-as-Judge + ルールベース検証のハイブリッド
- Quality Gate(一定基準を満たさないと次に進まない)

#### **5. Protocols & Multi-Agent Layer**
- 明確な通信プロトコル定義(JSON Schema厳格)
- Hierarchical(Supervisor + Workers)、Debate、Sequentialなど複数パターンサポート

#### **6. Operational Mediators**
- **Observability**: OpenTelemetry + 専用ダッシュボード(思考・ツールコール・レビュー履歴全て可視化)
- **Guardrails**: 権限チェック、出力検証、コスト/ステップ制限
- **Approval Loops**: 重要なアクションはHuman-in-the-Loop

### 4. 実装のポイント(Pythonスケルトン)

```python
from pydantic import BaseModel
from typing import Protocol
from enum import Enum

class MemoryType(Enum):
SHORT_TERM = "short_term"
SEMANTIC = "semantic"
EPISODIC = "episodic"
PROCEDURAL = "procedural"

class HarnessPlugin(Protocol):
def mount(self, kernel: 'HarnessKernel'): ...
def unmount(self): ...

class HarnessKernel:
def __init__(self):
self.plugins: dict[str, HarnessPlugin] = {}
self.state = AgentState()
self.tracer = Tracer()

def register_plugin(self, name: str, plugin: HarnessPlugin):
self.plugins[name] = plugin
plugin.mount(self)

async def run(self, task: Task) -> Result:
self.tracer.start_trace(task)
# メインループ(Self-Review付きReAct + Critique)
while not self.state.is_complete():
observation = await self.get_observation()
thought = await self.llm.reason(observation, self.state)
action = await self.decide_action(thought)

result = await self.execute_with_sandbox(action)
critique = await self.evaluator.critique(result)

if critique.needs_revision:
self.state.add_revision(critique.feedback)
continue

self.state.update(result)

self.tracer.end_trace()
return self.state.final_result
```

### 5. 推奨技術スタック(2026年現在)

- **Core**: Python 3.11+ + Pydantic v2 + LangGraph(ベースとして)または自前Kernel
- **Memory**: PostgreSQL + PGVector or Qdrant
- **Sandbox**: E2B(最もおすすめ)または Modal / Firecracker
- **Observability**: OpenTelemetry + Phoenix or LangSmith + 自前ダッシュボード
- **Model Layer**: 完全スイッチャブル(OpenAI, Anthropic, Grok, DeepSeek, vLLMローカル)
- **Workflow**: LangGraph or Temporal(長時間実行向け)

### 構築の推奨順序

1. Kernel + Plugin System
2. Observability & Tracing(これを最初に固めると後が楽)
3. Memory Hierarchy
4. Sandbox + Tool Registry + Guardrails
5. Evaluator & Self-Review Loop(これが差別化要因)
6. Multi-Agent Protocols

---

この設計は、OpenAIのハーネス事例、AnthropicのLong-running App Harness、Harrison Chaseらの議論、DeepSeek dshなどの最新動向を統合したものです。

具体的に「コーディングエージェント向け」「Web操作エージェント向け」「社内業務自動化向け」など、**用途を限定**してさらに詳細設計(クラス図、状態遷移、具体的なPlugin APIなど)が必要であれば教えてください。すぐに深掘りします。