运行时依赖
安装命令
点击复制技能文档
KWDB 文本到 SQL 技能查询类型路由 根据用户的查询,读取适当的参考文件: 查询类型参考文件 查询路由(从这里开始) references/scenarios.md MCP 集成 references/mcp-integration.md 时序 DDL(创建时序库/表) references/ts-ddl.md 聚合操作及降采样(每小时/每天统计) references/ts-downsampling.md 插值/填充缺失值 references/ts-interpolation.md 最新值查询 references/ts-latest-value.md 滑动窗口/session/event references/ts-window-events.md 关系表查询 references/relational.md 跨模查询(时序表+关系表) references/cross-model.md 时序函数语法速查 references/ts-functions.md 关系函数语法速查 references/relational-functions.md 快速参考 NL 模式 SQL 模式 最近 N 分钟/小时/天的数据 WHERE ts >= NOW() - INTERVAL 'N hour' 每小时/每天的平均值 time_bucket(ts, '1h/1d') + avg(col) 每 N 分钟/小时/天降采样 time_bucket(ts, 'X') + aggregation 填充缺失值 time_bucket_gapfill() + interpolate() 最新数据 last(col) 或 ORDER BY ts DESC LIMIT 1 滑动窗口 TIME_WINDOW(ts, '1h', '15m') 关联设备信息 JOIN devices ON ... 工作流阶段 0:MCP 检测和模式发现(推荐) 检测 MCP 可用性:调用 read-query 以 SELECT 1 如果成功 → MCP 可用 如果失败 → MCP 不可用,转到回退 获取数据库名称(如果用户未提供):询问用户:“请提供要查询的数据库名称” 或者执行 SHOW DATABASES 列出所有数据库 发现数据库中的表:执行 SHOW TABLES FROM {database_name} 确定候选表:匹配 NL 关键字到表名(例如,“传感器” → sensor_data) 如果有多个候选项 → 询问用户:“请确认表名:[A, B, C]?” 获取表模式:执行 SHOW CREATE TABLE {database_name}.{table_name},不使用 DESCRIBE 注意列名、类型、主键、标签、注释 将 NL 字段名称映射到实际列名 转到阶段 1,带有验证的模式 阶段 0 回退:无 MCP 可用 当 MCP 不可用时: 选项 A - 询问用户:“请提供表结构信息(表名、列名)” 等待用户描述模式 转到阶段 1 选项 B - 使用假设字段:“我将使用常见字段名生成 SQL,请验证” 使用标准字段名(ts、device_id、temperature 等) 标记输出为“假设模式 - 请验证” 转到阶段 1 阶段 1:查询类型路由 阅读 scenarios.md:references/scenarios.md - 单一入口点,带有决策树 根据查询类型路由到场景文件: 聚合/降采样 → ts-downsampling.md 插值 → ts-interpolation.md 最新值 → ts-latest-value.md 窗口/会话/事件 → ts-window-events.md 跨模 → cross-model.md 关系 → relational.md 函数语法 → 参见 ts-functions.md(时序)或 relational-functions.md(关系) 阶段 2:SQL 生成 提取实体:表名、列、时间范围、条件 使用阶段 0 的模式(如果使用了 MCP) 生成 SQL:使用参考中的模式构造 SQL 验证:确保 SQL 遵循 KWDB 函数语法 阶段 3:输出格式 输出:遵循 assets/output-template.md 包含字段映射,如果使用了 MCP 标记假设,如果模式被假设 添加验证清单 阶段 4:KWDB 执行 先决条件:SQL 已在阶段 2 中生成,并在阶段 3 中格式化。 步骤 1:检查 MCP 可用性 注意:如果在阶段 0 中成功使用了 MCP,并且模式被发现,MCP 可用。 如果阶段 0 表示 MCP 不可用,跳过此阶段。 如果 MCP 可用性未知(例如,阶段 0 被跳过),现在验证: 调用 read-query 以 SELECT 1 如果成功 → MCP 可用,转到步骤 2 如果失败 → MCP 不可用,跳过此阶段,结束工作流 步骤 2:询问用户执行确认 提示用户:“生成的 SQL 已准备就绪。是否需要通过 kwdb-mcp-server 执行该 SQL?”
- 输入 “是” 或 “执行” → 继续执行
- 输入 “否” 或 “跳过” → 结束,不再执行