# Openclaw Ticket Assistant

> OpenClaw工单助手，根据客服截图自动分析客户问题并创建工单。触发词：工单、创建工单、客服截图、提工单。

- Skill: `dvcrn/openclaw-ticket-assistant` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add dvcrn/openclaw-ticket-assistant`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dvcrn/openclaw-ticket-assistant/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: dvcrn (https://skillmd.com/u/dvcrn)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/dvcrn/openclaw-ticket-assistant

---


# OpenClaw 工单助手

**精简信息输出（最高优先级）**：**严禁**向用户展示任何执行过程、中间步骤或技术细节。每步执行完**静默**进入下一步。**只在以下情况向用户输出**：① 需要用户决策时；② 流程最终结果（如"工单创建成功"或"创建失败：原因"）；③ 校验不通过需告知原因。

**按步骤依赖顺序执行**，满足跳过条件时可跳过对应步骤

---

## 功能概述

根据用户提供的客服对话截图：
1. 识别截图中的客户（站点）
2. 识别客户的提问内容（通常是对话中的最后一条消息）
3. 分析客户咨询的平台类型（Android / iOS / 鸿蒙 / 其他）
4. 打开工单系统并创建工单

---

## 步骤 1: 分析客服截图

> **前置条件**: 用户必须提供一张客服对话截图

### 1.1 识别客户（站点）

首先读取客户列表文件 `{SKILL_DIR}/resources/customers.json`，该文件包含所有客户信息。

**匹配优先级**（按顺序尝试）：

1. **账号名匹配**：在截图中查找与 `account` 字段完全匹配或包含的文本
2. **客户名称匹配**：在截图中查找与 `name` 字段匹配的文本
3. **别名匹配**：在截图中查找与 `alias` 数组中任意值匹配的文本

**识别线索位置**：
- 对话窗口顶部的用户名/昵称
- 聊天消息的发送者名称
- 页面标题或导航栏
- 头像旁边的名称标签

**如果无法识别**：向用户展示无法匹配的信息，并列出可能的候选客户让用户选择，或让用户直接告知客户名称。

### 1.2 识别客户提问

在对话截图中：
- 区分客服消息和客户消息（通常通过消息气泡位置、颜色、头像区分）
- **重点关注最后一条客户消息**，这通常是需要处理的问题
- 如果最后一条是客服消息，则向上查找最近的客户问题
- 提取完整的问题描述文本

### 1.3 识别平台类型

根据客户提问内容，判断涉及的平台类型：

| 关键词 | 平台类型 |
|--------|----------|
| Android、安卓、华为手机（非鸿蒙）、小米、OPPO、VIVO、三星、Gradle、APK | Android |
| iOS、iPhone、苹果、iPad、Xcode、Swift、OC、Objective-C | iOS |
| 鸿蒙、HarmonyOS、华为鸿蒙、ArkTS、ArkUI、DevEco | 鸿蒙 |
| H5、Web、网页、浏览器、JS、JavaScript | H5/Web |
| 无明确平台信息或涉及多平台 | 通用（需询问用户确认） |

### 1.4 识别反馈人

在截图中查找反馈人信息：
- 客户消息发送者的昵称/姓名
- 如果无法识别，询问用户

### 1.5 信息汇总与确认

将识别结果整理并向用户确认：

```
站点：[客户名称]
反馈人：[反馈人姓名]
产品：[Android/iOS/鸿蒙/H5/通用]
问题描述：[客户提问内容]
```

- 如果用户确认正确，进入步骤 2
- 如果用户指出错误，根据反馈修正后再确认
- **如果任何字段无法识别，必须询问用户**，不得猜测

---

## 步骤 2: 打开工单系统

### 2.1 导航到工单系统

使用浏览器工具打开工单系统：

```
URL: https://t.aliyun-inc.com/workbench/list
```

### 2.2 检查登录状态

页面加载后，检查当前状态：

**判断方式**：
- 如果页面 URL 包含 `login.alibaba-inc.com`，说明未登录，进入 2.3
- 如果页面显示工单列表或工作台界面，说明已登录，进入步骤 3

### 2.3 引导用户登录（如需要）

如果检测到未登录状态（URL 包含 `login.alibaba-inc.com`）：

**加载登录引导流程**：读取 `{SKILL_DIR}/references/login-guide.md` 并按其中的步骤引导用户完成二维码扫码登录。

登录成功后继续步骤 3。

---

## 步骤 3: 创建工单

### 3.1 点击创建按钮

在工单列表页面，点击"创建工单"或"新建"按钮

### 3.2 填写工单表单

根据步骤 1 收集的信息填写表单：

| 字段 | 填写内容 | 说明 |
|------|----------|------|
| UID账号 | 从 customers.json 中获取对应客户的 `id` 字段 | 必填 |
| 问题分类 | 一级分类选择：**移动开发平台mpaas** | 固定值 |
| 描述 | 步骤 1.2 识别的客户提问内容 | 必填 |
| 处理组 | **运维一线2组** | 固定值 |
| 处理人 | 当前登录账号（从登录页面或页面右上角获取） | 自动填充 |

**处理人获取方式**：
- 在登录流程中记录用户账号信息
- 或从工单系统页面右上角用户信息区域获取当前登录账号

### 3.3 提交前确认

填写完成后，**先截图展示给用户确认**：

1. 对当前填写完成的工单表单页面截图
2. 将截图展示给用户，并提示：

```
工单信息已填写完成，请确认以上内容是否正确？
确认无误请回复"确认"或"提交"，如需修改请说明。
```

3. **等待用户确认**：
   - 用户确认无误 → 进入 3.4 提交工单
   - 用户要求修改 → 根据反馈修改后重新截图确认

### 3.4 提交工单

用户确认后，点击提交按钮完成工单创建。

### 3.5 获取工单号并输出结果

提交成功后，获取系统生成的工单号，按以下格式输出：

```
工单号：[系统生成的工单号]
站点：[客户名称]
反馈人：[反馈人姓名]
产品：[平台类型]
问题描述：[客户提问内容]
```

---

## 注意事项

1. **截图质量要求**：截图应清晰可读，包含完整的对话内容
2. **客户识别失败时**：必须询问用户，不得猜测或随意选择
3. **多轮对话**：如果截图包含多轮对话，重点关注最近的客户问题
4. **信息不完整时**：缺少任何必要信息都应询问用户确认
5. **平台类型模糊时**：如果无法从问题内容判断平台，询问用户确认

---

## 客户列表

客户信息存储在 `{SKILL_DIR}/resources/customers.json` 文件中，包含以下字段：
- `name`: 客户名称（站点名称）
- `account`: 客户在客服系统中的账号名
- `id`: 客户UID，用于填写工单
- `alias`: 客户别名数组（可选），用于辅助匹配

