로봇 에이전트가 시연 영상을 필요할 때만 골라 보는 RV-ICL
Recursive Video In-Context Learning for Agentic Robot
무엇인가
LLM을 조율 계층으로 쓰는 로봇 에이전트는 에피소드를 거듭하며 텍스트 메모리에 레시피와 실패 규칙을 쌓아 성능을 올린다. 그런데 이 메모리는 에이전트가 무엇을 호출했고 결과가 어땠는지만 기록할 뿐, 과제가 실제로 어떻게 수행되는지는 담지 못한다. 그립이 실패했다는 사실은 적을 수 있어도, 어떤 물체를 먼저 잡고 어느 방향에서 손을 접근시키고 얼마나 들어올리고 언제 그리퍼를 여는지는 공간적·시간적 지식이라 말로 옮기기 어렵다. 시연 영상은 그 전부를 프레임 단위로 보여주지만, 영상 전체를 매 턴마다 문맥에 넣으면 느려지고, 고정 키프레임만 뽑으면 그립 성패를 가르는 접촉 순간의 디테일이 사라진다. 게다가 에이전트가 필요한 정보는 계획 단계에서는 과제 구조, 실행 단계에서는 특정 접촉 주변 프레임으로 계속 바뀐다.
어떻게 동작하나
논문이 제안하는 RV-ICL(Recursive Video In-Context Learning)은 학습이 필요 없는 방법으로, 시연 영상을 프롬프트로 받는 것이 아니라 에이전트가 탐색하는 계층 구조로 바꾼다. 계층은 시연의 하위 이벤트, 즉 그리퍼가 닫히거나 열리는 순간과 관절이 있는 설비가 열리고 닫히는 순간을 기준으로 만든다. 네 단계로 구성되는데, L0는 과제 전체를 아우르는 K=16개의 키프레임으로 모든 그립·릴리스 주변에 배치하고 나머지는 균등 샘플링하며 시간 비율, 그리퍼 상태, 엔드이펙터 위치, 이벤트 라벨을 캡션으로 단다. L1은 연속한 그리퍼 이벤트 사이 구간을 텍스트로 표현한 페이즈로, 지속 시간과 그리퍼 상태, 엔드이펙터의 이동·들어올림, 그리고 그 페이즈가 달성한 것(옮긴 물체와 도달 영역, 열거나 닫은 설비)을 기록한다. L2는 각 하위 이벤트 주변과 에피소드 끝의 짧은 윈도우를 종류와 순서로 이름 붙인 텍스트 인덱스이고, L3는 임의의 페이즈나 모멘트에서 뽑은 최대 20프레임짜리 짧은 클립으로 3인칭 시점, 손목 시점, 또는 둘을 쌓은 형태를 제공한다. 시연은 다른 장면에서 녹화됐으므로 이 계층은 '어떻게'를 전달할 뿐 '어디'를 알려주지 않으며, 도구 설명은 에이전트에게 자기 카메라에서 모든 물체를 다시 위치 추정하라고 지시한다.
무엇과 다른가
접근은 읽기 전용 도구 세 개로 이뤄진다. view_task_video(page)는 L0 키프레임을 한 페이지씩, view_task_map()은 L1과 L2 인덱스를, view_demo_clip(n, cam)은 특정 페이즈나 모멘트의 L3 클립을 반환한다. 에이전트는 첫 행동 전에 L0부터 L2까지를 읽고 페이즈 맵에서 하위 목표를 세우되 클립은 미리 받지 않는다. 실행 중에는 그리퍼를 닫거나 열기 전, 움직임이 불분명할 때, 그리고 그립이 닫히지 않거나 물체가 움직이지 않거나 배치의 목표 조건이 발화하지 않는 등 계획대로 되지 않았을 때 계층에 다시 들어간다. 이때 현재 하위 목표를 페이즈에 매핑해 해당 클립만 문맥에 추가하고, 거친 수준은 다시 읽지 않는다. 하네스는 페이즈나 모멘트당 시청 예산 B로 재귀를 제한할 수 있고, 같은 곳에 대한 추가 요청은 거부되어 에이전트를 다시 행동으로 돌려보낸다.
어떻게 쓰나
실험은 LIBERO-PRO를 주 벤치마크로 쓴다. 네 개 LIBERO 스위트를 지시 재지정(T)과 위치 교환(S)으로 교란한 8개 셀, 셀당 10개 과제이며 과제당 5시드로 셀당 50 에피소드를 집계한다. 에이전트는 Codex CLI에서 낮은 추론 노력으로 도는 gpt-6-astra, VLA 프리미티브는 RLinf로 LIBERO에 파인튜닝한 π0.5, 분할은 SAM 3이다. HarnessVLA가 92.6%인 것을 RV-ICL이 96.5%로 올렸고, 통합 셀에 대한 이항비율 z검정에서 z=2.97, 양측 p=0.003으로 유의하다. 나머지 다섯 셀은 천장 근처를 유지하면서 HarnessVLA가 약했던 세 셀에서 큰 폭을 냈다. Goal-T는 88.0에서 100.0, L10-T는 85.0에서 90.0, L10-S는 72.0에서 84.0이다. Goal-S의 98.0 대 99.0 하락은 단일 실패 에피소드 때문이며, 시드가 5개라 한 에피소드가 셀을 2점 움직인다는 점을 저자들이 명시한다.
전제와 한계
가장 긴 과제인 LIBERO-10 두 셀에서 시연을 어떤 형태로 넣는지 비교한 절제 실험이 핵심이다. 텍스트 메모리만 쓴 경우에 대해 키프레임은 L10-T에서 1.0점, L10-S에서 2.0점만 올렸고, 영상 전체를 넣으면 L10-T에서 1.0점, L10-S에서 6.0점이 오히려 떨어졌다. RV-ICL은 L10-T 90.0%, L10-S 84.0%로 두 셀 모두 최고이며, 모든 팔에게 어려운 L10-S에서 키프레임보다 10.0점, 영상 전체보다 18.0점 앞선다. 같은 시연을 세 가지 형태로 보여준 결과가 이렇게 갈리므로, 저자들은 더 많이 보는 것이 아니라 필요한 부분을 필요한 시점에 보는 것이 효과의 원인이라고 해석한다. 두 번째 벤치마크인 LIBERO-Plus는 10,030개 교란 변형 중 120개를 층화 표본으로 뽑았고(105개가 다섯 난이도 중 가장 어려운 두 단계), 전체 성공률을 86.7%에서 95.8%로 올리며 일곱 차원 모두에서 HarnessVLA 이상이다. 조명 변경이 76.5에서 94.1로 가장 큰 폭이고 배경, 로봇 초기 상태, 카메라 시점이 각각 약 11점씩 오른다. 언어 변형은 두 방법 모두 전부 풀었고, Spatial에서만 한 변형 차이로 뒤진다.
에이전트가 실제로 계층을 어떻게 쓰는지도 로그로 분석한다. 400개 LIBERO-PRO 에피소드 중 97%에서 실행 중 시연에 재진입했고, 클립 조회의 40%가 그립 모멘트, 30%가 릴리스 모멘트, 15%가 설비나 과제 종료 모멘트, 16%가 페이즈 전체였다. 재진입의 78%가 접촉을 실행하는 후반부에 몰리고, 과제가 길수록 늘어 Object에서 에피소드당 2.3회, LIBERO-10에서 10.4회다. 무작위로 뽑은 재진입 100건을 읽어보면 68건은 그립이 닫히지 않거나 하강이 짧게 멈추거나 물체가 미끄러지는 등 잘못된 뒤였고, 32건은 다음 접촉을 준비하기 위한 것이었다. 실패한 에피소드는 거의 모두 LIBERO-10이며 평균 21.2회 클립을 보는데 해결된 에피소드는 4.3회에 그친다. 같은 종류의 단계에서 계속 재진입해도 시연을 다시 봐도 로봇이 할 수 있는 일이 바뀌지 않기 때문이다.
개발자 관점에서 이 논문의 실용적 요점은 시연을 프롬프트 접두사가 아니라 질의 가능한 환경으로 취급하라는 것이다. 구현 부담은 작다. 하네스에 읽기 전용 도구 세 개와 프롬프트 섹션을 추가할 뿐이고 모델이나 VLA를 바꾸지 않으며, 과제당 시연 하나면 충분하다. 다만 하위 이벤트를 그리퍼 명령과 설비 관절에서 검출한다는 전제를 확인해야 한다. 밀기, 닦기, 붓기처럼 녹화된 상태에 흔적을 남기지 않는 과제는 엔드이펙터 궤적을 읽거나 VLM에 물어보는 다른 검출기가 필요하다. 또 시연 뷰가 한 번 로드되면 에피소드 끝까지 문맥에 남으므로 재진입 횟수에 따라 비용이 증가하고, 시청 예산 B 같은 상한을 두지 않으면 해결되지 않는 단계를 반복해서 되감는 실패 패턴에 빠진다.
저자들이 밝힌 한계는 다음과 같다. 기본 과제당 시연 하나를 가정하므로 벤치마크가 과제 목표를 바꾸면 시연의 일부가 무효가 되고 이를 에이전트에게 알려줘야 한다. 접촉이 시연자와 다른 궤적으로 움직이는 학습된 스킬로 수행되면 세밀한 수준이 제공할 것이 거의 없다. 실험은 단일 로봇과 단일 VLA의 LIBERO 과제에 한정되어 다른 embodiment와 시연 출처는 검증되지 않았고, 에이전트는 동작이 바뀔 수 있는 서드파티 엔드포인트의 상용 모델이다. 통계적으로도 LIBERO-PRO 셀은 50 에피소드, LIBERO-Plus 차원은 단일 시드에 17~18 변형이라 한 에피소드가 셀을 2~6점 움직이며, 표 1의 베이스라인은 별도 실행에서 온 값이라 에피소드 단위로 직접 비교할 수 없다.