DSH web composer 默认仅支持图片(PNG/JPG/WebP/GIF)的粘贴和拖拽。在需要处理表格或文档(如 .xlsx, .csv, .pdf)时,通常需要先上传到外部存储,再复制链接。dsh-table-attach 插件填补了这一空白,允许开发者直接在编辑器中操作非图片文件。
这是一个客户端插件,由维护者 yybukn 开发。它拦截浏览器的粘贴和拖拽事件,将文件保存到当前会话的工作区,并自动生成引用链接。
核心功能¶
- 输入方式:支持拖拽和粘贴。
- 文件类型:支持任意非图片文件(xlsx, csv, pdf, zip 等)。
- 工作区存储:文件保存到
<workspace>/attachments/目录,同名文件会自动添加-1、-2等后缀。 - 引用生成:成功后自动插入
@reference引用(例如@"attachments/report.xlsx"),代理可以直接读取。 - 安全机制:默认限制文件大小为 50 MiB,阻止可执行文件扩展名(如 .exe, .dll, .sh, .js 等),并防止路径遍历攻击。
- 兼容性:保留图片处理逻辑不变,支持中英文国际化。
安装与启用¶
在终端执行以下命令安装插件:
dsh plugin add github:yybukn/dsh-table-attach
典型用法¶
- 打开任意会话(提供工作区)。
- 将 .xlsx / .csv / .pdf / .zip 等文件拖拽到编辑器,或复制文件后使用快捷键粘贴。
- 保存成功后,编辑器中会出现
@reference引用。 - 发送消息,代理即可读取引用的文件内容。
适用场景与注意¶
- 适用场景:需要向智能体传递数据文件、表格或文档的场景。
- 注意事项:
- 文件大小限制为 50 MiB。
- 可执行文件扩展名会被拦截。
- 文件名经过净化处理(防路径遍历)。
- 复制 Excel 单元格文本会被视为普通文本,不会转换为文件。