偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何設計Agent的記憶系統(tǒng)

發(fā)布于 2025-5-27 07:11
瀏覽
0收藏

最近看了一張畫Agent記憶分類的圖

如何設計Agent的記憶系統(tǒng)-AI.x社區(qū)

我覺得分類分的還可以,但是太淺了,于是就著它的邏輯,仔細得寫了一下在不同的記憶層,該如何設計和選型

先從流程,作用,實力和持續(xù)時間的這4個維度來解釋一下這幾種記憶:

1. 短期記憶(Short-Term Memory, STM)

 流程:Input(輸入)→ Encode(編碼)→ Store(存儲)→ Erase(清除)

 作用:在進行活動時保持臨時細節(jié),類似于我們在對話中臨時記住的信息。

 示例:保存最近的交互信息,比如剛剛發(fā)送的聊天內容。

 持續(xù)時間:任務或對話結束后即被清除,不會保留。

2. 長期記憶(Long-Term Memory, LTM)

 流程:Receive(接收)→ Consolidate(整合)→ Store(存儲)→ Retrieve(提?。?/p>

 作用:維持持久的知識,跨多次交互都能訪問這些知識。

 示例:保存偏好設置、事實知識、歷史數據等。

 持續(xù)時間:會隨著AI不斷學習新信息而增加和演變。

3. 情節(jié)記憶(Episodic Memory)

 流程:Experience(體驗)→ Encode(編碼)→ Store(存儲)→ Recall(回憶)

 作用:記錄詳細的、事件性的經歷。

 示例:記住是和誰互動(這個不見的“who”代表的是user,也可能是agent)、討論了什么、何時發(fā)生等。

 好處:有助于AI根據過往經歷,個性化地回應當前請求。

4. 語義記憶(Semantic Memory)

 流程:Concepts(概念)→ Store(存儲)→ Retrieve(提取)→ Use(使用)

 作用:保存事實、概念、語言等一般知識,防止常識性幻覺

 示例:知道“倫敦是英國的首都”這種事實。

 特性:類似于人類從書本或知識學習中獲得并提取的常識。

5. 工作記憶(Working Memory)

 流程:Inputs & Goals(輸入和目標)→ Temp Ops Area(暫存操作區(qū))→ Real-Time Ops(實時操作)→ Discard(丟棄)

 作用:處理即時信息,便于現場決策和解決問題。

 示例:臨時保存指令、目標或計算步驟。

 好處:對即時推理、計劃和執(zhí)行任務至關重要。

6. 程序性記憶(Procedural Memory)

 流程:Learn(學習)→ Store(存儲)→ Practice(練習)→ Apply(應用)

 作用:保留已學會的操作和流程,可自動化執(zhí)行。

 示例:自動知道如何格式化文檔、發(fā)郵件或跟隨既有流程。

 類比:“肌肉記憶”,讓AI能流暢地完成熟悉的任務。

以上六種記憶類型,分別服務于AI在不同場景下的存儲、處理和應用:從即時、臨時的信息處理,到持久、自動化的技能與知識運用。

但是這個概念要是落到紙面上其實還有很多工作要做吧,最起碼得知道用啥存儲組件吧,或者數據格式推薦?

那我們繼續(xù)。

下面我根據上面這個圖,整一個面向LLM Agent的存儲設計建議,目的是能說明 6 類記憶各自應選用的存儲類型、數據格式、關鍵組件及設計要點。

線說思路核心:  

1) 根據記憶的壽命(瞬時 , 短期 , 長期)、讀寫頻率、訪問延遲需求選介質;  

2) 根據查詢方式(鍵值檢索 , 語義相似度 , 結構化查詢 , 順序重放)選數據庫模型;  

3) 最好能用統(tǒng)一的記憶編排層抽象讀寫接口,屏蔽底層異構存儲差異。

我就不按上面的順序來寫了啊,咱們就從短長開始設計,這樣看著邏輯性強一點。

1. 短期記憶 (Short-Term Memory, STM)  

? 典型訪問特征:生命周期 = 一次對話/任務,毫秒級讀寫,鍵值直取,不需要持久化。  

? 推薦組件的話呢?  

   首選:進程內緩存(Python Dict、Go map)或輕量化 KV 內存數據庫(Redis、Dragonfly)。  

   高并發(fā)多實例可用 Redis Cluster + TTL 到期刪除。  

? 數據模型/格式  

   結構簡單:

{conversation_id: [{role, content, ts}]}

 或者直接token 緩存。  

   若需少量向量召回,可把 embedding 作為 field 存 Hash/JSON 里,或附帶到本地 Faiss index(RAM),有錢Faiss可以上GPU,但是其實也沒太大必要。

? 設計要點  

   TTL 必須 小于 上下文窗口時間,其實這個挺好理解,如果你TTL設置得太長,超過了當前任務/對話上下文窗口,那么舊的短期記憶有可能被下一輪新的對話或任務意外掛載和復用,導致“前一個用戶/任務”的內容泄露進來(典型的“越權存取”風險)  

   關閉持久化 (AOF/RDB) 以獲得極低延遲;  

  同步刪除:對話結束立即 DEL / EXPIRE 0。

2. 工作記憶 (Working Memory)  

? 定義:Agent 正在推理時的scratchpad。持續(xù)幾秒~幾分鐘,需要頻繁更新、順序遍歷。 

? 推薦組件  

  直接放在 LLM 的 Prompt 構造器里(臨時 Python 對象 / JS 對象);  

 如需多人協(xié)作或 DAG 工作流,可用內存流數據庫(Materialize、RisingWave)或流框架(Kafka + ksqlDB)暫存。  

? 數據模型  

JSON/Dict:

{"goal": "...", "current_step": 3, "intermediate_results": [...]}

? 設計要點  

  可隨時丟棄原則;  

  若任務超長,用 Write-Ahead Log 落盤到本地 SSD 防節(jié)點故障。

  這倆沒啥特別可解釋的

3. 情節(jié)記憶 (Episodic Memory)  

? 定義:帶時間戳的交互事件流,需要按語義+時間檢索。  

? 推薦組件(Hybrid Store)  

  1-事件日志:Append-only 列式或時序庫  Apache Iceberg / Parquet on S3、ClickHouse、TimescaleDB,這東西太多了,要我就clickhouse了,因為簡單,但是特別要注意時間上下文的,可能還得去找專門的TSDB來搞

  2-語義索引:向量數據庫 Milvus / Weaviate / pgvector / Pinecone。  

? 數據模型  

  基表的設計example:event_id, agent_id, user_id, timestamp, text, meta(json)

  向量表:event_id, embedding VECTOR(768看你處理的數據業(yè)務形態(tài),768就是個建議值) + HNSW/IVF 索引  

? 設計要點  

  雙寫:事件落盤時同步寫入向量庫;  

  支持 “who/when/what” 過濾(涉及時間,事件和角色) + 近似向量檢索;  

  定期離線合并老分區(qū)、分層存儲 (hot ? cold)。

4. 語義記憶 (Semantic Memory)  

? 定義:事實、概念、知識圖譜,強調結構化關系和可推理。  

? 推薦組件  

  知識圖譜:RDF 三元組庫 (Blazegraph, Virtuoso) 或圖數據庫 (Neo4j, TigerGraph);  

  補充全文/向量:Elasticsearch + KNN(有沒有估計能差點意思)、或者同上向量庫。  

? 數據模型  

  三元組:(entity, relation, entity)

  為每個實體存 description, embedding,支持 embedding 相似度 + Cypher(圖)/SPARQL(EDF) 查詢,當然也可以加上BM25座個hyberid,最后再rerank。  

? 設計要點  

  明確本體 / schema;  

  版本化知識 (snapshot + diff) 以便回溯;  

  支持批量導入(主要是產業(yè)和公司內部文檔這些玩意,對,還有wiki)。

5. 長期記憶 (Long-Term Memory, LTM)  

? 定義:用戶偏好、持久配置、歷次學習成果的總匯,需要可擴展、持久、多模式查詢。  

? 推薦組件(分層架構)  

  結構化偏好:PostgreSQL / MySQL  

  大文件/文檔:對象存儲 (S3類的)  

   語義檢索:統(tǒng)一指向上面的向量庫(可與情節(jié)/語義共用集群省點錢)。  

? 數據模型  

  偏好表:user_id, key, value(jsonb), updated_at  

  文檔索引:doc_id, s3_uri, summary, embedding  

? 設計要點  

  多租戶隔離、如果有強烈的compliance需求,那上面GDPR 啥的也可以在這個基礎上建設,總而言之就是不能混用了;  

  寫放大:批量 consolidate 后寫,減少頻繁小更新;  

  定期遷移冷數據到低成本存儲 ,比如類Glacier的純冷層,但是我其實還時更推薦放在溫層里面進行存儲,雖然長期記憶不見的總能用到,但是一旦用到,折騰Glacier還是挺麻煩的,另外一個必須做的工作就是,長期記憶的定期summary,短期記憶可以周期性的匯總形成長期記憶,長期記憶也可以定期匯總形成超長期記憶,來避免context和storage的雙重上限壓力。

6. 程序性記憶 (Procedural Memory)  

? 定義:可復用的技能 / 工作流 / 宏;更新頻次低、讀頻次高,需要版本控制和安全審計。 

? 推薦組件  

   Git 倉庫 (GitLab / GitHub Enterprise或者任何企業(yè)里面用的倉庫,愿意用啥都行) + CI;  

  若技能用 DSL/JSON 表示,可再加文檔數據庫 (MongoDB) 緩存可解析的 AST;  

  運行時加載:在容器或函數服務等serverless服務中按需調用。  

? 數據模型  

  代碼 / YAML / BPMN 文件;  

 元數據表:skill_id, name, version, checksum, entry_point, permissions.  

? 設計要點  

  版本標簽+語義化發(fā)布 (SemVer);  

  審批/回滾鏈路;  

  延遲加載 + 本地 LRU 緩存,保證首調用體驗。 

跨層 Memory Orchestrator 設計要點  

1) 統(tǒng)一 API:store(memory_type, data, **meta)、retrieve(memory_type, query)  

2) 讀寫策略:  

   ? 寫入時自動路由到對應存儲;  

   ? 讀取時支持級聯:先 STM 到LTM 到 語義 / 圖譜。  

3) 安全合規(guī):數據分級、加密 at-rest + in-transit,PII 脫敏。  

4) 指標觀測:每層暴露 QPS、延遲、命中率,Prometheus + Grafana。

5) 彈性伸縮:冷熱分層、Auto-Scaling、備份與災難恢復策略。  

如果按著我以上的設計來經營你的Agent記憶系統(tǒng),那肯定既能保證超低延遲的對話體驗,又能讓 Agent 正確的調用長短期記憶的知識,演化技能,而且復雜度相當高,為了做AI自動化,手動創(chuàng)建了極其精密和復雜的存儲系統(tǒng),就又可以借機會招人了,創(chuàng)造了就業(yè)機會。

本文轉載自??熵減AI?????,作者:周博洋

收藏
回復
舉報
回復
相關推薦