
에이전트 시스템에서 Memory는 작업이 끝난 뒤에도 사라지지 않는 축적 정보다. 단일 응답을 위해 모델에 전달되는 컨텍스트와 달리, 세션이 바뀌어도 유지되며 이후 판단과 실행에 활용된다. 컨텍스트가 "지금 이 대화에서 참고할 정보"라면, Memory는 "그동안 쌓아온 맥락 정보"다.
에이전트 시스템에서 Memory는 작업이 끝난 뒤에도 사라지지 않는 축적 정보다. 단일 응답을 위해 모델에 전달되는 컨텍스트와 달리, 세션이 바뀌어도 유지되며 이후 판단과 실행에 활용된다. 컨텍스트가 "지금 이 대화에서 참고할 정보"라면, Memory는 "그동안 쌓아온 맥락 정보"다.
이 글에서는 에이전트 시스템에서 Memory의 개념, 역할, 컨텍스트 및 State와의 차이를 설명한다. 특정 저장 기술, 데이터베이스, 운영 정책은 다루지 않는다.
세 가지 모두 "기억"과 관련된 개념이지만 역할이 다르다.
컨텍스트(Context)는 현재 모델이 읽는 입력 정보 전체다. 이전 대화 내용, 시스템 지시문, 현재 질문이 여기에 포함된다. 요청이 처리되면 소멸된다. "지금 이 대화를 위해 꺼내놓은 파일들"에 가깝다.
State는 "현재 어느 단계에 있는가"를 나타낸다. "계약서 4건 중 2건 검토 완료, 3번째 진행 중"이라는 정보가 State다. 단계가 바뀌면 갱신되고, 실행이 끝나면 역할을 다한다.
Memory는 여러 실행과 세션을 가로질러 유지되는 축적 정보다. 특정 고객사의 계약 성향, 반복적으로 문제가 되는 조항 유형, 지난 프로젝트에서 도출한 검토 기준 같은 것들이 여기에 해당한다. 새 세션이 시작될 때 현재 작업과 관련된 Memory를 불러와 판단에 활용한다.
내비게이션으로 비유하면, 컨텍스트는 오늘의 회의 자료, State는 업무 현황판, Memory는 프로젝트 히스토리 파일이다.
Memory의 핵심은 양이 아니라 선별이다. 모든 정보를 다 저장하면 오히려 불필요한 정보가 판단을 흐린다.
세션이 종료될 때, 에이전트는 "이번 세션에서 장기적으로 의미 있는 사실"만 추출해 저장한다. "해당 공급사에서 가격 조항 모호성 패턴이 발견됨"은 저장할 만하다. "이번 검토에서 특이사항 없었음"은 저장할 필요가 없다.
저장된 Memory는 새 작업이 들어올 때 현재 맥락과 관련된 것만 불러온다. 전체를 다 읽는 것이 아니라, 지금 상황에 맞는 기억만 꺼내 쓰는 방식이다.
구분Memory컨텍스트State시간 범위장기·누적단기·일시적즉시적유지 기간세션을 넘어 유지요청·세션 종료 시 소멸단계 변경 시 갱신주된 역할과거 정보를 이후 판단에 활용현재 입력 보강현재 진행 위치 표시
"컨텍스트 창이 크면 Memory가 필요 없다"
컨텍스트 창은 단일 요청에서 처리하는 정보량을 늘려줄 뿐이다. 세션이 종료되면 사라지기 때문에, 세션을 넘어 유지되어야 하는 정보는 Memory로 별도 관리해야 한다.
"더 많이 기억할수록 좋다"
과도한 저장은 불필요한 정보가 판단을 흐리거나 성능 부담을 높인다. 무엇을 저장하고 언제 불러올지에 대한 설계가 핵심이다.
"State와 Memory는 같은 것이다"
State는 현재 진행 위치를 나타내고, Memory는 지나온 경로와 축적된 지식을 담는다. 역할이 다르다.
Q1. Memory는 반드시 장기 저장이어야 하는가?
아니다. 단기·중기·장기 형태로 설계할 수 있으며, 목적에 따라 범위가 달라진다.
Q2. Memory가 없으면 에이전트가 동작하지 않는가?
단발성 작업은 Memory 없이도 가능하다. 반복 실행이 필요하거나 이전 결과를 이어받아야 하는 업무라면 Memory가 필요해진다.
Q3. Memory에 저장된 정보는 항상 정확한가?
아니다. 저장·회상 과정의 설계에 따라 정보가 오래되거나 부정확할 수 있다. 저장 시점과 갱신 주기를 함께 관리해야 한다.
Q4. Memory와 RAG는 어떤 관계인가?
장기 메모리를 구현하는 방법 중 하나로 RAG(Retrieval-Augmented Generation)가 활용된다. 과거 정보를 저장해 두고, 현재 작업과 관련된 정보만 검색해 모델에 전달하는 방식이다.