본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 17. 03:22

사용자가 AI에게 어떤 기억이 중요한지 가르칠 수 있게 하기

요약

BlazorMemory 라이브러리 v0.5.0은 사용자가 AI 어시스턴트의 기억 중 무엇이 중요한지 직접 제어할 수 있는 기능을 제공합니다. ImportanceScore를 도입하여 사용자의 피드백(따봉/역따봉)이 검색 결과의 우선순위에 반영되도록 설계되었습니다.

핵심 포인트

  • ImportanceScore를 통한 기억의 중요도 조절 기능 추가
  • 사용자 피드백을 코사인 유사도에 곱하여 검색 순위 결정
  • 삭제 대신 점수를 낮추는 down-ranking 방식으로 UX 개선
  • Blazor 컴포넌트를 통한 직관적인 UI 제공

저는 Blazor AI 어시스턴트에게 지속적인 기억(persistent memory)을 부여하기 위해 BlazorMemory를 구축했습니다. 이 라이브러리는 LLM을 사용하여 대화에서 사실을 추출하고, 이를 벡터(vectors)로 임베딩(embed)하며, 새로운 쿼리(query)가 들어올 때마다 관련 있는 내용을 검색합니다.

시스템은 작동했지만, 조용한 실패 모드(quiet failure mode)가 있었습니다. LLM이 무엇이 중요한지를 결정했기 때문입니다. 사용자에게는 발언권이 없었습니다. 그래서 누군가가 자신의 생일을 기억으로 표시했는데도 어시스턴트가 계속해서 "사용자는 커피를 좋아함"이라는 정보만 내놓는다면, 이를 수정할 방법이 없었습니다.

v0.5.0에서 이 문제가 해결되었습니다.

작동 방식
이제 각 기억에는 다음과 같은

ImportanceScore

필드가 있습니다. 기본값은 1.0입니다. 사용자는 패널에 있는 따봉(thumbs up) 및 역따봉(thumbs down) 버튼을 통해 기억을 중요(1.5) 또는 중요하지 않음(0.3)으로 표시할 수 있습니다.
검색 과정에서 이 점수는 코사인 유사도(cosine similarity)에 곱해지는 승수(multiplier) 역할을 합니다:

// In QueryAsync
results = results
    .Select(m => m.WithRelevanceScore((m.RelevanceScore ?? 0f) * m.ImportanceScore))
...

이것이 알고리즘의 전부입니다. 유사도가 0.7인 중요 표시된 기억은 1.05로 부스트되어 유사도가 0.9인 중립적인 기억을 이깁니다. 유사도가 0.9인 중요하지 않음으로 표시된 기억은 0.27로 떨어져 목록에서 제외됩니다.

API

// 향후 검색 시 부스트
await memory.MarkImportantAsync(memoryId);

...

UI에서
컴포넌트를 사용하면 모든 기억 카드에 따봉 버튼이 자동으로 나타납니다:

<MemoryPanel UserId="@userId" IsOpen="true" />

사용자가 LLM (Large Language Model)을 덮어쓰는 것을 원하지 않는다면 AllowFeedback="false"를 사용하여 이를 숨길 수 있습니다.

중요한 기억은 녹색 왼쪽 테두리가 표시됩니다. 중요하지 않은 기억은 흐릿하게 처리되며 빨간색 왼쪽 테두리가 표시됩니다. 한눈에 쉽게 스캔할 수 있습니다.

삭제 대신 순위를 낮추는(down-rank) 이유

따봉 아래 버튼(thumbs down button)은 단순히 기억을 삭제할 수도 있었습니다. 저는 두 가지 이유로 그렇게 하지 않기로 결정했습니다.

첫째, 사용자들이 잘못된 버튼을 클릭할 수 있습니다. 되돌릴 수 없는 삭제는 적대적인 UX (User Experience)입니다.

둘째, 때로는 기억을 지우지 않고 억제하고 싶을 때가 있습니다. 예를 들어, 어시스턴트가 계속해서 예전 직함을 언급할 때, 문맥을 완전히 잃지 않으면서도 이를 뒤로 밀어내고 싶을 수 있습니다. 0.3의 점수로 순위를 낮추면(down-ranking), 해당 기억을 사용할 수는 있지만 표면으로 드러날 가능성은 낮아집니다.

사용자가 실제로 삭제를 원하는 경우, 따봉 버튼 바로 옆에 있는 ✕ 버튼을 한 번만 클릭하면 됩니다.

v0.5.0 가져오기

dotnet add package BlazorMemory
dotnet add package BlazorMemory.Components
dotnet add package BlazorMemory.Storage.IndexedDb
...

NuGet에 있는 8개의 패키지 모두 준비되었습니다. 테스트를 통과했습니다.
GitHub: https://github.com/aftabkh4n/BlazorMemory

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0