콘텐츠로 이동

환경 변수

memtomem(LTM)과 memtomem-stm(STM)은 모두 pydantic-settings를 사용합니다. 환경 변수 이름은 env_prefix 뒤에 필드명을 붙이며, 중첩된 필드는 env_nested_delimiter="__"에 따라 밑줄 두 개로 구분합니다. 예를 들어 MEMTOMEM_EMBEDDING__PROVIDER는 유효하지만 MEMTOMEM_EMBEDDING_PROVIDER는 유효하지 않습니다.

값이 겹치면 CLI 옵션, 환경 변수, 설정 파일, 내장 기본값 순으로 앞의 값을 우선합니다.

이 레퍼런스는 memtomem 0.6.8과 memtomem-stm 0.6.1이 지원하는 설정을 빠짐없이 문서화합니다. 추천 항목만 추린 목록이 아니며, upstream이 제공하는 모든 옵션을 그대로 유지합니다.

변수설명기본값
MEMTOMEM_STORAGE__BACKEND저장 방식"sqlite"
MEMTOMEM_STORAGE__SQLITE_PATHSQLite 데이터베이스 파일 경로"~/.memtomem/memtomem.db"
MEMTOMEM_STORAGE__COLLECTION_NAME논리 컬렉션 이름"memories"

변수설명기본값
MEMTOMEM_EMBEDDING__PROVIDERnone / onnx / ollama / openai"none"
MEMTOMEM_EMBEDDING__MODEL선택한 제공자의 모델명""
MEMTOMEM_EMBEDDING__DIMENSION벡터 차원 수. 모델과 일치해야 함0
MEMTOMEM_EMBEDDING__ONNX_VARIANT로컬 ONNX 정밀도: fp32, int8-arm64, int8-avx2, int8-avx512, int8-avx512-vnni. 변경하려면 재시작과 명시적인 인덱스 이전이 필요합니다."fp32"
MEMTOMEM_EMBEDDING__ONNX_ARTIFACT_PATH체크섬이 포함된 manifest.json과 함께 로컬에서 내보낸 양자화 아티팩트 디렉터리. fp32가 아닌 모든 변형에 필요하며 자동 대체 경로는 없습니다.""
MEMTOMEM_EMBEDDING__BASE_URLOllama / OpenAI 호환 엔드포인트""
MEMTOMEM_EMBEDDING__API_KEY유료 제공자의 API 키""
MEMTOMEM_EMBEDDING__BATCH_SIZE임베딩 배치당 텍스트 수64
MEMTOMEM_EMBEDDING__ONNX_BATCH_SIZE로컬 FastEmbed/ONNX 추론에서 한 번에 처리할 텍스트 수. 실행 중에도 변경 가능8
MEMTOMEM_EMBEDDING__MAX_SEQUENCE_TOKENS로컬 ONNX 입력의 실제 토큰 상한. 0이면 모델 상한을 사용하지만, 아래 E5 프로필에서는 예외입니다. 변경 후 재시작하고 기존 콘텐츠를 강제 재인덱싱해야 합니다.1024
MEMTOMEM_EMBEDDING__ONNX_CPU_MEM_ARENAONNX CPU 할당을 재사용합니다. 재시작은 필요하지만 할당자 설정이므로 재인덱싱은 필요하지 않습니다.false
MEMTOMEM_EMBEDDING__MAX_CONCURRENT_BATCHES병렬 임베딩 배치 상한4
MEMTOMEM_EMBEDDING__THREADSONNX Runtime 스레드 상한 (0 = ORT 기본값)4
MEMTOMEM_EMBEDDING__PROGRESS_THRESHOLD한 파일이 이 값보다 많은 청크를 만들 때만 청크별 진행 이벤트를 보냄. 0은 항상 보냄32

ONNX E5 프로필에서 실제로 적용되는 값. PROVIDER=onnx이고 MODEL을 비워 두면 Core가 multilingual-e5-small을 선택하고, 직접 지정하지 않은 항목에 DIMENSION=384, MAX_SEQUENCE_TOKENS=512, THREADS=2, ONNX_BATCH_SIZE=4를 채웁니다. 위 표의 기본값은 선언된 기본값이며 이 프로필 밖에서 적용됩니다. 프로필 안에서는 DIMENSION이 384가 아니거나 MAX_SEQUENCE_TOKENS가 512가 아니면 값을 조정하지 않고 시작 시 거부합니다. 표에 적힌 0이나 1024를 명시적으로 지정한 경우도 마찬가지입니다.

변수설명기본값
MEMTOMEM_INDEXING__MEMORY_DIRS장기 실행 중인 memtomem-server가 파일 변경을 감지해 다시 색인할 디렉터리(JSON 목록). 기존 파일은 자동으로 훑지 않으므로 mm index <dir>로 처음 한 번 색인한 뒤 감시 기능에 맡기세요. mm init에서 AI 에이전트 기억 등록을 선택하면 이 경로가 채워집니다.["~/.memtomem/memories"]
MEMTOMEM_INDEXING__PROJECT_MEMORY_DIRS.memtomem/memories 또는 .memtomem/memories.local 아래에 있는 프로젝트 계층 기억의 루트[]
MEMTOMEM_INDEXING__READ_ONLY_MEMORY_DIRS색인과 검색에는 사용하지만 memtomem이 절대 다시 쓰지 않는 루트. 쓰기 가능한 루트와 겹치지 않아야 합니다.[]
MEMTOMEM_INDEXING__SUPPORTED_EXTENSIONS인덱싱 대상 파일 확장자 (JSON 리스트)[".js",".json",".jsx",".md",".py",".toml",".ts",".tsx",".yaml",".yml"]
MEMTOMEM_INDEXING__MAX_CHUNK_TOKENS청크당 최대 토큰 수512
MEMTOMEM_INDEXING__MIN_CHUNK_TOKENS짧은 청크 병합 임계값128
MEMTOMEM_INDEXING__AUTO_DISCOVER폐기 예정인 일회성 이전 기능. 기존 설정의 제공자 디렉터리를 명시적인 memory_dirs로 바꿔 저장한 뒤 이 값을 false로 변경합니다. 새 설치에서는 실행하지 않으며 새 설정에는 mm init --include-provider ...를 사용합니다.true
MEMTOMEM_INDEXING__EXCLUDE_PATTERNS기본 자격 증명 제외 목록(oauth_creds.json, credentials*, id_rsa*, *.pem, *.key, .ssh/** 등)에 추가할 .gitignore 형식의 패턴(JSON 목록). 사용자 !negation으로 기본 패턴을 해제할 수 없음[]
MEMTOMEM_INDEXING__INDEX_MASKING_MANIFEST_PATH소유자가 검토한 마스킹 매니페스트 경로. 정확한 소스 경로와 콘텐츠 SHA-256, 완결된 블록의 줄 범위를 지정합니다. 소스가 바뀌었거나 매니페스트가 유효하지 않으면 일반 개인정보 보호 장치로 되돌아가며, 마스킹된 청크는 읽기 전용입니다. 자동 마스킹을 켜는 설정은 아닙니다.""
MEMTOMEM_INDEXING__TARGET_CHUNK_TOKENS짧은 형제 섹션을 결합할 때의 목표 토큰 수. 0 설정 시 결합 단계 비활성화.384
MEMTOMEM_INDEXING__CHUNK_OVERLAP_TOKENS인접 청크 간 토큰 오버랩0
MEMTOMEM_INDEXING__CHUNK_MODEL_TOKENS특수 토큰을 포함한 검색 입력 전체의 상한8192
MEMTOMEM_INDEXING__CHUNK_CONTEXT_TOKENS제목과 설명 접두부에 배정하는 별도 예산512
MEMTOMEM_INDEXING__HARD_MAX_CHUNK_TOKENS본문의 정확한 상한. 0이면 하드 예산 모드를 사용하지 않습니다. 동일한 로컬 토크나이저가 필요합니다.0
MEMTOMEM_INDEXING__CHUNK_TOKENIZER_PATH임베딩 모델의 로컬 tokenizer.json 경로. 지정하면 하드 예산 모드에서 모델을 내려받지 않습니다.""
MEMTOMEM_INDEXING__CHUNK_INPUT_PREFIX최종 입력 토큰 계산에 포함하는 모델 역할 접두사(E5는 passage: ). 변경 후 재시작이 필요합니다.""
MEMTOMEM_INDEXING__ENRICH_CHUNK_CONTEXT청크 컨텍스트에 캐시된 LLM 설명을 추가합니다. 하드 예산 모드가 필요합니다.false
MEMTOMEM_INDEXING__STRUCTURED_CHUNK_MODEJSON/YAML/TOML 청킹 모드: original 또는 recursive"original"
MEMTOMEM_INDEXING__PARAGRAPH_SPLIT_THRESHOLD긴 산문을 문단 단위로 나누는 토큰 임계값800
MEMTOMEM_INDEXING__STARTUP_BACKFILL서버 시작 시 memory_dirs를 한 번 스캔해 서버가 꺼져 있던 동안 추가된 파일을 반영false
MEMTOMEM_INDEXING__WATCHER_BACKEND감시 백엔드. auto는 macOS에서 폴링을, 그 외 환경에서 네이티브 이벤트를 사용하며 native 또는 polling으로 지정할 수 있습니다."auto"
MEMTOMEM_INDEXING__WATCHER_DEBOUNCE_MS자동 재색인 전 대기하는 안정화 시간(1–30000 ms)5000
MEMTOMEM_INDEXING__WATCHER_MAX_WAIT_MS편집이 계속되어도 이벤트를 모으는 최대 시간(1–30000 ms)30000
MEMTOMEM_INDEXING__AUTO_SUMMARIZELLM 설정 시 소스별 AI 요약 생성false
MEMTOMEM_INDEXING__SUMMARY_LANGUAGEAI 소스 요약 출력 언어"en"
MEMTOMEM_INDEXING__SUMMARY_MAX_INPUT_CHARS요약 LLM에 전달하는 소스 문자 상한3000
MEMTOMEM_INDEXING__SUMMARY_MAX_TOKENS요약 출력 토큰 상한256

파일 경로 패턴을 네임스페이스에 연결하는 규칙입니다. 색인할 때 네임스페이스를 자동으로 정하므로 mem_index를 호출할 때마다 namespace=를 지정할 필요가 없습니다.

변수설명기본값
MEMTOMEM_NAMESPACE__RULES{path_glob, namespace} 객체로 구성된 JSON 리스트. pathspec.GitIgnoreSpec 패턴, 대소문자 구분 없음. {parent}와 {ancestor:N} 플레이스홀더는 일치한 파일 경로에서 치환됨. 해석 순서: 명시적 namespace= 인자 → 규칙(최초 매칭) → enable_auto_ns → default_namespace.[]
MEMTOMEM_NAMESPACE__DEFAULT_NAMESPACE새 청크의 기본 네임스페이스"default"
MEMTOMEM_NAMESPACE__ENABLE_AUTO_NS명시 네임스페이스나 규칙이 없을 때 파일의 직계 부모 폴더명으로 네임스페이스 유도false

예시 (config.d/namespace.json, APPEND 병합):

{"namespace": {"rules": [
{"path_glob": "docs/**", "namespace": "docs"},
{"path_glob": "projects/{parent}/**", "namespace": "proj/{parent}"}
]}}

크로스 인코더 재순위는 기본적으로 로컬에서 동작하므로 외부 API를 호출하지 않습니다.

변수설명기본값
MEMTOMEM_RERANK__ENABLED하이브리드 검색 결과 재순위 활성화false
MEMTOMEM_RERANK__PROVIDERfastembed(로컬 ONNX) / cohere(외부 API) / local(sentence-transformers CrossEncoder, 로컬). local을 쓰려면 sentence-transformers를 별도로 설치해야 하며, memtomem extra에는 포함되어 있지 않습니다. 이때 MEMTOMEM_RERANK__MODEL에는 sentence-transformers 모델명(예: cross-encoder/ms-marco-MiniLM-L-6-v2)을 지정합니다. 일반적으로는 fastembed를 권장합니다"fastembed"
MEMTOMEM_RERANK__MODEL모델명. 형식은 공급자에 따라 다릅니다(fastembed 카탈로그 ID, Cohere Rerank 모델, sentence-transformers 모델명). fastembed에서 비영어 콘텐츠에는 onnx-community/gte-multilingual-reranker-base(341 MB, memtomem이 fastembed에 직접 등록하므로 별도 설정 불필요) 권장. 기존 jinaai/jina-reranker-v2-base-multilingual도 계속 동작하지만 1.1 GB이며 모델 라이선스(CC-BY-NC-4.0)가 상업적 사용을 허용하지 않음. 한국어 최적화 프리셋은 리랭커를 켜지 않으므로 MEMTOMEM_RERANK__ENABLED=true와 함께 지정"Xenova/ms-marco-MiniLM-L-6-v2"
MEMTOMEM_RERANK__API_KEYprovider=cohere일 때만 필요""
MEMTOMEM_RERANK__OVERSAMPLEresponse_top_k 대비 풀 배수. 풀 크기 = max(min_pool, min(max_pool, int(oversample * response_top_k))).2
MEMTOMEM_RERANK__MIN_POOL하한선 — 리랭커가 받는 후보 수의 최솟값20
MEMTOMEM_RERANK__MAX_POOL상한선 — 큰 top_k에서 비용 폭주 방지200
MEMTOMEM_RERANK__TOP_K폐기 예정인 이전 후보군 크기. 지정하면 min_pool로 이전20

변수설명기본값
MEMTOMEM_SEARCH__DEFAULT_TOP_K기본 검색 결과 수10
MEMTOMEM_SEARCH__BM25_CANDIDATESBM25 후보군 크기50
MEMTOMEM_SEARCH__DENSE_CANDIDATES벡터 검색 후보군 크기50
MEMTOMEM_SEARCH__RRF_KReciprocal Rank Fusion 상수60
MEMTOMEM_SEARCH__ENABLE_BM25키워드 검색 활성화true
MEMTOMEM_SEARCH__ENABLE_DENSE의미 벡터 검색 활성화true
MEMTOMEM_SEARCH__RRF_WEIGHTS[BM25, Dense] RRF 가중치 (JSON 리스트, REPLACE 병합)[1,1]
MEMTOMEM_SEARCH__TOKENIZERFTS 토크나이저: unicode61 또는 kiwipiepy"unicode61"
MEMTOMEM_SEARCH__CACHE_TTL검색 결과 캐시 TTL(초)30
MEMTOMEM_SEARCH__SYSTEM_NAMESPACE_PREFIXES기본 namespace=None 검색에서 숨길 네임스페이스 접두사 (JSON 리스트, APPEND 병합)["archive:","agent-runtime:"]

반감기 기반 시간 감쇠 가중. 인덱싱된 지 오래된 청크의 검색 점수를 점진적으로 낮춥니다.

변수설명기본값
MEMTOMEM_DECAY__ENABLED시간 감쇠 가중 활성화false
MEMTOMEM_DECAY__HALF_LIFE_DAYS반감기 (일). 이 기간이 지나면 기여도가 절반으로30

Maximal Marginal Relevance 재순위. 상위 결과 간 중복을 줄이고 서로 다른 관점을 섞습니다.

변수설명기본값
MEMTOMEM_MMR__ENABLEDMMR 다양성 재순위 활성화false
MEMTOMEM_MMR__LAMBDA_PARAM0.0–1.0. 0.0=다양성 최대, 1.0=관련성 최대0.7

자주 조회된 청크를 상위로 밀어 올리는 빈도 기반 배수.

변수설명기본값
MEMTOMEM_ACCESS__ENABLED접근 빈도 기반 가중 활성화false
MEMTOMEM_ACCESS__MAX_BOOST점수 배수 상한 (>= 1.0)1.5

청크 메타데이터(태그 · 크기 · 위치 등)에서 파생된 중요도 점수를 검색 점수에 배수로 적용합니다.

변수설명기본값
MEMTOMEM_IMPORTANCE__ENABLED중요도 가중 활성화false
MEMTOMEM_IMPORTANCE__MAX_BOOST점수 배수 상한 (>= 1.0)1.5
MEMTOMEM_IMPORTANCE__WEIGHTS중요도 피처 가중치 벡터 (JSON 리스트, REPLACE 병합)[0.3,0.2,0.3,0.2]

원래 검색어에 태그, 제목, LLM이 만든 용어를 더해 관련 결과를 놓칠 가능성을 줄입니다. strategy=llm은 아래 LLM 설정을 사용합니다.

변수설명기본값
MEMTOMEM_QUERY_EXPANSION__ENABLED검색어 확장 활성화false
MEMTOMEM_QUERY_EXPANSION__MAX_TERMS추가 용어 최대 개수3
MEMTOMEM_QUERY_EXPANSION__STRATEGYtags / headings / both / llm"tags"

검색 결과 주변의 인접 청크를 앞뒤로 N개씩 함께 반환합니다. 여러 청크로 나뉜 맥락을 이어서 볼 때 유용합니다.

변수설명기본값
MEMTOMEM_CONTEXT_WINDOW__ENABLED컨텍스트 윈도우 확장 활성화false
MEMTOMEM_CONTEXT_WINDOW__WINDOW_SIZE검색 결과 하나당 앞뒤로 가져올 인접 청크 수 N(0–10)2

query_expansion.strategy=llm, 기억 통합 요약 등 LLM 기반 기능이 함께 사용하는 설정입니다.

변수설명기본값
MEMTOMEM_LLM__ENABLEDLLM 기반 기능 활성화false
MEMTOMEM_LLM__PROVIDERollama / openai / anthropic / 호환 엔드포인트"ollama"
MEMTOMEM_LLM__MODEL모델명. 빈 문자열이면 제공자별 기본값 사용""
MEMTOMEM_LLM__BASE_URL엔드포인트 URL"http://localhost:11434"
MEMTOMEM_LLM__API_KEY유료 제공자의 API 키""
MEMTOMEM_LLM__MAX_TOKENS생성 토큰 상한1024
MEMTOMEM_LLM__TIMEOUT요청 타임아웃 (초)60

변수설명기본값
MEMTOMEM_TOOL_MODEcore(mem_do 라우터 포함 9개) / standard(mem_do 포함 38개) / full(현재 도구 100개, 폐기 예정 별칭 없음)core
변수설명기본값
MEMTOMEM_WEB__MODEprod(Settings의 Namespaces를 포함한 표준 Simple/Advanced 화면) / dev(Sessions · Search Runs · Quality Lab · Working Memory · Procedures · Health Report · Redaction 유지관리 화면도 표시). 실행할 때 mm web --mode 또는 mm web --dev로 덮어쓸 수 있음prod
MEMTOMEM_WEB__HOSTmm web이 수신 대기할 주소. --host가 덮어씀127.0.0.1
MEMTOMEM_WEB__PORTmm web이 수신 대기할 포트. --port가 덮어씀8080
MEMTOMEM_WEB__CSRF_ENFORCEWeb UI 변경 엔드포인트의 CSRF 보호를 강제합니다. 비활성화는 긴급 롤백에만 사용합니다.true

변수설명기본값
MEMTOMEM_POLICY__ENABLEDPolicyScheduler 실행 (auto_archive / auto_promote / auto_expire / auto_tag)false
MEMTOMEM_POLICY__SCHEDULER_INTERVAL_MINUTES스케줄러 주기60
MEMTOMEM_POLICY__MAX_ACTIONS_PER_RUN예약된 정책을 한 번 실행할 때 처리할 작업 수 상한100
MEMTOMEM_WEBHOOK__ENABLED기억 이벤트용 외부 웹훅 활성화false
MEMTOMEM_WEBHOOK__URL웹훅을 보낼 URL""
MEMTOMEM_WEBHOOK__EVENTS전송 이벤트 유형 (JSON 리스트, APPEND 병합)["add","delete","search"]
MEMTOMEM_WEBHOOK__SECRETHMAC 서명에 사용할 비밀값""
MEMTOMEM_WEBHOOK__TIMEOUT_SECONDSHTTP 제한 시간10

중복되거나 비슷한 기억을 주기적으로 묶어 보관용 요약으로 압축하는 백그라운드 작업입니다.

변수설명기본값
MEMTOMEM_CONSOLIDATION_SCHEDULE__ENABLED스케줄 실행 활성화false
MEMTOMEM_CONSOLIDATION_SCHEDULE__INTERVAL_HOURS실행 주기 (시간)24
MEMTOMEM_CONSOLIDATION_SCHEDULE__MIN_GROUP_SIZE통합 대상 최소 그룹 크기3
MEMTOMEM_CONSOLIDATION_SCHEDULE__MAX_GROUPS1회 실행당 처리 그룹 상한10

변수설명기본값
MEMTOMEM_WARMUP__ENABLEDMCP 서버를 시작할 때 로컬 임베딩·재순위 모델을 백그라운드에서 미리 불러옴. 원격 제공자는 제외false

상태 확인과 자동 유지보수를 주기적으로 수행하는 백그라운드 작업입니다. 원본이 사라진 자료 출처는 삭제하지 않고 보류하여 검색에서만 제외합니다. 청크 삭제는 mm gc orphan-sources --apply로 직접 실행해야 합니다.

변수설명기본값
MEMTOMEM_HEALTH_WATCHDOG__ENABLED상태 모니터 실행false
MEMTOMEM_HEALTH_WATCHDOG__HEARTBEAT_INTERVAL_SECONDS하트비트 주기60
MEMTOMEM_HEALTH_WATCHDOG__DIAGNOSTIC_INTERVAL_SECONDS진단 주기300
MEMTOMEM_HEALTH_WATCHDOG__DEEP_INTERVAL_SECONDS정밀 검사 주기3600
MEMTOMEM_HEALTH_WATCHDOG__MAX_SNAPSHOTS보관 스냅샷 수 상한1000
MEMTOMEM_HEALTH_WATCHDOG__ORPHAN_CLEANUP_THRESHOLD자동 유지보수가 원본이 사라진 자료 출처를 보류하기 시작하는 개수 기준10
MEMTOMEM_HEALTH_WATCHDOG__AUTO_MAINTENANCE자동 유지보수 수행true

변수설명기본값
MEMTOMEM_SCHEDULER__ENABLED등록한 유지보수 작업의 cron 실행 활성화false
MEMTOMEM_SCHEDULER__MAX_CONCURRENT_JOBS동시에 실행할 예약 작업 수 상한1
MEMTOMEM_SCHEDULER__DEFAULT_TIMEZONE작업 일정의 시간대. Phase A에서는 utc만 적용"utc"
MEMTOMEM_SCHEDULER__RUNNER_TIMEOUT_SECONDS예약 작업 한 번의 제한 시간300

변수설명기본값
MEMTOMEM_SESSION_SUMMARY__AUTO충분한 청크가 추가된 상태에서 mem_session_end 호출 시 LLM 요약 자동 생성true
MEMTOMEM_SESSION_SUMMARY__MIN_CHUNKS자동 요약 실행 최소 청크 수5
MEMTOMEM_SESSION_SUMMARY__MAX_SUMMARY_TOKENS요약 출력 토큰 상한500
MEMTOMEM_SESSION_SUMMARY__MAX_INPUT_CHARS조립된 입력이 이 크기를 넘으면 자동 요약 생략60000
MEMTOMEM_SESSION_SUMMARY__MAX_SUMMARY_LINKS요약 청크에서 원본 청크로 쓰는 링크 상한50
MEMTOMEM_SESSION_SUMMARY__EXPANSION_LOOKUP_TOP_K검색 결과를 보완할 때 확인할 세션 요약 청크 수3
MEMTOMEM_SESSION_SUMMARY__EXPANSION_SCORE_THRESHOLD결과 보완에 필요한 최소 요약 점수0.3
MEMTOMEM_SESSION_SUMMARY__EXPANSION_RESCUE_WEIGHT세션 요약을 통해 추가한 원본 파일 결과의 RRF 입력 가중치0.5

세션 명령 실행 기록을 JSONL 파일에 남기고, 선택에 따라 Langfuse에도 보냅니다. 기본값은 비활성화입니다. payload_mode의 기본값인 metadata는 본문을 기록하지 않습니다. redacted는 비밀값을 가린 본문, full은 전체 본문을 기록합니다.

변수설명기본값
MEMTOMEM_SESSION_TRACE__ENABLED세션 실행 추적 활성화false
MEMTOMEM_SESSION_TRACE__JSONL_ENABLEDJSONL 파일 기록true
MEMTOMEM_SESSION_TRACE__JSONL_PATHJSONL 출력 파일 경로"~/.memtomem/traces/session-traces.jsonl"
MEMTOMEM_SESSION_TRACE__LANGFUSE_ENABLED실행 기록을 Langfuse로 전송false
MEMTOMEM_SESSION_TRACE__LANGFUSE_PUBLIC_KEYLangfuse public key""
MEMTOMEM_SESSION_TRACE__LANGFUSE_SECRET_KEYLangfuse secret key""
MEMTOMEM_SESSION_TRACE__LANGFUSE_HOSTLangfuse 호스트 URL""
MEMTOMEM_SESSION_TRACE__SAMPLING_RATE0.0–1.0. 기록할 세션 비율1
MEMTOMEM_SESSION_TRACE__PAYLOAD_MODEmetadata(본문 미기록) / redacted(비밀값을 가린 본문) / full(전체 본문)"metadata"
MEMTOMEM_SESSION_TRACE__MAX_PAYLOAD_CHARS실행 기록에 남길 본문 문자 수 상한10000

langfuse_enabled=true로 설정하려면 langfuse 추가 패키지가 설치되어 있고 공개 키와 비밀 키를 모두 지정해야 합니다. 조건을 충족하지 않으면 시작할 때 설정 검증에 실패합니다.

변수설명기본값
MEMTOMEM_LOG_LEVELDEBUG / INFO / WARNING / ERRORINFO
MEMTOMEM_LOG_FORMAT로그 형식—

변수설명기본값
MEMTOMEM_HOOKS__TARGET_SCOPEmemtomem이 관리하는 Claude Code 설정 훅의 적용 범위: user, project_shared, project_local"user"
MEMTOMEM_CONTEXT_GATEWAY__KNOWN_PROJECTS_PATHContext Gateway용 Web UI 프로젝트 레지스트리"~/.memtomem/known_projects.json"
MEMTOMEM_CONTEXT_GATEWAY__EXPERIMENTAL_CLAUDE_PROJECTS_SCAN~/.claude/projects/<encoded> 디렉터리명을 프로젝트 루트로 복원해 스캔(검증되지 않은 후보까지 포함)false
MEMTOMEM_CONTEXT_GATEWAY__AUTO_DISPLAY_CONFIGURED_PROJECTS탐색 후보 중 알려진 실행 환경 표시 파일(.claude/.gemini/.codex/.agents/.kimi/.memtomem)이 있는 프로젝트만 자동 표시true

User 계층에 쓰려면 클라이언트에서 명시적으로 확인해야 합니다. USER_TIER_ENABLED 설정 필드는 없습니다.

다음 프로세스 수준 변수는 계층형 config.json / config.d 모델에 포함되지 않습니다.

변수설명기본값
MEMTOMEM_WIKI_PATH위키 저장소 위치 재정의~/.memtomem-wiki
MEMTOMEM_FASTEMBED_CACHEONNX / FastEmbed 모델 캐시 재정의(FASTEMBED_CACHE_PATH보다 우선)~/.memtomem/cache/fastembed
MEMTOMEM_INDEX_DEBOUNCE_QUEUE짧은 시간에 연속으로 생긴 파일 변경을 모아 두는 큐 파일 경로 재정의상태 디렉터리

제공자GPU비용비고
onnx불필요무료fastembed 기반 내장. 최초 실행 시 약 270MB 다운로드
ollama불필요무료Ollama 설치 필요. ollama pull nomic-embed-text
openai불필요유료API 키 필요

원문 전체 목록: upstream 저장소의 configuration.md를 참고하세요.

STM (memtomem-stm) — 접두사 MEMTOMEM_STM_

섹션 제목: “STM (memtomem-stm) — 접두사 MEMTOMEM_STM_”

STM 설정은 최상위 필드와 PROXY__*, SURFACING__*, FORMATION__*, HOOK__*, DAEMON__*, LANGFUSE__*로 나뉩니다. 압축, 캐시, 지표, 자동 색인, 추출 설정은 모두 PROXY__ 아래에 있습니다.

~/.memtomem/stm_proxy.json은 ProxyConfig만 읽습니다. 최상위, 관련 기억 제시, 기억 형성, 훅, 데몬, Langfuse 설정은 환경 변수나 기본값으로만 지정할 수 있습니다. 이 블록을 JSON 파일에 넣어도 적용되지 않습니다. 문서화된 예외는 proxy.consumer_model이 관련 기억의 예산 계산에도 전달되는 동작뿐입니다.

변수설명기본값
MEMTOMEM_STM_DATA_DIR데몬 연결 정보, 소유권 잠금, 백그라운드 실행 로그를 저장할 디렉터리"~/.memtomem"
MEMTOMEM_STM_LOG_LEVEL로그 레벨"WARNING"
MEMTOMEM_STM_LOG_FILE선택적 회전 로그 파일. 0600 권한, 2 MiB 회전, 백업 3개 사용null
MEMTOMEM_STM_ADVERTISE_OBSERVABILITY_TOOLStrue이면 stm_admin 디스패처와 그 관찰·관리 액션 8개(proxy_stats, proxy_health, proxy_cache_clear, surfacing_stats, selection_stats, compression_stats, progressive_stats, tuning_recommendations)를 표시. false여도 모델용 도구 5개는 계속 표시false
MEMTOMEM_STM_FORMATION__ENABLED선택형 stm_memory_propose 도구 표시. 표시 여부는 이 값만으로 결정하며, 연결한 LTM이 검토 후 저장 방식을 지원하는지는 호출할 때 확인. 지원하지 않으면 formation_unsupported 반환false
MEMTOMEM_STM_FORMATION__MAX_CONTENT_CHARS검토 후 저장할 후보 내용의 최대 길이. 넘으면 제안을 거부2000

변수설명기본값
MEMTOMEM_STM_PROXY__ENABLED프록시 처리 전체를 켜거나 끄는 설정false
MEMTOMEM_STM_PROXY__CONFIG_PATH프록시 JSON 설정 경로"~/.memtomem/stm_proxy.json"
MEMTOMEM_STM_PROXY__UPSTREAM_SERVERS연결할 모든 서버의 맵(JSON 객체). 보통은 설정 파일에서 관리하는 편이 쉬움{}
MEMTOMEM_STM_PROXY__DEFAULT_COMPRESSION기본 압축 전략"auto"
MEMTOMEM_STM_PROXY__DEFAULT_MAX_RESULT_CHARS응답당 문자 예산16000
MEMTOMEM_STM_PROXY__MAX_UPSTREAM_CHARS메모리 부족을 막기 위한 연결 서버 응답 크기 상한10000000
MEMTOMEM_STM_PROXY__MIN_RESULT_RETENTION보존 하한 (0.0–1.0)0.65
MEMTOMEM_STM_PROXY__MAX_DESCRIPTION_CHARS클라이언트에 보이는 도구 설명의 최대 길이([proxied] 접두사 포함). 업스트림에 적용되는 예산은 min(server, global)이므로 이 값만 올려서는 더 엄격한 서버별 값을 넓힐 수 없습니다.4000
MEMTOMEM_STM_PROXY__STRIP_SCHEMA_DESCRIPTIONS표시하는 도구에서 중첩된 JSON 스키마의 설명 제거false
MEMTOMEM_STM_PROXY__ADVERTISE_CONTEXT_QUERY관련성 점수 계산에 쓰는 선택형 _context_query 인자를 도구 스키마에 표시false
MEMTOMEM_STM_PROXY__HOST_DESCRIPTION_CAP호스트가 허용하는 설명 길이(프록시 접두사와 힌트 포함). 지정하지 않으면 알 수 없는 값으로 두며 호스트 한도를 추정하지 않습니다. 다음 도구 등록 시 적용되므로 확실히 반영하려면 재시작합니다.null
MEMTOMEM_STM_PROXY__RECOVER_UPSTREAM_DESCRIPTIONdescription_override가 대체한 원본 설명을 함께 반환합니다. 복구하면 재정의가 가리려 했던 업스트림 문구가 바로 그 독자에게 다시 전달되므로 기본값은 꺼짐입니다.false
MEMTOMEM_STM_PROXY__CONSUMER_MODEL컨텍스트 윈도우 예산 계산에 쓰는 클라이언트 모델 식별자""
MEMTOMEM_STM_PROXY__CONTEXT_BUDGET_RATIO프록시 결과에 허용할 수신 모델 컨텍스트 크기의 비율0.05
MEMTOMEM_STM_PROXY__CHARS_PER_TOKEN토큰 예산용 정적 문자/토큰 추정치3.5
MEMTOMEM_STM_PROXY__TOKEN_ESTIMATION_MODE토큰 추정 모드: static 또는 유니코드 인식 unicode"static"

변수설명기본값
MEMTOMEM_STM_PROXY__CACHE__ENABLED응답 캐싱 활성화true
MEMTOMEM_STM_PROXY__CACHE__DEFAULT_TTL_SECONDS캐시 TTL3600
MEMTOMEM_STM_PROXY__CACHE__DB_PATH캐시 DB 경로"~/.memtomem/proxy_cache.db"
MEMTOMEM_STM_PROXY__CACHE__MAX_ENTRIES캐시 엔트리 상한10000
MEMTOMEM_STM_PROXY__CACHE__TOOL_ANNOTATION_POLICYMCP 도구 주석을 반영하는 캐시 정책: conservative, strict, ignore"conservative"

캐시 스키마 5는 structuredContent와 _meta를 포함한 표준 MCP 응답 형식을 저장합니다. 호환되지 않는 이전 스키마를 발견하면 서로 다른 형식의 응답을 섞지 않고, 문서화된 일회성 캐시 초기화를 수행합니다.

변수설명기본값
MEMTOMEM_STM_PROXY__AUTO_INDEX__ENABLED도구 응답을 LTM에 색인false
MEMTOMEM_STM_PROXY__AUTO_INDEX__BACKGROUND요청 처리가 끝난 뒤 백그라운드에서 색인false
MEMTOMEM_STM_PROXY__AUTO_INDEX__MIN_CHARS색인할 응답의 최소 크기2000
MEMTOMEM_STM_PROXY__AUTO_INDEX__MEMORY_DIR출력 디렉터리"~/.memtomem/proxy_index"
MEMTOMEM_STM_PROXY__AUTO_INDEX__NAMESPACE자동 인덱싱 기억의 네임스페이스"proxy-{server}"

기본 mms 서버는 설계상 LTM에서 읽기만 하고 다시 쓰지 않습니다. 따라서 auto_index와 extraction 필드는 유효한 설정으로 받아들이지만 실제 동작에는 영향을 주지 않습니다.

변수설명기본값
MEMTOMEM_STM_PROXY__EXTRACTION__ENABLED4b단계 EXTRACT(사실 추출)false
MEMTOMEM_STM_PROXY__EXTRACTION__STRATEGY추출 전략: none, llm, heuristic, hybrid. LLM 응답은 전체(markdown 코드 펜스는 제거)를 JSON 사실 배열로만 해석하므로, 설명 문장으로 감싼 응답, 빈 응답, 모든 항목이 잘못된 배열은 heuristic 추출로 대체"llm"
MEMTOMEM_STM_PROXY__EXTRACTION__LLM__PROVIDER추출 LLM 제공자: openai, anthropic, ollamaopenai
MEMTOMEM_STM_PROXY__EXTRACTION__LLM__MODEL추출 LLM 모델gpt-4.1-mini
MEMTOMEM_STM_PROXY__EXTRACTION__LLM__API_KEY추출 LLM API 키""
MEMTOMEM_STM_PROXY__EXTRACTION__LLM__BASE_URL추출 LLM 엔드포인트 재정의""
MEMTOMEM_STM_PROXY__EXTRACTION__LLM__SYSTEM_PROMPT정보 추출용 시스템 프롬프트 템플릿내장 템플릿
MEMTOMEM_STM_PROXY__EXTRACTION__LLM__MAX_TOKENS추출 LLM 출력 토큰 상한500
MEMTOMEM_STM_PROXY__EXTRACTION__LLM__LLM_TIMEOUT_SECONDS추출 LLM의 제한 시간60.0
MEMTOMEM_STM_PROXY__EXTRACTION__LLM__PRIVACY_SCAN_ENABLED원격 추출 LLM 전송 전 콘텐츠 검사true
MEMTOMEM_STM_PROXY__EXTRACTION__MAX_FACTS응답당 추출 사실 수 상한10
MEMTOMEM_STM_PROXY__EXTRACTION__MIN_RESPONSE_CHARS추출 대상 최소 응답 길이500
MEMTOMEM_STM_PROXY__EXTRACTION__DEDUP_THRESHOLD추출 사실 유사도 임계값0.92
MEMTOMEM_STM_PROXY__EXTRACTION__MEMORY_DIR추출 사실 출력 디렉터리"~/.memtomem/extracted_facts"
MEMTOMEM_STM_PROXY__EXTRACTION__NAMESPACE추출 사실 네임스페이스 템플릿"facts-{server}"
MEMTOMEM_STM_PROXY__EXTRACTION__BACKGROUND요청 경로 밖에서 추출 실행true
MEMTOMEM_STM_PROXY__EXTRACTION__MAX_INPUT_CHARS추출에 사용하는 응답 텍스트 상한20000

프록시 → 지표·피드백·관련성 점수

섹션 제목: “프록시 → 지표·피드백·관련성 점수”
변수설명기본값
MEMTOMEM_STM_PROXY__METRICS__ENABLED호출 메트릭 기록true
MEMTOMEM_STM_PROXY__METRICS__DB_PATH프록시 메트릭 SQLite 경로"~/.memtomem/proxy_metrics.db"
MEMTOMEM_STM_PROXY__METRICS__MAX_HISTORY메트릭 행 보관 상한10000
MEMTOMEM_STM_PROXY__RELEVANCE_SCORER__SCORER점수 계산 방식"bm25"
MEMTOMEM_STM_PROXY__RELEVANCE_SCORER__EMBEDDING_PROVIDER의미 기반 관련성 점수에 사용할 임베딩 제공자"ollama"
MEMTOMEM_STM_PROXY__RELEVANCE_SCORER__EMBEDDING_MODEL관련성 임베딩 모델"nomic-embed-text"
MEMTOMEM_STM_PROXY__RELEVANCE_SCORER__EMBEDDING_BASE_URL관련성 임베딩 엔드포인트"http://localhost:11434"
MEMTOMEM_STM_PROXY__RELEVANCE_SCORER__EMBEDDING_TIMEOUT관련성 임베딩 요청 제한 시간10
MEMTOMEM_STM_PROXY__COMPRESSION_FEEDBACK__ENABLEDstm_compression_feedback 기록true
MEMTOMEM_STM_PROXY__COMPRESSION_FEEDBACK__DB_PATH압축 피드백 SQLite 경로"~/.memtomem/stm_feedback.db"
MEMTOMEM_STM_PROXY__COMPRESSION_FEEDBACK__RETENTION_DAYS압축 피드백 보존 일수90
MEMTOMEM_STM_PROXY__PROGRESSIVE_READS__ENABLED점진적 전달의 읽기 기록 활성화. stm_admin(action="progressive_stats")에서 확인true
MEMTOMEM_STM_PROXY__PROGRESSIVE_READS__DB_PATH점진적 읽기 기록을 저장할 SQLite 경로"~/.memtomem/stm_feedback.db"
MEMTOMEM_STM_PROXY__PROGRESSIVE_READS__RETENTION_DAYS점진적 읽기 기록 보존 일수90
MEMTOMEM_STM_PROXY__LOCK_TIMEOUT_SECONDS내부 잠금을 기다릴 최대 시간. 넘으면 연결 서버가 느린 것이 아니라 교착 상태이거나 잠금 소유자가 멈춘 것으로 처리30

연결한 서버의 도구 가운데 에이전트에 표시할 항목을 정하는 STM 자체 필터입니다. 실패가 잦거나, 설명에 자격 증명으로 보이는 문자열이 있거나, 이름이 겹치는 도구를 제외합니다. 상태는 프록시를 시작할 때 한 번 평가하므로 세션 중에는 표시되는 도구 목록이 바뀌지 않습니다.

변수설명기본값
MEMTOMEM_STM_PROXY__EXPOSURE__PROFILEstrict(규칙에 걸리면 제외) / review(제외하지 않고 순위만 낮춘 뒤 기록) / explore(규칙 비활성화)"strict"
MEMTOMEM_STM_PROXY__EXPOSURE__HEALTH_WINDOW_HOURS도구별 건강도 판정에 사용하는 메트릭 조회 윈도우(시간)24
MEMTOMEM_STM_PROXY__EXPOSURE__HEALTH_MIN_CALLS건강도를 판정하기 위한 윈도우 내 최소 호출 수. 미만이면 건강한 것으로 간주5
MEMTOMEM_STM_PROXY__EXPOSURE__HEALTH_ERROR_RATE_THRESHOLD연결 서버에서 발생한 오류율이 이 값 이상이면 도구를 비정상으로 표시0.95
MEMTOMEM_STM_PROXY__EXPOSURE__REVIEW_RISK_PENALTYreview 프로필에서 규칙에 걸린 도구의 순위를 낮추는 배수0.5

프록시 → 선택 기록·도구 관련성

섹션 제목: “프록시 → 선택 기록·도구 관련성”

프록시를 호출할 때마다 선택·실행 기록을 JSONL로 남기고, 에이전트에 표시한 도구를 호출 신호와의 BM25 관련성 순으로 계산합니다. 이 순위는 기록에만 남으며 실제 도구 목록은 바꾸지 않습니다.

변수설명기본값
MEMTOMEM_STM_PROXY__SELECTION_TELEMETRY__ENABLED호출별 선택·실행 JSONL 기록 활성화false
MEMTOMEM_STM_PROXY__SELECTION_TELEMETRY__PATHJSONL 로그 경로"~/.memtomem/stm_selection_log.jsonl"
MEMTOMEM_STM_PROXY__SELECTION_TELEMETRY__SAMPLE_RATE0.0–1.0. 기록할 호출 비율1
MEMTOMEM_STM_PROXY__SELECTION_TELEMETRY__MAX_BYTES로그 회전 크기 임계값50000000
MEMTOMEM_STM_PROXY__SELECTION_TELEMETRY__MAX_BACKUPS보관할 회전 파일 수 (0은 잘라내기)3
MEMTOMEM_STM_PROXY__TOOL_RELEVANCE__ENABLED호출당 도구 BM25 랭킹 기록. selection_telemetry가 켜져 있어야 실제로 기록됨true
MEMTOMEM_STM_PROXY__TOOL_RELEVANCE__TOP_N선택 기록 하나에 남길 순위 후보 수20

프록시 → 외부 도구 그래프 자격 판정(선택)

섹션 제목: “프록시 → 외부 도구 그래프 자격 판정(선택)”

별도의 도구 그래프 MCP 서버에 여러 서버 사이의 권한과 데이터 흐름이 허용되는지 물어, 도구 표시 필터의 추가 규칙으로 사용합니다. 기본값은 비활성화입니다. 그래프 서버에는 자격만 조회하며 그 도구를 프록시하지 않으므로 클라이언트에는 그래프 도구가 보이지 않습니다.

변수설명기본값
MEMTOMEM_STM_PROXY__TOOLGRAPH__ENABLED외부 도구 그래프 적격성 제공자 활성화false
MEMTOMEM_STM_PROXY__TOOLGRAPH__SOURCE정책 출처: stdio로 실시간 조회하거나 서명된 bundle 파일 사용"stdio"
MEMTOMEM_STM_PROXY__TOOLGRAPH__BUNDLE_PATHsource=bundle일 때 사용할 로컬 정책 번들 경로"~/.memtomem/toolgraph/policy-bundle.json"
MEMTOMEM_STM_PROXY__TOOLGRAPH__COMMANDstdio 도구 그래프 MCP 서버 실행 명령"toolgraph"
MEMTOMEM_STM_PROXY__TOOLGRAPH__ARGS명령 인자(JSON 목록)["serve"]
MEMTOMEM_STM_PROXY__TOOLGRAPH__ENV그래프 서버용 추가 환경 변수(예: NEO4J_*, JSON object)null
MEMTOMEM_STM_PROXY__TOOLGRAPH__AGENT_ID그래프에 등록된, 적격성을 판정할 에이전트 식별자"stm-proxy"
MEMTOMEM_STM_PROXY__TOOLGRAPH__SERVER_NAME_MAPSTM의 연결 서버 이름을 그래프 서버 식별자에 연결(JSON 객체){}
MEMTOMEM_STM_PROXY__TOOLGRAPH__QUERY_PROFILE그래프 조회에 전달할 프로필"strict"
MEMTOMEM_STM_PROXY__TOOLGRAPH__ON_UNREACHABLE그래프에 연결할 수 없을 때: open(STM 자체 규칙에 따라 표시) / closed(그래프가 승인한 도구 외에는 모두 보류)"open"
MEMTOMEM_STM_PROXY__TOOLGRAPH__ON_TOOL_NOT_FOUND그래프에 없는 후보 도구: open / closed"open"
MEMTOMEM_STM_PROXY__TOOLGRAPH__ON_AGENT_NOT_FOUNDagent_id 미등록(대개 오타): fail_start / open / closed"fail_start"
MEMTOMEM_STM_PROXY__TOOLGRAPH__ON_PROTOCOL_ERROR그래프 응답 규약 위반: fail_start / open / closed"fail_start"
MEMTOMEM_STM_PROXY__TOOLGRAPH__RISK_PENALTY_SCALE적격하지만 위험한 도구의 랭킹 강등 배수1
MEMTOMEM_STM_PROXY__TOOLGRAPH__TIMEOUT_SECONDS조회 제한 시간5
MEMTOMEM_STM_PROXY__TOOLGRAPH__CONSULT_CACHE_ENABLED조회 결과를 디스크에 캐시true
MEMTOMEM_STM_PROXY__TOOLGRAPH__CONSULT_CACHE_PATH조회 캐시 SQLite 경로"~/.memtomem/toolgraph_consult.db"
MEMTOMEM_STM_PROXY__TOOLGRAPH__CONSULT_CACHE_MAX_SCOPES캐시할 도구 집합 범위의 상한64

형식이 정해진 backend_unavailable 결과에는 on_unreachable 설정을 적용합니다. 알 수 없거나 형식이 잘못된 응답에는 on_protocol_error를 적용합니다.

연결 서버별 설정(UpstreamServerConfig)

섹션 제목: “연결 서버별 설정(UpstreamServerConfig)”

다음 필드는 ~/.memtomem/stm_proxy.json의 UpstreamServerConfig 항목에 서버별로 지정합니다. 개별 환경 변수로 설정하는 값이 아닙니다. 사용할 수 있는 필드를 모두 나열합니다.

필드설명기본값
commandstdio 서버 실행 파일""
argsstdio 서버 인자[]
env서버 추가 환경 변수null
cwd서버 작업 디렉터리null
prefix조합된 도구 이름에 쓰는 필수 네임스페이스 구간필수
transportstdio, sse, streamable_httpstdio
url네트워크 연결의 엔드포인트""
headers네트워크 연결에 넣을 고정 헤더null
compression이 서버의 기본 압축 전략auto
max_result_chars결과 문자 예산. 생략하면 전역 default_max_result_chars를 상속하고, 명시한 값은 8000을 포함해 그대로 적용. 토큰 예산이 함께 있으면 토큰 예산이 우선8000
max_result_tokens선택적 토큰 환산 결과 예산null
chars_per_token서버별 문자/토큰 추정치null(프록시 값 상속)
token_estimation_mode선택형 static / unicode 추정 방식 재정의null(프록시 값 상속)
retention_floor선택형 최소 압축 보존 비율. 전역 min_result_retention이 0이어도 적용되며, 0이면 이 수준에서 하한을 끔null(프록시 값 상속)
llm서버별 LLM 압축 설정null
selectiveselective 압축 설정null
hybridhybrid 압축 설정null
progressive커서 기반 점진 전달 설정null
cleaning압축 전 cleaning 설정null
tool_overrides도구별 ToolOverrideConfig 맵{}
auto_index호환을 위해 허용하는 전역 자동 색인 설정 재정의null
extraction호환을 위해 허용하는 전역 정보 추출 설정 재정의null
cache응답 캐시 재정의null
cache_ttl_seconds응답 캐시 TTL 재정의null
expose_in_profiles이 서버를 표시할 노출 프로필null
surfacing_enabled이 서버의 응답에 관련 기억을 자동으로 붙일지 여부. false이면 서버의 모든 도구에서 생략true
max_retries첫 시도 뒤 연결이나 호출을 다시 시도할 횟수3
reconnect_delay_seconds최초 재연결 지연1.0
max_reconnect_delay_seconds재연결 대기 시간의 상한30.0
connect_timeout_seconds서버 연결 제한 시간30.0
call_timeout_secondssession.call_tool() 한 번의 제한 시간. 넘으면 세션을 강제로 초기화하며, 재실행 안전 정책과 남은 재시도·시간 예산이 허용할 때만 다시 시도90.0
overall_deadline_seconds재시도를 포함한 호출 하나의 전체 제한 시간. call_timeout × (max_retries+1)에 따른 최악의 대기 시간이 지나치게 커지는 것을 방지180.0
circuit_max_failures이 서버의 회로를 열기 전까지 허용할 실패 횟수3
circuit_reset_seconds열린 회로를 다시 확인할 간격60.0
max_description_chars서버별 도구 설명 길이 상한. 실제 적용 예산은 min(server, global)입니다.4000
strip_schema_descriptions서버별로 중첩된 스키마 설명 제거false
originmms add --import/mms init이 기록하고 mms eject가 사용하는 가져오기 출처 정보. CLI JSON 출력에서는 저장된 원본 항목의 민감 정보를 가림null

연결 서버와 tool_overrides.<tool> 항목은 같은 하위 설정 구조를 사용합니다.

블록 / 필드설명기본값
llm.provideropenai, anthropic, ollamaopenai
llm.model요약 모델gpt-4.1-mini
llm.api_key제공자 API 키""
llm.base_url제공자 엔드포인트 재정의""
llm.system_prompt{max_chars}를 포함하는 요약 프롬프트 템플릿내장 템플릿
llm.max_tokens요약 출력 토큰 상한500
llm.llm_timeout_seconds요약 제한 시간. 넘으면 truncate로 대신 처리60.0
llm.privacy_scan_enabled원격 LLM 호출 전 검사true
selective.max_pending진행 중인 선택 기록 수 상한100
selective.pending_ttl_seconds진행 중인 선택 기록의 TTL300.0
selective.json_depthJSON 개요의 깊이1
selective.min_section_chars유지할 섹션 최소 길이50
selective.pending_store진행 중인 선택 기록의 저장 방식: memory 또는 sqlitememory
selective.pending_store_path진행 중인 선택 기록을 저장할 SQLite 경로~/.memtomem/pending_selections.db
hybrid.head_chars선두 콘텐츠 선호 예산5000
hybrid.tail_modetoc 또는 truncatetoc
hybrid.min_toc_budget목차 최소 예산200
hybrid.min_head_chars선두 콘텐츠 최소 예산100
hybrid.head_ratio선두 콘텐츠 배분 비율0.6
progressive.chunk_sizeprogressive 조각 하나의 문자 수4000
progressive.max_stored보관할 진행 중인 progressive 응답 수 상한200
progressive.ttl_seconds진행 중인 응답의 TTL1800.0
progressive.include_structure_hint남은 콘텐츠 구조 메타데이터 포함true
cleaning.enabled응답 정리 단계 활성화true
cleaning.strip_htmlHTML 마크업 제거true
cleaning.deduplicate중복 블록 제거true
cleaning.collapse_links장황한 링크 축약true

각 tool_overrides.<tool>은 compression, max_result_chars, max_result_tokens, chars_per_token, token_estimation_mode, retention_floor와 위의 llm, selective, hybrid, progressive, cleaning 블록을 받습니다. 다음 필드도 모두 받습니다.

필드설명기본값
auto_index호환을 위해 허용하는 자동 색인 설정 재정의null
extraction호환을 위해 허용하는 정보 추출 설정 재정의null
cache캐시 재정의null
cache_ttl_seconds캐시 TTL 재정의null
hidden이 도구를 에이전트에 표시하지 않음false
description_override에이전트에 표시할 설명 교체null
expose_in_profiles이 도구를 표시할 노출 프로필null

변수설명기본값
MEMTOMEM_STM_SURFACING__ENABLEDLTM 기반 관련 기억 자동 제시 활성화true
MEMTOMEM_STM_SURFACING__USE_DAEMON단독 실행한 관련 기억 검색을 공용 데몬으로 처리. 별도의 내부 대체 경로는 없음false
MEMTOMEM_STM_SURFACING__WARMUP_ENABLEDLTM 클라이언트를 백그라운드에서 미리 연결true
MEMTOMEM_STM_SURFACING__FEEDBACK_DB_PATH관련 기억 피드백과 중복 제거 정보를 저장할 SQLite 경로"~/.memtomem/stm_feedback.db"
MEMTOMEM_STM_SURFACING__MIN_SCORERRF 척도에서 적용하는 전역 결과 점수 하한. 도구별 고정값이나 척도 게이트가 있으면 그쪽이 우선합니다.0.017
MEMTOMEM_STM_SURFACING__MAX_RESULTS호출당 주입되는 검색 결과 기억의 최대 수. Core가 context_compose로 반환하는 고정(pinned) 컨텍스트는 별도이며 이 수에 포함되지 않음3
MEMTOMEM_STM_SURFACING__MIN_RESPONSE_CHARS응답이 이보다 짧으면 관련 기억 검색 생략5000
MEMTOMEM_STM_SURFACING__MIN_QUERY_TOKENS추출한 검색어의 최소 토큰 수3
MEMTOMEM_STM_SURFACING__COOLDOWN_SECONDS관련 기억 검색을 반복할 때 둘 사이의 최소 간격5
MEMTOMEM_STM_SURFACING__TIMEOUT_SECONDSLTM 관련 기억 검색의 제한 시간3
MEMTOMEM_STM_SURFACING__INJECTION_MODE배치 위치: prepend, append, section"append"
MEMTOMEM_STM_SURFACING__SECTION_HEADERsection 주입 모드에서 사용할 제목"## Relevant Memories"
MEMTOMEM_STM_SURFACING__DEFAULT_NAMESPACE도구 규칙이 덮어쓰지 않을 때의 선택적 네임스페이스null
MEMTOMEM_STM_SURFACING__EXCLUDE_TOOLS제외할 도구 이름 목록(JSON 목록)[]
MEMTOMEM_STM_SURFACING__WRITE_TOOL_PATTERNS기본적으로 관련 기억을 붙이지 않을 쓰기 도구 패턴(JSON 목록)["*write*","*create*","*delete*","*push*","*send*","*remove*"]
MEMTOMEM_STM_SURFACING__CONTEXT_TOOLS도구별 enabled, query_template, namespace, min_score, max_results 재정의(JSON object){}
MEMTOMEM_STM_SURFACING__DEDUP_TTL_SECONDS세션 사이에 중복을 제거할 기간604800
MEMTOMEM_STM_SURFACING__FEEDBACK_ENABLEDstm_surfacing_feedback 입력 허용true
MEMTOMEM_STM_SURFACING__MAX_SURFACINGS_PER_MINUTE현재 프로세스에서 분당 실행할 관련 기억 검색 수 상한15
MEMTOMEM_STM_SURFACING__CACHE_TTL_SECONDS현재 프로세스의 관련 기억 검색 결과 캐시 TTL60
MEMTOMEM_STM_SURFACING__CIRCUIT_MAX_FAILURES회로를 열기 전 연속 LTM 실패 횟수3
MEMTOMEM_STM_SURFACING__CIRCUIT_RESET_SECONDS열린 회로를 다시 확인할 간격60
MEMTOMEM_STM_SURFACING__AUTO_TUNE_ENABLED도구별 임계값 자동 튜닝true
MEMTOMEM_STM_SURFACING__AUTO_TUNE_MIN_SAMPLES튜닝 전 최소 피드백 샘플 수20
MEMTOMEM_STM_SURFACING__AUTO_TUNE_SCORE_INCREMENT임계값 조정 단위0.002
MEMTOMEM_STM_SURFACING__AUTO_TUNE_SCORE_FLOOR기본 자동 튜닝 하한. 명시적 min_score를 포함하도록 검증 시 확장0.005
MEMTOMEM_STM_SURFACING__AUTO_TUNE_SCORE_CEILING기본 자동 튜닝 상한. 명시적 min_score를 포함하도록 검증 시 확장. 실행 중에는 배치에서 도달 가능한 기준값으로도 상한을 둠(피드백 루프 참고)0.05
MEMTOMEM_STM_SURFACING__INCLUDE_SESSION_CONTEXT검색어를 만들 때 사용할 수 있는 세션 맥락 포함true
MEMTOMEM_STM_SURFACING__FIRE_WEBHOOK관련 기억 검색 결과에 대해 LTM에 설정된 웹훅 실행 요청true
MEMTOMEM_STM_SURFACING__MAX_INJECTION_CHARS주입되는 기억 전체 문자 상한3000
MEMTOMEM_STM_SURFACING__CONTEXT_WINDOW_SIZE각 검색 결과 주변에서 요청할 LTM 인접 청크 수0
MEMTOMEM_STM_SURFACING__RESULT_CONTENT_MAX_CHARSstructured 결과 하나의 내용 길이 상한500
MEMTOMEM_STM_SURFACING__PREVIEW_MAX_CHARScompact 미리보기 하나의 내용 길이 상한300
MEMTOMEM_STM_SURFACING__QUERY_RETENTION_DAYS피드백 DB에 검색어 원문을 보존할 일수. 기간이 지나면 해당 열의 값만 비움. 0이면 정리하지 않음30
MEMTOMEM_STM_SURFACING__STATS_RETENTION_DAYS집계한 관련 기억 검색 통계의 보존 일수90
MEMTOMEM_STM_SURFACING__PERSIST_QUERY_TEXTtrue이면 검색어 원문 저장, false이면 sha256:<16-hex> 해시 저장true
MEMTOMEM_STM_SURFACING__OPPORTUNITIES_ENABLED관련 기억 검색에 진입한 호출마다 결과(표시, 건너뜀과 그 사유, 오류, 취소)를 surfacing_opportunities 행으로 기록. 행에는 인자 개수, 경로 깊이, 흔한 파일 형식의 확장자 같은 인자 형태만 담기며 키와 값은 담기지 않음. false이면 기록을 완전히 끔. 피드백 추적기가 있는 엔진(daemon, feedback_enabled가 켜진 proxy)만 기록true
MEMTOMEM_STM_SURFACING__OPPORTUNITIES_SAMPLE_RATE저장할 opportunity 행의 비율(0.0~1.0). 제외된 행은 stm_surfacing_stats에서 개수로만 집계. 보류(holdout) 추첨을 거친 호출은 샘플링에서 제외하지 않으므로 HOLDOUT_RATE가 0보다 크면 0.0이어도 행이 저장될 수 있음1.0
MEMTOMEM_STM_SURFACING__HOLDOUT_RATE효과 측정을 위해 무작위로 주입을 보류할 비율. [0, 0.5] 밖의 값은 거부하지 않고 범위 안으로 조정함. Claude Code hook 경로에서 tool_use_id와 session_id가 모두 있는 호출만 대상이며 proxy 경로는 보류하지 않음0.0
MEMTOMEM_STM_SURFACING__FEEDBACK_DEMOTION_ENABLED부정적 피드백을 반복해서 받은 기억을 응답에 넣기 전에 제외true
MEMTOMEM_STM_SURFACING__FEEDBACK_DEMOTION_NEGATIVE_THRESHOLD기억을 제외하기 전에 필요한 서로 다른 부정적 평가 수3
MEMTOMEM_STM_SURFACING__CONSUMER_MODEL관련 기억 제시 전용 수신 모델. 빈 값이면 proxy.consumer_model 상속""
MEMTOMEM_STM_SURFACING__RESULT_FORMATLTM 응답 모드: compact 또는 structured"structured"
MEMTOMEM_STM_SURFACING__RERANK서피싱 검색에서 Core에 보낼 호출별 재순위 요청. false는 재순위 단계 생략, true는 Core에 설정된 리랭커 사용, none은 요청하지 않고 Core 설정에 맡김. 호출별 재순위를 지원한다고 알린 Core에만 전달false
MEMTOMEM_STM_SURFACING__SCALE_GATED_MIN_SCOREscore_scale이 RRF가 아닌 알려진 척도인 결과 묶음에는 전역 또는 자동 조정된 min_score를 적용하지 않고 자동 조정도 멈춤. 도구별 min_score는 계속 적용하며, 점수 자체는 변환하지 않음true
MEMTOMEM_STM_SURFACING__LTM_MCP_TRANSPORTLTM MCP 연결 방식: stdio, sse, streamable_http"stdio"
MEMTOMEM_STM_SURFACING__LTM_MCP_COMMANDstdio 연결에서 LTM 서버를 실행할 MCP 명령"memtomem-server"
MEMTOMEM_STM_SURFACING__LTM_MCP_ARGSLTM 명령 인자(JSON 목록)[]
MEMTOMEM_STM_SURFACING__LTM_MCP_URLsse / streamable_http LTM 엔드포인트 URL""
MEMTOMEM_STM_SURFACING__LTM_MCP_HEADERS네트워크 LTM 전송용 정적 헤더(JSON object)null

관련 기억 자동 제시는 STM을 거친 호출이나 지원되는 클라이언트 훅에만 적용됩니다. 각 AI 도구가 자체로 관리하는 기억 계층이 아니며, STM과 관계없는 직접 MCP 호출에 몰래 내용을 넣지 않습니다.

변수설명기본값
MEMTOMEM_STM_HOOK__USE_DAEMONmms hook의 관련 기억 검색을 매번 새 프로세스에서 처리하지 않고 상주하는 로컬 데몬으로 처리true
MEMTOMEM_STM_HOOK__DAEMON_TIMEOUT_SECONDS훅과 데몬 사이 왕복 제한 시간2.5
MEMTOMEM_STM_HOOK__FALLBACK데몬을 사용할 수 없을 때의 동작: skip(건너뜀) 또는 cold(현재 프로세스에서 처리)"skip"
MEMTOMEM_STM_HOOK__AUTO_SPAWN조건을 충족하는 첫 훅 호출에서 응답을 기다리지 않고 데몬 시작true
MEMTOMEM_STM_HOOK__RECORD_FEEDBACK_EVENTS훅의 관련 기억 피드백과 검색어 기록 저장. 기본값은 중복 제거 정보만 유지하며 검색어 원문은 저장하지 않음false
MEMTOMEM_STM_HOOK__METRICS_ENABLED크기와 소요 시간만 포함하는 훅 지표 기록true
MEMTOMEM_STM_HOOK__COMPRESSION__ENABLED내장 Bash 도구의 updatedToolOutput 압축 활성화false
MEMTOMEM_STM_HOOK__COMPRESSION__MAX_CHARSBash 출력을 바꿀 때 적용할 문자 예산16000
MEMTOMEM_STM_HOOK__COMPRESSION__MIN_RETENTION내장 Bash 출력 압축의 최소 보존 비율0.65
MEMTOMEM_STM_HOOK_SURFACE_TOOLS중첩 설정과 별도로 직접 읽는 쉼표 구분 훅 도구 허용 목록. 클라이언트 어댑터는 Claude의 Read / Bash 같은 이름을 read / shell로 연결read,grep,glob,shell
MEMTOMEM_STM_DAEMON__HOST로컬 데몬이 수신 대기할 주소. 루프백 전용 권장"127.0.0.1"
MEMTOMEM_STM_DAEMON__ALLOW_NON_LOOPBACK루프백이 아닌 주소에서 데몬 수신을 명시적으로 허용false
MEMTOMEM_STM_DAEMON__IDLE_TIMEOUT_SECONDS이 시간 동안 요청이 없으면 데몬 중지. 0이면 자동 중지하지 않음900
MEMTOMEM_STM_DAEMON__MAX_PENDING_REQUESTS받을 수 있는 훅 및 단독 관련 기억 검색 요청 수 상한32
변수설명기본값
MEMTOMEM_STM_LANGFUSE__ENABLED스팬 전송false
MEMTOMEM_STM_LANGFUSE__PUBLIC_KEYLangfuse public key""
MEMTOMEM_STM_LANGFUSE__SECRET_KEYLangfuse secret key""
MEMTOMEM_STM_LANGFUSE__HOSTLangfuse 호스트 URL""
MEMTOMEM_STM_LANGFUSE__SAMPLING_RATE0.0–1.01

MEMTOMEM_STM_LANGFUSE__ENABLED=true인데 [langfuse] 추가 패키지가 설치되어 있지 않으면 시작할 때 ValueError가 발생합니다(v0.1.16부터 즉시 실패). 추가 패키지를 먼저 설치하거나 enabled=false로 두세요. 이제는 경고만 남기고 조용히 비활성화하지 않으므로 설정 오류 때문에 추적 기능이 모르게 꺼지지 않습니다.

압축 전략 (MEMTOMEM_STM_PROXY__DEFAULT_COMPRESSION)

섹션 제목: “압축 전략 (MEMTOMEM_STM_PROXY__DEFAULT_COMPRESSION)”
전략용도
auto기본값 — 콘텐츠 유형별 자동 선택
hybridMarkdown (구조 보존 + 비핵심 섹션 축약)
selective검색어나 요청과 관련된 섹션만 유지
progressive대용량 콘텐츠, 보관된 소스의 커서 기반 분할 전송
extract_fieldsJSON 딕셔너리
schema_pruning대형 JSON 배열
skeletonAPI 문서 (스키마만 유지)
llm_summaryLLM 기반 요약 (OpenAI / Anthropic / Ollama)
truncate다른 전략을 쓸 수 없을 때 길이 제한에 맞춰 자름
none압축하지 않고 그대로 전달

원문 전체 목록: upstream 저장소의 configuration.md를 참고하세요.

위 기본값은 초기화 프리셋을 적용하기 전 스키마 선언값입니다. mm init은 공급자·차원·메모리 경로를 변경할 수 있습니다. OTLP와 Langfuse는 별도 옵트인입니다. 자식 MCP 프로세스에 환경 변수를 전달하고 다시 연결해야 합니다.

변수설명기본값
MEMTOMEM_ENTITY_BOOST__ENABLED질의 엔티티 점수 부스팅 활성화false
MEMTOMEM_ENTITY_BOOST__MAX_BOOST엔티티 점수 배율 상한1.5
MEMTOMEM_ENTITY_BOOST__MIN_CONFIDENCE엔티티 최소 신뢰도0
MEMTOMEM_ENTITY_BOOST__QUERY_ENTITY_TYPES질의 매칭에 사용할 엔티티 유형["date","person","technology"]
MEMTOMEM_INDEXING__EXTRACT_ENTITIES색인 시 엔티티 추출true
MEMTOMEM_RERANK__TIMEOUT_S리랭커 제한 시간(초)30
변수설명기본값
MEMTOMEM_STM_DAEMON__MAX_CONCURRENT_LTM_OPSLTM 작업 동시 실행 상한4
MEMTOMEM_STM_OTLP__ENABLED선택적 OTLP 내보내기: enabledfalse
MEMTOMEM_STM_OTLP__ENDPOINT선택적 OTLP 내보내기: endpoint""
MEMTOMEM_STM_OTLP__FLUSH_TIMEOUT_SECONDS선택적 OTLP 내보내기: flush timeout seconds5
MEMTOMEM_STM_OTLP__HEADERS선택적 OTLP 내보내기: headers{}
MEMTOMEM_STM_OTLP__MAX_EXPORT_BATCH_SIZE선택적 OTLP 내보내기: max export batch size512
MEMTOMEM_STM_OTLP__MAX_QUEUE_SIZE선택적 OTLP 내보내기: max queue size2048
MEMTOMEM_STM_OTLP__SAMPLING_RATE선택적 OTLP 내보내기: sampling rate1
MEMTOMEM_STM_OTLP__SCHEDULE_DELAY_MS선택적 OTLP 내보내기: schedule delay ms5000
MEMTOMEM_STM_OTLP__TIMEOUT_SECONDS선택적 OTLP 내보내기: timeout seconds10
MEMTOMEM_STM_PARENT_LIVENESS_GRACE_SECONDS부모 프로세스 생존 확인 유예 시간(초)900
MEMTOMEM_STM_PARENT_LIVENESS_POLL_SECONDS부모 프로세스 생존 확인 간격; 0이면 비활성화0
MEMTOMEM_STM_PROXY__EXTRACTION__LLM선택적 LLM 추출 설정; null이면 해당 오버라이드 없음null
MEMTOMEM_STM_PROXY__MAX_UPSTREAM_BYTES메타데이터·비텍스트·오류를 포함한 디코딩 후 compact JSON 응답 상한; 전송 크기나 최대 메모리 상한이 아님41943040
MEMTOMEM_STM_PROXY__RELEVANCE_SCORER__EMBEDDING_CACHE_SIZE임베딩 관련도 캐시 항목 상한256
MEMTOMEM_STM_TEARDOWN_WATCHDOG_SECONDS종료 감시 제한 시간(초)60

캐시 스키마 5는 길이 접두사를 붙인 키 구성과 유니코드 직렬화를 사용합니다. 이전 캐시 행은 최초 초기화 시 삭제되지만, 이는 LTM 기억 삭제와는 별개입니다.