返回 Skill 列表
extension
分类: 其它无需 API Key

Qf Mcp Benchmark

淘宝桌面版MCP工具评测框架,用于系统化测试MCP工具各项功能,生成专业技评报告。适用于淘宝MCP工具的评测、测试、验收及迭代验证。

person作者: zironglvhubclawhub

淘宝桌面版MCP评测框架 v1.7.7

概述

本skill提供一套系统化的评测框架,用于测试淘宝桌面版MCP工具的各项功能,并生成专业的技术评测报告。

v1.7.7 更新内容

  • 清理历史遗留的小红书相关提示(任务6已改为图片OCR流程,不再涉及小红书)

v1.7.6 更新内容

  • 新增任务9:收藏夹商家上新检查
  • 调整任务权重分配

v1.7.5 更新内容

  • 任务6重构:图片OCR识别+价格对比+最便宜商品加购

v1.7.3 更新内容

  • 更新钉钉文档链接格式

v1.7.2 更新内容

  • 新增任务8:退货退款申请(包含定时任务跟踪)
  • 支持自动检查退货状态并通知用户

v1.7.1 更新内容

  • 钉钉文档更新必须使用钉钉文档MCP(mcporter call 钉钉文档
  • 强调每次评测必须填写完整的评测报告并追加到钉钉文档

⚠️ 执行原则(必须遵守)

原子性执行

评测任务一旦开始,必须完整执行完成,不可中断。

| 原则 | 说明 | |------|------| | 不可中断 | 开始评测后,必须完成所有8个任务 + 生成报告 | | 完整流程 | 初始化 → 任务1-8 → 截图收集 → 报告生成 → 清理 | | 状态跟踪 | 每个任务完成后记录 checkpoint,便于恢复 | | 详细记录 | 每个工具调用必须记录完整参数和返回结果 |


📝 详细记录规范(v1.6.0 新增)

工具调用日志格式

每次工具调用后,必须将完整信息保存到日志文件:

文件位置~/.copaw/tasks/benchmark_{id}/calls/

命名规则{task_id}_{step}_{tool_name}.json

日志格式

{
  "call_id": "T1_S1_navigate",
  "task_id": 1,
  "step": 1,
  "tool": "navigate",
  "params": {
    "page": "home"
  },
  "result": {
    "success": true,
    "page": "home",
    "url": "https://pages-fast.m.taobao.com/..."
  },
  "start_time": "2026-03-20 12:30:00.123",
  "end_time": "2026-03-20 12:30:02.456",
  "duration_ms": 2333,
  "success": true,
  "screenshot": "T1_S1_homepage.png",
  "error": null
}

截图关联规则

| 截图命名 | 关联调用 | 说明 | |----------|----------|------| | T{task_id}_S{step}_{desc}.png | 对应的调用日志 | 操作后截图 | | T{task_id}_issue_{n}.png | 问题截图 | 发现问题时截图 |

任务完成记录格式

每个任务完成后,生成任务详情文件:

文件位置~/.copaw/tasks/benchmark_{id}/tasks/task_{id}.json

{
  "task_id": 1,
  "task_name": "淘金币签到",
  "weight": 0.15,
  "start_time": "2026-03-20 12:30:00",
  "end_time": "2026-03-20 12:32:30",
  "duration_seconds": 150,
  "call_count": 5,
  "score": 9.0,
  "status": "completed",
  "calls": [
    {
      "step": 1,
      "tool": "navigate",
      "params": {"page": "home"},
      "result_summary": "成功导航到首页",
      "duration_ms": 2333
    }
  ],
  "screenshots": ["T1_S1_homepage.png", "T1_S2_coin_popup.png"],
  "data": {
    "coins": 10003,
    "can_deduct": 100
  },
  "issues": [],
  "notes": "成功完成淘金币签到流程"
}

评测任务清单

任务1:淘金币签到(权重 13%)

测试目标:验证导航、元素识别、点击操作的稳定性

测试步骤

  1. navigate → 首页
  2. scan_page_elements → 识别淘金币入口
  3. click_element → 进入淘金币页面
  4. read_page_content → 读取金币数量
  5. 完成签到任务
  6. 验证金币增加

评分标准: | 指标 | 分值 | |------|------| | 导航成功 | 2分 | | 元素识别准确 | 2分 | | 点击操作成功 | 2分 | | 金币增加验证 | 2分 | | 流程顺畅度 | 2分 |


任务2:商品搜索+对比+加购(权重 17%)

测试目标:验证搜索、详情查看、SKU选择、加购流程

测试步骤

  1. search_products → 搜索关键词
  2. read_page_content → 读取搜索结果
  3. 筛选商品进行对比
  4. add_to_cart → 加入购物车

评分标准: | 指标 | 分值 | |------|------| | 搜索返回结果 | 2分 | | 商品详情页导航 | 2分 | | 信息提取完整 | 2分 | | SKU选择准确 | 2分 | | 加购成功 | 2分 |


任务3:订单管理(权重 17%)

测试目标:验证订单页面导航、状态筛选功能

测试步骤

  1. navigate → 订单页面
  2. scan_page_elements → 识别筛选标签
  3. 测试筛选功能
  4. read_page_content → 读取订单列表

评分标准: | 指标 | 分值 | |------|------| | 订单页面导航 | 2分 | | 筛选标签识别 | 2分 | | 筛选功能正常 | 2分 | | 订单信息读取 | 2分 | | 页面切换流畅 | 2分 |


任务4:获取购物车以及降价信息(权重 17%)

测试目标:验证购物车导航、商品列表读取、降价信息提取

测试步骤

  1. navigate → 购物车页面
  2. read_page_content → 读取商品列表
  3. 统计购物车商品
  4. 识别降价商品

评分标准: | 指标 | 分值 | |------|------| | 购物车导航成功 | 2分 | | 商品列表读取完整 | 2分 | | 降价标签点击成功 | 2分 | | 降价信息提取准确 | 2分 | | 数据记录完整 | 2分 |


任务5:客服咨询对话(权重 13%)

测试目标:验证客服咨询功能

测试步骤

  1. search_products → 搜索商品
  2. open_chat → 进入客服对话
  3. 发送咨询消息
  4. 等待回复

评分标准: | 指标 | 分值 | |------|------| | 商品搜索成功 | 2分 | | 进入客服对话 | 2分 | | 消息发送成功 | 2分 | | 客服回复接收 | 2分 | | 对话记录完整 | 2分 |


任务6:图片OCR识别与淘宝加购(权重 5%)

测试目标:验证图片OCR识别、商品搜索、价格对比、加购流程

测试图片https://img.alicdn.com/imgextra/i2/385132127/O1CN01vV3hBP1RaDYS7eteZ_!!4611686018427381343-2-item_pic.png_.webp

测试步骤

阶段1:OCR识别商品图片

  1. 下载图片:将测试图片下载到本地临时目录
  2. OCR识别:使用OCR工具识别图片中的商品信息
    • 提取商品名称/关键词
    • 提取SKU规格(如有)
    • 记录识别结果

阶段2:淘宝搜索商品

  1. search_products → 使用OCR提取的关键词搜索
  2. read_page_content → 读取搜索结果列表
  3. 记录商品列表(标题、价格、店铺、链接)

阶段3:价格对比与选品

  1. 解析搜索结果中的价格信息
  2. 按价格排序,找到最便宜的商品
  3. 记录最低价商品信息:
    • 商品ID
    • 商品标题
    • 价格
    • 店铺名称

阶段4:加购最便宜商品

  1. add_to_cart → 将最便宜的商品加入购物车
  2. 如果有SKU选择,根据OCR识别的规格选择
  3. 验证加购成功

数据记录格式

{
  "ocr_result": {
    "keywords": "识别的商品关键词",
    "sku_info": "识别的SKU规格",
    "confidence": 0.95
  },
  "search_results": [
    {
      "title": "商品标题",
      "price": 99.00,
      "shop": "店铺名",
      "item_id": "xxx"
    }
  ],
  "cheapest": {
    "title": "最便宜商品标题",
    "price": 88.00,
    "shop": "店铺名",
    "item_id": "xxx"
  },
  "add_to_cart_result": {
    "success": true,
    "message": "加购成功"
  }
}

评分标准: | 指标 | 分值 | |------|------| | 图片OCR识别成功 | 2分 | | 关键词提取准确 | 1分 | | 搜索返回结果 | 1分 | | 价格对比正确 | 2分 | | 加购最便宜商品成功 | 2分 | | 数据记录完整 | 1分 | | 流程顺畅度 | 1分 |


任务7:购物车价格监控设置(权重 5%)

测试目标:验证价格监控功能

测试步骤

  1. navigate → 购物车
  2. read_page_content → 读取降价信息
  3. 记录价格监控数据

评分标准: | 指标 | 分值 | |------|------| | 购物车导航成功 | 2分 | | 降价信息显示 | 2分 | | 价格保护服务 | 2分 | | 监控入口识别 | 2分 | | 数据完整性 | 2分 |


任务8:退货退款申请(权重 10%)

测试目标:验证售后流程完整性,包括订单查找、申请提交、状态跟踪

⚠️ 重要说明

  • 此任务会真实提交退货退款申请,请在测试环境或确认后执行
  • 需要配合定时任务跟踪退货状态

测试步骤

阶段1:查找已成交订单

  1. navigate{"page": "order"}
  2. scan_page_elements → 识别订单状态筛选标签
  3. click_element → 点击"已完成"或"已成交"筛选
  4. read_page_content → 读取订单列表
  5. 找到最新已成交订单,记录订单号

阶段2:提交退货退款申请

  1. click_element → 点击订单的"申请售后"按钮
  2. scan_page_elements → 识别售后类型选项
  3. click_element → 选择"退货退款"
  4. click_element → 选择退货原因(如"不想要了"、"商品描述不符"等)
  5. type → 填写退货说明(可选)
  6. click_element → 提交申请
  7. read_page_content → 读取申请结果

阶段3:处理申请结果

情况A:需要等待商家确认

1. 记录退货申请单号
2. 告知用户:
   "✅ 退货退款申请已提交,等待商家确认。
    我已设置定时任务,每小时自动检查退货进度。"
3. 创建定时任务检查退货状态

情况B:直接通过申请(极速退款)

1. `read_page_content` → 读取取件码
2. 发送取件码给用户:
   "✅ 退货申请已通过!
    📦 取件码:XXXXXX
    请联系快递员上门取件或前往快递点寄件。"

阶段4:定时任务跟踪(可选)

创建定时检查任务

# 使用 copaw cron 创建定时任务
copaw cron add --name "检查退货申请状态" --schedule "0 * * * *" --command "检查退货申请 {申请单号}"

定时任务逻辑

# 每小时执行一次
1. navigate → 订单页面
2. 找到退货申请订单
3. 读取当前状态
4. 如果状态变化:
   - 商家同意 → 发送取件码给用户
   - 商家拒绝 → 通知用户并说明原因
   - 退货完成 → 通知用户退款已到账

退货状态枚举: | 状态 | 说明 | 通知内容 | |------|------|----------| | pending | 等待商家确认 | 已提交,定时检查中 | | approved | 商家同意 | 取件码:XXX | | rejected | 商家拒绝 | 拒绝原因:XXX | | pickup_scheduled | 待取件 | 快递员将上门取件 | | in_transit | 运输中 | 退货运输中 | | refunded | 退款完成 | 退款已到账 |

评分标准: | 指标 | 分值 | |------|------| | 订单查找成功 | 2分 | | 售后入口识别 | 2分 | | 申请流程完成 | 2分 | | 结果通知正确 | 2分 | | 定时任务设置(如需要) | 2分 |


任务9:收藏夹商家上新检查(权重 8%)

测试目标:验证收藏夹导航、商家上新状态检测、新品信息提取和通知功能

测试步骤

阶段1:进入收藏夹

  1. navigate{"page": "collect"} 进入收藏夹页面
  2. scan_page_elements → 识别页面结构(关注商家/收藏商品标签)
  3. click_element → 切换到"关注商家"或类似标签
  4. read_page_content → 读取关注的商家列表

阶段2:检查商家上新状态

  1. scan_page_elements → 扫描商家列表,查找"上新"、"新品"等标签
  2. 记录有上新的商家:
    • 商家名称
    • 上新数量/标签
    • 商家链接

阶段3:获取新品详情

对于每个有上新的商家:

  1. click_element → 进入商家店铺或新品页面
  2. read_page_content → 读取新品列表
  3. 提取新品信息:
    • 商品名称
    • 价格
    • 销量/热度
    • 商品链接
  4. 按重要性筛选新品(可参考销量、价格、是否新品标等)
  5. navigate → 返回收藏夹,继续检查下一个商家

阶段4:整理并发送通知

  1. 汇总所有有上新的商家及新品信息
  2. 按重要性排序(商家上新数量、新品热度等)
  3. 发送通知给用户,格式如下:
📦 收藏夹商家上新通知

共 X 家商家有上新:

🏪 【商家A】(3件新品)
1. [商品名] - ¥XX.XX
2. [商品名] - ¥XX.XX
3. [商品名] - ¥XX.XX

🏪 【商家B】(1件新品)
1. [商品名] - ¥XX.XX

---
共发现 X 件新品,以上为精选推荐。

阶段5:无上新处理

如果没有商家上新:

📦 收藏夹商家上新检查

当前关注的商家暂无新品上架。
上次检查时间:XXXX-XX-XX XX:XX

数据记录格式

{
  "check_time": "2026-03-22 10:30:00",
  "total_shops": 10,
  "shops_with_new": 3,
  "total_new_items": 8,
  "shops": [
    {
      "name": "店铺名称",
      "new_count": 3,
      "items": [
        {
          "title": "商品标题",
          "price": 99.00,
          "sales": 100,
          "link": "商品链接"
        }
      ]
    }
  ]
}

评分标准: | 指标 | 分值 | |------|------| | 收藏夹导航成功 | 1分 | | 商家列表识别准确 | 1分 | | 上新状态检测正确 | 2分 | | 新品信息提取完整 | 2分 | | 筛选排序合理 | 2分 | | 通知格式清晰 | 1分 | | 流程顺畅度 | 1分 |


评测流程

1. 初始化评测任务

# 创建评测任务目录结构
BENCHMARK_ID="benchmark_$(date +%Y%m%d_%H%M%S)"
mkdir -p ~/.copaw/tasks/$BENCHMARK_ID/{screenshots,calls,tasks}

# 创建初始状态文件
cat > ~/.copaw/tasks/$BENCHMARK_ID/status.json << 'EOF'
{
  "benchmark_id": "...",
  "version": "1.6.0",
  "start_time": "...",
  "status": "running",
  "current_task": 0,
  "tasks": [...]
}
EOF

2. 执行评测任务(详细记录)

每个工具调用必须执行以下步骤

# 1. 记录开始时间
START_TIME=$(date +%s%3N)

# 2. 执行工具调用(结果保存到变量)

# 3. 记录结束时间
END_TIME=$(date +%s%3N)

# 4. 保存完整日志
cat > ~/.copaw/tasks/$BENCHMARK_ID/calls/T{task_id}_S{step}_{tool}.json << 'EOF'
{
  "call_id": "T1_S1_navigate",
  "start_time": "...",
  "end_time": "...",
  "duration_ms": ...,
  "tool": "navigate",
  "params": {...},
  "result": {...},
  "success": true,
  "screenshot": "..."
}
EOF

# 5. 截图
screencapture -x ~/.copaw/tasks/$BENCHMARK_ID/screenshots/T{task_id}_S{step}_{desc}.png

3. 生成评测报告

⚠️ 重要:每次评测必须填写完整的评测报告

报告必须包含

  1. 整体小结

    • 评测概览
    • 总体评分
    • 任务完成度
    • 工具调用统计
    • 问题汇总
  2. 分任务详情(每个任务必须包含)

    • 任务概要表
    • 执行流程表(详细记录每个工具调用)
    • 工具调用日志(完整的JSON返回结果代码块)
    • 过程截图(嵌入文档)
    • 数据结果
    • 问题分析
  3. 技术分析

    • 工具调用统计
    • 性能指标
    • 问题清单
  4. 附录

    • 截图清单
    • 完整调用日志

4. 追加报告到钉钉文档(必须执行)

评测完成后,必须将完整报告追加到钉钉文档

# 读取本地报告内容
REPORT=$(cat ~/.copaw/tasks/$BENCHMARK_ID/评测报告.md)

# 追加到钉钉文档
mcporter call 钉钉文档 update_document --args "{
  \"nodeId\": \"mweZ92PV6MbD5bE4Fg9wvN6xWxEKBD6p\",
  \"markdown\": \"$REPORT\",
  \"mode\": \"append\"
}"

检查追加结果

# 获取文档内容确认追加成功
mcporter call 钉钉文档 get_document_content --args '{
  "nodeId": "mweZ92PV6MbD5bE4Fg9wvN6xWxEKBD6p"
}'

5. 完整评测流程总结

1. 初始化评测任务(创建目录、状态文件)
2. 执行任务1-7(每个任务详细记录日志和截图)
3. 生成本地评测报告(完整的Markdown格式)
4. 追加报告到钉钉文档(使用钉钉文档MCP)
5. 确认追加成功
6. 清理临时文件(可选)

📝 钉钉文档迭代记录(v1.7.0 新增)

核心原则

评测完成后,必须将完整评测报告追加到指定的钉钉文档,遵循以下规则:

| 规则 | 说明 | |------|------| | 指定文档 | 固定使用一个文档,永不更换 | | 只追加不覆盖 | 每次只在文档末尾追加新内容 | | 完整报告 | 每次评测必须追加完整的评测报告,不是简化版本 | | 格式固定 | 使用统一模板记录 | | 版本管控 | 按时间顺序排列,便于对比变化 |

钉钉文档配置

本地配置文件~/.copaw/config/dingtalk_doc.json

{
  "mcp_name": "钉钉文档",
  "report_doc": {
    "name": "产品体验迭代跟踪报告",
    "nodeId": "mweZ92PV6MbD5bE4Fg9wvN6xWxEKBD6p",
    "url": "https://alidocs.dingtalk.com/i/nodes/mweZ92PV6MbD5bE4Fg9wvN6xWxEKBD6p?utm_scene=person_space",
    "mode": "append",
    "rules": {
      "never_create_new": true,
      "never_overwrite": true,
      "always_append_to_end": true
    }
  }
}

使用钉钉文档MCP更新

必须使用 mcporter call 钉钉文档 来更新文档

# 追加完整评测报告到钉钉文档
mcporter call 钉钉文档 update_document --args '{
  "nodeId": "mweZ92PV6MbD5bE4Fg9wvN6xWxEKBD6p",
  "markdown": "# 淘宝桌面版MCP工具评测报告\n\n**评测ID**: benchmark_xxx\n\n...(完整报告内容)...",
  "mode": "append"
}'

注意

  • 参数名是 markdown,不是 content
  • mode 必须为 "append"
  • 内容必须是完整的Markdown格式评测报告

报告模板(v1.6.0)

Word报告结构

淘宝桌面版MCP评测报告
│
├── 一、整体小结
│   ├── 1.1 评测概览表
│   ├── 1.2 总体评分
│   ├── 1.3 任务完成度表
│   ├── 1.4 工具调用总览表
│   ├── 1.5 耗时分布表
│   ├── 1.6 问题汇总表
│   └── 1.7 关键结论
│
├── 二、分任务详情
│   └── 2.X 任务X:{任务名称}
│       ├── 2.X.1 任务概要表
│       │   └── 目标、时间、耗时、调用次数、评分、状态
│       ├── 2.X.2 执行流程表
│       │   └── 步骤、操作、工具、参数、结果摘要、耗时、状态
│       ├── 2.X.3 工具调用详情 ⭐ 新增
│       │   ├── 调用1:navigate
│       │   │   ├── 参数:{...}
│       │   │   ├── 返回结果(代码块):
│       │   │   │   ```json
│       │   │   │   {
│       │   │   │     "success": true,
│       │   │   │     "page": "home",
│       │   │   │     "url": "..."
│       │   │   │   }
│       │   │   │   ```
│       │   │   └── 截图:[嵌入图片]
│       │   └── 调用2:...
│       ├── 2.X.4 过程截图
│       │   └── 每个关键步骤的截图
│       ├── 2.X.5 数据结果
│       ├── 2.X.6 问题分析
│       └── 2.X.7 评价与建议
│
├── 三、技术分析
│   ├── 3.1 工具调用统计表
│   ├── 3.2 性能指标表
│   └── 3.3 问题清单
│
└── 四、附录
    ├── 4.1 截图清单
    └── 4.2 完整调用日志路径

评分计算

总分 = Σ(任务评分 × 权重)

任务权重(v1.7.6): | 任务 | 权重 | |------|------| | 1. 淘金币签到 | 12% | | 2. 商品搜索+对比+加购 | 15% | | 3. 订单管理 | 15% | | 4. 获取购物车以及降价信息 | 15% | | 5. 客服咨询对话 | 12% | | 6. 图片OCR识别与淘宝加购 | 5% | | 7. 购物车价格监控设置 | 5% | | 8. 退货退款申请 | 10% | | 9. 收藏夹商家上新检查 | 8% | | 总计 | 97% |


迭代记录

| 版本 | 日期 | 变更内容 | |------|------|----------| | v1.7.6 | 2026-03-22 | 新增任务9:收藏夹商家上新检查,调整任务权重分配 | | v1.7.5 | 2026-03-21 | 任务6重构:小红书链接提取改为图片OCR识别,新增价格对比找最便宜商品 | | v1.7.4 | 2026-03-20 | 确认钉钉文档链接更新 | | v1.7.3 | 2026-03-20 | 更新钉钉文档链接格式 | | v1.7.2 | 2026-03-20 | 新增任务8:退货退款申请,支持定时任务跟踪退货状态 | | v1.7.1 | 2026-03-20 | 小红书使用可见浏览器;钉钉文档更新使用MCP;强调完整报告 | | v1.7.0 | 2026-03-20 | 重大更新:集成钉钉文档迭代记录,评测结果自动追加到指定文档 | | v1.6.0 | 2026-03-20 | 重大更新:详细记录每个工具调用的完整返回结果,报告包含代码块 | | v1.5.0 | 2026-03-20 | 新增任务6、7,调整任务权重 | | v1.4.1 | 2026-03-17 | 报告标题和文件名增加日期 | | v1.4.0 | 2026-03-17 | 任务4改名,任务5要求两轮对话 | | v1.3.0 | 2026-03-17 | 新增原子性执行原则 | | v1.2.0 | 2026-03-17 | 优化报告结构 | | v1.1.0 | 2026-03-17 | 新增任务5 | | v1.0.0 | 2026-03-17 | 初始版本 |


文件结构

~/.copaw/tasks/benchmark_{id}/
├── status.json              # 评测状态
├── timing.log               # 耗时日志
├── screenshots/             # 截图目录
│   ├── T1_S1_homepage.png
│   ├── T1_S2_coin_popup.png
│   └── ...
├── calls/                   # 工具调用日志(v1.6.0新增)
│   ├── T1_S1_navigate.json
│   ├── T1_S2_read_content.json
│   └── ...
├── tasks/                   # 任务详情(v1.6.0新增)
│   ├── task_1.json
│   ├── task_2.json
│   └── ...
└── 评测报告.md              # Markdown报告

~/.copaw/config/
└── dingtalk_doc.json        # 钉钉文档配置(v1.7.0新增)

最后更新:2026-03-22 v1.7.6