3줄 요약
- Impossible Research가 2026년 7월 공개한 Schema는 새 모델이 아니라 에이전트 하니스다. 모델 가중치는 손대지 않고, 프론티어 모델을 쓰는 방식만 바꿔 규칙을 알려주지 않는 게임 벤치마크 ARC-AGI-3의 Public set에서 자가보고 최고 점수를 냈다.
- 핵심 장치는 하나다 — 에이전트가 게임의 세계 모델을 벡터가 아니라 실행 가능한
step()프로그램으로 짓게 강제하고, 그 프로그램을 지금까지 기록된 모든 상호작용에 대해 재생·검증한 다음, 검증된 프로그램 안에서 계획을 탐색한다. - 같은 Opus 4.8 + Fable 5 페어링을 두고 하니스만 바꿨을 때 범용 하니스(Claude Code) 42.83% → Schema 98.98%로, 하니스 하나가 56.15%p를 만들었다. 단, 두 점수 모두 Public set 자가보고이며 ARC Prize의 독립 검증은 받지 않았다.
ARC-AGI-3: 규칙을 알려주지 않는 게임
ARC-AGI-3는 에이전트에게 게임 환경을 주되, 그것이 무엇인지 설명하지 않는다. 매 스텝 에이전트는 16색 인덱스로 이뤄진 64×64 그리드와 몇 개의 합법 액션만 받는다. 객체 목록도, 규칙표도, 명시된 목표도, 정형화된 보상도 없다. 앞으로 나아가는 길은 하나뿐이다 — 물리학자의 방식. 모델이 아직 잠정적인 상태에서 행동하면서, 그리드가 무엇을 뜻하는지·액션이 그것을 어떻게 바꾸는지·무엇이 성공인지 가설을 세우고, 관측이 쌓일 때마다 모델과 계획을 함께 고쳐 나가야 한다.
공식 지표는 RHAE(Relative Human Action Efficiency)다. 완료한 레벨마다 에이전트의 액션 수를 첫 노출 사람 baseline과 비교하고, 환경 전체로 집계한다. 100%는 모든 환경의 모든 레벨을 사람 baseline 이상의 액션 효율로 클리어했다는 뜻이다.
이 벤치마크는 프론티어 모델에게 유난히 어려웠다. Semi-private set에서 검증된 프론티어 성능은 3월 런칭 시 0.51%(Opus 4.6 Max)에서 7월 7.78%(GPT-5.6 Sol max)로 올라온 정도였다. 같은 Sol max가 Public set에서는 13.33%를 기록했지만, 사람 기준선과는 여전히 거리가 멀다.

이 그림 하나가 발표문의 요지를 압축한다. 아래쪽에 깔린 검증된 프론티어 점들과, “Human 100%” 점선 바로 아래에 찍힌 마젠타색 Schema 점 두 개(98.98 / 95.35)의 거리가 곧 이 글의 주장이다.
Schema는 물리학자처럼 생각한다
물리학자는 법칙을 쓰기 전에 먼저 무엇에 대한 법칙인가를 정해야 한다. 관측의 어느 부분이 객체이고, 어떤 속성이 상태를 정의하는가. 그다음에야 그 상태가 어떻게 변하는지 물을 수 있다. Schema는 이 질문을 두 문제로 정식화한다.
- State grounding(상태 접지) — 날것의 관측을 추적 가능한 객체·변수·관계로 바꾼다. 어느 픽셀이 플레이어이고 벽이고 카운터인지 정한다.
- Mechanism discovery(메커니즘 발견) — 그 상태가 액션에 따라 어떻게 변하는지 찾아내고, 그 규칙을 실행 가능한 프로그램으로 쓴다.
Schema는 두 문제가 따로 풀릴 수 없다고 본다. 그럴듯해 보이던 상태 표현도, 이후 실험 결과를 일관되게 설명하는 전이 규칙을 찾을 수 없으면 부적절한 것으로 드러난다. 그래서 Schema는 상태 표현과 전이 규칙을 같은 편집 가능한 프로그램 안에 함께 넣는다. 예측이 어긋나면 에이전트는 규칙을 고칠 수도, 표현 자체를 갈아엎을 수도 있다.
발표문은 이를 특수상대성이론의 탄생에 비유한다. 마이컬슨-몰리 실험이 빛이 진동한다던 매질을 검출하지 못했을 때, 로런츠는 에테르를 유지한 채 수축 가설로 규칙만 기웠고, 아인슈타인은 에테르를 상태에서 버리고 동시성을 관측자에 상대적인 것으로 만들었다. 예측이 끈질기게 실패하면 물리학자는 법칙만 조정하지 않는다. 상태가 무엇인지를 바꾼다.
핵심 아이디어: 잠재 세계는 벡터가 아니라 프로그램
Schema의 세계 표현은 프로그램이다. 그래서 세 가지 성질을 얻는다.
- 해석 가능(interpretable) — 읽고 diff할 수 있는 텍스트 파일이다.
- 검증 가능(verifiable) — 기록된 현실에 믿음 단위로 재생해 볼 수 있다.
- 탐색 가능(searchable) — 프로그램은 곧 시뮬레이터라, 그 안에서의 계획 탐색은 공짜다.
바깥 루프: observe → deliberate → execute → record
에이전트는 게임을 상대로 네 단계 사이클을 돈다.
| 단계 | 하는 일 |
|---|---|
| observe | 날것의 그리드(픽셀). 그 안의 모든 객체는 에이전트가 발명한 것이다. |
| deliberate | 열린 추론 에피소드. 커밋할 액션 큐가 정해질 때만 끝난다. |
| execute | 큐를 실행하되, 매 스텝 세계 모델의 예측과 자가 대조한다. |
| record | 실제로 일어난 모든 전이를 Timeline에 덧붙인다(append-only). |
record는 시스템의 불변 상호작용 이력이다. 에이전트는 가설과 작업 노트는 고칠 수 있어도, 자기가 받은 관측과 취한 액션은 바꿀 수 없다. 그 위에서 Schema는 모델에 세 가지 제약을 강제한다.
- 현재 세계 모델을 실행 가능한
step()프로그램으로 인코딩한다. - 그 프로그램을 계획에 쓰기 전에, 기록된 모든 전이에 대해
run_backtest로 검증한다. - 액션은 오직
commit_actions로만 내보내고, 예측이 하나라도 어긋나면 남은 계획을 즉시 버린다.
run_backtest, run_bfs, notes.md 갱신은 환경을 건드리지 않는다. 오직 commit_actions만이 게임에 액션을 보내, 내부 모델링·탐색과 외부 상호작용을 분리한다. 여기서 나오는 두 가지 태도가 효율의 근원이다.
- 발견을 위한 행동 — 여러 후보 규칙이 이력과 일관될 때, 에이전트는 그것들이 서로 다른 결과를 예측하는 실험 하나를 골라 실행한다. RHAE가 초과 액션에 제곱 페널티를 매기므로, 가장 적은 실제 상호작용으로 가장 많은 불확실성을 없애는 실험이 곧 최선의 실험이다.
- 현실이 모델보다 위 — 실행 중 실제 전이가 예측과 하나라도 어긋나면 현재 계획의 실행을 멈춘다. 에이전트는 그 반례를 들고 숙고로 돌아가, 모델을 고친 뒤에야 계획을 재개한다.
- 계획은 모델 안으로 —
step()이 기록된 모든 전이를 재현하게 되면, 에이전트는 환경 액션을 한 번도 더 쓰지 않고 모델 안에서 해를 탐색한다. 실제로 게임에 실행되는 것은 그 결과 계획뿐이다.
숫자가 말하는 것
RHAE의 레벨별 점수는 이렇게 정의된다. 완료한 레벨 i에서 사람 baseline 액션이 $h_i$, 에이전트 액션이 $a_i$일 때:
게임 점수는 레벨 번호(1부터 n)를 가중치로 한 레벨 점수의 가중 평균이고, 모든 레벨을 클리어하지 못하면 완료 상한(completion cap)이 100%를 막는다. 벤치마크 점수는 게임 점수들의 평균이다. 탐색용 액션을 포함한 모든 환경 액션이 합산에 들어가고, 효율 비율이 제곱되므로 액션이 늘수록 점수는 가파르게 떨어진다. 즉 98.98%는 “푼 게임의 비율"이 아니라 완료와 액션 효율을 합친 집계값이다.
통제 비교 — 같은 페어링, 다른 하니스. 발표문에서 가장 깨끗한 수치는 Claude 행이다. Opus 4.8과 Fable 5 페어링을 고정하고 하니스만 바꿨다.
| 하니스 (동일 Opus 4.8 + Fable 5) | RHAE (Public) |
|---|---|
| Claude Code 최종 스크래치 스냅샷 (baseline) | 42.83% |
| Schema | 98.98% |
| 차이 | +56.15%p |
Claude Code는 파일 조작과 긴 컨텍스트 관리에 강한 범용 하니스이고, 원리상 Schema의 워크플로를 흉내 낼 수도 있다. 하지만 강제하지는 않는다. 범용 하니스 아래에서 모델은 게임에 직접 행동하고 자기 믿음을 컨텍스트 안에 암묵적으로 둘 수 있다. Schema는 위 세 제약을 강제한다. 그래서 이 비교는 모델 능력의 차이가 아니라 프로세스의 차이를 분리해 낸다.

GPT-5.6 Sol 페어링(xhigh 먼저, 80점 미만 게임만 max로 재실행)으로는 95.35%에 닿았다. 다만 이쪽은 짝을 맞춘 하니스 비교가 아니다. 가장 가까운 공식 레퍼런스인 Sol max의 Public 13.33%는 서로 다른 하니스라, 차트에 보이는 82%p 격차는 맥락상 수치일 뿐 Schema가 만든 이득의 통제된 추정치가 아니다.
검증 상태. 98.98%와 95.35%는 이 발표와 함께 공개된 실행 아티팩트로 계산한 Public set 자가보고 결과다. 두 점수 모두 ARC Prize의 독립 검증은 받지 않았다. 모든 Schema 수치는 25개 공개 게임에서 측정됐고, Public 98.98%가 Semi-private에서 무엇으로 매핑될지는 측정 전까지 알 수 없다.
공개된 트래젝토리 — 직접 검증할 수 있다
이 발표에서 눈여겨볼 점은, 점수가 재현 가능한 형태로 함께 공개됐다는 것이다. HuggingFace 데이터셋 arc-agi-3-schema-traces에는 게임플레이 트래젝토리 50개(GPT-5.6 Sol 25개 + Claude Opus 4.8·Fable 5 25개)와, 의존성 없는 채점 스크립트 score_trajectories.py가 들어 있다. 각 트래젝토리 디렉토리에는 run.json, 스트리밍 이벤트 로그 events.jsonl, sanitized 세션 데이터, 스냅샷, 실행 중 만들어진 공유용 파일이 담긴다. 발표문의 케이스 스터디가 events.jsonl:3144처럼 줄 오프셋으로 특정 이벤트를 지목하는데, 그 정본이 바로 이 로그다.
채점기는 표준 라이브러리만 쓴다. 50개 events.jsonl을 모두 스트리밍해 레벨별 액션 수를 재구성하고 RHAE를 다시 계산한 뒤, 매니페스트 CSV와 대조한다. 로그가 손상됐거나, 액션 시퀀스가 불연속이거나, 재계산 결과가 매니페스트와 다르면 비정상 종료한다. 채점기를 돌리면 다음이 재현된다.
| Collection | Trajectories | Wins | Levels | Mean RHAE |
|---|---|---|---|---|
gpt_5_6_sol | 25 | 24 | 182/183 | 95.35% |
claude_fable_opus | 25 | 25 | 183/183 | 98.98% |
Dataset Viewer가 노출하는 50행 매니페스트에는 게임 코드·모델·effort·상태와 함께 레벨별 액션 수(level0~level9)가 전부 실려 있다. 나는 이 매니페스트를 발표문의 케이스 주장과 대조해 봤는데, 서로 어긋나지 않는다. M0R0 레벨 4는 매니페스트에서 42액션, RE86 레벨 7은 110액션으로, 본문이 사람 baseline(각각 500, 424)과 비교하며 든 숫자와 정확히 맞는다. Fable의 SB26 레벨별 증가분 9/15/15/15/17/19/17/28은 합이 135로, 본문이 말한 “135액션"과 일치한다. GPT 쪽 유일한 미완(24승)도 매니페스트에서 ka59 max 행이 홀로 stopped 상태(RHAE 65.34)로 잡혀, 182/183 레벨이라는 요약과 들어맞는다.
케이스 스터디 — 무엇이 액션을 아꼈나
발표문은 두 묶음의 관찰을 케이스로 든다.
관찰 1: 유도된 세계 프로그램이 액션을 효율적으로 만든다. 에이전트가 기록된 이력을 정확히 재현하는 프로그램 세계 모델을 유도해 낸 게임(25개 중 14개)에서, 사람 기준선보다 1.6~5.0배 적은 액션을 썼다. 이유는 액션을 쓰는 위치가 바뀌기 때문이다. 메커니즘을 발견할 때 실제 액션을 한 번 지불하고, 그다음부터는 시행착오로 재발견하는 대신 모델 안에서 공짜로 계획한다.
- RE86 (Opus 4.8) —
run_backtest가 393개 기록 전이를 전부(393/393) 정확히 재현하자, 검증된 모델이 61액션 계획 하나로 한 레벨을 시행착오 없이 클리어했다. 실행된 61액션 모두 오예측 0. 사람의 최악 레벨(L7)에서 마진이 정점을 찍는다 — 110 대 424. - KA59 (Opus 4.8) — 완전히 다른 방향 시퀀스를 가진 두 번의 온전한 런이 똑같은 비용 패턴(+1,+0,+1,+1,+0)을 낳는 것을 정확히 대조해, 우연히 맞아떨어졌던 “에피사이클” 규칙을 폐기했다. 두 런 전체를 정확히 붙들어야만 가능한 반증이다.
- M0R0 (Opus 4.8) — 검증된 모델 안에서 BFS가 3,300노드를 펼쳐 19스텝 해를 찾았다. 사람이 500액션을 쓰며 정체한 레벨을 에이전트는 42액션에 끝냈다. 탐색 비용은 레벨이 “어렵게 느껴지는” 정도에 비례하지 않는다.
| 게임·레벨 | 사람 baseline | 에이전트 |
|---|---|---|
| M0R0 L4 | 500 | 42 |
| RE86 L7 | 424 | 110 |
관찰 2: Fable은 더 나은 실험 결정으로 올바른 세계 모델에 닿는다. 같은 실행 하니스 아래에서 Opus 4.8과 Fable 5를 두 모델이 함께 시도한 게임으로 비교하면, Fable이 더 높은 RHAE를 낸다. 예측이 실패한 뒤 Fable은 더 자주 표현 자체를 의심하고, 경쟁 가설을 가르는 실험을 골라, 그 관측을 재사용 가능한 전이 규칙(코드)으로 바로 옮긴다. Opus도 대개 같은 메커니즘에 결국 도달하지만, 기존 표현 안에서 더 많은 액션을 쓴 뒤다.
- DC22 — Opus는 이동과 세 토글의 상세 모델을 세운 뒤 BFS로 도달 가능 상태를 전부 소진하고 목표가 불가능하다고 (정확히) 결론지었다. Fable은 모델 그래프에 없던 전이(쌍을 이룬 영역의 셀 단위 내용 교환)를 노출해 새 경로를 열었다(Fable 6/6 레벨 · Opus 2/6).
- LF52 — 둘 다 페그 솔리테어와 궤도 위 카트를 알아봤지만, 두 메커니즘이 어떻게 합성되는지가 관건이었다. Fable은 카트를 정확한 도킹 좌표로 몰아 그 순간을 관측 지점으로 삼았다(Fable 10/10 · Opus 4/10).
- SB26 — 둘 다 DFS 유사 규칙을 발견하고 8레벨을 모두 풀었지만, Fable은 이후 레벨 변주를 흡수하는 재사용 가능한 코드 추상을 유지해 135액션에 끝냈다. Opus는 같은 첫 아이디어에서 출발하고도 456액션이 들었다.
정리하면, 실행 하니스는 이론을 쓰는 비용을 줄이고(지속·검증·탐색 가능하게), 바탕 모델은 쓸 만한 이론을 발견하는 비용을 정한다. 탐색은 그것이 도는 세계 모델에 대해서만 완전하다 — 올바른 표현을 관측이 가려 주지 못하면, 같은 기계가 틀린 모델을 검증하고 남김없이 탐색할 수도 있다.
가장 눈여겨본 대목
내가 곱씹은 것은 KA59의 “에피사이클” 반증이다. 사람 플레이어는 게슈탈트에 기댄다. 두 번의 서로 다른 런이 같은 비용 패턴을 냈다는 사실을 사람은 좀처럼 정확히 붙들지 못한다. 그런데 에이전트는 두 런 전체를 정확히 대조해, 그럴듯하게 맞아 보이던 규칙을 우연의 일치로 지목하고 폐기했다. 이건 성능의 우열 이전에 인지 양식의 차이다. append-only 이력과 backtest가 있으면, “왠지 맞는 것 같다"가 아니라 “393개 전이 전부에 대해 맞는다"라는 문장이 판단의 단위가 된다.
또 하나는 발표의 태도다. 저자들은 98.98%를 돌파가 아니라 궤적의 연속으로 규정하고, Public set 한정 측정임을 스스로 반복해 밝힌 뒤, 채점 코드와 50개 트래젝토리를 통째로 공개했다. 자가보고라는 한계를 감추는 대신, 누구나 재현해 반박할 수 있는 형태로 내놓은 것이다. 포화된 ARC-3를 이들은 “새로운 시작"으로 읽는다 — 64×64 그리드보다 훨씬 풍부한 환경에서, 행동과 지각의 루프로 세계의 인과 구조를 접지하는 메커니즘 발견 자체를 일반 능력으로 삼겠다는 방향이다.
출처
Schema: Frontier Models with the Right Harness Achieve ~99% on ARC-AGI-3 Public — Impossible Research (Zeng Guanning 외), 2026년 7월. 원문: https://schema-harness.github.io/ 트래젝토리·채점기: https://huggingface.co/datasets/schema-harness/arc-agi-3-schema-traces
인용 그림은 원문 페이지에서 갈무리했다. 본문의 나머지 삽화(제어 루프 애니메이션, 게임별 트레이스 재생)는 페이지 안에서 상호작용으로만 재생되는 형태라 옮기지 않았다.
