DBLens 与 LensAI Agent 能力速览

DBLens 不只是一个数据库管理工具,它内置了 LensAI Agent——一个能够理解自然语言并主动执行数据库任务的智能代理。

LensAI Agent 的核心能力:

  • ✅ 自然语言 → SQL:输入“本月销售额最高的 5 个产品”,自动生成对应 SQL。
  • ✅ 数据库上下文感知:自动识别当前连接的数据库、表结构、字段注释,无需人工指定。
  • ✅ 安全执行:默认只允许只读查询;更新/删除操作需用户二次确认。
  • ✅ 结果解释:返回数据的同时,附上 SQL 语句和执行说明,方便复核。

关键是:Agent 不只是对话,它会真正执行任务。这也正是 DBLens 区别于普通 SQL 工具的地方。

二、企业微信智能机器人(长连接模式)

企业微信智能机器人支持两种接入方式:

模式特点适用场景
API 回调(短连接)需要公网域名 + SSL 证书服务器有公网 IP
WebSocket 长连接无需公网 IP,只需能访问企微 API内网开发机、笔记本

因为 DBLens 通常运行在开发者的本地电脑或内网服务器,我们选择 长连接模式,免去配置域名和证书的麻烦。

交互流程很简单:

用户发消息 → 企微服务器推送给 DBLens(长连接) → LensAI Agent 处理 → 回复给用户

三、整体接入流程

步骤一:创建企微智能机器人

  1. 打开企业微信客户端,进入工作台->智能机器人,点击创建机器人->手动创建;

    image

  2. 点击 创建机器人 → 选择 API 模式创建

    image

  3. 创建成功后,你会获得 Bot ID 和 Secret(Secret 仅显示一次,请务必保存)。

    image

步骤二:在 DBLens 中通过对话配置企微机器人

打开 DBLens,进入 LensAI 对话框(即你平时用自然语言查询数据库的地方),然后直接告诉 Agent 你要接入企业微信机器人,并给它提供 Bot ID 和 Secret。

示例对话

:帮我配置企业微信智能机器人,Bot ID 是 your_bot_id,Secret 是 your_secret

LensAI Agent:收到。正在验证凭证……验证通过。已为你建立与企业微信的长连接。机器人现在可以接收消息了。你可以在企业微信中搜索该机器人开始对话。

Agent 会自动完成以下动作:

  • 验证 Bot ID 和 Secret 的有效性
  • 启动 WebSocket 长连接
  • 注册消息回调处理
  • 返回配置结果

整个过程无需离开对话框,也不需要翻阅菜单或填写表单。如果凭证有误,Agent 会提示你重新提供。

image

步骤三:在企微中使用机器人

  1. 在企业微信中搜索你创建的机器人名称,发起单聊。

image

  1. 直接发送自然语言问题,例如:

    帮我查一下最近 7 天的订单数量,按天分组。

    LensAI Agent 会处理并回复结果。
     

    image


     

    image

    image

  2. 也可以在群聊中 @机器人,它会回复到群里。

四、Agent 工作流程详解(技术向)

当用户发送一条消息,背后的完整流程如下:

数据库LensAI AgentDBLens (长连接)企微服务器企微用户数据库LensAI AgentDBLens (长连接)企微服务器企微用户发送自然语言消息WebSocket 推送消息调用 Agent.handle()理解意图 + 识别表/字段生成 SQL(只读)执行 SQL返回结果集格式化结果 + 附上 SQL返回回复内容WebSocket 回复显示结果

关键设计细节:

  • 上下文构建:Agent 会自动从当前 DBLens 连接的数据库拉取表结构、注释、索引信息,作为给 LLM 的提示词。
  • SQL 生成:采用 ReAct 风格规划,先生成 SQL,再通过内置验证器检查风险(如 DROP、DELETE 不带 WHERE
    会被拦截)。
  • 只读安全策略:默认所有查询以只读事务执行。如果用户要求更新数据,Agent 会返回待执行的 SQL 并要求用户手动确认。
  • 性能优化:对于大结果集,自动限制返回行数(默认 100 行),并提示“仅展示前 100 条”。

五、典型应用场景与示例

场景一:业务快速查询数据

用户

最近一周,每天的下单用户数是多少?

Agent 回复

 
-- 已生成 SQL
SELECT DATE(created_at) as day, COUNT(DISTINCT user_id) as active_buyers
FROM orders
WHERE created_at >= NOW() - INTERVAL 7 DAY
GROUP BY DATE(created_at)
ORDER BY day;

场景二:排查线上问题

用户

订单表里,“退款金额”对应的字段叫什么?

Agent 回复

根据表 orders 的结构,与退款金额相关的字段有:

  • refund_amount (DECIMAL) —— 实际退款金额
  • refund_status (INT) —— 0:未退款, 1:退款中, 2:已退款
    你可能是想查 refund_amount

场景三:非技术人员自助取数

运营同学可以直接问:

帮我拉一份上个月注册、但从未下单的用户邮箱列表。

Agent 理解后生成 LEFT JOIN 查询,返回结果。这可以显著减少数据团队被简单取数需求打断的频率。

六、注意事项与最佳实践

注意点说明
Secret 丢失Secret 只在创建时显示一次,务必保存到密码管理器。丢失只能重新创建机器人。
长连接唯一性同一时刻一个机器人只能维持一个长连接。如果 DBLens 关闭或网络中断,需要重连。
心跳保活长连接需要定期发送心跳(建议 30 秒),否则企微会断开。DBLens 默认已实现。
权限控制建议在企微后台设置机器人可见范围,只对需要的部门开放,避免敏感数据泄露。
只读优先生产环境建议在 DBLens 中给机器人专用的数据库账号,授予 SELECT 权限即可。
复杂查询如果表非常多(>200 张),Agent 可能漏选表。可以预先用 DBLens 的「数据字典」功能标记核心表。
重新配置如果需要更换机器人或更新 Secret,只需再次在 LensAI 对话框中告诉 Agent 新信息即可,它会自动更新连接。

七、结语

完成上述配置后,你的企业微信里就多了一个「数据库 Agent」。团队成员可以像问一个懂数据的同事一样,用自然语言快速获取信息。

一句话总结:把 DBLens 的 LensAI Agent 接入企微机器人,让数据查询从「提需求 → 等排期 → 截图」变成「直接问 → 秒回」。

下一步可以做什么?

    Logo

    欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

    更多推荐