docs: update README release information
面向 openKylin OS Agent 的本地智能体记忆中间件,提供多源记忆接入、偏好提取、知识整合、统一检索、敏感信息保护与自然语言精准遗忘。
MemGuard-Kylin 位于 Agent 与端侧存储、向量服务及操作系统安全机制之间。项目将对话、工具执行结果、用户行为、手动配置和知识文档统一转换为可治理记忆,并通过 openKylin 系统向量 SDK、systemd/cgroup、journald/auditd、BPF LSM 和 UKUI 集成,为本地 Agent 提供可运行、可审计、可验证的记忆基础设施。
核心功能已经完成并在 openKylin 2.0 SP2 上通过源码、服务、系统 SDK、OS 安全机制和公开数据集复验。 全部说明文档网盘分享链接:https://pan.baidu.com/s/1UE3bLI_Mzo60A-SgGvFemQ?pwd=dek3,在本仓库交付文档文件夹中亦有上传。
AgentEvent
event_id
task_planning
tool_call
result_generation
redact
block
secure_delete
Agent API v1 将 message、tool_result、user_behavior、manual_config 和 document 统一为 AgentEvent。写入前校验 event_id、用户/客户端/会话作用域和 结构化负载;相同 event_id 的不同负载会被拒绝。正文、工具结果和嵌套元数据递归 执行敏感扫描、脱敏或阻断,清洗后的事件才进入记忆管线。
message
tool_result
user_behavior
manual_config
document
偏好记录保留偏好键值、证据、置信度、适用场景、父版本和回溯链;知识记录保留 类型、主题、来源、版本、冲突状态和融合解释。SQLite 是当前版本的权威状态库, 采用 WAL 和 secure_delete,密文、盲索引、向量索引与审计引用保持一致。短期记忆 按时间和访问热度晋升为中期/长期记忆,过期或被替代的版本由维护任务淘汰。
检索阶段组合关键词、向量、时间、记忆类型、作用域和偏好权重,并对候选进行去重、 重排和 Token 预算截断;向量后端不可用时回退到关键词检索并记录降级事件。生成的 RAG Context 包含记忆 ID、引用、截断状态和耗时,task_planning、tool_call、 result_generation 三个阶段复用同一条检索链路。
RAG Context
每条记录使用独立随机 DEK 进行 AES-256-GCM 信封加密,主密钥仅用于包裹 DEK 和生成 HMAC 盲索引。自然语言遗忘指令先生成候选预览,再由一次性确认令牌触发;执行时同步 清理数据库、向量、缓存、密钥材料和索引,并写入哈希链审计记录。BPF LSM 对数据库、 WAL/SHM 和主密钥文件提供 OS 级访问审计/拦截,systemd/cgroup 负责服务生命周期和 资源边界,journald/auditd 提供系统审计通道。
openKylin 部署使用本地向量/Embedding SDK、systemd user service 和 cgroup v2; UKUI 通过 D-Bus、Desktop Entry 和通知接口提供设置、文件动作与事件提示。本发布版 不宣称显式实现 mmap/Copy-on-Write 记忆存储或 namespace 隔离;这两项属于后续 OS 存储与多会话隔离增强方向,不影响当前已验证的 BPF LSM、systemd/cgroup 和 journald/auditd 机制结论。
mmap
核心数据链路:
Agent / 工具 / 手动配置 / 知识文档 │ Agent API v1 │ 清洗、校验、敏感检测与偏好提取 │ 加密存储、版本治理、生命周期管理 │ openKylin Embedding SDK + Vector SDK │ 混合检索、RAG Context、精准遗忘 │ systemd / cgroup / BPF LSM / auditd / UKUI
更完整的模块和数据流说明见架构设计。
要求 Python 3.10 及以上。
git clone https://gitlink.org.cn/a112334/mxokdzntjytqyjzywjz.git cd mxokdzntjytqyjzywjz python3 -m venv .venv source .venv/bin/activate python3 -m pip install -e . python3 -m unittest discover -s tests python3 -m memguard.web --host 127.0.0.1 --port 8765
服务启动后可检查:
curl http://127.0.0.1:8765/v1/health
Windows PowerShell:
py -m pip install -e . py -m unittest discover -s tests py -m memguard.web --host 127.0.0.1 --port 8765
通用开发环境默认使用本地确定性向量实现完成离线测试。openKylin 系统 SDK 和 OS 机制必须在 openKylin 环境验证。
生产部署需要 openKylin 2.0 SP2 或比赛指定的更新版本,并预先安装:
python3
python3-cryptography
cmake
pkg-config
libkylin-coreai-embedding-dev
libkysdk-vector-engine-client-dev
基础部署:
sudo bash deploy/install_openkylin.sh
包含 BPF LSM 与 auditd 的竞赛验收部署:
sudo MEMGUARD_COMPETITION_MODE=1 bash deploy/install_openkylin.sh
部署后检查:
systemctl --user status memguard-kylin.service systemctl --user status memguard-kylin-maintenance.timer curl http://127.0.0.1:8765/v1/health
安装依赖、BPF 模式、UKUI 会话、可选模型和卸载方式见部署与使用手册。
HTTP 服务默认监听 127.0.0.1:8765。Python 客户端示例:
127.0.0.1:8765
from memguard import AgentEventType, MemGuardClient client = MemGuardClient("http://127.0.0.1:8765") client.remember( "设备巡检应先检查电源状态。", event_id="inspection-knowledge-v1", event_type=AgentEventType.DOCUMENT, client_id="example-agent", user_id="example-user", session_id="example-session", ) context = client.retrieve_context( "设备巡检首先检查什么?", client_id="example-agent", user_id="example-user", stage="task_planning", )
接口字段、错误码和鉴权方式见 Agent API v1。参考 Agent 和三阶段调用示例位于 examples/agent_compat/。
examples/agent_compat/
完整发布预检:
python3 scripts/verify_release.py
预检包含:
仅构建离线 Wheel:
python3 -S scripts/build_wheel.py --wheel-dir .test-tmp/offline-wheel
外部公开数据集适配、正式评测协议和资源测量入口位于 benchmarks/。模型权重、原始公开数据、预测明细和运行日志不随源码发布。
benchmarks/
完整测试环境、数据集、指标定义、资源占用和结论边界见最终测试报告。
正式竞赛交付材料位于 交付文档/:
交付文档/
适合源码阅读和二次开发的文档:
memguard/ 核心 Python 运行时 benchmarks/ 数据适配、评测与资源测量 bpf/ BPF LSM 程序与用户态加载器 openkylin/ openKylin 向量数据库 C++ 桥接 deploy/ systemd、auditd、UKUI 与一键安装脚本 integrations/ UKUI 与外部系统集成 examples/ Agent 接入示例 config/ 安全、Embedding、NER、NLI 示例配置 tests/ 单元与集成测试 docs/ 开发者文档 交付文档/ 正式竞赛交付材料
.env
项目核心代码采用 MIT License。外部公开数据集、模型和系统 SDK 受各自许可证约束,不随本仓库源码重新分发。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
MemGuard-Kylin
面向 openKylin OS Agent 的本地智能体记忆中间件,提供多源记忆接入、偏好提取、知识整合、统一检索、敏感信息保护与自然语言精准遗忘。
MemGuard-Kylin 位于 Agent 与端侧存储、向量服务及操作系统安全机制之间。项目将对话、工具执行结果、用户行为、手动配置和知识文档统一转换为可治理记忆,并通过 openKylin 系统向量 SDK、systemd/cgroup、journald/auditd、BPF LSM 和 UKUI 集成,为本地 Agent 提供可运行、可审计、可验证的记忆基础设施。
核心功能已经完成并在 openKylin 2.0 SP2 上通过源码、服务、系统 SDK、OS 安全机制和公开数据集复验。 全部说明文档网盘分享链接:https://pan.baidu.com/s/1UE3bLI_Mzo60A-SgGvFemQ?pwd=dek3,在本仓库交付文档文件夹中亦有上传。
功能概览
多源记忆接入
AgentEvent协议进行字段校验、格式标准化和来源追踪;event_id保证幂等写入,拒绝编号相同但负载不一致的事件;偏好与知识记忆
统一检索与 Agent/RAG
task_planning、tool_call和result_generation三个阶段调用同一记忆链路;敏感信息保护与精准遗忘
redact、block和受控测试策略;openKylin 与 OS 级机制
secure_delete、盲索引和维护任务支持加密存储、版本记录与安全回收;技术实现说明
1. 事件治理与多源接入
Agent API v1 将
message、tool_result、user_behavior、manual_config和document统一为AgentEvent。写入前校验event_id、用户/客户端/会话作用域和 结构化负载;相同event_id的不同负载会被拒绝。正文、工具结果和嵌套元数据递归 执行敏感扫描、脱敏或阻断,清洗后的事件才进入记忆管线。2. 记忆模型与生命周期
偏好记录保留偏好键值、证据、置信度、适用场景、父版本和回溯链;知识记录保留 类型、主题、来源、版本、冲突状态和融合解释。SQLite 是当前版本的权威状态库, 采用 WAL 和
secure_delete,密文、盲索引、向量索引与审计引用保持一致。短期记忆 按时间和访问热度晋升为中期/长期记忆,过期或被替代的版本由维护任务淘汰。3. 混合检索与 RAG
检索阶段组合关键词、向量、时间、记忆类型、作用域和偏好权重,并对候选进行去重、 重排和 Token 预算截断;向量后端不可用时回退到关键词检索并记录降级事件。生成的
RAG Context包含记忆 ID、引用、截断状态和耗时,task_planning、tool_call、result_generation三个阶段复用同一条检索链路。4. 加密、精准遗忘与审计
每条记录使用独立随机 DEK 进行 AES-256-GCM 信封加密,主密钥仅用于包裹 DEK 和生成 HMAC 盲索引。自然语言遗忘指令先生成候选预览,再由一次性确认令牌触发;执行时同步 清理数据库、向量、缓存、密钥材料和索引,并写入哈希链审计记录。BPF LSM 对数据库、 WAL/SHM 和主密钥文件提供 OS 级访问审计/拦截,systemd/cgroup 负责服务生命周期和 资源边界,journald/auditd 提供系统审计通道。
5. 部署边界与实现诚实性
openKylin 部署使用本地向量/Embedding SDK、systemd user service 和 cgroup v2; UKUI 通过 D-Bus、Desktop Entry 和通知接口提供设置、文件动作与事件提示。本发布版 不宣称显式实现
mmap/Copy-on-Write 记忆存储或 namespace 隔离;这两项属于后续 OS 存储与多会话隔离增强方向,不影响当前已验证的 BPF LSM、systemd/cgroup 和 journald/auditd 机制结论。系统架构
核心数据链路:
更完整的模块和数据流说明见架构设计。
快速开始
通用 Python 环境
要求 Python 3.10 及以上。
服务启动后可检查:
Windows PowerShell:
通用开发环境默认使用本地确定性向量实现完成离线测试。openKylin 系统 SDK 和 OS 机制必须在 openKylin 环境验证。
openKylin 一键部署
生产部署需要 openKylin 2.0 SP2 或比赛指定的更新版本,并预先安装:
python3、python3-cryptography、cmake、pkg-config;libkylin-coreai-embedding-dev;libkysdk-vector-engine-client-dev;基础部署:
包含 BPF LSM 与 auditd 的竞赛验收部署:
部署后检查:
安装依赖、BPF 模式、UKUI 会话、可选模型和卸载方式见部署与使用手册。
Agent 接入示例
HTTP 服务默认监听
127.0.0.1:8765。Python 客户端示例:接口字段、错误码和鉴权方式见 Agent API v1。参考 Agent 和三阶段调用示例位于
examples/agent_compat/。验证与构建
完整发布预检:
预检包含:
仅构建离线 Wheel:
外部公开数据集适配、正式评测协议和资源测量入口位于
benchmarks/。模型权重、原始公开数据、预测明细和运行日志不随源码发布。最终测试摘要
完整测试环境、数据集、指标定义、资源占用和结论边界见最终测试报告。
文档与交付物
正式竞赛交付材料位于
交付文档/:适合源码阅读和二次开发的文档:
项目结构
安全与隐私边界
.env、API Key、Token、主密钥、数据库、模型缓存或本机运行日志;License
项目核心代码采用 MIT License。外部公开数据集、模型和系统 SDK 受各自许可证约束,不随本仓库源码重新分发。