
ChatGPT는 왜 자꾸 까먹을까
LLM(거대 언어 모델)을 써본 분들은 다 느끼셨을 거예요. 어제 길게 설명해 준 내 프로젝트 상황을 오늘 새 대화 창에서는 까맣게 잊고 있다는 걸요. 이건 버그가 아니라 구조적인 특성이에요. LLM은 기본적으로 상태가 없는(stateless) 존재거든요. 매번 받은 입력만 보고 답을 만들 뿐, 지난 대화를 스스로 '기억'하는 장치가 없습니다.
그래서 요즘 화두가 '메모리 레이어'예요. 모델 바깥에 별도의 기억 저장소를 두고, 새 질문이 들어오면 관련된 과거 기억을 꺼내서 같이 넣어주는 방식이죠. 이번에 소개할 Mnemo는 이걸 로컬 우선(local-first)으로, 그리고 Rust로 만든 오픈소스 프로젝트입니다.
로컬 우선이라는 게 왜 중요하냐면
'로컬 우선'은 데이터를 남의 클라우드 서버가 아니라 내 컴퓨터에 먼저 저장한다는 뜻이에요. 메모리 레이어가 다루는 데이터는 결국 내가 AI에게 털어놓은 개인적이고 민감한 정보들이잖아요. 회사 코드, 일정, 고민거리 같은 것들요. 이걸 외부 서비스에 맡기지 않고 내 기기 안에 둔다는 건 프라이버시 측면에서 큰 의미가 있습니다.
Mnemo는 저장소로 SQLite를 씁니다. 이게 뭐냐면, 서버를 따로 띄울 필요 없이 파일 하나로 동작하는 가벼운 데이터베이스예요. 스마트폰 앱부터 브라우저까지 안 들어간 곳이 없을 만큼 검증된 물건이고요. '로컬에 가볍게 깔린다'는 컨셉에 딱 맞는 선택이죠.
petgraph, 기억을 '점과 선'으로 잇는다
제일 흥미로운 부분은 petgraph예요. 이건 Rust의 그래프 자료구조 라이브러리인데요, 여기서 '그래프'는 막대그래프가 아니라 점(노드)과 선(엣지)으로 이루어진 관계망을 말해요. 'A는 B와 관련 있다', 'B는 C가 만들었다' 같은 연결을 표현하는 구조죠.
많은 AI 메모리 도구들이 단순히 텍스트 조각을 벡터(숫자 묶음)로 바꿔 '비슷한 것끼리' 찾아주는 방식(이걸 RAG, 검색 증강 생성이라고 해요)을 쓰는데요, Mnemo는 여기에 더해 기억들 사이의 관계를 그래프로 엮습니다. 단순히 '비슷한 문장'을 찾는 걸 넘어서 '이 사람과 저 프로젝트가 어떻게 연결되는지' 같은 맥락을 따라갈 수 있다는 거예요. 사람이 기억을 떠올릴 때 연상 작용으로 줄줄이 끌려 나오는 거랑 비슷합니다.
업계 맥락
비슷한 도구로는 클라우드 기반의 Mem0, 지식 그래프를 내세운 Zep, 그리고 그래프 검색을 강조한 마이크로소프트의 GraphRAG 같은 것들이 있어요. 큰 흐름은 '단순 벡터 검색에서 → 관계 기반 그래프 메모리로' 옮겨가는 중인데, Mnemo는 거기에 로컬 우선 + Rust 성능이라는 색을 입힌 셈이죠. Rust는 메모리 안전성과 속도를 동시에 잡는 언어라, 내 노트북에서 가볍게 돌릴 메모리 엔진의 기반으로는 꽤 합리적인 선택입니다.
한국 개발자에게
AI 에이전트나 챗봇을 만들어 본 분이라면 'context(맥락)를 어떻게 관리하지?'가 늘 골칫거리였을 거예요. Mnemo처럼 어떤 LLM에도 붙일 수 있는 독립 메모리 레이어는, 모델을 바꿔도 기억은 유지되게 해주는 좋은 패턴입니다. 당장 프로덕션에 넣기보단, 그래프 기반 메모리가 벡터 검색과 뭐가 다른지 직접 코드로 뜯어보며 익히기에 좋은 학습 자료예요.
한줄 정리: 까먹는 LLM에게 로컬에 안전하게 저장되는, 관계까지 기억하는 두뇌를 달아주는 프로젝트. 여러분의 AI 서비스는 사용자의 맥락을 어떻게 기억하고 있나요?
🔗 출처: Hacker News