基於 Tree-sitter 與 ChromaDB 的本地 AI 代理記憶,支援程式碼引用
本地 agent memory,使用 tree-sitter + ChromaDB,為 AI agent 提供持久的程式碼庫上下文,並附帶引用,是解決 agent 上下文記憶問題的創新實作。
作者為了解決 AI 助理每次會話都需重新解釋程式碼庫的痛點,開發了一個本地優先的記憶系統,旨在提供跨會話的持久專案上下文。
• 該系統的核心理念是嵌入前確定性解析,利用 tree-sitter 精準提取程式碼的實際結構,包括函數、類別、方法和行號,而非簡單的文本區塊。
• 當代理查詢記憶時,它會獲得帶有實際檔案路徑和行號的引用(例如:code_indexer.py:42),顯著減少了 token 使用並提升效率。
• 其檢索管道結合了 ChromaDB 進行語義搜索,並透過詞彙重新排序優化結果,最終將查詢路由至 DeepSeek 或本地 Ollama 實例;所有操作均在本地執行。
• 引用資訊會在大型語言模型(LLM)合成答案前注入回應中,確保答案的來源可追溯。
• 作者誠實指出,記憶品質高度依賴輸入資料,如誤索引其他專案檔案可能導致錯誤資訊,目前需透過 .memignore 檔案手動排除。
作者表示,此記憶系統對他很有幫助,因為他注重預算,並希望在擁有 GitHub Copilot 訂閱的同時,節省昂貴的「上下文稅」。
來源:r/LLMDevs
閱讀原文 ↗