コーディングエージェントの性能を左右するのは、モデルより「ハーネス設計」だ

An Empirical Study of Harness Design for Coding Agents

自律型コーディングエージェントの性能は、モデル能力だけでなく「ハーネス」の設計に大きく依存する。本研究は、実行ループを固定し、planning・action space・context managementの3要素を変化させ、4モデル・176設定をSWE-Bench VerifiedとTerminal-Bench 2.1で評価。コンテキスト管理は予算が厳しいほど有効で、その利益の大半はオーバーフロー防止によること、ルールベース省略をLLM要約の前に置く戦略が最も効率的であること、planningは弱いモデルには精度の足場、強いモデルにはコスト削減として働くこと、bash習熟度が低いモデルには定義済みツールが有効だがbash対応モデルはbashのみで低コストに動くことを示す。軌跡分析がこれらの効果を説明し、モデルと予算に応じたハーネス設計に示唆を与える。

Planning shifts from an accuracy scaffold for weaker models to a cost saver for stronger models, with little change in accuracy.
  1. gps372

    PDFは非常に詳細なので全部は目を通していないが、今のところいくつか共感できる点があった。

    基本的に、クルマAがクルマBより性能が良い(速度、燃費、あるいは一般的な意味で)としても、それが必ずしもエンジンのせいとは限らない。タイヤが良い、ギアボックスが良い、車体が軽い、機能の使い勝手が良い、などが理由かもしれない。

    同じモデルでも、AI機能(例えばBIのためのAI)はさまざまな方法で実装できる。ReActループ、plan-and-execute、ハイブリッドなど。結果の精度を優先するか分析の深さを優先するかに応じて、ステートレスにしたり、ステートフルにしたり、RAGベースにしたりできる。LLMを使って意図(より少ない推論で済む)を生成することも、クエリ自体(はるかに能力の高いモデルが必要)を生成することもできる。

    あなたのハーネスは、基盤モデルのネイティブな能力に適応することもできるし、その欠如を補うこともできる。例えば上記の例でのクエリ生成は、モデルにMOE能力が必要だが、意図生成には必要ない。

  2. lieret

    面白い研究だ。ハーネスの役割については、もっと原理的な研究が間違いなく必要だ。また、複雑なハーネスが極めてシンプルなエージェントを一貫して上回るようなベンチマークは、それほど多くないとも言える。ただ、私にはバイアスもある。というのも、https://github.com/swe-agent/mini-swe-agent/ を書いたからだ。これはおそらく最もミニマルなエージェントで(最初は全部込みでわずか100行だった)、DeepSWE、terminalbench、programbench など多くのベンチマークで使われている(TB3ではまだランキング首位のようだが、TB4では最高のモデルで評価されていない)。

  3. vblanco

    これはNemotronモデル+mistralで行われているので、現在のフロンティアである安価な中国製モデル+Claude/GPTの大型モデルにはあまり関係ない。この研究にqwenやdeepseekが入っていないのは大きな見落としだ。

  4. rahulmax

    過去1年間の自分のClaudeコードセッションで見つけたこととかなり一致している。数ヶ月前にこれについて書いた。

    https://rahulmax.com/notes/how-i-keep-the-ai-bill-down/

    彼らのケースでは、コンテキスト管理はウィンドウが厳しければ厳しいほど効果を発揮する。管理する場合としない場合の差は、32kで成功率35.7ポイント、128kで2.7ポイントだ。私のバージョンでは、できる限り守っているルールがある。ウィンドウの約25〜30%でセッションをチェックポイントし、状態をPROGRESS.mdと要件のJSONファイルに書き出し、新しく始める。この再スタートには30秒かかるが、肥大化したセッションは長く居続けるほど安くはならない。

    また、モデルはNemotron-3とMistral-Mediumであり、ここにいるほとんどの人がお金を払っているフロンティアモデルではないことも知っておく価値がある。

  5. agentdev001

    私が見る限り、論文は「bash capable」と述べているが、それが何を意味するのかは一切説明していない。あるモデルが「bash capable」かどうかをどうやって知ることができるのか?

    想像するに、Lunaはまさに「bash capable」の範疇に入るだろう。そうなると、Bash以外のツールを追加するには、価値が付加されていることを厳密にテストし検証する必要があるように思える。

この日のほかの記事

2026-09-18