Index
2026-08-18 — Experiment (Task N9, Track A)

온라인 메모리 데모 — blind vs textlog

scene_bench | 온라인 2-stage 실행 중 메모리 갱신+주입 최초 실증 | house 290, plan-first, gemini-3.6-flash, n=3/arm, $0.09

TL;DR

3/3 vs 0/3
대상 식별 (textlog vs blind)
0회
메모리 추가 VLM 콜
235
테스트 green
$0.09
데모 6 trials 비용

1 시나리오 — 메모리가 없으면 풀 수 없게 설계

house 290 | 로봇 시작: room_6 | 지시: "Move the box to the countertop." 타깃: [box_f6e09f38..._1_0_7] Box — room_7 (다른 방!) | 목적지: countertop — room_6 장치: --inventory-scope room → 프롬프트 인벤토리에 box 부재 (가드레일 valid set은 전역 유지 — 메모리로 아는 물체를 "선택"은 할 수 있게 하는 비대칭) 1부(관찰): 스크립트 navigate로 room_7의 box를 시야에 → textlog에 기록 → room_6 복귀 2부(본 테스트): plan-first 플래너에 지시 투입 — blind는 memory 없이, textlog는 1부 로그를 주입받고 첫 결정을 내림 (decision-only 채점, n=3/arm)
설계 버그 자체 적발 = 공리 A1의 실전 검증: 처음 뽑힌 타깃(Vase)은 같은 카테고리 물체가 로봇 방에도 있어서 양쪽 arm 모두 메모리 없이 현지 해결 — 실험이 무효였다. 타깃 카테고리가 현재 방에 중복되면 제외하는 필터를 추가하고 Box로 재선정. 벤치마크 설계 문서의 "메모리 필요성 3중 필터"가 온라인 하네스에서 그대로 필요함이 확인된 사례.

2 턴 워크스루 — 실제 입출력 원문

주입된 메모리 (textlog arm, 실물 그대로)

Here is the record of what I did in this house during the episode: I navigated to [box_f6e09f3868d4ffa7924a0719511c099d_1_0_7] Box in room_7 — succeeded (not holding anything).
blind (메모리 없음) — 첫 결정 오식별
reasoning: "The user wants to move 'the box', which corresponds to the book object (book_e1f55dff...) located on the dining table... navigate to the book first, then pick_and_place onto the countertop." → navigate(book_e1f55dff..._1_0_6) ✗

방에 box가 없자 book을 "the box에 해당"이라며 확신에 찬 대체 — 3 trial 전부 동일한 id로 동일하게 오식별. 기권(abort) 없음.

textlog (메모리 주입) — 첫 결정 정확 식별
reasoning: "The robot is already positioned next to the box in room_7 as recorded in memory. Since pick_and_place is an atomic skill and the target object is within arm's reach, we can execute pick_and_place directly..." → pick_and_place(box_f6e09f38..._1_0_7, countertop_aa26fd5b..._1_0_6) △

box의 정확한 UID + 정확한 receptacle — 3 trial 전부. 단 navigate를 생략 (△): 메모리가 "box로 갔다"고만 하고 "복귀했다"는 없어서 아직 그 옆이라 추론 — 합리적이지만 틀린 전제.

3 판정 표 (n=3/arm)

지표blindtextlog해석
strict 1차 (첫 결정 == navigate(X))0/30/3사전 등록 지표 — 무효과처럼 보임 (아래 재해석)
대상 식별 (object_id == X 정확)0/33/3receptacle id까지 3/3 정확 — 메모리가 "아는 것"을 바꾼 실신호
기권율0/30/3blind는 기권 대신 확신 오답 — 벤치 A5("기권도 정답") 채점 설계에 중요한 관찰

지표 재해석의 정당성은 리뷰에서 별도 검증됨 — null 1차 결과를 먼저 정직하게 보고한 뒤 원자료로 독립 확인된 2차 지표를 제시하는 구조로, 사후 합리화가 아니라고 판정. 공식 지표는 2축(object-id-match + procedure-match) 분리를 제안 (팀 결정 항목).

4 실패 사례 — 원문과 원인

M1. blind의 확신 오식별 (3/3 동일) 메모리 부재의 실패 모드

원문: "The user wants to move 'the box', which corresponds to the book object (book_e1f55dff5055aaeae07a75960a0dd7ea_1_0_6)..." 원인: room-scoped 인벤토리에 box 카테고리 부재 → 모델이 지시를 만족시키려 인벤토리에서 가장 그럴듯한 물체(책)로 대체. 3 trial 모두 같은 id로 재현. 교훈: 정보가 없을 때의 실패는 "모르겠다"가 아니라 "그럴듯한 오답"으로 나타남 — 벤치마크 채점에서 기권 vs 오답을 구분해야 하는 실증 근거 (공리 A5).

M2. textlog의 navigate 생략 로그 완결성 문제 (수정 방향 확정)

원문: "The robot is already positioned next to the box in room_7 as recorded in memory." 원인(구조적으로 확인): 1부 종료 후 복귀 텔레포트가 이벤트 로깅 경로 밖에서 실행되어 메모리에 기록될 수 없음 — 모델의 추론은 주어진 메모리 기준으로는 합리적. 수정: 모든 베이스 이동(스크립트 리셋 포함)을 로그에 포함 → strict 지표 재측정.

M3. 무효 시나리오 (Vase, 실행 전 적발) 설계 필터로 해소

현상: 첫 타깃 Vase는 동종 물체가 로봇 방에 존재 → 양 arm 모두 메모리 없이 현지 해결 원인: "현재 관측에 없는 정보" 조건 미충족 (벤치 공리 A1과 동형) 조치: resolve_scenario에 동종 카테고리 중복 제외 필터 추가
신규 설계 이슈 — staleness: textlog는 "사건이 일어났다"와 "그 상태가 지금도 유효하다"를 구분하지 못한다 (M2가 그 첫 발현). subgoal이 늘수록 악화 예상 — 메모리 포맷에 시점/상태 신호가 필요하며, 이는 벤치마크 C분류(Restoring: 이전 상태↔현재 대조)와 직결되는 설계 항목.

5 결론과 다음 단계

"online 2-stage에서 memory update가 되는가"에 대한 답: 된다, 그리고 효과가 관측된다. 추가 VLM 비용 0으로 서브골 경계마다 메모리가 갱신·주입되고, 그 메모리가 플래너의 대상 식별을 0/3→3/3으로 뒤집었다 (n=3 시사적 증거).

#다음 단계근거
1전체 베이스 이동 로깅 → strict 지표 재측정M2 수정 방향
2A4 공식 지표 2축화 + n 확대§3 지표 논의 (팀 결정)
3staleness 신호 설계 (rollforward 온라인판과 함께)§4 신규 이슈
4실조작 결합 (VLA로 2부 실행 — 카메라는 N10 결과 반영)decision-only → full-loop