01 / 16
>  ←/→ navigate · P present · N notes · ESC overview · Cmd+P export PDF
OUROBOROS DEEPDIVE MCP MESH · DISPOSABLE MEMORY
CONTRACT-BASED AGENT OS

Ouroboros 딥다이브:
MCP Mesh
Disposable Memory

긴 워크플로는 한 번의 대화에 다 담기지 않는다. 뒤로 갈수록 답이 흐려지는 건 모델 탓이 아니라, 기억할 자리가 사라지기 때문이다.
Ouroboros repository QR code
Q00 · 이재규 Context exhaustion · problem framing
이재규 프로필 사진
20 min · 18 slides
context → contract.
OPENING PROBLEM01 / 16
OUROBOROS DEEPDIVE WHY HARNESS · BITTER LESSON

AI는 스케일로 이긴다. 그래도 ghost는 우리가 잡아야 한다.

SUTTON · BITTER LESSON

인간 지식 주입은 졌다

데이터·연산과 함께 커지는 방법이 이긴다. LLM은 그 승리.

KARPATHY · ANIMALS vs GHOSTS

LLM은 animal이 아니라 ghost다

인간 텍스트에서 소환된 압축물 — 강력하지만 인간 편향에 묶여 있다.

YES

스케일은 이긴다.

BUT

혼자 완결된 작업자는 아니다.

SO

harness가 ghost를 잡는다.

SCALE WINS · BUT WE STILL CONTROL THE GHOST02 / 16
OUROBOROS DEEPDIVE WHY HARNESS · CONTEXT LIMITS

ghost를 잡는 첫 시도는 context engineering이다. 여기엔 네 가지 한계가 있다.

01 / ATTENTION

긴 문맥은 기억이 아니다

많이 넣어도 끝까지 따르진 않는다. 중간은 lost in the middle.

02 / REASONING

추론도 예산이다

토큰 예산은 한정된다. 복잡한 작업은 그럴듯한 경로로 수렴.

03 / FORGETTING

지시는 보존되지 않는다

초반 지시는 최근 노이즈에 밀린다. 긴 세션의 기본값.

04 / NEXT-TOKEN

빈칸은 그럴듯하게 채워진다

"물어보기"보다 "채우기"를 고른다 — 환각의 본질.

CONTEXT ENGINEERING IS NECESSARY · NOT SUFFICIENT03 / 16
OUROBOROS DEEPDIVE PART 01
TRIGGER PROBLEM

context가 바닥나면
현재 세션은 혼자 계속하면 안 된다.

답변 품질이 아니라 운영 안정성 문제다.
CURRENT SESSION · CONTEXT BUDGET
STOP. single-session continuation is unsafe.

토큰보다 위험한 건, 무엇을 잊었는지 세션이 모른다는 것.

Seed와 AC는 남아 있다

일은 안 끝났다. 의존성은 살아 있다.

하지만 현재 세션은 오염됐다

결정·실패·평가가 한 대화에 섞였다.

그래서 다음 행동은 분리다

독립 세션으로 책임을 넘긴다.

EXHAUSTION IS THE TRIGGER04 / 16
OUROBOROS DEEPDIVE OPERATIONAL RESPONSE

더 긴 prompt 격리된 session으로 쪼개기

하나의 AC는 하나의 disposable context로 들어가고, 결과 이벤트만 돌려준다.
Main session Seed · goal · AC tree must stay clean split by contract isolated disposable contexts 각 AC는 자기 기억을 쓰고, 끝나면 사라진다 AC-1 session own prompt own scratchpad event AC-2 session own prompt own scratchpad event AC-4 session own prompt own scratchpad event process is consumed inside the child context · result crosses the boundary
SPLIT WORK INTO DISPOSABLE MEMORY05 / 16
OUROBOROS DEEPDIVE CONTRACT CONTINUITY

세션은 갈라져도, contract는 갈라지지 않는다.

자식의 context는 사라지고, contract 이벤트만 ledger로 돌아온다.
Contract spine Seed · AC tree · invariants contract_id stays fixed AC-1 child session private scratchpad consumed returns ResultEvent AC-2 child session private scratchpad consumed returns ResultEvent AC-4 child session private scratchpad consumed returns ResultEvent events only Harness ledger recombine by contract fields contract_id same ac_id/status updated artifact_ref attached next_edges scheduled Harness resumes same AC tree next level or final handoff continuity = contract ledger, not conversation transcript
RECOMBINE EVENTS, KEEP THE CONTRACT06 / 16
OUROBOROS DEEPDIVE PART 02

세션을 쪼갠 순간, 해법 하나가 의도치 않은 세 가지 결과를 만들었다.

What we intended

context를 아끼려고 세션을 분리했다

  • AC마다 격리된 자식 세션을 연다.
  • 과정은 자식 context 안에서 소비한다.
  • 메인은 contract 이벤트만 받고 깨끗하게 남는다.
What emerged

분리는 작은 구현이 아니라 구조 전환이었다

  • 도구가 LLM을 쓴다. MCP 내부 코드가 세션을 spawn하고 스케줄한다.
  • 메모리가 일회용이 된다. 자식 세션은 결과를 남기고 사라진다.
  • 실행 구조가 고정된다. 호출 순서와 이벤트 경계는 코드가 강제한다.
SPLIT SESSIONS → UNEXPECTED OUTCOMES07 / 16
OUROBOROS DEEPDIVE UNINTENDED OUTCOME 1/3

#1: 도구가 LLM을 쓰기 시작했다.

CAUSE

세션 분리는 실행 코드를 요구했다

MCP 안에 Python과 Claude SDK가 들어갔다.

OUTSIDE

밖에서는 도구 호출 하나

런타임은 ooo run을 부르고 기다린다.

INSIDE

안에서는 agent가 돈다

AC 파싱 · 의존성 · spawn · 이벤트 수집 · 다음 레벨.

PUNCHLINE 01

도구가 LLM을 쓴다

Skill은 inject. MCP는 execute.

SPLIT SESSIONS → TOOL BECAME AGENT08 / 16
OUROBOROS DEEPDIVE UNINTENDED OUTCOME 2/3

#2: 세션 분리를 구현하자, MCP가 hook을 대체했다.

WITHOUT MCP

Rule과 Skill은 부탁에 가깝다

Codex에는 hook이 없다. Rule은 제약 문장이고 Skill은 프롬프트 텍스트라서 “인터뷰 → Seed → AC → 실행” 순서를 끝까지 잠그지 못한다.

LLM이 피곤하거나 길을 잃으면 그 순서는 플라톤의 이상처럼 보일 뿐, 실행의 운명이 되지는 않는다.

WITH MCP

Python 경계가 순서를 잠근다

독립 세션을 열고 다시 합치려면 spawn, schedule, collect가 필요했고, 그 오케스트레이션이 MCP handler 안으로 들어갔다.

도구 호출 순간부터 인터뷰가 끝나야 Seed가 생기고, Seed가 있어야 AC가 분해되고, AC가 있어야 실행된다. 우회가 아니라 코드 경로다.

SPLIT SESSIONS → HOOK REPLACEMENT09 / 16
OUROBOROS DEEPDIVE UNEXPECTED

#3: 세션을 쪼개자 call structure가 고정됐다.

LLM 답변은 매번 흔들린다. 그래도 contract graph와 dependency edge는 같은 execution coordinate를 남긴다.
Split-session contract input
ROOT · Build feature
AC-1
scaffold
AC-2
schema
AC-3
depends on AC-2
AC-4
frontend
AC-5
depends on AC-3 + AC-4
세션마다 답은 달라져도, contract graph와 dependency edge는 같은 execution coordinate를 남긴다.
level
grouping
Deterministic call structure
LEVEL 0
AC-1
session
AC-2
session
AC-4
session
parallel
LEVEL 1
AC-2 done
AC-3
spawn
LEVEL 2
AC-3 done
AC-4 done
AC-5
spawn
#1 tool uses LLM · #2 MCP enforces sequence · #3 calls become fixed → horizontal Contract-based Agent OS
SPLIT SESSIONS → DETERMINISTIC CALL STRUCTURE → AGENT OS10 / 16
OUROBOROS DEEPDIVE WHAT WAS MISSING

더 좋은 Skill shared coordination layer

EVIDENCE 01

Runtime independence는 Skill 밖에서

Claude Code와 Codex가 같은 엔진을 호출. 차이는 prompt가 아니라 contract.

EVIDENCE 02

Hook replacement는 더 두꺼운 지시문이 아니었다

hook 없는 Codex도 순서를 얻는다. MCP handler가 잡았다.

EVIDENCE 03

Deterministic calls는 세션 사이에서 고정

답은 흔들려도 event boundary는 고정.

NOT

더 긴 vertical skill.

BUT

함께 따르는 shared coordination layer.

PROOF

4-매트릭스 E2E가 같은 contract 위에서 통과.

NOT BETTER SKILLS · SHARED COORDINATION LAYER11 / 16
OUROBOROS DEEPDIVE CONTRACT LAYER

Agent OS란 커널이 아니라, 런타임과 에이전트 사이의 Contract layer다.

Contract primitiveOuroboros binding실행 보장
InterfacesMCP tool schema · SubagentPayload · ResultEvent같은 entrypoint, 같은 result envelope.
State boundariescontract_id · ac_id · artifact_ref · child scratchpad자식 기억은 거기서 끝. ledger엔 contract 필드만.
Execution guaranteesCoordinator dependency graph · level scheduling · blocking/pollingLLM 해석이 아니라 코드가 순서를 잡는다.
Verification hooksAcceptance criteria · evaluator · qa-judge · pass/fail eventsverification event 통과해야 다음 궤도.
OS analogue: Coordinator=scheduler · AC session=process · event sourcing=message passing · MCP=IPC
INTERFACE · STATE BOUNDARY · EXECUTION GUARANTEE · VERIFICATION HOOK12 / 16
OUROBOROS DEEPDIVE MESH + DISPOSABLE MEMORY

MCP Mesh와 Disposable Memory가 horizontal Contract layer를 만든다.

runtime 내부의 프롬프트가 아니라, agent를 가로로 묶는 OS contract primitive다.
CONTRACT LAYER = MESHED IPC + DISPOSABLE PROCESSES13 / 16
OUROBOROS DEEPDIVE AXIS · ORTHOGONAL
VERTICAL VS HORIZONTAL

vertical fat-skill

horizontal contract OS

opposite가 아니라 orthogonal이다. fat-skill의 깊이를 부정하지 않는다. 다만 여러 runtime, 여러 session, 여러 harness가 같은 contract 위에서 공존하는 문제는 다른 축이다.
FAT SKILL THIN HARNESS = VERTICAL / CONTRACT OS = HORIZONTAL14 / 16
OUROBOROS DEEPDIVE TWO AXES

Ouroboros의 두 축: philosophy loopOS layer.

위는 일을 굳히는 흐름. 아래는 그걸 누가 어떻게 실행하는가.
PHILOSOPHY LOOP ABOVE · CONTRACT AND MEMORY KERNEL BELOW15 / 16
OUROBOROS DEEPDIVE END
FINAL · 다음 층

노트북을 닫고 자도 되는가?
그 질문의 다음 층
contract가 OS가 되는 순간이다.

Q00 · jqyu.lee@gmail.com Ouroboros · repository Q00/ouroboros
Skill은 context를 부르고, harness는 contract를 지킨다.
도구가 LLM을 쓴다 (The tool is using the LLM). Mesh가 호출을 묶고 Memory가 소멸한다.
Ouroboros = Contract-based Agent OS.
FINAL POSITIONING · CONTRACT-BASED AGENT OS16 / 16