iT邦幫忙

2025 iThome 鐵人賽

DAY 11
0
生成式 AI

AI Agent 開發養成記:做出屬於自己的Agent P系列 第 11

[Day 11] Agent 為什麼需要對話記憶

  • 分享至 

  • xImage
  •  

前言

玩過 Agent 後,你可能會注意到一個問題:每次對話,Agent 都好像忘了前面說了什麼…(´・_・`)
這時候,對話記憶(State / Session) 就非常重要啦~

今天我們就來聊聊:為什麼需要對話記憶、Agent 怎麼利用它,以及它和普通即時回應的差別(^∀^●)ノシ


為什麼需要對話記憶?

想像一下,你問 Agent:

  1. 「台北天氣如何?」
  2. 「明天呢?」

如果沒有上下文記憶,Agent 只會看到「明天呢?」這句話,它不知道你關心的是台北的天氣。
有了 Session / State,Agent 可以記住「前面提過的地點是台北」,回覆就會變得 連貫、智慧、貼近使用者需求

總結來說,對話記憶能幫助 Agent:

  • 保持多輪對話的上下文
  • 執行多步任務(例如先查天氣,再訂鬧鐘)
  • 提供更自然、更有人情味的回應

Session(會話)與 State(狀態)

Session(會話)

  • 指的是「一段持續的對話流程」,通常從使用者首次啟動對話,到交談結束為止。
  • 每個使用者的 Session 都是獨立的,擁有自己的對話歷史與臨時資料空間。
  • 例子:A 用戶今天開了一個 Session 訂機票,B 用戶同時查詢天氣,兩者對話內容互不影響。

State(狀態)

  • 是指在單一會話中,Agent 需要暫存的一些資料,用來追蹤目前對話進度或暫存資訊。
  • 通常儲存在結構化物件中(像字典、Map),包含使用者輸入、已收集的偏好、正在進行的任務步驟等。
  • State 僅適用於本次 Session,Session 結束這些資料會被清除。

舉例說明

  • 訂購機票過程中,Agent 會在 State 裡暫存起飛城市、日期、乘客資訊等資料,隨互動逐步累積。
  • 登入流程中,Agent 會記錄是否通過認證、當前流程步驟等資訊於 State。

對話流程視覺化

https://ithelp.ithome.com.tw/upload/images/20250925/20168454iefsdLp1iX.png

  1. 用戶啟動會話:當用戶A開始對話時,系統會為這個用戶創建一個專屬的 Session A
  2. 狀態初始化:Session A 會建立對應的 State,用來儲存這次對話的所有上下文和暫存資料
  3. 多輪對話循環:在同一個 Session 內,用戶可以進行多次輸入,Agent 每次回應都會:
    • 參考當前的 State(記住之前說過什麼)
    • 根據用戶新輸入更新 State
    • 給出連貫且智慧的回應
  4. 會話結束:當對話自然結束或用戶主動離開時
  5. 狀態清除:為了保護隱私和節省資源,系統會清除這次 Session 的所有 State 資料

關鍵:

  • 每個 Session 都是獨立的,不同用戶之間不會互相干擾
  • State 只在單一 Session 內有效,確保對話的連貫性
  • 多輪對話讓 Agent 能處理複雜、多步驟的任務

對話記憶的作用與重要性

  • 上下文追蹤與推理:Agent 可根據保存的 State 判斷使用者下一步需求,根據 Session 做個人化推薦。
  • 多輪對話支持:讓多步驟、多回合的對話不中斷,每次回應都能連貫先前輸入。
  • 提升使用者體驗:如同記性好的助理,能記得上次未完成事項,或根據使用者偏好主動調整回應。

對比沒有記憶的情況

特性 沒有記憶 有 Session / State
多輪對話 每次都像新對話,完全不連貫 可以延續上下文,回覆更智慧
任務處理 單一步驟,無法接續前面 可以分步驟完成複雜任務
使用者體驗 生硬、斷裂 自然、貼近真人對話
多人場景 容易混淆不同用戶訊息 每個使用者獨立記憶,安全可靠

小結

簡單來說:

  • Session=這一次的對話專屬空間
  • State=在這次會話裡,Agent 臨時「知道」與「需要記住」的事情

利用 Agent + Session / State,你可以:

  • 讓聊天更連貫
  • 執行多步任務更容易
  • 支援多使用者環境
  • 不必自己手動管理訊息歷史

換句話說,Session 就像 Agent 的「短期記憶」,讓它能像真人一樣 「記得前文,接得下後文」


結尾廢話

看完這篇,你應該了解 為什麼 Agent 需要對話記憶,以及它和單純即時回應的差別了。

下一篇,我們可以把 Gradio + Agent + Session 結合起來,做一個 多輪對話的聊天機器人,讓你的 Agent 不再忘東忘西~
下一篇再見(≧▽≦)/
reference link


上一篇
[Day 10] 簡單了解 FastAPI
下一篇
[Day 12] 用 FastAPI 封裝 Agent
系列文
AI Agent 開發養成記:做出屬於自己的Agent P12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言