개요
Hermes Agent는 Nous Research가 개발한 자기 개선 AI 에이전트입니다. 내장 학습 루프를 갖추고 있어 경험으로부터 스킬을 생성하고 지식을 능동적으로 영속화합니다. 다양한 메시징 플랫폼과 모든 LLM 제공업체를 지원하며, 다양한 백엔드에서 실행할 수 있습니다.
README 미리보기
\n \n\n\n# Hermes Agent ☤\n\n\n \n \n \n \n \n\n\n**The self-improving AI agent built by [Nous Research](https://nousresearch.com).** It's the only agent with a built-in learning loop — it creates skills from experience, improves them during use, nudges itself to persist knowledge, searches its own past conversations, and builds a deepening model of who you are across sessions. Run it on a $5 VPS, a GPU cluster, or serverless infrastructure that costs nearly nothing when idle. It's not tied to your laptop — talk to it from Telegram while it works on a cloud VM.\n\nUse any model you want — [Nous Portal](https://portal.nousresearch.com), [OpenRouter](https://openrouter.ai) (200+ models), [NVIDIA NIM](https://build.nvidia.com) (Nemotron), [Xiaomi MiMo](https://platform.xiaomimimo.com), [z.ai/GLM](https://z.ai), [Kimi/Moonshot](https://platform.moonshot.ai), [MiniMax](https://www.minimax.io), [Hugging Face](https://huggingface.co), OpenAI, or your own endpoint. Switch with `hermes model` — no code changes, no lock-in.\n\n\nA real terminal interfaceFull TUI with multiline editing, slash-command autocomplete, conversation history, interrupt-and-redirect, and streaming tool output.\nLives where you doTelegram, Discord, Slack, WhatsApp, Signal, and CLI — all from a single gateway process. Voice memo transcription, cross-platform conversation continuity.\nA closed learning loopAgent-curated memory with periodic nudges. Autonomous skill creation after complex tasks. Skills self-improve during use. FTS5 session search with LLM summarization for cross-session recall. Honcho dialectic user modeling. Compatible with the agentskills.io open standard.\nScheduled automationsBuilt-in cron scheduler with delivery to any platform. Daily reports, nightly backups, weekly audits — all in natural language, running unattended.\nDelegates and parallelizesSpawn isolated subagents for parallel workstreams. Write Python scripts that call tools via RPC, collapsing multi-step pipelines into
FAQ (5)
문제 해결'hermes desktop'이(가) Linux에서 'ENOENT: no such file or directory, rename electron -> Hermes' 오류로 실패하는 이유는 무엇인가요?
오류는 사용자별 Electron 다운로드 캐시에 손상된 Electron 배포 zip 파일이 있어서 발생합니다. 캐시 파일을 삭제하고 빌드를 다시 실행하세요.
- Linux: rm ~/.cache/electron/electron-v*.zip (또는 특정 버전, 예: rm ~/.cache/electron/electron-v40.9.3-linux-x64.zip)
- macOS: rm ~/Library/Caches/electron/*.zip
- 사용자 정의 캐시가 있는 macOS: XDG_CACHE_HOME 또는 ELECTRON_CACHE가 설정되어 있으면 해당 경로를 따르세요.
손상된 zip 파일을 삭제한 후 'hermes desktop'을 다시 실행하세요. 빌드가 정상적인 Electron 배포판을 다시 다운로드하여 성공적으로 완료됩니다. 이는 #39127에서 추적되는 알려진 문제입니다(자체 복구 캐시 정리).
문제 해결Hermes tui_gateway에서 'result of groups.log violates its wire contract' 오류(display_name/profile의 RoomActor extra_forbidden)를 수정하는 방법
원인: tui_gateway/contracts/groups_bot_relay.py의 RoomActor 계약 모델은 extra="forbid"와 함께 kind와 id만 선언하지만, gateway/hosted_room_discussion.py의 프로듀서 _member_actor()는 profile, display_name, connection_id도 함께 내보냅니다. actor 딕셔너리는 state.db에 actor_json으로 그대로 저장되고 모든 groups.log 페이지에서 재생되므로, 멤버가 작성한 모든 이벤트가 검증 오류를 다시 발생시킵니다 (또는 HERMES_TEST_ISOLATION=1 환경에서는 ContractViolation을 발생시킵니다).
수정: gateway/hosted_rooms.py의 _OPTIONAL_ACTOR_FIELDS와 일치하도록 RoomActor에 선택적 필드를 선언합니다:
class RoomActor(Result):
kind: str
id: str
profile: str | None = None
display_name: str | None = None
connection_id: str | None = None
그런 다음 scripts/gen_gateway_contracts.py를 실행하여(tui_gateway/AGENTS.md에 따라) 계약 아티팩트를 재생성해 apps/shared/src/gateway-contract.generated.ts와 gateway-contract.openrpc.json을 업데이트합니다. 이슈 #118067/profiles.list(ProfileRow에 previous_names 누락)와 동일한 수정 패턴이며, 커밋 9a4a598bfcd에서 수정되었습니다. 선택적으로 _member_actor() 형태의 딕셔너리가 RoomActor 검증을 통과하는지 확인하는 불변 테스트를 추가할 수 있습니다.
문제 해결Hermes Desktop이 Windows에서 "We couldn't reach the update server"를 표시하는 이유는 무엇이며, 이를 해결하려면 어떻게 해야 하나요?
이 메시지는 오해의 소지가 있습니다 — 대부분 네트워크 장애가 아닙니다. 공식 bootstrap installer로 설치된 Windows 환경에서는 git이 패키지 관리자 도구 저장소(%LOCALAPPDATA%\hermes\tools\git-<ver>-win32-x64)에만 설치되지만, Desktop의 resolveGitBinary()는 해당 위치를 전혀 검색하지 않습니다. Git for Windows가 설치되어 있지 않고 PATH에도 git이 없으면 업데이트 확인이 head-unavailable("Could not read the installed revision.") 오류로 실패하며, UI는 이를 서버 접속 문제로 잘못 표시합니다.
실제 원인 확인: %HERMES_HOME%\source-checks\<install_id>.json을 열어보세요 — "error": "head-unavailable"과 함께 "currentSha": null이 표시되면 git을 찾지 못한 것입니다(네트워크 문제가 아님).
해결 방법 (아래 중 하나):
1. 관리되는 git이 앱이 검색하는 경로와 일치하도록 junction을 생성합니다. 명령 프롬프트(PowerShell 아님)에서:
mklink /J "%LOCALAPPDATA%\hermes\git" "%LOCALAPPDATA%\hermes\tools\git-2.53.0+3-win32-x64"
(버전 폴더 이름은 설치된 환경에 맞게 조정하세요), 그런 다음 앱을 다시 시작합니다.
2. Git for Windows를 설치하거나(C:\Program Files\Git 또는 %LOCALAPPDATA%\Programs\Git에) git을 PATH에 추가하세요 — 두 위치 모두 resolver가 검색하는 경로입니다.
같은 설치 형태에서는 다른 Desktop git 기능(worktrees, review, 브랜치 작업)에도 영향을 미친다는 점에 유의하세요. 영구적인 해결을 위해서는 apps/desktop/electron/main.ts의 resolveGitBinary()를 업데이트하여 %LOCALAPPDATA%\hermes\tools\git-* 저장소를 검색하도록 수정해야 합니다.
문제 해결Hermes Desktop 앱에서 채팅 스크롤바가 뒤로 점프하는 이유는 무엇인가요?
이는 useThreadScrollAnchor 로직(thread-virtualizer.tsx)의 알려진 버그입니다. ResizeObserver 해제 조건이 중간 스크롤 이벤트에서 오작동하여 sticky-bottom 동작이 일시적으로 해제됩니다. 수정 사항은 이미 PR #38221에 병합되었으며 Hermes Desktop v0.15.2에 포함될 예정입니다. 그때까지는 해결 방법으로 composer 크기 조정을 최소화(예: suggestion chips 닫기, 큰 코드 블록 리렌더링 피하기)하거나 수동으로 스크롤을 하단에 유지하십시오.
문제 해결Hermes disk-cleanup이 cron/jobs.json을 삭제하는 이유는 무엇이며, 이를 중지하려면 어떻게 해야 하나요?
이 문제는 오래된 tracked.json 항목(cron 분류 수정 이전의 Hermes 버전)이 cron/jobs.json을 "cron-output"으로 레이블링하여 disk-cleanup이 14일 후에 이를 삭제하는 경우 발생합니다. 삭제를 방지하려면 tracked.json 파일(~/.hermes/disk-cleanup/tracked.json)을 수동으로 편집하여 cron/jobs.json 또는 cron/ 디렉토리에 대한 모든 항목을 제거하십시오. 그 후 Hermes를 다시 시작하십시오. 새 버전(커밋 d473e7c93 이후)에서는 이러한 항목이 추가되지 않지만, 오래된 항목은 수동으로 지워야 합니다.