QueryDoctor
智能数据库诊断 Agent
2026.01 – 2026.03
Full-Stack Developer
2 months

实时诊断面板 — SSE 流式输出诊断推理过程
给数据库看病的 AI 医生。连接你的数据库,它会自动抓取慢查询,分析 EXPLAIN 执行计划,定位性能瓶颈,给出索引优化和 SQL 改写建议。不是一次性诊断——LangGraph 驱动的自迭代机制让它能反复验证自己的优化方案。
挑战
数据库诊断不是简单的文本生成——需要真正连接数据库、执行查询、解读结果。如何让 LLM 在多轮工具调用中保持诊断逻辑的连贯性?如何支持四种完全不同的数据库系统而不让代码爆炸?
方案
三层架构:React 前端 → Go (Gin) API 网关 → Python (FastAPI + LangGraph) Agent 引擎。Go 网关负责认证和路由,Python Agent 负责诊断逻辑。通过 Redis Streams 解耦前后端通信,Agent 的每一步推理都通过 SSE 实时推送到前端。LangGraph 的状态图让诊断流程可以自迭代——发现新问题时自动回溯重新分析。
技术栈
亮点
- 01
LangGraph Agent:状态图驱动的自迭代诊断,支持回溯和多轮工具调用
- 02
四库支持:MySQL / PostgreSQL / MongoDB / Redis,统一诊断接口
- 03
三层架构:React → Go 网关 → Python Agent,Redis Streams 异步解耦
- 04
RAG 经验库:诊断结果向量化入库,积累越多诊断越精准
- 05
SSE + WebSocket 双通道,诊断推理过程实时可见
成果
支持 MySQL、PostgreSQL、MongoDB、Redis 四种数据库的自动化诊断。RAG 知识库积累诊断经验,越用越准。SSE + WebSocket 双通道实时通信,诊断过程完全透明。
反思与收获
LangGraph 的状态图模型非常适合这种需要"思考-行动-观察"循环的场景。最大的教训是 Agent 的错误处理——LLM 生成的 SQL 可能有语法错误,必须在 Agent 层做好 fallback 而不是让整个诊断流程崩溃。Go + Python 的混合架构在这个项目里证明了自己:Go 处理高并发网关,Python 处理 AI 逻辑,各司其职。
在 GitHub 查看→
React → Go 网关 → LangGraph Agent,Redis Streams 异步通信

慢查询分析 — EXPLAIN 解读、索引建议、SQL 优化方案