규칙서를 고쳐 쓰며 스스로 나아지는 에이전트 — Memento 3 깊이 읽기

LLM은 그대로 둔 채 외부 메모리의 '규칙서+코드'만 고쳐 세계 모델을 학습하는 Memento 3. ARC-AGI-3 공개 게임 25종을 전부 깬 방법과 온틀 AI PM에의 시사점.
English  ·  日本語  ·  한국어
← 목록으로
온
온틀 리서치
2026년 10월 10일 수정 2026.10.17 읽기 20분 조회 6

Memento 3는 바닥의 거대언어모델(LLM) 가중치는 그대로 둔 채, 외부 메모리에 적힌 '규칙서'만 고쳐 스스로 똑똑해지는 에이전트다. 규칙서(rulebook)란 환경이 어떻게 돌아가는지를 자연어로 적어 둔 설명서다. 에이전트는 이 규칙서와, 거기서 뽑아낸 '실행 코드'만 끊임없이 고친다.

작동은 단순한 순환이다. 환경을 관찰하고, 예측이 빗나간 지점을 반성하고, 규칙서를 고친다(관찰 → 반성 → 수정). 고친 규칙서는 두 관문을 통과해야만 채택된다. 이 방법으로 ARC-AGI-3의 공개 게임 25종을 전 레벨 통과했고, 사람이 쓰는 행동 수의 44%만으로 평균 RHAE(인간 대비 행동 효율 점수)의 상한인 100.0에 도달했다.

이 논문이 푸는 문제

낯선 게임기를 처음 잡은 사람은 두 가지를 동시에 배운다. 어떤 버튼이 쓸모 있는지, 그리고 그 버튼이 대체 무슨 일을 하는지다. 앞의 것이 '정책(무엇을 할까)'이라면 뒤의 것은 '모델(세상이 어떻게 반응하나)'이다. 행동하기 전에 결과를 미리 따져 보려면 뒤의 것이 필요하다. 이렇게 세상이 어떻게 반응하는지에 대한 머릿속 지도를 세계 모델(world model)이라 부른다.

세계 모델을 프로그램(코드)으로 적어 두면 좋은 점이 많다. 어떤 행동을 하면 상태가 어떻게 바뀌는지(상태 전이)와 목표 조건을 함수로 박아 두면, 앞일을 미리 돌려 보고 다음 수를 고르는 계획기(플래너)가 몇 번이고 빠르게 시뮬레이션할 수 있다. 사람이 코드를 열어 뜯어볼 수도 있다. 무엇보다, 예측과 실제 관찰이 어긋나면 그 불일치 자체가 "네 모델이 여기서 틀렸다"는 구체적 반례가 된다.

함정은 여기 있다. 지금까지 본 장면을 전부 맞히는 코드라고 해서, 아직 못 본 상황까지 옳게 맞힌다는 보장은 없다. 논문이 드는 예가 명쾌하다. 지금껏 관찰한 벽이 전부 7번 열에 있었다고 하자. 그러면 "상자는 벽에 부딪히면 멈춘다"는 규칙과 "상자는 7번 열에서 멈춘다"는 규칙은 지난 궤적을 똑같이 설명한다. 둘 다 과거와 아귀가 맞는다. 그러나 벽이 다른 자리에 나타나는 순간, 두 규칙은 전혀 다른 예측을 내놓는다. 이처럼 '같은 과거를 설명하지만 미래는 다르게 예측하는' 여러 규칙이 늘 함께 남는데, 이 후보 집합을 버전 공간(version space)이라 부른다. 과거에 한 행동을 그대로 다시 돌려 보는 재생 검사는 과거와 모순되는 규칙은 쳐낼 수 있어도, 과거와 맞아떨어지는 후보들 사이에서 '진짜 규칙'을 골라내지는 못한다. 그래서 에이전트에게 필요한 건 한 번의 정답 추측이 아니라, 새 증거가 들어올 때마다 가설을 계속 손보는 능력이다.

Memento 시리즈는 이 문제를 '모델 파라미터'가 아니라 '외부 메모리'를 학습 상태로 보는 관점에서 다뤄 왔다. 첫 Memento는 상호작용 결과를 메모리에 적고 꺼내 쓰는 에피소드 기억으로 지속 적응을 했고, Memento 2는 이를 "메모리에 쓰기 = 정책 평가, 메모리에서 읽기 = 정책 개선"으로 정리했다. Memento-Skills는 재사용 가능한 절차(스킬)로 학습 상태를 넓혔다. 다만 이들은 모두 '정책 쪽' — 어떤 결정·절차를 쓸지 — 을 개선했다. Memento 3가 손대는 건 그 반대편, 세상이 어떻게 굴러가는지를 규정하는 '모델 쪽'이다.

핵심 아이디어

중심 설계의 이름은 Code as Model이다. 역할을 둘로 쪼갠다. 자연어 규칙서는 '무엇을 믿는지(What)'를 적고, 실행 코드는 '그 믿음을 어떻게 계산하는지(How)'를 맡는다. 규칙서는 객체·행동·목표에 대한 지금의 가설을 사람이 읽을 수 있는 말로 드러내고, 코드는 그 가설을 한 치의 모호함 없는 계산으로 못 박는다.

이 중간 층(자연어 규칙서)이 Memento 3를 다른 '코드 세계 모델' 연구와 갈라놓는 지점이다. 상호작용에서 프로그램을 학습한다는 발상 자체는 이미 여럿 있었다. 하지만 대개 규칙을 코드 안에 녹여 버려서, 에이전트가 '무엇을 믿고 그렇게 짰는지'가 코드 뭉치 속에 숨는다. Memento 3는 그 가설을 코드 위로 끌어올려 눈에 보이게 만든다. 덕분에 앞서 말한 버전 공간 함정을 사람이 직접 읽고, 고치고, 반박할 수 있다.

학습은 짧은 순환으로 돈다. 행동을 실행해 새 관찰을 쌓고(관찰), 틀린 원인이 규칙 자체의 오류인지 아니면 규칙은 맞는데 코드가 잘못 구현한 탓인지 진단하고(반성), 필요하면 규칙서를 고친 뒤(수정) 그 규칙서를 길잡이 삼아 새 코드를 짓는다(컴파일).

고친 모델은 두 관문을 통과해야만 채택된다. 이 검증이 이 논문의 심장이다.

  • 규칙서 충실도. 코드가 규칙서에 적힌 말을 제대로 구현했는지를 LLM이 의미 수준에서 판정한다. 'What과 How가 어긋나지 않았는가'를 지키는 관문이다.
  • 정확 재생(replay). 지금까지 기록한 행동을 그대로 다시 돌렸을 때, 실제로 일어났던 다음 장면을 하나도 빠짐없이 똑같이 예측하는지 확인한다. 결과가 칼같이 통과·탈락으로 갈린다. 다만 이렇게 '칸 단위로 똑같이'를 요구하는 엄격한 형태는 상태가 격자 칸으로 또렷이 떨어지는 ARC 쪽 이야기다. 뒤에서 볼 Pong처럼 화면이 연속으로 움직이는 환경에서는 재생의 쓰임이 달라진다.

중요한 선 긋기가 하나 있다. 채택은 LLM의 자신감이나 순위로 정하지 않는다. 언어모델 순위에 기대어 고르면 정작 옳은 후보를 걸러내 버릴 수 있기 때문에, 결과가 눈에 보이는 곳에서는 실행 검사가 채택의 근거가 된다. 게다가 새 후보는 매번 '최근에 틀린 장면'이 아니라 '전체 기록'에 대해 검사한다. 어제 맞던 걸 오늘 설명하지 못하면 탈락이다.

재생을 통과하는 후보가 여럿 남을 수도 있다. 이때는 규칙서와 코드가 더 짧고 간결한 쪽을 고른다(최소 서술 길이 선호, 즉 군더더기 없는 설명을 믿는 쪽). 다만 이 선호가 불확실성을 없애 주지는 않는다. 한 가설에 성급히 올라타면, 정작 그 가설을 반증할 증거를 찾는 탐색에서 멀어질 수 있다.

그래서 논문은 같은 기록을 공유하는 여러 세계 모델(규칙서-코드 쌍)을 동시에 굴리는 '개체군(population)' 확장을 둔다. 마치 여러 가설이 한 시장에서 경쟁하듯, 새 관찰이 들어올 때마다 그 증거를 설명하지 못하는 모델은 도태되고 가장 현실을 잘 설명하는 모델이 살아남는다. 매 계획마다 한 모델을 뽑아 쓰되, 거기서 나온 새 관찰로는 모든 모델을 함께 검사한다. 서로 다른 모델이 탐색을 제각기 다른 방향으로 끌어 주면서도, 공유한 증거와는 모두 아귀가 맞는 구조다. 모델을 하나로 줄이면 단일 모델 설정으로 돌아간다.

이 전체 그림을 논문은 '재귀적 자기개선(RSI)으로 가는 모델 기반 경로'라 부른다. 규칙서와 코드는 '고쳐지는 대상'이면서 동시에 '다음 학습을 이끄는 도구'다. 둘이 다음 계획과 탐색을 이끌고, 거기서 모인 증거가 다음 수정의 재료가 된다. 그동안 바닥의 LLM은 고정돼 있다. 스스로 똑똑해지는 건 LLM이 아니라, LLM이 바깥에 쌓아 올린 세계 모델이다.

실험은 어떻게 설계됐나

주 무대는 ARC-AGI-3다. 에이전트는 낯선 게임의 규칙과 목표를, 사람 플레이에서 뽑아낸 행동 예산 안에서 추론해야 한다. 환경 소스도, 전이 규칙도, 자연어 과제 설명도 주어지지 않는다. 다만 목표를 달성했는지 여부는 환경이 알려 준다. 평가 설계에서 눈여겨볼 점은 '무엇을 예산으로 세는가'다. 실제로 실행한 행동만 — 탐색이든 실패한 시도든 — 예산에 들어가고, 머릿속 시뮬레이션·재생·모델 구성은 비용으로 치지 않는다. 잘했는지를 숫자 하나로 환산해 주는 보상 점수표(스칼라 보상 함수)도 따로 없다. 목표 집합과 행동당 비용이 "예산 안에 목표에 도달하라, 그것도 되도록 적은 행동으로"라는 목적을 그대로 정의한다.

지표는 두 가지가 나온다. 하나는 RHAE(Relative Human Action Efficiency), 사람 대비 행동 효율을 점수로 환산한 값이다. 상한은 100.0이다. 다른 하나는 사람이 쓴 행동 수 대비 비율로, "사람이 N번 움직여 깨는 걸 몇 %의 행동으로 깼나"를 직접 보여 준다. 둘은 비슷해 보여도 서로 다른 것을 잰다. 그러니 'RHAE 100.0'과 '행동 44%'는 더하거나 하나의 성과로 합쳐 읽을 수치가 아니다. 비교 기준으로는 ARC Prize가 제공하는 표준 하네스(에이전트를 환경에 붙여 돌리는 표준 실행 틀)에 상용 최상위 LLM을 얹은 에이전트가 쓰였다.

논문은 ARC 외에 Atari Pong 사례 연구도 둔다. 여기서 묻는 질문은 다르다. ARC가 '이산적 계획'을 본다면, Pong은 같은 학습 메커니즘이 공을 따라 라켓을 움직이는 연속적인 피드백 제어까지 받쳐 줄 수 있는지를 본다. 다만 Pong의 검증 방식은 ARC와 다르다. 화면이 연속으로 움직여 렌더링과 라켓 위치에 오차가 남기 때문에, ARC처럼 장면을 칸 단위로 똑같이 재현하는 통과·탈락 기준을 그대로 들이댈 수 없다. 그래서 §5의 Pong에서는 재생을 '모델이 어디서 어긋났나'를 짚는 진단으로 쓰고, 그렇게 고친 컨트롤러가 실제로 목표(득점)를 달성하는지 평가하는 과정을 함께 사용한다. 본문은 이 밖에 두 가지 '쪼개 보기' 실험을 둔다. 규칙서라는 중간 층이 정말 값을 하는지 보는 분리 실험(ablation)과, 가설을 하나만 들 때와 여럿 들 때가 얼마나 다른지 보는 개체군 실험이다. §4 표 3을 보면 규칙서의 값은 '과제를 깨느냐'가 아니라 '얼마나 효율적으로 깨느냐'에서 드러난다. 규칙서를 떼어 내도 세 게임 모두 RHAE는 상한인 100을 유지한다 — 성능이 무너지는 게 아니다. 대신 규칙서를 쓰면 행동 수가 677에서 617로(약 9% 감소), 에이전트 턴이 830에서 678로(약 18% 감소) 줄어, 같은 목표를 더 적은 손으로 달성한다. 개체군 실험(표 4)에서는 wa30 게임에서 가설을 여럿 두어 경쟁시키자 행동 수가 899에서 597로 줄었다. 또 이 외부 학습 상태(규칙서·코드·이력)를 git으로 관리하는 설계(Git memory)를 따로 둔다.

결과와 의미

단일 모델 에이전트는 ARC-AGI-3 공개 게임 25종의 모든 레벨을 통과했다. 평균 RHAE는 상한인 100.0에 닿았고, 같은 게임을 사람이 깨는 데 드는 행동 수의 44%만 썼다. 단순히 과제를 푼 것을 넘어, 사람보다 높은 효율로 더 짧은 경로를 찾았다는 뜻이다. 비교 기준(표준 하네스에 상용 최상위 LLM을 얹은 에이전트)보다 평균 RHAE가 더 높았다(정확한 차이값은 공개된 발췌본에서 확인되지 않아 수치로 적지 않는다).

Pong 사례는 성격이 다른 결과다. 학습으로 얻은 피드백 컨트롤러가 서로 다른 시작 상황의 세 에피소드에서 매번 21:0으로 이겼는데, 실행 중에는 LLM을 더 부르지 않았다. 일단 세계 모델이 코드로 굳고 나면, 그 코드는 매 수마다 비싼 추론 호출 없이 혼자 돈다. 느리고 비싼 LLM은 '모델을 만들고 고치는 단계'에만 쓰이고, 반복 실행은 값싸고 결정적인(같은 입력에는 늘 같은 결과를 내는) 코드가 맡는 구조다.

눈여겨볼 건 수치의 높이보다 그 수치에 이른 경로다. 학습의 산물이 블랙박스 가중치가 아니라, 사람이 읽고 감사할 수 있는 자연어 규칙서와 실행 코드로 남았다. 성능과 설명가능성을 맞바꾸지 않은 셈이다. 모델이 무엇을 새로 배웠는지가 추적 불가능한 숫자 더미가 아니라, 언제 왜 바뀌었는지 되짚을 수 있는 투명한 자산으로 남는다. 이는 AI가 똑똑해지는 과정을 '블랙박스 튜닝'에서 '사람이 읽고 감사할 수 있는 지식 공학'의 영역으로 옮겨 놓는다.

한계와 남은 질문

저자가 스스로 인정한 한계부터 보자. 정확 재생을 통과하는 가설이 여럿 남을 수 있고, 간결함 선호가 그 불확실성을 완전히 없애 주지는 못한다. 한 가설에 올라타면 그것을 반증할 탐색에서 멀어질 수 있다는 점도 논문이 직접 짚는다. 개체군 확장은 바로 이 위험을 눅이려는 장치다.

여기에 몇 가지를 더 보탠다. 전체 틀은 '결정적인'(같은 상태에서 같은 행동이면 늘 같은 결과가 나오는) 환경에 기대고 있다. 다만 검증 방식은 환경에 따라 갈린다 — '칸 단위 정확 재생'이라는 엄격한 통과·탈락 기준은 그중에서도 상태가 격자 칸으로 떨어지는 ARC 게임에 들어맞는 조건이고, 앞서 본 §5의 Pong처럼 화면이 연속으로 움직이는 환경에서는 렌더링·라켓 위치에 오차가 남아 그대로 적용되지 않는다(이때 재생은 '어디가 어긋났나'를 짚는 진단으로 쓰이고, 컨트롤러가 실제로 목표를 달성하는지 평가와 함께 판단한다). 또한 이 환경이 모든 상태를 또렷이 관찰할 수 있는 건 아니다 — 논문이 전제하는 건 시야 밖을 가려 일부만 보이는 부분 관찰 환경(결정적 POMDP)이고, §3.1에는 화면 밖 영역이 가려지는 사례(ls20)까지 명시돼 있다. 결정성만 지켜지면 부분 관찰이라도 같은 상태에서 같은 행동은 늘 같은 다음 장면으로 이어지므로, ARC 같은 격자 게임에서는 정확 재생이 성립한다. 반대로 환경이 무작위성을 품으면 "모든 전이를 똑같이 재현하라"는 통과·탈락 기준을 그대로 쓰기 어렵다. 또 ARC-AGI-3의 격자 게임과 Pong은 상태와 행동이 비교적 또렷하게 떨어지는 세계다. 규칙이 지저분하고 경계가 흐릿한 현실 업무로 옮길 때 규칙서가 얼마나 깔끔히 유지될지는 이 결과만으로 단정하기 어렵다. '공개 게임 25종'이라는 범위도 성과를 읽을 때 함께 기억할 조건이다. 실행 단계는 LLM을 부르지 않더라도 검증·수정 단계에서는 LLM 호출이 반복된다는 점 역시 대규모 적용에서 따져 볼 비용이다.

온틀 관점

Memento 3의 접근법은 온틀의 AI PM이 현실 문제를 푸는 방식에 중요한 시사점을 던진다. 온틀은 고객 프로젝트마다 AI PM(실사 페르소나)을 파견해 요청을 받고, 분석하고, 서비스로 만들어 내보낸다. 그 PM이 매일 부딪히는 일이 바로 '이 고객사의 업무 규칙이 실제로 어떻게 돌아가는가'를 알아내는 것이다.

이미 고친 한 조각 — 온틀의 기존 구현

온틀은 이 문제의 한 조각을 이미 겪고 고쳤다. PM 페르소나가 말로는 "처리했습니다"라고 해 놓고 실제 행동은 달랐던 '말·행동 불일치'다. 온틀은 이를 공통 액션 서비스와 서버 측 결정론적 실행으로 묶어 바로잡았다. PM이 선언한 '말'과 시스템이 실제로 돌린 '행동'이 어긋나면 커밋되지 않게 한 것이다. 이는 Memento 3의 규칙서 충실도 관문 — 코드가 규칙서에 적힌 말을 제대로 구현했는지 보는 검사 — 과 같은 결의 장치다.

이 연구에서 가져올 설계

여기서 한 걸음 더 나아가면, PM이 들고 다니는 '운영 규칙서'를 Memento 3처럼 증거로 검증하며 고쳐 가는 그림을 그릴 수 있다. 예를 들어 '반품 즉시 재고 복구'라는 초기 가설이 '검수 후 익일 반영'이라는 반례를 만나 규칙서가 수정되고, 과거 반품 로그 전체에 대한 정확 재생 검증을 통과해야만 새 규칙으로 채택되는 식이다. 당일 재고가 올라간 사례만 보고 "반품은 곧 즉시 복구"라고 단정하는 것은, 벽이 전부 7번 열에 있던 걸 보고 "상자는 7번 열에서 멈춘다"고 외우는 함정과 같다. 예측이 빗나간 지점 — 복구가 하루 늦게 찍힌 반품 한 건 — 이 바로 규칙서를 고칠 단서가 된다.

현실 적용에 필요한 추가 검증

다만 현실 업무는 게임 격자처럼 깨끗하지 않다. 반품 규칙에는 교환·부분반품·프로모션 환불 같은 예외가 얽히고, 같은 입력이 늘 같은 결과를 내지도 않는다. '칸 단위 완벽 재현'을 그대로 가져다 쓰기 어렵다는 뜻이다 — 이는 ARC의 엄격한 재생 조건이고, Pong만 해도 이미 재생을 진단으로 완화해 쓴다는 점을 떠올리면 현실 업무에서는 더 그렇다. 그래서 이 설계를 현실에 올리려면 몇 가지가 덧붙어야 한다. 재현이 어긋나는 지점을 실패가 아니라 '규칙서가 아직 모르는 예외'로 읽어 다음 수정의 좌표로 삼는 것, 경쟁하는 규칙 후보를 여럿 들고 다니다 거래 로그가 쌓일수록 살아남는 규칙만 남기는 것(개체군 발상), 불확실한 구간은 '확정'으로 밀어붙이지 않고 담당자에게 질문으로 돌리는 것이다. 확정된 규칙은 자연어라 담당자와 고객이 함께 열어 검토할 수 있고, 온틀이 고객 화면에서 작업 흐름을 git 그래프처럼 보여 주는 방식과도 자연스럽게 포개진다. 바닥 모델을 재학습하지 않고도 고객사별 이해가 쌓이고, 그 이해가 블랙박스가 아니라 감사 가능한 문서로 남는다.

실무자를 위한 체크리스트

적용할 프로젝트를 앞에 두고 스스로 물어볼 질문들이다.

  • 가정을 바깥에 꺼냈는가. 에이전트의 전제를 프롬프트나 가중치 속에 묻어 두지 말고, 사람이 읽고 고칠 수 있는 명시적 규칙서로 분리했는가. 숨은 가정은 반증할 수도 없다.
  • 자기 수정을 두 관문으로 걸렀는가. 의미 검증과 실행 재생을 독립 게이트로 두고, LLM의 자신감만으로 통과시키지 않았는가. 다만 재생을 '칸 단위 완벽 일치'로 들이댈지, Pong처럼 오차를 인정하고 진단+성능 평가로 완화할지는 환경의 성격에 맞춰 정하라.
  • 값싼 시뮬레이션을 먼저 돌리는가. 비싼 실제 조치 전에 코드로 충분히 돌려 보되, 모델을 만들고 고치는 학습 단계의 LLM 비용은 따로 계산에 넣어라.
  • 관찰 편향을 감시하는가. 데이터가 한쪽으로 쏠리면(벽이 늘 7번 열) 엉뚱한 규칙을 외운다. 반증 증거를 일부러 찾거나 경쟁 가설을 여럿 유지하라.
  • 불확실한 구간을 '확정'으로 넘기지 않는가. 애매하면 밀어붙이지 말고 사람에게 질문으로 돌려라.
  • 학습의 산물을 버전 관리하는가. 규칙서·코드·이력을 git에 남겨야 언제 왜 바뀌었는지 되짚고 되돌릴 수 있다.

자주 묻는 질문

규칙서가 점점 복잡해지기만 하면 결국 사람이 이해할 수 없게 되지 않나요?

충분히 나올 수 있는 걱정이다. Memento 3에는 이를 누르는 장치가 둘 있다. 재생을 통과하는 후보가 여럿이면 더 짧고 간결한 규칙서·코드를 고르는 간결함 선호가 군더더기가 쌓이는 걸 막고, 과거를 더는 설명하지 못하게 된 규칙은 재생 검사에서 탈락한다. 그래도 현실의 예외를 하나씩 끌어안으며 규칙이 길어지는 경향 자체가 사라지지는 않는다. 그나마의 안전판은 규칙서가 사람이 읽을 수 있는 자연어로 남는다는 점이다. 불어난 규칙서를 주기적으로 사람이 열어 정리할 수 있기 때문이다.

규칙서를 굳이 코드로 또 컴파일하는 이유가 뭔가요? 매 수마다 LLM에게 물으면 안 되나요?

매 수마다 LLM에게 물으면 느리고 비싸고, 같은 질문에도 답이 조금씩 흔들린다. 규칙서를 코드로 굳혀 두면 LLM 호출 없이 빠르고 일관되게 수없이 시뮬레이션할 수 있고, 예측과 관찰이 어긋나는 지점이 '어디를 고쳐야 하는지'를 콕 집어 준다. Pong 컨트롤러가 실행 중 LLM을 한 번도 더 부르지 않고 21:0을 세 번 반복한 것이 이 설계의 실익을 보여 준다.

ARC-AGI-3는 어떤 벤치마크인가요?

이 논문의 설명 범위에서는, 에이전트가 낯선 게임의 규칙과 목표를 사람 플레이에서 뽑아낸 행동 예산 안에서 스스로 알아내 풀어야 하는 상호작용 과제다. 환경 소스도 자연어 설명도 주지 않고 오직 상호작용만으로 규칙을 깨치게 하므로, 세계 모델을 스스로 세우는 능력을 재기에 맞는 무대다.

참고자료

  • 논문: Memento 3: Model-Based Recursive Self-Improvement through Reflective Rulebooks
  • 저자: Haoyu Zhao, Zhengxu Yu, Zhiyuan He, Meng Fang, Rasul Tutunov, Haitham Bou-Ammar, Weilin Luo, Jun Wang (University College London · Huawei Noah's Ark Lab, UK · University of Liverpool)
  • arXiv: https://arxiv.org/abs/2610.11794
  • HuggingFace: https://huggingface.co/papers/2610.11794