开发SKILL并被JVS Claw使用

更新时间:
复制为 MD 格式

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

背景、问题和解决思路

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

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

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

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

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

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

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

案例介绍

业务需求

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

实现思路

  • 开发一个SKILL,包含数据采集和分析两个过程。数据采集使用RPA开发的自动化流程,分析的内容要求明确在SKILL

  • 运营人员在JVS Claw使用该SKILL

  • 运行结构

    image

操作过程:

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

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

  3. JVS Claw中添加MCP

  4. 编写SKILL,并添加到JVS Claw中。

运营人员的使用过程:

  • 操作JVS Claw,完成对应的业务操作。

操作过程

安装JVS Claw

操作过程详见 JVS Claw,本例中使用其云端Clawbot。

开发自动化流程并发布为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

JVS Claw中添加mcp

JVS Claw的配置原理与开发SKILL并被OpenClaw使用基本一致,本章节完成mcporter中添加mcp。

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

    image

  2. 选择JVS ClawClawbot,在对话窗口中输入指令为 使用 mcporter 工具,接入MCP Server需要附上一步的json。

    image

    添加成功后如下所示

    image

JVS Claw中添加SKILL

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

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

    说明

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

    1. SKILL.md

      ---
      name: rpa-skill
      description: |
        运营提效工具合集,包括:查询店铺的商品销售数据等。
        触发时机:商品运营、商品统计、趋势、价格、销售量
      metadata:
        {
          "openclaw":
            {
              "requires": { "env": ["ALIYUN_RPA_RobotId"] },
              "primaryEnv": "ALIYUN_RPA_RobotId",
            },
        }
      ---
      
      # rpa-skill
      
      统一入口: 使用mcporter调用mcp tool
      
      ## 包含的工具
      | tool | 说明                   |
      |-----|----------------------|
      | `list_product_metrics` | 查询指定日期的所有店铺的商品销售数据 |
      | `workerSysGetTaskStatus`| 根据taskId查询任务运行状态和结果  |
      
      ## 使用流程
      - 除了`workerSysGetTaskStatus`,其他工具都是异步调用方式,调用后会立即返回一个TaskId
      - 可使用`workerSysGetTaskStatus`查询taskId的任务运行状态和结果
      - 如果需要等待任务结果,可以需要使用`workerSysGetTaskStatus`工具轮询查询该taskId的任务状态和结果,轮询调用的间隔时间5s-10s
      - 如果入参需要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。通过URL方式安装

    1. 本例使用OSS保存SKILL文件。将上述3个文件提交到OSS后,目录结构如下所示,references中保存另外的2md文件。

      image

    2. OSS控制台上获得SKILL.mdurl,注意该url需要能够公网访问。

    3. 选择JVS ClawClawbot,在对话窗口中输入指令为 安装skill,<填写skill.mdurl>

      image

      安装成功如下所示

      image

  3. 配置RobotId

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

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

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

    2. 在对话窗口中输入指令为 设置环境变量ALIYUN_RPA_RobotId=<需要修改为前文的服务型机器人ID>

      image

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

使用效果

使用者在JVS ClawClawbot对话窗口中,要求对指定日期的数据分析并总结

image

执行结果如下所示

image

说明

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