AI 에이전트를 위한 영속적이고, 시간 기반이며, 관리되는 메모리. 단순한 RAG가 아닙니다. 벡터 데이터베이스도 아닙니다. 로컬 우선(Local-first) 및 자체 호스팅 방식입니다.
LongMemory는 LLM 애플리케이션과 자율 에이전트를 위한 인지 기억 엔진입니다.
- SQLite를 사용한 영속적인 로컬 우선 스토리지
- 불변의 콘텐츠, 출처(provenance), 시간적 진실성(temporal truth)
- 엄격하고, 역사적이며, 연관적이고, 근거 기반이며, 다국어적 회상 능력
- 설명 가능한 증거 선택 및 토큰 제한 컨텍스트
- 관리되는 프로젝트 메모리, Skills, Chat Memory, LLM-Wiki, CodeGraph
- npm, CLI, HTTP, MCP, 대시보드, VS Code 전반에 걸친 단일 TypeScript 엔진
- 에이전트 호스트, 자동화 도구 및 Python 프레임워크를 위한 네이티브 통합
사용자의 모델은 상태 비저장(stateless)으로 유지됩니다. 사용자의 애플리케이션은 건망증을 겪지 않게 됩니다.
npm install longmemory
import { createMemory } from 'longmemory';
const memory = await createMemory();
await memory.ingest({
...
인메모리 사용을 위해 서비스나 외부 데이터베이스가 필요하지 않습니다.
자체 모델을 사용하여 선택적인 증거 기반 답변이 필요한 경우, 내보내진 answer_from_evidence 어댑터를 사용하십시오. 이 어댑터는 승인된 증거를 수락하고 인용된 발췌문을 검증하며, 최대 한 번의 모델 호출만 수행합니다. 일반적인 회상은 변경되지 않습니다. 정책, 제한 사항 및 통합에 대해서는 docs/answering.md를 참조하십시오.
const memory = await createMemory({
store: 'sqlite',
db_path: './longmemory.db',
...
동일한 데이터베이스를 다시 열면 노드, 월드(worlds), 엔티티, 엣지, 시간적 이력, 근거 기반 정보 및 생명주기 상태가 복원됩니다.
npm install --global longmemory
longmemory init
longmemory recall "current project priorities" --mode associative
pip install longmemory-sdk
from longmemory import LongMemory
memory = LongMemory(
"http://127.0.0.1:7331",
...
Python 패키지는 제로 의존성 HTTP 클라이언트입니다. Hydrograph 엔진은 자체 호스팅 TypeScript 서비스에 남아 있습니다. docs/python-sdk.md를 참조하십시오.
git clone https://github.com/CaviraOSS/LongMemory.git
cd LongMemory
corepack enable
...
API는 기본적으로 http://127.0.0.1:7331에서 수신합니다.
docker run --rm
-p 7331:7331
-v longmemory-data:/data
...
cp .env.example .env
docker compose up --build -d longmemory
대시보드 포함하기:
docker compose --profile ui up --build -d
-
API 및 MCP:
http://127.0.0.1:7331
-
대시보드:
http://127.0.0.1:3000
-
상태 확인 (Health):
http://127.0.0.1:7331/health
대부분의 시스템에서 메모리라고 부르는 것은 검색 파이프라인입니다:
- 텍스트를 청크(chunks)로 분할합니다.
- 청크에 임베딩(Embed)을 생성합니다.
- 가장 가까운 벡터(vectors)를 반환합니다.
하지만 이는 특정 시점에 무엇이 사실이었는지, 새로운 사실이 오래된 것을 대체했는지, 어떤 출처가 권위적인지, 누가 볼 수 있는지, 또는 결과가 왜 컨텍스트에 속하는지를 확립하지 못합니다.
LongMemory는 이러한 우려 사항들을 직접 모델링합니다:
시간적 진실 (Temporal truth): 기록된 시간(recorded time)과 유효한 시간(valid time)이 분리됩니다.불변 메모리 (Immutable memory): 콘텐츠, 벡터, 해시 및 출처(provenance)는 리콜(recall)이나 감쇠(decay)에 의해 재작성되지 않습니다.실행 가능한 그래프 (Executable graph): 타입화된 관계가 리콜과 설명에 참여합니다.거버넌스 (Governance): 프로젝트, 테넌트, 사용자, 팀, 역할, 에이전트, 작업 및 프레임워크 범위가 강제됩니다.수명 주기 (Lifecycle): 결정론적 감쇠(deterministic decay), 명시적 강화(explicit reinforcement), 통합(consolidation), 압축(compression) 및 재통합(reconsolidation)을 수행합니다.증거 (Evidence): 리콜은 관련성, 모순, 접지(grounding), 권한 및 토큰 비용에 의해 제한됩니다.
세부 설계 근거는 Why.md를 참조하십시오.
const strict = await memory.recall({
text: '현재 배포 지역은 무엇입니까?',
mode: 'strict',
...
엄격한 리콜(Strict recall)은 시간적, 모순, 계약, 신뢰도 및 접지 게이트를 적용합니다. 역사적 리콜(Historical recall)은 대체된 진실을 보존합니다. 연관성 리콜(Associative recall)은 의미론적, 어휘적, 개체, 활성화 및 그래프 신호를 따릅니다. 세계 기반 리콜(World-grounded recall)은 현재 외부 증거를 요구합니다.
**하이드로그래프 메모리 기질(Hydrograph memory substrate)**은 불변 노드, 실행 가능한 엣지, 월드, 엔티티, 페싯, 트레이스를 가집니다. 점 시간 진실성(point-in-time truth), 이벤트 순서 지정, 대체(supersession), 오래된 증거 제어를 통한 **시간 추론(Temporal reasoning)**을 지원합니다. 스크립트 감지, 코드 전환, 음역(transliteration), 교차 언어 임베딩을 갖춘 **다국어 메모리(Multilingual memory)**를 제공합니다. 아키텍처, 결정, 작업, 관례, 실패, 인계, 코드 영향을 위한 **프로젝트 메모리(Project memory)**가 있습니다. Chat Memory, Skills, LLM-Wiki, CodeGraph에 대한 수명 주기 및 ACL 정책이 적용된 **관리되는 자산(Governed assets)**을 제공합니다. Claude Code, Codex, OpenCode, Gemini CLI, Copilot Chat, Cline, 그리고 원시 하네스 로그를 위한 **세션 포터(Session porter)**가 있습니다. 저장소, 로컬 파일, Markdown, 웹 콘텐츠, 피드, 클라우드 문서 및 공급자 API를 위한 **커넥터(Connectors)**를 제공합니다. OpenAI-호환 API, Gemini, AWS Bedrock, Ollama, Siray, 그리고 로컬 HTTP 모델을 통한 임베딩(Embeddings) 기능을 지원합니다. HTTP, MCP, 대시보드, VS Code, n8n, 그리고 프레임워크 네이티브 MCP 클라이언트를 통한 **운영 표면(Operational surfaces)**을 제공합니다. LongMemEval, LoCoMo, BEAM, 검색 품질, 시간적 동작 및 지연 시간을 위한 **감사 가능한 벤치마크(Auditable benchmarks)**를 갖추고 있습니다.
로컬 stdio MCP 시작:
longmemory mcp --db .longmemory/project.db --project current
인증된 스트리밍 가능 HTTP MCP 노출:
LONGMEMORY_API_KEY=change-me longmemory serve --mcp-http
LongMemory는 13가지의 고수준 관리되는 도구와 읽기 가능한 리소스 및 에이전트 워크플로우 프롬프트를 노출합니다. 도구 인수는 서버에 바인딩된 런타임 식별자를 재정의할 수 없습니다.
설치 가능한 통합에는 다음이 포함됩니다:
- Claude Code 플러그인
- Codex 및 ChatGPT 데스크톱 플러그인
- Gemini CLI 확장 프로그램
- OpenClaw 및 호환되는 호스트를 위한 에이전트 플러그인 1.0 번들
- AI 에이전트 도구로 사용 가능한 n8n 커뮤니티 노드
- Cline, Continue, 그리고 LibreChat 구성 패키지
- Dify 및 Flowise 네이티브 MCP 설정
- CrewAI, AutoGen, LangGraph/LangChain, OpenAI Agents SDK, PydanticAI 예제
통합은 integrations/README.md와 docs/mcp.md를 참조하십시오.
import { createProjectMemory } from 'longmemory';
const projects = await createProjectMemory({
tenant_id: 'cavira',
...
프로젝트 컨텍스트는 관련 아키텍처, 현재 결정 사항, 미해결 작업(open tasks), 실패 사례, 코드 사실(code facts), 일치하는 스킬(Skills), 충돌(conflicts), 그리고 관리되는 자산 로드아웃을 하나의 토큰 예산 내에서 결합합니다.
longmemory init
longmemory tui
longmemory status --memories 20 --json
...
유한 명령어(Finite commands)는 TTY 외부 또는 --json이 제공될 때 안정적인 JSON을 내보냅니다. 세션 포터(session porter)는 지원되는 코딩 에이전트 스토어(coding-agent stores)를 수정하지 않고 읽습니다. 자세한 내용은 docs/cli.md를 참조하세요.
Next.js 대시보드는 동일 출처 API 프록시(same-origin API proxy)를 통해 상태(health), 메모리 탐색, 수집(ingestion), 검색, 프로젝트 선택, 활동, 감쇠(decay), 설정, 타임라인, 그리고 메모리 인식 채팅 기능을 제공합니다.
pnpm --dir dashboard build
pnpm --dir dashboard start
VS Code 확장 프로그램은 활동 표시줄 브라우저(activity-bar browser), 상태 표시줄, 리콜(recall), 프로젝트 컨텍스트, 설명, 강화(reinforcement), 명시적 감쇠(explicit decay), 세션 가져오기(session import), 그리고 검토된 AI 변경 사항 캡처 기능을 제공합니다.
pnpm extension:package
생성되는 패키지는 apps/vscode-extension/longmemory-vscode-0.2.0.vsix입니다.
.
graph TB
INPUT[이벤트, 문서, 세션] --> INGEST[불변 수집 파이프라인]
INGEST --> GRAPH[(Hydrograph)]
...
하위 시스템(subsystem)의 자세한 내용은 ARCHITECTURE.md와 docs/architecture.md를 읽어보세요.
| 플랫폼 | 설정 파일 | 배포하는 내용 |
|---|
| Docker | Dockerfile | API 및 스트리밍 HTTP MCP |
| Docker Compose | docker-compose.yml | API/MCP 및 선택적 대시보드 |
| Heroku | app.json | 컨테이너화된 API/MCP |
| Railway | railway.json | 컨테이너화된 API/MCP |
| Render | render.yaml | 영구 디스크가 있는 API/MCP |
| DigitalOcean | .do/spec.yaml | 앱 플랫폼 API/MCP 서비스 |
| Vercel | vercel.json | 대시보드; LONGMEMORY_API_URL 설정 필요 |
| Windows | start-longmemory.ps1 | 백그라운드 로컬 API/MCP 프로세스 |
호스팅된 API 배포의 경우, LONGMEMORY_API_KEY를 설정하고, 영구 스토리지를 /data에 마운트하며, 플랫폼 엣지에서 TLS를 종료해야 합니다. Vercel은 상태 비저장(stateless) 대시보드만 호스팅하며 별도로 배포된 LongMemory API가 필요합니다.
pnpm bench
pnpm bench:ci
pnpm bench:full
벤치마크 하네스(benchmark harness)는 명시적인 매니페스트(manifests), 데이터셋 완성도, 증거 지표(evidence metrics), 답변 판정(answer judgments), 시간적 범주(temporal categories), 지연율 백분위수(latency percentiles), 그리고 해당 없음(N/A) 이유를 게시합니다. 공식 점수판은 불완전한 데이터셋이나 의미론적 임베딩 폴백(semantic embedding fallback) 시 폐쇄됩니다. benchmarks/README.md를 참조하십시오.
지원되는 SQLite, JSON 또는 JSONL 메모리를 가져오기(Import):
longmemory migrate \
--from ./legacy.db \
--to ./longmemory.db \
...
코딩 에이전트 대화(coding-agent conversations)를 관리되는 채팅 메모리(Chat Memory)로 가져오기:
longmemory port --from codex --to longmemory --all
MIGRATION.md 및 docs/migration.md를 참조하십시오.
레거시 패키지 마이그레이션:
npm uninstall openmemory-js && npm install longmemory
pip uninstall openmemory-py && pip install longmemory-sdk
openmemory-js@2와 openmemory-py@2는 기존 설치를 위한 포워딩 브리지(forwarding bridges)입니다. 새로운 애플리케이션은 longmemory와 longmemory-sdk를 직접 사용해야 합니다. PyPI의 관련 없는 longmemory 이름은 다른 프로젝트가 소유하고 있으므로, 공식 배포판은 longmemory-sdk이며 임포트(import)는 여전히 longmemory입니다.
corepack enable
pnpm install --frozen-lockfile
pnpm release:check
...
release:check는 브랜딩, 타입, 통합 매니페스트, 벤치마크 스모크 게이트(benchmark smoke gate), 루트 빌드, 확장 빌드, 그리고 대시보드 프로덕션 빌드를 검증합니다.
유용한 Make 타겟:
make install
make build
make check
...
LongMemory는 로컬 우선(local-first)이지만, 네트워크 배포에는 여전히 명시적인 제어가 필요합니다:
LONGMEMORY_API_KEY로 API 및 MCP 경로 보호.
- 허용된 오리진을 제한하고 엣지에서 TLS를 종료(terminate)합니다.
- 커넥터 및 임베딩 자격 증명(credentials)을 리포지토리 파일 외부에 보관합니다.
- 회수된 콘텐츠는 권한 부여가 아닌 신뢰할 수 없는 증거로 취급합니다.
- 서버에 바인딩된 사용자, 프로젝트, 에이전트, 프레임워크의 식별자(identity)를 유지합니다.
취약점은 SECURITY.md에 설명된 대로 비공개로 보고하십시오.
이슈 및 풀 리퀘스트는 환영합니다. 기여하기 전에 CONTRIBUTING.md, GOVERNANCE.md, 그리고 CODE_OF_CONDUCT.md를 읽어보십시오.
LongMemory는 Apache License 2.0에 따라 라이선스가 부여되었습니다. 별도로 게시된 n8n 커뮤니티 노드는 n8n의 엄격한 패키지 검증기(package validator) 요구 사항에 따라 MIT를 사용합니다.