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

공유 두뇌는 어떻게 작동하는가

모든 기억은 하나의 GitHub 이슈입니다. 댓글은 그 기억에 대한 대화입니다. 인덱스는 AI가 아니라 GitHub Actions가 컴파일합니다. 라이프사이클 훅이 작업에 맞는 기억을 에이전트에게 건네고, 에이전트는 작업한 뒤 기록을 남깁니다.

백엔드 제로 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 토큰이므로 순절감은 읽기 절감보다 작음.
Opus 5 · 8쌍 · 2026-09-06
6.8 KB
기억 145건 저장소에서 회상하는 데 6.8 KB. 모든 이슈를 단순 스캔하면 914 KB, API 호출 58회.
인덱스 vs 전체 읽기 · 2026-09-07

각 A/B는 메모리 켬/끔만 다른 새 세션 두 개를 동일한 프롬프트와 도구로 실제 저장소에서 비교한 것입니다. 같은 회차에서 읽기가 적은 Sonnet 5는 이득이 없었기에, 이제 회상은 포인터부터 주입하고 작업과 관련된 기억만 요약으로 확장합니다. 측정 방법(영어) →

IN BRIEF

RxAi AMP란?

RxAi AMP(Agent Memory Protocol)는 Claude Code, Codex, agy 같은 AI 코딩 에이전트를 위한 오픈 소스 공유 메모리입니다. 기억 하나하나가 여러분이 소유한 저장소의 GitHub 이슈입니다. GitHub Actions가 인덱스를 컴파일하고, 라이프사이클 훅이 각 에이전트에게 작업에 맞는 기억을 건넵니다. 데이터베이스도 서버도 필요 없습니다.

Sourcegraph의 Amp 코딩 에이전트, Google의 AMP 페이지 형식, AMP Limited와는 관련이 없습니다.

라이선스
AGPL-3.0-or-later 또는 상용 라이선스
관리자
James Ho, RxAI
업데이트
문의
GitHub Discussions
ATOM

이슈 하나, 기억 하나

라우팅 정보는 모두 제목에 담겨 있습니다. 인덱서는 엄격한 정규식으로 제목을 파싱하므로 오타 하나로 인덱싱이 조용히 깨집니다. 그래서 에이전트는 템플릿을 복사할 뿐, 즉흥적으로 쓰지 않습니다.

[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 모델도 실행되지 않습니다. 모두 결정적 스크립트입니다. 에이전트는 인덱스 파일을 절대 편집하지 않으며, 워크플로가 소유합니다.

에이전트

GitHub MCP로 이슈 하나 게시

새 주제는 새 이슈로, 답변은 기존 스레드의 댓글로. 쓰기 전에는 반드시 GitHub 실시간 상태로 중복을 확인합니다(로컬 캐시는 쓰기를 승인할 수 없습니다). 사용자는 아래 /amp 명령으로 같은 쓰기를 언제든 실행할 수 있습니다.

워크플로

트래커가 미인덱스 목록 갱신 ~30 s

이슈가 열릴 때마다 not_indexed.md는 마지막 컴파일 이후의 모든 이슈로부터 재구축됩니다. 실패한 실행은 다음 실행이 복구하며, 새 기억이 보이지 않게 되는 일은 없습니다.

워크플로

예약 컴파일 every 6 h

항상 작게 유지되는 INDEX.md(요약만)와 영역별 REGION-*.md 포인터 표를 재구축하고, 가중치 감쇠와 성과 증감을 적용해 weights.json에 저장합니다.

워크플로

지식 내보내기

같은 실행이 모든 이슈를 OKF v0.1 번들(okf/)과 BigQuery용 rows.ndjson으로 사영합니다. 둘 다 파생된 읽기 전용 데이터이며, 단일 진실 원천은 언제나 이슈입니다.

ENTRY POINT

/amp 명령 — 어디서나 쓰는 기억의 입구

Claude Code의 사용자 호출 슬래시 명령. 사용자 레벨(~/.claude/commands/amp.md)에 설치되어 어떤 프로젝트에서도 동작합니다. 훅은 정해진 시점에, /amp는 당신이 원할 때 발동합니다. 형식은 여전히 rxai-amp 스킬이 담당합니다. 명령은 '언제', 스킬은 '어떻게'입니다. 메뉴에는 /amp와 /rxai-amp가 둘 다 보이지만, 입력할 것은 /amp입니다. 스킬(규칙집)은 스스로 로드됩니다.

/amp update <text> → 기억 이슈 또는 Outcome: 댓글 게시
/amp update → 이번 세션 작업 요약 저장
/amp status → 대상 저장소 · 에이전트 · 최근 이슈

게시 대상의 결정 우선순위. 설정 파일은 의도적으로 저장소 자동 감지보다 우선합니다. 공유 두뇌는 하나, 어느 폴더에서든 같은 대상입니다. 일회성 재정의는 RXAI_AMP_SLUG로.

RXAI_AMP_SLUG 환경 변수 명시 지정 — 항상 우선
~/.rxai-amp/config.json 설정된 기억 저장소 — v2.8 라이프사이클 어댑터와 같은 설정을 공유
저장소 자동 감지 폴백: 현재 위치한 기억 저장소 감지(PROTOCOL.md + weights.json)

쓰기 전마다 GitHub 실시간 상태로 중복을 확인한 뒤, gh CLI로 규범에 맞는 태그의 이슈(from:/type:/unindexed 라벨 포함)를 게시합니다. npm run hooks:install:claude 한 번으로 명령·스킬·설정이 모두 설치됩니다.

SESSION LOOP

에이전트 라이프사이클(v2.8)

v2.8은 세 가지 의무(회상, 기록, 결과)를 기계화합니다. 훅이 '언제'를 결정하고(모델이 잊을 수 없는 결정적 트리거), rxai-amp 스킬이 '어떻게'를 가르치며(정확한 형식), 로컬 세션 원장이 둘을 연결합니다.

1 · RECALL

세션 시작 시 훅이 인덱스와 이 저장소 기억의 포인터를 컨텍스트에 넣습니다. 프롬프트를 입력하면 관련된 기록이 짧은 요약으로 펼쳐집니다. 에이전트가 회상을 결정하는 게 아니라, 회상이 저절로 일어납니다.

SessionStart → pointers · UserPromptSubmit → summaries

session-start.mjs는 첫 프롬프트 전에 INDEX.md, not_indexed.md와 일치하는 포인터를 세션에 넣고, user-prompt-submit.mjs는 각 프롬프트와 관련된 기록을 펼칩니다(세션당 기록마다 최대 1회).

2 · WORK

모든 git 커밋은 작업 경계로 기록되고, 커밋 출력에 [AMP] 알림이 바로 나타납니다. 커밋 다섯 번 = 의무 하나, 다섯이 아닙니다.

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

3단 회상(읽기 경로)

회상은 '전달되는' 것이지 에이전트가 직접 수행하는 것이 아닙니다. 훅이 첫 동작 전에 포인터 층을 주입하고, 작업과 관련된 기억만 요약으로 확장하므로 기억이 아무리 쌓여도 컨텍스트는 작게 유지됩니다. 영역 파일은 둘러보기용이며 회상에는 쓰이지 않습니다.

INDEX.md + not_indexed.md 내비게이션 층: 세션 시작 시 주입되며 이 저장소의 영역을 중심으로 압축
pointer #N [type · place · weight] title — 일치하는 기록마다 한 줄, 네트워크 불필요
summary 기록의 ## Now, 없으면 첫 산문, 240자 이하 — 프롬프트와 겹치는 기록만 확장(Claude Code); Codex와 agy는 세션 시작 시
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

4단계 준수 수준

수준이 바꾸는 것은 '얼마나 기계화되는가'이지 '요구 사항 자체'가 아닙니다. 수준은 런타임이 정합니다: 훅을 실행할 수 있으면 모두 L2이고, L1은 훅을 실행할 수 없는 런타임만을 위한 것입니다. 고장 난 어댑터가 사용자의 실제 작업을 막는 일은 없습니다. 훅이 가능한 런타임에서는 '조용한 회상'(에이전트가 훅 복구 방법을 한 번만 알림)으로 강등될 뿐, 인덱스를 손으로 읽는 방식으로는 결코 돌아가지 않습니다.

L0

에이전트가 문서화된 프로토콜을 자발적으로 따릅니다.

설치 불필요. 에이전트는 PROTOCOL.md를 읽고, 요청받았기에 따릅니다. 모두 여기서 시작합니다.

L1

체크리스트를 컨텍스트에 로드: 스킬 또는 설정 다이제스트.

OpenClaw · Hermes. 스킬 미러와 §15 다이제스트를 각 런타임이 항상 읽는 파일에 끼웁니다. 강제가 아니라 맥락.

L2 AMP의 현재 위치

결정적 훅과 세션 원장이 실제 체크포인트를 세웁니다.

Claude Code · Codex · agy. 훅은 모델 바깥에서 발동하므로 ‘잊기’는 선택지가 아닙니다. ~/.rxai-amp/ 아래 원장은 참고용입니다.

L3

미래의 MCP 서버가 GitHub에 닿기 전에 모든 쓰기를 검증합니다.

미제공. MCP 서버라면 잘못된 제목을 이슈가 되기 전에 거부합니다. 지금은 스킬 안에 있으며, 안내이지 관문이 아닙니다.

두 수준 모두 같은 과제와 기억 저장소에서 Codex로 측정했습니다.

  • L1(에이전트가 직접 회상): gpt-6-astra가 기억 없이보다 입력을 46%, 실행 시간을 35% 더 썼습니다. 한 모델은 인덱스를 다섯 번 탐색하고도 아무것도 가져오지 않았습니다.
  • L2(훅이 첫 동작 전에 같은 기록을 전달): 같은 모델이 입력을 5.6%, 도구 출력을 5.4% 덜 썼습니다. 두 번째 모델은 개선됐지만 여전히 기억 없이보다 더 썼습니다. 활성화된 열 개 세션 모두 같은 세 건을 받았습니다.
  • L2, 2026-09-24(Codex 자체 메모리 끔): medium에서는 입력이 9.9% 늘고 xhigh에서는 3.4% 줄었으며, xhigh에서는 13.6% 덜 파내고 10.7% 빨리 끝냈습니다(gpt-6-astra, 각 4쌍).

수준은 기억이 본전을 뽑을 수 있는지를 결정하고, 실제로 뽑는지는 얼마나 많은 읽기를 대체하느냐에 달려 있습니다.

BOOTSTRAP

명령 하나로 새 두뇌를

프로토콜 도입에는 예전엔 약 15개의 수동 단계가 필요했습니다. 이제 템플릿에 §15.5 준수 마법사가 내장되어 있습니다. clone 후 명령 하나면 동작하는 기억 저장소까지 직행합니다 — 예전에는 아무것도 자동화하지 않던 단계(Actions 쓰기 권한, §6 라벨 시딩, 매일 도는 Librarian 크론 길들이기)까지 포함해서. 마지막에는 실제 엔드투엔드 테스트 이슈로 스스로를 검증합니다. 멱등성: 재실행이 곧 재개 방식이며, 운영 중인 저장소를 절대 초기화하지 않고 템플릿에는 절대 푸시하지 않습니다.

npm run setup → 저장소 · 권한 · 라벨 · 훅 · 첫 컴파일
npm run setup -- --dry-run → 전체 계획만 출력, 아무것도 바꾸지 않음
npm run setup:verify → 언제든 체크리스트 재검증