プロンプトエンジニアリングはもう終わりだ」——そんな声が2025年あたりから聞こえ始めた。代わりに台頭したのが 「ハーネスエンジニアリング(Harness Engineering)」 という概念だ。Anthropic の研究者や Claude Code・Cursor などのエージェント開発を手がけるエンジニアが提唱し、いまやAIエージェント時代の中心的なエンジニアリング領域となりつつある。

本記事では、ハーネスエンジニアリングの定義、プロンプトエンジニアリングとの違い、ハーネスを構成する6つの要素、実践チェックリスト、主要ツールでの実装例まで、AIエージェントを本気で使う・作るために知っておくべき土台を整理する。

CONCEPT MAP

ハーネス=LLMを包む4層

— 馬の手綱のように、LLMという馬を目的に向けて働かせる装具

CORE — LLM
推論エンジン本体(Claude / GPT / Gemini)。プロンプトで挙動を操る
HARNESS LAYER
ツール定義・コンテキスト管理・記憶・エージェントループ。LLMに何をさせるかの中核設計
SAFETY LAYER
Hooks・サンドボックス・権限制限・承認モード。暴走と被害を物理的に阻止する
UX LAYER
マークダウン整形・引用表示・ストリーミング・思考過程可視化。ユーザーが信頼して検証できる形に出す

同じLLMでも、ハーネスの設計次第でアウトプットの質と安全性が大きく変わる。
これが 「ハーネスエンジニアリング」 という新しい設計領域の主戦場だ。

1. ハーネスエンジニアリングとは何か

ハーネス(harness)は本来、馬具・装具を意味する英単語だ。馬の力を制御し、目的の方向に導く装備を指す。AI業界における「ハーネス」もまったく同じ比喩で、LLM という強力だが暴れ馬な存在を、目的に向けて働かせるための装備一式を指す。

具体的には:

  • ツール(Tools): ファイル操作、Web検索、コード実行など、LLMが「行動」できる手段
  • コンテキスト管理: 何をプロンプトに含め、何を圧縮・破棄するかの戦略
  • 記憶システム: セッションを跨ぐ知識・ユーザー設定の永続化
  • エージェントループ: 知覚→推論→行動→観察 の繰り返し
  • ガードレール: 権限・サンドボックス・Hooks・承認フロー
  • 出力フォーマット: マークダウン、JSON、引用、ストリーミング

これら全体を設計するのがハーネスエンジニアリング。LLM そのものを学習・改良するのではなく、LLMの周りを工夫することで実用性を引き上げる技術だ。Claude Code・Cursor・Devin・Codex CLI などはすべて、同じLLMを使っていても「ハーネスの違い」で挙動と性能が大きく異なる

2. プロンプトエンジニアリングとの違い

プロンプトエンジニアリングが廃れたわけではない——だがスコープが大きく違う。

観点プロンプトエンジニアリングハーネスエンジニアリング
対象1ターンの入力テキストシステム全体(ツール・記憶・ループ)
主な作業プロンプト文の最適化、Few-shot例選定ツール定義、コンテキスト戦略、ループ設計
成果物テキストテンプレートコード、設定、システム構成
必要スキル言語感覚、LLM挙動の理解ソフトウェアエンジニアリング全般
効果範囲1回の応答の質長時間タスクの完遂率・コスト・安全性
「Step by stepで考えて」計算機ツールを定義してLLMに使わせる

プロンプトエンジニアリングが「LLMに何を言うか」の技術なら、ハーネスエンジニアリングは「LLMに何を持たせ、どう運用するか」の技術——両者は競合ではなく階層関係にある。プロンプトはハーネスの中の1要素にすぎない。

3. ハーネスを構成する6つの要素

① ツール定義(Tool Use)

LLMが世界に作用する手段。ファイル読み書き、コード実行、Web検索、API呼び出しなど。ツールのインターフェイス設計(名前・引数・返り値)が悪いとLLMは正しく使えない。具体的には:

  • 動詞ベースの明確な命名(read_file など)
  • 必須/任意引数の明示、デフォルト値
  • エラー時の構造化メッセージ(次に何をすべきか教える)
  • 副作用(破壊的操作)には明示の警告を記述

② コンテキスト管理

LLMの注意は有限——何を見せるかが、何を言わせるかを決める。具体的には:

  • 関連性フィルタ: 全ファイルではなく、タスクに関連する部分だけ抜粋
  • 圧縮(compaction): 長い会話を要約して保持
  • RAG連携: 必要な情報をベクトル検索で取得
  • キャッシング: 繰り返し送るシステムプロンプトを Anthropic prompt cache 等でコスト削減

関連: RAGとは何か

③ 記憶システム

セッションを跨ぐ知識の保持。Claude Code の CLAUDE.md、Cursor の .cursor/rules、Codex の AGENTS.md はいずれもプロジェクト記憶の例。さらに:

  • 短期記憶: 直近の会話履歴
  • 長期記憶: ユーザープロファイル、過去の意思決定
  • 事実知識: ドメイン固有の知識ベース

④ エージェントループ

AIエージェント」を成立させる中核。基本形は 知覚→推論→行動→観察 のサイクル:

  1. ユーザーのゴールを受け取る
  2. 現状を分析(必要ならツールで情報収集)
  3. 次の行動を計画
  4. ツールで行動
  5. 結果を観察、ゴール達成判定
  6. 未達ならループ、達成なら終了

ここに 計画立て直し(replan)・自己批評・サブゴール分解 を組み込むかでエージェントの賢さが変わる。

⑤ ガードレール

暴走防止の仕組み。AIがルールを無視する問題 でも触れたが、文章で頼むより環境で強制する方が確実だ:

  • 承認モード: 危険操作は人間の確認必須(Claude Code の Plan mode 等)
  • サンドボックス: ファイルシステム/ネットワークアクセスを限定
  • Hooks: ツール呼び出し前後に任意のチェック
  • Rate limiting: 暴走時の被害最小化

⑥ 出力UX

ユーザーが結果を理解・検証できる形で出す。マークダウン整形、引用元の明示、コードブロックのシンタックスハイライト、ストリーミング表示、思考過程(thinking)の可視化、構造化出力(JSON)など。「正しい答え」を出すだけでは不十分で、「ユーザーが信頼して検証できる形」で出すのがハーネスの仕事

4. なぜ今ハーネスエンジニアリングなのか

ハーネスへの関心が高まっている背景は3つある。

① LLMの能力上限が見えてきた。 GPT-5系・Claude Opus 4.7・Gemini 3.1 Pro まで来て、ベンチマークの伸びが鈍化している。同じモデルでもハーネスの違いで実用性能が2倍以上変わるケースが多く、「モデルを変える」より「ハーネスを変える」方が費用対効果が高い領域に入った。

② プロンプトだけでは解決できない問題が増えた。 「ツールが多すぎて選び間違える」「コンテキストが詰まりすぎて重要情報が埋もれる」「長時間タスクで途中迷子になる」——こうした問題はプロンプト1ターンの工夫では対処不能。設計の問題だ。

③ AIエージェント実用化のボトルネックがハーネス側に移った。 2024年は「LLMを賢くする」競争、2025年〜2026年は「ハーネスを賢くする」競争に移った。Anthropic の Claude Code、OpenAI の Codex、Cursor、Devin など主要プロダクトはすべてハーネス工学の競争領域になっている。

5. ハーネス設計の実践チェックリスト

良いハーネスの7チェックポイント

① TOOL DESIGN
ツール名は動詞で、引数は明示的
エラー返却は「次にどうすべきか」を含む構造化メッセージで
② CONTEXT
関連情報のみ動的に注入
プロンプトキャッシュとRAGで「読ませるけど詰めすぎない」
③ MEMORY
永続記憶はSource of Truth1箇所に
CLAUDE.md / AGENTS.md は短く、SPEC.mdに詳細を分離
④ LOOP
ループは終了条件を明確化
最大反復・最大トークン・タイムアウトの3点セット
⑤ SAFETY
破壊的操作は事前承認必須
Hooksで自動阻止、サンドボックスで影響範囲を限定
⑥ OBSERVABILITY
全ツール呼び出しをログ化
何が起きたかを後追いできるトレーサビリティ
⑦ COST
トークン経済を意識した設計
キャッシュ・バッチAPI・サブエージェントで月額コスト最適化

6. 主要ハーネスの比較

主要AIエージェント・ハーネスの設計傾向

Claude Code
Anthropic
特徴
Hooks / Subagents / Plan mode / Slash commands が充実
記憶
CLAUDE.md + ユーザーレベル + プロジェクト
特化
複雑なコーディング・長時間タスク
Cursor
Anysphere
特徴
IDE統合、@-mention によるコンテキスト指定
記憶
.cursor/rules/*.mdc をglobパターンで適用
特化
対話的なコード編集・即時フィードバック
Codex CLI
OpenAI
特徴
承認モード切替、サンドボックス強制
記憶
AGENTS.md(GPT-5系は長文耐性高め)
特化
CLI親和、Codeパイプライン統合
Devin
Cognition
特徴
完全自律型エージェント、ブラウザ・IDE・Shell統合
記憶
独自の永続記憶+Knowledge機能
特化
「丸投げ」型、最終成果物まで完遂

各ハーネスは使う LLM はほぼ同じ(Claude / GPT / Gemini)でも、ハーネス側の設計思想で得意分野が大きく異なる。「どのLLM?」より「どのハーネス?」という選択軸が、エージェント時代の主戦場だ。

7. アンチパターン

① ツールを増やしすぎる

ツールが20個を超えると、LLMは選択を間違える確率が急上昇する。本当に必要なツールだけ厳選し、似た機能はマージする。

② コンテキストに全部詰め込む

「念のため全部見せる」は逆効果。関連性フィルタを通して必要分だけ。コンテキストは「重要な信号を引き出す装置」であって「情報の保管庫」ではない。

③ 安全装置をプロンプトだけで実装

「危険な操作はしないでください」と書いても、状況によっては破られる。環境側で物理的に不可能にするのが正解(サンドボックス、Hooks、権限制限)。

まとめ

ハーネスエンジニアリングは 「LLMの外側」を設計する技術。プロンプトエンジニアリングはハーネスの中の1要素にすぎない。ツール定義・コンテキスト管理・記憶・ループ・ガードレール・出力UXの6要素を意識して設計することで、同じLLMでも実用性能が大きく変わる。

2026年現在、AIエージェント実用化の主戦場はハーネス側に移った。「賢いプロンプト」より「賢いハーネス」を作れることが、次世代エンジニアの差別化要因になる。

FAQ

Q1. プロンプトエンジニアリングはもう要らない?

違う。ハーネスの中の1要素として今も重要。ツール説明文、システムプロンプト、エラーメッセージなどはすべてプロンプト設計の対象。ただし「プロンプトだけで何とかする」発想は時代遅れ。

Q2. ハーネスエンジニアリングを学ぶ最初の一歩は?

Claude Code か Cursor を 「ただ使う」のではなく「設定をいじって挙動を変える」こと。CLAUDE.md / .cursor/rules を書く、Hooksを試す、Slash commandsを作る——これがハーネスの実体験になる。

Q3. ハーネスとフレームワーク(LangChain等)は同じ?

近いが違う。フレームワークは実装ツールキット、ハーネスは設計領域・思想。LangChain・LlamaIndex・Claude Agent SDK 等はハーネスを構築する道具。

Q4. 自分でハーネスを作る vs 既存品を使う?

多くの場合は 既存ハーネス(Claude Code・Cursor等)+ カスタマイズで十分。完全自作は、エンタープライズ要件・特殊ドメイン・極端なコスト最適化が必要な場合に限る。

Q5. 「ハーネスエンジニア」は職種として確立する?

すでに兆候はある。Anthropic・OpenAI・Cursor などのエージェント開発企業は 「Agent Engineer」「Tool Designer」「Context Engineer」といった職種を採用し始めている。2027〜2028年には独立した職種カテゴリとして定着する可能性が高い。