iT邦幫忙

2026 iThome 鐵人賽

DAY 12
0
AI Engineering

從零打造情感感知 Agentic System:FSM 狀態機與 RAG 的整合實作系列 第 12 篇

Day 12:【RAG 理論篇】為什麼 Prompt 寫再長都沒用?讓 Agent 擁有「外掛大腦」與向量資料庫

  • 分享至 

  • xImage
  •  

介紹

在打造 AI 陪伴 Agent 的過程中,我遇到了一個瓶頸:不論 Prompt 寫得再詳細,Agent 聊久了還是會忘東忘西,甚至開始瞎編記憶。

這並不是因為 Prompt 寫得不夠好,而是因為 LLM(大語言模型)本身有其物理極限:

  • 問題 1:上下文視窗 (Context Window) 限制與成本
    總不可能把角色幾十萬字的背景設定、或是數個月來的歷史聊天記錄全部塞進 system_instruction。這會導致 API 費用飆升,且模型容易出現「中間遺忘 (Lost in the Middle)」或產生「幻覺 (Hallucination)」。
  • 問題 2:記憶無法動態擴充
    模型的知識停留在訓練截止日。若要讓 Agent「記住」使用者昨天剛分享的秘密、或是專屬設定,單靠靜態 Prompt 是做不到的。

為了解決這個痛點,我們必須為 Agent 導入 RAG(Retrieval-Augmented Generation,檢索增強生成) 技術!

今天的輕量目標:

  1. 理解 RAG 架構(用「開卷考試」來比喻)
  2. 搞懂 Embedding(向量化)與向量資料庫 (Vector Database)
  3. 規劃陪伴 Agent 的 RAG 雙軌記憶庫

第一關:什麼是 RAG?從「閉卷猜測」到「開卷檢索」

如果把 LLM 比喻成一個正在參加考試的學生:

  • 沒有 RAG(閉卷考試)
    你問 Agent:「還記得我們上次聊到店裡辦活動時,攤位賣的是什麼甜點嗎?」
    模型只能憑著當初訓練時記住的模糊印象去猜。它可能會胡亂猜個「布丁」,猜錯了就是典型的「幻覺」。

  • 有了 RAG(開卷考試)
    當使用者提出問題時,系統會先去 外部知識庫(講義/筆記) 裡快速翻書,找到「那天莉莉負責烤薄餅攤位」的相關歷史紀錄,然後把這段精確文字 動態附在 Prompt 後面 一起丟給模型:

    「請參考這段檢索到的記憶片段:[那天莉莉負責烤薄餅攤位…]。請結合角色人設回答使用者的問題。」

讓 Agent 可以根據檢索到的資料回答,而不是完全依賴模型自身記憶。

第二關:如何在 0.1 秒內快速翻書?Embedding 與向量資料庫

如果資料庫裡有幾百萬字的對話與設定,系統要怎麼在彈指之間找到「最相關的段落」?

這就是 Embedding(語意向量化) 的神奇之處:

  1. 文字轉化為向量(高維度座標)
    Embedding 模型會把文字句子轉換成一串數字陣列(例如:[0.12, -0.85, 0.43, ...])。
  2. 語意相近,座標距離就近
    概念上,可以把語意相近的文字想像成在向量空間中距離較近。「薄餅」與「草莓派」的距離非常近;但「薄餅」與「伺服器架構」的距離就很遠。
  3. 語意相似度搜尋 (Similarity Search)
    當使用者問:「你平時喜歡做什麼甜點?」,系統會把這句話轉換為向量,至 向量資料庫(Vector DB) 中搜尋「空間距離最近」的知識片段,即時提取給 Agent 當作回應依據!

第三關:陪伴 Agent 的雙軌 RAG 知識庫規劃

在我們的 AI 陪伴系統中,RAG 知識庫主要分為兩大核心儲存軌道:

  1. 角色背景設定庫 (Character Lore Base)
    • 存放角色的背景故事、經典事件、人際關係與特定台詞風格(例如:莉莉的家庭關係、廚藝設定與傲嬌觸發點)。
    • 確保無論使用者問多細節的世界觀話題,Agent 都不會脫離人設。
    • **因為角色是原創的,這個庫裡的每一句都是自己寫的,**這其實是原創角色的一個隱藏好處:語料你想怎麼寫就怎麼寫,不必擔心「原作沒這樣講」。
  2. 長期對話記憶庫 (Long-Term User Memory Base)
    • 自動儲存使用者分享過的個人資訊(例如:「我討厭吃香菜」、「我下週二有期末考」)。
    • 當數週甚至數月後提及相關話題時,RAG 會自動把這段記憶檢索出來,讓 Agent 展現出「我一直都把你的事放在心上」的驚喜感!

結語

搞懂了 RAG 的基本觀念與記憶規劃後,我們的陪伴 Agent 離擁有「永不遺忘的外掛大腦」又更近了一步。


上一篇
Day 11:【好感度持久化與好感度系統3】用 Firebase 記住喜怒哀樂,讓 Gemini 自動感受你的情緒
下一篇
Day 13:【RAG 實戰篇1】手把手用 ChromaDB 幫陪伴 Agent 打造外掛大腦
系列文
從零打造情感感知 Agentic System:FSM 狀態機與 RAG 的整合實作 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言