Skill 概览
本 Skill 用于在对话中充当 火山引擎 RDS PostgreSQL 的智能运维代理:
- - 理解用户的自然语言需求(中文或英文),识别是否与 RDS PostgreSQL 相关;
- 直接调用内置脚本
scripts/call_rds_postgresql.py 实时查询 RDS PostgreSQL 并获取结果; - 当获取到结果或用户粘贴错误信息时,进一步解释、诊断并给出后续建议。
工作模式:
- - 使用
scripts/call_rds_postgresql.py 脚本直接获取 RDS PostgreSQL 的实时响应
运行方式:
脚本支持两种运行方式:
CODEBLOCK0
标准使用流程
- 1. 确认任务类型与参数
- 判断用户意图:查询实例列表、查看实例详情、管理数据库、管理账号、查看参数配置、创建实例等。
- 收集必要参数(如未指定则使用默认值):
-
--region:地域 ID(默认
cn-beijing)
-
--action:操作类型(如
list-instances、
describe-instance、
list-databases 等)
-
--instance-id:实例 ID(部分操作必需)
- 2. 构造查询并调用脚本
- 示例(以下命令可使用
uv run 或
python 运行):
CODEBLOCK1
- 3. 解析结果并后续处理
- 将 RDS PostgreSQL 的响应用自然语言解释给用户;
- 如返回包含敏感操作,评估风险并提醒:
- 避免在生产环境直接执行高风险操作(如删除实例、删除数据库等);
- 建议在测试环境验证或做好备份。
工具脚本使用说明
支持的操作(Actions)
| 操作 | 说明 | 必需参数 |
|---|
| INLINECODE11 | 查询 RDS PostgreSQL 实例列表 | 无 |
| INLINECODE12 |
查询指定实例详情 |
--instance-id |
|
list-databases | 查询实例的数据库列表 |
--instance-id |
|
list-accounts | 查询实例的账号列表 |
--instance-id |
|
list-parameters | 查询实例的参数配置 |
--instance-id |
|
list-parameter-templates | 查询参数模板列表 | 无 |
|
describe-parameter-template | 查询参数模板详情 |
--template-id |
|
list-vpcs | 查询 VPC 列表 | 无 |
|
list-subnets | 查询子网列表 |
--vpc-id |
|
get-price | 查询实例价格 | 多个配置参数 |
命令行参数
| 参数 | 说明 | 默认值 |
|---|
| INLINECODE27 | 操作类型(必需) | - |
| INLINECODE28 / INLINECODE29 |
火山引擎地域 ID |
cn-beijing |
|
--instance-id /
-i | 实例 ID | 无 |
|
--page-number | 分页页码 |
1 |
|
--page-size | 每页记录数 |
10 |
|
--output /
-o | 输出格式(json/table) |
json |
注意:--region、--page-number、--page-size 等全局参数必须放在子命令之前,例如:
> uv run ./scripts/call_rds_postgresql.py --region cn-shanghai list-instances
>
放在子命令之后会被忽略(argparse 解析限制)。
输出格式
脚本会将查询信息输出到 stderr,将结果输出到 stdout,便于分离日志和结果:
CODEBLOCK3
常见使用场景
1. 查看所有实例
CODEBLOCK4
2. 查看实例详情
CODEBLOCK5
3. 查看实例的数据库
CODEBLOCK6
4. 查看实例的账号
CODEBLOCK7
5. 查看实例参数配置
CODEBLOCK8
6. 按版本过滤实例
CODEBLOCK9
7. 创建实例前查询网络信息
CODEBLOCK10
环境变量配置
- 1. 获取火山引擎访问凭证:参考 用户指南 获取 AK/SK
- 2. 配置以下环境变量:
CODEBLOCK11
权限说明:list-vpcs 和 list-subnets 调用的是 VPC 服务接口,AK/SK 需要同时授予
RDS PostgreSQL 和 VPC(vpc:DescribeVpcs、vpc:DescribeSubnets)两个服务的权限,
否则会返回 AccessDenied 403 错误。
Skill 概览
本 Skill 用于在对话中充当 火山引擎 RDS PostgreSQL 的智能运维代理:
- - 理解用户的自然语言需求(中文或英文),识别是否与 RDS PostgreSQL 相关;
- 直接调用内置脚本 scripts/callrdspostgresql.py 实时查询 RDS PostgreSQL 并获取结果;
- 当获取到结果或用户粘贴错误信息时,进一步解释、诊断并给出后续建议。
工作模式:
- - 使用 scripts/callrdspostgresql.py 脚本直接获取 RDS PostgreSQL 的实时响应
运行方式:
脚本支持两种运行方式:
bash
方式 1:使用 uv(推荐,自动管理依赖)
uv run ./scripts/call
rdspostgresql.py [action] [options]
方式 2:使用 python(需要预先安装依赖)
python ./scripts/call
rdspostgresql.py [action] [options]
标准使用流程
- 1. 确认任务类型与参数
- 判断用户意图:查询实例列表、查看实例详情、管理数据库、管理账号、查看参数配置、创建实例等。
- 收集必要参数(如未指定则使用默认值):
- --region:地域 ID(默认 cn-beijing)
- --action:操作类型(如 list-instances、describe-instance、list-databases 等)
- --instance-id:实例 ID(部分操作必需)
- 2. 构造查询并调用脚本
- 示例(以下命令可使用 uv run 或 python 运行):
bash
# 查询实例列表
uv run ./scripts/call
rdspostgresql.py list-instances
# 或
python ./scripts/call
rdspostgresql.py list-instances
# 查询指定实例详情
uv run ./scripts/callrdspostgresql.py describe-instance --instance-id postgres-xxx
# 或
python ./scripts/callrdspostgresql.py describe-instance --instance-id postgres-xxx
# 查询实例的数据库列表
uv run ./scripts/callrdspostgresql.py list-databases --instance-id postgres-xxx
# 或
python ./scripts/callrdspostgresql.py list-databases --instance-id postgres-xxx
# 查询实例的账号列表
uv run ./scripts/callrdspostgresql.py list-accounts --instance-id postgres-xxx
# 或
python ./scripts/callrdspostgresql.py list-accounts --instance-id postgres-xxx
# 查询实例参数
uv run ./scripts/callrdspostgresql.py list-parameters --instance-id postgres-xxx
# 或
python ./scripts/callrdspostgresql.py list-parameters --instance-id postgres-xxx
# 查询 VPC 列表(用于创建实例)
uv run ./scripts/callrdspostgresql.py list-vpcs
# 或
python ./scripts/callrdspostgresql.py list-vpcs
# 查询子网列表
uv run ./scripts/callrdspostgresql.py list-subnets --vpc-id vpc-xxx --zone-id cn-beijing-a
# 或
python ./scripts/callrdspostgresql.py list-subnets --vpc-id vpc-xxx --zone-id cn-beijing-a
- 3. 解析结果并后续处理
- 将 RDS PostgreSQL 的响应用自然语言解释给用户;
- 如返回包含敏感操作,评估风险并提醒:
- 避免在生产环境直接执行高风险操作(如删除实例、删除数据库等);
- 建议在测试环境验证或做好备份。
工具脚本使用说明
支持的操作(Actions)
| 操作 | 说明 | 必需参数 |
|---|
| list-instances | 查询 RDS PostgreSQL 实例列表 | 无 |
| describe-instance |
查询指定实例详情 | --instance-id |
| list-databases | 查询实例的数据库列表 | --instance-id |
| list-accounts | 查询实例的账号列表 | --instance-id |
| list-parameters | 查询实例的参数配置 | --instance-id |
| list-parameter-templates | 查询参数模板列表 | 无 |
| describe-parameter-template | 查询参数模板详情 | --template-id |
| list-vpcs | 查询 VPC 列表 | 无 |
| list-subnets | 查询子网列表 | --vpc-id |
| get-price | 查询实例价格 | 多个配置参数 |
命令行参数
| 参数 | 说明 | 默认值 |
|---|
| action | 操作类型(必需) | - |
| --region / -r |
火山引擎地域 ID | cn-beijing |
| --instance-id / -i | 实例 ID | 无 |
| --page-number | 分页页码 | 1 |
| --page-size | 每页记录数 | 10 |
| --output / -o | 输出格式(json/table) | json |
注意:--region、--page-number、--page-size 等全局参数必须放在子命令之前,例如:
bash
uv run ./scripts/callrdspostgresql.py --region cn-shanghai list-instances
放在子命令之后会被忽略(argparse 解析限制)。
输出格式
脚本会将查询信息输出到 stderr,将结果输出到 stdout,便于分离日志和结果:
[操作] list-instances
[地域] cn-beijing
============================================================
[查询结果]
<实际结果内容>
常见使用场景
1. 查看所有实例
bash
uv run ./scripts/call
rdspostgresql.py list-instances
2. 查看实例详情
bash
uv run ./scripts/call
rdspostgresql.py describe-instance --instance-id postgres-xxx
3. 查看实例的数据库
bash
uv run ./scripts/call
rdspostgresql.py list-databases --instance-id postgres-xxx
4. 查看实例的账号
bash
uv run ./scripts/call
rdspostgresql.py list-accounts --instance-id postgres-xxx
5. 查看实例参数配置
bash
uv run ./scripts/call
rdspostgresql.py list-parameters --instance-id postgres-xxx
6. 按版本过滤实例
bash
uv run ./scripts/call
rdspostgresql.py list-instances --db-engine-version PostgreSQL_14
7. 创建实例前查询网络信息
bash
先查询 VPC
uv run ./scripts/call
rdspostgresql.py list-vpcs
再查询子网
uv run ./scripts/call
rdspostgresql.py list-subnets --vpc-id vpc-xxx --zone-id cn-beijing-a
环境变量配置
- 1. 获取火山引擎访问凭证:参考 用户指南 获取 AK/SK
- 2. 配置以下环境变量:
bash
export VOLCENGINEACCESSKEY=your-access-key
export VOLCENGINESECRETKEY=your-secret-key
export VOLCENGINE_REGION=cn-beijing # 可选,默认 cn-beijing
权限说明:list-vpcs 和 list-subnets 调用的是 VPC 服务接口,AK/SK 需要同时授予
RDS PostgreSQL 和 VPC(vpc:DescribeVpcs、vpc:DescribeSubnets)两个服务的权限,
否则会返回 AccessDenied 403 错误。