ポジション:コーディングベンチマークはエージェント型ソフトウェアエンジニアリングと噛み合っていない の説明によれば、システムハーネスとは、1 つ以上の大規模言語モデルを取り巻き、タスク、環境、フィードバックを時間をかけて管理する外側のオーケストレーション層である。この論文はオーケストレーションを 2 つのレベルに区別している。エージェントハーネス は、何らかのシステムプロンプトと参照できるコンテキストを持ち、単一のタスクに向けてツールとやり取りしながら作業する言語モデルであり、「コーディングエージェント」と呼ばれる成果物の大半はこの意味でのエージェントハーネスである。システムハーネスはその外側に位置し、より上位の目標を具体的なタスクに変換し、各タスクを 1 つ以上のエージェントハーネスにディスパッチし、それらが作用する環境を管理し、その出力を、作業が受け入れ可能かどうかを近似的に判定するフィードバックに通す。著者らは、大規模な実践的エージェント型コーディングはシステムハーネスのレベルで行われている一方、現在のコーディングベンチマークはエージェントハーネスのレベルで行われていると論じている。
用法
この論文は、システムハーネスに繰り返し現れる 5 つの構成要素を挙げている。タスクは、より上位の目標から導かれる作業の単位である。エージェントハーネスは、モデル、プロンプト、ツール、ループから構成される設定可能な実行者であり、システムハーネスはこれを調整することもあれば、ブラックボックスとして扱うこともある。環境は、変更の対象となるリポジトリとランタイムであり、課題管理システム、CI、デプロイ先といった統合された外部サービスも含む。コンテキストは、環境とハーネスが作成した素材(スキル、プラグイン、フック、仕様)を厳選して射影したものであり、個々の呼び出しに読み込まれる。フィードバックシグナルは、ハーネスが解決策を改善するため、あるいは自分自身を改善するために読み取るあらゆるものであり、テスト、型、リンター、形式検証、LLM-as-a-Judge のルーブリック、プルリクエストのコメント、レビュアーの批評、本番環境のインシデント、より長期的なビジネス上のシグナルなどが含まれる。フィードバックのうち、検証器は、ブロックに適した合格・不合格の判定を返す厳密な部分集合である。
フィードバックは、スコープ、レイテンシ、信頼度によって 3 つの層に分類される。インナーループのシグナル(数秒〜数分:テスト、型、リント、コンパイル)は高速かつ安価だが範囲が狭く、コミットまたはプルリクエストのスコープで、単一の変更の試みの内部で機能する。ミドルループのシグナル(数分〜数時間:レビュアーからの依頼、シミュレーション、メンテナンスエージェント、スコアのルーブリック)は、より広い範囲の作業を集約し、ユニットテストで捉えるには広すぎたり判断に依存しすぎたりする性質(繰り返されるレビューでの批判、プロジェクトの規約からの逸脱、重複した抽象化)を捉える。アウターループのシグナル(数日〜数週間:プルリクエストの受け入れ、リバート率、インシデントレポート、顧客からのフィードバック)は最も真の正解に近いが、遅れて届き、交絡を含む。これとは直交する 2 つ目の軸は、テストのようにハーネスが変更できるシグナルと、人間によるプルリクエストのコメントやビジネス上の成果のように変更できないシグナルとを区別する。論文は、生産的なシステムハーネスは 3 つの層すべてを使うと述べている。インナーシグナルでループ内の解決策を改善し、ミドルシグナルで繰り返し起こる問題や品質のドリフトを浮かび上がらせ、アウターシグナルでどのインナーおよびミドルの代理指標が信頼に値するかを較正する。すべてのシグナルは、蓄積されたログや繰り返される失敗がハーネス自身の構成要素にフィードバックされる、ハーネスの自己改善ループに参加しうる。
著者らは、多くのハーネスが課題管理システムを作業のための永続的なステートマシンとして扱い、タスクごとにエージェントのセッションを生成していると指摘している。著者らが構築してオープンソース化したハーネスである NS2 が論文の実例であり、論文は他の最近の事例として Symphony と GasCity を挙げている。ハーネスは構成要素の組み合わせであるため、論文の中心的な主張は、測定の対象とすべきなのはモデル単体ではなくハーネスであり、構成要素は組み合わせた状態でも個別にも評価されるべきだ、というものである。