Tencent Cloud CAT:雲撥測網絡質量分析 Skill

前言

撥測任務一旦報錯或指標抖動,常見做法是登錄控制台翻圖表、再對照抓包與多地域數據。人工串聯「錯誤分佈 → 性能趨勢 → 是否鏈路問題 → 是否服務端問題」往往耗時,且 Agent 側缺少統一、可腳本化的出口。下面介紹騰訊云云撥測團隊發佈的 cat-network-quality-analysis(Skill 展示名 Tencent Cloud CAT),它通過 ProcessAIEventsStream API 拉取分析流,把錯誤分析、整體分析、性能分析、抓包分析與多任務對比收斂爲一條 CLI / Skill 調用鏈,結果以 Markdown 歸檔,stdout 返回一行 JSON 供編排層解析。

這是什麼

cat-network-quality-analysis 是面向騰訊云云撥測(CAT,Cloud Automated Testing)任務的網絡質量分析 Agent Skill,版本 1.3.0,作者與維護方爲雲撥測團隊。Skill 座標爲 @tencent-adm/cat-network-quality-analysis-v1-0-1,在 SkillHub 分類爲 it-ops-security,需配置 API 密鑰(requires_api_key=true)。

它解決的核心問題:在指定任務 ID 與時間窗口內,用自然語言或結構化 query-text 觸發 CAT AI Console 側分析,自動生成分場景報告,並支持抓包跟進與多任務橫向對比。

騰訊雲內部用戶需使用內網 API 端點 cat.ai.internal.tencentcloudapi.com;公網默認端點爲 cat.ai.tencentcloudapi.com。

核心功能

以下能力均來自 Skill 定義與清單說明,可按場景選用:

  1. 錯誤分析:識別異常類型與錯誤分佈規律。
  2. 整體分析:呈現被撥測服務整體網絡質量與可用性相關視圖。
  3. 性能分析:從整體分析中獨立出的性能指標維度(v1.1.0 起)。
  4. 抓包分析:解析報文數據做根因診斷;支持首次「進行抓包分析」與帶 session-id 的抓包跟進(structured_json 指定探針時刻與錯誤碼等)。
  5. 多任務對比(v1.3.0):AnalyzeAction=MultiTaskCompare,對比 1 個主任務與最多 5 個對比任務的關鍵指標;主任務與對比任務撥測類型必須一致。

腳本使用 Python 3.10+,以標準庫實現 TC3-HMAC-SHA256 簽名,無第三方依賴(v1.2.0 起已移除 tencentcloud-sdk-python)。執行過程靜默,流式寫入 Markdown 文件,結束時 stdout 僅輸出一行 JSON(含 report、md_path、session_id、pcap_candidates、incomplete 等字段)。

安裝與啓用

環境與依賴

無需 pip install 第三方包;確保本機有 Python 3.10 及以上,在 Skill 包內直接運行 scripts/cat_network_quality_analysis.py 即可。

憑證與端點(兩級配置)

加載優先級:環境變量 > scripts/.env 文件。

配置項 環境變量 必填 默認值 說明
SecretId CAT_SECRET_ID 是 — 騰訊雲 API 訪問密鑰 ID
SecretKey CAT_SECRET_KEY 是 — 騰訊雲 API 訪問密鑰 KEY
Token CAT_TOKEN 否 — 臨時憑證(可選)
Endpoint CAT_ENDPOINT 否 cat.ai.tencentcloudapi.com 內網用戶改爲 cat.ai.internal.tencentcloudapi.com

未設置 CAT_* 時,腳本會降級讀取 TENCENTCLOUD_SECRET_ID、TENCENTCLOUD_SECRET_KEY、TENCENTCLOUD_TOKEN、TENCENTCLOUD_ENDPOINT;建議優先使用 CAT_*。

尚未開通密鑰時,可通過控制台申請 CAT API 訪問權限:
https://console.cloud.tencent.com/cloudapp/run/yunti/apply-auth

在 scripts/ 下配置 .env 示例:

# scripts/.env
CAT_SECRET_ID=your-secret-id
CAT_SECRET_KEY=your-secret-key
CAT_TOKEN=your-token
CAT_ENDPOINT=cat.ai.internal.tencentcloudapi.com

.env 已列入 .gitignore,勿將密鑰寫入代碼倉庫。

等價的環境變量方式:

export CAT_SECRET_ID='your-secret-id'
export CAT_SECRET_KEY='your-secret-key'
export CAT_ENDPOINT='cat.ai.internal.tencentcloudapi.com'

tcproxycli 代理模式(可選)

若已安裝 tcproxycli 並設置 TCPROXYCLI_PROXY_ENDPOINT 與 TCPROXYCLI_SESSION_KEY,腳本可走代理模式,無需本地 SecretId/SecretKey。未設置時默認走 TC3 簽名模式。

export TCPROXYCLI_PROXY_ENDPOINT="https://your-proxy-endpoint"
export TCPROXYCLI_SESSION_KEY="your-session-key"

在 IDE 中使用 Skill

官方示例提到在 CodeBuddy IDE 中用自然語言描述需求,例如「分析最近 3 小時 task-xxxxxxxx 的撥測錯誤情況」,由 Agent 加載 SKILL.md 並調用腳本。Cursor 等其它支持通用 SKILL.md 的運行時,可按同樣參數約束封裝調用;具體安裝入口以 SkillHub 爲準。

SkillHub 頁面:
https://www.skillhub.cn/skills/tencent-adm/cat-network-quality-analysis-v1-0-1

API 元數據地址:
https://api.skillhub.cn/tencent-adm/cat-network-quality-analysis-v1-0-1

典型用法

CLI 公共參數

參數 必填 說明
--query-text 是 發給 CAT AI Console 的查詢;常規模板見 references/query_text_templates.md;多任務對比爲 <structured_json>
--task-id 除多任務對比外必填 形如 task-xxxxxxxx
--start-time / --end-time 是 毫秒級 13 位時間戳
--analyze-action 否 Console / PcapAnalysis / MultiTaskCompare,缺省按 query-text 推斷
--session-id 抓包跟進時 首輪分析返回的會話 ID
--output / -o 否 Markdown 路徑;默認按 task 與 report 類型生成
--suppress-pcap-candidates 否 抓包場景建議顯式帶上,抑制候選列表追加

query-text 不應包含時間描述或任務 ID(由 CLI 三件套傳遞)。

示例 1:錯誤分析

python3 scripts/cat_network_quality_analysis.py \
  --query-text "進行錯誤分析" \
  --task-id "task-xxxxxxxx" \
  --start-time 1773734439444 \
  --end-time 1773745239444 \
  --output task-xxxxxxxx/task-xxxxxxxx_error_report_20260319_143025.md

示例 2:整體分析與性能分析

整體分析將 query-text 改爲「進行整體分析」;性能分析改爲「進行性能分析」,其餘三件套相同。

python3 scripts/cat_network_quality_analysis.py \
  --query-text "進行性能分析" \
  --task-id "task-xxxxxxxx" \
  --start-time 1773658839444 \
  --end-time 1773745239444 \
  --output task-xxxxxxxx/performance_report.md

示例 3:抓包分析

首次直達抓包:

python3 scripts/cat_network_quality_analysis.py \
  --query-text "進行抓包分析" \
  --task-id "task-xxxxxxxx" \
  --start-time 1773658839444 \
  --end-time 1773745239444 \
  --suppress-pcap-candidates \
  --output task-xxxxxxxx/pcap_report.md

抓包跟進需傳入首輪 JSON 中的 session_id,且 query-text 爲結構化 JSON:

python3 scripts/cat_network_quality_analysis.py \
  --query-text '<structured_json>{"task_id":"task-xxxxxxxx","probe_time":1773905195000,"code":"12929"}</structured_json>' \
  --task-id "task-xxxxxxxx" \
  --start-time 1773905195000 \
  --end-time 1773905195000 \
  --session-id "17f57xxxxxxxxxxxxxxxx5b224055354" \
  --suppress-pcap-candidates \
  --output task-xxxxxxxx/task-xxxxxxxx_pcap_report_20260319_120000.md

示例 4:多任務對比

不傳 --task-id;query-text 指明主任務與對比列表:

python3 scripts/cat_network_quality_analysis.py \
  --query-text '<structured_json>{"main_task_id":"task-aaaabbbb","compare_task_ids":["task-aaaa1111","task-bbbb2222"]}</structured_json>' \
  --start-time 1773658839444 \
  --end-time 1773745239444 \
  --output task-aaaabbbb/task-aaaabbbb_multitask_compare_report_20260319_143025.md

用戶未指定時間範圍時,多任務對比默認分析最近 3 小時(end 爲當前毫秒時間戳,start = end - 10800000)。

輸出約定

成功時 stdout 示例結構:

{"code": 0, "report": "# 報告正文...", "md_path": "/abs/path/report.md", "session_id": "xxx", "json_file": "...", "pcap_candidates": [], "incomplete": false}

失敗時 code 爲 1 並帶 error 字段。若 incomplete 爲 true,表示 SSE 未正常收到 agent.done,應縮小時間窗後重試。

適用場景與注意

適合誰:已使用騰訊云云撥測、需要在運維排障或 Agent 工作流中自動出報告的團隊;SkillHub 標籤指向 IT 運維與安全觀測類場景。

使用注意:

  • 除多任務對比外,必須先有明確的 task-id;缺失時應向用戶確認,勿臆造。
  • 多任務對比上限爲 1 主任務 + 5 對比任務,且任務類型必須一致。
  • 內網與公網端點不可混用錯誤,否則無法訪問服務。
  • 抓包分支的完整約束見包內 references/branch_pcap.md、references/error_handling.md。
  • SkillHub 簡介提到控制台可生成 PDF 分析報告;本 Skill 腳本側明確導出爲 Markdown 並流式寫文件,PDF 能力以騰訊雲 CAT 產品文檔爲準:https://cloud.tencent.com/document/product/280

結尾

Tencent Cloud CAT(cat-network-quality-analysis)把雲撥測的五類分析場景和 ProcessAIEventsStream 流式結果封裝成可腳本化、可接入 Agent 的 Skill:配置 CAT_* 或 tcproxycli 後,用三件套時間窗與 query-text 即可落盤 Markdown 並拿到 JSON 摘要。獲取 Skill 與版本信息見:
https://www.skillhub.cn/skills/tencent-adm/cat-network-quality-analysis-v1-0-1

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜