Hy Memory SDK 环境变量参考
本文只列当前代码实际读取、且对公开 SDK 功能有直接作用的配置。所有变量均可通过进程环境
或 .env 设置;未设置时使用表中的默认值。
核心配置
| 变量 |
默认值 |
说明 |
MEMORY_MODE |
pro |
lite / pro / ultra |
MEMORY_DATA_DIR |
~/.hy_memory |
本地数据、缓存和日志根目录 |
lite:纯 Embedding 写入,Graph 强制关闭。
pro:LLM 提取与 reconcile;Graph 由 MEMORY_ENABLE_GRAPH 控制。
ultra:具备 pro 能力并强制启用 Graph;System 2 由调用方显式执行
client.evolve(),不会在 add() 后自动入队。
LLM
| 变量 |
默认值 |
说明 |
MEMORY_LLM_PROVIDER |
openai |
OpenAI-compatible Chat Completions 协议 |
MEMORY_LLM_MODEL |
gpt-4.1-nano |
模型名 |
MEMORY_LLM_API_KEY |
— |
回退:LLM_API_KEY、OPENAI_API_KEY |
MEMORY_LLM_BASE_URL |
— |
回退到 LLM_BASE_URL |
MEMORY_LLM_TEMPERATURE |
0.1 |
统一温度;none / omit / 空值表示不发送 |
MEMORY_LLM_OMIT_TEMPERATURE |
false |
true 时完全不发送 temperature |
MEMORY_LLM_MAX_TOKENS |
1024 |
通用生成上限 |
MEMORY_AGENT_MAX_TOKENS |
2000 |
Extract/Reconcile/System 2 等 Agent 调用上限 |
MEMORY_LLM_TIMEOUT |
180 |
单次超时,秒 |
MEMORY_LLM_MAX_RETRIES |
5 |
最大重试次数 |
MEMORY_LLM_RETRY_DELAY |
1.0 |
重试间隔,秒 |
MEMORY_LLM_EXTRA_HEADERS |
— |
JSON object,附加 HTTP headers |
MEMORY_LLM_EXTRA_BODY |
— |
JSON object,附加请求 body |
MEMORY_FEW_SHOT_ENABLED |
false |
为内置 Extractor/Reconcile prompt 附加 few-shot |
MEMORY_ENABLE_INTENTION |
true |
是否抽取并写入 L7 Intention |
MEMORY_LOG_LLM_CONTENT |
false |
true 才允许日志记录完整 prompt/response |
Embedding
| 变量 |
默认值 |
说明 |
MEMORY_EMBEDDER_PROVIDER |
openai |
OpenAI-compatible Embeddings 协议 |
MEMORY_EMBEDDER_MODEL |
text-embedding-3-small |
模型名 |
MEMORY_EMBEDDER_API_KEY |
— |
回退:EMBEDDING_API_KEY、OPENAI_API_KEY |
MEMORY_EMBEDDER_BASE_URL |
— |
回退到 EMBEDDING_BASE_URL |
MEMORY_EMBEDDING_DIMS |
1536 |
Collection 维度;应与模型输出一致 |
MEMORY_EMBEDDER_TIMEOUT |
15 |
单次超时,秒 |
MEMORY_EMBEDDER_MAX_RETRIES |
2 |
最大重试次数 |
MEMORY_EMBEDDER_RETRY_DELAY |
0.3 |
重试间隔,秒 |
MEMORY_EMBEDDER_EXTRA_HEADERS |
— |
JSON object,附加 HTTP headers |
MEMORY_EMBEDDER_EXTRA_BODY |
— |
JSON object,附加请求 body |
Vector Store
| 变量 |
默认值 |
说明 |
MEMORY_VECTOR_STORE |
chroma |
chroma / qdrant / faiss |
MEMORY_COLLECTION_NAME |
agent_memories |
主 collection 名 |
MEMORY_PERSIST_DIR |
{DATA_DIR}/data/vector_db |
本地持久化目录 |
MEMORY_VECTOR_HOST |
— |
Qdrant 等远程后端主机 |
MEMORY_VECTOR_PORT |
— |
远程后端端口 |
MEMORY_VECTOR_API_KEY |
— |
远程后端 API Key |
hybrid 的关键词候选依赖后端实现。Chroma 会退化为纯向量;Qdrant 可使用 |
|
|
| sparse/BM25 候选。 |
|
|
Graph Store
| 变量 |
默认值 |
说明 |
MEMORY_ENABLE_GRAPH |
false |
只在 pro 生效;lite 强制关,ultra 强制开 |
MEMORY_GRAPH_PROVIDER |
kuzu |
kuzu / neo4j |
MEMORY_GRAPH_DB_PATH |
{DATA_DIR}/data/kuzu_db |
Kuzu 数据库路径 |
NEO4J_URL |
bolt://localhost:7687 |
Neo4j Bolt URL;可回退到 MEMGRAPH_URL |
NEO4J_USERNAME |
— |
可回退到 MEMGRAPH_USERNAME |
NEO4J_PASSWORD |
— |
可回退到 MEMGRAPH_PASSWORD |
NEO4J_DATABASE |
neo4j |
Neo4j database |
Graph 写入和读侧 Rerank 的高级开关见 pro_graph_design.md。
Cache
| 变量 |
默认值 |
说明 |
MEMORY_CACHE_BACKEND |
sqlite |
sqlite / mysql;不支持 Redis |
MEMORY_CACHE_DB_PATH |
{DATA_DIR}/data/cache.db |
SQLite 文件路径 |
MEMORY_MYSQL_HOST |
localhost |
MySQL 主机 |
MEMORY_MYSQL_PORT |
3306 |
MySQL 端口 |
MEMORY_MYSQL_USER |
root |
MySQL 用户 |
MEMORY_MYSQL_PASSWORD |
— |
MySQL 密码 |
MEMORY_MYSQL_DATABASE |
hy_memory |
MySQL 数据库 |
MEMORY_MYSQL_POOL_SIZE |
10 |
连接池大小 |
MEMORY_MYSQL_POOL_RECYCLE |
3600 |
连接回收周期,秒 |
写入、场景与 Query Rewrite
| 变量 |
默认值 |
说明 |
RECONCILE_ENABLED |
true |
是否执行候选检索和 reconcile |
MEMORY_ENABLE_SEARCH_QUERY |
false |
Reconcile 前是否额外用 LLM 生成检索 query |
MEMORY_EXTRACT_HISTORY_TURNS |
5 |
本次输入之外注入 Extractor 的历史 user-turn 数 |
MEMORY_CODING_ENABLED |
true |
是否启用 working/coding 独立链路 |
MEMORY_CODING_DB_PATH |
{DATA_DIR}/data/coding_memory.db |
生产力记忆 SQLite 路径 |
MEMORY_CODING_TOOL_RESULT_MAX_BYTES |
2048 |
单条 tool result 的最大字节数 |
MEMORY_CODING_VERBATIM_FALLBACK_ENABLED |
false |
无抽取结果时是否把渲染对话保存成 working fact |
MEMORY_ENABLE_QUERY_REWRITE |
false |
Coding 关闭时控制 default 多-query 是否 rewrite;Coding 开启时多-query 无论此值都会分类并 rewrite |
MEMORY_QUERY_REWRITE_MAX_CHARS |
1000 |
default 多-query rewrite 长度保护 |
默认单 query Search 是零 LLM light search。search_mode=agentic 下,单 query、多 queries
都会执行一次合并的场景判断、rewrite 和时间解析。default 多-query 超过长度保护时不做
rewrite;Coding 开启时只分类,关闭时零 LLM。
System 2 与 User Profile
| 变量 |
默认值 |
说明 |
SWEEPER_ENABLED |
true |
Ultra evolve 是否执行 cross-domain sweeper |
MEMORY_SUMMARY_ENABLED_IN_SYS2 |
false |
System 2 material 是否包含 L3 Summary |
MEMORY_EVOLING_BALANCED_CATALOG_ENABLED |
false |
Ultra evolve 是否生成 balanced catalog |
MEMORY_EVOLING_BALANCED_CATALOG_MAX_FACTS |
120 |
单次最多审阅的 L2 数 |
MEMORY_EVOLING_BALANCED_CATALOG_CONTENT_CHARS |
180 |
Prompt 中每条 L2 的字符上限 |
MEMORY_EVOLING_BALANCED_CATALOG_MAX_TOKENS |
512 |
Catalog 选择输出上限 |
MEMORY_EVOLING_SPECIFIC_SUPPLEMENT_ENABLED |
false |
Ultra evolve 是否生成 supplement |
MEMORY_USER_PROFILE_BALANCED_CATALOG_ENABLED |
false |
get_user_profile() 是否附加 active catalog |
MEMORY_USER_PROFILE_SPECIFIC_SUPPLEMENT_ENABLED |
false |
是否附加 active supplement |
Catalog 和 supplement 只由 user_id 确定,不作为普通 L6 出现在 Search,也不占
schema_limit。
Cross-domain Sweeper
| 变量 |
默认值 |
说明 |
MEMORY_CROSS_DOMAIN_ENABLE |
true |
是否执行 cross-domain 碰撞扫描 |
MEMORY_CROSS_DOMAIN_MIN_BASICS |
5 |
进入通用碰撞扫描所需的最低 schema 数 |
MEMORY_CROSS_DOMAIN_BEH_THRESHOLD |
0.70 |
行为向量相似度阈值 |
MEMORY_CROSS_DOMAIN_CON_THRESHOLD |
0.60 |
内容向量的跨域差异阈值 |
Reader 与本地 Rerank
| 变量 |
默认值 |
说明 |
HY_MEMORY_READER |
legacy |
legacy(向量)/ hybrid(向量 + 后端关键词候选) |
MEMORY_HYBRID_V2_VDB_WEIGHT_BM25 |
0.35 |
Hybrid BM25 加成权重;当前仍保留旧前缀 |
MEMORY_LOCAL_RERANK_ENABLED |
false |
两个 Reader 共用的本地 cross-encoder Rerank |
MEMORY_LOCAL_RERANK_MODEL |
nreimers/mmarco-mMiniLMv2-L6-H384-v1 |
小型多语言 Hugging Face 模型名或本地路径 |
MEMORY_LOCAL_RERANK_DEVICE |
auto |
auto / cpu / cuda 等 device |
MEMORY_LOCAL_RERANK_BATCH_SIZE |
16 |
一次 forward 的 batch,不是请求并发限制 |
MEMORY_LOCAL_RERANK_MAX_LENGTH |
512 |
Tokenizer 最大长度 |
MEMORY_LOCAL_RERANK_POOL_FACTOR |
3 |
候选池相对最终 limit 的倍数 |
HY_MEMORY_TAG_INDEX_WRITE |
true |
是否维护写侧 Tag Index |
SDK 不设置 Rerank Search 并发上限。开启后模型在 HyMemoryClient 初始化阶段加载并
执行一次预热;初始化失败会直接阻止 Client ready。运行中的单次推理异常仍 fail-open。
详见 hy_memory_search_skill.md。
Episode 与摘要
| 变量 |
默认值 |
说明 |
MEMORY_EPISODE_GAP_SECONDS |
1800 |
超过该间隔时开启新 episode |
MEMORY_EPISODE_MAX_MEMORIES |
50 |
单 episode 的 user-side 记忆上限 |
MEMORY_EPISODE_SUMMARY_ENABLED |
false |
Episode 结束时是否生成 L3 Summary |
MEMORY_EPISODE_SUMMARY_MIN_MEMORIES |
3 |
Summary 最低记忆数 |
MEMORY_EPISODE_RECALL_ENABLED |
false |
Search 是否使用 Episode 关系加权 |
MEMORY_EPISODE_RECALL_WEIGHT |
0.7 |
Episode 结构支持权重 |
MEMORY_TOPIC_SUMMARY_ENABLED |
false |
是否生成 Topic Summary |
MEMORY_TOPIC_SUMMARY_MIN_MEMORIES |
5 |
Topic Summary 最低记忆数 |
MEMORY_TOPIC_SUMMARY_STEP |
5 |
Topic 新增多少条后重新生成 Summary |
MEMORY_SESSION_EPISODE_ENABLED |
false |
是否允许 finalize_session() 归档指定 session |
MEMORY_SESSION_EPISODE_CONTEXT_ENABLED |
false |
Reader 是否召回 Session Episode 上下文 |
MEMORY_SESSION_EPISODE_LIMIT |
5 |
Session Episode 候选上限 |
MEMORY_SESSION_EPISODE_FACT_LIMIT |
2 |
每个 Session Episode 附带事实数 |
Recall 辅助能力
| 变量 |
默认值 |
说明 |
MEMORY_RECALL_STRENGTH_ENABLED |
false |
是否按访问次数和闲置时长重排 normal 结果 |
MEMORY_RECALL_STRENGTH_TAU |
180 |
衰减时间常数,天 |
MEMORY_RECALL_ACCESS_TRACKING |
true |
Strength 开启时是否回写访问信息 |
MEMORY_ENTITY_STORE_ENABLED |
false |
是否维护独立 entity collection;当前 Reader 不直接读取 |
旧数据可调用当前公开方法 client.build_entity_store(user_id) 补建 Entity Store。
日志、Trace 与历史
| 变量 |
默认值 |
说明 |
MEMORY_LOG_LEVEL |
INFO |
运行日志级别 |
MEMORY_LOG_FORMAT |
text |
text / json |
MEMORY_LOG_DIR |
— |
统一日志根目录 |
MEMORY_TRACE_LOG_DIR |
— |
JSONL 日志目录的兼容旧名;优先使用 MEMORY_LOG_DIR |
MEMORY_PIPELINE_LOG_ENABLED |
true |
是否写 pipeline JSONL 日志({MEMORY_LOG_DIR}/<subdir>/<date>.log);false 完全不写 |
MEMORY_PIPELINE_TRACE_ENABLED |
true |
是否写入 cache 的 pipeline trace 表 |
MEMORY_MEMORY_OPERATIONS_ENABLED |
false |
是否写入 memory operation 审计记录 |
MEMORY_HISTORY_ENABLE |
true |
是否启用历史记录 |
MEMORY_HISTORY_DB_PATH |
{DATA_DIR}/data/history.db |
History SQLite 路径 |
MEMORY_HISTORY_RECORD_SEARCHES |
false |
是否记录 Search 操作 |
MEMORY_CODING_CHAIN_REPO_ROOT |
— |
coding 版本链读取本地 Git diff 的仓库根目录 |
MEMORY_CODING_CHAIN_BLOCK_ENABLED |
false |
search(scene=coding) 是否注入版本演进链块(diff / chain_block);默认关 |
HTTP Server
| 变量 |
默认值 |
说明 |
HY_MEMORY_SERVER_HOST |
127.0.0.1 |
Server 监听地址 |
HY_MEMORY_SERVER_PORT |
19527 |
Server 监听端口 |
历史配置不会生效;当前支持项以本页表格和 .env.example 为准。Cache backend 当前仅支持
sqlite 和 mysql。