目录

Memoryd

面向 Linux 智能体的记忆提取与精准遗忘系统,2026 openKylin 创新大赛参赛作品。

Memoryd 把对话、工具调用和系统事件整理成可检索的长期记忆,让智能体在后续任务中继续使用已有经验。用户可以查看记忆的来源与变化,也可以指定要忘掉的对象或经历;系统定位相关记录、清理派生内容,并给出校验结果与审计收据。

提交材料

材料 入口与状态
项目说明书 决赛版 PDF
项目创新说明 PDF · Markdown
成员分工及主要贡献说明 PDF · Markdown
人工智能及第三方工具使用说明 PDF · Markdown
测试及验证材料 测试入口
可运行交付物 部署与演示入口
决赛演示 PPT 决赛版
决赛演示视频 MP4,约 4 分 5 秒、11.43 MB
作品原创承诺书 原签名版 PDF,已归位

本地整理状态与后续事项见 提交材料清单。本次目录整理未重新执行全栈部署或全部历史实验。

应用场景与主要功能

  • 连续任务协作:记录用户偏好、任务经验和相关文件线索,在后续对话与工具执行时按需要供给记忆。
  • 经验查找与追溯:从向量记忆或历史事件查找依据,查看来源、版本变化与冲突处理结果。
  • 敏感信息受控使用:对个人信息、凭据和用户自定义敏感内容分别处理,在模型调用、端侧显示、工具执行和回流时执行相应规则。
  • 定向遗忘:按对象或任务经历定位关联记忆,处理共享记录与派生数据,返回遗忘收据并检查残留。
  • 可观察的运行过程:桌面端提供此刻、归档、溯源、系统四个面板,另有网页工作台与命令行入口。

系统结构

麒麟 AI 助手 GUI / 网页工作台 / 命令行
                  │
          agent_runtime :7100
        自研对话、工具循环与确认流程
                  │ 事件采集 / 记忆供给
             memoryd :7200
    抽取 · 偏好/知识管理 · 检索 · 安全 · 遗忘
                  │
    本地 gte-base 嵌入 + 官方 kylin-milvus
      Linux keyring / 审计 / 执行沙盒等机制

当前 agent_runtime 使用自研执行内核和 LiteLLM 调用适配;Open Interpreter 是早期原型参考,现有环境名 openinterp 与部分依赖沿用历史命名。Memoryd 的抽取逻辑在自研层实现,Mem0 用于存储适配相关能力。

路径 内容
src/memoryd/ 事件采集、偏好与知识、检索、安全、遗忘、API 和命令行
src/agent_runtime/ 对话与工具执行、记忆 hook、确认流程、沙盒及 HTTP 服务
external/kylin-aiassistant-3.0.0.0/ 麒麟 AI 助手源码及本项目的记忆界面扩展
external/openkylin_SDK/ 官方向量引擎客户端 SDK
scripts/ 安装、部署、评测和数据处理脚本
config/ 自定义敏感信息规则等配置
data/eval/、data/fixtures/ 评测样例与测试夹具
docs/、tests/、demo/、presentation/ 说明文档、验证材料、运行入口与演示材料

保留 external/、scripts/、config/、data/ 是为了沿用源码中的相对路径和 GUI 构建布局。

系统环境与依赖要求

推荐在 openKylin 2.0 SP2 的专用桌面环境部署。历史实机验证使用 Linux 6.6 系列内核;其他发行版上的完整部署尚未验证。

依赖 用途
Python 3.11、Miniconda openos 运行 memoryd,openinterp 运行 agent_runtime;启动脚本使用 ~/miniconda3/envs/
requirements.txt、requirements-agent.txt 两个 Python 环境的依赖清单,保留部分原型时期兼容依赖
官方 kylin-ai-vector-engine 与 gte-base ONNX/tokenizer 向量存储和本地嵌入;本交付使用 kylin-milvus,不采用 Chroma 备用运行方式
Qt 5、qmake、make、C++ 编译器、UKUI/麒麟 SDK 开发包 GUI 编译;完整包清单见 上游构建依赖
curl、iproute2、bubblewrap、mate-terminal 健康检查、端口检查、工具执行沙盒和桌面启动
可访问的大模型 API 及相应密钥 记忆抽取、冲突判断与智能体推理;示例采用 DeepSeek 官方端点
BPF LSM、相关系统权限 OS 安全机制的完整演示;未启用时应按系统面板实际状态说明

建议至少 4 核 CPU、8 GB 可用内存与 20 GB 可用磁盘空间。本仓不打包本机模型权重或已有运行数据库;模型需在演示机上单独准备,数据库在运行时创建。第三方代码、模型与许可说明见 工具使用说明。

安装与构建

以下命令均在仓库根目录运行。先确认环境,再安装依赖、编译 GUI:

bash demo/check.sh
bash demo/install.sh
bash demo/build-gui.sh

demo/install.sh 调用原有安装脚本创建两个环境并做导入检查,会创建数据目录;demo/build-gui.sh 调用原有 GUI 构建脚本,重新生成 external/build-3.0.0.0/,默认并行度为 4。Python 服务通过 PYTHONPATH=src 直接运行,无需额外打包。全部入口支持 --help,帮助命令不执行安装或启动。

运行方法

在专用演示环境的桌面终端中执行:

source demo/config.example.sh
read -rsp 'API key: ' OPENAI_API_KEY
export OPENAI_API_KEY
printf '\n'
bash demo/start.sh

配置示例不含密钥。memoryd 与 agent_runtime 要使用同一端点族及对应密钥;切换服务商时同时修改示例中的预设、URL 和模型名。--no-gui 只关闭 GUI,底层记忆服务的启动脚本仍需要桌面终端。

启动入口调用 scripts/deploy/start-all.sh;7100、7200 或 19530 已占用时退出,避免把另一个工作目录的实例当成本次部署。查看已有实例只需:

bash demo/check.sh --services

这个命令只读取环境和两个 /health 端点;健康接口通过表示服务可响应,功能是否正确应通过后续演示与测试判断。启动成功后,memoryd 使用 7200 端口、对话服务使用 7100 端口、向量桥使用 19530 端口。操作步骤见 演示指南。

测试方法

测试代码和历史实验材料的对应关系、运行条件与结果入口见 tests/README.md。在专用测试副本中安装 pytest 后,项目测试的标准入口为:

~/miniconda3/envs/openos/bin/python -m pip install pytest
PYTHONPATH=src ~/miniconda3/envs/openos/bin/python -m pytest tests/ -q

部分用例与集成脚本依赖实际模型、系统组件或运行服务;请按测试索引区分离线单测和有副作用的集成验证。遗忘、入库和全链路评测应在测试数据环境执行。原始实验报告保留原时间、配置与样本口径,不将历史结果作为本次同步后的重测结果。

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

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