AI 에이전트를 만드는 고유한 이점에 대해 이야기할 때 주로 두 가지가 논의됩니다: 작업을 완료하기 위해 도구를 호출하는 능력과 시간이 지남에 따라 개선되는 능력. 메모리는 사용자를 위한 더 나은 경험을 창출할 수 있는 자기 개선 에이전트를 만들기 위한 기반입니다.
이 수업에서는 AI 에이전트의 메모리가 무엇이며, 이를 어떻게 관리하고 응용 프로그램에 활용할 수 있는지 살펴보겠습니다.
이 수업에서는 다음을 다룹니다:
• AI 에이전트 메모리 이해: 메모리가 무엇이고 에이전트에 왜 중요한지.
• 메모리 구현 및 저장: 단기 및 장기 메모리에 중점을 두고 AI 에이전트에 메모리 기능을 추가하는 실용적인 방법.
• AI 에이전트 자기 개선: 메모리가 에이전트가 과거 상호작용에서 학습하고 시간이 지남에 따라 개선할 수 있도록 하는 방법.
본 강의에서는 두 가지 포괄적인 노트북 튜토리얼을 제공합니다:
• 13-agent-memory.ipynb: Mem0와 Azure AI Search를 사용한 Microsoft Agent Framework 기반 메모리 구현
• 13-agent-memory-cognee.ipynb: 임베딩 기반의 지식 그래프를 자동 구성하고, 그래프를 시각화하며 지능형 검색을 구현하는 Cognee 기반 구조화된 메모리 구현
이 수업을 완료한 후에 다음을 알 수 있습니다:
• 작업 기억, 단기 기억, 장기 기억뿐만 아니라 페르소나 및 에피소드 메모리와 같은 특수 형태를 포함한 다양한 AI 에이전트 메모리 유형을 구분하는 방법
• Microsoft Agent Framework를 사용하고 Mem0, Cognee, Whiteboard 메모리 등 도구를 활용하며 Azure AI Search와 통합하여 AI 에이전트의 단기 및 장기 메모리를 구현하고 관리하는 방법
• 자기 개선 AI 에이전트의 원리와 견고한 메모리 관리 시스템이 지속적인 학습과 적응에 어떻게 기여하는지 이해하기
본질적으로, AI 에이전트의 메모리란 정보를 보존하고 회상할 수 있게 하는 메커니즘을 의미합니다. 이 정보는 대화의 특정 세부사항, 사용자 선호, 과거 행동 또는 학습된 패턴일 수 있습니다.
메모리가 없다면 AI 애플리케이션은 종종 상태 비저장(stateless) 상태가 되어, 각 상호작용이 처음부터 시작됩니다. 이는 에이전트가 이전 맥락이나 선호를 “잊어버리는” 반복적이고 답답한 사용자 경험으로 이어집니다.
에이전트의 지능은 과거 정보를 회상하고 활용하는 능력과 깊이 관련되어 있습니다. 메모리는 에이전트가 다음과 같이 동작하도록 합니다:
• 성찰적: 과거 행동과 결과로부터 학습
• 상호작용적: 진행 중인 대화의 맥락 유지
• 능동적 및 반응적: 과거 데이터를 기반으로 필요를 예상하거나 적절히 대응
• 자율적: 저장된 지식을 활용하여 보다 독립적으로 작동
메모리 구현의 목표는 에이전트를 더 신뢰할 수 있고 유능하게 만드는 것입니다.
이것은 에이전트가 단일 진행 중인 작업이나 사고 과정에서 사용하는 메모리로, 계산을 위해 즉시 필요한 정보를 담는 메모장과 같습니다.
AI 에이전트의 작업 기억은 긴 대화 기록이 잘려 있어도 대화에서 가장 관련 있는 정보를 포착합니다. 요구 사항, 제안, 결정 및 행동과 같은 핵심 요소를 추출하는 데 집중합니다.
작업 기억 예시
여행 예약 에이전트가 “파리 여행을 예약하고 싶어요”라는 사용자의 현재 요청을 작업 기억에 담아 현재 상호작용을 안내하는 경우입니다.
이 메모리는 단일 대화나 세션 동안 정보를 유지합니다. 현재 대화의 맥락으로 에이전트가 이전 대화 턴을 참조할 수 있게 합니다.
단기 기억 예시
사용자가 “파리행 비행기 요금이 얼마죠?”라고 묻고, 이어서 “거기 숙소는 어떻죠?”라고 질문할 때, 단기 기억은 “거기”가 같은 대화 내 “파리”를 의미한다는 점을 유지합니다.
여러 대화나 세션에 걸쳐 지속되는 정보를 의미합니다. 에이전트가 사용자 선호, 과거 상호작용 또는 일반 지식을 오랜 기간 기억할 수 있게 하며, 개인화에 매우 중요합니다.
장기 기억 예시
장기 기억은 “벤은 스키와 야외 활동을 좋아하고, 산 전망이 있는 커피를 선호하며, 과거 부상으로 인해 고급 스키 슬로프를 피하고 싶어한다”는 정보를 저장합니다. 이는 이전 상호작용에서 학습된 정보로 향후 여행 계획 세션에서 매우 개인화된 추천에 반영됩니다.
이 특수 메모리 유형은 에이전트가 일관된 ‘성격’이나 ‘페르소나’를 형성하도록 돕습니다. 에이전트가 자신 또는 자신이 맡은 역할에 관한 세부사항을 기억하여 상호작용이 더 원활하고 집중되게 합니다.
페르소나 메모리 예시
여행 에이전트가 “전문 스키 플래너”로 설계된 경우, 페르소나 메모리가 이 역할을 강화하여 전문적 어투와 지식 기반에 맞게 응답에 영향을 미칩니다.
복잡한 작업을 수행하는 동안 에이전트가 거치는 단계들을 성공과 실패를 포함해 저장하는 메모리로, 특정 ‘에피소드’나 과거 경험을 기억해 학습하는 것과 같습니다.
에피소드 기억 예시
에이전트가 특정 항공권 예약을 시도했으나 좌석 부족으로 실패했을 경우, 에피소드 기억은 이 실패를 기록하여 다음 시도 시 대안을 찾거나 사용자에게 더 유익하게 알릴 수 있게 합니다.
대화에서 특정 엔티티(사람, 장소, 사물 등)와 사건을 추출하고 기억하는 기능으로, 에이전트가 주요 요소에 대한 구조화된 이해를 구축하도록 돕습니다.
엔티티 메모리 예시
과거 여행에 관한 대화에서 “파리”, “에펠탑”, “르 샤 누아르 레스토랑에서의 저녁 식사” 등을 추출합니다. 이후 상호작용에서 에이전트는 “르 샤 누아르”를 기억해 새 예약을 제안할 수 있습니다.
RAG는 보다 넓은 기술이지만, “구조화된 RAG”는 강력한 메모리 기술로 강조됩니다. 대화, 이메일, 이미지 등 다양한 자료에서 밀도 높고 구조화된 정보를 추출해 응답의 정밀도, 재현율, 속도를 높입니다. 고전적인 RAG가 의미적 유사성에만 의존하는 반면, 구조화된 RAG는 정보의 내재된 구조를 활용합니다.
구조화된 RAG 예시
키워드 단순 매칭 대신 이메일에서 항공편 세부사항(목적지, 날짜, 시간, 항공사)을 파싱해 구조화된 방식으로 저장합니다. 덕분에 “화요일에 파리행 비행기를 예약했나요?” 같은 정확한 질문이 가능합니다.
AI 에이전트를 위한 메모리 구현은 메모리 관리라는 체계적 과정을 포함하며, 생성, 저장, 검색, 통합, 업데이트 및 ‘잊기’(또는 삭제)를 망라합니다. 그중에서도 검색이 매우 중요합니다.
메모리를 저장·관리하는 한 방법은 Mem0 같은 특수 도구를 이용하는 것입니다. Mem0는 지속 가능한 메모리 계층으로 작동하여, 에이전트가 관련 상호작용을 회상하고, 사용자 선호와 사실적 맥락을 저장하며, 성공과 실패로부터 시간이 지나면서 학습하도록 돕습니다. 즉, 상태 비저장 에이전트를 상태 저장 에이전트로 전환시킵니다.
이 시스템은 추출 단계와 업데이트 단계의 두 단계 메모리 파이프라인으로 작동합니다. 먼저, 에이전트 스레드에 추가된 메시지들이 Mem0 서비스로 전송되어 LLM(대형 언어 모델)을 활용해 대화 기록을 요약하고 새로운 메모리를 추출합니다. 이후 LLM 기반 업데이트 단계에서 이러한 메모리를 추가, 수정, 삭제할지를 결정하며, 벡터, 그래프, 키-값 데이터베이스를 포함할 수 있는 하이브리드 데이터 저장소에 저장합니다. 이 시스템은 다양한 메모리 유형을 지원하고 엔티티 간 관계 관리를 위한 그래프 메모리를 통합할 수도 있습니다.
또 다른 강력한 방법은 AI 에이전트를 위한 오픈소스 의미론적 메모리인 Cognee를 사용하는 것입니다. Cognee는 구조화·비구조화 데이터를 임베딩 기반 쿼리 가능한 지식 그래프로 변환합니다. 벡터 유사도 검색과 그래프 관계를 결합한 이중 저장소 아키텍처를 제공해, 단순히 정보 간 유사도뿐 아니라 개념 간 연결성도 이해할 수 있게 합니다.
이 시스템은 원시 덩어리 조회부터 그래프 인지 질문응답에 이르는 벡터 유사성, 그래프 구조, LLM 추론을 혼합한 하이브리드 검색에서 뛰어납니다. 살아있는 메모리를 유지하며, 계속 진화·확장됨과 동시에 하나로 연결된 그래프 형태로 쿼리 가능해 단기 세션 맥락과 장기 지속 메모리를 모두 지원합니다.
Cognee 노트북 튜토리얼(13-agent-memory-cognee.ipynb)은 다양한 데이터 소스 수집, 지식 그래프 시각화, 특정 에이전트 필요에 맞춘 검색 전략 쿼리 등의 실용적인 예제를 통해 이 통합 메모리 계층 구축을 보여줍니다.
Mem0 같은 특수 메모리 도구 외에도, Azure AI Search와 같은 강력한 검색 서비스를 메모리 저장 및 검색용 백엔드로 활용할 수 있습니다. 특히 구조화된 RAG 구현에 적합합니다.
이를 통해 에이전트의 응답을 자체 데이터에 기반하여 더 적절하고 정확하게 만들 수 있습니다. Azure AI Search는 사용자별 여행 메모리, 제품 카탈로그, 기타 도메인 특화 지식을 저장하는 데 사용할 수 있습니다.
Azure AI Search는 대화 기록, 이메일, 이미지 같은 큰 데이터셋에서 밀도 높고 구조화된 정보를 추출·검색하는 데 뛰어난 구조화된 RAG 기능을 지원합니다. 이는 전통적인 텍스트 덩어리화 및 임베딩 접근법 대비하여 “초인적인 정밀도와 재현율”을 제공합니다.
자기 개선 에이전트의 일반적인 패턴은 “지식 에이전트”를 도입하는 것입니다. 이 별도의 에이전트는 사용자와 주요 에이전트 간의 주 대화를 관찰합니다. 역할은 다음과 같습니다:
유용한 정보 식별: 대화 중 일반 지식 또는 특정 사용자 선호로 저장할 가치가 있는 부분을 찾아냄.
추출 및 요약: 대화에서 핵심 학습이나 선호 내용을 추출하고 요약.
지식 베이스 저장: 추출된 정보를 벡터 데이터베이스 등 지식 베이스에 저장해 나중에 검색 가능하게 함.
향후 쿼리 보강: 사용자가 새 쿼리를 시작하면 지식 에이전트가 관련 저장 정보를 검색해 사용자 프롬프트에 첨부, 주요 에이전트에 중요한 맥락 제공 (RAG와 유사).
• 지연 시간 관리: 사용자 상호작용 속도를 늦추지 않기 위해, 초기에 더 저렴하고 빠른 모델로 정보가 저장/검색할 가치가 있는지 신속히 판단하고, 필요할 때만 고급 추출/검색 프로세스를 호출하는 방식을 사용.
• 지식 베이스 유지 관리: 지식 베이스가 커지면 빈번히 사용되지 않는 정보를 비용 관리를 위해 “콜드 스토리지”로 이동.
Microsoft Foundry Discord에서 다른 학습자들과 만나고, 오피스 아워에 참여해 AI 에이전트 관련 질문에 대한 답변을 받아보세요.
면책 조항:
이 문서는 AI 번역 서비스 Co-op Translator를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있으나, 자동 번역은 오류나 부정확한 부분이 있을 수 있음을 양지해 주시기 바랍니다. 원문은 해당 언어의 원본 문서를 공식적인 출처로 간주해야 합니다. 중요한 정보의 경우에는 전문적인 인간 번역을 권장합니다. 본 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해서는 당사가 책임지지 않습니다.