DynaHarness가 로봇 실행 계약으로 실패를 능력 개선으로 전환한다
DynaHarness: A Dynamic Physical Harness for Self-Evolving Robot Agents
무엇인가
사전학습된 로봇 정책(VLA)은 쓸 만한 행동 사전지식을 주지만, 긴 호흡의 조작 작업은 여전히 의미 추론과 물리 실행 사이의 협응을 요구한다. 의미 추론은 물리 상호작용보다 훨씬 거친 시간 척도에서 돌아가고, 에피소드 단위의 성공·실패 결과만으로는 시스템의 어느 구성요소를 고쳐야 하는지 알기 어렵다. 기존 연구는 실행 오케스트레이션(고수준 에이전트가 작업을 분해하고 도구·정책을 고르는 방향)과 자기개선(실패로 프로그램·스킬·복구를 고치는 방향)으로 나뉘어 있었지만, 접촉·진행·중간 성공은 에이전트의 거친 계획 결정 사이에서 발생하고, 작업 수준 실패는 계획·그라운딩·능력 실행·검증·복구 중 어디서 났는지 구분되지 않는다. 이 논문은 물리 실행을 지배하고 그 증거를 검증된 능력 개정으로 바꾸는 방법을 다룬다.
어떻게 동작하나
DynaHarness는 서로 다른 시간 척도로 도는 두 개의 두뇌와 하나의 실행 계약으로 구성된다. 느린 두뇌는 Qwen3-VL-4B로, 필요할 때만 호출되어 명령어, 장면 설명, 현재 관찰, 타임스탬프와 장면·작업 에폭이 붙은 이력을 담은 원자적 문맥 스냅샷을 읽고, 능력 m_j ∈ ℒ와 기호 인자 α_j를 담은 구조화된 권고를 낸다. 자세(pose)는 내지 않는다. 빠른 두뇌는 2 Hz로 결정론적으로 돌면서 실행 권한을 쥐고, 재계획이 아니라 지배를 한다. 권고된 단계는 부분 사상 γ_k = G(z_j, c_j) ∈ Γ ∪ {⊥}를 거쳐 명령 γ = (m, θ, B, τ)가 되는데, θ는 물리 파라미터, B는 단계 예산, τ는 리스(lease)다. 그라운딩은 실행 인터페이스가 가진 상태 추정에 실행 가능한 능력을 묶고 레지스트리 항목과 사전조건을 확인하며, 파라미터나 사전조건을 풀 수 없으면 이유와 함께 거부 ⊥를 반환한다. 감시 단계에서는 진행·정체·위험을 읽고 완료 이벤트를 래칭해 v_k = v_{k-1} ∨ ⋁ b_t로 누적한다. LIBERO에서는 이 판정이 벤치마크 성공 술어에서 온다. 결정 단계에서 빠른 두뇌는 실행 지속, 복구 호출, 다른 적격 능력이나 vla_act로의 전환, 느린 두뇌 재계획 요청 중 하나를 고르고, 명령은 국소 완료·실패, 래칭된 판정, 예산 소진, 리스 만료로 끝난다. 제어 스텝은 20 Hz, 빠른 두뇌 결정은 2 Hz, 계획 스텝은 요청 시에만 돈다.
무엇과 다른가
로봇에 나가는 모든 명령은 하나의 물리 실행 계약을 통과한다. 그라운딩된 명령만 물리 세계로 들어가고, 예산이 남아 있고 리스가 유효하며 50 Hz 안전 검사를 통과하는 동안만 작동하며, 자기 완료를 감당할 수 없는 능력은 시작 전에 거부한다. 명령은 기록된 국소 상태, 래칭된 작업 판정, 예산·리스 조건으로 종료되고, 에피소드 증거 저장소가 관찰·결정·결과·이유를 남긴다. 거부는 행동이 전혀 디스패치되지 않았어도 기록에 남아, 해결되지 않은 명령과 실패한 능력 실행을 진단에서 구분할 수 있게 한다. 실행 자체는 세 갈래다. 해석적 스킬은 기하학적·결정론적이고, 복구 스킬은 재파지·재장착·키프레임 복구 같은 것이며, vla_act는 동결된 VLA π(모든 실험에서 π0.5)를 호출한다. 셋 다 같은 예산과 리스를 쓰고 같은 감시와 판정 인터페이스를 공유한다. 오프라인 자기진화는 증거에서 시작한다. 실패 에피소드의 증거 저장소 E_i에 대해 진단 절차가 N개의 순서 있는 진단 계층(인프라, 문맥, 계획, 그라운딩, 디스패치, 능력 실행, 검증, 복구) 중 첫 일치 라벨 λ_i = A_N(E_i)를 돌려주고, 실패 서명·계층·결과를 묶은 경험이 만들어진다. 이 귀속이 결함 재현과 재사용 가능한 능력 또는 실행 메커니즘의 표적 개정을 이끈다. 개정은 과제에 묶이지 않고 힌지 반지름이나 손 폭 같은 물리량으로 진술되며 라이브러리를 ℒ' = ℒ ⊕ κ로 바꾼다. 짝지은 회귀 검사가 성공 합계 비감소, 하네스 계층에 귀속된 실패 합계 비증가, 베어 정책이 이미 이기는 셀에서의 성공 비감소, 오염 에피소드 0을 요구하고, 여기에 더 넓은 회귀 검사까지 통과해야 채택된다.
어떻게 쓰나
실험의 중심은 LIBERO-Pro다. Goal과 LIBERO-10 스위트에 명령을 다른 곳으로 돌리는 과제 교란(T)과 물체를 옮기는 스왑 교란(S)을 적용해 10개 과제씩 4개 셀, 셀당 20개 시드로 총 800 에피소드를 돌린다. 진화에는 개발 시드 21–40을, 진화 없는 초기 비교에는 시드 1–20을 쓴다. 상부 모델은 Qwen3-VL-4B-Instruct를 로컬로 서빙하고 공개 π0.5 LIBERO 체크포인트는 동결한다. 같은 동결 π0.5와 같은 Qwen3-VL-4B를 쓰는 통제 비교에서 DynaHarness는 74.25%를 기록해 PhyAgentOS 20.3%, Harness VLA 6.0%를 크게 앞섰고, 동결 정책 16.2% 대비 58.0%포인트 이득이다. GPT-4o-mini를 쓴 PhyAgentOS는 21.3%였다. 두 번째 측정(74.1%)에서는 DynaHarness만 이긴 짝지은 에피소드가 474개, 정책만 이긴 것이 11개였다. 표준 LIBERO에서는 98.05%로 정책 참조 98.0%와 비슷해 천장에 붙는다. 시스템을 동결한 뒤 같은 셀에서 새로 샘플한 800개 초기 상태에서는 75.2% 대 동결 π0.5 17.5%로 57.8%포인트 이득, 단독 승 473 대 11이었다. 사전 등록한 동결 스냅샷 4개는 60.9%에서 65.9%, 74.2%, 75.2%로 올라 순위가 유지됐고(스피어만 ρ=1.00), 개발에서의 14.3%포인트 이득이 새 상태에서 14.4%포인트로 옮겨졌다. 다만 이 전이 이득 중 13.4%포인트는 stat39에서 이미 나왔고 마지막 1.0%포인트 증가는 불확실하다(p=0.0768). 손대지 않은 공식 상태 261개(31/40 셀)에서는 77.0% 대 16.5%였다. 실물 하드웨어에서는 원 픽앤플레이스 90%, 컵 쌓기 80%, 빵 픽앤플레이스와 서랍 넣기 각 70%를 과제당 10회 시행으로 기록했다. LIBERO-Plus의 별도 구성에서는 과제의 84.4%에서 성공했고 카메라와 로봇 상태 교란에서 가장 낮았다.
전제와 한계
무엇이 성능을 만드는지에 대한 절제 실험이 분명하다. 해석적 접촉 스킬 7개를 제거하면 성공률이 74.0%에서 16.6%로 떨어져 베어 π0.5의 16.2%에 가까워진다. 복구·개입을 제거하면 73.1%(p=0.21), 두 그룹을 모두 제거하면 15.8%다. 즉 해석적 스킬이 주된 과제 수행 능력을 공급한다. 같은 800개 개발 상태에서 초기 스킬 시퀀스를 고정한 A2seq는 63.75%, Full의 한 단계 플래너 인터페이스는 유지하되 실패 유발 재계획·대체·재정렬·복구 삽입·검증자 조건 분기를 끈 A2static은 63.88%, 이 동적 반응을 모두 남긴 Full은 74.0%였다. Full은 A2static을 10.125%포인트 앞서고(89/8 단독 승, 셀 부트스트랩 95% CI [3.375, 18.250], p=2.00×10⁻¹⁸), A2static은 A2seq를 0.125%포인트 앞설 뿐이다(p=1). 트레이스 매칭된 Full/A2static 783쌍에서 Full은 실패·에스컬레이션 재계획 566회, 대체 471회, 복구 삽입 141회를 기록한 반면 A2static은 모두 0이었고, 대신 고정 단계 재시도 534회와 계획 재실행 255회를 썼다. 실행 기록을 보면 개별 능력 실패에도 에피소드가 성공하는 사례가 나온다. turn_knob_object는 호출의 21%만 완료했지만 해당 셀은 0%에서 95%로 올랐고, 턱이 좁아 push_object를 거부하고 접시를 드는 대체를 택한 셀은 0%에서 40%로 개선됐다. 보관된 통제 에피소드 770개 중 570개는 VLA를 전혀 호출하지 않았고 그 성공률은 96.7%였다. 실패가 남은 어려운 셀에서는 VLA 실행이 스텝의 91.4%를 차지했다.
개발자 관점에서 이 논문의 핵심은 정책을 다시 학습시키지 않고 실행 계층을 고친다는 설계 패턴이다. 동결된 VLA 위에 해석적 스킬·복구 스킬·정책 호출을 하나의 명령 계약으로 묶고, 모든 명령에 예산과 리스를 걸며, 거부까지 포함한 결정·결과를 기록하면 실패를 어느 계층에서 고칠지 데이터로 판단할 수 있다. 실제로 저자들은 서랍 셀의 실패를 능력 계층에 귀속시킨 뒤 goal_swap[0]을 조사해 팔뚝이 와인랙에 끼는 문제, 15.4mm 손잡이에서 폐쇄 한계가 실제 파지의 약 3분의 1을 거부하는 문제, 접촉 후 손이 너무 높이 있는 문제를 찾아냈고, 이 물리량으로 진술된 두 가지 변경으로 셀 성공률을 55%에서 90%와 100%로, Goal 성공률을 75.25%에서 78.0%로 올렸다. 개발 라운드에서 개발 성공률은 60.0%에서 74.25%로 올랐고 두 라운드는 채택되지 않았다. 로봇 에이전트를 운영한다면 개별 스킬의 호출 성공률이 아니라 에피소드 수준 결과와 거부·재계획 기록을 함께 봐야 한다는 것이 이 사례의 교훈이다.
저자들이 본문에 흩어 놓은 전제와 한계도 분명하다. 진화 없는 초기 하네스는 시드 1–20에서 13.9%로 동결 정책 17.1%보다 나빴고, 40개 셀 중 9개가 나빠지고 1개만 좋아졌으며 손실의 절반은 스토브 창과 관련됐다. 짝지은 게이트를 통과한 개정도 충분하지 않아서, 한 후보는 전체 라운드에서 스토브 상판 5개 셀에서 79건의 성공을 잃었고 되돌리자 회복됐다. 저자들은 짝지은 검사가 목표 변경을 시험할 뿐 기존 라이브러리와의 상호작용은 더 넓은 검증이 필요하다고 명시하며, 개발 기준선으로 쓴 것이 채택을 뜻하지는 않는다는 단서도 붙인다. 또한 실패 에피소드가 예산의 99% 이상을 소진하고 마지막 진행 이후 173스텝을 허비한다는 관찰(5,805 에피소드 기준, 성공은 51스텝, 계획 계층 실패는 220스텝)에도, 그 꼬리를 대체 실행으로 바꾸는 실험은 대체만 승 22 대 통제만 승 14(p=0.24)로 유의하지 않았다. 저자들은 비생산적 실행을 탐지하는 것과 효과적인 대체 행동을 공급하는 것이 별개의 요구사항이라고 적는다.