⚖️

ハーネスエンジニアリング vs プロンプトエンジニアリング

プロンプトを上手く書くことと実行環境を上手く設計することは別物だ

2023〜2024年はプロンプトをいかに上手く書くかがAI活用の鍵だった。2025〜2026年、それが変わりつつある。

プロンプトエンジニアリングの限界

プロンプトがどれだけ良くても、モデルがファイルを読めなければコードレビューはできない。テストを実行できなければ正しさを検証できない。エラーメッセージを見てリトライできなければ一発で当てるしかない。

プロンプトは「指示」だ。ハーネスは「能力」だ。指示がいくら完璧でも能力がなければ実行できない。

ハーネスエンジニアリングが決めるもの

ツールアクセス — モデルはファイルシステム、ブラウザ、API、データベースにアクセスできるか?

フィードバックループ — 実行結果を見てリトライできるか?エラーメッセージがモデルに伝わるか?

コンテキスト管理 — 長いタスク中にどの情報を保持しどれを捨てるか?

ガードレール — 危険な行動を事前にブロックするメカニズムがあるか?

オーケストレーション — 複数のモデル呼び出しをどの順序で、どの条件で実行するか?

SWE-benchが示したこと

同じモデルがハーネスによってスコアが2〜3倍違うのはSWE-benchで既に実証済みだ。Devin、Claude Code、Cursor、SWE-agent全て同じベースモデルを使うが性能が違う。違いはハーネスだ。

プロンプトエンジニアリングが不要と言っているのではない。プロンプトはハーネスの一構成要素に過ぎず、全体ではないということだ。

動作フロー

1

プロンプトエンジニアリング — モデルへの指示(system prompt、few-shot、chain-of-thought)を最適化

2

ハーネスエンジニアリング — モデルが実行される環境全体(ツール、フィードバックループ、コンテキスト、ガードレール)を設計

3

プロンプトはハーネスの一レイヤー — プロンプトだけではファイル読み込み、テスト実行、エラーリトライは不可能

4

SWE-benchが証明 — 同じモデル、異なるハーネス、2〜3倍の性能差

ユースケース

Claude Code vs ChatGPTウェブ — 同じモデル系列だがハーネスが全く異なる RAGパイプライン — プロンプトより検索品質、チャンク戦略、リランキングが結果を左右する