目錄
- 摘要
- Abstract
- 1. LLM-Based Agent的Memory
- 1.1 基礎概念
- 1.2 用于解釋Memory的例子
- 1.3 智能體記憶的定義
- 1.3.1 狹義定義(肯定不用這個定義)
- 1.3.2 廣義定義
- 1.4 記憶協助下智能體與環境的交互過程
- 1.4.1 記憶寫入
- 1.4.2 記憶管理
- 1.4.3 記憶讀取
- 1.4.4 總過程
- 2. 如何實現智能體記憶模塊
- 2.1 記憶來源
- 2.2 記憶形式
- 2.2.1 文本形式
- 2.2.2 參數形式
- 2.2.3 文本記憶和參數記憶的對比
- 2.3 記憶操作
- 3. 評估記憶
- 3.1 直接評估
- 3.1.1 主觀評估
- 3.1.2 客觀評估
- 3.1.2.1 結果正確率
- 3.1.2.2 引用正確率
- 3.1.2.3 時間和硬件消耗
- 3.2 間接評估
- 3.2.1 對話
- 3.2.2 多源問題回答
- 3.2.3 長上下文應用
- 3.2.4 其他任務
- 參考
- 總結
摘要
??智能體的記憶模塊是其與環境交互的核心組件,決定了任務完成的效率和質量。記憶可分為狹義和廣義兩種定義:狹義記憶僅包含當前任務的歷史交互信息,而廣義記憶則整合了跨任務經驗、外部知識等多源信息。記憶模塊通過三個關鍵操作實現功能:記憶寫入將環境反饋轉化為存儲內容,記憶管理對信息進行抽象、合并和遺忘優化,記憶讀取則根據當前上下文檢索相關信息以指導決策。完整的交互流程可表示為智能體基于記憶處理結果生成下一步行動。記憶模塊的實現涉及三大要素:記憶來源包括當前交互、歷史經驗和外部知識;記憶形式分為文本(易解釋但受長度限制)和參數(高效但難解釋)兩種;記憶操作則涵蓋信息提取、存儲優化和檢索策略。評估方法分為直接評估(主觀連貫性/合理性判斷、客觀正確率/效率指標)和間接評估(通過對話一致性、問答能力、長上下文處理等下游任務表現)。研究表明,優秀的記憶模塊能顯著提升智能體在個性化服務、復雜推理和持續學習等方面的性能,但也面臨信息過載、隱私安全等技術挑戰。未來需在記憶效率、可靠性及多模態融合等方面進一步突破。
Abstract
??The memory module is a core component of an intelligent agent’s interaction with its environment, determining both the efficiency and quality of task completion. Memory can be defined in two ways: narrowly and broadly. Narrow memory includes only historical interaction data from the current task, while broad memory integrates multi-source information such as cross-task experiences and external knowledge. The memory module functions through three key operations: memory writing, which converts environmental feedback into stored content; memory management, which optimizes information through abstraction, merging, and forgetting; and memory retrieval, which extracts relevant information based on the current context to guide decision-making. The complete interaction process involves the agent generating its next action based on the results of memory processing.
??The implementation of the memory module involves three major elements:1. Memory Sources: These include current interactions, historical experiences, and external knowledge.2. Memory Forms: Memory can be stored as text (which is interpretable but limited in length) or as parameters (which are efficient but difficult to interpret).3. Memory Operations: These encompass information extraction, storage optimization, and retrieval strategies.
??Evaluation methods are divided into:Direct evaluation, which includes subjective assessments (e.g., coherence and rationality) and objective metrics (e.g., accuracy and efficiency). Indirect evaluation, which measures performance on downstream tasks such as dialogue consistency, question answering, and long-context handling.
??Studies have shown that well-designed memory modules significantly enhance an agent’s capabilities in personalized services, complex reasoning, and continual learning. However, they also face technical challenges such as information overload and privacy concerns. Future research should aim for breakthroughs in memory efficiency, reliability, and multimodal integration.
1. LLM-Based Agent的Memory
1.1 基礎概念
概念 | 定義 |
---|---|
Task | 智能體最終需要完成的目標(論文中用 τ \LARGE \tau τ表示)。 |
Environment | 狹義上是指智能體為了完成任務需要交互的物體; 廣義上是指影響智能體決定的上下文因素。 |
Trial | 智能體執行一個動作,環境會對這個動作給出回應。這個過程一直重復直到任務完成。這個完整的智能體-環境交互過程稱為Trial(論文中用 a t \large a_t at?和 o t \large o_t ot?分別表示step t時的智能體動作和觀測環境給出的回應。因此長度為T的Trial可以表示為 ξ T = { a 1 , o 1 , a 2 , o 2 , ? , a T , o T } \large \xi_T=\large \{a_1, o_1, a_2, o_2, \cdots, a_T, o_T\} ξT?={a1?,o1?,a2?,o2?,?,aT?,oT?})。 |
Step | 智能體執行動作和環境給出對應的回應構成一個Step。 |
1.2 用于解釋Memory的例子
角色 | Task A:為Alice制定時間為2024-5-1到2024-5-3的北京旅行計劃 |
---|---|
智能體( a 1 A \large a_1^A a1A?) | 我需要在網上售票處預定2024-5-1從上海到北京的啟程機票,同時預定2024-5-3從北京到上海的返程機票。 |
網上售票處( o 1 A \large o_1^A o1A?) | 訂單已確認。啟程航班會在9:00起飛,你的票號為EK240501SX9021。返程航班會在16:30起飛,你的票號為LG240503FN6317。請準時到達機場乘坐對應航班。 |
智能體( a 2 A \large a_2^A a2A?) | 我從雜志《北京的名勝古跡》中獲取了額外的知識——長城、紫禁城和頤和園是著名的景點。根據Alice的偏好,我認為她更喜歡古建筑,所以我決定紫禁城和頤和園作為旅行的目的地。 |
Alice( o 2 A \large o_2^A o2A?) | 不錯! |
智能體( a 3 A \large a_3^A a3A?) | 現在,我需要為Alice安排參觀順序。根據上面的信息,我推薦在她到達北京后先參觀頤和園,因為在那里度過一下午并且觀看日落是十分愜意的。然后,明天她可以有充足的時間去參觀紫禁城。最后,后天她可以返回上海進行休息。 |
Alice( o 3 A \large o_3^A o3A?) | 我喜歡這個計劃。謝謝! |
角色 | Task B:在2024-5-10這天為Alice推薦一部電影 |
---|---|
智能體( a 1 B \large a_1^B a1B?) | 根據我過去關于Alice電影推薦的經驗,她更喜歡在21:00觀看電影,因為她那時剛結束工作。我應該問Alice在那個時間是否有空。 |
Alice( o 1 B \large o_1^B o1B?) | 當然,這是一個不錯的時間! |
智能體( a 2 B \large a_2^B a2B?) | 現在,我需要在Netflix上找出一些Alice標記為想看的電影。 |
Netflix( o 2 B \large o_2^B o2B?) | Alice想看的電影:Interstellar,Planet Terror和Candle in the Tomb。 |
智能體( a 3 B \large a_3^B a3B?) | 因為Alice從不在晚上觀看恐怖電影,Interstellar應該非常適合她觀看。 |
Alice( o 3 B \large o_3^B o3B?) | 不錯!我喜歡這部電影! |
1.3 智能體記憶的定義
1.3.1 狹義定義(肯定不用這個定義)
??狹義上來說,智能體的記憶應該只與同一個Trial的歷史信息有關。對于一個給定的任務,在步驟 t t t之前一個Trial的歷史信息為 ξ t = { a 1 , o 1 , a 2 , o 2 , ? , a t ? 1 , o t ? 1 } \large \xi_t=\large \{a_1, o_1, a_2, o_2, \cdots, a_{t-1}, o_{t-1}\} ξt?={a1?,o1?,a2?,o2?,?,at?1?,ot?1?},而記憶是根據 ξ t \large \xi_t ξt?推導出來的內容。對于上面的Task A來說,智能體在第3步的時候需要為Alice安排參觀順序;在這個時候,它的記憶包含在第1步中的到達時間和第2步中選擇景點的信息。對于Task B來說,智能體在第3步中需要為Alice選擇一部電影;在這個時候,它的記憶包含在第1步中觀看電影的時間和第2步中Alice想看的電影。
1.3.2 廣義定義
??廣義上來說,智能體的記憶來自更多來源。假如給定一系列的任務 { τ 1 , τ 2 , ? , τ K } \{\LARGE \tau_{\small 1}, \LARGE \tau_{\small 2}, \cdots, \LARGE \tau_{\small K} \normalsize \} {τ1?,τ2?,?,τK?},對于任務 τ k \LARGE \tau_{\small k} τk?,在第 t t t步時記憶來自以下三個來源:
??1. 來自當前Trial的歷史信息 ξ t k = { a 1 k , o 1 k , ? , a t ? 1 k , o t ? 1 k } \large \xi_t^k=\{a_1^k, o_1^k, \cdots, a_{t-1}^k, o_{t-1}^k\} ξtk?={a1k?,o1k?,?,at?1k?,ot?1k?}。
??2. 跨不同Trial的歷史信息 Ξ k = { ξ 1 , ξ 2 , ? , ξ k ? 1 , ξ k ′ } \Xi^k=\{\xi^1, \xi^2, \cdots, \xi^{k-1}, \xi^{k'}\} Ξk={ξ1,ξ2,?,ξk?1,ξk′},其中 ξ j ( j ∈ { 1 , ? , k ? 1 } ) \xi^j(j\in\{1,\cdots,k-1\}) ξj(j∈{1,?,k?1})代表 τ j \LARGE \tau_j τj?的Trials, ξ k ′ \xi^{k'} ξk′代表最近對 τ k \LARGE \tau_k τk?探索的Trials。
??3. 額外的知識 D t k D_t^k Dtk?。
??智能體的記憶是根據 ( ξ t k , Ξ k , D t k ) (\xi_t^k,\Xi^k,D_t^k) (ξtk?,Ξk,Dtk?)推導出來的內容。
??對于Task A來說,如果有幾個失敗的Trials,Alice給出的反饋是消極的,那么這些trials可以插入到智能體的記憶里以避免未來重犯相同的錯誤(對應于 ξ k ′ \xi^{k'} ξk′)。對于Task B來說,智能體可能推薦與Alice在Task A參觀景點有關的電影,以捕獲她最近的偏好(對應于 { ξ 1 , ξ 2 , ? , ξ k ? 1 } \{\xi^1, \xi^2, \cdots, \xi^{k-1}\} {ξ1,ξ2,?,ξk?1})。在智能體決策過程中,它參考了雜志《北京的名勝景點》來制定旅行計劃,這對于當前任務來說是額外的知識(對應于 D t k D_t^k Dtk?)。
1.4 記憶協助下智能體與環境的交互過程
??智能體的記憶模塊需要通過三個操作來實現智能體與環境的交互,這三個操作分別是記憶寫入、記憶管理、記憶讀取。
1.4.1 記憶寫入
??記憶寫入旨在將原始觀察結果(環境給出的回應)投影到實際存儲的記憶內容中,使得記憶內容豐富且簡潔。這對應于智能體與環境一次交互過程中的第一步——智能體接受來自環境的信息,并將它存儲到記憶中。給定一個任務 τ k \LARGE \tau_{\small k} τk?,如果智能體在第 t t t步時采取了行動 a t k \large a_t^k atk?,然后環境給出了回應 o t k \large o_t^k otk?,最后進行記憶寫入操作:
m t k = W ( { a t k , o t k } ) . \large m_t^k= W(\{a_t^k, o_t^k\}). mtk?=W({atk?,otk?}).
其中 W W W是一個投影函數, m t k \large m_t^k mtk?是最終要存儲的記憶內容,可以是自然語言或參數化的表達。對于Task A來說,智能體在第2步之后要記住航班安排和選擇的景點。對于Task B來說,智能體在第1步之后記住Alice希望在21:00看電影這個事實。
1.4.2 記憶管理
??記憶管理操作旨在處理已存儲的記憶,使其更為有效。例如,總結高級概念以使智能體更加通用,合并相似信息以降低重復,遺忘不重要、不相關信息以去除這些記憶造成的消極影響。這對應于智能體與環境一次交互過程中的第二步——智能體處理存儲的信息使其變得更有用。假設 M t ? 1 k M_{t-1}^k Mt?1k?是第 t t t步之前關于 τ k \LARGE \tau_{\small k} τk?的記憶內容, m t k \large m_t^k mtk?是第 t t t步時記憶寫入操作產生的待存儲記憶,那么記憶管理可以被描述為:
M t k = P ( M t ? 1 k , m t k ) . M_t^k=P(M_{t-1}^k, m_t^k). Mtk?=P(Mt?1k?,mtk?).
其中 P P P是一個迭代處理存儲記憶的函數。對于狹義的記憶來說,這個迭代過程只發生在當前的trial中,當這個trial結束時會清空關于這個trial的記憶。對于廣義的記憶來說,這個迭代過程發生在不同的trials、tasks甚至外部知識的整合中。對于Task B來說,智能體可以總結出Alice享受在夜晚觀看科幻電影,這可以用作未來為Alice進行推薦時的指導守則。
1.4.3 記憶讀取
??記憶讀取操作旨在從記憶中獲取重要信息以支持下一次智能體的行動。這對應于智能體與環境一次交互過程的第三步——智能體依據處理過的記憶信息來進行下一次行動。假設 M t k M_t^k Mtk?是 τ k \LARGE \tau_{\small k} τk?在第 t t t步時的記憶內容, c t + 1 k c_{t+1}^k ct+1k?是下一次智能體行動時的上下文,那么記憶讀取操作可以被描述為:
M ^ t k = R ( M t k , c t + 1 k ) . \hat{M}_t^k=R(M_t^k, c_{t+1}^k). M^tk?=R(Mtk?,ct+1k?).
其中R是計算 M t k M_t^k Mtk?和 c t + 1 k c_{t+1}^k ct+1k?相似度的函數。 M ^ t k \hat{M}_t^k M^tk?用作驅動智能體下一次行動的最終提示詞的一部分。對于Task B來說,智能體在第3步決定最終推薦的影片時,它需要聚焦于第2步中想要觀看電影的列表,然后從中挑選出一部電影。
1.4.4 總過程
??基于上面的3種操作,可以得出從 { a t k , o t k } \large \{a_t^k, o_t^k\} {atk?,otk?}到 a t + 1 k \large a_{t+1}^k at+1k?的公式:
a t + 1 k = L L M { R ( P ( M t ? 1 k , W ( { a t k , o t k } ) ) , c t + 1 k ) } . \large a_{t+1}^k=LLM\{R(P(M_{t-1}^k, W(\{a_t^k, o_t^k\})), c_{t+1}^k)\}. at+1k?=LLM{R(P(Mt?1k?,W({atk?,otk?})),ct+1k?)}.
其中LLM是大語言模型。完整的智能體與環境交互過程可以由上面公式的迭代展開得到。
2. 如何實現智能體記憶模塊
??智能體記憶模塊的實現需要以下三方面的內容:記憶來源、記憶形式和記憶操作。記憶來源指的是記憶內容來自哪里;記憶形式專注于如何表達記憶內容;記憶操作指的是如何處理記憶內容。
2.1 記憶來源
??記憶來源主要由以下三部分構成:一次trial中的信息,不同trials之間的信息和外部知識。前兩個在智能體與環境交互過程中動態生成,而后者是循環外的靜態知識。
??在智能體與環境不斷交互的過程,一個trial的歷史信息是支撐智能體未來行動的最相關和最具信息性的信號。但是僅僅只是利用一個trial中的信息不足以使智能體很好地完成任務,因此還需要跨越不同trial的信息。對于不同的trials,可以從中提取出成功和失敗的行動以及對這些行動的思考等等,如此智能體便能通過不同的trials積累經驗以在未來更好地完成任務。在一個trial中的歷史信息,可以看做是短期記憶,而在不同的trials中積累到的經驗可以看做是長期記憶。如果只是使用這兩者作為智能體記憶的話,就沒有包含外部知識和經驗。外部知識可以解決大模型內部知識過時的問題,并且將外部知識插入到記憶中可以擴寬智能體的知識邊界,從而更好地決策。
2.2 記憶形式
??目前,總共由兩種形式來表達記憶內容:文本形式和參數形式。對于文本形式而言,信息通過自然語言保存和檢索;對于參數形式而言,記憶信息被編碼成大語言模型的參數。
2.2.1 文本形式
??文本形式是目前表示記憶內容的主流方法,具備更好的解釋性、易實現性和更快的讀寫效率。文本信息可以以非結構化的形式存儲,如原始的自然語言;也可以以結構化的形式存儲如元組、數據庫等等。目前以文本形式存儲記憶信息的方法有三種:1. 存儲完整的智能體與環境交互過程。2. 存儲最近的部分智能體與環境交互過程。3. 通過指標挑選智能體與環境過程中的內容,然后存儲挑選出的內容。
??下面對這三種方法進行比較:
存儲所有交互 | 存儲最近交互 | 挑選交互存儲 | |
---|---|---|---|
含義 | 存儲智能體與環境交互過程中的所有信息 | 存儲智能體與環境交互過程中最近的信息 | 基于相關性、重要性和話題選擇智能體與環境交互的信息存儲 |
優點 | 1. 保持充足的信息 | 1. 提升記憶的效率。 2. 使智能體更專注于最近的信息 | 1. 記憶的效率和準確率依賴于檢索策略 |
缺點 | 1. 計算代價高。 2. 容易達到大語言模型上下文的最大限制,產生信息截斷從而導致信息丟失。 3. 大模型對于長文本中不同位置的內容不能平等、穩定對待,從而導致推理產生偏差。 | 1. 丟失遙遠但重要的信息 | 1. 不恰當的檢索策略會導致檢索出不相關信息。 2. 系統可能導致大的計算成本和長的時間延遲。 3. 無法妥善存儲異質信息。 |
??盡管通過最新真實世界的外部知識能顯著提高智能體的能力,但是由于潛在的不準確性和偏見,這些信息的可靠性是值得懷疑的。此外,智能體使用工具可能導致更高的計算成本和復雜性,也會面臨隱私、數據安全和政策遵守的問題。
2.2.2 參數形式
??參數形式的記憶不需要在提示詞中占據額外的上下文長度,所以它不會受到大語言模型上下文的約束。參數化記憶目前有兩種方式:微調和知識編輯。
監督微調 | 知識編輯 | |
---|---|---|
優點 | 1. 更好地完成特定領域的任務。 | 1. 只改變相關的知識。 2. 計算消耗小 |
缺點 | 1. 過擬合。 2. 災難性遺忘。 3. 計算和時間消耗大 | 1. 存在元學習的計算消耗。 2. 不相關知識的保存存在問題。 |
2.2.3 文本記憶和參數記憶的對比
文本記憶 | 參數記憶 | |
---|---|---|
效果 | 文本記憶雖然能存儲詳細、綜合的信息,但是被大語言模型提示詞的token限制。 | 參數記憶不受提示詞token顯示,但是可能在文本轉化為參數的過程產生信息損失以及一些額外的副作用。 |
效率 | 對于文本記憶,每個大模型推理都需要將記憶整合到提示詞中,從而導致更高的計算消耗和更長的處理時間。 | 參數記憶沒有將記憶整合到提示詞的額外消耗,但是在將記憶寫入到大語言模型參數的過程會產生額外的消耗。 |
可解釋性 | 自然語言極具解釋性。 | 存在大語言模型的參數空間,可解釋性差,但是信息高度密集。 |
2.3 記憶操作
??記憶寫入操作需要識別那些信息需要寫入,然后進行信息提取操作后將提取的信息寫入到記憶中。因為原始信息通常是冗長且有噪聲的。此外,在將提取的信息寫入到記憶時,還需要決定記憶的表現形式。
??記憶管理操作需要像人腦一樣不斷處理和抽象信息——生成高度抽象的記憶,合并重復的記憶和遺忘早期不重要的記憶。
??記憶讀取操作需要從記憶提取出相關信息,因此如何獲取與當前狀態高度相關的信息是記憶讀取操作的核心。記憶寫入時記憶的表達形式高度影響記憶讀取。
3. 評估記憶
3.1 直接評估
??直接評估將智能體的記憶作為單獨模塊,從而單獨評估它的有效性。之前研究中直接評估可以分為兩類:主觀評估和客觀評估。
3.1.1 主觀評估
??在主觀評估中,需要解決兩個問題:1. 什么方面應該被評估。2. 怎樣構建評估流程。下面首先介紹大多數研究用來評估記憶模塊的兩個方面。
??連貫性指的是從記憶模塊中得到的記憶是否與當前上下文合適。例如,如果智能體正在為Alice的旅行進行規劃時,從記憶模塊中得到的記憶應該是與她的旅行偏好而不是工作偏好。合理性指的是從記憶模塊中得到的記憶是否是合理的,例如,如果智能體被問及頤和園在哪里,從記憶模塊中得到的記憶應該是頤和園在北京而不是頤和園在月亮上。
??關于評估流程的構建同樣面臨兩個問題:1. 如何選擇人類評估者。2. 如何給記憶模塊的輸出打分。對于人類評估者而言,他們必須熟悉評估任務,并且給出可信、可靠的得分。此外,必須挑選來自多個不同背景的評估者,以確保消除特殊人類群體的主觀偏見。對于評價記憶模塊的輸出而言,可以直接評價輸出或者在兩個候選輸出之間進行比較。此外,還需要仔細設計評級,保證足夠的細粒度但又不至于過度細致。
??主觀評價的優點是可解釋,評價者可以給出他們為什么這樣評價的理由,缺點是耗時耗力以及評價者自身可能有某些偏見。
3.1.2 客觀評估
3.1.2.1 結果正確率
??這個指標測量智能體是否在基于記憶模塊的基礎上正確回答預定義的問題。例如,問題是Alice今天去過哪里了,兩個選擇分別是頤和園和長城。然后智能體基于記憶和問題選擇正確答案。或者智能體生成的答案與真正的答案進行比較。該指標的計算公式為:
C o r r e c t n e s s = 1 N ∑ i = 1 N I [ a i = a ^ i ] . Correctness=\frac{1}{N}\sum_{i=1}^N\mathbb{I}[a_i=\hat{a}_i]. Correctness=N1?i=1∑N?I[ai?=a^i?].
其中 N N N代表問題的數量, a i a_i ai?代表第 i i i問題真正的答案, a ^ i \hat{a}_i a^i?是智能體給出的答案, I [ a i = a ^ i ] = { 1 i f a i = a ^ i , 0 i f a i ≠ a ^ i . \mathbb{I}[a_i=\hat{a}_i]=\left\{\begin{aligned}1\quad &if \ a_i=\hat{a}_i,\\0\quad &if \ a_i\neq\hat{a}_i.\end{aligned}\right. I[ai?=a^i?]={10?if?ai?=a^i?,if?ai?=a^i?.?。
3.1.2.2 引用正確率
??該指標測量的是智能體能否發現能用來回答問題的相關信息。該指標更關心支持智能體做出最終結果的中間信息。對于Alice今天去過哪里這個問題,假如記憶模塊中包括(A)Alice和朋友在王府井吃中飯和(B)Alice中午吃烤鴨,一個好的記憶模塊應該選擇(A)作為參考來回答問題。研究者利用F1-得分計算計算引用正確率:
F1 = 2 Precision ? Recall Precision + Recall . \text{F1}=\frac{2\text{Precision}·\text{Recall}}{\text{Precision}+\text{Recall}}. F1=Precision+Recall2Precision?Recall?.
其中 Precision = TP TP + FP \text{Precision}=\frac{\text{TP}}{\text{TP}+\text{FP}} Precision=TP+FPTP?, Recall = TP TP + FN \text{Recall}=\frac{\text{TP}}{\text{TP}+\text{FN}} Recall=TP+FNTP?。
3.1.2.3 時間和硬件消耗
??總的時間消耗包括記憶適應和記憶讀取。計算公式如下:
Δ time = 1 M ∑ i = 1 M t i end ? t i start . \Delta\text{time}=\frac{1}{M}\sum_{i=1}^Mt_i^{\text{end}}-t_i^{\text{start}}. Δtime=M1?i=1∑M?tiend??tistart?.
其中 M M M是記憶操作的數量, t i end t_i^{\text{end}} tiend?是第 i i i次操作的結束時間, t i start t_i^{\text{start}} tistart?是第 i i i次操作的開始時間。此外對于計算而言,峰值GPU利用率也可作為一個評價指標。
3.2 間接評估
??通過任務的完成度來評價記憶模塊也是一個流行的評估策略。如果一個智能體完成了一個高度依賴記憶的任務,可以認為記憶模塊是非常有效的。
3.2.1 對話
??與人類進行對話是智能體最重要的應用之一,記憶在這個過程中起著至關重要的作用。通過在內存中存儲上下文信息,智能體允許用戶體驗個性化的對話,從而提高用戶的滿意度。因此,當智能體的其他部分被確定時,對話任務的性能可以反映不同記憶模塊的有效性。
??在對話情境中,一致性和參與度是評估主體記憶有效性的兩種常用方法。一致性是指智能體的響應如何與上下文一致,因為在對話期間應該避免戲劇性的變化。參與度是指用戶如何參與繼續對話。它反映了智能體響應的質量和吸引力,以及智能體為當前對話制作人物角色的能力。
3.2.2 多源問題回答
??多源問答可以綜合評價來自多個來源的記憶信息,包括trial內信息、trial間信息和外部知識。它著重于集成來自不同內容和來源記憶的利用問題。通過評價多源問答任務,可以考察智能體對不同來源內容整合能力的記憶。它還揭示了由于多個信息源的內存矛盾的問題,以及知識更新的問題,這可能會影響記憶模塊的性能。
3.2.3 長上下文應用
??在許多情況下,基于LLM的智能體必須根據極長的提示做出決策。在這些場景中,長提示通常被視為記憶內容,在驅動智能體行為方面起著重要作用。
??對于特定的長上下文任務,長上下文段落檢索是評價智能體長上下文能力的重要任務之一。它要求智能體在一個長的上下文中找到與給定的問題或描述相對應的正確段落。長上下文摘要是另一個具有代表性的任務。它要求智能體對整個上下文有一個全局的理解,并根據描述進行總結,其中可以利用ROUGE等匹配分數的一些度量來將結果與真實答案進行比較。
??長上下文應用程序的評估提供了更廣泛的方法來評估代理中的記憶功能,重點是實際的下游場景。
3.2.4 其他任務
??除了上述三類主要任務進行間接評估外,一般任務中還有一些其他指標可以揭示記憶模塊的有效性。成功率是指智能體能夠成功解決的任務的比例。探索度通常出現在探索性博弈中,它反映了主體對環境的探索程度。事實上,幾乎所有配備記憶的智能體都可以通過消融研究來評估記憶的效果,比較有/沒有記憶模塊之間的性能。對具體場景的評估更能體現記憶對于下游應用的實際意義。
參考
Zeyu Zhang, Xiaohe Bo, Chen Ma, and et al. A Survey on the Memory Mechanism of Large
Language Model based Agents.
總結
??智能體的記憶模塊是實現其與環境高效交互的核心組件,涵蓋記憶寫入、管理和讀取三個關鍵操作。記憶來源包括當前任務的歷史信息(短期記憶)、跨任務經驗(長期記憶)和外部知識,通過文本或參數形式存儲。文本記憶解釋性強但受限于模型上下文長度,參數記憶則不受此限但可能損失信息。評估方法分為直接(主觀連貫性/合理性、客觀正確率/效率)和間接(對話質量、多源問答、長上下文任務等),通過任務完成度反映記憶有效性。記憶模塊的設計需平衡信息密度、計算效率與可解釋性,以支持智能體在復雜場景中的持續學習和決策優化。