dsh-file-bridge:DeepSeek Harness 文件双向交换桥

DeepSeek Harness (DSH) 采用插件化架构。在对话场景中实现文件传输是常见需求。dsh-file-bridge 插件提供了这一能力,支持通过附件按钮上传、工具下发以及路径跳转三种方式实现双向文件交换。

核心功能

  • 用户上传:通过输入框附件按钮上传文件,图片自动压缩至 1600px 并支持原生预览,非图片文件生成访问链接。
  • Agent 下发:Agent 调用 send_files 工具,图片渲染为可点击预览,其他文件提供下载链接。
  • Explorer 跳转:在回复正文中使用反引号包裹源文件的绝对路径(如 /root/proj/a.md),点击可唤起侧边栏文件管理器。
  • 静态服务:提供 /dsh-files/* 只读静态服务,具备防路径穿越能力和中文文件名 RFC 5987 编码支持。

安装与配置

使用官方命令安装插件:

dsh plugin --profile web add 'github:fengs2021/dsh-file-bridge'

安装后需重启 Web 服务:

systemctl restart dsh-web

插件通过 cordis.patch.yml 配置文件进行初始化,需设置以下参数:

- insert:
    - id: file-bridge
      name: dsh-file-bridge
      config:
        publicBase: "http://你的公网地址:端口"   # 生成文件 URL 的基础地址,必须配置
        filesDir: "/root/.dsh/files"             # 共享文件目录(默认 ~/.dsh/files)

使用方法

  1. 用户上传:用户点击输入框附件按钮选择文件,系统自动处理图片压缩或生成链接。
  2. Agent 下发与跳转:Agent 调用 send_files 工具后,在回复中使用反引号包裹工具调用的源文件绝对路径。该路径必须与回复在同轮对话中,且必须是工具调用的源路径。

注意事项

  • Android WebView:App 端需实现 WebChromeClient.onShowFileChooser 方法以支持文件选择。
  • Nginx 配置:部署环境需配置 Nginx 的 client_max_body_size,建议设置为 25m(默认 1m 会导致 413 错误)。
  • 依赖链接:插件目录需链接 node_modules/@deepseek-ai/dsh-tools,否则会报错。
  • 路径生效规则:反引号路径必须是工具调用的源路径且与回复同轮生效。

结语

该插件通过附件按钮、工具调用和路径跳转三种方式,为 DSH 对话场景提供了基础的文件交互能力。开发者可根据需求在 cordis.patch.yml 中配置文件存储路径和公网地址。更多细节见项目主页:GitHub

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

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

小夜