MySQL Natural Language Query Assistant

将自然语言请求转换为安全的 MySQL 查询,支持实时数据库连接与结果验证。

已扫描
适合谁
数据分析师、后端开发人员
不适合谁
无数据库权限的普通用户、需要直接执行写入操作的用户
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @nocb/mysql-query-assistant

Skill 说明

命令、参数、文件名以原文为准

MySQL 自然语言查询助手

使用此技能将用户的请求转化为对实时数据库的安全 MySQL 操作。

核心工作流程

针对每个请求,请遵循以下步骤:

  1. references/connection-and-safety.md 检查连接前提条件。
  2. 首先发现相关数据模式。如有列注释,优先使用。
  3. 起草 SQL 语句。
  4. 仅通过 scripts/run_read_query.py 执行只读 SQL。
  5. 进行双重验证:

- 结构验证:表、列、连接、过滤、分组和语法是否与请求匹配。

- 结果验证:返回的行数和聚合结果在语义上是否与用户意图一致。

  1. 若验证失败,修改 SQL 并重新执行。
  2. 使用下方输出模板呈现最终答案。

默认行为

  • 仅优先使用 SELECT 查询。
  • 不自动执行 INSERTUPDATEDELETEREPLACEALTERDROPTRUNCATECREATEGRANTREVOKE
  • 默认保持结果样本较小。
  • 当请求不明确时,先通过模式检查缩小候选表范围再编写 SQL。
  • 除非探索模式是用户目标,否则优先使用显式列列表而非 SELECT *
  • 优先使用有界查询。若用户未要求完整提取,应添加 LIMIT

模式发现工作流程

生成 SQL 前,使用 scripts/introspect_schema.py 检查数据模式。

按以下顺序操作:

  1. 列出候选表。
  2. 检查最相关表的列、数据类型、主键/外键及列注释。
  3. 从注释和名称推断业务含义。
  4. 然后才起草 SQL。

若缺少注释,退而使用表名、列名、键信息以及少量探测性查询。

只读执行工作流程

使用 scripts/run_read_query.py 执行 SQL。

该脚本会拒绝非只读语句,并阻止多语句执行。

验证查询时:

  1. 执行第一个候选 SQL。
  2. 审查行数、样本行,确认列是否回答了请求。
  3. 若结果为空或可疑,解释原因,并在合适时尝试修正后的查询。
  4. 若存在多种合理解释,优先选择最符合模式和结果的查询,并说明所作假设。

受限写操作工作流程

当用户请求写操作时:

  1. 不执行写入语句。
  2. 先生成一个预览 SELECT,准确显示将受影响的行。
  3. 再单独生成写入 SQL。
  4. 明确标注写入 SQL 未被执行。
  5. 指出任何缺失的安全条件,如 WHERE 子句过弱或缺失。

输出模板

除非用户要求其他格式,否则请使用以下结构:

最终 SQL

[最终 SQL]

验证

  • 结构检查:[为何 SQL 结构与请求匹配]
  • 结果检查:[为何返回数据看似正确,或为何信心有限]

样本结果

当可用且有用时,展示 5 至 20 行。宽表应保持紧凑。

结果摘要

提供对查询结果的简明自然语言总结。

注意事项

包含假设、注意事项及任何模式不确定性。

执行细节

  • 使用 references/connection-and-safety.md 中描述的环境变量。
  • 使用 scripts/introspect_schema.py 进行模式发现。
  • 使用 scripts/run_read_query.py 执行只读 SQL。
  • 若 Python MySQL 驱动缺失,请在运行脚本前安装文档中列出的选项之一。

示例

示例:分析类请求

用户请求:统计最近 7 天每天新增用户数

预期做法:

  1. 检查可能的用户表及创建时间列。
  2. 通过注释或名称确认时间列语义。
  3. 生成按日期分组的查询。
  4. 执行查询。
  5. 验证日期区间和数量是否合理。

示例:受限写操作请求

用户请求:把 status = 'pending' 且 30 天前创建的订单改成 expired

预期做法:

  1. 生成目标行的预览 SELECT
  2. 单独生成 UPDATE SQL。
  3. 不执行 UPDATE
  4. 若表缺乏可靠主键或过滤条件过宽,发出警告。
N
@nocb

已收录 1 个 Skill

相关推荐