터미널 에이전트 강화학습에서 명령 의존관계로 보상을 재분배한다

Credit Where It Matters: Dependency-Aware Policy Optimization for Terminal Agents

arXiv2610.03634v1

Yu Li2026-10-02

무엇인가

터미널을 쓰는 에이전트는 코딩·디버깅 같은 여러 단계 작업에서 강화학습의 이득을 본다. 문제는 보상 배분이다. GRPO나 DAPO 같은 그룹 기반 알고리즘은 궤적 하나에 대해 계산한 advantage를 그 궤적에서 생성된 모든 스텝에 똑같이 적용한다. 그런데 명령마다 역할이 다르다. 어떤 조사 명령은 이후 수리를 이끌지만, 어떤 쓰기 명령은 그 출력이 쓰이기도 전에 덮어써진다. 기존의 스텝 단위 기법들(GiGPO, HGPO, GAGPO, GEPO, GraphGPO, G2PO, HCAPO)은 더 세밀한 신호를 주지만, 명령 사이에서 정보와 중간 결과가 실제로 어떻게 흘러가는지, 즉 읽기·쓰기 의존성을 명시적으로 추적하지는 않는다. 논문은 터미널 실행 트레이스가 바로 그 의존성을 드러내 준다고 본다.

어떻게 동작하나

저자들은 먼저 문제의 크기를 파일럿 연구로 측정한다. SFT 모델에서 태스크당 4개 롤아웃을 뽑았을 때 1,376개 태스크 그룹 중 61%가 동일한 이진 보상을 받아 그룹 상대 advantage가 0이었다. GiGPO식 정확 매칭은 앵커 상태가 가장 많은 두 태스크에서 25개 중 4개만 재발해 스텝 비교가 제한됐다. Terminal-Bench 2.0 참조 해법 51개 통과 궤적을 분석하니, 검증기가 읽는 자원 집합 E로 이어지는 의존 경로 위에 놓인 명령의 비율 중앙값은 0.57이었고, 명령이 5개 이상인 18개 궤적에서는 0.18까지 떨어졌다. 상당수 명령이 결과와 무관하다는 뜻이다.

무엇과 다른가

제안 방법 DepGPO는 실행 트레이스에서 명령을 노드로 하는 방향성 의존 그래프 G를 만든다. 파일 엣지는 이전 명령이 쓴 줄을 이후 명령이 읽을 때 생기며, 쓰기는 줄 단위로, 읽기는 파일 단위로 기록한다. 덮어쓰기는 그 자체로 엣지를 만들지 않는다. 표준출력 엣지는 이후 명령 텍스트에 등장하는 파일 경로·포트 같은 값을 이전 출력과 매칭해 만들되, 태스크 설명에 이미 주어진 값은 의존으로 치지 않는다. 그래프는 비순환이 된다. 여기에 검증기가 평가 중 실제로 들여다본 파일·포트·프로세스 집합 E를 붙이고, E에서 역방향으로 추적한다. 쓰기 명령의 원점수는 자신이 쓴 줄 중 E에 도달한 줄의 비율 q(c)=|W_c^E|/|W_c|이며, 거리 감쇠 없이 0과 1 사이 값을 갖는다. 간접 기여에는 보수적 조건이 붙는다. 소비하는 명령이 입력 파일이 아닌 다른 파일에 써야 하고, 집계되는 입력 줄을 덮어쓰지 않아야 한다. 읽기 명령은 파일 쓰기를 남기지 않으므로 표준출력 엣지에서 출발해 도달 가능한 쓰기들의 기여를 q(r)=Σβ^d·Contrib(c)로 합산한다. 최단 경로 기준으로 한 번만 세고, β는 0.5다. 포트와 프로세스는 줄 단위 표현이 없어 검증기가 확인하면 1, 아니면 0을 준다.

어떻게 쓰나

이 원점수는 스텝 단위로 합쳐진다. 같은 궤적 안에서 최소 스텝 점수를 기준점 m_i로 잡고, 각 스텝의 초과분을 평균 초과분으로 나눠 f_i,t를 만든다. 최소 점수 스텝은 0, 큰 점수는 비례해서 큰 값을 받고, 비교 대상 스텝들의 평균은 1이 된다. 이어서 토큰 수로 가중 평균한 Z_i로 나눠 최종 스텝별 advantage Â^Dep=(f_i,t/Z_i)·Â_i를 얻는다. 부호는 그룹 상대 advantage가 정하고, 크기 배분만 의존성이 정하는 구조다. 정책 최적화는 GRPO의 클리핑 목적함수와 음수 advantage에 대한 dual clipping을 그대로 유지하며, 바뀌는 것은 advantage를 스텝에 나누는 방식뿐이다. 모든 스텝 점수가 같거나 추적이 아무 쓸모 있는 점수를 내지 못하면 모든 f를 1로 두어 원래의 궤적 수준 배분으로 되돌아간다.

전제와 한계

실험은 Qwen3.5-9B와 Qwen3.6-27B를 SETA와 TMAX 데이터로 각각 학습시킨 네 가지 모델-데이터 구성에서 이뤄졌고, Terminal-Bench 2.0과 2.1로 평가했다. 비교 대상은 GRPO, DAPO, DPPO, 그리고 스텝 단위 기법인 GiGPO와 GraphGPO다. 논문에 따르면 DepGPO는 여덟 개 설정 모두에서 최고 pass@1을 기록했고, 각 설정의 가장 강한 경쟁 RL 베이스라인 대비 3.22~10.03%포인트, GRPO 대비 4.34~14.53%포인트 높았다. 27B 모델은 SETA에서 37.75/37.90, TMAX에서 35.06/36.70에 도달했다. 학습 설정은 배치당 태스크 4개에 태스크당 K=8 궤적(총 32개), 학습률 1e-6, 궤적당 상호작용 스텝은 SETA 10개·TMAX 56개, 생성 토큰 24,576개, 의존 감쇠 계수 β=0.5다. 평가는 태스크당 5회 독립 시도로 pass@1을 추정하고 전체 평가를 3회 반복해 평균±표준편차를 보고했다.

학습 안정성 분석에서는 GRPO가 초반에 개선되다 계속 학습하면 성능이 떨어지고, GiGPO는 더 이른 시점에 무너져 낮은 보상 수준에 머무는 반면, DepGPO는 변동은 있어도 후반 구간에서 더 높은 보상을 유지했다. 정책 엔트로피는 GiGPO가 급락하고 GRPO는 후반에 크게 상승하는데 DepGPO는 비교적 안정적이었고, 그래디언트 노름도 두 베이스라인이 후반에 0에 가까워지는 것과 달리 DepGPO는 0이 아닌 값을 유지했다. 스텝 팩터의 표준편차는 학습이 진행될수록 커져, 평균 크기는 1로 고정한 채 어디에 신호를 몰아줄지 점점 선택적으로 변했다. 절제 실험(Qwen3.5-9B, SETA 학습, Terminal-Bench 2.0/2.1 평가)에서는 쓰기 기여를 이진화하면 2.17·2.09%포인트 하락했고, 검증기 필터링을 아예 없애면 이진화 버전 대비 추가로 4.42·4.80%포인트 떨어졌다. 지원 읽기 credit을 제거하면 3.82·4.49%포인트, 직접 쓰기 기여만 쓰면 1.79·1.64%포인트 하락했다.

실무에서 이 방법을 쓰려면 먼저 검증기가 실제로 검사하는 자원 집합 E를 정확히 정의할 수 있어야 한다. 파일 존재와 메타데이터 검사는 포함되지만 검증기 자신이 쓴 파일은 제외되는 식의 규칙이 필요하다. 또 읽기는 파일 단위로만 기록되고 어떤 줄이 쓰였는지는 알 수 없으며, 파일 쓰기도 실행 전후 내용 차이로 줄 범위를 얻을 수 있을 때만 줄 단위 추적이 된다. 포트·프로세스는 줄 표현이 없어 별도 규칙으로 처리된다. 제공된 본문에는 별도의 한계 절이 없지만, 이런 전제들이 결과 해석의 범위를 정한다. 저자들도 모델 용량과 태스크 분포가 함께 작용한다고 본다. 9B 모델의 최강 베이스라인 대비 이득은 TMAX보다 SETA에서 훨씬 컸고, 27B는 두 데이터 모두에서 큰 향상을 보였다.