戰(zhàn):構(gòu)建多智能體RAG系統(tǒng)的完整指南)
這類(lèi)教程最值得先看的不是它覆蓋了多少個(gè)技術(shù)名詞而是學(xué)完之后你能不能真的動(dòng)手搭出一個(gè)能跑起來(lái)的、有實(shí)際用處的智能體應(yīng)用。很多人學(xué)了一堆概念但一到自己動(dòng)手就卡在環(huán)境、依賴、數(shù)據(jù)流和任務(wù)編排上。這套教程的核心價(jià)值在于它把 LangChain、LangGraph、Agent、RAG、MCP 這幾個(gè)當(dāng)下最熱的開(kāi)發(fā)框架和概念串成了一個(gè)從零到一、再到生產(chǎn)級(jí)優(yōu)化的完整實(shí)戰(zhàn)路徑。它適合兩類(lèi)人一是想從傳統(tǒng)后端或數(shù)據(jù)開(kāi)發(fā)轉(zhuǎn)向 AI 應(yīng)用開(kāi)發(fā)的工程師二是已經(jīng)了解過(guò)一些 AI 模型 API 調(diào)用但不知道如何構(gòu)建復(fù)雜、穩(wěn)定、可維護(hù)的智能體系統(tǒng)的開(kāi)發(fā)者。最關(guān)鍵的一點(diǎn)是它不只是教你怎么調(diào)用 API而是教你如何用 LangGraph 來(lái)設(shè)計(jì)和控制多個(gè)智能體之間的協(xié)作流程如何用 RAG 給智能體裝上“知識(shí)庫(kù)”避免胡說(shuō)八道以及如何通過(guò) MCP 這種新興協(xié)議來(lái)擴(kuò)展工具能力。下面我就以一個(gè)過(guò)來(lái)人的視角拆解一下如果要跟著這套教程實(shí)戰(zhàn)你需要關(guān)注的核心環(huán)節(jié)、避坑點(diǎn)以及如何驗(yàn)證自己的學(xué)習(xí)成果。1. 先理清核心概念LangChain、LangGraph、Agent、RAG、MCP 各自管什么在動(dòng)手之前如果概念是模糊的代碼就會(huì)寫(xiě)得混亂。這幾個(gè)詞經(jīng)常被混在一起講但它們職責(zé)不同。LangChain更像是一個(gè)“粘合劑”和“工具箱”。它的主要作用是標(biāo)準(zhǔn)化流程把調(diào)用大模型、處理輸入輸出、連接外部工具如搜索、數(shù)據(jù)庫(kù)的步驟抽象成一個(gè)個(gè)可復(fù)用的“鏈”Chain。提供常用組件比如各種文本分割器、向量化接口Embedding、文檔加載器。你用它來(lái)快速搭建一個(gè)基于提示詞Prompt的問(wèn)答流程會(huì)很方便。管理上下文Context幫助處理長(zhǎng)文本解決模型有限的輸入長(zhǎng)度問(wèn)題。但 LangChain 在處理需要循環(huán)、分支、多角色協(xié)作的復(fù)雜 Agent 邏輯時(shí)會(huì)顯得有點(diǎn)力不從心代碼容易變成“面條代碼”。LangGraph就是來(lái)解決這個(gè)問(wèn)題的。你可以把它理解為在 LangChain 之上的一套“流程圖”或“工作流引擎”。核心是“圖”把智能體的每個(gè)步驟節(jié)點(diǎn)和步驟之間的流轉(zhuǎn)條件邊定義清楚。比如“先讓 Agent A 分析問(wèn)題如果問(wèn)題是關(guān)于財(cái)務(wù)的就轉(zhuǎn)給 Agent B 處理否則轉(zhuǎn)給 Agent C”。管理狀態(tài)State在整個(gè)流程中有一個(gè)全局的狀態(tài)對(duì)象在節(jié)點(diǎn)間傳遞和修改這比用一堆全局變量要清晰和可靠得多。支持循環(huán)和中斷可以實(shí)現(xiàn)“思考-行動(dòng)-觀察”的循環(huán)直到任務(wù)完成或滿足某個(gè)條件退出。這就是實(shí)現(xiàn)復(fù)雜 Agent 的關(guān)鍵。所以LangChain 和 LangGraph 不是二選一而是組合使用。LangChain 提供基礎(chǔ)的模型調(diào)用、工具封裝能力LangGraph 則用這些基礎(chǔ)能力作為節(jié)點(diǎn)來(lái)編排高級(jí)的、有狀態(tài)的協(xié)作流程。Agent智能體在這里是一個(gè)抽象概念指的是能理解目標(biāo)、調(diào)用工具思考/行動(dòng)、并從結(jié)果中學(xué)習(xí)觀察來(lái)完成任務(wù)的程序單元。一個(gè) LangGraph 流程里可以包含多個(gè)不同職責(zé)的 Agent。RAG檢索增強(qiáng)生成是給智能體“喂資料”的關(guān)鍵技術(shù)。它解決的核心問(wèn)題是大模型的知識(shí)可能過(guò)時(shí)或不包含你的私有數(shù)據(jù)直接問(wèn)它會(huì)胡編亂造幻覺(jué)。流程把你的文檔PDF、Word、網(wǎng)頁(yè)等切片、向量化后存入向量數(shù)據(jù)庫(kù)如 Milvus、Chroma。當(dāng)用戶提問(wèn)時(shí)先從向量庫(kù)中檢索出最相關(guān)的文檔片段和問(wèn)題一起交給大模型讓它基于這些“證據(jù)”來(lái)生成答案。在教程里的角色教程里提到的“基于LangGraph多Agent對(duì)公信貸盡職調(diào)查報(bào)告生成系統(tǒng)”RAG 很可能就是用來(lái)讓 Agent 能夠查詢內(nèi)部信貸政策、企業(yè)財(cái)報(bào)等非公開(kāi)文檔的。MCPModel Context Protocol是一個(gè)比較新的協(xié)議可以把它看作是“工具擴(kuò)展的標(biāo)準(zhǔn)化接口”。傳統(tǒng)問(wèn)題給 Agent 開(kāi)發(fā)新工具比如連接一個(gè)內(nèi)部業(yè)務(wù)系統(tǒng)需要寫(xiě)很多適配代碼而且不同項(xiàng)目之間工具難以復(fù)用。MCP 的思路定義一套標(biāo)準(zhǔn)協(xié)議任何符合 MCP 的服務(wù)Server都可以像插件一樣被支持 MCP 的客戶端比如某些 Agent 框架發(fā)現(xiàn)和調(diào)用。教程里提到的 Figma MCP、藍(lán)湖 MCP就是指為 Figma、藍(lán)湖這類(lèi)設(shè)計(jì)協(xié)作平臺(tái)提供了標(biāo)準(zhǔn)化的工具接口你的智能體可以直接通過(guò)協(xié)議調(diào)用它們的功能而不需要為每個(gè)平臺(tái)寫(xiě)專(zhuān)屬的爬蟲(chóng)或 API 封裝代碼。理清了這些你就知道教程的每一部分在解決哪個(gè)層面的問(wèn)題學(xué)習(xí)時(shí)目標(biāo)會(huì)更明確。2. 環(huán)境準(zhǔn)備與依賴管理避開(kāi)第一個(gè)大坑很多人卡在第一步環(huán)境跑不起來(lái)。教程如果是2026年的很可能基于較新的 Python 和庫(kù)版本。你需要有策略地搭建環(huán)境。2.1 核心環(huán)境清單Python 版本建議直接使用 Python 3.10 或 3.11。3.12 可能存在一些第三方庫(kù)的兼容性問(wèn)題。使用pyenv或conda管理多版本 Python 是很好的習(xí)慣。包管理工具強(qiáng)烈建議使用poetry或uv。它們能更好地處理依賴沖突和鎖定版本。如果教程提供了requirements.txt或pyproject.toml就用它初始化環(huán)境。關(guān)鍵依賴除了langchain,langgraph這些核心庫(kù)你一定會(huì)用到一個(gè)大模型 SDK如openai(用于 GPT)、anthropic(用于 Claude) 或國(guó)內(nèi)模型的 SDK。注意教程中提到的langchain支持deepseek的第幾個(gè)版本這需要你查看 LangChain 官方文檔或 DeepSeek 的集成說(shuō)明確認(rèn)兼容的 SDK 版本。向量數(shù)據(jù)庫(kù)客戶端如pymilvus(用于 Milvus)、chromadb。文檔加載器langchain-community中包含了大量加載器如PyPDFLoader,UnstructuredFileLoader。嵌入模型可以是 OpenAI 的text-embedding-3-small也可以是開(kāi)源的如BAAI/bge-small-zh-v1.5后者需要sentence-transformers庫(kù)。2.2 依賴安裝的實(shí)戰(zhàn)建議不要一次性安裝所有依賴。按模塊來(lái)基礎(chǔ)骨架先只安裝langchain-core,langchain,langgraph。跑一個(gè)最簡(jiǎn)單的“Hello World”鏈確認(rèn)基礎(chǔ)環(huán)境 OK。模型接入再安裝 OpenAI 等模型 SDK并設(shè)置好 API Key 環(huán)境變量。寫(xiě)一個(gè)簡(jiǎn)單的提示詞鏈測(cè)試模型調(diào)用是否成功。RAG 模塊接著安裝文檔加載器、嵌入模型庫(kù)和向量數(shù)據(jù)庫(kù)客戶端。嘗試加載一個(gè)本地 PDF切片生成向量存入 Milvus 或 Chroma。高級(jí)工具最后再根據(jù)教程進(jìn)度引入 MCP 客戶端或其他特定工具庫(kù)。這樣做的好處是一旦報(bào)錯(cuò)你能快速定位是哪個(gè)模塊的依賴出了問(wèn)題。常見(jiàn)的坑點(diǎn)包括Protobuf 版本沖突某些向量數(shù)據(jù)庫(kù)客戶端和 TensorFlow 等庫(kù)可能對(duì) protobuf 版本有要求。如果遇到ImportError相關(guān) protobuf嘗試固定一個(gè)兼容版本如protobuf3.20.*。CUDA 與 torch 版本不匹配如果你使用本地部署的嵌入模型或 LLM需要安裝 PyTorch。務(wù)必去 PyTorch 官網(wǎng)根據(jù)你的 CUDA 版本生成安裝命令不要直接pip install torch。網(wǎng)絡(luò)問(wèn)題下載某些大型模型文件如 sentence-transformers或連接海外 API 可能超時(shí)。對(duì)于模型文件可以考慮配置鏡像源或手動(dòng)下載。對(duì)于 API確保網(wǎng)絡(luò)環(huán)境允許。3. 從單智能體到多智能體用 LangGraph 構(gòu)建工作流理解了概念搭好了環(huán)境接下來(lái)就是核心實(shí)戰(zhàn)如何用 LangGraph 把東西串起來(lái)。3.1 單智能體任務(wù)拆解不要一開(kāi)始就想復(fù)雜的多 Agent 系統(tǒng)。先從 LangChain 構(gòu)建一個(gè)單 Agent 開(kāi)始定義工具用tool裝飾器定義一個(gè)簡(jiǎn)單的函數(shù)比如計(jì)算器、網(wǎng)絡(luò)搜索需要 API Key、查詢數(shù)據(jù)庫(kù)。創(chuàng)建 Agent使用create_react_agent或類(lèi)似的函數(shù)將大模型和你定義的工具綁定。這個(gè) Agent 的核心邏輯是“思考-行動(dòng)-觀察”循環(huán)。運(yùn)行測(cè)試用一個(gè)簡(jiǎn)單問(wèn)題測(cè)試?yán)纭氨本┈F(xiàn)在的天氣怎么樣”觀察 Agent 是否會(huì)正確調(diào)用搜索工具。這個(gè)階段你可能會(huì)遇到工具描述不清模型無(wú)法理解何時(shí)該調(diào)用你的工具。需要仔細(xì)編寫(xiě)工具的name、description和參數(shù)args_schema。無(wú)限循環(huán)Agent 可能陷入“思考-調(diào)用無(wú)關(guān)工具-再思考”的死循環(huán)。需要設(shè)置max_iterations參數(shù)來(lái)限制循環(huán)次數(shù)。解析錯(cuò)誤模型返回的內(nèi)容不符合工具調(diào)用的格式JSON。需要檢查提示詞模板并做好錯(cuò)誤處理try...catch。3.2 引入 LangGraph 實(shí)現(xiàn)狀態(tài)管理當(dāng)單 Agent 能工作后引入 LangGraph 來(lái)讓它更健壯、更可控。定義狀態(tài)State這是一個(gè) Pydantic 模型定義了在整個(gè)工作流中需要傳遞的所有數(shù)據(jù)。比如question,analysis,tools_called,final_answer。定義節(jié)點(diǎn)Nodes每個(gè)節(jié)點(diǎn)是一個(gè)函數(shù)。比如agent_node: 運(yùn)行你的單智能體更新?tīng)顟B(tài)中的analysis。tool_node: 根據(jù) Agent 的決定執(zhí)行具體的工具調(diào)用更新tools_called。judge_node: 判斷工具返回的結(jié)果是否足夠回答question決定下一步是繼續(xù)循環(huán)還是結(jié)束。定義邊Edges和條件流轉(zhuǎn)使用conditional_edge。例如從agent_node出來(lái)后如果 Agent 決定調(diào)用工具就流向tool_node如果決定直接回答就流向end。編譯并運(yùn)行圖graph StateGraph(...).compile()然后graph.invoke({question: 你的問(wèn)題})。關(guān)鍵點(diǎn)LangGraph 的“圖”是靜態(tài)定義的對(duì)應(yīng)熱詞langgraph 靜態(tài)循環(huán)但執(zhí)行路徑是動(dòng)態(tài)的。這比用if-else硬編碼邏輯要清晰和強(qiáng)大得多。3.3 擴(kuò)展到多智能體協(xié)作這是教程的進(jìn)階部分。多 Agent 系統(tǒng)的設(shè)計(jì)核心是分工和路由。分工設(shè)計(jì)不同專(zhuān)長(zhǎng)的 Agent。例如一個(gè)“分析員”Agent 負(fù)責(zé)理解用戶意圖和拆解任務(wù)一個(gè)“研究員”Agent 專(zhuān)精調(diào)用 RAG 知識(shí)庫(kù)一個(gè)“執(zhí)行員”Agent 負(fù)責(zé)調(diào)用具體的 API 工具一個(gè)“審核員”Agent 負(fù)責(zé)檢查最終輸出的質(zhì)量和合規(guī)性。路由在 LangGraph 中可以設(shè)計(jì)一個(gè)“路由節(jié)點(diǎn)”。這個(gè)節(jié)點(diǎn)根據(jù)當(dāng)前狀態(tài)比如問(wèn)題的領(lǐng)域、復(fù)雜度決定下一個(gè)應(yīng)該激活哪個(gè) Agent。這可以通過(guò)一個(gè)簡(jiǎn)單的分類(lèi)器甚至是用大模型本身來(lái)實(shí)現(xiàn)。教程案例“對(duì)公信貸盡職調(diào)查報(bào)告生成系統(tǒng)”就是一個(gè)典型的多 Agent 應(yīng)用查詢解析 Agent理解用戶要生成關(guān)于哪家公司、什么類(lèi)型的報(bào)告。數(shù)據(jù)收集 Agent調(diào)用 RAG 從內(nèi)部知識(shí)庫(kù)查信貸政策也可能通過(guò) MCP 工具調(diào)用外部企查查 API 獲取企業(yè)公開(kāi)信息。報(bào)告生成 Agent將收集到的信息按照固定模板生成報(bào)告草稿。風(fēng)險(xiǎn)審核 Agent檢查報(bào)告草稿中的數(shù)據(jù)是否矛盾風(fēng)險(xiǎn)提示是否充分。格式整理 Agent將最終報(bào)告輸出為 Word 或 PDF 格式。整個(gè)流程由 LangGraph 編排狀態(tài)中傳遞著企業(yè)名稱(chēng)、收集到的數(shù)據(jù)、報(bào)告草稿、審核意見(jiàn)等。4. RAG 系統(tǒng)搭建讓智能體“有據(jù)可查”RAG 聽(tīng)起來(lái)簡(jiǎn)單但搭建一個(gè)效果好的 RAG 系統(tǒng)有很多細(xì)節(jié)。教程里應(yīng)該會(huì)覆蓋從文檔處理到檢索的全流程。4.1 文檔處理流水線這是影響效果的基礎(chǔ)不能馬虎。加載使用合適的DocumentLoader。對(duì)于 PDFPyPDFLoader是基礎(chǔ)選擇但對(duì)于復(fù)雜排版UnstructuredFileLoader效果更好但依賴較重。分割不要簡(jiǎn)單按固定字符數(shù)切割。優(yōu)先嘗試遞歸字符分割RecursiveCharacterTextSplitter它會(huì)嘗試按段落、句子、單詞的層級(jí)來(lái)分割盡量保證語(yǔ)義完整?;跇?biāo)記的分割對(duì)于代碼、Markdown使用LanguageSplitter或MarkdownHeaderTextSplitter。關(guān)鍵參數(shù)chunk_size(如 500-1000)、chunk_overlap(如 100-200)。重疊部分能避免答案被切碎。向量化選擇嵌入模型中文場(chǎng)景BAAI/bge系列是很好的開(kāi)源選擇。英文或雙語(yǔ)text-embedding-3-small效果穩(wěn)定且便宜。本地部署考量如果選開(kāi)源模型要考慮模型大小和推理速度。bge-small-zh-v1.5約 100MB在 CPU 上也可用適合入門(mén)。存儲(chǔ)Milvus功能強(qiáng)大適合生產(chǎn)環(huán)境但部署稍復(fù)雜。教程中“spring boot milvus langchain4j 實(shí)現(xiàn) rag 問(wèn)答”提到了 Java 生態(tài)的集成。Chroma輕量純 Python支持內(nèi)存和持久化模式非常適合開(kāi)發(fā)和原型驗(yàn)證。注意Chroma 的持久化路徑如果設(shè)置不當(dāng)重啟后數(shù)據(jù)可能丟失務(wù)必確認(rèn)persist_directory參數(shù)正確使用。4.2 檢索與生成優(yōu)化存進(jìn)去之后怎么高效準(zhǔn)確地查出來(lái)檢索器最基本的vectorstore.as_retriever()。可以調(diào)整search_type如similarity相似度搜索、mmr最大邊際相關(guān)性后者在保證相關(guān)性的同時(shí)增加多樣性和search_kwargs如k4返回前4個(gè)片段。重排序初級(jí) RAG 直接返回 top-k 片段。高級(jí) RAG 可以引入一個(gè)“重排序”模型對(duì)初步檢索出的片段進(jìn)行更精細(xì)的相關(guān)性打分重新排序只把最相關(guān)的幾個(gè)片段送給大模型。這能顯著提升答案質(zhì)量但會(huì)增加延遲。提示詞工程給大模型的提示詞至關(guān)重要。必須清晰指示“請(qǐng)嚴(yán)格根據(jù)以下上下文回答問(wèn)題如果上下文不包含答案請(qǐng)說(shuō)‘根據(jù)已知信息無(wú)法回答’?!?這能有效減少幻覺(jué)。避坑點(diǎn)數(shù)據(jù)預(yù)處理不干凈PDF 中的頁(yè)眉頁(yè)腳、無(wú)關(guān)圖片的標(biāo)注文字等如果不清理會(huì)成為噪聲影響檢索精度。分割不合理chunk_size太大可能包含多個(gè)不相關(guān)主題太小可能把完整答案切碎。需要根據(jù)你的文檔類(lèi)型做測(cè)試?!爸形姆志洹眴?wèn)題一些分割器對(duì)中文句號(hào)“?!钡淖R(shí)別不如英文句號(hào)“.”好可能導(dǎo)致句子被不合理切斷。可以自定義分割符號(hào)列表。5. MCP 集成擴(kuò)展智能體的工具能力MCP 是讓智能體能力“可插拔”的關(guān)鍵。教程如果涉及2026年的 MCP 開(kāi)發(fā)實(shí)戰(zhàn)可能會(huì)教你如何創(chuàng)建和使用 MCP Server。5.1 MCP 的基本使用對(duì)于智能體開(kāi)發(fā)者客戶端使用 MCP 相對(duì)簡(jiǎn)單確保你的 Agent 框架如某些支持 MCP 的 LangChain 版本或?qū)S每蚣苤С?MCP 客戶端。啟動(dòng)或連接一個(gè) MCP Server。例如一個(gè)提供了“查詢天氣”工具的 Server。你的 Agent 就能像調(diào)用本地函數(shù)一樣通過(guò)標(biāo)準(zhǔn)協(xié)議調(diào)用這個(gè)“查詢天氣”工具無(wú)需關(guān)心 Server 是用什么語(yǔ)言實(shí)現(xiàn)的。5.2 MCP Server 開(kāi)發(fā)初探如果你需要為自己公司的內(nèi)部系統(tǒng)暴露工具可能需要開(kāi)發(fā) MCP Server。核心步驟定義工具明確你的 Server 提供哪些工具每個(gè)工具的輸入輸出格式。實(shí)現(xiàn) Server根據(jù) MCP 協(xié)議規(guī)范實(shí)現(xiàn)一個(gè) HTTP 或 stdio 服務(wù)器監(jiān)聽(tīng)請(qǐng)求。請(qǐng)求和響應(yīng)都是特定的 JSON 格式。注冊(cè)工具在 Server 啟動(dòng)時(shí)向客戶端宣告自己提供的工具列表。處理調(diào)用當(dāng)客戶端發(fā)起工具調(diào)用請(qǐng)求時(shí)執(zhí)行相應(yīng)的內(nèi)部邏輯如查詢數(shù)據(jù)庫(kù)、調(diào)用內(nèi)部 API并將結(jié)果按協(xié)議格式返回。關(guān)鍵理解MCP 協(xié)議類(lèi)似于一個(gè)更智能、更面向 LLM 的“API 網(wǎng)關(guān)”或“RPC 協(xié)議”。它讓工具的定義和調(diào)用標(biāo)準(zhǔn)化了。教程里提到的 Figma MCP、藍(lán)湖 MCP就是設(shè)計(jì)軟件公司官方或社區(qū)提供的標(biāo)準(zhǔn) Server讓你的智能體可以直接操作設(shè)計(jì)稿。6. 面試題準(zhǔn)備與項(xiàng)目復(fù)盤(pán)從“會(huì)做”到“會(huì)講”教程如果包含面試題那價(jià)值就不僅僅是技術(shù)了更是思路的整理。面對(duì)“LangChain 和 LangGraph 區(qū)別”“如何設(shè)計(jì)一個(gè)多 Agent 系統(tǒng)”“RAG 效果不好怎么排查”這類(lèi)問(wèn)題你需要有結(jié)構(gòu)化的回答。6.1 概念辨析類(lèi)問(wèn)題LangChain vs LangGraph如前所述LangChain 是組件庫(kù)和鏈?zhǔn)骄幣胚m合線性流程LangGraph 是基于狀態(tài)圖的工作流引擎適合有循環(huán)、分支、多角色的復(fù)雜 Agent。它們常結(jié)合使用。Agent 架構(gòu)可以從“感知-規(guī)劃-執(zhí)行-學(xué)習(xí)”框架去談并結(jié)合 LangGraph 的節(jié)點(diǎn)和狀態(tài)管理來(lái)解釋具體實(shí)現(xiàn)。RAG 框架核心是“索引-檢索-生成”三階段。可以談向量檢索、圖檢索、混合檢索等不同方案的選擇。6.2 設(shè)計(jì)類(lèi)問(wèn)題設(shè)計(jì)一個(gè)多 Agent 系統(tǒng)遵循“單一職責(zé)-定義接口-設(shè)計(jì)路由-狀態(tài)共享-錯(cuò)誤處理”的思路。先拆分子任務(wù)為每個(gè)任務(wù)設(shè)計(jì)專(zhuān)用 Agent定義清晰的消息格式或共享狀態(tài)設(shè)計(jì)一個(gè)路由中心可以是規(guī)則也可以是小模型考慮 Agent 間通信和異常處理如某個(gè) Agent 失敗后的重試或降級(jí)方案?;贚angGraph多Agent對(duì)公信貸系統(tǒng)這就是一個(gè)完美的設(shè)計(jì)案例??梢栽敿?xì)闡述你如何設(shè)計(jì)數(shù)據(jù)流、如何利用 RAG 注入知識(shí)、如何用 MCP 連接外部數(shù)據(jù)源、如何設(shè)計(jì)審核節(jié)點(diǎn)控制風(fēng)險(xiǎn)。6.3 實(shí)戰(zhàn)排查類(lèi)問(wèn)題RAG 效果差提供一個(gè)排查漏斗檢索階段檢查檢索到的片段是否真的相關(guān)可以人工評(píng)估。如果不相關(guān)檢查嵌入模型是否合適、向量索引是否構(gòu)建正確、chunk_size是否合理。生成階段如果檢索片段相關(guān)但答案不對(duì)。檢查提示詞是否明確要求“基于上下文”上下文的格式是否清晰如用### 上下文包裹模型本身的能力是否足夠。數(shù)據(jù)階段如果以上都 OK回溯到數(shù)據(jù)預(yù)處理檢查文檔加載和分割是否丟失或扭曲了關(guān)鍵信息。Agent 陷入循環(huán)檢查工具描述是否清晰檢查max_iterations參數(shù)在 LangGraph 中可以在判斷節(jié)點(diǎn)設(shè)置更嚴(yán)格的終止條件。系統(tǒng)速度慢定位瓶頸。是嵌入模型計(jì)算慢考慮量化、用小模型向量檢索慢考慮索引類(lèi)型、硬件還是大模型響應(yīng)慢考慮模型規(guī)格、緩存6.4 項(xiàng)目復(fù)盤(pán)要點(diǎn)學(xué)完教程后最好的鞏固是做一個(gè)自己的小項(xiàng)目。復(fù)盤(pán)時(shí)問(wèn)自己目標(biāo)我做的這個(gè)智能體解決了什么問(wèn)題架構(gòu)圖我能畫(huà)出數(shù)據(jù)流和組件圖嗎LangGraph 的圖本身就是很好的素材技術(shù)選型理由為什么用 Chroma 不用 Milvus為什么用這個(gè)嵌入模型遇到的坑哪個(gè)問(wèn)題最難解決最后怎么解決的例如處理 PDF 表格提取不準(zhǔn)換用了unstructured庫(kù)效果評(píng)估如何衡量我的系統(tǒng)是有效的是人工評(píng)測(cè)還是設(shè)計(jì)了自動(dòng)化測(cè)試用例后續(xù)優(yōu)化如果時(shí)間再多點(diǎn)我會(huì)在哪個(gè)環(huán)節(jié)投入例如引入重排序、實(shí)現(xiàn) Agent 的記憶機(jī)制、做更全面的錯(cuò)誤處理和日志把這些想清楚、講明白無(wú)論是應(yīng)對(duì)面試還是在實(shí)際工作中推進(jìn)項(xiàng)目你都會(huì)更有底氣。這套教程的價(jià)值最終要體現(xiàn)在你能獨(dú)立完成一個(gè)閉環(huán)的、可運(yùn)行的智能體應(yīng)用并且能清晰地解釋其中的每一個(gè)技術(shù)決策。