一、课程导学与环境搭建:Agent概念、数据库选型与Python环境配置

各位同学,欢迎来到《Agent与数据库交互实战》的第一课。

我是这门课的主讲,一个在AI和数据库领域摸爬滚打了十来年的老程序员。今天咱们不聊虚的,直接上手,把地基打牢。

你可能会问:为什么第一课就要讲环境搭建?

我个人的经验是:环境配不好,后面全白搞。很多同学学到一半卡住了,十有八九是环境问题。所以,咱们花点时间,把这一步走稳。

1.1 什么是Agent?为什么它需要数据库?

先说说Agent这个概念。

说白了,Agent就是一个能自主思考、调用工具、执行任务的智能体。它不像传统的程序那样,你输入A它就输出B。Agent会自己规划步骤,比如:先查一下天气,再订个机票,最后发条短信通知你。

嗯,这里有个关键点——记忆

Agent在执行任务时,会产生大量中间状态和结果。这些数据放哪?总不能每次都从头开始吧?

所以,数据库就派上用场了。它负责帮Agent记住:

  • 用户的历史对话
  • 任务执行的中间状态
  • 从外部获取的知识库
  • 工具调用的结果缓存

我在项目中遇到过一种情况:Agent查完用户信息后,第二次对话又去查了一遍。白白浪费了API调用和响应时间。后来我加了个SQLite缓存,速度直接翻倍。

核心结论: Agent + 数据库 = 有记忆的智能体。没有数据库的Agent,就像金鱼——只有7秒记忆。

1.2 数据库选型:SQLite vs MySQL

选哪个?这是很多新手纠结的问题。

我直接给结论:做实验、写Demo、本地跑,选SQLite;上生产、高并发、多人用,选MySQL

为什么这么选?咱们看个对比表:

特性 SQLite MySQL
安装配置 零配置,文件即数据库 需要安装服务、配置用户
并发能力 单写多读,写操作会锁表 多写多读,行级锁
适用场景 本地工具、移动端、小规模数据 Web应用、企业系统、高并发
数据量 建议2TB以内 可扩展至PB级
备份迁移 直接拷贝文件 需要导出SQL或使用工具

我个人习惯:课程里先用SQLite。为什么?因为省事。你不需要装MySQL服务,不需要配用户密码,一个文件搞定。等后面讲到高级特性时,我们再切到MySQL。

小技巧: 如果你在Windows上开发,SQLite的数据库文件默认保存在当前目录。我建议统一放到项目根目录下的 data/ 文件夹里,方便管理。

1.3 Python环境与依赖安装

好了,理论说完了,咱们动手。

1.3.1 创建虚拟环境

我见过太多人直接把包装到全局Python里,结果项目一多,依赖冲突到崩溃。

所以,请务必使用虚拟环境

# 创建虚拟环境
python -m venv agent_env

# 激活环境(Windows)
agent_env\Scripts\activate

# 激活环境(Mac/Linux)
source agent_env/bin/activate

激活后,你会看到命令行前面多了 (agent_env) 字样。嗯,这就对了。

1.3.2 安装核心依赖

咱们这门课主要用三个库:

  • LangChain:Agent框架,负责编排逻辑
  • SQLAlchemy:数据库ORM,负责和数据库打交道
  • SQLite/MySQL驱动:底层连接
pip install langchain langchain-community
pip install sqlalchemy
pip install aiosqlite  # SQLite异步驱动
# 如果后面用MySQL,再装:
# pip install pymysql
注意: 如果你在中国大陆,建议使用国内镜像源,否则下载慢到怀疑人生。 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名

1.3.3 验证安装

装完别急着走,咱们验证一下:

# test_env.py
from sqlalchemy import create_engine, text

# 创建SQLite内存数据库
engine = create_engine("sqlite:///:memory:")

# 执行一条SQL
with engine.connect() as conn:
    result = conn.execute(text("SELECT 'Hello Agent!' as msg"))
    print(result.fetchone()[0])  # 输出: Hello Agent!

print("环境配置成功!")

如果看到 Hello Agent!环境配置成功!,恭喜你,第一步走完了。

1.4 知识体系总览

为了让你对整门课有个全局认识,我画了张图。这张图展示了Agent与数据库交互的核心逻辑:

Agent与数据库交互核心架构 Agent 智能体 LLM + 工具调用 数据库 SQLite / MySQL SQLAlchemy ORM 连接池 / 会话管理 记忆存储 知识库检索 状态持久化 工具调用日志 Agent通过SQLAlchemy与数据库交互,实现记忆、检索、持久化等功能 第1章:环境搭建 第2-5章:基础交互 第6-15章:进阶实战 第16-30章:项目实战

1.5 避坑指南

最后,分享几个我踩过的坑:

  • 路径问题:SQLite数据库文件路径不要用相对路径里的空格。我曾经有个项目叫 "My Agent",结果数据库死活连不上,最后发现是路径里的空格搞的鬼。
  • 编码问题:如果你在Windows上,记得把终端编码改成UTF-8。不然中文数据存进去,查出来全是乱码。
  • 版本兼容:LangChain更新很快,建议锁定版本。我习惯在项目里放一个 requirements.txt,把版本号写死。
总结一下: 这一章我们搞定了三件事——理解了Agent为什么需要数据库、选好了SQLite作为起步数据库、配好了Python环境。下一章,咱们就开始写真正的Agent代码了。

公众号:蓝海资料掘金营,微信deep3321