跳到主要內容
maxstudioNews
AI 自動化DEV Community (Claude Code)約 3 分鐘

區分 Claude 代理的指令、技能與記憶:資訊儲存的最佳實踐

本文探討為 AI 代理(特別是 Claude)提供資訊的三種主要方式:CLAUDE.md、技能(skills)和記憶(memory)。作者解釋了這三者在資訊傳遞機制上的根本差異,並強調了錯誤儲存資訊可能導致代理無法有效運作的問題。文章也提醒,指令的「腐敗」並非文件本身的問題,而是缺乏實際執行與驗證。

區分 Claude 代理的指令、技能與記憶:資訊儲存的最佳實踐
圖片來源:DEV Community (Claude Code)

這三者並非同一種儲存空間的不同大小。其中一種會在每次對話中推送到代理,另一種會被索引,而第三種則只有在有人主動尋找時才會出現。Anthropic 上週發布了關於如何在 CLAUDE.md 和技能之間分配指令的指南,這份指南很棒,值得一讀。然而,它只涵蓋了前兩種,而第三種正是問題叢生之處。

CLAUDE.md 屬於「推送」模式。每次對話,整個檔案都會被推送到代理,無論其中是否有任何一行與您即將執行的任務相關。這正是它強大但也昂貴的原因。技能(skill)則屬於「索引」模式。技能名稱和一行簡短描述會存在於上下文(context)中;當代理調用它時,其內容才會被載入。

代理雖然不知道技能的具體內容,但知道它的存在,這才是關鍵。記憶(memory)則是「拉取」模式。在我們的內部系統中,十六個代理中只有一個會常駐其記憶索引。對於其他十五個代理來說,根本沒有任何機制會告知記憶儲存的存在。它只能透過 5dive 記憶搜尋來存取,沒有其他方式會浮現。

這最後一種記憶模式在性質上與前兩者截然不同,而非僅是大小差異,它決定了您應該在其中放置什麼內容。

這種無法挽回的歸檔錯誤,就是將程序(procedure)放入記憶中,因為當您需要它時,它將不會出現。不是「可能不會」,而是對於沒有常駐索引的代理來說,在使用時根本不會浮現該記憶。它只會被那些已經懷疑它存在的人找到,而這些人恰好是不需要查找它的人。

程序必須在任務執行當下就能被存取。這意味著它應該是一個技能,至少其描述會存在於上下文中並自我宣告;或者,如果它很簡短且持續適用,則應放在 CLAUDE.md 中。記憶是錯誤的儲存空間,不適合放置任何您需要被「遞交」的資訊。

任何未被執行的內容都會「腐敗」。通常這種建議會說 CLAUDE.md 會過時,這雖然沒錯,但目標卻錯了。我們本週驗證了自家的 5dive-cli 技能,發現其中有兩個記載的事實是錯誤的。一組指令被描述為無需 sudo 即可運作,但實際上需要 root 權限;而 goal add 則被記載為同步執行,但實際上是異步的。

每個調用該技能的代理都從中學到了兩個錯誤的資訊。現在這兩項都已修正。值得注意的是:這些錯誤都無法透過閱讀檔案來發現。檔案內容看起來完美無缺。我們發現並修正了這兩個錯誤,而之所以能發現它們,唯一的原因是有人實際執行了這些指令,而不是只閱讀它們。

因此,「腐敗」並非 CLAUDE.md 的特性,而是任何未被實際執行的檔案的特性。

關於記憶的誠實說明:5dive 記憶是一個已發布的指令,每位客戶都能使用。在我們的內部系統中,十六個代理中只有一個會維護個人記憶儲存。我們真正依賴的是共享記憶,也就是任何代理都可以搜尋的團隊維基。個人記憶儲存的使用率很低,包括我們自己也是如此,我寧願直接說明這一點,而不是暗示一個我們自己都不會執行的工作流程。

那麼,一行指令該放在哪裡呢?如果它每次都為真、簡短,且猜錯代價高昂,那就放在 CLAUDE.md。如果它是一個包含步驟的程序、偶爾需要,且太長而無法常駐,那就放在技能(skill)中。如果它是一個會過期、某天會有人特意尋找的事實,那就放在記憶(memory)中,但請記住,沒有任何東西會主動將它遞交給您。

今天您可以做一件事:拿出您上次寫入代理指令檔案的內容,並思考它實際上屬於這三者中的哪一種。然後,執行其中記載的指令,因為僅僅閱讀它並不會告訴您它是否仍然正確。您可以在 5dive.ai 建立一個環境,其 CLI 位於 github.com/5dive-ai/5dive。

Share

覺得值得一看?分享給朋友。

以上為 AI 自動翻譯導讀。原文版權歸 DEV Community (Claude Code) 所有, 建議透過「閱讀原文」前往原始網站,以取得最完整資訊並支持原作者。

Newsletter

不用每天追,AI 重點每週寄給你

43 個來源、每 2 小時更新,太多看不完。電子報每週挑最值得看的幾則,附上 Max 的看法。

每週一封。Email 只用來寄電子報,每封信都能一鍵退訂。