MoonBit-memory - a local agent self-evolving memory system, ported from Python to MoonBit.
Dependencies
MoonBit 是由中国团队开发的云与边缘端编程语言,支持 native / wasm-gc / js 多后端编译,具备快速、简洁、AI 原生的特性。
| 操作 | 说明 |
|---|---|
| remember | 写入记忆:校验 → 分类 → 去重 → 矛盾检测 → 持久化 |
| recall | 检索记忆:分级调动,按 相似度 × 优先级 × 时效 排序返回 Top-K |
| evolve | 自进化:重算优先级,久未访问且低价值者标记 deprecated |
| stats | 分类统计与内存总量 |
| list | 转储全部记忆条目 |
# 构建
moon build --target wasm-gc # 无需 C 编译器,可浏览器运行
moon build --target native # 需要 MSVC/gcc/clang,原生性能
# CLI
moon run cmd/main --target wasm-gc -- remember "用户偏好中文技术文档" --type preference
moon run cmd/main --target wasm-gc -- recall "术语怎么处理"
moon run cmd/main --target wasm-gc -- evolve
moon run cmd/main --target wasm-gc -- stats
moon run cmd/main --target wasm-gc -- list
# 启用加密
moon run cmd/main --target wasm-gc -- remember "敏感内容" --passphrase secret
# 运行测试(6 项,全部通过)
moon test --target wasm-gcWindows native 构建需安装 MSVC(Visual Studio Build Tools)。无 C 编译器时可用 --target wasm-gc 替代。
MoonBit-memory/
├── models.mbt # 数据模型:MemoryType / MemoryStatus / MemoryEntry
├── similarity.mbt # 文本相似度:tokenize / embed / cosine(零依赖)
├── modules.mbt # 核心算法:分类 / 去重 / 矛盾检测 / 自进化 / 检索
├── storage.mbt # 三级存储:meta_index + 分类目录 + 条目文件(Ref 共享状态)
├── crypto.mbt # 可选 XOR 加密(与 Python 行为一致)
├── system.mbt # MemorySystem 门面:remember / recall / evolve / stats
├── system_test.mbt # 6 项测试(对应 Python test_system.py)
├── cmd/main/ # CLI 入口(兼容 Python cli.py 的参数约定)
│ ├── main.mbt
│ └── moon.pkg
├── moon.mod # 模块元信息
└── moon.pkg # 包依赖声明| 维度 | Python 原型 | MoonBit 版 |
|---|---|---|
| 运行方式 | 解释执行(CPython) | 编译为原生二进制 / wasm |
| 依赖 | Python 3.10+ 标准库 | 零外部依赖(仅 moonbitlang/x) |
| ID 生成 | uuid4().hex[:12] | 时间戳 + 单调计数器 |
| 时间戳 | ISO-8601 字符串 | epoch 毫秒(Int64) |
| 共享状态 | 可变对象引用 | @ref.Ref[Map[...]] 细胞引用 |
| JSON 序列化 | json.dumps / json.loads | to_json().stringify() / @json.parse + from_json |
| 文件 I/O | open() / os 模块 | @fs.read_file_to_string / write_string_to_file |
| 加密 | cryptography.Fernet / XOR 回退 | XOR 码点运算(与 Python 回退行为一致) |
| 文件 | 对应 Python | 职责 |
|---|---|---|
| models.mbt | models.py | MemoryType, MemoryStatus, MemoryEntry 数据模型 |
| similarity.mbt | similarity.py | 分词 → TF 向量 → 余弦相似度 |
| crypto.mbt | crypto.py | 可选本地加密(XOR 码点) |
| storage.mbt | storage.py | 三级 JSON 存储(Ref 共享状态) |
| modules.mbt | modules.py | 分类 / 去重 / 矛盾检测 / 自进化 / 分级检索 |
| system.mbt | system.py | MemorySystem 门面 |
| cmd/main/main.mbt | cli.py / __main__.py | 命令行接口 |
fn MemoryEntry::create(content : String, mtype : MemoryType, source? : String, confidence? : Double, tags? : Array[String]) -> MemoryEntryfn MemorySystem::age_entry(self : MemorySystem, id : String, last_accessed : Int64, access_count : Int) -> Bool raise IOErrorfn MemorySystem::recall(self : MemorySystem, query : String, top_k? : Int) -> Array[Json] raise IOErrorfn MemorySystem::remember(self : MemorySystem, content : String, type_hint? : String, source? : String, interactive? : Bool, conflict_policy? : String) -> Map[String, Json] raise IOErrorpub struct Storage {
root : String
crypto : CryptoProvider
index_path : String
entries : Ref[Map[String, MemoryEntry]]
}fn detect_conflict(new_entry : MemoryEntry, candidates : Array[MemoryEntry], threshold? : Double) -> Array[MemoryEntry]fn find_duplicate(content : String, candidates : Array[MemoryEntry], threshold? : Double) -> MemoryEntry?fn graded_retrieval(storage : Storage, query : String, top_k? : Int, now? : Int64) -> Array[(MemoryEntry, Double)]fn recompute_priority(entry : MemoryEntry, now : Int64, w? : (Double, Double, Double), half_life? : Double) -> Doublefn similarity(text_a : String, text_b : String) -> Doublefn validate_input(content : String) -> (Bool, String)MoonBit-memory - a local agent self-evolving memory system, ported from Python to MoonBit.
Dependencies