AI ์์ด์ ํธ์ ์ปจํ ์คํธ ๋ฐ์ดํฐ๋ฒ ์ด์ค. ๊ฐ์ ํ์ผ์์คํ ์ด ์๋๋ผ, ์ง์ง ํ์ผ๋ก.
๊ธฐ์ต ยท ์ง์ ยท ์คํฌ์ ๋ด ํด๋์ ๋งํฌ๋ค์ด์ผ๋ก ํตํฉํฉ๋๋ค. ํธ์คํ DB๋, ๊ณ์ ๋, ์ฟผํฐ๋ ์์ด, ์ ๋ถ ์ค์ธก์ผ๋ก ์ฆ๋ช ํ๋ฉด์. The context database for AI agents, on real files ยท English README
๋ชฉ์
์ด ์๋๋๋ค. ๋๋ฌด์ํค ์ค์ ๋ฌธ์ 1,469๊ฐ(์ฒญํฌ ์ฝ 42,000๊ฐ) ๋ณผํธ์์
ํ๊ตญ์ด ์ง๋ฌธ์ด 0.1์ด ๋ง์ ๋ต๋ณ๋๊ณ , ์คํ๋ API ์์ด ๊ต์ ๋๋ ์ฅ๋ฉด์
๋๋ค.
benchmarks/๋ก ์ง์ ์ฌํํ ์ ์์ต๋๋ค.
Lemory๋ AI ์์ด์ ํธ๋ฅผ ์ํ ๋ก์ปฌ ์ปจํ ์คํธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค. ์์ด์ ํธ๊ฐ ํ์๋ก ํ๋ ์ปจํ ์คํธ(๊ธฐ์ต, ์ง์, ์คํฌ)๋ฅผ ๋ด ํด๋์ ๋งํฌ๋ค์ด ํ์ผ ํ๋์ ์ฒด๊ณ๋ก ํตํฉํฉ๋๋ค. Claude Code, Claude Desktop, Cursor, ์ง์ ๋ง๋ ์์ด์ ํธ๊ฐ ๋งค ์ธ์ ๋ฏ์ ์ฌ๋์ผ๋ก ์์ํ์ง ์๊ฒ ํ๊ณ , ๋งํฌ๋ค์ด ๋ ธํธ๊ฐ ์ด๋ฏธ ์๋ค๋ฉด(์ต์๋์ธ์ด๋ ๊ทธ๋ฅ ํด๋๋ ) ๊ทธ๊ฒ์ด ๊ณง๋ฐ๋ก ์ปจํ ์คํธ๊ฐ ๋ฉ๋๋ค.
2026๋
, ์์ฅ์ ์ด ๋ฐฉํฅ์ผ๋ก ์๋ ดํ์ต๋๋ค. ByteDance์ OpenViking(32.8kโ
,
VLDB 2026)์ด "์ปจํ
์คํธ ๋ฐ์ดํฐ๋ฒ ์ด์ค"๋ผ๋ ์นดํ
๊ณ ๋ฆฌ๋ฅผ ๋ง๋ค๋ฉฐ ๋ฒกํฐ ์คํ ์ด
๋์ ํ์ผ์์คํ
ํจ๋ฌ๋ค์์ ํํ๊ณ , Tencent์ Agent Memory๊ฐ ๊ธฐ์ต
ํผ๋ผ๋ฏธ๋๋ฅผ, Vectorize์ Hindsight๊ฐ retain-recall-reflect๋ฅผ ํํ์ต๋๋ค.
๋ฐฉํฅ์ ์ ๋ถ ๋ง์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๊ทธ๋ค์ ํ์ผ์์คํ
์ viking:// ๊ฐ์ ๊ฐ์
๊ฒฝ๋ก์ด๊ณ , ๋ฐ์๋ ์ฌ์ ํ ๊ทธ๋ค์ DB๊ฐ ์์ต๋๋ค. Lemory๋ ๋ฐ๋์ชฝ ๋์์
์ถ๋ฐํ์ต๋๋ค: ๋น์ ์ด ์ด๋ฏธ ๊ฐ์ง ์ง์ง ํ์ผ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์
๋๋ค. ls,
grep, git, ์ต์๋์ธ์ด ๊ทธ๋๋ก ๊ด๋ฆฌ ๋๊ตฌ์ด๊ณ , ๋ ๋๋ ๋น์ฉ์ 0์
๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ์ ํ์ด ์ฑ๋ฅ์ ๊น์ง ์๋๋ค๋ ๊ฒ์, ์คํ๋ ค ์ด๊ธด๋ค๋ ๊ฒ์,
๋๋ฆด ์ ์๋ ๊ฒฝ์์ ์ ๋ถ์ ๊ฐ์ ํ๋ค์ค์์ ์ธก์ ํด ๋ณด์ฌ์ค๋๋ค.
- ํ๋์ ํ์ผ ์ฒด๊ณ์ ๋ชจ๋ ์ปจํ
์คํธ. ํ์
์๋ ๊ธฐ์ต ํํธ, ์ฅ๋ฉด ์์ฌ,
ํ๋ฅด์๋, ์ถ์ถ๋ ์คํฌ, ๊ทธ๋ฆฌ๊ณ ๋น์ ์ ๋
ธํธ๊น์ง ์ ๋ถ ๋ณผํธ ์์ ํ๋ฒํ
.md์ ๋๋ค. ๊ฐ์ ๊ณ์ธต์ด ์์ผ๋ ์์ด์ ํธ์ฉ ๋ทฐ์ ์ฌ๋์ฉ ๋ทฐ๊ฐ ๊ฐ์ ํ์ผ์ด๊ณ ,rmํ ๋ฒ์ด๋ฉด ์ง์์ง๋๋ค. ๊ณ์ ๋, ํํธ ์ฟผํฐ๋, ์ด์ฌ ๋น์ฉ๋ ์์ต๋๋ค. - ๊ณ์ธต ๋ก๋ฉ(L0/L1/L2)์ผ๋ก ํ ํฐ์ ์๋๋๋ค. ๋ชจ๋ ๋ ธํธ๋ฅผ L0 ํ ์ค ์์ฝ, L1 ๊ฐ์(์ ๋ชฉ ๊ณจ๊ฒฉ + ์น์ ๋์ ๋ถ), L2 ์๋ฌธ ์ธ ๋จ๊ณ๋ก ์ฝ์ ์ ์์ต๋๋ค. ๋ค๋ฅธ ์ปจํ ์คํธ DB๋ ์ด ๊ณ์ธต์ ์ฐ๊ธฐ ์์ ์ LLM์ผ๋ก ์์ฑํ์ง๋ง, Lemory๋ ์ฝ๊ธฐ ์์ ์ ๊ฒฐ์ ์ ์ผ๋ก ์ ๋ํฉ๋๋ค. LLM 0ํ, ์๋ณธ๊ณผ ์ด๊ธ๋ ์ ์์ต๋๋ค. ์ธ์ ๋ถํธ๋ ํผ๋ผ๋ฏธ๋(ํ๋ฅด์๋+์ฅ๋ฉด ์ง๋)๊ฐ ๋งก์ ์๋ฌธ ๋คํ์ 1/48.8 ํ ํฐ์ผ๋ก ์์ํฉ๋๋ค.
- ๊ฒ์์ด ์ค์ธก์ผ๋ก ๊ณ ์ฑ๋ฅ์
๋๋ค. ์๋ฏธ + ํ๊ตญ์ด ํนํ ํค์๋ +
[[์ํค๋งํฌ]]๊ทธ๋ํ + ์๊ฐ ์ฐฝ, 4๊ฐ ๋ค๋ฆฌ์ ํ์ด๋ธ๋ฆฌ๋ ์ตํฉ. ๊ฐ์ ํ๋ค์ค์์ ํค๋ฆฌ์ค 0.983@40ms, ์๋ฒ ๋ฉ ์๋ fast ๋ชจ๋ 0.967@6.9ms. ์ง๋ ํญ๋ชฉ๊น์ง ์ ๋ถ ๊ณต๊ฐํฉ๋๋ค. - ๊ด์ฐฐ ๊ฐ๋ฅํฉ๋๋ค. ๋ชจ๋ ์ง์, AI๊ฐ ์ด ๋ชจ๋ ๋ ธํธ(ํด๋ฆญ ํ ๋ฒ ๋๋๋ฆฌ๊ธฐ), ํด๋ผ์ด์ธํธ๋ณ ์ฌ์ฉ๋์ด ํ์๋ผ์ธ์ ๋จ์ต๋๋ค. ์ ๋ถ ๋ด ์ปดํจํฐ์ SQLite ํ์ผ ํ๋์ ๋๋ค.
- ์ค์ค๋ก ์งํํฉ๋๋ค. ์ธ์
์ด ๋๋๋ฉด ๋ํ๊ฐ ์ฌ์ค ์ํฐ์ผ๋ก ์ฆ๋ฅ๋๊ณ , ์ฅ๋ฉด
์์ฌ์ ํ๋ฅด์๋๋ก ์น๊ฒฉ๋ฉ๋๋ค(
auto_consolidateํ ์ค์ด๋ฉด ์๋). LLM์ด ์์ผ๋ฉด ๊ฒฐ์ ์ ํด๋ฐฑ์ผ๋ก ๋์ํด ์์ ์คํ๋ผ์ธ์์๋ ํผ๋ผ๋ฏธ๋๊ฐ ์ ์ง๋ฉ๋๋ค.
Lemory๋ฅผ "๊ฑฐ์ณ์ผ๋ง" ํ๋ ๊ฒ์ ์๋ฌด๊ฒ๋ ์์ต๋๋ค. ๋ณผํธ๋ ๊ทธ๋ฅ ํ์ผ์ ๋๋ค. ๋ ํ๋ ๋๋ก ๋ ธํธ๋ฅผ ์ฐ๋ฉด(์ต์๋์ธ์ด๋ , ์๋ฌด ํธ์ง๊ธฐ๋ ) ์์ฒ๊ฐ 1์ด ์์ ์์ธํฉ๋๋ค.
save_memory์lemory remember๋ AI๊ฐ ์ธ ๋ ์ถ์ฒ ํ์, ์ค๋ณต ๊ฒ์ฌ, ๋๋๋ฆฌ๊ธฐ ๋ฒํผ์ ๋ถ์ด๊ธฐ ์ํ ํต๋ก์ผ ๋ฟ์ ๋๋ค. ๋ฌธ์ง๊ธฐ๊ฐ ์๋๋ผ ์๋์ฉ ์ ๊ตฌ์ ๋๋ค.
์์ด์ ํธ ๋ฉ๋ชจ๋ฆฌ๋ 2026๋ ํ์ฌ ์์ฒด ๋ฒค์น๋งํฌ ์ค์ํธ์ ์ฐ๊ตฌ ๋ฌธํ์ ๊ฐ์ง 1๊ธ ์ํคํ ์ฒ ์ปดํฌ๋ํธ๊ฐ ๋๊ณ , ์ ๊ณ ๋ณด๊ณ ์๋ค์ด ๊ผฝ๋ ์๊ตฌ ์กฐ๊ฑด๋ ์๋ ดํ์ต๋๋ค: ๋ฉํฐ์๊ทธ๋ ๊ฒ์, ๋ฉํ๋ฐ์ดํฐ ํํฐ๋ง, ์๊ฐ ์ถ๋ก , ๊ฐฑ์ ์๋ฏธ๋ก (๋ชจ์ยท๋ฒ๋ณต ๋ณด์กด), ๊ด์ฐฐ๊ฐ๋ฅ์ฑ, ํ ํฐ ํจ์จ. Lemory๋ ์ด ๋ชฉ๋ก ์ ์ฒด๋ฅผ ์ถฉ์กฑํ๋ฉฐ, ๊ฐ ํญ๋ชฉ์ ์ฌํ ๊ฐ๋ฅํ ์ซ์๋ฅผ ๋ถ์ฌ ๋์์ต๋๋ค.
| ์ ๊ณ๊ฐ ์๊ตฌํ๋ ์ถ | Lemory์ ๋ต | ์ค์ธก |
|---|---|---|
| ๋ฉํฐ์๊ทธ๋ ๊ฒ์ | ๋ฒกํฐ + ํ๊ตญ์ด ๋ฐ์ด๊ทธ๋จ BM25 + ๋งํฌ ๊ทธ๋ํ + ์๊ฐ ์ฐฝ, 4-๋ ๊ทธ ์ตํฉ | ๋ฉํฐํ 1.000 ยท ํค๋ฆฌ์ค 0.983@40ms (ยง0) |
| ์๊ฐ ์ถ๋ก | ์๊ฐ ์ธ์ง ๋ญํน + after:/before: ์ฐ์ฐ์ + temporal ๊ฒ์ ๋ ๊ทธ |
LongMemEval temporal 0.835, ์ ์ฒด any@5 0.983 (ยง7d) |
| ๊ฐฑ์ ์๋ฏธ๋ก | belief ์ ์๋ฆฌ ๊ฐ์ + ## ๋ณ์ฒ ์ด๋ ฅ, ์ญ์ ์๋ ์ต์ ์ฐ์ , ๋ฒ๋ณต ํจ์ ์ค์ธก |
AgentMemQA ํจ์ ์ค๋ต๋ฅ 0 (ยง7f) |
| ํ ํฐ ํจ์จ | L0/L1/L2 ๊ณ์ธต ๋ก๋ฉ + ํผ๋ผ๋ฏธ๋ ๋ถํธ | ๋ถํธ ์ปจํ ์คํธ๊ฐ ์๋ฌธ ๋คํ์ 1/48.8 (ยง14) |
| ๊ด์ฐฐ๊ฐ๋ฅ์ฑ | ์ ์ง์ยท์ ์ฐ๊ธฐ ํ์๋ผ์ธ, ํด๋ผ์ด์ธํธ ์ถ์ฒ, ํด๋ฆญ ํ ๋ฒ ๋๋๋ฆฌ๊ธฐ | ๋์๋ณด๋ ํ์ค ํ์ฌ |
| ์์ธ ๋น์ฉ | LLM 0ํ ๊ฒฐ์ ์ ์์ธ | 1,469๋ ธํธ ์ ์ด vs ๊ฒฝ์ 14๋ถ~45๋ถ (ยง4) |
๊ทธ ์์ ๊ฒฝ์์๊ฐ ๊ตฌ์กฐ์ ์ผ๋ก ๋ฐ๋ผ์ค๊ธฐ ์ด๋ ค์ด ์ถ์ด ๋ท ์์ต๋๋ค.
- ์ง์ง ํ์ผ. OpenViking์ ๊ณ์ธต์ ์ฐ๊ธฐ ์์ LLM ์์ฑ์ด๊ณ (์์ผ๋ฉด
ํ๋ ์ด์คํ๋๋ก ํดํ), ์ ์ฅ์๋ ๊ฐ์ ๊ฒฝ๋ก ๋ฐ์ ๊ทธ๋ค DB์
๋๋ค. Lemory์
๊ณ์ธต์ ์ฝ๊ธฐ ์์ ๊ฒฐ์ ์ ์ ๋์ด๊ณ ์ ์ฅ์๋ ๋น์ ์
.md์ ๋๋ค. ์ดํ ๋น์ฉ 0์ ์ํคํ ์ฒ์ ๊ฒฐ๊ณผ๋ผ ๋ง์ผํ ์ผ๋ก ๋ณต์ ํ ์ ์์ต๋๋ค. - ํค๋ฆฌ์ค ๋ก์ปฌ ๊ณ ์ฑ๋ฅ. ๊ธฐ๋ณธ ์ค์น ๊ทธ๋๋ก, API ํค ์์ด, ๊ฒ์์ด ๋ฐ๋ฆฌ์ด์ ๋๋ค. ๊ฐ์ ๋ฌด-LLM ์กฐ๊ฑด์์ Hindsight ์ต์ ๊ตฌ์ฑ์ 4.2๋ฐฐ recall์ ๋๋ค (ยง4j). ๊ด๋ฆฌํ API ์ง์(mem0 ๋ฑ)์ ํค๋๋ผ์ธ ์์น๋ ์ฟผ๋ฆฌ๋น ์์ฒ ํ ํฐ์ LLM ๋น์ฉ ์์ ์ ์์ต๋๋ค.
- ํ๊ตญ์ด(๋๊ฒ๋ CJK)๊ฐ 1๋ฑ ์๋ฏผ. ์ด ๋ถ์ผ ์์๊ถ ์ ๋ถ๊ฐ ์์ด ์ฐ์ ์ ๋๋ค. ์์ฅ์ด ์ปค์ง์๋ก ์ด ๊ฒฉ์ฐจ๋ ์ปค์ง๋๋ฐ, ๊ฒฉ์ฐจ๋ฅผ ์ขํ๋ ค๋ฉด ์ ํฌ๊ฐ ๊ณต๊ฐํ ๊ฒ๊ณผ ๊ฐ์ ๋ค๊ตญ์ด ๋ฒค์น๋งํฌ๊ฐ ํ์ํ๊ณ , ๊ทธ๊ฒ์ ๊ณต๊ฐํ ๊ณณ์ด ์ ํฌ๋ฟ์ ๋๋ค(KorMapleQA 2,075๋ฌธํญ).
- ์ธก์ ๋ฌธํ. ์ด ์์ฅ์์ same-harness ๊ต์ฐจ ๋น๊ต ์์น๋ฅผ ๊ณต๊ฐํ๋ ํ๋ก์ ํธ๋ Lemory๊ฐ ์ ์ผํฉ๋๋ค. ์ง๋ ํญ๋ชฉ, ์คํจํ ์คํ, ํํด๊น์ง ํจ๊ป ๊ณต๊ฐํ๋ฏ๋ก ์ซ์๊ฐ ์ ๋ขฐ๋ฅผ ๋ง๋ญ๋๋ค. ๋ฒค์น๋งํฌ ์ฃผ์ฅ์ด ์ฆ์ ์ปค๋ฎค๋ํฐ ๊ฒ์ฆ๋์ ์ค๋ฅด๋ 2026๋ ์์ฅ์์ ์ด๊ฒ ์์ฒด๊ฐ ํด์์ ๋๋ค.
๋ชจ๋ ์์น๋ ์ปค๋ฐ๋ ์ฝ๋์ ๊ณต๊ฐ ๋ฐ์ดํฐ๋ก ๋ค์ ๋ง๋ค ์ ์์ต๋๋ค. ๋ฐฉ๋ฒ, ์ง๋ ํญ๋ชฉ, ์์ง ๋ชป ํผ ๋ฌธ์ ๊น์ง 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์ ์ ์ ์ด๋ฆ์ด ๋์๋ณด๋ ์ฌ์ฉ๋์ ๊ทธ๋๋ก ํ์๋ฉ๋๋ค. ๋๊ฐ ๋ด
๊ธฐ์ต์ ์ฝ๊ณ ์ฐ๋์ง ํญ์ ์ ์ ์์ต๋๋ค.
ํด์ 20๊ฐ์
๋๋ค. ์ฝ๊ธฐ: search_notes ยท ask_notes ยท recent_notes ยท
read_note(๊ณ์ธต ๋ก๋ฉ: level=abstract|overview|full ยท ๊ด๋ จ์ฑ ํ๋จ์
L0 ํ ์ค๋ก, ์๋ฌธ์ ํ์ํ ๋๋ง) ยท context_tree(๋ณผํธ๋ฅผ ํ์ผ์์คํ
์ฒ๋ผ
ํ์: ํด๋ ํธ๋ฆฌ + ๋
ธํธ๋ณ L0 ํ ์ค) ยท list_notes ยท related_notes ยท
suggest_links(์์ง ์ฐ๊ฒฐ ์ ๋ ์ธ๊ธ์ ๋ฌธ์ฅ ์ฆ๊ฑฐ์ ํจ๊ป ๋งํฌ๋ก ์ ์) ยท
vault_status ยท vault_context(ํ๋ฅด์๋ยท์ฅ๋ฉด ์ง๋ยท๊ณ ์ ์ต์ปคยท์ด๋ฆฐ
์ผ์ด์คยท์ต๊ทผ ํ๋์ ํ ๋ฒ์, LLM ์์ด ์ ms). ์ฐ๊ธฐ: save_memory(์ ์ฅํ๋ฉด์
์ค๋ณต ๊ฒ์ฌ์ ๊ด๋ จ ๋
ธํธ ์ฐ๊ฒฐ๊น์ง) ยท append_note(๋ฎ์ด์ฐ๊ธฐ ๋ถ๊ฐ, ๋ณผํธ ๋ฐ์ผ๋ก
๋ชป ๋๊ฐ). ๊ทธ๋ฆฌ๊ณ ์๋ ์์ด์ ํธ ์์
๊ธฐ์ต 8๊ฐ์
๋๋ค.
์์ด์ ํธ๊ฐ ๋งค๋ฒ ์ฒ์๋ถํฐ ๋ค์ ์์ํ์ง ์๊ฒ ํ๋ ํด๋ค์
๋๋ค. ๊ธฐ์ต ํํธ์
ํ์
์ด ์๊ณ (factยทdecisionยทerrorยทpreferenceยทprocedureยทrelationยทepisodeยทbelief),
belief๋ ํ์ ๋(0-1)๋ฅผ ๋ฌ๊ณ ๊ฐ์ ์ ๋ชฉ์ผ๋ก ๋ค์ ๊ธฐ์ตํ๋ฉด ๋ณต์ ๋์
์ ์๋ฆฌ ๊ฐ์ ๋ฉ๋๋ค(๋ฐ๋ ค๋ ์ง์ ์ ## ๋ณ์ฒ์ ๋์ ยท ์ฆ๊ฑฐ์ ์ถ๋ก ์
๋ถ๋ฆฌ๋ Hindsight์์ ๋ฐฐ์ ์ต๋๋ค). ์ธ์
๋ณด๋ค ์ค๋ ์ฌ๋ ์์
์ค๋ ๋์ธ
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 ํ ์ค์ด๋ฉด
ํ
์คํธ 500์ฌ ๊ฐ๊ฐ ์์ ์คํ๋ผ์ธ์ผ๋ก ๋์๊ฐ๋๋ค.
CONTRIBUTING.md ยท ํ๊ตญ์ด ์ด์/PR ํ์ํฉ๋๋ค.
์ฒ์๋ถํฐ ๋ก์ปฌ ์ฐ์ ์ผ๋ก ์ค๊ณํ์ต๋๋ค. ์ ๋ขฐ ๋ชจ๋ธ, ๋ก์ปฌ ์๋ฒ์ ๋ณด์ ์ฅ์น, ์ทจ์ฝ์ ์ ๊ณ ๋ฐฉ๋ฒ์ SECURITY.md์ ์์ต๋๋ค.
English README ยท MIT