FloWright는 워크플로를 학습 틀로 삼아 여러 에이전트 역할을 함께 진화시킨다
It Takes Workflows to Evolve Better Workflows
무엇인가
복잡한 실제 과제는 단일 LLM의 능력을 넘어서는 경우가 많아, 전문화된 에이전트들을 묶어 하위 과제로 나누는 멀티에이전트 워크플로가 쓰인다. 문제는 최근의 학습 기반 방법들이 워크플로 생성기 하나만 최적화하고, 워크플로를 만들거나 실행하는 나머지 에이전트는 고정해 둔다는 점이다. 워크플로의 결과는 그 안의 모든 에이전트가 함께 만든 산물인데, 생성기만 학습하면 나머지 에이전트는 매 결과를 좌우하면서도 그 결과로부터 아무것도 배우지 못한다. 게다가 워크플로 결과는 전체에 대한 단일 점수라서, 실패했을 때 어느 에이전트가 원인인지 알려주지 않는다. 여기에 데이터 문제도 겹친다. 기존 워크플로 연구는 단일 질문 수학, 함수 단위 코딩, 짧은 질의응답처럼 단일 에이전트도 이미 풀 수 있는 데이터에서 학습·평가되어 왔고, 그런 데이터에서는 멀티에이전트가 단일 에이전트보다 나은 점이 거의 드러나지 않는다.
어떻게 동작하나
FloWright의 핵심 발상은 워크플로 자체를 하네스로 쓰는 것이다. 하네스 H는 워크플로 G를 과제 x에 실행해 답 y와 점수 h(G,x)∈[0,1]을 돌려주고, 이 하나의 신호가 평가 지표, 학습 신호, 테스트 시 최적화 목표라는 세 역할을 겸한다. 구조는 업스트림과 다운스트림으로 나뉜다. 업스트림의 Generator π_g가 워크플로 G를 만들고, 다운스트림의 하네스가 G를 실행·채점한다. 워크플로는 이 둘 사이의 인터페이스다. 워크플로는 재사용 가능한 에이전트·도구·스킬 풀 Ω에서 노드를 골라 만드는 방향 그래프이며, 순차·병렬·분기·반복 구조를 모두 표현할 수 있고, 풀에 없는 능력이 필요하면 새 구성요소를 만들어 풀을 확장한다.
무엇과 다른가
역할별 학습을 가능하게 하는 장치가 크레딧 국소화다. 각 역할 ρ는 워크플로 노드의 부분집합 V_j^ρ를 저작한다. 예를 들어 Generator는 자기가 설계하고 연결한 모든 노드를, Inventor는 자기가 만든 구성요소를 쓰는 노드만을, 다운스트림은 자기가 실행한 에이전트 노드만을 담당한다. 하네스가 이미 기록해 둔 실행 트레이스 τ_j에서 해당 역할의 노드 중 실패를 근본 원인으로 만든 것 F_j^ρ를 복원하고, c_j^ρ = -|F_j^ρ|/|V_j^ρ| ∈ [-1,0]으로 그 역할의 책임을 계산한다. 실패 노드가 없으면 0, 있으면 음수다. 중요한 점은 이 배분에 추가 모델도, 라벨도, 추가 실행도 필요 없다는 것이다. 기존 실패 귀인 방법들이 학습된 크리틱, 보상 모델, LLM 판정자, 사람 주석, 반복 실행에 의존하는 것과 대비된다.
어떻게 쓰나
보상은 단일 성공/실패로 환원되지 않고 계층으로 쌓인다. 역할 ρ의 신호는 h_j^ρ = w_f·f + w_v·v^ρ + w_e·e + w_a·a + w_c·c_j^ρ다. f는 역할의 출력이 파싱되는지, v^ρ는 그 기여가 유효한지, e는 워크플로가 최종 답까지 실행되는지, a는 그 답이 얼마나 맞는지, c는 앞서 계산한 구조 인식 크레딧이다. 이 사다리는 두 축을 이룬다. 역할 자신의 출력에서 과제 결과로 가는 축은 워크플로가 어디까지 도달했는지를 재고, 지역에서 전역으로 가는 축은 실패를 책임 있는 역할에 국소화한다.
전제와 한계
하나의 하네스가 모든 역할에 같은 방식으로 신호를 주기 때문에, 한 역할만 자기진화시키거나 여러 역할을 공진화시킬 수 있다. 논문이 제시하는 네 가지 모드는 단일 역할 자기진화, 에이전트-스킬 공진화, 업스트림-다운스트림 공진화, 멀티에이전트 공진화다. 여러 역할이 같은 하네스에서 함께 학습하면 각 역할의 행동이 다른 역할이 마주치는 학습 분포를 바꾸는 상호 커리큘럼이 형성된다. 학습 시에는 PPO의 클립 대리목표를 앵커로 삼되, FloWright는 최적화기가 아니라 학습 패러다임이므로 GRPO, DAPO, CISPO 같은 정책경사법이 모두 그대로 꽂힌다. 테스트 시에는 가중치를 바꾸지 않고 재사용 가능한 프라이어 P를 메타 증류한다. 이 프라이어는 시스템 자신의 성공 경험에서, 또는 더 강한 교사에서, 또는 둘 다에서 증류되며 성공 사례를 퓨샷 케이스로 만들어 역할들이 메타 학습으로 진화한다.
데이터 쪽 대응이 DataWright다. 세 가지 경화 전략으로 기존 데이터셋을 더 어려운 워크플로 수준 과제로 변환하고, 경화 레벨 ℓ∈{3,5}를 둔다. 문서, 슬라이드, 차트, 코드, 수학, 금융 등 7개 도메인 12개 데이터셋을 대상으로 하며, 데이터셋·경화 전략·경화 레벨의 조합 하나하나를 평가 arm이라 부르는데 총 44개다. 각 arm은 학습에 쓰인 arm과의 거리에 따라 in-distribution, out-of-distribution, out-of-domain 세 체제로 나뉜다. 경화된 과제는 하위 질문들의 평균으로 채점되고, 하위 질문마다 원래 답 유형의 지표를 유지하므로, 묶는 방식이 난이도만 바꾸고 채점 방식은 바꾸지 않는다.
실험은 Qwen3.5-4B와 Qwen3.5-9B를 학습하고, 같은 두 모델과 GPT-5-mini, GPT-5.4-mini를 평가하며, GPT-5.4를 증류 교사로, GPT-5.6-luna를 LLM 판정자로 쓴다. 학습하지 않은 FloWright만으로도 단일 에이전트 베이스라인 대비 전체 +11.39% 이상을 기록했고, 학습 후에는 최대 +7.41%까지 올랐다. 역할을 많이 공진화시킬수록 이득이 컸다. 멀티에이전트 공진화는 in-distribution +7.32%, out-of-distribution +6.05%, out-of-domain +4.20%였고, 전체로는 +5.03%로 에이전트-스킬 공진화 +4.06%, 업스트림-다운스트림 공진화 +3.06%, 단일 역할 자기진화 +2.83%를 앞섰다. 테스트 시 메타 증류는 자기 경험에서 +0.93%, GPT-5.4 교사에서 +1.10%를 얻었고, 5샷에서 최대 +2.58%로 가장 컸다. 1샷은 학습 전 베이스라인보다 낮았다. 학습과 테스트 최적화를 합치면 전체 +3.21%, in-distribution +4.14%, out-of-distribution +3.80%, out-of-domain +2.79%로 5샷 프라이어 단독보다 +1.59% 높았다.
설계 선택별 절제 실험도 구체적이다. RL 알고리즘은 GRPO +2.83%, CISPO +3.23%, DAPO +3.84%였고 DAPO가 모든 체제에서 앞섰다. 보상 사다리는 형식과 정답만 채점하면 GRPO +0.07%, DAPO +0.80%에 그쳤지만, 유효성 보상을 더하면 +2.07%/+2.29%로 가장 큰 폭으로 뛰었고, 구조 인식 크레딧이 +0.69%/+0.75%를 더했다. 워크플로 표현은 코드가 학습 전 34.12%에서 학습 후 35.86%로 네 표현 중 가장 높았고, 최적화는 schema +2.83%, state machine +2.62%, code +1.74%, graph +1.25%로 모두를 끌어올려 표현 간 격차를 3.91%에서 3.03%로 좁혔다. 풀 단위는 캡슐(에이전트+도구+스킬 묶음)이 모듈식 풀보다 4B에서 +3.83%, 9B에서 +3.87% 앞섰고, Generator를 학습하면 모듈식 풀이 +4.50%로 캡슐 +2.83%보다 크게 올라 격차가 +2.16%로 줄었다. 풀 동학에서는 필요할 때 풀을 키우는 것이 고정 풀보다 +4.83%로 이 절제 실험의 단일 설계 선택 중 가장 큰 효과였고, 과거 경험을 풀에 증류할 때 성공 사례만 남기면 +1.44%, 성공과 실패를 모두 남기면 +0.53%였다.
실무적으로 이 논문이 주는 것은 두 가지다. 첫째, 에이전트 워크플로를 운영하는 팀이 생성기 하나만 파인튜닝하고 나머지 역할은 프롬프트로 고정해 두는 현재의 관행을 재검토할 근거가 된다. 실행 트레이스만 있으면 추가 판정 모델 없이 역할별 보상을 만들 수 있다는 주장은, 이미 로그를 남기고 있는 시스템이라면 비교적 적은 비용으로 실험해 볼 수 있는 설계다. 둘째, 단일 에이전트도 푸는 쉬운 데이터로 워크플로를 평가하면 개선이 보이지 않는다는 지적과, 데이터를 워크플로 수준으로 경화해 난이도를 올리는 DataWright의 접근은 자체 벤치마크를 만들 때 참고할 만하다. 다만 역할별 footprint가 겹치지 않게 정의되어야 크레딧이 분리된다는 전제가 깔려 있으므로, 자기 시스템의 역할 경계가 얼마나 깨끗한지부터 확인해야 한다.
논문이 밝힌 전제와 한계는 다음과 같다. 크레딧 국소화는 하네스가 기록한 실행 트레이스와 역할별 노드 footprint에 의존하므로, 역할의 footprint가 서로 다르지 않으면 크레딧이 분리되지 않는다. 실패 귀인을 별도 모델로 처리하는 기존 방법들은 비용이 크고 실패 실행의 약 3분의 1에서만 결정적 단계를 찾아낸다는 점을 지적하며, FloWright는 그 비용을 없애는 대신 트레이스에서 복원 가능한 실패 원인이라는 더 좁은 정보에 기댄다. 테스트 시 프라이어는 충분한 근거를 담을 때만 도움이 되어, 1샷에서는 학습 전 베이스라인보다 낮은 성능을 보였다. 풀을 고정하면 새 구성요소를 만들어내는 성장이 꺼진다는 것도 명시된 전제다. 또한 모든 평가가 DataWright로 경화한 과제 위에서 이뤄지므로, 경화되지 않은 원래 데이터 분포에서의 이득은 이 실험만으로는 알 수 없다.