Back to skills
SKILL.md
Cloud Doc Intelligent Assistant
ASecurity多云文档抓取与存储工具,支持阿里云、腾讯云、百度云、火山引擎的产品文档抓取、本地存储、变更检测和跨云文档获取。本 skill 不调用大模型,只负责数据采集和 diff,总结、摘要、对比分析由调用方(客户端大模型)完成。当用户提问涉及阿里云、腾讯云、百度云、火山引擎中任意一个云厂商时,必须调用此 skill。如果用户提问涉及云产品功能但未指明具体云厂商(如"总结一下安全组"),需要先追问用户是哪个云厂商。
- 11 stars
- 0 votes
- 0 copies
- 2 views
- Added September 10, 2026
Works with
Security analysis
96/100- Installs packages at runtime which could introduce malicious dependencies
Pro scans all 19 files and shows the line behind each finding
npx -y skills add luokai0/ai-agent-skills-by-luo-kai --skill cloud-doc-intelligent-assistant --agent claude-codeAre you the author of Cloud Doc Intelligent Assistant?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/luokai0-cloud-doc-intelligent-assistant)---
name: cloud-doc-intelligent-assistant
version: 0.5.0
description: 多云文档抓取与存储工具,支持阿里云、腾讯云、百度云、火山引擎的产品文档抓取、本地存储、变更检测和跨云文档获取。本 skill 不调用大模型,只负责数据采集和 diff,总结、摘要、对比分析由调用方(客户端大模型)完成。当用户提问涉及阿里云、腾讯云、百度云、火山引擎中任意一个云厂商时,必须调用此 skill。如果用户提问涉及云产品功能但未指明具体云厂商(如"总结一下安全组"),需要先追问用户是哪个云厂商。
author: anthonybinaruth-dotcom
license: MIT
repository: https://github.com/anthonybinaruth-dotcom/cloud-doc-skill/tree/master
homepage: https://github.com/anthonybinaruth-dotcom/cloud-doc-skill
keywords:
- documentation
- cloud
- monitoring
- aliyun
- tencent
- baidu
- volcano
metadata: {"clawdbot":{"emoji":"📚","requires":{"bins":["python3"],"packages":["requests>=2.31.0","beautifulsoup4>=4.12.0","lxml>=4.9.0","sqlalchemy>=2.0.0","pyyaml>=6.0.0","click>=8.1.0"]}}}
runtime:
language: python
version: ">=3.10"
skills:
- name: fetch_doc
description: 抓取指定云厂商的单篇文档(doc_ref),或从本地数据库查询已存储的文档(product)
entry: scripts/entry.py
parameters:
cloud: 云厂商标识(aliyun/tencent/baidu/volcano)
product: 产品名称(可选,从本地数据库查询)
doc_ref: 文档标识(可选,直接从 API 抓取)
max_pages: product 模式最多返回篇数(默认 10)
keyword: 额外搜索关键词(可选)
- name: check_changes
description: 从本地数据库读取已存储文档,重新抓取最新版本并对比变更
entry: scripts/entry.py
parameters:
cloud: 云厂商标识
product: 产品名称
days: 检查最近 N 天(默认 7)
max_pages: 最多检查篇数(默认 200)
keyword: 额外搜索关键词(可选)
- name: compare_docs
description: 获取两个云厂商的产品文档原始内容,供调用方对比分析
entry: scripts/entry.py
parameters:
left: 左侧文档配置(cloud + product 或 doc_ref)
right: 右侧文档配置(cloud + product 或 doc_ref)
focus: 对比关注点(可选,传递给调用方参考)
- name: summarize_diff
description: 对新旧版本文档进行 diff,返回变更类型和 diff 内容
entry: scripts/entry.py
parameters:
title: 文档标题
old_content: 旧版本内容
new_content: 新版本内容
focus: 关注重点(可选)
url: 文档 URL(可选)
- name: run_monitor
description: 从本地数据库读取已存储文档,批量重新抓取检测变更,可推送通知
entry: scripts/entry.py
parameters:
clouds: 云厂商列表
products: 产品列表
mode: 巡检模式(check_now/scheduled)
days: 检查最近 N 天(默认 1)
max_pages: 每个产品最多检查篇数(默认 50)
send_notification: 是否发送通知(默认 false)
permissions:
network:
outbound:
- https://help.aliyun.com/*
- https://cloud.tencent.com/*
- https://cloud.baidu.com/*
- https://www.volcengine.com/*
- ${AIFLOW_WEBHOOK_URL}
- ${RULIU_WEBHOOK_URL}
description: |
访问云厂商公开文档 API 抓取文档内容。
变更通知会发送到用户配置的 webhook 地址。
filesystem:
read:
- config.yaml
write:
- data/*.db
- logs/*.log
- notifications/*.md
description: |
读取配置文件(config.yaml)。
写入 SQLite 数据库(data/)、日志文件(logs/)和通知文件(notifications/)。
environment:
read:
- AIFLOW_WEBHOOK_URL
- RULIU_WEBHOOK_URL
- CLOUD_DOC_MONITOR_LOAD_DOTENV
description: |
读取环境变量用于 webhook 配置。
security_notice: |
⚠️ 安全提示:
1. 本 skill 不调用任何大模型 API,不会将文档内容发送到第三方 AI 服务。
2. 文档内容存储在本地 SQLite 数据库中。
3. 本工具使用云厂商的公开文档 API,无需认证,但请遵守合理使用原则。
4. 默认请求间隔 1 秒,请勿设置过小的值。
5. 如因不当使用导致 IP 被封禁,使用者需自行承担责任。
---
# 多云文档抓取工具
本 skill 负责从四大云厂商(阿里云、腾讯云、百度云、火山引擎)抓取产品文档,存储到本地 SQLite 数据库,并提供变更检测能力。
**核心设计原则:skill 只做数据采集和 diff,不调用大模型。总结、摘要、对比分析由调用方(客户端大模型)根据返回的原始文档内容自行完成。**
## 触发规则
1. 用户提问提到阿里云、腾讯云、百度云、火山引擎中任意一个 → **必须调用此 skill**
2. 用户提问涉及云产品功能但未指明云厂商(如"总结一下安全组"、"VPC 是什么") → **先追问用户是哪个云厂商**,确认后再调用
3. 用户提到多个云厂商并要求对比 → 使用 `compare_docs` 获取两侧文档,自行对比分析
4. 用户要求巡检或监控 → 按"巡检流程"章节操作
## 安装
```bash
pip install .
# 或开发模式
pip install -r requirements.txt
```
安装后可用 `cloud-doc-skill` 命令,未安装时用 `python scripts/entry.py`。
## 调用格式
```bash
cloud-doc-skill <skill_name> '<params_json>'
# 或
python scripts/entry.py <skill_name> '<params_json>'
```
## 数据流
```
调用方(AI)通过浏览器收集文档 URL
↓
fetch_doc + doc_ref 逐篇抓取 → 存入本地 SQLite
↓
check_changes 从数据库读取 → 重新抓取 → 对比 diff → 返回变更列表
↓
compare_docs 获取两侧文档原始内容 → 返回给调用方
↓
调用方(AI)根据返回的原始内容自行总结、对比、生成报告
```
## Skills 详解
### fetch_doc — 抓取/查询文档
两种模式:
1. `doc_ref` 模式:从云厂商 API 实时抓取单篇文档,存入本地数据库
2. `product` 模式:从本地数据库按关键词查询已存储的文档(不发网络请求)
```bash
# doc_ref 模式 — 各云厂商格式
cloud-doc-skill fetch_doc '{"cloud": "aliyun", "doc_ref": "/vpc/product-overview/what-is-vpc"}'
cloud-doc-skill fetch_doc '{"cloud": "tencent", "doc_ref": "215/20046"}'
cloud-doc-skill fetch_doc '{"cloud": "baidu", "doc_ref": "VPC/qjwvyu0at"}'
cloud-doc-skill fetch_doc '{"cloud": "volcano", "doc_ref": "6401/70538"}'
# product 模式 — 从本地数据库查询
cloud-doc-skill fetch_doc '{"cloud": "aliyun", "product": "VPC"}'
cloud-doc-skill fetch_doc '{"cloud": "tencent", "product": "私有网络", "keyword": "子网"}'
```
参数:
- `cloud`(必填):`aliyun` | `tencent` | `baidu` | `volcano`
- `doc_ref`:文档标识,直接从 API 抓取
- `product`:产品名称,从本地数据库查询
- `max_pages`:product 模式最多返回篇数(默认 10)
- `keyword`:额外搜索关键词
返回示例(doc_ref 模式):
```json
{
"machine": {
"cloud": "aliyun",
"mode": "doc_ref",
"items": [
{
"title": "什么是专有网络",
"url": "https://help.aliyun.com/zh/vpc/product-overview/what-is-vpc",
"doc_ref": "https://help.aliyun.com/zh/vpc/product-overview/what-is-vpc",
"content": "专有网络VPC(Virtual Private Cloud)是...",
"last_modified": "2024-03-15T10:30:00"
}
],
"total": 1
},
"human": { "summary_text": "成功抓取 1 篇文档。" },
"error": null
}
```
**调用方拿到 `content` 后,自行进行总结、摘要等操作。**
### check_changes — 检测变更
从本地数据库读取已存储的文档,逐篇重新抓取最新版本,与旧版本对比,返回变更列表和 diff。
**前提:需要先通过 `fetch_doc` + `doc_ref` 抓取过文档,数据库中有基线数据。**
```bash
cloud-doc-skill check_changes '{"cloud": "aliyun", "product": "vpc", "days": 7}'
cloud-doc-skill check_changes '{"cloud": "baidu", "product": "DNS", "days": 30}'
```
参数:
- `cloud`(必填):云厂商标识
- `product`(必填):产品名称(用于从本地数据库搜索)
- `days`:检查最近 N 天(默认 7)
- `max_pages`:最多检查篇数(默认 200)
- `keyword`:额外搜索关键词
返回示例:
```json
{
"machine": {
"cloud": "aliyun",
"product": "vpc",
"days": 7,
"total_checked": 15,
"changes": [
{
"change_type": "major",
"title": "VPC 配额限制",
"url": "https://help.aliyun.com/zh/vpc/...",
"doc_ref": "https://help.aliyun.com/zh/vpc/...",
"old_hash": "abc123",
"new_hash": "def456",
"diff": "--- old\n+++ new\n@@ -10,3 +10,5 @@\n..."
}
],
"fetch_errors": 0
},
"human": { "summary_markdown": "检查了 15 篇文档,最近 7 天内无变更。" },
"error": null
}
```
**调用方拿到 `changes` 列表和 `diff` 后,自行生成变更摘要。**
### compare_docs — 获取两侧文档
获取两个云厂商的产品文档原始内容,返回给调用方进行对比分析。skill 本身不做对比。
```bash
# doc_ref 模式(推荐)
cloud-doc-skill compare_docs '{"left": {"cloud": "aliyun", "doc_ref": "/vpc/product-overview/what-is-vpc"}, "right": {"cloud": "tencent", "doc_ref": "215/20046"}}'
# product 模式(从本地数据库查询)
cloud-doc-skill compare_docs '{"left": {"cloud": "aliyun", "product": "vpc"}, "right": {"cloud": "tencent", "product": "私有网络"}, "focus": "能力差异"}'
```
参数:
- `left`(必填):`cloud` + `product` 或 `doc_ref`
- `right`(必填):`cloud` + `product` 或 `doc_ref`
- `focus`:对比关注点(传递给调用方参考)
返回示例:
```json
{
"machine": {
"left": { "cloud": "aliyun", "product": "vpc", "title": "什么是专有网络", "content": "..." },
"right": { "cloud": "tencent", "product": "私有网络", "title": "私有网络概述", "content": "..." },
"focus": "能力差异"
},
"human": { "summary_text": "已获取 aliyun/什么是专有网络 和 tencent/私有网络概述 的文档内容,请对比分析。" },
"error": null
}
```
**调用方拿到两侧 `content` 和 `focus` 后,自行进行对比分析。**
### summarize_diff — 文档 Diff
对新旧两个版本的文档内容进行 diff,返回变更类型(minor/major/structural)和 diff 内容。
```bash
cloud-doc-skill summarize_diff '{"title": "VPC API 文档", "old_content": "旧版本...", "new_content": "新版本..."}'
```
参数:
- `title`(必填):文档标题
- `old_content`(必填):旧版本内容
- `new_content`(必填):新版本内容
- `focus`:关注重点(可选)
- `url`:文档 URL(可选)
返回示例:
```json
{
"machine": {
"title": "VPC API 文档",
"change_type": "major",
"focus": null,
"diff": "--- old\n+++ new\n...",
"old_hash": "abc123",
"new_hash": "def456"
},
"human": { "summary_text": "文档《VPC API 文档》发生了 major 级别的变更,请根据 diff 内容进行分析。" },
"error": null
}
```
**调用方拿到 `diff` 和 `change_type` 后,自行生成变更摘要。**
### run_monitor — 批量巡检
从本地数据库读取已存储的文档,批量重新抓取检测变更,可推送通知。
```bash
cloud-doc-skill run_monitor '{"clouds": ["aliyun", "tencent", "baidu", "volcano"], "products": ["vpc"], "days": 1, "send_notification": true}'
```
参数:
- `clouds`(必填):云厂商列表
- `products`(必填):产品列表
- `mode`:`check_now`(默认)或 `scheduled`
- `days`:检查最近 N 天(默认 1)
- `max_pages`:每个产品最多检查篇数(默认 50)
- `send_notification`:是否发送通知(默认 false)
## 巡检流程(调用方必读)
巡检时,**不要直接调用 run_monitor**,按以下流程操作:
### 第一步:确定百度云的产品子功能
用户指定要巡检的产品大类(如 VPC / CSN / DNS / VPN),用浏览器访问百度云文档侧边栏,列出子功能清单。
**为什么以百度云为基准?** 其他云厂商的部分子功能可能是独立产品(如阿里云弹性网卡是独立产品 ENI),百度云的产品划分相对集中,适合作为基准。
### 第二步:映射到其他三个云厂商
用浏览器访问阿里云、腾讯云、火山引擎的文档,找到对应的产品/功能页面。
| 百度云子功能 | 阿里云 | 腾讯云 | 火山引擎 |
| --- | --- | --- | --- |
| VPC 基础 | vpc | 私有网络 | 私有网络 |
| 弹性网卡 | eni(独立产品) | 弹性网卡(独立产品) | 私有网络(弹性网卡章节) |
| 高可用虚拟IP | vpc(HAVIP章节) | 高可用虚拟IP | 私有网络(HAVIP章节) |
### 第三步:收集文档 URL
用浏览器访问各云厂商文档页面,从侧边栏收集所有文档 URL。
### 第四步:逐篇抓取
```bash
cloud-doc-skill fetch_doc '{"cloud": "baidu", "doc_ref": "VPC/qjwvyu0at"}'
cloud-doc-skill fetch_doc '{"cloud": "aliyun", "doc_ref": "/vpc/product-overview/what-is-vpc"}'
# ... 每次调用间隔 ≥ 1 秒
```
### 第五步:分析和报告
- `check_changes` 检测变更 → 调用方根据 diff 生成变更摘要
- `compare_docs` 获取两侧文档 → 调用方进行对比分析
- `run_monitor` 汇总 + 发送通知
### 流程总结
```
用户指定产品大类
→ 浏览器访问百度云文档,列出子功能清单
→ 浏览器映射到其他三云
→ 浏览器收集侧边栏文档 URL
→ fetch_doc 逐篇抓取(doc_ref,间隔 ≥ 1秒)
→ check_changes / compare_docs 获取数据
→ 调用方自行总结、对比、生成报告
→ run_monitor 发送通知
```
## doc_ref 格式说明
各云厂商的 doc_ref 格式不同,从文档 URL 中提取:
| 云厂商 | URL 格式 | doc_ref 格式 | 示例 |
| --- | --- | --- | --- |
| 阿里云 | `help.aliyun.com/zh/{path}` | URL 路径 | `/vpc/product-overview/what-is-vpc` |
| 腾讯云 | `cloud.tencent.com/document/product/{pid}/{did}` | `product_id/doc_id` | `215/20046` |
| 百度云 | `cloud.baidu.com/doc/{PRODUCT}/s/{slug}` | `PRODUCT/slug` | `VPC/qjwvyu0at` |
| 火山引擎 | `volcengine.com/docs/{lib_id}/{doc_id}` | `lib_id/doc_id` | `6401/70538` |
## 支持的云厂商
| 云厂商 | cloud 值 | 产品标识格式 | 示例 |
| --- | --- | --- | --- |
| 阿里云 | `aliyun` | alias 路径 | `vpc`、`ecs`、`dns` |
| 腾讯云 | `tencent` | 中文产品名 | `私有网络`、`VPN 连接` |
| 百度云 | `baidu` | 大写产品代码 | `VPC`、`DNS`、`CSN` |
| 火山引擎 | `volcano` | 中文产品名 | `私有网络`、`NAT网关` |
## 返回结构
所有 skill 返回统一 JSON:
```json
{
"machine": { ... },
"human": { "summary_text": "..." },
"error": null
}
```
- `machine`:结构化数据,包含文档内容、变更列表、diff 等
- `human`:简短的人类可读文本
- `error`:正常为 `null`,出错时包含 `code` 和 `message`
错误码:`MISSING_PARAM` | `INVALID_PARAM` | `CRAWL_FAILED`
## 配置
`config.yaml` 核心配置:
```yaml
crawler:
request_delay: 1.0 # 请求间隔(秒),建议 1-2 秒
max_retries: 2
timeout: 15
storage:
db_path: "./data/docs.db"
notifications:
- type: "file"
enabled: true
output_dir: "./notifications"
```
## 速率控制
- `fetch_doc`(doc_ref)和 `check_changes` 会发起网络请求,遵守 request_delay
- `fetch_doc`(product)和 `compare_docs`(product)从本地数据库读取,无网络请求
- 巡检时由调用方控制调用频率,建议每次 fetch_doc 间隔 ≥ 1 秒
- 如遇 429/403 错误,增加 request_delay
Files in this skill
- .clawhub/origin.json
- SKILL.md
- _meta.json
- config.yaml
- pyproject.toml
- references/cloud-api-contracts.md
- references/openclaw-integration.md
- requirements.txt
- scripts/entry.py
- src/async_skills.py
- src/baidu_crawler.py
- src/cache.py
- src/cli.py
- src/config.py
- src/contracts/__init__.py
- src/contracts/response.py
- src/crawler.py
- src/detector.py
- src/models.py
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.