Files
stock-assistant/skills/tencent-cos-skill/SKILL.md
root 691b8cdd0c feat: 初始化黄小瓜AI助手记忆仓库
- 核心配置: IDENTITY, USER, SOUL, AGENTS, TOOLS, HEARTBEAT, MEMORY
- memory/: 每日总结和临时记录
- skills/: 所有已安装技能
- notes/: 语音配置笔记
2026-04-04 02:42:48 +08:00

358 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: tencent-cloud-cos
description: >
腾讯云对象存储(COS)和数据万象(CI)集成技能。当用户需要上传、下载、管理云存储文件,
或需要进行图片处理(质量评估、超分辨率、抠图、二维码识别、水印)、智能图片搜索、
文档转PDF、视频智能封面生成等操作时使用此技能。
metadata:
{
"openclaw":
{
"emoji": "☁️",
"requires": {},
"install":
[
{
"id": "node-mcporter",
"kind": "node",
"package": "mcporter",
"bins": ["mcporter"],
"label": "Install mcporter (MCP CLI)",
},
{
"id": "node-cos-mcp",
"kind": "node",
"package": "cos-mcp",
"bins": ["cos-mcp"],
"label": "Install cos-mcp (COS MCP Server)",
},
{
"id": "node-cos-sdk",
"kind": "node",
"package": "cos-nodejs-sdk-v5",
"label": "Install COS Node.js SDK",
},
],
},
}
---
# 腾讯云 COS 技能
通过 cos-mcp MCP 工具 + Node.js SDK 脚本 + COSCMD 管理腾讯云对象存储和数据万象。
## 首次使用 — 自动设置
当用户首次要求操作 COS 时,按以下流程操作:
### 步骤 1检查当前状态
```bash
{baseDir}/scripts/setup.sh --check-only
```
如果输出显示一切 OKcos-mcp 已安装、凭证已配置),跳到「执行策略」。
### 步骤 2如果未配置引导用户提供凭证
告诉用户:
> 我需要你的腾讯云凭证来连接 COS 存储服务。请提供:
> 1. **SecretId** — 腾讯云 API 密钥 ID
> 2. **SecretKey** — 腾讯云 API 密钥 Key
> 3. **Region** — 存储桶区域(如 ap-guangzhou
> 4. **Bucket** — 存储桶名称(格式 name-appid如 mybucket-1250000000
> 5. **DatasetName**(可选) — 数据万象数据集名称(仅智能搜索需要)
> 6. **Domain**(可选) — 自定义域名,用于替换默认的 COS 访问域名(如 cdn.example.com
> 7. **ServiceDomain**(可选) — 自定义服务域名,用于自定义 COS API 请求域名
> 8. **Protocol**(可选) — 协议,如 https 或 http
>
> 你可以在 [腾讯云控制台 > 访问管理 > API密钥管理](https://console.cloud.tencent.com/cam/capi) 获取密钥,
> 在 [COS 控制台](https://console.cloud.tencent.com/cos/bucket) 查看存储桶信息。
### 步骤 3用户提供凭证后运行自动设置
```bash
{baseDir}/scripts/setup.sh --secret-id "<SecretId>" --secret-key "<SecretKey>" --region "<Region>" --bucket "<Bucket>"
```
如有 DatasetName
```bash
{baseDir}/scripts/setup.sh --secret-id "<SecretId>" --secret-key "<SecretKey>" --region "<Region>" --bucket "<Bucket>" --dataset "<DatasetName>"
```
如需自定义域名(可选参数按需添加):
```bash
{baseDir}/scripts/setup.sh --secret-id "<SecretId>" --secret-key "<SecretKey>" --region "<Region>" --bucket "<Bucket>" --domain "<Domain>" --service-domain "<ServiceDomain>" --protocol "<Protocol>"
```
脚本会自动:
- 检查并安装 mcporterMCP 命令行工具)
- 检查并安装 cos-mcp 和 cos-nodejs-sdk-v5
- 创建/更新 `~/.mcporter/mcporter.json`,写入 cos-mcp 服务器配置
- 将凭证写入 shell 配置文件(`~/.zshrc``~/.bashrc`),重启后仍可用
- 配置 coscmd如有 Python 环境)
- 验证 COS 连接
设置完成后即可开始使用。
## 执行策略
三种方式按优先级降级,确保操作始终可完成:
1. **方式一cos-mcp MCP 工具**(优先) — 功能最全,支持存储 + 图片处理 + 智能搜索 + 文档媒体处理
2. **方式二Node.js SDK 脚本** — 通过 `scripts/cos_node.mjs` 执行存储操作
3. **方式三COSCMD 命令行** — 通过 shell 命令执行存储操作
```
mcporter + cos-mcp 可用which mcporter && 配置存在)
├─ 是 → 使用方式一 mcporter 调用(全部功能)
└─ 否 → cos-mcp MCP 工具可直接调用getCosConfig 返回结果)
├─ 是 → 使用方式一直接调用(全部功能)
└─ 否 → Node.js + cos-nodejs-sdk-v5 可用?
├─ 是 → 使用方式二(存储操作)
└─ 否 → coscmd 可用which coscmd
├─ 是 → 使用方式三(存储操作)
└─ 否 → 运行 setup.sh 安装
```
**判断方式一(mcporter)**`which mcporter``cat ~/.mcporter/mcporter.json | grep cos-mcp` 有输出。
**判断方式一(直接)**:尝试调用 `getCosConfig` MCP 工具,若返回结果则可用。
**判断方式二**`node -e "require('cos-nodejs-sdk-v5')"` 成功则可用。
**判断方式三**`which coscmd` 有输出则可用。
---
## 方式一cos-mcp MCP 工具(优先)
> GitHub: https://github.com/Tencent/cos-mcp
MCP 配置模板见 `references/config_template.json`
### 调用格式
通过 mcporter 命令行调用 cos-mcp MCP 工具:
```
mcporter call cos-mcp.<tool_name> --config ~/.mcporter/mcporter.json --output json [--args '<JSON>']
```
列出所有可用工具:
```
mcporter list cos-mcp --config ~/.mcporter/mcporter.json --schema
```
**判断 mcporter 是否可用**`which mcporter``~/.mcporter/mcporter.json` 包含 cos-mcp 配置。
如果 mcporter 不可用,可回退到客户端直接调用 MCP 工具(`getCosConfig` 等)。
### 工具总览
| 类别 | 说明 |
|------|------|
| 存储操作 | 上传、下载、列出、获取签名URL |
| 图片处理 | 质量评估、超分辨率、抠图、二维码识别、水印 |
| 智能搜索 | 以图搜图、文本搜图(需预建数据集) |
| 文档媒体 | 文档转PDF、视频智能封面异步任务 |
### 常用操作
> 以下示例同时展示两种调用格式。mcporter 格式省略公共前缀 `mcporter call cos-mcp.` 和 `--config ~/.mcporter/mcporter.json --output json`。
> 完整 mcporter 命令:`mcporter call cos-mcp.<tool> --config ~/.mcporter/mcporter.json --output json --args '<JSON>'`
#### 存储
```bash
# 上传本地文件mcporter 格式)
mcporter call cos-mcp.putObject --config ~/.mcporter/mcporter.json --output json --args '{"filePath":"/path/to/file.jpg","targetDir":"images"}'
# 上传本地文件(客户端直接调用格式)
putObject filePath="/path/to/file.jpg" targetDir="images"
# 上传字符串内容
putString content="hello world" fileName="test.txt" targetDir="docs"
# 通过 URL 上传
putObjectSourceUrl sourceUrl="https://example.com/image.png" targetDir="images"
# 列出文件
getBucket Prefix="images/"
# 下载文件
getObject objectKey="images/photo.jpg"
# 获取签名下载链接
getObjectUrl objectKey="images/photo.jpg"
```
#### 图片处理
```
# 图片质量评估
assessQuality objectKey="images/photo.jpg"
# AI 超分辨率
aiSuperResolution objectKey="images/photo.jpg"
# AI 智能抠图
aiPicMatting objectKey="images/photo.jpg"
# 二维码识别
aiQrcode objectKey="images/qrcode.jpg"
# 添加文字水印
waterMarkFont objectKey="images/photo.jpg" text="版权所有"
# 获取图片元信息
imageInfo objectKey="images/photo.jpg"
```
#### 智能搜索(需预建数据集)
```
# 以图搜图
imageSearchPic uri="https://example.com/query.jpg"
# 文本搜图
imageSearchText text="蓝天白云"
```
#### 文档与媒体处理(异步任务)
```
# 文档转 PDF
createDocToPdfJob objectKey="docs/report.docx"
# 查询任务结果
describeDocProcessJob jobId="<jobId>"
# 视频智能封面
createMediaSmartCoverJob objectKey="videos/demo.mp4"
# 查询任务结果
describeMediaJob jobId="<jobId>"
```
工具详细参数定义见 `references/api_reference.md`
---
## 方式二Node.js SDK 脚本
> 官方文档: https://www.tencentcloud.com/zh/document/product/436/8629
当 cos-mcp 不可用时,通过 `scripts/cos_node.mjs` 执行存储操作。凭证从环境变量读取。
支持的环境变量:
- `TENCENT_COS_SECRET_ID` / `TENCENT_COS_SECRET_KEY` / `TENCENT_COS_REGION` / `TENCENT_COS_BUCKET`(必需)
- `TENCENT_COS_DOMAIN` / `TENCENT_COS_SERVICE_DOMAIN` / `TENCENT_COS_PROTOCOL`(可选,自定义域名)
### 常用命令
> 以下省略 `node {baseDir}/scripts/cos_node.mjs` 前缀。完整格式:`node {baseDir}/scripts/cos_node.mjs <action> [options]`
```bash
# 上传文件
upload --file /path/to/file.jpg --key remote/path/file.jpg
# 上传字符串
put-string --content "文本内容" --key remote/file.txt --content-type "text/plain"
# 下载文件
download --key remote/path/file.jpg --output /path/to/save/file.jpg
# 列出文件
list --prefix "images/"
# 获取签名 URL
sign-url --key remote/path/file.jpg --expires 3600
# 查看文件信息
head --key remote/path/file.jpg
# 删除文件
delete --key remote/path/file.jpg
```
所有命令输出 JSON 格式,`success: true` 表示成功,退出码 0。
### 限制
仅支持存储操作,**不支持**图片处理、智能搜索、文档转换。
---
## 方式三COSCMD 命令行
> 官方文档: https://www.tencentcloud.com/zh/document/product/436/10976
当方式一和方式二均不可用时使用。配置持久化在 `~/.cos.conf`
自定义域名支持(有限):
- **ServiceDomain** — 对应 coscmd 的 `-e ENDPOINT` 参数,设置后 Region 失效
- **Protocol** — 若为 `http`,对应 coscmd 的 `--do-not-use-ssl` 参数
- **Domain** — COSCMD 不支持 CDN 自定义域名
### 常用命令
```bash
# 上传
coscmd upload /path/to/file.jpg remote/path/file.jpg
coscmd upload -r /path/to/folder/ remote/folder/
# 下载
coscmd download remote/path/file.jpg /path/to/save/file.jpg
coscmd download -r remote/folder/ /path/to/save/
# 列出文件
coscmd list images/
# 删除
coscmd delete remote/path/file.jpg
coscmd delete -r remote/folder/ -f
# 签名 URL
coscmd signurl remote/path/file.jpg -t 3600
# 文件信息
coscmd info remote/path/file.jpg
# 复制/移动
coscmd copy <BucketName-APPID>.cos.<Region>.myqcloud.com/source.jpg dest.jpg
coscmd move <BucketName-APPID>.cos.<Region>.myqcloud.com/source.jpg dest.jpg
```
### 限制
仅支持存储操作,**不支持**图片处理、智能搜索、文档转换。
---
## 功能对照表
| 功能 | 方式一 cos-mcp | 方式二 Node SDK | 方式三 COSCMD |
|------|:-:|:-:|:-:|
| 上传文件 | ✅ | ✅ | ✅ |
| 上传字符串/Base64 | ✅ | ✅ | ❌ |
| 通过 URL 上传 | ✅ | ❌ | ❌ |
| 下载文件 | ✅ | ✅ | ✅ |
| 列出文件 | ✅ | ✅ | ✅ |
| 获取签名 URL | ✅ | ✅ | ✅ |
| 删除文件 | ❌ | ✅ | ✅ |
| 查看文件信息 | ❌ | ✅ | ✅ |
| 递归上传/下载目录 | ❌ | ❌ | ✅ |
| 图片处理CI | ✅ | ❌ | ❌ |
| 智能搜索 | ✅ | ❌ | ❌ |
| 文档转 PDF | ✅ | ❌ | ❌ |
| 视频智能封面 | ✅ | ❌ | ❌ |
## 使用规范
1. **首次使用先运行** `{baseDir}/scripts/setup.sh --check-only` 检查环境
2. **mcporter 调用必须带** `--config ~/.mcporter/mcporter.json``--output json`
3. **凭证不明文展示**:引导用户自行通过 setup.sh 或编辑配置文件设置
4. **所有文件路径**`objectKey`/`cospath`/`--key`)为存储桶内的相对路径,如 `images/photo.jpg`
5. **图片处理/智能搜索/文档转换仅方式一可用**,不可用时明确告知用户
6. **异步任务**(文档转换、视频封面)需通过 `jobId` 轮询结果
7. **上传后主动获取链接**:上传完成后调用 `getObjectUrl``sign-url` 返回访问链接
8. **错误处理**:调用失败时先用 `setup.sh --check-only` 诊断环境问题
9. **方式二脚本源码**见 `scripts/cos_node.mjs`
10. **MCP 工具详细参数**见 `references/api_reference.md`
11. **MCP 配置模板**见 `references/config_template.json`