目录

MemVeritas

MemVeritas(Provenance-Aware Temporal Trustworthy Memory for AI Agents)是面向 openKylin 的智能体记忆提取与精准遗忘系统。以 C++17 守护进程为核心,为 OS Agent 提供偏好记忆、知识记忆与短/中/长期记忆的统一沉淀、检索增强生成(RAG)支撑、敏感信息识别与可审计的精准遗忘能力。

核心能力

模块 说明
多源数据整合 工具执行结果 / 用户行为 / 手动配置统一接入,规范化、质量校验与来源溯源(typed provenance)
偏好记忆 规则+主语锚定的偏好提取,Shiryaev 变点后验驱动的漂移检测与版本化切换、回溯
知识记忆 双时态版本链、规则+NLI 级联的冲突检测、newest-trusted 确定性自动裁决(可审计、可关闭)
混合检索 SQLite FTS5(CJK bigram 分词)+ 向量 ANN 的 RRF 融合,margin 门控的 int8 交叉编码器重排级联,跨语言检索
敏感信息识别 PII(身份证 GB11643 校验 / 手机号 / 邮箱 / 姓名)、凭据(结构化+熵分档)、自定义模式,可选 GLiNER sidecar
精准遗忘 自然语言指令驱动、窗口与值级精准、遗忘当前值自动回溯、删除闭包(FTS/向量/证据/密钥)、审计留痕
OS 级机制 BPF LSM 访问守护、mmap 分段存储、systemd/journald 审计资产、UKUI(peony / ukcc)D-Bus 插件

目录结构

  • src/:核心实现;src/platform/ 平台适配(openKylin SDK、BPF、UKUI);src/cli/、src/daemon/ 入口
  • include/kylin_memory/:公共接口头文件
  • scripts/:Python sidecar 服务(embedding / reranker / PII / NLI / LLM 冲突)与基准评测工具
  • tests/:C++ 与 Python 测试;bpf/:BPF LSM 程序;data/:D-Bus / systemd / 模型清单资产
  • docker/:openKylin 容器测试环境

构建与测试

cmake -S . -B build/debug -DCMAKE_BUILD_TYPE=Debug \
  -DKYLIN_MEMORY_BUILD_TESTS=ON -DKYLIN_MEMORY_ENABLE_OPENKYLIN=OFF
cmake --build build/debug -j4
ctest --test-dir build/debug --output-on-failure

openKylin 目标环境将 -DKYLIN_MEMORY_ENABLE_OPENKYLIN=ON 以启用 CoreAI 向量化 / 向量数据库 SDK 适配。容器化验证:./scripts/docker-test-env.sh test。Python 改动运行 python3 -m py_compile scripts/*.py。

安装

源码 checkout 中的 scripts/install-openkylin.sh 明确选择运行档案并在安装时校验模型; 它不是 CMake/package 安装资产,必须从完整源码树运行。默认是 portable --user;lexical-only 是降级模式,必须显式确认。使用 --destdir 时只写入 staging tree,不会调用 systemd 或写入用户配置:

scripts/install-openkylin.sh --profile lexical-only --allow-lexical-only \
  --user --destdir /tmp/kylin-memory-stage --prefix /usr --no-enable

portable/openKylin 安装必须传入经验证的 --reranker-artifact;离线模型包和 wheelhouse 必须成对提供。运行时模型服务保持 HF_HUB_OFFLINE=1 与 TRANSFORMERS_OFFLINE=1。live 安装仅支持 Linux 用户级 systemd;--system 可用于 --destdir 打包,但不会伪装为已启用的系统服务。当前非词法档案的 staging 因尚未将模型、venv 和派生 reranker artifact 复制进 staging tree 而失败关闭;可以在 Linux 上执行 live portable/openKylin 安装。

Sidecar 服务

模型服务经 Unix 域套接字接入,全部可选、缺席时守护进程降级运行(词法检索 + 规则分类):

python3 scripts/embedding-service.py --model intfloat/multilingual-e5-small \
  --socket /tmp/kylin-memory-embedding.sock --device cpu
python3 scripts/reranker-service.py --socket /tmp/kylin-memory-reranker.sock --device cpu
python3 scripts/pii-service.py --model urchade/gliner_multi_pii-v1 --socket /tmp/kylin-memory-pii.sock
python3 scripts/nli-service.py --socket /tmp/kylin-memory-nli.sock --device cpu

依赖清单:requirements-services.txt(通用 sidecar)与 requirements-reranker.txt(ONNX 重排导出)。模型权重不随仓库分发,清单中固定 revision 与校验和。

关键环境变量

变量 作用
KYLIN_MEMORY_EMBEDDING_SOCKET 等 各 sidecar 套接字与模型配置(见 MemoryStore::open_configured)
KYLIN_MEMORY_AUTO_ADJUDICATE 0 关闭冲突自动裁决,恢复纯人工评审
KYLIN_MEMORY_RERANK_MARGIN 单语言重排升级的融合分差阈值(默认 0.15;0 仅跨语言重排)
KYLIN_MEMORY_RERANKER_CANDIDATES 重排候选窗口(默认 8,上限 64)
KYLIN_MEMORY_KEY_PROVIDER 启用加密存储与密钥托管(缺失即明文模式)

许可

Apache License 2.0。

关于
43.9 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号