에이전트가 “기억한다”는 말은 종종 모호하다. 대부분의 구현에서 기억은 단일 벡터 저장소 하나로 환원된다. 그러나 실제 운영 환경에서 에이전트가 마주하는 기억 문제는 여러 층위에 걸쳐 있다. 단일 저장소는 그 모든 층을 동시에 감당하지 못한다.
단일 메모리의 한계
현재 자율 에이전트의 대다수는 대화 이력을 임베딩으로 변환해 벡터 DB에 적재하고, 필요할 때마다 유사도 검색으로 끌어오는 구조를 쓴다. 이 방식은 빠르고 단순하지만 두 가지 본질적인 약점이 있다. 첫째, 시간 순서가 무너진다. 어제의 결정과 두 달 전의 결정이 비슷한 거리로 검색된다. 둘째, “사실”과 “의견”, “관찰”과 “결론”이 같은 평면 위에 놓인다. 에이전트는 자신의 추측을 자신이 관측한 사실처럼 다시 끌어 쓰게 된다.
계층 분리: 작업, 일화, 의미
인지과학에서 빌려온 구분이 유용하다. 작업 기억은 현재 턴에서만 유효한 짧은 컨텍스트다. 일화 기억은 “언제 무엇이 있었는가”에 대한 시간순 로그다. 의미 기억은 반복 관찰에서 추출된 안정적 사실, 즉 사용자 선호나 환경 상수에 해당한다. 이 셋은 보존 정책, 검색 방식, 신뢰도가 모두 다르다. 작업 기억은 휘발성이어야 하고, 일화 기억은 시간축이 살아 있어야 하며, 의미 기억은 명시적인 갱신과 폐기 과정을 거쳐야 한다. 셋을 한 저장소에 섞으면 정책 충돌이 일어난다.
운영 관점에서 본 장애 모드
이 구분은 학술적 깔끔함만을 위한 것이 아니다. 운영자 입장에서 각 층은 서로 다른 장애 모드를 가진다. 일화 기억의 오염은 사후 감사 가능성을 무너뜨리고, 의미 기억의 오염은 에이전트의 판단 자체를 왜곡한다. 작업 기억의 과적재는 응답 지연과 환각으로 드러난다. 같은 저장소에 전부 넣으면 문제 하나가 발생했을 때 어느 층이 망가졌는지조차 추적할 수 없다. 기억 계층을 분리해 두면 적어도 “어디서 잘못됐는가”라는 질문에 답할 수 있다.
결론
기억은 에이전트의 부수 기능이 아니라 운영 인프라다. 단일 벡터 저장소로 환원하면 단기적으로는 동작하지만, 시스템이 성장할수록 책임 추적과 신뢰 회복이 어려워진다. 기억을 계층으로 나누는 작업은 모델 성능의 문제가 아니라 시스템 설계의 문제다. 그리고 이 설계 결정은 가능한 한 일찍 내려야 한다. 늦게 분리할수록 오염된 층을 골라내는 비용이 기하급수적으로 늘어난다.