介绍三款 dsh-office 插件

快乐小子新
快乐小子新 Lv.2 潜力创作者

Lv.2潜力创作者

一、引言

目前,社区中涌现了多款面向 Office 文档处理的 DSH 插件,下面介绍三款:

二、插件一

2.1 项目概述

该插件基于 zagens-office 引擎实现,是一套轻量级的 Office 文档生成与编辑工具,支持 PPTX、DOCX、XLSX 和 PDF 四种格式的创建与修改。

2.2 功能清单

该插件提供四个核心工具,覆盖文档的完整生命周期:

工具名

作用

office_schema

获取 JSON 契约,在执行写入或修改操作前必须先调用

office_write

新建文档

office_edit

按操作指令修改已有文档

office_read

读取文档内容进行核对

该插件的工作流具有明确的契约驱动特征:每次写入或修改操作之前,Agent 必须先调用 office_schema 获取当前文档格式的 JSON Schema,再依据该 Schema 构造数据,最后执行写入或修改。这种设计确保了数据结构的合法性和一致性,降低了格式错误的风险。

2.3 安装步骤

安装该插件需要先确保 DSH 已正确安装。以下为安装命令:

dsh plugin --profile web add github:didclawapp-ai/DSH-Office

dsh web

若从 DeepSeek Harness 源码运行(即 PATH 中没有 dsh 命令),可将上述命令中的 dsh 替换为 pnpm dsh,或使用 npx @deepseek-ai/dsh。

启动日志中出现 [zagens-office] plugin loaded 即表示安装成功。

卸载命令:dsh plugin --profile web remove dsh-zagens-office

2.4 技术原理

DSH-Office 的核心技术组件是 zagens-office 引擎。当引擎尚未在本地部署时,插件会自动下载到 ~/.zagens-pro/bin 目录下,实现即用即装。该引擎以独立的二进制形式运行,与 DSH 的 Cordis 插件框架通过标准输入输出进行通信,保持了良好的模块解耦性。

三、插件二

3.1 项目概述

该插件是从天枢(Tianshu)终端编码 Agent 的 Office 插件移植而来。

3.2 功能清单

XLSX 工具家族(5 个工具)

工具名

功能说明

xlsx_read

列出 .xlsx 的工作表,或将指定工作表读取为 Markdown 表格

xlsx_write

将二维数组写入新的 .xlsx 文件,支持公式单元格、表头加粗、列宽和数字格式

xlsx_edit

编辑已有 .xlsx 文件,支持添加工作表、更新单元格(值或公式)、追加行

xlsx_recalc

使用轻量级纯 TypeScript 公式引擎重算所有公式,报告错误值及其位置

xlsx_audit

静态审计公式结构,检测数组公式陷阱、聚合范围缺失行、公式被硬编码覆盖等问题

PDF 工具家族(4 个工具)

工具名

功能说明

pdf_create

生成真实的 PDF 文档,支持标题、段落、表格、列表、代码块和页脚页码

pdf_read

从 PDF 中提取文本供 Agent 阅读

pdf_merge

按顺序合并多个 PDF 文件

pdf_split

将 PDF 拆分为单页文件,或按页码范围提取页面

PPTX 工具家族(3 个工具)

工具名

功能说明

pptx_create

从幻灯片定义生成 .pptx 演示文稿,支持标题页、章节页、内容页、双栏页、图片页、表格页和图表页

pptx_read

提取幻灯片文本为 Markdown,可选包含演讲者备注

pptx_edit

在已有 .pptx 中查找并替换文本,保留所有布局和样式

DOCX 工具家族(2 个工具)

工具名

功能说明

docx_create

从内容块生成真实的 .docx Word 文档,支持斑马纹表格、页面背景色和斜向文字水印

docx_read

从 .docx 中提取文本供 Agent 阅读

3.3 安装步骤

方式一:通过 dsh plugin 命令安装(推荐)

dsh plugin --profile web add @huiliyi37/dsh-office

dsh web

方式二:通过 npm 安装后手动配置

npm install @huiliyi37/dsh-office

然后在 cordis.patch.yml 中手动添加配置:

- insert:
    - id: dsh-office
      name: '@huiliyi37/dsh-office'

可选配置:按需启用/禁用工具家族

在 profile 的 cordis.patch.yml 中可配置各工具家族的启用状态:

- insert:
    - id: dsh-office
      name: '@huiliyi37/dsh-office'
      config:
        enable:
          xlsx: true
          pdf: true
          ppt: false
          docx: true

这种方式允许用户按需裁剪工具面,避免 Agent 的工具列表过于庞大。

安装 Skill 文件

该插件还附带一个使用说明 Skill,可安装到 DSH 的 Skill 发现目录中:

mkdir -p ~/.dsh/skills && cp -r node_modules/@huiliyi37/dsh-office/skills/dsh-office ~/.dsh/skills/

3.4 使用示例

创建电子表格

{
  "file_path": "report.xlsx",
  "data": [["Name", "Score"], ["Alice", 92]],
  "header_bold": true
}

创建 PDF 文档

{
  "destination_path": "doc.pdf",
  "title": "Quarterly Report",
  "content": [
    { "type": "heading", "text": "Summary" },
    { "type": "table", "headers": ["Region", "Revenue"], "rows": [["APAC", "120"]] },
    { "type": "list", "items": ["Alpha", "Beta"] }
  ],
  "page_numbers": true
}

创建演示文稿

{
  "destination_path": "deck.pptx",
  "slides": [
    { "type": "title", "title": "Roadmap 2026" },
    { "type": "content", "title": "Highlights", "items": ["Plugin runtime", "Office tools"] }
  ]
}

3.5 技术原理

兼容性要求:该插件要求 DSH 版本 >= 0.1.0-rc.5,其依赖的 @deepseek-ai/dsh-tools 须 >= 0.1.0-rc.5。在较旧的核心版本上安装会导致工具调用崩溃。

公式引擎:xlsx_recalc 工具内置了一个纯 TypeScript 实现的轻量级公式计算引擎,能够独立处理常见公式的重算,并精确定位 #REF!、#DIV/0!、#VALUE!、#N/A、#NAME?、#NUM! 等错误值及其所在单元格位置。

公式审计:xlsx_audit 工具提供了静态分析能力,可检测数组公式陷阱、聚合范围缺失行、公式被硬编码值覆盖、同一列中公式不一致、自引用和除零等六类常见问题,帮助用户在数据进入下游流程前发现潜在错误。

架构移植:该插件的工具逻辑从天枢编码 Agent 的 Office 插件移植而来,采用了 DSH 的 Cordis 工具模型进行重构。每个工具使用 defineTool 函数定义,包含名称、描述、参数 JSON Schema 和 execute 实现,确保工具调用的规范性和可验证性。

四、插件三

4.1 项目概述

该插件专注于 Excel 文件的读取与精准修改,基于 exceljs 库实现,并支持办公文件拖入附件栏的功能。

4.2 功能清单

该插件的功能聚焦于 Excel 处理,核心能力包括:

  • Excel 文件读取:支持读取 .xlsx 文件中的数据和结构

  • 精准修改:基于 exceljs 实现对单元格、行列、样式等元素的精确控制

  • 文件拖入附件栏:支持将办公文件直接拖拽到 DSH 的附件栏,简化文件上传流程

4.3 安装步骤

方式一:安装 npm 发布版本

dsh plugin --profile web add dsh-office

dsh web

npm 版本会自动带上 exceljs 依赖,无需手动安装。

方式二:安装本地开发版本

dsh plugin --profile web add link:D:\Porject\DSH\dsh-office\packages\dsh-office

dsh plugin --profile web add exceljs

dsh web

开发模式下,exceljs 作为外部依赖需要单独安装到 profile 中。

构建与验证

pnpm install

pnpm --filter dsh-office build

pnpm --filter dsh-office smoke

构建命令会执行 tsc 类型检查和 tsdown 打包到 lib/ 目录。冒烟测试(smoke)会对真实文件进行读写验证。

4.4 技术原理

exceljs 引擎:该插件的 Excel 处理能力底层依赖 exceljs 库,这是一个成熟的 Node.js 端 Excel 文件操作库,支持读取和写入 .xlsx 格式,能够精确控制单元格的值、样式、公式、合并单元格等属性。

DSH 插件开发规范:该插件严格遵循 DSH 的 Cordis 插件开发规范。插件包导出 name、inject、Config 和 apply 四个核心接口。工具使用 defineTool 函数定义,参数与输出均为 JSON Schema 格式,output.render 返回 ContentBlock 数组。所有注册操作都包裹在 ctx.effect 中,确保插件卸载时自动清理注册的资源。

依赖管理:@deepseek-ai/* 运行时服务声明为 peerDependencies,构建时保持外部(deps.neverBundle),运行时由宿主进程解析,避免重复实例化。插件包内的 cordis.patch.yml 使用 insert 指令将插件行加入 roster,声明 dsh.bundle.patch 后,dsh plugin add 会自动将其加入 profile 的 bundles 层。

五、三款插件综合对比

对比维度

DSH-Office (didclawapp)

@huiliyi37/dsh-office

dsh-office (jiazekang)

底层引擎

zagens-office

自研纯 TS 引擎

exceljs

支持格式

PPTX、DOCX、XLSX、PDF

XLSX、PDF、PPTX、DOCX

XLSX

工具数量

4 个

16 个

侧重 Excel 处理

公式重算

不支持

支持(纯 TS 引擎)

通过 exceljs 支持

公式审计

不支持

支持(6 类检测)

不支持

PDF 处理

创建

创建、读取、合并、拆分

不支持

PPTX 处理

创建、编辑

创建、读取、编辑

不支持

拖入附件

不支持

不支持

支持

按需启用

不支持

支持(按工具家族)

不支持

兼容性要求

无特殊要求

DSH >= 0.1.0-rc.5

无特殊要求

许可证

未明确标注

Apache-2.0

未明确标注

广东省
浏览 69
收藏
7
分享
7 +1
2
+1
全部评论 2
 
帅羊帅
帅羊帅 Lv.1 新人创作者

Lv.1 新人创作者

点赞点赞
   河南省
举报
1
0
 
熠林
熠林 Lv.1 新人创作者

Lv.1 新人创作者

好专业的样子,不过要安装不懂代码的话,只能让AI安装这些插件
   浙江省
举报
1
0