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 個工具,爲智能體提供從讀取、查詢、編輯到轉換的全流程能力。
- 文件讀寫:支持純 JS 讀寫 Word (.docx/.doc)、Excel (.xlsx/.xls/.xlsb)、PDF、CSV。讀取 PDF 時,若本地有
pdftotext或 macOS PDFKit 則使用,否則使用隨包攜帶的 pdfjs。 - Excel 內部計算:利用
office_query工具在文件內部進行篩選、分組、求和、計數、去重、排序,支持透視表和多表連接(join),無需導出數據即可獲得結論。 - Word 排版與編輯:
- 自動處理:支持 Word 自動編號、頁眉頁腳、目錄。
- 模板填充:通過
office_fill_docx_template使用{{變量}}語法填充合同、通知等模板。 - 樣式控制:支持字體、字號、行距、對齊等格式設置,以及圖片與公式支持。
- 格式轉換:提供
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" }
注意事項¶
- 環境要求:需要 Node.js 20 或更高版本。
- DSH 版本兼容性:DSH 0.1.6-alpha.1 / 0.1.6-alpha.2 存在模塊解析缺陷,可能導致
.xlsx讀寫失敗(與 ExcelJS 路徑有關),請升級到修復版 DSH。 - 權限與沙箱:寫入操作經過 DSH 沙箱圍欄(含 realpath 校驗),文本來源中和公式注入,解析全走線性掃描(無 ReDoS),不聯網(除 pdfjs 外)。
- PDF 讀取:讀取 PDF 需本地安裝
pdftotext或 macOS PDFKit。
總結¶
dsh-office-toolkit 解決了 DSH 智能體處理辦公文檔的痛點,通過 8 個自動註冊的工具,實現了從靜態讀取到動態編輯、計算和轉換的全閉環。開發者可以通過配置指令,強制智能體優先使用這些工具而非通用的文本讀寫接口。
- 目錄頁:SkillHub
- GitHub 倉庫:cnkids/dsh-office-toolkit