用語:Agent Harness
一文で:Agent Harnessは、AIモデルを実際に仕事をするagentへ変えるために、その周囲へ置かれる実行loop、tool、context管理、permission、verification、state管理などのsoftware layerです。
分類:AIエージェント・開発・運用(C03)
TERM_ID:G197
Agent Harnessは、AIモデルを「実際に仕事をするagent」として動かすために、modelの周囲へ組み込むsoftwareやconfigurationの層を指す新しい用語です。
2026年にはcoding agentを中心にこの表現が急速に広がりました。LangChainは「Agent = Model + Harness」と整理し、harnessを、model以外のcode、configuration、execution logicの総体として説明しています。OpenAIもCodexを使った開発経験を「harness engineering」という言葉で整理し、agentが仕事をしやすいenvironment、tool、abstraction、feedback loopを整える重要性を示しています。
この言葉はまだ新しく、厳密な標準定義が確立したとは言えません。記事や製品ごとにharnessへ何を含めるかを確認する必要があります。[1][2][3]
モデルの外側にある「仕事を可能にする仕組み」
LLM単体は、入力を受けて出力を返すmodelです。fileを開く、codeを実行する、検索する、長いtaskのstateを保持する、といった能力は周辺systemが提供します。
Agent Harnessの代表的な構成要素は次です。
- execution loop:modelを繰り返し呼び出す
- tool interface:検索、API、shell、browserなどを使わせる
- context assembly:毎回modelへ何を見せるか決める
- state / memory:途中経過や作業状態を保持する
- permissions:許可された操作を制限する
- sandbox:codeやfile操作を隔離する
- verification:testやschemaで結果を確認する
- observability:tool callやfailureを追跡する
- recovery:失敗時のretryやresumeを扱う
- termination:いつ終了するかを決める
同じmodelを使っても、このharnessが違えばagentの挙動は大きく変わります。
Agent Harnessとmodelは別物
LangChainの「Agent = Model + Harness」という式は、この境界を理解するのに便利です。
modelは、言語理解、推論、生成、tool callの選択などの能力を提供します。Harnessは、その能力をどのenvironmentで、どのtoolへ、どのconstraintの下で、何回実行し、どうverifyするかを決めます。
たとえば同じmodelでも、一方はfile readしかできず、一方はcode editとtest executionができ、さらに一方はfailure logを読んで修正・再試行できるなら、agentとしての実用性能は大きく違います。これをすべて「model性能」と呼ぶと、何が差を生んでいるのか見誤ります。
FrameworkやSDKとの違い
Agent frameworkやSDKは、Agent Harnessを構築するための部品や開発基盤になり得ます。しかし両者は同義ではありません。
frameworkは、agent、tool、memory、workflowなどを作るためのAPIやabstractionを提供します。harnessは、特定のagentを実際に動かすために組み上げたexecution environment・control全体を指すことが多いです。
frameworkを使わず自作codeだけでharnessを作ることもできます。逆にframeworkを導入しても、tool、permission、context、verificationを適切に設定しなければ、良いharnessにはなりません。
Eval harnessとの違い
「harness」は以前からtest harnessやevaluation harnessの意味でも使われてきました。
eval harnessは、modelやagentへtest problemを与え、outputをscoreする評価基盤を指します。Agent Harnessは、agentが通常taskを実行するためのoperation/execution layerを指す用法です。
ただしagent harnessの中にverificationやeval機能を組み込むことはあります。元文脈で「実行するためのharness」なのか「評価するためのharness」なのかを確認する必要があります。
なぜ重要語になったのか
model能力が高まると、「どのmodelを選ぶか」だけではagent性能を説明できなくなります。
OpenAIのharness engineering記事では、人間の役割が直接codeを書くことから、agentが仕事をしやすいenvironment、abstraction、tool、feedback loopを設計することへ移ったと説明されています。LangChainも、modelを変えずにharnessだけ改善することでcoding agentの性能を改善した事例を公開しています。
agent開発では「modelを賢くする」以外に、賢さを発揮しやすいenvironmentを作ることが独立した設計対象になっています。
具体例:coding agentのHarness
coding agentに「testを直して」と頼む場合を考えます。
良いharnessなら、agentはrepository structureを確認し、関連fileを読み、codeをeditし、testを実行し、failure logを受け取り、再修正できます。危険なcommandは禁止され、変更diffは記録されます。
悪いharnessでは、必要fileが見えない、test commandを知らない、実行結果をmodelへ返せない、contextがすぐ溢れる、誤操作を止められない、といった問題が起こります。
この差はmodelそのものではなく、harnessにあります。
元の文脈で確認すること
- modelとharnessのboundaryをどう定義しているか
- loopを誰がcontrolするか
- contextをどうassembleするか
- toolとpermissionは何か
- sandboxはあるか
- stateやmemoryをどう保持するか
- verificationをどう行うか
- observabilityとtraceはあるか
- failure recoveryはどうするか
Agent Harnessは有用な概念ですが、まだ用語が固まりきっていません。「harnessがある」という宣伝より、modelの外側で何をcontrol・provideしているかを具体的に読むことが大切です。
Harnessの境界はどこまで広いのか
Agent Harnessの用法が揺れる最大の理由は、「modelの外側」をどこまで含めるかが人によって違うためです。
狭い意味では、model call、tool execution、loopをつなぐruntime codeを指します。広い意味では、repository structure、instruction file、CI、test、sandbox、observability、memory、subagent coordinationまで含めます。
LangChainはかなり広く「modelでないものはharness」と整理します。一方、他の開発文書ではruntime layerだけをharnessと呼ぶ場合があります。
そのため用語集としては、一つの固定部品名と説明するより、「modelをagentとして動かす周辺system」というcoreを示し、その範囲が文脈依存であると説明するのが安全です。
Agent HarnessとAgent Runtime
runtimeは、agentを実際にexecuteするenvironmentを指すことが多い用語です。Harnessと重なりますが、完全な同義とは限りません。
runtimeはprocess execution、state、tool invocation、resource managementなどの「動かす場所・仕組み」を強調します。Harnessはそれに加え、context、instruction、verification、guardrailなど「modelをtaskへ適合させるscaffolding」まで広く含むことがあります。
製品がAgent Runtimeを提供すると書いていても、full harnessを提供するとは限りません。逆も同様です。
HarnessとAgent Framework
frameworkは開発者がagentを構築するためのreusable libraryやabstractionです。Harnessはそのframeworkで構築された具体的systemでも、自作実装でも構いません。
たとえばframeworkがAgent class、Tool interface、Memory APIを提供し、開発者がそれらを組み合わせて、自社repository用のinstruction、sandbox、test runner、permission、loopを作ったとします。この完成した周辺systemがharnessです。
frameworkは「部品箱」、harnessは「特定用途向けに組んだ装置」と考えると分かりやすくなります。
Harnessが隠すmodel差、modelが隠すharness差
agent benchmarkを読むときは、modelとharnessを分離して比較する必要があります。
Model A + Harness XとModel B + Harness Yを比較して性能差が出ても、どちらが原因か分かりません。理想的には、
- 同一modelでharnessだけ変更
- 同一harnessでmodelだけ変更
というablationが必要です。
Agent Harnessという概念は、agent performanceを「model leaderboardの延長」だけで理解する危険を減らします。
Context assemblyはHarnessの核心
agentは毎turn、無限のinformationをmodelへ渡せません。どのinstruction、file、tool result、memoryをcontextへ入れるか選ぶ必要があります。
このcontext assemblyが悪いと、必要情報が抜けたり、古いinformationが残ったり、irrelevant contentでcontext windowが埋まったりします。
したがってharnessは単にtoolをつなぐだけではなく、「今このstepでmodelが見るべきinformationを構成する」役割を持ちます。
Context EngineeringとAgent Harnessが密接に関係する理由です。
VerificationもHarnessの一部になり得る
生成modelのoutputをそのままactionへ使うとriskがあります。そこでharnessが、structured output validation、test、lint、schema check、policy checkなどを行い、failureをmodelへ戻します。
coding agentなら「codeを書いた」ではなく「testがpassした」をtermination conditionにできます。
data agentならSQLを実行する前にread-only policyをcheckできます。
こうしたdeterministic verificationをmodelの判断と組み合わせることで、agentのreliabilityを高められます。
Harnessのsecurity面
Harnessはagentのcapabilityを増やすだけでなく、制限する層でもあります。
- filesystem scopeを限定する
- network domainをallowlistする
- dangerous commandをblockする
- credentialを直接modelへ見せない
- write actionにapprovalを要求する
- secretをlogへ残さない
agent securityでは「modelが安全に判断すること」を期待するだけでなく、harnessがenforceするboundaryが重要です。
Agent Harness claimの読み方
「最新harnessでagent性能が向上」と書かれていたら、何が変わったかを確認します。
toolが増えたのか、context retrievalが改善したのか、test loopが追加されたのか、permissionが変わったのか、model call回数が増えたのか。
性能向上がcompute増加による場合もあります。harnessという言葉だけではefficiencyは分かりません。
Agent Harnessは、agentをsystemとして理解するための便利な枠組みです。modelだけを見るのではなく、modelが何を見て、何をでき、どの結果を受け、どこで止められるかを決める周辺systemを見るための言葉です。
Harnessは製品固有の「隠れた差」になりやすい
同じbase modelを使う複数のcoding agentが大きく異なる結果を出す場合、その差はtool quality、context retrieval、edit strategy、test loop、sandbox、memoryなどharnessにあるかもしれません。
そのためmodel名だけで製品性能を予測するのは危険です。逆に、あるagentの高評価を見て「このmodelなら同じ性能が出る」と推論するのも不正確です。公開benchmarkでは、model、harness、tool access、compute budgetをできるだけ分けて確認する必要があります。
Agent Harnessという語が役立つのは、この「model以外のsystem contribution」を明示的に考えられる点です。
Harnessのversioning
production agentではharnessもversion管理の対象になります。tool description、permission、system instruction、termination、context policyの小さな変更でもbehaviorが変わるからです。
model versionだけ記録しても再現できない場合があります。再現性やauditabilityが重要なら、modelとともにharness configuration、tool version、policy versionも記録する必要があります。
関連するAI用語
- AIエージェント(G191)
- Harness Engineering(G198)
- Agent Loop(G199)
- Agentic Workflow(G200)
注・出典
- Microsoft Agent Framework, Agent Harness ↩
- OpenAI, Unrolling the Codex agent loop ↩
- OpenAI, Unlocking the Codex harness: how we built the App Server ↩
AI協働制作について
本記事は、著者が独自に設計した指示、参照資料、出典確認規則、著作権確認および監査工程を組み込んだChatGPT等の生成AIを、情報収集の補助、資料整理、構成検討、草稿作成、文章校正および監査補助に使用して制作しました。記事の対象範囲、情報源の採否、構成、解釈および最終表現は著者が判断し、最終稿を承認しています。著者は、本記事の正確性、独自性、引用、著作権処理および公開内容について責任を負います。制作工程の詳細は「AI協働制作方針」をご覧ください。
