目录

Memoryd — 面向openKylin智能体的记忆提取与精准遗忘机制

2026 openKylin 创新赛「系统创新」赛道参赛作品。

在 openKylin 桌面环境下为智能体补上一套可观测、可溯源、可精准遗忘的长期记忆系统: 从对话/工具调用/系统事件三层采集素材,抽取偏好与知识并做版本化管理与冲突仲裁, 检索时把命中的记忆注入大模型上下文,同时提供敏感信息分级处置与「精准遗忘」能力; 所有环节均落在 OS 级机制上(eBPF LSM、内核 keyring、journald 审计、cgroup v2), 而非停留在应用层。记忆的每一步动作都可在图形界面的四个记忆面板中逐帧回看。


一、关键提交文档

评审优先看这四份:

文档 内容
docs/01-research-report.md 技术方案总报告。已拍板的选型与设计结论,含记忆分层、偏好晋升、冲突仲裁、JPU 遗忘算法、安全处置、OS 集成六大块的完整方案
docs/测试报告.docx 测试报告。赛题规定的六项性能指标全部实测(含公式、测量方法、样本量),功能完整性与 OS 集成逐项验证,已知局限如实列出。源文件为 docs/11-test-report-docx.md;另有工程细节更全的 docs/10-test-report.md
docs/00-architecture-overview.md 架构总览与文档索引。分层结构图、模块清单与成熟度、各专题文档入口
docs/03-deployment-guide.md 部署与运行指南。环境依赖、服务端口、一键启动方式

另有两份供交接与复核:


二、快速开始

# 环境:conda env openos(Python 3.11)
conda activate openos
export PYTHONPATH=$(pwd)/src
export OPENAI_API_KEY=<your-key>        # 仅走环境变量,不落盘

# 一键拉起全栈(向量桥 + memoryd + agent_runtime + GUI)
bash scripts/deploy/start-all.sh

# 离线单元测试
python -m pytest tests/ -q

# 赛题六项指标一键复现
python scripts/run_all_eval.py --user sim_dev_01 --out docs/_eval_tables.md

服务端口:agent_runtime :7100、memoryd :7200、向量引擎桥 :19530


三、仓库结构

源码

路径 内容
src/memoryd/ 记忆服务主体(约 11800 行)。见下方细分
src/agent_runtime/ 智能体运行时。Open Interpreter 的 HTTP 封装,通过 hook 在 PRE_LLM_CALL 注入记忆、在 POST_LLM_CALLPOST_ACTION_EXEC 观测入库;GUI 经 OpenAI 兼容接口接入

src/memoryd/ 各子模块:

子模块 职责
sensor/ 三层素材采集。L1 对话、L2 工具调用、L3 系统事件(inotify/shell/auditd)统一为 CloudEvents 信封,含质量评分、去重、崩溃重放
preference/ 偏好记忆。三通道证据收集、半衰期加权置信度晋升、双时态版本链(soft_invalidate + superseded_by
knowledge/ 知识记忆。分型晋升(workflow/template/case)、workflow 六字段结构化、episode 组装、实体倒排索引与双时态共现边表
forget/ 精准遗忘。JPU 五阶段(parse/mutate/contrast/execute/verify)、九项清理清单、审计收据、删后校验
security/ 敏感信息处置。①PII 可逆加密 ②凭据不可逆丢弃 ③自定义规则+LLM 语义识别;场景感知;DEK/KEK 内核 keyring 信封;eBPF LSM 门禁(security/ebpf/
core/ mem0 适配层与冲突仲裁(四操作:ADD/UPDATE/DELETE/NOOP)
api/ HTTP 接口。检索/入库/遗忘/自定义规则等业务端点,以及四个记忆面板的只读取数端点与 SSE 实时推流
paging/ 记忆分层与衰减。core/recall/archival 三层、Ebbinghaus 衰减、按容量淘汰
models/ 数据模型。CloudEvents 事件信封与记忆条目定义
store/ 存储抽象

脚本

路径 内容
scripts/deploy/ 部署与启动。start-all.sh 一键拉起全栈、start-memoryd-all.sh 记忆服务全栈、build-gui.sh 编译 GUI、memoryd-lsm-guard eBPF 门禁加载器
scripts/(根) 评测 harnessrun_all_eval.py 六项指标一键跑齐;eval_*.py 各指标单项评测;bench_*.py 延迟/召回质量/资源占用/关联增益基准;e2e_verify.py 真机 19 跳端到端自断言
scripts/sensor/ 采集侧钩子(shell hook 等)
scripts/fixture/ 测试夹具生成

数据

路径 内容
data/eval/ 评测数据集与结果。标注样本集(敏感 680/冲突 239/检索 57/偏好 15)、五 persona 银标准真值(430 条事实)、各项评测的结构化结果 JSON
data/memoryd/ 运行时数据库。实体索引、偏好证据、episode、遗忘审计收据等
data/sensor/ 原始事件表(raw WAL),支持崩溃重放
data/fixtures/ 测试夹具
data/models/ 本地模型权重挂载点

测试与其他

路径 内容
tests/ 离线单元测试,634 项。tests/memoryd/ 覆盖各子模块,tests/test_memoryd_hook.py 覆盖记忆接线
docs/ 全部文档。编号文档为主线(00 总览/01 方案/03 部署/10-11 测试报告);docs/research/ 调研与设计稿,docs/archive/daily/ 开发日报与阶段记录,docs/onboarding/ 新人上手
external/ 第三方与 fork 代码。kylin-aiassistant-3.0.0.0/ 是 fork 后加入四个记忆面板的 GUI 源码(本项目改动集中在 memorypanel/res/qml/memory/);open-interpreter/ 为智能体内核
openkylin_SDK/ openKylin 官方向量引擎客户端 SDK
JPU_codes/ 遗忘算法的论文原型代码(ACL 2026 JPU: Bridging Jailbreak Defense and Unlearning via On-Policy Path Rectification,arXiv:2601.03005)
logs/ 运行日志(不入库)

四、说明

  • 密钥管理OPENAI_API_KEY 仅通过环境变量传入,不写入任何受版本控制的文件。
  • 非交付目录node_modules/客户需求/data/backup/data/traces/logs/ 属本地产物或素材,不构成交付内容。
  • GUI 编译external/build-3.0.0.0/ 为构建产物目录;编译见 scripts/deploy/build-gui.sh(并行度默认 4——更高并行度下 g++ 12 在 Qt 模板实例化上 会偶发内部编译错误)。
关于
354.7 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

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