權威記憶寫錯比沒記憶更危險:怎麼核對
幾個月前我在《多 Agent 協作架構:怎麼讓 4 個 AI 不打架》裡,把「用 markdown 檔案當共享記憶體」捧成整個架構最核心的設計。這篇要拆穿這層記憶自己的漏洞:那條專門用來壓幻覺、還被注進最高優先級的權威定義,自己把 UltraProbe 的 25 個防禦向量記成了 12。錯的權威記憶,比沒有記憶更危險。
《Agentic Design Patterns》第 8 章講記憶管理。核心一句話:agent 要主動維護自己的長期記憶,還要偵測記憶裡的缺口,而不是被動存一堆對話了事。
我們讀完,點頭。龍蝦對外問答有一層「知識錨點」:把高風險名詞的硬定義,以最高優先級注進 prompt,逼模型照抄權威定義,別自己瞎掰。記憶管理,實作完成。然後我們稽核了那層記憶本身。這一章的真相是:專門修幻覺的那條記憶,自己又記錯了一個數字。而錯的權威記憶,比沒有記憶更危險。
這個錨點是怎麼長出來的
2026-06-30,有人問龍蝦「AVS 是什麼」。它很有自信地答:AVS = Agent-based Virtual System。整句都是編的,正解是 AI Visibility Score(SEO×0.35 + AEO×0.35 + AAO×0.30)。那天檢索命中一段提到 AVS 的部落格,但那段只提到、沒定義它,模型就自己補了一個聽起來很像那回事的展開。「不知道就說不知道」這條 fallback,壓不住模型硬掰一個合理答案的衝動。
修法是加一個 concept anchor:把「AVS = AI Visibility Score」以最高優先級注進 prompt,還附一句「禁止用通用 LLM 知識或從來源推論」。從此 AVS 那格答對了,看起來乾淨俐落。
稽核錨點本身的那一天
我們把整份錨點檔攤開,逐格跟事實核對。AVS 那格對,問題出在旁邊那格。錨點裡寫「UltraProbe = AI 安全掃描器(12 防禦向量)」,可是我們自己另一份權威紀錄寫的是 25(12 個 LLM 時代向量 + 13 個 agent 時代向量)。兩份都掛著「權威」兩個字,同一個事實差了一倍,哪個對得另外查。
真正嚇人的不是差多少,是這個數字被放的位置。它不是「參考資料」,是注進 prompt 最高優先級、還綁著「禁止用通用知識或從來源推論」的硬注入。不管對不對,模型都被強迫照抄、還被禁止懷疑。你本想用它壓掉幻覺,結果只要數字是錯的,就等於發了一張蓋官方章的幻覺,還關掉了模型原本那點猶豫。沒有記憶時模型至少會說不確定,有一條錯的權威記憶,它斬釘截鐵覆誦錯的那個。
(AVS 這梗第 19 章也出現過,但那次是 LLM 評審自己幻覺、把對的判成錯。這次是記憶層把一個數字固化成「權威定義」。同一個縮寫,兩層不同的病。)
先花幾分鐘查你自己的權威記憶
01 你錨點裡的每個數字,跟官方源頭對過嗎 把知識庫裡所有「數字型事實」撈出來:向量數、價格、帳號數、版本號,一條條回唯一源頭核對。不是問「這條記憶在不在」,是問「這條記憶對不對」。
# 把 anchor 裡的數字型定義撈出來,逐條回源頭核對
grep -noE '[0-9]+ ?(個|防禦向量|向量|帳號|模板|%|元)' lib/rag-concept-anchors.js
紅旗:同一個事實在兩個「權威」檔案裡數字不一樣,而你答不出哪個對。
02 你的記憶是「注入最高優先級、禁止懷疑」的那種嗎,那它更要對 記憶分兩種:一種模型可以參考、可以推翻;一種被硬注進去、明令照抄。後者錯了越致命,因為它連模型的懷疑一起關掉。翻 prompt 找那種「最高優先級、禁止推論」的段落,那裡每個字都必須核對過。
# 找 prompt 裡「必須照此、不准懷疑」的高權威注入段落
grep -niE '最高優先|highest.?priority|禁止|must use|do not infer' lib/*.js prompts/*
紅旗:有一段「必須照此定義、不准懷疑」的注入,但裡面的內容從沒被人逐字核對過。
03 有沒有一支東西在偵測「哪些高風險名詞根本沒有權威定義」 記憶管理不只是存對的,還要偵測缺口。當年 AVS 會被幻覺,根因就是那個名詞當時「沒有 anchor」。列出所有答錯代價很高的名詞,逐個檢查有沒有權威定義,缺的補上(交人工,別讓系統自動改 live 記憶)。
# 拿真正的查詢函式去問每個高風險名詞有沒有 anchor,列出缺口
node -e 'const{getAnchorDefns}=require("./lib/rag-concept-anchors.js");
["AVS","UltraProbe","定價","退費"].forEach(t=>getAnchorDefns(t)||console.log("缺 anchor:",t))'
紅旗:你能列出十個「答錯就出事」的名詞,卻沒有任何一支東西在檢查它們是不是都有權威定義。
我們實際做了什麼
我們寫了一支 memory-reflect.sh,純唯讀,每次做兩件事。一,拿真正的查詢函式去問 17 個高風險名詞有沒有 anchor,列出缺口,7/04 就這樣補進了 UltraGrowth、Quartz、DropPin、Atlas 幾個原本裸奔的名詞。二,讀第 19 章語意心跳的分數,掉分就當知識退化的訊號。刻意的設計是缺口只列出來、交人工補,絕不讓它自動改線上 RAG,因為讓系統自動改自己的記憶,等於讓幻覺自我繁殖。
至於 12 還是 25 那一格,得講老實話:反思抓得到「缺不缺」anchor,抓不到「對不對」。把數字對回源頭,還是得人坐下來一格一格核,這正是記憶管理最難、也最容易被跳過的一半。
權威記憶體檢清單
對你自己的記憶/知識庫跑一遍:
- 錨點裡每個數字(向量數、價格、版本),都回官方源頭核對過嗎
- 同一個事實有沒有散在多個「權威」檔案、彼此數字打架
- 有沒有一段「最高優先級、禁止推論」的注入,內容卻沒被逐字核對
- 有沒有一支東西在偵測「高風險名詞缺不缺權威定義」
- 補記憶是人審後才進,還是系統自己偷改 live 記憶
- 你分得清楚「這條記憶在不在」跟「這條記憶對不對」是兩件事嗎
這一章的四句話
- 記憶管理不是把對話存好就好,是主動維護對的記憶、偵測缺口。缺口讓模型硬掰,錯的記憶讓模型自信地掰。
- 錯的權威記憶,比沒有記憶更危險。沒記憶時模型會猶豫,有錯記憶時它斬釘截鐵。
- 被注進最高優先級、還禁止模型懷疑的記憶,威力越大,錯了越致命。那裡的每個數字都要核對過。
- 「這條記憶在不在」和「這條記憶對不對」是兩件事。反思系統通常只查得到前者,後者要人親手核。
原始碼位置:~/.openclaw/scripts/lib/rag-concept-anchors.js(AVS 的 concept anchor + 2026-07-04 memory-reflect 補進的缺口)、~/.openclaw/scripts/memory-reflect.sh(唯讀記憶反思:查 anchor 覆蓋度 + 讀第 19 章心跳分數,缺口交人工補)。UltraProbe 那格寫 12 防禦向量,我們自己的向量帳本寫 25,兩份「權威」對不上帳。
這是《Agentic Design Patterns》× 龍蝦艦隊系列。我們照書把一人公司的 AI agent 艦隊系統化,然後對自己做對抗式稽核。宣稱做到的每一章,都被重新驗證過一次,也把查法和改法整理成你能照著跑的步驟。這個系列的可信度,來自我們願意公開自己打臉自己。