RxAi AMP · Agent Memory Protocol · v2.13 · patent pending
記憶はすべて1件の GitHub Issue。コメントはそれをめぐる会話です。インデックスを編纂するのは AI ではなく GitHub Actions。ライフサイクルフックがタスクに合う記憶をエージェントに手渡し、エージェントは作業して記録を残します。
各 A/B は、記憶の有無だけが異なる新規セッション 2 つを、同一のプロンプトとツールで実運用リポジトリ上で比べたものです。同じ回で読み込み量の少ない Sonnet 5 には効果がなかったため、想起はまずポインタだけを注入し、タスクに関係する記憶だけを要約に展開します。 計測方法(英語)→
RxAi AMP(Agent Memory Protocol)は、Claude Code、Codex、agy などの AI コーディングエージェントのためのオープンソースの共有メモリです。記憶はそれぞれ、あなたが所有するリポジトリの GitHub Issue です。GitHub Actions がインデックスを編纂し、ライフサイクルフックが各エージェントにタスクに合う記憶を渡します。データベースもサーバーも不要です。
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)にインストールされ、どのプロジェクトからでも使えます。フックは決まったタイミングで発火し、/amp はあなたの合図で発火します。フォーマットは今も rxai-amp スキルが担います——コマンドが「いつ」、スキルが「どうやって」。メニューには /amp と /rxai-amp の両方が表示されますが、入力するのは /amp。スキル(ルールブック)は自動で読み込まれます。
投稿先の解決優先順位。設定ファイルは意図的にリポジトリ自動検出より優先されます——共有ブレインはひとつ、どのフォルダからでも同じ宛先へ。単発の上書きは RXAI_AMP_SLUG で。
書き込みのたびに GitHub の最新状態で重複を確認し、gh CLI で規範どおりのタグ付き Issue(from:/type:/unindexed ラベル付き)を投稿します。npm run hooks:install:claude ならコマンド・スキル・設定を一度にインストールできます。
v2.8 は3つの義務(想起・記録・成果)を機械化します。フックが「いつ」を決め(モデルが忘れられない決定的トリガー)、rxai-amp スキルが「どうやって」を教え(正確なフォーマット)、ローカルのセッション台帳が両者をつなぎます。
セッション開始時、フックはインデックスとこのリポジトリの記憶へのポインタをコンテキストに入れます。プロンプトを入力すると、関係する記録が短い要約に展開されます。エージェントが思い出すと決めるのではなく、想起は向こうからやって来ます。
session-start.mjs は最初のプロンプトの前に INDEX.md、not_indexed.md と一致するポインタをセッションへ入れ、user-prompt-submit.mjs は各プロンプトに関係する記録を展開します(1 セッションにつき各 1 回まで)。
git commit のたびに作業境界として記録され、コミット出力に [AMP] リマインダーが直接表示されます。5回のコミットでも義務は1つ、5つではありません。
adapters/git-hooks/post-commit が表示し、post-tool-use.mjs が境界を記録。本物の git commit だけを数えます。
セッションは黙って終われません。チェックポイントが一度だけブロックし、エージェントが学びを投稿するか、一行の理由を添えて明示的に辞退するまで待ちます。「保存する価値なし」は正当な答え、沈黙は違います。
adapters/claude-code/hooks/stop.mjs は一度だけブロック。学びを投稿するか理由を添えて辞退するか——台帳が記憶します。
セッションで実際に頼った記憶には Outcome: コメントを残します。使わなかった記憶には何も残さない——偽のアクティビティは作りません。
要約の ## Recall マニフェストが使った記憶を列挙し、amp-librarian.yml が毎日監査します。
想起は「届けられる」もので、エージェントが自分で行うものではありません。フックが最初の動作の前にポインタ層を注入し、タスクに関係する記憶だけを要約に展開するので、記憶がいくら増えてもコンテキストは小さいまま——領域ファイルは閲覧用で、想起には使いません。
ポインタは決まった順で届きます——手順より先に目的を、信頼より先に反証を:intent → facts → pattern → invalidation → discovery → events。
各記憶は時間とともに減衰し、実際の成果で増減する重みを持ちます。実証されたパターンは浮かび上がり、壊れたものは沈む——手作業の整理は不要です。
| シグナル | 効果 |
|---|---|
| Outcome: success コメント | +0.30 |
| Outcome: failure コメント | −0.20 |
| マーカーなし/中立 | 0、減衰のみ |
| type:lifefact(永続的な個人の事実) | 1.0 に固定、減衰なし |
| invalidation 内の Supersedes: #N | → 0、即時アーカイブ |
レベルが変えるのは「どれだけ機械化されるか」であって「要求そのもの」ではありません。レベルはランタイムが決めます:フックを実行できるものはすべて L2、L1 はフックを実行できないランタイムだけ。壊れたアダプタがユーザーの本来の作業を妨げることはなく、フック対応ランタイムでは「静かな想起」(エージェントがフックの復旧方法を一度だけ伝える)に縮退し、手動でインデックスを読むことには決してなりません。
エージェントが自発的に文書化されたプロトコルに従う。
インストール不要。エージェントは PROTOCOL.md を読み、頼まれたから従います。全員がここから始まります。
チェックリストをコンテキストに読み込む:スキルまたは設定ダイジェスト。
OpenClaw・Hermes。スキルのミラーと §15 ダイジェストを、各ランタイムが必ず読む ファイルへ差し込みます。強制ではなく文脈。
決定的フックとセッション台帳が本物のチェックポイントを挟み込む。
Claude Code・Codex・agy。フックはモデルの外で発火するので「忘れる」選択肢はありません。~/.rxai-amp/ の台帳は参考情報のみ。
将来の MCP サーバーが GitHub に届く前にすべての書き込みを検証。
未提供。MCP サーバーなら不正なタイトルを Issue になる前に拒否します。現在その検証はスキルの中——指針であってゲートではありません。
両レベルとも、同じタスクと記憶ストアで Codex を使って計測しました。
レベルは記憶が元を取れる余地を決め、実際に取れるかはどれだけの読み込みを置き換えるかで決まります。
プロトコルの導入には、かつて約15の手動ステップが必要でした。いまはテンプレートに §15.5 準拠のウィザードが同梱されています。clone して1コマンドで、稼働する記憶リポジトリまで一直線——これまで何も自動化されていなかったステップ(Actions の書き込み権限、§6 ラベルの播種、毎日走る Librarian cron の手なずけ)も含めて。最後は本物のエンドツーエンドのテスト Issue で自己検証します。冪等:再実行がそのまま再開の仕組み。稼働中のリポジトリは決してリセットせず、テンプレートには決してプッシュしません。