단일 모델을 기획자와 합성자로 나눠 딥서치의 역할 결합과 컨텍스트 누적을 푼 IterSynth
IterSynth: Rethinking Deep Search Agents via Role-Decoupled Iterative Synthesis
무엇인가
딥서치(deep search)는 LLM 에이전트가 복잡한 질의를 분해하고, 근거를 검색하고, 근거에 기반한 답을 합성하는 작업이다. 논문은 기존 ReAct 스타일 에이전트가 두 가지 한계를 안고 있다고 진단한다. 첫째는 역할 결합(role coupling)으로, 하나의 정책이 계획·근거 활용·합성을 모두 떠안아야 한다. 둘째는 컨텍스트 누적(context accumulation)으로, 검색 이력이 쌓일수록 노이즈가 늘고 유용한 정보가 묻힌다. 저자들은 부록 H에서 64K 컨텍스트를 줘도 BrowseComp의 ReAct 궤적이 59% 이상의 사례에서 컨텍스트 소진 전에 종료하지 못했다고 관측한다. 기존 대응은 멀티에이전트(모델을 나눠 쓰지만 추론 비용·배포 복잡도·조정 오버헤드가 늘어남)나 요약 기반 에이전트(주기적으로 이력을 압축하지만 요약이 학습되는 정책의 일부가 아닌 외부 보조 모듈이고, 계획과 근거 활용은 여전히 결합돼 있으며, 유용한 정보를 버리거나 잘못된 노이즈를 남길 수 있음)였다.
어떻게 동작하나
IterSynth는 같은 LLM 하나를 두 역할로 번갈아 쓰는 구조다. Planner는 원래 질문 q와 현재 전역 요약 M_t만 보고, 아직 채워지지 않은 정보 요구를 식별해 다음 검색 질의를 만들거나 최종 답을 내고 종료한다. Synthesizer는 검색으로 돌아온 근거를 읽고 관련 없는 문단을 걸러내고, 유용한 발견을 추출하고, 국소적 불일치를 해소해 전역 요약을 갱신한다. Synthesizer는 메모리 갱신만 할 수 있고 질의를 던지거나 최종 답을 낼 수 없다. 두 역할은 파라미터를 공유하는 하나의 정책이 역할별 프롬프트와 행동 제약으로 구분해 수행한다. 형식화는 상태 s_t=(q, M_t)를 갖는 확장 MDP로, 매 반복 t마다 Planner 하위 스텝 d_t^P=[Think_t^P, a_t](a_t는 search(q_t) 또는 answer(â))과 Synthesizer 하위 스텝 d_t^S=[Think_t^S, M_{t+1}]이 연달아 일어나고, 전이는 s_{t+1}=(q, M_{t+1})로 요약을 새 상태로 교체한다. answer가 나오면 궤적이 끝나고 Synthesizer 스텝은 건너뛴다.
무엇과 다른가
학습은 2단계다. 먼저 콜드스타트 SFT로 역할 프로토콜과 반복 행동 형식을 가르친다. 공개 딥서치 데이터셋과 합성한 실세계 인스턴스에 대해 프런티어 모델(Qwen3.5-397B-A17B)로 실제 검색 환경에서 Planner–Synthesizer 루프를 굴려 궤적을 만들고, 잘못된 툴 호출을 고치고 환각 추론 단계를 제거하고 검증 가능하게 정답으로 끝난 궤적만 남기는 필터링을 거쳐 약 1만 개 고품질 궤적을 확보한다. 각 궤적은 턴 단위 샘플로 펼쳐져 역할별 프롬프트와 재구성된 워크스페이스에 조건화된 독립 지도 목표가 되고, Qwen3-8B 백본에 전 파라미터 SFT를 수행한다. 다음 단계가 Role-Decoupled Policy Optimization(RDPO)이다. 질의 q마다 G개의 독립 롤아웃을 돌리고, 각 궤적은 T_i번 반복되어 합계 ΣT_i개의 상호작용 라운드 코퍼스를 만든다. 보상은 최종 정답 여부 r_acc(0 또는 1)를 궤적의 모든 턴에 균일하게 broadcast한 항과, LLM 심사자가 5개 차원으로 각 중간 행동을 채점한 턴 단위 루브릭 보상 r_rubric을 α로 스케일해 더한 r_{i,t}^ρ = r_acc,i + α·r_rubric,i,t^ρ 로 구성된다. 핵심은 어드밴티지 정규화를 역할별로 분리하는 것이다. Planner 보상 풀과 Synthesizer 보상 풀을 따로 만들어 각 풀 안에서만 A_{i,t}^ρ = (r_{i,t}^ρ − μ_q^ρ)/σ_q^ρ 를 계산하고, 이를 표준 GRPO 목적식에 그대로 꽂는다.
어떻게 쓰나
평가는 장기 호흡 딥서치 벤치마크 5개(BrowseComp, BrowseComp-ZH, GAIA 텍스트 전용, Xbench-DeepSearch 2505/2510)에서 이뤄졌다. 비교 대상은 툴을 붙인 파운데이션 모델(GLM-4.7, Minimax-M2.1, DeepSeek-V3.2, Kimi-K2.5, Claude-Opus, OpenAI-o3, GPT-5 High, Gemini-3-Pro), 30B 이상 학습 에이전트(Tongyi DeepResearch, WebSailor-v2, MiroThinker 계열, AgentFold, OpenSeeker-30B-SFT, ReSum), 8B 이하 학습 에이전트(OffSeeker-8B-DPO, WebExplorer-8B-RL, AgentCPM-Explore-4B, MiroThinker-v1.0-8B)다. IterSynth-8B는 평균 50.7%로 8B 이하 최강이던 MiroThinker-v1.0-8B를 +4.2%p 앞섰다. 가장 큰 폭은 BrowseComp-ZH로 55.4%를 기록해 동급 최강 베이스라인을 +15.2%p 앞섰고, xBench-DS-2510에서도 +5.4%p 올랐다. 8B에 불과하지만 ReSum-30B, AgentFold-30B-A3B, OpenSeeker-30B-SFT를 평균 점수에서 앞서고, IterResearch-30B-A3B와 WebSailor-V2-30B에는 파라미터 예산 3분의 1 이하로 근접한다.
전제와 한계
학습 레시피의 기여는 분리 실험으로 확인된다. 구조만 초기화한 IterSynth-SFT에서 결과만 쓰는 GRPO는 평균을 44.1%에서 48.9%로 올렸고, RDPO는 50.7%까지 끌어올렸다. 같은 복합 보상을 쓰되 역할을 섞어 어드밴티지를 정규화한 w/o RD 변형은 47.2%로 오히려 결과 전용 GRPO보다 낮았다. 역할별 기여도도 측정했는데, 한쪽 역할을 학습되지 않은 Qwen3-8B 베이스로 바꾸면 평균 점수가 Synthesizer 교체 시 17.4%p, Planner 교체 시 41.1%p 떨어졌다. Planner 쪽 타격이 훨씬 큰 것은 계획이 더 까다로운 역할이며, 약한 Planner가 만든 잘못된 하위 질의가 궤적 전체의 근거를 오염시키기 때문이라고 저자들은 해석한다. 파라미터 갱신 없이 프롬프팅만으로도 효과가 있다. Claude-4.5-Opus에서 IterSynth는 평균 66.1%로 ReAct 60.6%, IterResearch 63.2%를 앞섰고, DeepSeek-V3.1에서는 47.9%로 ReAct 43.4%, IterResearch 45.2%를 앞섰다. BrowseComp-ZH에서는 ReAct 대비 최대 +10.0%p(Claude-4.5-Opus 기준 60.2%에서 70.2%로)를 기록했다.
실무 관점에서 이 논문은 장기 호흡 검색 에이전트를 만들 때 컨텍스트 예산과 역할 과부하를 동시에 다루는 설계 패턴을 제시한다. 별도 모델을 띄우지 않고 하나의 정책에 역할별 프롬프트와 행동 제약만 다르게 주는 방식이라 서빙 비용이 멀티에이전트보다 낮고, 검색 이력을 통째로 붙이는 대신 요약 상태만 다음 턴에 넘기므로 컨텍스트가 선형으로 폭발하지 않는다. 도입을 검토한다면 요약 상태가 어떤 정보를 버리는지, Planner와 Synthesizer의 프롬프트 경계가 실제로 지켜지는지, 그리고 RL을 돌릴 경우 역할별 보상 풀을 분리하지 않으면 이득이 사라지는지(47.2% 대 50.7%)를 먼저 확인해야 한다.
원문에서 별도의 한계 절을 제시하지는 않았지만, 방법이 딛고 선 전제는 본문에 드러나 있다. SFT 데이터는 프런티어 모델(Qwen3.5-397B-A17B)이 실제 검색 환경에서 굴린 궤적 중 정답으로 검증된 것만 남긴 약 1만 개이며, 따라서 교사 모델의 검색 습관과 정답 필터의 편향이 그대로 학습된다. RL 롤아웃에서는 캐시된 검색 결과를 쓰고 평가에서는 라이브 툴을 쓰기 때문에 학습-평가 환경 간 격차가 존재한다. 또한 RL은 SFT 정책이 고른 중간 난이도 부분집합에서 수행되고, 백본은 Qwen3-8B 하나로 고정돼 있다. 두 역할이 파라미터를 공유하므로 전문화는 오직 프롬프트·정보 접근·행동 제약으로만 이뤄진다는 점도 구조적 제약이다.
관련 논문
- 읽기 시점에 과제별로 기억을 조립하는 LLM 에이전트 메모리, JitMemLLM 에이전트의 기억을 쓰기 시점이 아니라 읽기 시점에 현재 과제에 맞게 압축하는 JitMem을 제안한다. ALFWorld, WebShop, τ²-bench에서 기존 write-time 메모리보다 최대 16.3%p 높은 성공률을 보고했다.
- 계획 생성·수정·검증을 컨텍스트 격리로 분리해 LLM 플래너의 복잡도 붕괴를 막는 GRASPLLM 플래너가 복잡한 작업에서 무너지는 문제를 계획 생성·수정·검증의 컨텍스트 격리 모듈로 분리해 푼 GRASP를 제안한다. 캘린더 스케줄링과 ZebraLogic에서 최대 30.8% 정확도 향상을 냈고, 멀티태스크 확장에서 성능 저하를 사실상 제거했다.
- 도구 응답 예측 대신 에이전트의 추론-행동을 판정·수정해 장기 과제 오염을 막는 AEWMLLM 에이전트의 장기 작업에서 누적되는 작업 상태 오염을 다루며, 툴 응답을 예측하는 대신 추론·행동이 미래 작업 진행에 미치는 영향을 모델링하는 AEWM과 EditAct를 제안한다. 기존 언어 월드 모델이 환경 관측을 예측하는 방식과 달리 실제 실행 피드백을 활용해 의사결정 기반 상태를 직접 바꾸는 접근으로, 여러 벤치마크에서 개선을 보고한다.
- 코딩 에이전트 하네스의 계획·행동 공간·컨텍스트 관리를 분리 측정한 실증 연구다.코딩 에이전트의 장기 소프트웨어 엔지니어링 성능을 좌우하는 하네스 설계를 구성요소별로 비교한 연구가 나왔다. 실행 루프는 고정한 채 계획, 행동 공간, 문맥 관리 전략을 바꿔 네 개 모델에서 각 요소의 효과를 분리 평가한다.
- 장기 코딩 에이전트의 비용을 줄이는 정밀도 우선 자동 문맥 압축, CliffCompactionCliffCompaction은 제한된 컨텍스트에서 세션 간 압축을 자동화해 비용을 최대 50% 줄이는 기법이다. Terminal-Bench 성능을 유지하거나 개선하고 KernelBench에서 최고 성능을 냈다.