目 录
第1章 欢迎来到智能体的世界 1
1.1 智能体的定义 1
1.2 理解智能体的组件系统 4
1.3 审视智能体时代的崛起:为何需要智能体 8
1.4 剖析AI交互界面 10
1.5 纵览智能体发展图景 11
1.6 本章小结 11
第2章 掌控大语言模型的强大力量 13
2.1 掌握OpenAI API 15
2.1.1 连接到聊天补全类模型 15
2.1.2 理解请求和响应 16
2.2 使用LM Studio探索开源LLM 18
2.2.1 安装和运行LM Studio 19
2.2.2 使用LM Studio在本地部署LLM服务 21
2.3 通过提示工程与LLM交互 23
2.3.1 创建详细查询 26
2.3.2 采用特定视角 27
2.3.3 使用分隔符 28
2.3.4 指定步骤 29
2.3.5 提供示例 30
2.3.6 指定输出长度 31
2.4 为特定需求选择最佳LLM 32
2.5 练习 34
2.6 本章小结 35
第3章 掌握GPT助手 36
3.1 通过ChatGPT探索GPT助手 36
3.2 构建具备数据科学能力的GPT 40
3.3 自定义GPT并添加自定义操作 45
3.3.1 创建一个GPT来辅助构建GPT 45
3.3.2 将自定义操作连接到助手 49
3.4 通过文件上传扩展助手的知识库 52
3.4.1 构建Calculus Made Easy GPT 52
3.4.2 通过文件上传实现知识搜索及更多功能 55
3.5 发布GPT 57
3.5.1 高消耗的GPT助手 57
3.5.2 理解GPT的经济逻辑 58
3.5.3 发布GPT供公众使用 59
3.6 练习 60
3.7 本章小结 61
第4章 探索多智能体系统 63
4.1 通过AutoGen Studio介绍多智能体系统 64
4.1.1 安装和使用AutoGen Studio 65
4.1.2 在AutoGen Studio中添加技能 67
4.2 探索AutoGen 71
4.2.1 安装和使用AutoGen 71
4.2.2 使用评论员智能体增强代码输出 73
4.2.3 理解AutoGen缓存 75
4.3 智能体和AutoGen的群组聊天 76
4.4 使用CrewAI构建智能体团队 78
4.4.1 创建CrewAI智能体的笑话团队 79
4.4.2 使用AgentOps观察智能体工作 82
4.5 使用CrewAI重新审视编码智能体 84
4.6 练习 90
4.7 本章小结 91
第5章 赋能智能体行动力 92
5.1 定义智能体行动 92
5.2 执行OpenAI函数 94
5.2.1 向LLM API调用添加函数 94
5.2.2 执行函数调用 97
5.3 语义内核介绍 100
5.3.1 开始使用SK语义函数 101
5.3.2 语义函数和上下文变量 103
5.4 语义函数和原生函数的协同作用 105
5.4.1 创建和注册语义技能/插件 105
5.4.2 应用原生函数 109
5.4.3 在语义函数中嵌入原生函数 111
5.5 语义内核作为交互式服务智能体 112
5.5.1 构建语义GPT接口 113
5.5.2 测试语义服务 115
5.5.3 基于语义服务层的交互式聊天 117
5.6 编写语义服务时的语义思考 120
5.7 练习 122
5.8 本章小结 123
第6章 构建自主智能体 124
6.1 行为树简介 124
6.1.1 理解行为树的执行逻辑 126
6.1.2 行为树的选用考量 127
6.1.3 使用Python和py_trees运行行为树 129
6.2 探索GPT Assistants Playground 130
6.2.1 安装和运行Playground 130
6.2.2 使用和构建自定义动作 132
6.2.3 安装助手数据库 134
6.2.4 让助手在本地运行代码 134
6.2.5 通过日志调查助手过程 136
6.3 智能体行为树简介 137
6.3.1 用助手管理助手 137
6.3.2 构建编码挑战ABT 138
6.3.3 对话式AI系统与其他方法 142
6.3.4 将YouTube视频发布到X平台 143
6.3.5 所需的X平台配置 144
6.4 构建对话式自主多智能体 146
6.5 用反向链构建ABT 148
6.6 练习 149
6.7 本章小结 151
第7章 搭建和使用智能体平台 152
7.1 Nexus简介:不仅仅是一个智能体平台 152
7.1.1 运行Nexus 153
7.1.2 开发Nexus 154
7.2 Streamlit聊天应用开发简介 156
7.2.1 构建Streamlit聊天应用 157
7.2.2 创建流式聊天应用 159
7.3 为智能体开发配置文件和角色 161
7.4 为智能体提供动力并理解智能体引擎 163
7.5 为智能体配置动作和工具 165
7.6 练习 169
7.7 本章小结 170
第8章 理解智能体记忆和知识 171
8.1 理解AI应用中的检索 171
8.2 检索增强生成基础知识 172
8.3 深入探讨语义搜索和文档索引 174
8.3.1 应用向量相似度检索 174
8.3.2 向量数据库与相似度检索 177
8.3.3 揭秘文档嵌入 179
8.3.4 从Chroma中查询文档嵌入 180
8.4 使用LangChain构建RAG 182
8.4.1 使用LangChain拆分和加载文档 182
8.4.2 使用LangChain按token拆分文档 184
8.5 将RAG应用于构建智能体知识体系 185
8.6 在智能体系统中实现记忆 189
8.6.1 在Nexus中使用记忆库 190
8.6.2 语义记忆及其在语义记忆、情景记忆和程序记忆中的应用 192
8.7 理解记忆和知识压缩 194
8.8 练习 196
8.9 本章小结 197
第9章 精通智能体提示词与Prompt Flow 199
9.1 为什么需要系统化的提示工程 199
9.2 理解智能体配置文件和个人角色 203
9.3 设置你的第一个Prompt Flow 204
9.3.1 入门准备 204
9.3.2 使用Jinja2模板创建配置 207
9.3.3 部署Prompt Flow API 208
9.4 评估配置:评估标准与事实校准 210
9.5 理解评估标准与事实校准 213
9.6 使用LLM配置进行事实校准 215
9.7 对比配置:获得最优配置 216
9.7.1 解析LLM评估输出结果 216
9.7.2 在Prompt Flow中运行批量处理 219
9.7.3 创建用于事实校准的评估流程 222
9.8 练习 225
9.9 本章小结 226
第10章 智能体推理与评估 228
10.1 理解直接解决方案提示词 229
10.1.1 问答式提示词 229
10.1.2 实现少样本提示词 232
10.1.3 使用零样本提示词提取通用特征 234
10.2 提示工程中的推理 236
10.2.1 思维链提示词 237
10.2.2 零样本思维链提示词 241
10.2.3 基于提示词链的分步推理 242
10.3 运用评估实现稳定输出的解决方案 245
10.3.1 评估自洽性提示词 246
10.3.2 评估思维树提示词 250
10.4 练习 254
10.5 本章小结 255
第11章 智能体规划与反馈 256
11.1 规划:所有智能体/助手的基本工具 256
11.2 理解顺序规划过程 261
11.3 构建顺序规划器 262
11.4 回顾分步规划器:OpenAI Strawberry 268
11.5 将规划、推理、评估和反馈应用于智能体/助手系统 271
11.5.1 智能体/助手规划的应用 271
11.5.2 智能体/助手推理的应用 273
11.5.3 评估在智能体系统中的应用 274
11.5.4 反馈在智能体/助手应用中的应用 276
11.6 练习 277
11.7 本章小结 279
附录A 访问OpenAI大语言模型 280
A.1 注册OpenAI账户并获取密钥 280
A.2 Azure OpenAI Studio、密钥和模型部署 282
附录B Python开发环境 285
B.1 下载源代码 285
B.2 安装Python 286
B.3 安装VS Code 286
B.4 安装VS Code Python扩展 286
B.5 使用VS Code创建新的Python环境 287
B.6 使用VS Code开发容器(基于Docker) 288
