lemory

mcp
Security Audit
Warn
Health Warn
  • License รขโ‚ฌโ€ License: MIT
  • Description รขโ‚ฌโ€ Repository has a description
  • Active repo รขโ‚ฌโ€ Last push 0 days ago
  • Low visibility รขโ‚ฌโ€ Only 9 GitHub stars
Code Pass
  • Code scan รขโ‚ฌโ€ Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
  • Permissions รขโ‚ฌโ€ No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

๐Ÿ‹ Local-first memory middleware for your Markdown โ€” turn your Obsidian vault into memory for any AI (MCP), with Korean-first hybrid retrieval, keyless on-device search, and an interactive knowledge graph.

README.md

๐Ÿ‹ Lemory

AI ์—์ด์ „ํŠธ์˜ ์žฅ๊ธฐ๊ธฐ์–ต ์—”์ง„. ๊ธฐ์–ต์€ ๋‹น์‹  ๊ฒƒ์ด์–ด์•ผ ํ•˜๋‹ˆ๊นŒ์š”.

ํ˜ธ์ŠคํŒ… DB๋„, ๊ณ„์ •๋„, ์ฟผํ„ฐ๋„ ์—†์ด ยท ๋‚ด ํด๋” ์•ˆ์˜ ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ๋กœ.
Local memory engine for AI agents ยท English README

CI
License: MIT
Python 3.10+
Benchmarks
KorMapleQA

์‹ค์ œ ๋‚˜๋ฌด์œ„ํ‚ค 1,469๋…ธํŠธ ๋ณผํŠธ์—์„œ ํ•œ๊ตญ์–ด ์งˆ๋ฌธ์ด 0.1์ดˆ ๋งŒ์— ๋‹ต๋ณ€๋˜๊ณ  ์˜คํƒ€๊ฐ€ ์ž๋™์œผ๋กœ ๊ณ ์ณ์ง€๋Š” ์žฅ๋ฉด

๋ชฉ์—…์ด ์•„๋‹ˆ์—์š”. ๋‚˜๋ฌด์œ„ํ‚ค ์‹ค์ œ ๋ฌธ์„œ 1,469๊ฐœ(์ฒญํฌ ์•ฝ 42,000๊ฐœ) ๋ณผํŠธ์—์„œ
ํ•œ๊ตญ์–ด ์งˆ๋ฌธ์ด 0.1์ดˆ ๋งŒ์— ๋‹ต๋ณ€๋˜๊ณ , ์˜คํƒ€๋Š” API ์—†์ด ๊ณ ์ณ์ง€๋Š” ์žฅ๋ฉด์ด์—์š”.
benchmarks/๋กœ ์ง์ ‘ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์–ด์š”.


Lemory๋Š” AI ์—์ด์ „ํŠธ๋ฅผ ์œ„ํ•œ ๋กœ์ปฌ ์žฅ๊ธฐ๊ธฐ์–ต ์—”์ง„์ด์—์š”. Claude Code,
Claude Desktop, Cursor, ์ง์ ‘ ๋งŒ๋“  ์—์ด์ „ํŠธ๊ฐ€ ๋งค ์„ธ์…˜ ๋‚ฏ์„  ์‚ฌ๋žŒ์œผ๋กœ ์‹œ์ž‘ํ•˜์ง€
์•Š๊ฒŒ ํ•ด์š”. ์„ธ์…˜์ด ๋‚จ๊ธด ๊ธฐ์–ต์€ ์ „๋ถ€ ๋‚ด ์†Œ์œ ์˜ ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ์ด๊ณ , ๋งˆํฌ๋‹ค์šด
๋…ธํŠธ๊ฐ€ ์ด๋ฏธ ์žˆ๋‹ค๋ฉด(์˜ต์‹œ๋””์–ธ์ด๋“  ๊ทธ๋ƒฅ ํด๋”๋“ ) ๊ทธ๊ฒŒ ๊ณง๋ฐ”๋กœ ๊ธฐ์–ต์ด ๋ผ์š”.

  • ๊ธฐ์–ต ํ”ผ๋ผ๋ฏธ๋“œ๊ฐ€ ์žˆ์–ด์š”. ๋Œ€ํ™”(L0) โ†’ ์‚ฌ์‹ค ์•„ํ†ฐ(L1) โ†’ ์žฅ๋ฉด ์„œ์‚ฌ(L2) โ†’
    ํŽ˜๋ฅด์†Œ๋‚˜(L3)๋กœ ์Šน๊ฒฉ๋˜๋Š” 4์ธต ๊ตฌ์กฐ์˜ˆ์š”. ์„ธ์…˜์ด ์‹œ์ž‘๋˜๋ฉด ํŽ˜๋ฅด์†Œ๋‚˜์™€ ์žฅ๋ฉด
    ์ง€๋„๋ถ€ํ„ฐ ์ฃผ์ž…๋˜๊ณ , ์„ธ๋ถ€๋Š” ํ•„์š”ํ•  ๋•Œ๋งŒ ๋“œ๋ฆด๋‹ค์šดํ•ด์š”. ํ† ํฐ์€ ์•„๋ผ๊ณ  ๋งฅ๋ฝ์€
    ์•ˆ ์žƒ์–ด์š”.
  • ์—์ด์ „ํŠธ๊ฐ€ ๊ธฐ์–ต์„ ๊บผ๋‚ด์š”. ์˜๋ฏธ ๊ฒ€์ƒ‰ + ํ•œ๊ตญ์–ด์— ๊ฐ•ํ•œ ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰ +
    [[์œ„ํ‚ค๋งํฌ]] ๊ทธ๋ž˜ํ”„๋ฅผ ํ•ฉ์นœ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰์ด์—์š”. ๋Œ๋ฆด ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์Ÿ
    ์ œํ’ˆ์€ ์ „๋ถ€ ๊ฐ™์€ ์กฐ๊ฑด์—์„œ ์ธก์ •ํ–ˆ๊ณ , ์ง€๋Š” ํ•ญ๋ชฉ๋„ ๊ทธ๋Œ€๋กœ ๊ณต๊ฐœํ•ด์š”.
  • ์—์ด์ „ํŠธ๊ฐ€ ๊ธฐ์–ต์„ ๋‚จ๊ฒจ์š”. remember(ํƒ€์ž… ์žˆ๋Š” ํŒŒํŽธ) โ†’ recall โ†’
    reflect(์„ธ์…˜ ๋งˆ๋ฌด๋ฆฌ) โ†’ consolidate(ํ”ผ๋ผ๋ฏธ๋“œ ์Šน๊ฒฉ) ๋ฃจํ”„์˜ˆ์š”. ์ „๋ถ€ ๋ณผํŠธ
    ์•ˆ์˜ ํ‰๋ฒ”ํ•œ .md ๋…ธํŠธ๋ผ ์˜ต์‹œ๋””์–ธ์—์„œ ๋ณด์ด๊ณ , ๊นƒ์œผ๋กœ ๊ด€๋ฆฌ๋˜๊ณ , rm ํ•œ
    ๋ฒˆ์ด๋ฉด ์ง€์›Œ์ ธ์š”. ๊ณ„์ •๋„, ํŒŒํŽธ ์ฟผํ„ฐ๋„, ์ด์‚ฌ ๋น„์šฉ๋„ ์—†์–ด์š”.
  • ๋ญ๊ฐ€ ์˜ค๊ฐ”๋Š”์ง€ ๋‹ค ๋ณด์—ฌ์š”. ๋Œ€์‹œ๋ณด๋“œ์— ๋ชจ๋“  ์งˆ์˜, AI๊ฐ€ ์“ด ๋ชจ๋“ 
    ๋…ธํŠธ(ํด๋ฆญ ํ•œ ๋ฒˆ์œผ๋กœ ๋˜๋Œ๋ฆฌ๊ธฐ), ํด๋ผ์ด์–ธํŠธ๋ณ„ ์‚ฌ์šฉ๋Ÿ‰์ด ๋‚จ์•„์š”. ์ „๋ถ€ ๋‚ด
    ์ปดํ“จํ„ฐ์˜ SQLite ํŒŒ์ผ ํ•˜๋‚˜์˜ˆ์š”.

Lemory๋ฅผ "๊ฑฐ์ณ์•ผ๋งŒ" ํ•˜๋Š” ๊ฑด ์•„๋ฌด๊ฒƒ๋„ ์—†์–ด์š”. ๋ณผํŠธ๋Š” ๊ทธ๋ƒฅ ํŒŒ์ผ์ด์—์š”.
๋Š˜ ํ•˜๋˜ ๋Œ€๋กœ ๋…ธํŠธ๋ฅผ ์“ฐ๋ฉด(์˜ต์‹œ๋””์–ธ์ด๋“ , ์•„๋ฌด ํŽธ์ง‘๊ธฐ๋“ ) ์›Œ์ฒ˜๊ฐ€ 1์ดˆ ์•ˆ์—
์ƒ‰์ธํ•ด์š”. save_memory์™€ lemory remember๋Š” AI๊ฐ€ ์“ธ ๋•Œ ์ถœ์ฒ˜ ํ‘œ์‹œ,
์ค‘๋ณต ๊ฒ€์‚ฌ, ๋˜๋Œ๋ฆฌ๊ธฐ ๋ฒ„ํŠผ์„ ๋ถ™์ด๊ธฐ ์œ„ํ•œ ํ†ต๋กœ์ผ ๋ฟ์ด์—์š”. ๋ฌธ์ง€๊ธฐ๊ฐ€ ์•„๋‹ˆ๋ผ
์†๋‹˜์šฉ ์ž…๊ตฌ์˜ˆ์š”.

์š”์ฆ˜ ๋ฉ”๋ชจ๋ฆฌ ์ œํ’ˆ๋“ค์€ ๋‚ด ์ง€์‹์„ ์ž๊ธฐ๋“ค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋„ฃ๊ณ  ์‹ถ์–ด ํ•ด์š”.
์ €ํฌ ์ƒ๊ฐ์€ ๋‹ฌ๋ผ์š”. ๋‚ด๊ฐ€ ์ด๋ฏธ ๊ฐ€์ง„ ํŒŒ์ผ์ด ๋” ์ข‹์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๊ณ , ๊ทธ๋ž˜์„œ
์ •ํ™•๋„๊ฐ€ ๋–จ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฑธ ๋ฒค์น˜๋งˆํฌ๋กœ ์ฆ๋ช…ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ์ผ์–ด์š”.
์ธก์ •ํ•ด ๋ณด๋‹ˆ ์˜คํžˆ๋ ค ๋ฐ˜๋Œ€์˜€์–ด์š”.

์ฆ๊ฑฐ๋ถ€ํ„ฐ ๋ณด์—ฌ๋“œ๋ฆด๊ฒŒ์š”

๋ชจ๋“  ์ˆ˜์น˜๋Š” ์ปค๋ฐ‹๋œ ์ฝ”๋“œ์™€ ๊ณต๊ฐœ ๋ฐ์ดํ„ฐ๋กœ ๋‹ค์‹œ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์š”. ๋ฐฉ๋ฒ•, ์ง€๋Š”
ํ•ญ๋ชฉ, ์•„์ง ๋ชป ํ‘ผ ๋ฌธ์ œ๊นŒ์ง€ BENCHMARKS.md์— ์žˆ์–ด์š”.

KorMapleQA ์ˆœ์œ„ ์ง€์—ฐ์‹œ๊ฐ„ ๋น„๊ต, ๋กœ๊ทธ ์Šค์ผ€์ผ

๊ฐ™์€ ์งˆ๋ฌธ์„ ์‹ค์ œ ๋„๊ตฌ 3๊ฐœ์— ๋˜์ ธ๋ดค์–ด์š”

qmd๋Š” 0๊ฑด, MemPalace๋Š” ์—‰๋šฑํ•œ ๊ฒฐ๊ณผ, Lemory๋Š” ์ •๋‹ต ๋…ธํŠธ๋ฅผ 1์œ„๋กœ

๊ฐ™์€ ๋ณผํŠธ์—์„œ tobi/qmd์™€ MemPalace๋ฅผ ์‹ค์ œ๋กœ
๋Œ๋ฆฐ ์žฅ๋ฉด์ด์—์š”. qmd๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์ „๋ถ€ ํฌํ•จํ•ด์•ผ๋งŒ ์ฐพ๋Š” ๋ฐฉ์‹(AND)์ด๋ผ ํ•œ๊ตญ์–ด
์ž์—ฐ์–ด ์งˆ๋ฌธ์— 0๊ฑด์ด ๋‚˜์™€์š”. MemPalace๋Š” ์˜์–ด ์œ„์ฃผ ์ž„๋ฒ ๋”๋ผ ํ•œ๊ตญ์–ด ํ‚ค์›Œ๋“œ
๊ฒฝ๋กœ๊ฐ€ ์—†์–ด์š”. Lemory๋Š” ์ •๋‹ต ๋…ธํŠธ๋ฅผ 1์œ„๋กœ, 0.1์ดˆ์—, LLM ํ˜ธ์ถœ ์—†์ด ์ฐพ์•„์š”.

qmd๊ฐ€ ๋กœ์ปฌ LLM์„ ์ด๋™์›ํ•ด๋„(์งˆ์˜ ํ™•์žฅ + ๋ฆฌ๋žญํฌ) ๊ฐ™์€ 329๋ฌธํ•ญ์—์„œ Lemory์˜
LLM ์—†๋Š” ๊ฒ€์ƒ‰๋ณด๋‹ค ๋‚ฎ์•„์š”. ๊ทธ๋Ÿฌ๋ฉด์„œ ์งˆ๋ฌธ ํ•˜๋‚˜์— 59.5์ดˆ๊ฐ€ ๊ฑธ๋ ค์š”:

๋™์ผ 329๋ฌธํ•ญ: Lemory 0.887@0.11์ดˆ vs qmd query 0.769@59.5์ดˆ

๊นƒํ—ˆ๋ธŒ ์Šคํƒ€๊ฐ€ ๊ฐ€์žฅ ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ ๋ ˆ์ด์–ด mem0์™€๋„ ๊ฐ™์€ ๋ฐ์ดํ„ฐ, ๊ฐ™์€ ๋ชจ๋ธ๋กœ
๋๊นŒ์ง€ ๋น„๊ตํ–ˆ์–ด์š”:

๊ฐ™์€ ์กฐ๊ฑด์—์„œ Lemory vs mem0, ์ „ ํ•ญ๋ชฉ

๋ช…๋ น ํ•œ ์ค„์ด๋ฉด ์‹œ์ž‘๋ผ์š”

pipx install "git+https://github.com/jwgo/lemory"
lemory up ~/Obsidian/MyVault     # ์„ค์ • โ†’ ์ƒ‰์ธ โ†’ ๋Œ€์‹œ๋ณด๋“œ๊นŒ์ง€ ํ•œ ๋ฒˆ์—
lemory ask "์š”์ƒˆ ๋‚ด๊ฐ€ ํ•˜๋˜ ๊ทธ ํ”„๋กœ์ ํŠธ ์–ด๋””๊นŒ์ง€ ํ–ˆ์ง€?"

์ž…๊ตฌ๋Š” lemory up ํ•˜๋‚˜์˜ˆ์š”. ์•Œ์•„์„œ ์ตœ์  ๋ชจ๋“œ๋ฅผ ๊ณจ๋ผ์š”. Gemini ํ‚ค๊ฐ€ ์žˆ์œผ๋ฉด
ํด๋ผ์šฐ๋“œ๋กœ, ์—†์œผ๋ฉด ๊ธฐ๋ณธ ํƒ‘์žฌ๋œ ์˜จ๋””๋ฐ”์ด์Šค ์Šคํƒ(ํ•œ๊ตญ์–ด ํŠนํ™”
e5-small-ko-v2 ์ž„๋ฒ ๋”ฉ + Gemma 4 ๋‹ต๋ณ€)์œผ๋กœ ๋Œ์•„์š”. ํ‚ค๋„, ๋ฐ๋ชฌ๋„, ์„ค์ •๋„
ํ•„์š” ์—†์–ด์š”. ๊ทธ๋ƒฅ lemory up๋งŒ ์น˜๋ฉด ๋ณผํŠธ ์œ„์น˜๋ฅผ ๋ฌผ์–ด๋ด์š”. ๋ชจ๋ธ๊ณผ ๊ฒ€์ƒ‰
์„ค์ •์€ ๋Œ€์‹œ๋ณด๋“œ ์„ค์ • ํƒญ์—์„œ ๋ฐ”๊ฟ”์š”.

๊ทธ๋‹ค์Œ์—” lemory daemon start ํ•œ ์ค„๋กœ ์ผœ๋‘์„ธ์š” (ํ„ฐ๋ฏธ๋„ ๋‹ซ์•„๋„ ์œ ์ง€ ยท
status/logs/stop์œผ๋กœ ๊ด€๋ฆฌ, ์ฃฝ์€ pidfile ์ž๋™ ์ •๋ฆฌ). ํฌ๊ทธ๋ผ์šด๋“œ๊ฐ€
์ข‹์œผ๋ฉด lemory serve๋„ ๊ทธ๋Œ€๋กœ์˜ˆ์š”. ์˜ต์‹œ๋””์–ธ ํ”Œ๋Ÿฌ๊ทธ์ธ, Claude/MCP,
์›น ๋Œ€์‹œ๋ณด๋“œ๊ฐ€ ์ „๋ถ€ ์—ฌ๊ธฐ์— ๋ถ™๊ณ , ๋…ธํŠธ๋ฅผ ๊ณ ์น˜๋ฉด ๋ช‡ ์ดˆ ์•ˆ์— ๋‹ค์‹œ ์ƒ‰์ธ๋ผ์š”.
lemory ask "..." ํ•œ ์ค„์€ ์„œ๋ฒ„ ์—†์ด๋„ ๋ผ์š”. ์–ธ์ œ ์ผœ๋‘๊ณ  ์–ธ์ œ ์žฌ์ƒ‰์ธํ•˜๋Š”์ง€๋Š”
๊ฐ€์ด๋“œ์— ์žˆ์–ด์š”.

์ƒ‰์ธํ•  ๋•Œ LLM์ด ์•„์˜ˆ ์•ˆ ๋Œ์•„์š”. ๋…ธํŠธ 1,000๊ฐœ ์ƒ‰์ธ = LLM ํ˜ธ์ถœ 0ํšŒ,
๋ช‡ ์ดˆ๋ฉด ๊ฒ€์ƒ‰์ด ๋ผ์š”. ๋…ธํŠธ 54๊ฐœ์— LLM ๊ทธ๋ž˜ํ”„ ๋งŒ๋“œ๋А๋ผ 45๋ถ„์”ฉ ์“ฐ๋Š” ์ œํ’ˆ๋“ค๊ณผ
๋น„๊ตํ•˜๋ฉด์š”:

1,469๊ฐœ ๋…ธํŠธ๊ฐ€ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•ด์งˆ ๋•Œ๊นŒ์ง€ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„

์ฒ˜์Œ์ด๋ผ๋ฉด ์—ฌ๊ธฐ๋ถ€ํ„ฐ: docs/GUIDE.ko.md ยท ๋งค์ผ ์“ฐ๋Š” ๋ฒ•:
docs/ROUTINE.ko.md (English: docs/GUIDE.md)

์–ด๋–ค AI์—๊ฒŒ๋“  ๊ธฐ์–ต์„ ์ค„ ์ˆ˜ ์žˆ์–ด์š”

claude mcp add lemory -- lemory mcp --vault ~/Obsidian/MyVault --client claude-desktop
lemory skill install claude-code    # ์ž˜ ์“ฐ๋Š” ๋ฒ•๊นŒ์ง€ ๊ฐ€๋ฅด์น˜๊ธฐ
ํด๋ผ์ด์–ธํŠธ ์„ค์ •
Claude Code / Desktop claude mcp add lemory -- lemory mcp --vault <vault> --client claude-code
Cursor .cursor/mcp.json์— ์ถ”๊ฐ€: {"lemory": {"command": "lemory", "args": ["mcp", "--vault", "<vault>", "--client", "cursor"]}}
Windsurf / VS Code / Codex CLI / ๋‹ค๋ฅธ MCP ํด๋ผ์ด์–ธํŠธ ๊ฐ™์€ ๋ช…๋ น: lemory mcp --vault <vault> --client <name>
์Šคํฌ๋ฆฝํŠธ / ์ง์ ‘ ๋งŒ๋“  ์—์ด์ „ํŠธ REST + X-Lemory-Client ํ—ค๋” (์•„๋ž˜ ์ฐธ๊ณ )

--client์— ์ ์€ ์ด๋ฆ„์ด ๋Œ€์‹œ๋ณด๋“œ ์‚ฌ์šฉ๋Ÿ‰์— ๊ทธ๋Œ€๋กœ ๋– ์š”. ๋ˆ„๊ฐ€ ๋‚ด ๊ธฐ์–ต์„
์ฝ๊ณ  ์“ฐ๋Š”์ง€ ํ•ญ์ƒ ์•Œ ์ˆ˜ ์žˆ์–ด์š”.

ํˆด์€ 19๊ฐœ์˜ˆ์š”. ์ฝ๊ธฐ: search_notes ยท ask_notes ยท recent_notes ยท
read_note ยท list_notes ยท related_notes ยท suggest_links(์•„์ง ์—ฐ๊ฒฐ
์•ˆ ๋œ ์–ธ๊ธ‰์„ ๋ฌธ์žฅ ์ฆ๊ฑฐ์™€ ํ•จ๊ป˜ ๋งํฌ๋กœ ์ œ์•ˆ) ยท vault_status ยท
vault_context(ํŽ˜๋ฅด์†Œ๋‚˜ยท์žฅ๋ฉด ์ง€๋„ยท๊ณ ์ • ์•ต์ปคยท์—ด๋ฆฐ ์ผ€์ด์Šคยท์ตœ๊ทผ ํ™œ๋™์„ ํ•œ ๋ฒˆ์—,
LLM ์—†์ด ์ˆ˜ ms). ์“ฐ๊ธฐ: save_memory(์ €์žฅํ•˜๋ฉด์„œ ์ค‘๋ณต ๊ฒ€์‚ฌ์™€ ๊ด€๋ จ ๋…ธํŠธ
์—ฐ๊ฒฐ๊นŒ์ง€) ยท append_note(๋ฎ์–ด์“ฐ๊ธฐ ๋ถˆ๊ฐ€, ๋ณผํŠธ ๋ฐ–์œผ๋กœ ๋ชป ๋‚˜๊ฐ). ๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜
์—์ด์ „ํŠธ ์ž‘์—… ๊ธฐ์–ต 8๊ฐœ.

์—์ด์ „ํŠธ ์ž‘์—… ๊ธฐ์–ต: remember โ†’ recall โ†’ reflect โ†’ resume

์—์ด์ „ํŠธ๊ฐ€ ๋งค๋ฒˆ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ฒŒ ํ•˜๋Š” 6๊ฐœ์˜ˆ์š”. ๊ธฐ์–ต ํŒŒํŽธ์€ ํƒ€์ž…์ด
์žˆ๊ณ 
(factยทdecisionยทerrorยทpreferenceยทprocedureยทrelationยทepisode),
์„ธ์…˜๋ณด๋‹ค ์˜ค๋ž˜ ์‚ฌ๋Š” ์ž‘์—… ์Šค๋ ˆ๋“œ์ธ case์— ๋ฌถ์—ฌ์š”.

ํˆด ํ•˜๋Š” ์ผ
remember ํƒ€์ž… ์žˆ๋Š” ํŒŒํŽธ ํ•˜๋‚˜ ์ €์žฅ (error๋Š” ํ•ด๊ฒฐ ํ‘œ์‹œ ์ „๊นŒ์ง€ open์œผ๋กœ ํƒœ์–ด๋‚˜์š”)
recall ์ข…๋ฅ˜ยท์ผ€์ด์Šคยท์ฃผ์ œยท์ƒํƒœยท์ตœ๊ทผ์„ฑ์œผ๋กœ ์ขํ˜€์„œ ํšŒ์ƒ ยท ์ขํžˆ๋Š” ๊ฑด ํ›„๋ณด ์„ ์ •์ด๊ณ  ์ˆœ์œ„๋Š” ์—ฌ์ „ํžˆ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰์ด ๋งค๊ฒจ์š”
reflect ์„ธ์…˜ ๋งˆ๋ฌด๋ฆฌ: ์š”์•ฝยท๊ฒฐ์ •ยทํ•ด๊ฒฐํ•œ ์˜ค๋ฅ˜ยท๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ episode ๋…ธํŠธ ํ•˜๋‚˜๋กœ, ๊ฑด๋“œ๋ฆฐ ๋…ธํŠธ์™€ [[์œ„ํ‚ค๋งํฌ]]๋กœ ์ด์–ด์„œ
resume_case ์Šค๋ ˆ๋“œ ๋ณต์›: ํƒ€์ž„๋ผ์ธ, ์ง€๊ธˆ๊นŒ์ง€์˜ ๊ฒฐ์ •, ์•„์ง ์•ˆ ํ’€๋ฆฐ ์˜ค๋ฅ˜, ์ง์ „ ์„ธ์…˜์ด ์ ์–ด๋‘” ๋‹ค์Œ ๋‹จ๊ณ„
list_cases "๋‚ด๊ฐ€ ๋ญ ํ•˜๋‹ค ๋ง์•˜์ง€?"
anchor_note ๋…ธํŠธ๋ฅผ ์ฝ”์–ด ๊ธฐ์–ต์œผ๋กœ ๊ณ ์ • ยท ์ดํ›„ ๋ชจ๋“  ์„ธ์…˜์˜ vault_context ๋งจ ์œ„์— ์ฃผ์ž…๋ผ์š”
consolidate_memory ํ”ผ๋ผ๋ฏธ๋“œ ์Šน๊ฒฉ: ์ƒˆ ๊ธฐ์–ต์„ ์žฅ๋ฉด ๋…ธํŠธ์™€ ํŽ˜๋ฅด์†Œ๋‚˜์— ๋…น์—ฌ์š” (์•„๋ž˜)
extract_skills ์™„๊ฒฐ๋œ ์ผ€์ด์Šค์—์„œ ์žฌ์‚ฌ์šฉ SKILL ๋ฌธ์„œ ์ถ”์ถœ ยท ๊ฒŒ์ดํŠธ๋ฅผ ๋ชป ๋„˜์œผ๋ฉด ์•„๋ฌด๊ฒƒ๋„ ์•ˆ ์จ์š” (๊ทธ๊ฒŒ ์ •๋‹ต์ธ ๊ฒฝ์šฐ๊ฐ€ ๋Œ€๋ถ€๋ถ„)

CLI์—์„œ๋„ ๊ฐ™์€ ๋ฃจํ”„๊ฐ€ ๋Œ์•„์š”:

lemory remember "ํฌํŠธ 8080์ด ์ด๋ฏธ ์ ์œ ๋˜์–ด ์„œ๋ฒ„๊ฐ€ ์•ˆ ๋œฌ๋‹ค" --type error --case ๋ฐฐํฌ
lemory recall ํฌํŠธ --type error      # ์ขํ˜€์„œ ํšŒ์ƒ
lemory cases                          # ๋ฏธํ•ด๊ฒฐ ๊ฐœ์ˆ˜๊นŒ์ง€ ๋ถ™์€ ์Šค๋ ˆ๋“œ ๋ชฉ๋ก
lemory case ๋ฐฐํฌ                      # ์Šค๋ ˆ๋“œ ์žฌ๊ฐœ
lemory anchor "memories/์–ธ์–ด ์„ ํ˜ธ.md"  # ์ฝ”์–ด ๊ธฐ์–ต์œผ๋กœ ๊ณ ์ •
lemory consolidate                    # L1 ์•„ํ†ฐ โ†’ L2 ์žฅ๋ฉด โ†’ L3 ํŽ˜๋ฅด์†Œ๋‚˜ ์Šน๊ฒฉ

๊ธฐ์–ต ํ”ผ๋ผ๋ฏธ๋“œ: ๋Œ€ํ™” โ†’ ์•„ํ†ฐ โ†’ ์žฅ๋ฉด โ†’ ํŽ˜๋ฅด์†Œ๋‚˜

TencentDB Agent Memory(11.3kโ˜…)๊ฐ€ ๊ฒ€์ฆํ•œ 4์ธต ๊ตฌ์กฐ๋ฅผ ๋ณผํŠธ ์œ„์—์„œ ๋Œ๋ ค์š”.
์„ธ์…˜ ๊ธฐ๋ก(L0)์—์„œ ์ฆ๋ฅ˜๋œ ์‚ฌ์‹ค(L1)์ด ์žฅ๋ฉด ๋…ธํŠธ(์žฅ๋ฉด/*.md ยท ๋งฅ๋ฝ๋ณ„ ์‚ด์•„
์žˆ๋Š” ์„œ์‚ฌ, ๊ฐœ์ˆ˜ ์ƒํ•œ์ด ์žˆ์–ด ์ƒˆ ํŒŒ์ผ ๋Œ€์‹  ํ†ตํ•ฉ์ด ๊ธฐ๋ณธ)์™€ ํŽ˜๋ฅด์†Œ๋‚˜
๋…ธํŠธ
(ํŽ˜๋ฅด์†Œ๋‚˜.md ยท 2000์ž ์บก, ์ ์ง„ ๊ฐฑ์‹ )๋กœ ์˜ฌ๋ผ๊ฐ€์š”. ์„ธ์…˜์ด ์‹œ์ž‘๋˜๋ฉด
vault_context๊ฐ€ ํŽ˜๋ฅด์†Œ๋‚˜์™€ ์žฅ๋ฉด ์ง€๋„๋ฅผ ๋จผ์ € ๋‚ด๋ฐ€๊ณ , ์žฅ๋ฉด ๋ณธ๋ฌธ์€
read_note๋กœ, ์›๋ณธ์€ ๊ฒ€์ƒ‰์œผ๋กœ ํ•„์š”ํ•  ๋•Œ๋งŒ ํŒŒ์š”. ์„œ๋ฒ„๋ฅผ ์ผœ๋‘๋ฉด
auto_consolidate = true ํ•œ ์ค„๋กœ ์Šน๊ฒฉ์ด ์ž๋™์ด ๋ผ์š” ยท ์ƒˆ ๊ธฐ์–ต์ด ๋ช‡ ๋ถ„
์กฐ์šฉํ•ด์ง€๋ฉด ์•Œ์•„์„œ ์žฅ๋ฉดยทํŽ˜๋ฅด์†Œ๋‚˜๋กœ ์˜ฌ๋ผ๊ฐ€์š”(์„ค์ • ํƒญ ํ† ๊ธ€).

์‹ค์ธกํ–ˆ์–ด์š”(RoleMemQA 8๊ด€๊ณ„ร—30์„ธ์…˜, ์žฌํ˜„: benchmarks/run_pyramid.py):
ํ•ญ์ƒ ์ฃผ์ž…๋˜๋Š” ๋ถ€ํŠธ ์ปจํ…์ŠคํŠธ๊ฐ€ 1,345ํ† ํฐ ยท ์›๋ฌธ ๋คํ”„(65,602ํ† ํฐ)์˜
1/48.8
์ธ๋ฐ ํŽ˜๋ฅด์†Œ๋‚˜ ์‚ฌ์‹ค ์งˆ๋ฌธ์˜ 34.7%๊ฐ€ ๊ทธ ์•ˆ์—์„œ ๋ฐ”๋กœ ๋‹ตํ˜€์š”. ์žฅ๋ฉด
ํ•˜๋‚˜๋งŒ ๋“œ๋ฆดํ•˜๋ฉด 66.7% @ 2,084ํ† ํฐ, ๋‚˜๋จธ์ง€๋Š” ๊ฒ€์ƒ‰์ธต์ด 100%๋กœ ๋ฐ›์•„์š”. ๊ทธ์ชฝ
๋ฐœํ‘œ์น˜(PersonaMem +59%)๋Š” ๋ฆฌํฌ์— ํ•˜๋„ค์Šค๊ฐ€ ์—†์–ด ์žฌํ˜„์ด ๋ถˆ๊ฐ€๋Šฅํ•ด์š” ยท ์šฐ๋ฆฌ
์ˆ˜์น˜๋Š” ์ „๋ถ€ ์Šคํฌ๋ฆฝํŠธ ํ•˜๋‚˜๋กœ ๋‹ค์‹œ ๋‚˜์™€์š”.

๊ทธ์ชฝ๊ณผ์˜ ์ฐจ์ด๋Š” ๋ฐ‘๋‹จ์ด์—์š”. ๊ทธ์ชฝ ์ฆ๋ฅ˜๋Š” OpenAI ํ˜ธํ™˜ API๊ฐ€ ํ•„์ˆ˜์ง€๋งŒ
(๊ทธ์ชฝ "๋กœ์ปฌ ๋ชจ๋“œ"๋„ ์›๊ฒฉ ๋ชจ๋ธ ํ˜ธ์ถœ์ด์—์š”), lemory consolidate๋Š” LLM์ด
์žˆ์œผ๋ฉด ์„œ์‚ฌ๋ฅผ ์“ฐ๊ณ  ์—†์œผ๋ฉด ๊ฒฐ์ •์  ํด๋ฐฑ์œผ๋กœ ๊ตฌ์กฐํ™” ๋‹ค์ด์ œ์ŠคํŠธ๋ฅผ ์จ์š” ยท
์™„์ „ ์˜คํ”„๋ผ์ธ์—์„œ๋„ ํ”ผ๋ผ๋ฏธ๋“œ๊ฐ€ ์‚ด์•„ ์žˆ์–ด์š”. ๊ทธ๋ฆฌ๊ณ  ์žฅ๋ฉดยทํŽ˜๋ฅด์†Œ๋‚˜๊ฐ€ ํ‰๋ฒ”ํ•œ
๋ณผํŠธ ๋…ธํŠธ๋ผ์„œ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฒ€์ƒ‰๊ณผ ๋งํฌ ๊ทธ๋ž˜ํ”„์— ๊ทธ๋Œ€๋กœ ์žกํ˜€์š”. ์†Œ์Šค ๋ ˆ๋ฒจ
๋ถ„์„๊ณผ ์ •๋ฉด ๋น„๊ต๋Š” docs/COMPETITIVE.md์— ์žˆ์–ด์š”.

MCP๋ฅผ ๋ชป ์“ฐ๋Š” ํด๋ผ์ด์–ธํŠธ๋„: ๋ฉ”๋ชจ๋ฆฌ ํ”„๋ก์‹œ

lemory serve๊ฐ€ OpenAI ํ˜ธํ™˜ /v1/chat/completions ๋ฅผ ํ•จ๊ป˜ ์—ด์–ด์š”.
baseURL๋งŒ ๋ฐ”๊พธ๋ฉด ์–ด๋–ค SDKยท์Šคํฌ๋ฆฝํŠธยทIDE ํ”Œ๋Ÿฌ๊ทธ์ธ์ด๋“  ๊ธฐ์–ต์ด ์ƒ๊ฒจ์š”:

from openai import OpenAI
client = OpenAI(base_url="http://127.0.0.1:8377/v1", api_key="unused-locally")
r = client.chat.completions.create(model="gpt-4o-mini",
    messages=[{"role": "user", "content": "์šฐ๋ฆฌ ๋ฐฐํฌ ํฌํŠธ๊ฐ€ ๋ช‡ ๋ฒˆ์ด์—ˆ์ง€?"}])
# โ†’ "ํ˜„์žฌ ๋ฐฐํฌ ํฌํŠธ๋Š” 15000์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ๋‚ด ํ”„๋ก์‹œ๊ฐ€ ์“ฐ๋Š”
#    8080๊ณผ์˜ ์ถฉ๋Œ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด์„œโ€ฆ"  (๋ณผํŠธ ๊ธฐ์–ต์œผ๋กœ ๊ทผ๊ฑฐ ์žˆ๋Š” ๋‹ต)

์š”์ฒญ์ด ์ง€๋‚˜๊ฐˆ ๋•Œ ํ”ผ๋ผ๋ฏธ๋“œ ๋ถ€ํŠธ(ํŽ˜๋ฅด์†Œ๋‚˜+์žฅ๋ฉด ์ง€๋„)์™€ ๊ทธ ํ„ด์˜ ๊ด€๋ จ ๊ธฐ์–ต์ด
์‹œ์Šคํ…œ ๋ฉ”์‹œ์ง€๋กœ ์ฃผ์ž…๋˜๊ณ , ์‘๋‹ต์ด ๋Œ์•„์˜ค๋ฉด ๋Œ€ํ™”๊ฐ€ chats/proxy/ ์„ธ์…˜
๋…ธํŠธ๋กœ ์ €์žฅ๋ผ์š”(proxy_capture = false๋กœ ๋”) ยท ๋‹ค์Œ consolidate๊ฐ€ ๊ทธ๊ฑธ
ํ”ผ๋ผ๋ฏธ๋“œ๋กœ ์˜ฌ๋ ค์š”. ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ๊ฐ€ ๋ชจ๋‘ ๊ณต์งœ๋กœ ๋ถ™์–ด์š”. ์ŠคํŠธ๋ฆฌ๋ฐ์€ ๊ทธ๋Œ€๋กœ
ํ†ต๊ณผํ•˜๊ณ , ์—…์ŠคํŠธ๋ฆผ ํ‚ค๋Š” ์„ค์ •์—์„œ๋งŒ ์ฝ์–ด์š”(ํด๋ผ์ด์–ธํŠธ Authorization์€
์ „๋‹ฌํ•˜์ง€ ์•Š์•„์š” ยท ๋กœ์ปฌ ํฌํŠธ๊ฐ€ ์ƒˆ์–ด๋„ ๊ณผ๊ธˆ ํ‚ค๋Š” ์•ˆ ์ƒˆ์š”). ์—…์ŠคํŠธ๋ฆผ์€
proxy_upstream์œผ๋กœ ๋ฐ”๊ฟ”์š” ยท ๊ธฐ๋ณธ OpenAI์ง€๋งŒ OpenAI ํ˜ธํ™˜์ด๋ฉด ๋ญ๋“  ๋ผ์š”.
Ollama(http://localhost:11434/v1)๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฉด ๋ชจ๋ธ๊นŒ์ง€ ํฌํ•จํ•ด ์™„์ „
๋กœ์ปฌ์ธ ๋ฉ”๋ชจ๋ฆฌ ํ”„๋ก์‹œ
๊ฐ€ ๋ผ์š”.

ํ•ต์‹ฌ์€ ํŒŒํŽธ์˜ ์ •์ฒด์˜ˆ์š”. ๋‚จ์˜ Postgres ์•ˆ row๊ฐ€ ์•„๋‹ˆ๋ผ ๋‚ด ๋ณผํŠธ์˜ ๋งˆํฌ๋‹ค์šด
๋…ธํŠธ์˜ˆ์š”. ์“ฐ๋Š” ์ฆ‰์‹œ ์˜ต์‹œ๋””์–ธ์— ๋œจ๊ณ , ์†์œผ๋กœ ๊ณ ์น˜๊ณ , ๊นƒ diff๊ฐ€ ๋‚˜๊ณ , ๋‚˜๋จธ์ง€
๋…ธํŠธ์™€ ๊ฐ™์€ ์ธ๋ฑ์Šคยท๊ฐ™์€ ๋งํฌ ๊ทธ๋ž˜ํ”„์— ์‚ด์•„์š” ยท reflect๊ฐ€ ๋งŒ๋“  ์—ํ”ผ์†Œ๋“œ๋Š”
์ธ์šฉํ•œ ๋…ธํŠธ์™€ ์ด์–ด์ง„ ์ง„์งœ ๊ทธ๋ž˜ํ”„ ๋…ธ๋“œ์˜ˆ์š”. ๊ณ„์ •๋„ ํŒŒํŽธ ํ•œ๋„๋„ ์—†์–ด์š”. ์ƒํ•œ์€
๋””์Šคํฌ์˜ˆ์š”. ํƒ€์ž… ์ธต์€ ์ขํž ๋ฟ ์ €์žฅ์†Œ๋ฅผ ์ชผ๊ฐœ์ง€ ์•Š์•„์„œ search_notes๋Š” ์—ฌ์ „ํžˆ
์ „๋ถ€ ๋ด์š”.

ํŒŒํŽธ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” ํ‰๋ฒ”ํ•œ frontmatter๋ผ์„œ ์Šค์ฝ”ํ•‘์ด ์–ด๋””์„œ๋‚˜ ํ†ตํ•ด์š” ยท CLI๋“ ,
์›น ๊ฒ€์ƒ‰์ฐฝ์ด๋“ , search_notes๋“  type:error case:๋ฐฐํฌ.

์„ธ์…˜ ๊ธฐ์–ต์€ ์ž๋™์œผ๋กœ ๋‚จ๊ฒจ์š” (๋ช…๋ น ํ•˜๋‚˜)

lemory hooks install claude-code

์ด์ œ Claude Code ์„ธ์…˜์ด ๋๋‚  ๋•Œ๋งˆ๋‹ค ๊ธฐ์–ตํ•  ๋งŒํ•œ ๊ฒฐ์ •ยท์‚ฌ์‹คยท๋ฏธ๊ฒฐ ์‚ฌํ•ญ์ด
๋‚ ์งœ ๋ถ™์€ ๋…ธํŠธ ํ•˜๋‚˜๋กœ ๋ณผํŠธ์— ์ €์žฅ๋ผ์š”. ๋ถ€์ง€๋Ÿฐํ•  ํ•„์š”๊ฐ€ ์—†์–ด์š”. ๋‹ค๋ฅธ
ํ›… ๊ธฐ๋ฐ˜ ๋„๊ตฌ๋“ค๊ณผ ๋‹ฌ๋ฆฌ, ์ €์žฅ๋œ ๊ฑด ์ „๋ถ€ ๋Œ€์‹œ๋ณด๋“œ ํ”ผ๋“œ์— ์ถœ์ฒ˜์™€ ๋˜๋Œ๋ฆฌ๊ธฐ
๋ฒ„ํŠผ๊ณผ ํ•จ๊ป˜ ๋– ์š”. ์ˆ˜๋™์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด CLAUDE.md์— ์ด๋ ‡๊ฒŒ ์ ์–ด๋„
๋ผ์š”:

์„ธ์…˜ ์‹œ์ž‘ ์‹œ lemory์˜ vault_context๋ฅผ ํ•œ ๋ฒˆ ๋ถˆ๋Ÿฌ ์ƒํ™ฉ์„ ํŒŒ์•…ํ•ด๋ผ. ๊ฒฐ์ •์ด๋‚˜
๊ธฐ์–ตํ•  ์‚ฌ์‹ค, ์„ ํ˜ธ๊ฐ€ ์ •ํ•ด์ง€๋ฉด save_memory๋กœ ์ €์žฅํ•ด๋ผ(๊ฐ„๊ฒฐํ•˜๊ฒŒ, ๋…ธํŠธ๋‹น ๊ธฐ์–ต
ํ•˜๋‚˜). ๋‚ด ๋…ธํŠธ๊ฐ€ ์ด๋ฏธ ๋‹ตํ•˜๋Š” ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ๋ฌป๊ธฐ ์ „์— search_notes๋กœ ๊ฒ€์ƒ‰ํ•ด๋ผ.

ํ”„๋ผ์ด๋ฒ„์‹œ๋Š” ํŒŒ์ผ ์†์„ฑ์ด์—์š”. ๋…ธํŠธ ๋งจ ์œ„์— lemory: false ํ•œ ์ค„๋งŒ
์ ์œผ๋ฉด ๊ทธ ๋…ธํŠธ๋Š” ์ƒ‰์ธ๋„, ๊ฒ€์ƒ‰๋„, ์–ด๋–ค ๋ชจ๋ธ๋กœ๋„ ์ „์†ก๋˜์ง€ ์•Š์•„์š”. ์ด๋ฏธ
์ƒ‰์ธ๋๋˜ ๋…ธํŠธ๋ผ๋ฉด ์ด ํ•œ ์ค„์ด ๋นผ์ค˜์š”.

ํ•œ ๋ฒˆ ๋งํ•˜๋ฉด, ๊ธฐ์–ตํ•ด์š”

1์ผ์ฐจ: ๋Œ€ํ™”๊ฐ€ ์„ธ์…˜ ๋…ธํŠธ๋กœ ์ž๋™ ์ €์žฅ. 30์ผ์ฐจ: ๋น„์„œ๊ฐ€ 4ms ๋งŒ์— ์ถœ์ฒ˜์™€ ํ•จ๊ป˜ ๊ทธ ์‚ฌ์‹ค์„ ์ฐพ์•„์˜ด.

๋น„์„œ๋Š” ๋Œ€ํ™”ํ•˜๋ฉด์„œ ์ฝ๊ณ  ์จ์š”. "โ€ฆ๋ผ๊ณ  ๊ธฐ์–ตํ•ด์ค˜"๋ผ๊ณ  ๋งํ•˜๋ฉด ๊ทธ ์ž๋ฆฌ์—์„œ
๋…ธํŠธ๋กœ ์ €์žฅ๋ผ์š”(์Šน์ธ์ œ๋ฅผ ์ผฐ๋‹ค๋ฉด ๋Œ€๊ธฐ์—ด๋กœ ๊ฐ€์š”). "๊ทธ๊ฑด ์–ธ์ œ์˜€์ง€?" ๊ฐ™์€ ํ›„์†
์งˆ๋ฌธ์€ ์•ž ์งˆ๋ฌธ๊ณผ ๋ฌถ์–ด์„œ ์ฐพ์•„์š”. ์ฒซ ๋Œ€ํ™”์—” ๋ณผํŠธ ์ƒํ™ฉ ์š”์•ฝ์ด ์ž๋™์œผ๋กœ
๋“ค์–ด๊ฐ€๊ณ , /๊ฒ€์ƒ‰ /๊ธฐ์–ต /์ตœ๊ทผ ๋ช…๋ น๋„ ์“ธ ์ˆ˜ ์žˆ์–ด์š”.

๋น„์„œ์™€ ๋‚˜๋ˆˆ ๋Œ€ํ™”๋Š” chats/ ํด๋”์— ๋‚ ์งœ ๋ถ™์€ ๋…ธํŠธ๋กœ ์ž๋™ ์ €์žฅ๋ผ์š”.
์—ด์–ด๋ณด๊ณ , ๊ณ ์น˜๊ณ , ์ง€์šธ ์ˆ˜ ์žˆ๋Š” ํ‰๋ฒ”ํ•œ ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ์ด์—์š”. ๊ทธ ํˆฌ๋ช…ํ•จ์ด
๊ณง ๋˜๋Œ๋ฆฌ๊ธฐ ๋ฒ„ํŠผ์ด์—์š”. ํ•œ ๋‹ฌ ๋’ค์— "๋‚ด ์—ฌ๋™์ƒ ์ด๋ฆ„ ๋ญ๋žฌ์ง€?"๋ผ๊ณ  ๋ฌผ์œผ๋ฉด
์ถœ์ฒ˜์™€ ํ•จ๊ป˜ ์ˆ˜ ms ๋งŒ์— ๋Œ์•„์™€์š”. ์œ„์— ์–น์„ ์ˆ˜ ์žˆ๋Š” ์„ ํƒ ๊ธฐ๋Šฅ ๋‘ ๊ฐ€์ง€:

  • lemory distill: ์›ํ•  ๋•Œ๋งŒ ๋Œ๋ฆฌ๋Š” ํ›„์ฒ˜๋ฆฌ์˜ˆ์š”. ์˜จ๋””๋ฐ”์ด์Šค Gemma๊ฐ€
    ๋Œ€ํ™”๋ฅผ ํŒฉํŠธ ์š”์•ฝ ๋…ธํŠธ๋กœ ์ •๋ฆฌํ•˜๊ณ  ์ถœ์ฒ˜๋ฅผ [[์œ„ํ‚ค๋งํฌ]]๋กœ ๋‚จ๊ฒจ์š”. ์ง€์ €๋ถ„ํ•œ
    ์ฑ„ํŒ… ๋ฒค์น˜ ์‹ค์ธก์œผ๋กœ 1์œ„ ์ •๋‹ต ์กด์žฌ์œจ +3.1%p. ํ•œ๊ณ„๊นŒ์ง€
    BENCHMARKS ยง7e์— ์žˆ์–ด์š”.
  • ์Šคํ‚ฌ(lemory skill install)์€ ์™ธ๋ถ€ ์–ด์‹œ์Šคํ„ดํŠธ์—๊ฒŒ ๊ฐ™์€ ์Šต๊ด€์„
    ๊ฐ€๋ฅด์ณ์š”. ์„ธ์…˜์ด ๋๋‚˜๊ธฐ ์ „์— lemory remember๋กœ ์ €์žฅํ•˜๋ผ๊ณ ์š”.

์—…๋ฌด ๋น„์„œ ์ชฝ๋„ ๋”ฐ๋กœ ์ธก์ •ํ–ˆ์–ด์š”. AgentMemQA(ยง7f)๋Š”
12์ฃผ์น˜ ์—…๋ฌด ์„ธ์…˜(์˜ํ•œ ํ˜ผ์šฉ ๊ธฐ์ˆ  ๋Œ€ํ™”, ์ฝ”๋“œ๋ธ”๋ก, ์—๋Ÿฌ ๋กœ๊ทธ)์— "๋ฒˆ๋ณต๋œ
๊ฒฐ์ •" ํ•จ์ •์„ ์‹ฌ์€ ๋ฒค์น˜๋งˆํฌ์˜ˆ์š”. ํ‚ค ์—†์ด doc@1 0.978, ๋ฒˆ๋ณต ํ•จ์ •์— ์†์€
๋น„์œจ 0. ๋ฐ˜๋Œ€ ๋ฐœ๊ฒฌ๋„ ๊ทธ๋Œ€๋กœ ์ ์—ˆ์–ด์š”. ๋ฆฌ๋žญ์ปค(์žฌ์ •๋ ฌ AI)๋Š” ์‹œ๊ฐ„ ๊ฐœ๋…์ด
์—†์–ด์„œ ๊ฐฑ์‹ ๋œ ์‚ฌ์‹ค์„ ์˜› ๊ฐ’์œผ๋กœ ๋˜๋Œ๋ ค์š”(0.80โ†’0.50). ์‹œ๊ฐ„ ๋ณด์ •์„ ๋ถ™์—ฌ๋„
์•ˆ ๋๊ณ ์š”. ๊ทธ๋ž˜์„œ ๊ธฐ๋ณธ์œผ๋กœ ๊บผ์ ธ ์žˆ์–ด์š”.

์ง€์ €๋ถ„ํ•œ ์‹ค์ „ ์ฑ„ํŒ…๋„ ๊ฐ€์ •์ด ์•„๋‹ˆ๋ผ ์ธก์ •์ด์—์š”. RoleMemQA-messy๊ฐ€
๋ฒˆ๋ณตยท๋†๋‹ดยท์žก๋‹ด ์˜ค์—ผ์„ ์‹ฌ์—ˆ๊ณ , ์ „์ฒด doc@8 0.977 ยท ์—ํ”ผ์†Œ๋“œ ํšŒ์ƒ doc@8
0.875(์ •๋ณด๋Ÿ‰ prior ์ „ 0.792). ์—ํ”ผ์†Œ๋“œ ์งˆ๋ฌธ("์šฐ๋ฆฌ ์•ฝ์†์ด ๋ญ์˜€์ง€?")์€
์–ดํœ˜ ๋ณ€๋ณ„๋ ฅ์ด 0์ด๋ผ, ๊ทธ๋Ÿฐ ์งˆ๋ฌธ์—์„œ๋งŒ ๋ฒกํ„ฐ ๋ ˆ๊ทธ๋ฅผ ํฌ์†Œ ๋‚ด์šฉ ์ •๋ณด๋Ÿ‰์œผ๋กœ
์žฌ์ •๋ ฌํ•ด ํ•„๋Ÿฌ("๊ธฐ์–ตํ•ด ๋‘˜๊ฒŒ, ์•ฝ์†!")๊ฐ€ ์•„๋‹ˆ๋ผ ์ง„์งœ ํŒฉํŠธ๋ฅผ ์˜ฌ๋ ค์š”. ์ฐธ์กฐํ˜•
์งˆ๋ฌธ(KorQuADยทAgentMemQA)์—” ๊ฒŒ์ดํŠธ๊ฐ€ ์•ˆ ๊ฑธ๋ ค ์ˆ˜์น˜๊ฐ€ ๊ทธ๋Œ€๋กœ์˜ˆ์š”. ๊ฐœ์„ /ํ›„ํ‡ด
๋‚ด์—ญ ์ „์ฒด๊ฐ€ ยง7e์— ์žˆ์–ด์š”.

๋กœ๊ทธ ํŒŒ์ผ์ด ์•„๋‹ˆ๋ผ ๋‘ ๋ฒˆ์งธ ๋‡Œ์˜ˆ์š”

์ค‘๋ณต ๊ธฐ์–ต์ด ์œ„ํ‚ค๋งํฌ๋กœ ํ‘œ์‹œ๋˜๊ณ , ์—ฐ๊ฒฐ ์•ˆ ๋œ ์–ธ๊ธ‰์ด ๋งํฌ ์ œ์•ˆ์œผ๋กœ ๋‚˜์˜ค๋Š” ์žฅ๋ฉด

์‚ฌ๋žŒ์ด ์“ด ๋…ธํŠธ์—๋Š” ์•„๋ž˜ ์žฅ์น˜๊ฐ€ ํ•˜๋‚˜๋„ ํ•„์š” ์—†์–ด์š”. ํŒŒ์ผ์„ ๋ณผํŠธ์— ๋„ฃ์œผ๋ฉด
๋‹ค์Œ ์งˆ๋ฌธ๋ถ€ํ„ฐ ๋ฐ”๋กœ ๊ฒ€์ƒ‰๋ผ์š”. ์•„๋ž˜ ๊ธฐ๋Šฅ๋“ค์€ ๊ธฐ๊ณ„๊ฐ€ ์“ฐ๋Š” ๋…ธํŠธ๋ฅผ ์œ„ํ•œ
๊ฑฐ์˜ˆ์š”.

  • save_memory๋Š” ์ •๋ฆฌํ•˜๋ฉด์„œ ์ €์žฅํ•ด์š”. ์ƒˆ ๊ธฐ์–ต์ด ๋“ค์–ด์˜ฌ ๋•Œ๋งˆ๋‹ค ๋ณผํŠธ๊ฐ€
    ์ด๋ฏธ ์•„๋Š” ๊ฒƒ๊ณผ ๋น„๊ตํ•ด์š”. ๊ฑฐ์˜ ๊ฐ™์œผ๋ฉด possible_duplicate_of:๋กœ ํ‘œ์‹œํ•˜๊ณ ,
    ๊ด€๋ จ ์žˆ์œผ๋ฉด related: ์œ„ํ‚ค๋งํฌ๋กœ ์ด์–ด์š”. ์ง€์šฐ๊ณ  ๋‹ค์‹œ ์“ฐ๋Š” ๋ฐฉ์‹(mem0์‹)
    ๋Œ€์‹ , ์—ฐ๊ฒฐ๋งŒ ํ•˜๊ณ  ๊ฒฐ์ •์€ ๋‹น์‹ ์—๊ฒŒ ๋‚จ๊ฒจ์š”.
  • lemory suggest-links: ์„œ๋กœ๋ฅผ ์–ธ๊ธ‰ํ•˜๋Š”๋ฐ ์—ฐ๊ฒฐ์€ ์•ˆ ๋œ ๋…ธํŠธ๋“ค์„
    ๊ทผ๊ฑฐ ๋ฌธ์žฅ๊ณผ ํ•จ๊ป˜ ์•Œ๋ ค์ค˜์š”. LLM ์—†์ด, ์ƒ‰์ธ์ด ์ด๋ฏธ ๋งŒ๋“  ๊ทธ๋ž˜ํ”„๋ฅผ ์ฝ์„
    ๋ฟ์ด์—์š”.
  • lemory graph: ๋ณผํŠธ ์ „์ฒด๋ฅผ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ HTML ํ•œ ์žฅ์œผ๋กœ ๋‚ด๋ณด๋‚ด์š”.
    ๋…ธํŠธ 1,469๊ฐœ, ๊ฐ„์„  24,850๊ฐœ๊ฐ€ ์•ฝ 1์ดˆ. ์š”์ฆ˜ ๊ทธ๋ž˜ํ”„ ๋„๊ตฌ๋“ค์€ ๊ฐ™์€ ๊ฑธ
    ๋งŒ๋“œ๋Š” ๋ฐ ํŒŒ์ผ๋งˆ๋‹ค LLM์„ ๋Œ๋ ค์š”.
  • lemory drift: "๋‚ด ๊ธฐ์–ต์ด ์•„์ง ํ˜„์‹ค๊ณผ ๋งž๋‚˜?"๋ฅผ ํ™•์ธํ•ด์š”. ๊นจ์ง„
    ๋งํฌ, ์‚ฌ๋ผ์ง„ ํŒŒ์ผ, ๋ฐฉ์น˜๋œ ์ค‘๋ณต ํ‘œ์‹œ๋ฅผ ์ฐพ๊ณ , --prompt๋ฅผ ๋ถ™์ด๋ฉด
    ์—์ด์ „ํŠธํ•œํ…Œ ๊ทธ๋Œ€๋กœ ๋„˜๊ธธ ์ˆ˜๋ฆฌ ์ง€์‹œ๋ฌธ์œผ๋กœ ๋งŒ๋“ค์–ด์ค˜์š”. ํ† ํฐ 0๊ฐœ.
    (์ด ์•„์ด๋””์–ด๋ฅผ ๊ฐœ์ฒ™ํ•œ mex์—
    ๊ณ ๋งˆ์›€์„ ์ „ํ•ด์š”.)
  • lemory conflicts: "๋‚ด ๊ธฐ์–ต๋ผ๋ฆฌ ์„œ๋กœ ๋งž๋‚˜?"๋ฅผ ํ™•์ธํ•ด์š”. ๊ฑฐ์˜ ๊ฐ™์€
    ๋ง์ธ๋ฐ ์ˆซ์ž๊ฐ€ ๋‹ค๋ฅด๊ฑฐ๋‚˜, ์„œ๋กœ ๋ถ€์ •ํ•˜๊ฑฐ๋‚˜, ์•„์˜ˆ ์ค‘๋ณต์ธ ๋…ธํŠธ ์Œ์„ ์ฐพ์•„์š”.
    ์ด๋ฏธ ์žˆ๋Š” ์ƒ‰์ธ ์œ„์—์„œ ์ฝ”์‚ฌ์ธ์œผ๋กœ ์ฐพ์œผ๋‹ˆ LLM 0ํšŒ. (drift๊ฐ€ ๊ธฐ์–ต ๋Œ€
    ํ˜„์‹ค์ด๋ผ๋ฉด conflicts๋Š” ๊ธฐ์–ต ๋Œ€ ๊ธฐ์–ต์ด์—์š”.)
  • lemory search --fast: ์ฆ‰๋‹ต ๊ฒฝ๋กœ์˜ˆ์š”. ์ž„๋ฒ ๋”ฉ ์—†์ด ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰ +
    ์˜คํƒ€ ๊ต์ • + ์ œ๋ชฉ/์ตœ์‹ ์„ฑ ๋ถ€์ŠคํŠธ๋งŒ์œผ๋กœ 3.8ms์— recall@1 0.975
    (ํ•˜์ด๋ธŒ๋ฆฌ๋“œ๋Š” 21ms์— 0.967์ด์—์š”. ๋ง ๋ฐ”๊ฟ” ๋ฌป๊ธฐ, ๋‹ค๋ฅธ ์–ธ์–ด, ๋ฉ€ํ‹ฐํ™‰์—”
    ๋ฒกํ„ฐ๊ฐ€ ํ•„์š”ํ•ด์„œ ๊ธฐ๋ณธ์€ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ์˜ˆ์š”). ํƒ€์ดํ•‘ ์ฆ‰์‹œ ๊ฒ€์ƒ‰์ฐฝ์šฉ์ด์—์š”.
  • ์‹œ๊ฐ„์„ ์ดํ•ดํ•ด์š”. "์š”์ƒˆ ๋‚ด๊ฐ€ ํ•˜๋˜ ๊ทธ๊ฑฐ ๋ญ์˜€์ง€?"์—” ์ตœ์‹  ์‚ฌ์‹ค์„,
    "3์›”์— ์ฝ๋˜ ์ฑ…์€?"์—” ๊ทธ๋•Œ ๊ธฐ๋ก์„ ์ฐพ์•„์™€์š”.

AI๊ฐ€ ์“ด ๊ฑด ์ „๋ถ€ ๋Œ€์‹œ๋ณด๋“œ AI ๋ฉ”๋ชจ๋ฆฌ ํ”ผ๋“œ์— "๋ˆ„๊ฐ€ ์ผ๋Š”์ง€"์™€ ๋˜๋Œ๋ฆฌ๊ธฐ
๋ฒ„ํŠผ๊ณผ ํ•จ๊ป˜ ๋– ์š”(๋˜๋Œ๋ฆฌ๋ฉด ์˜ต์‹œ๋””์–ธ ํœด์ง€ํ†ต .trash๋กœ ๊ฐ€์š”. ์‚ฌ๋žŒ์ด ์“ด
๋…ธํŠธ๋Š” ์•„์˜ˆ ๋˜๋Œ๋ฆฌ๊ธฐ ๋Œ€์ƒ์ด ์•„๋‹ˆ์—์š”). ๋ชจ๋“  ์งˆ์˜๋„ ์ถœ์ฒ˜์™€ ํ•จ๊ป˜ ๋‚จ์•„์š”.
์ด๊ฒŒ ๋ฏธ๋“ค์›จ์–ด์˜ ์•ฝ์†์ด์—์š”. ์•„๋ฌด๊ฒƒ๋„ ๋ชฐ๋ž˜ ์ง€๋‚˜๊ฐ€์ง€ ์•Š์•„์š”.

Claude๊ฐ€ ๊ธฐ์–ต์„ ์ €์žฅํ•˜๋ฉด claude-desktop ์ถœ์ฒ˜์˜ ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ๋กœ ํ”ผ๋“œ์— ๋œจ๊ณ  ๋˜๋Œ๋ฆฌ๊ธฐ ๋ฒ„ํŠผ์ด ๋ถ™๋Š” ์žฅ๋ฉด

๋ฐ๋ชจ ๋ชจ์Œ, ์ „๋ถ€ ์‹ค์ œ๋กœ ๋Œ์•„๊ฐ€๋Š” ํ™”๋ฉด์ด์—์š”

๊ฐ ํด๋ฆฝ์€ ์ž‘์€ ํ•œ๊ตญ์–ด ๋ฐ๋ชจ ๋ณผํŠธ์—์„œ ์‹ค์ œ CLI ์ถœ๋ ฅ์„ ๊ธ€์ž ๊ทธ๋Œ€๋กœ ๋‹ค์‹œ
์ฐ์€ ๊ฑฐ์˜ˆ์š”. ์žฌ์ƒ์„ฑ ์Šคํฌ๋ฆฝํŠธ๋Š” docs/assets/make_gifs.py์— ์žˆ๊ณ , ์บก์ฒ˜
์›๋ฌธ๋„ ์Šคํฌ๋ฆฝํŠธ ์•ˆ์— ์žˆ์–ด์š”. ๋ชฉ์—…์€ ์—†์–ด์š”.

์ฆ‰๋‹ต ๊ฒ€์ƒ‰ --fast ยท ์ž„๋ฒ ๋”ฉ 0ํšŒ, 3.8ms
๋ชจ์ˆœ ํƒ์ง€ lemory conflicts ยท ๊ธฐ์–ต vs ๊ธฐ์–ต
AI ์“ฐ๊ธฐ ์Šน์ธ pending โ†’ approve
๋“œ๋ฆฌํ”„ํŠธ ๊ฐ์ง€ lemory drift ยท ๊ธฐ์–ต vs ํ˜„์‹ค
๋ฒ”์œ„ ์—ฐ์‚ฐ์ž tag: folder: path:
์‹œ๊ฐ„ ์ธ์ง€ "์š”์ƒˆ ์ž‘์—…ํ•˜๋˜โ€ฆ" โ†’ ์ตœ์‹  ๊ฒฐ์ • 1์œ„
์˜คํƒ€ ๊ต์ • FoundatoinDB โ†’ FoundationDB
๋Œ€๊ทœ๋ชจ ๊ฒ€์ฆ KorQuAD 9,663๋ฌธ๋‹จ ร— 60,407์งˆ๋ฌธ

๋Œ€์‹œ๋ณด๋“œ

lemory serve โ†’ 127.0.0.1:8377. ์˜ต์‹œ๋””์–ธ์„ ๋˜ ๋งŒ๋“  ๊ฒŒ ์•„๋‹ˆ๋ผ,
๋ฏธ๋“ค์›จ์–ด์— ๋ญ๊ฐ€ ์˜ค๊ฐ”๋Š”์ง€ ๋ณด๋Š” ํ™”๋ฉด์ด์—์š”.

  • ํ˜„ํ™ฉ: ํƒ€์ž„๋ผ์ธ์ด์—์š”. AI ๋ฉ”๋ชจ๋ฆฌ ํ”ผ๋“œ(๋˜๋Œ๋ฆฌ๊ธฐ ํฌํ•จ), ์ตœ๊ทผ ์งˆ์˜์™€
    ์ถœ์ฒ˜, ํด๋ผ์ด์–ธํŠธ๋ณ„ ์‚ฌ์šฉ๋Ÿ‰, ์ƒ‰์ธ ํ™œ๋™์„ ๋ณผ ์ˆ˜ ์žˆ์–ด์š”.
  • ์ง€์‹: ๋…ธํŠธ ํ•˜๋‚˜ํ•˜๋‚˜์˜ ์ƒ์„ธ์˜ˆ์š”. ์ƒ‰์ธ๋œ ์ฒญํฌ, ๋“ค์–ด์˜ค๊ณ  ๋‚˜๊ฐ€๋Š” ๋งํฌ,
    ์˜ต์‹œ๋””์–ธ ๊ทธ๋ž˜ํ”„์— ์—†๋Š” '์–ธ๊ธ‰' ๊ฐ„์„ ๊นŒ์ง€ ๋ณด์ด๋Š” ๋กœ์ปฌ ๊ทธ๋ž˜ํ”„, ๊ด€๋ จ ๋…ธํŠธ์š”.
  • ๊ฑด๊ฐ•: ์Šน์ธ ๋Œ€๊ธฐ ๊ธฐ์–ต, ๋ชจ์ˆœ ์Œ, ๋“œ๋ฆฌํ”„ํŠธ, ๋งํฌ ์ œ์•ˆ์„ ํ•œ ํ™”๋ฉด์—์„œ
    ์ฒ˜๋ฆฌํ•ด์š”.
  • ๊ฒ€์ƒ‰: ํ•˜์ด๋ธŒ๋ฆฌ๋“œ/๋ฒกํ„ฐ/ํ‚ค์›Œ๋“œ๋ฅผ ๋ฐ”๊ฟ”๊ฐ€๋ฉฐ ์ ์ˆ˜์™€ ์†๋„๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š”
    ์‹คํ—˜์‹ค์ด์—์š”.
  • ์„ค์ •: ๊ฒ€์ƒ‰ ์˜ต์…˜์„ ๋ฐ”๋กœ ์ ์šฉํ•ด์š”. ํƒ€์ž„๋ผ์ธ ๊ธฐ๋ก ์—ฌ๋ถ€๋„ ์„ค์ •์ด๊ณ 
    (event_log), ์ „๋ถ€ ๋‚ด SQLite ํŒŒ์ผ์—๋งŒ ๋‚จ์•„์š”.
์ง€์‹ ํƒญ: ๋…ธํŠธ ์ƒ์„ธ, ๋กœ์ปฌ ๊ทธ๋ž˜ํ”„, ๊ด€๋ จ ๋…ธํŠธ

ํŒŒ์ผ vs ํ–‰: ๊ฐœ์ธ ์ง€์‹์—๋Š” ํŒŒ์ผ์ด ์ด๊ฒจ์š”

Lemory์™€ ๊ฐ€์žฅ ๋น„์Šทํ•œ ๊ฑด mem0์˜ OpenMemory(๋Œ€์‹œ๋ณด๋“œ ์žˆ๋Š” ๋กœ์ปฌ MCP
๋ฉ”๋ชจ๋ฆฌ)์˜ˆ์š”. ์ฐจ์ด๋Š” "๊ธฐ์–ต"์ด ๋ฌด์—‡์ด๋ƒ์˜ˆ์š”.

Lemory OpenMemory (mem0) supermemory ์…€ํ”„ํ˜ธ์ŠคํŠธ basic-memory qmd
๊ธฐ์–ต์ด๋ž€ ๋‚ด ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ Postgres+Qdrant์˜ ํ–‰ ์ „์šฉ ์ €์žฅ์†Œ์˜ ๋ ˆ์ฝ”๋“œ ๋งˆํฌ๋‹ค์šด ํŒŒ์ผ (์ฝ๊ธฐ ์ „์šฉ ์ธ๋ฑ์Šค)
์‹คํ–‰ ํ˜•ํƒœ ํ”„๋กœ์„ธ์Šค 1๊ฐœ, SQLite 1๊ฐœ Docker: Postgres + Qdrant + UI ๋ฐ”์ด๋„ˆ๋ฆฌ + ์™ธ๋ถ€ ์ž„๋ฒ ๋”ฉ pip ํŒจํ‚ค์ง€ bun CLI
๊ธฐ์กด ๋…ธํŠธ๋ฅผ ์ฝ๋‚˜ ๋„ค, ๊ทธ๊ฒŒ ์กด์žฌ ์ด์œ  ์•„๋‹ˆ์š” (๋Œ€ํ™”์—์„œ ์ถ”์ถœ) ์—…๋กœ๋“œ ๋ถ€๋ถ„์  ๋„ค
์ƒ‰์ธ LLM ํ˜ธ์ถœ 0 ๋Œ€ํ™”๋งˆ๋‹ค API ์ชฝ 0 0
๋Œ€์‹œ๋ณด๋“œ ํƒ€์ž„๋ผ์ธ + ๋˜๋Œ๋ฆฌ๊ธฐ + ํด๋ผ์ด์–ธํŠธ ๊ธฐ์–ต CRUD UI ์ฝ˜์†” ์—†์Œ ์—†์Œ
๊ฒ€์ƒ‰ (์ง์ ‘ ์ธก์ •) ๋ฉ€ํ‹ฐํ™‰ 1.000 ยท ์•ฝ 3ms 0.579 ยท 212ms 0.579 ยท 327ms ์ธก์ • ๋ถˆ๊ฐ€ยน 0.526 ยท 0.6~59์ดˆ
ํ•œ๊ตญ์–ด ๊ฒ€์ƒ‰ CJK ๋ฐ”์ด๊ทธ๋žจ + ์˜คํƒ€ ๊ต์ • ์˜์–ด ์šฐ์„  ์˜์–ด ์šฐ์„  ์˜์–ด ์šฐ์„  ์˜์–ด ์šฐ์„ 
๋– ๋‚  ๋•Œ ๋น„์šฉ ์—†์Œ, ํŒŒ์ผ์ด ๋‚จ์•„์š” ๋‚ด๋ณด๋‚ด๊ธฐ/์ด์‚ฌ ๋‚ด๋ณด๋‚ด๊ธฐ/์ด์‚ฌ ์—†์Œ ์—†์Œ

ยน basic-memory๋Š” ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ์ค‘์‹ฌ์ด๋ผ ์ˆœ์œ„ ๊ฒ€์ƒ‰์ด ์—†์–ด์š”. ์ธก์ •๋œ
์ˆ˜์น˜๋Š” ์ „๋ถ€ ๊ฐ™์€ ์กฐ๊ฑด, ๊ฐ™์€ ๋ชจ๋ธ, ๊ฐ™์€ ๋ฐ์ดํ„ฐ: ๋ฐฉ๋ฒ•๋ก .

์ถ”์ถœ ๋ฐฉ์‹(ํ–‰)์˜ ๊ธฐ์–ต์€ ๋‚ด ๋ง์˜ ์š”์•ฝ์ด์—์š”. ์ €์žฅํ•  ๋•Œ ์ •๋ณด๊ฐ€ ๊นŽ์ด๊ณ ,
๋‚˜์ค‘์— ๊ฒ€์ฆํ•  ์ˆ˜ ์—†์–ด์š”. ํŒŒ์ผ ๋ฐฉ์‹์€ ์‹ค์ œ ๋…ธํŠธ๋ฅผ ๋‚ ์งœ์™€ ๋งฅ๋ฝ ๊ทธ๋Œ€๋กœ
๊ฐ€์ ธ์™€์š”. ๊ฒ€์ƒ‰ ํ’ˆ์งˆ์„ ์ธก์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋„ ๊ทธ ๋•๋ถ„์ด์—์š”.

ํ•ฉ์„ฑ ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹ˆ๋ผ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋กœ ์ฆ๋ช…ํ•ด์š”

์‚ฌ๋žŒ๋“ค์ด ์‹ค์ œ๋กœ ๋ฌป๋Š” ๋ฐฉ์‹๋Œ€๋กœ: ๋ง ๋ฐ”๊ฟ” ๋ฌป๊ธฐ, ์˜์–ด ๋…ธํŠธ์— ํ•œ๊ตญ์–ด ์งˆ๋ฌธ,
ํ‚ค์›Œ๋“œ๋งŒ ๋˜์ง€๊ธฐ, ์˜คํƒ€๊นŒ์ง€ (full-support@8):

ํŒจ๋Ÿฌํ”„๋ ˆ์ด์ฆˆ, ํ•œ๊ตญ์–ด, ํ‚ค์›Œ๋“œ, ์˜คํƒ€ ๊ฐ•๊ฑด์„ฑ

๋ฉ€ํ‹ฐํ™‰, LLM ๊ทธ๋ž˜ํ”„ ์ง„์˜๊ณผ์˜ ๋Œ€๊ฒฐ. ๋‚ด [[์œ„ํ‚ค๋งํฌ]]์™€ ์ œ๋ชฉ ์–ธ๊ธ‰์ด
์ด๋ฏธ ์ง€์‹๊ทธ๋ž˜ํ”„์˜ˆ์š”. ๊ทธ๊ฑธ ๊ณต์งœ๋กœ ์ฝ๋Š” ์ชฝ์ด, LLM ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ ๊ทธ๋ž˜ํ”„๋ฅผ
๋งŒ๋“œ๋Š” ์ชฝ๋ณด๋‹ค ๋†’๊ฒŒ ๋‚˜์™”์–ด์š”:

2-hop ์งˆ๋ฌธ: Lemory 1.000 vs LLM ๊ทธ๋ž˜ํ”„ ํŒŒ์ดํ”„๋ผ์ธ
Lemory LightRAG MemPalace mem0 cognee supermemory LlamaIndex qmd
๋ฉ€ํ‹ฐํ™‰ answer-in-context@8 1.000 0.807ยน 0.596 0.579 0.561 0.579 0.649 0.526
2-hop ์งˆ๋ฌธ๋งŒ 1.000 0.738 0.452 0.548 0.405 - 0.524 0.381
์ƒ‰์ธ, 54๋…ธํŠธ LLM 0ํšŒ, ์•ฝ 30์ดˆ 165ํšŒ, 14๋ถ„ ๋กœ์ปฌ ์ž„๋ฒ ๋”ฉ ๋…ธํŠธ๋‹น 1~2ํšŒ ์•ฝ 45๋ถ„ API ์ชฝ 0 0
๊ฒ€์ƒ‰ ์ง€์—ฐ (p50) ์•ฝ 3ms 7.5์ดˆยฒ ์•ฝ 1์ดˆยณ 212ms ์•ฝ 5์ดˆ 327ms 649msโด 0.6~59์ดˆ
ํ•œ๊ตญ์–ด ์งˆ๋ฌธ (full-support) 0.950 - 0.350 - - - - -

ยน LightRAG์— ์œ ๋ฆฌํ•˜๊ฒŒ ์ฑ„์ ํ–ˆ์–ด์š”. ๋ณ‘ํ•ฉ๋œ ์ปจํ…์ŠคํŠธ ๋ฉ์–ด๋ฆฌ๊ฐ€ ๋‹ค๋ฅธ
์‹œ์Šคํ…œ์˜ 8์ฒญํฌ๋ณด๋‹ค ์ปค์š”. LLM์œผ๋กœ ๋งŒ๋“  ๊ทธ๋ž˜ํ”„๋Š” ์ง„์งœ๊ณ  ๊ฒฝ์Ÿ ์ตœ๊ณ  2-hop
์ ์ˆ˜์ง€๋งŒ, ์ƒ‰์ธ์—๋„ ์งˆ์˜์—๋„ LLM ๋น„์šฉ์„ ๋‚ด์š”. ยฒ ๋ฌด๋ฃŒ ํ‹ฐ์–ด ์ œํ•œ ํ•˜์˜ ์งˆ์˜๋‹น
LLM ํ˜ธ์ถœ ํฌํ•จ, ์œ ๋ฃŒ๋ฉด 1~2์ดˆ. ยณ ํ”„๋กœ์„ธ์Šค ๊ธฐ๋™ ํฌํ•จ ์‹ค์ธก, ๊ทธ๋“ค์ด ๋‚ด์„ธ์šฐ๋Š”
zero-API ๊ตฌ์„ฑ. โด ์งˆ์˜๋งˆ๋‹ค API ์ž„๋ฒ ๋”ฉ, ์บ์‹œ ์—†์Œ. ๋กœ์ปฌ ์ „์šฉ์ด๋ฉด ์•ฝ 2ms.

์—…๊ณ„ ํ‘œ์ค€ ๋ฉ”๋ชจ๋ฆฌ ๋ฒค์น˜๋งˆํฌ๋„์š”. LongMemEval_S ์ „์ฒด 500๋ฌธํ•ญ, API ํ˜ธ์ถœ 0,
๋กœ์ปฌ ์ž„๋ฒ ๋”๋งŒ์œผ๋กœ:

LongMemEval ์ „์ฒด 500๋ฌธํ•ญ, API 0ํšŒ

๋‹ค๋“ค ํ—ค๋“œ๋ผ์ธ์— ์“ฐ๋Š” ๊ธฐ์ค€์œผ๋กœ Recall@5 0.983. ๊ทธ๋ฆฌ๊ณ  ๋” ์—„๊ฒฉํ•œ
์ „-์ฆ๊ฑฐ ๊ธฐ์ค€(0.904)์„ ์•ž์— ์„ธ์›Œ์š”. ์œ ๋ฆฌํ•œ ์ˆซ์ž๋งŒ ๊ณจ๋ผ ์“ฐ์ง€ ์•Š์•„์š”.
LOCOMO LLM ์ฑ„์  0.706 vs mem0 ๊ณต๊ฐœ ์ˆ˜์น˜ 0.669, DMR(500๋ฌธํ•ญ) 0.694 vs ๊ฐ™์€
์กฐ๊ฑด naive RAG 0.668์ด์—์š” (ยง7b).

๋กคํ”Œ๋ ˆ์ž‰ ๊ธฐ์–ต, ์บ๋ฆญํ„ฐ ์ฑ—์— ์ง„์งœ ํ•„์š”ํ•œ ์ถ•. ์ง์ ‘ ๋งŒ๋“ค์–ด ๊ณต๊ฐœํ•œ
RoleMemQA(ยง7e): 8๋ช…์˜ ํŽ˜๋ฅด์†Œ๋‚˜ ร— 30์„ธ์…˜, ๋‹จ๊ธฐ/์žฅ๊ธฐ/
์—ํ”ผ์†Œ๋“œ/์ทจํ–ฅ ๋ณ€๊ฒฝ/์‹œ๊ฐ„/2ํ™‰/๊ฑฐ์ ˆ๊นŒ์ง€ 144๋ฌธํ•ญ(์ •๋‹ต์€ ์ฝ”๋“œ๋กœ ๊ฒ€์ฆ). ํ‚ค ์—†์ด
doc@1 0.977, ์ทจํ–ฅ์ด ๋ฐ”๋€ ์งˆ๋ฌธ 1.000์— ์˜› ์ทจํ–ฅ ํ•จ์ •์— ์†์€ ๋น„์œจ 0.
์ž๊ธฐ ๋ฒกํ„ฐ(0.938)ยทํ‚ค์›Œ๋“œ(0.820) ๊ฒฝ๋กœ๋ฅผ ๋ชจ๋‘ ์ด๊ธฐ๋ฉด์„œ ์•ฝ 1ms์˜ˆ์š”. ์ด ๋ฒค์น˜๊ฐ€
์žก์•„๋‚ธ ์‹ค์ œ ๊ฒฐํ•จ 2๊ฐœ๋„ ๋ฐ”๋กœ ๊ณ ์ณค์–ด์š”.

KorQuAD 1.0: ์‹ค์ œ ํ•œ๊ตญ์–ด ์œ„ํ‚คํ”ผ๋””์•„
140๊ฐœ ๋ฌธ์„œ, ์‚ฌ๋žŒ์ด ์“ด ์งˆ๋ฌธ 400๊ฐœ, ํ‚ค ์—†์ด ๋กœ์ปฌ๋กœ:

System Recall@1 Recall@5 MRR@10
Lemory (hybrid+graph) 0.930 0.980 0.951
BM25 0.900 0.985 0.937
Vector-only RAG 0.840 0.953 0.887

์ด ํ‘œ๋Š” ์˜ค๋žซ๋™์•ˆ BM25๊ฐ€ ์ด๊ฒผ๊ณ , ์ €ํฌ๋Š” ๊ทธ๋™์•ˆ ๊ทธ ์‚ฌ์‹ค์„ ๊ทธ๋Œ€๋กœ
์‹ค์—ˆ์–ด์š”. 2026๋…„ 7์›” ํ•œ๊ตญ์–ด ๊ฒ€์ƒ‰ ๊ฐœ์„ ์ด ๋“œ๋””์–ด ๋’ค์ง‘์—ˆ์–ด์š”. 400๋ฌธํ•ญ ํ‘œ๋ณธ์€
๋™์  ์ฒ˜๋ฆฌ์— ๋”ฐ๋ผ ยฑ2๋ฌธํ•ญ ํ”๋“ค๋ ค์š”. ๊ทธ๋ž˜์„œ 10๋ฐฐ(4,000๋ฌธํ•ญ)๋กœ๋„ ์ธก์ •ํ–ˆ๊ณ ,
ํ˜„์žฌ ์ฝ”๋“œ๊ฐ€ r@1 0.9795๋กœ ์•ž์„œ์š”(BENCHMARKS ยง7e). ์˜› ํ‘œ๋Š” ๊นƒ ํžˆ์Šคํ† ๋ฆฌ์—
์žˆ๊ณ , ์‹ค์ „์—์„œ ์ค‘์š”ํ•œ ์ˆซ์ž๋Š” ์œ„์˜ ๊ฐ•๊ฑด์„ฑ ์ฐจํŠธ์˜ˆ์š”.

KorMapleQA ๋Š” ์ €ํฌ๊ฐ€ ๋งŒ๋“ค์–ด
๋Œ๋ ค๋“œ๋ฆฌ๋Š” ๊ธฐ์—ฌ์˜ˆ์š”. ์‹ค์ œ ๋‚˜๋ฌด์œ„ํ‚ค ๋ฉ”์ดํ”Œ์Šคํ† ๋ฆฌ ๋ฌธ์„œ 1,469๊ฐœ ์œ„์˜
2,075๋ฌธํ•ญ. 100% ์ฝ”๋“œ๋กœ ๋งŒ๋“ค๊ณ  ๊ธฐ๊ณ„๋กœ ๊ฒ€์ฆํ•ด์„œ API ํ‚ค ์—†์ด ์žฌํ˜„๋˜๊ณ , LLM์ด
์“ด ์งˆ๋ฌธ ํŠน์œ ์˜ ํŽธํ–ฅ์ด ์—†์–ด์š”.

์ €ํฌ๊ฐ€ ๋งŒ๋“ค์ง€ ์•Š์€ ์‹ค์ œ ๋ณผํŠธ๋„ ์žˆ์–ด์š”. ์˜ต์‹œ๋””์–ธ CEO Steph Ango์˜ ๊ณต๊ฐœ
๋ณผํŠธ์™€ ๊ณต์‹ Obsidian Help ๋ณผํŠธ์š” (ยง5d).

ํ•œ๊ตญ์–ด๊ฐ€ 1๋“ฑ ์‹œ๋ฏผ์ด์—์š”

์ด ๋ถ„์•ผ ๋Œ€๋ถ€๋ถ„์€ ํ•œ๊ตญ์–ด๋ฅผ ๋‚˜์ค‘ ์ผ๋กœ ๋ฏธ๋ค„์š”. Lemory๋Š” ๋ฒค์น˜๋งˆํฌ๋กœ ๋‹ค๋ค„์š”.

  • ํ•œ๊ธ€ + ๊ฐ€๋‚˜ + ํ•œ์ž ๋ฐ”์ด๊ทธ๋žจ ์ƒ‰์ธ: ์กฐ์‚ฌ๊ฐ€ ๋ถ™์€ ์–ด์ ˆ,
    ใƒŠใ‚คใƒˆใƒญใƒผใƒ‰๋‚˜์ดํŠธ๋กœ๋“œ ๊ฐ™์€ ํ˜ผํ•ฉ ํ‘œ๊ธฐ๊นŒ์ง€ ์ „๋ถ€ ์ฐพ์•„์š”. ๋ณดํ†ต์˜
    ํ† ํฌ๋‚˜์ด์ €๋Š” ์ด๊ฑธ ๋ชป ์ฐพ๋Š” ํ•œ ๋ฉ์–ด๋ฆฌ๋กœ ๋ถ™์—ฌ๋ฒ„๋ ค์š”.
  • ์Œ์ ˆ ๋‹จ์œ„ ์˜คํƒ€ ๊ต์ •: ๋ฉ”ํ”Œ์ด์Šคํ† ๋ฆฌ๋กœ ๋ฉ”์ดํ”Œ์Šคํ† ๋ฆฌ๋ฅผ ์ฐพ์•„์š”. ์˜†
    ๊ธ€์ž๋ผ๋ฆฌ ๋ฐ”๋€ ์˜คํƒ€๋ฅผ ํŽธ์ง‘ 1ํšŒ๋กœ ๊ณ„์‚ฐํ•ด์š”. ํ•œ๊ตญ์–ด ์˜คํƒ€๊ฐ€ ์‹ค์ œ๋กœ ๋‚˜๋Š”
    ๋ฐฉ์‹์ด๊ฑฐ๋“ ์š”.
  • ํ™œ์šฉ์„ ์•„๋Š” ์ธ์šฉ ๊ฐ์ง€: ๋งŒ๋“ ์œผ๋กœ ๋งŒ๋“ค์—ˆ๋‹ค๋ฅผ ์ฐพ์•„์š”. ์ž๋ชจ ์ˆ˜์ค€
    ์–ด๊ฐ„ ๋งค์นญ์ด ํ™œ์šฉ, ใ„นํƒˆ๋ฝ, ๋„์–ด์“ฐ๊ธฐ ์ฐจ์ด๋ฅผ ๋ฒ„ํ…จ์š”.
  • ์˜์–ด ๋…ธํŠธ์— ํ•œ๊ตญ์–ด๋กœ ๋ฌผ์–ด๋„ 0.950. BM25๋Š” 0.250, MemPalace๋Š” 0.350์ด์—์š”.

์ด๋Ÿฐ ๊ฒŒ ๋ผ์š”

$ lemory ask "3๋ถ„๊ธฐ ํ‚ฅ์˜คํ”„์—์„œ ์˜ˆ์‚ฐ ์–ผ๋งˆ๋กœ ์žก์•˜์ง€?"                 # ํšŒ์˜๋ก
$ lemory ask "๋ฐ์ดํ„ฐํ”Œ๋žซํผํŒ€ ๋ฆฌ๋“œ๊ฐ€ ๋ˆ„๊ตฌ๊ณ  ๋ฌด์Šจ ์ผ ํ•˜๋Š” ํŒ€์ด์ง€?"      # ์กฐ์ง/์‚ฌ๋žŒ
$ lemory ask "์žฌํƒ๊ทผ๋ฌด ์ •์ฑ…, ์ž‘๋…„์ด๋ž‘ ์ง€๊ธˆ์ด๋ž‘ ๋ญ๊ฐ€ ๋‹ฌ๋ผ์กŒ์ง€?"        # ์‹œ๊ฐ„ ์ถ• ๋น„๊ต
$ lemory ask "์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ด๋ฒคํŠธ ๋ฃจํ”„ ๋ญ์˜€์ง€? ๋‚ด ๋…ธํŠธ ๊ธฐ์ค€์œผ๋กœ"      # ๊ณต๋ถ€ ๋…ธํŠธ
$ lemory ask "์นด์˜ค์Šค ๋ฒจ๋ฃธ ๊ฐ€๊ธฐ ์ „์— ์ค€๋น„๋ฌผ ๋ญ๋ผ๊ณ  ์ ์–ด๋†จ๋”๋ผ?"        # ๊ฒŒ์ž„ ๋…ธํŠธ
$ lemory ask "์˜ค์‚ฌ์นด์—์„œ ๊ฐ”๋˜ ๊ทธ ๋ผ๋ฉ˜์ง‘ ์ด๋ฆ„์ด ๋ญ์˜€์ง€?"              # ์—ฌํ–‰ ๊ธฐ๋ก

์ผ๋ฐ˜ RAG๊ฐ€ ๊ตฌ์กฐ์ ์œผ๋กœ ๋ชป ํ•˜๋Š” ๊ฒƒ๋“ค:

$ lemory ask "ํ”„๋กœ์ ํŠธ ์•„ํ‹€๋ผ์Šค ๋ฆฌ๋“œ๊ฐ€ ์ข‹์•„ํ•˜๋Š” DB๊ฐ€ ๋ญ๋”๋ผ?"
# ๋ฉ€ํ‹ฐํ™‰: ์•„ํ‹€๋ผ์Šค ๋…ธํŠธ โ†’ [[๋ฆฌ๋“œ]] ๋งํฌ โ†’ ๊ทธ ์‚ฌ๋žŒ ๋…ธํŠธ์— ๋‹ต์ด ์žˆ์–ด์š”

$ lemory ask "์š”์ƒˆ ๋‚ด๊ฐ€ ์ฝ๋˜ ์ฑ… ๋ญ์˜€์ง€?"
์š”์ฆ˜ ์ฝ๋Š” ์ฑ…์€ ์–ด์Šค์‹œ์˜ ๋งˆ๋ฒ•์‚ฌ์ด๋‹ค [1, 3].     # ์‹œ๊ฐ„: *์ง€๊ธˆ* ์ฑ…
$ lemory ask "3์›”์— ์ฝ๋˜ ์ฑ…์€?"                # 3์›”์„ ๋ฌผ์œผ๋ฉด ๊ทธ๋•Œ ๊ธฐ๋ก์œผ๋กœ

$ lemory search "tag:ํšŒ์˜๋ก folder:2026 ์˜ˆ์‚ฐ"   # ๋ฒ”์œ„ ์—ฐ์‚ฐ์ž, ์ „ ๋ชจ๋“œ
$ lemory remember "VPN ๊ฐฑ์‹ ์€ ๋งค๋…„ 3์›”, ๋‹ด๋‹น ๊น€ํ•˜๋Š˜" --tags ops   # CLI์—์„œ ๊ธฐ์–ต ๋‚จ๊ธฐ๊ธฐ
$ lemory import-chats conversations.json        # ChatGPT/Claude ๋Œ€ํ™” โ†’ ๊ฒ€์ƒ‰๋˜๋Š” ๋…ธํŠธ
$ lemory connect ./my_source.py                 # ์ปค๋„ฅํ„ฐ SDK: ์–ด๋–ค ์†Œ์Šค๋“  โ†’ ๋ณผํŠธ ๋…ธํŠธ
$ lemory agents install                         # AGENTS.md ์ƒ์„ฑ, ์–ด๋–ค ์—์ด์ „ํŠธ๋“  ๋ณผํŠธ๋ฅผ ๊ธฐ์–ต์œผ๋กœ
$ lemory graph --open                           # ๋ณผํŠธ ์ „์ฒด๋ฅผ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ๊ทธ๋ž˜ํ”„๋กœ
$ lemory context                                # ์—์ด์ „ํŠธ์šฉ ๋ณผํŠธ ์š”์•ฝ ํ•œ ๋ฒˆ์—

์˜คํƒ€๋Š” ๋‚ด ๋ณผํŠธ์˜ ๋‹จ์–ด๋“ค์„ ๊ธฐ์ค€์œผ๋กœ ๊ณ ์ณ์ ธ์š”(API ์—†์Œ). ์ด๋ฆ„ ๋ณ€๊ฒฝ, ์‚ญ์ œ,
๋ณ„์นญ, ํ•œ๊ตญ์–ด ํŒŒ์ผ๋ช…๋„ ์›Œ์ฒ˜๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋”ฐ๋ผ๊ฐ€์š”. default_scope๋ฅผ
์„ค์ •ํ•˜๋ฉด ๋ชจ๋“  ์งˆ๋ฌธ์ด ๊ธฐ๋ณธ์œผ๋กœ ๊ทธ ํด๋”/ํƒœ๊ทธ ์•ˆ์—์„œ ๋Œ๊ณ (scope:all๋กœ ํ•œ
๋ฒˆ๋งŒ ํ•ด์ œ), ์งˆ๋ฌธ์— ์—ฐ์‚ฐ์ž๋ฅผ ์ง์ ‘ ์“ฐ๋ฉด ๊ทธ๊ฒŒ ํ•ญ์ƒ ์šฐ์„ ์ด์—์š”.

์™œ ์ž˜ ๋˜๋‚˜์š”: ๋งˆ๋ฒ•์ด ์•„๋‹ˆ๋ผ ๊ตฌ์กฐ์˜ˆ์š”

  • ๋ฉ€ํ‹ฐํ™‰ 1.000 vs 0.53~0.81 (์ „์›): ๊ฒ€์ƒ‰์ด ๋งํฌ๋ฅผ ๋”ฐ๋ผ 1ํ™‰
    ํ™•์žฅํ•˜๋Š”๋ฐ, ์งˆ์˜ ์œ ์‚ฌ๋„์™€ ํ‚ค์›Œ๋“œ ์ฆ๊ฑฐ ๋‘˜ ๋‹ค ํ™•์ธํ•˜๊ณ , ์ง์ ‘ ์ฆ๊ฑฐ๋ณด๋‹ค
    ๋†’์•„์ง€์ง€ ์•Š๊ฒŒ ๋ˆŒ๋Ÿฌ๋‘ฌ์š”. ์ƒ‰์ธํ•  ๋•Œ LLM ์—†์ด ๋ฏธ๋ฆฌ ์บ๋†”์š”.
  • ๊ฐ•๊ฑด์„ฑ 0.95+ vs 0.25~0.67: ๋ฒกํ„ฐ์™€ ํ‚ค์›Œ๋“œ๋Š” ๋‹ค๋ฅด๊ฒŒ ์‹คํŒจํ•ด์š”.
    ๊ฐ€์ค‘ ์œตํ•ฉ์ด ๋‘˜์„ ๋ฎ์–ด์š”. ์งˆ๋ฌธ์ด ๋…ธํŠธ๋ฅผ ๊ฑฐ์˜ ๊ทธ๋Œ€๋กœ ์ธ์šฉํ•˜๋ฉด ํ‚ค์›Œ๋“œ
    ์ˆœ์œ„๋ฅผ ๊ทธ๋Œ€๋กœ ๊ณ ์ •ํ•ด์š”(ํ•€). ์ˆœ์œ„๋งŒ ์„ž๋Š” ์œตํ•ฉ์€ ํ™•์‹คํ•œ ํ‚ค์›Œ๋“œ ์šฐ์œ„๋ฅผ
    ์กด์ค‘ํ•  ์ˆ˜ ์—†๊ฑฐ๋“ ์š”.
  • ์ดˆ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฐ€๋ฆฌ์ดˆ: ์ „๋ถ€ ํ•œ ํ”„๋กœ์„ธ์Šค, SQLite FTS5 + numpy. ์ฒญํฌ
    2๋งŒ ๊ฐœ๋ฅผ ๋„˜์œผ๋ฉด IVF-int8 ์ธ๋ฑ์Šค๋กœ ์ž๋™ ์ „ํ™˜๋ผ์š”. ์ฒญํฌ 100๋งŒ ๊ฐœ์—์„œ
    5.9ms/์งˆ์˜, ์ •ํ™• ๊ฒ€์ƒ‰ ๋Œ€๋น„ recall 1.000, RAM 732MB

    (ยง12b). SQLite๋ฅผ ๋‹ค๋ฅธ ๊ฑธ๋กœ ๋ฐ”๊พธ๋Š” ์‹คํ—˜๋„ ํ–ˆ๊ณ  ์™œ ์•ˆ
    ๋ฐ”๊ฟจ๋Š”์ง€ ๊ณต๊ฐœํ–ˆ์–ด์š” (๋ณด๊ณ ์„œ).
  • ๋น„์šฉ์€ 0์— ์ˆ˜๋ ดํ•ด์š”. ์ž„๋ฒ ๋”ฉ ์บ์‹œ, Gemini ๋ฌด๋ฃŒ ํ‹ฐ์–ด๋กœ ํ•˜๋ฃจ ์•ฝ
    250์งˆ๋ฌธ, ๊ทธ๋ฆฌ๊ณ  ๋ฐ”์ดํŠธ ํ•˜๋‚˜ ๋ชป ๋‚˜๊ฐ€๋Š” ๋ง๋ถ„๋ฆฌ ํ™˜๊ฒฝ์„ ์œ„ํ•œ ์™„์ „
    ์˜จ๋””๋ฐ”์ด์Šค ๋ชจ๋“œ๊นŒ์ง€์š”.

๊ฐœ๋ฐœ์ž๋ผ๋ฉด

import lemory
lemory.configure(vault="~/Obsidian/MyVault")
lemory.index()
print(lemory.ask("๊ฐ€๊ฒฉ ์ •์ฑ… ๋ญ๋ผ๊ณ  ๊ฒฐ์ •ํ–ˆ๋”๋ผ?").text)

TypeScript/Node๋Š” ์˜์กด์„ฑ 0์ธ ํด๋ผ์ด์–ธํŠธ๊ฐ€ clients/js์—
์žˆ์–ด์š”: new Lemory({client: "my-agent"}).search(...).

ํŒŒ์ด์ฌ ํ”„๋ ˆ์ž„์›Œํฌ์—๋Š” ๊ทธ๋Œ€๋กœ ๋ผ์›Œ ๋„ฃ์œผ๋ฉด ๋ผ์š”(๋‘˜ ๋‹ค ์‹ค์ œ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ
ํ…Œ์ŠคํŠธํ–ˆ์–ด์š”):

from lemory.integrations.langchain import LemoryRetriever     # langchain-core
from lemory.integrations.llamaindex import LemoryLlamaRetriever  # llama-index-core

์…€ํ”„ํ˜ธ์ŠคํŒ…: docker build -t lemory . && docker run -p 127.0.0.1:8377:8377 -v ~/vault:/vault lemory. ๋ญ”๊ฐ€ ์ด์ƒํ•˜๋ฉด lemory doctor๊ฐ€ ๋ณผํŠธ, ์ธ๋ฑ์Šค,
FTS5, ์ž„๋ฒ ๋”, ์ƒ์„ฑ๊ธฐ๋ฅผ ํ•œ ๋ฒˆ์— ์ ๊ฒ€ํ•ด์š”. ๊ทธ ์ถœ๋ ฅ์„ ์ด์Šˆ์— ๋ถ™์—ฌ์ฃผ์„ธ์š”.

Cerebras์˜ ์‚ฌ๋‚ด ์ง€์‹๋ฒ ์ด์Šค ๊ธ€์—์„œ
๊ฐ€์ ธ์˜จ ๊ฒƒ๋„ ์ถœ์ฒ˜๋ฅผ ๋ฐํ˜€์š”. ๋žญํ‚น ํ›„ ์ด์›ƒ ๋ณต์›: ์ˆœ์œ„๊ฐ€ ์ •ํ•ด์ง„ ๋’ค ๊ฐ
์ฒญํฌ์— ์•ž๋’ค ๋ฌธ๋งฅ์„ ๋‹ค์‹œ ๋ถ™์—ฌ, ์ž˜๋ ค๋‚˜๊ฐ„ ์ „์ œ์™€ ์ฃผ์˜์‚ฌํ•ญ์„ ๋˜์‚ด๋ ค์š”
(context_neighbors). ๋Œ€ํ™” ๋ฒ„์ŠคํŠธ ์ฒญํ‚น: ๊ฐ™์€ ํ™”์ž์˜ ์—ฐ์† ๋ฐœํ™” ์ค‘
์•Œ๋งน์ด ์žˆ๋Š” ๊ฒƒ๋งŒ ๊ณจ๋ผ ๋”ฐ๋กœ ์ƒ‰์ธํ•˜๋˜, ์œตํ•ฉ์—์„œ๋Š” ์ž๊ธฐ ๋…ธํŠธ์˜ ์ˆœ์œ„๋ฅผ ์˜ฌ๋ฆฌ๋Š”
์—ญํ• ๋งŒ ํ•ด์š”(์‹ค์ธก ๋‚ด์—ญ ์ „์ฒด๊ฐ€ ยง7e์— ์žˆ์–ด์š”). ๊ทธ๋“ค์˜ ๋‚˜๋จธ์ง€ ํ•ต์‹ฌ ์„ค๊ณ„๋Š”
Lemory๊ฐ€ ์ด๋ฏธ ๋งŒ๋“ค์–ด ์ธก์ •ํ•œ ๊ฒƒ๋“ค์ด์—ˆ์–ด์š”.

๊ฒฉ์ฐจ ๋ถ„์„์œผ๋กœ ์ถ”๊ฐ€๋œ ๊ฒƒ๋“ค: lemory ask --deep(์–ด๋ ค์šด ์งˆ๋ฌธ์„ ์ชผ๊ฐœ์„œ ๊ฐ๊ฐ
๊ฒ€์ƒ‰ ํ›„ ์ฆ๊ฑฐ ๋ณ‘ํ•ฉ), lemory backup/restore, index_docx = true(Word
ํ…์ŠคํŠธ ์ถ”์ถœ), lemory connect(์ปค๋„ฅํ„ฐ SDK), default_scope(๊ธฐ๋ณธ ๊ฒ€์ƒ‰
๋ฒ”์œ„), ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋ฐ”์ผ: lemory serve --host 0.0.0.0 + api_token์ด๋ฉด
ํฐ์—์„œ๋„ ํ† ํฐ ์ธ์ฆ์œผ๋กœ ๋ถ™๊ณ , localhost๋Š” ๊ทธ๋Œ€๋กœ ๋ฌด์„ค์ •์ด์—์š”.

์‹คํŒจํ•œ ์‹คํ—˜๋„ ์ •์ฑ…๋Œ€๋กœ ๊ณต๊ฐœํ•ด์š”. ์‹œ๋งจํ‹ฑ ํด๋ฐฑ ๋งํฌ(๋งํฌ ์—†๋Š” ๋…ธํŠธ์—
์œ ์‚ฌ๋„ ๊ฐ„์„ )๋Š” ๋งŒ๋“ค์—ˆ๊ณ , ์ธก์ •ํ–ˆ๊ณ , ํšจ๊ณผ๊ฐ€ ์—†๋‹ค๋Š” ๊ฒŒ ํ™•์ธ๋ผ ๊ธฐ๋ณธ์œผ๋กœ
๊บผ๋’€์–ด์š”. ๋ฆฌ๋žญ์ปค์˜ ์‹œ๊ฐ„ ๋ณด์ •๋„ ์‹ค์ œ ๋ชจ๋ธ๋กœ 3ํŒ” ๋น„๊ต(๋” 0.978 / ์ผฌ
0.889 / ์ผฌ+๋ณด์ • 0.867)ํ•œ ๋’ค ๋˜๋Œ๋ ธ์–ด์š”. ์ด๋“๋งŒ ๋‚จ๊ธฐ๊ณ  ์‹คํŒจ๋Š” ๊ธฐ๋กํ•ด์š”.

REST๋Š” lemory serve์—: GET /search ยท POST /ask ยท GET /context ยท
POST /memory ยท POST /append ยท POST /memory/trash ยท POST /index ยท
GET /status, ๋Œ€์‹œ๋ณด๋“œ API(/api/events, /api/clients, /api/notes,
/api/related, ...)๋„ ์žˆ์–ด์š”. X-Lemory-Client ํ—ค๋”๋กœ ์ •์ฒด๋ฅผ ๋ฐํžˆ๋ฉด
๋Œ€์‹œ๋ณด๋“œ์— ์ถœ์ฒ˜๊ฐ€ ํ‘œ์‹œ๋ผ์š”.

์˜ต์‹œ๋””์–ธ ์‚ฌ์ด๋“œ๋ฐ” ํ”Œ๋Ÿฌ๊ทธ์ธ(ํŒŒ์ผ 3๊ฐœ ๋ณต์‚ฌ๋ฉด ์„ค์น˜ ๋), PDF ์ƒ‰์ธ
(pip install 'lemory[pdf]', index_pdf = true), ๊ฒ€์ƒ‰ ์˜ต์…˜ ์ „์ฒด๋Š”
lemory.toml, ๊นŠ์€ ์ด์•ผ๊ธฐ๋Š”
BENCHMARKS.md ยท docs/STORAGE.md ยท
docs/COMPETITIVE.md์— ์žˆ์–ด์š”.

์–ด๋–ป๊ฒŒ ๋Œ์•„๊ฐ€๋‚˜์š”

 ๋‚ด ๋ณผํŠธ (*.md) โ”€โ”€๊ฐ์‹œโ”€โ”€โ–บ ํŒŒ์‹ฑ: frontmatter ยท ํƒœ๊ทธ ยท [[๋งํฌ]] ยท ๋‚ ์งœ
                                 โ”‚
                                 โ–ผ
              SQLite ํŒŒ์ผ ํ•˜๋‚˜: ์ฒญํฌ ยท BM25 ยท ๋งํฌ ๊ทธ๋ž˜ํ”„ ยท ์ž„๋ฒ ๋”ฉ ์บ์‹œ
                              + ์ด๋ฒคํŠธ ํƒ€์ž„๋ผ์ธ      + IVF-int8 (ํฐ ๋ณผํŠธ)
                                 โ”‚
 ์งˆ๋ฌธ โ”€โ–บ ์˜คํƒ€ ๊ต์ • โ”€โ–บ ๋ฒกํ„ฐ + ํ‚ค์›Œ๋“œ (์œตํ•ฉ) โ”€โ–บ ์ œ๋ชฉยท์ตœ์‹ ์„ฑ ๋ถ€์ŠคํŠธ
                                 โ”‚
                        1ํ™‰ ๊ทธ๋ž˜ํ”„ ํ™•์žฅ   โ† ๋ฉ€ํ‹ฐํ™‰ ๋‹ต์ด ์—ฌ๊ธฐ์„œ ๋‚˜์™€์š”
                                 โ”‚
                                 โ–ผ
              ๋‚ ์งœ์™€ ์ถœ์ฒ˜๊ฐ€ ๋ถ™์€ ์ปจํ…์ŠคํŠธ โ”€โ–บ LLM โ”€โ–บ ๋‹ต๋ณ€ [n]

 save_memory โ”€โ–บ ์ค‘๋ณต ๊ฒ€์‚ฌ โ”€โ–บ ๋ณผํŠธ ์•ˆ์˜ .md โ”€โ–บ ๋‹ค์Œ ์งˆ๋ฌธ๋ถ€ํ„ฐ ๊ฒ€์ƒ‰๋ผ์š”

๊ฒ€์ƒ‰์€ ๋กœ์ปฌ์ด๊ณ  LLM์ด ์—†์–ด์š”(3~13ms). ์งˆ๋ฌธ๋‹น ์ž„๋ฒ ๋”ฉ 1ํšŒ(์บ์‹œ๋จ),
ask()๋‹น ์ƒ์„ฑ 1ํšŒ์˜ˆ์š”.

์ •์งํ•˜๊ฒŒ ๋งํ•˜๋ฉด

  • ๋ฌธ์„œ๋ฅผ ๊ทธ๋Œ€๋กœ ์ธ์šฉํ•˜๋Š” ์งˆ๋ฌธ์€ ์˜ค๋žซ๋™์•ˆ ์ˆœ์ˆ˜ BM25๊ฐ€ ์œ ๋ฆฌํ–ˆ์–ด์š”. ์ €ํฌ๋Š”
    ๊ทธ๊ฒŒ ์‚ฌ์‹ค์ธ ๋™์•ˆ ๊ทธ๋Œ€๋กœ ์‹ค์—ˆ์–ด์š”. 2026๋…„ 7์›”์— ๋’ค์ง‘ํ˜”๊ณ , ์˜› ์ˆ˜์น˜๋Š” ๊นƒ
    ํžˆ์Šคํ† ๋ฆฌ์— ์žˆ์–ด์š”.
  • qmd์˜ ๊ฐ„ํŒ ๋ชจ๋“œ์—์„œ๋„ ์ด์ œ ํ’ˆ์งˆ๊นŒ์ง€ ์•ž์„œ์š”(๋™์ผ ๋ฌธํ•ญ 0.875 vs 0.769).
    ์˜ˆ์ „ ์ž„๋ฒ ๋”๋กœ๋Š” ๋™๋ฅ ์ด์—ˆ์–ด์š”. ์•ฝ 3,700๋ฐฐ์˜ ์†๋„ ์ฐจ์ด๋Š” ์›๋ž˜๋ถ€ํ„ฐ
    ์žˆ์—ˆ๊ณ ์š”.
  • kepano์˜ ์ž‘์€ ์˜์–ด ๋ณผํŠธ์—์„  ๋ฒกํ„ฐ ๋‹จ๋…์ด ํ•œ ๋ฌธ์ œ ์ฐจ๋กœ ์ €ํฌ๋ฅผ ์ด๊ฒจ์š”.
    BENCHMARKS์— ๊ทธ๋ ‡๊ฒŒ ์ ํ˜€ ์žˆ์–ด์š”.
  • ์ฒญํฌ 4๋งŒ 2์ฒœ ๊ฐœ ์ฝ”ํผ์Šค์˜ 2-hop full-support๋Š” ์ธก์ •ํ•œ ์ „์›์—๊ฒŒ ์–ด๋ ค์›Œ์š”.
    ์ €ํฌ ๋กœ์ปฌ ์ˆ˜์น˜๋Š” 0.477๋กœ ์˜ฌ๋ผ์™”์ง€๋งŒ, ์ƒ์‹œ ๋„์ „ ๊ณผ์ œ๋กœ ๋‚จ๊ฒจ๋’€์–ด์š”.
  • ํƒ€ ํŒ€์˜ ๊ณต๊ฐœ ์ˆ˜์น˜๋Š” ๋‹ค๋ฅธ ์ƒ์„ฑ๊ธฐ/์ฑ„์  ๊ธฐ์ค€์ด๋ผ ์ฐธ๊ณ ๋กœ๋งŒ ์ธ์šฉํ•ด์š”. Zep์˜
    DMR 94.8์€ GPT-4๊ธ‰ ๊ตฌ์„ฑ์ด๊ณ , ์ด๊ฒผ๋‹ค๊ณ  ๋งํ•˜์ง€ ์•Š์•„์š”.
  • SQLite๋ฅผ ๋ฐ”๊พธ๋Š” ์‹คํ—˜(DuckDB, LanceDB)์—์„œ LanceDB์˜ ํ…์ŠคํŠธ ๊ฒ€์ƒ‰์ด ์ตœ์•…
    ์ผ€์ด์Šค์—์„œ ์ง„์งœ๋กœ 5๋ฐฐ ๋นจ๋ž์–ด์š”. ๊ทธ๊ฑธ ๊ณต๊ฐœํ•˜๊ณ ๋„ SQLite์— ๋‚จ์•„์š”. ๋‚˜๋จธ์ง€
    ๋„ค ํ•ญ๋ชฉ์€ SQLite๊ฐ€ ์ด๊ฒจ์š” (์ „์ฒด ๋ณด๊ณ ์„œ).
  • ๋ฒ„์ŠคํŠธ ์ฒญํ‚น์˜ ํ›„ํ‡ด๋„ ๊ธฐ๋ก์— ์žˆ์–ด์š”. ๊นจ๋—ํ•œ ๋…ธํŠธ 1๋ฌธํ•ญ, ๋ฒˆ๋ณต ํ•จ์ •
    1๋ฌธํ•ญ์ด์š”. ๊ณ ์น˜๋ ค๋˜ ํŒจ์น˜๊ฐ€ ๋‹ค๋ฅธ ํ•จ์ •์„ ๋ฌด๋„ˆ๋œจ๋ ค์„œ ์ ‘์—ˆ๊ณ , ์ด๋“๊ณผ ํ›„ํ‡ด๋ฅผ
    ํ•จ๊ป˜ ๊ณต๊ฐœํ–ˆ์–ด์š” (ยง7e).

๋กœ๋“œ๋งต

  • PyPI (pip install lemory) ยท [ ] ์˜ต์‹œ๋””์–ธ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋“ฑ๋ก
  • AI ์“ฐ๊ธฐ ๊ฒฝ๋กœ + ๋˜๋Œ๋ฆฌ๊ธฐ ์žˆ๋Š” ํƒ€์ž„๋ผ์ธ ยท [x] ํด๋ผ์ด์–ธํŠธ ์ถœ์ฒ˜ ํ‘œ์‹œ
  • ๊ธฐ์–ต ์ •๋ฆฌ (์ค‘๋ณต ํ‘œ์‹œ + ๊ด€๋ จ ๋งํฌ)
  • ๋งํฌ ์ œ์•ˆ ยท [x] ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ๊ทธ๋ž˜ํ”„ ยท [x] ์–ด์‹œ์Šคํ„ดํŠธ ์Šคํ‚ฌ
  • PDF ์ƒ‰์ธ ยท [x] 100๋งŒ ์ฒญํฌ ๋ณผํŠธ์šฉ ANN ์ธ๋ฑ์Šค
  • ์ฑ„ํŒ… ๊ฐ€์ ธ์˜ค๊ธฐ (ChatGPT/Claude) ยท [x] KorMapleQA ๋ฒค์น˜๋งˆํฌ
  • ์ปค๋„ฅํ„ฐ SDK (lemory connect) ยท [x] ๊ธฐ๋ณธ ๊ฒ€์ƒ‰ ๋ฒ”์œ„ (default_scope)
  • ์—์ด์ „ํŠธ ์˜จ๋ณด๋”ฉ (lemory agents: AGENTS.md + ๊ฐ์ง€) ยท [x] AI ์“ฐ๊ธฐ git ์ฒดํฌํฌ์ธํŠธ
  • ์ด๋ฏธ์ง€ OCR / ์˜ค๋””์˜ค ์ „์‚ฌ ยท [ ] ์›น ํด๋ฆฌํผ
  • ๋ฉ€ํ‹ฐ ๋ณผํŠธ ํ”„๋กœํ•„

ํ•จ๊ป˜ ๋งŒ๋“ค์–ด์š”

uv venv && uv pip install -e ".[dev,mcp,local,pdf]" && pytest ํ•œ ์ค„์ด๋ฉด
ํ…Œ์ŠคํŠธ 400์—ฌ ๊ฐœ๊ฐ€ ์™„์ „ ์˜คํ”„๋ผ์ธ์œผ๋กœ ๋Œ์•„์š”. CONTRIBUTING.md ยท ํ•œ๊ตญ์–ด
์ด์Šˆ/PR ํ™˜์˜ํ•ด์š”.

์ฒ˜์Œ๋ถ€ํ„ฐ ๋กœ์ปฌ ์šฐ์„ ์œผ๋กœ ์„ค๊ณ„ํ–ˆ์–ด์š”. ์‹ ๋ขฐ ๋ชจ๋ธ, ๋กœ์ปฌ ์„œ๋ฒ„์˜ ๋ณด์•ˆ ์žฅ์น˜,
์ทจ์•ฝ์  ์‹ ๊ณ  ๋ฐฉ๋ฒ•์€ SECURITY.md์— ์žˆ์–ด์š”.

English README ยท MIT

Reviews (0)

No results found