图书目录

目    录

第 1 章 AI Agent概述 1

1.1  从大模型到AI Agent 1

1.1.1  大模型应用的基本形态 1

1.1.2  AI Agent的基本定义 3

1.1.3  AI Agent能解决哪些问题 4

1.2  AI Agent的基本组成 5

1.2.1  大模型:理解、生成与推理核心 5

1.2.2  工具:让Agent具备行动能力 6

1.2.3  记忆:保存上下文和历史信息 7

1.2.4  规划:把目标拆解成步骤 8

1.3  AI Agent的常见类型 9

1.3.1  单智能体 9

1.3.2  工具增强型智能体 10

1.3.3  知识库增强型智能体 10

1.3.4  多智能体与自主智能体 10

1.4  本书技术栈与运行环境说明 11

1.4.1  AI Agent开发技术栈速览 11

1.4.2  单机运行环境说明 21

1.5  本章小结 22

第 2 章 开发环境搭建与第一个Agent程序 23

2.1  开发环境准备 23

2.1.1  操作系统、终端与编辑器选择 23

2.1.2  Python版本与虚拟环境配置 25

2.1.3  pip、uv与依赖安装 26

2.1.4  API Key与环境变量配置 28

2.2  Python项目基础 30

2.2.1  项目目录结构 30

2.2.2  模块导入与配置文件 32

2.2.3  Pydantic数据模型、日志输出与异常处理 35

2.3  编写大模型调用程序 37

2.3.1  安装SDK并完成模型调用 37

2.3.2  编写命令行聊天程序 39

2.3.3  实现流式输出 43

2.4  编写简单的Agent 46

2.4.1  Agent输入、处理与输出流程 46

2.4.2  为Agent添加系统提示词 48

2.4.3  保存对话历史、运行并测试最小Agent程序 51

2.5  本章小结 54

第 3 章 单智能体开发基础 55

3.1  单智能体的基本结构 55

3.1.1  输入、模型、输出三段式结构 55

3.1.2  System Prompt的作用 57

3.1.3  上下文管理与响应格式控制 59

3.2  Prompt设计基础 61

3.2.1  角色、任务与约束 61

3.2.2  示例驱动提示 63

3.2.3  分步骤提示与输出格式提示 64

3.3  结构化输出 66

3.3.1  JSON输出 66

3.3.2  Pydantic模型约束输出 68

3.4  案例:学习计划生成Agent 71

3.4.1  项目需求与功能设计 71

3.4.2  Prompt模板设计 71

3.4.3  结构化学习计划生成 78

3.4.4  命令行运行与结果测试 84

3.5  本章小结 85

第 4 章 工具调用型Agent开发 86

4.1  工具调用基础 86

4.1.1  为什么Agent需要工具 86

4.1.2  工具函数与普通函数的区别 88

4.1.3  工具名称、描述与参数 93

4.1.4  工具调用的完整流程 99

4.2  常见工具开发 100

4.2.1  计算器工具 100

4.2.2  时间日期工具 103

4.2.3  文件读取工具 107

4.2.4  简单数据库查询工具 110

4.3  工具调用控制 113

4.3.1  参数校验与异常处理 113

4.3.2  工具调用日志与工具调用次数限制 115

4.4  案例:个人助理Agent 117

4.4.1  工具注册与多工具协同调用 118

4.4.2  单机运行与测试 122

4.5  本章小结 123

第 5 章 RAG知识库Agent开发 124

5.1  RAG基础 124

5.1.1  大模型为什么需要知识库 124

5.1.2  文档解析与文本切分 125

5.1.3  Embedding与向量检索 131

5.1.4  RAG问答的基本流程 132

5.2  本地向量库使用 134

5.2.1  FAISS安装与初始化 135

5.2.2  文档向量化与相似度检索 137

5.2.3  Chunk大小设置 139

5.3  案例:PDF文档问答Agent 141

5.3.1  PDF读取与切分 141

5.3.2  建立本地知识库 143

5.3.3  实现带引用的问答Agent 146

5.4  本章小结 148

第 6 章 带记忆的Agent开发 149

6.1  Agent记忆基础 149

6.1.1  对话历史与记忆的区别 149

6.1.2  短期记忆与长期记忆 156

6.1.3  Message列表结构 159

6.1.4  历史消息裁剪与摘要式记忆 162

6.2  用户偏好记忆 167

6.2.1  用户画像字段设计与偏好信息提取 167

6.2.2  记忆写入、读取、更新与删除 169

6.3  案例:带记忆的学习助手Agent 172

6.3.1  项目需求分析与数据结构设计 172

6.3.2  保存学习历史并根据用户偏好生成建议 174

6.3.3  运行测试与效果观察 177

6.4  本章小结 179

第 7 章 Agent工作流设计 180

7.1  工作流基础与常见设计模式 180

7.1.1  顺序、条件分支与循环 180

7.1.2  工作流与Agent的关系 183

7.1.3  提示链模式、路由模式与计划执行模式 186

7.2  案例:报告生成工作流Agent 189

7.2.1  项目需求与流程设计 189

7.2.2  大纲生成节点 190

7.2.3  内容生成与检查节点 192

7.3  本章小结 194

第 8 章 多智能体协作开发 195

8.1  多智能体基础 195

8.1.1  多智能体中的角色分工 195

8.1.2  主Agent与子Agent 196

8.1.3  多智能体的通信方式 197

8.2  常见的多智能体模式 204

8.2.1  主管-执行者模式 204

8.2.2  评估器-优化器模式 207

8.2.3  讨论协作模式 209

8.2.4  Agent-as-Tool模式 212

8.3  多智能体任务编排 213

8.3.1  任务拆分 213

8.3.2  子任务分配 214

8.3.3  结果汇总 215

8.3.4  冲突处理 216

8.4  案例:多Agent协作调研助手 218

8.4.1  项目需求与角色设计 218

8.4.2  资料收集Agent 220

8.4.3  分析总结Agent 225

8.5  本章小结 229

第 9 章 自主智能体入门 230

9.1  从普通Agent到自主智能体 230

9.1.1  普通Agent的能力边界 230

9.1.2  自主智能体的目标驱动特征 231

9.2  自主任务规划Agent 233

9.2.1  项目需求与执行流程 233

9.2.2  任务计划生成 238

9.2.3  分步骤执行与状态更新 241

9.3  本章小结 243

第 10 章 Agent应用部署与调试 244

10.1  FastAPI封装Agent服务 244

10.1.1  Agent服务接口设计 244

10.1.2  请求与响应数据结构 248

10.1.3  流式输出接口与测试 249

10.2  Docker单机部署 252

10.2.1  Dockerfile编写 253

10.2.2  Docker Compose组织服务 255

10.2.3  本地部署测试 257

10.3  本章小结 259

第 11 章 综合项目一:个人知识库Agent 260

11.1  项目需求与系统设计 260

11.1.1  项目功能说明与技术栈选择 260

11.1.2  项目目录结构与运行流程 263

11.2  文档处理与知识库构建 267

11.2.1  文档上传 267

11.2.2  文本解析与切分 269

11.2.3  向量化索引保存及知识库更新 271

11.3  知识库问答Agent实现 274

11.3.1  用户问题处理 274

11.3.2  检索相关文档片段 277

11.3.3  生成带引用的回答 280

11.4  本章小结 283

第 12 章 综合项目二:多智能体自主调研系统 284

12.1  项目需求与总体设计 284

12.1.1  项目场景说明 284

12.1.2  多Agent角色划分与流程设计 285

12.2  资料收集Agent开发 289

12.2.1  调研任务解析 289

12.2.2  本地资料检索 293

12.2.3  网页搜索接口预留 297

12.3  分析写作Agent开发 299

12.3.1  资料分类整理 299

12.3.2  报告大纲生成 302

12.3.3  分章节内容生成 305

12.4  本章小结 308