
부제: 저장·검색엔 쓰지만 프롬프트엔 넣지 않기로 한 값들
챗봇이 기억하는 메모리마다 분류(category)와 태그(tags)를 붙여 둔다.
이건 나중에 관련 기억을 검색하고, 순위를 매기고, 지울 우선순위를 정하는 데 쓰는 내부 신호다.
처음엔 이 메모리를 대화에 넣을 때 그 분류·태그도 함께 앞에 붙여 보여줬다.(preference | running) 아침에 달리기를 선호 같은 식이었다.
태그까지 대화에 넣고 있었다
문제가 세 가지였다.
하나, content가 이미 자급자족적이다.
"아침에 달리기를 선호"만으로 충분한데, 앞에 붙은 (preference | running)은
응답을 만드는 데 아무것도 더해 주지 않는다.
둘, 토큰 낭비다.
메모리마다 태그 접두사가 붙으니, 기억이 여러 개면 그만큼 쌓인다.
셋, 한국어 대화에 영어 snake_case가 부조화다.
한국어로 오가는 대화에 preference·running 같은 영어 태그가 섞이면 결이 어긋나고,
모델이 그 형식을 따라 하려 들 수도 있다.
내부 신호와 대화 노출을 나눈다
그래서 분류·태그를 대화 직렬화에서만 뺐다.
저장·검색·랭킹 경로에서는 그대로 쓴다. 이건 시스템이 기억을 다루는 데 필요한 정보다.
다만 대화 컨텍스트로 만들 때는 붙이지 않고, content만 넣는다.
서버 동작에는 아무 영향이 없다. 검색도 랭킹도 그대로다.
즉 "시스템 내부용 신호"와 "모델에게 보여줄 것"을 분리한 것이다.
날짜 같은 실제 의미 있는 접두사는 남겼다. 그건 응답에 쓸모가 있으니까.
정리
- 메모리의 분류·태그는 검색·랭킹용 내부 신호인데, 대화 컨텍스트에도 그대로 노출하고 있었다
- content가 이미 자급자족적이라 태그 노출은 응답에 무용 + 토큰 낭비 + 한국어 대화에 영문 태그 부조화
- 분류·태그는 저장·검색·랭킹엔 그대로 쓰되 대화 직렬화에서만 제외 — 서버 동작 무영향
- "내부 신호"와 "모델에게 보여줄 것"을 분리
데이터에 붙인 메타데이터는 시스템이 쓰라고 있는 것이지, 모델에게 보여주라고 있는 게 아니다.
계산에 쓰는 값과 모델에 보여줄 값을 나누는 것과 같은 원칙 — 붙어 있다고 다 내보내지 않는다.
'AI' 카테고리의 다른 글
| [에이전트] 좌표 없이 장소를 찾는다 — 위치정보법이 막은 GPS, 지명 하나로 풀어간 경로 (0) | 2026.08.05 |
|---|---|
| [에이전트] 대화 선제 요약 트리거 백필 함정 반복 실패 쿨다운 (0) | 2026.08.04 |
| [에이전트] LLM 카드 플래그 없는 설계 환각 방지 서버 계산 (0) | 2026.08.02 |
| [동시성] 락 대기가 클라이언트 타임아웃보다 길면 안 되는 이유 (0) | 2026.08.02 |
| [LLM] 정적 시스템 프롬프트 매 턴 바뀐 섹션만 주입 델타 컨텍스트 (0) | 2026.08.01 |