DEV Community

Zhang Zhemin
Zhang Zhemin

Posted on

从 JS 宏到 AI Agent:用 WPS 开放平台打造可编程的自动化文档流水线

从 JS 宏到 AI Agent:用 WPS 开放平台打造可编程的自动化文档流水线

在办公自动化领域,文档处理长期处于“手工复制粘贴”和“本地宏脚本”之间。WPS 作为国内最常用的办公套件之一,提供了从 JS 宏到开放平台 API 的完整能力。本文将沿着“宏 -> 服务 -> Agent”的路径,讨论如何用 WPS 开放平台搭建可编程的自动化文档流水线。如果你还没有安装最新版 WPS,可以通过 WPS官网 了解产品能力,并完成 WPS下载

1. 从 JS 宏开始:单机自动化的甜点

WPS 的宏能力让用户可以用脚本操作文档对象模型。相比 VBA,JS 宏对前端开发者更友好。一个典型场景是批量替换、格式化、导出 PDF:

function batchReplaceAndExport() {
  const app = wps.WpsApplication();
  const doc = app.ActiveDocument;
  const find = doc.Content.Find;
  find.Text = '{{company}}';
  find.Replacement.Text = '示例科技';
  find.Execute(null, null, null, null, null, null, null, null, null, null, 2);
  doc.ExportAsFixedFormat('output.pdf', 17);
}
Enter fullscreen mode Exit fullscreen mode

JS 宏的优势是上手快、能直接访问文档对象、适合个人和小团队。但它的局限也明显:

  • 运行在客户端,依赖本机 WPS 环境;
  • 触发方式有限,通常需要手动点击或打开文档;
  • 难以集中管理模板、权限和日志;
  • 不适合高并发、跨团队、多步骤的业务流程。

因此,当自动化需求从“单机批处理”升级为“业务流水线”,就需要 WPS 开放平台。

2. WPS 开放平台:把文档能力服务化

WPS 开放平台提供多种集成方式,可以按场景组合:

  • 客户端加载项:用 JavaScript 开发任务窗格、Ribbon 按钮,直接嵌入 WPS 客户端。
  • WebOffice:在浏览器或业务系统中嵌入在线文档编辑,支持协同、权限、水印等。
  • 云文档 API:管理文件、文件夹、权限、版本、协作记录。
  • 回调与 Webhook:文档保存、评论、状态变更时触发业务逻辑。
  • 脚本/自动化能力:用脚本在云端或端上执行文档操作。

对接前,建议从 WPS官网 获取最新开发文档,并在 WPS下载 页面安装与生产环境一致的客户端版本,避免 API 行为差异。

3. 目标架构:可编程文档流水线

一条完整的自动化文档流水线通常分为五层:

  1. 触发层:表单提交、IM 消息、定时任务、Webhook。
  2. 编排层:Node.js、Python 或 Serverless 函数,负责状态机与重试。
  3. 文档操作层:调用 WPS 开放平台 API,或通过 JS 加载项执行端侧操作。
  4. AI Agent 层:大模型理解意图,抽取参数,选择工具,校验结果。
  5. 存储与审计层:对象存储、数据库、日志、权限审计。

数据流可以简化为:

用户请求 -> Agent 解析 -> 编排服务 -> [WPS](https://www.wps.com/) 开放平台 -> 文档生成/编辑 -> 导出/回传 -> 通知用户
Enter fullscreen mode Exit fullscreen mode

4. 示例:合同自动生成流水线

假设业务方需要根据销售线索生成合同。传统做法是下载模板、手工填写、邮件发送。用 WPS 开放平台 + AI Agent,可以这样设计:

4.1 Agent 工具定义

给 Agent 暴露一组工具,而不是让它直接操作文档。例如:

name: create_wps_document
description: 基于模板创建 [WPS](https://www.wps.com/) 文档
parameters:
  type: object
  properties:
    template_id:
      type: string
    fields:
      type: object
    output_format:
      type: string
      enum: [docx, pdf]
  required: [template_id, fields]
Enter fullscreen mode Exit fullscreen mode

Agent 的职责是:

  • 从自然语言或表单中抽取客户名称、金额、日期、条款;
  • 调用 create_wps_document
  • 检查返回的文档链接和状态;
  • 如果失败,根据错误类型重试或转人工。

4.2 编排服务伪代码

async function generateContract(payload) {
  const token = await getWpsAccessToken();
  const doc = await wpsApi.createDocument({
    templateId: payload.templateId,
    fields: payload.fields,
    token
  });

  await wpsApi.exportPdf(doc.id, token);
  await notify(payload.userId, doc.url);
  return doc;
}
Enter fullscreen mode Exit fullscreen mode

真实项目中,需要把 getWpsAccessTokencreateDocument 等替换为 WPS 开放平台的具体接口,并处理限流、幂等和错误码。

4.3 端侧 JS 宏作为补充

有些复杂排版、目录更新、域代码刷新,云 API 不一定完全覆盖。这时可以在受控客户端上用 JS 宏或加载项完成最后一步:

function finalizeDocument() {
  const app = wps.WpsApplication();
  const doc = app.ActiveDocument;
  doc.Fields.Update();
  doc.TablesOfContents(1).Update();
  doc.Save();
}
Enter fullscreen mode Exit fullscreen mode

关键原则是:能服务化就服务化,必须端侧执行时,把宏封装成可追踪的任务,不要让宏成为黑盒。

5. 工程化关键点

  • 认证与权限:使用 OAuth2 或 AppID/AppSecret,遵循最小权限原则。
  • 幂等设计:为每次生成任务分配业务 ID,避免重复创建文档。
  • 模板治理:统一占位符,如 {{customer_name}},并建立模板版本。
  • 安全合规:敏感字段脱敏,日志不记录完整合同内容。
  • 可观测性:记录任务状态、耗时、错误码、文档 ID。
  • 失败兜底:重试、死信队列、人工复核入口。
  • 版本兼容:通过 WPS官网 关注 API 变更,通过 WPS下载 保持客户端版本一致。

6. 从宏到 Agent 的迁移路径

建议分四步走:

  1. 宏脚本化:把重复操作写成 JS 宏,确认业务规则。
  2. 服务化:把宏逻辑迁移到 WPS 开放平台 API,加入任务队列。
  3. Agent 化:用 LLM 做意图识别和参数抽取,工具调用负责执行。
  4. 多 Agent 协作:合同 Agent、报表 Agent、审批 Agent 通过消息总线协作。

这样既能保留 WPS 在文档排版、兼容性、协作上的优势,又能获得 AI Agent 的灵活性和自然语言入口。

7. 结语

从 JS 宏到 AI Agent,不是简单的技术替换,而是自动化边界的扩展:宏解决“怎么操作文档”,开放平台解决“怎么把文档能力接入业务”,AI Agent 解决“怎么让业务人员用自然语言驱动流程”。WPS 开放平台提供了稳定的文档底座。无论你是从 WPS官网 查阅文档,还是完成 WPS下载 开始本地验证,都可以先用宏跑通最小闭环,再逐步演进为可编程、可观测、可扩展的自动化文档流水线。

Top comments (0)