개념
에이전트 메모리(agent memory)는 에이전트가 지금 처리 중인 대화 밖에 정보를 남겨 두고, 나중에 필요할 때 다시 불러오는 구조를 말한다. 모델 자체는 호출과 호출 사이에 아무것도 기억하지 못하기 때문에, 기억처럼 보이는 동작은 전부 이 바깥 장치가 만들어 낸다.
구분의 출발점은 컨텍스트 윈도우다. 윈도우 안에 들어 있는 최근 대화는 단기 기억에 해당하며, 호출이 끝나면 사라지고 윈도우 크기를 넘어서면 잘려 나간다. 그래서 오래 살아남아야 하는 정보는 파일이나 데이터베이스에 따로 적어 두고, 다음 호출 때 관련된 것만 골라 프롬프트에 다시 넣는다. 이 골라 넣는 과정이 메모리 설계의 실질적인 내용이다.
저장되는 정보는 대체로 세 종류다. 사용자의 선호나 배경처럼 오래 유지되는 사실, 과거에 무엇을 시도했고 어떤 결과가 나왔는지에 대한 작업 기록, 그리고 도구 사용법이나 반복되는 절차 같은 학습된 요령이다. 꺼내 오는 방식으로는 시맨틱 검색이 흔히 쓰이지만, 항목이 많지 않다면 전부 읽어 들이는 단순한 방식이 더 정확할 때도 많다.
무엇을 기억으로 남길지 정하는 방식도 갈린다. 사용자가 명시적으로 기억해 두라고 지시할 때만 기록하는 방식은 예측 가능한 대신 놓치는 것이 생기고, 대화가 끝날 때 모델이 알아서 요약해 남기는 방식은 편하지만 틀린 내용이 기억으로 굳어질 위험이 있다. 잘못 저장된 기억은 이후 모든 대화를 오염시키기 때문에, 사용자가 저장된 내용을 직접 확인하고 지울 수 있게 열어 두는 편이 안전하다.
쓰임새
코딩 에이전트가 프로젝트의 규칙과 자주 쓰는 명령을 파일에 적어 두고 매번 참조하는 것이 대표적이다. 고객 응대에서는 이전 문의 이력과 계정 상태를 기억해 같은 질문을 반복하지 않게 하고, 장기 리서치에서는 이미 조사한 출처를 기록해 중복 작업을 피한다.
멀티에이전트 구성에서는 메모리가 에이전트 사이의 공유 작업 공간 역할도 한다. 각자의 대화 기록은 분리하되 결론과 중간 산출물은 같은 저장소에 남겨, 나중에 합류한 에이전트도 앞선 맥락을 이어받게 하는 식이다.
저장 매체는 용도에 따라 다르다. 사람이 직접 읽고 고쳐야 하는 규칙이라면 평범한 텍스트 파일이 가장 다루기 쉽고, 항목이 수천 건을 넘어가면 벡터 데이터베이스에 담아 검색하는 편이 낫다. 개인정보가 포함될 수 있는 만큼 보관 기간과 삭제 절차를 함께 정해 두어야 한다.
자주 하는 오해
모델이 대화를 기억하는 것 아닌가?
모델은 매 호출마다 백지에서 시작하고, 프롬프트에 다시 담긴 내용만 볼 수 있다. 기억처럼 느껴지는 동작은 이전 대화를 매번 다시 넣어 주는 시스템이 만들어 내는 것이다.
일단 다 저장해 두면 언젠가 쓸모가 있지 않나?
저장된 항목이 늘수록 검색 정확도가 떨어지고 엉뚱한 기억이 딸려 들어온다. 무엇을 지울지 정하는 규칙이 무엇을 남길지 정하는 규칙만큼 중요하다.
컨텍스트 윈도우가 커지면 메모리는 필요 없어지지 않나?
넣을 수 있는 양이 늘어도 비용과 지연은 그대로 늘고, 관련 없는 내용이 많이 섞이면 오히려 답의 정확도가 떨어진다. 무엇을 넣을지 고르는 문제는 윈도우 크기와 별개로 남으며, 세션이 끝나면 사라진다는 성질도 그대로다.