介绍三款 dsh-office 插件
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 | 未明确标注 |
Lv.1 新人创作者
Lv.1 新人创作者