大多數 AI Agent 失敗的原因不是模型不好。
它們失敗,是因為每次新對話都像失憶一樣從頭開始。
你跟 Claude 說:「我們用 pnpm,不用 npm。」
下次對話:它又試 npm。
你跟它說:「這裡不用預設匯出。」
下次對話:它寫了一個預設匯出。
你每次的修正,都會在對話結束時消失。
有一個單一檔案就能解決這個問題。
我花了三個月不斷重複同樣的指令才找到它。
以下是我學到的一切。
為什麼大多數 AI Agent 都會失敗

問題不在模型。
在於模型底下缺少的那一層。
→ 你寫提示詞
→ Agent 執行任務
→ 對話結束
→ 記憶消失
→ 下次對話:同樣的錯誤
→ 你重複同樣的指令
→ 永遠循環
這個循環是 AI 編碼中浪費時間的最大來源。
不是錯誤的程式碼,不是幻覺。
是重複。
缺少的那一層:記憶

每個人都執著於哪個模型最聰明。
搞錯層級了。
真正的升級不是更聰明的模型。
而是給模型一個地方儲存它學到的東西。
→ 提示詞 → 告訴 Agent 現在要做什麼
→ Agent → 執行任務
→ 記憶 → 跨對話持續保留上下文
→ 持續的上下文 → 不再重複修正
→ 學習系統 → Agent 真的會隨時間進步
這就是工具和隊友的差別。
工具是你說什麼它就做什麼,每次都從零開始。
隊友會記得昨天的事。
每個 AI Agent 需要的 5 個記憶檔案

一旦你接受記憶是缺少的那一層,接下來的問題就是:記憶存在哪裡?
五個檔案。每個有不同的任務。
→ CLAUDE.md — Claude 的個人簡報文件
→ AGENTS.md — 通用標準,每個主要工具都會讀取
→ CLAUDE.local.md — 你的個人偏好,不會提交到 git
→ MEMORY.md — AI 自動寫下的筆記,關於它自己
→ README.md — 給人類看的,不是給 Agent 看的
我們逐一來看。
CLAUDE.md — 這一切的起點

把這個檔案放在你的專案根目錄。
Claude 每次對話開始時都會讀取它。
把它想像成給一個失憶的新團隊成員看的簡報文件。
一個好的 CLAUDE.md 包含四個部分:
→ 專案背景 — 一句話。「Next.js 電子商務應用程式,整合 Stripe 和 Postgres。」
→ 程式碼風格 — 不是「格式化程式碼」,而是「使用 ES 模組、命名匯出、2 空格縮排。」
→ 指令 — 確切字串。pnpm test:integration,不是「執行測試。」
→ 架構 —「API 路由放在 /src/api/[resource]/route.ts。資料庫存取使用 Repository 模式。」
1# CLAUDE.md23## 專案背景4Next.js 14 電子商務應用程式。Postgres + Stripe 整合。56## 程式碼風格7- 僅使用 ES 模組8- 命名匯出,絕不使用預設匯出9- 2 空格縮排10- TypeScript 嚴格模式1112## 指令13- 安裝:pnpm install14- 開發:pnpm dev15- 測試:pnpm test:integration16- 語法檢查:pnpm lint:fix1718## 架構19- API 路由:/src/api/[resource]/route.ts20- 資料庫存取:僅使用 repository 模式21- 元件:/src/components,每個元件一個檔案
目標:少於 300 行。
每一行都在和實際工作競爭注意力。
執行 /init,Claude 會自動產生一個起始檔案。
然後刪掉大部分的內容。
預設檔案會包含 Claude 已經從你的 package.json 知道的東西。只保留那些沒有這個檔案 Claude 會搞錯的部分。
@imports 系統 — 保持精簡

CLAUDE.md 不需要容納所有東西。
它可以匯入其他檔案:
查看
@README .md 取得專案概覽 查看
@docs/api-patterns .md 取得 API 慣例 查看
@package .json 取得可用的 npm 腳本
匯入可以遞迴 — 最多 5 層。
這解決了「單一巨大檔案」的問題。
對團隊來說:前端團隊擁有 docs/frontend-rules.md。
安全團隊擁有 docs/security.md。
CLAUDE.md 只是匯入它們全部。
一個根檔案。多個專門的來源。
AGENTS.md — 通用標準

CLAUDE.md 只對 Claude 有效。
如果你的團隊也使用 Cursor、Copilot 或 Gemini CLI — 它們不會讀取 CLAUDE.md。
AGENTS.md 解決了這個問題。
一個檔案。每個主要的 Agent 都會讀取。
支援的工具包括 Claude Code、Cursor、GitHub Copilot、Gemini CLI、Windsurf、Aider、Zed、Warp 等等。
它是標準的 Markdown。不需要特殊的 schema,也不需要使用 YAML。
1# AGENTS.md23## 專案概覽4基於 Next.js 14、Postgres 和 Stripe 建立的電子商務平台。56## 建置與測試7- 安裝:pnpm install8- 開發:pnpm dev9- 測試:pnpm test10- 語法檢查:pnpm lint:fix1112## 程式碼標準13- TypeScript 嚴格模式14- 命名匯出優於預設匯出15- API 路由遵循 REST 慣例,放在 /src/api/1617## 測試需求18- 所有 PR 必須包含測試19- 單元測試使用 vitest,端到端測試使用 playwright
把它想像成給 AI Agent 看的 README。
README.md 是給人類看的。AGENTS.md 是給所有 Agent 看的,不論是哪一家廠商。CLAUDE.md 則是在上面加入 Claude 專用的額外內容。
它們是互補的,不是彼此競爭。
自動記憶 — 會自己寫筆記的 AI

這是最新也最有趣的一層。
Claude Code 現在會在你的工作階段中自動寫下自己的記憶檔案。
memory/ ├── MEMORY.md ← 索引,每次對話都會載入 ├── debugging.md ← 除錯模式的筆記 ├── api-conventions.md ← API 設計決策 └── ...
關鍵的轉變:
你寫 CLAUDE.md。你提供指令。
Claude 寫 MEMORY.md。它記錄下它學到的東西。
→ 人類寫規則
→ Agent 在工作中發現模式
→ Agent 寫下自己的記憶
→ 未來的對話從更高的起點開始
你可以直接觸發這個動作。在一個高效的對話結束時,只要說:
「用你今天學到關於我們程式碼庫的知識,更新你的記憶檔案。」
學到的東西會留存下來。不用再第五次重新解釋你的自訂 ORM 包裝器。
隨時執行 /memory 來檢視或編輯 Claude 儲存的內容。
先 /init 再刪除的工作流程

在新專案上啟動記憶檔案最快的方法:
- 在專案目錄中執行 /init
- Claude 會根據你的程式碼庫產生一個起始的 CLAUDE.md
- 刪掉你不需要的部分
第三步是大多數人搞錯的地方。
產生的檔案是草稿,不是成品。
它常常包含一些填充內容。「這個專案使用 JavaScript。」謝謝 — 從 package.json 就能看出來。
從合理的草稿中編輯刪減,比從空白檔案開始寫要好。
設定好之後,有機地逐步建立。
當 Claude 做出錯誤假設時 — 例如它一直匯入一個已棄用的套件 — 不要只修正它一次。
告訴它:「加到我的 CLAUDE.md:總是從 @company/utils-v2 匯入,不要從 @company/utils。」
這個指令會持續存在於未來的每一次對話。
每隔幾週,請 Claude 檢視並清理 CLAUDE.md。
指令會累積。有些會變成多餘的。有些會彼此衝突。快速整理一下可以保持精簡。
我的實際設定

在跨越多個正式專案測試過這一切之後,以下是留下來的做法:
→ AGENTS.md 放在專案根目錄 — 任何 AI 工具都會讀取的共用指令。包含建置指令、程式碼標準、測試需求。
→ CLAUDE.md 使用 @imports 引入 Claude 專用的行為。保持在 100 行以下,大部分指向 docs/ 目錄中的檔案。
→ CLAUDE.local.md 存放個人偏好 — 我的測試資料、沙箱 URL、快捷指令。絕不提交到 git。
→ 啟用自動記憶。 Claude 會自己寫筆記。我每月檢視一次。
→ 其他所有東西都用符號連結取代,指向 AGENTS.md。單一事實來源。
1# 多工具一致的符號連結設定2ln -sfn AGENTS.md .github/copilot-instructions.md3mkdir -p .cursor/rules && ln -sfn ../../AGENTS.md .cursor/rules/main.mdc
不優雅。
但它消滅了團隊中每個工具之間的指令偏差。
更大的轉變

大多數開發者認為:
更好的模型 = 更好的 Agent。
錯。
真正的公式是:
模型 + 記憶 + 檢索 + 回饋 = 有用的 Agent
一個更聰明的模型但沒有記憶,明天還是會忘記你的測試指令。
一個普通的模型但有很好的記憶,每週都會變得更敏銳。
記憶是複利變數。
模型智慧則不是。
我對 AI 工作流程做出的最大改進,不是切換模型。
而是給模型一個記憶。
差別在於:
「Claude,我們用 pnpm」 — 每一次對話
和:
「Claude 已經知道了」 — 每一次對話
這正是工具和隊友之間的差距。
如果這篇文章對你有幫助:
→ 分享出去,讓每個還在對 Claude 重複說同樣話的開發者都看到
→ 追蹤 @sairahul1 獲取更多能在你睡覺時持續累積的系統
→ 把這篇收藏起來 — 今晚就設定好,明天就不用再修正了
我寫關於 AI、打造產品,以及不需要你也能運作的系統。





