wps-dsh-plugin:DeepSeek Harness 中操作WPS的插件

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

Lv.2潜力创作者

一、项目简介

此前,我曾介绍过【开源项目简介】lc2panda / wps-skills。现在,开源项目https://github.com/CatNebulaaaa/wps-dsh-plugin 通过 DSH 自带的 MCP Client 机制,启动wps-office-mcp 服务,将上游 lc2panda/wps-skills 项目提供的 200 余个专业工具接入了 DSH 生态。

二、功能概述

2.1 MCP 服务挂载

将 wps-office-mcp 的 stdio 服务挂载进 DSH 运行时,使 DSH Agent 能够通过 MCP协议调用 WPS Office 的自动化能力。该插件利用 DSH 对 MCP 的原生支持,将上游 MCP Server 作为受信任的本机子进程启动。

2.2 工具命名空间隔离

为避免与其他 MCP Server 产生命名冲突,插件将上游工具名称统一转换为 mcp__wps-office__<上游工具名> 的格式。以下为几个典型的工具名称映射示例:

上游工具名

DSH 工具名

wps_common_ping

mcp__wps-office__wps_common_ping

wps_excel_read_range

mcp__wps-office__wps_excel_read_range

wps_word_get_document_text

mcp__wps-office__wps_word_get_document_text

wps_ppt_get_slide_count

mcp__wps-office__wps_ppt_get_slide_count

Agent 从实时工具目录中获取完整的工具 Schema,插件本身不需要复制上游工具定义。

2.3 Skill 注册

插件注册 wps-office-dsh Skill,提供 DSH 专用的路由规则、安全策略和错误处理逻辑。该 Skill 帮助 Agent 理解如何高效地使用 WPS 工具,包括工具选择策略、调用顺序优化和异常情况处理等。

2.4 环境检查脚本

插件提供只读的环境检查脚本 scripts/doctor.mjs,能够明确报告以下组件的状态:

  • Node.js 版本

  • DSH 安装状态

  • WPS MCP 服务状态

  • Windows 加载项状态

检查结果使用 OK / WARN / ERROR 三级标记,存在 ERROR 时返回非零退出码,帮助用户快速定位环境问题。

三、上游能力:lc2panda/wps-skills 工具集

wps-dsh-plugin 本身不提供 WPS 操作工具,所有工具能力均来自上游项目 lc2panda/wps-skills。该上游项目共注册 243 个工具(231 个专业工具 + 12 个内置工具),覆盖 Excel、Word、PPT 三大应用场景。

具体能力请参考开源项目:https://github.com/lc2panda/wps-skills/tree/main,以及我此前写的介绍帖:【开源项目简介】lc2panda / wps-skills

四、安装与使用

4.1 前提条件

安装 wps-dsh-plugin 之前,需要确保以下条件均已满足:

  • WPS Office 已安装(Windows 版本)

  • 按上游 lc2panda/wps-skills 说明安装 WPS 加载项

  • 已构建上游仓库的 wps-office-mcp 模块

  • Node.js 版本 22.19+ 或 24+

  • DeepSeek Harness 0.1.0-rc.5 或兼容版本

4.2 安装步骤

第一步:构建上游 MCP

git clone https://github.com/lc2panda/wps-skills.git

cd wps-skills/wps-office-mcp

npm install

npm run build

WPS 加载项的安装和 WPS 重启步骤以上游安装文档为准。

第二步:设置环境变量

推荐设置 WPS_SKILLS_ROOT 为上游仓库的绝对路径:

$env:WPS_SKILLS_ROOT = (Resolve-Path 'C:\path\to\wps-skills').Path

也可以只设置编译入口:

$env:WPS_OFFICE_MCP_ENTRY = (Resolve-Path 'C:\path\to\wps-skills\wps-office-mcp\dist\index.js').Path

DSH 会从启动目录的 .env 和 $DSH_HOME/.env 加载环境变量。需要跨项目使用时,可将不含密钥的路径配置写入 $DSH_HOME/.env。

第三步:安装插件

已全局安装 DSH 时:

dsh plugin --profile web add .

dsh --profile web --dump-config

dsh web

安装 GitHub 版本时建议固定 commit:

dsh plugin --profile web add github:CatNebulaaaa/wps-dsh-plugin#COMMIT_SHA

第四步:运行环境检查

node scripts/doctor.mjs --wps-skills-root 'C:\path\to\wps-skills' --dsh-source-root 'C:\path\to\deepseek-harness'

4.3 卸载

dsh plugin --profile web remove dsh-plugin-wps-office

卸载本插件不会删除 WPS Office、上游 wps-skills 项目或 WPS 加载项。

4.4 使用方式

安装完成后,在 DSH 会话中通过自然语言即可操控 WPS Office。例如:

  • "读取当前表格 A1 到 D20 的数据"

  • "将当前文档标题设为黑体二号加粗,居中对齐"

  • "在当前演示文稿末尾添加一张新的幻灯片,标题为'总结与展望'"

  • "将当前文档另存为 PDF 格式,输出到桌面"

Agent 会自动调用对应的 MCP 工具完成操作,所有工具的输入输出均为结构化 JSON,Agent 能够准确解析执行结果并据此做出后续决策。

五、技术原理

5.1 整体架构

wps-dsh-plugin 的整体架构分为四个层次,自顶向下依次为:

  1. DSH Agent 层:用户通过自然语言与 DSH Agent 交互,Agent 根据任务语义自动选择并调用工具

  1. 适配层(wps-dsh-plugin):通过 DSH 的 MCP Client 机制,与上游 MCP Server 建立 stdio 连接,提供工具命名空间隔离和 Skill 路由

  1. MCP Server 层(wps-office-mcp):使用 @modelcontextprotocol/sdk 库实现,通过 stdio 传输层与 AI 助手建立连接,处理 tools/list 和 tools/call 两类请求

  1. 执行层:在 Windows 平台上通过 PowerShell 脚本调用 WPS COM 接口实现客户端操控

5.2 MCP 协议桥接

MCP(Model Context Protocol)是 Anthropic 推出的开放协议标准,旨在为 AI 模型提供与外部工具交互的标准化接口。该协议定义了三种核心请求类型:

  • tools/list:获取当前可用的工具列表及其 JSON Schema

  • tools/call:调用指定工具并传入参数

  • notifications:服务器主动推送事件通知

wps-dsh-plugin 利用 DSH 对 MCP 的原生 Client 支持,自动完成与上游 wps-office-mcp 服务的握手和通信。DSH 将 stdio MCP Server 作为受信任的本机子进程启动,Agent 通过标准的 MCP 协议调用工具,无需关注底层通信细节。

5.3 Windows 执行链路

在 Windows 平台上,完整的调用链路如下:

  1. DSH Agent 通过 MCP 协议发起 tools/call 请求

  1. wps-office-mcp 根据工具名称从注册表中查找对应的 ToolDefinition 和 ToolHandler,执行 JSON Schema 参数校验

  1. WpsClient 模块通过 os.platform() 检测当前平台为 Windows 后,使用 Node.js 的 child_process.spawn 启动 PowerShell 进程,传入 -ExecutionPolicy Bypass -File wps-com.ps1 -Action <动作名> -Params <JSON参数>

  1. PowerShell 脚本通过 .NET 运行时互操作服务 [System.Runtime.InteropServices.Marshal]::GetActiveObject() 从 Windows 运行对象表(Running Object Table, ROT)中获取已运行的 WPS 应用程序 COM 对象

  1. 获取 COM 对象后,脚本通过 switch 语句(涵盖 230 余个分支)将 Action 路由到对应的处理逻辑

  1. 操作结果被统一封装为 {success: bool, data: object, error: string} 结构的 JSON 对象,通过 PowerShell 的 ConvertTo-Json 输出到 stdout,由 Node.js 进程捕获并解析

  1. 结果经由 MCP 协议返回给 DSH Agent

5.4 严格的启动验证

插件设置了 failOnStartupError: true 配置项。当 WPS MCP 路径错误、服务启动失败或工具发现失败时,DSH 会明确报错,而不是加载一个没有 WPS 工具的空壳。这种设计避免了用户在无感知的情况下使用一个功能残缺的插件,确保了用户体验的可靠性。

5.5 安全与权限说明

  • DSH 会把 stdio MCP Server 作为受信任的本机子进程启动,它不运行在 Agent 文件系统沙箱内

  • 上游 MCP 会写入 ~/.wps-office-mcp/logs 目录,可通过 WPS_MCP_HOME 环境变量改变日志根目录

  • WPS 工具能够修改真实文档,因此执行批量或覆盖操作前应确认范围并保留备份

六、结语

wps-dsh-plugin 为 DeepSeek Harness 用户提供了一条将 WPS Office 文档处理能力接入 AI Agent 工作流的标准化通道。其独特之处在于它不重复实现任何工具逻辑,而是通过 MCP 协议桥接上游 wps-skills 项目已有的 200 余个专业工具,实现了适配层与工具层的清晰分离。

对于已经使用 WPS Office 作为主要办公工具、并希望借助 DSH Agent 实现办公自动化的用户而言,wps-dsh-plugin 是一个值得关注的方案。它让用户能够通过自然语言直接操控本机 WPS Office 中的活动文档,涵盖了从数据读写、格式设置到图表创建、演示文稿美化的完整办公场景。

广东省
浏览 65
收藏
6
分享
6 +1
2
+1
全部评论 2
 
WPS_1657069576
太强了
   陕西省
举报
2
0
 
快乐小子新
快乐小子新 Lv.2 潜力创作者

Lv.2潜力创作者

不会弄的话,就把仓库地址发给Agent,让Agent自己安装。
   广东省
举报
2
0