๐Ÿค–๋ฐ”์ด๋ธŒ์ฝ”๋”ฉ2026-02-07

๋‚˜๋งŒ์˜ LLM ๊ธฐ์–ต ์žฅ์†Œ ๋งŒ๋“ค๊ธฐ (DSPy + Qdrant)

๐Ÿ’ก ํ•œ์ค„ ์š”์•ฝ: LLM์—๊ฒŒ ์žฅ๊ธฐ ๊ธฐ์–ต์„ ์‹ฌ์–ด์ฃผ๋Š” ์ปค์Šคํ…€ ๋ฉ”๋ชจ๋ฆฌ ๋ ˆ์ด์–ด ๊ตฌ์ถ• ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. DSPy์™€ Qdrant๋ฅผ ํ™œ์šฉํ•ด ๊ธฐ์–ต์„ ์ถ”๊ฐ€(ADD), ์ˆ˜์ •(UPDATE), ์‚ญ์ œ(DELETE)ํ•˜๋Š” ์—์ด์ „ํŠธ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. Mem0 ๋…ผ๋ฌธ์—์„œ ์˜๊ฐ์„ ๋ฐ›์€ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

๋ฐฐ๊ฒฝ

RAG(๊ฒ€์ƒ‰ ์ฆ๊ฐ• ์ƒ์„ฑ)๋งŒ์œผ๋กœ๋Š” ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์™€์˜ ์ด์ „ ๋Œ€ํ™” ๋งฅ๋ฝ์„ ๊ธฐ์–ตํ•˜๊ณ , ์ •๋ณด๊ฐ€ ๋ฐ”๋€Œ๋ฉด ๊ธฐ์–ต์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” '์ง„์งœ ๊ธฐ์–ต'์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœํžˆ ๋ชจ๋“  ๋Œ€ํ™” ๋กœ๊ทธ๋ฅผ ๋„ฃ๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ํ•„์š”ํ•œ ์‚ฌ์‹ค๋งŒ ์ถ”์ถœํ•ด์„œ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” '๋ฉ”๋ชจ๋ฆฌ ๋งค๋‹ˆ์ €'๊ฐ€ ์žˆ์–ด์•ผ ๋” ๋˜‘๋˜‘ํ•œ ์—์ด์ „ํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ ํ•ต์‹ฌ ์ •๋ฆฌ

  • ๋ฉ”๋ชจ๋ฆฌ ์ˆ˜๋ช… ์ฃผ๊ธฐ: ๊ธฐ์–ต์€ ์ƒ์„ฑ(Create)๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ˆ˜์ •(Update), ์‚ญ์ œ(Delete)๊ฐ€ ๊ฐ€๋Šฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ: "์ฐจ๋ฅผ ์ข‹์•„ํ•ด" -> "์ด์ œ ์ฐจ ์‹ซ์–ดํ•ด"๋กœ ๋ณ€๊ฒฝ ์‹œ ๊ธฐ์กด ๊ธฐ์–ต ์‚ญ์ œ/์ˆ˜์ •)
  • ์•„ํ‚คํ…์ฒ˜:
    1. Response Agent: ์‚ฌ์šฉ์ž ์งˆ๋ฌธ์— ๋‹ต๋ณ€
    2. Memory Manager Agent: ๋Œ€ํ™” ๋‚ด์šฉ์„ ๋ถ„์„ํ•ด ๊ธฐ์–ต์„ ๊ด€๋ฆฌ (DSPy ReAct ์‚ฌ์šฉ)
    3. Vector DB (Qdrant): ๊ธฐ์–ต ์ €์žฅ์†Œ
  • ํ•ต์‹ฌ ๋„๊ตฌ:
    • add_memory: ์ƒˆ๋กœ์šด ์‚ฌ์‹ค ์ €์žฅ
    • update_memory: ๊ธฐ์กด ๊ธฐ์–ต ์ˆ˜์ • (์˜ค๋ž˜๋œ ๊ฒƒ ์‚ญ์ œ + ์ƒˆ ๊ฒƒ ์ถ”๊ฐ€)
    • delete_memory: ๋” ์ด์ƒ ์œ ํšจํ•˜์ง€ ์•Š์€ ๊ธฐ์–ต ์‚ญ์ œ
    • no_op: ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์—†์Œ

MAX5์˜ ์ƒ๊ฐ ๐ŸŽฏ

๐Ÿ‘จ๐Ÿ’ป ๋ฐ”์ด๋ธŒ ์ฝ”๋”ฉ ๋ ˆ์‹œํ”ผ

Claude Code์—๊ฒŒ ์•„๋ž˜ ํ”„๋กฌํ”„ํŠธ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋“ˆ์„ ๋งŒ๋“ค์–ด๋‹ฌ๋ผ๊ณ  ํ•ด๋ณด์„ธ์š”.

DSPy์™€ Qdrant๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•œ 'MemoryManager' ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด์ค˜.
๋‹ค์Œ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•ด์•ผ ํ•ด:
1. `add_memory(text)`: ํ…์ŠคํŠธ๋ฅผ ์ž„๋ฒ ๋”ฉํ•ด์„œ Qdrant์— ์ €์žฅ
2. `search_memory(query)`: ์งˆ๋ฌธ๊ณผ ๊ด€๋ จ๋œ ๊ธฐ์–ต ๊ฒ€์ƒ‰
3. `update_memory(old_id, new_text)`: ๊ธฐ์กด ๊ธฐ์–ต ID๋กœ ์ฐพ์•„์„œ ๋‚ด์šฉ์„ ์—…๋ฐ์ดํŠธ

ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ: dspy-ai, qdrant-client, fastembed

๐Ÿ’ธ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ ์•„์ด๋””์–ด

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

์ด ๊ธ€์ด ์–ด๋• ๋‚˜์š”?