# Grok Build 跨工作階段記憶：設定與限制

> 說明如何啟用記憶功能、筆記的儲存位置，以及 /flush、/remember、/dream 和 /memory 的運作方式。也涵蓋設定優先順序、確認狀態和刪除項目的方法。

Source: https://ailoot.ai/blog/zh-hant-tw/grok-build-memory/
Canonical: https://ailoot.ai/blog/zh-hant-tw/grok-build-memory/
Language: zh-Hant-TW
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-111
Revision: sha256-3256db8cda6142f204a960edd6ee634fcbaae383a72cc04b0dd17b1efe2c43e3


Grok Build 是 xAI 的終端機代理程式，具備跨工作階段記憶功能：它可以記住專案慣例、決策和成功的除錯步驟，並在新工作階段中自動將相關內容加入上下文，不必再次提醒。此功能預設為關閉，且仍屬實驗性功能；只要設定一個選項即可啟用。

本文說明根據截至 2026 年 9 月 20 日 `xai-org/grok-build` 儲存庫中的官方指南撰寫。原文作者沒有實際操作產品；文中機制是依據文件說明，而非個人測試結果。

[如需 Ailoot 使用方式的實用資訊，請參閱文件](https://ailoot.ai/docs/)。

## Grok Build 的記憶功能有什麼用？

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="本節重點">

重要重點

沒有記憶功能時，新的 Grok Build 工作階段不會取得先前工作階段的任何資訊：無論是你說明過的慣例，還是你做過的決策，都不會帶入，除非它們已記錄在儲存庫的指示檔案中。啟用記憶功能後，代理程式會搜尋已儲存的筆記，並自動將相關筆記加入新工作階段的上下文。筆記以一般 Markdown 檔案儲存，你可以閱讀和編輯。

</div>

例如，你在某個工作階段告訴代理程式，專案使用兩個空格縮排、資料庫遷移要用獨立命令執行，而且某個特定模組負責處理付款。到了新工作階段，你就得再次提供這些資訊。

啟用記憶功能後，Grok Build 可以：

- 回想你先前說明過的專案慣例；
- 使用已經奏效的除錯步驟；
- 將架構決策帶到後續工作階段；
- 不再詢問已經回答過的問題。

此功能仍屬實驗性功能，且預設為關閉。啟用前，代理程式的行為不會改變。

## 如何啟用記憶功能？

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="本節重點">

重要重點

若只要在單次執行時啟用，請設定環境變數 `GROK_MEMORY=1`。若要持續啟用，請在 `~/.grok/config.toml` 加入 `[memory]` 區段，並設定 `enabled = true`。啟用後，若要在開始工作時載入已儲存的筆記，請以 `/new` 開啟新的工作階段。

</div>

**僅啟用一次：**

```bash
GROK_MEMORY=1 grok
```

這個變數只適用於此次執行。執行 `export GROK_MEMORY=1` 命令後，設定會保留在目前的 shell 中，並讓從該 shell 執行的後續 `grok` 命令都啟用記憶功能，直到終端機工作階段結束，或你執行 `export GROK_MEMORY=0` 為止。

<strong>透過設定檔永久啟用：</strong>在 `~/.grok/config.toml` 加入以下內容：

```toml
[memory]
enabled = true
```

<strong>在工作階段中切換，不必重新啟動：</strong>開啟 `/memory`，然後按 `t`。

此切換只適用於目前的工作階段，不會寫入設定檔。你可以用它啟用或停用記憶功能。停用後，記憶工具將無法使用，但磁碟上的檔案不會被刪除；再次啟用時，就能重新存取儲存內容。不過，若 `GROK_MEMORY=0` 強制停用整個程序的記憶功能，此切換無法覆寫該設定：整個工作階段期間都無法使用 `/memory`。

如果在多個位置設定了選項，其優先順序如下：

- `GROK_MEMORY=0` 會強制停用整個程序的記憶功能，優先順序最高。
- 若設定檔明確設為 `enabled = false`，即使受管理的遠端設定啟用了記憶功能，也會將其停用。
- 可透過 `GROK_MEMORY=1`、設定檔中的 `enabled = true`，或受管理的遠端設定啟用記憶功能。
- 如果沒有指定任何設定，記憶功能便會關閉。

筆記會在工作階段的第一個回合加入。若你在工作途中才啟用記憶功能，並希望代理程式開始使用已儲存的專案資訊，請執行 `/new`。你可以在 `grok inspect` 的輸出中確認記憶功能是否已啟用。

## Grok Build 會記錄哪些內容？儲存在哪裡？

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="本節重點">

重要重點

筆記以 Markdown 檔案儲存在 `~/.grok/memory/`：供所有專案使用的全域 `MEMORY.md`、每個專案各自的 `MEMORY.md`，以及工作階段記錄。工作階段結束時的自動摘要不會呼叫模型；詳細筆記則透過 `/flush` 和 `/remember` 建立；`/dream` 會依主題整理不同的項目。

</div>

`~/.grok/memory/` 目錄結構：

| 位置 | 範圍 | 內容 |
|----|----|----|
| `~/.grok/memory/MEMORY.md` | 全域 | 所有專案的事實與偏好 |
| `~/.grok/memory/` + 含雜湊值的專案目錄 + `/MEMORY.md` | 專案 | 特定儲存庫的慣例與上下文 |
| `~/.grok/memory/` + 含雜湊值的專案目錄 + `/sessions/` | 工作階段 | 個別工作階段的摘要與記錄 |

專案目錄名稱會加上儲存庫識別碼的短雜湊值。識別時會使用格式為「organization/repository」的 `origin` 遠端；若不是 Git 儲存庫，則使用目錄路徑。因此，同一儲存庫的複製版本和工作樹（Git 分支的獨立工作副本）會共用同一份專案記憶：代理程式在一個副本中記住的內容，在另一個副本中也能使用。

項目會透過以下四種方式建立：

1. **工作階段結束時自動摘要。** 工作階段結束時，Grok Build 會將簡短的服務摘要儲存到每日記錄：包括訊息數量、最多五段最初的實質交流內容，以及日期和時間。摘要由中繼資料產生，不會呼叫模型，也不會造成延遲。太短的工作階段會略過：如果實質交流少於三段，或你的文字少於 50 位元組，就不會建立項目。摘要不包含使用過的工具、檔案路徑或命令。可以透過 `session.save_on_end = false` 設定停用自動摘要。
2. **`/flush`——依要求建立詳細筆記。** 使用此命令時，模型會從目前工作階段摘要出最重要的重點：決策、模式、除錯步驟和 API 發現。摘要會寫入附有日期的記錄，並建立索引供未來的工作階段使用。文件建議在上下文壓縮前、成功完成除錯的工作階段結束時，以及發現重要模式後執行 `/flush`。
3. **`/remember`——明確要求記住某件事。** 輸入 `/remember 傳送 PR 連結後一律開啟`，或告訴代理程式「記住……」。寫入項目之前會開啟確認面板：只有在你確認後才會儲存筆記，動態消息中會顯示 `Memory saved to ~/.grok/memory/MEMORY.md`。專案資訊會寫入該專案的 `MEMORY.md`；所有專案共用的資訊則會寫入全域檔案。
4. **`/dream`——彙整。** 此命令會依主題整理零散的記錄和筆記，並移除重複內容，讓搜尋更準確。與 `/flush` 一樣，彙整由模型執行：模型會讀取累積的項目，並依主題重新整理，因此你應定期透過 `/memory` 檢查結果。此功能也有自動模式：預設情況下，Grok Build 會在啟動時和每小時檢查條件；當至少經過 24 小時，且累積至少 5 個工作階段時，就會開始彙整。你可以在設定檔的 `[memory.dream]` 區段調整門檻。

筆記會透過 SQLite 索引搜尋：預設使用全文檢索 FTS5；如果設定了嵌入模型，也會加入語意向量搜尋。

## 記憶如何載入新的工作階段？

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="本節重點">

重要重點

在工作階段的第一個回合，Grok Build 會搜尋與專案相關的記憶項目，並自動加入上下文，不需要你再次提醒。自動上下文壓縮後也會再次搜尋。較舊的工作階段項目會標上新鮮度檢查標記。

</div>

初始載入使用 `min_score = 0.9` 的選取門檻；你可以在 `[memory.initial_injection]` 區段修改。自動上下文壓縮後，代理程式會再次搜尋記憶，還原可能隨較早交流內容一併從上下文移除的資訊。

你也可以直接問代理程式：「你記得什麼？」它會依來源整理答案：全域偏好、專案知識和工作階段歷史。

工作階段項目會附上新鮮度標記。工作階段記錄中的項目越舊，越會明確標示「依賴這項資訊前，請先確認它是否仍然有效。」全域和專案的 `MEMORY.md` 檔案不會加上這種標記：它們的內容預期會長期使用，因此你需要自行監控其正確性。

## 如何檢視、編輯和刪除筆記？

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="本節重點">

重要重點

`/memory` 命令會開啟所有記憶檔案的總覽，並顯示預覽。你可以使用任何文字編輯器編輯檔案；修改內容會在下次搜尋時讀取。「忘記……」這類要求不保證一定成功；若要可靠地移除特定項目，請直接編輯檔案。

</div>

在工作階段中執行 `/memory` 命令，會開啟一個視窗，依範圍分組顯示所有記憶檔案：全域、專案和工作階段（依時間倒序排列）。左側是檔案清單，右側是所選檔案的唯讀預覽。

總覽中的實用按鍵：

| 按鍵 | 操作 |
|----|----|
| `↑`/`↓` 或 `j`/`k` | 在清單中移動 |
| `/` | 篩選清單 |
| `y` | 複製所選檔案的路徑 |
| `x` | 刪除所選筆記（再按一次確認） |
| `t` | 啟用或停用記憶功能 |
| `Esc` | 關閉視窗 |

此視窗可以刪除個別筆記和工作階段檔案，但無法刪除自動產生的 `MEMORY.md` 索引（全域和專案索引）。

另一種方法是直接編輯檔案。檔案位於 `~/.grok/memory/`，可以用任何編輯器開啟。系統會追蹤目錄中的變更：新建和修改的檔案會重新建立索引，刪除的檔案則會在下次搜尋時從索引移除。

「忘記 snake_case」這項要求不保證一定成功：模型會搜尋並移除符合的項目，但可能會漏掉一些。若要確保刪除，請開啟檔案（在 `/memory` 中按 `y` 即可方便地複製路徑），然後手動移除該項目。你也可以從命令列清除所有記憶：使用 `grok memory clear` 清除專案記憶，使用 `grok memory clear --global` 清除全域記憶，使用 `grok memory clear --all` 清除兩者。

## 記憶功能與儲存庫指示檔案有何不同？

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="本節重點">

重要重點

你可以撰寫 CLAUDE.md 或 AGENTS.md 等指示檔案並放入儲存庫，讓團隊透過 Git 共用。Grok Build 代理程式會自行維護記憶筆記，並將它們儲存在 `~/.grok/memory/`，也就是儲存庫以外的位置：這些筆記是個人資料，不會透過 Git 共用。

</div>

儲存庫指示會與所有參與專案的人共用，也能在程式碼和變更記錄中看到。記憶會隨著工作階段逐漸累積，儲存在你的電腦上，不會自行發布。

記憶功能不能取代指示檔案。整個團隊和所有代理程式都需要遵守的一般專案規則，仍然適合放在儲存庫中。我們另有一篇指南，介紹如何讓 Claude Code、Codex 和 Cursor 共用同一份指示檔案：[一起使用 AGENTS.md 和 CLAUDE.md](https://ailoot.ai/blog/zh-hant-tw/agents-md-claude-md-one-instruction-file/)。記憶功能則用來保留個人上下文：你的偏好、已經嘗試過的做法，以及最後做出的決策。

Claude 也有類似的區分：我們在文章[Claude 記憶功能與 CLAUDE.md](https://ailoot.ai/blog/zh-hant-tw/claude-memory-claude-md-auto-memory/)中說明記憶功能和 CLAUDE.md 的差異。若要比較工具本身，請參閱[Grok Build 或 Claude Code](https://ailoot.ai/blog/zh-hant-tw/grok-build-vs-claude-code/)。

## 限制與確認記憶功能是否正常運作

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="本節重點">

重要重點

此功能仍屬實驗性功能：命令和設定可能會變更。啟用記憶功能後，若要在第一個回合載入筆記，請以 `/new` 開啟新的工作階段。有些項目是由模型建立，因此請定期檢查筆記，並指示它不要記住機密資訊。

</div>

請留意以下限制：

- **實驗性狀態。** 命令、門檻和行為可能會在未來版本中變更；如果運作方式不如預期，請查看儲存庫中的記憶指南。
- **新工作階段的初始載入。** 啟用記憶功能後，請使用 `/new` 開始工作，讓已儲存的筆記在第一個回合加入。
- **由模型判斷哪些內容重要。** `/flush` 摘要由模型建立，筆記內容也由模型選擇。每隔一、兩週開啟 `/memory` 檢查累積的內容，並刪除不需要的項目。
- **不要要求它記住機密資訊。** 金鑰、權杖和密碼不應放在長期保留的筆記中：`~/.grok/memory/` 的檔案以純文字儲存。如果記錄了敏感資訊，請編輯檔案將其移除。
- **不同儲存庫副本共用專案記憶。** 如果代理程式在某個複製版本中記住的內容，對另一個版本來說已經過時，清理時請考量共用目錄的情況。

如果記憶功能無法運作：

1. 檢查 `grok inspect` 的輸出，確認記憶功能已啟用。
2. 確認 `GROK_MEMORY=0` 或設定檔沒有停用記憶功能。
3. 若要診斷，請執行 `RUST_LOG=debug GROK_LOG_FILE=/tmp/grok.log grok`，並查看 `/tmp/grok.log` 中與記憶功能相關的行。

## 簡要總結

Grok Build 記憶功能可透過 `GROK_MEMORY=1`，或在 `~/.grok/config.toml` 中設定 `[memory] enabled = true` 來啟用。若要在啟用後首次載入筆記，請以 `/new` 開啟新的工作階段。代理程式會將筆記寫入 `~/.grok/memory/`：工作階段摘要不會呼叫模型，詳細摘要透過 `/flush` 建立，明確要求記住的項目則會在你確認後透過 `/remember` 建立，而 `/dream` 會整理出按主題分類的內容。你可以透過 `/memory` 和直接編輯檔案來檢視和整理筆記。此功能仍屬實驗性功能，請對照官方指南確認門檻和命令，並定期檢查筆記。

<div class="section" role="doc-bibliography" aria-label="來源">

### 來源

- Grok Build，官方「Cross-Session Memory」指南（使用者指南，第 13 章）：<https://github.com/xai-org/grok-build/blob/main/crates/codegen/xai-grok-pager/docs/user-guide/13-memory.md>
- Grok Build，xAI 在 GitHub 上的儲存庫：<https://github.com/xai-org/grok-build>

</div>

若要有系統地工作，**AI 分身 + 第二大腦 + 上下文工程**這種組合很有幫助。



[開啟 Ailoot](https://ailoot.ai/)。

## 常見問題：Grok Build 跨工作階段記憶：設定與限制

### 開啟記憶後，保存筆記為什麼沒出現？

筆記在新工作階段第一回合加入。啟用後開新工作階段，用 grok inspect 查狀態；以 GROK_MEMORY=0 啟動的程序，不能透過工作階段開關啟用記憶。

### 關閉記憶會刪掉檔案嗎？

不會。停用只移除記憶工具存取，Markdown 筆記仍留在磁碟。需要刪除項目時，應另外查看或編輯儲存筆記。


## Ailoot · 公司及其專案組合

Ailoot以累積的營運經驗、廣大的客戶群、穩定的服務及持續的KPI管理為基礎。

公司及其專案組合：數百萬客戶，每月銷售額達數十億。

Ailoot將這些營運經驗用於API存取，讓客戶的產品、代理、應用程式及自動化流程使用AI功能。
