他說做 AI agent 最難的一步,是教它「忘記」

他說做 AI agent 最難的一步,是教它「忘記」

發布於
·22 分鐘閱讀
AIAI Agent資料庫產業觀察開源SaaS創業投資產品商業

TL;DR

  • 一九七〇年硬碟很貴,所以資料要「正規化」拆成好幾張表;二〇〇七年硬碟便宜了,稀缺的變成時間,所以 MongoDB 反過來把資料揉在一起,換取一次讀取就拿到全部。約束變了,最佳解就變了。
  • 大家以為 MongoDB 是無綱要(schemaless),其實是綱要有彈性(schema flexible)。這個差別後來意外地讓它加向量搜尋加得很輕鬆:一個向量本來就只是一串浮點數,對它來說只是文件上多一個欄位。
  • 切塊(chunking)沒有標準答案,切太小失去上下文,切太大檢索品質反而下降。Voyage 的做法是讓你把「你要的那句」跟「它的上下文」分開丟進去,回來還是一個向量,小塊也能有好品質。
  • 嵌入模型(embedding model)還沒有商品化。同一份資料換一個嵌入模型,檢索品質差距可以到一成四,而這常常就是幻覺跟正確答案的分界線。Anthropic 自己沒做嵌入模型,直接推薦 Voyage。
  • Uber 十三週燒完二〇二六年一整年的 token 預算,讓「把上下文塞爆」這條路在四月就結束了。學術研究也顯示,最前面七千跟最後面七千個 token 最重要,中間那堆反而在干擾模型。
  • Agent 記憶的完整迴圈是「寫入、修改、召回、忘記」,而忘記是目前整個產業都還沒解好的那一塊。
  • 資料庫做了六十年,agent 才做了十八個月。現在沒有所謂正確答案,也還沒有一套企業可以買回去直接用的標準組合。

這集在二〇二六年九月一日發佈的 The Cognitive Revolution,主持人是 Nathan Labenz,影片公司 Waymark 的創辦人兼前執行長,這個節目基本上是 AI 圈的技術深潛站,找的都是真的在做東西的人,不太做那種空泛的趨勢對談。

來賓是 Pete Johnson,MongoDB 的 Field CTO of AI。他一九八一年六年級寫下第一行程式,在科技業待了三十幾年,現在的工作是幫企業的 IT 主管把 AI 的雜訊過濾掉,判斷哪些系統真的能上線。MongoDB 是全球最大的 NoSQL 資料庫公司,市值三百億美金上下,去年營收約二十五億,財星五百大裡有七成五在用它。二〇二五年二月,它花兩億兩千萬美金買下了做嵌入與重排序模型的 Voyage AI,這筆交易在這集裡被拆得很細。

磁碟很貴的那年,決定了今天資料長什麼樣

Pete 用一句話定位自己:「我跟 SQL 同齡。」一九七〇年六月,IBM 研究員 E.F. Codd 寫下那篇催生 SQL 的白皮書,同年二月他出生。

那個年代寫程式是什麼光景?公司有電腦的不多,有的話使用者通常就在同一層樓,朝九晚五,週末停機也沒人抱怨。而在記憶體、運算、儲存這三樣硬體裡,儲存是最貴的。

所以資料當然要正規化。他舉了一個很生活的例子:他跟太太住同一個地址。零售商要記這件事,正規化的做法是一張表放人、一張表放地址、第三張表把人跟地址連起來。地址只存一次,最省磁碟。

快轉到二〇〇七年十月,MongoDB 第一次 commit。中間隔了四十七年的摩爾定律,這個世界有網路、有雲、有手機,iPhone 剛在美國上市。這種應用不能週末停機、使用者不在同一棟樓、也不是朝九晚五。稀缺的東西從儲存變成了時間

於是同一個地址例子換了個解法:一份文件寫他跟地址,另一份寫他太太跟同一個地址。地址存了兩次,浪費了磁碟,換到的是一次讀取就拿完。原本要讀三次的東西現在讀一次。

這件事我覺得比任何技術細節都值得記住。所有的工程「最佳實務」背後都藏著一組當年的成本假設,假設變了,實務就該跟著變。但教科書不會自動更新,Pete 直接說教育體系有一種歷史偏見,叫做「你就是應該正規化」。這種慣性在資料庫界存在,在別的地方也一樣存在。

順帶澄清一個很多人搞錯的事:MongoDB 不是無綱要,是綱要有彈性。同一個集合(collection)裡的文件不一定要長一樣,你可以隨時加欄位。任何改過生產環境 SQL 綱要、被連鎖影響搞到半夜的人,大概能立刻理解這個差別有多重要。

一串浮點數,剛好可以塞進去

MongoDB 加向量搜尋的路徑滿有趣的,起點居然是關鍵字搜尋。

二〇二〇年他們發現一個現象:客戶會在 MongoDB 叢集旁邊自己架 Apache Lucene 伺服器,只為了對某幾個文字欄位做關鍵字檢索。既然大家都在做同一件苦工,那就內建吧,於是有了 Atlas Search。

接下來的推論很自然。向量是什麼?說到底就是一串浮點數。你把文字、圖片、聲音、影片丟進嵌入模型,回來的就是一個 float 陣列。而對一個文件模型來說,一個陣列就只是文件上多一個屬性而已。加向量搜尋,對他們來說等於在既有的彈性綱要上多掛一個欄位,再對這個欄位建索引。

真正的價值在組合起來之後。Pete 用一本書當例子:書名(文字)、封面網址、頁數(整數)、出版年(整數)、劇情簡介(文字)。你可以對書名做關鍵字搜尋、對簡介做向量搜尋,再用出版年當前置過濾,只看二〇〇〇年以後的書。三個槓桿同時拉。

以前這件事要打兩次 API、自己把兩份結果合起來排序。今年他們推出 rank fusion 跟 score fusion,一次呼叫,後端幫你做完兩種搜尋再依排名或分數合併,回來就是排好的結果。之後又加了 $rerank 跟 auto embeddings(文件欄位一改動,自動重跑嵌入、更新向量與索引)。

這條產品線的邏輯,跟PlanetScale 執行長講的那套其實同源:把開發者本來要自己維護的髒活收進平台,省下來的時間讓他去做真正的業務邏輯。

切多大塊?這題沒有標準答案,但有捷徑

RAG 管線裡最折磨人的一題是切塊。

切太細,比如切到一個句子,那句話就失去了上下文。你隨便從一本小說裡抽一句出來,其實看不懂在講什麼,要看到整段甚至整頁才有意義。那切大一點?儲存成本上升,而且檢索品質反而下降,因為你想找的是那一句,但塞了三頁進去,那一句就被稀釋掉了。

傳統做法就是土法煉鋼:切一個大小、跑測試、看檢索品質、換一個大小、再跑一次,來回三四輪找出平衡點。

Voyage 去年夏天提出的做法叫 contextualized chunking,思路很簡單但很聰明:與其把一大坨文字丟進去,不如丟兩段,一段是你真正要的那個句子,另一段是它的上下文資訊。模型回來給你一個向量,把兩件事平衡進去。結果是小塊也能拿到好的檢索品質,把「大塊才準」這個假設翻掉了。

同一套「幫你省掉試錯」的思路還出現在維度上。嵌入空間通常有兩百五十六到兩千零四十八個維度,維度越多越豐富、檢索越準,但儲存跟記憶體成本也越高。傳統上你想從一〇二四維改成五一二維,得把整份語料重跑一遍。

Voyage 的模型有一個叫 Matryoshka 的設計,名字來自俄羅斯娃娃:向量裡的浮點數是有順序的,你要五一二維,直接把後面五一二個砍掉就能用。省下來的不只是錢,是一整個實驗週期。

還有一個一月才推出的東西叫共享嵌入空間。他們發了 small、medium、large,外加一個開放權重、可以免費從 Hugging Face 下載的 nano。四個模型共用同一個嵌入空間,意思是用其中一個生出來的嵌入跟另外三個相容。實務上你可以用 large 把語料庫嵌入好,開發階段的查詢全部用 nano 在自己筆電上跑,開發期間的 token 成本直接歸零。品質會掉一點,但對成本敏感的團隊來說這是個很實際的選項。

Pete 有一句話我認為值得記下來:多數人以為嵌入模型已經商品化了,這不是真的。 在 Hugging Face 的 RTEB 基準上,換一個嵌入模型檢索品質可以差到一成四,再加上重排序器又能多拿五到一成。而一成四常常就是「模型胡說八道」跟「模型答對」之間的距離。他還補了一刀:Anthropic 自己沒有嵌入模型,他們推薦 Voyage。

那什麼時候該認真優化?Pete 給了三個門檻:毫秒對你的場景重不重要、規模有沒有到(大約十萬個向量)、檢索品質差一成四會不會出事。沒到的話,Postgres 加 pgvector 隨便配一個雲廠商的嵌入模型,其實也活得好好的。

Token maxing 那一季,跟「忘記」這個沒解的題

這一年半的鐘擺擺得很誇張。GPT-4 那個年代上下文視窗小,所有人被迫做 RAG;百萬 token 出來之後,一堆人喊「RAG 已死」;接著是 token maxing,每一輪 agent 迴圈都把上下文塞爆。

然後 Uber 用十三週燒完了二〇二六年一整年的 token 預算,這個新聞登上了頭條,token maxing 這個話題在四月就結束了。

但成本還不是最痛的。有學術研究顯示,上下文視窗裡最前面七千最後面七千個 token 最重要,中間那一大坨反而會干擾模型的判斷。所以現在的問題從「我怎麼塞滿一百萬個 token」變成「這一輪我該挑哪二十萬個」。

於是 RAG 又回來了,而且比以前更重要。這跟推論工程那條產線的邏輯是同一件事的兩面:一邊壓後端成本,一邊壓進去的東西的品質。

企業裡開始出現一些新的記憶類型。他提到一種叫分類記憶(taxonomic memory):每個產業、每家公司都有一堆外人聽不懂的黑話,假設你有一百個這種術語,與其每輪都把一百個塞進去,不如判斷這一輪只需要哪五個。下一輪再問一次。

比較成熟的記憶系統長這樣:你給它一個查詢加一個 token 預算,說「給我最好的五萬個 token」,它自己去混搭各種記憶類型湊出來。你拿去問模型,然後把答案送回記憶系統讓它整理寫入。做得好的還會加上權限控制,讓同職務的人共享彼此累積出來的記憶。

最難的是最後一步。Pete 引用同事的話,說整個迴圈是「write, change, recall, forget」,寫入、修改、召回、忘記。忘記為什麼難?因為記憶有半衰期,而系統不知道哪些東西過期了。

主持人講了一個很有畫面的例子:他自己的個人記憶系統裡,模型看到他曾經稍微試過一個專案,就把它當成「進行中的未完成事項」記了好幾個月。他只能一直跟模型說:兄弟,我根本沒做那件事,你可以忘掉了。

Pete 對這件事很坦白:「我們做資料庫做了六十年,做 agent 才十八個月,沒有人知道所有答案。」關於 agent 系統本身的耐久性問題,之前那篇談 durable agent 的文章也戳到同一個痛點,這個領域現在到處都是還沒鋪好的路。

他倒是有一個明確的警告:不要用「多跑幾輪 LLM 來幫你壓縮上下文」這種架構。那等於用貴的工具做便宜的事,token 一樣在燒,延遲還多了好幾層。壓縮跟排序這種活,交給嵌入模型跟重排序器。

選對問題,比選對模型重要一百倍

他今年跑了七個國家、談了大約一百家客戶,把企業分成三類。

第一類是「我買了一套工具,我的 AI 策略完成了」。第二類做了幾個概念驗證跟零星的生產部署,卡在投資報酬率算不出來。第三類在做記憶系統這種比較進階的優化。

他認為第二類卡住的原因,九成不是技術用錯,是問題選錯了。他給企業的篩選方式是三個問題連問:

你現在最大的十到十五個問題是什麼?其中哪些你有品質好的資料?哪些你已經有既有的衡量指標

第三個是最多人跳過的。沒有既有指標,你永遠不知道 AI 到底有沒有讓事情變好。客服中心之所以是熱門的第一站,就是因為每通電話的成本、通話量這些數字本來就在算,導入之後數字一跳,投資報酬率立刻能粗估出來。

他還說了一句我覺得該裱起來的話:資料品質差跟資安姿態差這兩件事,不會被 AI 解決,只會被 AI 放大。

軟體開發也是同一個道理。今年上半年一堆人在炫耀「我現在產出的程式碼是以前的五倍」。做過幾年的人都知道程式碼行數是爛到不能再爛的指標。真正該量的是從想法到正確部署要多久。

至於部署形態,他看到的財星五百大目前絕大多數還是「員工面向 + 人在迴圈裡」。原因很現實:如果我們是同一家公司的員工,我的薪水不小心讓你看到,那很糟;但如果我們是同一家公司的兩個客戶,我看到你的資料,那是要有副總搭飛機去道歉的等級。風險報酬比不一樣,所以順序自然不一樣。

今年最先進的客戶,在墨西哥城跟聖保羅

這集最讓主持人意外的是最後這段。

Pete 今年跑了阿姆斯特丹、倫敦、多倫多、班加羅爾、墨西哥城、聖保羅。他說每到一個國家,當地客戶都預設「美國同業一定在做我們沒做的事」。結果他發現剛好相反,他今年談過最先進的兩家客戶,一家在墨西哥城,一家在聖保羅

他的解釋不是說美國公司變保守了,而是門檻消失了。網路時代跟雲時代,如果超大規模雲廠商在你的國家沒有資料中心,你就是沒得玩;行動時代你沒有基地台,iPhone 給你也沒用。現在幾乎每個國家都至少有一座超大規模雲的資料中心,模型、向量資料庫、嵌入、重排序器的存取權基本上被拉平了。

這件事對台灣的意義很直接:你落後的部分不會是取得工具,而是選問題跟建資料的能力。而那兩件事,沒有人能替你做。


整集聽下來,最實用的一句大概是 Pete 提醒大家的那個時間感:資料庫這門手藝累積了六十年,agent 才十八個月,現在沒有 agent 版的 LAMP stack,也還沒有 React 或 Angular 這種讓所有人有共識的東西。誰要是跟你說他有一套企業買回去就能直接跑的標準答案,你可以先把警覺打開。

至於我自己最有感的,反而是那個關於「忘記」的討論。我們花了很多力氣在教 AI 記住更多東西,但真正決定一個系統好不好用的,可能是它有沒有本事把過期的、不再重要的東西放掉。這一點對系統是這樣,對人大概也是。

這類把技術跟商業一起拆開講的內容我會持續寫,訂閱 wilsonhuang.xyz 就不會漏掉。

Sources:

推薦閱讀

喜歡這篇文章嗎?

訂閱電子報,每週收到精選技術文章與產業洞察,直送你的信箱。

💌 隨時可以取消訂閱,不會收到垃圾郵件