molmo_spaces 백엔드가 없고 ROS 2 의존, 메모리 층은 schema 0.1 "proposed/phased".MEMORY.md(object_locations/open_tasks/lessons, C Restoring 없음). 네비는 Nav2로 있음(앞선 추정 교정).MEMORY.md 물체 위치 로그를 스스로 유지하려 함 → 재는 벤치 부재). Cosmos 3 vLLM 서빙 sidecar는 참고 가치.사용자 요청: github.com/OpenRAL/openral이 scene_bench에 쓸 만한지 확인. 확인 축 3개 — (a) 벤치/데이터/지표 재사용, (b) 우리 시뮬(MolmoSpaces) 위 실행 하네스·외부 baseline 에이전트, (c) 논문 related work·설계 참고.
src/sbench_online은 molmo_spaces를 직접 import(drive.py). 외부 하네스가 쓸모 있으려면 이 시뮬 백엔드가 있어야 한다.문서 사이트(openral.github.io)는 ECONNRESET로 실패 → gh api로 저장소 파일을 직접 읽음. 코드는 실행하지 않음.
| 항목 | 값 | 출처 |
|---|---|---|
| 생성 / 최근 push | 2026-07-09 / 2026-09-01 | gh api |
| 릴리즈 | v0.1.0 → v0.3.1 (2026-08-08) | CHANGELOG, tags |
| 규모 | 35★ · 2 forks · 321 commits · 15 open issues | gh api |
| 라이선스 | 코드 Apache-2.0, 가중치는 upstream 별도 | README |
| 논문 | 없음 (README·웹검색 미발견) | — |
| 주체 | 회사(openral.com), "OpenRAL Pro" 유료층 언급 | CLAUDE.md |
MemoryStore = 파일 MEMORY.md, 5섹션: home_map / preferences / lessons / object_locations / open_tasks. 엔트리 형식 - [imp:0.90 ts:2026-06-24 st:current] Clothes go in the bedroom drawer. (중요도·타임스탬프·current|stale). schema_version 0.1.memory_write op(add/update/supersede/delete)만. 읽기 = ## MEMORY 블록, retrieval-under-cap(중요도→최근성 상위 cap, 나머지는 memory_search로 .archive.jsonl 검색, MemGPT식). 파일이라 세션 간 지속.SpatialMemory 씬 그래프(디텍터+깊이→3D, tf2) + 읽기 전용 recall_object/resolve_place. miss 시 active_search.py가 용기(container) 우선 frontier + SearchBudget(기본 5/5) → human-handoff.molmo_spaces 없음.panda_mobile 1과제×10ep, BEHAVIOR r1pro 100과제뿐.openral benchmark run = VLA 성공률 롤아웃(video+metrics+JSON). 메모리/장기 기억 평가 없음. 노드는 ROS 2 의존(ReasonerCore만 순수 파이썬).cosmos3.py — Cosmos3-Edge reasoner를 vllm serve nvidia/Cosmos3-Edge(tool calling on) sidecar로 서빙. 우리 Cosmos 3 1-stage/2-stage 서빙 옵션 참고 가능.ReasonerCore가 ROS 없이 headless로 도는지, HF OpenRAL/rskill-* 아티팩트 상태는 확인 안 함. 문서 사이트 미열람.벤치/데이터/지표 재사용 ❌ — 재사용할 것이 없다.
실행 하네스 ❌ — MolmoSpaces 백엔드·HAL·WorldState를 새로 써야 하고 ROS 2 의존. 우리 sbench_online이 이미 2-stage 실행을 담당.
외부 2-stage baseline ⚠️ 보류 — object_locations 로그+recall_object는 우리 textlog/rollforward/tagmem 가족과 개념상 겹쳐 비교 대상으로 매력적이지만, 논문 없음(명명 baseline으로 약함)·이식 비용·메모리 층 미성숙. 논문 v1 범위 밖.
Related work 동기 인용 ✅ — "배포용 에이전트 스택이 가정 내 지속 메모리를 스스로 유지하려 하지만 그 능력을 재는 벤치는 없다"의 실증 예시. URL/각주 인용.
설계 관찰(기록만) — 중요도×최근성 cap 검색, stale supersede, 은폐물 탐색 시 용기 우선 frontier. 평가지 튜닝 금지 원칙상 우리 전략에 채택하지 않음.
tools/cosmos3_reasoner_sidecar.py의 vLLM 옵션만 참고.사용자 재질문: 벤치 통합이 아니라 2-stage 제어 구조에서 볼 게 있는지. 저장소를 shallow clone(d3b6262, 2026-08-29)해 설계문서·시스템 프롬프트 전문·툴 union·플레이북 4종을 직접 읽고, reasoner_node.py(5,259행)·S1 runner·nav·context 렌더러와 우리 src/sbench_online은 서브에이전트가 file:line으로 정리해 대조. 코드는 실행하지 않음.
ros_action rSkill로 감싼 네비가 있음(결과만 회신, 매니페스트가 안전 감독자 BYPASS를 자인). 시뮬 지원은 부분적(robocasa는 base 액션 무시 결함으로 env.step 우회, BEHAVIOR r1pro만 정상).| 축 | OpenRAL | 우리 sbench_online |
|---|---|---|
| S2 입력 | 텍스트 전용("no pixels"). 섹션 ROBOT/MEMORY/MISSION/REWARD/WORLD_STATE/EXECUTION/FAILURES/PERCEPTION/PROMPTS. 인식은 디텍터가 in_view[cam] #id label @px + 개방어휘 확인 located(cap 12)로 외부화 | 이미지 직접 입력(exo, 선택 wrist, 이전 subgoal 프레임 ≤4) + 어휘·방·노트 |
| S2 출력 | 틱당 정확히 1개 타입드 툴(ExecuteRskill / DecomposeMission / RecallObject / LocateInView / QueryScene / QueryTaskProgress / MemoryWrite / MemorySearch / Wait / EmitPrompt) | 턴당 1 subgoal pick|pick_and_place|open|close|navigate|done|abort; plan-first는 계획 리스트+인덱스 |
| 틱 트리거 | 이벤트 구동 + 0.2 Hz 하트비트, min_interval 100 ms, 4계층 선점, 미완 틱 coalesce(≤4) | 동기: subgoal 끝나면 다음 호출 |
| 계획 원장 | MissionState pending→active→verifying→done/abandoned, GroundedSubtask 검증기가 집합 대상을 표현 불가로 거부, subdivide ≤2, attempts ≤3, JSON 스냅샷 크래시 재개 | plan-first 리스트 + revised_plan; 과제별 attempt 카운터 없음; 잘못된 출력 2회→abort |
| 완료 판정 | runner success ≠ 성공을 명문화. Robometer-4B가 VLA와 병렬로 progress 채점 → 3단(≥threshold 자동 / 중간 VLM yes-no / 미달 ladder), 정체 시 VLA 취소, patience_s. progress 헤드 성공 0.80–0.86 vs 실패 ~0.74(success 헤드 0.56–0.79 노이즈), 창 8→40 s | 시뮬 오라클 predicate(GT). VLM은 성공 신호를 받지 않음 |
| 실패 처리 | ladder retry→param→substitute→replan→handoff; 동일 호출 연속 3회 억제; Reflexion 힌트를 ## EXECUTION(deque 8)에 누적 | 이전 결과 1줄; 재시도는 플래너 재량; abort가 유일한 기권 |
| S1 실행 | prompt/deadline_s/patience_s; 청크 N+1 선인출(20스텝, 30 Hz), RTC; VLA 자체 종료 없음 | 턴당 VLA 128스텝, horizon 900; 낙하는 접촉 상실 감지 |
| 네비 | Nav2 ros_action, resolve_place→ApproachViewpoint→점유격자 refine, 불가면 "approach BLOCKED" | 텔레포트(학습 분포 반경) 또는 A* drive |
| 메모리 | MEMORY.md 5섹션(home_map/preferences/lessons/object_locations/open_tasks), [imp ts st], add/update/supersede/delete, cap 초과 시 중요도→최근성 + archive 검색; 미션 간 영속 | 평문 노트 [t=k] append 또는 rewrite(cap 12), 전량 재투입, 검색·섹션 없음; 4모드 + exec 5전략 시드 |
| 모델 소견 | 실기: GPT-5.5만 집합 목표 안정 분해, glm-5.2 과탐색·미분해, Opus 4.8 넛지 필요 | stepwise 환각 19:1 → plan-first; G1·전략 순위 모델 종속 |
골격 동일 — 느린 플래너 1툴/틱 → 빠른 정책, 네비는 별도 프리미티브, 텍스트 결과 회신, 자필 메모리, 유한 재시도+기권. 이식할 코드는 없음(ROS 2·Nav2·디텍터 스택).
가장 큰 차이 = 완료 판정. 우리는 GT 오라클(Tier B로서 정당), OpenRAL은 GT 없이 보상모델+VLM yes-no+patience. 우리 평가 조건의 "predicted" 축이 정확히 이 자리.
메모리 스키마가 우리 task 가족에 독립 수렴. object_locations ↔ A Finding, open_tasks ↔ B Resuming, lessons/preferences ↔ D Routine. C Restoring 섹션은 없음 → 배포 지향 설계도 "원상복구 기억"을 빠뜨린다는 논문 논거 후보.
모델 종속성 독립 확증. "GPT-5.5만 안정 분해"는 우리 발견과 같은 방향.
두 겹: 자동 기하 메모리 SpatialMemory(디텍션을 매 틱 ingest한 씬 그래프, pose·last_seen·observation_count, recall_object/resolve_place) + LLM 자필 의미 메모리 MEMORY.md(5섹션, memory_write만 쓰기, 자동 기록 없음). 설계문서 원문: 씬 그래프는 "머그가 어디 있나", MEMORY.md는 "이 집은 어떻게 하는 걸 좋아하나".
| 섹션 | 정의(원문) | 편집 규칙 | 쓰이는 지점 | 문헌 | 우리 가족 |
|---|---|---|---|---|---|
home_map | stable places / region-connectivity | EDIT in place | 플레이북 없음 | — | (D 보조) |
preferences | distilled user-preference rules, "clothes go in the bedroom drawer" | EDIT in place | 운영자 발화에서 자발 기록 | TidyBot | D Routine |
lessons | distilled human corrections / hard-won lessons, "grasp mugs by the handle" | APPEND | verify-outcome 실패 시 add | DROC | D Routine |
object_locations | timestamped object→place log | SUPERSEDE(구 엔트리 stale로 보존) | find-object 성공 시 supersede, miss 시 stale을 탐색 prior로 memory_search | Zep | A Finding |
open_tasks | recurring commitments / open items | EDIT, remove on completion | decompose-mission: subtask add → 검증 후 supersede | — | B Resuming |
| (없음) | 이전 상태 대조 | — | — | — | C Restoring 부재 |
- [imp:0.90 ts:2026-06-24 st:current] …. importance는 LLM이 0–1 부여(Generative Agents). status current|stale.consolidate()가 (section, content) 중복을 랭크 최고 1개만 남김(Mem0). 랭크 = current > stale → importance → 최근성.## MEMORY에 전량 주입(memory_context_cap 기본 0 = 무제한). cap 시 상위만 + 푸터 "N개 숨김, memory_search로 회수". 검색은 키워드 매칭만, archive만 대상(MemGPT).판단: 문헌 메모리 패턴을 섹션별로 하나씩 채택한 조립품(TidyBot·DROC·Zep·Mem0·MemGPT·Generative Agents·Statler). 새 알고리즘은 없고 스키마 결정이 본체. 우리 write-phase 노트(평문 append/rewrite cap 12, 섹션·status·검색 없음)와 대비되는 "섹션형·타입드 op 노트" 하나의 외부 메모리 방법으로 채점 가능한 대상. 추가 여부는 사용자 결정.
사용자 목적: ① 메모리 구성·사용에서 볼 것, ② 미확정 D Routine 설계. 우리 현재 상태 = D1 배치 / D2 절차 / D3 금지(음성 판정이 공리 A5 기권=정답과 충돌), 난이도 D2<D1<D3, 문장 확정(260821), 편당 1행·총 ~90행.
| 하위 | 앵커 | 제안 |
|---|---|---|
| D1 배치 | TidyBot | 상위클래스 규칙 + 규칙 근거에 없는 하위 카테고리 홀드아웃(우리 260821 결정과 일치). 반사실 짝(A6): 같은 집·같은 홀드아웃·다른 규칙 2편 → 정답 갈림(blind@1/K 방어). 선택적 회수: 편당 규칙 2개 심어 오답 진단 분리. |
| D2 절차 | 없음 | OpenRAL playbook은 사람이 쓴 SOP, open_tasks는 이어하기(B). 기존 설계 유지. |
| D3 금지 | DROC | 금지를 교정 사건으로 심기(X에 놓임→곧 옮겨짐 반복, 아바타 불필요). 질의는 행동 요구 → 안 함=미완, X=위반, 허용 표면=성공(음성→양성 선택). 기권 의미론은 금지 없는 쌍둥이 편으로 정리: 메모리가 답을 지지하는 편에선 무행동이 A5 보호 대상 아님. |
| 새 지표 | C5 정합 | 규칙 유도 → 규칙 적용 2단 귀속. write-phase 산출물에서 규칙 문장 유무를 채점 → 실패를 유도/적용으로 분리. 전략 변경 아님. |
OpenRAL이 D에 주는 것은 알고리즘이 아니라 스키마 결정 — "규칙은 사건과 분리해 저장(TidyBot), 금지는 교정에서 배움(DROC), 희소하게 씀". D3 해소의 핵심은 A6를 D3에 적용하는 것이라 새 공리가 필요 없다.