TLDR: 대부분의 에이전트는 재시작되면 모든 것을 잊어버립니다. 제가 구축한 정확한 메모리 스택을 공유합니다. 이 스택 덕분에 제 에이전트들은 재시작 후에도 컨텍스트를 공유하고, 서로 충돌 없이 협력하며, 수개월 동안 결정 사항을 유지합니다.
아무도 해결하지 못한 문제
일반적인 AI 에이전트 메모리 설정 방식은 이렇습니다. 중요한 내용을 시스템 프롬프트에 넣고, 컨텍스트 윈도우가 부족하지 않길 바라며, 재시작하면 모든 것을 잃어버립니다.
저는 6개월 동안 수백 개의 세션에 걸쳐 두 개의 조정된 에이전트(Ella on OpenClaw, Lyra on Hermes)를 운영해 왔습니다. 이들을 유용하게 만드는 가장 큰 요소는 모델이나 도구가 아닙니다. 바로 메모리 아키텍처입니다.
Lyra가 새벽 2시에 수정 사항을 배포하면, Ella는 아침에 이를 알게 됩니다. 1월에 비밀 정보 저장 방식을 결정하면, 두 에이전트 모두 7월에도 그 결정을 따릅니다. 세션이 작업 중간에 충돌하면, 다음 세션이 정확히 그 지점부터 이어받습니다.
다음은 정확한 4계층 시스템입니다.
계층 1: 세션 내 컨텍스트
모든 세션은 두 개의 파일을 읽는 것으로 시작합니다. 아이덴티티 파일은 에이전트의 고유한 정체성입니다. 설정에 묻힌 시스템 프롬프트가 아닌, 제가 편집할 수 있는 실제 마크다운 파일입니다. 에이전트가 어떻게 행동해야 하는지, 무엇을 우선시하는지, 허락 없이 절대 하지 말아야 할 일, 그리고 다른 에이전트와의 관계를 담고 있습니다.
메모리 인덱스 파일은 세션 간에 기억할 가치가 있는 모든 것의 인덱스입니다. 벡터 데이터베이스도, 임베딩도 아닙니다. 개별 메모리 파일을 가리키는 평범한 목차입니다. 각 메모리 파일은 이름, 설명, 유형, 간단한 본문으로 구성된 짧은 노트입니다. 인덱스는 항상 로드됩니다. 개별 파일은 관련이 있을 때 필요에 따라 읽힙니다.
왜 마크다운일까요? 제가 읽고, 편집하고, 디버깅할 수 있기 때문입니다. 에이전트가 잘못 작동하기 시작하면 인덱스를 열고 잘못된 지시를 찾습니다. 행동을 변경하고 싶으면 파일을 편집합니다. API도, 대시보드도, 재학습도 필요 없습니다.
계층 2: 세션 후 유지 (Hindsight)
마크다운 전용 메모리의 문제점: 명시적으로 작성된 내용만 캡처한다는 것입니다. 가장 가치 있는 컨텍스트는 대부분 암시적입니다. 실행 중에 내린 결정, 작업에서 추론한 사실, 중요하다고 밝혀진 것들입니다.
Hindsight는 localhost에서 실행되는 로컬 사실 유지 백엔드입니다. 모든 의미 있는 세션이 끝나면 에이전트는 자동으로 선별된 유지 사실 세트를 명명된 뱅크에 푸시합니다. 각 에이전트는 고유한 뱅크를 가지고 있습니다.
유지되는 내용: 세션 중 내린 결정, 사용자나 프로젝트에 대한 명확하지 않은 사실, 실패 패턴과 채택한 수정 사항, 사용자가 확인하거나 수정한 선호도입니다.
새 세션이 시작되면 에이전트가 응답하기 전에 Hindsight에 관련 컨텍스트를 질의합니다. 대화록에 대한 전체 텍스트 검색이 아닙니다. 유형별로 태그가 지정된, 에이전트가 앞으로 가져갈 가치가 있다고 학습한 선별된 사실입니다.
권장 경로: Hindsight 사실 → 인간 검토 → 메모리 인덱스 항목. 인간 승인 게이트가 있는 자동 유지입니다.

계층 3: 공유 장기 상태 (Nexus)
두 번째 에이전트를 추가하면 단일 에이전트 메모리는 무너집니다. 서로 달라집니다. 하나는 X가 현재 프로젝트 상태라고 생각하고, 다른 하나는 Y라고 생각합니다. 일주일 안에 서로 모순되기 시작합니다.
해결책은 두 에이전트가 모두 읽고 쓰는 공유 가능하고 검사 가능한 상태 파일입니다. 저는 Nexus라고 부르는 Obsidian 볼트를 사용합니다. 여기에는 두 에이전트가 모든 의미 있는 턴 후에 추가하는 실시간 컨텍스트 로그, 프로젝트 상태 파일, 결정 로그, 그리고 긴 작업 중 몇 번의 도구 호출마다 업데이트되는 에이전트별 작업 컨텍스트 체크포인트가 포함됩니다.
실시간 컨텍스트 파일은 실시간 핸드셰이크입니다. 불변 규칙: 모든 응답 전에 읽습니다. 모든 의미 있는 턴 후에 추가합니다.
Lyra가 새벽 2시에 PR을 완료하고 Ella가 아침 제 질문에 답할 때, Ella는 이미 알고 있습니다. 그녀는 로그를 읽었습니다. 메시지 전달도, 에이전트 간 API도, 폴링도 없습니다. 하나의 공유 파일, 두 개의 에이전트, 추가 전용 로그입니다.

계층 4: 검색 가능한 지식 (gbrain)
처음 세 계층은 일화 기억을 처리합니다. 무슨 일이 일어났는지, 무엇이 결정되었는지, 앞으로 가져갈 가치가 있는 것은 무엇인지. gbrain은 의미론적 계층입니다. Nexus 볼트 위에서 MCP 서버로 실행되는 컴파일된 위키입니다. 기록된 모든 것에 대한 전체 텍스트 및 의미론적 검색을 제공합니다.
에이전트가 연구 질문에 답하거나, 이전 종합 자료를 찾거나, 이전에 특정 유형의 문제를 어떻게 처리했는지 확인해야 할 때, 모든 파일을 다시 읽는 대신 gbrain에 질의합니다. 출력은 출처가 포함된 관련 페이지의 순위 목록입니다. 에이전트는 관련된 내용만 읽습니다. 전체 볼트를 컨텍스트에 덤프하지 않습니다.
이것이 기억과 회상의 차이입니다. 계층 1~3은 에이전트가 가지고 다니는 것을 처리합니다. 계층 4는 에이전트가 조회할 수 있는 것을 처리합니다.
에이전트 간 동기화 불변 규칙
두 개의 에이전트, 하나의 실시간 컨텍스트 파일. 위험: 서로 덮어쓰거나 서로의 항목을 놓칠 수 있습니다. 우리가 운영하는 불변 규칙: 각 항목은 에이전트 이름, 채널, 종류, 한 줄 요약으로 서명됩니다. 추가 전용입니다. 다른 사람의 항목을 절대 편집하지 않습니다. Lyra가 관련 내용을 기록했다면, Ella는 다음 응답에서 명시적으로 이를 인정합니다. 중요한 결정의 경우, 두 에이전트 모두 타임스탬프와 근거와 함께 결정 로그에 기록합니다.
이 방식은 수백 개의 세션에 걸쳐 운영되었습니다. 한 번의 충돌이 있었습니다: 핸드오프 중 두 에이전트가 같은 분 안에 추가하는 경쟁 조건이었습니다. 해결 방법: 두 항목을 모두 읽고 다음 턴에서 조정합니다. 자동 병합은 필요하지 않았습니다.

이것이 대체하는 것
이 아키텍처 이전: 각각 오래된 컨텍스트를 가진 다섯 개의 분리된 채팅 세션. 서로가 무엇을 알고 있는지 볼 수 없어 모순되는 에이전트들. 3주 전에 내린 지시, 잊혀짐. 파일이 아닌 제 머릿속에만 있던 결정들.
이후: 모든 응답 전에 스스로 브리핑하는 두 에이전트. 부정할 수 없는 공유 상태 로그. 수개월의 컨텍스트 리셋에서도 살아남는 유지된 결정. 제가 편집하고 확인할 수 있는 파일 속 모든 행동 선호도.
솔직한 트레이드오프: 이 시스템은 규율을 요구합니다. 기록을 남겨야 합니다. 파일을 유지 관리해야 합니다. 영구화되기 전에 유지될 내용을 검토해야 합니다. 마법처럼 항상 작동하는 시스템이 아닙니다. 구조화된 수동 규율과 틈새의 자동화입니다.
시작하는 방법
버전 1을 실행하기 위해 두 개의 에이전트나 전체 볼트가 필요하지 않습니다.
1단계: 아이덴티티 파일과 메모리 인덱스. 생성합니다. 세션 시작 시 읽습니다. 같은 실수로 에이전트를 두 번째 수정할 때마다 모든 행동 선호도를 인덱스에 기록합니다.
2단계: 하나의 공유 상태 파일. 둘 이상의 에이전트를 실행하거나 여러 창에서 Claude를 사용하는 경우 실시간 컨텍스트 파일을 생성합니다. 각 세션은 종료 시 추가하고 시작 시 읽습니다.
3단계: 유지 규칙. 세션이 유지되어야 할 결정을 생성하면 수동으로 인덱스에 기록합니다. 패턴을 신뢰할 때까지 수동으로 수행합니다. 그런 다음 플래그 지정을 자동화합니다.
4단계: 하나의 큰 문서가 아닌 사실당 파일. 인덱스는 개별 파일을 가리킵니다. 이렇게 하면 다른 파일에 영향을 주지 않고 오래된 메모리를 쉽게 삭제할 수 있습니다.
전체 4계층 스택이 안정화되는 데 약 6개월이 걸렸습니다. 계층 1과 3은 주말이면 충분했습니다. 거기서 시작하세요.
결론
대부분의 에이전트 메모리 설정은 추가 단계가 있는 컨텍스트 윈도우 관리에 불과합니다. 윈도우가 재설정되거나 두 번째 에이전트를 추가할 때까지는 작동합니다.
지속 가능한 에이전트 메모리는 프롬프팅 문제가 아니라 인프라 문제입니다. 해결책은 다양한 시간 범위를 가진 여러 계층입니다: 세션 내 컨텍스트, 세션 간 사실, 공유 상태, 검색 가능한 지식.
우리의 모든 것은 평범한 마크다운입니다. 벡터 데이터베이스도, 임베딩도, 재학습도 없습니다. 제가 열고, 편집하고, 디버깅할 수 있는 파일들뿐입니다.
진정으로 유용한 에이전트는 가장 큰 컨텍스트 윈도우를 가진 에이전트가 아닙니다. 중요한 것은 기억하고 중요하지 않은 것은 잊는 에이전트입니다.
실제 작업을 신뢰할 수 있는 에이전트를 구축하고 있다면, 더 많은 도구를 추가하기 전에 메모리 아키텍처부터 시작하세요.
참조 도구
Hindsight (로컬 메모리 유지): https://github.com/vectorize-io/hindsight
gbrain (컴파일된 위키 / 의미론적 검색): https://github.com/garrytan/gbrain
OpenClaw (에이전트 런타임): https://openclaw.ai
Hermes (에이전트 런타임): hermes-agent.nousresearch.com





