AIアセスメント 100,000円(税別)

詳しく見る
FDX株式会社
Tech Note

ハーネスエンジニアリングとは?​エージェント品質の​決め手

ハーネスエンジニアリングとは、AIエージェントの外側にある検証・評価・コンテキスト設計の技術です。生成と評価の分離、決定論的ツールでの品質強制、そして「足すより削る」という原則をFDX株式会社が解説します。

·FDX株式会社 編集部·監修: 佐藤 拓哉(生成AI協会 理事)

AIエージェントの​品質が​上がらない​とき、​多くの​現場は​プロンプトを​直しに​行く。​しかし​実際に​成果を​分けているのは、​モデルの​内側ではなく外側である​ことが​多い。

エージェントが​呼べる​ツールは​何か。​生成物の​合否を​誰が​どう​判定するか。​何を​コンテキストに​渡し、​何を​捨てるか。​どこまでの​操作を​許すか。​このモデルの外側にある仕組み全体がハーネスであり、​その​設計が​ハーネスエンジニアリングである。

Anthropicは​長尺タスクの​ハーネス設計を​扱った​記事で、​生成と​評価を​同じ​エージェントに​やらせるべきではないと​述べている。​モデルは​自分の​成果物を​「人間の​目には​明らかに​凡庸な​品質であっても、​自信を​持って称賛する」​傾向が​ある​ためだ。​品質保証を​モデル自身の​内省に​委ねている​限り、​この​壁は​越えられない。

この​​記事の​​対象読者


ハーネスとは​​「モデルの​​外側の​​全部」

ハーネスの構成要素

ハーネスは​日本語で​「装具」​「拘束具」を​指す語で、​暴れる​馬に​付ける​馬具が​語源である。​AIの​文脈では、モデルという不確実な生成装置を、業務で使える出力に収束させるための外部構造を意味する。

構成要素何を決めるか典型的な実装
ツールモデルが​呼べる​操作の​集合ファイル操作、​API呼び出し、​検索、​コード実行
検証合否の​決定論的な​判定型チェック、​テスト、​リンタ、​スキーマ検証
評価主観的な​品質の​採点生成とは​別主体に​よる​基準ベースの​採点
コンテキスト何を​渡し、​何を​捨てるかリセットと​構造化された​引き継ぎ
権限実行して​よい​操作の​境界サンドボックス、​承認ゲート、​ドライラン

この5つが揃って初めてエージェントは業務に載る。 どれか​1つでも​欠けると、​それが​品質の​上限に​なる。


なぜモデルではなく​​ハーネスが​​品質を​​決めるのか

同じ​モデルを​使っても、​成果は​現場に​よって​大きく​違う。​理由は​単純で、モデルの能力は全員に等しく配られるが、ハーネスは自社で作るしかないからだ。

モデルは​共通の​入力である。​競合他社も​同じ​モデルを​使える。​差が​つくのは、​その​モデルに​何を​見せ、​何を​させ、​どう​検収するかと​いう​外側の​設計であり、​ここは​業務知識が​要る​領域である。モデルの進化を待つのではなく、外側を作り込むほうが早く効く。

もう​1つの​理由は​再現性である。​プロンプトの​調整は​結果が​確率的に​しか​改善しないが、型チェックやテストは決定論的に不合格を弾く。​「たいてい正しい」を​「必ず​条件を​満たす」に​変えられるのは​検証側だけである。


原則1:生成と​​評価を​​分ける

最も​効果が​大きく、​最も​見落とされる​原則である。

同じ​エージェントに​作らせて​採点させると、​自分の​出力に​甘い​評価が​返ってくる。​これは​能力の​問題ではなく、​生成に​使った​文脈の​中で​評価しているからである。確証バイアスは人間と同じ形で起きる。

対処は​構造で​行う。

重要な​成果物ほど​この​分離が​要る。​本番コードや​顧客向けドキュメントを、​生成したのと​同じ​文脈での​自己評価で​通してはいけない。


原則2:品質は​​文書ではなく​​決定論的ツールで​​強制する

「規約に​書いてあるのに​守られない」と​いう​状況は、​ハーネス設計の​失敗である。

文書はモデルにとって参考情報にすぎないが、リンタとテストは通らなければ先に進めない壁になる。 品質基準は​文書ではなく​実行可能な​形に​落とす。

フィードバックは​速い層に​寄せる​ほど​効く。​編集直後に​走る​フックは​ミリ秒で​返り、​コミット前の​チェックは​秒、​CIは​分、​人間の​レビューは​時間から​日を​要する。同じ間違いなら、より速い層で潰したほうが総コストは小さい。 この​階層設計の​詳細はループエンジニアリング入門で扱っている。

実務で​効く​順序は​次の​とおりである。

  1. 型で表現できるものは型にする。 説明文より​腐りにくく、​違反が​即座に​分かる
  2. 一度起きた失敗はテストかリンタルールにする。 同じ​失敗が​二度​起きない​仕組みは​複利で​効く
  3. 文書は「コマンド・パス・禁止事項」に絞る。 説明文書は​読まれず​腐る

原則3:コンテキストは​​圧縮より​​完全リセット

長尺の​タスクでは、​会話履歴が​膨らんで​一貫性が​落ちていく。​ここで​履歴を​要約して​圧縮する​方​法が​一般的だが、​Anthropicの​記事は圧縮より、完全なコンテキストリセットと構造化された引き継ぎのほうが長尺タスクの一貫性を保てるとしている。

圧縮は​「何が​重要か」の​判断を​モデルに​委ねる​操作であり、​失われる​情報の​制御が​できない。​一方で​リセット+引き継ぎは、​次の​セッションに​渡す内容を​人間または​別の​仕組みが​決められる。

実装は​難しくない。

副次的な効果として、コンテキストが飛んでも作業が続行できる設計になる。 30分以上​かかる​タスクは、​この​形に​しておくと​途中で​止まっても​損失が​小さい。


原則4:ハーネスは​​足す技術ではなく​​削る​​技術

ここが​本質であり、​最も​誤解されている​点である。

ハーネスの​各構成要素は、「モデルがこれを自力ではできない」という仮定を符号化したものである。​制約を​1つ足すたびに、​その​仮定が​固定される。

問題は、​モデルが​良くなっても​その​仮定が​残り続ける​ことだ。​2年前の​モデルでは​必要だった​保険的な​指示、​二重チェックの​要求、​細かい​手順の​指定が、​現行モデルでは​冗長どころか​有害に​なる。過剰な制約は探索を狭め、かえって性能を下げる。

Anthropicの​記事も、​モデルが​改善するに​つれて​ハーネスから​不要な​構成要素を​剥が​していく​べきだと​述べている。

ハーネスの成長と縮小

棚卸しの​実務

四半期に​一度、​次を​問う。

ハーネスは放っておくと単調に増える。 課題が​見つかる​たびに​制約が​足され、​削る​動機は​誰にも​無いからだ。​棚卸しを​定期作業と​して​組み込まない​限り、​ハーネスは​必ず肥大化する。


ループエンジニアリングとの​​違い

この​2つは​競合する​概念ではなく、内側と外側の関係にある。

ループエンジニアリングハーネスエンジニアリング
対象エージェントが​回る​循環​その​もの循環の​外側に​ある​構造
主な設計対象観測・判断・​行動の​3層、​停止条件ツール、​検証、​評価、​コンテキスト、​権限
問い「どう​回し続け、​どこで​止めるか」「何を​使わせ、​何を​もって合格と​するか」
失敗の症状止まらない、​無限リトライ、​暴走動くが​品質が​安定しない、​検収できない

ループはエンジンで、ハーネスは車体である。 エンジンだけでは​走らず、​車体だけでは​動かない。

実務での​着手順は​症状で​決まる。​エージェントが​止まらない​・暴走するならループ側の​停止条件から。​動くが​品質が​読めない​・検収できないなら​ハーネス側の​検証と​評価から​着手する。

ループ側の​設計はループエンジニアリング入門で​体系的に​扱っている。


アンチパターン

プロンプトに保険文言を積む。 ​「必ず確認する​こと」​「慎重に​検討する​こと」を​足しても​品質は​上がらない。​検証で​弾くべきものを​言葉で​頼んでいる​状態である。​必要なら​明示的な​検証ステップと​して​別に​置く。

自己評価を最終判断にする。 生成した​文脈での​自己採点は​通ってしまう。​重要な​成果物ほど​別コンテキストの​評価を​挟む。

同じエラーへの無限リトライ。 2回失敗したら​人間に​返す。​リトライを​重ねる​ほど​効果は​減衰し、​トークンだけが​溶ける。

100%を目指してループを回し続ける。 8割で​人間に​渡すほうが、​残り2割に​トークンを​注ぎ込むより​速い​場合が​多い。​修正ループの​上限を​決めて​おく。

検証なき委譲。 エージェントに​任せた​成果を、​実行結果を​見ずに​「完了」と​扱う。​テスト・ログ・​画面の​いずれかで​確認するまでは​完了ではない。


FAQ

Q1. ハーネスエンジニアリングと​​プロンプトエンジニアリングは​​何が​​違うか?

プロンプトエンジニアリングは​モデルへの​入力を​設計する​技術で、​ハーネスエンジニアリングは​モデルの​外側の​構造を​設計する​技術である。プロンプトは確率的にしか効かないが、ハーネスの検証層は決定論的に効く。 品質を​「必ず​条件を​満たす」​水準に​したいなら、​プロンプトではなく​ハーネス側で​担保する。

Q2. 小さな​​チームでも​​ハーネスは​​必要か?

必要である。​ただし​最初から​5要素すべてを​揃える​必要は​ない。まず検証(型チェックとテスト)から始めるのが​投資対効果が​高い。​評価の​分離は、​成果物の​重要度が​上がってから​足せばよい。

Q3. 評価用の​​エージェントを​​別に​​立てる​​コストは​​見合うか?

成果物の​手戻りコストと​比較して​判断する。​本番コードや​顧客向け成果物のように、​間違いが​外部に​出ると​損害が​発生する​ものは​見合う。​内部の​使い捨て​スクリプトには​要らない。判断軸は「間違いが誰に届くか」である。

Q4. コンテキストの​​リセットと​​引き継ぎは、​​具体的に​​何を​​ファイルに​​書くのか?

目的、​制約、​これまでの​決定事項と​理由、​未解決の​課題、​次に​やる​こと、​検証条件の​6つを​型と​して​持つと​よい。「なぜそう決めたか」を落とすと、次のセッションが同じ議論を繰り返す。

Q5. ハーネスを​​削る​​とき、​​何を​​基準に​​判断するか?

「削って実際に失敗するか」を測る。 不安を​基準に​すると​何も​削れない。​制約を​外した​状態で​通常の​タスクを​走らせ、​失敗が​再現するなら戻す。​再現しないなら、​その​制約は​古い​モデルの​前提だったと​いう​ことである。

Q6. 発火していない​​フックは​​本当に​​消して​​よいか?

発火実績が​無い​理由を​先に​確認する。​設定ミスで​動いていないだけなら直す。​正しく​設定されていて​発火しないなら、​その​ガードが​守っていた​失敗は​もう​起きていない。「念のため残す」を続けると、どのガードが生きているか誰も分からなくなる。

Q7. ハーネスの​​良し悪しは​​どう​​測るか?

再現性で​測る。​同じ​入力に​対して​結果の​分散が​小さい​こと、​失敗した​ときに​原因が​特定できる​こと、​同じ​失敗が​二度​起きない​こと。「たまたま上手くいった」が減っていれば、ハーネスは効いている。


次に​​読むべき記事


まとめ


FDXの​​エージェント実装・運用支援

FDXは​AX​(AI Transformation)の​実装パートナーと​して、​エージェントの​実装だけでなく、​検証・評価・運用移管までを​含めて​設計する。​「動く​ものは​作れたが、​業務で​使える​品質に​届かない」​段階で​止まっている​場合、​原因は​モデルではなく​ハーネス側に​ある​ことが​多い。

現状の​業務と​AIの​適用範囲を​分解する​ところから​始めたい​場合はAX診断を、​実装体制の​相談はお問い合わせからどうぞ。


出典・参考文献

エージェントを​「業務で​使える​品質」まで​持っていく

実装だけでなく、検証・評価設計・運用移管までを含めて設計します。動くものはできたが本番に出せない、で止まっている段階からご相談ください。