계기
작년 AI에게 어떤 질문을 주로 하는지 묻는 설문조사가 있었음. 하필 설문 한 달 전 대화 이력을 대부분 지워버린 탓에 적어 낼 내용이 없었음. AI와 나눈 문답 기록 자체가 나중에 어떻게든 큰 도움이 되겠다는 생각이 들었음.
벡터 메모리 검색/리콜의 한계
메모리 벡터 검색 시스템 요약. 임베딩 모델이 대화 세션을 가지고 간이 벡터db를 만듦. 에이전트는 메모리 리콜 기능을 이용해서 연관성 있는 내용을 가져옴. 없는 것보다는 있는 게 훨씬 나음. 그렇지만...

여기서부터 문제. 보통 문제 해결은 탐색 → 실패 → 탐색 → 성공인 줄 알았으나 실패 → ...무수히 많은 실패 → 성공 과정을 거침. 전체 컨텍스트를 합치면 성공 부분은 빙산의 일각임.
스크린샷 상황은 이전에 해결했던 문제를 시간이 꽤 흐른 다음 물어본 상황임. 답변에는 해결됐다는 내용과 미해결 됐다는 내용이 뒤섞여져 있음. 실패한 기억과 성공한 기억 모두 연관성이 높다 보니 컨텍스트에 뒤엉켜서 주입됐음. 해당 문제는 긴 과정 없이 금방 해결했던 문제인데도 불구하고 혼재된 답변이 나왔음. 이건 지식의 선후 관계가 없기 때문이라고 생각함. 그 외에도 퀄리티 있는 기억을 만들기 위해 여러가지 장치들이 필요하다고 판단했음.
메모리 자립
WebChat (ChatGPT, Gemini 등), CLI 툴, 그리고 기존 노트 앱(Obsidian 등)까지 데이터가 여기저기 분산되어서 쌓이면서 이런 문제들이 발생함.
서비스를 더 이상 사용하지 않게 되는 경우, 특정 시기의 기록이 소멸.
AI가 사용하는 메모리가 서비스 별로 다 다름.
예전에 메인 노트로 Notion 대신 Obsidian을 선택했던 이유가 데이터 보존이었음. Obsidian이 망하더라도 기록은 사라지지 않는다는 어떤 블로그의 글이 주요하게 작용했음. 지금 상황에서도 같은 이유에서 통합 메모리 구축 필요성을 느꼈음.
커스텀 지식 라이브러리
AI가 특정 사람이 다음 상황에서 어떤 생각과 감정을 느낄 것인지, 그리고 어떤 행동과 말을 하는 게 자연스러운지 적절한 답을 제시하지 못한다고 생각했음. 객관식은 되는데 주관식이 약함. 최근 LLM의 감정 기능에 대한 글을 봤음. 여기에서 LLM이 감정을 가지고 있는지는 불분명하지만, 기능적으로는 감정처럼 작동하는 무언가가 있고, 이 무언가가 AI의 행동을 바꾼다고 적어놨음. 이런 걸 보면 AI가 할 수는 있는데, 참고할 맥락이 충분하지 못한게 아닌가 생각했음.
비슷한 생각이 이 때도 들었음. AI가 수학 문제를 풀때 창의적인 답을 내주길 바랐던 적이 있음. 그런데 풀다가 막히면서 무작위대입을 해야 한다고 말할 때가 잦았음. 막연한 아이디어라도 던져주면, AI는 어떻게든 그 방향으로 풀려고 시도함. AI가 수학을 못해서 브루트포스를 시도 하는 게 아니라, 참조할 만한 맥락이 부족한 게 아닌가 생각했음.
에이전트만을 위한 커스텀 지식 공간이 필요하다고 느꼈음.
탐색
선행 프로젝트 탐색
데이터가 모이는 장소 관리 시스템
데이터 전처리 시스템
적재 후 메모리 형성 시스템
형성된 메모리를 꺼내서 사용하는 시스템
자료 탐색부터 했음. GitHub에 있는 프로젝트는. Supermemory, Mem0, Graphiti, Cognee, OpenMemory, MemMachine, MemOS, Memori 등등... 이런 프로젝트들이 있었음.
전체 기능 리스트를 만들고 비교했음. 데이터 수집 및 정리 → 전처리 → 메모리 형성 → 메모리 추출 이 4가지 과정 중 메모리 형성 이 부분이 복잡하다고 생각했음. 나머지 3가지 부분이 빈약하거나 구현되어 있지 않더라도, 메모리 형성 로직이 정교한 걸 쓰는 게 맞겠다고 판단했음. 고민 끝에 Graphiti, Cognee 2가지로 최종 후보가 압축됐음.

상용화 서비스인
Zep의 오픈소스 버전이Graphiti임.Cognee는 상용화 서비스 이름과 오픈소스 버전 이름이 동일함.Cognee는 일부 기능을graphiti-core에 의존 중임.의존 컬럼은
Cognee가 의존 중인 기능들임.Cognee가 사용 중인graphiti-core버전은 오래된 버전임.품질 컬럼은 메모리 형성 시 품질에 영향 주는 것을 ...




