[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-how-to-build-agentic-rag-with-langgraph-zh":3,"article-related-how-to-build-agentic-rag-with-langgraph-zh":30,"series-ai-agent-a8e2e21f-b0d2-4f4f-89bb-1936d5fe8fd5":82},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":23,"views":27,"created_at":28,"published_at":29,"topic_cluster_id":11},"a8e2e21f-b0d2-4f4f-89bb-1936d5fe8fd5","how-to-build-agentic-rag-with-langgraph-zh","如何用 LangGraph 打造 Agentic RAG","\u003Cp data-speakable=\"summary\">這篇教你用 LangGraph 建立一個會路由、檢索、驗證並回答問題的 Age\u003Ca href=\"\u002Fnews\u002Fanthropic-spacex-deal-ai-coding-compute-zh\">nt\u003C\u002Fa>ic \u003Ca href=\"\u002Ftag\u002Frag\">RAG\u003C\u002Fa> \u003Ca href=\"\u002Fnews\u002Fclaude-code-production-workflow-guide-zh\">工作流\u003C\u002Fa>。\u003C\u002Fp>\u003Cp>這篇給想把傳統 RAG 升級成可決策系統的開發者。照著做完，你會得到一個可執行的 Agentic RAG 原型，具備查詢路由、工具呼叫、答案驗證與多來源檢索能力。\u003C\u002Fp>\u003Cp>本文會用到 \u003Ca href=\"https:\u002F\u002Flangchain.com\u002F\" target=\"_blank\" rel=\"noopener noreferrer\">LangChain 官方文件\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Flangchain\" target=\"_blank\" rel=\"noopener noreferrer\">LangChain GitHub\u003C\u002Fa>，以及 \u003Ca href=\"https:\u002F\u002Flangchain-ai.github.io\u002Flanggraph\u002F\" target=\"_blank\" rel=\"noopener noreferrer\">LangGraph 官方文件\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Flanggraph\" target=\"_blank\" rel=\"noopener noreferrer\">LangGraph GitHub\u003C\u002Fa> 來完成流程編排。\u003C\u002Fp>\u003Ch2>開始之前\u003C\u002Fh2>\u003Cul>\u003Cli>Node 20+，或 Python 3.11+\u003C\u002Fli>\u003Cli>OpenAI API key，或其他 LLM 供應商金鑰\u003C\u002Fli>\u003Cli>Chroma、FAISS，或其他向量資料庫帳號與本機環境\u003C\u002Fli>\u003Cli>至少一個資料來源：文件、API、或網頁搜尋\u003C\u002Fli>\u003Cli>Git 已安裝，可用來複製起始專案\u003C\u002Fli>\u003Cli>理解 embeddings、retrieval、prompt template 的基本概念\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>Step 1: 建立專案骨架\u003C\u002Fh2>\u003Cp>這一步的目的，是先做出一個本機專案骨架，讓你可以載入模型、呼叫工具，並保留檢索到的上下文。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778120450823-zxhl.png\" alt=\"如何用 LangGraph 打造 Agentic RAG\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>建立新資料夾、安裝核心套件，並設定環境變數，讓模型金鑰與檢索後端都能被程式讀到。\u003C\u002Fp>\u003Cpre>\u003Ccode>mkdir agentic-rag-demo && cd agentic-rag-demo\nnpm init -y\nnpm install langchain @langchain\u002Fopenai @langchain\u002Fcommunity dotenv\n# 若你偏好 Python，也可以改用 Python 3.11+\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>驗收時，你應該看到專案資料夾、已安裝依賴，以及一個能成功讀取環境變數的測試結果，而不是驗證失敗。\u003C\u002Fp>\u003Ch2>Step 2: 建立文件索引\u003C\u002Fh2>\u003Cp>這一步的目的，是做出可搜尋的知識庫，讓 \u003Ca href=\"\u002Ftag\u002Fagent\">agent\u003C\u002Fa> 不必只靠提示詞猜答案。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778120449580-6c0m.png\" alt=\"如何用 LangGraph 打造 Agentic RAG\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>把文件載入後切成 chunks，產生 embeddings，再存進向量索引。若你使用 LlamaIndex，這裡就是把 PDF、網頁或檔案接到檢索層的地方。\u003C\u002Fp>\u003Cpre>\u003Ccode>\u002F\u002F 具名產出：文件向量索引\nloadDocuments();\nsplitIntoChunks();\nembedChunks();\nstoreInVectorDB();\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>驗收時，你應該看到對某個已知片段的相似度搜尋結果，且回傳的 chunk 帶有對應來源標記。\u003C\u002Fp>\u003Ch2>Step 3: 加入查詢路由\u003C\u002Fh2>\u003Cp>這一步的目的，是讓 agent 在檢索前先決定問題該走哪條路。\u003C\u002Fp>\u003Cp>建立路由器，把查詢分類成文件查詢、網頁查詢、\u003Ca href=\"\u002Ftag\u002Fapi\">API\u003C\u002Fa> 查詢，或直接回答。這個設計能讓後續擴充成多 agent 流程時更容易維護。\u003C\u002Fp>\u003Cpre>\u003Ccode>if (needsRealtimeData(query)) routeTo(\"api-tool\");\nelse if (isInDocs(query)) routeTo(\"vector-search\");\nelse routeTo(\"web-search\");\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>驗收時，你應該看到三種不同問題被導向不同路徑，例如政策問題、產品問題、即時資訊問題各走不同分支。\u003C\u002Fp>\u003Ch2>Step 4: 編排工具與檢索流程\u003C\u002Fh2>\u003Cp>這一步的目的，是把查詢修正、來源選擇、檢索與追問串成一個多步驟工作流。\u003C\u002Fp>\u003Cp>你可以用 agent loop，或用 LangGraph state machine 來管理狀態。核心概念是：系統先規劃，再執行，再檢查結果，必要時重新嘗試。\u003C\u002Fp>\u003Cpre>\u003Ccode>state = {\n  query,\n  refinedQuery,\n  source,\n  context,\n  draftAnswer,\n  validationResult\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>驗收時，你應該看到一個複雜問題會觸發兩次以上的步驟，例如先查文件，再呼叫即時 API，而不是直接吐出第一段檢索片段。\u003C\u002Fp>\u003Ch2>Step 5: 驗證最終答案\u003C\u002Fh2>\u003Cp>這一步的目的，是在答案送出前先做品質檢查，避免弱證據或無根據的回覆。\u003C\u002Fp>\u003Cp>\u003Ca href=\"\u002Fnews\u002Fcutile-jl-v0-3-cuda-jl-support-faster-startup-zh\">加入\u003C\u002Fa>驗證層，比對草稿答案、原始查詢與檢索上下文。如果證據不足，系統就應該再取更多 context、重寫答案，或回傳安全的 fallback。\u003C\u002Fp>\u003Cpre>\u003Ccode>if (!isSupported(draftAnswer, context)) {\n  draftAnswer = refineAndRetry(query, context);\n}\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>驗收時，你應該看到模糊問題會被要求補充資訊，而證據充足的問題則會輸出帶有依據的答案。\u003C\u002Fp>\u003Ch2>Step 6: 擴充多模態輸入\u003C\u002Fh2>\u003Cp>這一步的目的，是把文字、圖片與即時資料放進同一條 Agentic RAG 流程。\u003C\u002Fp>\u003Cp>加入 OCR、影像描述或即時資料抓取工具，再把不同輸入型態導向對應的 agent。這會讓 Agentic RAG 比傳統 RAG 更有彈性，因為它能依來源類型改變檢索策略。\u003C\u002Fp>\u003Cpre>\u003Ccode>\u002F\u002F 具名產出：多模態工具組\ntextRetriever();\nimageCaptionTool();\nrealtimeApiTool();\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>驗收時，你應該看到文字查詢、圖片查詢與時間敏感查詢各自走出不同檢索路徑，最後產生符合上下文的答案。\u003C\u002Fp>\u003Ch2>常見錯誤\u003C\u002Fh2>\u003Cul>\u003Cli>把所有問題都送進向量庫。修法：先做來源分類，避免即時問題拿到過時文件。\u003C\u002Fli>\u003Cli>跳過驗證步驟。修法：把最終答案和檢索證據比對，不足就重試或回退。\u003C\u002Fli>\u003Cli>一開始就切太多 agent。修法：先做一個 router 和一個 retriever，流程穩定後再拆分角色。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>接下來可以看什麼\u003C\u002Fh2>\u003Cp>下一步可以深入 memory、平行子 agent 與評測集，進一步比較 routing 準確率、答案品質與延遲，建立可持續迭代的 Agentic RAG 系統。\u003C\u002Fp>","這篇教你用 LangGraph 建立一個會路由、檢索、驗證並回答問題的 Agentic RAG 工作流。","www.geeksforgeeks.org","https:\u002F\u002Fwww.geeksforgeeks.org\u002Fartificial-intelligence\u002Fwhat-is-agentic-rag\u002F",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778120450823-zxhl.png","ai-agent","zh","f2612ba2-997c-4d94-b83b-f0a52f1adb32",[17,18,19,20,21,22],"LangGraph","LangChain","RAG","vector database","embeddings","agent workflow",[24,25,26],"先用路由器把查詢分流，再進入檢索與工具呼叫。","用狀態機或 agent loop 串起 refine、retrieve、validate 的流程。","答案驗證是 Agentic RAG 的關鍵，能降低無根據回覆。",4,"2026-05-07T02:20:28.380469+00:00","2026-05-07T02:20:28.251+00:00",{"tags":31,"relatedLang":41,"relatedPosts":45},[32,34,36,38,39],{"name":19,"slug":33},"rag",{"name":17,"slug":35},"langgraph",{"name":18,"slug":37},"langchain",{"name":21,"slug":21},{"name":20,"slug":40},"vector-database",{"id":15,"slug":42,"title":43,"language":44},"how-to-build-agentic-rag-with-langgraph-en","How to Build Agentic RAG with LangGraph","en",[46,52,58,64,70,76],{"id":47,"slug":48,"title":49,"cover_image":50,"image_url":50,"created_at":51,"category":13},"83c2f8f6-3710-466e-b52c-473b811f0535","how-to-set-up-openclaw-safely-zh","如何安全架設 OpenClaw","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780549368665-1t2l.png","2026-06-04T05:02:21.26625+00:00",{"id":53,"slug":54,"title":55,"cover_image":56,"image_url":56,"created_at":57,"category":13},"0ba5b1a8-82c5-464a-bea5-9a2c8730da74","aws-devops-agent-turns-incident-chaos-into-triage-zh","AWS DevOps Agent 把事故排查變成三步","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780466689960-g1sv.png","2026-06-03T06:03:14.154923+00:00",{"id":59,"slug":60,"title":61,"cover_image":62,"image_url":62,"created_at":63,"category":13},"841eac88-b0f0-4a4c-9e1e-efc3b5c16281","kimi-k26-live-300-agent-workflows-zh","Kimi K2.6 上線：300 代理工作流","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780430574285-hqpn.png","2026-06-02T20:02:24.972179+00:00",{"id":65,"slug":66,"title":67,"cover_image":68,"image_url":68,"created_at":69,"category":13},"f0411957-bcdb-42d9-a267-3e90ae7d9cb1","how-to-take-a-sabbatical-at-openai-zh","怎麼申請 OpenAI sabbatical","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780398216422-8fi7.png","2026-06-02T11:02:25.74372+00:00",{"id":71,"slug":72,"title":73,"cover_image":74,"image_url":74,"created_at":75,"category":13},"37a5e429-4235-439c-9b05-bb377085462c","8-steps-build-production-rag-with-langchain-zh","8 步驟打造可上線的 LangChain RAG","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780178597493-4hz7.png","2026-05-30T22:02:48.14022+00:00",{"id":77,"slug":78,"title":79,"cover_image":80,"image_url":80,"created_at":81,"category":13},"e73c041b-852b-44c3-85aa-0f1e2e5848e3","ai-agents-hit-chaos-mode-claude-code-openclaw-zh","Claude Code＋OpenClaw 讓 AI 代理失控升溫","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780160576178-yqcs.png","2026-05-30T17:02:25.725767+00:00",[83,88,93,98,103,108,113,118,123,128],{"id":84,"slug":85,"title":86,"created_at":87},"4ae1e197-1d3d-4233-8733-eafe9cb6438b","claude-now-uses-your-pc-to-finish-tasks-zh","Claude 開始幫你操作電腦","2026-03-26T07:20:48.457387+00:00",{"id":89,"slug":90,"title":91,"created_at":92},"5bede67f-e21c-413d-9ab8-54a3c3d26227","googles-2026-ai-agent-report-decoded-zh","Google 2026 AI Agent 報告解讀","2026-03-26T11:15:22.651956+00:00",{"id":94,"slug":95,"title":96,"created_at":97},"2987d097-563f-46c7-b76f-b558d8ef7c2b","kimi-k25-review-stronger-still-not-legend-zh","Kimi K2.5 評測：更強，但還不是神作","2026-03-27T07:15:55.277513+00:00",{"id":99,"slug":100,"title":101,"created_at":102},"95c9053b-e3f4-4cb5-aace-5c54f4c9e044","claude-code-controls-mac-desktop-zh","Claude Code 也能操控 Mac 了","2026-03-28T03:01:58.58121+00:00",{"id":104,"slug":105,"title":106,"created_at":107},"dc58e153-e3a8-4c06-9b96-1aa64eabbf5f","cloudflare-100x-faster-ai-agent-sandbox-zh","Cloudflare 的 AI 沙箱跑超快","2026-03-28T03:09:44.142236+00:00",{"id":109,"slug":110,"title":111,"created_at":112},"1c8afc56-253f-47a2-979f-1065ff072f2a","openai-backs-isara-agent-swarm-bet-zh","OpenAI 挺 Isara 的 agent swarm …","2026-03-28T03:15:27.513155+00:00",{"id":114,"slug":115,"title":116,"created_at":117},"7379b422-576e-45df-ad5a-d57a0d9dd467","openai-plan-automated-ai-researcher-zh","OpenAI 想做自動化 AI 研究員","2026-03-28T03:17:42.090548+00:00",{"id":119,"slug":120,"title":121,"created_at":122},"48c9889e-86df-450b-a356-e4a4b7c83c5b","harness-engineering-ai-agent-reliability-2026-zh","駕馭工程：從「馬具」到「作業系統」，AI Agent 可靠性的終極密碼","2026-03-31T06:42:53.556721+00:00",{"id":124,"slug":125,"title":126,"created_at":127},"96d8e8c8-1edd-475d-9145-b1e7a1b02b65","mcp-explained-from-prompts-to-production-zh","MCP 怎麼把提示詞變工作流","2026-04-01T09:24:39.321274+00:00",{"id":129,"slug":130,"title":131,"created_at":132},"f2ca7720-b471-4ce5-9336-2a9ac2a876fd","amazon-bedrock-agents-multi-agent-workflows-zh","Amazon Bedrock Agents 進入多代理工作流","2026-04-01T09:30:29.945429+00:00"]