RDS Agent可以理解已纳管数据库的 Schema 和业务语义,将自然语言问题转换为只读 SQL,并根据查询结果给出业务答案。本文以 RDS Agent(兼容 Hermes Agent)为例,通过一次商品销售额分析,展示从知识库增强、问题推荐、智能问数到独立校验的完整能力链路。
前提条件
已创建并正常运行 RDS Agent(兼容 Hermes Agent)。
已配置可用的模型服务,并能够进入 RDS Agent(兼容 Hermes Agent)WebUI,具体操作,请参见快速入门RDS Agent(兼容Hermes Agent)。
已使用只读数据库账号纳管目标数据库。
数据库连接正常,并已在控制台生成或更新知识库。
目标数据库中存在可供查询的业务数据。
注意事项
知识库用于增强 RDS Agent(兼容 Hermes Agent)对业务领域、指标口径、表用途和关联关系的理解,不存储订单、销售额等业务数据。用户正式问数时,RDS Agent(兼容 Hermes Agent)会结合知识库访问已纳管数据库并返回查询结果。
查询敏感数据时,应使用脱敏视图、列级权限或受控数据集。
不在会话中粘贴数据库密码、AccessKey 或大批量敏感明细。
本文数据来自 RDS Agent(兼容 Hermes Agent)测试环境,仅用于展示能力与校验方法。实际表结构和查询结果以用户数据库为准。
提问建议
在开始问数前,建议参考以下提问模板组织问题,以获得更准确的查询结果:
统计<时间范围>内的<指标>,按<维度>汇总。
指标口径为<计算公式>,仅包含<过滤条件>,时区为<时区>。
按<排序方式>返回前<N>条,并展示最终只读 SQL、真实结果和口径说明。多连接环境中应明确目标数据库连接。
对可能存在多种定义的指标,应补充时间范围、时区、状态、退款和去重规则。
先用聚合与 LIMIT 验证逻辑,再扩大查询范围。
步骤一:准备测试业务数据(可选)
本文使用 MySQL 数据库 test_db,初始化了订单主表 orders 和订单明细表 order_items。两张表通过 order_id 建立一对多关系:一条订单可以对应多条商品明细。
下述测试数据仅用于复现实例中的问数效果。您无需使用相同表名或数据量,实际使用时以已纳管数据库的真实 Schema、业务口径和查询结果为准。
orders 表包含以下字段:
字段 | 类型 | 约束或用途 |
|
| 主键,订单唯一 ID。 |
|
| 下单用户 ID。 |
| 状态字段 | 记录订单当前业务状态。 |
|
| 订单总金额。 |
|
| 下单时间。 |
|
| 最后更新时间。 |
order_items 表包含以下字段:
字段 | 类型 | 约束或用途 |
|
| 主键,明细唯一 ID。 |
|
| 外键,关联 |
|
| 下单时的商品名称快照。 |
|
| 下单时的商品单价。 |
|
| 购买数量。 |
本次实测数据包含 13 条订单和 22 条订单明细,覆盖不同用户、订单状态、下单时间、商品、单价和购买数量。按 unit_price * quantity 汇总,全部商品销售额为 12,583.00 元。
步骤二:在控制台完善知识库
数据库纳管完成后,可以在控制台维护该连接的知识库,为后续取数问数补充业务上下文。
进入 RDS Agent(兼容 Hermes Agent)应用详情页。
单击数据库纳管页签。
在连接列表中选择目标数据库。
单击知识库管理页签。
查看或维护 AI 知识、用户知识和表知识。
知识库包含以下内容:
知识类型 | 作用 | 维护建议 |
AI 知识 | 根据数据库结构生成业务领域、数据流向和核心表关联说明。 | 检查自动生成的描述是否符合实际业务,必要时进行编辑。 |
用户知识 | 补充企业自定义术语、指标口径和业务规则。 | 仅添加已确认的知识,例如"销售额"的定义、有效订单状态和退款处理规则。 |
表知识 | 展示表用途、字段和结构信息,帮助 Agent 选择正确的数据对象。 | 重点核对表含义、关键字段及主从表关系。 |
当表结构或业务定义发生变化时,单击更新知识库重新生成相关知识。单击重新加载可刷新当前页面的展示结果。
步骤三:查看推荐问题
新建会话时,RDS Agent(兼容 Hermes Agent)可以根据当前数据库的 Schema 和业务内容生成推荐问题,帮助您快速发现可查询的数据主题。
本次实测生成了以下推荐问题:
哪些商品的销售额贡献最高?
购买次数最多的前 5 位用户是谁?
上个月的订单销售总额是多少?
销量排名前 10 的商品有哪些?
不同订单状态的分布比例是怎样的?
您可以直接选择推荐问题,也可以在其基础上补充时间范围、状态过滤、指标公式和返回数量。推荐问题用于降低提问门槛,不代表业务口径已经完全确定。
步骤四:发起智能问数
本次选择商品销售额分析,并补充明确的计算公式和输出要求。提示词示例如下:
请统计当前已纳管数据库中销售额贡献最高的 5 个商品。
销售额按 order_items.unit_price * order_items.quantity 计算,按 product_name 汇总。
返回商品名称、销售数量、销售额和销售额占比,按销售额降序排列。
同时展示生成的 SQL 和查询结果。RDS Agent(兼容 Hermes Agent)结合知识库中的业务语义和表关系选择目标表与字段,在已纳管数据库中完成查询。Agent 调用 2 个工具,耗时约 30 秒,生成的 SQL 语句如下:
SELECT
product_name AS 商品名称,
SUM(quantity) AS 销售数量,
SUM(unit_price * quantity) AS 销售额,
CONCAT(ROUND(SUM(unit_price * quantity) * 100.0 / (SELECT SUM(unit_price * quantity) FROM order_items), 2), '%') AS 销售额占比
FROM order_items
GROUP BY product_name
ORDER BY 销售额 DESC
LIMIT 5;查询结果如下表所示:
排名 | 商品 | 销售数量 | 销售额 | 销售额占比 |
1 | 平板电脑 | 1 | 1,899.00 元 | 15.09% |
2 | RGB 灯带 | 8 | 1,600.00 元 | 12.72% |
3 | 27 寸显示器 | 1 | 1,599.00 元 | 12.71% |
4 | 智能手表 | 1 | 1,299.00 元 | 10.32% |
5 | 机械键盘 | 1 | 899.00 元 | 7.14% |
除查询结果外,RDS Agent(兼容 Hermes Agent)还会输出分析摘要,对 Top 5 商品的销售额分布和占比进行文字解读。
检查结果时,建议确认以下事项:
SQL 只使用真实存在的表和字段。
指标公式、分组字段和过滤条件符合业务定义。
金额计算没有在聚合前进行不必要的取整或浮点转换。
排序字段和 LIMIT 数量符合问题要求。
SQL 只包含查询操作,且最终数字来自真实执行结果。
步骤五:执行独立校验
对销售额、订单量、转化率等重要指标,可以要求 RDS Agent(兼容 Hermes Agent)改变计算路径,使用另一条 SQL 重算总量和汇总值。校验提示词示例如下:
请用一条独立的只读查询校验刚才的结果:
计算全部商品总销售额、Top 5 合计销售额和占比。
使用 DECIMAL 原始精度,不在聚合前 ROUND 或转换浮点数。
展示校验 SQL 和结果。本次独立查询中,Agent 调用 4 个工具,耗时约 27 秒,生成的校验 SQL 使用嵌套子查询分别计算全部商品总销售额和 Top 5 合计销售额,避免与步骤四使用相同的聚合路径。校验 SQL 如下:
SELECT
(SELECT SUM(unit_price * quantity) FROM order_items) AS `全部商品总销售额`,
(
SELECT SUM(product_sales)
FROM (
SELECT SUM(unit_price * quantity) AS product_sales
FROM order_items
GROUP BY product_name
ORDER BY product_sales DESC
LIMIT 5
) AS top5
) AS `Top5 合计销售额`,
CONCAT(ROUND(
(SELECT SUM(product_sales) FROM (SELECT SUM(unit_price * quantity) AS product_sales FROM order_items GROUP BY product_name ORDER BY product_sales DESC LIMIT 5) AS top5)
/ (SELECT SUM(unit_price * quantity) FROM order_items) * 100,
2), '%') AS `Top5 销售额占比`;校验结果如下表所示:
校验项 | 结果 |
全部商品总销售额 | 12,583.00 元 |
Top 5 合计销售额 | 7,296.00 元 |
Top 5 销售额占比 | 57.98% |
若两次结果不一致,应逐项比较时间范围、过滤条件、关联方式、聚合顺序、类型转换和取整位置,不能在未验证前直接归因于缓存或精度问题。
对销售额、订单量、转化率等重要指标,建议使用独立查询校验结果,不能仅凭单次查询直接采信。