dsh-material-library:把对话产出收进真实文件夹,一键回到来源会话

前言

用 DeepSeek Harness(DSH)跑任务时,产出往往落在会话工作目录里:一段 Markdown、一个 out/ 目录、或某次定时任务生成的 HTML。对话一关,这些路径还在磁盘上,但和「是哪次会话、哪条任务写的」之间的关联要靠你自己记。常见做法是复制到笔记软件或自建目录,路径引用和标签各管各的,想回到当时的工作区侧边栏再对照上下文,通常要手动找会话。

下面介绍社区插件 dsh-material-library(维护者 yingqi-studio,DSH 目录分类为「记忆」)。它在 DSH Web 侧栏提供材料库界面:从对话里采集文件夹或文件(不复制,只登记引用)、在磁盘上用真实目录树和 .md 笔记组织内容,并用标签索引;对已采集条目可一键切回原始会话并在右侧打开对应目录。

这是什么

dsh-material-library 是面向 DeepSeek Harness 的材料库插件:收集一次对话产生的文件夹、文件或笔记,用真实文件夹和标签保存,并支持一键重新打开来源会话。

插件以 npm 包 dsh-material-library 发布(当前资料中版本 1.4.4,许可证 MIT)。要求宿主具备侧栏入口与右侧边栏等插槽(dsh.web 0.2.x 一类环境),engines.dsh 声明为 >=0.2.0。

核心功能

从对话采集,磁盘上仍是真文件

会话标题栏和材料库内的「从对话采集 / Collect from chat」会打开选择器:选会话、浏览其工作目录,再选文件夹或文件,填写名称、库内文件夹和标签。条目指向原始路径,不会复制文件。

库根目录默认为 ~/.dsh/materials(可通过插件配置项 root 改路径)。笔记是磁盘上的 .md;文件夹树就是库根下的目录树;标签写在库根旁的 .index.json。你可以在 DSH 外直接用编辑器改这些文件。

三栏浏览与系统打开方式

界面类似 Finder:来源列表(全部材料 / 文件夹 / 标签)、列表视图(名称、更新时间、文件夹、标签)、详情 pane(文件卡片、默认应用按钮、「打开方式…」菜单)。在 macOS 上通过 open 用默认或指定应用打开,或在 Finder 中显示;图片可在详情里预览,文本与 Markdown 在 pane 内渲染。

Markdown 渲染风格与会话消息一致(标题、列表、引用、代码块、表格等),对外部路径的引用条目同样适用。

回到来源会话

对已采集条目,Open in original session 会切换到该对话,并在会话右侧边栏打开对应文件夹。

编辑、搜索与版本

侧栏可重命名或删除文件夹、标签(标签重命名会全局替换;文件夹重命名会移动其下文件)。任意条目可改名称、文件夹、标签;支持按名称、正文、标签搜索。

笔记每次保存会把上一版正文存到 .history/(每个文件最多 30 版)。详情头里的 Versions 可查看并恢复;恢复前会先快照当前正文,因此恢复本身可再撤销。引用条目与纯文件夹条目没有版本历史。

收进库与导入

采集条目可通过「收进库 / Copy into library」复制为库内真实文件,原路径不动。HTTP 接口 /import 可将用户主目录内的文件或目录复制进库(单次最多 2000 个文件),命名规则与库内其它写入一致、避免冲突。

Agent 工具与自动归档

宿主在每个会话注册工具 materials_archive,供智能体或定时任务把产出登记进库,例如:

materials_archive(path="out/", folder="日报/2026-11", tags=["日报"], include=".html,.md")

参数含义(摘自 README):path 为文件或目录(支持 ~,相对路径相对会话工作目录;省略则指工作目录);folder 为库内文件夹;tags 与已有标签合并;depth 控制归档深度;include 为后缀或 glob 过滤;limit 默认 50、最大 200。同一路径重复登记会刷新标签与文件夹,不会 duplicate 条目,文件本身仍不移动、不复制。

首次人工归档某类产出后,库会记住规则(.rules.json):在定时任务会话结束时会自动再次归档同路径下的新文件;普通聊天回合结束不会触发。定时任务提示词末尾可加一句,例如:跑完把 out/ 收进材料库,folder 用「日报/当月」,tags 用 ["日报"]。

UI 通过同源 JSON 路由 /api/dsh-materials 与宿主通信(README 中有完整路由表);变更经串行存储写入,冲突返回可读的 4xx 错误。写入路径限制在库根内,采集目标须在用户主目录内。

安装与启用

在终端为指定 profile 安装(命令来自官方 README):

dsh plugin --profile <your-profile> add dsh-material-library

也可从 GitHub 安装:

dsh plugin --profile <your-profile> add github:yingqi-studio/dsh-material-library

在 DSH Desktop 中打开 Plugins,搜索插件名安装亦可。安装后重启 dsh web 或刷新页面,侧栏会出现材料库图标。

如需更换库位置,在插件配置中设置 root。

典型用法

1. 手动从某次对话收一个交付目录

打开材料库 →「从对话采集」→ 选会话 → 在工作目录里选中文件夹或文件 → 命名并选库内文件夹、标签 → 保存。之后在列表里点 Open in original session 即可回到该会话上下文。

2. 定时任务结束时让 Agent 登记产出

在任务说明末尾要求调用 materials_archive,或首次在对话里手动归档一次以建立自动规则;后续同路径新文件在定时任务跑完时可按规则进入库内对应文件夹与标签。

3. 把外部树复制进库

通过 UI 或 /import 将主目录下的目录复制进 ~/.dsh/materials(或你配置的 root),再在库内用标签和文件夹继续整理。

适用场景与注意

适合需要把 DSH 会话产出(脚本输出目录、说明文档、任务报表等)和「来源会话」绑在一起、又希望数据落在普通文件夹、便于 Git 或编辑器协作的开发者。

插件逻辑以当前 DSH 进程权限读写磁盘与调用系统打开命令;安装前请自行查看 GitHub 仓库 源码与 MIT 许可证。DSH 社区插件目录站点与 DeepSeek / 幻方无官方从属关系,本文介绍的是社区维护的独立插件。

「打开方式…」等行为在 README 中按 macOS open 描述;其它操作系统上具体表现取决于宿主与插件实现,以你本地环境为准。

结尾

dsh-material-library 把「对话里产生的路径」变成带标签、可搜索、可版本管理的库内索引,并在需要时一键回到原始会话与工作区目录,适合作为 DSH 工作流里的长期材料层。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye