Technical Report / arXiv:2410.16946v1

EvoMAC:自己進化する
マルチエージェント開発ネットワーク

「人間が固定設計したエージェントチーム」から、「実行フィードバックを受けて役割・接続・プロンプトを更新するエージェントネットワーク」へ。EvoMAC と rSDE-Bench を、実装・評価・ハーネス設計の観点で読む。

PaperSelf-Evolving Multi-Agent Collaboration Networks for Software Development
AuthorsYue Hu, Yuzhu Cai, Yaxin Du, Xinyu Zhu, Xiangrui Liu, Zijie Yu, Yuchen Hou, Shuo Tang, Siheng Chen
Categorycs.SE / cs.AI / cs.MA
Published2024-10-22
BenchmarkrSDE-Bench
GenerationHermes direct HTML fallback(Claude Code quota unavailable)

Legend

出典バッジ

出典事実論文本文・表に直接記載。 著者主張著者の評価・結論。 解釈本レポートによるハーネス設計への接続。 未確認本文抽出や論文上で未確定。

TL;DR

結論

Problem

何を解こうとしているか

Method

EvoMAC の中核:textual backpropagation

出典事実MAC network は、LLMエージェントをノード、依存関係を有向辺とする DAG。各ノードは prompt によって subtask を指定され、edge はどの agent の出力がどの agent に渡るかを表す。

1. Forward pass

agentic workflow を実行し、タスク入力 X から生成物 G を作る。ソフトウェア開発では coding team がコードを生成。

2. Loss computation

生成物 G と target proxy T を環境ツール E で比較。コンパイル・unit test・実行ログが textual loss になる。

3. Textual gradient

agent-based gradient function G が、loss と現 MAC network から「どこをどう直すべきか」の自然言語勾配を作る。

4. Update

agent-based update function U が agent prompts と network connections を更新し、次 iteration の MAC network を作る。

T = Phi(X, A_t)                 # testing team generates target proxy
for k in 0..K-1:
    G_k = Phi(X, A_g^k)         # coding team forward pass
    L_k = <G_k, T>_E            # environment feedback as textual loss
    grad_k = G_fn(L_k, A_g^k)   # textual backpropagation
    A_g^{k+1} = U_fn(A_g^k, grad_k)

Software Development Architecture

ソフトウェア開発への適用

チーム/要素役割ハーネス設計上の意味
Coding team要求仕様からコードを生成。coding organizer が要求を subtasks に分解し、動的に coding agents を組む。固定ロールでなく、タスクごとに team topology を変える。
Testing teamtarget proxy として unit tests を作る。「正解そのもの」ではなく、要求充足を測る proxy を自動生成する。
Objective environment toolcompiler / test execution。失敗ログを textual environmental feedback にする。LLM critique だけにせず、客観実行結果を loss にする。
Updating team2つの collaborative agents が textual backpropagation を管理。改善指示を一枚の反省文にせず、勾配生成と更新を分離する。
実践ポイント: unit test generation は元の logical code generation より容易なので、高品質な target proxy を作りやすい、というのが論文の前提。つまり EvoMAC は「生成より検証の方が簡単」という非対称性を利用している。

Benchmark

rSDE-Bench:要求仕様ベースのソフトウェア開発ベンチ

53

unique coding tasks

616

test cases

2

software types: game / website

2

basic / advanced difficulty

Evaluation

自動評価は human evaluation と強く一致

0.9922

rSDE-Bench accuracy と human evaluation の相関

0.2583

consistency metric の相関

0.3041

quality metric の相関

出典事実human evaluation は2名の expert code engineers が、生成ソフトを操作して requirements fulfillment を手動確認。全 benchmark 評価に expert 1人あたり約4時間かかった。

著者主張要求ごとに black-box test case を対応させる rSDE-Bench の accuracy は、consistency(要求文との類似度)や quality(executability等の積)より、実際の要求充足を正確に測る。

Results

実験結果:EvoMAC は既存SOTAを上回る

Method / ModelWebsite BasicWebsite AdvancedGame BasicGame AdvancedHumanEval Pass@1
Single GPT-4o-Mini62.90±2.5244.40±4.2142.76±15.5030.10±11.8788.41
ChatDev62.67±0.2843.45±0.7753.63±5.7032.26±4.5570.73
EvoMAC89.38±1.0165.05±1.5677.54±2.0451.60±4.5494.51
Improvement over single-agent+26.48+20.65+34.78+21.50+6.10

Ablation

何が効いているか

Harness Lessons

実践に持ち帰る設計原則

1. 生成器よりループを設計する

固定チームにタスクを投げるのではなく、要求に応じて役割・接続を変える。

2. Target proxy を作る

本当の正解が難しいタスクでは、unit tests や evaluator を proxy として構成する。

3. Loss は客観ログに寄せる

LLM critique より compiler/test logs の方が安定した更新信号になる。

4. 更新を役割分離する

reflection 一発ではなく、gradient generation と prompt/network update を分ける。

5. 要求単位で評価する

「動いたか」ではなく、各 requirement を満たしたかを black-box tests で測る。

6. 進化回数を予算変数にする

iteration を増やすほど改善するが、コスト・時間との trade-off を明示的に扱う。

Checklist

EvoMAC風に実装するなら

Limits

限界と注意点

Sources

出典