AI 에이전트의 메모리 접근 방식이 잘못된 걸까?
Are we approaching AI agent memory the wrong way?
핵심 요약
AI 에이전트 메모리를 단순 벡터 DB로만 구현하는 한계를 지적하고, 더 나은 메모리 구조와 평가 방식을 논의합니다.
- 메모리 한계 — 벡터 DB 기반의 단순 검색은 에이전트의 복잡한 요구사항을 충족하지 못함
- CogniCore 개발 — 에이전트 메모리, 리플렉션, 벤치마킹을 위한 오픈소스 인프라 구축
- 평가 중심 개발 — 기능 추가보다 메모리 시스템이 실제 성능 향상에 기여하는지 증명하는 데 집중
- 메모리 전략 — 에피소드별/의미별 메모리 분리 및 유틸리티 점수를 통한 지속적인 메모리 평가 도입
에이전트 시스템을 구축하면서 깨달은 점 하나는, 우리가 종종 "메모리"를 벡터 데이터베이스로 축소해 버린다는 것입니다.
하지만 메모리는 의미론적 검색 그 이상입니다.
코딩 에이전트, 연구 에이전트, 역할극 에이전트는 모두 서로 다른 메모리 표현, 서로 다른 검색 전략, 그리고 무엇을 실제로 기억해야 할지 결정하는 서로 다른 방식을 필요로 합니다.
더 어려운 문제들은 다음과 같습니다:
- 어떤 정보가 저장할 가치가 있는가?
- 메모리는 언제 소멸되어야 하는가?
- 사실과 경험을 어떻게 구분할 것인가?
- 워크플로우 중에 검색은 언제 일어나야 하는가?
- 관련 없는 메모리가 컨텍스트를 오염시키는 것을 어떻게 방지할 것인가?
- 메모리가 실제로 도움이 되는지 어떻게 측정할 것인가?
저희는 AI 에이전트 메모리, 리플렉션, 리플레이, 벤치마킹 및 프레임워크 상호 운용성을 위한 오픈소스 인프라인 CogniCore를 구축하면서 이러한 질문들을 탐구하고 있습니다.
현재 진행 상황:
- LongMemEval에서 ~95% 달성
- 7,000회 이상의 다운로드
- 525개 이상의 자동화된 테스트
- MCP 통합
- LangChain 통합
- CrewAI 통합
- 다양한 메모리 백엔드 (TF-IDF, SQLite, Embedding, Graph)
저희는 현재 기능보다 평가에 더 많은 시간을 할애하고 있습니다. 메모리 시스템이 단순히 프롬프트에 더 많은 컨텍스트를 추가하는 것이 아니라, 실제로 에이전트를 개선한다는 것을 증명하는 것이 놀라울 정도로 어렵기 때문입니다.
다른 분들은 이 문제에 어떻게 접근하고 계신지 궁금합니다.
메모리 기능이 있는 에이전트를 구축하고 계신다면:
- 벡터 검색만 사용하고 계신가요?
- 대신 구조화된 지식을 저장하고 계신가요?
- 메모리를 언제 검색하거나 잊어야 할지 어떻게 결정하시나요?
- 메모리가 실제로 성능을 향상시키고 있다는 것을 검증하기 위해 어떤 벤치마크를 사용하시나요?
GitHub: https://github.com/cognicore-dev/cognicore-my-openenv
Discord: https://discord.gg/rbcKVDt3W
다른 분들이 이 문제들을 어떻게 해결하고 계신지 듣고 싶습니다.

