cnkids/dsh-office-toolkit

DSH 的插件生态旨在通过宿主插件扩展智能体的能力。通用智能体在处理 Word 或 Excel 等二进制文件时通常受阻,因为基础的 read 工具无法解析这些格式。cnkids/dsh-office-toolkit 是一个宿主插件,为 AI 智能体提供了读写 Word 和 Excel 的能力,通过纯 JavaScript 实现跨平台运行,无需安装本地 Office 环境。

基本信息

  • 名称:dsh-office-toolkit
  • 维护者:cnkids
  • 类别:工作流
  • 许可:MIT
  • 核心价值:纯 JS 读写 Word/Excel/CSV/PDF,无需安装 Office。

安装与启用

使用官方提供的命令安装。安装完成后必须重启 dsh web(或重开桌面端)并新建会话,工具才会生效。

dsh plugin --profile web add dsh-office-toolkit

核心功能

插件通过自动注册 8 个工具,为智能体提供从读取、查询、编辑到转换的全流程能力。

  1. 文件读写:支持纯 JS 读写 Word (.docx/.doc)、Excel (.xlsx/.xls/.xlsb)、PDF、CSV。读取 PDF 时,若本地有 pdftotext 或 macOS PDFKit 则使用,否则使用随包携带的 pdfjs。
  2. Excel 内部计算:利用 office_query 工具在文件内部进行筛选、分组、求和、计数、去重、排序,支持透视表和多表连接(join),无需导出数据即可获得结论。
  3. Word 排版与编辑:
    • 自动处理:支持 Word 自动编号、页眉页脚、目录。
    • 模板填充:通过 office_fill_docx_template 使用 {{变量}} 语法填充合同、通知等模板。
    • 样式控制:支持字体、字号、行距、对齐等格式设置,以及图片与公式支持。
  4. 格式转换:提供 office_convert 工具,支持 Word 家族、表格家族内部的格式互转,以及导出为 PDF。

典型用法

以下是插件支持的主要操作示例。

读取 Word

{ "path": "报告.docx" }

读取 Excel(限定范围)

{ "path": "销售.xlsx", "sheets": ["明细"], "range": "A1:F100" }

写入 Markdown 到 Word

{ "path": "周报.docx", "markdown": "# 周报\n\n- 完成 A\n- 完成 B" }

编辑 Excel(设置值与样式)

{ "path": "台账.xlsx", "ops": [ { "op": "set_value", "ref": "E1", "value": "合计", "style": { "bold": true } } ] }

模板填充

{ "templatePath": "合同模板.docx", "outputPath": "合同-001.docx", "data": { "合同编号": "HT-001" } }

格式转换

{ "sourcePath": "旧表.xls", "outputPath": "新表.xlsx" }

注意事项

  1. 环境要求:需要 Node.js 20 或更高版本。
  2. DSH 版本兼容性:DSH 0.1.6-alpha.1 / 0.1.6-alpha.2 存在模块解析缺陷,可能导致 .xlsx 读写失败(与 ExcelJS 路径有关),请升级到修复版 DSH。
  3. 权限与沙箱:写入操作经过 DSH 沙箱围栏(含 realpath 校验),文本来源中和公式注入,解析全走线性扫描(无 ReDoS),不联网(除 pdfjs 外)。
  4. PDF 读取:读取 PDF 需本地安装 pdftotext 或 macOS PDFKit。

总结

dsh-office-toolkit 解决了 DSH 智能体处理办公文档的痛点,通过 8 个自动注册的工具,实现了从静态读取到动态编辑、计算和转换的全闭环。开发者可以通过配置指令,强制智能体优先使用这些工具而非通用的文本读写接口。

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

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

小夜