Index
2026-08-21 — Plan (review requested)

Online 실행 트랙 설계 + 구현 계획 — 컨텍스트 메모리를 가진 VLM이 매 턴 subgoal·메모리를 갱신하며 수행

scene_bench | 재생 트랙(VLM 콜 0)의 상위 트랙 · N14 통합 턴 재사용 · 사용자 피드백 대기

TL;DR

1콜/턴
subgoal + 메모리
8 / 12
턴 상한 single / multi
240
1차 에피소드
~36 GPU-h
VLA 예상
$20–50
VLM 예상

1 두 트랙의 관계

재생 트랙 (구현 완료, 실행 중)온라인 트랙 (이 계획)
VLM 호출0 (S3 답을 그대로 재생)턴마다 1콜 (subgoal + 노트)
메모리없음 (답이 곧 플랜)컨텍스트 시드 + 온라인 노트 누적([t=k])
항법답의 (room, surface) → 접지 v3 → 텔레포트, 후보 ≤2VLM이 navigate(room, surface) 결정 → 같은 접지 v3 → 텔레포트
조작VLA "Pick up the {category}" 600스텝 × 재시도 2동일 VLA·수평선, 재시도 여부는 VLM이 프레임 보고 결정
판정GT body any-of lift(프로브 실행 전 생성)동일 술어, 매 pick 턴 프로브 → lifted_gt 누적; 성공 = done/턴 소진 시 GT 전부(single 1)
잰다기억한 답의 실행 가치 (하한/분해)기억을 갱신하며 끝까지 끌고 가는 능력; Δ = 회복 가치
규모고유 플랜 353 (답 dedupe)셀당 1 에피소드 → 서브셋부터
공정성 장치(시작 상태·접지 규칙·판정 술어·정책/카메라)가 두 트랙에서 동일하므로 같은 질의·셀의 차이는 "온라인 제어의 가치"로 해석된다.

2 한 사이클(턴)의 계약

[턴 k] 입력 → VLM(1콜, stateless) · goal : 질의 원문 ("Pick up all the bowls I moved earlier") · memory : 컨텍스트 시드(전략별, §3) + 온라인 노트 누적 "[t=0] …", "[t=1] …" · prev_frames : 직전 subgoal 실행 중 캡처(exo bench_exo_L + wrist, ≤4장) · current view : 현재 exo + wrist · vocab : 물체 display 이름 목록 / 방 이름 목록(eval 이름: bedroom, kitchen …) · current room : 방 이름 출력 ← {"note": "...", "reasoning": "...", "next": {"skill", "category", "surface", "room"}} · navigate(room, surface|null) → ground_selection(v3) → 후보 uid → teleport_to (접지 실패 → "there is no X in Y" 재질의 1회) · pick(category) → 현재 방 인스턴스 해석 → VLA "Pick up the {category}" ; 판정 GT any-of(비공개) · pick_and_place(category, surface) → (restore 가족용; v1 eval 계약 뒤) · done / abort 하네스: 실행 → 프레임 캡처 → 노트 누적("[t=k] " 부착) → 다음 턴 종료: done / abort / 턴 상한(8 single · 12 multi)

예시(사용자 시나리오): 시드 메모리에 "bowl → living room/table, bedroom/bed" → 턴0 pick(bowl)(이미 table 앞) → 프레임 보고 "하나 집었다" 기록 + 턴1 navigate(bedroom, bed) → 턴2 pick(bowl) → 턴3 done. 실패하면 VLM이 재시도/포기/다른 곳 선택 — 재생 트랙엔 없는 능력.

가드레일(기존 N14 유지 + 추가)

3 컨텍스트 메모리 시딩 (전략별)

전략첫 턴 메모리출처비고
blind없음상식 바닥선
textlog이벤트 로그 줄 전체(텍스트)textlog_lines_v2(ep) 결정론 재생성S3 총점 0.45~0.49, 바닥/옮긴 물체 강점
rollforward-v2ingest 자필 노트(텍스트)S3 results.json["episodes"][ep]["rollforward-v2_ingest"]["notes"]모델 종속 약함
frames-uniform균등 16프레임 이미지frames_uniform_indices(ep)매 턴 이미지 파츠로 동봉
rollforward-vis-pure모델이 고른 kept 프레임 이미지(+노트)S3 …_ingest["kept"]/notesS3 최고점(flash 0.69)
시각 전략은 턴마다 ≤16장을 다시 보내므로 토큰 비용이 텍스트의 수 배 — 1차는 텍스트(textlog)·시각(vis-pure)·바닥(blind) 3종만.

4 실행 · 판정 · 진단 · 예산

5 구현 태스크 (docs/superpowers/plans/2026-08-21-online-exec-track.md)

#산출물핵심 인터페이스테스트상태
T1sbench_exec/online_planner.pyOnlineBenchPlanner(UnifiedPlanner)방 이름 어휘 · navigate 접지 v3 · pick prompt/judge 부착 · 메모리 이미지 · probe_factory→lifted_gt가짜 client 5종(어휘·접지·재질의·판정 필드·lifted 갱신)구현 중
T2online_memory.py — 전략별 시드seed_memory(ep, strategy, ingest) → (lines, images), load_ingest스텁 Episode + results 픽스처대기
T3online.py 드라이버 + run_online_worker.shOnlinePlan, run_online_plan(복원→planner→run_episode(unified)→판정), 재개·샤딩·--cost-cap순수 함수(플랜 생성·성공 판정)대기
T4online_subset.pymulti 전부 + 단일 층화 48 (kind×scoring×floor, 결정적)층 비율·결정성대기
T5스모크(4 에피소드, ≤$1) → 서브셋 240sbm 6샤드, dense는 스모크만영상·노트·턴 로그 육안대기
T6aggregate_online.py + 리포트셀별 SR_online, 턴/콜/비용, 재생과 쌍 Δ, 층별합성 픽스처대기

수정하지 않는 것: src/sbench_online/(서브클래스/조합만), src/sbench_eval/(타 세션).

6 피드백이 필요한 결정 포인트

  1. 접지 규칙: 온라인에서도 "방·가구까지는 VLM, 그 위의 인스턴스 찾기는 하네스"(재생과 동일)로 둘지, 아니면 VLM이 navigate(category)로 물체까지 지목하게 할지(더 어렵고 N14 프레이밍과 상충).
  2. pick 범위: "현재 방 안 인스턴스"로 제한(N14 규칙, 메모리 강제) 유지? — 유지 권장.
  3. 1차 셀: {textlog, vis-pure, blind} × flash 80질의 — 전략/모델/규모 조정?
  4. 턴 상한·메모리 모드: 8/12턴, append만(rewrite·full-history arm은 후속) — 괜찮은지.
  5. restore/resume: v1 eval 계약(from/to) 산출물이 나오면 pick_and_place subgoal로 편입 — 순서/우선순위.

내 권고

1·2는 재생 트랙과 동일 규칙 유지(Δ 해석 보존), 3은 제안대로 시작해 결과 보고 확장, 4 유지, 5는 다른 세션 산출물 도착 후. 피드백 주시면 T1부터 반영합니다.