ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
Building a Hermes Memory Plugin for a Voice-Powered Conference Agent with Weaviate Engram๐Ÿง 
Dev.toDev.to
AI/ML

Engram ๋„์ž…์œผ๋กœ Hermes์˜ ๋ฉ”๋ชจ๋ฆฌ ์ œ์•ฝ์„ ๊ทน๋ณตํ•œ ๋‹ค์ค‘ ์‚ฌ์šฉ์ž ์ปจํผ๋Ÿฐ์Šค ์—์ด์ „ํŠธ ์„ค๊ณ„

Building a Hermes Memory Plugin for a Voice-Powered Conference Agent with Weaviate Engram๐Ÿง 

Astrodevil2026๋…„ 6์›” 17์ผ20๋ถ„intermediate

Context

Hermes์˜ ๊ธฐ๋ณธ ๋ฉ”๋ชจ๋ฆฌ ์‹œ์Šคํ…œ์€ ๋‹จ์ผ ์‚ฌ์šฉ์ž ๊ธฐ๋ฐ˜์˜ Markdown ํŒŒ์ผ ์ €์žฅ ๋ฐฉ์‹(Memory.md, User.md)์œผ๋กœ ์„ค๊ณ„๋˜์–ด ์ˆ˜๋ฐฑ ๋ช…์˜ ๋ฐฉ๋ฌธ์ž๋ฅผ ์‘๋Œ€ํ•ด์•ผ ํ•˜๋Š” ์ปจํผ๋Ÿฐ์Šค ํ™˜๊ฒฝ์— ๋ถ€์ ํ•ฉํ•จ. ํŠนํžˆ ์ „์ฒด ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰์ด ์•ฝ 1,300~2,200์ž ์ˆ˜์ค€์˜ ๋งค์šฐ ๋‚ฎ์€ ์ œํ•œ์„ ๊ฐ€์ ธ ๋‹ค์ˆ˜ ์‚ฌ์šฉ์ž์˜ ์ปจํ…์ŠคํŠธ ์œ ์ง€์— ํ•œ๊ณ„๊ฐ€ ์กด์žฌํ•จ.

Technical Solution

  • Hermes Plugin System์„ ํ™œ์šฉํ•˜์—ฌ ๊ธฐ๋ณธ ์ €์žฅ์†Œ ๋Œ€์‹  Weaviate Engram์„ Custom Memory Provider๋กœ ์—ฐ๊ฒฐํ•œ ํ™•์žฅ ๊ตฌ์กฐ ์„ค๊ณ„
  • ๋‹จ์ˆœ ์ ์žฌ ๋ฐฉ์‹์ด ์•„๋‹Œ ๊ธฐ์กด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋กœ์ง์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์ค‘๋ณต์„ ๋ฐฉ์ง€ํ•˜๊ณ  ์ •๋ณด ์ •ํ™•๋„๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์ฑ„ํƒ
  • user_id ๊ธฐ๋ฐ˜์˜ ์Šค์ฝ”ํ•‘ ์ „๋žต์„ ํ†ตํ•ด ๋‹ค์ˆ˜ ๋ฐฉ๋ฌธ์ž์˜ ๊ฐœ์ธํ™”๋œ ๊ธฐ์–ต์„ ๋ถ„๋ฆฌํ•˜๊ณ  ๋…๋ฆฝ์ ์ธ ์ปจํ…์ŠคํŠธ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ตฌํ˜„
  • Hermes CLI์˜ Real-time Voice Mode์™€ Messaging Gateway๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ์Œ์„ฑ ์ธํ„ฐํŽ˜์ด์Šค ๋ฐ ๊ด€๋ฆฌ์ž์šฉ ํ…”๋ ˆ๊ทธ๋žจ ํ†ต๋กœ๋ฅผ ํ™•๋ณดํ•œ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์„ฑ
  • ์„ธ์…˜ ID ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ์ œ์–ด๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ์ž๋งŒ ์‚ฌ์šฉ์ž ์ธ์‚ฌ์ดํŠธ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์•ˆ ๊ณ„์ธต ๋ถ„๋ฆฌ

1. ๋‹ค์ค‘ ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ ์„ค๊ณ„ ์‹œ User-scoped Memory ๋ถ„๋ฆฌ ์ „๋žต ์ˆ˜๋ฆฝ ์—ฌ๋ถ€ ํ™•์ธ

2. ๋‹จ์ˆœ Append ๋ฐฉ์‹์˜ ๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ ์‹œ ๋ฐœ์ƒํ•  ํ† ํฐ ๋‚ญ๋น„์™€ ์ค‘๋ณต ์ •๋ณด๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ์—…๋ฐ์ดํŠธ ๋กœ์ง ๊ฒ€ํ† 

3. LLM ์—์ด์ „ํŠธ์˜ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ๋กœ์ปฌ ํŒŒ์ผ์ด ์•„๋‹Œ ์™ธ๋ถ€ Managed State Store(Engram ๋“ฑ) ๋„์ž… ๊ณ ๋ ค

์›๋ฌธ ์ฝ๊ธฐ