第2章 别急,先把刀磨快
第1章讲完了AI Agent是什么、为什么现在学。这一章不急着写Agent代码——我有个朋友,代码写得漂亮,但每次换电脑都要花半天修环境。学AI的第一步,不是AI,是把工具准备好。 环境装对了,后面全是坦途;装错了,每走一步都是坑。
2.1 朋友问我怎么学AI
2.1.1 你不是不会Python,你是在哪写都不知道
去年有个朋友来找我:"我想学AI开发,你觉得我应该从哪开始?"
我说你先装个Python。
他愣了两秒:"……Python?不是应该先学PyTorch吗?"
这个问题我听过无数次。很多人一上来就想跑模型、训数据,结果连 import 都报错不知道为啥。学AI的第一步不是AI,是Python。就好像你想当赛车手,第一件事不是上赛道,而是先考个驾照。
Python不是你工具箱里的一个工具——它就是那个工具箱本身。这一节先把它装好。
2.1.2 安装Python(别在生产环境瞎装)
去 python.org 下载安装包。关键选择:版本号。
- 不要用Python 2——它已经停止维护了,但有些老系统默认装的还是它
- 推荐Python 3.10或3.11——稳定、兼容性好,AI生态的库基本都支持
- Python 3.12/3.13也可以——但个别库可能有兼容性问题,新手建议保守一点
安装完验证一下:
bash
python3 --version
# Python 3.11.9如果你用的是macOS,系统自带了Python 3,但版本可能偏旧。建议用Homebrew装一个独立的:
bash
brew install python@3.11为什么要用独立的Python? 因为系统自带的Python是给系统工具用的,你乱装包可能把系统搞崩。就像你不会用厨房的水果刀去砍骨头——工具要对,场景要对。
2.1.3 虚拟环境:你第一个AI项目的"独立房间"
装完Python之后,你可能会想:直接 pip install 不就行了?
可以,但千万别这么干。
问题出在哪? 假设你有两个项目:
- 项目A用了
langchain==0.3.0 - 项目B用了
langchain==0.4.0
如果你把所有的包都装在全局,这两个版本会打架。要么A跑不了,要么B报错,要么两个都挂。
虚拟环境就是给每个项目一个独立房间——房间里放什么包、什么版本,互不影响。
创建虚拟环境:
bash
# 创建
python3 -m venv agent_env
# 激活(macOS / Linux)
source agent_env/bin/activate
# 激活(Windows)
agent_env\Scripts\activate激活后,你的终端前面会多一个 (agent_env) 标记——表示你现在在这个"房间"里了。这时候 pip install 的所有包都只装在这个房间里。
退出虚拟环境:
bash
deactivate2.1.4 一个标准项目骨架
装好Python、建好虚拟环境之后,我习惯按这个结构组织项目:
my-agent-project/
├── .env # API Key等敏感信息(不要提交到git)
├── .gitignore # 告诉git哪些文件不用管
├── requirements.txt # 项目依赖清单
├── src/ # 源代码
│ ├── __init__.py
│ ├── main.py # 入口文件
│ └── agent/ # Agent相关模块
├── data/ # 数据文件
└── tests/ # 测试你不一定要一模一样,但有几点值得注意:
.env文件存敏感信息——API Key、数据库密码放这里,别硬编码到代码里requirements.txt是必须的——别人拿到你的项目,pip install -r requirements.txt一键装好__init__.py让文件夹变成Python包——这样你才能from src.agent import xxx
2.2 依赖地狱,我也踩过
2.2.1 pip:最基本的包管理
pip 是Python自带的包管理工具。用它的场景就三个:
bash
# 装包
pip install langchain
# 卸载
pip uninstall langchain
# 看装了啥
pip list装包的时候建议加版本号:
bash
# 不推荐
pip install langchain
# 推荐
pip install langchain==0.3.30为什么不推荐不加版本号?因为你的代码是基于某个特定版本写的。半年后你换台电脑,pip install langchain 可能装到 0.5.0——你的代码就全崩了。
锁定整个环境的版本:
bash
# 导出当前环境的所有包和版本
pip freeze > requirements.txt
# 别人拿到 requirements.txt 后
pip install -r requirements.txt这就是 requirements.txt 的作用——不是"建议装这些包",而是"必须装这些版本才能跑"。
2.2.2 conda:更重的方案
如果你做数据分析或者机器学习,可能会遇到 conda。它和 pip 的区别:
| pip | conda | |
|---|---|---|
| 管什么 | Python包 | Python包 + 非Python依赖(如C库) |
| 来源 | PyPI | conda-forge / Anaconda |
| 虚拟环境 | venv | 内置环境管理 |
| 体量 | 轻 | 重(几百MB起步) |
对于AI Agent开发,pip + venv就够了。只有当你需要装一些有复杂C依赖的库(比如某些科学计算库)时,conda才更省心。
2.2.3 依赖地狱与如何避免
做AI开发,你迟早会遇到下面这个场景:
ERROR: langchain 0.3.30 requires pydantic>=2.0, but you have pydantic 1.10.0这就是"依赖地狱"——包A要求某个库的版本≥X,包B要求同一个库的版本≤Y,X > Y,无解。
几个减少麻烦的习惯:
- 先建虚拟环境再装包——全局装多了肯定打架
- 用
requirements.txt锁定版本——保证环境可复现 - 一次装一个包——别
pip install a b c d e一行搞定,出错了你不知道是哪个引起的 - 如果冲突了,删掉环境重建——别花两小时调试依赖冲突,重建只要两分钟
2.3 工具选对了,写代码是享受
工具没有"最好",只有"最适合你的场景"。
2.3.1 VSCode(推荐)
适合:写项目代码、日常开发
优点:
- 免费、轻量、启动快
- Copilot插件——AI帮你写代码(本书讲的就是怎么造这种AI)
- 终端内置——不用来回切换窗口
- 插件生态丰富:Python、Jupyter、GitLens……
装好VSCode后必装的插件:
- Python(微软官方):代码提示、调试、测试
- Pylance:更快的语法分析和自动补全
- Jupyter:在VSCode里跑Notebook
2.3.2 PyCharm
适合:大型项目、团队协作
优点:
- 开箱即用的全功能IDE
- 重构工具强大
- 数据库工具内置
缺点:
- 重——启动比VSCode慢
- 专业版收费(社区版够用,但缺一些功能)
如果你来自Java/Go背景,PyCharm的操作逻辑会更亲切。
2.3.3 Jupyter Notebook / JupyterLab
适合:数据探索、实验性代码、教学演示
优点:
- 代码分"单元格"运行,改一个单元格不用重新跑全部
- 输出(图表、表格)直接显示在代码下面
- 适合"边写边看结果"
缺点:
.ipynb文件不利于版本管理(git diff 很难看)- 不适合写完整项目
本书的使用建议:前几章你可以用Jupyter边学边试,但到了第四部分做项目时,必须切回 .py 文件——真实的Agent系统不是跑在Notebook里的。
2.4 这些库,后面会一个个认识
装完环境,先看一眼你接下来会频繁打交道的几个库。不用现在就装,心里有个地图就行。
2.4.1 LangChain 与 LangGraph
LangChain 是你组装AI应用的"积木箱"——Prompt模板、模型调用、输出解析、记忆管理……每个功能是一块积木,你用 | 管道符把它们串起来。
LangGraph 是LangChain的"升级版"——当你的应用不再是"一条直线",而是"有分支、有循环、有状态"的时候,用它。它用状态机的方式来组织Agent的行为。
简单场景 → LangChain(一条链串到底)
复杂场景 → LangGraph(分支、循环、条件跳转)本书第11章会详细讲这两个框架的核心原理。
2.4.2 向量数据库
为什么AI Agent需要数据库?因为LLM的"知识"是训练时固定的,它不知道你公司的内部文档、不知道今天的新闻。
RAG(检索增强生成) 的思路是:把文档转成向量存起来 → 用户提问时检索相关内容 → 把内容塞给LLM → LLM基于这些"参考资料"回答。
向量数据库就是存这些向量的地方:
| 库 | 特点 |
|---|---|
| ChromaDB | 轻量、Python原生、适合原型和小项目 |
| FAISS | Meta开源、速度快、适合大规模检索 |
| Milvus | 企业级、分布式、适合生产环境 |
本书用ChromaDB——轻、快、和LangChain集成好。
2.4.3 其他你会遇到的库
不要求你记住这些。 后面每用一个库,我都会讲它是干什么的、为什么用它。这只是一个"地图预览"——让你知道接下来的路上会遇到什么。
2.5 不想花钱先学?Mock模式了解一下
2.5.1 一个真实的痛点
学AI开发最大的门槛不是技术,是钱。
调用GPT-4的API要花钱。一次对话几毛钱,听起来不多,但你学一个项目跑几十次、几百次——积少成多,一个月几百块就没了。
更麻烦的是,有些读者在国内,调OpenAI的API还得折腾VPN。还没开始学呢,先被网络问题卡住。
我当年学AI Agent的时候就被这个问题困扰了很久。 所以这本书做了一个"Mock模式"。
2.5.2 Mock模式是什么
简单说:假装调用AI,用预设的模拟数据代替真实的API返回。
一个环境变量就能切换:
bash
# Mock模式——零成本,离线也能跑
export USE_MOCK=true
python main.py
# 真实模式——连真实AI
export USE_MOCK=false
export API_KEY=你的key
python main.py2.5.3 Mock模式不是"假的"
有人可能会觉得:"Mock模式不是骗自己吗?返回的都是假的,学个啥?"
不对。Mock模式让你学的是"整个系统的骨架和逻辑",而不是"某一次API的返回内容"。
举个具体的例子——你在做智能客服项目的时候:
- 逻辑部分:用户提问 → 意图识别 → 查知识库 → 调用工具 → 生成回答。这一整条链路,Mock模式全都能跑。
- AI部分:只是最后"生成回答"这步用了模拟数据。
你做的是学会怎么搭这套系统,而不是"看AI说了一句什么话"。那套业务逻辑,Mock和真实模式跑出来的是一样的。
学习路径我建议这样:
- 先用Mock模式把整个项目跑通(理解骨架)
- 然后再接入真实API(理解AI的"灵魂")
- 两个都理解之后,你自己就能设计Agent系统了
2.5.4 什么情况下不需要Mock模式
如果你的API是免费的(比如某些国产模型的免费额度),或者公司报销API费用,那直接上真实模式也行。
但即使如此,Mock模式还有一个好处——离线跑。你在高铁上、飞机上、咖啡厅没网的时候,照样能写代码、跑逻辑。
2.6 本章小结
这一章我们没写一行Agent代码,但把最重要的准备工作做了:
- Python安装与虚拟环境:用独立Python版本 + venv给每个项目一个独立房间
- 包管理:pip装包要带版本号,
requirements.txt保平安 - 开发工具:VSCode写项目,Jupyter做实验,各司其职
- AI开发库地图:LangChain搭积木、LangGraph管状态、ChromaDB存向量——先认识,后面会详讲
- Mock模式:零成本学完所有项目,骨架和逻辑才是你要学的
✅ 知识点检查
学完这一章,试试回答这几个问题:
- [ ] 为什么要给每个项目建独立的虚拟环境?
- [ ]
pip install的时候为什么要加版本号? - [ ] Mock模式帮你解决了什么问题?
- [ ] 学AI Agent,为什么建议先用Jupyter做实验,再切回
.py写项目?
📚 延伸阅读
- Python官方虚拟环境文档:https://docs.python.org/3/library/venv.html
- VSCode Python插件:在VSCode扩展商店搜索"Python"
- 本书配套源码:关注公众号「图解AI系列」免费领取
🎯 下一章预告
第3章,我们快速回顾Python核心语法——
"写Agent之前,这些Python够用了。"

