ハーネスエンジニアリングとは何か
2025年は「AIエージェント元年」でした。そして2026年、エンジニアリングの焦点はAIモデルそのものから、その制御環境へと移りつつあります。
ハーネスエンジニアリングとは、AIエージェントの「モデル以外のすべて」——制約、ツール接続、フィードバックループ、検証システム——を設計するディシプリンです。名前は馬具(harness)に由来し、強力だが予測不能なAIエージェントの出力を意図した方向に制御する環境設計を指します。
Martin Fowlerは2026年にこの概念を整理し、2つの制御軸を提唱しました。
- Guides(事前制御): ドキュメント、アーキテクチャ規約、AGENTS.mdなどでエージェントの行動を方向付ける
- Sensors(事後制御): リンター、テスト、AIレビューなどでエージェントの出力を検証・修正する
ハーネスの4層構造
実践的なハーネスは以下の4層で構成されます。
制約の層
エージェントが「やっていいこと」と「やってはいけないこと」を明示的に定義します。
<!-- AGENTS.md の例 -->
## 禁止事項
- 本番データベースへの直接クエリ
- force push
- .env ファイルの読み取り・変更
## 権限
- テストの実行: 許可
- ファイルの作成・編集: 許可(src/ 配下のみ)
情報の層
エージェントに「知っておくべきこと」を構造化して提供します。CLAUDE.md、AGENTS.md、設計ドキュメントなどがこれにあたります。
検証の層
エージェントの出力を自動で検証する仕組みです。lint、typecheck、テストスイート、さらにはAIによるコードレビューまで含みます。
回復の層
エージェントが失敗した場合のロールバック、再試行、ループ上限を設計します。無限ループの防止は特に重要です。
Claude Code のハーネス実装
Claude Codeは、ハーネスエンジニアリングのための6つの拡張ポイントを提供するプラットフォームへ進化しています。
| 拡張ポイント | 役割 | 層 |
|---|---|---|
| Hooks | イベント駆動のシェルコマンド(PreToolUse/PostToolUse) | 検証 |
| Skills | 再利用可能なワークフローをMarkdownで定義 | 情報 |
| Plugins | コマンド・スキル・フック・MCPをバンドル配布 | 全層 |
| Sub-agents | 複数セッションの並列協調作業 | 制約・情報 |
| CLAUDE.md | プロジェクト固有の制約・規約を定義 | 制約・情報 |
| MCP | 外部サービスとの接続プロトコル | 情報 |
Hooksの実践例
{
"hooks": {
"PreToolUse": [
{
"matcher": "Write",
"command": "python3 scripts/security_check.py"
}
],
"PostToolUse": [
{
"matcher": "Write",
"command": "npx eslint --fix $FILE"
}
]
}
}
ファイル書き込み前にセキュリティチェックを実行し、書き込み後に自動でlintを走らせる。エージェントの出力品質を人間の介入なしに担保できます。
Pinterest の MCP 導入事例 — 月7,000時間を削減
Pinterestは、ハーネスエンジニアリングの大規模な本番導入事例として注目されています。
構成
- ドメイン別にMCPサーバーを運用(Presto、Spark、Airflowなどのインフラツールを統合)
- 統一レジストリでサーバーの発見・権限検証を一元管理
- JWT + メッシュIDの二重認証でセキュリティを確保
成果
- 月間約 66,000回の呼び出し
- 844名のアクティブユーザー(エンジニア全体の約30%)
- 推定 月7,000時間の作業時間削減
設計上の工夫
高リスク操作(データベースへの書き込み、本番環境の変更など)にはhuman-in-the-loopを義務化。エージェントが提案を出し、人間が承認するフローで安全性を確保しています。
Ralph Loop — 自律型エージェントの反復パターン
Ralph Loop(正式にはRalph Wiggum Loop)は、AIエージェントをbashループで自律的に反復実行する手法です。
# 基本形
while :; do
cat PROMPT.md | claude-code
# テストが通ったら終了
npm test && break
done
テストパスなどの機械的な完了条件を満たすまで繰り返すというシンプルなアプローチですが、適切なハーネス(制約・検証・回復の層)がなければ暴走のリスクがあります。
成功のポイント
- スコープを小さく保つ: 1つのIssueに1つのLoop
- テスト駆動で完了判定: 主観的な「完了」ではなく、テスト通過で判断
- 最大反復数の制限: 無限ループ防止のガードレール
- コンテキストの鮮度管理: 長時間のループでコンテキストが古くなる問題への対処
始め方 — 3ステップで導入
Step 1: CLAUDE.md / AGENTS.md を書く
プロジェクトのルートに制約と情報を定義するファイルを配置します。まずは「禁止事項」と「コーディング規約」から始めるのが効果的です。
Step 2: Hooks で検証を自動化
PreToolUse / PostToolUse フックで、エージェントの操作前後に自動チェックを挟みます。セキュリティチェック、lint、型検査など、既存のツールをそのまま活用できます。
Step 3: MCP で外部ツールを接続
データベース、GitHub、Slack など、業務で使うツールをMCPサーバー経由でエージェントに公開します。権限はマニフェストで明示的に制限します。
まとめ
ハーネスエンジニアリングは、「AIエージェントをどう制御するか」という2026年の核心的な問いに答えるディシプリンです。
- モデルの性能は十分に高い。ボトルネックは制御環境の設計にある
- 4層構造(制約・情報・検証・回復)でハーネスを設計する
- 小さく始める: CLAUDE.mdの作成 → Hooks → MCP の順で段階的に導入
- 人間の役割は「要件定義」と「承認」に集中する
AIエージェントが「便利なツール」から「チームメンバー」に変わりつつある今、ハーネスエンジニアリングはすべての開発チームが学ぶべきスキルと言えるでしょう。
AIの業務活用をこれから始める方は、まずChatGPT業務活用ガイドで基礎を押さえることをおすすめします。