一、介绍
- 核心框架
- deepagents: 创建智能代理的主要框架
- FilesystemBackend: 代理状态和记忆的后端存储系统
- 语言模型
- ChatOllama: 本地Ollama模型接口(使用gemma4:e4b模型)
- 支持云端模型的ChatOpenAI备选方案
- 数据库工具
- SQLDatabase: 连接到SQLite数据库(Chinook数据库)
- SQLDatabaseToolkit: 为数据库操作提供专门工具
- SQLite: 包含示例数据的轻量级数据库
- 开发工具
- langchain_ollama: 与Ollama集成用于本地LLM部署
- langchain_openai: 与OpenAI API集成
- dotenv: 环境变量管理
- 技能与记忆系统
- 技能: 存储在
./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_KEY和LANGCHAIN_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⭐⭐⭐。
四、参考文献
1\]