|
1 | | -# MemOS Environment Variables Configuration |
2 | | -TZ=Asia/Shanghai |
| 1 | +# MemOS Environment Variables (core runtime) |
| 2 | +# Legend: [required] needed for default startup; others are optional or conditional per comments. |
3 | 3 |
|
4 | | -MOS_CUBE_PATH="/tmp/data_test" # Path to memory storage (e.g. /tmp/data_test) |
5 | | -MOS_ENABLE_DEFAULT_CUBE_CONFIG="true" # Enable default cube config (true/false) |
| 4 | +## Base |
| 5 | +TZ=Asia/Shanghai |
| 6 | +ENV_NAME=PLAYGROUND_OFFLINE # Tag shown in DingTalk notifications (e.g., PROD_ONLINE/TEST); no runtime effect unless ENABLE_DINGDING_BOT=true |
| 7 | +MOS_CUBE_PATH=/tmp/data_test # local data path |
| 8 | +MEMOS_BASE_PATH=. # CLI/SDK cache path |
| 9 | +MOS_ENABLE_DEFAULT_CUBE_CONFIG=true # enable default cube config |
| 10 | +MOS_ENABLE_REORGANIZE=false # enable memory reorg |
| 11 | +MOS_TEXT_MEM_TYPE=general_text # general_text | tree_text |
| 12 | +ASYNC_MODE=sync # async/sync, used in default cube config |
6 | 13 |
|
7 | | -# OpenAI Configuration |
8 | | -OPENAI_API_KEY="sk-xxx" # Your OpenAI API key |
9 | | -OPENAI_API_BASE="http://xxx" # OpenAI API base URL (default: https://api.openai.com/v1) |
| 14 | +## User/session defaults |
| 15 | +MOS_USER_ID=root |
| 16 | +MOS_SESSION_ID=default_session |
| 17 | +MOS_MAX_TURNS_WINDOW=20 |
| 18 | +MOS_TOP_K=50 |
10 | 19 |
|
11 | | -# MemOS Chat Model Configuration |
| 20 | +## Chat LLM (main dialogue) |
12 | 21 | MOS_CHAT_MODEL=gpt-4o-mini |
13 | 22 | MOS_CHAT_TEMPERATURE=0.8 |
14 | 23 | MOS_MAX_TOKENS=8000 |
15 | 24 | MOS_TOP_P=0.9 |
16 | | -MOS_TOP_K=50 |
17 | | -MOS_CHAT_MODEL_PROVIDER=openai |
18 | | - |
19 | | -# graph db |
20 | | -# neo4j |
21 | | -NEO4J_BACKEND=xxx |
22 | | -NEO4J_URI=bolt://xxx |
23 | | -NEO4J_USER=xxx |
24 | | -NEO4J_PASSWORD=xxx |
25 | | -MOS_NEO4J_SHARED_DB=xxx |
26 | | -NEO4J_DB_NAME=xxx |
27 | | - |
28 | | -# tetxmem reog |
29 | | -MOS_ENABLE_REORGANIZE=false |
30 | | - |
31 | | -# MemOS User Configuration |
32 | | -MOS_USER_ID=root |
33 | | -MOS_SESSION_ID=default_session |
34 | | -MOS_MAX_TURNS_WINDOW=20 |
| 25 | +MOS_CHAT_MODEL_PROVIDER=openai # openai | huggingface | vllm |
| 26 | +MOS_MODEL_SCHEMA=memos.configs.llm.VLLMLLMConfig # vllm only: config class path; keep default unless you extend it |
| 27 | +OPENAI_API_KEY=sk-xxx # [required] when provider=openai |
| 28 | +OPENAI_API_BASE=https://api.openai.com/v1 # [required] base for the key |
| 29 | +OPENAI_BASE_URL= # compatibility for eval/scheduler |
| 30 | +VLLM_API_KEY= # required when provider=vllm |
| 31 | +VLLM_API_BASE=http://localhost:8088/v1 # required when provider=vllm |
35 | 32 |
|
36 | | -# MemRader Configuration |
| 33 | +## MemReader / retrieval LLM |
37 | 34 | MEMRADER_MODEL=gpt-4o-mini |
38 | | -MEMRADER_API_KEY=sk-xxx |
39 | | -MEMRADER_API_BASE=http://xxx:3000/v1 |
| 35 | +MEMRADER_API_KEY=sk-xxx # [required] can reuse OPENAI_API_KEY |
| 36 | +MEMRADER_API_BASE=http://localhost:3000/v1 # [required] base for the key |
40 | 37 | MEMRADER_MAX_TOKENS=5000 |
41 | 38 |
|
42 | | -#embedding & rerank |
| 39 | +## Embedding & rerank |
43 | 40 | EMBEDDING_DIMENSION=1024 |
44 | | -MOS_EMBEDDER_BACKEND=universal_api |
45 | | -MOS_EMBEDDER_MODEL=bge-m3 |
46 | | -MOS_EMBEDDER_API_BASE=http://xxx |
47 | | -MOS_EMBEDDER_API_KEY=EMPTY |
48 | | -MOS_RERANKER_BACKEND=http_bge |
49 | | -MOS_RERANKER_URL=http://xxx |
50 | | -# Ollama Configuration (for embeddings) |
51 | | -#OLLAMA_API_BASE=http://xxx |
52 | | - |
53 | | -# milvus for pref mem |
54 | | -MILVUS_URI=http://xxx |
55 | | -MILVUS_USER_NAME=xxx |
56 | | -MILVUS_PASSWORD=xxx |
57 | | - |
58 | | -# pref mem |
| 41 | +MOS_EMBEDDER_BACKEND=universal_api # universal_api | ollama |
| 42 | +MOS_EMBEDDER_PROVIDER=openai # required when universal_api |
| 43 | +MOS_EMBEDDER_MODEL=bge-m3 # siliconflow → use BAAI/bge-m3 |
| 44 | +MOS_EMBEDDER_API_BASE=http://localhost:8000/v1 # required when universal_api |
| 45 | +MOS_EMBEDDER_API_KEY=EMPTY # required when universal_api |
| 46 | +OLLAMA_API_BASE=http://localhost:11434 # required when backend=ollama |
| 47 | +MOS_RERANKER_BACKEND=http_bge # http_bge | http_bge_strategy | cosine_local |
| 48 | +MOS_RERANKER_URL=http://localhost:8001 # required when backend=http_bge* |
| 49 | +MOS_RERANKER_MODEL=bge-reranker-v2-m3 # siliconflow → use BAAI/bge-reranker-v2-m3 |
| 50 | +MOS_RERANKER_HEADERS_EXTRA= # extra headers, JSON string |
| 51 | +MOS_RERANKER_STRATEGY=single_turn |
| 52 | +MOS_RERANK_SOURCE= # optional rerank scope, e.g., history/stream/custom |
| 53 | + |
| 54 | +## Internet search & preference memory |
| 55 | +ENABLE_INTERNET=false |
| 56 | +BOCHA_API_KEY= # required if ENABLE_INTERNET=true |
| 57 | +SEARCH_MODE=fast # fast | fine | mixture |
| 58 | +FAST_GRAPH=false |
| 59 | +BM25_CALL=false |
| 60 | +VEC_COT_CALL=false |
| 61 | +FINE_STRATEGY=rewrite # rewrite | recreate | deep_search |
| 62 | +ENABLE_ACTIVATION_MEMORY=false |
59 | 63 | ENABLE_PREFERENCE_MEMORY=true |
60 | | -RETURN_ORIGINAL_PREF_MEM=true |
| 64 | +PREFERENCE_ADDER_MODE=fast # fast | safe |
| 65 | +DEDUP_PREF_EXP_BY_TEXTUAL=false |
| 66 | + |
| 67 | +## Reader chunking |
| 68 | +MEM_READER_BACKEND=simple_struct # simple_struct | strategy_struct |
| 69 | +MEM_READER_CHAT_CHUNK_TYPE=default # default | content_length |
| 70 | +MEM_READER_CHAT_CHUNK_TOKEN_SIZE=1600 # tokens per chunk (default mode) |
| 71 | +MEM_READER_CHAT_CHUNK_SESS_SIZE=10 # sessions per chunk (default mode) |
| 72 | +MEM_READER_CHAT_CHUNK_OVERLAP=2 # overlap between chunks |
| 73 | + |
| 74 | +## Scheduler (MemScheduler / API) |
| 75 | +MOS_ENABLE_SCHEDULER=false |
| 76 | +MOS_SCHEDULER_TOP_K=10 |
| 77 | +MOS_SCHEDULER_ACT_MEM_UPDATE_INTERVAL=300 |
| 78 | +MOS_SCHEDULER_CONTEXT_WINDOW_SIZE=5 |
| 79 | +MOS_SCHEDULER_THREAD_POOL_MAX_WORKERS=10000 |
| 80 | +MOS_SCHEDULER_CONSUME_INTERVAL_SECONDS=0.01 |
| 81 | +MOS_SCHEDULER_ENABLE_PARALLEL_DISPATCH=true |
| 82 | +MOS_SCHEDULER_ENABLE_ACTIVATION_MEMORY=false |
| 83 | +API_SCHEDULER_ON=true |
| 84 | +API_SEARCH_WINDOW_SIZE=5 |
| 85 | +API_SEARCH_HISTORY_TURNS=5 |
| 86 | + |
| 87 | +## Graph / vector stores |
| 88 | +NEO4J_BACKEND=neo4j-community # neo4j-community | neo4j | nebular | polardb |
| 89 | +NEO4J_URI=bolt://localhost:7687 # required when backend=neo4j* |
| 90 | +NEO4J_USER=neo4j # required when backend=neo4j* |
| 91 | +NEO4J_PASSWORD=12345678 # required when backend=neo4j* |
| 92 | +NEO4J_DB_NAME=neo4j # required for shared-db mode |
| 93 | +MOS_NEO4J_SHARED_DB=false |
| 94 | +QDRANT_HOST=localhost |
| 95 | +QDRANT_PORT=6333 |
| 96 | +MILVUS_URI=http://localhost:19530 # required when ENABLE_PREFERENCE_MEMORY=true |
| 97 | +MILVUS_USER_NAME=root # same as above |
| 98 | +MILVUS_PASSWORD=12345678 # same as above |
| 99 | +NEBULAR_HOSTS=["localhost"] |
| 100 | +NEBULAR_USER=root |
| 101 | +NEBULAR_PASSWORD=xxxxxx |
| 102 | +NEBULAR_SPACE=shared-tree-textual-memory |
| 103 | +NEBULAR_WORKING_MEMORY=20 |
| 104 | +NEBULAR_LONGTERM_MEMORY=1000000 |
| 105 | +NEBULAR_USER_MEMORY=1000000 |
| 106 | + |
| 107 | +## Relational DB (user manager / PolarDB) |
| 108 | +MOS_USER_MANAGER_BACKEND=sqlite # sqlite | mysql |
| 109 | +MYSQL_HOST=localhost # required when backend=mysql |
| 110 | +MYSQL_PORT=3306 |
| 111 | +MYSQL_USERNAME=root |
| 112 | +MYSQL_PASSWORD=12345678 |
| 113 | +MYSQL_DATABASE=memos_users |
| 114 | +MYSQL_CHARSET=utf8mb4 |
| 115 | +POLAR_DB_HOST=localhost |
| 116 | +POLAR_DB_PORT=5432 |
| 117 | +POLAR_DB_USER=root |
| 118 | +POLAR_DB_PASSWORD=123456 |
| 119 | +POLAR_DB_DB_NAME=shared_memos_db |
| 120 | +POLAR_DB_USE_MULTI_DB=false |
| 121 | + |
| 122 | +## Redis (scheduler queue) — fill only if you want scheduler queues in Redis; otherwise in-memory queue is used |
| 123 | +REDIS_HOST=localhost # global Redis endpoint (preferred over MEMSCHEDULER_*) |
| 124 | +REDIS_PORT=6379 |
| 125 | +REDIS_DB=0 |
| 126 | +REDIS_PASSWORD= |
| 127 | +REDIS_SOCKET_TIMEOUT= |
| 128 | +REDIS_SOCKET_CONNECT_TIMEOUT= |
| 129 | +MEMSCHEDULER_REDIS_HOST= # fallback keys if not using the global ones |
| 130 | +MEMSCHEDULER_REDIS_PORT= |
| 131 | +MEMSCHEDULER_REDIS_DB= |
| 132 | +MEMSCHEDULER_REDIS_PASSWORD= |
| 133 | +MEMSCHEDULER_REDIS_TIMEOUT= |
| 134 | +MEMSCHEDULER_REDIS_CONNECT_TIMEOUT= |
| 135 | + |
| 136 | +## MemScheduler LLM |
| 137 | +MEMSCHEDULER_OPENAI_API_KEY= # LLM key for scheduler’s own calls (OpenAI-compatible); leave empty if scheduler not using LLM |
| 138 | +MEMSCHEDULER_OPENAI_BASE_URL= # Base URL for the above; can reuse OPENAI_API_BASE |
| 139 | +MEMSCHEDULER_OPENAI_DEFAULT_MODEL=gpt-4o-mini |
| 140 | + |
| 141 | +## Nacos (optional config center) |
| 142 | +NACOS_ENABLE_WATCH=false |
| 143 | +NACOS_WATCH_INTERVAL=60 |
| 144 | +NACOS_SERVER_ADDR= |
| 145 | +NACOS_DATA_ID= |
| 146 | +NACOS_GROUP=DEFAULT_GROUP |
| 147 | +NACOS_NAMESPACE= |
| 148 | +AK= |
| 149 | +SK= |
| 150 | + |
| 151 | +## DingTalk bot & OSS upload |
| 152 | +ENABLE_DINGDING_BOT=false # set true -> fields below required |
| 153 | +DINGDING_ACCESS_TOKEN_USER= |
| 154 | +DINGDING_SECRET_USER= |
| 155 | +DINGDING_ACCESS_TOKEN_ERROR= |
| 156 | +DINGDING_SECRET_ERROR= |
| 157 | +DINGDING_ROBOT_CODE= |
| 158 | +DINGDING_APP_KEY= |
| 159 | +DINGDING_APP_SECRET= |
| 160 | +OSS_ENDPOINT= # bot image upload depends on OSS |
| 161 | +OSS_REGION= |
| 162 | +OSS_BUCKET_NAME= |
| 163 | +OSS_ACCESS_KEY_ID= |
| 164 | +OSS_ACCESS_KEY_SECRET= |
| 165 | +OSS_PUBLIC_BASE_URL= |
| 166 | + |
| 167 | +## Logging / external sink |
| 168 | +CUSTOM_LOGGER_URL= |
| 169 | +CUSTOM_LOGGER_TOKEN= |
| 170 | +CUSTOM_LOGGER_WORKERS=2 |
| 171 | + |
| 172 | +## SDK / external client |
| 173 | +MEMOS_API_KEY= |
| 174 | +MEMOS_BASE_URL=https://memos.memtensor.cn/api/openmem/v1 |
0 commit comments