AI에게 긴 일을 맡기면 중간에 계획을 잊어버린다. 대화가 길어지면 오래된 내용부터 지워지기 때문이다. 이 글은 그 문제를 다룬다. 출발점은 Fable Week 2일차 기록에 독자가 남긴 질문이다. Fable Week는 당시 가장 강한 AI 모델 Fable 5를 쓸 수 있는 마지막 일주일을 기록한 연재다. 질문은 이랬다. "State와 Document가 어떻게 다른지, 일반 비즈니스 유저들도 시식을 좀 하면 도움이 될 것 같습니다." 그래서 이 글은 개발 용어를 최대한 쉬운 말로 풀어 쓴다. 계획을 대화창에 적어 주는 방식이 문서(document)다. 계획을 파일에 박아 두는 방식이 상태(state)다. 실제로 계획을 상태로 두자 1년 로드맵 60단계가 하루 만에 완주됐다. 대화창을 닫으면 백지가 되는 흔한 AI와 어제 하던 일을 오늘 이어서 하는 AI가 어떻게 다른지도 본다. 그 차이가 작업 방식과 결과에 미치는 영향, 그리고 기억(memory-bank)이 맥락 학습에 끼치는 영향까지 다룬다. memory-bank는 지난 대화를 자동으로 기록해 두었다가 다음 대화에 다시 넣어 주는 기억 저장소 플러그인이다. 전부 실제로 돌아간 사례의 숫자와 함께 본다. 마지막은 오늘 바로 해볼 수 있는 시식 3가지로 끝낸다.
← 출발점 · 1년 로드맵 60단계, 한 세션(대화 한 판)에 완주결론부터 말하면, 같은 계획도 어디에 두느냐에 따라 완주 여부가 갈린다. 신입 직원에게 일을 맡기는 두 가지 방법을 떠올려 보자. 하나는 30장짜리 업무 매뉴얼을 주는 것이다. 다른 하나는 결재 없이는 다음 줄로 못 넘어가는 체크리스트를 주는 것이다. 매뉴얼은 읽히고, 요약되고, 잊힌다. 체크리스트는 다르다. "지금 어디까지 왔는지"가 종이에 박혀 있어서 잊을 방법이 없다. AI에게 일을 시킬 때도 똑같은 일이 벌어진다. AI가 붙잡고 있는 기억은 지금 열려 있는 대화창의 내용뿐이다. 이 대화창 내용을 '컨텍스트(context)'라고 부른다. 그런데 그 대화창은 금세 지워지는 임시 기억이다. 대화가 길어지면 오래된 내용부터 자동으로 요약되고 압축되며 사라진다. 계획을 대화 안에만 적어 두면, 즉 계획이 '문서(document)'이면 계획도 대화와 함께 사라진다. 대신 계획을 파일로 남는 '상태(state)'로 두면 대화가 끊겨도 매번 다시 읽힌다. 건너뛸 수도 없다.
이 차이를 실제로 재 봤다. Fable Week 2일차에 1년짜리 로드맵을 AI에게 통째로 맡겼다. 4개 분기에 각 3개 중간 목표, 모두 60개 작업 단계짜리 계획이다. 계획은 대화에 적어 주지 않았다. 대신 상태 파일 하나(state.json)에 전부 담았다. 지금 어느 단계까지 왔는지를 적어 두는 파일이다. 파일 안에서 각 단계는 달력 날짜 대신 번호로 불린다. 뜻은 1번부터 60번까지 순서대로 밟는 작업 단계(D1 … D17, D18 … D60)다. 뒤에 나오는 17단계·18단계도 이 번호를 말한다. 각 단계는 검증 관문을 지나야만 "완료"로 넘어갔다. 검증 관문이란 끝났다는 증거가 있어야만 열리는 문이다. 결과는 이렇다. 16시간 13분에 60단계 전부 완주(60/60), 코드를 저장한 기록(커밋) 62건, 그리고 코드를 올릴 때마다 다른 회사의 AI가 잘못을 찾아내는 적대 리뷰 131회다. 측정하지 못한 지표는 완료로 치지 않고 '측정 못 함'으로 남겼다. 그 덕에 가짜 성공 0건이었다(파일에서 '측정 못 함'의 표기는 NA).
| 질문 | 문서(document)로 관리했다면 | 상태(state)로 관리했으니 |
|---|---|---|
| 지금 어디까지 왔나? | "17단계쯤 진행 중인 것 같습니다". 대화를 뒤져서 추측한다 | 상태 파일에 "17단계 · 진행 중"이라 적혀 있다. 열어 보면 끝난다 |
| 이 단계는 끝났나? | AI가 "완료했습니다"라고 말하면 믿는 수밖에 없다 | 검증 관문이 증거를 확인해야만 "완료"가 된다. 말로는 못 넘어간다 |
| 대화가 끊기면? | 새 창에서 처음부터 다시 설명한다 | 상태 파일을 읽고 18단계부터 이어서 시작한다 |
| 측정 못 한 지표는? | "대체로 잘 됐습니다"에 섞여 사라진다 | "측정 못 함"으로 따로 적힌다. 성공으로 위장되지 않는다 |
대부분의 사람이 경험한 AI는 무상태 에이전트(stateless agent)다. 에이전트란 사람 대신 일을 맡아 처리하는 AI 프로그램이다. 무상태란 지난 대화를 아무것도 들고 있지 않다는 뜻이다. 챗봇 창을 닫으면 백지가 되고, 어제 함께 정한 결정을 오늘 모른다. 그래서 매번 처음부터 설명하게 되고, "AI는 금붕어 기억력"이라는 인상이 남는다. 유상태 에이전트(stateful agent)는 세 가지를 대화 밖에 둔다. ① 상태(state)는 지금 무엇을 하는 중인지 적어 둔 것이다. ② 게이트(gate — 통과 조건을 못 채우면 막아 세우는 검문)는 끝났는지를 말로 듣지 않고 시스템이 증거로 판정하는 관문이다. 앞에서 검증 관문이라 부른 것이 바로 이것이다. ③ 기억(memory)은 과거의 결정과 실수다. 이 세 개가 대화 밖 파일로 존재하는 순간, AI는 "매번 새로 만나는 상담원"에서 "어제 일을 이어서 하는 동료"로 바뀐다.
| 항목 | 무상태 (흔한 챗봇) | 유상태 (이어 일하는 AI) |
|---|---|---|
| 기억 | 창을 닫으면 사라진다 | 파일이나 데이터베이스로 대화 밖에 계속 남는다 |
| 진행 상황 | 사람이 기억하고 다시 설명한다 | 상태 파일이 기억한다. "지금 17단계"라고 적혀 있다 |
| 완료 판정 | AI의 "완료했습니다" (자기 신고) | 관문이 증거를 확인한 뒤 승인한다 (시스템이 판정) |
| 중단 후 재시작 | 처음부터 다시 한다 | 끊긴 지점부터 이어 간다 |
이 차이는 취향 문제로 끝나지 않는다. 작업 방식과 결과를 바꾼다. 무상태 AI에서는 사람이 맥락 운반자가 된다. 매번 배경을 다시 설명하고, 중간 결과를 머리로 외운다. 일도 "질문 한 개" 크기로 잘게 잘라 맡길 수밖에 없다. 유상태 AI에서는 사람의 역할이 방향 결정과 예외 승인으로 올라간다. 일은 질문 하나 단위를 넘어 프로젝트 통째로 맡길 수 있다. 결과의 성격도 갈린다. 한쪽은 AI가 스스로 "다 했다"고 신고하는 완료이고, 다른 쪽은 검증 관문의 증거로 확인된 완료다. 분량도 갈린다. 한쪽은 대화 한 판이고, 다른 쪽은 하루에 8개 프로젝트(레포, 코드 저장소)에 261건을 저장한 실측이다. 계정 8개를 동시에 굴린 결과다.
| 영향 범위 | stateless agent | stateful agent |
|---|---|---|
| 일을 맡기는 단위 (작업 방식) | 질문 한 개. 그 자리에서 답을 받을 크기로 잘라야 한다 | 프로젝트 단위. 1년 로드맵 60단계도 통째로 맡긴다 |
| 사람의 역할 (작업 방식) | 맥락 운반자. 배경 설명·중간 기억·결과 대조를 사람이 한다 | 방향 결정자. 예외 승인과 최종 판단만 한다 |
| 확장 방식 (작업 방식) | 사람의 대화 시간만큼만. 동시에 여럿을 못 돌린다 | 세션을 늘리면 된다. 계정 8개 동시 실행과 야간 무인 실행을 실측했다 |
| 완료의 근거 (결과) | "완료했습니다"라는 자기 신고. 거짓 완료가 섞인다 | 관문 통과 증거. 가짜 성공 0건(못 잰 건 '측정 못 함'으로 표기) |
| 산출 규모 (결과) | 한 번의 대화 안에서 가능한 만큼 | 하루 261커밋 · 8레포. 60단계 완주 포함 (전량 감사) |
| 품질의 시간 추이 (결과) | 오늘 잘돼도 내일 리셋된다. 그날의 운에 좌우된다 | 실수가 규칙이 되어 누적으로 좋아진다 (§4 기억 루프) |
상태(state)가 "지금 어디까지"라면, 기억(memory)은 "우리가 무엇을 배웠나"다. 이 시스템에서 그 역할을 맡은 실물은 memory-bank라는 기억 저장소다. 내가 만들어 쓰는 플러그인으로, 모든 세션의 대화를 자동으로 기록해 둔다. 그리고 대화 속 결정·취향·반복 패턴을 '사실(fact)' 단위로 자동 추출해 둔다. 새 세션이 시작될 때는 관련된 내용을 다시 꺼내 맥락으로 넣어 준다. 여기에, 실수를 바로잡은 기록에서 규칙을 자동으로 뽑아내는 장치가 얹힌다. 같은 문제가 2번 이상 반복되면 규칙으로 굳는다. 다음 세션부터는 그 규칙이 강제된다. 회사로 치면 업무 노하우가 사람 머릿속 대신 매뉴얼에 자동으로 쌓이는 것과 같다. 다만 기억은 만능이 아니다. 부작용도 실측으로 확인했고, 그대로 공개한다.
memory-bank가 실제로 바꾸는 것 3가지. 켜져 있을 때와 없을 때, 세션의 출발선이 이렇게 달라진다. 아래 번호의 M은 기억(memory)의 머리글자다.
M1M2M3부작용 3가지 — 기억을 켜기 전에 알아야 할 것. 전부 memory-bank(기억 저장소)를 굴리며 실제로 겪고, 막는 장치를 세운 항목이다. 아래 번호의 P는 부작용 항목이라는 표시다.
P1P2P3질문에 나온 표현을 빌리면 "시식"이다. 코딩 없이, 지금 쓰는 챗봇(ChatGPT·Claude·Gemini 무엇이든)으로 상태(state)·유상태(stateful)·기억(memory)의 차이를 각각 5분 안에 체험하는 방법이다.