검색 에이전트를 훈련할 때 가장 큰 문제가 뭔지 아시나요. 최종 답이 맞았는지 틀렸는지만 보고, 중간 단계를 전부 같은 점수로 평가한다는 겁니다.
성공한 궤적에도 잘못된 단계가 있고, 실패한 궤적에도 제대로 된 단계가 있습니다. 근데 기존 방법은 둘을 구분 못 합니다. 이 논문은 중간 단계별로 점수를 주는 방법을 제안합니다.
핵심 아이디어
Answer-Backtracked Credit Assignment(ABC). 이름이 길지만 아이디어는 단순합니다.
- 정답을 알고 있으면, 정답에서 거꾸로 추적해서 중간에 어떤 단서를 찾아야 했는지 복원합니다
- 각 단계가 그 단서를 발견했는지, 검증했는지, 아니면 잘못 무시했는지 평가합니다
- 이 점수를 SFT 손실 가중치와 GRPO 보상으로 사용합니다
[답 → 단서 복원 → 단계별 채점] 이 전부입니다.
어떻게 동작하는가
단계별 점수 채점 규칙
| 행동 | 점수 변화 |
|---|---|
| 기본 (합리적 진행) | 1.0 |
| 올바른 단서 발견/검증 | +0.8 |
| 잘못된 후보 올바르게 배제 | +0.4 |
| 올바른 단서를 잘못 배제 | -0.8 |
| 정답 제출 | +1.0 |
| 오답 제출 | -1.0 |
기본 점수 1.0에서 시작해서 위 델타를 누적하고 [0, 2.0]으로 클리핑합니다.
실패한 궤적에서도 올바른 단서를 찾은 단계는 점수가 1.0을 넘습니다. 성공한 궤적에서도 올바른 단서를 잘못 배제한 단계는 점수가 깎입니다. 이게 핵심입니다.
두 단계 훈련 파이프라인

Stage 1: 정답에서 거꾸로 단서를 복원합니다. LLM이 ReAct 루프를 돌면서 웹 검색으로 단서를 실제로 검증합니다.
Stage 2: 각 궤적 단계를 복원된 단서 집합과 비교해서 채점합니다. 실패한 궤적도 버리지 않고 점수를 매깁니다.
구체적 예시

4가지 제약이 있는 질문에 정답이 CeraVe라고 가정해 봅시다. 복원된 단서 6개: Ceramides(성분), L’Oréal(인수사), Eugène Schueller(창립자), 1904년 졸업, 등등.
- 22번째 단계: Ceramides를 발견하고 CeraVe와 연결 → 1.8점
- 35번째 단계: L’Oréal 인수와 Schueller 졸업을 동시 검증 → 2.0점(클리핑)
- 56번째 단계: 축적된 증거를 버리고 잘못된 후보로 회귀 → 0.2점
- 64번째 단계: 오답 제출 → 0.0점
궤적 전체가 실패했어도 22번, 35번 단계는 좋은 행동이었으니 보상을 받습니다.
훈련 설정
- 베이스 모델: Qwen3.5-4B
- SFT: OpenSeeker에서 8.5K 궤적 샘플링 (5.5K 정답 + 3.0K 오답)
- ABC-SFT: 단계 점수로 손실 가중치 조정. w(r) = 2σ(2(r-1))
- ABC-GRPO: 단계 점수를 GRPO 보상으로 사용. 감마=0.25
- RL: 1,000개 질문, 질문당 8롤아웃, 최대 200턴 허용
결과
| 모델 | 크기 | BrowseComp | BrowseComp-ZH | xbench-2505 | xbench-2510 | GAIA-text |
|---|---|---|---|---|---|---|
| GPT-5.5 | 미공개 | 33.9 | 26.1 | – | – | 77.7 |
| Tongyi DeepResearch | ~30B | 40.0 | 37.5 | 73.3 | 43.3 | 76.1 |
| OpenSeeker | ~30B | 37.2 | 37.4 | 75.0 | 44.0 | 80.0 |
| QUEST-4B | 4B | 30.0 | 25.0 | – | – | – |
| DR-Venus | 4B | 29.1 | 37.7 | 74.7 | 40.7 | 64.4 |
| ABSeeker | 4B | 37.3 | 39.1 | 77.0 | 46.0 | 81.6 |
| ABSeeker + 컨텍스트 관리 | 4B | 55.3 | 52.9 | – | – | – |
4B 모델이 같은 크기 대비 전 벤치마크 1위, 여러 30B 에이전트를 넘어섭니다. 컨텍스트 관리(256K 토큰, discard-all 5라운드)를 추가하면 BrowseComp 37.3% → 55.3%로 뜁니다.
왜 이 접근이 작동하는가

ABC-GRPO가 표준 trajectory-level GRPO보다 일관하게 높은 성능을 보입니다. 더 긴 검색 궤적을 만들면서도 정확도가 높습니다. 단계별 보상이 더 많은 탐색을 장려하기 때문입니다.
실패한 궤적에서도 좋은 단계가 있다
8.5K 궤적의 단계 점수 분포를 보면, 실패한 궤적의 약 10% 단계가 1.0 이상의 보상을 받습니다. 궤적 전체가 틀렸어도 이 단계들은 올바른 단서를 발견한 것입니다. 기존 방법은 이 단계들에 0점을 줬겠죠.
컨텍스트 관리 효과

256K 토큰 제한에서 discard-all 전략을 5라운드 적용하면 BrowseComp 37.3% → 55.3%, BrowseComp-ZH 39.1% → 52.9%로 향상됩니다.
근데 왜 기존 방법은 안 됐나
기존 credit assignment 방법들이 있었는데, 한계가 있었습니다.
- IGPO: 모델 자기 확신도로 보상을 정하는데, 학습이 진행되면 보상이 흔들립니다
- CSO: 검증된 “중요 단계”에만 크레딧을 주고 나머지는 무시합니다
- SAPO/MindDR: 엔티티 수준 근접도로 평가하는데, 각 검색/추론 결정이 맞았는지 직접 평가하지 않습니다
ABC는 정답에서 역추적한 단서라는 고정된 기준으로 모든 단계를 평가합니다. 보상이 안정적이고 밀집합니다.
정리
- 4B 검색 에이전트가 30B급 모델과 경쟁하는 성능을 냈습니다
- 핵심은 정답에서 거꾸로 단서를 복원해서 모든 단계를 개별 채점하는 것입니다
- 실패한 궤적의 좋은 단계도 보상받고, 성공한 궤적의 나쁜 단계도 페널티를 받습니다
- BrowseComp 55.3%, BrowseComp-ZH 52.9% (컨텍스트 관리 포함)
더 실습해보고 싶은 분들께
논문: Training Long-Horizon Search Agents via Answer-Backtracked Credit Assignment