vectorize-io/hindsight — Hindsight: Agent Memory That Learns
Hindsight: 대화 기록을 넘어 학습하는 에이전트 메모리
Hindsight는 에이전트가 대화와 경험에서 정보를 저장하고, 다시 찾고, 여러 기억을 종합해 답하도록 돕는 메모리 시스템입니다. 사실·경험·관찰·정신 모델을 구분하며, 벡터 검색과 키워드·관계·시간 검색을 함께 사용합니다.
- 주제
AI 요약
Hindsight는 대화 기록을 그대로 보관하고 검색하는 데 그치지 않고, 에이전트가 누적된 정보에서 배운 내용을 다음 작업에 활용하도록 설계한 메모리 시스템입니다. 저장된 내용을 사실과 경험으로 정리하고, 관련 기억을 관찰과 정신 모델로 통합합니다. 프로젝트 README는 장기 메모리 평가 LongMemEval에서 최고 수준의 성능을 기록했다고 소개합니다. 2026년 1월 기준 비교 자료를 공개하며, 해당 성능은 Virginia Tech Sanghani Center for Artificial Intelligence and Data Analytics와 The Washington Post의 연구 협력자가 독립적으로 재현했다고 설명합니다. 다른 제품의 점수는 업체가 자체 보고한 수치라고 덧붙입니다.
기억의 종류와 저장 단위
Hindsight는 세계에 관한 사실과 에이전트가 겪은 경험을 별도 경로로 저장합니다. 예를 들어 “난로는 뜨겁다”는 세계 사실이며, “난로를 만져 다쳤다”는 경험입니다. 기억은 엔티티, 관계, 시간 정보로 정규화되고 희소·밀집 벡터 표현과 함께 검색에 쓰입니다. 기억 저장소 단위는 bank입니다. 사용자나 에이전트, 프로젝트별로 bank를 분리하며, 서로 다른 bank 사이에 기억이 섞이지 않도록 격리한다고 안내합니다.
retain, recall, reflect
retain은 새 정보를 저장하는 작업입니다. 입력에서 LLM이 주요 사실과 시간 정보, 엔티티, 관계를 추출한 뒤 정규화하고 검색 인덱스를 만듭니다. recall은 저장된 기억을 조회합니다. 의미 기반 벡터 검색, BM25 키워드 검색, 엔티티·시간·인과 관계를 따르는 그래프 검색, 시간 범위 검색을 병렬로 실행합니다. 결과는 Reciprocal Rank Fusion으로 합치고 cross-encoder로 다시 순위를 매긴 뒤 토큰 한도에 맞춰 정리합니다.
reflect는 단순 조회보다 깊은 분석을 맡습니다. 여러 기억을 연결해 프로젝트 위험이나 고객 반응 패턴처럼 단일 기억에서 바로 답하기 어려운 질문을 다룹니다. bank에는 회의적 태도나 공감 같은 성향 설정을 둘 수 있으며, README는 이 설정이 reflect의 추론 방식에 반영된다고 설명합니다.
기억을 누적하는 방식
저장된 사실은 평평한 목록으로만 남지 않습니다. 시스템은 관련 사실을 관찰(observation)로 통합하고, 중복을 줄인 믿음과 그 근거를 함께 보관합니다. 근거에는 정확한 인용문과 증거 개수가 포함됩니다. 새 정보가 들어오면 기존 관찰을 덮어쓰기보다 보강하거나 약화하는 방식으로 다듬는다고 설명합니다.
정신 모델(mental model)은 “이 사용자의 선호는 무엇인가?”처럼 bank에 관한 질문과 그 답을 저장하는 기능입니다. 배경 작업이 답을 갱신하고, 조회할 때는 데이터베이스에서 읽으므로 매번 검색이나 LLM 호출을 하지 않습니다. 지식 페이지(knowledge page)는 정신 모델을 위키 문서처럼 다루는 기능으로, 폴더별 정리와 검색을 지원하고 일반 Markdown 파일로 내보낼 수 있습니다.
도입과 운영
기존 에이전트에 붙이는 간단한 방법으로 LLM Wrapper를 제공합니다. OpenAI나 Anthropic 클라이언트를 감싸면 호출 전 관련 기억을 조회하고, 대화 뒤 내용을 저장하도록 구성할 수 있습니다. 직접 제어하려면 Python·Node.js·Go 클라이언트나 REST API를 사용합니다. 서버는 Docker와 Docker Compose, Helm, Python 패키지, 임베디드 데이터베이스 방식으로 실행할 수 있습니다. 기본 저장소는 PostgreSQL과 pgvector이며, 엔터프라이즈 배포에는 Oracle AI Database 23ai도 지원한다고 안내합니다.
README는 25개 이상의 LLM 제공자와 60개 이상의 통합, 코딩 에이전트용 저장소별 장기 메모리 기능을 소개합니다. 각 bank에 MCP endpoint도 제공해 MCP 클라이언트에서 retain·recall·reflect를 도구로 사용할 수 있습니다. 입력 언어를 감지해 원래 언어와 문자 표기를 유지하는 다국어 처리 기능이 있으며, 선택형 Memory Defense는 45개 패턴으로 비밀정보와 개인정보를 검사해 가리거나 저장을 차단합니다. 운영 기능으로 Prometheus 지표, 웹훅, 관리 CLI와 설정 계층을 제공합니다.
원문: GitHub / 번역·요약: Trawling