# Cascade Forget (級聯遺忘)

*沿血緣刪除派生物，按保留類處理歷史，並如實報告做不到的部分。*

> **Cascade Forget（級聯遺忘）** 是沿血緣的刪除：當一個來源被刪除，或有人要求被遺忘時，NAS 找出由它派生的一切，包括摘要、嵌入、引用它的筆記、快取和共享連結，刪除它們，或在不含該來源的情況下重新派生，並出具**報告**：做了什麼，哪些做不到。

**AN-09** · 符合性等級: L3 Guard · 概念組: 知識

## 要解決的問題

刪除一個檔案，並不會刪除它的嵌入、摘要，或記憶裡據此推出的事實；快照與備份還在；版本歷史裡內容依然存在。

「可恢復」與「可遺忘」是同一條軸的兩端，多數系統沒有把這個選擇交給人。如果在寫入之後才想起要忘，通常已經太晚。

## 工作方式

- **血緣。** 每個派生物記錄自己的輸入；反向索引回答「X 的所有依賴物」；筆記的 `sources` 欄位也是血緣。
- **保留類，在寫入時決定**（因為歷史無法事後改寫）：`scratch`（短 TTL，不進備份，執行結束即可清理）、`normal`（版本化，可恢復）、`sensitive`（獨立金鑰域，可以透過銷燬金鑰來粉碎）。
- **恢復與遺忘的張力。** 軟刪除視窗內可恢復；視窗過後才硬刪除；遺忘請求可以跳過視窗。
- **流程。** 請求（由人或運營者發起；智能體只能提出請求，不能執行），血緣遍歷，刪除派生物並對混合來源的事實重新派生，對 `normal` 類重寫受影響路徑的歷史並清理快照，對 `sensitive` 類銷燬金鑰，最後出具報告。
- **報告：** 刪除的檔案數、被移除的派生物、歷史是否重寫、被銷燬的金鑰、尚未過期的快照，以及**明確列出覆蓋不到的範圍**：NAS 之外的副本、模型提供商的日誌、模型權重。
- 總是經過 [Human Gate](https://agentnas.com/zh-tw/concepts/human-gate/)（或策略預授權）；**法律保留**會阻止遺忘並被記錄。

## 從小處開始

- 先做保留類和軟刪除，併為每個派生物記錄它的輸入。
- 先做到「刪除原始檔時，列出並刪除它的全部派生物」。
- 加密粉碎留給 `sensitive` 類，不必一開始就全量做。

## 介面草圖

僅作示意。欄位名在規範 v0.3 之前可能調整。

*forget-report.json*

```json
{
  "forget_id": "fgt_3b7c",
  "selector": { "paths": ["/shared/crm/acme/**"], "subject": "customer/acme" },
  "retention_class": "sensitive",
  "report": {
    "files_removed": 142,
    "derived_removed": { "embeddings": 3621, "summaries": 210, "notes_rewritten": 6 },
    "history": "rewritten (3 commits)",
    "keys_destroyed": ["key_acme"],
    "snapshots_pending": ["nightly-2026-11-10 (expires 2026-11-17)"],
    "not_covered": ["copies outside the NAS", "model provider logs", "model weights"]
  },
  "state": "pending_expiry"
}
```

## 規範的要求

- 遺忘**必須**沿血緣從來源傳播到每一個派生物。
- 保留類**必須**在寫入時指定（預設 `normal`）。
- 遺忘報告**必須**列出覆蓋不到的範圍：NAS 之外的副本、提供商日誌、模型權重。
- 法律保留**必須**阻止遺忘，並且**必須**被記錄。
- 智能體**可以**請求遺忘，但**不得**執行。
- 報告**不得**聲稱模型已經「遺忘」了什麼。

## 借鑑與區別

下面這些都是現成的。**真正新的部分：** 把**保留類**當作儲存的顯式屬性，並承認「能恢復」與「能遺忘」是同一條軸上的取捨。

- [OpenLineage](https://openlineage.io)
- [GDPR Article 17](https://gdpr-info.eu/art-17-gdpr/)
- [Long-term memory security survey (forget and rollback)](https://arxiv.org/abs/2604.16548)

## 坦誠的侷限

- 備份、NAS 之外的副本、模型提供商的日誌都不在範圍內。
- 對由多個來源混合推斷出的事實，「受影響範圍」很難界定。
- 重寫歷史的代價很高，也有風險。

## 開放問題

- 混合來源事實的受影響範圍怎麼界定？
- 法律保留與遺忘請求衝突時，流程應當怎樣走？

## 常見問題

### 它能讓模型忘記嗎？

不能，也不會這麼聲稱。它能做的是刪除 NAS 裡的檔案、派生物，以及（在 `sensitive` 類下）歷史與金鑰；模型提供商的日誌與模型權重不在範圍內，報告裡會明確列出來。

### 為什麼要在寫入時選保留類？

因為歷史難以事後改寫：已經進了備份和歷史的內容，只能重寫或等過期。寫入時決定它是 `scratch`、`normal` 還是 `sensitive`，是之後能刪得乾淨的前提。

### 智能體可以自己要求遺忘嗎？

可以提出請求，不能執行。遺忘不可逆，必須經過人或預授權的策略，而且法律保留會阻止它。

## 相關概念

- [Agent Memory (智能體記憶)](https://agentnas.com/zh-tw/concepts/agent-memory/): 筆記是你能讀能改的真相，索引只是可以丟棄的快取。
- [Flight Recorder (飛行記錄器)](https://agentnas.com/zh-tw/concepts/flight-recorder/): 以執行為單位、雜湊連結的記錄，包括這次執行讀過什麼。
- [Agent Branch (智能體分支)](https://agentnas.com/zh-tw/concepts/agent-branch/): 每次執行在寫時複製的分支裡工作，經審閱的合併才進入主線。

---

標準網址: https://agentnas.com/zh-tw/concepts/cascade-forget/
更新於: 2026-11-11 · 規範草案 v0.2 · CC BY 4.0
