这个仓库现在是一个 Agent Skills / Claude Code Skill 目录,同时也保留了单文件脚本 sqlbot_skills.py 可直接执行。
它用来操作 SQLBot 的工作空间、数据源、问数与仪表板:
- 查询当前用户可访问的工作空间
- 切换当前工作空间
- 查询当前工作空间下的数据源
- 切换当前数据源(skill 本地上下文)
- 基于当前或指定数据源问数
- 查询当前工作空间下的仪表板
- 查看指定仪表板详情
- 通过前端预览页导出指定仪表板的截图或 PDF
这个 skill 直接调用 SQLBot 现有 API:
- 工作空间列表:
GET /api/v1/user/ws - 切换工作空间:
PUT /api/v1/user/ws/{oid} - 数据源列表:
GET /api/v1/datasource/list - 开始问数会话:
POST /api/v1/chat/start - 发起问数:
POST /api/v1/chat/question - 查询问数结果数据:
GET /api/v1/chat/record/{record_id}/data - 仪表板列表:
POST /api/v1/dashboard/list_resource - 仪表板详情:
POST /api/v1/dashboard/load_resource
认证方式:
- skill 使用 SQLBot API Key 进行认证
- 请求头格式为
X-SQLBOT-ASK-TOKEN: sk <signed-jwt> - 脚本会基于
.env中的access_key和secret_key为每个请求动态生成短时签名
注意:
- SQLBot 的仪表板查询是基于“当前工作空间 + 当前用户”双重限定的。
- 数据源列表和问数同样依赖当前工作空间。
- 所以查询某个工作空间下的数据源、仪表板,或对指定工作空间问数前,skill 会先切换工作空间。
- SQLBot 后端没有独立的“切换数据源”接口,所以 skill 会把当前数据源保存在本地状态文件里,供后续
ask作为默认数据源使用。 - SQLBot 后端当前没有原生的仪表板截图 / PDF 导出接口,导出能力通过前端预览页 + Playwright 实现。
Claude Code / Agent Skills 标准入口文件是根目录的 SKILL.md。
如果你要把它安装成 Claude Code Skill,可以直接复制整个目录:
mkdir -p ~/.claude/skills/sqlbot-workspace-dashboard
cp -R /path/to/SQLBot-skills/* ~/.claude/skills/sqlbot-workspace-dashboard/然后在 Claude Code 中使用:
/sqlbot-workspace-dashboard list workspaces
/sqlbot-workspace-dashboard switch workspace 2
/sqlbot-workspace-dashboard list datasources in workspace 2
/sqlbot-workspace-dashboard switch datasource 12
/sqlbot-workspace-dashboard ask 本周销售额是多少
/sqlbot-workspace-dashboard list dashboards in workspace 2
如果你的 OpenClaw 环境支持 Agent Skills,同样复制整个目录并保留 SKILL.md、.env.example、sqlbot_skills.py 这些文件即可。
更详细的 Skill 说明见 reference.md。
如果你只想直接执行脚本,不需要安装,直接运行:
python3 sqlbot_skills.py --help如果你想安装成命令:
pip install -e .启用截图 / PDF 导出:
pip install -e .[browser]
playwright install chromium先复制模板:
cp .env.example .env然后填写 .env:
SQLBOT_BASE_URL=http://127.0.0.1:8000/api/v1
SQLBOT_API_KEY_ACCESS_KEY=your-access-key
SQLBOT_API_KEY_SECRET_KEY=your-secret-key
SQLBOT_API_KEY_TTL_SECONDS=300
SQLBOT_TIMEOUT=30
# SQLBOT_BROWSER_PATH=/path/to/chrome
# SQLBOT_STATE_FILE=/absolute/path/to/.sqlbot-skill-state.json说明:
SQLBOT_BASE_URL可以直接传http://host/api/v1,也可以传应用根地址,脚本会自动补全。SQLBOT_API_KEY_TTL_SECONDS是 skill 生成短时签名的有效期,默认300秒。- 默认优先读取 skill 目录下的
.env,也兼容当前工作目录下的.env;也可以通过--env-file指定别的配置文件。 SQLBOT_APP_URL可以去掉,前端预览地址会从SQLBOT_BASE_URL自动推导。SQLBOT_STATE_FILE用于保存 skill 当前数据源上下文;默认写到 skill 目录下的.sqlbot-skill-state.json。- 导出仍然走前端预览页,但浏览器请求会附带 API Key 认证头,同时用占位
user.token通过前端路由守卫。
查询工作空间:
python3 sqlbot_skills.py workspace list
python3 sqlbot_skills.py --env-file ./.env workspace list切换工作空间:
python3 sqlbot_skills.py workspace switch 2
python3 sqlbot_skills.py workspace switch "运营中心"查询数据源:
python3 sqlbot_skills.py datasource list
python3 sqlbot_skills.py datasource list --workspace 2切换数据源:
python3 sqlbot_skills.py datasource switch 12
python3 sqlbot_skills.py datasource switch "订单中心" --workspace 2
python3 sqlbot_skills.py datasource current问数:
python3 sqlbot_skills.py ask 本周销售额是多少
python3 sqlbot_skills.py ask 本周销售额是多少 --datasource 12
python3 sqlbot_skills.py ask 本周销售额是多少 --workspace 2 --datasource "订单中心"
python3 sqlbot_skills.py ask 继续按地区拆分 --chat-id 101查询仪表板:
python3 sqlbot_skills.py dashboard list --workspace 2
python3 sqlbot_skills.py dashboard list --workspace "运营中心" --node-type leaf查看仪表板详情:
python3 sqlbot_skills.py dashboard show 4a2c7e5a0d1c4e4f8a0b5d1142f4c999 --workspace 2导出仪表板截图(默认 JPG):
python3 sqlbot_skills.py dashboard export 4a2c7e5a0d1c4e4f8a0b5d1142f4c999 \
--workspace 2 \
--output ./exports/dashboard.jpg显式导出 PNG:
python3 sqlbot_skills.py dashboard export 4a2c7e5a0d1c4e4f8a0b5d1142f4c999 \
--workspace 2 \
--format png \
--output ./exports/dashboard.png导出仪表板 PDF:
python3 sqlbot_skills.py dashboard export 4a2c7e5a0d1c4e4f8a0b5d1142f4c999 \
--workspace 2 \
--format pdf \
--output ./exports/dashboard.pdf也可以安装后继续用命令入口:
sqlbot-skills workspace list
sqlbot-skills datasource list
sqlbot-skills ask 本周销售额是多少仓库使用标准库 unittest:
python3 -m unittest discover -s tests -v