iT邦幫忙

2025 iThome 鐵人賽

0
自我挑戰組

當哲學遇見 AI:從柏拉圖到機器的思考系列 第 24

Day 24:記憶的倫理:設計「選擇性記憶」功能(開發日誌)

  • 分享至 

  • xImage
  •  

前言:

在把平台從概念推向可運作原型的過程中,今天我把焦點放在一個既技術又倫理的議題:AI 應該記得什麼、又應該忘記什麼?
這個問題不是學術討論,而是工程設計:記錄對話可以讓系統提供更連貫的體驗,但過度記憶可能侵犯隱私、形成不當依賴,或讓使用者感到不安。因此,Day 24 的任務是把「記憶的倫理」改寫成可執行的系統需求與開發計畫,而不是直接假設使用者已經在系統中輸入或作出選擇。

一、今天的目標:
定義「記憶層級」:哪些對話要長期保留、哪些只作短期暫存、哪些要允許使用者刪除。
設計資料模型與 API 規格(方便未來串接前端)。
規劃 UX 流程與提示文案(如何讓使用者理解記憶權限)。
撰寫測試計畫(單元測試 + 使用情境測試),確保資料刪除/保留功能可被驗證。

二、概念模型:
我先在筆記中畫出一個簡單的記憶層級圖:

  1. 短期暫存:對話內容在單次會話中保留(重整理/關閉視窗即清除)。
  2. 會話記錄:存在使用者本機/瀏覽器 localStorage,方便短期回顧(預設保留 30 天)。
  3. 長期記憶:使用者主動選擇保存到伺服器(或雲端資料庫),用於生成個人化歷程。
  4. 選擇性匿名化:長期記憶可選擇脫敏/匿名化(例如刪除姓名、地點、特定名詞)。
  5. 刪除權限:使用者可隨時要求刪除特定會話或整個帳戶資料(符合 GDPR 類似精神)。

這個分層不是哲學性口號,而是工程必需:它決定我們資料庫 schema、API endpoint 與前端按鈕要怎麼做。

三、資料庫與 API 草案:

我在 repo 裡新增一個 design/memory.md,同時寫下下面的示範 schema 與 API 規格。
資料庫 schema(MongoDB-like pseudo)
User {
_id,
username,
created_at,
settings: {
memory_default: "session" | "local" | "persistent",
anonymize_on_save: boolean
}
}

Conversation {
_id,
user_id,
session_id,
messages: [
{ role: "user"|"ai", text, timestamp, sentiment_score|null }
],
memory_level: "session"|"local"|"persistent",
anonymized: boolean,
created_at
}
API 路由草案(Express-like)
POST /api/conversation // 建立/append 會話 (默認 session)
body: { user_id, session_id, message }

POST /api/conversation/save // 使用者選擇儲存此會話到 persistent
body: { conversation_id, anonymize: true|false }

DELETE /api/conversation/:id // 刪除指定會話(硬刪 / 標記刪除)
GET /api/conversation?user_id=...&level=persistent // 取得長期記憶
我在 server/routes/memory.js 放入了偽程式碼供後端實作參考,並寫好單元測試模板(Mocha/Jest)。

四、前端 UX 草案(Canva 原型+文字):

因為目前你偏好用 Canva 做原型,我在 Canva 上設計了三個關鍵畫面(示意):
會話結束提示(Modal):問使用者「是否要保存今天的對話?」並同時提供「匿名化」勾選。文案示例:「是否將這段對話保存在你的哲學日誌?勾選「匿名化」將移除個人識別資訊。」

記憶管理頁(Settings):讓使用者設定預設記憶策略(session/local/persistent)與自動刪除天數。
忘記按鈕(Conversation View):每個會話旁有「忘記」按鈕,觸發確認與刪除流程。

這些原型我以點擊流程圖標示出來(Canva 的連結互動版),方便日後將介面對接到 React。重要的是,介面要透明、可控,讓使用者覺得「記憶是我的資產,不是系統的負擔」。

五、測試計畫:

我為此功能寫下三類測試場景:

  1. 單元測試:儲存會話應寫入 correct memory_level,匿名化標籤應生效。
  2. 整合測試:保存→讀取→刪除的完整流程(在 staging 環境模擬)。
  3. 使用者測試:觀察使用者是否理解「保存/匿名/刪除」三種選項,收集可用性回饋。

我還在 design/privacy-compliance.md 中列出應考慮的條款(例如:明確告知使用者會話如何被儲存、是否會被用於訓練模型等),供日後放入「隱私政策」參考。

六、總結:

技術工作背後,仍然有哲學的疑問:記憶對自我有何意義?
我在筆記中寫道:有些記憶讓我們成長,有些則需要被放下。把「遺忘」當作功能設計,不僅是隱私需求,更是一種對於人類脆弱性的尊重。平台的任務不是囤積數據,而是協助人「回顧並選擇」——這本身就是一種倫理實踐。


上一篇
Day 23:語言與感知:讓AI學會「理解沉默」
下一篇
Day 25:情感演算法的設計:讓 AI「理解」而非「回應」
系列文
當哲學遇見 AI:從柏拉圖到機器的思考30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言