DeepSeek Harness 的核心理念是「一切皆插件」。在构建自动化工作流时,智能体往往需要处理演示文稿文件。传统的方案要么依赖本地安装 PowerPoint 或 LibreOffice,要么依赖外部转换服务。dsh-plugin-web-ppt 作为一个纯 JS 实现的工具,直接在 Harness 环境中读取并导出 PPT 文件,无需联网,也不需要安装 Office。
核心工具¶
该插件提供三个工具,分别对应读取、渲染和导出三个阶段:
ppt_read:逐页返回标题、正文和演讲者备注,是 Agent 读懂一份 PPT 的入口。ppt_render_svg:每页导出一个自包含的 SVG(图片内联为 data URI)。ppt_export_html:整份导出为一份可打印 HTML,通过浏览器「打印为 PDF」即可得到 PDF 文件。
所有文件读写操作经由 Harness 的 fs 服务,因此 workspace 归属、沙箱策略与写入审批与 Harness 的常规行为一致。
安装与启用¶
在终端中执行以下命令完成安装:
dsh plugin --profile <你的 profile> add dsh-plugin-web-ppt
安装完成后,运行 dsh --profile <name> --dump-config,配置输出中会出现 # == dsh-plugin-web-ppt 节点,插件即处于生效状态。
配置项¶
插件支持通过 profile 的 cordis.patch.yml 进行覆盖配置。注意 patch 会整体替换 config,因此需要写全所有键值对。
- id: web-ppt
name: dsh-plugin-web-ppt
config:
maxFileBytes: 134217728
maxTextChars: 40000
includeHidden: false
| 配置键 | 默认值 | 说明 |
|---|---|---|
maxFileBytes |
67108864 (64 MB) | 单文件读取上限,超出直接失败 |
maxTextChars |
20000 | ppt_read 的文本预算,超出会截断并标记为 truncated |
includeHidden |
false | 是否默认把隐藏页算进来 |
边界与限制¶
该插件为只读模式,不支持写入或编辑 PPT。
| 能力 | 限制说明 |
|---|---|
| 文件格式 | 支持 .pptx (Zip+OOXML) 与 .ppt (CFB+Escher) |
| 导出格式 | 不支持导出 PNG(Node 环境无 canvas) |
| 加密文件 | 默认不支持,需在调用时传入 password |
| 动画 | 不支持播放动画,只能导出终态或按点击批次展开 |
| SVG 兼容性 | 导出 SVG 使用原生 <text> 而非 foreignObject,以确保设计工具兼容性 |
| 文件大小 | 单文件读取上限为 64 MB |
典型用法¶
pages 参数一律是 1 基选择串,例如 1-3,7 表示第 1、2、3 页和第 7 页。不传该参数表示全部。
1. 读取 PPT 内容
读取指定页面的标题、正文和备注:
ppt_read path/to/presentation.pptx pages=1-5 password=yourpass
2. 导出 SVG
将 PPT 每页渲染为 SVG 并保存到指定目录:
ppt_render_svg path/to/presentation.pptx out_dir=slides pages=1-3
3. 导出可打印 HTML
生成一份包含所有动画步骤的可打印 HTML 文件:
ppt_export_html path/to/presentation.pptx out_file=print.html animation_steps=true
总结¶
dsh-plugin-web-ppt 为 DeepSeek Harness 提供了原生的 PPT 处理能力。它不依赖外部转换服务,不占用本地 Office 软件,且所有操作均受 Harness 的权限体系管控。对于需要在 Agent 工作流中涉及演示文稿处理的场景,这是一个直接的解决方案。