# 메모리 모델 SUMMARY: 메모리 구조화 방식 — 카테고리, 키, 태그, 우선순위, 소스, 검증. 메모리 모델 Synapse의 메모리 모델은 LLM 에이전트를 위해 설계되었습니다 — 신뢰할 수 있는 회상을 위해 충분히 구조화되어 있으면서, 모든 도메인에 대해 충분히 유연합니다. 메모리 구조 [CODE BLOCK] 필드 | 필드 | 타입 | 필수 | 설명 | |-------|------|----------|-------------| | | string | 자동 | 고유 ID (memxxx) | | | enum | ✅ | 8개 카테고리 중 하나 | | | string | ✅ | 안정적 식별자 (업데이트에 사용) | | | string | ✅ | 메모리 콘텐츠 (모든 텍스트) | | | string[] | – | 검색 및 필터링용 | | | enum | – | low, normal, high, critical (기본값: normal) | | | enum | 자동 | user, agent (누가 저장했는지) | | | bool | 자동 | 사람이 검증했는지 여부 | | | float | – | 0.0 1.0 (기본값: user 1.0, agent 0.7) | | | timestamp | – | 이 메모리를 잊을 시점 | | | string | 자동 | 이 메모리를 소유한 마인드 | | | timestamp | 자동 | 최초 저장 시각 | | | timestamp | 자동 | 최종 수정 시각 | 카테고리 8개 카테고리가 일반적인 LLM 에이전트 사용 사례를 다룹니다: | 카테고리 | 용도 | 예시 콘텐츠 | |----------|---------|-----------------| | | 사용자가 누구인지 | "User is Michael Schäfer, software engineer in Berlin" | | | 사용자 선호도 | "Prefers concise technical responses" | | | 검증 가능한 사실 | "Office is in Berlin, timezone Europe/Berlin" | | | 프로젝트 상태 | "Synapse v1.5.0 deployed, working on v1.6.0 docs" | | | 사용자 기술 | "Advanced Python, 10+ years" | | | 과거 오류 | "Forgot to bump npm version — CI failed" | | | 세션 컨텍스트 | "Currently reviewing PR #42" | | | 기타 노트 | "Try Redis for caching next sprint" | 키: 안정적 식별자 필드는 중요합니다 — 중복을 만들지 않고 메모리를 업데이트하는 방법입니다. [CODE BLOCK] 키 규칙: - (category, mind) 내에서 고유해야 함 - 사용 - 명확성을 위해 카테고리로 접두사: , - 안정적으로 유지 — 생성 후 키를 변경하지 마십시오 태그: 검색용 태그를 사용하면 빠른 필터링과 검색이 가능합니다: [CODE BLOCK] 태그 모범 사례: - 메모리당 2-5개 태그 (과도한 태깅 금지) - 일관성을 위해 소문자 사용 - 프로젝트 이름, 주제, 기술 사용 - 태그는 대소문자 구분 안 함 우선순위 수준 | 우선순위 | 사용 시기 | 회상 동작 | |----------|-------------|-----------------| | | 정체성, 법적, 되돌릴 수 없는 것 | 항상 회상 최상단 | | | 활성 프로젝트, 핵심 선호도 | 회상에서 두드러짐 | | | 대부분의 메모리 (기본값) | 표준 회상 순서 | | | 일시적, 알면 좋음 | 요약될 수 있음 | 은 우선순위 (critical 먼저)로 정렬한 후 최신순으로 정렬합니다. 소스: User vs Agent 메모리에는 태그가 지정됩니다: - — 사람이 저장 (JWT 또는 human UI를 통해) - — LLM 에이전트가 저장 (Mind Key를 통해) 이는 다음에 영향을 미칩니다: - 검증: 메모리는 자동 검증, 메모리는 검증 안 됨 - 신뢰도: 기본값 1.0, 0.7 - 회상: 은 미검증 메모리에 "(unverified)" 표시 > [!NOTE] > 소스 메모리는 적절한 회의적으로 취급하십시오. 사용자가 직접 > 명시한 것이 아니라 추론되거나 가정된 것일 수 있습니다. 검증 플래그는 사람이 메모리를 확인했음을 나타냅니다: - 메모리: 자동 검증 () - 메모리: 기본 미검증 () 다음을 통해 메모리 검증: [CODE BLOCK] > [!NOTE] > 검증에는 Mind Key (에이전트 인증)가 아닌 JWT (사람 인증)가 필요합니다. > 이는 사람만 메모리를 검증됨으로 표시할 수 있도록 보장합니다. 신뢰도 필드 (0.0 1.0)는 메모리의 신뢰도를 나타냅니다: - 1.0 — 사용자가 직접 명시 - 0.7 — 에이전트가 추론 - 0.5 — 불확실, 검증 필요 - 0.0 — 명시적으로 의심됨 저장 시 신뢰도 설정: [CODE BLOCK] 만료 시간에 민감한 메모리에 설정: [CODE BLOCK] 만료된 메모리는 에서 반환되지 않습니다 (DB에는 여전히 존재). 곧 만료되는 메모리를 보려면 를 사용하십시오. 메모리 라이프사이클 [CODE BLOCK] 회상 동작 은 LLM 컨텍스트에 최적화된 일반 텍스트 요약을 반환합니다: [CODE BLOCK] - 우선순위 (critical → low)로 정렬, 그 다음 최신순 - 미검증 메모리는 로 표시 - 컨텍스트를 위해 태그 포함 - 일반 텍스트 (JSON 파싱 불필요) 다음 단계 - Memory API - 메모리 모범 사례 - FTS5 검색