图书目录

目    录

第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