目录

面向 OS Agent 的多源融合偏好与知识记忆系统

系统简称:MemoryOS-OK · 参赛队伍:启忆智能 · 参赛成员:A(单人)

研究生操作系统开源创新大赛社区赛题:面向 openKylin 的智能体记忆提取与精准遗忘机制。

MemoryOS-OK 是面向桌面智能体的记忆中间件。工具执行结果、用户操作反馈和手动配置统一进入系统,形成有来源、有版本的偏好与知识;检索结果进入任务上下文和本地推理,遗忘操作同时约束存储、索引、任务状态与已登记的推理缓存。

应用场景与主要功能

以办公交接为例,系统记住不同项目的流程与编号,学习用户选择工具和输出风格的习惯,遇到新旧信息冲突时给出处置。用户要求忘记甲项目后,甲项目相关内容和缓存停止使用,乙项目记录继续可用。

  • 多源接入、数据清洗、质量校验和敏感信息过滤。
  • 操作习惯、输出风格、安全策略提取,支持偏好历史、差异比较和追加式回滚。
  • 工作流、案例和模板存储;规则、语义、模型三级知识仲裁。
  • 短中长期流转,向量与关键词联合召回,带来源的上下文编译。
  • 工作区撤销纪元、可恢复遗忘事务、推理缓存清理和逐层检查。
  • mmap 版本存储、页缓存提示、systemd/cgroup 资源配置及 journald 审计。
  • Python、命令行、Unix socket 常驻服务和 MCP 接口;可交互网页演示。

目录与材料

本次先更新决赛代码与展示材料。两份须本人手抄的声明位于 docs/pending/,当前尚未作为正式声明提交;收到完整手抄件后,将补入下列规范路径。报名系统作品展示提交是独立操作,不由 Git 更新代替。

README.md
src/                        产品源代码
native/                     官方向量 SDK 桥
config/                     工作集与资源配置
docs/
  项目说明书.pdf
  项目创新说明.pdf
  成员分工及主要贡献说明.pdf
  人工智能及第三方工具使用说明.pdf
tests/                      自动化回归
  evidence/                 匿名化验证材料及来源摘要
eval/                       数据集、基线、消融与评测脚本
adapt/                      麒麟 SDK 和目标系统验证
demo/                       隔离工作区演示
presentation/
  决赛现场演示PPT.pptx
  技术答辩备查.pptx
  主讲路线与备查索引.md
  决赛演示视频.mp4
作品原创承诺书.pdf

文档解释实现、数据对象和存储格式;测试记录解释每个结论的输入、平台和测量方法。模型、系统 SDK 二进制和开发工作区不纳入源码仓库,不使用 Git LFS。

现场报告限时7分钟,包含展示。决赛现场演示PPT.pptx 为14页主讲版,按背景、三大挑战、针对性设计和指标验证组织。配合72秒交互回放,排练预算6分33秒。随后5分钟提问使用单独的56页 技术答辩备查.pptx。逐页讲稿与时间安排见 presentation/,设计、指标、代码及证据对应关系见 docs/设计与指标对应.md。

系统环境与依赖

  • Python 3.10 以上;openKylin 2.0 SP2 与银河麒麟桌面 V11 有目标系统运行记录。
  • 核心依赖:NumPy、cryptography、sqlite-vec,Python 3.10 另需 tomli。
  • 最小功能演示使用 Hash embedding 和 NumPy,不需要下载模型,不依赖云端 API。
  • 真实语义检索选择 BGE 或麒麟官方文本向量化 SDK;真实本地生成需要 llama.cpp 和兼容的 Qwen3 GGUF 模型。
  • 官方向量 SDK 桥需要 C++ 编译器、make、pkg-config 和系统开发包。
  • requirements.txt 包含可选模型与完整研究工具依赖,首次安装较大;仅查看功能可先用下方最小安装。

构建和安装

在仓库根目录运行:

python3 -m venv .venv
. .venv/bin/activate
python -m pip install -e .
python -m pip install pytest pillow

需要完整模型研究依赖时运行 python -m pip install -r requirements.txt,或使用 bash scripts/install.sh。下载依赖需要网络,后续使用已安装模型可在本地运行。遇到下载证书错误应修复代理或证书配置,不关闭 TLS 校验。

官方向量数据库桥:

pkg-config --modversion kysdk-vector-engine-client
make -C native/kylin_vector_bridge
export MEMOS_KYLIN_VECTOR_BRIDGE="$PWD/native/kylin_vector_bridge/memoryos-kylin-vector-bridge"

系统 SDK 和模型包从系统软件源及官方来源安装,版本、离线模型摘要和验证步骤见 adapt/、docs/项目说明书.pdf。普通 Hash 演示不代表已安装官方 SDK。

运行网页演示

python demo/judge_console.py --host 127.0.0.1 --port 8765

浏览器访问 http://127.0.0.1:8765/;六步控制台位于 http://127.0.0.1:8765/console。端口已占用时改用其他端口。演示在临时隔离工作区执行,按多源接入、偏好、冲突、检索、遗忘预览、执行与恢复依次展示;默认推理缓存为可控模拟,真实模型结果单列在测试材料中。

运行最小 Python 案例

from tempfile import TemporaryDirectory
from memoryos.core import MemoryOS

with TemporaryDirectory() as workspace:
    memory = MemoryOS(workspace, embedding="hash", vector_backend="numpy", enable_llm=False)
    try:
        memory.remember("甲项目上线前检查服务日志", source="manual_config", mem_type="workflow")
        print([hit.content for hit in memory.recall("甲项目上线")])
        print(memory.forget("忘记甲项目", confirm=True))   # 只预览
        print(memory.forget("忘记甲项目", confirm=False))  # 执行
    finally:
        memory.close()

命令行入口为 memos --help。forget 默认预览,只有显式 --yes 才执行;常驻服务为 memos --workspace <专用目录> serve。不要对重要工作区试验删除命令。

测试与验证

本次匿名交付树的推荐产品回归入口:

python scripts/test_final_core.py

此入口按 tests/test-groups.json 的显式清单运行产品和可选平台测试,保留原断言。2026-10-07 对匿名交付树运行得到 1840 通过、25 跳过、10 个旧交付检查不在本次范围;测试记录见 tests/evidence/finals-20261007/。历史挑战杯文件布局和旧录像摘要测试单列,不作为本轮产品通过数。

同日补跑分支跟踪仍为1840项通过;src/ 64个Python模块语句覆盖率87.89%,分支覆盖率77.29%。机器报告与完整用例结果位于 tests/evidence/complete/NEW_TESTS.json 及其列出的原始文件。技术答辩备查第33至52页和 tests/evidence/complete/INDEX.json 汇总完整实验主题与640份历史来源,历史数据和本日新增测试分开。

基础回归:

PYTHONPATH=src python -m pytest tests/test_core.py tests/test_unified_forget.py \
  tests/test_preference_history.py tests/test_mmap_store.py -q

决赛新增及推理保护链:

PYTHONPATH=src python -m pytest tests/test_grounded_compiler.py \
  tests/test_grounded_answer_contract.py tests/test_forget_project_scope.py \
  tests/test_epoch_cache.py tests/test_inference_forget_barrier.py \
  tests/test_dynamic_cache_provenance.py tests/test_memws_integration.py \
  tests/test_page_cache.py tests/test_process_witness_integration.py \
  tests/test_working_set.py -q

完整开发回归为 PYTHONPATH=src python -m pytest tests -q。其中历史材料门禁会校验特定历史文件及摘要,匿名交付副本与原开发树分别记录,不通过重写原始摘要掩盖差异。操作系统限定测试和未安装的可选后端按测试标识跳过。

目标系统验证:

REQUIRE_KYLIN_SDK=1 SKIP_INSTALL=1 FULL=1 bash adapt/kylin_verify.sh

真实问答与遗忘实验(仅在专用测试工作区运行;输出目录必须不存在):

python eval/eval_grounded_runtime.py \
  --server /path/to/llama-server \
  --model /path/to/Qwen3-0.6B-Q8_0.gguf \
  --output /path/to/new-run \
  --embedding kylin_sdk --vector-backend kylin_vector --require-kylin

V11 的 KARE 和官方运行库配置以 adapt/kylin_verify.sh 为入口。该实验区分脚本运行结束与答案全部正确,难例不通过时会保存原文并返回非零状态。

结果索引

验证 结果 测量范围
最终开发回归 2080 通过,25 跳过,0 失败 原开发树,本地 CPU
V11 核心回归 491 通过,0 失败 与实测源码绑定的目标系统运行
V11 四步记忆与遗忘 4/4 回答正确,旧上下文拒绝及缓存擦除通过 官方双 SDK、本地 Qwen3、CPU-only
V11 官方 SDK 检索 P95 40.818 ms embedding+官方向量库+融合+轻量重排
openKylin 官方 SDK 检索 P95 29.040 ms 对应历史配置的完整检索链
openKylin 前缀消融 稳定前缀 TTFT P95 208.34 ms,复用率94.68% 三次服务启动、2700请求,同内容排列对照
固定候选检索 Vector Micro Recall@5 87.869%,RRF 87.447% 500题、948个相关关系,深度15/通道
撤销300例 残留、陈旧包、并发复活、误删各0/300 本地程序真值测试

主要记录位于 tests/evidence/finals-20261006/、eval/reports/、adapt/reports/。匿名化只处理路径和身份信息,原始数值、失败样例、原记录摘要与导出摘要保持可追溯。

初赛至决赛改进

沿用初赛仓库和 master 历史,初赛快照为 59d6c58。决赛阶段加入和加固了:任务来源与动态缓存撤销、生成租约和统一截止时间、Linux 运行进程及连接核验、V11 官方双 SDK、模型会话格式、精确上下文预算、明确项目遗忘范围及严格答案验收。原有五职能记忆模块不重复计作决赛新成果。

已知限制

  • 20 条复杂回答对照中新格式精确正确12/20,冲突、干扰指令和错误属性仍有失败;不能由检索命中或缓存加速推导回答正确。
  • Hash 模式只用于功能演示,不作为语义精度或目标平台性能依据。
  • BPF LSM 源码和编译记录不等于目标内核已挂载强制执行;正式双人金标、物理机功耗和 ARM64 等需要进一步验证。
  • 记忆当前头存在明文;删除保证针对受管工作区及已附着运行时,不覆盖历史外部备份、VM 快照或磁盘镜像。
  • 本地指标、openKylin 指标和 V11 指标按平台分别报告;检索、首字和完整生成耗时不混用。

许可与工具使用

项目代码采用 Apache-2.0,第三方代码、模型和数据按各自许可使用。详见 LICENSE、supply-chain/ 和《人工智能及第三方工具使用说明》。生成式 AI 参与开发和材料辅助,成员 A 承担最终核验与成果责任;不把模型输出当人工真值,也不估算 AI 代码比例。

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

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