引入 A_Memorix 插件 v2.0.0:新增大量运行时组件、存储/模式更新、检索能力提升、管理工具、导入/调优工作流以及相关文档。关键新增内容包括:lifecycle_orchestrator、SDKMemoryKernel/运行时初始化器、新的存储层与 metadata_store 变更(SCHEMA_VERSION v8)、检索增强(双路径检索、图关系召回、稀疏 BM25),以及多种工具服务(episode/person_profile/relation/segmentation/tuning/search execution)。同时新增 Web 导入/摘要导入器及大量维护脚本。还更新了插件清单、embedding API 适配器、plugin.py、requirements/pyproject,以及主入口文件,使新插件接入项目。该变更为 2.0.0 版本发布做好准备,实现统一的 SDK Tool 接口并扩展整体运行能力。
32 KiB
更新日志 (Changelog)
[2.0.0] - 2026-03-18
本次 2.0.0 为架构收敛版本,主线是 SDK Tool 接口统一、管理工具能力补齐、元数据 schema 升级到 v8 与 文档口径同步到 2.0.0。
🔖 版本信息
- 插件版本:
1.0.1→2.0.0 - 元数据 schema:
7→8
🚀 重点能力
- Tool 接口统一:
plugin.py统一通过SDKMemoryKernel对外提供 Tool 能力。- 保留基础工具:
search_memory / ingest_summary / ingest_text / get_person_profile / maintain_memory / memory_stats。 - 新增管理工具:
memory_graph_admin / memory_source_admin / memory_episode_admin / memory_profile_admin / memory_runtime_admin / memory_import_admin / memory_tuning_admin / memory_v5_admin / memory_delete_admin。
- 检索与写入治理增强:
- 检索/写入链路支持
respect_filter + user_id/group_id的聊天过滤语义。 maintain_memory支持freeze与recycle_bin,并统一到内核维护流程。
- 检索/写入链路支持
- 导入与调优能力收敛:
memory_import_admin提供任务化导入能力(上传、粘贴、扫描、OpenIE、LPMM 转换、时序回填、MaiBot 迁移)。memory_tuning_admin提供检索调优任务(创建、轮次查看、回滚、apply_best、报告导出)。
- V5 与删除运维:
- 新增
memory_v5_admin(reinforce/weaken/remember_forever/forget/restore/status)。 - 新增
memory_delete_admin(preview/execute/restore/list/get/purge),支持操作审计与恢复。
- 新增
🛠️ 存储与运行时
metadata_store升级到SCHEMA_VERSION = 8。- 新增/完善外部引用与运维记录能力(包括
external_memory_refs、memory_v5_operations、delete_operations相关数据结构)。 SDKMemoryKernel增加统一后台任务编排(自动保存、Episode pending 处理、画像刷新、记忆维护)。
📚 文档同步
README.md、QUICK_START.md、CONFIG_REFERENCE.md、IMPORT_GUIDE.md已切换到2.0.0口径。- 文档主入口统一为 SDK Tool 工作流,不再以旧版 slash 命令作为主说明路径。
[1.0.1] - 2026-03-07
本次 1.0.1 为 1.0.0 发布后的热修复版本,主线是 图谱 WebUI 取数稳定性修复、大图过滤性能修复 与 真实检索调优链路稳定性修复。
🔖 版本信息
- 插件版本:
1.0.0→1.0.1 - 配置版本:
4.1.0(不变)
🛠️ 代码修复
- 图谱接口稳定性:
- 修复
/api/graph在“磁盘已有图文件但运行时尚未装载入内存”场景下返回空图的问题,接口现在会自动补加载持久化图数据。 - 修复问题数据集下 WebUI 打开图谱页时看似“没有任何节点”的现象;根因不是图数据消失,而是后端过滤路径过慢。
- 修复
- 图谱过滤性能:
- 优化
/api/graph?exclude_leaf=true的叶子过滤逻辑,改为预计算 hub 邻接关系,不再对每个节点反复做高成本边权查询。 - 优化
GraphStore.get_neighbors()并补充入邻居访问能力,避免稠密矩阵展开导致的大图性能退化。
- 优化
- 检索调优稳定性:
- 修复真实调优任务在构建运行时配置时深拷贝
plugin.config,误复制注入的存储实例并触发cannot pickle '_thread.RLock' object的问题。 - 调优评估改为跳过顶层运行时实例键,仅保留纯配置字段后再附加运行时依赖,真实 WebUI 调优任务可正常启动。
- 修复真实调优任务在构建运行时配置时深拷贝
📚 文档同步
- 同步更新
README.md、CHANGELOG.md、CONFIG_REFERENCE.md与版本元数据(plugin.py、__init__.py、_manifest.json)。 - README 新增
v1.0.1修复说明,并补充“调优前先做 runtime self-check”的建议。
[1.0.0] - 2026-03-06
本次 1.0.0 为主版本升级,主线是 运行时架构模块化、Episode 情景记忆闭环、聚合检索与图召回增强、离线迁移 / 运行时自检 / 检索调优中心。
🔖 版本信息
- 插件版本:
0.7.0→1.0.0 - 配置版本:
4.1.0(不变)
🚀 重点能力
- 运行时重构:
plugin.py大幅瘦身,生命周期、后台任务、请求路由、检索运行时初始化拆分到core/runtime/*。- 配置 schema 抽离到
core/config/plugin_config_schema.py,_manifest.json同步扩展新配置项。
- 检索与查询增强:
KnowledgeQueryTool拆分为 query mode + orchestrator,新增长aggregate/episode查询模式。- 新增图辅助关系召回、统一 forward/runtime 构建与请求去重桥接。
- Episode / 运维能力:
metadata_storeschema 升级到SCHEMA_VERSION = 7,新增episodes/episode_paragraphs/ rebuild queue 等结构。- 新增
release_vnext_migrate.py、runtime_self_check.py、rebuild_episodes.py与 Web 检索调优页web/tuning.html。
📚 文档同步
- 版本号同步到
plugin.py、__init__.py、_manifest.json、README.md与CONFIG_REFERENCE.md。 - 新增
RELEASE_SUMMARY_1.0.0.md
[0.7.0] - 2026-03-04
本次 0.7.0 为中版本升级,主线是 关系向量化闭环(写入 + 状态机 + 回填 + 审计)、检索/命令链路增强 与 导入任务能力补齐。
🔖 版本信息
- 插件版本:
0.6.1→0.7.0 - 配置版本:
4.1.0(不变)
🚀 重点能力
- 关系向量化闭环:
- 新增统一关系写入服务
RelationWriteService(metadata 先写、向量后写,失败进入状态机而非回滚主数据)。 relations侧补齐vector_state/retry_count/last_error/updated_at等状态字段,支持none/pending/ready/failed统一治理。- 插件新增后台回填循环与统计接口,可持续修复关系向量缺失并暴露覆盖率指标。
- 新增统一关系写入服务
- 检索与命令链路增强:
- 检索主链继续收敛到
search/timeforward 路由,legacy仅保留兼容别名。 - relation 查询规格解析收口,结构化查询与语义回退边界更清晰。
/query stats与 tool stats 补充关系向量化统计输出。
- 检索主链继续收敛到
- 导入与运维增强:
- Web Import 新增
temporal_backfill任务入口与编排处理。 - 新增一致性审计与离线回填脚本,支持灰度修复历史数据。
- Web Import 新增
📚 文档同步
- 同步更新
README.md、CONFIG_REFERENCE.md与本日志版本信息。 README.md新增关系向量审计/回填脚本使用说明,并更新convert_lpmm.py的关系向量重建行为描述。
[0.6.1] - 2026-03-03
本次 0.6.1 为热修复小版本,重点修复 WebUI 插件配置接口在 A_Memorix 场景下的 tomlkit 节点序列化兼容问题。
🔖 版本信息
- 插件版本:
0.6.0→0.6.1 - 配置版本:
4.1.0(不变)
🛠️ 代码修复
- 新增运行时补丁
_patch_webui_a_memorix_routes_for_tomlkit_serialization():- 仅包裹
/api/webui/plugins/config/{plugin_id}及其 schema 的GET路由。 - 仅在
plugin_id == "A_Memorix"时,将返回中的config/schema通过to_builtin_data原生化。 - 保持
/api/webui/config/*全局接口行为不变,避免对其他插件或核心配置路径产生副作用。
- 仅包裹
- 在插件初始化时执行该补丁,确保 WebUI 读取插件配置时返回结构可稳定序列化。
📚 文档同步
- 同步更新
README.md、CONFIG_REFERENCE.md与本日志中的版本信息及修复说明。
[0.6.0] - 2026-03-02
本次 0.6.0 为中版本升级,主线是 Web Import 导入中心上线与脚本能力对齐、失败重试机制升级、删除后 manifest 同步 与 导入链路稳定性增强。
🔖 版本信息
- 插件版本:
0.5.1→0.6.0 - 配置版本:
4.0.1→4.1.0
🚀 重点能力
- 新增 Web Import 导入中心(
/import):- 上传/粘贴/本地扫描/LPMM OpenIE/LPMM 转换/时序回填/MaiBot 迁移。
- 任务/文件/分块三级状态展示,支持取消与失败重试。
- 导入文档弹窗读取(远程优先,失败回退本地)。
- 失败重试升级为“分块优先 + 文件回退”:
POST /api/import/tasks/{task_id}/retry_failed保持原路径,语义升级。- 支持对
extracting失败分块进行子集重试。 writing/JSON 解析失败自动回退为文件级重试。
- 删除后 manifest 同步失效:
- 覆盖
/api/source/batch_delete与/api/source。 - 返回
manifest_cleanup明细,避免误命中去重跳过重导入。
- 覆盖
📂 变更文件清单(本次发布)
新增文件:
core/utils/web_import_manager.pyscripts/migrate_maibot_memory.pyweb/import.html
修改文件:
CHANGELOG.mdCONFIG_REFERENCE.mdIMPORT_GUIDE.mdQUICK_START.mdREADME.md__init__.py_manifest.jsoncomponents/commands/debug_server_command.pycore/embedding/api_adapter.pycore/storage/graph_store.pycore/utils/summary_importer.pyplugin.pyrequirements.txtserver.pyweb/index.html
删除文件:
- 无
📚 文档同步
- 同步更新
README.md、QUICK_START.md、CONFIG_REFERENCE.md、IMPORT_GUIDE.md与本日志。 IMPORT_GUIDE.md新增 “Web Import 导入中心” 专区,统一说明能力范围、状态语义与安全边界。
[0.5.1] - 2026-02-23
本次 0.5.1 为热修订小版本,重点修复“随主程序启动的后台任务拉起”“空名单过滤语义”以及“知识抽取模型选择”。
🔖 版本信息
- 插件版本:
0.5.0→0.5.1 - 配置版本:
4.0.0→4.0.1
🛠️ 代码修复
- 生命周期接入主程序事件:
- 新增
a_memorix_start_handler(ON_START)调用plugin.on_enable(); - 新增
a_memorix_stop_handler(ON_STOP)调用plugin.on_disable(); - 解决仅注册插件但未触发生命周期时,定时导入任务不启动的问题。
- 新增
- 聊天过滤空列表策略调整:
whitelist + []:全部拒绝;blacklist + []:全部放行。
- 知识抽取模型选择逻辑调整(
import_command._select_model):advanced.extraction_model现在支持三种语义:任务名 / 模型名 /auto;auto优先抽取相关任务(lpmm_entity_extract、lpmm_rdf_build等),并避免误落到embedding;- 当配置无法识别时输出告警并回退自动选择,提高导入阶段的模型选择可预期性。
📚 文档同步
- 同步更新
README.md、CONFIG_REFERENCE.md与CHANGELOG.md。 - 同步修正文档中的空名单过滤行为描述,保持与当前代码一致。
[0.5.0] - 2026-02-15
本次 0.5.0 以提交 66ddc1b98547df3c866b19a3f5dc96e1c8eb7731 为核心,主线是“人物画像能力上线 + 工具/命令接入 + 版本与文档同步”。
🔖 版本信息
- 插件版本:
0.4.0→0.5.0 - 配置版本:
3.1.0→4.0.0
🚀 人物画像主特性(核心)
- 新增人物画像服务:
core/utils/person_profile_service.py- 支持
person_id/姓名/别名解析。 - 聚合图关系证据 + 向量证据,生成画像文本并版本化快照。
- 支持手工覆盖(override)与 TTL 快照复用。
- 支持
- 存储层新增人物画像相关表与 API:
core/storage/metadata_store.pyperson_profile_switchesperson_profile_snapshotsperson_profile_active_personsperson_profile_overrides
- 新增命令:
/person_profile on|off|status- 文件:
components/commands/person_profile_command.py - 作用:按
stream_id + user_id控制自动注入开关(opt-in 模式)。
- 文件:
- 查询链路接入人物画像:
knowledge_query_tool新增query_type=person,支持person_id或别名查询。/query person与/query p接入画像查询输出。
- 插件生命周期接入画像刷新任务:
- 启动/停止统一管理
person_profile_refresh后台任务。 - 按活跃窗口自动刷新画像快照。
- 启动/停止统一管理
🛠️ 版本与 schema 同步
plugin.py:plugin_version更新为0.5.0。plugin.py:plugin.config_version默认值更新为4.0.0。config.toml:config_version基线同步为4.0.0(本地配置文件)。__init__.py:__version__更新为0.5.0。_manifest.json:version更新为0.5.0,manifest_version保持1。manifest_utils.py:仓库内已兼容更高 manifest 版本;但插件发布默认保持manifest_version=1。
📚 文档同步
- 更新
README.md、CONFIG_REFERENCE.md、QUICK_START.md、USAGE_ARCHITECTURE.md。 - 0.5.0 文档主线改为“人物画像能力 + 版本升级 + 检索链路补充说明”。
[0.4.0] - 2026-02-13
本次 0.4.0 版本整合了时序检索增强与后续检索链路增强、稳定性修复和文档同步。
🔖 版本信息
- 插件版本:
0.3.3→0.4.0 - 配置版本:
3.0.0→3.1.0
🚀 新增
- 新增
core/retrieval/sparse_bm25.pySparseBM25Config/SparseBM25Index- FTS5 + BM25 稀疏检索
- 支持
jieba/mixed/char_2gram分词与懒加载 - 支持 ngram 倒排回退与可选 LIKE 兜底
DualPathRetriever新增 sparse/fusion 配置注入:- embedding 不可用时自动 sparse 回退;
hybrid模式支持向量路 + sparse 路并行候选;- 新增
FusionConfig与weighted_rrf融合。
MetadataStore新增 FTS/倒排能力:paragraphs_fts、relations_ftsschema 与回填;paragraph_ngrams倒排索引与回填;fts_search_bm25/fts_search_relations_bm25/ngram_search_paragraphs。
🛠️ 组件链路同步
plugin.py- 新增
[retrieval.sparse]、[retrieval.fusion]默认配置; - 初始化并向组件注入
sparse_index; on_disable支持按配置卸载 sparse 连接并释放缓存。
- 新增
knowledge_search_action.py/query_command.py/knowledge_query_tool.py- 统一接入 sparse/fusion 配置;
- 统一注入
sparse_index; stats输出新增 sparse 状态观测。
requirements.txt- 新增
jieba>=0.42.1(未安装时自动回退 char n-gram)。
- 新增
🧯 修复与行为调整
- 修复
retrieval.ppr_concurrency_limit不生效问题:DualPathRetriever使用配置值初始化_ppr_semaphore,不再被固定值覆盖。
- 修复
char_2gram召回失效场景:- FTS miss 时增加
_fallback_substring_search,优先 ngram 倒排回退,按配置可选 LIKE 兜底。
- FTS miss 时增加
- 提升可观测性与兼容性:
get_statistics()对向量规模字段兼容读取size -> num_vectors -> 0,避免属性缺失导致异常。/query stats与knowledge_query输出包含 sparse 状态(enabled/loaded/tokenizer/doc_count)。
📚 文档
README.md- 新增检索增强说明、稀疏行为说明、时序回填脚本入口。
CONFIG_REFERENCE.md- 补齐 sparse/fusion 参数与触发规则、回退链路、融合实现细节。
⏱️ 时序检索与导入增强
时序检索能力(分钟级)
- 新增统一时序查询入口:
/query time(别名/query t)knowledge_query(query_type=time)knowledge_search(query_type=time|hybrid)
- 查询时间参数统一支持:
YYYY/MM/DDYYYY/MM/DD HH:mm
- 日期参数自动展开边界:
from/time_from->00:00to/time_to->23:59
- 查询结果统一回传
metadata.time_meta,包含命中时间窗口与命中依据(事件时间或created_at回退)。
存储与检索链路
- 段落存储层支持时序字段:
event_timeevent_time_startevent_time_endtime_granularitytime_confidence
- 时序命中采用区间相交逻辑,并遵循“双层时间语义”:
- 优先
event_time/event_time_range - 缺失时回退
created_at(可配置关闭)
- 优先
- 检索排序规则保持:语义优先,时间次排序(新到旧)。
process_knowledge.py新增--chat-log参数:- 启用后强制使用
narrative策略; - 使用 LLM 对聊天文本进行语义时间抽取(支持相对时间转绝对时间),写入
event_time/event_time_start/event_time_end。 - 新增
--chat-reference-time,用于指定相对时间语义解析的参考时间点。
- 启用后强制使用
Schema 与文档同步
_manifest.json同步补齐retrieval.temporal配置 schema。- 配置 schema 版本升级:
config_version从3.0.0提升到3.1.0(plugin.py/config.toml/ 配置文档同步)。 - 更新
README.md、CONFIG_REFERENCE.md、IMPORT_GUIDE.md,补充时序检索入口、参数格式与导入时间字段说明。
[0.3.3] - 2026-02-11
本次更新为 语言一致性补丁版本,重点收敛知识抽取时的语言漂移问题,要求输出严格贴合原文语言,不做翻译改写。
🛠️ 关键修复
抽取语言约束
BaseStrategy:- 移除按
zh/en/mixed分支的语言类型判定逻辑; - 统一为单一约束:抽取值保持原文语言、保留原始术语、禁止翻译。
- 移除按
NarrativeStrategy/FactualStrategy:- 抽取提示词统一接入上述语言约束;
- 明确要求 JSON 键名固定、抽取值遵循原文语言表达。
导入链路一致性
ImportCommand的 LLM 抽取提示词同步强化“优先原文语言、不要翻译”要求,避免脚本与指令导入行为不一致。
测试与文档
- 更新
test_strategies.py,将语言判定测试调整为统一语言约束测试,并验证提示词中包含禁止翻译约束。 - 同步更新注释与文档描述,确保实现与说明一致。
🔖 版本信息
- 插件版本:
0.3.2→0.3.3
[0.3.2] - 2026-02-11
本次更新为 V5 稳定性与兼容性修复版本,在保持原有业务设计(强化→衰减→冷冻→修剪→回收)的前提下,修复关键链路断裂与误判问题。
🛠️ 关键修复
V5 记忆系统契约与链路
MetadataStore:- 统一
mark_relations_inactive(hashes, inactive_since=None)调用契约,兼容不同调用方; - 补充
has_table(table_name); - 增加
restore_relation(hash)兼容别名,修复服务层恢复调用断裂; - 修正
get_entity_gc_candidates对孤立节点参数的处理(支持节点名映射到实体 hash)。
- 统一
GraphStore:- 清理
deactivate_edges重复定义并统一返回冻结数量,保证上层日志与断言稳定。
- 清理
server.py:- 修复
/api/memory/restorerelation 恢复链路; - 清理不可达分支并统一异常路径;
- 回收站查询在表检测场景下不再出现错误退空。
- 修复
命令与模型选择
/memory命令修复 hash 长度判定:以 64 位sha256为标准,同时兼容历史 32 位输入。- 总结模型选择修复:
- 解决
summarization.model_name = auto误命中embedding问题; - 支持数组与选择器语法(
task:model/ task / model); - 兼容逗号分隔字符串写法(如
"utils:model1","utils:model2",replyer)。
- 解决
生命周期与脚本稳定性
plugin.py修复后台任务生命周期管理:- 增加
_scheduled_import_task/_auto_save_task/_memory_maintenance_task句柄; - 避免重复启动;
- 插件停用时统一 cancel + await 收敛。
- 增加
process_knowledge.py修复 tenacity 重试日志级别类型错误("WARNING"→logging.WARNING),避免KeyError: 'WARNING'。
🔖 版本信息
- 插件版本:
0.3.1→0.3.2
[0.3.1] - 2026-02-07
本次更新为 稳定性补丁版本,主要修复脚本导入链路、删除安全性与 LPMM 转换一致性问题。
🛠️ 关键修复
新增功能
- 新增
scripts/convert_lpmm.py:- 支持将 LPMM 的
parquet + graph数据直接转换为 A_Memorix 存储结构; - 提供 LPMM ID 到 A_Memorix ID 的映射能力,用于图节点/边重写;
- 当前实现优先保证检索一致性,关系向量采用安全策略(不直接导入)。
- 支持将 LPMM 的
导入链路
- 修复
import_lpmm_json.py依赖的AutoImporter.import_json_data公共入口缺失/不稳定问题,确保外部脚本可稳定调用 JSON 直导入流程。
删除安全
- 修复按来源删除时“同一
(subject, object)存在多关系”场景下的误删风险:MetadataStore.delete_paragraph_atomic新增relation_prune_ops;- 仅在无兄弟关系时才回退删除整条边。
delete_knowledge.py新增保守孤儿实体清理(仅对本次候选实体执行,且需同时满足无段落引用、无关系引用、图无邻居)。delete_knowledge.py改为读取向量元数据中的真实维度,避免dimension=1写回污染。
LPMM 转换修复
- 修复
convert_lpmm.py中向量 ID 与MetadataStore哈希不一致导致的检索反查失败问题。 - 为避免脏召回,转换阶段暂时跳过
relation.parquet的直接向量导入(待关系元数据一一映射能力完善后再恢复)。
🔖 版本信息
- 插件版本:
0.3.0→0.3.1
[0.3.0] - 2026-01-30
本次更新引入了 V5 动态记忆系统,实现了符合生物学特性的记忆衰减、强化与全声明周期管理,并提供了配套的指令与工具。
🧠 记忆系统 (V5)
核心机制
- 记忆衰减 (Decay): 引入"遗忘曲线",随时间推移自动降低图谱连接权重。
- 访问强化 (Reinforcement): "越用越强",每次检索命中都会刷新记忆活跃度并增强权重。
- 生命周期 (Lifecycle):
- 活跃 (Active): 正常参与计算与检索。
- 冷冻 (Inactive): 权重过低被冻结,不再参与 PPR 计算,但保留语义映射 (Mapping)。
- 修剪 (Prune): 过期且无保护的冷冻记忆将被移入回收站。
- 多重保护: 支持 永久锁定 (Pin) 与 限时保护 (TTL),防止关键记忆被误删。
GraphStore
- 多关系映射: 实现
(u,v) -> Set[Hash]映射,确保同一通道下的多重语义关系互不干扰。 - 原子化操作: 新增
decay,deactivate_edges(软删),prune_relation_hashes(硬删) 等原子操作。
🛠️ 指令与工具
Memory Command (/memory)
新增全套记忆维护指令:
/memory status: 查看记忆系统健康状态(活跃/冷冻/回收站计数)。/memory protect <query> [hours]: 保护记忆。不填时间为永久锁定(Pin),填时间为临时保护(TTL)。/memory reinforce <query>: 手动强化记忆(绕过冷却时间)。/memory restore <hash>: 从回收站恢复误删记忆(仅当节点存在时重建连接)。
MemoryModifierTool
- LLM 能力增强: 更新工具逻辑,支持 LLM 自主触发
reinforce,weaken,remember_forever,forget操作,并自动映射到 V5 底层逻辑。
⚙️ 配置 (config.toml)
新增 [memory] 配置节:
half_life_hours: 记忆半衰期 (默认 24h)。enable_auto_reinforce: 是否开启检索自动强化。prune_threshold: 冷冻/修剪阈值 (默认 0.1)。
💻 WebUI (v1.4)
实现了与 V5 记忆系统深度集成的全生命周期管理界面:
- 可视化增强:
- 冷冻状态: 非活跃记忆以 虚线 + 灰色 (Slate-300) 显示。
- 保护状态: 被 Pin 或保护的记忆带有 金色 (Amber) 光晕。
- 交互升级:
- 记忆回收站: 新增 Dock 入口与专用面板,支持浏览删除记录并一键恢复。
- 快捷操作: 边属性面板新增 强化 (Reinforce)、保护 (Protect/Pin)、冷冻 (Freeze) 按钮。
- 实时反馈: 操作后自动刷新图谱布局与样式。
[0.2.3] - 2026-01-30
本次更新主要集中在 WebUI 交互体验优化 与 文档/配置的规范化。
🎨 WebUI (v1.3)
加载与同步体验升级
- 沉浸式加载: 全新设计的加载遮罩,采用磨砂玻璃背景 (
backdrop-filter) 与呼吸灯文字动效,提升视觉质感。 - 精准状态反馈: 优化加载逻辑,明确区分“网络同步”与“拓扑计算”阶段,解决数据加载时的闪烁问题。
- 新手引导: 在加载界面新增基础操作提示,降低新用户上手门槛。
全功能帮助面板
- 操作指南重构: 全面翻新“操作指南”面板,新增 Dock 栏功能详解、编辑管理操作及视图配置说明。
🛠️ 工程与规范
plugin.py
- 配置描述补全: 修复了
config_section_descriptions中缺失summarization,schedule,filter节导致的问题。 - 版本号:
0.2.2→0.2.3
⚙️ 核心与服务
Core
- 量化逻辑修正: 修正了
_scalar_quantize_int8函数,确保向量值正确映射到[-128, 127]区间,提高量化精度。
Server
- 缓存一致性: 在执行删除节点/边等修改操作后,显式清除
_relation_cache,确保前端获取的关系数据实时更新。
🤖 脚本与数据处理
process_knowledge.py
- 策略模式重构: 引入了
Strategy-Aware架构,支持通过Narrative(叙事),Factual(事实),Quote(引用) 三种策略差异化处理文本(准确说是确认实装)(默认采用 Narrative模式)。 - 智能分块纠错: 新增“分块拯救” (
Chunk Rescue) 机制,可在长叙事文本中自动识别并提取内嵌的歌词或诗句。
import_lpmm_json.py
- LPMM 迁移工具: 增加了对 LPMM OpenIE JSON 格式的完整支持,能够自动计算 Hash 并迁移实体/关系数据,确保与 A_Memorix 存储格式兼容。
Project
- 构建清理: 优化
.gitignore规则
[0.2.2] - 2026-01-27
本次更新专注于提高 网络请求的鲁棒性,特别是针对嵌入服务的调用。
🛠️ 稳定性与工程改进
EmbeddingAPI
- 可配置重试机制: 新增
[embedding.retry]配置项,允许自定义最大重试次数和等待时间。默认重试次数从 3 次增加到 10 次,以更好应对网络波动。 - 配置项:
max_attempts: 最大重试次数 (默认: 10)max_wait_seconds: 最大等待时间 (默认: 30s)min_wait_seconds: 最小等待时间 (默认: 2s)
plugin.py
- 版本号:
0.2.1→0.2.2
[0.2.1] - 2026-01-26
本次更新重点在于 可视化交互的全方位重构 以及 底层鲁棒性的进一步增强。
🎨 可视化与交互重构
WebUI (Glassmorphism)
- 全新视觉设计: 采用深色磨砂玻璃 (Glassmorphism) 风格,配合动态渐变背景。
- Dock 菜单栏: 底部新增 macOS 风格 Dock 栏,聚合所有常用功能。
- 显著性视图 (Saliency View): 基于 PageRank 算法的“信息密度”滑块,支持以此过滤叶子节点,仅展示核心骨干或全量细节。
- 功能面板:
- ❓ 操作指南: 内置交互说明与特性介绍。
- 🔍 悬浮搜索: 支持按拼音/ID 实时过滤节点。
- 📂 记忆溯源: 支持按源文件批量查看和删除记忆数据。
- 📖 内容字典: 列表化展示所有实体与关系,支持排序与筛选。
🛠️ 稳定性与工程改进
EmbeddingAPI
- 鲁棒性增强: 引入
tenacity实现指数退避重试机制。 - 错误处理: 失败时返回
NaN向量而非零向量,允许上层逻辑安全跳过。
MetadataStore
- 自动修复: 自动检测并修复
vector_index列错位(文件名误存)的历史数据问题。 - 数据统计: 新增
get_all_sources接口支持来源统计。
脚本与工具
- 用户体验: 引入
rich库优化终端输出进度条与状态显示。 - 接口开放:
process_knowledge.py新增import_json_data供外部调用。 - LPMM 迁移: 新增
import_lpmm_json.py,支持导入符合 LPMM 规范的 OpenIE JSON 数据。
plugin.py
- 版本号:
0.2.0→0.2.1
[0.2.0] - 2026-01-22
Caution
不完全兼容变更:v0.2.0 版本重构了底层存储架构。由于数据结构的重大调整,旧版本的导入数据无法在新版本中完全无损兼容。 虽然部分组件支持自动迁移,但为确保数据一致性和检索质量,强烈建议在升级后重新使用
process_knowledge.py导入原始数据。
本次更新为重大版本升级,包含向量存储架构重写、检索逻辑强化及多项稳定性改进。
🚀 核心架构重写
VectorStore: SQ8 量化 + Append-Only 存储
- 全新存储格式: 从
.npy迁移至vectors.bin(float16 增量追加)和vectors_ids.bin,大幅减少内存占用。 - 原生 SQ8 量化: 使用 Faiss
IndexScalarQuantizer(QT_8bit),替代手动 int8 量化逻辑。 - L2 Normalization 强制化: 所有向量在存储和检索时统一执行 L2 归一化,确保 Inner Product 等价于 Cosine 相似度。
- Fallback 索引机制: 新增
IndexFlatIP回退索引,在 SQ8 训练完成前提供检索能力,避免冷启动无结果问题。 - Reservoir Sampling 训练采样: 使用蓄水池采样收集训练数据(上限 10k),保证小数据集和流式导入场景下的训练样本多样性。
- 线程安全: 新增
threading.RLock保护并发读写操作。 - 自动迁移: 支持从旧版
.npy格式自动迁移至新.bin格式。
✨ 检索功能增强
KnowledgeQueryTool: 智能回退与多跳路径搜索
- Smart Fallback (智能回退): 当向量检索置信度低于阈值 (默认 0.6) 时,自动尝试提取查询中的实体进行多跳路径搜索(
_path_search),增强对间接关系的召回能力。 - 结果去重 (
_deduplicate_results): 新增基于内容相似度的安全去重逻辑,防止冗余结果污染 LLM 上下文,同时确保至少保留一条结果。 - 语义关系检索 (
_semantic_search_relation): 支持自然语言查询关系(无需S|P|O格式),内部使用REL_ONLY策略进行向量检索。 - 路径搜索 (
_path_search): 新增GraphStore.find_paths调用,支持查找两个实体间的间接连接路径(最大深度 3,最多 5 条路径)。 - Clean Output: LLM 上下文中不再包含原始相似度分数,避免模型偏见。
DualPathRetriever: 并发控制与调试模式
- PPR 并发限制 (
ppr_concurrency_limit): 新增 Semaphore 控制 PageRank 计算并发数,防止 CPU 峰值过载。 - Debug 模式: 新增
debug配置项,启用时打印检索结果原文到日志。 - Entity-Pivot 关系检索: 优化
_retrieve_relations_only策略,通过检索实体后扩展其关联关系,替代直接检索关系向量。
⚙️ 配置与 Schema 扩展
plugin.py
- 版本号:
0.1.3→0.2.0 - 默认配置版本:
config_version默认值更新为2.0.0 - 新增配置项:
retrieval.relation_semantic_fallback(bool): 是否启用关系查询的语义回退。retrieval.relation_fallback_min_score(float): 语义回退的最小相似度阈值。
- 相对路径支持:
storage.data_dir现在支持相对路径(相对于插件目录),默认值改为./data。 - 全局实例获取: 新增
A_MemorixPlugin.get_global_instance()静态方法,供组件可靠获取插件实例。
config.toml / _manifest.json
- 新增
ppr_concurrency_limit: 控制 PPR 算法并发数。 - 新增训练阈值配置:
embedding.min_train_threshold控制触发 SQ8 训练的最小样本数。
🛠️ 稳定性与工程改进
GraphStore
find_paths方法: 新增多跳路径查找功能,支持 BFS 搜索指定深度内的实体间路径。find_node方法: 新增大小写不敏感的节点查找。
MetadataStore
- Schema 迁移: 自动添加缺失的
is_permanent,last_accessed,access_count字段。
脚本与工具
- 新增脚本:
scripts/diagnose_relations_source.py: 诊断关系溯源问题。scripts/verify_search_robustness.py: 验证检索鲁棒性。scripts/run_stress_test.py,stress_test_data.py: 压力测试套件。scripts/migrate_canonicalization.py,migrate_paragraph_relations.py: 数据迁移工具。
- 目录整理: 将大量旧版测试脚本移动至
deprecated/目录。
🗑️ 移除与废弃
- 废弃
vectors.npy存储格式(自动迁移至.bin)。
[0.1.3] - 上一个稳定版本
- 初始发布,包含基础双路检索功能。
- 手动 Int8 向量量化。
- 基于
.npy的向量存储。