Agentic RAR+Nano-GraphRAG+Claude 3.7 Sonnet=智能推理RAG系統(tǒng)
在這篇文章中,我將介紹如何使用 LangGraph、Agentic RAR、Nano-GraphRAG 以及 Claude 3.7 Sonnet 來創(chuàng)建一個基于智能推理(Agentic RAR)的聊天機器人,看完這篇文章之后你就學(xué)會了如何為你的業(yè)務(wù)打造一個強大的智能推理聊天機器人。
我首先向你展示一下聊天機器人的效果:“生成代碼,檢查以下數(shù)字是否為回文數(shù):123、121、12321、12345、123454321。”

當(dāng)用戶提出問題時,初始推理 Agent 會對其進行分析,識別需要哪些專業(yè) Agent,并檢測特定的標(biāo)簽,這些標(biāo)簽表明 Agent 查詢類型,例如網(wǎng)頁搜索、代碼執(zhí)行或思維導(dǎo)圖。
每個 Agent 都有一個負(fù)責(zé)收集數(shù)據(jù)的伙伴。例如,當(dāng)代碼 Agent 執(zhí)行任務(wù)時,另一個 Agent 會記錄過程并將其存儲在一個文件中。
- route_to_agent 通過檢查狀態(tài)的推理和所需 Agent 來指導(dǎo)工作流程,提取嵌入式查詢,決定激活哪個 Agent,并存儲路由決策。
- 當(dāng)需要網(wǎng)頁搜索時,web_search_agent 會查詢 Tavily API,處理結(jié)果,更新推理,并在移除自身之前存儲查詢和結(jié)果。
- code_execution_agent 生成并執(zhí)行代碼,提取帶有格式化標(biāo)簽的輸出,更新推理,存儲結(jié)果,并在執(zhí)行后移除自身。
- 思維導(dǎo)圖 Agent 扮演兩個角色:在整個過程中收集知識,并在查詢時組織結(jié)構(gòu)化信息。它匯編所有收集的信息,將其格式化為知識文檔,并存儲在 GraphRAG 知識圖譜中,以便檢索和結(jié)構(gòu)化分析。
- 知識管理依賴于通過 collected_knowledge 字典進行的過程內(nèi)收集和通過基于 GraphRAG 的 MindMap 類進行持久存儲,它使用基于目錄的存儲、JSON 文本塊、用于語義搜索的向量嵌入以及通過 graph_retrieval 的查詢功能,從而使知識隨著時間的推移而增長。
- 最后,synthesize_answer 方法整合所有收集的信息,生成全面的總結(jié),將其存儲在思維導(dǎo)圖中,查詢相關(guān)信息,并結(jié)合推理鏈和思維導(dǎo)圖信息生成最終答案。
我在開發(fā)中遇到的問題
在開發(fā)聊天機器人時,我踩了一些坑。
- 一個主要問題是思維導(dǎo)圖初始化,Agent 在沒有任何數(shù)據(jù)收集之前就嘗試訪問數(shù)據(jù),導(dǎo)致“matrix”錯誤。為了解決這個問題,我改變了初始化方法,在啟動時僅創(chuàng)建基本的目錄結(jié)構(gòu),并讓 Agent 在存儲信息之前收集真實數(shù)據(jù)。
- 另一個坑是 Agent 之間的狀態(tài)管理,因為信息在轉(zhuǎn)換之間會丟失。我通過添加一個持久的知識收集機制解決了這個問題,使用 collected_knowledge 字典跟蹤輸出,確保知識逐步積累。
- 最后,思維導(dǎo)圖中的知識整合效果不佳,因此我修改了工作流,持續(xù)收集數(shù)據(jù),在適當(dāng)?shù)臅r刻存儲格式化的知識,并在合成前查詢思維導(dǎo)圖。
- 最大的突破是重新設(shè)計思維導(dǎo)圖 Agent,使其成為一個被動的收集者,而不是一個顯式調(diào)用的 Agent,從而讓它在推理過程中自然構(gòu)建全面的知識圖譜。
通過這篇文章,你將了解 Agentic RAR 和 Nano-GraphRAG 是什么,為什么 Agentic RAR 如此獨特,它是如何工作的,以及我們?nèi)绾问褂?Agentic RAR 創(chuàng)建一個強大的推理聊天機器人。
什么是 Agentic RAR?
首先,大型語言模型(LLM)中的推理能力可能還不是 AGI(通用人工智能)或 ASI(超人工智能),但它在處理數(shù)學(xué)、編碼和復(fù)雜思維等任務(wù)方面已經(jīng)取得了巨大的進步。
以 Claude 3.7 Sonnet 的最新版本為例,這是市場上首個混合推理模型。它可以根據(jù)需求快速響應(yīng)或進行更深入的思考,用戶還可以調(diào)整它的思考時間。它能夠啟動一種長時間思考模式,模擬人腦的思考過程。

LLM 在序列推理方面存在困難。例如,如果你要求一個 LLM 解決一個多步驟的數(shù)學(xué)問題,它可能會忘記前面的步驟,從而給出錯誤的答案。
如果遇到不明確的地方,它們會猜測而不是詢問細節(jié),這可能導(dǎo)致錯誤。有時,它們甚至對同一個問題給出不同的答案,這也很令人困惑,因為它們在處理專家級話題和長期對話時會遇到困難。
想象一下,你有一個非常聰明的朋友,他不僅知識淵博,還能上網(wǎng)搜索更多信息,編寫并運行簡單的程序,甚至還能畫出思維導(dǎo)圖來幫助連接各種想法。
這就是 Agentic RAR 的用武之地。它在 RAG 模式基礎(chǔ)上,引入了一種動態(tài)的、以推理為核心的問題處理方式。
Agentic Reasoning 就像賦予 AI 模型使用額外工具的能力——就像我們使用計算器解決復(fù)雜數(shù)學(xué)問題、查字典找詞義或用搜索引擎在線查找答案一樣。
想象你問 AI:“中國現(xiàn)在的人口是多少?”它不僅依賴過去學(xué)到的知識,還能檢查最新數(shù)據(jù)并給你一個準(zhǔn)確的答案。這讓 AI 變得更聰明、更有用,因為它不會只是猜測——它會通過使用正確的工具找到最佳答案,就像我們在現(xiàn)實生活中一樣!
為什么 Agentic RAR 獨特?
Agentic RAR 的獨特之處在于,它通過統(tǒng)一的 API 標(biāo)準(zhǔn)化工具調(diào)用,使得集成新工具(比如化學(xué)方程求解器)變得輕而易舉。
它還能動態(tài)分配認(rèn)知負(fù)荷,通過將簡單任務(wù)分配給輕量 Agent,將復(fù)雜計算交給專用代碼代理,確保高效使用資源——在醫(yī)學(xué)診斷測試中,響應(yīng)速度提高了 40%,計算能力使用量減少了 72%。
它的多模態(tài)記憶融合使思維導(dǎo)圖代理能夠存儲并鏈接文本、公式和圖表,創(chuàng)建一個三維知識系統(tǒng)——使其能夠處理復(fù)雜問題。
它是如何工作的?
Agentic Reasoning 采用一種結(jié)構(gòu)化的方法,結(jié)合各種外部 Agent 來增強 LLM 的推理能力。
- 它使用網(wǎng)頁搜索 Agent 從互聯(lián)網(wǎng)獲取實時信息,幫助補充 LLM 預(yù)訓(xùn)練數(shù)據(jù)集之外的知識。
- 編碼 Agent 用于執(zhí)行代碼或完成計算任務(wù);這個 Agent 支持定量推理并解決需要編程技能的問題。
- 思維導(dǎo)圖 Agent 用于構(gòu)建知識圖譜,組織和可視化復(fù)雜的邏輯關(guān)系,幫助結(jié)構(gòu)化推理過程。
- 該模型能在推理過程中識別何時需要額外信息或計算能力。它可以生成特定的查詢,無縫觸發(fā)外部 Agent 的使用。
在綜合所有信息和結(jié)構(gòu)化信息后,模型會構(gòu)建一個連貫的推理鏈并生成最終答案。
認(rèn)識 Nano-GraphRAG
GraphRAG 由微軟提出,非常有效,但官方實現(xiàn)和使用非常復(fù)雜,難以修改和定制。
Nano-GraphRAG 是一個輕量且靈活的 GraphRAG 實現(xiàn),旨在簡化 GraphRAG 的使用和定制。它保留了 GraphRAG 的核心功能,同時提供更簡單的代碼結(jié)構(gòu)、更友好的用戶體驗和更高的可定制性。

Nano-GraphRAG 僅有大約 1100 行代碼(不包括測試和提示),設(shè)計為輕量、異步且完全類型化,非常適合希望將 GraphRAG 集成到項目中而又不增加復(fù)雜性的開發(fā)者。
本文轉(zhuǎn)載自??PyTorch研習(xí)社??,作者:南七無名式

















