為什麼 Maida 拒絕成為推薦系統

Maida 的程式碼裡有條紅線,寫在 AGENTS.md 第 7.1 條:

Maida is not a recommender. Maida presents options, the user decides. Never write UI copy, docs, or release notes where Maida is the subject of pick / chose / selected / suggested / recommended / showed you / 挑選 / 為你選 / 選びました / 提案.

四種語言的 UI 文案都受這條規定管。任何 PR 想把「Maida 為你選了這款遊戲」放進介面都會被擋下來。

這條紅線聽起來像 UI 品味,其實是哲學立場。值得拆給你看。

對立面不是演算法,是讓人萎縮的演算法

Maida 解決的問題很普通:你的 Steam 庫有 200 款遊戲,今晚不知道玩什麼。Spotify、Netflix、Instagram 都遇過這個問題,他們的答案是同一套:建個推薦系統,把演算法越調越準,讓你滑進來就有東西看。

這套答案在商業上很成功,但對你的腦子做了什麼,研究這幾年才開始爬清楚。

2024 年 Nature 系列的 Humanities and Social Sciences Communications 有一篇談個人化演算法決策對自主性的侵蝕,論證很乾淨。三條路徑:

第一條,演算法偏離你真實的自己。它從你的點擊、停留、跳過去推測你想要什麼,但這些行為痕跡不等於你真實的意圖。你在累的時候滑了一支貓影片,它會以為你愛貓,下次再推一支,這是真的。但你其實只是累。

第二條,自我強化的循環會窄化你的自我。推薦準了 → 你點了 → 訊號回去 → 推薦更準 → 你更不容易看到原本不會點的東西 → 你的「自己」變窄了。半年後你發現自己只看某幾個 YouTuber,這不是你變專注,是這個循環把你裁出來。

第三條,你自己選的能力會萎縮。技能跟肌肉一樣,不用就退。當一個系統幫你選夠久,你不用練「我今晚想看什麼」這個判斷力,它就會退化。等你哪天想自己選,會發現選不出來。

這三條合起來不是「演算法不好」,是「會讓使用者萎縮的演算法不好」。差別很重要。Maida 也用演算法,使用者每選一次都會記下權重影響未來呈現。但 Maida 的演算法每天衰減回中性,刻意避免那個自我強化循環。

對立面校準了:Maida 不是 anti-AI,是 anti-能力萎縮的 AI。

個人化不是焦慮減輕劑,是依賴建立器

研究文獻裡有個發現一開始讓我意外。多篇實證指出:關掉個人化推薦會引發焦慮、倦怠,然後讓使用者離開平台

第一次看到時我以為這代表「個人化是好的,它在減輕焦慮」。後來才意識到這個解讀錯了。剝奪後的焦慮不證明它健康,那是戒斷反應。抽菸的人不抽會焦慮,這不是抽菸對人好,是抽菸建立了依賴。

ScienceDirect 2024 一篇問題性網路使用研究有個關鍵發現:高風險使用組在 hedonic(享樂)跟 eudaimonic(活得有意義、有成長)兩種 well-being 都最低,不是「玩得開心但人生沒意義」這種單向。意思是依賴推薦的人,連短期的開心都拿不到滿分,更別說長期的意義感。

這把產品的衡量標準翻轉了。光看 NPS 跟使用時長判斷不出 well-being。要看的是:使用者不用這個產品時會不會自己選?她的判斷力有沒有變強?她跟人的真實連結有沒有受影響

Maida 的指標暗暗在做這件事。「每次選擇帶權重,每天衰減回中性」這條規則的反面是「不建立依賴」。User decides 這條規則的反面是「不替使用者萎縮」。

紅線怎麼活在程式碼裡

把哲學寫進程式碼是兩回事。Maida 的紅線在好幾層具體實作上:

UI 文案層:所有 4 種語言的 i18n 字串都被審。不准用「為你選」、「為你推薦」這類主動式描述 Maida 的動作。要描述 Maida 呈現遊戲,得用 passive 或 user-centric 講法:「一款遊戲從你的庫存出現」、「下一款出現」。

互動時序層:按鈕的長按閾值是 300ms 短按、3000ms 鎖定,刻意設計成不是輕碰就觸發。理由寫在紅線 7.4:「This is the friction layer that protects the user from accidental state changes. Don’t shorten to improve UX.」摩擦是保護不是 bug。

輸入層:Space 鍵在按鈕上被明確 disable。理由是 NVDA 螢幕閱讀器在 browse mode 會把 Space 轉成 synthetic click,會跳過長按摩擦把遊戲直接啟動。這跟典型「Space 也該觸發按鈕」的 UX 直覺反了,但是是為了保護螢幕閱讀器使用者免於誤觸。

Telemetry 層:啟動時匿名 ping 三個欄位:random UUID、安裝後天數、版本號。沒有遊戲標題、沒有 session 資料、沒有裝置指紋、沒有 IP-推測的 locale。要擴張要走完整的隱私政策更新流程。

每一層都可以追溯到一條同樣的哲學承諾:Maida 增強你做決定的能力,不取代它

為什麼這對你重要

如果你已經對演算法疲勞有感受,這個立場應該不用我說服你。但有一群讀者會想問:可是推薦系統很方便啊,我選不出來時它幫我選有什麼錯。

兩件事可以講。

第一,短期方便跟長期能力是兩個維度。推薦系統優化前者,會犧牲後者。你今晚不用想就有東西看,這個爽。但六個月後你發現自己沒有不開電視就會無聊,這個不爽。長期看,建立依賴對使用者不是中性的,它有實質代價。

第二,「我選不出來」這個經驗不是缺陷,是你跟自己對話的機會。決策摩擦有時是糟糕介面造成的,這部分該移除。但有時是你還沒搞清楚自己今晚的心情,這部分不該被替你解決,那是你自己要做的工作。Maida 的設計分得出這兩種摩擦,移除前者、保留後者。

哲學家 Harry Frankfurt 有個對自主性的定義:能基於理由跟意圖自願治理自己生活的能力,超越單純的刺激-反應或即時衝動。當一個系統替你連結刺激跟反應,繞過你的「治理」這層,它就是在剝奪你的自主性,不管它多有效率。

Maida 拒絕做這件事。它把選項擺給你,按鈕也設計成你要花至少 300ms 主動確認。你按下去那一刻,是你的決定,不是它的。

不是反對推薦,是反對讓你萎縮的推薦

說清楚一下立場。我不是反對所有推薦系統,也不是反對所有個人化。Spotify 的 Discover Weekly 在我整理週末歌單時很好用。亞馬遜建議我這個鏡頭也許要買個對應的清潔組合很合理。

我反對的是把使用者的判斷力外包出去這件事被當成 UX 進步。當推薦系統定位成「我幫你決定」,而不是「這裡有幾個選項提供參考」,它就跨過了那條線。

Maida 站在線的另一邊。它呈現選項,你來決定。它每天忘記你昨天的偏好,避免把你裁進去。它的程式碼裡寫死了它不准成為主詞,因為主詞是你。

這是條看起來很細的紅線。一旦你想用同一個視角看你每天用的工具,會發現大部分產品都在悄悄越過這條線。不是壞事,是值得知道。


Maida 是免費的、開源的桌面工具,幫你決定今晚玩什麼。下載連結原始碼,MIT 授權。

Bright Raven 寫的是關於決策疲勞、能動性、跟遊戲。沒有電子報,用 RSS 訂閱,或想到再回來。