【Agent】基于Langchain的Agent数据库查询助手

一、介绍

  1. 核心框架
  • deepagents: 创建智能代理的主要框架
  • FilesystemBackend: 代理状态和记忆的后端存储系统
  1. 语言模型
  • ChatOllama: 本地Ollama模型接口(使用gemma4:e4b模型)
  • 支持云端模型的ChatOpenAI备选方案
  1. 数据库工具
  • SQLDatabase: 连接到SQLite数据库(Chinook数据库)
  • SQLDatabaseToolkit: 为数据库操作提供专门工具
  • SQLite: 包含示例数据的轻量级数据库
  1. 开发工具
  • langchain_ollama: 与Ollama集成用于本地LLM部署
  • langchain_openai: 与OpenAI API集成
  • dotenv: 环境变量管理
  1. 技能与记忆系统
  • 技能: 存储在 ./skills/query-writing./skills/schema-exploration中的预定义程序
  • 记忆: 存储在./AGENTS.md 中的文档,用于指导代理行为

二、配置

1、本地运行电脑配置要求:

  • 内存大于24G
  • Windows或者Linux

 如不使用本地运行,可调用LLM云端API。

2、克隆项目

shell 复制代码
# Clone the repository
git clone https://github.com/Reversev/Agent-for-SQL.git
cd Agent-for-SQL

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

# Set up environment variables
cp .env.example .env

3、修改API配置文件(仅使用云端API需要)

.env文件用于调用云端API,如何使用本地模型,这个文件里的内容可只增加langchain的监控助手API,即LANGCHAIN_API_KEYLANGCHAIN_PROJECT对应的内容。

python 复制代码
# OpenAI API Configuration
OPENAI_API_KEY=your_api_key_here   # 需要更改

# Optional: Custom API Base URL (if using proxy or local deployment)
# OPENAI_API_BASE=https://api.your-proxy.com/v1
OPENAI_API_BASE="https://openrouter.ai/api/v1/chat/completions"  # 需要更改

# LangSmith Configuration
LANGCHAIN_TRACING_V2=true
LANGSMITH_ENDPOINT=https://api.smith.langchain.com
LANGCHAIN_API_KEY=lsv2_pt_xxx  # 需要更改
LANGCHAIN_PROJECT=your_project_name

三、测试结果

1、本地测试结果(Ollama)

  • 修改agent.py文件内容
python 复制代码
model = ChatOllama(
    # model="qwen3.5:9b",
    model="gemma4:e4b",   # 这里用的是gemma4,推理速度更快
    validate_model=False,
    streaming=False,
    temperature=0,
    base_url=os.getenv("OLLAMA_BASE_URL", "http://localhost:11434"),  # Default Ollama URL
)
  • 确保本地的Ollama应用处于开启状态,如果需要了解怎么安装Ollama可以查看我的教程链接

  • 运行推理,在项目文件夹下运行下述代码:

shell 复制代码
python agent.py

结论:测试结果表明Agent可以根据用户指示查找对应问题的结果,但本地运行时间较慢,大约35分钟左右,可以看langsimth上的监控结果,如下图:

 监控的中间过程如下图:

2、云端API调用个测试结果(基于openrouter)

  • 访问openrouter网站,然后到API Keys侧边栏,Create一个新的Key,复制并另外保存API,注意:设置好后无法再复制API。

  • 修改agent.py文件内容

python 复制代码
model = ChatOpenAI(
    model="openrouter/free",
    temperature=0,
    openai_api_base=os.getenv("OPENAI_API_BASE"),
)
  • 运行推理,在项目文件夹下运行下述代码:
shell 复制代码
python agent.py


结论:测试结果与本地运行结果一致,但是快了不少,仅需23秒就搞定,可以看langsimth上的监控结果,如下图:

 监控的中间过程如下图:

 具体详细代码欢迎大家访问我的Github网站,如果对您有帮助的话麻烦点个star⭐⭐⭐。

四、参考文献

1https://github.com/Reversev/Agent-for-SQL

2https://openrouter.ai

相关推荐
猪猪拆迁队2 小时前
给虚拟工厂装一个 Agent:对话与批量双编排、自描述工具、可控写入的架构设计
agent
字节跳动数据库2 小时前
文章分享——相似函数处理方法
人工智能·后端·程序员
Bigfish_coding2 小时前
前端转agent-【python】-12 LangChain 入门实战:RAG + LCEL 链式调用
人工智能
程序员cxuan3 小时前
读懂 Claude Code 架构分析系列,第一篇,开始!
人工智能·后端·架构
饼干哥哥3 小时前
扣子3.0测评:我让 Codex 和 Claude Code 住同一个桌面,结果它们打架了!
人工智能·开源·代码规范
老梁agent3 小时前
MCP 协议实战:用标准化方式让 Agent 调用工业工具
物联网·agent·mcp
Token炼金师4 小时前
IP-Adapter:解耦交叉注意力如何让扩散模型看见图像
人工智能
Bigfish_coding4 小时前
前端转agent-【python】-11 LangGraph 高级特性:时间旅行与人工介入
人工智能
Token炼金师4 小时前
从safetensors到像素:ComfyUI Checkpoint加载机制的底层拆解
人工智能
AI闲人4 小时前
AI 写代码越来越快,为什么 Code Review 反而更慢了?
人工智能·code review·ai 编程