Hermes Agent란?
Hermes Agent는 Nous Research에서 만든 오픈소스 AI 에이전트다. 일반적인 챗봇이나 IDE 코파일럿과 달리, 서버에 상주하면서 스스로 학습하고 점점 더 능숙해지는 자율 에이전트를 지향한다.
핵심 철학은 단순하다. 오래 실행할수록 더 똑똑해진다.
에이전트 실행 → 작업 수행 → 경험에서 스킬 생성 → 스킬 자동 개선 → 반복
왜 주목할 만한가?
| 특징 | 설명 |
|---|---|
| 자가 개선 루프 | 경험에서 스킬을 자동 생성하고, 사용하면서 개선 |
| 영속적 메모리 | 세션을 넘어 기억을 유지하고 사용자 프로필을 구축 |
| 멀티 플랫폼 | CLI, Telegram, Discord, Slack, WhatsApp, Signal, Email 지원 |
| 유연한 인프라 | $5 VPS부터 GPU 클러스터, 서버리스까지 |
| 200+ 모델 지원 | OpenRouter, OpenAI, Anthropic, 커스텀 엔드포인트 |
| MIT 라이선스 | 완전 오픈소스 |
하네스 아키텍처 (Harness Architecture)
Hermes Agent의 핵심은 에이전트 하네스 구조다. 에이전트의 입력, 출력, 도구 호출, 메모리, 서브에이전트를 하나의 실행 프레임워크로 묶어 관리한다.
전체 구조
┌─────────────────────────────────────────────────────────────┐
│ Hermes Agent Harness │
│ │
│ ┌───────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │ Input │ → │ Agent Core │ → │ Output / Action │ │
│ │ Gateway │ │ (LLM Loop) │ │ Dispatcher │ │
│ └───────────┘ └──────────────┘ └──────────────────┘ │
│ ↑ ↕ ↓ │
│ ┌─────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Multi- │ │ Tool │ │ Messaging │ │
│ │ Platform │ │ Registry │ │ Gateway │ │
│ │ Clients │ │ (40+ Tools) │ │ (7 platforms│ │
│ └─────────┘ └──────────────┘ └──────────────┘ │
│ ↕ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Execution Backends │ │
│ │ Local │ Docker │ SSH │ Daytona │ Singularity │Modal │ │
│ └─────────────────────────────────────────────────────┘ │
│ ↕ │
│ ┌──────────┐ ┌──────────────┐ ┌───────────────────┐ │
│ │ Memory │ │ Skills │ │ Subagent │ │
│ │ System │ │ Engine │ │ Orchestrator │ │
│ └──────────┘ └──────────────┘ └───────────────────┘ │
└─────────────────────────────────────────────────────────────┘
하네스의 역할
하네스는 에이전트의 전체 라이프사이클을 제어하는 프레임워크다.
- 입력 수집: 다양한 플랫폼에서 사용자 입력을 통합 수신
- 에이전트 실행: LLM 루프를 실행하고 도구 호출을 관리
- 실행 환경 격리: 6가지 백엔드로 안전한 코드 실행 보장
- 출력 분배: 결과를 적절한 플랫폼으로 전달
- 학습 루프: 작업 결과에서 스킬을 추출하고 메모리에 저장
메모리 시스템
Hermes Agent의 메모리는 세 가지 레이어로 구성된다.
메모리 구조
┌────────────────────────────────────────┐
│ Memory Architecture │
│ │
│ ┌──────────────────────────────────┐ │
│ │ SOUL.md - 페르소나/성격 정의 │ │
│ └──────────────────────────────────┘ │
│ ┌──────────────────────────────────┐ │
│ │ MEMORY.md - 에피소드 기억 │ │
│ │ (FTS5 전문 검색 + LLM 요약) │ │
│ └──────────────────────────────────┘ │
│ ┌──────────────────────────────────┐ │
│ │ USER.md - 사용자 프로필 │ │
│ │ (Honcho 변증법적 모델링) │ │
│ └──────────────────────────────────┘ │
└────────────────────────────────────────┘
| 메모리 유형 | 파일 | 설명 |
|---|---|---|
| 페르소나 | SOUL.md | 에이전트의 성격과 행동 방식 정의 |
| 에피소드 | MEMORY.md | 과거 대화에서 학습한 사실과 경험 |
| 사용자 모델 | USER.md | 사용자와의 상호작용에서 구축한 프로필 |
특히 FTS5 기반 세션 검색은 과거 대화를 전문 검색하고, LLM이 요약하여 관련 컨텍스트를 현재 대화에 주입하는 구조다.
서브에이전트 시스템
Hermes Agent의 가장 강력한 기능 중 하나는 서브에이전트 분리 실행이다.
┌─────────────────────────────────────────┐
│ Main Agent │
│ │
│ "이 3가지 작업을 병렬로 처리해" │
│ ↓ ↓ ↓ │
│ ┌──────────┐ ┌──────────┐ ┌─────────┐ │
│ │Subagent 1│ │Subagent 2│ │Subagent3│ │
│ │독립 대화 │ │독립 대화 │ │독립 대화│ │
│ │독립 터미널│ │독립 터미널│ │독립 터미널│ │
│ │Python RPC│ │Python RPC│ │Python RPC│ │
│ └──────────┘ └──────────┘ └─────────┘ │
│ ↓ ↓ ↓ │
│ 결과 통합 → 메인 에이전트 응답 │
└─────────────────────────────────────────┘
서브에이전트 특징
- 독립된 대화 컨텍스트: 메인 에이전트의 컨텍스트를 소비하지 않음
- 독립된 터미널: 각자의 실행 환경을 가짐
- Python RPC 스크립트: 도구를 RPC로 호출해 다단계 파이프라인 구축
- 제로 컨텍스트 비용: 메인 에이전트의 토큰 한도에 영향 없음
실행 백엔드
6가지 실행 환경을 지원하며, 보안 수준에 따라 선택할 수 있다.
| 백엔드 | 격리 수준 | 특징 |
|---|---|---|
| Local | 없음 | 빠르지만 격리 없음 |
| Docker | 컨테이너 | 읽기 전용 루트, 네임스페이스 격리 |
| SSH | 원격 서버 | 별도 머신에서 실행 |
| Daytona | 서버리스 | 유휴 시 하이버네이션, 온디맨드 기동 |
| Singularity | 컨테이너 | HPC 환경용 |
| Modal | 서버리스 | 하이버네이션 지원, 비용 최적화 |
Docker 백엔드는 읽기 전용 루트 파일시스템, Linux 기능 제거, 네임스페이스 격리 등의 보안 기능을 기본 적용한다.
스킬 시스템
스킬은 Hermes Agent의 절차적 메모리다. 복잡한 작업을 수행한 뒤 자동으로 스킬을 생성하고, 이후 유사한 작업에서 재사용한다.
스킬 라이프사이클
작업 수행 → 패턴 인식 → 스킬 자동 생성 → 저장
↑ ↓
└──── 유사 작업 시 스킬 호출 ← 스킬 개선 ←┘
스킬 생태계
- 내장 스킬: 40개 이상 (MLOps, GitHub 워크플로, 연구 작업 등)
- 커뮤니티 스킬: ClawHub, LobeHub, GitHub에서 설치 가능
- 오픈 표준: agentskills.io 포맷 호환
- 명령어 호출:
/skill-name구문으로 직접 실행
메시징 게이트웨이
하나의 게이트웨이 프로세스로 7개 플랫폼을 동시에 관리한다.
┌──────────────────────────────────────┐
│ Messaging Gateway │
│ │
│ Telegram ─┐ │
│ Discord ─┤ │
│ Slack ─┤→ Gateway Process → Agent │
│ WhatsApp ─┤ │
│ Signal ─┤ │
│ Email ─┤ │
│ Home ─┘ │
│ Assistant │
└──────────────────────────────────────┘
- 크로스 플랫폼 대화 연속성: Telegram에서 시작한 대화를 Discord에서 이어갈 수 있음
- 음성 메모 전사: 음성 입력을 텍스트로 변환하여 처리
- systemd 서비스:
hermes gateway install로 백그라운드 서비스 등록
크론 스케줄링
자연어로 자동화 작업을 예약할 수 있다.
# 자연어 크론 설정 예시
"매일 오전 9시에 서버 상태 보고서를 Telegram으로 보내줘"
"매주 금요일 오후 6시에 이번 주 GitHub 활동을 요약해줘"
"매일 자정에 데이터베이스를 백업하고 결과를 Slack에 알려줘"
게이트웨이를 통해 무인으로 실행되며, 결과를 설정한 플랫폼으로 전달한다.
연구/훈련 기능
Hermes Agent는 단순한 도구를 넘어 AI 연구 인프라로도 활용할 수 있다.
| 기능 | 설명 |
|---|---|
| 배치 궤적 생성 | 병렬 워커로 대량의 에이전트 궤적 데이터 생성 |
| Atropos RL 통합 | 강화학습 환경과 연동하여 에이전트 훈련 |
| 궤적 압축 | ShareGPT 포맷으로 내보내 모델 파인튜닝에 활용 |
| 체크포인팅 | 중간 결과를 저장하여 연구 워크플로 지원 |
설치 및 시작
60초 퀵스타트
# 1. 설치 (Python, Node.js, 의존성 자동 처리)
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
source ~/.bashrc
# 2. 모델 설정
hermes model # Nous Portal, OpenRouter, 커스텀 엔드포인트 선택
# 3. 실행
hermes
주요 CLI 명령어
| 명령어 | 설명 |
|---|---|
hermes | 대화 시작 |
hermes model | 모델/프로바이더 선택 |
hermes tools | 도구 활성화 설정 |
hermes gateway | 메시징 게이트웨이 설정 |
hermes setup | 전체 설정 마법사 |
hermes update | 최신 버전으로 업데이트 |
대화 중 슬래시 명령어
| 명령어 | 설명 |
|---|---|
/new, /reset | 새 대화 시작 |
/model [provider:model] | 런타임 모델 전환 |
/personality [name] | 페르소나 전환 |
/retry, /undo | 마지막 턴 되돌리기 |
/compress | 컨텍스트 압축 |
/skills | 사용 가능한 스킬 탐색 |
하네스 관점에서 본 Hermes Agent
에이전트 하네스의 핵심 역할은 에이전트의 실행을 구조화하고 제어하는 것이다. Hermes Agent의 하네스가 어떻게 이 역할을 수행하는지 정리하면 다음과 같다.
┌─────────────────────────────────────────────────────────┐
│ Harness Layer │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │
│ │ 입력 관리 │ │ 실행 제어 │ │ 출력/학습 │ │
│ │ │ │ │ │ │ │
│ │ - 멀티 플랫폼│ │ - LLM 루프 │ │ - 결과 분배 │ │
│ │ 입력 통합 │ │ - 도구 호출 │ │ - 스킬 추출 │ │
│ │ - 컨텍스트 │ │ - 서브에이전트│ │ - 메모리 저장 │ │
│ │ 파일 로딩 │ │ - 백엔드 선택│ │ - 궤적 기록 │ │
│ │ - 메모리 주입│ │ - 보안 격리 │ │ - 크론 스케줄링 │ │
│ └─────────────┘ └─────────────┘ └─────────────────┘ │
└─────────────────────────────────────────────────────────┘
일반 에이전트 하네스 vs Hermes 하네스
| 구분 | 일반 에이전트 하네스 | Hermes Agent 하네스 |
|---|---|---|
| 목적 | 테스트/평가 프레임워크 | 프로덕션 실행 프레임워크 |
| 메모리 | 테스트 케이스 저장 | 영속적 학습 메모리 (SOUL/MEMORY/USER) |
| 실행 환경 | 모킹/샌드박스 | 6가지 프로덕션 백엔드 |
| 출력 처리 | 평가/채점 | 멀티 플랫폼 분배 + 스킬 생성 |
| 확장성 | 테스트 케이스 추가 | 스킬/도구/플랫폼 추가 |
정리
Hermes Agent는 “실행하면서 학습하는 에이전트” 를 하네스 아키텍처 위에 구현한 프로젝트다. 기존의 에이전트 하네스가 테스트와 평가에 초점을 맞췄다면, Hermes는 이를 프로덕션 실행 환경으로 확장했다.
- 자가 개선 루프로 스킬을 자동 생성하고 개선
- 영속적 메모리로 세션을 넘어 컨텍스트를 유지
- 서브에이전트 격리 실행으로 병렬 작업 처리
- 6가지 실행 백엔드로 보안과 유연성 확보
- 멀티 플랫폼 게이트웨이로 어디서든 접근 가능
에이전트 프레임워크를 평가하거나, 자체 에이전트 시스템을 설계할 때 Hermes의 하네스 구조는 좋은 참고 사례가 된다.