dsh-pptx-builder:为 DeepSeek Harness 提供的 PowerPoint 生成插件

前言

DeepSeek Harness(DSH)采用插件化架构,让智能体通过工具完成复杂任务。在需要交付结构化演示文稿时,Agent 通常只能输出文本或 Markdown,无法生成可直接演示的 .pptx 文件。dsh-pptx-builder 解决了这个问题,它将 PowerPoint 的生成能力下沉到插件层,让 Agent 在运行时直接创建完整的微软 PowerPoint 阴影包。

插件由 ZhdanovDmitriy 维护,属于客户端插件,目前星标数为 0。

功能概述

插件打包了以下能力:

  • 模板化幻灯片生成:10 种预设模板,包括标题页、内容页、分栏、图表、代码、数学公式、结束语等。
  • Pastel 配色系统:提供 sand、mint、lavender、sky、rose 五种柔和背景,自动生成正文、次要色、强调色和图表色系。
  • Python 渲染图表:通过 Python 将数据转换为 bar、stacked bar、line、area、pie、donut 等图表,并嵌入到幻灯片中。
  • LaTeX 公式渲染:内置公式排版器,支持矩阵、积分、求和、分数、希腊字母等,无需本地 TeX 环境。
  • 代码高亮卡片:将代码片段渲染为深色圆角卡片,支持语法高亮、行号、文件名和语言标签。
  • 图片处理:支持通过 URL 下载图片并嵌入,保持宽高比。
  • Presentations 模式:预设一个专用于演示文稿的 Agent 角色,包含工作流提示和工具集。

所有内容最终输出为标准的 .pptx 包(ZIP + OOXML),无需 Office 依赖,文件在生成后即保持有效。

安装与启用

在 DSH 中安装插件:

plugin_manager { "action": "install_bundle", "target": "dsh-pptx-builder" }

或者在 Harness UI 中使用「Plugins → Install」,粘贴包名 dsh-pptx-builder。安装后重启,工具会出现在所有模式中,并在模式选择器里出现新的 Presentations agent 预设。

从本地代码检出安装时,可传递绝对目录路径作为目标:

plugin_manager { "action": "install_bundle", "target": "/path/to/dsh-pptx-builder" }

Presentations 模式

Presentations 模式提供了一个预设角色,它知道演示文稿的工作流:先检查现有内容,再从模板构建,引用数据来源,用 pptx_add_math 排版公式,最后用 present 完成交付。该模式附带的工具集包括:

  • pptx_* 系列工具
  • 文件读取、网页搜索/抓取
  • present、todo_write、ask_user_question
  • 内容压缩

这些工具是全局注册的,因此在其他模式下也可以直接使用。

工具列表

工具 说明
pptx_create 创建幻灯片组,指定尺寸(16:9 / 4:3)、配色、默认字体、强调色、页码位置。
pptx_gallery 构建参考演示文稿,features 展示所有模板的对齐、列表样式和图表类型,showcase 是一份打磨过的商业演示。
pptx_add_slide 按模板添加一页,指定标题、文本、演讲者、照片。支持的模板:title、section、content、split-left、split-right、chart、code、math、closing、blank。
pptx_add_text 添加任意文本框,可设置位置(x/y/w/h,单位英寸)、字体大小、字体、粗体/斜体/下划线、颜色、对齐/垂直对齐、列表样式。
pptx_add_image 通过 url 下载图片(或读取本地 path)并嵌入,保持宽高比。
pptx_add_chart 从数据渲染图表(bar、stacked bar、line、area、pie、donut),并嵌入。
pptx_add_code 将代码片段渲染为深色圆角卡片,支持语法高亮、行号、文件名、语言标签和强调行。
pptx_add_math 将 LaTeX 公式排版为透明 PNG 并嵌入,支持矩阵、积分、求和、分数、希腊字母等。
pptx_update_element 通过 id 移动、调整大小、重新样式、改变类型或替换已有元素。
pptx_remove 通过 id 删除单个元素,或通过页码删除整张幻灯片。
pptx_inspect 列出模板、配色和所有元素,包括 id、几何位置(英寸)、文本、字体和来源。

坐标系原点为幻灯片左上角,16:9 尺寸为 13.333 × 7.5 英寸。字体大小单位为点,颜色支持 #RRGGBB、颜色名称或配色关键字(ink、muted、accent、background)。

模板与布局

模板按功能划分,每张模板都将其内容居中于各自区域:照片在其半区,标题和文本在其区,块级内容垂直居中。

  • title:超大居中标题、副标题、右下角演讲者信息、页码关闭。
  • section:分隔页,标题与副标题居中。
  • content:顶部居中标题,下方固定宽度文本列。
  • split-right:右侧居中照片,左侧居中标题与文本。
  • split-left:左侧照片,右侧文本,结构与 split-right 相反。
  • chart:顶部标题与说明,下方两/三区域留给 pptx_add_chart。
  • code:顶部标题与副标题,下方留给 pptx_add_code。
  • math:顶部标题与副标题,可选说明,下方留给 pptx_add_math。
  • closing:大号居中「Спасибо за внимание」(可覆盖为 title),可选副标题。
  • blank:仅背景。

配色与对齐

pptx_create 接受 palette 参数:sand(默认)、mint、lavender、sky、rose。配色定义了每张幻灯片的柔和背景、正文墨色、次要色、强调色和图表系列颜色。

对齐和文本形状作为参数而非模板默认值:

  • align:left、center、right、justify
  • title_align:与上述相同
  • bullet:true 表示列表,false(默认)表示整块文本

默认行为:content 为左对齐,split-left/split-right 无列表且居中,长列表更适合左对齐,短行或单段更适合居中或右对齐。已有块可通过 pptx_update_element 重新对齐。

图表使用

pptx_add_chart 接受结构化数据而非代码:

{
  "file": "sales.pptx",
  "kind": "bar",
  "stacked": false,
  "categories": ["2021", "2022", "2023", "2024"],
  "series": [
    {
      "name": "Revenue",
      "values": [10.2, 13.8, 17.1, 21.4]
    }
  ],
  "y_label": "bn RUB",
  "value_format": "auto",
  "source": "Source: annual reports, 2025"
}

支持的图表类型:bar(包括 stacked)、line、area、pie、donut。渲染器会绘制配色背景、浅色网格、坐标轴标签、图例、数值标签和来源脚注。生成的图片尺寸为 1800 × 1000 px,并嵌入到演示文稿中。

典型流程:先用 web_search 或 web_fetch 查找数据,模型将其整理为 categories 和 series,再调用 pptx_add_chart 绘图,必要时用 pptx_update_element 调整位置或大小。

代码卡片使用

pptx_add_code 将代码渲染为深色圆角卡片,支持语法高亮、行号、文件名头部、语言标签和强调行带,最终嵌入为图片。

pptx_add_slide {
  "file": "d.pptx",
  "template": "code",
  "title": "How we measure",
  "subtitle": "python · pandas"
}
pptx_add_code {
  "file": "d.pptx",
  "language": "python",
  "title": "metrics.py",
  "highlight_lines": [5, 6],
  "code": "import pandas as pd\n..."
}

支持的编程语言:python、javascript、typescript、json、bash、sql、text。建议单行不超过 ~90 字符、总行数不超过 ~60 行,卡片整体缩放,长行会压缩所有代码。由于卡片是图片,修改代码需删除元素后重新添加。

公式渲染

pptx_add_math 通过插件内置的排版器将 LaTeX 渲染为 300 dpi 的透明 PNG 并嵌入。公式按自然排版尺寸放置:44 pt 公式在幻灯片上高度为 44 pt。

pptx_add_slide {
  "file": "math.pptx",
  "template": "math",
  "title": "Собственные значения",
  "subtitle": "линейная алгебра"
}
pptx_add_math {
  "file": "math.pptx",
  "font_size": 46,
  "latex": "A\\mathbf{x} = \\lambda \\mathbf{x}, \\quad \\det(A - \\lambda I) = 0"
}

支持的语法包括分数与二项式(\frac{a}{b}、\dfrac、\tfrac、\binom{n}{k})、根号(\sqrt{x}、\sqrt[3]{x})、上下标与求和积分(x_i^2、\sum_{k=1}^{n}、\int_0^1、\lim_{x \to 0})、大算子(\sum \prod \coprod \int \iint \iiint \oint \bigcup \bigcap \bigoplus)、矩阵(matrix、pmatrix、bmatrix、Bmatrix、vmatrix、Vmatrix)、方程组与推导(cases、aligned、array{cc})、分隔符等。

适用场景与注意

适合使用该插件的场景包括:

  • 需要从数据自动生成演示文稿的 Agent
  • 需要在幻灯片中嵌入图表、代码和数学公式的报告生成
  • 需要快速构建结构化演示文稿模板的项目

使用时需要注意:

  • 插件以当前 DSH 进程的权限运行,安装前建议检查源码与许可证(本插件为 MIT)。
  • 代码卡片和公式卡片最终为图片,修改内容需要删除并重新添加。
  • 保持代码行数和长度在合理范围,以保证卡片和公式在幻灯片上的可读性。

结语

dsh-pptx-builder 将 PowerPoint 生成能力封装为 DSH 插件,让 Agent 能够直接输出可演示的 .pptx 文件,涵盖模板、配色、图表、代码高亮和 LaTeX 公式排版。对于需要在 DSH 生态中构建结构化演示文稿的开发者,这是一个可直接落地的工具。

目录页:https://www.skillhub.cn/plugins/ZhdanovDmitriy/dsh-pptx-builder
GitHub:https://github.com/ZhdanovDmitriy/dsh-pptx-builder

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

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

Xiaoye