Hindsight (Vectorize) — 에이전트 메모리 시스템
개요
"기억하는 게 아니라 배우는" 에이전트 메모리. retain·recall·reflect + fact-belief 분리 4개 네트워크
메모
LongMemEval 91.4% (독립 재현), BEAM 10M 64.1% (2위 대비 58% 마진). MIT, ARM64 지원, 임베디드 pg0 → GB10 로컬 LLM과 완전 로컬 PoC 가능. Hermes 자체 메모리 설계와 개념 유사 — 참고 가치 높음. 적용 완료 (2026-08-13): ① Docker 컨테이너 hindsight (ghcr.io/vectorize-io·hindsight:latest, restart unless-stopped) — API 18888 / UI 19999 (8888은 searxng이 사용 중이라 변경), 내장 pg0 + 볼륨 hindsight-data ② LLM = opencode.ai zen·go + deepseek-v4-flash (운영 검토) ③ Hermes memory.provider=hindsight + HINDSIGHT_API_URL 설정 → available 확인 ④ 실측 검증: retain(한국어 엔티티 자동 추출 3235 tokens) → recall(의미+키워드+그래프+시간 4중 검색, reranker 0.9997) 전 과정 정상 ⑤ hindsight_retain·recall·reflect 툴 세션 로드됨 — built-in MEMORY.md와 병렬 동작, 메모리 용량 제한 해소. 2026-08-14 컨테이너 healthy 재확인
조사 상세
개요
- Hindsight™: Vectorize, Inc.가 개발한 오픈소스 에이전트 메모리 시스템 ("Agent Memory That Learns")
- 슬로건: "기억만 하는 게 아니라 배우는 에이전트" — 대화 히스토리 recall을 넘어, 시간 인지·신념 형성·업데이트가 가능한 메모리
- 발표: 2025-12-16 (공식 블로그) · arXiv 논문 "Hindsight is 20/20" (arXiv:2512.12818, 2025-12-14)
- ACL 2026 System Demonstrations 채택 (샌디에이고, 2026-07, pp. 275–285, DOI 10.18653·v1·2026.acl-demo.27)
- 라이선스: MIT (완전 오픈소스)
- GitHub: vectorize-io·hindsight — 생성 2025-10-30, 조사일(2026-08-11) 기준 ⭐19,558 · fork 1,280, 활발히 커밋 중
- 프로덕션 사용: Fortune 500 기업 + 다수 AI 스타트업
- Hindsight Cloud(호스티드) 제공 중 (조기 액세스)
개발사 / 펀딩
- Vectorize, Inc. (미국, 직원 1–10명)
- 총 펀딩 $3.6M — Seed (2024-11), 투자자: True Ventures(리드), Dig Ventures
- 참고: 시드 규모가 작은 편 → 장기 지원 리스크는 있으나 OSS 성장세는 카테고리 최고
- 공동연구: Virginia Tech Sanghani Center, The Washington Post (벤치마크 독립 재현)
아키텍처
기존 방식(RAG 벡터 서치, 지식 그래프, 컨텍스트 스터핑)의 한계를 지적하고, 인간 기억에 가까운 생체모방(biomimetic) 데이터 구조를 사용.
4개 논리 네트워크 (사실·신념 분리)
| 네트워크 | 내용 | 예시 |
|---|---|---|
| World (세계 사실) | 객관적 사실 | "스토브는 뜨거워진다" |
| Experience (경험) | 에이전트 자신의 경험 | "스토브를 만졌더니 아팠다" |
| Observation (관찰·개체 요약) | 합성된 엔티티 요약 | "Alice는 Google SWE" |
| Opinion (신념) | 신뢰도 점수와 함께 진화하는 신념 | "Alice는 승진 가능성 높음 (0.7)" |
→ 사실과 추론(신념)을 분리해, 에이전트가 "아는 것"과 "믿는 것"을 개발자가 투명하게 볼 수 있음
3개 핵심 연산
- Retain — 정보 저장. LLM이 사실·시간 정보·엔티티·관계를 추출 → 정규화 → canonical 엔티티·시계열·검색 인덱스로 변환. 메타데이터로 사용자별 격리 가능
- Recall — 4개 병렬 검색 전략:
- Semantic: 벡터 유사도
- Keyword: BM25 정확 매칭
- Graph: 엔티티·시간·인과 링크
- Temporal: 시간 범위 필터 → Reciprocal Rank Fusion 병합 + cross-encoder 재랭킹 → 토큰 예산 내 트리밍
- Reflect — 기억 위 추론. 질문 답변, 기억 간 새 연결 형성, 신념 업데이트 (confidence score)
기술 스택
- 저장: PostgreSQL 14+ + pgvector (pgvectorscale·vchord·ScaNN 지원). 개발용 임베디드 pg0 내장
- 프로덕션 DB: Supabase / Neon / Azure / AlloyDB / RDS / 자체호스팅
- 임베딩: BAAI·bge-small-en-v1.5, 랭커: ms-marco-MiniLM-L-6-v2 (기본, HF 자동 다운로드)
- 통합: LLM Wrapper(2줄 교체), Python/Node.js SDK, REST API, CLI, n8n 등 워크플로
벤치마크
LongMemEval (전체 정확도)
| 방법 | 백본 | 정확도 |
|---|---|---|
| Full-context | OSS-20B | 39.0% |
| Full-context | GPT-4o | 60.2% |
| Zep | GPT-4o | 71.2% |
| Supermemory | GPT-4o | 81.6% |
| Supermemory | GPT-5 | 84.6% |
| Supermemory | Gemini-3 | 85.2% |
| Hindsight | OSS-20B | 83.6% |
| Hindsight | OSS-120B | 89.0% |
| Hindsight | Gemini-3 | 91.4% |
- 동일 백본 대비 full-context +44.6pt, full-context GPT-4o 능가
- LongMemEval 수치는 Virginia Tech Sanghani Center + Washington Post가 독립 재현 (타사 수치는 자사 보고)
LoCoMo / BEAM
- LoCoMo: 89.61% (이전 최강 오픈 시스템 75.78% 대비 +13.8pt)
- BEAM ("Beyond a Million Tokens", 10M 토큰 규모 — 컨텍스트 스터핑 불가능한 영역):
| 시스템 | 100K | 500K | 1M | 10M |
|---|---|---|---|---|
| RAG baseline (Llama-4-Maverick) | 32.3% | 33.0% | 30.7% | 24.9% |
| LIGHT baseline | 35.8% | 35.9% | 33.6% | 26.6% |
| Honcho | 63.0% | 64.9% | 63.1% | 40.6% |
| Hindsight | 73.4% | 71.1% | 73.9% | 64.1% |
- 10M 티어: 64.1% vs 2위 40.6% — 58% 마진, 베이스라인 대비 2.4배
- 토큰량이 늘어도 성능 저하가 없음 (1M 73.9% > 500K 71.1%) — 아키텍처가 의도대로 동작
- 벤치마크 자체(AMB: Agent Memory Benchmark)도 오픈소스 — datasets·prompts·스코어링 공개, 리더보드: agentmemorybenchmark.ai
- 그 외 LifeBench, PersonaMem에서도 리드
경쟁 제품 비교
| 프로젝트 | 스타 (조사일) | 라이선스 | 비고 |
|---|---|---|---|
| Hindsight | 19.6K (10개월) | MIT | 벤치 SOTA, fact-belief 분리 |
| Mem0 | 58K+ | Apache-2.0 | 최대 규모 커뮤니티 |
| Supermemory | 26K | Apache-2.0 | LongMemEval 강자였음 |
| Graphiti | 27K | Apache-2.0 | temporal KG 기반 |
| Letta / MemGPT | 23K | Apache-2.0 | 가상 컨텍스트 관리 |
| Zep | 4.7K | Apache-2.0 | 장기 메모리 플랫폼 |
| Cognee | 17.7K | Apache-2.0 | KG + ECL |
- 차별점(ACL 2026 데모 논문 기준): MemGPT·Zep·Mem0 중 유일하게 fact-belief 분리 + 시간·엔티티 그래프 + 신뢰도 있는 진화형 opinion + 행동 프로파일을 동시 제공
- 성장 속도: 2026-06-09 기준 스타 속도 72.2/day (카테고리 1위). 같은 나이(222일) 비교 시 Letta 1.6배, Mem0 2.3배 — 자사 블로그 분석 + OSSCAR·보안업체 독립 확인. 단, "구매 스타 의심" 프로젝트 지적 등 자사 주장이 포함되어 있어 성장 수치는 상대적 참고 필요
설치 / 사용
# Docker (권장) — API:8888 / UI:9999
docker run -it --pull always --name hindsight --restart unless-stopped \
-p 8888:8888 -p 9999:9999 \
-e HINDSIGHT_API_LLM_API_KEY=$OPENAI_API_KEY \
-v hindsight-data:·home·hindsight·.pg0 \
ghcr.io/vectorize-io·hindsight:latest
# Python
pip install hindsight-client -U
from hindsight_client import Hindsight
client = Hindsight(base_url="http://[internal endpoint]")
client.retain(bank_id="my-bank", content="Alice works at Google as a software engineer")
client.recall(bank_id="my-bank", query="What does Alice do?")
client.reflect(bank_id="my-bank", query="Tell me about Alice")
- LLM Provider: OpenAI / Anthropic / Gemini / Groq / Ollama / LM Studio / llama.cpp(빌트인, Gemma 4 E2B GGUF ~3.5GB 자동 다운로드 — 완전 로컬) / MiniMax / DeepSeek / z.ai / opencode-go / Bedrock / LiteLLM(100+) 등
- OpenAI 호환 API면 base URL만 바꿔 연결 가능 → 로컬 LLM 게이트웨이 연동 쉬움
- 임베디드 모드:
pip install hindsight-all— 서버 없이 파이썬 프로세스 내 실행
DGX Spark GB10 적용성 — ✅ 높음
| 항목 | 판단 |
|---|---|
| 아키텍처 | ARM64 지원 (Docker·pip·임베디드 전부) — 문제없음 |
| 메모리 | Full 이미지 최소 1.5GB / 권장 2GB, Slim 512MB — GB10 128GB에 여유 |
| CPU/GPU | CPU 2vCPU로 개발 충분, reranker가 병목 시 GPU 활용 (GB10 가능) |
| LLM 연동 | 로컬 LLM(Ollama·llama.cpp) 또는 기존 로컬 추론 서버(OpenAI 호환 base URL)로 완전 로컬 구동 가능 |
| 저장 | pg0 임베디드로 추가 인프라 불필요 |
| 추천 구성 | GB10에서 Hindsight + Qwen3.6-35B-A3B 조합 — 완전 로컬 에이전트 메모리 실험 가능 |
결론 / 평가
장점
- 벤치마크 SOTA (LongMemEval 91.4%, BEAM 10M 64.1%) — 특히 LongMemEval은 제3자 독립 재현 완료
- MIT 오픈소스, ARM64 포함, 임베디드 DB로 설치 5분, 로컬 LLM 전용 경로(llama.cpp 빌트인)까지 지원
- 사실·신념 분리 + 시간 인지 recall은 에이전트 "학습" 관점에서 RAG보다 구조적으로 우위
- 카테고리 최고 성장 속도, Fortune 500 실사용
단점 / 리스크
- 프로젝트 나이 10개월 — API·스키마 안정성 아직 검증 중
- 벤치마크 상당수 자사 주도 (단, 벤치 데이터·스코어링 공개 + LongMemEval 독립 재현으로 신뢰도 확보 노력)
- 시드 $3.6M의 소규모 회사 — OSS 유지보수 장기 지속성 미지수
- PostgreSQL 의존 (임베디드 pg0는 프로덕션 비권장)
사장님 환경 관련 메모
- Hermes 자체 메모리(영구 메모리·스킬)와 유사한 "신념 + 시간 인지" 개념 — 에이전트 메모리 설계 참고 가치 높음
- StockPulse·칼럼 파이프라인 등 장기 컨텍스트 필요 작업에 검토 가능
- ✅ 적용 완료 (2026-08-13) — Hermes 메모리 프로바이더로 연동 (상세: research-backlog #27)
적용 내역 (2026-08-13 완료, 2026-08-14 재확인)
- 컨테이너:
hindsight(ghcr.io/vectorize-io·hindsight:latest, restart unless-stopped) — 부팅·도커 재시작 시 자동 기동 - 포트: API 18888 (컨테이너 8888 매핑) / UI 19999 — 기본 8888·9999는 searxng과 충돌하여 변경
- 저장: 내장 PostgreSQL(pg0) + 볼륨
hindsight-data— 추가 인프라 불필요 - LLM: OpenAI 호환 방식 +
http://[internal endpoint]/v1, 모델qwen3.5-35b— 2026-08-20 현재 운영 설정. 기존 OpenCode Go/Mimo 설정은hindsight-mimo-backup으로 보존 - Hermes 연동:
memory.provider=hindsight+HINDSIGHT_API_URLenv 설정 → available 확인 - 2026-08-19 인증 복구: 기존 Hindsight 컨테이너의 LLM API 키가 잘못된 값으로 설정되어 retain fact extraction이 401로 실패하고 있었음. Hermes의
OPENCODE_GO_API_KEY를 HindsightHINDSIGHT_API_LLM_API_KEY에 반영하고 컨테이너를 데이터 볼륨 보존 상태로 교체함. 새 컨테이너 health/ready 정상, 한국어 extraction dry-run HTTP 200 확인. - 실측 검증:
- Retain: "사장님 채굴기는 뭘 쓰지?" 대화 기억 저장 → 한국어에서 엔티티 자동 추출 (채굴 풀 solo.ckpool.org · DGX Spark GB10 · Bitaxe Gamma 601) — 3235 tokens
- Recall: 4중 병렬 검색 (의미+키워드+그래프+시간) → RRF 융합 + reranker 0.9997 → 정확한 답변
- hindsight_retain·recall·reflect 툴이 세션에 로드되어 매 턴 메모리 프리페치 + 자동 동기화
- 효과: built-in MEMORY.md(2,200자 한도)와 병렬 동작 — 장기 기억 용량 제한 해소
- 관리: UI 대시보드 http://[internal endpoint] (기억 구조 시각화), 컨테이너 상태
docker ps --filter name=hindsight
Hermes 메인 모델 Codex 전환 및 상태 기억 정리 (2026-08-20)
- Hermes 메인 추론:
gpt-5.6-luna / openai-codex로 전환. LLM을 사용하는 크론잡 6개도 같은 조합으로 고정했으며, 스크립트 전용no_agent크론잡은 변경 대상이 아니다. - Hindsight 백엔드: 이번 전환과 무관하게 로컬
qwen3.5-35b+http://[internal endpoint]/v1을 유지한다. Hindsight의provider=openai는 로컬 OpenAI 호환 API 어댑터를 의미한다. - 현재 기준 레코드: Hermes provider와 Hindsight backend를 각각
current-config태그로 저장해 현재 상태 조회의 기준을 분리했다. - 정리: OpenCode Go 사용 계획, 구형 Hindsight OpenCode/DeepSeek 백엔드 설명, DeepSeek/MiMo 분업을 현재 정책처럼 서술하던 상태성
world레코드 3건을 reversible invalidation 처리했다. - 보존: 실제 과거 모델 실행, drift 오류, 장애 복구, 전환 과정의 기록은 삭제하지 않았다.
- 검증: Hindsight API
healthy/database connected, 현재 Codex·로컬 Qwen 레코드 recall 성공. 과거 모델명이 포함된 결과는 역사 검색에서 의도적으로 남을 수 있으므로 최신 상태는current-config와 실제 시스템을 기준으로 확인한다.
LLM 백엔드 최소 권장선 재점검 (2026-08-20)
- 변경 전 운영 LLM 백엔드는
openai/mimo-v2.5이며, OpenCode Go의 OpenAI 호환 엔드포인트를 사용했다. - Mimo는 리랭커가 아니다. Hindsight 내부 리랭커는 별도 cross-encoder이며, 현재
cross-encoder/ms-marco-MiniLM-L-6-v2가 로컬 CPU에서 동작한다. 임베딩도 별도BAAI/bge-small-en-v1.5다. - 공식 Hindsight 문서의 LLM 기본값은
gpt-4o-mini다. 공식 리더보드의 retain 실측에서gpt-4o-mini는 JSON 스키마 성공 50/50, LoComo 정확도 81%였고,gpt-4.1-nano는 50/50·87.2%였다. - 반대로
gemma3:1b,qwen2.5:0.5b,qwen2.5:3b,smollm2:1.7b,gemma3:12b,ministral-3:3b등은 해당 retain 테스트에서 JSON 스키마를 따르지 못해 비실용 모델로 분류됐다. 따라서 파라미터 수만으로 최소선을 정할 수 없다. - 판단 (전환 전): Mimo급 추론력은 단순 retain/통합만 놓고 보면 필수는 아니다. 실무 최소선은
gpt-4o-mini급의 지시 이행·구조화 출력·한국어 처리 능력이고, 로컬 모델은 7B/8B 이상을 후보로 보되 반드시 Hindsight retain 스키마 테스트를 통과시켜야 한다. 복잡한 consolidation/reflect까지 안정적으로 맡길 때는 20B급 이상 또는 현재 Mimo급이 안전하다. - 한국어 메모리 품질을 높이려면 LLM 교체와 별개로 공식 권장 multilingual 임베딩
BAAI/bge-m3, multilingual rerankerBAAI/bge-reranker-v2-m3도 검토 대상이다. 현재 기본 모델들은 영어 중심이라 한국어 검색 품질 저하 가능성이 있다. - 운영 전환 완료 (2026-08-20): Hindsight Docker 컨테이너를 데이터 볼륨
hindsight-data보존 상태로 교체하고, LLM을openai/qwen3.5-35b+http://[internal endpoint]/v1로 변경했다. 기존 Mimo 컨테이너는hindsight-mimo-backup으로 보존했다. - 전환 후 실측: Hindsight health HTTP 200, Qwen 기반 dry-run fact extraction HTTP 200(4.53초), reflect HTTP 200(33.9초), 실제 Hermes
hindsight_retain저장 성공 및 consolidation 완료(4개 메모리, LLM 11.7초)를 확인했다. 임베딩·리랭커는 기존 로컬 모델을 유지한다. - 참고: reflect 테스트 답변에는 과거 Hindsight 기억에 남아 있던 낡은 모델명·경로가 일부 섞였다. 이는 Qwen 연결 실패가 아니라 기존 기억 데이터 정합성 문제로 분리 기록한다.
잔존 기억 정합성 점검 (2026-08-20)
- 현재 설정과 충돌하는 기록: 과거
deepseek-v4-flash+ OpenCode Go 엔드포인트,mimo-v2.5유지 계획, 이전 Hindsight 백엔드 설명이 여전히 valid 상태로 남아 있다. 현재 운영값은qwen3.5-35b+ 로컬 8080 API다. - 오래된 로컬 모델 경로:
uncensored-heretic-APEX-I-Balanced.gguf와 구형mmproj-f16.gguf를 현재 모델처럼 설명하는 기록이 있다. 현재 실제 운영 파일은Qwen3.6-35B-A3B-NVFP4-MTP-HQ.gguf다. - 운영상 위험: reflect가 현재 설정을 질문받았을 때 과거 DeepSeek·Mimo·구형 경로를 섞어 답할 수 있다. 실제 reflect 테스트에서 30,921 입력 토큰을 사용해 33.9초가 걸렸고 낡은 모델명이 답변에 포함됐다.
- 중복·검색 잡음: 같은 사건이 world[경로] 중복 저장된다. 과거 프로젝트·일시적 장애·완료된 작업까지 함께 검색되어 현재 설정 질의의 정밀도가 떨어질 수 있다.
- 한국어 검색의 별도 문제: 기존 Hindsight 임베딩
BAAI/bge-small-en-v1.5가 영어 중심이라 한국어 semantic 후보 생성은 아직 제한될 수 있다. 리랭커는BAAI/bge-reranker-v2-m3다국어 GPU 모델로 교체해 후단 정밀도를 개선했다. 임베딩은 1024차원 BGE-M3 재임베딩 마이그레이션 후 전환할 대상이다. - 보존 판단: 과거 작업 기록 자체는 삭제할 필요가 없다. 다만 현재 구성값·활성 모델·포트처럼 상태를 나타내는 기억은 최신값으로 교체하거나 과거 상태임을 명시해야 한다.
- 상태: 현재 설정과 충돌하는 상태성 world/experience 기억은 reversible invalidation으로 정리했고, 과거 프로젝트·크론 실행 이력은 보존했다.
Sources / 출처
- https://hindsight.vectorize.io/developer/models
- https://hindsight.vectorize.io/developer/multilingual
- https://benchmarks.hindsight.vectorize.io/leaderboard/retain