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

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

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

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

















