NavHarness가 새 대화로도 탐색 기억을 이어 붙여 lifelong navigation을 만든다
NavHarness: Towards Lifelong Embodied Navigation
무엇인가
연속된 실내 내비게이션 과제에서 로봇은 이전 과제가 끝난 자리에서 다음 요청을 받는다. 대화를 새로 시작하면 로봇은 물리적으로는 그 자리에 있지만, 지금까지 쌓인 지도와 탐색 증거는 사라진다. 그런데 축적된 기록 자체도 온전하지 않다. 어떤 방에서 물건을 못 찾았다는 기록은 그 방의 모든 관련 부분을 확인했다는 뜻이 아니고, 저장된 설명이 현재 시야와 충돌할 수도 있다. 이 논문은 단일 과제 성능이 아니라, 여러 과제에 걸쳐 이 불완전하고 때로 모순되는 기억을 어떻게 다음 판단에 쓸 것인가를 문제로 삼는다.
어떻게 동작하나
NavHarness는 추가 학습 없이 동작하는 embodied harness로, 기억 처리를 내비게이션 루프 안에 넣는다. 실행 단위는 run(한 집에서의 K개 과제 열), task(목표 추구, 여러 attempt 가능), attempt(하나의 연속 탐색), session(그 attempt를 맡는 멀티턴 멀티모달 대화), hop(모델 턴과 도구 호출의 묶음)으로 나뉜다. 바깥의 orchestrator가 세션 경계와 복구·완료 요청을 관리하고, 세션은 hop 단위로 진행되며 과제 예산과 로봇 상태가 hop 사이에 추적된다. 기억은 세 층으로 쓰인다. 활성 컨텍스트는 현재 attempt의 목표·추론·관찰을 담고, 작업 기억은 대화 밖에 남아 과제 기록(원장, 과제 핸드오버, 복구 노트, 완료 검증 결과)과 공간 기억(SLAM 추정 포즈로 만든 점유 격자, 이름 붙인 장소와 사진, 방·층 연결)을 묶는다. 장기 기억은 인덱스·집 개요·방 노트·내비게이션 스킬 네 파일, 즉 house notes다. 세션은 이 파일들을 읽어 탐색에 쓰지만, house notes는 run 종료 시의 consolidation 세션만 갱신할 수 있다.
무엇과 다른가
탐색 중 세션은 관찰·추론·행동·추가 기억 조회를 교차시킨다. ORB-SLAM3가 RGB-D로 포즈를 추정하고, mapper가 이를 이용해 층별 점유 격자를 만들며 추적이 끊기면 갱신을 멈춘다. 세션은 이 격자에 A* 경로 질의를 던져 경로와 길이를 받고, 저장된 뷰와 연결된 이름 표식으로 기억 속 장소와 현재 시야를 비교한다. 행동 공간은 전진 0.25m, 좌우 회전 15도, STOP이다. 세션이 비생산적인 계획을 반복하면 복구가 발동한다. 이동을 멈춘 채 나가는 세션이 복구 노트를 쓰는데, 여기에는 탐색한 장소, 증거로 배제된 장소, 신뢰할 수 있는 랜드마크, 시도하지 않은 선택지, 불확실성이 들어간다. 방문한 곳과 증거로 배제한 곳을 구분하는 것이 핵심이다. 종료 시에는 세션이 쓴 핸드오버와 별개로 judge 세션이 목표, 정지 지점의 네 뷰, 이전 프레임 샘플, 지도, 실행 기록을 보고 complete/incomplete/unknown 판정을 내린다. 이 판정은 STOP 전에 한 번만 개입하고, 과제 종료 후에는 점수를 바꾸지 않는 인증 기록으로 남는다. run이 끝나면 consolidation 세션이 journal을 읽어 house notes 네 파일만 다시 쓴다.
어떻게 쓰나
실험은 GOAT-Bench와 IR2R-CE의 validation-unseen 분할에서 이뤄졌다. GOAT-Bench는 36개 장면, 360개 에피소드의 2,669개 서브태스크 전체를 평가한다. 추론 코어는 Qwen3.8-27B, GPT-4o, Opus 5, GPT-6 Astra이며 모두 같은 내비게이션·기억 도구를 받는다. 같은 모델로 현재 과제 컨텍스트만 쓰는 독립 세션과 비교했을 때 GOAT-Bench s-SR 개선폭은 Qwen3.8-27B 30.3점, GPT-4o 34.8점, Opus 5 22.6점, GPT-6 Astra 18.6점이다. Astra는 SPL도 40.1에서 62.3으로 올랐고, IR2R-CE에서의 17.5점 상승은 GOAT-Bench의 18.6점과 비슷한 크기다. 시뮬레이터 정답 포즈 없이 SLAM 추정 포즈만 써서 Astra는 GOAT-Bench 83.7% s-SR, 62.3 SPL을 기록해 이전 최고 점수를 각각 10.9점, 5.4점 앞섰고, IR2R-CE에서는 85.9% s-SR, 76.1 SPL로 SeqWalker의 36%와 34를 크게 넘었다. GPT-4o에 278개 서브태스크 프로토콜을 적용하면 77.6 s-SR로 HIMM 72.8, 3D-Mem 69.1을 앞선다. 오픈 27B Qwen 실행기만으로도 71.7% s-SR로 3D-Mem보다 2.6점 높다. 시퀀스 전체가 성공해야 하는 e-SR은 Astra 기준 13.6%에서 36.9%로 올랐고, 이전 최고 보고치는 SSMG-Nav의 8.6%였다. IR2R-CE e-SR은 9.3%에서 27.8%가 됐다.
전제와 한계
Opus 5로 2,669개 서브태스크 전체를 돌린 절제 실험이 메커니즘을 분리한다. 한 세션이 과제를 넘어 대화를 계속하는 방식은 54.9%로, 과제마다 새로 시작하는 독립 세션 58.9%보다 오히려 나쁘다. 긴 대화가 지난 목표와 관찰을 붙들고 현재 과제 정보와 경쟁하기 때문이다. 독립 세션에 종료 전 검증만 붙여도 NavHarness와의 격차가 19.1점 남는다. 과제 간 기억을 모두 제거하면 14.7점이 빠지고, 기록만 숨기면 9.7점 손실에 스텝이 25% 늘며, 공간 기억만 지우면 12.6점 손실에 스텝이 32% 늘어난다. 복구에서는 빈 핸드오버가 72.9%로 복구 자체를 안 쓰는 71.1%보다 겨우 나은 수준이고, 길이를 맞춘 일반 요약은 구조화된 핸드오버에 8.3점 뒤진다. 완료 검증의 효과는 상대적으로 작아 종료 전 검증이 5.4점, 종료 후 인증이 2.5점이다. 다만 인증은 기록 정확도를 82.6%에서 90.7%로 올린다.
집마다 GOAT-Bench 투어 10개를 이어 붙인 연속 배치 실험도 있다. 36개 집 전체에서 Opus 5로 consolidation만 끈 대조군과 비교하면, 통합은 pooled s-SR을 72.8%에서 80.5%로, SPL을 36.5에서 44.3으로 올렸고 짝지은 이득은 7.7점과 7.8점이다. 사례 연구에서는 house note가 "계단 난간 위"라는 표현을 특정 서랍장과 연결해 엉뚱한 층으로 가는 것을 막고, 냉장고가 하나인지 둘인지 같은 미해결 질문을 나중 과제에서 확인해 기록하며, 실패한 거울 탐색이 남긴 "열린 문 뒤 확인 안 한 벽"을 다음 세션이 journal에서 찾아 재개한다. 저장된 노트의 조언이 틀렸을 때 공간 지식은 유지한 채 조언만 수정하는 식의 부분 갱신도 나타난다.
개발자 입장에서 이 논문의 실질적 교훈은 세션 경계를 넘길 때 무엇을 넘기느냐가 성능을 좌우한다는 점이다. 같은 모델, 같은 예산에서도 과제별로 대화를 새로 열고 외부 기억을 파일로 읽히는 편이 대화를 계속 끌고 가는 것보다 낫고, 길이를 맞춘 요약보다 "방문한 곳과 증거로 배제한 곳, 아직 안 해본 선택지"를 구분한 구조화된 인수인계가 낫다. 또한 종료 판정을 자기 보고와 분리해 독립 검증에 맡기고, 그 결과를 다음 세션이 신뢰할 기록으로 남기는 구조는 로봇에 국한되지 않고 도구를 쓰는 장기 실행 에이전트 전반에 그대로 옮길 수 있는 패턴이다.
저자들이 밝힌 한계는 기억의 신뢰성이다. judge가 잘못된 완료를 수용하면 그 오류가 house notes로 전파될 수 있고, 한 기록을 바로잡아도 그 사본이 함께 갱신된다는 보장이 없으며 다른 공간적 주장이 검증된다는 보장도 없다. 또한 이 결과는 시뮬레이터 정답 포즈, 전역 navmesh, 보조 인식 모델, 내비게이션 전용 학습 정책 없이 얻은 것이며, 벤치마크 실행은 빈 기억에서 시작하고 에피소드나 투어마다 지도·과제 기록·house notes를 물려받지 않는다는 전제 위에 서 있다.