AIエージェントを実務に載せると、モデルそのものの賢さより「その周りの作り込み」で結果が変わる、と気づくことが多い。同じモデルでも、指示やツール、やり直し方しだいで挙動は別物になる。この「モデルの周りの足場」を設計する仕事を、2026年に入って ハーネスエンジニアリング(harness engineering)と呼ぶようになった。
これは特定ツールの使い方ではなく、AIエージェントに生まれた新しい「層」の話だ。LLM(大規模言語モデル)をAPIで一度でも叩いたことがあるなら、自分で組んでいなくても、この見方はそのまま設計に効く。
まず「足場」と「束ねる層」を分けて読む
LLM単体は賢いが、指示待ちの「箱」でしかない。実用にするには箱の周りに足場が要る。指示を組み立てるプロンプト、ツール、記憶、失敗時の復旧手順、コストや権限のルール——このひとかたまりを エージェントハーネス(agent harness)、縮めてハーネス=足場と呼ぶ。この足場を設計するのが、さきほどのハーネスエンジニアリングだ。
この見方を広めた提唱者は「Agent = Model + Harness(エージェント=モデル+足場)」と定式化した。あるチームは、中身のモデルを変えず足場だけ作り替えて、ベンチマーク Terminal Bench で順位を上位30から上位5へ押し上げたと報告している。
メタハーネス は、こうした足場を一段上で束ねる層のことだ。つまり——ハーネス=足場そのもの、メタハーネス=足場を束ねる層、と読み分ければよい。
足場が増えると、なぜ「束ねる層」が要るのか
足場は各社・各ツールでばらばらに育った。すると、似た足場をコピペで作り直す、ある設定を別ツールへ移せない、数が増えるほどコストや権限を統べられない、という詰まりが起きる。
Databricksはこれを、サーバを一台ずつ手で管理した時代から、Kubernetesでサーバ群を宣言的に扱う時代への移り変わりになぞらえ、メタハーネスはその「一段上の抽象化」だという。束ねる層が提供するのは主に3つ。 合成(Composition)は足場を1行で差し替える。 統制(Control)はコストや権限の上限をポリシーとして強制する。 協働(Collaboration)は動いているセッションをURLで渡し、レビューや引き継ぎに使う。本記事は前の2つをコードで見て、協働は名前を挙げるにとどめる。
鍵は、どの足場も入り口と出口の形をそろえる共通インターフェースだ。 Omnigent は、DatabricksとNeonが2026年6月に公開した、この層のOSS実装(Apache 2.0ライセンス)である。
足場を「1行」で差し替える ― Omnigentの設定を読む
Omnigentは、1つのエージェントを短いYAML(設定ファイル)で定義する。次のキー名は、公式リポジトリのREADMEと同梱例 examples/polly/config.yaml に突き合わせたものだ。
# === Omnigent のエージェント定義(最小例)===
name: my_agent
prompt: あなたは有能なデータアナリストです。
executor:
# 【Composition(合成)】足場の差し替えは、この1行を変えるだけ。
# claude-sdk → codex / cursor / pi / openai-agents などに置き換えれば、
# プロンプトもツールもそのままで、下の実行ハーネスだけが入れ替わる。
# (コマンドラインからは `--harness <名前>` フラグでも切り替えられる)
harness: claude-sdk
tools:
# ローカルの Python 関数を、そのままツールとして渡す(スキーマは自動生成)
word_count:
type: function
callable: mypackage.mymodule.word_count
# MCP(Model Context Protocol = ツール/データ源をLLMにつなぐ共通規格)
# 経由のツールも同じ書き方で足せる
docs:
type: mcp
url: https://example.com/mcp
# 【Control(統制)】コストや権限を“プロンプトの外”でポリシーとして宣言・強制する。
policies:
budget:
type: function
handler: omnigent.policies.builtins.cost.cost_budget
factory_params:
max_cost_usd: 5.00 # 1セッションの上限コスト(ハードキャップ)
ask_thresholds_usd: [3.00] # 途中で承認を挟む“ソフト”しきい値
approve_shell:
type: function
# shell 実行やファイル書き込みの前に、必ず人間の承認を求める
handler: omnigent.policies.builtins.safety.ask_on_os_tools
読みどころは3か所。 executor.harness の一行を claude-sdk から codex などに書き換えるか --harness フラグを渡すだけで、プロンプトもツールもそのままに下の足場だけが入れ替わる——これが「合成」だ。 type: mcp の MCP(Model Context Protocol)は、ツールやデータ源をLLMにつなぐ共通規格だ。 policies が「統制」で、 max_cost_usd でコスト上限、 ask_thresholds_usd で途中承認、 ask_on_os_tools でシェル実行前の人間承認を宣言する。肝は、これがお願いでなく層の強制ルールな点だ。同梱例は、pushやmergeは自動で進めつつ、force-pushや rm -rf / だけは常に拒否(DENY)する。
足場に賭ける海外企業 ― OpenAIとHarveyの数字
足場でそこまで変わるのか。実際に賭ける企業の数字で見る。
OpenAIは足場づくりを専門の規律として扱い、これをハーネスエンジニアリングと呼ぶ。同社の公開記事によれば、3〜7名のチームが手書きコード0行で、約100万行規模の社内プロダクトをコーディングエージェントCodexで約5か月で作ったという(1人1日およそ3.5件のプルリク)。やったのはモデルの改良ではなく、指示書 AGENTS.md を薄い「目次」にし、詳細は docs/ に置き、規約を lint で機械的に強制する足場を整えたことだ。
足場は品質だけでなくコストにも効く。法務向けAIのHarveyがFireworks AIと公開した構成は、オープンモデルのGLM 5.1(中国発の公開されたLLM)を主役に、難所だけ高性能なClaude Opusを「呼べる助言役」で使う。Fireworksの計測では、品質・コストの両面でOpus単体を上回ったという。
| 構成 | 100問中の全合格 | 費用 |
|---|---|---|
| Opus 単体 | 14問 | 954ドル |
| GLM 5.1 + Opus助言役 | 18問 | 368ドル |
数字の規模は大きいが、やっていることは、さきほどのYAMLと同じ——足場を差し替え、ポリシーで縛るだけだ。自分のPoC(試作)でも、引ける手綱は変わらない。
どこまで信じてよいか ― ハーネス論の3つの留保
冷静に見る留保を3つ。第一に、言葉の指す範囲がまだ揺れている。「足場=モデル以外のすべて」では広すぎて曖昧だという批判がある。第二に、事実上の標準がまだ無い。似た束ねる層が「1000ものAIネイティブ企業で独立に再発明されている」との観察もあり、これが避けて通れない基盤になるかは分からない。第三に、ここで挙げた数字はどれも当事者の公表値で、第三者が同条件で再現したデータはまだ乏しい——上位30から上位5へ、も単一チームの一例だ。個々の倍率や金額は鵜呑みにしないほうがいい。
それでも、モデルを大きくする以外に「足場を設計する」というレバーが立ち上がったこと自体は、コードでも海外企業の実践でも確かめられる。あなたのエージェント——これから組むものも含め——を一段上から束ねたら、何が楽になるだろうか。ハーネスエンジニアリングは、それを考える入口として持っておく価値がある。
参考文献
- Databricks - Introducing Omnigent: a meta-harness to combine, control, and share your agents - https://www.databricks.com/blog/introducing-omnigent-meta-harness-combine-control-and-share-your-agents
- Omnigent 公式リポジトリ(GitHub, Apache 2.0。エージェント定義YAML・executor.harness・policies の API 名の突合元) - https://github.com/omnigent-ai/omnigent
- Omnigent 公式サイト - https://omnigent.ai/
- Omnigent - examples/polly/config.yaml(サンドボックスの DENY 方針=force-push / rm -rf / の出所) - https://github.com/omnigent-ai/omnigent/blob/main/examples/polly/config.yaml
- Addy Osmani - Agent harness engineering(Agent = Model + Harness / Terminal Bench で Top 30→Top 5) - https://addyosmani.com/blog/agent-harness-engineering/
- OpenAI - Harness engineering(手書き0行・約100万行・1人1日3.5 PR・AGENTS.md / docs / lint) - https://openai.com/index/harness-engineering/
- Fireworks AI - Open-source agents with frontier advisors(Harvey:18/100・368ドル 対 14/100・954ドル) - https://fireworks.ai/blog/open-source-agents-frontier-advisors
- Martin Fowler - Harness engineering(概念粒度の揺れ・behavioral harness) - https://martinfowler.com/articles/harness-engineering.html
- Latent Space(swyx) - It's Meta-Harness Summer(系譜と「1000社で独立再発明」・標準不在の留保) - https://www.latent.space/p/ainews-its-meta-harness-summer