AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

AI 에이전트의 기억, 하나가 아니라 다섯 겹으로 나뉜다

같은 AI 비서인데, 왜 어떤 건 어제 나눈 대화까지 기억하고 어떤 건 방금 한 말도 까먹을까요. 답은 모델 성능이 아니라, “기억”이라는 이름 아래 실제로는 전혀 다른 다섯 가지 구조가 섞여 있다는 데 있습니다.

사진 출처: MachineLearningMastery.com

AI 교육자 비노드 추가니가 AI 에이전트의 기억과 상태를 다루는 다섯 가지 아키텍처 패턴을 정리했습니다. LLM은 원래 매 요청마다 백지 상태로 시작하는데, 초기 개발자들은 대화 기록 전체를 매번 통째로 다시 넣어주는 방식으로 이 문제를 우회했습니다. 그는 이 방식이 왜 금방 한계에 부딪히는지, 그리고 그 대안이 왜 하나가 아니라 다섯 겹의 구조로 나뉘어야 하는지를 설명합니다.

출처: 5 Architectural Patterns for Persistent Memory and State in AI Agents – MachineLearningMastery.com (Vinod Chugani)

대화창을 키운다고 기억력이 좋아지지 않는 이유

대화 기록을 매번 통째로 넣어주는 방식은 세 가지 문제를 낳습니다. 응답이 느려지고, 정보가 뒤섞이면서 어떤 게 최신 사실인지 모델이 헷갈리고, 비용도 눈덩이처럼 불어나죠. 추가니는 해법이 “더 큰 창”이 아니라 기억을 애초에 여러 개의 구조로 나눠 설계하는 데 있다고 말합니다.

그가 먼저 구분하는 두 개념이 있습니다. “상태(state)”는 지금 이 작업에 대해 에이전트가 알고 있는 스냅샷입니다. 몇 단계까지 진행했는지, 방금 도구 호출 결과가 뭐였는지 같은 정보로, 화이트보드처럼 계속 지워지고 다시 쓰입니다. 반면 “기억(memory)”은 이 정보를 다음 순간, 다음 세션, 혹은 완전히 다른 에이전트에게까지 넘겨주는 장치입니다. 상태는 세션이 끝나면 사라지지만, 기억은 그 너머까지 살아남는다는 게 핵심 차이입니다.

다섯 겹의 기억, 각자 다른 일을 한다

첫 번째는 작업 중 스크래치패드 역할을 하는 단기 작업 버퍼입니다. 지금 나누는 대화, 방금 실행한 도구 결과처럼 세션이 끝나면 지워지는 휘발성 정보를 담습니다. 대화가 길어져 용량 한계에 가까워지면 오래된 부분을 요약해 압축하고, 세션이 끝나면 남길 건 장기 저장소로 보내고 나머지는 버립니다.

두 번째는 작업이 중간에 끊겨도 이어갈 수 있게 하는 체크포인트입니다. 시간 초과가 나거나, 사람의 승인을 기다리다 멈추는 경우처럼 긴 작업은 중간에 끊기기 마련이죠. 매 단계가 끝날 때마다 현재까지의 진행 상황을 저장해두면, 처음부터 다시 시작하지 않고 멈춘 지점부터 이어갈 수 있습니다.

세 번째는 세션이 완전히 갈려도 남는 “사실”들, 이른바 의미 기억입니다. 사용자의 선호나 이전에 알려준 정보처럼, 독립된 세션들을 넘나들며 계속 참조해야 하는 지식이죠. 다만 시간이 지나며 낡은 정보와 최신 정보가 동시에 남아 있을 수 있다는 게 함정입니다. 3월에 말한 내용과 7월에 바뀐 내용이 둘 다 저장돼 있으면, 어느 쪽을 꺼내올지는 별도 규칙이 필요합니다.

네 번째는 에이전트가 “무엇을 알고 있는가”가 아니라 “무엇을 했는가”를 남기는 일화 기억입니다. 목표, 계획, 실행 과정, 결과를 시간순으로 기록해두면, 비슷한 작업을 다시 만났을 때 과거에 실패했던 방식을 참고해 같은 실수를 피할 수 있습니다. 다만 이 기록은 어디까지나 참고용일 뿐, 에이전트가 반드시 따라야 하는 규칙은 아니라는 한계가 있습니다.

다섯 번째는 여러 사용자가 하나의 시스템을 함께 쓸 때 필요한 구획화입니다. 한 사용자를 도우며 알게 된 사실이 다른 사용자에게 새어 나가서는 안 되기 때문에, 모든 기억에는 누구의 것인지 꼬리표가 붙어야 하고, 조회할 때도 그 경계를 엄격히 지켜야 합니다.

저장한다고 끝이 아니라, 계속 정리해야 한다

추가니가 마지막으로 짚는 지점은 이 다섯 가지 구조 중 어느 것도 “기억이 계속 쌓이기만 하면 어떻게 되는가”라는 문제를 저절로 해결해주지 않는다는 점입니다. 6개월쯤 운영되는 시스템이라면, 의미 기억이든 일화 기억이든 시간이 갈수록 비슷비슷한 중복 정보와 낡은 기록, 잡음이 쌓입니다. 저장소가 커질수록 검색 품질은 떨어지고 비용은 늘어나죠. 그래서 오래된 정보를 지우거나 통합하는 작업은 나중에 손보면 되는 부가 기능이 아니라, 기억을 운영하는 일 자체의 일부라는 게 그의 결론입니다.

결국 그가 말하려는 건 하나입니다. 컨텍스트 창은 데이터베이스가 아니라는 것이죠. 실행을 위한 단기 버퍼, 경험을 위한 일화 기록, 지식을 위한 의미 저장소를 서로 다른 구조로 분리해야, 비로소 실제로 배우고 경계를 지키며 오래 운영할 수 있는 시스템이 만들어집니다.


AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)

Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다