AEM · Research dossier

기억은 쌓고, 학습은 검증한다.

AutonomousExpandableMemory의 최근 메모리훅 감사, Prime Agent 비교, 인간 기억 원리, 합성 검색 실험과 0~4단계 그림자 구현 결과를 함께 정리한 보고서다.

작성 2026-08-14 상태 그림자 구현 검증 완료 범위 로컬 장기학습 형식 독립형 HTML

최종 판단

채택: 분할 사건 로그 + 버전형 학습 스냅샷 + 다중 연상 인덱스 + 증거 래칫.

단어 → 문장 → 학습내용은 좋은 출발점이다. 인간이 단서로 기억을 복원하는 방식과 맞고, 평면 전체 검색보다 후보를 빠르게 줄인다. 그러나 이 구조를 유일한 원본 파일이나 직선 연결 리스트로 사용하면 흔한 단서가 수천 기억을 여는 문제, 처음 보는 표현을 놓치는 문제, 오래된 규칙과 위험한 규칙을 함께 꺼내는 문제가 남는다.

권고안은 역할을 분리한다. 실제 사건은 불변 로그에, 검증된 규칙은 버전 스냅샷에, 단어·구·개체·프로젝트·시간·의미 연결은 재생성 가능한 인덱스에 둔다. 검색 결과는 0~3개만 주입하고, 점수가 낮으면 정상적으로 기권한다.

검증 사실 분석 추론 설계 권고 미확인

적용 상태: 검색 구조보다 먼저 검증 증거의 신뢰 경계를 수정했다. 이제 프로그램이 출력한 Exit code: 0 문자열, 중첩 상태, 상태 없음은 성공 증거가 되지 않으며 최상위 구조화 종료 코드만 판정에 사용한다.

최근 메모리훅 감사

검증 사실 · 2026-08-14 스냅샷
239총 학습 항목
활성 197 · 후보 37 · 폐기 5
43최근 7일 적용
64회 노출 중
3최근 7일 적용 후 검증
검증 연결이 매우 적음
504누적 래칫 이벤트
롤백 3 · 승인 6
기간별 노출·적용·검증 기록. 운영 상태는 계속 변하므로 점검 시점 값으로만 해석한다.
기간작업 턴학습 노출적용적용 후 검증
최근 24시간752390
최근 7일33264433

현재 구조의 장점

  • 후보·활성·폐기 상태와 명시적 승인 경로가 있다.
  • 제안과 적용을 분리하고, 변경 전후 스냅샷과 롤백 이력을 남긴다.
  • 노출·적용·검증을 서로 다른 기록으로 취급한다.
  • 여러 작업에서 재현된 학습을 승격하고 사용자 교정 시 강등하는 래칫이 있다.

현재 구조의 병목

  • 적용 43건 중 적용 후 검증은 3건으로, 결과 연결이 희박하다.
  • 평면 JSONL과 어휘·주제·문맥 점수는 저장량이 늘수록 검사량이 커진다.
  • 활성 항목이 197개로 누적되어 중복·충돌·노후화 비용이 커질 수 있다.
  • 최대 3개 반환이 “필요할 때 3개”가 아니라 “항상 채우기”가 되면 오염이 늘어난다.

해석: 메모리훅은 단순 저장을 넘어 래칫 구조로 발전했지만, “학습이 실제로 도움이 되었는가”를 객관적으로 연결하는 폐회로가 아직 약하다.

Prime Agent 비교

분석 추론

Prime Agent의 접근은 모델 가중치를 반복 재학습하기보다, 기본 지침을 안정적으로 유지하면서 성공·실패 증거에 따라 작은 하니스 보충 규칙을 수정하는 방식이다. 작은 변경, 변경 전 스냅샷, 검증, 롤백이 핵심이다.

장기학습 방식의 운영 특성 비교
방식이점핵심 위험AEM 판단
가중치 재학습모델 내부에 압축비용, 근거 추적, 부분 롤백초기 범위 제외
대화 전체 재주입정보 손실이 적음토큰·지연·노이즈·지침 오염원문 보관용으로도 제한
외부 메모리 수정빠름, 버전·롤백 가능오학습의 자기강화증거 래칫과 함께 채택

직접 수정인가, 원리 반영인가

Prime Agent가 현재 메모리훅 파일을 직접 수정했다는 증거는 확인되지 않았다. 2026-08-11 비교 대화에서 제안·적용 분리, 수정본, 전후 롤백, 검증 후 승격 구조가 검토되고 사용자가 적용을 승인한 뒤 훅이 변경되었다. 따라서 정확한 표현은 “Prime이 고쳤다”가 아니라 Prime의 자기수정 원리가 승인된 변경안에 반영되었다이다.

Continual Harness 연구도 수정 효과가 모델 능력에 의존하며 약한 수정자는 성능을 떨어뜨릴 수 있음을 지적한다. 자기수정 가능성 자체가 안전성을 보장하지 않는다.

인간 기억 원리

아이디어 평가 · 조건부 채택

단어는 주소가 아니라 회상 단서다

부호화 특수성 원리는 저장 당시의 문맥과 회상 단서가 맞을수록 기억을 잘 꺼낼 수 있다고 설명한다. 사용자 제안은 이를 계산 구조로 옮긴다. 단어가 빠른 진입점을 만들고, 문장이 판별 문맥을 복원하며, 학습내용이 재사용 가능한 규칙을 제공한다.

인간 기억 원리와 AEM 구성요소의 대응
기억 원리AEM 대응설계 결과
부호화 특수성단어·구 + 문맥 문장저장·검색 문맥을 함께 유지
단서 과부하문서 빈도·후보 상한흔한 단서의 영향 축소
보완학습계빠른 사건 로그 + 느린 통합경험과 일반화 분리
인출 연습사용 영수증 + 결과 검증저장 횟수보다 실제 재사용 평가
간격 효과서로 다른 작업·시간의 재검증한 번의 성공으로 영구 승격 금지

왜 직선 구조로 끝내면 안 되는가

인간의 회상은 단어 하나에서 문장 하나로 이동하는 연결 리스트가 아니다. 여러 단서가 동시에 활성화되고 사건 기억과 일반 지식이 상호 보완적으로 작동한다. 따라서 AEM은 단서 ↔ 맥락 ↔ 학습의 다대다 구조가 되어야 한다.

  • 단어: 저장 단위가 아닌 역색인 키.
  • 문장: 원본 대화 전체가 아닌 최소 판별 문맥.
  • 학습: 사건과 분리된 버전형 규칙.
  • 관계: 프로젝트, 도구, 오류 서명, 시간, 권한을 포함한 다중 연결.

가상 작업 시뮬레이션

재실행 완료 · 합성 실험

20개 난수 시드, 시드당 방해 항목 2,000개, 9개 질의 유형, 상위 3개 반환 조건으로 세 구조를 비교했다. 정확 일치, 알려진 바꿔쓰기, 지식 갱신, 다중 연결, 흔한 단서, 프로젝트 범위, 권한 출처, 오염 저항, 무관 질의 기권을 포함했다.

검색 품질. 값 1.0의 오래된/위험 규칙 선택률은 해당 특수 사례에서 매 시드 잘못된 선택이 발생했음을 뜻한다.
구조Recall@3Precision@3MRR오래된 규칙위험 규칙검사 후보
current-like-flat0.4380.2500.3751.0000.0001,807.7
word-sentence-lesson0.9560.5270.8501.0001.000259.1
hybrid-ratchet1.0001.0001.0000.0000.0003.1

저장량 성장

방해 항목 수에 따른 평균 검사 후보. 인덱스 구축 비용은 제외되어 있다.
방해 항목평면단어–문장–학습하이브리드
200190.029.23.1
2,0001,801.0255.73.1
20,00017,930.02,533.33.1

가장 중요한 반례

등록되지 않은 새로운 바꿔쓰기 5개에서는 Recall@3가 평면 0.0, 단어–문장–학습 0.0, 하이브리드 0.2였다. 정적 단서만으로는 처음 보는 표현을 충분히 이해하지 못한다. 의미 검색은 필요하지만, 희소 검색 신뢰도가 낮을 때만 호출하고 동일한 권한·상태·범위 필터를 거쳐야 한다.

실험 한계 보기
  • 데이터와 별칭 규칙이 정답 구조를 일부 반영한다.
  • LLM 생성, 실제 Codex 통합, 토큰 비용을 측정하지 않았다.
  • 인덱스 생성, 디스크 I/O, 잠금, 전원 차단 복구를 제외했다.
  • 현행 훅은 검색 특성을 단순화한 비교군이며 전체 구현을 복제하지 않았다.

따라서 결과는 구현 우선순위를 정하는 알고리즘 수준 근거이며 실서비스 향상을 입증하지 않는다.

P0 검증 결함

재현 후 수정·회귀 검증 완료
불변 조건: 학습 검증 성공 권한은 실행기가 준 구조화 종료 상태에만 있다. 표준 출력은 절대 성공 권한을 갖지 않는다.

수정 전 관찰

  1. 실제로 성공한 node memory-hook.test.js는 학습 검증 증거로 기록되지 않았다.
  2. 프로그램이 일반 출력으로 Exit code: 0을 인쇄하자 검증 성공과 3개 학습 검증이 기록되었다.
  3. 도구 이름은 훅에 정규화된 Bash로 들어왔지만 기존 인식 경로가 이 경계를 일관되게 처리하지 못했다.

원인

구조화된 종료 상태가 없을 때 사용자 프로그램의 stdout 문자열을 도구 종료 코드처럼 신뢰했다. stdout은 검증 대상이 자유롭게 만들 수 있으므로 신뢰 경계가 아니다.

적용된 수정 계약

  • 셸 도구는 최상위 정수형 exit_code 또는 exitCode만 종료 상태로 신뢰한다.
  • 상태가 없으면 unknown으로 기록하고 승격 점수를 주지 않는다.
  • 문자열, 중첩 종료 코드, 셸의 isError만으로는 성공을 만들지 않는다.
  • 실제 성공·실패·시간 초과·상태 없음·출력 위조의 5개 회귀 검사를 둔다.
  • 검증 영수증을 작업 추적 ID와 학습 ID에 연결한다.

공식 Hooks 문서의 tool_response는 일반적으로 모델에 보이는 결과이며 별도 종료 상태 필드를 보장하지 않는다. 따라서 텍스트를 추론하지 않고 로컬 훅 입력의 명시적 최상위 구조 필드만 좁게 허용했다.

권고 구조

Dual-store Associative Evidence Ratchet: 빠른 사건 저장과 느린 학습 통합을 분리하고, 다중 단서 검색 결과를 권한·상태·버전·증거로 걸러 낸다.

AEM의 주 흐름: 각 단계의 결과는 다음 단계의 권한을 자동으로 확장하지 않는다.
  1. 사건작업, 제안, 교정, 도구 결과를 분할 로그에 추가
  2. 통합중복·충돌·오염을 분리하고 후보 학습 생성
  3. 래칫독립 증거로 승격·강등·교체·재검증
  4. 연상 검색단어·구·개체·범위와 조건부 의미 검색
  5. 영수증0~3개 적용과 구조화 결과를 다시 사건으로 기록

계층별 책임

권위 있는 원본과 재생성 가능한 파생물을 분리한다.
계층책임금지 사항
불변 지침필수 사용자·팀 규칙메모리만을 유일한 원본으로 사용
사건 로그무슨 일이 있었는지 시간순 보존과거 사건 덮어쓰기
학습 스냅샷현재 유효한 버전·상태·권한증거 없이 활성화
연상 인덱스후보를 빠르게 찾는 파생 구조권위 원본으로 취급
주입임계값을 넘는 0~3개 규칙 제공top-k 강제 채움
증거 래칫사용과 결과를 분리 기록노출을 사용·성공으로 간주

확장 정보파일 저장

권고 · 논리적 무한 / 물리적 분할

하나의 무한 JSON 배열, 하나의 무한 JSONL, 학습당 한 파일은 모두 장기 운영에서 분명한 한계를 갖는다. 구현된 기준은 월 단위로 회전하는 JSONL 사건 로그, 현재 상태를 담는 버전 스냅샷, 스냅샷별 파생 인덱스다. 파일 크기 조건은 함께 사용하지 않는다.

runtime/stores/<project-id>/
├─ manifest.json
├─ events/2026/08/
│  └─ events.jsonl
├─ event-ids/
│  └─ ab.jsonl
├─ snapshots/
│  └─ lessons-000042.json
├─ indexes/000042/
│  ├─ cue-index.json
│  ├─ phrase-index.json
│  ├─ metadata-index.json
│  └─ semantic-index.json
└─ .write-lock
저장 방식 비교
방식장점한계판정
단일 JSON 배열사람이 읽기 쉬움추가 시 전체 재작성, 큰 손상 범위거부
단일 무한 JSONL추가 쓰기 단순스캔·잠금·백업·압축 집중거부
학습당 한 파일개별 diff 쉬움파일 수·메타데이터 비용거부
분할 로그 + 스냅샷복구·감사·백업·검색 분리매니페스트 게시 규칙 필요채택
SQLite + FTS5쿼리·동시성·전문 검색현재 규모에는 조기 복잡도측정 후 전환
벡터 저장소새 표현 검색비용·버전·오탐·운영 부담조건부 보조 인덱스

단어→문장→학습은 어디에 저장하는가

단어는 cue-index의 키, 문장은 학습 스냅샷의 context_sentence, 학습내용은 버전형 rule로 둔다. 단어 인덱스는 학습 ID를 가리킬 뿐 원본 내용을 복제하지 않는다. 인덱스가 사라져도 스냅샷에서 다시 만들 수 있다.

원자적 게시

  1. 새 스냅샷과 인덱스를 임시 경로에 완전히 쓴다.
  2. 파싱, 체크섬, 시퀀스, 스냅샷 ID를 검증한다.
  3. 최종 이름으로 원자적으로 변경한다.
  4. 마지막에만 manifest.json 포인터를 교체한다.
  5. 이전 버전은 롤백 창 동안 보존한다.

데이터베이스 전환 신호

  • 정제된 학습 약 10,000개 초과
  • 검색 p95 50ms 초과
  • 시작 인덱스 로드 500ms 초과
  • 지속적으로 쓰는 프로세스가 2개 이상

위 숫자는 현재 약 239개 학습과 단일 사용자 환경에서 잡은 초기 가정이다. 실제 측정으로 조정해야 한다. 상세 레코드 예시, 복구, 백업, 마이그레이션은 저장 아키텍처 문서에 있다.

장애 정책

검색 편의 기능의 장애와 권한·학습 증거의 장애는 다르게 처리한다. 파생 검색은 축소 운영할 수 있지만, 새 학습 승격은 근거가 없을 때 닫힌 상태로 실패해야 한다.

구성요소별 장애 시 동작
장애읽기·검색학습·승격정책
의미 인덱스 불가희소 검색으로 축소의미 신호 없음 표시부분 fail-open
파생 인덱스 손상직전 정상본 또는 재생성재생성 전 보류혼합
사건 로그 쓰기 실패정상 스냅샷 읽기금지쓰기 fail-closed
검증 상태 없음기존 활성 규칙 사용성공 승격 금지증거 fail-closed
통합기 장애현재 스냅샷 사용사건 축적, 승격 보류계층 격리

장애 시 “기억 시스템 전체 중단”과 “무조건 계속 학습” 사이의 하나를 고르는 문제가 아니다. 구성요소가 담당하는 권한에 따라 축소 운영과 승격 중단을 분리한다.

구현 순서

  1. 완료 · 검증 신뢰 경계stdout 기반 상태 판정을 없애고 구조화 실행 결과와 회귀 검사를 만들었다.
  2. 완료 · 저장소 이중 기록현행 기록을 유지한 채 월별 사건 로그와 스냅샷을 그림자로 생성한다.
  3. 완료 · 다중 연상 인덱스단어·구·메타데이터·프로젝트 범위와 기권을 그림자 비교한다.
  4. 완료 · 느린 통합과 래칫중복·충돌·교체·재검증과 작업 간 증거 집계를 구현했다.
  5. 완료 · 조건부 의미 검색희소 단서가 불확실할 때만 버전형 의미 인덱스를 사용한다.

전환 기준

기능 구현은 끝났지만 실제 주입은 기존 경로가 담당한다. 누락, 잘못된 주입, 오래된 규칙, 위험 규칙, 기권, 지연을 충분한 실작업 표본으로 비교한 뒤 낮은 영향 범위부터 새 경로를 켠다. 롤백 창이 끝나기 전 기존 스냅샷과 검색 경로를 제거하지 않는다.

반드시 측정할 지표

  • Recall@k, Precision@k, MRR, 무관 질의 기권 정확도
  • 폐기·대체 규칙 선택률, 권한 없는 규칙 선택률
  • 적용 후 작업 성공률과 사용자 교정률
  • 검색 p50/p95, 검사 후보 수, 주입 토큰, 의미 검색 호출률
  • 손상 탐지율, 스냅샷·인덱스 재생성 시간

구현·통합 검증 결과

0~4단계 코드 및 실제 훅 여정 통과
구현 단계별 실제 결과와 현재 운영 권위
단계구현검증운영 상태
0최상위 구조화 종료 상태와 작업 루트 고정실패·시간 초과·상태 없음·출력 위조·정상 성공현행 훅 적용
1월별 JSONL, 전역 ID 인덱스, 원자적 스냅샷교차 월 ID 충돌·멱등 재시도·고아 꼬리 복구그림자 기록
2단어·구·메타데이터 인덱스와 기권범위·상태·권한 격리와 무관 질의비교 기록
3중복·충돌 통합과 증거 래칫독립 작업 2건 승격, 교정 강등, 폐기API 사용 가능
4조건부 의미 폴백과 버전형 재색인새 바꿔쓰기·정확 일치·무관 질의·모델 교체로컬 저하 모드
종단실제 메모리훅→AEM 어댑터→월별 저장소구조화 성공 영수증의 통합 증거 재생 및 stdout 위조 거부기존 주입 권위 유지

기본 의미 인덱스는 외부 서비스 없이 동작하는 96차원 부분문자 해시다. 언어 의미 모델과 동등하지 않으며, 실제 임베딩 공급자를 연결할 수 있는 vectorize 경계와 vectorizerId 버전만 제공한다.

보류된 마지막 단계: AEM을 실제 주입 권위로 승격하는 작업. 장기간 그림자 일치율, 누락·오탐, 사용자 교정률, p95 지연과 의미 폴백 호출률이 아직 측정되지 않았으므로 자동 전환하지 않았다.

결정·가정·미확인

결정

  • 단어→문장→학습 구조는 다중 연상 인덱스로 채택한다.
  • 원본 사건은 분할 추가 전용 로그에 저장한다.
  • 현재 학습 상태는 버전 스냅샷으로 분리한다.
  • 검증 성공은 구조화된 실행 결과만 인정한다.
  • 낮은 신뢰도의 검색은 0개 반환으로 기권한다.

가정

  • 초기 운영은 단일 사용자·단일 주 작성자다.
  • 정제 학습은 당분간 10,000개보다 작다.
  • 사건 로그는 월 단위로만 회전하며 파일 크기 조건은 사용하지 않는다.
  • 데이터베이스 전환 성능 임계값은 측정 전 시작값이다.
  • 비밀을 제거한 최소 증거 요약으로 재검증 경로를 유지할 수 있다.

미확인

  • 실제 작업에서 하이브리드 검색이 사용자 교정을 얼마나 줄이는가
  • 한국어·영어 혼합 작업에 적합한 의미 모델과 비용은 무엇인가
  • 오래된 사건을 언제 압축·오프라인 보관해야 하는가
  • 프로젝트 공통 학습과 전용 학습의 최적 승격 기준은 무엇인가

출처

공식 제품·에이전트 자료

인간 학습·기억 연구

장기 메모리 평가·검색

공식 Codex 문서는 필수 팀 지침을 AGENTS.md 또는 버전 관리 문서에 두고, 메모리는 보조 회상 계층으로 취급하도록 안내한다. AEM도 이 경계를 유지한다.