OpenSource-Hub

hermes-agent

CLI 도구

NousResearch/hermes-agent

학습 루프가 내장된 자기 개선 AI 에이전트.

개요

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에서 추적되는 알려진 문제입니다(자체 복구 캐시 정리).

원본 Issue #37544
문제 해결
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 검증을 통과하는지 확인하는 불변 테스트를 추가할 수 있습니다.

원본 Issue #138908
문제 해결
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-* 저장소를 검색하도록 수정해야 합니다.

원본 Issue #122956
문제 해결
Hermes Desktop 앱에서 채팅 스크롤바가 뒤로 점프하는 이유는 무엇인가요?

이는 useThreadScrollAnchor 로직(thread-virtualizer.tsx)의 알려진 버그입니다. ResizeObserver 해제 조건이 중간 스크롤 이벤트에서 오작동하여 sticky-bottom 동작이 일시적으로 해제됩니다. 수정 사항은 이미 PR #38221에 병합되었으며 Hermes Desktop v0.15.2에 포함될 예정입니다. 그때까지는 해결 방법으로 composer 크기 조정을 최소화(예: suggestion chips 닫기, 큰 코드 블록 리렌더링 피하기)하거나 수동으로 스크롤을 하단에 유지하십시오.

원본 Issue #37997
문제 해결
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 이후)에서는 이러한 항목이 추가되지 않지만, 오래된 항목은 수동으로 지워야 합니다.

원본 Issue #37721