🧠오픈소스

Birkin Mnemosyne: LLM 에이전트를 위한 로컬 메모리 시스템

에이전트가 실제로 사용한 노트만 강화하는 제로 의존성 메모리 관리 시스템

↗ 원본 링크
#메모리관리#LLM에이전트#BM25검색#MCP

프로젝트 소개

Birkin Mnemosyne는 LLM 에이전트를 위한 로컬 마크다운 기반 메모리 시스템입니다. 제로 런타임 의존성으로 동작하며, API 키나 별도 모델 없이도 노트를 저장하고 검색할 수 있습니다.

주요 특징

다국어 검색 지원

▸
BM25 기반 검색: 유니코드 정규화, 라틴어 어간 추출 지원
▸
한중일 언어 최적화: 한글/한자/가나 바이그램 지원
▸
실시간 인덱싱: 파일 변경 시 자동 갱신 (Obsidian 등 외부 편집 지원)

사용 기반 메모리 관리

▸
선택적 강화: 검색된 모든 노트가 아닌, 실제 사용한 노트만 강화
▸
사용 감쇠: 시간 경과에 따른 자동 우선순위 조정
▸
존(Zone) 우선순위: 영역별 활동 기반 랭킹

확장 가능한 아키텍처

▸
MCP 서버: 에이전트 클라이언트 연결 지원
▸
시맨틱 검색: 의미 기반 검색 옵션 제공
▸
로컬 파일: 읽기 쉽고 grep/diff 가능한 마크다운 형식

설치 방법

bash
# 기본 설치 (Python >= 3.10)
pip install birkin-mnemosyne

# 개발 환경
pip install -e ".[dev]"

# MCP 서버 포함
pip install -e ".[mcp]"

# 시맨틱 검색 포함
pip install -e ".[semantic]"

사용 예시

python
from birkin_mnemosyne import VaultMemory

# 메모리 초기화
mem = VaultMemory({"vault_path": "my_vault"})

# 노트 작성
mem.write_note(
    "Ingress DNS",
    "nginx ingress resolves service DNS; allow HTTPS through the firewall.",
    zone="devops",
)

# 검색
for hit in mem.dex.search("ingress dns"):
    print(hit)

# 핵심: 실제 사용한 노트만 강화
mem.dex.record_access("ingress-dns")

핵심 철학

기존 메모리 시스템은 검색된 모든 후보를 동일하게 취급합니다. Mnemosyne는 에이전트가 실제로 사용한 노트만 강화하여, 시간이 지날수록 더 정확한 메모리를 구축합니다.

이를 통해 불필요한 노이즈를 줄이고, 진짜 유용한 정보만 우선순위에 남게 됩니다.