Hermes Agent v0.21.2 업데이트 후기 — state.db 손상 사고·계정 자격증명 유출 보안 패치 총정리, 크론잡 돌리는 분들은 꼭 'hermes update' 하세요 (2026.9.13)

Hermes Agent 데스크톱 공식 미리보기 — 멀티 프로필·봇 모드·플러그인 페이지가 한 화면에 Hermes Agent Desktop 공식 미리보기 이미지 — 이번 v0.21.2에서 자격증명 격리와 플러그인 페이지가 크게 손봐진 화면입니다 (출처: hermes-agent.nousresearch.com 공식 홈페이지)

📌 한줄 요약: 요즘 저처럼 Hermes Agent로 크론잡 자동화 작업·업무 자동화를 돌리시는 분들은 이번 주에 꼭 hermes update 한 번 하세요. 9월 11일 공개된 v0.21.2(v2026.9.11)는 이름은 “state.db 패치 릴리스”인데, 실제 내용은 ① 세션 DB(state.db) 손상 사고의 근본 원인 제거(6개 PR·44개 이슈 종료) 그리고 ② 멀티 프로필 환경의 계정 자격증명 유출 경로 차단입니다. 특히 ②는 제가 이 블로그를 게이트웨이로 돌리는 입장에서 가장 반가운 보안 패치였습니다. 공짜(MIT) 업데이트니 안 할 이유가 없습니다.


이 글을 읽으면 알 수 있는 것

  • v0.21.0 판테온 이후 무슨 사고가 났길래 DB가 깨졌는지 — 원인 4가지와 이번에 어떻게 고쳤는지
  • 멀티 프로필 자격증명 유출이 얼마나 위험했는지 — 어떤 경로로 남의 시크릿이 새던지 5가지
  • v0.21.2에서 새로 생긴 기능 — 패스워드 블라인드 볼트, 플러그인 카탈로그, Nous 무료 티어
  • 자동화 작업 기준 실제 체감 — 업데이트 후 달라진 점
  • 업데이트 순서와 이미 DB가 깨진 경우의 복구 절차
  • 솔직한 장단점 — “이건 바로 해” vs “이건 아직 아쉽다”

도입: “저처럼 Cron으로 자동화 작업 돌리시는 분들, 지난주에 세션 DB 깨지셨죠?”

요즘 저처럼 Hermes Agent를 서버에 물려놓고 크론잡으로 매일 자동화 작업을 돌리시는 분들 많으시죠? 저도 Hermes Agent를 8월부터 실사용하고 있는데, 지난 8월 31일 v0.21.0 ‘판테온(Pantheon)’ 업데이트 직후 며칠간 뭔가 이상했습니다. 예약 발행이 조용히 안 돌거나, sessions list가 마지막 줄에서 죽거나, 로그에 “state.db locked” 비슷한 문구가 반복해서 찍히는 겁니다.

처음엔 제가 설정을 잘못 건드렸나 싶어서 hermes doctor만 몇 번씩 돌렸습니다. 그런데 알고 보니 저만 그런 게 아니었습니다. GitHub 이슈에 해외 사용자들의 제보가 쏟아졌고, Nous Research는 v0.21.1(9/7)을 거쳐 v0.21.2(9/11, 태그 v2026.9.11)에서 state.db 신뢰성 캠페인을 정식으로 마무리했습니다. 늦었지만 정리해 봅니다. 저처럼 서버 한 대로 여러 프로필을 굴리는 분들은 특히 읽어보실 만합니다.


핵심 ① state.db 손상 사고 — “고장 난 척하던” 세션 저장소

이번 릴리스의 부제가 아예 “The state.db Patch Release”입니다. 문제의 발단은 v0.21.0이 세션 저장소의 연결(커넥션) 처리 코드를 크게 갈아엎은 것이었습니다. 새 구조가 일부 설치본에서 SQLite를 취약하게 만들었고, 이번에 증상이 아니라 원인을 고치는 6개 PR로 44개 이슈를 닫았습니다. 제가 읽고 “아, 이게 나 때문이 아니었구나” 싶었던 부분만 추리면 이렇습니다.

  • ‘두 번째 작성자(second writer)’가 락을 서로 취소하던 문제 — 프로필 게이트웨이가 호스팅 룸 상태를 5초마다 루트 state.db에 쓰고 있었고, 대시보드는 시작할 때 쓰기 가능 핸들을 열었고, 크론의 라이프사이클 가드는 살아 있는 DB를 그냥 open() 했습니다(POSIX 락을 날려버리는, 이른바 “SQLite를 깨뜨리는 고전 레시피”). 심지어 doctor --fix가 살아 있는 DB 위에서 체크포인트를 시도했습니다. 이 네 가지가 전부 사라졌습니다. 호스팅 룸은 별도 shared-state.db로 옮겨졌고, 대시보드는 먼저 읽기 전용으로 열고, 가드는 추적되는 커넥션 레지스트리를 지나가고, doctor --fix는 안전하다고 증명 못 하는 체크포인트를 거부합니다.
  • 멀쩡한 WAL DB가 ‘wedging’(걸림) 되던 문제 — OpenZFS의 (deleted) dentry나 append_message와 겹친 close() 때문에 정상 DB에 DeletedWalGenerationError가 달라붙었고, WSL2의 일시적 disk I/O 오류가 첫 시도에서 get_session을 죽였습니다. “state.db locked” 배너가 락이 풀린 뒤에야 뜨는 것도 있었습니다.
  • 검색 인덱스(FTS) 손상이 대화 자체를 죽이던 문제 — 원래는 FTS 오류인데 파일 전체 손상으로 분류해서 대화를 fail-closed 시켰습니다. 이제는 fts_index로 분류해서 검색만 잠시 성능이 떨어지고, 인덱스는 나중에 재빌드되며, 트랜스크립트는 건드리지 않습니다.
  • 말썽꾸러기 행 하나가 sessions list·export·insights를 다 죽이던 문제 — TEXT 타임스탬프나 1e30 같은 에포크 값 하나 때문에 목록 전체가 죽고, 999개 초과 id는 일괄 삭제/정리에서 죽었습니다. 이제 coerce_epoch()가 나쁜 행을 ?로 표시하며 WARNING에 세션 id를 찍습니다.
  • 세션이 다른 프로필 DB에 붙거나 읽던 문제 — HERMES_HOME 재정의 레이스에서 데스크톱 백엔드가 엉뚱한 프로필의 state.db에 고정될 수 있었고, 세션 id만으로 하는 session_search가 모든 프로필을 훑어 남의 트랜스크립트를 돌려주던 문제도 있었습니다.
  • 아무것도 안 쓸 때도 쓰기 락을 잡던 문제 — 바쁜 게이트웨이 뒤에서 일회성 hermes 프로세스가 4~20초 멈추고 “database is locked”로 실패하던 것이 이제 0.01초로 끝납니다.

솔직히 저는 이 항목들을 읽으면서 “패치 릴리스에 이걸 다 넣는다고?” 싶었습니다. 그만큼 이 사고는 자동화를 24시간 돌리는 사람에게는 치명적이었거든요.

Hermes Agent 크론·자동화 공식 기능 이미지 — 예약 실행이 세션 DB에 의존합니다 Hermes Agent 공식 홈페이지의 자동화(스케줄·크론) 기능 소개 이미지 — 이번 state.db 사고는 바로 이 자동화 계층에 영향을 줬습니다 (출처: hermes-agent.nousresearch.com 공식 홈페이지)


핵심 ② 멀티 프로필 자격증명 유출 — 이번 릴리스에서 제일 중요한 이유

제가 이번 업데이트를 “패치가 아니라 보안 릴리스”로 부르는 이유입니다. Hermes Agent를 한 게이트웨이에 프로필 여러 개(멀티플렉스)로 굴리는 구성에서, 프로필 간 격리가 뚫려 있던 경로가 한꺼번에 닫혔습니다.

문제였던 경로 이번에 고친 내용
보조 프로필 봇이 기본 프로필의 allow-list를 상속 프로필별 허용 목록으로 분리 (#107616)
어댑터가 자격증명을 기본 프로필 호스트로 전송 라우팅된 프로필로만 전송 (#107617)
stdio MCP 서버가 기본 프로필의 vault 시크릿 수신 프로필 스코프 시크릿만 전달 (#107630)
MEDIA: 배달이 다른 프로필의 .env / auth.json / state.db 첨부 경로 검증으로 차단 (#107609)
Feishu 콜백·/p/<profile>/ 웹훅 응답이 엉뚱한 프로필로 회신 라우팅 프로필 고정 (#107620, #107626)
보조 프로필이 형제 프로필의 Nous 베어러 토큰 재사용 프로세스 메모 충돌 제거 (#107611)

저처럼 “봇 하나는 뉴스 수집, 하나는 포스팅, 하나는 이미지” 식으로 프로필을 나눠 쓰는 사람에게 이건 남 일이 아닙니다. .env나 auth.json, 심지어 세션 DB까지 다른 프로필 봇을 통해 밖으로 나갈 수 있었다는 뜻이니까요. 보안 사고가 나고 나서 알았으면 늦었을 겁니다.

Hermes Agent 서브에이전트 위임 기능 공식 이미지 — 프로필이 늘어날수록 격리가 중요합니다 Hermes Agent 공식 홈페이지의 서브에이전트 위임 기능 이미지 — 봇·프로필을 여러 개 돌릴수록 프로필 간 자격증명 격리가 핵심이 됩니다 (출처: hermes-agent.nousresearch.com)


핵심 ③ 이번에 새로 생긴 것들 — 볼트·플러그인·무료 티어

패치만 있는 건 아닙니다. 체감상 업무 자동화에 바로 쓸 수 있는 기능도 들어왔습니다.

  • 패스워드 블라인드 자격증명 볼트 — 에이전트가 1Password / Bitwarden / 로컬 Hermes vault에서 로그인·결제·주소 입력을 대신하면서도 시크릿을 직접 보지 못합니다. 2단계 인증 코드는 저장된 인증기 키에서 가져오거나 사용자 UI에서 물어봅니다. 프라이빗 git 플러그인도 저장된 자격증명으로 설치됩니다.
  • 플러그인 카탈로그와 통합 Plugins 페이지 — SHA가 고정된(pinned) 큐레이션 플러그인 인덱스가 CLI·CI·문서·대시보드에 자리 잡았고, 데스크톱에는 에이전트·데스크톱 플러그인을 한 곳에서 관리하는 Plugins 페이지가 생겼습니다. 서드파티 플러그인을 쓴다면 공급망 관점에서 반가운 변화입니다.
  • Nous 무료 티어와 첫 실행 가이드 — 명령 하나로 무료 추론·커넥터를 붙이고, 채팅에서 바로 /login도 됩니다. Gmail·Linear·Notion 같은 커넥터 도구는 tool_search로 검색해 씁니다.
  • 데스크톱 백엔드 폭주 종료 — 봇 모드가 실행할 때마다, 로스터를 훑을 때마다 프로필마다 백엔드를 새로 띄우던 문제도 정리됐습니다. 노트북에서 돌리는 분들에겐 체감이 큽니다.

Hermes Agent 메모리 공식 이미지 Hermes Agent 공식 홈페이지의 메모리(세션 지속) 기능 이미지 — 이 기능의 바닥에 깔린 저장소가 바로 이번에 손본 state.db입니다 (출처: hermes-agent.nousresearch.com)

Hermes Agent 샌드박스 공식 이미지 Hermes Agent 공식 홈페이지의 샌드박스 기능 이미지 (출처: hermes-agent.nousresearch.com)


실제 사용감 — 자동화 작업 기준으로

먼저 숫자부터. 이번 창(v0.21.1 → v0.21.2)은 나흘 동안 947개 비머지 커밋, 1,869개 파일 변경, 312개 머지 PR, 140명 기여자입니다. 참고로 v0.21.1(9/7)은 v0.21.0 이후 5,139개 커밋을 롤업한 안정 태그였는데, 그 창의 정식 릴리스 노트는 v0.22.0에 함께 실린다고 예고돼 있습니다.

제 체감은 이렇습니다.

  1. 업데이트 자체는 2분 — 기존 설치본은 hermes update 한 줄이면 끝납니다.
  2. hermes 일회성 명령이 즉시 반응합니다 — 예전엔 게이트웨이가 바쁘면 몇 초 멈칫하다 “database is locked”가 뜨기도 했는데, 지금은 눈에 띄게 가볍습니다.
  3. 크론잡이 조용히 실패하는 빈도가 줄었습니다 — 조회(run now)가 다음 예약을 취소하거나, 수동 실행이 죽으면 5분간 다음 실행이 막히던 문제, 일회성 작업을 반복 작업으로 바꾸면 안 돌던 문제가 함께 정리됐습니다.
  4. 봇 모드 프로필 격리가 확인됩니다 — 보조 프로필 봇이 남의 시크릿을 물고 오지 않는다는 걸 확인하고 나니 마음이 놓입니다.

업데이트 후 문제가 있던 분들은 순서를 이렇게 잡으면 됩니다. (제가 실제로 안내받은 절차입니다.)

# 1) 진단부터 — 이제 구조 손상과 인덱스 손상을 구분해 알려줍니다
hermes doctor

# 2) 재빌드로 부족할 때만, 프로필 고정 상태로 점검
hermes sessions recover --inspect-only

Hermes Agent 데스크톱 쇼케이스 공식 이미지 Hermes Agent 공식 데스크톱 쇼케이스 이미지 (출처: hermes-agent.nousresearch.com 공식 홈페이지)


솔직한 장단점

좋았던 점

  • 자동화를 24시간 돌리는 사람에게는 사실상 필수 업데이트입니다. 특히 state.db 문제는 “내 설정이 이상한가?”로 몇 시간을 태우게 만드는 종류였습니다.
  • 보안 패치가 실질적입니다. 멀티 프로필 자격증명 격리는 문서를 안 읽으면 모르고 지나갈 수 있는, 조용히 위험한 구멍이었습니다.
  • 무료(MIT)에 hermes update 한 줄. 비용 부담이 0이라 “일단 올려두기”의 부담이 없습니다.
  • 크론·플러그인·게이트웨이 안정성 개선이 한꺼번에 들어와서 체감이 여러 군데서 동시에 옵니다.

아쉬웠던 점

  • 문제를 v0.21.0에서 만들고 v0.21.2에서야 근본 수정했습니다. 판테온 업데이트를 바로 올린 사용자는 중간에 며칠을 불안하게 보내야 했습니다. 저도 그중 한 명이라 솔직히 좀 아쉬웠습니다.
  • 릴리스 표기가 “Patch Release”라서 중요도가 낮아 보입니다. 실제 내용은 이슈급인데, 제목만 보면 그냥 넘기기 딱 좋습니다. 다행히 제목에 state.db를 붙여줘서 눈에 띄긴 합니다.
  • v0.21.1 창의 정식 릴리스 노트가 v0.22.0까지 미뤄져 있습니다. 그 사이에 뭐가 바뀌었는지 한눈에 정리된 문서가 없다는 건 아쉽습니다.

마무리: 업데이트 팁과 추천 대상

정리하면 이번 Hermes Agent v0.21.2(v2026.9.11)는 화려한 신기능 릴리스가 아닙니다. 대신 “자동화가 밤새 조용히 죽는 문제”와 “프로필 사이로 자격증명이 새는 문제”를 닫은, 실사용자에게 훨씬 중요한 종류의 업데이트입니다.

구매 팁이라기엔 뭐하지만, 비용 팁을 드리자면 — Hermes Agent 본체는 MIT 라이선스 무료 오픈소스라 프로그램 값이 0원이고, 모델 비용도 Nous Portal 무료 티어로 시작할 수 있습니다. 이 블로그도 무료로 시작해서 지금까지 거의 0원에 가깝게 유지 중입니다. 그래서 업데이트 안 할 이유가 더 없습니다.

이런 분께 추천합니다.

  • Hermes Agent를 서버·크론으로 상시 돌리시는 분 — 오늘 바로 hermes update
  • 프로필·봇을 2개 이상 굴리시는 분 — 보안 패치 때문에라도 필수
  • v0.21.0 판테온 올린 뒤 sessions list나 검색이 이상했던 분 — 이번이 해결 릴리스입니다
  • 반대로 맥/윈도우에서 가끔 대화만 하는 캐주얼 사용자라면 급하진 않지만, 올려서 나쁠 건 없습니다

저처럼 “가성비 좋으면서 밤에도 안 죽는 자동화”를 찾는 분들께, 이번 업데이트는 딱 그런 종류입니다. 다음 주 v0.22.0 소식이 나오면 다시 정리해서 올리겠습니다.


참고: Nous Research 공식 릴리스 노트(GitHub v2026.9.11), Hermes Agent 공식 홈페이지·문서(hermes-agent.nousresearch.com), 커뮤니티 릴리스 요약을 바탕으로 작성했습니다. 이미지는 모두 공식 홈페이지·공식 문서 및 실사용 화면이며 AI 생성 이미지는 사용하지 않았습니다.