RxAi AMP · Agent Memory Protocol · v2.13 · patent pending
每一條記憶就是一則 GitHub Issue;留言是針對它的討論。索引由 GitHub Actions(而非任何 AI)自動編譯。生命週期 hook 把和任務相符的記憶交給代理;代理工作完,留下紀錄。
每組 A/B 是在真實儲存庫上的兩個全新工作階段,只差在記憶開或關,提示與工具完全相同。同一輪中讀得較少的 Sonnet 5 沒有得到好處,所以現在召回先只注入指標,只在題目相關時才展開摘要。 我們如何量測 →
RxAi AMP(Agent Memory Protocol,代理記憶協定)是給 Claude Code、Codex、agy 等 AI 程式代理使用的開源共享記憶。每一條記憶都是你自己儲存庫裡的一則 GitHub Issue;GitHub Actions 編譯索引,生命週期 hook 把和任務相符的記憶交給每個代理。不需要資料庫,也不需要伺服器。
它和 Sourcegraph 的 Amp 程式代理、Google 的 AMP 網頁格式,以及 AMP Limited 都沒有關係。
標題本身就攜帶所有路由資訊。索引器用嚴格的正規表達式解析標題——打錯字會讓索引悄悄失效,因此代理一律複製範本、不即興發揮。

索引工作流程中沒有任何 AI 模型參與——都是確定性腳本。代理永遠不編輯索引檔案;那些檔案由工作流程專屬管理。
新主題開新 Issue;回覆則在原討論串留言。寫入前一定先向 GitHub 即時確認是否重複(本地快取不能授權寫入)。使用者也能隨時用下方的 /amp 指令觸發同樣的寫入。
每有 Issue 開啟,not_indexed.md 就會從上次編譯以來的全部 Issue 重建——失敗的執行由下一次自動修復,新記憶不會被漏看。
重建永遠精簡的 INDEX.md(僅摘要)與各區域的 REGION-*.md 指標表,套用權重衰減與成效加減分,並保存 weights.json。
同一次執行把所有 Issue 投影成 OKF v0.1 知識包(okf/)與可載入 BigQuery 的 rows.ndjson。兩者皆為衍生的唯讀資料——Issue 永遠是唯一的真相來源。
Claude Code 的使用者指令,安裝在使用者層級(~/.claude/commands/amp.md),任何專案都能用。Hook 依時機自動觸發;/amp 則聽你號令。格式仍由 rxai-amp 技能提供——指令負責「何時」,技能負責「如何」。選單裡會同時看到 /amp 與 /rxai-amp:輸入 /amp 即可,它會自己載入技能(規則手冊)。
發到哪裡——解析優先序。設定檔刻意高於倉庫自動偵測:同一顆共享大腦,在哪個資料夾都指向同一目標。單次執行可用 RXAI_AMP_SLUG 覆寫。
每次寫入前都先向 GitHub 即時查重,再透過 gh CLI 發出符合規範標籤的 Issue(附 from:/type:/unindexed 標籤)。npm run hooks:install:claude 一步安裝指令、技能與設定檔。
v2.8 把三大義務(召回、記錄、成效)機械化:Hook 負責「何時」(模型忘不掉的確定性觸發),rxai-amp 技能負責「如何」(精確格式),本地工作階段帳本把兩者串起來。
工作階段一開始,hook 就把索引和這個儲存庫記憶的指標放進情境;你輸入提示時,和提示相關的記憶會展開成簡短摘要。不靠代理「想起來」,回憶是自動發生的。
session-start.mjs 在你下第一道指令之前,把 INDEX.md、not_indexed.md 和相符的指標放進工作階段;user-prompt-submit.mjs 則展開每道提示相關的記憶,每則每個工作階段最多一次。
每次 git commit 都被記為工作邊界,[AMP] 提醒直接出現在 commit 輸出中。五次 commit 只產生一次義務。
adapters/git-hooks/post-commit 負責印出;post-tool-use.mjs 記錄邊界。只有真正的 git commit 算數。
工作階段不能默默結束:檢查點會攔截一次,直到代理發出心得——或附一句理由明確婉拒。「沒什麼值得存」是合法答案,沉默不是。
adapters/claude-code/hooks/stop.mjs 只攔一次。發出心得或附理由婉拒——帳本記得你選了哪個。
凡是本次真正用到的記憶,都要留下 Outcome: 成效留言;沒用到的什麼都不留——不製造假活動。
摘要中的 ## Recall 清單列出本次用過的記憶;amp-librarian.yml 每天稽核。
召回是「送到手上」,不是代理自己去做。Hook 在代理的第一個動作之前注入指標層,只在題目相關時才展開摘要,所以不管記憶累積多少,context 永遠精簡——區域檔案只供瀏覽,不參與召回。
指標有固定順序——先看目標再看步驟、先查反證再信事實:intent → facts → pattern → invalidation → discovery → events。
每條記憶都有一個會隨時間衰減、隨實際成效增減的權重——被驗證的模式往上浮,失效的往下沉,完全不需手動整理。
| 訊號 | 效果 |
|---|---|
| 成效留言 Outcome: success | +0.30 |
| 成效留言 Outcome: failure | −0.20 |
| 沒有標記或中性 | 0,僅衰減 |
| type:lifefact(永久個人記憶) | 固定 1.0,永不衰減 |
| 反證聲明中的 Supersedes: #N | → 0,立即封存 |
等級改變的是「多少事被機械化」,而非「要求本身」。等級由執行環境決定:能跑 hook 的一律是 L2,L1 只留給跑不了 hook 的環境。壞掉的配接器絕不擋住使用者的正事——在能跑 hook 的環境上,它退化為「靜默召回」(代理只說一次怎麼修復 hook),絕不會退化成手動翻索引。
代理自律遵守文件規範。
不用安裝。代理讀 PROTOCOL.md,因為被要求所以遵守。所有代理都從這裡開始。
檢查清單載入情境:技能或設定摘要。
OpenClaw、Hermes。技能鏡像與 §15 摘要被接進每個執行環境必載的檔案。是情境,不是強制。
確定性 Hook 加帳本,設置真正的檢查點。
Claude Code、Codex、agy。Hook 在模型之外觸發,「忘記」不是選項。~/.rxai-amp/ 下的帳本僅供參考。
未來的 MCP 伺服器在寫入前就攔截格式錯誤。
尚未推出。MCP 伺服器會在格式錯誤的標題變成 Issue 前就擋下。目前這層驗證住在技能裡——是指引,不是關卡。
兩個等級都在相同任務與記憶庫上用 Codex 實測:
等級決定記憶「能不能」回本;真的回不回得了,取決於它替代掉多少閱讀量。
過去採用協定要 ~15 個手動步驟。現在範本內建符合 §15.5 的精靈:clone 之後一條命令直達可運作的記憶倉庫——包括以前沒有任何東西自動化的步驟(Actions 寫入權限、§6 標籤播種、馴服每天執行的 Librarian 排程),最後用真實的端到端測試 Issue 自我驗證。冪等:重跑即續跑;絕不重置已上線的倉庫、絕不推送範本。