DBChat 智能体


DBChat 是一款将传统数据库操作从”SQL 驱动”升级为”语义驱动”的智能桌面工具。用户通过自然语言查询数据库,系统自动完成 Schema 理解、SQL 生成、安全验证与执行,大幅降低数据库使用门槛。

项目背景

传统数据库管理工具(如 Navicat、DBeaver)要求用户具备 SQL 编写能力,对非技术人员不够友好。即使是有经验的开发者,在面对复杂查询时也需要反复调试 SQL 语句。随着大语言模型(LLM)技术的成熟,我们探索将自然语言处理能力引入数据库管理场景,让用户可以用日常语言与数据库对话。

系统架构

采用 React + FastAPI + Tauri 三端架构:

  • 前端(React + TypeScript):负责用户界面渲染、对话交互管理、结果可视化展示
  • 后端(FastAPI + Python):核心业务逻辑层,集成 LangGraph Agent、数据库连接池、SQL 执行引擎
  • 桌面壳(Tauri v2 + Rust):将 Web 应用打包为跨平台桌面程序,集成 Python Sidecar 进程

支持主流数据库:MySQL、PostgreSQL、SQLite、SQL Server

核心技术实现

1. 多阶段 Agent 有向图

基于 LangGraph 构建多阶段 Agent 工作流,串联完整查询链路:

用户输入 → Schema 理解 → 意图识别 → SQL 生成 → 安全验证 → 执行 → 结果返回

每个阶段独立可回溯,支持子图路由与容错机制。相比 LLM 直出 SQL,准确率显著提升,有效解决表名幻觉问题。

2. Tauri v2 桌面集成

使用 Tauri v2 套壳集成 Python Sidecar 进程,通过 PyInstaller 将 FastAPI 服务打包为独立可执行文件。消除 Web 部署依赖,实现真正的跨平台桌面应用分发(Windows/macOS/Linux)。

3. 双重安全防护

  • Prompt 守卫:在 LLM 输入层拦截潜在的危险指令(如”删除所有数据”)
  • SQL Validator:在执行前验证 SQL 语句,拦截无 WHERE 条件的 UPDATE/DELETE、DROP TABLE 等高风险操作

双重机制降低误操作风险,保障数据安全。

4. 四层数据生命周期模型

  • 连接验证层:建立数据库连接时验证凭证有效性
  • Schema 刷新层:定期同步数据库元数据,确保 Agent 掌握最新表结构
  • 会话激活层:管理多轮对话上下文,支持连续查询
  • 消息持久化层:保存历史对话记录,支持回溯与复用

技术栈

  • 前端:React, TypeScript, TailwindCSS
  • 后端:Python, FastAPI, LangGraph, SQLAlchemy
  • 桌面:Tauri v2, Rust, PyInstaller
  • 数据库:MySQL, PostgreSQL, SQLite, SQL Server

项目价值

  • 降低数据库使用门槛,非技术人员可通过自然语言查询数据
  • 多阶段 Agent 架构提升 SQL 生成准确率,减少幻觉问题
  • 桌面部署模式保障数据隐私,无需将敏感数据上传至云端
  • 双重安全机制防止误操作,适合生产环境使用