AI 에이전트의 문제는 메모리가 아니라 상태 무결성이라고 생각합니다.
I don’t think AI agents have a memory problem. I think they have a state-integrity problem.
핵심 요약
AI 에이전트의 기억 오류를 해결하기 위해 단순한 사실 저장이 아닌 상태 변화와 근거를 명시적으로 관리하는 '상태 원장' 개념을 제안합니다.
- 상태 무결성 — 과거의 사실이 현재는 거짓일 수 있는 문제를 해결함
- 상태 원장 — 관찰, 해석, 가설, 실험, 결과로 이어지는 상태 변화를 기록함
- 근거 추적 — 정보의 출처와 유효성을 명시하여 추론의 오류를 방지함
- 상태 관리 — 기존 결정을 삭제하지 않고 이력으로 보존하여 현재 상태와 구분함
오랫동안 돌아가는 모델 독립형 AI 시스템을 만들고 있는데, 처음엔 메모리 문제인 줄 알았던 오류가 계속 터지더라.
근데 아니었음.
시스템은 몇 주 전에 일어난 일도 제대로 기억하고 있었거든.
문제는 그 기억한 내용이 더 이상 사실이 아니라는 점이었음.
실제로 겪었던 오류 상황을 간단하게 정리해 봄:
이전:
"아키텍처 X를 사용해."
나중:
"아키텍처 변경함. 이제 Y를 써."
한참 뒤:
에이전트가 검색함:
"아키텍처 X를 사용해."
검색 자체는 아무 문제 없었음.
옛날 정보도 사실은 사실이니까.
그냥 현재는 틀렸고 과거에만 맞았던 정보였을 뿐임.
그래서 지금은 이 차이를 구분하는 실험을 하는 중:
MEMORY (기억)
= 일어났던 일
STATE (상태)
= 현재 사실이라고 믿는 것
PROVENANCE (출처)
= 왜 그걸 사실이라고 믿는지에 대한 근거
그래서 기억을 단순히 사실들의 모음으로 취급하는 대신, 변화를 명시적으로 표현하는 방식을 실험하고 있음:
OBSERVATION (관찰)
↓
INTERPRETATION (해석)
↓
HYPOTHESIS (가설)
↓
EXPERIMENT (실험)
↓
OUTCOME (결과)
↓
STATE CHANGE (상태 변경)
그리고 주장마다 출처를 붙이는 거지:
VERBATIM_AVAILABLE
CONTEXT_AVAILABLE
DERIVED
UNKNOWN
여기에 이런 관계들을 추가함:
supersedes (대체함)
contradicts (모순됨)
derived_from (~에서 파생됨)
validated_by (~에 의해 검증됨)
이렇게 하면 옛날 결정을 삭제할 필요가 없음.
역사로 남겨두는 거지:
결정 A
↓
대체됨
↓
결정 B
↓
현재 상태
그럼 에이전트가 이렇게 구분할 수 있게 됨:
"X가 예전에 결정됐었다는 건 기억해."
vs
"X가 현재 결정된 사항이야."
내가 겪은 더 골치 아픈 문제는 추론 자체가 기억이 되어버린다는 거임.
에이전트가 여러 관찰을 보고 패턴을 추론한 뒤, 그 패턴을 저장해버리면 나중에는 그 추론을 마치 원래부터 있던 사실인 양 꺼내 쓰거든.
내가 막으려는 게 바로 이 오류임.
목표는 에이전트가 모든 걸 기억하게 만드는 게 아님.
무슨 일이 있었고, 뭐가 변했고, 현재 뭘 사실로 믿고 있으며, 왜 그렇게 믿는지, 그리고 뭐가 아직 불확실한지를 보존하는 게 핵심임.
난 이 실험을 State Ledger라고 부르고 있음.
오래 돌아가는 에이전트를 만드는 사람들에게 묻고 싶음:
저장된 기억이 새로운 증거와 충돌할 때, 당신의 시스템은 어떤 메커니즘으로 현재 상태를 확정함? 그리고 그 상태를 확정하게 만든 근거까지 추적할 수 있음?


