터미널 에이전트를 훈련시키려면 긴 호라이즌 작업 데이터가 필요합니다. 근데 이 데이터를 사람이 만들면 태스크 하나에 수백~수천 달러가 듭니다. RST(Recursive Synthetic Terminal Tasks)는 639개 시드에서 15라운드 재귀 합성으로 37,484개 검증된 태스크를 태스크당 약 $0.05에 만듭니다.
핵심은 이겁니다: 이전 라운드에서 만든 태스크의 참조 해답을 더 길게 확장하고, 검증기와 지시문을 다시 맞추고, 샌드박스에서 검증합니다. 통과한 태스크가 다음 라운드의 시드가 됩니다.
어떻게 돌아가는지
RST의 재귀 합성 파이프라인은 4단계로 한 라운드를 만듭니다.

- 시드 선택 — 이전 라운드의 검증된 태스크 중에서 부모 다양성, 카테고리, 재작성 패밀리별 캡을 걸어 시드를 고릅니다.
- 해답 확장 — 참조 해답(
solve.sh)에 새로운 실행 가능한 요구사항을 추가합니다. 설정 파일 진단, 회귀 케이스 추가, 릴리즈 노트 업데이트 같은 작업입니다. - 검증기·지시문 정렬 — 검증기(
test.sh,test_state.py)와 공개 지시문(instruction.md)을 확장된 해답에 맞게 업데이트합니다. 지시문에 비공개 검증 경로가 노출되면 안 됩니다. - 샌드박스 검증 — Docker 기반 격리 환경에서 참조 해답을 실행하고 검증기를 통과해야 합니다. 실패하면 최대 2회 제한으로 피드백 기반 수리를 시도합니다.
15라운드 결과
라운드가 진행될수록 태스크가 확실히 어려워집니다.
| 지표 | R1 | R15 | 변화 |
|---|---|---|---|
| 중위 해답 길이 | 67줄 | 374줄 | 5.6× |
| 중위 명령어 수 | 40개 | 244개 | 6.1× |
| 중위 지시문 길이 | 85단어 | 122단어 | 1.4× |
| DeepSeek-V4-Pro pass@4 | 90% | 2.5% | 36× 감소 |

지시문 길이는 1.4× 늘어나는 데 비해 해답 길이는 5.6×, 명령어 수는 6.1× 늘어납니다. 실행 가능한 작업량이 늘어나는 거지, 프롬프트가 길어지는 게 아닙니다.
합성 안정성도 확인했습니다. 라운드별 합격 태스크 수는 498572개(1,000 시드당)로 유지되고, 검증 통과율도 74.581.5% 범위에서 안정적입니다. 15라운드 후에도 천장에 도달한迹象이 없습니다.
다양성 유지
재귀 합성의 위험은 다양성 붕괴입니다. RST는 이걸 확인했습니다.

- 도메인 정규화 엔트로피: 0.821 → 0.817 (거의 변화 없음)
- 유효 도메인 수: 11.22 → 11.09
- 재작성 패밀리 엔트로피: 2.26~2.31 bits (최대 2.32)
- R15에서 40개 중 36개 재작성 연산자 사용
훈련 효과
합성 태스크로 SFT와 PPO를 돌렸습니다.
| 모델 | Terminal-Bench 2 | TB Hard | Long-Horizon TB |
|---|---|---|---|
| Qwen3.5-27B Base | 41.2% | 22.7% | 18.1% |
| Qwen3.5-27B SFT (3단계) | 47.9% | 28.3% | 22.4% |
| Qwen3.5-27B RL (PPO) | 49.4% | 32.0% | 22.1% |
TB Hard에서 base 대비 41.2% 상대 향상이 나왔습니다. 훈련 풀과 독립적으로 구성된 벤치마크에서도 향상이 확인됐습니다.
실제 태스크가 어떻게 진화하는가
JSON-diff 회귀 테스트 태스크의 5개 체크포인트입니다.
| 단계 | 추가된 작업 | 해답 줄 수 |
|---|---|---|
| Seed | 고정 JSON 쌍에 gendiff 실행 | 10줄 |
| R1 | tasks.json의 매트릭스를 읽고 배치 실행 | 66줄 |
| R5 | check_config.sh로 설정 오류 진단·수리 후 재실행 | 219줄 |
| R10 | CHANGELOG.md에서 새 회귀 케이스 추가 | 264줄 |
| R15 | 설정·픽스처·기대값·테스트 일관성 수리 | 347줄 |
핵심 목표는 그대로인데, 각 라운드에서 실행 가능한 요구사항이 누적됩니다.
검증 품질 관리
RST는 지시문-검증기 정렬을 엄격하게 관리합니다.
- R1 → R15: hidden-check 보호 38.2% → 63.5%
- short-instruction 리스크 41.6% → 7.5%
- 비공개 테스트 경로 노출 0.1% → 0%
- 요구사항 커버리지 중위값 0.42 → 0.57
지시문에 없고 작업공간에서 발견할 수도 없는 요구사항을 검증기로 평가하지 않습니다. 에이전트가 풀 수 없는 태스크는 만들지 않는다는 의미입니다.
비용
37,484개 태스크를 만드는 데 태스크당 약 $0.05입니다. 사람이 만들면 태스크당 수백수천 달러니까 23자릿수 절감입니다. 주요 비용은 DeepSeek-V4-Pro 합성용 LLM 호출과 Daytona 샌드박스 실행입니다.
한계
- R15에서 일부 태스크의 유사도(p95)가 0.703까지 올라갑니다. 중복 제거가 필요합니다.
- DeepSeek-V4-Pro가 여전히 모든 벤치마크에서 앞서 있습니다. 성능 여유가 많이 남았습니다.
- 합성 품질이 시드 풀의 초기 다양성에 의존합니다.
더 실습해보고 싶은 분들께
논문: arXiv:2608.05466 데이터: HuggingFace Collection