세상에 없던 AI 메모리 도구
Born to be audited.
물어보세요.
기억이 없으면, luplo는 모른다고 대답합니다.
모든 조회, 모든 차단, 모든 사유. 영구 보존. 해시 체인으로 변조 탐지.
아무도 문제라 부르지 않는 문제
AI 메모리가 회사 밖으로 빠져나가고 있습니다.
아무도 그걸 유출이라 부르지 않습니다.
누가 어떤 지식과 결정에 왜 접근했는지, 아무도 모릅니다. luplo는 여기서부터 시작합니다.
퇴사를 앞둔 엔지니어가 md 파일 폴더를 압축합니다. 가지고 나갑니다.
그 폴더엔 3년치 설계 결정, 회의록, 장애 복기, 아키텍처의 "왜"가 들어 있습니다.
mem0 / Cognee DB를 다른 에이전트로 export
메모리는 구조화된 조직 지식입니다. 명령어 한 줄로 export해서 다른 곳에 import하면, 그대로 계속 일할 수 있습니다. 어떤 결정의 근거로 쓰였고 어떤 답을 만들어냈는지 — 어디에도 기록이 없습니다.
"10월 14일에 그 답이 왜 나왔죠?"
PM의 질문입니다. 임베딩 모델은 시간이 지나면 바뀌고, 벡터 인덱스는 재빌드할 때마다 미묘하게 달라집니다.
설계 원칙
replay gap을 없애기 위한
세 가지 선택.
같은 지식 위, 같은 쿼리는 언제나 같은 결과가 나옵니다.
코사인으로 "비슷해 보이는 것"이 아닙니다. tsquery는 같은 입력에 같은 출력을 돌려주고, 기억들은 append-only 이기 때문입니다.
모든 조회에 꼬리표가 붙습니다.
actor_id, timestamp, query, result_ids, prev_hash. 6개월 뒤 같은 migration_id로 감사를 재실행해도, 동일한 결과.
동의어는 임베딩이 아니라 단어장이 풀어줍니다.
약어와 별칭은 불투명한 벡터 공간이 아니라 결정 코퍼스 자체에서 추출된 용어집으로 확장됩니다. 모든 확장은 감사 가능합니다 — 어떤 용어인지, 어떤 별칭인지, 어떤 결정에서 왔는지, 그리고 누가 등록했는지까지.
모든 조회, 모든 차단, 모든 사유 — 영구 보존. 해시 체인, 변조 탐지, SOC 2 증거로 export 가능.
"비슷하다"로는 부족한 이유
"auth"는 세 가지를 의미합니다.
벡터 기반 검색은 그것을 하나로 취급합니다.
코드베이스에선 authn (누구인가), authz (무엇을 할 수 있나), 그리고 둘 중 하나의 줄임말로서의 "auth". SOC 2 감사에선 서로 다른 통제 항목입니다 (CC6.1 vs CC6.3). 벡터 스토어에선 같은 클러스터로 수렴합니다.
query: "authz policy"
returns: 12 rows — login flows, password resets, OAuth, 2FA, …
reason: "auth"가 임베딩을 지배
authn / authz collapse into the same cluster
audit: opaque — which rows are authz? which aren't? query: "authz policy"
glossary: authz ≠ authn (conf=0.97)
expanded: (authz | "authorization") & policy & !authn
returns: 3 rows — authorization policy decisions
audit: term #authz sourced from
D-2025-03 "split authn/authz for SOC 2 CC6.1" 요구공학 학술 연구 기반
luplo의 용어집은 자동 용어 통합에 관한 REGICE / FastText-clustering / ILLOD+ 연구 계보 위에 있습니다. (Arora 2017, Bhatia 2020, Hasso 2022) 이 논문들은 feature-based 매칭을 쓰는 통제 어휘가 약어 확장과 철자 변이에 대해 벡터 임베딩보다 우수하다는 것을 입증했습니다. luplo는 이를 append-only 결정 코퍼스로 확장합니다. 결정이 supersede될 때마다 용어집이 변하고, 용어집 자체가 감사 대상이자 증거가 됩니다.
선제적 통제
접근할 수 없는 지식은 조회할 수 없습니다.
권한으로 경계를 그으세요. 이 파일이 곧 정책입니다. luplo는 에이전트가 컨텐츠를 보기 전에 요청을 필터링 합니다. luplo cloud는 대시보드에서 유저별로도 설정 가능합니다.
# deny-by-default for secrets; log every denial
rules:
- match:
tags: [prod, secrets]
readable_by: [group:sre]
audit_denials: true
- match:
item_type: decision
visibility: internal
readable_by: [role:employee]
deny_export: true 벡터 스토어의 retrieval은 벡터 연산입니다. luplo의 retrieval은 권한 있는 읽기입니다. 거부는 감사 증거를 남깁니다 (집계 가능, export 가능, 방어 가능).
선을 긋는 지점
luplo 답지 않은 것.
luplo는 벡터 메모리의 대체재가 아닙니다. 에이전트가 비구조화된 대화 기록에 대해 의미론적 recall이 필요하다면 mem0, Cognee, LangMem 같은 도구들이 잘합니다. 그것들을 쓰세요.
luplo가 맡는 영역은 따로 있습니다 — 매번 같은 방식으로, 같은 쿼리에, 꼬리표와 함께 조회되어야 하는 조직 결정, 정책, 사실들을 위해.
정직한 비교
인접 도구들이 기능이라 부르지 않는 기능들.
메모리 제품들은 모두 recall을 제공합니다. 다만 어떻게 recall하는지에서 갈립니다. 이 제품들은 recall 품질, 임베딩 비용, 통합 수로 경쟁합니다. 증명 가능성은 이 도구들의 로드맵에 아예 없습니다. 차이가 생기는 지점입니다.
| 항목 | | 벡터 기반 (mem0, LangMem) | 그래프 기반 (Cognee, Zep) |
|---|---|---|---|
| Recall 방식 결과가 어떻게 만들어지나 | 결정적 | 확률적 | Hybrid |
| 같은 쿼리, 2개월 후에 같은 결과? 바이트 단위 재현 | Yes | No | No |
| 동의어 / 별칭 처리 감사 가능한 확장 | Glossary layer | Vector space (불투명) | Entity linking (불투명) |
| 쿼리별 조회 로그 actor · timestamp · query · result_ids | 전부 | 선택적 | 제품마다 다름 |
| 해시 체인 감사 변조 탐지 라인 체이닝 | Yes | — | — |
| 정책 게이트 접근 통제가 어디서 일어나나 | 읽기 전 (YAML) | 앱 레이어 (별도 구현 필요) | 앱 레이어 (별도 구현 필요) |
| OSS 라이선스 파생물 공개 강제 여부 | AGPL | Apache / MIT | Apache |
비교는 2026-Q2 기준 공개 문서를 반영합니다. 틀린 행이 있으면 PR 받습니다.
하나의 제품, 모두 다른 사용법
확정적 결과가 제공하는
안정감을 느껴보세요.
"모든 액션에 이유가 있고 모든 이유를 재현할 수 있습니다. Born to be audited!"
해시 체인 감사*. 행위자별 보존. 변조 탐지 export. 감사관에게 익숙한 포맷, 감사받기 위해 태어난 제품.
"이미 있는 스택 위에 얹습니다."
새 벤더 없음. 새 DB 없음. 새 인력 없음. Postgres를 운영하고 있다면, luplo 운영 비용은 0에 수렴합니다.
"자신만의 지식베이스 구축? Postgres 하나면 됩니다."
외부 임베딩 API 없음. 운영할 벡터 DB 없음. docker compose up 한 번으로 MCP 서버까지.
"Claude Code와 함께 만든 기획서를 Codex를 사용중인 동료에게."
왜 이 방식을 선택했고, 왜 이 방식은 선택하지 않았는지, 어떤 외부 리소스를 참조했는지까지 전달됩니다.
"누가 무엇을,
어떤 정책 아래 읽었는가."
모든 조회가 actor, tag, 정책 매치를 달고 기록됩니다. DSR, 보존. append-only 원칙과 잊힐 권리는 tombstone + 접근 차단으로 조화됩니다.
"확정적 쿼리 — 모르면 모른다고 말할 수 있는 에이전트의 신뢰감."
매뉴얼대로 대응해야 하는 챗봇에게 벡터 기반 지식은 불확실성을 가중시킵니다. luplo는 안정감을 드립니다.
* v1.0 예정
Born to be audited.
Ready to be installed.
AGPL 코어. docker compose up 한 번으로 자체 호스팅 하거나, luplo cloud에서 무료로 체험해 볼 수 있습니다.