文档按官方模板编写,人工审核后转换为 PDF;原创承诺及 AI 声明按模板完成手抄。PPT 使用官方模板,测试、交付物和视频与提交版本对应。开发聊天、内部审阅资料、QA 预览和私有配置不放入正式材料。
第三方与许可
DSH/Cordis/Schemastery、React、Node/SQLite、PDF.js、SheetJS、fast-xml-parser、fflate、构建测试工具和 Linux 系统库均为第三方组件,遵循发布包 LICENSE/notices。DeepSeek 按在线服务授权使用,未分发模型权重。组件调用、直接引用或改写源码及自创代码比例列于项目说明书。
智忆:DSH 偏好与知识记忆插件
智忆面向操作系统大赛第三赛道,在 DeepSeek Harness(DSH)基线上以插件形式加入偏好记忆、知识记忆、生命周期管理与精准遗忘。DeepSeek 提供 Agent 推理及模型辅助抽取;DSH 提供工具、会话、附件、模型接口与前端扩展。插件通过公开接口接入宿主,目标部署平台为 openKylin。
当前运行实现为 TypeScript/Node.js、React、JSON 偏好存储与 SQLite 知识存储。知识服务关联事实、来源、原文证据及会话贡献,以图谱呈现关系和来源,以本地词元及证据打分完成查询。
功能与使用场景
例如,用户先表达“以后代码注释使用英文”,后续会话读取当前偏好;再明确保存运维手册,Agent 可查询其中的路径、端口和操作条件。用户要求忘掉某个人的单位并保留研究方向时,知识页先展示删除及保留集合,确认后执行。
模块与数据
偏好 JSON 写入使用单存储实例串行事务与原子替换,失败不提交;不提供多进程同时写一个 JSON 文件的互斥。取消设置 unset 只取消指定作用域的当前覆盖,保留历史并允许继承更宽作用域;永久遗忘另行清理值、证据及快照。
知识按同一用户跨项目共享,来源项目和环境可显式筛选。图谱由有效事实投影,用于展示、追溯和管理;查询对词元、主体、事实值和证据打分,并补充有限运维同义规则。工作记录由 MemoryService.query() 单独检索,按用户、工作区、项目和任务边界过滤,以受控领域词表增强中文改写;记录隔离不改变知识服务的跨会话复用规则。
知识组有效权重为 W=min(12,max(c)+min(2,其余有效贡献之和)),c 为各会话有效贡献。初始贡献 1 分,候选观察后续 5 个来源会话终结轮次;有效采用加 1 分,同组每请求最多一次,采用当轮不衰减。未采用时只衰减当前活动会话贡献,短/中/长期分别为 0.15/0.10/0.05 分。晋升门槛 2/6/10,降级门槛 8/4,贡献低于 0.5 失效。归档与永久遗忘分别管理。
数据目录由 src/scripts/knowledge/runtime-config.mjs 统一解析;启动及平台检查输出最终 home 和数据库位置。偏好路径支持 DSH_MEMORY_STORAGE_PATH,知识使用 SQLite、管理上传区和任务缓存。凭据、访问 token、本地用户数据及安装依赖不提交、不打包。
环境要求
本次检索与性能复测使用 openKylin、Node.js 24.19.0 。启动时执行平台检查,确认运行时、数据库位置及 OS 模块状态。
偏好扫描默认 mask,要求 Linux 扫描器可用;缺失或失败时拒收。仅在明确选择关闭敏感检查的本地调试中使用 DSH_MEMORY_SENSITIVE_SCAN=off,目标部署必须重新核对扫描状态。
安装与启动
以下命令均在本插件根目录执行。
openKylin 独立验收运行时
setup-openkylin.sh 使用 src/scripts/runtime/ 的固定清单和锁文件,通过 npm ci 安装隔离 DSH 运行器及解析依赖,再安装插件。它包含完整 DSH 依赖;其目录体积不能当作知识模块自身大小。OS 编译、服务、权限及桌面扩展按 OS 说明 和 src/os/deploy/ 配置。
默认 Agent 端口 3091、知识 API 端口 3092。打开启动器打印的完整带 token 网址,进入 Agent 对话或 /memory 管理页。知识 API 是内部服务,直接打开出现未授权属预期行为。端口占用会拒绝启动,不能打开已有端口代替启动成功。
Ctrl+C 或 q 回车结束本次启动的进程。子服务退出后启动器保留另一服务,并在 60 秒窗口内最多重启 3 次;网页重试读取,不自动重放上传、修改和遗忘。
Windows 开发
首次安装需要 Node、npm、pnpm、Bun。已有安装只需启动;修改源码后按构建步骤重建并重启,在浏览器强制刷新。Windows 不提供原生 Linux 扫描器、eBPF 和隔离机制。
安装到已有 DSH
宿主插件模式由监督器自举 Node 知识服务,使用随机内部端口和 token。已有宿主仍须安装文档解析依赖,具体见 源码运行说明。构建后按宿主插件安装流程刷新副本,重启 profile。cordis.patch.yml 入口保持相对路径 ./lib/index.js。
模型配置
Agent 使用 DSH 模型配置。知识配置可从 src/scripts/knowledge/model-config.example.json 复制为 src/knowledge-models.local.json,填写 LLM_MODEL、LLM_BASE_URL、LLM_API_KEY 对应字段,环境变量优先。此私有文件不提交。未配置模型时可使用规则事实及管理界面,不能据此验证真实模型质量。
可用 DSH_NODE_KNOWLEDGE_LLM=0 关闭语义补充。默认每批约 3500 字符、重叠 400 字符、并发 2,单次模型调用 25 秒、运行预算 60 秒,最多 24 批;失败/部分完成在任务中明确显示。语义遗忘超时默认 6 秒、最高 8 秒,候选过多或不能可靠确定保留范围时要求缩小或澄清。
文档、采用与遗忘
明确向 Agent 要求将附件保存为知识,随后在“记忆 → 知识”检查任务、候选事实和原文证据。附件上限当前默认及硬上限均为 8 MiB;扫描件需显式配置外部 OCR。表格使用文件缓存值,不重算公式。解析成功或原文覆盖率不代表已完整提取所有知识。
knowledge_search 用于 Node 知识事实与证据;memory_query/memory_search 用于偏好工作记录。knowledge_confirm_use 记录明确采用,knowledge_manage 处理授权管理操作;不能将“已检索”当作“已使用”。采用结算以真实宿主日志、当前呈现和版本核验为依据,仍有保守启发式匹配的边界。
知识遗忘在面板生成预览并确认,确认前检查事实、删除/保留范围及快照。范围不明或存在保留冲突时拒绝扩大删除。插件管理正文采用等长空白切除目标范围,保留无关证据偏移;联动事实、贡献、旧呈现、相关上传及任务缓存和重入指纹。用户再次提供已遗忘的文件时,在对话选择“重新提取”即可创建新的候选知识,不要求固定语句,也不恢复旧权重;取消或仅重复上传不会自动恢复。普通重复提取复用同版本、同模型配置下的有效批次检查点,失败批次继续提取。遗忘会中止相关的未完成模型请求。宿主原始附件、聊天、外部备份、模型服务记录及设备历史页不在清理保证内。
操作流程见 demo 使用说明;源码安装及新旧路径对照见 源码说明。
构建与验证
Windows 使用 setup-dev.cmd。构建更新 src/lib/index.js、src/lib/client.js 等产物,安装副本和浏览器缓存也需刷新。Linux 原生模块:
对应回归入口:
测试使用临时数据和提供商替身,Linux 或特权用例按平台执行。直接导入 TypeScript 参数属性的 Node 用例需加 –experimental-transform-types。先完成相应构建和依赖安装,保留执行结果。tests/ 统一保存回归用例和比赛验证材料。npm –prefix src test 构建宿主后运行 tests 根目录及 knowledge/ 的 MJS/TS 用例;OS 实机验证另行执行。
质量与性能脚本:
确认脚本的输入、模型及参数后运行;真实模型可能产生服务费用。OS 敏感区间评测入口为 tests/os/eval_f1.py。报告使用独立路径,避免覆盖提交证据。正式对照需固定同一 DSH、模型、硬件及任务集,比较禁用/启用插件并计入子进程。
实验测试
以下结果与项目说明书保持一致,分别报告六项赛道指标和机制专项。偏好使用 50 例标注数据;知识记录使用冻结的 400 条记录、200 个问题,150 个正查询参与宏平均。图谱及生命周期专项使用独立 Nginx 手册,敏感识别引用 openKylin 实机历史记录。
偏好准确率按 TP/(TP+FP) 计算,为 34/(34+2)=94.4%。Recall@5 逐个正查询计算 Top-5 相关命中比例后取平均,为 (50+40+49.5)/150=93.0%;无答案查询不计入召回均值。该结果来自生产 MemoryService.query(),与图谱事实接口分别统计。冲突使用代理预先冻结的裁决标签,经真实 HTTP 服务执行及重启复核,覆盖明确修订、明确回退、环境筛选、项目筛选、过期版本拒绝和无效证据拒绝。
性能复测使用 2,001 条工作记录、1 条用户偏好及 400 条图谱事实,单并发运行六轮:三轮各 100 次、三轮各 500 次,共 1,800 次正式请求,每轮 20 次预热单独处理。全部请求完成返回内容校验,首批长尾纳入合并统计。客户端从发出 HTTP 请求到完整解析结果计时,覆盖记录查询、偏好提示词装配、知识检索、版本证据核验及上下文返回;延迟升序排列取第 ⌈0.95n⌉ 项,P95 为 275.00 ms,不含模型生成回答。
RSS 为同时采样的检索宿主和知识服务子进程内存之和的峰值;CPU 为进程 CPU 耗时除以墙钟时间与 16 个逻辑 CPU 数。相对关闭记忆的同宿主基线,差值为 +306.0 MiB、+2.58 个百分点。
专项结果对应上述验收样本。当前知识查询采用本地词元与证据打分;赛题指定三阶段链路未在本部署版本实现。
多类型文档提取补测使用 30 篇受控文档、5 类内容、6 种格式及 372 条预先冻结的核心关系,每篇独立提取 3 次。另有 15 次同源格式对照和 4 项各 3 次的补测,共 117 次真实模型提取任务。
标注与语义裁决均由代理完成,尚无第二人独立复核。覆盖率限定于受控短文,证据率只核验已入库事实,不能代表任意长文的整体图谱质量。全部重复、严格匹配和较弱项保存在 图谱提取质量报告 及对应 JSON 中。
完整实验材料位于 tests/。记录召回见 召回复测报告,性能汇总与逐请求数据见 性能报告、同名 JSON 和 JSONL。偏好见 偏好报告,冲突原始数据为 tests/results/conflict-correctness-local-20261005.jsonl,敏感识别见 F1 报告。图谱与生命周期原始证据保存在 tests/supplement-local-20261003/ 和 tests/logs/global-host-results.json。
麒麟 demo 验证
demo/ 包含安装与启动工具、当前应用快照、合成演示资料及验收脚本。将交付包解压到目标麒麟机器,以普通桌面用户进入 demo/,按 demo README 配置模型、安装并运行。完整安装后,依次执行:
验收输出保存于 demo/reports/。按 演示流程 检查偏好跨会话生效、文档入库与证据、任务采用与晋升、自然语言遗忘及重启持久性;安装步骤见 安装说明。
决赛材料目录
以《决赛作品提交说明》为准整理原 fork 仓库 master,最终目录包括:
文档按官方模板编写,人工审核后转换为 PDF;原创承诺及 AI 声明按模板完成手抄。PPT 使用官方模板,测试、交付物和视频与提交版本对应。开发聊天、内部审阅资料、QA 预览和私有配置不放入正式材料。
第三方与许可
DSH/Cordis/Schemastery、React、Node/SQLite、PDF.js、SheetJS、fast-xml-parser、fflate、构建测试工具和 Linux 系统库均为第三方组件,遵循发布包 LICENSE/notices。DeepSeek 按在线服务授权使用,未分发模型权重。组件调用、直接引用或改写源码及自创代码比例列于项目说明书。
开发与文档使用了 OpenAI Codex 等工具辅助,人工复核、使用环节、来源及限制登记于《人工智能及第三方工具使用说明》。不提交真实凭据、完整开发聊天或个人原始数据。