GraphForge가 실제 파일에 근거해 워킹 에이전트 학습 데이터를 합성한다
GraphForge: Training Working Agents with Graph-Anchored Workspace Synthesis
무엇인가
이 논문은 파일 시스템과 터미널을 오가며 실제 업무를 수행하는 워킹 에이전트(working agent)를 학습시키기 위한 데이터 합성 파이프라인 GraphForge를 제안한다. OpenClaw, Hermes-Agent 같은 상시 실행형 디지털 어시스턴트와 GDPVal, Workspace-Bench 같은 벤치마크가 등장하면서, 여러 실제 파일을 읽고 도구를 조합해 남이 쓸 수 있는 산출물을 만드는 능력을 학습시킬 필요가 커졌다. 문제는 이런 학습 데이터를 만들기가 어렵다는 점이다. 기존 파이프라인인 EnvCraft는 모델로 파일을 생성하기 때문에 현실성과 다양성이 떨어지고, 검증도 워크스페이스 상태를 훑는 파이썬 스크립트에 의존해 파일 내용을 읽지 못하므로 문서 산출물의 오류를 놓칠 수 있다. NexForge는 실제 파일 위에 과제를 만들지만 과제별 루브릭이나 검증기가 없어 결과 품질을 체계적으로 확인할 수 없다.
어떻게 동작하나
GraphForge의 핵심 설계는 씨앗(seed)과 파일의 역할을 분리하는 것이다. 모델이 과제를 자유롭게 발명하면 자주 등장하는 직업과 일반적인 과제 유형으로 수렴하는 경향이 있으므로, 씨앗이 과제 방향을 고정하고 구체적인 과제와 검증은 실제 파일에서 끌어낸다. 씨앗은 O*NET 데이터베이스의 직업과 세부 업무 활동(DWA)에서 가져오며, AI4Work가 DIGITAL로 표시한 과제만 남긴다. 필터링 후 246개 직업, 16개 섹터, 43개 하위 섹터, 891개 DWA 과제 유형, 3,419개 유효 직업-과제유형 쌍이 남는다. 각 씨앗은 직업, DWA 과제 유형, 직업별 업무 요구, 대표 실행 패턴(16종 어휘), 예상 입력 파일군, 검색된 직업 근거의 튜플로 정의된다. 업무 요구는 인용된 근거가 직접 뒷받침하는 것만 채택하고, 지원되지 않는 요구는 할당량을 채우려고 만들어내지 않고 버린다. 씨앗 선택은 직업, 과제유형, 실행패턴, 입력파일군 차원에 대한 한계 커버리지 이득을 최대화하는 그리디 방식으로 하고, 파일을 내려받아 검증한 뒤 실제 입출력 파일군에 대해 같은 규칙을 한 번 더 적용한다.
무엇과 다른가
씨앗은 회사나 사건, 데이터셋을 특정하지 않는 사례 중립적 상태다. 검색 에이전트가 일관된 공개 사례를 찾아 필요한 파일을 내려받아 워크스페이스를 구성하고, 파일마다 core, supporting, confuser, ambient 중 하나의 숨은 역할을 부여한다. core는 주 계산이나 결정을 이끄는 파일, supporting은 정책이나 맥락, confuser는 그럴듯하지만 적용되지 않는 대안, ambient는 현실적인 중복을 더하는 파일이다. 이 역할은 에이전트에게 절대 노출되지 않는다. 이어서 워크스페이스 위에 근거 그래프 G=(V,E)를 만든다. 노드는 원본 파일과 그 파일이 제공하는 사실·필드, 과제에서의 역할을 기록하고, 간선은 정보를 해석·비교·대조·도출하는 데 필요한 파일 간 의존성을 기록한다. 저자들은 이 그래프가 정답이 아니라, 주장이 원본 파일에서 복원 가능해야 하는 중간 표현이라고 못 박는다.
어떻게 쓰나
그래프는 과제 명세로 컴파일된다. 명세에는 자연어 과제 진술, 산출물 요구사항, 긍정 기준, 부정 감점 기준이 담긴다. 각 긍정 기준은 대상 산출물, 요구사항, 기대값이나 계산, 가중치, 근거 앵커(그래프 노드의 부분집합), 검증 절차를 명시한다. 부정 기준은 구체적으로 금지된 결과를 서술하고 위반이 직접 입증될 때만 감점한다. 이 구조는 실행과 검증을 분리한다. 워킹 에이전트는 과제 진술과 워크스페이스만 보고 노드 ID나 숨은 역할은 보지 못하는 반면, 심사자는 앵커와 검증 지시를 받아 어떤 파일과 산출물 부분을 봐야 하는지 알게 된다. 정적 검사로는 장기 과제의 모호함을 다 잡을 수 없으므로, 강한 교사 모델로 초기 명세를 한 번 실행해 초기 궤적을 만들고, 수정 에이전트가 원본 파일과 그래프, 전체 과제·루브릭, 이 실행을 받아 자연스러움과 실행 가능성, 수치의 근거, 기준의 앵커링, 검증 지시의 충분성을 점검한다. 수정 에이전트는 바뀌어야 할 구성요소만 반환하고 컴파일러가 나머지 필드를 유지한 채 스키마를 검증한다. 과제 진술의 정규화 해시가 그대로면 초기 실행을 재사용하고, 그렇지 않으면 교사가 다시 실행한다. 마지막으로 산출물 수준 입장 심사를 통과해야 궤적이 채택된다. 파일명·포맷·시트와 수식 같은 결정적 검사를 통과한 뒤, 심사자가 근거 파일과 산출물을 참조해 기준별 점수를 매기고 가중 충족 비율에서 입증된 위반에 비례한 감점을 빼서 품질 점수를 계산한다. 반복적인 비폴링 호출, 과도한 도구 사용, 높은 도구 실패율, 반복적 잘림 같은 퇴화된 도구 사용 궤적은 버린다.
전제와 한계
학습 데이터는 3,638개 실체화 과제 중 품질 점수 0.90을 넘는 2,169개 궤적으로 구성된다. 466개 O*NET 과제 유형, 16개 섹터 중 15개, 16개 실행 패턴 전부를 포괄하고, 256개 섹터-패턴 조합 중 164개가 실현됐다. 데이터 분석·리포팅이 14.2%, 리서치·출처 종합이 13.2%이고 나머지 패턴은 9%를 넘지 않는다. PDF는 궤적의 96.7%에 등장한다. 궤적은 평균 50.0 어시스턴트 스텝(중앙값 48, 95백분위 82), 평균 162.0k 토큰(중앙값 158.0k, 95백분위 224.8k)이며 28개(1.3%)가 262,144 토큰 상한에 도달한다. 파이프라인 전체에 GLM-5.2를 쓴다. Qwen3.6-27B를 2,169개 궤적으로 파인튜닝한 결과 GDPVal-AA에서 OpenHands 기준 1445.7(+65.7), Codex 기준 1427.4(+63.4) Elo를 기록했고, Workspace-Bench-Lite는 Claude Code 기준 63.7(+7.7), SpreadsheetBench II는 24.0(+13.7)이 됐다. 35B 베이스 모델은 GDPVal에서 OpenHands +101.7, Codex +101.4 Elo가 올랐고, Workspace-Bench-Lite는 최대 6.6, SpreadsheetBench II는 최대 16.5 포인트 개선됐다. 모든 궤적은 Codex 스캐폴드로 롤아웃했지만 평가는 OpenHands, Codex, Claude Code로 이뤄졌고 모든 스캐폴드에서 베이스보다 좋아졌다. GDPVal Elo는 Bradley-Terry 모형으로 적합하며 GLM-5.3(OpenHands)을 1667로 고정한다.
두 번째 단계는 SFT 모델이 스스로 만든 궤적 중 루브릭으로 고른 것을 쓰는 거부 샘플링 파인튜닝이다. 2,000개 신규 질의에 대해 실행 패턴당 125개씩, 질의당 4개 롤아웃을 뽑아 후보 풀을 만들고, 앵커드 팔은 심사 점수가 0.95를 넘는 루브릭 최고 궤적을 유지해 462개 질의를 남긴다. 언앵커드 팔은 루브릭 텍스트는 보되 명시적 근거 앵커와 검증 지시는 보지 못하는 심사자로 순위를 매기고, 랜덤 팔은 무작위로 고른다. 세 팔은 같은 462개 질의와 후보 풀, 최적화 예산을 공유한다. Workspace-Bench-Lite와 SpreadsheetBench II에서는 앵커드가 SFT 대비 가장 큰 이득, 언앵커드는 더 작거나 음의 이득, 랜덤이 가장 약했다. GDPVal에서는 앵커드가 +7.2와 +11.0 Elo로 SFT를 앞섰고 랜덤은 -9.0과 -9.5로 성능을 떨어뜨렸지만, 언앵커드가 +34.1과 +25.3으로 더 높은 점추정치를 냈다. 다만 저자들은 이 GDPVal 차이가 이 규모에서 통계적으로 유의하지 않다고 밝히며, 220개 과제의 GDPVal Elo 차이는 결정적이기보다 잡음이 크다고 해석한다.
저자들은 2,150개 학습 워크스페이스를 220개 GDPVal 과제와 세 가지 세분화 수준에서 대조했다. 파일 수준에서는 39,201개 학습 파일 중 어느 것도 GDPVal의 260개 파일과 일치하지 않았고, 텍스트 수준에서는 두 코퍼스 사이 가장 유사한 상위 20개 13-gram 쌍에 실질적으로 공유된 내용이 없었다. 직업 수준에서는 GDPVal 44개 직업 중 13개만 학습 분류체계에 포함된다. 직업 커버리지로 GDPVal 과제를 나눠 보면 커버되지 않은 155개 과제에서의 SFT 승률 0.739(95% 신뢰구간 [0.671, 0.803])가 커버된 65개 과제의 0.692(95% 신뢰구간 [0.585, 0.800])보다 낮지 않다. 심사자 민감도 실험에서는 기준이 인용한 워크시트를 삭제했을 때 해당 점수가 평균 0.377 떨어졌고 다른 기준은 거의 변하지 않았다(평균 절대 변화 0.016). 반면 행·숫자·인용의 미세한 오염은 0.03 미만의 작은 변화만 일으켰는데, 저자들은 이를 구조적 근거 실패는 잘 잡지만 세밀한 내용 검증은 약한 GLM-5.2 심사자의 능력 한계로 본다.
실무 관점에서 이 논문이 주는 것은 실제 파일 위에서 검증 가능한 과제를 대량으로 만드는 파이프라인이라는 레시피다. 사내 문서와 스프레드시트를 다루는 에이전트를 학습시키려면 과제와 채점 기준을 함께 만들어야 하는데, GraphForge는 근거 앵커를 기준마다 붙여 심사자가 어떤 파일을 봐야 하는지 알게 하고, 그 앵커를 궤적 선택 신호로도 재사용한다. 다만 그대로 도입하려면 확인할 점이 있다. 파이프라인 전체가 GLM-5.2 한 모델에 의존하고, 심사자가 세밀한 수치 오류를 놓치는 경향이 있으며, 공개 문서 기반 워크스페이스라 사내 데이터에 적용할 때는 라이선스와 개인정보 취급을 별도로 따져야 한다. 저자들이 밝힌 한계도 분명하다. 코퍼스가 2,169개 궤적에 그쳐 데이터 규모를 키울 때 이득이 어떻게 확장되는지 연구하지 않았고, 심사자와 합성 파이프라인 모두 GLM-5.2로 구동되며, 같은 계열의 베이스 모델 두 개만 실험해 다른 모델 계열로의 전이를 다루지 않았다. 데이터와 모델은 Hugging Face의 groundhogLLM/graphforge 컬렉션에 공개돼 있다.