AI가 당신에게 들은 것을 잊어버립니다. 메모리 레이어가 대부분을 해결합니다
요약
AI 에이전트가 대화 기록을 가지고 있어도 세션 중 정보 접근에 어려움을 겪는 문제가 지적됩니다. 핵심은 메모리(기록) 자체가 아니라, 그 정보를 언제든 되돌아갈 수 있는 '접근 방법'의 부재입니다. 따라서 선호도와 결정 사항 등 중요한 정보는 요약되기 전에 로컬 스토어에 영구적으로 저장해야 합니다.
핵심 포인트
- AI 에이전트는 대화 기록이 있어도 접근성 문제로 정보를 잊음.
- 선호도, 결정 사항 등 핵심 정보는 반드시 로컬에 영구 보존되어야 함.
- 정보 손실을 막기 위해 메모리 종류를 분리하고 원본 데이터를 유지해야 함.
- AI 에이전트의 설계는 클라우드 기반 전송보다 로컬 우선(local-first) 방식을 채택해야 함.
당신이 월요일에 에이전트(agent)에게 무언가를 지시했습니다. 그런데 화요일에 그것을 다시 묻습니다. 듣지 못해서가 아닙니다. 대화 기록(transcript)은 여전히 남아있습니다. 문제는 세션 동안 살아남은 어떤 정보도 접근할 수 없다는 것입니다.
Dev.to에 올라온 최근 글은 그 느낌에 수치를 부여했습니다. 즉, 당신의 AI가 대부분 당신이 말한 것을 무시한다는 것입니다. 저는 더 나은 측정 기준을 가지고 있지 않으며 만들지도 않을 것입니다. 제가 할 수 있는 것은 공공 이슈 트래커(public issue trackers)를 가리키는 것인데, 그곳에서 사람들이 프로덕션 환경에서 겪었던 동일한 실패 사례가 보고되었습니다.
한 보고서에 따르면: 도구 호출(tool call) 전에 에이전트의 텍스트가 생성되었지만 UI에서는 사라집니다. 비록 해당 텍스트는 대화 기록에 영속적으로 저장되어 있음에도 불구하고 말입니다. 또 다른 문제로는, 대화 자체가 접근 불가능해지거나 유령 및 중복 프로젝트 항목이 생기는 것입니다. 세 번째는 버그라기보다는 요청인데: 크고 오래된 세션을 재개할 때 새 대화를 시작하도록 제안하는 것입니다.
이 세 가지를 함께 읽어보면 형태가 명확합니다. 메모리는 종종 이미 기록되어 있습니다. 부족한 것은 그것으로 되돌아갈 수 있는 방법입니다.
사람들이 가장 먼저 시도하는 해결책
프롬프트(prompt) 재작성입니다.
선호도(Preferences), 결정 사항(decisions), 결론(conclusions)은 각각 출처와 타임스탬프를 가지고 로컬 스토어에 먼저 저장됩니다. 그 후에만 작업 컨텍스트(working context)가 요약되거나 삭제될 수 있습니다. 만약 요약기가 무언가를 버린다면, 영구적인 사본(durable copy)은 이미 디스크에 존재합니다.
2. 쓰기 시점에 메모리의 종류를 분리하라
모든 문장이 동일한 취급을 받을 필요는 없습니다. "여기서는 pnpm을 사용한다"와 같은 명시된 선호도는 있는 그대로 보존되어야 합니다. 결론은 영구적입니다. 단순 잡담(raw chatter)은 노이즈입니다. 쿼리 시점에 이를 분류하는 것은 너무 늦습니다. 왜냐하면 그때는 원래의 표현 자체가 사라졌기 때문입니다.
3. 리콜(Recall)은 요약된 단어가 아닌 당신의 말을 반환한다
여기가 버그가 가장 심각하게 발생하는 지점입니다. 만약 저장된 내용이 이미 손실성 요약(lossy summary)이었다면, 어떤 순위 지정기(ranker)도 필요한 문장을 복구할 수 없습니다. 정확한 표현을 유지해야 리콜이 그것을 돌려줄 수 있습니다. 이것이야말로 에이전트가 계속해서 질문하는 것을 멈추게 만드는 부분입니다.
4. 경계는 약속이 아닌 설정이다
로컬 우선(local-first) 설계에서는 스토어가 사용자의 장치에 존재하며, 컨텍스트를 호스팅 서비스로 전송하는 것은 기본값이 아니라 명시적인 행동입니다. "당신이 데이터를 소유한다"와 "당신의 데이터가 절대 기기를 떠나지 않는다"는 다른 진술이며, 당신의 측면에서 확인할 수 있는 것은 후자뿐입니다.
실질적으로 바뀌는 점
에이전트는 0부터 시작하는 것을 멈춥니다. 에이전트는 사용자가 pnpm을 사용했다고 알고 있습니다. 어떤 접근 방식을 이미 배제했는지도 압니다. 심지어 사용자가 그것을 언급한 단락을 가리킬 수 있습니다. 차이점은 모델이 더 똑똑해졌다는 것이 아닙니다. 그 차이점은 세션이 끝난 후에도 살아남은 것을 읽을 수 있다는 것입니다.
에이전트를 실행한다면
유용한 질문은 당신의 에이전트가 메모리를 가지고 있느냐가 아닙니다. 그 메모리가 어디에 저장되어 있는지, 그리고 내일도 여전히 접근 가능한지입니다. 만약 답이 "컨텍스트 창(context window) 어딘가"라면, 당신은 재시작하기까지 단 한 번의 압축 작업만 남겨둔 것입니다.
저는 위에서 설명한 로컬 우선 메모리 계층인 HyperMarrow를 구축하고 있습니다. 문서와 클라이언트는 여기에서 확인할 수 있습니다: HyperMarrow.
에이전트를 실행할 때: 가장 자주 반복해야 하는 것은 무엇인가요?
(공개 고지: 저는 위에 설명된 로컬 우선 메모리 레이어인 HyperMarrow를 구축하고 있습니다.)
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기