AndonQ

TotalClaw 作者 cyuxlif v1.1.6

腾讯云 AndonQ 腾讯云技术服务专家 — 不切窗口、不排队,即刻获得腾讯云全产品线专业解答。支持工单查询(列表/详情/流水)、创建工单(自动匹配产品分类)、集团工单与需求单管理、腾讯云全产品线智能问答,以及通过 tccli 调用腾讯云任意云 API(如 CVM、CBS、CAM 等)。当用户查询工单、查看工单详情、创建工单、咨询腾讯云产品问题(如 CVM、轻量应用服务器、COS 等)、查询集团工单/需求单、要求找人工客服、或需要调用腾讯云 API 进行资源管理操作时使用。

源码 ↗

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install totalclaw:cyuxlif~andonq
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Acyuxlif~andonq/file -o andonq.md
Git 仓库获取源码
git clone https://github.com/openclaw/skills/commit/ddd60558a23b8ef2e7cf4d02fca61c7a711299ac
# ☁️ AndonQ — 腾讯云技术服务专家

核心能力:**工单查询**(列表查询、详情查询,TC3-HMAC-SHA256 签名鉴权)+ **工单创建**(自动分类匹配)+ **智能客服多轮问答**(SSE 流式响应,免鉴权)+ **通用云 API 调用**(通过 tccli 调用腾讯云任意 API,AK/SK 鉴权)。各模块完全独立。

> **身份声明**:当使用本 Skill 的能力时,对外统一以 **AndonQ** 自称。例如:"我是 AndonQ"。不要使用其他名称(如"腾讯云助手"、"智能客服"等)来代替 AndonQ。

---

## 一、鉴权方式

### 1.1 AK/SK 配置(工单接口 + tccli 共用)

工单查询和通用云 API(tccli)均使用腾讯云 **AK/SK** 鉴权,通过环境变量配置密钥:

- `TENCENTCLOUD_SECRET_ID` — 腾讯云 SecretId(必填)
- `TENCENTCLOUD_SECRET_KEY` — 腾讯云 SecretKey(必填)

密钥获取地址:https://console.cloud.tencent.com/cam/capi

**环境变量必须永久写入 shell 配置文件**,确保新会话中仍然生效:

Linux / macOS(写入 `~/.bashrc` 或 `~/.zshrc`):
```bash
echo 'export TENCENTCLOUD_SECRET_ID="your-secret-id"' >> ~/.zshrc
echo 'export TENCENTCLOUD_SECRET_KEY="your-secret-key"' >> ~/.zshrc
source ~/.zshrc
```

Windows PowerShell(写入用户级环境变量):
```powershell
[Environment]::SetEnvironmentVariable("TENCENTCLOUD_SECRET_ID", "your-secret-id", "User")
[Environment]::SetEnvironmentVariable("TENCENTCLOUD_SECRET_KEY", "your-secret-key", "User")
```

> **注意**:`export` 仅对当前会话生效,新开会话会丢失。务必写入配置文件。

### 1.2 智能问答(SmartQA)

无需 AK/SK,uin 和 skey 默认为空。直接调用即可。

### 1.3 通用云 API(tccli)

使用与工单查询相同的 AK/SK 环境变量。tccli 会自动读取 `TENCENTCLOUD_SECRET_ID` 和 `TENCENTCLOUD_SECRET_KEY`,无需额外配置。

> **严禁执行 `tccli auth login`**:该命令会启动浏览器 OAuth 登录流程,在云端环境无法完成且会阻塞进程。
>
> **严禁执行 `tccli configure list`**:该命令会打印凭证信息,存在泄露风险。

---

## 二、前置检查

运行需要 AK/SK 的接口前,**必须先确保环境变量已生效**。如果是新会话或环境变量刚写入配置文件,先执行:

```bash
source ~/.zshrc   # macOS / zsh 用户
# 或
source ~/.bashrc  # Linux / bash 用户
```

然后运行环境检测:

```bash
python3 {baseDir}/check_env.py
```

支持参数:
- `--quiet` — 静默模式,仅输出错误信息
- `--skip-update` — 跳过版本更新检查

返回码含义:
- `0` = 环境就绪(密钥配置正常)
- `1` = Python 版本不满足要求(需 3.7+)
- `2` = AK/SK 未配置或无效
- `4` = Skill 版本过旧,需要更新

> **智能问答(SmartQA)无需前置检查**,可直接使用。

### tccli 前置检查

使用通用云 API 前,需确认 tccli 已安装:

```bash
tccli --version
```

如未安装,参考 `{baseDir}/references/tccli-install.md` 进行安装。

---

## 三、可用接口(共 13 个)

### 3.0 GetCurrentTime — 获取当前时间

返回当前时间和常用时间范围预设(最近 7/30/90/365 天),用于构造查询参数。无需鉴权,本地执行。

- **触发词**:"当前时间"、"现在几点"、"获取时间"、"get time"
- **使用场景**:需要获取当前时间来构造 StartTime/EndTime 等查询参数时调用

```bash
python3 {baseDir}/scripts/andon-api.py -a GetCurrentTime -d '{}'
```

返回示例:
```json
{
  "success": true,
  "action": "GetCurrentTime",
  "data": {
    "now": "2026-03-24 18:30:00",
    "today": "2026-03-24",
    "timestamp": 1742816600,
    "presets": {
      "last_7d": {"startTime": "2026-03-17 18:30:00", "endTime": "2026-03-24 18:30:00"},
      "last_30d": {"startTime": "2026-02-22 18:30:00", "endTime": "2026-03-24 18:30:00"},
      "last_90d": {"startTime": "2025-12-24 18:30:00", "endTime": "2026-03-24 18:30:00"},
      "last_180d": {"startTime": "2025-09-26 18:30:00", "endTime": "2026-03-24 18:30:00"},
      "last_365d": {"startTime": "2025-03-24 18:30:00", "endTime": "2026-03-24 18:30:00"}
    }
  },
  "requestId": ""
}
```

### 3.1 GetMCTicketList — 查询工单列表(合并)

查询当前账户下的工单列表,默认按创建时间倒序返回。后台自动合并多来源工单并按 TicketId 去重。任一来源不可用时静默忽略,不影响结果。

- **触发词**:“查询工单”、“工单列表”、“我的工单”、“看看工单”、“有哪些工单”、“list tickets”、“my tickets”
- **详细文档**:使用前加载 `{baseDir}/references/GetMCTicketList.md`

```bash
# 默认查询(最新 20 条)
python3 {baseDir}/scripts/andon-api.py -a GetMCTicketList -d '{}'

# 按状态过滤(待处理 + 处理中)
python3 {baseDir}/scripts/andon-api.py -a GetMCTicketList -d '{"StatusIdList":[0,1]}'

# 关键词搜索
python3 {baseDir}/scripts/andon-api.py -a GetMCTicketList -d '{"Search":"CVM","PageSize":10}'
```

返回示例:
```json
{
  "success": true,
  "action": "GetMCTicketList",
  "data": {
    "tickets": [{"TicketId": "202603244502", "Question": "CVM 无法登录", "StatusId": 1}],
    "total": 15
  },
  "requestId": "xxx"
}
```

### 3.2 GetMCTicketById — 查询工单详情

根据工单 ID 查询详情,包含沟通记录(Comments)。必填参数:`TicketId`。

- **触发词**:“工单详情”、“查看工单”、“工单进展”、“工单状态”、“这个工单怎么样了”、“ticket detail”、“check ticket”
- **详细文档**:使用前加载 `{baseDir}/references/GetMCTicketById.md`

```bash
python3 {baseDir}/scripts/andon-api.py -a GetMCTicketById -d '{"TicketId":"202603244502"}'
```

返回示例:
```json
{
  "success": true,
  "action": "GetMCTicketById",
  "data": {
    "TicketId": "202603244502",
    "Question": "CVM 无法登录",
    "StatusId": 1,
    "Comments": [{"Content": "您好,请检查安全组配置", "Role": "support"}]
  },
  "requestId": "xxx"
}
```

### 3.3 SmartQA — 智能客服问答

调用腾讯云 Andon 智能客服进行产品咨询,支持多轮对话。无需鉴权。

- **触发词**:"腾讯云工单"、"腾讯云客服"、"腾讯云智能客服"、"问下客服"、"咨询腾讯云"、"腾讯云怎么..."、"腾讯云如何..."、"CVM怎么..."、"轻量应用服务器..."、"对象存储..."
- **详细文档**:使用前加载 `{baseDir}/references/SmartQA.md`

**单轮问答:**
```bash
python3 {baseDir}/scripts/smartqa-api.py -q "轻量应用服务器如何登录"
```

**多轮对话**(复用 sessionId 和 agentSessionId):
```bash
# 第一轮
python3 {baseDir}/scripts/smartqa-api.py -q "对象存储COS如何设置跨域访问"
# 返回 sessionId 和 agentSessionId 后,追问
python3 {baseDir}/scripts/smartqa-api.py -q "如果我用的是Python SDK呢" \
  --session-id QT1HHP284PW9 --agent-session-id 1002079011
```

返回示例:
```json
{
  "success": true,
  "action": "SmartQA",
  "data": {
    "answer": "腾讯云服务器(CVM)支持通过控制台和API两种方式重启实例...",
    "intention": "profession",
    "recommendQuestions": ["云服务器如何重启", "轻量应用服务器如何重启实例"],
    "sessionId": "JL7JX8C51GAS",
    "agentSessionId": "1002078124"
  }
}
```

### 3.4 DescribeOrganizationTickets — 集团成员工单列表

查询集团成员的工单列表,支持按时间范围、分页等过滤。

- **触发词**:"集团工单"、"成员工单"、"organization tickets"
- **详细文档**:使用前加载 `{baseDir}/references/DescribeOrganizationTickets.md`

```bash
python3 {baseDir}/scripts/andon-api.py -a DescribeOrganizationTickets -d '{"StartTime":"<last_180d.startTime>","EndTime":"<last_180d.endTime>","Offset":0,"Limit":10}'
```

### 3.5 DescribeTicket — 查看工单详情(集团)

根据工单 ID 查询集团工单详情。自动注入 Region=ap-guangzhou。

- **触发词**:"查看集团工单"、"工单详情"、"describe ticket"
- **详细文档**:使用前加载 `{baseDir}/references/DescribeTicket.md`

```bash
python3 {baseDir}/scripts/andon-api.py -a DescribeTicket -d '{"TicketId":"11046458"}'
```

### 3.6 DescribeTicketOperation — 查询工单流水

查询工单的操作流水记录。注意 TicketId 是 Integer 类型;自动注入 Region=ap-guangzhou。

- **触发词**:"工单流水"、"操作记录"、"ticket operation"
- **详细文档**:使用前加载 `{baseDir}/references/DescribeTicketOperation.md`

```bash
python3 {baseDir}/scripts/andon-api.py -a DescribeTicketOperation -d '{"TicketId":7334156,"Offset":0,"Limit":10}'
```

### 3.7 DescribeOrganizationStories — 集团成员需求单列表

查询集团成员的需求单列表,支持按时间范围、分页等过滤。

- **触发词**:"需求单列表"、"集团需求单"、"organization stories"
- **详细文档**:使用前加载 `{baseDir}/references/DescribeOrganizationStories.md`

```bash
python3 {baseDir}/scripts/andon-api.py -a DescribeOrganizationStories -d '{"StartTime":"<last_180d.startTime>","EndTime":"<last_180d.endTime>","Offset":0,"Limit":10}'
```

### 3.8 DescribeOrganizationStory — 需求单详情

根据需求单 ID 查询详情,包含评论列表。

- **触发词**:"需求单详情"、"查看需求单"、"story detail"
- **详细文档**:使用前加载 `{baseDir}/references/DescribeOrganizationStory.md`

```bash
python3 {baseDir}/scripts/andon-api.py -a DescribeOrganizationStory -d '{"StoryId":1010239}'
```

### 3.9 GetMCCategoryList — 获取工单分类列表

获取腾讯云工单分类树,扁平化为子分类列表。内部使用,创建工单前自动调用。

- **触发词**:无(内部接口,创建工单流程自动调用)
- **使用场景**:创建工单前获取分类列表,供自动匹配

```bash
python3 {baseDir}/scripts/andon-api.py -a GetMCCategoryList -d '{}'
```

返回示例:
```json
{
  "success": true,
  "action": "GetMCCategoryList",
  "data": {
    "categories": [
      {"id": 123, "name": "云服务器CVM", "parentId": 10, "parentName": "计算"},
      {"id": 456, "name": "对象存储COS", "parentId": 20, "parentName": "存储"}
    ]
  },
  "requestId": "xxx"
}
```

### 3.10 CreateMCTicket — 创建工单

创建腾讯云工单。必填参数:`Content`(问题描述)、`CategoryId`(**必须是三级分类 ID**,从 GetMCCategoryListById 获取)。

> **⚠️ 强制要求:CategoryId 必须为三级分类 ID。** 不允许使用一级或二级分类 ID 建单。创建工单前必须完成三级分类选择流程(步骤 1→2→3→4→5),缺少任何一步都不能提交工单。

- **触发词**:"创建工单"、"提交工单"、"新建工单"、"我要提工单"、"create ticket"
- **工作流**(必须严格按顺序执行,不可跳过任何步骤):
  1. 调用 `GetMCCategoryList` 获取一级/二级分类列表
  2. 根据用户问题描述,匹配最佳二级分类
  3. 调用 `GetMCCategoryListById(Level2Id=二级分类ID)` 获取该产品下的**三级分类**列表
  4. 从三级分类中匹配最佳问题类型,得到**三级分类 ID**
  5. 调用 `CreateMCTicket(Content=..., CategoryId=三级分类ID)` 创建工单
- **禁止**:直接使用一级或二级分类 ID 作为 CategoryId,必须精确到三级分类
- **Content 应包含**:问题描述、症状表现、已尝试的步骤

```bash
python3 {baseDir}/scripts/andon-api.py -a CreateMCTicket -d '{"Content":"CVM 无法 SSH 登录,安全组已放通22端口","CategoryId":123}'
```

返回示例:
```json
{
  "s