基于 DeepAgent 框架的智能 SQL 查询助手,专为 Harness Engineer 设计。
- 🤖 自然语言查询:用中文提问,自动生成 SQL 查询
- 🔍 Schema 探索:自动发现和理解数据库结构
- 📊 可视化图表:支持生成 LangGraph 工作流程图
- 📝 LangSmith 追踪:完整的执行日志和调试信息
- 🔒 安全查询:只读模式,仅允许 SELECT 操作
- 🎯 DeepAgent 驱动:基于 DeepAgents 框架,支持技能和记忆模块
这是一个为 Harness Engineer 打造的智能 SQL 查询助手,基于 DeepAgent 框架构建。
核心价值:
- ⚡ 零 SQL 基础:无需学习 SQL 语法,直接用自然语言提问
- 🎯 精准查询:自动理解业务意图,生成准确的 SQL 查询
- 🔧 工具集成:内置 SQL 查询、Schema 检查、查询验证等工具
- 📈 可观测性:通过 LangSmith 完整追踪每次查询的执行过程
适用场景:
- 数据分析师快速查询业务数据
- 工程师排查数据库问题
- 产品经理查看业务指标
- 运营人员获取统计数据
pip3 install -r requirements.txt复制 .env.example 创建 .env 文件:
cp .env.example .env编辑 .env 文件,填入你的 API 密钥:
# 阿里云百炼 API Configuration
OPENAI_API_KEY=sk-your_api_key_here
OPENAI_API_BASE=https://dashscope.aliyuncs.com/compatible-mode/v1
# LangSmith Configuration
LANGCHAIN_TRACING_V2=true
LANGCHAIN_API_KEY=lsv2_your_api_key_here
LANGCHAIN_PROJECT=deepagent-sql如果需要测试数据:
python3 init_db.pypython3 agent.py# 生成默认图表
python3 agent.py --draw-graph
# 自定义输出文件名
python3 agent.py --draw-graph --output my_graph.png在代码中调用:
from agent import create_sql_deep_agent, execute_query
# 创建 agent
agent = create_sql_deep_agent()
# 执行自然语言查询
result = execute_query(agent, "查询总共有多少首歌曲?")
print(result)
result = execute_query(agent, "列出前 5 位艺术家的名字")
print(result)
result = execute_query(agent, "每个专辑有多少首歌曲?")
print(result)示例数据库包含以下表:
- Artists - 艺术家信息
- Albums - 专辑信息
- songs - 歌曲信息
- MediaType - 媒体类型
- Genres - 音乐流派
Agent 提供以下 SQL 工具:
- sql_db_query - 执行 SQL 查询
- sql_db_schema - 查看表结构
- sql_db_list_tables - 列出所有表
- sql_db_query_checker - 检查 SQL 正确性
⚠️ 只读访问:只能执行 SELECT 查询,不能修改数据⚠️ API 密钥:需要阿里云百炼 API Key 才能运行⚠️ Python 版本:需要 Python 3.8+⚠️ macOS 用户:使用python3命令而非python
- 访问 阿里云百炼控制台
- 注册/登录阿里云账号
- 开通百炼服务
- 创建 API Key
- 访问 LangSmith
- 注册账号
- 在 Settings → API Keys 创建密钥
在 .env 文件中配置 LangSmith:
# LangSmith Configuration
LANGCHAIN_TRACING_V2=true
LANGCHAIN_API_KEY=lsv2_your_api_key_here
LANGCHAIN_PROJECT=deepagent-sql从上图可以看到完整的查询执行链路:
执行流程说明:
-
**LangGraph **(总耗时 20.83s)
- 整个查询的总执行时间
-
**MemoryMiddleware.before_agent **(0.05s)
- 加载记忆模块,从 AGENTS.md 读取指令
-
**SkillsMiddleware.before_agent **(0.00s)
- 加载技能模块(query-writing、schema-exploration)
-
**Model 推理 **(13.55s)
- ChatOpenAI (Qwen-Max) 进行语义理解和 SQL 生成
- 这是最耗时的步骤,占用了大部分时间
-
**工具调用 **(0.01s)
sql_db_list_tables- 列出所有表(0.00s)sql_db_schema- 查看表结构(0.01s)
-
SQL 查询执行
sql_db_query- 执行生成的 SQL 查询(0.00s)- 返回最终结果
-
访问控制台
- 打开 https://smith.langchain.com/
- 登录你的账号
-
查看项目
- 左侧菜单选择 "Tracing"
- 找到
deepagent-sql项目
-
分析 Runs
- 点击任意一次查询记录
- 查看瀑布图(Waterfall View)
- 展开每个步骤查看输入/输出详情
-
性能优化
- 识别耗时最长的步骤
- 通常 Model 推理占主要时间(13-14s)
- 工具调用和 SQL 执行非常快(<0.01s)
- 总耗时:~20s(包含多次 LLM 调用)
- 首次推理:~13.5s(理解问题 + 生成 SQL)
- 工具调用:<0.01s(数据库操作)
- 成功率:绿色✓表示成功,红色✗表示失败
- 🔍 查看 Input/Output:点击右侧面板查看每一步的输入输出
- ⏱️ 识别瓶颈:蓝色条越长表示耗时越多
- 🐛 错误定位:红色标记的步骤表示失败
- 📊 Token 统计:查看 API 调用成本
deepagent-sql/
├── agent.py # 主程序
├── init_db.py # 数据库初始化脚本
├── chinook.db # SQLite 数据库
├── .env # 环境变量配置(需自行创建)
├── .env.example # 环境变量示例
├── requirements.txt # Python 依赖
├── AGENTS.md # Agent 指令文件
└── skills/ # 技能模块
├── query-writing/
└── schema-exploration/
