前言¶
在使用 DeepSeek Harness (DSH) Web composer 进行开发或调试时,直接引用工作区的文件路径是常见需求。手动输入相对路径容易出错,且默认的粘贴功能通常仅支持图片。下面介绍 dsh-file-mention 插件,它通过 @ 触发器解决了这一痛点,提供了安全的会话级文件引用、Git 感知的索引以及拖拽/粘贴文件上传功能。
插件定位¶
这是一个面向 DSH Web composer 的客户端插件,由 tipoLi5890 维护。它不直接注入文件内容,而是在 Agent 步骤前生成轻量级的路径引用标记(<workspace-reference>),由 Host 进行验证和标记。
核心功能¶
- 文件与文件夹索引:输入
@可打开工作区列表,支持 basename 或路径过滤。 - Git 感知与可控索引:支持 Git 追踪文件和未追踪文件,通过
.aiinclude规则控制索引内容。 - 快速输入与键盘操作:单次会话索引请求,支持箭头键 + Tab/Enter 选择。
- 非图片文件上传:支持拖拽或粘贴非图片文件,自动管理上传并插入路径。
- 路径引用管理:包含引用托盘和设置中心,用于管理已插入的引用和上传记录。
安装与启用¶
安装前请确保使用的是兼容 DSH Web profile。
dsh plugin --profile web add github:tipoLi5890/dsh-file-mention
安装完成后需重启 DSH Web。
典型用法¶
@:打开工作区文件/文件夹列表。@readme:匹配文件名(如README.md)。@src/ma:搜索完整相对路径。Pick src/main.js:插入@src/main.js。Pick docs/file with spaces.md:插入@"docs/file with spaces.md"(带空格路径需加引号)。Pick docs/:插入@docs/。Arrow keys + Tab:接受高亮的候选文件。
上传机制¶
对于非图片文件,插件接管了上传流程。拖拽或粘贴文件后,文件会被复制到托管上传目录,并在光标处插入路径。上传过程支持进度显示和取消,且有配额限制(单文件 50 MiB,会话 250 MiB,全局 2 GiB)。
限制与注意¶
- 索引条目上限为 20,000 条。
- 非 Git 工作区遍历深度限制为 32 层。
- 非图片文件上传后保留 7 天(可配置)。
- Git 仓库遵循
.gitignore,非 Git 模式会跳过隐藏文件、符号链接、缓存等。
总结¶
该插件通过零构建方式集成,提供了完整的文件引用和上传体验。适合需要频繁在 Agent 步骤中引用本地代码或文档的开发者。
源码与详细文档位于:GitHub。