hy-memory 2.0.4__tar.gz → 2.0.5.dev1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {hy_memory-2.0.4/hy_memory.egg-info → hy_memory-2.0.5.dev1}/PKG-INFO +12 -10
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/README.md +11 -9
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/__init__.py +12 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/agent/abstractor.py +2 -1
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/agent/episode_summary.py +13 -3
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/client.py +668 -119
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/coding/chain_store.py +3 -1
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/coding/fact_reconciler.py +33 -2
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/coding/reconciler.py +33 -1
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/coding/store.py +98 -15
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/config.py +7 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/data/cache_base.py +31 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/data/cache_mysql.py +130 -16
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/data/cache_sqlite.py +236 -129
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/data/history_store.py +115 -71
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/data/vector_store_faiss.py +33 -8
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/intention.py +20 -5
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/reader_base.py +2 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/writer.py +1 -1
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/server.py +19 -6
- hy_memory-2.0.5.dev1/hy_memory/snapshot.py +150 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/utils/pipeline_log_writer.py +30 -3
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1/hy_memory.egg-info}/PKG-INFO +12 -10
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory.egg-info/SOURCES.txt +1 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/pyproject.toml +1 -1
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/LICENSE +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/MANIFEST.in +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/agent/__init__.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/agent/emotion_analyzer.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/agent/extractor.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/agent/intention_detector.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/agent/llm_provider.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/agent/mem_agent.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/agent/prompts_zh.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/agent/reconciler.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/agent/reflector.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/agent/tools/__init__.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/agent/tools/base.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/agent/tools/basic_profile.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/coding/__init__.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/coding/extractor.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/coding/judge.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/coding/lexical.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/coding/preproc.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/coding/prompts_zh.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/coding/types.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/coding/writer.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/core/__init__.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/core/embed_service.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/core/merger.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/core/scorer.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/core/workload.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/data/__init__.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/data/cache.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/data/graph_store.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/data/graph_store_base.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/data/graph_store_kuzu.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/data/graph_store_neo4j.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/data/kv_store.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/data/rdb.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/data/vector_store.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/data/vector_store_base.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/data/vector_store_chroma.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/data/vector_store_qdrant.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/inspector.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/metrics.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/models/__init__.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/models/memory.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/models/requests.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/__init__.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_graph/__init__.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_graph/projector.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_graph/rerank.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_graph/topic_summary.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/__init__.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/bm25.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/bm25_fastembed.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/candidate_guards.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/config.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/date_view.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/dedup.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/diversity.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/entities.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/entity_store.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/evolution.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/hierarchy_bundle.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/intent.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/lemmatize.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/local_rerank.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/memory_format.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/multi_seed_bundle.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/ner.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/profile_evidence.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/profile_owner_gate.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/query_expand.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/reconcile_retrieval.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/record_date_view.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/retrieval_clauses.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/rrf.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/scoring.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/series_tail_guard.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/session_episode.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/strength.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/supplemental_propositions.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/tag_index.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/temporal.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/topic_candidates.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/trace.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/underflow.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/_retrieval/user_level_l0.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/balanced_catalog.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/base.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/cross_domain_sweeper.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/reader.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/reader_hybrid.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/reader_legacy.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/registry.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/specific_supplement.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/system2_agent.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/system2_tools.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/system2_writer.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/pipelines/user_profile_scope.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/runtime.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/structure.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/utils/async_executor.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/utils/clone_references.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/utils/keyword_ties.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/utils/lang_detect.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/utils/log_setup.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/utils/metrics.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/utils/model_call_context.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/utils/pipeline_observability.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/utils/source_filter.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/utils/time_window.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/utils/token_count.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/utils/trace_file_writer.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory/utils/tracer.py +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory.egg-info/dependency_links.txt +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory.egg-info/requires.txt +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/hy_memory.egg-info/top_level.txt +0 -0
- {hy_memory-2.0.4 → hy_memory-2.0.5.dev1}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hy-memory
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.5.dev1
|
|
4
4
|
Summary: HY Memory - Industrial-grade dual-system cognitive memory framework
|
|
5
5
|
Author: alvinfei
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -83,7 +83,9 @@ English | [中文](README.zh.md)
|
|
|
83
83
|
|
|
84
84
|
## Latest News
|
|
85
85
|
|
|
86
|
-
* *<mark>[new]</mark>* 🔥🔥🔥 **[2026-10]**: 🚀 **
|
|
86
|
+
* *<mark>[new]</mark>* 🔥🔥🔥 **[2026-10]**: 🚀 **Open-sourced** quantized **FP8** (**[Hy-Memory-30B-A3B-FP8](https://huggingface.co/tencent/Hy-Memory-30B-A3B-FP8)**) and **GGUF** (**[Hy-Memory-30B-A3B-GGUF](https://huggingface.co/tencent/Hy-Memory-30B-A3B-GGUF)**) versions of **Hy-Memory-30B-A3B** on Hugging Face!
|
|
87
|
+
* *<mark>[new]</mark>* 🔥🔥🔥 **[2026-10]**: 📦 **Released [MemHub v1.0.4](https://github.com/Tencent-Hunyuan/Hy-Memory/releases/tag/v1.0.4)** and **[memhub-cli 1.0.5](https://www.npmjs.com/package/memhub-cli/v/1.0.5)**, with a signed macOS desktop app and verified macOS/Linux Runtimes!
|
|
88
|
+
* *<mark>[new]</mark>* 🔥🔥🔥 **[2026-10]**: 🚀 **Released** **Hy Memory 2.0 (`hy-memory==2.0.4`)** on [PyPI](https://pypi.org/project/hy-memory/2.0.4/) and open-sourced the **Hy-Memory** monorepo together with **[MemHub](memhub/README.md)**!
|
|
87
89
|
* *<mark>[new]</mark>* 🔥🔥🔥 **[2026-10]**: 🚀 **Open-sourced** **[Hy-Memory-30B-A3B](https://huggingface.co/tencent/Hy-Memory-30B-A3B)** on Hugging Face along with its [technical report](https://arxiv.org/abs/2610.22196) on attributed reinforcement learning for long-term memory writing!
|
|
88
90
|
* *<mark>[new]</mark>* 🔥🔥 **[2026-09]**: 📊 **Released** **[CMB: A Coding Memory Benchmark for Long-Horizon and Interleaved Coding Agents](docs/papers/CMB_A_Coding_Memory_Benchmark_for_Long_Horizon_and_Interleaved_Coding_Agents.pdf)** (submitted to **ICLR 2027**).
|
|
89
91
|
* *<mark>[new]</mark>* 🔥🔥 **[2026-08]**: 🎉 **Accepted** at **EMNLP 2026**: **[Memory Beyond Recall: A Dual-Process Cognitive Memory System for Self-Evolving LLM Agents](https://arxiv.org/abs/2606.09483)**!
|
|
@@ -114,13 +116,13 @@ Welcome to the **Hy Memory Research Family**, covering cognitive chat memory, lo
|
|
|
114
116
|
### 1. Installation
|
|
115
117
|
|
|
116
118
|
```bash
|
|
117
|
-
pip install hy-memory==2.0.
|
|
118
|
-
pip install "hy-memory[qdrant]==2.0.
|
|
119
|
-
pip install "hy-memory[faiss]==2.0.
|
|
120
|
-
pip install "hy-memory[graph]==2.0.
|
|
121
|
-
pip install "hy-memory[mysql]==2.0.
|
|
122
|
-
pip install "hy-memory[rerank]==2.0.
|
|
123
|
-
pip install "hy-memory[all]==2.0.
|
|
119
|
+
pip install hy-memory==2.0.4 # core (includes ChromaDB and Kuzu)
|
|
120
|
+
pip install "hy-memory[qdrant]==2.0.4" # + Qdrant
|
|
121
|
+
pip install "hy-memory[faiss]==2.0.4" # + FAISS
|
|
122
|
+
pip install "hy-memory[graph]==2.0.4" # + Neo4j
|
|
123
|
+
pip install "hy-memory[mysql]==2.0.4" # + MySQL cache
|
|
124
|
+
pip install "hy-memory[rerank]==2.0.4" # + local multilingual cross-encoder rerank
|
|
125
|
+
pip install "hy-memory[all]==2.0.4" # everything
|
|
124
126
|
```
|
|
125
127
|
|
|
126
128
|
### 2. Configuration
|
|
@@ -202,7 +204,7 @@ result = client.search(
|
|
|
202
204
|
|
|
203
205
|
result["facts"] # fact layer
|
|
204
206
|
result["experiences"] # experience layer
|
|
205
|
-
result["chain_block"] # coding only: version-evolution context
|
|
207
|
+
result["chain_block"] # coding only: version-evolution context (empty unless MEMORY_CODING_CHAIN_BLOCK_ENABLED)
|
|
206
208
|
```
|
|
207
209
|
|
|
208
210
|
### 5. Routing, Source Isolation & Advanced APIs
|
|
@@ -32,7 +32,9 @@ English | [中文](README.zh.md)
|
|
|
32
32
|
|
|
33
33
|
## Latest News
|
|
34
34
|
|
|
35
|
-
* *<mark>[new]</mark>* 🔥🔥🔥 **[2026-10]**: 🚀 **
|
|
35
|
+
* *<mark>[new]</mark>* 🔥🔥🔥 **[2026-10]**: 🚀 **Open-sourced** quantized **FP8** (**[Hy-Memory-30B-A3B-FP8](https://huggingface.co/tencent/Hy-Memory-30B-A3B-FP8)**) and **GGUF** (**[Hy-Memory-30B-A3B-GGUF](https://huggingface.co/tencent/Hy-Memory-30B-A3B-GGUF)**) versions of **Hy-Memory-30B-A3B** on Hugging Face!
|
|
36
|
+
* *<mark>[new]</mark>* 🔥🔥🔥 **[2026-10]**: 📦 **Released [MemHub v1.0.4](https://github.com/Tencent-Hunyuan/Hy-Memory/releases/tag/v1.0.4)** and **[memhub-cli 1.0.5](https://www.npmjs.com/package/memhub-cli/v/1.0.5)**, with a signed macOS desktop app and verified macOS/Linux Runtimes!
|
|
37
|
+
* *<mark>[new]</mark>* 🔥🔥🔥 **[2026-10]**: 🚀 **Released** **Hy Memory 2.0 (`hy-memory==2.0.4`)** on [PyPI](https://pypi.org/project/hy-memory/2.0.4/) and open-sourced the **Hy-Memory** monorepo together with **[MemHub](memhub/README.md)**!
|
|
36
38
|
* *<mark>[new]</mark>* 🔥🔥🔥 **[2026-10]**: 🚀 **Open-sourced** **[Hy-Memory-30B-A3B](https://huggingface.co/tencent/Hy-Memory-30B-A3B)** on Hugging Face along with its [technical report](https://arxiv.org/abs/2610.22196) on attributed reinforcement learning for long-term memory writing!
|
|
37
39
|
* *<mark>[new]</mark>* 🔥🔥 **[2026-09]**: 📊 **Released** **[CMB: A Coding Memory Benchmark for Long-Horizon and Interleaved Coding Agents](docs/papers/CMB_A_Coding_Memory_Benchmark_for_Long_Horizon_and_Interleaved_Coding_Agents.pdf)** (submitted to **ICLR 2027**).
|
|
38
40
|
* *<mark>[new]</mark>* 🔥🔥 **[2026-08]**: 🎉 **Accepted** at **EMNLP 2026**: **[Memory Beyond Recall: A Dual-Process Cognitive Memory System for Self-Evolving LLM Agents](https://arxiv.org/abs/2606.09483)**!
|
|
@@ -63,13 +65,13 @@ Welcome to the **Hy Memory Research Family**, covering cognitive chat memory, lo
|
|
|
63
65
|
### 1. Installation
|
|
64
66
|
|
|
65
67
|
```bash
|
|
66
|
-
pip install hy-memory==2.0.
|
|
67
|
-
pip install "hy-memory[qdrant]==2.0.
|
|
68
|
-
pip install "hy-memory[faiss]==2.0.
|
|
69
|
-
pip install "hy-memory[graph]==2.0.
|
|
70
|
-
pip install "hy-memory[mysql]==2.0.
|
|
71
|
-
pip install "hy-memory[rerank]==2.0.
|
|
72
|
-
pip install "hy-memory[all]==2.0.
|
|
68
|
+
pip install hy-memory==2.0.4 # core (includes ChromaDB and Kuzu)
|
|
69
|
+
pip install "hy-memory[qdrant]==2.0.4" # + Qdrant
|
|
70
|
+
pip install "hy-memory[faiss]==2.0.4" # + FAISS
|
|
71
|
+
pip install "hy-memory[graph]==2.0.4" # + Neo4j
|
|
72
|
+
pip install "hy-memory[mysql]==2.0.4" # + MySQL cache
|
|
73
|
+
pip install "hy-memory[rerank]==2.0.4" # + local multilingual cross-encoder rerank
|
|
74
|
+
pip install "hy-memory[all]==2.0.4" # everything
|
|
73
75
|
```
|
|
74
76
|
|
|
75
77
|
### 2. Configuration
|
|
@@ -151,7 +153,7 @@ result = client.search(
|
|
|
151
153
|
|
|
152
154
|
result["facts"] # fact layer
|
|
153
155
|
result["experiences"] # experience layer
|
|
154
|
-
result["chain_block"] # coding only: version-evolution context
|
|
156
|
+
result["chain_block"] # coding only: version-evolution context (empty unless MEMORY_CODING_CHAIN_BLOCK_ENABLED)
|
|
155
157
|
```
|
|
156
158
|
|
|
157
159
|
### 5. Routing, Source Isolation & Advanced APIs
|
|
@@ -55,6 +55,13 @@ except Exception:
|
|
|
55
55
|
from .client import HyMemoryClient
|
|
56
56
|
from .inspector import MemoryInspector
|
|
57
57
|
from .runtime import SharedRuntime
|
|
58
|
+
from .snapshot import (
|
|
59
|
+
DataPlaneRestore,
|
|
60
|
+
DataPlaneSnapshot,
|
|
61
|
+
DataPlaneSnapshotRejected,
|
|
62
|
+
restore_local_data_plane,
|
|
63
|
+
snapshot_local_data_plane,
|
|
64
|
+
)
|
|
58
65
|
|
|
59
66
|
# ====== 配置 ======
|
|
60
67
|
from .config import MemoryConfig
|
|
@@ -111,6 +118,11 @@ __all__ = [
|
|
|
111
118
|
"HyMemoryClient",
|
|
112
119
|
"MemoryInspector",
|
|
113
120
|
"SharedRuntime",
|
|
121
|
+
"DataPlaneRestore",
|
|
122
|
+
"DataPlaneSnapshot",
|
|
123
|
+
"DataPlaneSnapshotRejected",
|
|
124
|
+
"restore_local_data_plane",
|
|
125
|
+
"snapshot_local_data_plane",
|
|
114
126
|
# 配置
|
|
115
127
|
"MemoryConfig",
|
|
116
128
|
# Embedding 端点覆盖
|
|
@@ -22,7 +22,8 @@ logger = logging.getLogger(__name__)
|
|
|
22
22
|
|
|
23
23
|
# ================================================================
|
|
24
24
|
# 数据结构
|
|
25
|
-
#
|
|
25
|
+
# ================================================================
|
|
26
|
+
@dataclass
|
|
26
27
|
class SessionSummaryResult:
|
|
27
28
|
"""Session 摘要结果 (V2)"""
|
|
28
29
|
success: bool
|
|
@@ -39,6 +39,7 @@ import logging
|
|
|
39
39
|
import hashlib
|
|
40
40
|
import json
|
|
41
41
|
import re
|
|
42
|
+
from datetime import datetime
|
|
42
43
|
from typing import Any, Dict, List, Optional
|
|
43
44
|
import uuid
|
|
44
45
|
|
|
@@ -252,6 +253,17 @@ def _series_episode_id(
|
|
|
252
253
|
return str(uuid.uuid5(uuid.NAMESPACE_URL, "hy-memory:series-episode:" + raw))
|
|
253
254
|
|
|
254
255
|
|
|
256
|
+
def _series_memory_at(times: List[int]) -> Optional[datetime]:
|
|
257
|
+
"""Earliest member timestamp as the same local wall clock it came from.
|
|
258
|
+
|
|
259
|
+
``_node_timestamp`` produces ``datetime.timestamp()`` values. Reading them
|
|
260
|
+
back with ``utcfromtimestamp`` turns them into a naive *UTC* datetime, which
|
|
261
|
+
the vector payload later re-interprets as local time and shifts by the
|
|
262
|
+
machine's UTC offset.
|
|
263
|
+
"""
|
|
264
|
+
return datetime.fromtimestamp(min(times)) if times else None
|
|
265
|
+
|
|
266
|
+
|
|
255
267
|
def _node_timestamp(node: Any) -> Optional[int]:
|
|
256
268
|
value = getattr(node, "memory_at", None) or getattr(node, "gmt_created", None)
|
|
257
269
|
if value is None:
|
|
@@ -974,8 +986,6 @@ async def finalize_series_episode_containers(
|
|
|
974
986
|
Stored text is only a title plus a structural intro. Exact L2 bodies remain in
|
|
975
987
|
their canonical nodes and are referenced by ID from dated timeline segments.
|
|
976
988
|
"""
|
|
977
|
-
from datetime import datetime
|
|
978
|
-
|
|
979
989
|
from ..models.memory import MemoryLayer, MemoryNode, MemoryStatus, SourceType
|
|
980
990
|
from ..pipelines._retrieval.session_episode import (
|
|
981
991
|
add_parent_episode_membership,
|
|
@@ -1061,7 +1071,7 @@ async def finalize_series_episode_containers(
|
|
|
1061
1071
|
segment["memory_at"] for segment in plan["timeline"]
|
|
1062
1072
|
if segment.get("memory_at") is not None
|
|
1063
1073
|
]
|
|
1064
|
-
memory_at =
|
|
1074
|
+
memory_at = _series_memory_at(times)
|
|
1065
1075
|
content = f"{plan['title']}. {plan['intro']}".strip()
|
|
1066
1076
|
series = MemoryNode(
|
|
1067
1077
|
node_id=series_id, user_id=user_id,
|