1. もうコードを書く時代は終わった?
2026年2月、OpenAIは衝撃的な実験結果を公開しました。わずか3人のエンジニアが5ヶ月間で約100万行のコードを生成——しかも、人間が手で書いたコードは0行。すべてがAIコーディングエージェント「Codex」によって生成されたものです。
このプロダクトは社内で日常的に使われ、外部のアルファテスターもいる「本番レベル」のソフトウェアです。デプロイも、バグ修正も、テストも——すべてエージェントが実行しました。
しかし、ここで重要な疑問が生まれます。
同じAIモデルを使っているのに、なぜチームによって生産性に10倍以上の差が出るのか?
答えは「プロンプトの上手さ」でも「モデルの選択」でもありません。
ハーネスエンジニアリング(Harness Engineering)——AIエージェントが安定して成果を出せる「環境そのもの」を設計する、まったく新しいエンジニアリング手法にあります。
2. ハーネスエンジニアリングとは何か
用語の起源
「ハーネスエンジニアリング」という言葉を最初に体系化したのは、Mitchell Hashimoto(HashiCorp創業者)です。2026年2月5日のブログ記事「My AI Adoption Journey」で、こう定義しています。
エージェントがミスを犯したら、そのミスを二度と起こさないように「環境側」を改善する——それがハーネスエンジニアリングだ。
その6日後、OpenAIがCodexチームの実験結果として「Harness engineering: leveraging Codex in an agent-first world」を公開。この記事をきっかけに、概念は一気に業界全体に広まりました。
3つの構成要素
OpenAIの実践と Martin Fowler の分析を総合すると、ハーネスエンジニアリングは3つのカテゴリに分類されます。
- コンテキストエンジニアリング(Context Engineering)
継続的に強化されるナレッジベース + 可観測性データやブラウザナビゲーションなどの動的コンテキスト - アーキテクチャ制約(Architectural Constraints)
LLMベースのエージェントだけでなく、決定論的なカスタムリンターや構造テストによる監視 - ガベージコレクション(Garbage Collection)
定期的に実行されるエージェントが、ドキュメントの不整合やアーキテクチャ違反を自動的に検出・修正
Phil Schmid(Hugging Face)はこれを端的に表現しています。
「モデルはCPUであり、ハーネスはOSである」
どんなに優れたCPUでも、OSなしでは実用的なソフトウェアは動きません。AIエージェントも同じです。
3. プロンプトエンジニアリングとの決定的な違い
多くの人がAIの活用を「プロンプトの書き方」で語ります。しかし、ハーネスエンジニアリングはそれとは根本的に異なるアプローチです。
❌ プロンプトエンジニアリング
- 「指示を上手に書く」ことに注力
- 毎回のセッションで再現が必要
- スケールすると破綻する
- エラーの対策は「言い方を変える」
- 個人の職人技に依存
✅ ハーネスエンジニアリング
- 「環境そのもの」を設計する
- リポジトリに永続化され自動で適用
- 使うほど複利的に品質が向上
- エラーの対策は「環境にルールを追加」
- チーム全体が恩恵を受ける
具体例を挙げましょう。エージェントが誤ったAPIパターンを使ってしまった場合——
- プロンプト的アプローチ:「次回からは〇〇パターンを使ってください」と毎回伝える
- ハーネス的アプローチ:カスタムリンタールールを追加し、
AGENTS.mdに設計原則を記載し、CIで自動検出する
前者は人間が忘れた瞬間に壊れますが、後者は組織の知識としてリポジトリに蓄積されます。OpenAIのチームは、このアプローチについてこう述べています。
エージェントが苦戦するとき、私たちはそれをシグナルとして扱う。何が欠けているかを特定し——ツール、ガードレール、ドキュメント——それをリポジトリにフィードバックする。常にCodex自身に修正を書かせる形で。
4. ハーネスの4つの柱
複数の先行事例(OpenAI、Anthropic、Mitchell Hashimotoなど)を横断的に分析すると、効果的なハーネスは4つの柱で構成されています。
コンテキストアーキテクチャ
AGENTS.mdは「目次」であり「百科事典」ではない。docs/配下に構造化された知識ベースを配置し、段階的に情報を開示する設計。巨大な単一ファイルはすぐ腐敗する。
エージェント特化
各エージェントのスコープを明確に限定し、使えるツールを制限する。汎用的な「なんでも屋」エージェントより、専門化されたエージェント群の方が遥かに信頼性が高い。
永続メモリ
会話履歴はセッション終了で消えるが、ファイルは残る。日次のノートファイル、長期記憶ファイル、設定ファイルなど「ファイルシステムベースの記憶」が、エージェントの継続性を担保する。
構造化実行
調査→計画→実行→検証の明示的ループ。エージェントが自分の変更をレビューし、CIの結果を読み、失敗時に自動リトライする。人間は最終承認のみ。
「地図を渡せ、マニュアルを渡すな」
OpenAIチームが学んだ最も重要な教訓の一つがこれです。
彼らは最初、すべての指示を1つの巨大なAGENTS.mdに書こうとしました。結果は予想通り失敗。コンテキストウィンドウを圧迫し、古くなった情報がエージェントを誤誘導し、何が重要で何がそうでないかの区別がつかなくなりました。
代わりに採用したのは、約100行の「目次」としてのAGENTS.mdと、docs/配下に配置された構造化ドキュメント群です。設計文書、アーキテクチャマップ、実行計画、品質グレード——すべてがバージョン管理され、エージェント自身が定期的にメンテナンスします。
5. OpenClawで始めるハーネスエンジニアリング実践
OpenClawとは
OpenClawは、Peter Steinberger氏が開発したオープンソースのAIエージェントハーネスです。All Things Open は次のように評価しています。
「OpenClawはハーネスの一種であるが、オープンソースでローカルファーストかつコミュニティ拡張可能という点が特徴的だ」
Claude、GPT、DeepSeek、Llama(Ollama経由)など、モデルは交換可能なモジュールとして扱われます。つまり、OpenClawが提供するのはモデルではなくハーネスそのものです。
OpenClawのハーネス構造
OpenClawのワークスペースは、ハーネスエンジニアリングの4つの柱を具現化した構造になっています。
├── AGENTS.md ← エージェントの行動指針(目次)
├── SOUL.md ← パーソナリティと判断基準
├── USER.md ← ユーザー情報・好み
├── MEMORY.md ← 長期記憶(キュレーション済み)
├── TOOLS.md ← 環境固有のメモ
├── memory/ ← 日次ノート(永続メモリ)
│ ├── 2026-03-15.md
│ └── 2026-03-16.md
└── skills/ ← モジュール化されたハーネスコンポーネント
├── github/
├── coding-agent/
└── weather/
各ファイルの役割
AGENTS.md — エージェントの行動指針
OpenClawのAGENTS.mdはまさにOpenAIが推奨する「目次」パターンを採用しています。エージェントが起動するたびに最初に読むファイルで、メモリファイルの場所、安全規則、外部アクション時の確認ルールなどが簡潔に記述されています。
SOUL.md — パーソナリティの定義
他のハーネスにはない独自の設計です。「意見を持て」「ヘッジするな」「冗長な返答をするな」「危険な操作は指摘しろ」——エージェントの判断基準と人格をコードではなく文書で定義します。これにより、同じエージェントでもプロジェクトごとに異なる振る舞いを実現できます。
memory/ — ファイルシステムベースの永続メモリ
会話履歴ではなく、ファイルとして記録される記憶。日次ノート(memory/YYYY-MM-DD.md)にはその日の作業ログが蓄積され、MEMORY.mdにはそこからキュレーションされた長期記憶が保存されます。エージェントは起動時にこれらを読み、前回のセッションの続きから作業を再開できます。
skills/ — モジュール化されたハーネスコンポーネント
GitHub操作、コーディングエージェントの起動、画像生成など、機能ごとに独立したスキルとして定義されます。各スキルにはSKILL.md(使い方の定義)とスクリプトが含まれ、必要なときにだけロードされる「段階的開示」を実現しています。
実践ワークフロー
OpenClawを使った典型的な開発ワークフローは以下のようになります。
- タスク投入:自然言語で指示(Discord、Telegram、CLI など)
- コンテキスト取得:AGENTS.md → 関連docs → memory/ を自動で読み込み
- サブエージェント起動:Codex CLI や Claude Code を子プロセスとして起動
- 実行 → PR作成:コード生成、テスト実行、Pull Request をオープン
- レビュー → マージ:エージェント間レビュー or 人間のレビュー後マージ
- 学習:問題があればAGENTS.mdやdocs/を更新(ハーネスが成長)
Peter Steinberger氏は、この方式で1ヶ月に6,600以上のコミットを一人で達成しています。同時に5〜10のエージェントを並列稼働させ、自分が読まないコードすら出荷するというワークフローです。
6. 企業が取り組むべき理由
① 開発速度の桁違いな向上
OpenAIの実験では、従来の約10分の1の時間で同等のコードベースが構築されました。エンジニアあたり1日平均3.5件のPRがマージされ、チーム拡大とともにスループットは逆に上昇しました。これは従来のソフトウェア開発(人数が増えるとコミュニケーションコストで速度が落ちる)とは正反対の特性です。
② 品質の複利効果
ハーネスエンジニアリングの最大の特徴は複利的に品質が向上することです。エージェントが失敗するたびに、その失敗パターンがリンタールール、テスト、ドキュメントとしてリポジトリに追加されます。ハーネスが「成長」するほど、同じミスは二度と起きなくなります。
③ 人材戦略の転換
求められるスキルが「コードを書ける人」から「AIが働く環境を設計できる人」に変化します。これは、Simon Willisonが指摘するように、エンジニアのマネジメントスキルに近い能力です。アーキテクチャ思考、品質基準の設計、フィードバックループの構築——シニアエンジニアの能力がこれまで以上に重要になります。
④ 先行者利益
ハーネスは「1日で構築できるもの」ではありません。OpenAIのチームは5ヶ月をかけてハーネスを磨き上げました。今から着手すれば、2026年後半には競合に対する構造的な優位性を確立できます。
7. 今日から始める5つのステップ(Minimum Viable Harness)
完璧なハーネスを最初から構築する必要はありません。以下のMinimum Viable Harness(最小実行可能なハーネス)から始めてみましょう。
- AGENTS.mdをリポジトリに作成する
まず100行以内で。プロジェクトの概要、ディレクトリ構造、命名規則、「これだけは守ってほしいルール」を記述。巨大にしない——目次であること。 - カスタムリンターを1つ導入する
ast-grepやESLintのカスタムルールで、「エージェントがよくやるミス」を1つ検出するルールを追加。CIに組み込み、コミット時にブロック。 - CIの結果をエージェントに読ませる
テストが失敗したら、そのログをエージェントのコンテキストに渡す仕組みを作る。エージェントが自分の失敗を認識し、修正できるようにする。 - 「失敗→ドキュメント化」のルールを確立する
エージェントがミスするたびに「なぜ失敗したか」「どうすれば防げるか」をAGENTS.mdまたはdocs/に追記するフローを作る。エージェント自身に書かせるのが理想的。 - 週1で「ハーネスレトロスペクティブ」を実施する
エージェントの成功率、よくある失敗パターン、ハーネスの改善ポイントを15分で振り返る。ハーネスは育て続けるもの。
8. まとめと展望
ハーネスエンジニアリングは、2026年に登場した単なるバズワードではありません。OpenAI、Anthropic、Mitchell Hashimotoなど、AIコーディングの最前線にいる複数の独立したチームが、同じ結論に辿り着いた結果です。
その結論とは——
AIエージェントの性能差を決めるのはモデルではなく、ハーネスである。
2026年後半に向けて、ハーネスエンジニアリングは「知っておくと便利な概念」から「必須のエンジニアリングスキル」へと変化していくでしょう。今からハーネスの構築を始めることが、AI時代における開発チームの最大の投資になります。
🚀 AIエージェント環境の設計・構築を支援します
LLM Japan は、ハーネスエンジニアリングの設計からOpenClawを活用した実装まで、
AIエージェント時代の開発基盤構築をワンストップで支援します。
まずは30分、お話を聞かせてください。
参考文献
- OpenAI — Harness engineering: leveraging Codex in an agent-first world
- Mitchell Hashimoto — My AI Adoption Journey
- Martin Fowler — Harness Engineering
- The Pragmatic Engineer — The Emerging "Harness Engineering" Playbook
- All Things Open — OpenClaw: Anatomy of a viral open source AI agent
- OpenClaw — GitHub Repository