LLM, AI 에이전트 및 다중 에이전트 시스템을 위한 오픈 소스 SQL 네이티브 메모리 엔진. 단 한 줄의 코드로 영구적이고 쿼리 가능한 AI 메모리 기능을 구현합니다.
Memori - 오픈소스 AI 메모리 엔진 상세 소개
프로젝트 개요
Memori는 대규모 언어 모델(LLM), AI 에이전트 및 다중 에이전트 시스템을 위해 특별히 설계된 오픈소스 SQL 네이티브 메모리 엔진입니다. 단 한 줄의 코드로 모든 LLM에 영구적이고 쿼리 가능한 메모리 기능을 부여하며, 표준 SQL 데이터베이스를 사용하여 메모리 데이터를 저장합니다.
핵심 특징:
memori.enable()한 줄 코드로 간편하게 통합- 메모리 데이터는 표준 SQL 데이터베이스(SQLite, PostgreSQL, MySQL)에 저장되어 사용자가 완전히 소유하고 제어
- AI는 대화를 기억하고, 상호 작용을 통해 학습하며, 여러 세션에 걸쳐 컨텍스트를 유지
Memori를 선택하는 이유?
1. 한 줄 코드 통합
OpenAI, Anthropic, LiteLLM, LangChain 및 모든 LLM 프레임워크를 지원하며, 통합이 매우 간단합니다.
2. SQL 네이티브 저장
- 이식 가능하고, 쿼리 가능하며, 감사 가능한 메모리 데이터
- 사용자가 완전히 제어하는 데이터베이스에 저장
- 복잡한 벡터 데이터베이스 불필요
3. 비용 80-90% 절감
고가의 벡터 데이터베이스가 필요 없어 운영 비용을 대폭 절감합니다.
4. 제로 벤더 종속
메모리를 SQLite 형식으로 내보내 언제든지 다른 곳으로 마이그레이션할 수 있습니다.
5. 지능형 메모리 관리
- 자동 엔티티 추출
- 관계 매핑
- 컨텍스트 우선순위 지정
빠른 시작
설치
pip install memorisdk
기본 사용법
from memori import Memori
from openai import OpenAI
# 초기화
memori = Memori(conscious_ingest=True)
memori.enable()
client = OpenAI()
# 첫 번째 대화
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "I'm building a FastAPI project"}]
)
# 후속 대화 - Memori가 자동으로 컨텍스트 제공
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Help me add authentication"}]
)
# LLM은 자동으로 당신의 FastAPI 프로젝트 정보를 알게 됩니다.
지원되는 데이터베이스
Memori는 모든 표준 SQL 데이터베이스를 지원합니다:
| 데이터베이스 | 연결 문자열 예시 |
|---|---|
| SQLite | sqlite:///my_memory.db |
| PostgreSQL | postgresql://user:pass@localhost/memori |
| MySQL | mysql://user:pass@localhost/memori |
| Neon | postgresql://user:pass@ep-*.neon.tech/memori |
| Supabase | postgresql://postgres:pass@db.*.supabase.co/postgres |
지원되는 LLM 프레임워크
LiteLLM의 네이티브 콜백 시스템을 통해 Memori는 모든 주요 프레임워크를 지원합니다:
| 프레임워크 | 상태 | 사용 방식 |
|---|---|---|
| OpenAI | ✓ 네이티브 지원 | from openai import OpenAI |
| Anthropic | ✓ 네이티브 지원 | from anthropic import Anthropic |
| LiteLLM | ✓ 네이티브 지원 | from litellm import completion |
| LangChain | ✓ 지원 | LiteLLM 통합을 통해 |
| Azure OpenAI | ✓ 지원 | ProviderConfig.from_azure()를 사용하여 구성 |
| 100+ 모델 | ✓ 지원 | 모든 LiteLLM 호환 제공업체 |
구성 옵션
데이터베이스 구성
from memori import Memori
memori = Memori(
database_connect="postgresql://user:pass@localhost/memori",
conscious_ingest=True, # 단기 작업 기억
auto_ingest=True, # 매번 쿼리 시 동적 검색
openai_api_key="sk-..."
)
memori.enable()
메모리 모드
컨셔스 모드 - 일회성 작업 기억 주입
memori = Memori(conscious_ingest=True)
자동 모드 - 매번 쿼리 시 동적 검색
memori = Memori(auto_ingest=True)
조합 모드 - 두 가지 모두 활용
memori = Memori(conscious_ingest=True, auto_ingest=True)
환경 변수 구성
from memori import Memori, ConfigManager
config = ConfigManager()
config.auto_load() # 환경 변수 또는 구성 파일에서 로드
memori = Memori()
memori.enable()
환경 변수 설정:
export MEMORI_DATABASE__CONNECTION_STRING="postgresql://..."
export MEMORI_AGENTS__OPENAI_API_KEY="sk-..."
export MEMORI_MEMORY__NAMESPACE="production"
작동 방식
Memori는 LLM 호출을 가로채는 방식으로 작동합니다. 호출 전에 컨텍스트를 주입하고, 호출 후에 정보를 기록합니다:
호출 전 (컨텍스트 주입)
- 당신의 애플리케이션이
client.chat.completions.create(messages=[...])를 호출합니다. - Memori가 해당 호출을 투명하게 가로챕니다.
- 검색 에이전트(자동 모드) 또는 컨셔스 에이전트(컨셔스 모드)가 관련 메모리를 검색합니다.
- LLM 제공업체로 전송하기 전에 컨텍스트를 메시지에 주입합니다.
호출 후 (기록)
- LLM 제공업체가 응답을 반환합니다.
- 메모리 에이전트가 엔티티를 추출하고, 분류합니다(사실, 선호도, 기술, 규칙, 컨텍스트).
- 대화는 전체 텍스트 검색 인덱스와 함께 SQL 데이터베이스에 저장됩니다.
- 원래 응답이 당신의 애플리케이션으로 반환됩니다.
백그라운드 처리 (6시간마다)
- 컨셔스 에이전트가 패턴을 분석하여 중요한 메모리를 장기 저장소에서 단기 저장소로 승격시킵니다.
애플리케이션 시나리오 예시
기본 예시
- 기본 사용법 - 간단한 메모리 설정
- 개인 비서 - 메모리를 가진 AI 비서
- 메모리 검색 - 함수 호출
- 고급 구성 - 프로덕션 환경 설정
다중 사용자 시나리오
- 간단한 다중 사용자 - 사용자 메모리 격리
- FastAPI 다중 사용자 애플리케이션 - Swagger를 포함한 REST API
프레임워크 통합 예시
Memori는 여러 인기 AI 프레임워크와의 통합 예시를 제공합니다:
- Agno
- AWS Strands
- Azure AI Foundry
- AutoGen
- CamelAI
- CrewAI
- Digital Ocean AI
- LangChain
- OpenAI Agent
- Swarms
온라인 데모
- 개인 일기 도우미 - 온라인에서 사용 가능한 Streamlit 애플리케이션
- 연구 도우미 에이전트 - 온라인에서 사용 가능한 연구 도구
기술 아키텍처
Memori는 계층형 아키텍처로 설계되었습니다:
- 가로채기 계층 - LLM API 호출을 투명하게 가로챕니다.
- 검색 계층 - 관련 메모리 컨텍스트를 지능적으로 검색합니다.
- 저장 계층 - SQL 데이터베이스에 영구적으로 저장합니다.
- 분석 계층 - 백그라운드 분석 및 메모리 최적화를 수행합니다.
자세한 아키텍처 문서는 공식 문서의 architecture.md를 참조하십시오.
엔터프라이즈 에디션 (Memori v3)
Memori는 v3 버전의 소규모 비공개 테스트 그룹을 모집하고 있습니다. 더 자세히 알아보고 엔터프라이즈 AI의 새로운 메모리 아키텍처를 미리 경험하고 싶다면 테스트 프로그램에 참여할 수 있습니다.
커뮤니티 및 지원
- 문서: https://memorilabs.ai/docs
- Discord 커뮤니티: https://discord.gg/abD4eGym6v
- GitHub Issues: https://github.com/GibsonAI/memori/issues
기여 가이드
Memori는 커뮤니티의 기여를 환영합니다! 프로젝트는 다음을 포함한 상세한 기여 가이드를 제공합니다:
- 개발 환경 설정
- 코드 스타일 및 표준
- Pull Request 제출
- 문제 보고
오픈소스 라이선스
Apache 2.0 라이선스
요약
Memori는 강력하고 사용하기 쉬운 AI 메모리 솔루션으로, 특히 다음 경우에 적합합니다:
- LLM 애플리케이션에 메모리 기능을 추가해야 하는 개발자
- 다중 세션 AI 비서를 구축하는 팀
- 벡터 데이터베이스 비용을 절감해야 하는 프로젝트
- AI 메모리 데이터를 완전히 제어하고자 하는 기업
SQL 네이티브 저장과 한 줄 코드 통합이라는 설계 철학을 통해 Memori는 AI 애플리케이션에 메모리 기능을 추가하는 진입 장벽과 비용을 크게 낮춥니다.