AI Agent 開發實戰:MCP+A2A+LangGraph 驅動的智能體全流程開發
邢雲陽
商品描述
本書從基礎理論到工程實踐系統講解AI Agent的開發,內容涵蓋Function Calling、AI智能體設計模式、MCP、RAG、多模態、LangGraph、A2A等主流技術與工具的實戰應用,共7章。 第1~3章介紹AI Agent開發需要具備的基礎知識,包括AI應用開發快速入門、大模型私有化部署的3種常見方案,以及模型微調與蒸餾的技術原理與實踐。第4~7章涵蓋4個AI Agent開發項目:基於MCP打造求職助手;基於平臺化開發思想構建AI版“作業幫”;基於LangGraph打造智能編程助手;基於A2A協議打造多智能體AI金融項目,每章均配有代碼示例與實操步驟。 本書既適合希望向AI應用開發領域轉型的傳統軟件工程師閱讀,也適合有一定AI開發經驗並希望提升實戰能力的技術人員閱讀。
作者簡介
邢雲陽,聯通雲AI與容器技術專家、架構師,主要負責雲原生Serverless產品、傳統大數據與中間件上雲、AI Agent、RAG等產品的設計研發工作,帶領團隊自研了容器化大數據平臺、Serverless Kubernetes產品,並參與推動了本地存儲服務器的雲災備項目。在極客時間開設了“DeepSeek應用開發實戰”“AI重塑雲原生應用開發實戰”兩個專欄,分別介紹AI Agent開發實踐和如何將AI大模型應用於雲原生,備受好評。
目錄大綱
第 1章 AI應用開發快速入門 1
1.1 “應用級”程序員入局AI應用開發領域的捷徑 1
1.1.1 DeepSeek的使用 1
1.1.2 DeepSeek的能力邊界 5
1.1.3 DeepSeek開源的價值 6
1.2 零開發框架實現Function Calling 6
1.2.1 Function Calling誕生的背景 7
1.2.2 開發環境準備 7
1.2.3 Function Calling實踐演示 8
1.3 Agent常用設計模式 15
1.3.1 CoT模式 15
1.3.2 ReAct模式 16
1.3.3 Reflexion模式 18
1.3.4 ReWOO模式 19
1.4 零開發框架實現ReAct Agent 21
1.4.1 LangChain Hub與ReAct提示詞模板 22
1.4.2 Agent工具實現邏輯 25
1.4.3 Agent多輪對話核心邏輯 26
第 2章 大模型私有化部署的3種主流方案 29
2.1 基於Ollama、AI網關和LobeChat構建高可用大模型集群 29
2.1.1 Ollama簡介 29
2.1.2 GPU環境準備與Ollama安裝 30
2.1.3 實戰:使用Ollama單點部署DeepSeek R1 32
2.1.4 高可用大模型集群架構設計 36
2.1.5 AI時代給網關帶來的挑戰 37
2.1.6 實戰:利用Higress和Ollama搭建高可用集群 38
2.1.7 實戰:利用LobeChat實現可視化對話 44
2.2 非量化版DeepSeek分布式部署方案 46
2.2.1 快速理解Kubernetes 46
2.2.2 Kubernetes安裝 49
2.2.3 容器編排與服務暴露 52
2.2.4 分布式部署與推理 55
2.2.5 使用vLLM部署DeepSeek R1 57
2.2.6 分布式計算與Ray入門 60
2.2.7 基於Kubernetes、vLLM和Ray分布式部署DeepSeek R1 61
2.3 llama.cpp:在無GPU的服務器上部署DeepSeek 70
2.3.1 llama.cpp與量化技術 71
2.3.2 基於CPU服務器和llama.cpp部署DeepSeek R1 72
2.3.3 HTTP服務發布 75
第3章 模型微調與蒸餾 78
3.1 模型微調 78
3.1.1 微調的基本概念 78
3.1.2 一站式微調平臺LLaMA-Factory 79
3.1.3 將DeepSeek-R1-Distill-Qwen-7B微調為新聞分類器 88
3.2 模型蒸餾 93
3.2.1 蒸餾的流程 93
3.2.2 生成教學數據 95
3.2.3 蒸餾出一個新聞分類型Qwen2.5-7B模型 97
第4章 基於MCP打造AI求職助手 99
4.1 AI求職助手的設計 99
4.1.1 傳統求職模式的基本流程 99
4.1.2 AI求職助手架構設計與技術選型 100
4.2 MCP原理與實踐 101
4.2.1 MCP原理 101
4.2.2 使用MCP實現Text2SQL數據庫查詢 103
4.3 實現員工績效系統MCP Server 110
4.3.1 UV與MCP項目初始化 111
4.3.2 員工績效系統MCP Server代碼實現 113
4.4 實現MCP Client 122
4.4.1 MCP通信方式 122
4.4.2 使用stdio通信方式 123
4.4.3 使用HTTP+SSE通信方式 126
4.4.4 使用Streamable HTTP通信方式 130
4.5 使用無頭瀏覽器抓取崗位數據 132
4.5.1 崗位數據獲取方法 133
4.5.2 無頭瀏覽器實踐 133
4.5.3 使用代理IP 142
4.6 人崗智能匹配 144
4.6.1 MCP Server項目管理 144
4.6.2 MCP Server的代碼實現 146
4.6.3 MCP Host與MCP Client的代碼實現 151
4.7 使用RAG技術對復雜簡歷進行濃縮 157
4.7.1 簡歷濃縮與RAG技術 157
4.7.2 使用RAG技術濃縮簡歷 159
4.8 借助AI根據崗位要求完善簡歷 165
4.8.1 根據崗位詳情完善簡歷 165
4.8.2 使用模板輔助AI完善簡歷 168
第5章 基於平臺化開發思想實現AI版“作業幫” 170
5.1 AI版“作業幫”的設計 170
5.1.1 AI應用開發中的平臺化開發思想 170
5.1.2 項目流程設計 171
5.2 零代碼Agent和工作流開發 171
5.2.1 零代碼實現AI Agent 172
5.2.2 通過拖曳實現AI工作流 176
5.3 API工具開發套路 182
5.3.1 基於Dify配置自定義工具 183
5.3.2 基於FastAPI開發符合標準的工具 189
5.4 視覺識別技術:識別試卷題目並分析解答 193
5.4.1 OCR識別技術 193
5.4.2 使用豆包大模型 196
5.4.3 搭建“作業幫”工作流 202
5.5 RAG技術:借助題庫提升答題準確率 204
5.5.1 基於RAG實現題庫 204
5.5.2 將知識庫問答助手加入工作流 217
5.6 引入校驗機制提升答題準確率 223
5.6.1 QwQ模型簡介 223
5.6.2 添加校驗機制 223
5.6.3 通過飛書通知相關人員 225
第6章 基於LangGraph打造智能編程助手 230
6.1 基於LangGraph的代碼生成 230
6.1.1 LangGraph誕生的背景 231
6.1.2 項目整體設計 232
6.2 LangGraph快速上手 233
6.2.1 節點與邊 233
6.2.2 普通邊與多節點 235
6.2.3 狀態在節點間的流轉 236
6.3 定制編寫Web後端項目 239
6.3.1 生成簡單的Golang Web後端代碼 239
6.3.2 生成實體類代碼 243
6.4 根據數據字典文檔自動生成實體類 247
6.4.1 實現LangGraph Agent 247
6.4.2 根據數據字典生成實體類 250
6.5 復用代碼庫歷史代碼 254
6.5.1 歷史代碼復用思路 254
6.5.2 基於RAG實現歷史代碼復用 254
6.6 使用GraphRAG分析代碼結構 259
6.6.1 從傳統RAG到GraphRAG 260
6.6.2 GraphRAG原理 260
6.6.3 GraphRAG實戰 261
第7章 基於A2A打造多Agent金融項目 268
7.1 基於LangGraph與A2A的AI金融項目 268
7.1.1 AI金融項目的背景 268
7.1.2 項目簡介 268
7.2 量化分析師的金融數據抓取“神器” 269
7.2.1 AKShare與日K數據相關概念 269
7.2.2 歷史日K數據的抓取與排序 272
7.3 用自然語言查詢股票名稱與代碼 275
7.3.1 實現股票信息查詢工具 275
7.3.2 LangGraph進階 277
7.4 抓取滬深A股全部股票的日K數據 282
7.4.1 日K數據並發抓取技巧 282
7.4.2 抓取過去兩年的滬深A股日K數據 285
7.4.3 增量抓取技巧 288
7.5 計劃模式:讓Agent有計劃地分析股票數據 289
7.5.1 抓取財報數據 289
7.5.2 實現指標計算工具與財報工具 291
7.5.3 全新的Agent設計模式—計劃模式 293
7.6 簡易金融量化策略分析 297
7.6.1 量化策略之量能策略 297
7.6.2 量化分析Agent實戰 298
7.7 A2A協議 303
7.7.1 A2A與MCP 303
7.7.2 A2A協議詳解 305
7.7.3 實現基於A2A的多Agent金融助手 307