前言¶
DeepSeek Harness(DSH)把能力拆成插件,智能体通过工具调用访问外部系统。若你已经在内网或本机跑着 AList v3,常见做法是另开浏览器或脚本调 API:列目录、搜文件、上传、改存储挂载都要切换上下文,写操作还要自己管鉴权与误删风险。
下面介绍社区插件 dsh-alist(维护者 R-roker315),把「AList 上有什么、放到哪、谁能看」尽量收敛到对话里完成;写操作走 DSH 原生审批,密码与 Token 按插件设计只写不读、不回显。
这是什么¶
dsh-alist 是 DSH 上的 联网工具 类插件:让 Harness 通过约 75 个 alist_* 工具,对 AList v3 做文件浏览、检索、上传,以及存储、用户、角色等管理端操作。
- 目录页:SkillHub — R-roker315/dsh-Alist-
- 源码与文档:GitHub — R-roker315/dsh-Alist-
- 许可证:MIT(见仓库 README)
- 社区目录星标:资料记录为 0(以目录页为准)
插件在 package 中的描述是:通过对话浏览、搜索、上传并管理 AList 实例(文件、任务、存储、用户、角色、元数据、设置、索引、分享等)。README 写明环境基线包括 AList v3.64.0(端点以 server/router.go 为准,README 称向下兼容到 3.2x 大部分端点)、Node.js ≥ 20.11、DeepSeek Harness 0.1.2-rc.1(peer 依赖范围见 package.json)。
核心功能¶
功能以仓库 README 与 catalog.js 端点表为准,装好后 agent 自动获得 75 个工具(README 称 73 个走端点表 + 2 个上传工具)。
只读与文件操作¶
- 列目录、取文件信息、只列子目录、关键词搜索、查看压缩包内部结构、取直链等,可在对话中完成。
- 建目录、重命名(单个 / 批量 / 正则)、移动、复制、删除、上传、离线下载、解压等写操作会触发强制原生审批。
管理端¶
README 列出管理端能力:存储挂载的增删改与启停、驱动与配置字段查询、用户、角色、元数据、站点设置、搜索索引、会话、分享、标签等。其中 alist_admin_*、alist_fs_link 等需要管理员凭据;普通用户可能得到 403,建议先用 alist_me 确认身份与角色。
安全与数据边界¶
- 凭据保存在本地 DSH 凭证库,插件对输出、审批文案、系统提示做脱敏,不回显到浏览器和模型。
- AList 返回内容视为不可信数据,不作为指令执行。
alist_fs_remove为永久删除(无回收站);批量 / 正则重命名影响面大,改前应先列目录确认。
工具域划分(只读 / 写、含上传与管理端数量)见 README 表格;完整参数表由 docs/tools.md 生成(node scripts/gen-tools-doc.js)。
安装与启用¶
安装前请自行阅读仓库源码与 MIT 许可证。插件以当前 DSH 进程权限访问你配置的 AList 地址,仅应在可信环境使用。
README 强调:命令行里直接敲 dsh 可能失败,因 CLI 内置在 DSH Desktop 安装目录,且默认 DSH_HOME 与桌面端实际 harness 目录可能不一致。Windows 上推荐用仓库脚本或按 README 设置 DSH_HOME、内置 Node 与 dsh 路径。
本地安装(README 推荐先试)¶
用 PowerShell 在插件仓库根目录执行:
powershell -ExecutionPolicy Bypass -File .\scripts\install-local.ps1 # 安装(link: 方式,改代码即时生效)
powershell -ExecutionPolicy Bypass -File .\scripts\install-local.ps1 -Uninstall # 卸载
等价手工步骤中,示例将插件以 link: 挂到 profile(路径需换成你的本机目录):
$env:DSH_HOME = "$env:APPDATA\dsh-desktop\harness"
$env:PATH += ";$env:APPDATA\dsh-desktop\harness\.desktop-bin"
$node = "C:\Program Files\DSH Desktop\resources\app.asar.unpacked\node_modules\node\bin\node.exe"
$dsh = "C:\Program Files\DSH Desktop\resources\app.asar.unpacked\node_modules\@deepseek-ai\dsh\lib\bin.js"
& $node $dsh plugin --profile web list
& $node $dsh plugin --profile web add link:C:\Users\Administrator\Desktop\dsh-alist
装完后需重启 DSH Desktop(或重启 profile),插件才会加载。免打包调试可直挂 overlay:dsh --profile web --patch ./cordis.patch.yml(README 说明)。
从 GitHub 安装¶
& $node $dsh plugin --profile web add github:R-roker315/dsh-Alist-#v0.1.0
README 说明 plugin add 底层转发给 pnpm add,支持 link:<dir> 与 github:<user>/<repo>#<tag>。发 tag 后可用上述命令安装;package.json 当前版本号为 0.1.9,与 README 示例 tag v0.1.0 并存时,以你实际安装的 tag / 分支为准。
配置¶
DSH 宿主 0.1.7+ 移除了插件设置卡片机制;配置统一写在 profile 配置文件里。
路径:DSH Web → 设置 → 内置插件 → 右上角「打开配置文件」(即 harness\profiles\web\cordis.patch.yml)。在插件条目中增加 config,id 须与 patch 里 insert id 一致,为 alist:
- id: alist
config:
baseUrl: http://172.16.2.186:5244
authMode: password # password = 账号密码换 JWT;token = 长期 token
username: admin
password: "你的密码" # token 模式改用 token: "..."
clientId: dsh-alist
allowInsecureTls: false
maxUploadBytes: 1073741824
保存后 DSH 会热重载该插件,一般无需重启。README 注明:配置文件中 password / token 为明文(本机单人环境);更安全可选用 AList 管理后台签发的长期 token,并设 authMode: token。
| 字段 | 说明 |
|---|---|
| baseUrl | AList 根地址,不能带凭证、查询串或片段 |
| authMode | password(登录换 JWT,默认 48 小时并自动续签)或 token |
| username / password / token | 密码模式用用户名与密码;token 模式用 token |
| clientId | 保持同一设备会话,默认 dsh-alist |
| allowInsecureTls | 自签名内网证书时可设为 true |
| maxUploadBytes | 单文件上传上限,默认 1073741824(1024 MB),超限插件直接拒绝 |
典型用法¶
README 建议首次使用按只读顺序试:alist_me → alist_fs_list → alist_fs_search。
调用约定摘要:
- 路径必须是 AList 绝对路径(
/挂载点/子路径),相对路径会被拒绝。 names、urls等数组可传 JSON 数组或逗号分隔字符串。storage、settings、message等复杂字段传 JSON 字符串,由插件解析后提交。- 写请求失败不重试;GET 遇 401/403 会自动重登一次。
典型流程(摘自 README):
先用 alist_me 确认身份 → alist_fs_list 列 "/" → alist_fs_search 找文件
→ 需要直链用 alist_fs_link(需管理员)→ 上传用 alist_fs_put → 用 alist_task_list 轮询任务
挂载新存储:alist_admin_driver_info(查字段)→ alist_admin_storage_create(传 storage JSON)→ alist_admin_storage_load_all。
适用场景与注意¶
适合谁:已在用 DSH 编排智能体,且需要把 AList 当作统一文件网关的场景——内网盘、多存储挂载、离线下载与任务、或偶尔做用户 / 存储管理,又希望写操作有审批闸门。
使用前注意:
- 社区插件目录(SkillHub)与 DeepSeek / 幻方无官方从属关系;安装与配置责任在你本机环境。
- 勿将 AList 返回的文件名、readme 等内容当作对模型的指令。
- 开发自检:
npm run verify(README 称 check + 20 个单测);改工具表后可用node scripts/gen-tools-doc.js更新docs/tools.md。
结尾¶
dsh-alist 把 AList v3 的文件与管理 API 收成一组带审批的 alist_* 工具,适合在 DSH 里用对话完成浏览、搜索、上传与常见运维,同时把凭据与破坏性操作的暴露面压在插件设计允许范围内。