dsh-office-live:通过 COM 读写用户当前打开的 Word / Excel / PowerPoint

前言

在 DeepSeek Harness(DSH)里做 Office 相关任务时,常见做法是读写磁盘上的 .docx、.xlsx、.pptx 文件。用户若在 Word 里改了几段却还没保存,智能体只能看到上次落盘的内容;改完文件还要用户关掉再打开,或手动刷新,才能在窗口里看到结果。

dsh-office-live 走另一条路:通过 Windows COM 挂到正在运行的 Word、Excel、PowerPoint,针对当前前台文档读取、截图和就地编辑,无需为同步内容反复保存、关闭、重开。维护者为 BeiSheng2333,在 SkillHub 社区目录中归类为客户端插件;仓库见 GitHub,当前版本 0.1.0,MIT 许可证。

这是什么

插件向 DSH 注册一组工具,Node 侧在 lib/index.js 里通过 @deepseek-ai/dsh-tools 注册七个工具,实际 COM 与截图由 assets/office-live.ps1 执行;结果经 UTF-8 侧文件回传,避免中文在 Windows 控制台代码页下乱码。与同类插件 dsh-office-tools(面向文件)不同,本插件只操作用户眼前那一窗里的活文档,包括未保存的输入。

核心功能

下面按 README 列出的工具说明能力;编辑默认不写盘,除非调用时显式传入 save: true。

状态与读取

工具 作用
office_live_status 查看 Word / Excel / PowerPoint 是否在运行,以及各应用打开了哪些文档
office_live_read 以 JSON 读取活内容:Word 段落与样式、Excel 单元格(含公式求值结果)、PowerPoint 形状
office_live_shot 对应用窗口(含功能区与页面)截 PNG
office_live_snapshot 一次调用完成 read + shot,适合编辑前先摸清现状

读取上限(README 写明):Word 最多前 400 段;Excel 为活动表已用区域,最多 200 行 × 40 列。

编辑与窗口管理

工具 作用
office_live_edit 批量就地编辑(段落、查找替换、表格、单元格、幻灯片等)
office_live_open 在真实 Office 应用中打开文件,便于屏幕上可见
office_live_close 关闭窗口(可选是否保存)

office_live_edit 支持的操作包括:

  • Word:word.append_paragraph、word.insert_paragraph_before、word.set_paragraph、word.replace、word.insert_table、word.insert_page_break
  • Excel:excel.set_cell、excel.set_range、excel.add_sheet
  • PowerPoint:ppt.set_text、ppt.add_slide

README Demo 中的可核对行为(未保存即出现在窗口)包括:Word 追加章节与表格;Excel 读出公式值后写入「备注」列;PowerPoint 改要点并 ppt.add_slide 增加第二页。截图与说明见仓库 docs/images/。

环境与依赖

  1. Windows,且安装带桌面的 Microsoft Office,COM ProgID 为 Word.Application、Excel.Application、PowerPoint.Application;README 注明在 Office LTSC 2024 上测试过。
  2. Windows PowerShell 5.1+(powershell.exe);可用环境变量 OFFICE_LIVE_POWERSHELL 指定其他解释器(例如 pwsh.exe)。
  3. 仅真 Office:Microsoft Store 版占位包、网页版无 COM;WPS 使用不同 ProgID,不在本插件设计范围内。
  4. Node ≥ 20;DSH 兼容性见 package.json 中 dsh.compatibility 字段。

安装与启用

在插件市场 UI 中添加 dsh-office-live,或从 checkout / 压缩包安装:

dsh plugin --profile desktop add ./dsh-office-live-0.1.0.tgz

安装后重启 DSH;新会话中即可看到上述工具。安装前建议阅读仓库源码与 MIT 许可证;插件以当前 DSH 进程权限运行,会操作本机已打开的 Office 实例。

典型用法思路

  1. 让用户在 Word / Excel / PowerPoint 中打开目标文档(或用 office_live_open 打开文件)。
  2. 调用 office_live_snapshot 或先 office_live_read、再 office_live_shot,把结构与窗口画面交给智能体。
  3. 用 office_live_edit 按 JSON 操作列表修改;用户在窗口中可用 Ctrl+Z 撤销,确认后再决定是否带 save: true 保存。
  4. 需要收尾时调用 office_live_close。

截图会短暂将 Office 窗口置前(抢焦点),属 README 中已说明的行为。

安全与边界

  • 只附着已有 Office 进程,不创建隐藏文档副本。
  • 默认不保存;适合「先看效果再落盘」的协作方式。
  • 与文件型 Office 插件互补:要处理未保存编辑或必须「屏幕上立刻可见」时选 live;纯批处理、无 GUI 场景仍可用 dsh-office-tools 等读写文件。

更细的架构(三层、JSON 桥、UTF-8 侧文件、默认不保存的原因)见仓库中文文档 docs/HOW-IT-WORKS.md。

结尾

dsh-office-live 把 DSH 智能体接到用户正在看的 Office 窗口:读活文档、截窗、COM 就地改,减少文件往返与重开成本。社区目录页:SkillHub — dsh-office-live;源码与 Issue:github.com/BeiSheng2333/dsh-office-live。

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

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

Xiaoye