7. 메모리와 스킬: Hermes가 성장하는 방식
7. 메모리와 스킬: Hermes가 성장하는 방식
Hermes Agent를 처음 며칠만 쓰면 이렇게 느끼기 쉽습니다. "오, 도구를 잘 쓰는 AI네." 그런데 조금 더 오래 함께 일해 보면 진짜 차이는 다른 곳에서 드러납니다. Hermes는 단지 그때그때 대답하는 것이 아니라, 작업 과정에서 배운 것을 남기고, 다음에 더 잘 쓰기 위해 정리하고, 필요할 때 다시 꺼내 쓰는 구조를 갖고 있습니다.12
쉽게 말해, 보통의 AI가 그날그날 기억력이 좋은 조수라면, Hermes는 메모를 남기고 업무 매뉴얼까지 스스로 쌓아 가는 동료에 가깝습니다. 그래서 이 장의 핵심 질문은 하나입니다. 왜 Hermes는 오래 쓸수록 더 유용해지는가? 답은 메모리와 스킬 시스템에 있습니다.13

Hermes는 무엇을 어떻게 기억할까
Hermes의 기억은 하나의 큰 창고가 아닙니다. 성격이 다른 여러 층으로 나뉘어 있습니다. 중요한 사실은 늘 들고 다니고, 자세한 과거 대화는 필요할 때 검색하고, 반복할 가치가 있는 작업 방식은 스킬이라는 문서로 굳힙니다.3
이 구조를 사람에 비유하면 이해가 쉽습니다. 머릿속에 늘 떠올리고 다니는 핵심 정보가 있고, 예전 노트를 다시 뒤져 보는 순간이 있고, 자주 하는 일을 손에 익은 요령으로 처리하는 습관이 있습니다. Hermes도 비슷합니다.
| 층 | 역할 | 비유 |
|---|---|---|
| 영구 메모리 | 꼭 알아야 할 핵심 사실 유지 | 늘 들고 다니는 작은 수첩 |
| 세션 검색 | 과거 대화를 다시 찾기 | 서랍 속 회의록 검색 |
| 스킬 | 반복 가능한 절차 저장 | 자주 쓰는 작업 매뉴얼 |
| 사용자 모델링 | 사용자 취향과 일하는 방식 이해 | 함께 일하며 생긴 감각 |
중요한 점은, Hermes가 모든 것을 같은 방식으로 기억하지 않는다는 사실입니다. 이 설계 덕분에 프롬프트가 무한히 비대해지지 않으면서도, 필요한 순간에는 과거 경험을 다시 불러올 수 있습니다.23
첫 번째 층: 영구 메모리
Hermes의 가장 기본적인 장기 기억은 MEMORY.md와 USER.md 두 파일에 담깁니다. 둘 다 ~/.hermes/memories/ 아래에 저장되며, 세션이 시작될 때 시스템 프롬프트에 자동으로 주입됩니다.23
MEMORY.md에는 에이전트가 작업을 잘하기 위해 알아야 하는 사실이 들어갑니다. 예를 들면 이런 것들입니다.
이 서버는 Ubuntu 22.04이고 Docker를 쓸 때 sudo가 필요 없다.
프로젝트는
~/code/api에 있고 Rust와 SQLx를 쓴다.이 저장소는 탭 들여쓰기와 120자 줄 길이 규칙을 쓴다.
반면 USER.md에는 사용자에 대한 정보가 들어갑니다. 예를 들면 응답을 짧게 원하는지, 어떤 언어와 스택을 주로 쓰는지, 어떤 메신저를 선호하는지 같은 내용입니다.2
여기서 재미있는 점은, 이 메모리가 무제한이 아니라는 것입니다. 공식 문서 기준으로 MEMORY.md는 약 2,200자, USER.md는 약 1,375자로 제한됩니다. 얼핏 보면 작아 보이지만, 이것은 약점이라기보다 설계 의도에 가깝습니다. 정말 중요한 것만 남겨서 항상 컨텍스트에 실어 두려는 것입니다.2
이 구조를 이해하면 "왜 Hermes가 사소한 정보는 안 외우지?"라는 의문도 풀립니다. Hermes의 영구 메모리는 일기장이 아니라, 핵심만 적는 포켓 메모입니다. 금방 다시 찾을 수 있는 정보, 일회성 경로, 긴 로그 덤프 같은 것은 여기 들어갈수록 오히려 방해가 됩니다.2
메모리는 왜 바로 반영되지 않을까
Hermes의 영구 메모리는 세션 시작 시점에 한 번 읽혀 들어오고, 그 세션 동안에는 고정됩니다. 작업 중간에 새 메모리가 저장되더라도 디스크에는 즉시 반영되지만, 현재 세션의 시스템 프롬프트는 바로 바뀌지 않습니다. 바뀐 내용은 다음 세션부터 자연스럽게 보입니다.23
처음 들으면 약간 답답하게 느껴질 수 있습니다. "기억했으면 바로 써야 하는 것 아닌가?" 하고요. 하지만 이유를 알고 보면 꽤 현실적인 선택입니다. 세션 중간마다 시스템 프롬프트가 흔들리면 모델의 작업 맥락이 불안정해지고, prefix cache도 깨져 비용과 성능이 나빠질 수 있습니다. Hermes는 즉시성보다 안정성을 택한 셈입니다.3
비유하자면 이렇습니다. 회의 도중 팀 운영 원칙을 통째로 갈아 끼우지 않고, 회의가 끝난 뒤 다음 회차부터 새 원칙을 적용하는 방식입니다. 덜 극적이지만 훨씬 덜 혼란스럽습니다.
또 하나 알아둘 점은 메모리 저장이 무방비로 일어나지 않는다는 사실입니다. 저장되는 내용은 프롬프트 인젝션, 자격 증명 유출, SSH 백도어 같은 위험 패턴을 검사한 뒤 반영됩니다.3 즉, "오래 기억한다"는 장점 뒤에 "아무거나 영구 저장하지 않는다"는 안전장치도 함께 붙어 있습니다.
두 번째 층: 세션 검색
영구 메모리가 작은 수첩이라면, 세션 검색은 커다란 보관함입니다. Hermes는 모든 CLI와 메시징 대화를 SQLite 데이터베이스인 ~/.hermes/state.db에 저장하고, FTS5 전체 텍스트 검색으로 인덱싱합니다. 필요할 때 이 기록을 검색해 관련 조각을 찾고, 요약한 뒤 현재 대화에 다시 가져옵니다.23
이 차이는 아주 중요합니다. 영구 메모리는 항상 컨텍스트에 실려 있으므로 빠르지만, 분량이 작습니다. 세션 검색은 즉시 항상 붙어 있지는 않지만, 사실상 용량 제한 없이 과거를 뒤질 수 있습니다.2
예를 들어 지난주에 "인증 서버가 2222 포트로 SSH를 받는다"는 얘기를 길게 나눴는데 영구 메모리에 들어가 있지 않을 수 있습니다. 이럴 때 Hermes는 세션 검색을 통해 그 대화를 다시 찾아낼 수 있습니다. 즉, 모든 걸 늘 들고 다닐 필요는 없습니다. 필요한 순간에 다시 찾으면 되니까요.3
이 방식은 운영 관점에서도 꽤 영리합니다. 매번 과거 대화 전체를 프롬프트에 넣는 건 낭비이지만, 필요할 때만 검색해서 요약하면 훨씬 경제적입니다. 마치 책상 위에는 당장 필요한 서류만 올려 두고, 나머지는 서랍에서 꺼내 쓰는 것과 같습니다.
물론 한계도 있습니다. FTS5 기반 검색은 기본적으로 텍스트 검색이기 때문에, 저장된 표현과 전혀 다른 단어로 물으면 놓치는 경우가 있습니다.3 완전한 마법이라기보다, 빠르고 실용적인 과거 회상 장치에 가깝다고 이해하는 편이 좋습니다.
세 번째 층: 사용자 모델링
Hermes가 오래 쓰면 점점 "내 취향을 아는 느낌"이 나는 이유는 단순히 USER.md만 있어서가 아닙니다. 기본 사용자 프로필 위에, 더 깊은 사용자 모델링 계층을 붙일 수 있기 때문입니다. 대표적인 선택지가 Honcho입니다.14
Honcho를 연결하면 Hermes는 단순한 사실 저장을 넘어, 사용자가 어떤 스타일로 일하는지, 어떤 기준으로 결과를 만족스럽다고 보는지, 어떤 표현을 선호하는지 더 지속적으로 다룰 수 있습니다. Honcho 문서는 이를 사용자 피어와 AI 피어라는 이중 구조로 설명합니다. 즉, "사용자가 어떤 사람인가"와 "에이전트가 무엇을 알고 있는가"를 함께 다루는 셈입니다.4
조금 쉽게 말하면, USER.md가 명시적 프로필 카드라면 Honcho는 함께 일하며 형성되는 감각에 가깝습니다. 예를 들어 이런 차이가 생깁니다.
USER.md는 "응답은 짧게"를 적어 둡니다.
Honcho는 "짧게 답하되, 배포나 보안 문제는 예외적으로 더 자세히 설명하는 편이 만족도가 높다"는 식의 패턴을 더 잘 다룹니다.
Hermes는 hermes memory setup으로 외부 메모리 제공자를 붙일 수 있고, 상태도 확인할 수 있습니다.2 다만 여기서 기억해야 할 것은, 외부 제공자가 기본 메모리를 대체하는 것이 아니라 보강한다는 점입니다. 기본 메모리는 여전히 중심에 있고, 사용자 모델링은 그 위에 깊이를 더합니다.24
스킬은 "무엇을 알았는가"보다 "어떻게 했는가"를 남긴다
메모리가 사실을 기억한다면, 스킬은 방법을 기억합니다. 이것이 Hermes를 꽤 특별하게 만드는 부분입니다. 스킬은 ~/.hermes/skills/에 저장되는 문서형 절차 지식으로, 특정 작업을 언제 써야 하는지, 어떤 순서로 해야 하는지, 어떤 함정이 있는지, 성공 여부를 어떻게 확인할지까지 담습니다.13
예를 들어 Hermes가 브랜드 이미지를 만들다가 "이미지는 생성 모델로 만들고, 로고는 Python으로 오버레이해야 일관성이 높다"는 실전 해법을 찾아냈다고 해 봅시다. 이건 단순한 사실이 아니라 절차입니다. 다음번에도 비슷한 작업이 오면, 처음부터 다시 헤매지 않고 그 절차를 재사용하는 편이 훨씬 낫습니다. 이런 지식이 바로 스킬이 됩니다.35
좋은 스킬은 보통 네 가지를 담습니다.
언제 쓰는가
어떤 순서로 진행하는가
자주 막히는 지점이 어디인가
끝났는지 어떻게 검증하는가
즉, 스킬은 단순한 팁 모음이 아니라 재현 가능한 작업 문서입니다. 그래서 Hermes 문서에서는 이를 procedural memory, 곧 절차 기억이라고 부릅니다.13
Hermes는 언제 스킬을 만들까
Hermes는 모든 작업을 스킬로 만들지 않습니다. 문서에 따르면 보통 복잡한 작업을 끝냈을 때, 오류를 여러 번 겪고 나서 성공 경로를 찾았을 때, 사용자가 접근 방식을 교정했을 때, 또는 반복 가치가 있는 비사소한 워크플로를 발견했을 때 스킬을 만들거나 기존 스킬을 고칩니다.3
이 기준이 중요한 이유는, Hermes의 목표가 "모든 경험 저장"이 아니라 "재사용 가치가 있는 경험 승격"이기 때문입니다. 한 번 쓰고 버릴 요령까지 전부 스킬로 만들면 오히려 잡음이 늘어납니다.
또한 스킬은 한 번 쓰고 끝나는 문서가 아닙니다. 나중에 같은 스킬을 다시 쓰는 과정에서 더 나은 방법을 찾거나, 사용자가 "그 단계는 빼고 이 검증을 넣어 달라"고 교정하면 Hermes는 기존 스킬을 패치할 수 있습니다.35
이 점이 중요합니다. Hermes의 성장은 갑자기 천재가 되는 식이 아니라, 매번 일을 하며 작업 매뉴얼을 조금씩 다듬는 식에 가깝습니다. 매우 인간적이고, 그래서 오히려 믿을 만합니다.
자기 개선 루프는 어떻게 돌아갈까
Hermes의 자기 개선은 모델 가중치를 몰래 다시 훈련하는 식이 아닙니다. 기본 모델 자체가 바뀌는 것은 아닙니다. 대신 Hermes는 작업 중 생긴 경험을 문서와 메모리로 구조화하면서 행동 수준에서 더 나아집니다.5
공식 설명을 보면, Hermes는 대략 15번의 도구 호출마다 자기 평가 체크포인트를 거칩니다. 여기서 스스로 묻습니다. 무엇을 했는가, 무엇이 잘 됐는가, 어디서 막혔는가, 이 경험이 다시 쓸 만한가, 메모리에 남길 만한 사실이 있는가. 그리고 필요하면 스킬을 새로 만들거나 고치고, 영구 메모리도 갱신합니다.35
이 과정을 단계로 나누면 이렇습니다.
작업을 수행한다.
중간 체크포인트에서 경험을 되돌아본다.
재사용 가치가 있으면 스킬을 만들거나 패치한다.
환경 정보나 사용자 선호는 메모리에 남긴다.
겉으로 보면 조용히 일하는 것 같지만, 내부적으로는 "실행 → 성찰 → 문서화 → 재사용"의 루프가 돌고 있는 셈입니다.15
그래서 Hermes는 몇 번 쓴다고 바로 달라지기보다, 반복 업무가 쌓일수록 차이가 커집니다. 공식 가이드도 20~30개의 복잡한 작업이 지나면 특정 워크플로에서 속도와 정확도가 눈에 띄게 좋아질 수 있다고 설명합니다.5
왜 시간이 지날수록 더 쓸모있어질까
메모리와 스킬이 함께 작동하면, Hermes는 단순히 과거를 기억하는 수준을 넘어서 "다음번엔 덜 헤매는" 방향으로 진화합니다. 실제 체감은 대체로 네 가지로 나타납니다.
같은 설명을 반복할 일이 줄어든다.
이미 교정한 실수를 다시 할 확률이 낮아진다.
반복 작업의 단계 수가 줄어든다.
플랫폼이 바뀌어도 같은 에이전트처럼 이어진다.16
예를 들어 첫 주의 Hermes는 "이 프로젝트는 어떤 스택이죠?"를 자주 물을 수 있습니다. 한 달 뒤의 Hermes는 이미 스택과 선호를 알고 있고, 예전에 잘 먹힌 절차까지 스킬로 들고 있습니다. 그래서 사용자는 같은 일을 시킬 때 설명보다 지시만 하면 되는 경우가 많아집니다. 여기서 생산성 차이가 납니다.
핵심은 이것입니다. Hermes가 더 똑똑해지는 이유는, 세상을 더 많이 알아서가 아니라 당신의 작업 방식을 더 잘 배우기 때문입니다.56
하지만 만능은 아니다
이 장에서 한 가지는 분명히 하고 넘어가야 합니다. Hermes의 자기 개선은 강력하지만, 무제한 자동 완성은 아닙니다.5
첫째, 메모리는 작게 유지되도록 설계되어 있으므로 모든 것을 담을 수 없습니다. 핵심이 아닌 정보는 세션 검색이나 외부 메모리 계층에 기대야 합니다.23
둘째, 잘못 만들어진 스킬은 잘못된 습관이 될 수 있습니다. 자동 생성된 절차가 특정 상황에 과적합될 가능성도 있습니다.35
셋째, 기본 모델이 가진 한계까지 사라지는 것은 아닙니다. Hermes는 절차와 기억 면에서 강해지지만, 밑바탕 모델의 추론 품질 자체를 마법처럼 바꾸지는 못합니다.5
이 말은 곧, Hermes를 잘 키우려면 사용자도 적당히 코치 역할을 해야 한다는 뜻입니다. 틀린 것은 바로잡고, 반복할 가치가 있는 패턴은 분명하게 알려 주고, 오래된 메모리나 덜 쓰는 스킬은 가끔 정리하는 편이 좋습니다.
Hermes를 잘 성장시키는 사용 습관
좋은 소식은, 거창한 튜닝보다 일상적인 사용 습관이 더 중요하다는 점입니다. Hermes를 잘 키우는 가장 쉬운 방법은 다음과 같습니다.
선호와 금지 사항을 분명하게 말한다. 예를 들면 "답은 짧게", "배포 전에는 반드시 검증 절차를 적어 달라" 같은 말은 USER.md에 남기기 좋습니다.
교정할 때 이유까지 함께 말한다. "이 방법은 우리 서버에서 안 된다"보다 "우리 서버는 Docker 그룹에 이미 들어가 있으니 sudo를 쓰지 마라"가 훨씬 좋은 학습 재료입니다.
반복 작업은 비슷한 방식으로 맡긴다. 같은 종류의 업무가 여러 번 등장해야 스킬이 실전 매뉴얼로 자랍니다.
너무 많은 일회성 잡정보를 기억시키려 하지 않는다. 영구 메모리는 냉장고가 아니라 비상식량 상자에 가깝습니다.
결국 Hermes를 성장시키는 가장 좋은 연료는 사용 빈도만이 아니라, 명확한 피드백입니다. 사람도 "왜 이게 맞고 왜 저건 틀린지"를 들을 때 빨리 배우듯이, Hermes도 그렇습니다.
이 장의 핵심 정리
Hermes가 오래 쓸수록 유용해지는 이유는 단순한 대화 기록 저장이 아닙니다. 핵심 사실은 영구 메모리에 남기고, 긴 과거는 세션 검색으로 다시 찾고, 반복 가치가 있는 절차는 스킬로 굳히며, 사용자 모델링으로 일하는 스타일 자체를 점점 더 잘 맞춰 가기 때문입니다.1234
즉, Hermes의 성장은 세 가지가 함께 만들었습니다. 기억, 회상, 그리고 습관입니다. 기억은 MEMORY.md와 USER.md가 맡고, 회상은 세션 검색이 맡고, 습관은 스킬이 맡습니다. 여기에 자기 평가 체크포인트가 더해지면서, Hermes는 매번 처음부터 다시 생각하는 에이전트가 아니라 점점 덜 헤매는 에이전트가 됩니다.35
다음 장에서는 이 성장한 에이전트를 이제 터미널 밖으로 꺼내 보겠습니다. Hermes를 Telegram, Discord, Slack 같은 메시징 게이트웨이에 연결하면, 같은 기억과 같은 스킬을 가진 에이전트가 여러 채널에서 살아 움직이기 시작합니다.
참고
2Persistent Memory | Hermes Agent
3How Hermes Agent Memory Works — 3-Layer System Explained | Hermes Agent
4Hermes Agent + Honcho - Honcho
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.