Skip to main content

Memory Facts

경로: 좌측 사이드바 상단 ⋯ 메뉴Memory Facts 에이전트가 세션을 넘어 기억하는 사용자 컨텍스트(Facts) 를 관리합니다. 세션 중 대화에서 추출되거나 사용자가 직접 추가한 선호·배경 정보를 저장해 두면, 이후 세션에서 자동으로 프롬프트에 주입되어 일관된 답변을 생성합니다.
Image

동작 원리 — 3 단계 파이프라인

Memory Facts 는 Extraction → Compaction → Injection 세 단계로 동작합니다.
1

1. Fact Extraction (자동 추출)

백그라운드에서 세션별로 자동 팩트 추출. 사용자가 채팅 중 흘린 단서에서 장기 기억 후보를 뽑습니다.
  • 예) "나는 홍길동이야" · "나는 Dnotitia 에 다녀"profile: name = 홍길동 · profile: company = Dnotitia 로 Fact 생성
  • 사용자가 명시적으로 요청하지 않아도 자동으로 진행
  • 세션별 Facts 로 Current Session 탭에 누적
2

2. Fact Compaction (통합 압축)

전체 세션의 Facts + 기존 Compacted Facts 를 머지 해 새로운 Compacted Facts 를 생성합니다. 이 과정에서 원본 세션 Facts 는 제거 되고 통합본만 남습니다.
  • 중복 제거·모순 해소·요약 통합
  • All SessionsCompacted 로 이동
  • 장기 기억의 단일 소스가 Compacted 로 일원화
3

3. Fact Injection (응답 주입)

Compacted Facts 중 원하는 타입을 켜두면 이후 대화의 프롬프트에 자동 주입되어 응답을 보강합니다.
  • 예) Injection ON + profile 타입 활성 → 사용자가 "내가 누구야?" 질문 → "박수연입니다" 답변
  • Injection 을 꺼두면 Compacted Facts 가 있어도 실제 답변에 반영되지 않습니다 — 저장만 되는 상태
  • 타입(category) 별로 on/off 제어 가능하므로 profile 은 켜고 preferences 는 끄는 식의 선택적 활성화 가능
핵심 이해
  • 대화 → 자동 ExtractionCurrent Session
  • Compaction 실행 → 원본 제거 + Compacted 탭에 통합 결과 남음
  • Injection ON → Compacted 가 실제 답변에 사용됨 (OFF 면 저장만 됨)
즉, Injection 을 켜야 에이전트가 “당신은 박수연이야” 같은 장기 기억 기반 답변을 할 수 있습니다.

탭 구성

내용
Current Session현재 선택된 세션에서 추출·저장된 Facts — 세션 미선택 시 Select a session to view its facts 안내
All Sessions계정의 모든 세션 에 걸쳐 누적된 전체 Facts — 카테고리 또는 토픽별 그룹
Compacted중복·유사 Fact 를 압축(Compact) 한 결과. Topic view ↔ Category view 토글 가능
Statistics카테고리별 Fact 수·저장 용량·압축 효과 등 통계
하단 Refresh 버튼으로 데이터 재조회.

카테고리 구조

Facts 는 카테고리로 분류되어 저장됩니다.
대표 카테고리예시
profiletimezone: Asia/Seoul / language: ko
preferencescode style: prefer TypeScript / report format: Markdown
teamteam uses Slack / team size: 5
projectsworking on Seahorse Cloud / repo: seahorse-saas-web
toolspreferred IDE: VSCode
카테고리별 아이콘·라벨·색상은 UI 에서 자동 매핑됩니다.

Current Session 탭

현재 세션이 생성·수정한 Facts 만 표시. 카테고리별 아코디언으로 그룹핑.
  • 세션 미선택 → 안내 메시지
  • Facts 없음 → 빈 상태 안내 (대화 중 점진적으로 자동 수집)

All Sessions 탭

계정 전체의 누적 Facts. 세션을 거듭할수록 축적됩니다.
  • 카테고리별 확장/축소 — 각 카테고리 옆 카운트 표시
  • Source 구분auto (에이전트 자동 추출) vs manual (사용자 입력)
  • 개별 Fact 의 수정·삭제 가능

Compacted 탭

중복·유사 Facts 를 통합 압축 한 결과. LLM 컨텍스트 절약과 일관성 유지가 목적.
View설명
Topic주제별 — 같은 주제(예: 프로젝트 이름, 팀 구성)로 합쳐진 Facts
Category카테고리별 — 공식 카테고리 기준 정렬
Compact 실행
  • 상단 버튼으로 수동 실행 또는 정기적으로 자동 수행
  • 압축 전/후 Fact 수, 절감률이 compactResult 로 표시
Compact 가 필요한 이유: 세션이 누적되면 timezone: Asia/Seoul 같은 동일 Fact 가 여러 세션에서 중복 생성됩니다. Compact 는 중복을 병합하고 모순되는 Fact(language: ko vs language: en)를 최신으로 정리합니다.

Statistics 탭

지표의미
Total Facts전체 저장 Fact 수
Category 분포카테고리별 카운트·비율
세션별 생성량세션당 평균 Fact 수
Compact 효과압축 전/후 수량 절감률
Source 비율auto vs manual

Fact 적용 시점

에이전트 응답 생성 직전, 관련 Fact 가 프롬프트에 자동 주입 됩니다. 예) 사용자가 보고서 작성해줘 라고 하면:
  1. preferences: report format = Markdown 가 주입
  2. profile: language = ko 가 주입
  3. 에이전트가 한국어 Markdown 보고서를 생성

운영 주의

  • 민감 정보 저장 금지 — 비밀번호·API 키·주민번호·신용카드 번호는 Fact 로 저장하지 마세요. Facts 는 평문에 가깝게 저장됩니다.
  • 자동 수집 리뷰 — 에이전트가 임의로 auto 로 저장한 Fact 중 잘못된 것(오해·오탈자)이 있을 수 있으니 정기 점검.
  • 세션 격리가 필요한 경우 — 각 세션이 서로 영향받지 않아야 하는 민감 작업(법무 검토 등)은 해당 세션의 Facts 를 삭제하거나 새 계정/워크스페이스 사용.
  • 컨텍스트 비용 — 너무 많은 Fact 가 누적되면 모든 호출에 주입되어 토큰 비용 증가. 정기 Compact + 불필요 Fact 삭제. 한도·요금: Billing

관련 문서