튜토리얼 20: 영구 메모리 — 장기 기억
튜토리얼 20: 영구 메모리 — 장기 기억 — 공식 문서 기반의 이해하기 쉬운 가이드
이 글은 Hermes Agent 공식 튜토리얼 시리즈의 일부입니다. 전체 튜토리얼 보기
이 기능을 책상 위의 포스트잇이라고 생각해 보세요. Hermes Agent가 여러분과 프로젝트에 관한 중요한 내용을 적어 두고, 대화가 끝나도 잊어버리지 않게 해 줍니다. 이제 새 채팅을 시작할 때마다 같은 말을 반복할 필요가 없어요.
지속 메모리는 어떤 기능인가요?
일반적으로 AI 에이전트는 세션이 시작될 때마다 초기화됩니다. 대화가 끝나면 모든 것을 잊어버리죠. 지속 메모리는 이걸 바꿔 줍니다. Hermes Agent는 컴퓨터에 작은 텍스트 파일 두 개를 보관합니다. 그리고 매 세션이 시작될 때 이 파일들을 읽어서, 여러분의 선호도, 프로젝트 세부 사항, 그리고 가르쳐 준 모든 내용을 즉시 기억합니다.
1단계: 두 개의 메모리 파일 알아보기
에이전트의 메모리는 ~/.hermes/memories/ 폴더에 저장된 두 개의 파일에 담깁니다.
| 파일 | 저장 내용 | 크기 제한 |
|---|---|---|
| MEMORY.md | 에이전트의 개인 메모 — 환경 정보, 규칙, 학습한 내용 | 2,200자 (약 800 토큰) |
| USER.md | 사용자 프로필 — 선호도, 의사소통 스타일, 기대 사항 | 1,375자 (약 500 토큰) |
크기 제한은 의도적으로 설정된 것입니다. 이 제한 덕분에 에이전트는 어수선한 서랍이 아니라 잘 정리된 노트처럼 중요한 내용만 간직하게 됩니다.
2단계: 프롬프트에서 메모리가 어떻게 표시되는지 확인하기
각 세션이 시작될 때, 에이전트는 두 파일을 모두 로드하여 시스템 프롬프트에 고정된 스냅샷으로 표시합니다. 에이전트가 “보는” 내용의 예시는 다음과 같습니다.
══════════════════════════════════════════════
MEMORY (사용자 개인 메모) [67% — 1,474/2,200자]
══════════════════════════════════════════════
사용자의 프로젝트는 ~/code/myapi에 있는 Rust 웹 서비스로 Axum + SQLx 사용
§
이 머신은 Ubuntu 22.04를 실행 중이며, Docker와 Podman이 설치되어 있음
§
사용자는 간결한 답변을 선호하며, 장황한 설명을 싫어함
세부 사항을 살펴보세요.
- 어떤 저장소인지 보여주는 헤더 (MEMORY 또는 USER PROFILE)
- 남은 공간을 알 수 있는 사용률 및 문자 수
§(섹션 기호)로 구분된 항목들- 항목은 여러 줄로 작성될 수 있음
중요: 이 스냅샷은 세션 시작 시 한 번만 캡처되며 세션 중간에는 절대 변경되지 않습니다. 채팅 중에 에이전트가 메모리를 업데이트하면 변경 사항은 즉시 디스크에 저장되지만, 프롬프트에는 다음 세션이 되어서야 나타납니다. 이렇게 함으로써 모델의 캐시를 유지하여 속도를 높일 수 있습니다.
3단계: 에이전트가 스스로 메모리를 관리합니다
에이전트는 memory라는 도구를 사용하며, 여기에는 세 가지 작업이 있습니다.
- add — 새 메모리 항목 추가
- replace — 기존 항목 교체 (
old_text로 부분 문자열 일치 사용) - remove — 더 이상 관련 없는 항목 삭제 (
old_text사용)
read 작업은 없습니다. 메모리가 이미 프롬프트에 주입되어 에이전트가 항상 볼 수 있기 때문입니다.
에이전트가 이 도구를 사용하는 간단한 예시는 다음과 같습니다.
memory action=add content="사용자는 문단보다 불릿 포인트를 선호함"
또는 기존 선호도를 교체하는 경우:
memory action=replace old_text="사용자는 간결한 답변을 선호함" new_text="사용자는 이모지가 포함된 한 줄 답변을 선호함"
4단계: 메모리가 가득 차면 어떻게 되나요?
메모리는 자동으로 압축되지 않습니다. 쓰기 작업이 한도를 초과하면 memory 도구는 항목을 조용히 버리는 대신 오류를 반환합니다. 그러면 에이전트가 같은 턴에서 항목을 통합하거나 삭제하여 공간을 확보한 후 다시 시도합니다.
또한 replace 작업도 한도의 적용을 받습니다. 항목을 더 긴 내용으로 교체하면 여전히 용량을 초과할 수 있으므로, 새 내용을 줄이거나 다른 항목을 삭제하여 맞춰야 합니다.
5단계: Hermes 홈 디렉토리당 에이전트 하나만! (중요!)
두 개의 에이전트 프로세스를 동일한 Hermes 홈 디렉토리를 가리키게 하지 마세요. 메모리 쓰기는 자동으로 이루어지며 세션 시작 시 시스템 프롬프트에 다시 로드됩니다. 따라서 두 개의 작성자가 하나의 홈 디렉토리를 공유하면 서로의 항목이 합쳐져 누구도 작성하지 않은 엉망진창이 됩니다. 메모리는 설계상 프로필별로 범위가 지정됩니다. 두 번째 에이전트에는 자체 프로필을 부여하세요. 공유 메모리가 필요하다면 외부 메모리 제공자를 대신 사용하세요.
요약
지속 메모리는 Hermes Agent가 세션을 넘나들며 여러분을 기억할 수 있는 간단하고 제한된 방법을 제공합니다. MEMORY.md와 USER.md라는 두 개의 작은 파일이 선별된 메모를 담고 있으며, 세션 시작 시 고정된 스냅샷으로 주입됩니다. 에이전트는 memory 도구를 사용하여 이러한 파일을 스스로 관리하며, 문자 수 제한 덕분에 내용이 집중력을 유지합니다. 기억하세요: 홈 디렉토리당 에이전트 하나, 그리고 스냅샷은 세션 시작 시에만 업데이트됩니다.
다음 튜토리얼: 튜토리얼 21 — 예약 작업: 타이머에 따라 자동으로 실행되는 자동화 설정하기.
📖 공식 문서
この記事は Hermes Agent の공식 문서に基づいています:공식 문서 › user-guide/features/memory