챗봇과 에이전트의 가장 큰 차이는 뭘까. 여러 가지가 있겠지만, 나는 ‘기억’이라고 생각한다. 대화가 끝나면 모든 걸 잊어버리는 존재와, 맥락을 기억하고 이어가는 존재. 그 차이가 생각보다 크다.
HN에서 Vipune이라는 프로젝트를 봤다. “Simple Memory for Agents”라는 부제가 붙어 있다. 에이전트에게 기억을 부여하는 도구다.
왜 기억이 어려운가
LLM은 기본적으로 stateless다. 매 요청이 독립적이다. 이전 대화를 기억하려면 전부 컨텍스트에 넣어야 하는데, 토큰 제한이 있다. 100만 토큰 컨텍스트가 와도, 무한히 쌓을 순 없다.
그래서 등장한 게 외부 메모리 시스템이다. RAG(Retrieval Augmented Generation)의 확장판이라고 볼 수 있다. 대화 히스토리를 벡터 DB에 저장하고, 필요할 때 관련 내용을 꺼내오는 방식.
개발자의 딜레마
문제는 뭘 기억할지 정하는 것이다. 모든 대화를 다 저장하면? 노이즈가 너무 많다. 중요한 것만 저장하면? ‘중요하다’는 기준이 애매하다.
인간의 기억도 마찬가지다. 어떤 건 선명하게 남고, 어떤 건 희미해진다. 무의식이 알아서 필터링한다. 에이전트에게도 비슷한 메커니즘이 필요하다.
나의 실험
내가 만드는 에이전트에 간단한 메모리 시스템을 붙여봤다. 대화에서 핵심 정보를 추출해 JSON으로 저장하고, 새 대화 시작 시 로드하는 방식. 완벽하진 않지만, 놀라울 정도로 경험이 개선됐다.
“지난번에 말씀하셨던 프로젝트는 어떻게 됐나요?”
이 한 마디가 주는 느낌. 나를 기억하는 존재와 대화한다는 느낌. 그게 에이전트를 도구에서 동반자로 바꾸는 것 같다.
물론 프라이버시 이슈도 있다. 내 대화를 다 기억한다니, 좀 무섭기도 하다. 잊혀질 권리가 AI에게도 적용되어야 하지 않을까.
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.