开发SKILL并被CoPaw使用

更新时间:
复制为 MD 格式

通过示例介绍如何开发能够操作企业内软件的SKILL,并在CoPaw中使用。

背景、问题和解决思路

企业客户在使用桌面Agent时会面对如下问题:

  • 准确性低,无法满足企业客户要求。目前Agent在操作企业使用的软件时,无法保证操作结果的准确性,但错误的结果会直接为企业带来真金白银的损失。如供应链的准备报关单过程,电商运营的商品上架过程。

  • 执行速度慢,无法使用在企业客户的生产流程中。Agent运行过程中需要经历无数个“感知-规划-动作”循环,在操作企业相关软件时容易陷入长时间的无效尝试、或很慢才能完成部分工作。

  • 消耗大量Token,性价比低。Agent运行过程时,即便是重复性的任务,也需要模型的全程参与。

因此本文提供一种解决思路

  • 首先将企业内各种标准操作过程使用RPA开发为可重复执行的自动化流程,并能够被AgentSKILL方式集成。

  • 企业员工在使用Agent时,Agent可使用这些SKILL,真正为企业带来业务价值。

案例介绍

业务需求

  • 运营人员每天需要进行商品销售数据进行分析。面临两个问题:一、商品在各个平台上进行销售,需要手动把各个店铺的商品销售数据下载后才能进行分析;二、部分分析内容比较固定,但每次都需要人工分析和总结很麻烦

Agent构成:

  • CoPaw:员工使用钉钉IM方式与Agent进行交互,下发任务、收到运行结果

  • 企业SKILL:根据业务需求,SKILL至少需要提供功能:自动获取该企业在各个平台上的店铺商品销售数据

  • 运行结构

    image

操作过程:

  1. 安装CoPaw。

  2. 使用RPA开发自动化流程,并发布为MCP Tool。

  3. 使用RPA服务型机器人,作为SKILL的运行时。

  4. CoPaw中添加相应的MCP Server配置。

  5. CoPaw中增加SKILL。

运营人员的使用过程:

  • CoPaw的交互,完成业务需求。

操作过程

安装CoPaw

本文使用计算巢完成CoPaw的安装、配置,操作过程详见部署专属 CoPaw。使用的CoPaw版本为1.0.0,模型使用Qwen3 Max。

开发自动化流程并发布为MCP Tool

  1. 使用RPA开发自动化流程的过程详见 开发一个自动化流程

  2. 本例所需的自动化流程的流程输入和输出如下:

    自动化流程

    流程输入(入参)

    流程输出

    自动获取店铺商品销售数据

    • statis_date:查询指定日期的商品销售数据

    • 获取的商品数据为JSON格式,包含每个店铺的商品id、商品名称、风格标签、销售数量、单价、收藏人次等

    • 自动化流程将获取的数据使用task_result保存

    重要

    由于每个企业客户使用的电商平台、所需的数据、操作的软件各不相同,本例中的自动化流程的具体实现内容不具有通用性。可参考 开发一个自动化流程 ,开发符合企业经营过程的自动化流程。

  3. 将自动化流程发布为RPA应用,详见发布和管理应用

    image

  4. 发布为MCP Tool。操作过程可参考 发布为MCP Tool,发布后的MCP Tool信息如下

    image

    重要

    如果自动化应用的执行时间较长,建议在Tool Description中增加说明预计耗时、Agent轮询查询的间隔时间。

准备SKILL运行时

本例中,使用RPA服务型机器人作为SKILL的运行时。

服务型机器人需要使用无影云电脑,可参考 服务形式运行自动化流程进行配置。创建成功后如下图,后续步骤会使用该服务型机器人运行SKILL。

image

CoPaw中添加mcp

  1. RPA控制台的MCP Server菜单中,获取MCP Server配置。如下图,该配置同时包含多个MCP Server信息。

    image

  2. 通过计算巢提供的CoPawPrivate Addresses,在CoPaw控制台中完成MCP的添加,如下所示:

    image

CoPaw中添加SKILL

本章节主要介绍如何在CoPaw中添加企业SKILL,帮助Agent更好的理解使用者的意图、准确完成任务。

  1. 准备SKILL,共3md文件。

    说明

    本文SKILL内容仅供参考,您在使用时需要结合具体业务场景进行修改。

    1. SKILL.md

      ---
      name: rpa-skill
      description: |
        运营提效工具合集,包括:查询店铺的商品销售数据等
        触发时机:商品运营、商品统计、趋势、价格、销售量
      metadata:
        {
          "copaw":
            {
              "requires": { "env": ["ALIYUN_RPA_RobotId"] },
            },
        }
      ---
      
      # rpa-skill
      
      统一入口: 使用mcporter调用mcp tool
      
      ## 包含的工具
      | tool | 说明                   |
      |-----|----------------------|
      | `list_product_metrics` | 查询指定日期的所有店铺的商品销售数据 |
      | `workerSysGetTaskStatus`| 根据taskId查询任务运行状态和结果  |
      
      ## 使用流程
      - 除了`workerSysGetTaskStatus`,其他工具都是异步调用方式,调用后会立即返回一个TaskId
      - 可使用`workerSysGetTaskStatus`查询taskId的任务运行状态和结果
      - 如果需要等待任务结果,可以需要使用`workerSysGetTaskStatus`工具轮询查询该taskId的任务状态和结果,轮询间隔时间优先以mcp tooldescription内容为准
      - 如果入参需要RobotId,使用`ALIYUN_RPA_RobotId`
      
      ## 执行前置
      - 首次执行 `list_product_metrics`前,先完整阅读 `references/list_product_metrics.md`
      - 首次执行 `workerSysGetTaskStatus`前,先完整阅读 `references/workerSysGetTaskStatus.md`
      - 同一会话内后续重复调用同一能力可复用已加载知识;仅在规则冲突或文档更新时重读。
    2. references目录下包含2md,分别如下

      list_product_metrics.md

      # 查询指定日期的所有店铺的商品销售数据
      
      用途:查询指定日期的所有店铺的商品销售数据
      
      ## 调用
      
      使用mcp调用此工具,需要提供以下参数:
      
      | 参数          | 默认 | 说明                               |
      |-------------|----|----------------------------------|
      | robotId     | 必填 | 使用`ALIYUN_RPA_RobotId`           |
      | statis_date | 必填 | 统计指定日期的销售数据,格式为年-月-日,例如2026-11-2 |
      
      ## 输出结构
      
      - 调用成功后返回 `TaskId`
      - 可使用`workerSysGetTaskStatus`查询TaskId的任务执行结果,`taskResult`内容为填写的日报内容,举例如下:
      
      ```json
      {
        "A店铺": {
          "products": [
            {
              "id": "FS-2026-001",
              "name": "新中式提花宋锦外套 (春日限定)",
              "style_tags": [
                "新中式",
                "国潮"
              ],
              "sales": 1850,
              "favorites_and_cart": 6200,
              "avg_transaction_price": 328.0
            }
          ]
        }
      }
      ```
      
      - 结果中`products`的字段含义参考
      
      | 字段                    | 含义           |
      |-----------------------|--------------|
      | id                    | 商品ID         |
      | name                  | 商品名称         |
      | style_tags            | 商品标签         |
      | sales                 | 销售数量,单位(件)   |
      | favorites_and_cart    | 收藏商品的人数      |
      | avg_transaction_price | 平均成交价格,单位(元) |
      
      

      workerSysGetTaskStatus.md

      # 查询任务运行状态和结果
      
      用途:根据taskId查询任务运行情况
      
      ## 调用
      
      使用mcp调用此工具,需要提供以下参数:
      
      | 参数     | 默认 | 说明             |
      |--------|----|----------------|
      | taskId | 必填 | 调用工具时返回的taskId |
      
      
      ## 输出结构
      
      - 返回json结构
      - 如果任务完成,返回的结果举例如下,`taskResult`对应工具执行结果,详见references/capabilities/下不同工具的md
      
      ```json
      {
        "taskStatus": "complete",
        "taskResult": "工具执行的结果"
      }
      ```
      
      - 如果任务未完成,返回的结果举例如下
      
      ```json
      {
        "taskStatus": "waiting"
      }
      ```
      
      - `taskStatus` 对应的值和含义如下
      
      | 值          | 含义     |
      |------------|--------|
      | waiting    | 任务等待运行 |
      | running    | 任务正在运行 |
      | complete   | 任务正常结束 |
      | terminated | 任务异常结束 |
      
  2. 添加SKILL。将SKILL.md3个文件按照文件目录压缩为rpa-skill.zip,并在CoPaw控制台上传此zip文件,如下所示

    image

  3. 配置RobotId

    1. 设置SKILL运行所在的机器人,避免业务人员使用时还需要向Agent提供机器人ID信息。

      重要
      • 本文为了简化使用过程,约定所有使用者使用同一个SKILL运行环境(同一个机器人)。

      • 此方式在实际使用时有一定局限性,建议为每个员工配备一个单独的云端数字员工,同时需要增加管理SKILL运行环境(机器人)和员工关系的功能模块。

    2. CoPaw控制台的技能菜单中,点击上一步添加的rpa-skill,配置如下,填入机器人ID。

      image

至此,已经完成所有配置工作。

使用效果

使用者在CoPaw机器人聊天,提出相应需求:

image

执行结果如下:

image

说明

本文中商品销售数据为模拟数据。