🤔

ハーネスエンジニアリングはただの環境構築では?

に公開

ハーネスエンジニアリングの流行り

最近、「ハーネスエンジニアリング」という言葉が流行り出しているように感じられます。
「ハーネス」というのが、ユーザの想定通り・望み通りに動くような環境という
意味の言葉として使われているようなので、ハーネスエンジニアリングとは、
そのような環境を作る試みそのものであるといえるでしょう。

それが2026年1月〜2月あたりから、
私が確認できた範囲でZennの記事上で散見されるようになりました。

https://zenn.dev/yoshihiko555/articles/2984440c37ad9d

https://zenn.dev/mk668a/articles/04bcf1d3542b1c

さて、そんな流行りが起きていることを確認し
そんな目新しい話ではないのでは? と考えました。

それってそんなに新しい概念?

自分たちの想定通りに動かすことは、わざわざ用語を作って取り挙げるほど
困難になる話なのでしょうか?
私は、SubAgentAgent Skill などの概念がある Agentic Coding で、
制御が難しいという話が腑に落ちないです。

余談

個人的に、ハーネスって表現もしっくりこないです。
要領を得ない表現だと感じているからです。
やっていい物事の範囲を定義するのであれば、以下の方が適切だと思っています。

  • Boundaries(境界)
  • Permitted(許可・権限)

語感だとハーネスの方がかっこよかったりするんでしょうか...?🤔

ハーネスの語源は?

ハーネスの語源として推測できるものを2つ挙げます。

  • 犬の安全を確保するための装着器具

https://www.chuo-a.ac.jp/anilab/learn/1841/

  • 高所で作業する際に安全を確保するための器具の墜落制止用器具(旧称:安全帯)

https://japan-safetybelt.jp/use/

が挙げられます。

少なくとも「安全に事を為せるように装着するもの」であるというところから、
安全にAIエージェントを運用できるようにするという解釈が成立します。

  • サンドボックス環境を作成する
  • AIエージェントが実行するコマンドを制限する

のようなAIエージェントに対して、ある程度の制限をかけた上で
コーディングをさせるための環境構築
がこれにあたるはずです。
今振り返ると、そのための機能は十分に提供されているのではないでしょうか。

余談

私はプライベートで、AIモデルを提供する企業が併せて提供している
著名な Agentic Coding ツールを3つ利用しました。

  • Claude Code
  • Codex
  • Gemini CLI

この中では Agentic Coding において
最も Agent の制御がしやすいツールは Claude Code だと考えています。

なぜそうであるかについて、ここでは詳しく説明しませんが
Claude Code において、様々なタイミングで任意のコマンドが実行可能な Hooks
他の Agentic Coding ツールの中と比べて、柔軟な制御を実現しやすいと認識しています。

なぜここまで話題になっている?

では、そこまで考えた時、「なぜ話題になったのか」を考えるべきでしょう。

1つは、シンプルに特定の話題についての一意の呼称が欲しかったという線です。
一番現実的な想像ですが、それにしては、
これまでよりかなり方向性が異なるのと、この話題を取り上げる
記事の方向性がまばらであると感じました。

これまでとは方向性が異なる

AIエージェントを扱う文脈で「⚪︎⚪︎エンジニアリング」という名称があったものとして、以下が挙げられます。

  • プロンプトエンジニアリング
  • コンテキストエンジニアリング

の2つです。これは制限というより
AIが上手いこと動いてくれるように適切な指示と文脈を提供しよう!
という雰囲気でした。AIに対して、信頼を置いているという表現もできます。

しかし、ハーネスエンジニアリングについては、名前から明らかに
AIに対して制約や制限を設けるというような制御しなければならないという
ニュアンスの文言が現れたと感じています。

ただ、そもそも制御する方法は前からあったという事実があります。
目的は一意のはずですが、以下のような独自の方法論が見受けられました。

  • AIエージェントが使用するツールの制限をする
  • コンテキストを提供するファイルを細かくわける
  • CLI・Workflowなどを使った品質チェックを組み込む

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

次に、このハーネスエンジニアリング自体の定義に
揺らぎがあり、解釈が分かれていて曖昧である
可能性を考えました。
つまり、これに言及した個人または組織の解釈がそれぞれ異なった結果
議論の紛糾を招いており、一意に定まっていないからではないかと考えました。

ということで少し調べてみたのですが
OpenAIによるブログ記事とarXivで公開されている論文が見つかりました。

それぞれの主張の異なり

そこで、この2つの情報を確認していく中で
それぞれ共通した前提のもと、異なる手法でハーネスを構築する
ことを主張していました。

OpenAI側の主張

https://openai.com/ja-JP/index/harness-engineering/

これを要約するとこうなります。

  • 5ヶ月の間に「手書きなしでソフトを作って社内でベータ版リリースする」という実験をした。
  • これについて、ドキュメントやロジック、テストすらもCodexで書かれている
  • 膨大なプログラムを内包するソフトウェアを出すまでの数週間において、エンジニアチームの主なタスクは環境の設計と意図の明確化によるCodexへのフィードバックループの構築と、それによる変化への理解だった。
  • AIエージェントは自分たちのもつ希少資源である「時間と注意力」の最大限活用方法として、システム、スキャフォルディング、レバレッジに焦点を当てた新たな種類のエンジニアリング作業をもたらした。
  • それは、AIエージェントが高度な目標への進展を図るための仕組みを整えること
  • 大きな目標を分解して、エージェントが理解可能・実行可能にするための試行を重ねた
  • 大規模かつ複雑で信頼性の高いソフトウェアを作って維持することを可能にする環境とフィードバックループや制御システムの設計が最終課題になった。

arXiv論文側の主張

https://arxiv.org/pdf/2603.25723

これを要約するとこうなります。

  • 従来の「ハーネス(複数ステップの推論やツール使用などを管理する制御スタック)」は不透明なコードに埋もれており、比較や移行が困難であるという課題に対し、制御ロジックを「自然言語」として外部化する提案と実験をした。
  • これについて、役割、契約、ワークフロー構造、状態管理といった高次な制御ロジックは、コードではなくポータブルな「自然言語の実行可能アーティファクト(NLAH)」として書かれている。
  • システムの性能を評価し向上させるための主なタスクは、単なるプロンプトの調整ではなく、実行環境から独立してモジュール化された「ポータブルで明確なハーネス構造の設計(コンテキストエンジニアリング)」 だった。
  • 自然言語で書かれたハーネスを直接読み取って解釈するインテリジェントな実行環境(IHR)は、決定論的な操作(コードベースのツール)と、柔軟な制御ロジック(自然言語)を明確に分離する新たなアーキテクチャをもたらした。
  • それは、エージェントの制御構造を「コードの寄せ集め」から、独立して共有・編集が可能なオブジェクトへと昇華させること。
  • ワークフローをモジュールごとに分解・明示化し、どの制御構造(ファイルベースの記憶、検証機能、自己進化など)がエージェントの成功にどう寄与するかを比較・検証するための試行を重ねた。
  • ハーネスの設計をブラックボックスな経験則から脱却させ、体系的で 「制御された科学的な研究対象」へと進化・最適化させていくことが最終課題(目標)になった。

2つの主張からわかること

共通点

AIエージェントが出す成果の質を左右する要素については
モデルの性能そのものよりも、それを取り巻く制御の構造にあるとしていました。
環境がどれくらい整っているかが成果の質を左右するという前提自体は
共通しているといって問題ないでしょう。

そのためにフィードバックループを構築するということを
ハーネスの1つとして考えていることも共通していました。

相違点

ただし、ハーネスの構築方法が明確に異なっていました。

OpenAI側は自然言語ではなく、制御システムの設計によるハーネスの構築を
arXiv論文側は、AIエージェントに与えるための自然言語のプロンプトを、
分離したモジュールとした制御ロジックの構築
をハーネスの構築として提示していました。

「ハーネス」って結局は何なのか

AIエージェントの挙動を制御する仕組みであり
AIエージェントに対するフィードバックループをもった制御ロジックであることは明確です。

ただし、その手法に一意な定義がありません。
つまり、どう作るかは個人・組織が自由に決めてよい点がポイントなのではないでしょうか。

これまでの Agentic Coding を振り返ってみると
AIエージェントに対してこう指示したからとこれが返ってくるという一意な結果の要求は
まず達成されていなかったはずです。

つまり、これはAIエージェントになるべく自分の満足する結果を出してもらうために、ユーザである私たちは様々な手法を用いて、その成果や改善について議論し、レスポンスの品質を向上していく過程ともいえます。

環境構築の一種であるように主張したタイトルでしたが
少なくとも、環境構築にはある程度の目的を達成するという
ゴールがあります。

しかし、ハーネスエンジニアリングには
AIの進歩とそのAIを扱うツールの仕様変更に追随していく必要が
あるため、ゴールがありません。

そういう意味では、単なる環境構築ではないのだと
捉えるということもできますね。

おわりに

ハーネスエンジニアリングとは
AIエージェントがユーザの満足する結果を出すための環境構築だということがわかりました。

ハーネスエンジニアリングに終わりはありませんが
これからもベストな環境構築を探求する取り組みを諦めないように
していきましょう。

GitHubで編集を提案
Sun* Developers

Discussion