ํธ์คํ DB๋, ๊ณ์ ๋, ์ฟผํฐ๋ ์์ด ยท ๋ด ํด๋ ์์ ๋งํฌ๋ค์ด ํ์ผ๋ก. Local memory engine for AI agents ยท English README
๋ชฉ์
์ด ์๋์์. ๋๋ฌด์ํค ์ค์ ๋ฌธ์ 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์ ์์ด์.
๊ฐ์ ๋ณผํธ์์ tobi/qmd์ MemPalace๋ฅผ ์ค์ ๋ก ๋๋ฆฐ ์ฅ๋ฉด์ด์์. qmd๋ ํค์๋๋ฅผ ์ ๋ถ ํฌํจํด์ผ๋ง ์ฐพ๋ ๋ฐฉ์(AND)์ด๋ผ ํ๊ตญ์ด ์์ฐ์ด ์ง๋ฌธ์ 0๊ฑด์ด ๋์์. MemPalace๋ ์์ด ์์ฃผ ์๋ฒ ๋๋ผ ํ๊ตญ์ด ํค์๋ ๊ฒฝ๋ก๊ฐ ์์ด์. Lemory๋ ์ ๋ต ๋ ธํธ๋ฅผ 1์๋ก, 0.1์ด์, LLM ํธ์ถ ์์ด ์ฐพ์์.
qmd๊ฐ ๋ก์ปฌ LLM์ ์ด๋์ํด๋(์ง์ ํ์ฅ + ๋ฆฌ๋ญํฌ) ๊ฐ์ 329๋ฌธํญ์์ Lemory์ LLM ์๋ ๊ฒ์๋ณด๋ค ๋ฎ์์. ๊ทธ๋ฌ๋ฉด์ ์ง๋ฌธ ํ๋์ 59.5์ด๊ฐ ๊ฑธ๋ ค์:
๊นํ๋ธ ์คํ๊ฐ ๊ฐ์ฅ ๋ง์ ๋ฉ๋ชจ๋ฆฌ ๋ ์ด์ด 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๋ถ์ฉ ์ฐ๋ ์ ํ๋ค๊ณผ ๋น๊ตํ๋ฉด์:
์ฒ์์ด๋ผ๋ฉด ์ฌ๊ธฐ๋ถํฐ: docs/GUIDE.ko.md ยท ๋งค์ผ ์ฐ๋ ๋ฒ: docs/ROUTINE.ko.md (English: docs/GUIDE.md)
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๊ฐ.
์์ด์ ํธ๊ฐ ๋งค๋ฒ ์ฒ์๋ถํฐ ๋ค์ ์์ํ์ง ์๊ฒ ํ๋ 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์ ์์ด์.
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 ํ ์ค๋ง
์ ์ผ๋ฉด ๊ทธ ๋
ธํธ๋ ์์ธ๋, ๊ฒ์๋, ์ด๋ค ๋ชจ๋ธ๋ก๋ ์ ์ก๋์ง ์์์. ์ด๋ฏธ
์์ธ๋๋ ๋
ธํธ๋ผ๋ฉด ์ด ํ ์ค์ด ๋นผ์ค์.
๋น์๋ ๋ํํ๋ฉด์ ์ฝ๊ณ ์จ์. "โฆ๋ผ๊ณ ๊ธฐ์ตํด์ค"๋ผ๊ณ ๋งํ๋ฉด ๊ทธ ์๋ฆฌ์์
๋
ธํธ๋ก ์ ์ฅ๋ผ์(์น์ธ์ ๋ฅผ ์ผฐ๋ค๋ฉด ๋๊ธฐ์ด๋ก ๊ฐ์). "๊ทธ๊ฑด ์ธ์ ์์ง?" ๊ฐ์ ํ์
์ง๋ฌธ์ ์ ์ง๋ฌธ๊ณผ ๋ฌถ์ด์ ์ฐพ์์. ์ฒซ ๋ํ์ ๋ณผํธ ์ํฉ ์์ฝ์ด ์๋์ผ๋ก
๋ค์ด๊ฐ๊ณ , /๊ฒ์ /๊ธฐ์ต /์ต๊ทผ ๋ช
๋ น๋ ์ธ ์ ์์ด์.
๋น์์ ๋๋ ๋ํ๋ 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๋ก ๊ฐ์. ์ฌ๋์ด ์ด
๋
ธํธ๋ ์์ ๋๋๋ฆฌ๊ธฐ ๋์์ด ์๋์์). ๋ชจ๋ ์ง์๋ ์ถ์ฒ์ ํจ๊ป ๋จ์์.
์ด๊ฒ ๋ฏธ๋ค์จ์ด์ ์ฝ์์ด์์. ์๋ฌด๊ฒ๋ ๋ชฐ๋ ์ง๋๊ฐ์ง ์์์.
๊ฐ ํด๋ฆฝ์ ์์ ํ๊ตญ์ด ๋ฐ๋ชจ ๋ณผํธ์์ ์ค์ CLI ์ถ๋ ฅ์ ๊ธ์ ๊ทธ๋๋ก ๋ค์
์ฐ์ ๊ฑฐ์์. ์ฌ์์ฑ ์คํฌ๋ฆฝํธ๋ docs/assets/make_gifs.py์ ์๊ณ , ์บก์ฒ
์๋ฌธ๋ ์คํฌ๋ฆฝํธ ์์ ์์ด์. ๋ชฉ์
์ ์์ด์.
lemory serve โ 127.0.0.1:8377. ์ต์๋์ธ์ ๋ ๋ง๋ ๊ฒ ์๋๋ผ,
๋ฏธ๋ค์จ์ด์ ๋ญ๊ฐ ์ค๊ฐ๋์ง ๋ณด๊ณ ๋ฐ๋ก ์๋ณด๋ ์์
๊ณต๊ฐ์ด์์. ๋ฐ์คํฌํฑ
์ง์์ฑ์ ๋ฌธ๋ฒ โ ํ ํฐ ๊ธฐ๋ฐ ๋์์ธ ์์คํ
(๋ผ์ดํธ/๋คํฌ), โK ํ๋ ํธ,
โ1โ8 ์ด๋, ? ๋จ์ถํค ๋์๋ง, ํ๋จ ์ํ๋ฐ โ ์ ์น ์ฝ์ ๋น์ฉ์ผ๋ก ๋ด์์ด์.
- ํํฉ: ํ์๋ผ์ธ์ด์์. AI ๋ฉ๋ชจ๋ฆฌ ํผ๋(๋๋๋ฆฌ๊ธฐ ํฌํจ), ์ต๊ทผ ์ง์์ ์ถ์ฒ, ํด๋ผ์ด์ธํธ๋ณ ์ฌ์ฉ๋, ์์ธ ํ๋์ ๋ณผ ์ ์์ด์.
- ์ง์: 3์ด ์ํฌ์คํ์ด์ค์์(์ด ํญ์ ๋๋๊ทธ๋ก ์กฐ์ ํ๊ณ ๊ธฐ์ต๋ผ์).
๋ชฉ๋ก์ ๋
ธํธ๋ง๋ค ํ ์ค ๋ฏธ๋ฆฌ๋ณด๊ธฐ, ์์ธ์ ์คํฐํค ํค๋ ยท ํด๋ฆญ๋๋
๊ฒฝ๋ก ๋ธ๋ ๋ํฌ๋ผ ยท ๊ธด ๋
ธํธ ๋ชฉ์ฐจ(์ฝ๋ ์์น ๋ฐ๋ผ์ค๋ ์คํฌ๋กค ์คํ์ด).
๊ทธ๋ฆฌ๊ณ ์ง์ ์จ์: ์ ๋
ธํธ ยท ์ด๋ฆ ๋ณ๊ฒฝ ยท ํด์งํต, ๊ตฌ๋ฌธ ํ์ด๋ผ์ดํธ
์๋ํฐ + ๋ผ์ด๋ธ ๋ฏธ๋ฆฌ๋ณด๊ธฐ,
[[์ํค๋งํฌ]]์๋์์ฑ, 1.5์ด ์๋ ์ ์ฅ (๋์คํฌ ์ถฉ๋์ 409๋ก ๋ณดํธ), frontmatter ์์ฑ ์ธ์คํํฐ(ํ๊ทธ๋ ์นฉ์ผ๋ก ๋ํ๊ณ ๋นผ์). - ๊ธฐ์ต: ํผ๋ผ๋ฏธ๋(ํ๋ฅด์๋ ยท ์ฅ๋ฉด ยท ์ต์ปค ยท ์ผ์ด์ค ยท ์คํฌ)์ ํ์ ๋ณ ํ์์ด์์.
- ๊ทธ๋ํ: ๋ณผํธ ์ ์ฒด ์ํธ์์ฉ ๊ทธ๋ํ์์.
- ๊ฑด๊ฐ: ์น์ธ ๋๊ธฐ ๊ธฐ์ต, ๋ชจ์ ์, ๋๋ฆฌํํธ, ๋งํฌ ์ ์์ ํ ํ๋ฉด์์ ์ฒ๋ฆฌํด์.
- ๊ฒ์: ํ์ด๋ธ๋ฆฌ๋/๋ฒกํฐ/ํค์๋๋ฅผ ๋ฐ๊ฟ๊ฐ๋ฉฐ ์ ์์ ์๋๋ฅผ ๋ณผ ์ ์๋ ์คํ์ค์ด์์. ๋น ํ๋ฉด ๋์ ๋ด ๋ณผํธ๋ก ๋ง๋ ํํ ๋ฆฌ์ผ์ด ๋ ์.
- ๋น์: ์จ๋๋ฐ์ด์ค ๋ชจ๋ธ๋ก ๋ณผํธ์ ๋ํด ์คํธ๋ฆฌ๋ฐ ๋ํํด์(์ถ์ฒ ์ธ์ฉ).
- ์ค์ : ๊ฒ์ ์ต์
๊ณผ ๋ชจ๋ธ ์ ํ์ ๋ฐ๋ก ์ ์ฉํด์. ํ์๋ผ์ธ ๊ธฐ๋ก ์ฌ๋ถ๋
์ค์ ์ด๊ณ (
event_log), ์ ๋ถ ๋ด SQLite ํ์ผ์๋ง ๋จ์์.
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 ํ์ดํ๋ผ์ธ์ผ๋ก ๊ทธ๋ํ๋ฅผ
๋ง๋๋ ์ชฝ๋ณด๋ค ๋๊ฒ ๋์์ด์:
| 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, ๋ก์ปฌ ์๋ฒ ๋๋ง์ผ๋ก:
๋ค๋ค ํค๋๋ผ์ธ์ ์ฐ๋ ๊ธฐ์ค์ผ๋ก 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).
์ด ๋ถ์ผ ๋๋ถ๋ถ์ ํ๊ตญ์ด๋ฅผ ๋์ค ์ผ๋ก ๋ฏธ๋ค์. 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