跳到主要內容
AI News HubLIVE
站內改寫3 分鐘閱讀

Engram:由 Weaviate 提供支持的內存服務

文章摘要

Engram 是 Weaviate 推出的託管內存服務,專為智能體應用設計,旨在提供簡單易上手且高度可定製的記憶管理。它通過異步管道提取、整合並持久化記憶,支持主題、作用域和緩衝區等高級功能,助力智能體實現個性化與持續學習。

Engram:由 Weaviate 提供支持的內存服務
報告錯誤

更正渠道尚未開通,可先複製下方文章資訊留存。

查看更正說明
直接讀正文

隨着智能體應用從實驗性功能轉向生產級用例,一個關鍵發現是:當它們完全融入系統、具有強個性化並能持續學習時,效果最佳。這些智能體需要記憶——作為可靠且可預測的基礎設施,而非事後添加的臨時方案。為此,Weaviate 推出了 Engram,一個基於 Weaviate 向量數據庫的託管記憶服務,旨在讓入門簡單,同時足夠靈活以適配任何用例。

記憶為何重要?

當聊天機器人忘記你的偏好時,會令人困擾。但對於執行長期複雜任務的智能體而言,問題可能更嚴重。沒有記憶的連續性,智能體無法從過往經驗中學習,只會反覆解決相同的中介問題,浪費時間和令牌。雖然前沿模型的長上下文窗口看似能解決問題,但塞滿上下文並非最佳方案。大語言模型容易“迷失在中間”,有效上下文長度遠低於 100%,且過長的上下文會降低準確性、增加延遲和成本。

簡單存儲每條消息雖能解決延遲和成本問題,但原始對話充滿噪音、矛盾和信息變化。依賴大語言模型一次性解決所有不一致性比逐步處理更困難。將所有記憶視為單一對話也無法適應多智能體系統等高級場景。

最好的方法是主動維護記憶,而非讓上下文無限增長。

Engram 的工作方式

Engram 基於 Weaviate 向量數據庫,圍繞異步管道設計。當你添加原始數據時,管道會提取記憶、協調新舊信息並持久化到 Weaviate 中,以供查詢。它提供了通用記憶用例的入門模板,同時底層系統高度靈活、可配置。自定義選項從簡單的自然語言描述(説明哪些主題感興趣)到完全控制管道中的各個步驟。

入門非常簡單:創建項目 API 密鑰後,通過 REST API 或 Python 客户端即可添加數據。Engram 將啓動管道運行,提取與配置主題匹配的記憶並集成到現有記憶中。例如,若用户表達了對向量的喜愛,Engram 會創建新記憶;若此前已提及,則會忽略以避免重複。由於管道異步運行,API 延遲極低,你可以“即發即忘”原始數據,依靠 Engram 記住所需內容。

之後,你可以通過語義搜索檢索相關記憶。除了簡單的 API,Engram 還提供了豐富的組織能力。

記憶組織與作用域

Engram 將記憶自動歸類到預配置的主題中。主題是自然語言描述,告訴大語言模型提取什麼信息以及如何分類。每個主題都有“作用域”,控制哪些原始數據可以影響該記憶。作用域組合了硬隔離和軟隔離:項目級記憶在所有用户間共享;用户級記憶僅屬於特定用户,由 Weaviate 的多租户功能嚴格隔離;屬性級記憶附加鍵值數據,提供軟隔離,查詢時可選擇是否按屬性過濾。

主題還可以標記為“有界”,即每個作用域內最多隻有一個記憶對象。這可用於實現用户畫像等特性,確保智能體系統提示中始終有該記憶。

管道與步驟

Engram 使用管道精確控制原始數據如何加工成記憶。管道由多個步驟組成,異步運行,逐步將原始數據轉換為記憶批次並持久化到 Weaviate。管道基於 Temporal 工作流構建,提供持久執行,確保數據添加後管道一定會完成。管道步驟包括:

提取步驟:使用大語言模型從原始數據中提取與主題匹配的記憶。支持對話數據、字符串數據和預提取記憶三種輸入類型。

轉換步驟:使用大語言模型決定如何將新記憶集成到現有記憶中,或進行特定用例處理。例如,去重或處理偏好變化時,會查詢現有記憶並決定動作(保留、重寫或刪除)。

緩衝區:允許管道持有中間記憶,直到滿足觸發條件(如數據量、時間間隔)再統一處理。緩衝區支持去抖動、等待完整信息、每日彙總等場景。

實際應用示例

示例1:用户對話——用户告知升職為CEO,Engram 提取記憶,發現已有“機器學習工程師”記憶,於是重寫為“用户曾為機器學習工程師,現已升任CEO”,同時刪除新記憶以避免重複。

示例2:多智能體持續學習——一個多智能體RAG系統中,用户建議搜索喜劇電影時應使用過濾器。Engram 分別提取任務目標、已採取行動和反饋,再通過緩衝區合併為一條經驗記憶:“當用户要求查找特定類型(如喜劇)的電影時,應在 genres 屬性上過濾,而非執行 near-text 查詢。”這條經驗可作用於項目範圍,讓所有用户受益,或限定於單個用户以保護隱私。

集成到應用中

在標準聊天機器人應用中,每次新消息都調用 client.memories.add。對於非對話數據,使用字符串類型;如需完全控制提取,可使用預提取數據。檢索記憶時,可將用户消息作為搜索查詢,或將搜索方法暴露為工具調用。對於已知的具體記憶,可使用提取模式。

Engram 旨在既高度靈活又簡單易用。它提供了個性化和持續學習的預構建模板,並計劃集成 Claude Code 等編碼智能體。如果你有興趣瞭解更多,現在即可註冊預覽。

展開要點與分析

文章情報

工程師入門

要點

  • Engram 提供託管內存服務,基於 Weaviate 向量數據庫構建。
  • 支持異步管道處理,可自動提取、去重和更新記憶。
  • 通過主題和作用域靈活控制記憶內容與隔離級別。
  • 緩衝區功能支持持續學習與複雜多智能體場景。

要點與分析由自動化流程生成,可能有誤,請結合原始來源核實。