通过示例介绍如何开发能够操作企业内软件的SKILL,并在CoPaw中使用。
背景、问题和解决思路
企业客户在使用桌面Agent时会面对如下问题:
准确性低,无法满足企业客户要求。目前Agent在操作企业使用的软件时,无法保证操作结果的准确性,但错误的结果会直接为企业带来真金白银的损失。如供应链的准备报关单过程,电商运营的商品上架过程。
执行速度慢,无法使用在企业客户的生产流程中。Agent运行过程中需要经历无数个“感知-规划-动作”循环,在操作企业相关软件时容易陷入长时间的无效尝试、或很慢才能完成部分工作。
消耗大量Token,性价比低。Agent运行过程时,即便是重复性的任务,也需要模型的全程参与。
因此本文提供一种解决思路
首先将企业内各种标准操作过程使用RPA开发为可重复执行的自动化流程,并能够被Agent以SKILL方式集成。
企业员工在使用Agent时,Agent可使用这些SKILL,真正为企业带来业务价值。
案例介绍
业务需求
运营人员每天需要进行商品销售数据进行分析。面临两个问题:一、商品在各个平台上进行销售,需要手动把各个店铺的商品销售数据下载后才能进行分析;二、部分分析内容比较固定,但每次都需要人工分析和总结很麻烦
Agent构成:
CoPaw:员工使用钉钉IM方式与Agent进行交互,下发任务、收到运行结果
企业SKILL:根据业务需求,SKILL至少需要提供功能:自动获取该企业在各个平台上的店铺商品销售数据
运行结构
操作过程:
安装CoPaw。
使用RPA开发自动化流程,并发布为MCP Tool。
使用RPA服务型机器人,作为SKILL的运行时。
在CoPaw中添加相应的MCP Server配置。
在CoPaw中增加SKILL。
运营人员的使用过程:
与CoPaw的交互,完成业务需求。
操作过程
安装CoPaw
本文使用计算巢完成CoPaw的安装、配置,操作过程详见部署专属 CoPaw。使用的CoPaw版本为1.0.0,模型使用Qwen3 Max。
开发自动化流程并发布为MCP Tool
使用RPA开发自动化流程的过程详见 开发一个自动化流程。
本例所需的自动化流程的流程输入和输出如下:
自动化流程
流程输入(入参)
流程输出
自动获取店铺商品销售数据
statis_date:查询指定日期的商品销售数据
获取的商品数据为JSON格式,包含每个店铺的商品id、商品名称、风格标签、销售数量、单价、收藏人次等
自动化流程将获取的数据使用task_result保存
重要由于每个企业客户使用的电商平台、所需的数据、操作的软件各不相同,本例中的自动化流程的具体实现内容不具有通用性。可参考 开发一个自动化流程 ,开发符合企业经营过程的自动化流程。
将自动化流程发布为RPA应用,详见发布和管理应用。

发布为MCP Tool。操作过程可参考 发布为MCP Tool,发布后的MCP Tool信息如下
重要如果自动化应用的执行时间较长,建议在Tool Description中增加说明预计耗时、Agent轮询查询的间隔时间。
准备SKILL运行时
本例中,使用RPA服务型机器人作为SKILL的运行时。
服务型机器人需要使用无影云电脑,可参考 服务形式运行自动化流程进行配置。创建成功后如下图,后续步骤会使用该服务型机器人运行SKILL。

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

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

在CoPaw中添加SKILL
本章节主要介绍如何在CoPaw中添加企业SKILL,帮助Agent更好的理解使用者的意图、准确完成任务。
准备SKILL,共3个md文件。
说明本文SKILL内容仅供参考,您在使用时需要结合具体业务场景进行修改。
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 tool的description内容为准 - 如果入参需要RobotId,使用`ALIYUN_RPA_RobotId` ## 执行前置 - 首次执行 `list_product_metrics`前,先完整阅读 `references/list_product_metrics.md` - 首次执行 `workerSysGetTaskStatus`前,先完整阅读 `references/workerSysGetTaskStatus.md` - 同一会话内后续重复调用同一能力可复用已加载知识;仅在规则冲突或文档更新时重读。references目录下包含2个md,分别如下
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 | 任务异常结束 |
添加SKILL。将SKILL.md等3个文件按照文件目录压缩为rpa-skill.zip,并在CoPaw控制台上传此zip文件,如下所示

配置RobotId
设置SKILL运行所在的机器人,避免业务人员使用时还需要向Agent提供机器人ID信息。
重要本文为了简化使用过程,约定所有使用者使用同一个SKILL运行环境(同一个机器人)。
此方式在实际使用时有一定局限性,建议为每个员工配备一个单独的云端数字员工,同时需要增加管理SKILL运行环境(机器人)和员工关系的功能模块。
在CoPaw控制台的技能菜单中,点击上一步添加的rpa-skill,配置如下,填入机器人ID。

至此,已经完成所有配置工作。
使用效果
使用者在CoPaw机器人聊天,提出相应需求:

执行结果如下:

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


