에이전트가 알아서 배우는 구조를 쓰기 시작하면 곧 이런 생각이 든다.
"그래서 얘가 지금 뭘 알고 있지?"
대화할 때마다 뒤에서 조용히 기억이 쌓이고 스킬이 만들어지는데, 무엇이 언제
들어갔는지는 안 보인다. 그러다 어느 날 에이전트가 엉뚱한 소리를 하면 그제야
찾기 시작한다. 언제부터 이상해진 건지, 무엇을 잘못 배운 건지.
hermes journey 가 그걸 보는 화면이다. 이 글은 그 화면을 처음 여는
사람을 위한 것이다.
주의
이 글은 공식 문서와 Hermes 소스(
agent/learning_graph.py)를 근거로 정리한
것이고, 직접 화면을 띄워 확인하지는 못했다. 글을 쓴 환경에서 설치 주소로
나가는 통신이 막혀 있다.
$ curl -fsSL https://hermes-agent.nousresearch.com/install.sh
curl: (56) CONNECT tunnel failed, response 403명령과 규칙은 문서와 소스에서 그대로 옮겼다. 버전이 오르면 달라질 수 있다.
무엇을 보여 주는 화면인가#
한 줄로 말하면 "배운 것들을 시간 순서로 늘어놓은 그림" 이다. 오래된 것이
왼쪽(위), 최근 것이 오른쪽(아래)이다.
| 화면에 있는 것 | 정체 |
|---|---|
| 점 | 에이전트가 배운 스킬 하나, 또는 기억 한 조각 |
| 선 | 서로 관련 있다고 판단된 점끼리의 연결 |
| 시간축 | 그 점이 언제 생겼거나 마지막으로 쓰였는지 |
에이전트가 기억과 스킬을 어떻게 쌓는지는 앞선
글에서 다뤘다. 이 글은 쌓인 결과를 들여다보고 손보는 쪽이다.
여는 법#
셋 중 편한 데서 연다.
hermes journey # 터미널에서. 별칭: hermes learning, hermes memory-graph
/journey # 대화 중에. 별칭: /learning, /memory-graph
데스크톱 앱에서는 같은 명령이 Star Map 패널을 연다.
참고
텔레그램·디스코드 같은 메신저에서는 안 된다. 그림을 그리는 화면이라
채팅창에 넣을 수가 없다. 게이트웨이로 에이전트를 쓰고 있다면 이것만은
터미널이나 데스크톱 앱에서 봐야 한다.
보기 옵션이 몇 개 있다.
| 옵션 | 하는 일 |
|---|---|
--play |
쌓여 온 과정을 처음부터 재생한다 |
--fps |
재생 속도 |
--width / --height |
그림 크기 |
--no-color |
색 없이 |
--json |
그림 대신 데이터로 뽑는다 |
--play 가 생각보다 쓸모 있다. 어느 시점부터 갑자기 스킬이 우르르 늘었는지가
눈에 보인다. 대개 그 시점에 무슨 일이 있었다.
점이 되는 것과 안 되는 것#
여기가 처음 열었을 때 가장 많이 당황하는 자리다. 깔려 있는 스킬이 다 나오지
않는다. 일부러 그렇게 되어 있다.
| 나온다 | 안 나온다 |
|---|---|
| 에이전트가 직접 만든 스킬 | 설치할 때 딸려 온 기본(base) 스킬 |
| 내가 만들었고 한 번이라도 쓴 스킬 | 만들어만 두고 한 번도 안 쓴 스킬 |
MEMORY.md · USER.md 의 기억 조각 하나하나 |
보관소(.archive)로 치워진 스킬 |
이 화면이 답하려는 질문이 "내가 무엇을 배웠나" 이지 "무엇이 설치돼
있나" 가 아니기 때문이다. 설치된 목록은 hermes skills list 쪽이다.
팁
직접 만든 스킬이 안 보인다면 십중팔구 아직 한 번도 안 쓴 것이다.
슬래시 명령으로 한 번 불러 보면(/스킬이름) 사용 기록이 생기고 그다음부터
타임라인에 올라온다. 스킬을 만드는 쪽은 Hermes 스킬 만들기에
정리했다.
기억은 조금 다르게 쪼개진다. MEMORY.md 는 항목 사이를 § 로 나누는데,
그 조각 하나하나가 각각 점이 된다. 파일 하나가 점 하나가 아니다. 그래서
기억을 열 줄 적어 뒀다면 타임라인에 점이 열 개 생긴다.
선은 어떻게 이어지나#
선은 두 가지 경로로 생긴다. 규칙을 알면 "왜 이게 저것과 이어져 있지?" 가
풀린다.
스킬과 스킬 — 스킬 머리말에 적은 related_skills 를 그대로 읽는다.
양쪽이 둘 다 있어야 이어진다. 한쪽만 적어 두면 선이 안 그려진다.
기억과 스킬 — 이쪽은 내가 적어 주는 게 아니라 낱말이 겹치는 정도로
자동으로 이어 준다. 소스의 규칙은 이렇다.
- 세 글자 이상인 낱말만 센다
- 기억 안에 스킬 이름이 통째로 들어 있으면 가중치를 크게 준다
- 기억 하나당 최대 네 개의 스킬까지만 이어 준다
참고
낱말 겹침이라 의미를 아는 연결이 아니다. "배포"라는 말이 들어간 기억은
배포와 상관없는 스킬에도 걸릴 수 있다. 선은 참고로 보고, 틀렸다고 고칠 것은
아니다. 정말 이어 두고 싶은 스킬끼리는related_skills에 적는 쪽이 확실하다.
시간은 어디서 오나#
점이 놓이는 자리는 사용 기록 파일(~/.hermes/skills/.usage.json)에서 온다.
이 순서로 찾아서 처음 있는 값을 쓴다.
마지막 활동 → 마지막 사용 → 마지막 열람 → 마지막 수정 → 만든 시각
기록이 없으면 파일을 고친 시각으로 대신한다.
주의
그래서 "만든 날"이 아니라 "최근에 손댄 날"에 가깝다. 오래전에 만든
스킬을 어제 한 번 썼으면 타임라인에서는 어제 자리에 선다. 순서가 기억과
다르게 보인다면 이것 때문이다.
잘못 배운 것 치우기#
이 화면의 진짜 값어치는 보는 것이 아니라 치우는 것이다. 순서는 셋이다.
1. 이름(id)을 확인한다.
hermes journey list
스킬은 스킬 이름 그대로 나오고, 기억은 memory:<출처>:<번호> 꼴로 나온다.
기억에는 이름이 없으니 번호로 가리키는 것이다.
2. 고칠 것이면 연다.
hermes journey edit <노드>
편집기가 뜬다. 스킬이면 SKILL.md 가, 기억이면 그 조각이 열린다.
내용이 반쯤 맞을 때는 지우지 말고 고치는 쪽이 낫다.
3. 아니면 지운다.
hermes journey delete <노드> # 확인을 묻는다
hermes journey delete <노드> -y # 묻지 않고
여기서 스킬과 기억의 동작이 다르다.
| 대상 | 지우면 |
|---|---|
| 스킬 | 보관소로 옮긴다. 되살릴 수 있다 |
| 기억 | 정말 지운다. 되돌릴 수 없다 |
경고
기억은 되돌릴 수 없다. 애매하면 지우지 말고
edit으로 열어서 틀린
부분만 고친다. 스킬 쪽은 보관이라 마음 편히 지워도 되고,
hermes curator restore로 되살린다.
숫자로 보고 싶으면#
그림 대신 데이터로 받을 수 있다.
hermes journey --json
사람이 눈으로 볼 것은 아니지만, 여기 나오는 숫자 두 개는 알아 둘 만하다.
| 숫자 | 뜻 | 높으면·낮으면 |
|---|---|---|
| 노드당 평균 연결 수 | 점 하나에 선이 몇 개나 붙어 있나 | 낮으면 배운 것들이 서로 따로 논다 |
| 고립된 노드 비율 | 선이 하나도 없는 점의 비율 | 높으면 related_skills 를 아무도 안 적고 있다는 뜻 |
분류별 개수와 "에이전트가 직접 만든 것" 수도 같이 나온다. 마지막 숫자가
빠르게 늘고 있다면 자동 학습이 잘 돌고 있다는 뜻이자, 한 번 훑어볼 때가
됐다는 뜻이다.
언제 보나#
한 달에 한 번 몰아서 보면 이미 늦다. 잘못 배운 것은 그 사이 내내 쓰인다.
| 언제 | 무엇을 |
|---|---|
| 주 1회 | hermes journey 로 훑는다 — 모르는 점이 생겼나 |
| 에이전트가 이상한 소리를 했을 때 | 가장 먼저 여기를 본다. 언제부터인지 시간축에 보인다 |
| 자동 학습을 막 켰을 때 | 며칠은 자주 본다. 무엇을 배울 만하다고 판단하는지 감이 온다 |
팁
이상한 것을 배우기 전에 막고 싶으면 승인 게이트를 켜는 쪽이 낫다
(skills.write_approval,memory.write_approval).
journey 는 이미 배운 것을 되짚는 창구고, 게이트는 들어오는 길목을 막는
스위치다. 둘은 다른 일을 한다.
이 점검을 스킬·큐레이터와 묶어 한 달 루틴으로 돌리는 쪽은
Hermes 에이전트 운영법에 따로 정리했다.
막히는 자리#
| 증상 | 볼 곳 |
|---|---|
메신저에서 /journey 가 안 먹는다 |
메신저에서는 지원하지 않는다. 터미널이나 데스크톱 앱 |
| 내가 만든 스킬이 안 보인다 | 한 번도 안 쓴 스킬은 안 나온다. 한 번 불러 본다 |
| 기본 스킬이 하나도 안 보인다 | 정상이다. 배운 것만 보여 주는 화면이다 |
| 점이 이어지지 않는다 | related_skills 가 한쪽에만 적혀 있나. 양쪽 다 있어야 한다 |
| 시간 순서가 기억과 다르다 | 만든 날이 아니라 마지막으로 손댄 날이다 |
| 지운 스킬을 되살리고 싶다 | hermes curator restore <이름> |
| 지운 기억을 되살리고 싶다 | 되돌릴 수 없다 |
정리#
- journey 는 "무엇이 설치돼 있나"가 아니라 "무엇을 배웠나"를 보여 준다. 기본 스킬과 한 번도 안 쓴 스킬은 일부러 빠진다.
- 기억은 조각 단위로 점이 된다.
§로 나뉜 항목 하나가 점 하나다. - 선은 두 경로로 생긴다. 스킬끼리는
related_skills(양쪽 다 필요), 기억과 스킬은 낱말 겹침(기억당 최대 넷). 뒤쪽은 참고용이다. - 시간은 만든 날이 아니라 마지막으로 손댄 날에 가깝다.
- 치우는 것이 이 화면의 값어치다.
list로 id 를 찾아edit으로 고치고delete로 치운다. - 스킬은 보관, 기억은 삭제. 기억은 되돌릴 수 없으니 애매하면 고치는 쪽으로.
- 주 1회 훑는 습관 하나면 "언제부터 이상해졌지"를 찾는 데 드는 시간이 거의 사라진다.
참고#
- Persistent Memory — journey 가 이 문서 안에 정리돼 있다
- Skills System · Curator
agent/learning_graph.py— 점과 선을 만드는 규칙이 들어 있는 소스

댓글