기억 저장소에서 무엇을 임베딩할까
모든 발화에 벡터를 만들 필요는 없어. 좋은 원칙은 다시 찾을 가치가 있는 내용과 걸러 낼 가치가 있는 메타데이터를 가진 기억만 임베딩하는 것이야. 인사, 맞장구, 도구가 출력한 JSON은 대개 잡음이야.
유용한 기억 단위 세 가지
- 대화 단위 — 사용자나 어시스턴트 메시지마다 청크 하나를 만들어. 쉽지만 항목이 많아지고 검색 결과가 흩어질 수 있어.
- 사건 단위 — 디버깅 세션이나 기능 설계 토론처럼 하나의 사건으로 이어지는 대화를 묶어. 검색 관련성은 좋아지지만 자동으로 경계를 나누기 어려워.
- 정제 단위 — 모델이 사건을 요약해. 예를 들면 '30분 동안 지연 시간을 측정한 뒤 사용자가 IVFFlat보다 HNSW를 선택했다'처럼 남겨. 신호 대 잡음 비율은 가장 높지만 주기적으로 정제하는 과정이 필요해.
시간 감쇠를 적용한 검색
내용이 비슷하다면 최근 기억이 오래된 기억보다 앞서야 해. 점수는 similarity * exp(-age_days / half_life)로 계산해. 평가 집합으로 half_life를 조정하고, cwkPippa는 일반 기억에 약 30일을 사용하며 정체성을 정의하는 순간에는 더 길게 둬.