從零開發AI Agent:基於大模型的智能體設計與實踐
相關主題
商品描述
《從零開發AI Agent:基於大模型的智能體設計與實踐》圍繞從零開發AI Agent這一主線展開。《從零開發AI Agent:基於大模型的智能體設計與實踐》共分為12章,從大模型應用形態講起,逐步介紹Agent的概念、組成、類型與技術棧。在環境搭建部分,讀者將完成Python開發環境、API Key、依賴管理和第一個Agent程序的編寫;隨後學習單智能體結構、Prompt設計、結構化輸出、工具調用、RAG知識庫、短期與長期記憶、工作流設計、多智能體協作以及自主智能體的基本實現方法。書中還介紹如何使用FastAPI封裝Agent服務,並通過Docker進行單機部署。最後通過個人知識庫Agent和多智能體自主調研系統兩個綜合項目,幫助讀者將知識庫構建、任務拆解、資料收集、分析寫作與結果生成等整合為可運行的應用系統。 《從零開發AI Agent:基於大模型的智能體設計與實踐》概念清晰,通俗易懂,代碼可運行,案例可復用,適合智能體開發初學者、AI應用工程師、產品技術人員及希望從零構建Agent項目的讀者閱讀。
作者簡介
蘇哲,博士,男,1990年生人,畢業於哈爾濱工業大學,現就職於某科技集團公司。主要研究方向為數學建模、數據分析、AI大模型與機器學習等工程應用問題。在國內外期刊發表學術論文十余篇,授權專利多項。
目錄大綱
目 錄
第 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



