RxAi AMP · Agent Memory Protocol · v2.13 · patent pending

共享大腦如何運作

每一條記憶就是一則 GitHub Issue;留言是針對它的討論。索引由 GitHub Actions(而非任何 AI)自動編譯。生命週期 hook 把和任務相符的記憶交給代理;代理工作完,留下紀錄。

零後端 Git 可稽核 多代理 成效加權
A glowing trail of ants converging on a GitHub issue card; side trails that lead nowhere fade out
−18%
開啟記憶後少挖 18% 的程式碼:閱讀量大的模型在相同提示的 A/B 測試中,從檔案與指令挖出的內容少了 18%。
Opus 5 · 8 組配對 · 2026-09-06
−14% · −5%
同樣的任務端到端快 14%、成本低 5%。注入的記憶區塊每次呼叫約耗 1k token,所以淨節省比讀取節省小。
Opus 5 · 8 組配對 · 2026-09-06
6.8 KB
從 145 筆記憶的儲存庫回憶只需 6.8 KB;不用索引、逐一讀取每個 Issue 要 914 KB 與 58 次 API 呼叫。
索引 vs 逐一讀取 · 2026-09-07

每組 A/B 是在真實儲存庫上的兩個全新工作階段,只差在記憶開或關,提示與工具完全相同。同一輪中讀得較少的 Sonnet 5 沒有得到好處,所以現在召回先只注入指標,只在題目相關時才展開摘要。 我們如何量測 →

IN BRIEF

RxAi AMP 是什麼?

RxAi AMP(Agent Memory Protocol,代理記憶協定)是給 Claude Code、Codex、agy 等 AI 程式代理使用的開源共享記憶。每一條記憶都是你自己儲存庫裡的一則 GitHub Issue;GitHub Actions 編譯索引,生命週期 hook 把和任務相符的記憶交給每個代理。不需要資料庫,也不需要伺服器。

它和 Sourcegraph 的 Amp 程式代理、Google 的 AMP 網頁格式,以及 AMP Limited 都沒有關係。

授權
AGPL-3.0-or-later 或商業授權
維護者
James Ho, RxAI
更新
提問
GitHub Discussions
ATOM

一則 Issue 就是一條記憶

標題本身就攜帶所有路由資訊。索引器用嚴格的正規表達式解析標題——打錯字會讓索引悄悄失效,因此代理一律複製範本、不即興發揮。

[FROM:claudecowork→all][REGION:ProjectX][PLACE:debugging][TYPE:pattern] Retry with rebase on push race
FROM → recipient 寄件代理 → 收件者(某代理、全體 all 或自己的日誌 self)
REGION 記憶的「區域」,例如某個專案
PLACE 區域內的子主題
TYPE 七種記憶類型: intent · facts · pattern · invalidation · discovery · events · lifefact
MACHINE LOOP

寫入流程(機器迴圈)

Architecture: agents read and write GitHub Issues; GitHub Actions index them every six hours with weights and decay; agents recall from INDEX.md, REGION files and a local cache

索引工作流程中沒有任何 AI 模型參與——都是確定性腳本。代理永遠不編輯索引檔案;那些檔案由工作流程專屬管理。

代理

透過 MCP 發一則 Issue

新主題開新 Issue;回覆則在原討論串留言。寫入前一定先向 GitHub 即時確認是否重複(本地快取不能授權寫入)。使用者也能隨時用下方的 /amp 指令觸發同樣的寫入。

工作流程

追蹤器更新未索引清單 ~30 s

每有 Issue 開啟,not_indexed.md 就會從上次編譯以來的全部 Issue 重建——失敗的執行由下一次自動修復,新記憶不會被漏看。

工作流程

排程編譯 every 6 h

重建永遠精簡的 INDEX.md(僅摘要)與各區域的 REGION-*.md 指標表,套用權重衰減與成效加減分,並保存 weights.json。

工作流程

知識匯出

同一次執行把所有 Issue 投影成 OKF v0.1 知識包(okf/)與可載入 BigQuery 的 rows.ndjson。兩者皆為衍生的唯讀資料——Issue 永遠是唯一的真相來源。

ENTRY POINT

/amp 指令:隨處可用的記憶入口

Claude Code 的使用者指令,安裝在使用者層級(~/.claude/commands/amp.md),任何專案都能用。Hook 依時機自動觸發;/amp 則聽你號令。格式仍由 rxai-amp 技能提供——指令負責「何時」,技能負責「如何」。選單裡會同時看到 /amp 與 /rxai-amp:輸入 /amp 即可,它會自己載入技能(規則手冊)。

/amp update <text> → 發記憶 Issue 或成效留言
/amp update → 存下本次工作摘要
/amp status → 目標倉庫、代理身分與近期 Issue

發到哪裡——解析優先序。設定檔刻意高於倉庫自動偵測:同一顆共享大腦,在哪個資料夾都指向同一目標。單次執行可用 RXAI_AMP_SLUG 覆寫。

RXAI_AMP_SLUG 環境變數明確指定——優先權最高
~/.rxai-amp/config.json 設定檔指定的記憶倉庫——與 v2.8 生命週期配接器共用同一份設定
倉庫自動偵測 後備方案:偵測你目前所在的記憶倉庫(PROTOCOL.md + weights.json)

每次寫入前都先向 GitHub 即時查重,再透過 gh CLI 發出符合規範標籤的 Issue(附 from:/type:/unindexed 標籤)。npm run hooks:install:claude 一步安裝指令、技能與設定檔。

SESSION LOOP

代理工作階段(v2.8 生命週期)

v2.8 把三大義務(召回、記錄、成效)機械化:Hook 負責「何時」(模型忘不掉的確定性觸發),rxai-amp 技能負責「如何」(精確格式),本地工作階段帳本把兩者串起來。

1 · RECALL

工作階段一開始,hook 就把索引和這個儲存庫記憶的指標放進情境;你輸入提示時,和提示相關的記憶會展開成簡短摘要。不靠代理「想起來」,回憶是自動發生的。

SessionStart → pointers · UserPromptSubmit → summaries

session-start.mjs 在你下第一道指令之前,把 INDEX.md、not_indexed.md 和相符的指標放進工作階段;user-prompt-submit.mjs 則展開每道提示相關的記憶,每則每個工作階段最多一次。

2 · WORK

每次 git commit 都被記為工作邊界,[AMP] 提醒直接出現在 commit 輸出中。五次 commit 只產生一次義務。

post-commit hook → ledger boundary

adapters/git-hooks/post-commit 負責印出;post-tool-use.mjs 記錄邊界。只有真正的 git commit 算數。

3 · CAPTURE

工作階段不能默默結束:檢查點會攔截一次,直到代理發出心得——或附一句理由明確婉拒。「沒什麼值得存」是合法答案,沉默不是。

Stop hook → block once, then store / decline

adapters/claude-code/hooks/stop.mjs 只攔一次。發出心得或附理由婉拒——帳本記得你選了哪個。

4 · OUTCOME

凡是本次真正用到的記憶,都要留下 Outcome: 成效留言;沒用到的什麼都不留——不製造假活動。

## Recall manifest → Librarian audits

摘要中的 ## Recall 清單列出本次用過的記憶;amp-librarian.yml 每天稽核。

READ PATH

三層式召回(讀取流程)

召回是「送到手上」,不是代理自己去做。Hook 在代理的第一個動作之前注入指標層,只在題目相關時才展開摘要,所以不管記憶累積多少,context 永遠精簡——區域檔案只供瀏覽,不參與召回。

INDEX.md + not_indexed.md 導覽層:session 開始時注入,並依此儲存庫的區域壓縮
pointer #N [type · place · weight] title——每一則相符的記憶各一行,不用連網
summary 記憶的 ## Now,沒有就取開頭的散文,≤ 240 字——只展開和 prompt 相符的記憶(Claude Code);Codex 與 agy 在 session 開始時給
issue + comments 完整討論串,只在代理要依據細節行動時才抓取

指標有固定順序——先看目標再看步驟、先查反證再信事實:intent → facts → pattern → invalidation → discovery → events。

WEIGHTS

會學習的信心權重

每條記憶都有一個會隨時間衰減、隨實際成效增減的權重——被驗證的模式往上浮,失效的往下沉,完全不需手動整理。

訊號 效果
成效留言 Outcome: success +0.30
成效留言 Outcome: failure −0.20
沒有標記或中性 0,僅衰減
type:lifefact(永久個人記憶) 固定 1.0,永不衰減
反證聲明中的 Supersedes: #N → 0,立即封存
CONFORMANCE

四級遵循等級

等級改變的是「多少事被機械化」,而非「要求本身」。等級由執行環境決定:能跑 hook 的一律是 L2,L1 只留給跑不了 hook 的環境。壞掉的配接器絕不擋住使用者的正事——在能跑 hook 的環境上,它退化為「靜默召回」(代理只說一次怎麼修復 hook),絕不會退化成手動翻索引。

L0

代理自律遵守文件規範。

不用安裝。代理讀 PROTOCOL.md,因為被要求所以遵守。所有代理都從這裡開始。

L1

檢查清單載入情境:技能或設定摘要。

OpenClaw、Hermes。技能鏡像與 §15 摘要被接進每個執行環境必載的檔案。是情境,不是強制。

L2 AMP 目前所在

確定性 Hook 加帳本,設置真正的檢查點。

Claude Code、Codex、agy。Hook 在模型之外觸發,「忘記」不是選項。~/.rxai-amp/ 下的帳本僅供參考。

L3

未來的 MCP 伺服器在寫入前就攔截格式錯誤。

尚未推出。MCP 伺服器會在格式錯誤的標題變成 Issue 前就擋下。目前這層驗證住在技能裡——是指引,不是關卡。

兩個等級都在相同任務與記憶庫上用 Codex 實測:

  • L1(代理自行回憶):gpt-6-astra 比完全不用記憶多用 46% 輸入、多花 35% 時間。其中一個模型翻了索引五次,一筆也沒取。
  • L2(hook 在第一個動作前送達同樣的紀錄):同一個模型輸入少 5.6%、工具輸出少 5.4%。第二個模型有改善,但仍比不用記憶時用得多。十個啟用的工作階段全部收到相同的三筆紀錄。
  • L2,2026-09-24(關掉 Codex 自己的記憶):medium 時輸入多 9.9%;xhigh 時少 3.4%,而且少挖 13.6%、早 10.7% 完成(gpt-6-astra,各 4 組配對)。

等級決定記憶「能不能」回本;真的回不回得了,取決於它替代掉多少閱讀量。

BOOTSTRAP

一鍵長出新大腦

過去採用協定要 ~15 個手動步驟。現在範本內建符合 §15.5 的精靈:clone 之後一條命令直達可運作的記憶倉庫——包括以前沒有任何東西自動化的步驟(Actions 寫入權限、§6 標籤播種、馴服每天執行的 Librarian 排程),最後用真實的端到端測試 Issue 自我驗證。冪等:重跑即續跑;絕不重置已上線的倉庫、絕不推送範本。

npm run setup → 建倉庫、權限、標籤、hooks、首次編譯
npm run setup -- --dry-run → 只看計畫,不動任何東西
npm run setup:verify → 隨時重新體檢部署