跳到內容

記憶與知識庫使用說明

AI 員工會自己記住東西,也可以照你的吩咐把知識整理成頁面。這兩件事在儀表板的「記憶與知識」同一頁,但底層是兩套不同的系統,用法和時機都不一樣。這一頁把完整用法講清楚。

一句話分辨:

  • 記憶:它自己記下來的。你不用開口,實質對話會自動萃取重點存進去。
  • 知識庫:整份留下來的文件。你貼章程、SOP、規格書這類長期參考資料時,它會自動整理成一頁;你也可以直接說「記到知識庫」明確指定。知識庫就是 wiki,同一個東西。

記憶 知識庫(wiki)
怎麼進去 自動累積,不用交代 貼章程/流程/規格這類文件時自動建檔;也可以明講「寫到知識庫」
存成什麼 一條一條的事實 一頁一頁的 Markdown 文件
分類方式 系統自動歸類主題 目錄(資料夾)+你給的頁面路徑
舊資訊怎麼辦 同一件事有新版本會自動接替,保留歷史;舊的那條來源更可信時,新說法改送審核 覆寫整頁;自動建檔的頁面會在頁尾留一行版本紀錄(見 2.4),手動寫入的頁面沒有
什麼時候被想起 三類自動帶入,其餘要它主動查 L0/L1 每次自動帶入,L2/L3 要它主動搜尋
誰能看到 只有這位 AI 員工自己 個人知識庫只有自己;共享知識庫全公司可讀
適合放什麼 對話中冒出來的零散事實、偏好、決策 退貨規則、報價流程、產品規格這類要長期查閱的內容

挑選原則很簡單:要能查、要能改、要給別人看的,寫知識庫;其他讓它自己記就好。


不需要進儀表板編輯,也不需要記語法。在任何接通的頻道(LINE/Telegram/Discord/Slack/網頁對話)對 AI 員工說:

幫我把退貨規則記到知識庫:七天內未拆封可退,運費由買方負擔。
今天查到的三篇論文重點整理成一頁放知識庫,標題叫「RAG 檢索方法比較」。

它會建立一頁 Markdown,自動更新索引 _index.md,並在 _log.md 留一筆操作紀錄。

沒說「知識庫」會怎樣? 看內容。你貼的如果是章程、標準作業程序、規格書、政策辦法這類長期參考資料,它會自己判斷並建檔(見 2.4);一般對話、提問、當下的交代則只會以記憶的形式存在。判斷偏保守:它寧可漏建一頁讓你補一句,也不會把閒聊寫成文件。明講「記到知識庫」永遠有效,這條路沒有變。

2.2 分類:目錄由它自動選,你也可以指定

Section titled “2.2 分類:目錄由它自動選,你也可以指定”

每個知識庫預設有四個目錄,AI 員工寫入時依內容自己挑:

目錄 放什麼 例子
entities/ 人、公司、產品、客戶 entities/wang-ming.md
concepts/ 領域概念、流程、原則 concepts/return-policy.md
sources/ 原始資料的摘要 sources/2026-07-30-rag-papers.md
synthesis/ 跨主題的分析、比較、趨勢 synthesis/vendor-comparison.md

想指定就直接說:「放在 concepts/ 底下,檔名叫 return-policy」。沒指定時它按上表歸類,檔名用 kebab-case。

2.3 層級:決定這頁「多常被想起」

Section titled “2.3 層級:決定這頁「多常被想起」”

每一頁的 YAML frontmatter 有一個 layer 欄位,這是知識庫最關鍵的設定:

層級 值 行為
L0 身分 identity 每次對話都自動帶入
L1 核心 core 每次對話都自動帶入
L2 情境 context 不自動帶入,搜尋才會用到
L3 深層 deep 不自動帶入,搜尋才會用到(預設值)

沒寫 layer 的頁面一律當 L3。所以一頁「寫進去了但它好像沒在用」的知識,多半就是停在 L3。要它每次都記得,在對話裡說「把這頁設成核心層」或「layer 設 core」。

同一頁還有 trust(0.0–1.0 信任分數),搜尋排序會依信任分數加權,人工審核過的內容排前面。

2.4 自動建檔:不用開口的那條路

Section titled “2.4 自動建檔:不用開口的那條路”

貼一份文件進來、AI 回一句「好的我記下來了」,這種情況以前什麼都不會留下。現在它會先判斷這段文字是不是長期參考資料,是的話自動整理成一頁。

判斷依據(都符合才會建檔,門檻刻意設高):文件性名詞(章程、辦法、規範、SOP、規格書、手冊…)、條號或編號結構、足夠的長度、標題行。反過來,第一人稱偏好(「我喜歡…」)、時效性交代(「明天提醒我…」)、連續提問都會扣分,不會被當成文件。

自動建檔的頁面放在哪:你自己這位 AI 員工的知識庫,auto/ 底下依類型分五個資料夾:章程 auto/charter/、流程 auto/sop/、規格 auto/spec/、政策 auto/policy/、其他 auto/reference/。你手動整理的目錄(entities/、concepts/、sources/、synthesis/)自動建檔永遠不會碰。

自動頁跟你確認過的頁不一樣:

  • 頁面開頭有一段提示,說明這頁是自動整理、未經人工確認。
  • 內容逐字保留原文,不會被改寫(章程、合約這類文字失真的代價太高)。
  • 不會自動帶入對話。自動頁停在 L2 情境層,AI 要主動搜尋才看得到。所以就算它判斷錯了,也不會污染每一次回答。
  • 搜尋排序權重比人工頁低很多。

同一份文件貼第二次會更新同一頁,不會長出第二頁,頁尾的「版本紀錄」會多一行。

在哪裡管理:儀表板「記憶與知識 → 策展台 → 自動建檔」。每一頁可以:

動作 效果
檢視 看整頁內容與版本紀錄
確認為正式知識 這頁升級成你核可的內容,開始每次自動帶入對話
分享到共享知識庫 複製一份到共享區,其他 AI 員工也讀得到
移除 這頁從知識庫消失,收進封存區可還原

想整個關掉自動建檔:在該 AI 員工的知識庫目錄放一個 .scope.toml,宣告 [namespaces.auto] mode = "operator_only",之後就只有你手動寫得進去。

  • 個人知識庫:~/.duduclaw/agents/<員工>/wiki/,只有這位 AI 員工讀得到。
  • 共享知識庫:~/.duduclaw/shared/wiki/,全公司的 AI 員工都讀得到。公司規章、共用 SOP、產品規格放這裡。

要寫到共享區就明說:「這條放共享知識庫,讓大家都看得到。」

個人版只有一個知識庫,儀表板上不會出現「個人/共享」的分頁切換。


這是最容易誤會的一段。取用分兩種路徑:

自動帶入(L0 + L1):每次對話開始前,系統會把身分層和核心層的頁面依當前問題的相關度排序,在 6 KB 預算內塞進系統提示。同一個對話 session 內,選中的頁面會固定 15 分鐘不換,這樣才吃得到 prompt 快取。你什麼都不用做。

主動搜尋(L2 + L3):其餘頁面要 AI 員工自己判斷「這題該查知識庫」,呼叫搜尋工具找出來。搜尋是全文檢索,依信任分數與來源類型加權排序。

所以要不要主動提醒? 一般不用。L0/L1 的內容它每次都看得到;L2/L3 的內容,只要問題裡有關鍵字,它通常會自己去查。

有兩種情況值得補一句:

  1. 它答錯或答得含糊,而你確定知識庫裡有正確答案 → 說「查一下知識庫再回答」。
  2. 問題用詞和頁面用詞差很遠(例如頁面寫「退貨政策」,你問「東西不想要了怎麼辦」)→ 直接提頁面名稱最快。

來源 記什麼 儀表板分類
對話蒸餾 實質對話中的事實、決定、偏好 依內容歸到工作/客戶/偏好等
關鍵事實 跨對話重複出現的重點 觀察洞察分頁
學習訊號 預期與實際落差(它答得好不好) 學習訊號
使用足跡 你的應用程式使用時長與活躍時段(需開啟) 使用足跡
錯誤歸納 同類錯誤累積後歸納出的規則 規則與決策

不會記的:打招呼、「好」「收到」這類簡短確認、沒有實質內容的閒聊。系統有一層零成本的分類器先擋掉。

重複的也不會再記一次(v1.53 起):語意層的新寫入會先跟既有記憶比對相似度,內容幾乎一樣的會被擋下並記錄一筆遙測,避免同一件事累積成幾十條近似記憶稀釋檢索品質。既有記憶的正常更新(改口取代舊說法、再次確認)不受影響;你在儀表板手動整理的記憶也不經過這道閘。想關掉可在 config.toml 設 [memory] novelty_gate = false(預設開啟)。

三段內容每次對話自動帶入系統提示:

  • 關於你的關鍵事實(私人對話才帶,群組共用的 session 會擋掉,避免把個人資訊帶進公開場合)
  • 過去犯過的錯(未解決的同類錯誤)
  • 學到的規則(從錯誤歸納出來、通過驗證期的規則,最多三條。v1.53 起,只有附帶實際執行證據的錯誤紀錄才會參與歸納——AI 員工「自己說自己錯了」但查無對應工具紀錄的,不會被拿來產生規則)

其餘記憶要 AI 員工自己判斷需要並執行搜尋。檢索排序同時看相關度、重要性與「多久沒被想起」,常被回想的記憶會活得更久。

同一個主題有新說法時,舊的那條會被標記為「已被取代」,新的接上去。展開任何一條記憶可以看到完整的取代鏈,也可以查「某個時間點當時的答案是什麼」。所以改口不需要先刪舊的,直接講新的就行。

例外(v1.67.1 起):聊天中的說法無法取代來源更可信的事實,例如你在儀表板核准過的內容,或用 migrate from 匯入的內容。新說法會先擱著,儀表板「收件匣」出現一筆審核項目,並排顯示目前內容與新說法。核准就用新說法取代舊的;拒絕就捨棄新說法。這類項目只能在儀表板決定,期限 24 小時。細節見記憶智慧。

在記憶清單上把滑鼠移到任何一條,右邊會出現垃圾桶圖示,點兩下(第二下是確認)就刪掉。刪掉的記憶立刻從搜尋、瀏覽和對話帶入中消失。

底層是軟刪除:資料會移到封存表,管理者仍可從資料庫救回,超過保留期才真正清除。

4.5 忘記對話、排程執行或匯入檔案

Section titled “4.5 忘記對話、排程執行或匯入檔案”

有人要求你讓 AI 員工忘掉他說過的話,或是某次排程執行、某次匯入把不該留的內容放進了記憶,就用這個流程。逐條刪除(4.4)只能刪掉你看得到的那幾條。這個流程會刪掉由同一個來源產生的所有記憶,包含從它衍生出來的,並阻止同一個來源再被學進去。下面的指令都在你自己的終端機執行,不能在員工的工作階段裡執行。

開始前:指令只認得來源紀錄功能裝上之後寫入的記憶。更早的記憶沒有來源紀錄,計畫會顯示它們的數量(沒有完整來源紀錄的記憶),但不會刪。這個數量也包含派工時 bus 訊息只帶了一半上游對話身分的記憶:它們仍記著這次派工是來源,但忘記上游那段對話時碰不到它們。

  1. 列出來源。
終端機視窗
duduclaw memory forget-source list --agent sales-rep

輸出每一段對話一行(一系列排程執行、一個匯入檔也各算一行):對話代號、方括號裡的來源種類(聊天訊息、員工自行存入=員工在一輪對話中自己存的、排程/派工執行、外部 MCP 用戶端、匯入、足跡)、帶著這個來源的記憶筆數,以及最近一筆的寫入時間。同一筆記憶在一行裡只算一次,就算它在這段對話裡有好幾個來源。要看某一段對話裡的各則訊息或各次執行:

終端機視窗
duduclaw memory forget-source list --agent sales-rep --session <session>

這時每一行是一則訊息或一次執行,行尾的 → --message <值> 就是要交給 --message 的值。員工在某一輪對話中自己存的記憶,會併在觸發那一輪的使用者訊息底下(含員工在這一輪自行存入的記憶),因為忘記那則訊息時會一起忘記;記錄裡對不到觸發訊息的回合,才會單獨列成一行 turn:。

--agent 是員工 id;MCP 用戶端使用的記憶命名空間則寫 external/<client> 或 internal/<client>。

  1. 建立計畫。 依你要忘記的東西挑一種:
要忘記什麼 指令
指定幾則訊息 duduclaw memory forget-source plan --agent sales-rep --session <session> --message 812,815
整段對話(到現在為止) duduclaw memory forget-source plan --agent sales-rep --session <session>
一次排程或派工執行 duduclaw memory forget-source plan --agent sales-rep --session <session> --message run:<key>
一個匯入檔案 duduclaw memory forget-source plan --agent sales-rep --session import:/path/to/file

--message 填 list --session 箭頭後面的值:訊息序號(寫 812 或 m:812 都可以,指的是同一則),或 run:<key> 這類代號;turn:、call:、item:、day: 開頭的代號也照樣填。忘記一則使用者訊息時,同一輪的員工回覆也會一併忘記,因為回覆常常複述使用者的話;員工在那一輪自己存的東西也一樣,那一輪算同一個來源,之後只帶回合代號的寫入同樣會被擋。忘記整段對話時,涵蓋其中每一輪。--show-snippets 會在畫面上印出每筆記憶的前 60 個字(不會存起來)。--max-rows 與 --ttl-minutes 調整筆數上限(預設 50,000 筆)與計畫的有效時間(預設 30 分鐘,最長 1,440 分鐘)。

plan 不會刪任何東西。它記下計畫、送出核准請求,並印出計畫。請看這幾段(指令輸出是中文,下面引用的片語就是它的原文):

  • 將刪除 N 筆記憶、N 筆關鍵事實、N 份封存副本、N 個自動建檔頁面:會刪什麼。每個目標那一行會顯示記憶編號、種類與層級,以及是怎麼被找到的:直接(這筆記憶本身就來自該來源)或 衍生(它是從來自該來源的東西整理出來的)。
  • 同一輪的員工回覆也一併忘記 與 個回合也一併設為不再學到:同一輪的回覆,以及員工在那一輪自己存的東西,都屬於同一個來源。show 與 apply 的預覽也會印出同樣的行。
  • 壓縮摘要:一段對話只有一份壓縮摘要,沒辦法只拿掉其中一則訊息或一次執行的部分,所以每份計畫都會清掉整段對話的摘要(排程執行就是整段 cron:<員工> 對話)。輸出會說明這件事。
  • 連帶影響:同時支撐某筆待刪記憶的其他來源。這些記憶會整筆刪除,所以另一個來源說過的話也會一起消失。只是被那個來源再次提到的記憶會保留(保留,僅移除佐證紀錄)。
  • 需要人工檢視:員工自己寫的 wiki 頁,記錄的來源命中。它們不會被刪,請你打開來決定。
  • 對話紀錄:員工之後不再看到的訊息數。原文仍留在對話紀錄裡。
  • 其他命名空間也記錄了同一段對話:給記錄了同一段對話的其他員工的現成 plan 指令。每一個都要各自建立計畫並核准。員工替這一輪接手工作時存的記憶,照這個指令也刪得到,就算第一份計畫已經套用過。
  • 套用時會設下 N 筆防止再學到的紀錄:套用會寫下幾筆封鎖紀錄。忘記一段很長的對話時,員工每一輪有存東西就各一筆,數字可能上千。
  • 不在範圍內:這個指令碰不到的東西。每次都要讀(見本節最後的清單)。
  1. 在儀表板核准。 管理員打開儀表板的待辦清單,核准計畫輸出裡指名的那筆請求。卡片只顯示數量與來源標籤,不顯示記憶內容,並註明這筆請求來自本機指令列。核准綁定這一份計畫,通道上的按鈕不能核准。

要在不套用的情況下查看進度:

終端機視窗
duduclaw memory forget-source apply --plan <plan-id>

不加 --confirm 時,這會再印一次計畫,外加一行 核准狀態:,說明核准是等待中、已通過還是已失效。

  1. 套用。
終端機視窗
duduclaw memory forget-source apply --plan <plan-id> --confirm

成功時會印出刪除了幾筆記憶、幾筆關鍵事實、幾份封存副本,接著是後續步驟的結果。後續步驟在記憶資料庫之外進行:刪除自動建檔的 wiki 頁、撤回審核卡、對員工隱藏被忘記的訊息,以及清除該對話的壓縮摘要。

  1. 後續步驟沒做完時。 結果是 DEGRADED(結束碼 3),代表記憶已刪除、封鎖紀錄已設好,但有些後續步驟失敗。執行:
終端機視窗
duduclaw memory forget-source resume --plan <plan-id>

運作中的 gateway 也會在開機時與之後每 10 分鐘重試未完成的步驟。沒有剩下要補跑的步驟時,resume 會直接說(沒有需要補跑的後續步驟)。

計畫過期或資料變了。 套用被拒絕,訊息是 計畫已過期,或說明計畫之後資料有變,就代表沒有刪除任何東西。因為過時而被拒時,訊息會把同時成立的原因都列出來:同一個命名空間又做過一次刪除、記憶有新增/消失/改變,以及計畫裡其他有變的部分(例如審核卡或對話紀錄)。不會改變套用內容的寫入,例如背景封存舊記憶、其他員工也記下同一段對話,不會讓計畫過時;套用結果會並列兩個參考數字(沒有完整來源紀錄的記憶 與其他命名空間的引用數)在計畫時與套用時的值。先暫停該員工,重新執行 plan,再取得新的核准。核准與計畫一起到期,所以過期的計畫一定要重新建立。

大計畫。 計畫超過 5,000 個目標時,apply 會鎖住記憶庫數秒,計畫輸出也會這樣提醒。套用前先暫停該員工。

這個流程不做的事。

  • 它刪除由該來源衍生的記憶,並阻止系統再從同一個來源學習。它不會刪除對話原文(員工只是不再看到)、已送出的訊息、備份,或其他員工收到的內容。
  • 內容仍可能經由這個指令碰不到的地方回到員工面前:每一輪都會放進提示的工具呼叫紀錄與錯誤筆記、任務看板與 /goal 文字、工作狀態、Agent Mail、目標狀態與判官回饋、交接副本、員工之間轉交的回覆、其他種類的審核卡、使用者家目錄下 Claude CLI 自己的對話紀錄、每次回覆後寫下的強化學習軌跡檔(rl_trajectories.jsonl 與 rl_trajectories/ 目錄,裡面是整段對話原文,而且沒有能對應到要刪哪則訊息的編號)、共用 wiki 副本,以及員工自己寫的 wiki 頁。這些頁面不會被刪:功能裝上之後寫的頁面會列出來讓你檢視,更早的頁面沒有記錄來源,所以根本不會列出。透過 Gemini CLI runtime 存進去的記憶沒有綁到對話,碰不到;Grok 員工的記憶是否綁到對話,還沒有驗證。
  • 一輪對話要能對到觸發它的使用者訊息,前提是員工在那一輪至少存過一筆記憶(只是重述既有記憶的寫入也算)。員工那一輪什麼都沒存,紀錄裡就沒有這個對應,忘記那則訊息時,之後只帶那一輪回合代號的寫入不會被擋;忘記整段對話時仍然涵蓋。
  • 通道回覆先交給本機模型處理(inference_mode = local)時,員工在那一步透過工具存的記憶沒有綁到對話,忘記對話時碰不到。
  • 員工之後在新的對話裡重新得知同樣的內容,算新資訊,不會被擋。
  • 用忘記之前的備份還原,被刪的記憶會回來,封鎖紀錄也會消失。用過這個功能之後,不要降回沒有這個功能的版本。
  • 在 config.toml 設 [memory] forget_source = false 會停止建立新計畫與套用。儀表板核准沒有開關,不會因此關閉。

你想做的事 做法
讓它記住我喜歡簡短回覆 直接講,會自動進記憶
建立退貨政策讓它每次都照著回 寫知識庫,並設 layer: core
整理今天查到的論文重點 寫知識庫,放 sources/
全公司 AI 員工都要遵守的規章 寫共享知識庫
修正它記錯的事 直接講新的,舊的會自動被取代;舊的來源更可信時,到儀表板收件匣核准審核項目
移除一條錯誤記憶 記憶頁滑鼠移過去點垃圾桶
讓它忘記整份知識 到知識庫刪除那一頁
有人要它忘記一段對話、一次排程執行或一個匯入檔案 依來源忘記,見 4.5
貼一份公司章程讓它以後查得到 直接貼,會自動建檔;在策展台確認為正式知識後每次都會帶入
移除一頁自動建檔的內容 策展台 → 自動建檔 → 移除

Q:知識庫跟 wiki 是不同東西嗎? 同一個東西。介面上叫「知識庫」,底層檔案結構與 MCP 工具名稱沿用 wiki。

Q:要跟 AI 員工說「寫到知識庫」嗎? 貼章程、SOP、規格書這類文件時不用,它會自己建檔(見 2.4)。其他情況要說。判斷不確定時它偏向不建檔,所以想確保留下頁面,明講一句最快。

Q:知識庫可以分類嗎?還是它會自動分類? 兩者都成立。四個預設目錄由它依內容自動選,你也可以指定路徑。層級(L0–L3)預設是 L3,要調就明講。

Q:什麼狀況下會取用知識庫?要主動提醒嗎? L0/L1 每次自動帶入,L2/L3 靠它主動搜尋。一般不用提醒;答錯或用詞落差大時,說一句「查一下知識庫」最有效。

Q:記憶跟知識庫的內容重複了怎麼辦? 知識庫優先。系統帶入時會比對,已經出現在知識庫頁面裡的事實不會再從記憶重複帶一次。

Q:記憶會無限成長嗎? 不會。長期沒被回想、重要性低的記憶會逐步封存;被頻繁引用的會留下來。