PerchAI
運作方式

記憶

Perch 同時執行三套記憶系統:你擁有的專案檔案、透過混合搜尋檢索的長期帳號記憶,以及從你的更正中擷取的學習內容。本頁說明各系統的用途,以及內容如何送達模型。

多數代理框架只提供一套記憶系統,通常是你手動編輯的檔案。Perch 執行三套系統,而且它們的工作確實不同。專案檔案保存某項工作的常設規則。長期記憶保存跨越所有工作的、關於你的資訊。學習擷取會將你的更正轉為記憶,不必由你寫下來。

本頁說明這三套系統,以及最重要的部分:它們的內容究竟如何在某一輪送達模型,以及你如何確切看見送達了哪些內容。

簡要說明

你擁有的檔案保存規則。長期記憶保存 Perch 對你的了解。更正會回饋到記憶中。每一輪都會有一個受預算約束的納入步驟,決定哪些內容能放進視窗,並向你展示理由。

第一層:專案記憶

專案記憶存放在磁碟上,位於你正在工作的資料夾中。它是純 Markdown,由你擁有,不必透過 Perch 就能讀取或編輯其中任何內容。

路徑保存的內容
.perch/PERCH.md專案手冊。Perch 在這個資料夾中每一輪都遵循的常設指示。
.perch/memory/*.md個別記憶檔案,每個檔案保存一項事實或筆記。
.perch/rules/專案規則,與一般敘述分開保存,以便嚴格套用。
~/Documents/Perch/PERCH.md全域手冊。適用於每個資料夾,不只這一個。

你會告訴新加入專案的同事的任何事情,都適合放在 PERCH.md:這個案件的慣例、這位客戶的輸出格式、重要路徑,以及未先詢問就絕對不能碰的事項。Perch 在該資料夾的每一輪都會讀取它,並優先遵循其中內容,而不是自己的預設規則。

當你要求 Perch 記住某件事時,它可以自行寫入這些檔案,但結果一律是你能開啟的檔案。專案記憶沒有任何部分對你隱藏。

除了檔案,桌面應用程式殼層也會為當輪提供資料夾範圍的中繼資料:專案名稱、你的筆記、記憶摘要與偏好的根目錄。因此 Perch 在讀取任何檔案之前,就知道自己位於哪個專案。

第二層:長期記憶

長期記憶屬於帳號層級,而不是資料夾層級。它保存你在專案與介面之間移動時仍有效的資訊:你的角色、慣例、偏好的結果呈現方式,以及你已告訴 Perch 一次、應該不必再重複的事實。

它不是每次都貼進提示詞中的一大塊內容,而是一組個別卡片。每一輪都會執行檢索步驟,決定哪些卡片值得佔用 token。

檢索如何運作

Perch 同時以兩種方式搜尋長期記憶,並合併結果:

  • 語意搜尋使用嵌入向量,即使用字不同,也能找到與當輪意思相同的卡片。
  • 稀疏關鍵字搜尋捕捉嵌入向量經常模糊處理的精確詞語、名稱與識別碼。

兩份排序清單會透過倒數排名融合合併,因此兩種方法都給予中等偏高排名的卡片,會勝過只有其中一種方法特別偏好的卡片。融合分數再依卡片本身的信心與寫入時間的新近程度調整,最後納入排名最高的結果。

如果嵌入向量無法使用,檢索會按順序降級,而不是失敗:先混合搜尋,再僅用語意搜尋,再僅用稀疏搜尋,最後只依新近程度。檢索涵蓋率會變差,但當輪絕不會因此中斷。

每張卡片帶有哪些資訊

每張納入當輪的長期記憶卡片都帶有自己的中繼資料,讓系統可供檢視,而不是像魔法一樣:

  • 類型與範圍,說明是哪一種記憶,以及適用範圍有多廣。
  • 新鮮度標籤,以及過時旗標,當卡片太舊,不應在未檢查前直接信任時,就會標記。
  • 信心分數,以百分比表示。
  • 截短旗標,當卡片為了符合當輪的記憶預算而必須縮短時,就會設定。
  • 檢索到它的原因,從搜尋步驟一路保留。

第三層:從更正中學習

第三套系統不需要你操作。當你更正 Perch 時,該更正會被擷取為一個事件。學習擷取會讀取這些事件,並可據此提出新的永久記憶。

這是只記得你在設定頁輸入什麼的工具,與會記得你曾告訴它「你錯了」的工具之間的差別。更正 Perch 一次,就是設計上用來教它的方式,你不必再另外找地方寫下這個教訓。

記憶如何送達模型

三套記憶系統只有在內容實際進入模型上下文時才有用,而困難在於上下文有限。Perch 用 token 預算下、有先後順序的通道來處理。

每一輪,內容會被呈現到具名通道中,再依序納入,直到預算用完。通道包括專案記憶、永久記憶、對話證據、工具證據、檔案、工具、選定的技能與選定的模型,並為模型自己的輸出預留空間,讓長回答絕不會被自己的上下文截斷。

兩個特性值得了解:

  • 納入與否有明確決定。 某項內容未能進入當輪時,這是附有記錄理由的決定,而不是悄悄丟棄。
  • 每個區段都有理由。 每份納入的上下文都有簡短說明,解釋為何放在那裡;略過的區段也會記錄未納入的原因。

通道與壓縮整理是不同的事

通道決定每一輪開始時,哪些內容進入視窗。壓縮整理決定長時間執行逼近上限時,哪些內容移出。兩者都需要,它們處理的是同一個問題的兩端。

查看 Perch 的工作依據

因為每個納入的區段都帶有通道、標籤與理由,桌面應用程式可以呈現全部內容。Context Window 面板會逐列顯示當輪的上下文,每張長期記憶卡片都有自己的一列,帶有狀態、新鮮度與信心。

每個代理工具最終都會引出「它為什麼這麼做」的問題,而這就是答案。你可以查看模型實際收到什麼。

保持掌控

專案記憶就是一般檔案。你可以開啟、編輯、刪除,或與專案其餘內容一起納入版本控制。長期記憶的範圍限定於你的帳號,並隨你跨越網頁聊天、桌面應用程式與 CLI,因此 Perch 在一個介面學到的內容,也可在其他介面使用。

當較新的敘述與較舊的敘述衝突時,Perch 會優先採用較新的。更正 Perch 就是更新機制,設計上就是這麼簡單。