목차(클릭하세요)
오픈클로, Hermes 모두 사용가능하지만, 오픈클로는 뭔가 꺼림직…
Hermes로 온라인 Agent사용하기의 모든 것
PC 한 대에 Hermes Agent + Ollama 을 올려, 슬랙 하나로 어디서든 3단계 모델 라우팅 AI 에이전트를 무료에 가깝게 운용함
[참고자료]
0.참고자료
1. 최종 아키텍처
1-1. 전체 구조도
슬랙 (학교 ✅ / 집 ✅ / 스마트폰 ✅)
↓
Socket Mode (WebSocket, 공개 URL 불필요)
↓
데스크톱 Windows (네이티브)
└── Hermes Agent
├── 단순 작업 → Gemma 4 E2B (Ollama 로컬, 무료)
├── 중간 작업 → Gemini 3.1 Flash-Lite API (무료 티어 소진 후 유료)
└── 복잡 작업 → Gemini 3.5 Flash API (무료 티어 소진 후 유료)
↓
Obsidian Vault
(LLM 사용 기록 자동 저장)
Plain Text
복사
1-2. 3단계 모델 라우팅
•
1단계는 로컬LLM을 사용, 2단계는 Gemini 3.1모델 호출, 3단계는 Gemini3.5 모델 호출
[주의] 성능차이가..
단계 | 모델 | 용도 | 비용 |
1단계 | Gemma 4 E2B (로컬) | 분류, 짧은 요약, 단순 응답 | 전기세만 |
2단계 | Gemini 3.1 Flash-Lite | 데이터 처리, 자동화 실행 | 무료 티어 |
3단계 | Gemini 3.5 Flash | 깊은 추론, 멀티스텝 에이전트 | 무료 티어 소진 후 유료 |
Gemma 4 E2B (로컬)
├── 파라미터: 2B (20억개)
├── 추론 능력: 기초 수준
├── 컨텍스트: 65536 (설정)
└── 속도: 느림 (GPU 추론)
Gemini 3.1 Flash-Lite (클라우드)
├── 파라미터: 수백B 추정
├── 추론 능력: 고급 수준
├── 컨텍스트: 100만 토큰
└── 속도: 빠름 (구글 인프라)
모델 선택 판단은 사용자가 수동으로 모델 선택. fallback_providers 설정으로 컴퓨터 on/off에 따른 우선순위 지정가능
1-3. PC 상태별 폴백 전략
PC 켜져있을 때 (평상시)
├── 단순 → Gemma 4 E2B 로컬 (비용 0원)
├── 중간 → Gemini 3.1 Flash-Lite (무료 티어 소진 후 유료)
└── 복잡 → Gemini 3.5 Flash (무료 티어 소진 후 유료)
PC 꺼졌을 때 (재부팅 / 점검)
├── 로컬 모델 없음 → 자동 감지
├── 단순 → Gemini 3.1 Flash-Lite로 자동 대체
└── 복잡 → Gemini 3.5 Flash
Plain Text
복사
Hermes fallback_providers 설정 한 번으로 자동 전환됨. 별도 코드 불필요
터널은 속도에 영향 없음. 보안만 강해지는 구조
2. 설치 스택 및 순서
2-1. 설치 목록
도구 | 설치 방법 | 역할 |
Hermes Agent | PowerShell 한 줄 설치 | 에이전트 루프 전체 |
Ollama (Windows 네이티브) | exe 설치 | 로컬 LLM 실행 |
Gemma 4 E2B | ollama pull gemma4:e2b | 로컬 추론 모델 |
Obsidian | exe 설치 | 대화 기록 저장 |
2-2. 권장 설치 순서 (5+1단계)
1단계: Ollama 설치 + Gemma 4 E2B 다운로드
→ 로컬 LLM 첫 실행 경험
→ 터미널에서 직접 대화 테스트
2단계: Hermes Agent Windows 네이티브 설치
→ PowerShell에서 설치 스크립트 실행
→ 새 터미널 열고 hermes --version 확인
3단계: Hermes Agent 세팅
→ 슬랙 앱 생성 + Socket Mode 활성화
→ SLACK_BOT_TOKEN, SLACK_APP_TOKEN 발급
→ Hermes 설정 파일에 토큰 입력
→ 슬랙에서 첫 에이전트 대화 확인
4단계: Gemini API 연동 테스트
→ Google AI Studio에서 API 키 발급 확인
→ Flash-Lite 호출 테스트
→ 3.5 Flash 호출 테스트
→ API 키 정상 작동 여부 점검
5단계: Hermes Agent 3단계 모델 라우팅 + fallback 설정
→ Hermes 설정 파일에 providers 순서 지정
1순위: Gemma 4 E2B (Ollama 로컬)
2순위: Gemini 3.1 Flash-Lite
3순위: Gemini 3.5 Flash
→ fallback_providers 설정 완료
→ PC 켜짐: E2B 로컬 우선 실행 확인
→ PC 꺼짐: Flash-Lite 자동 대체 확인
→ 3.5 Flash 자동 전환 테스트
6단계: Obsidian 연동
- 필요한 경우에만 연동
Plain Text
복사
3.Hermes Agent 세팅
Hermes Agent를 Windows 네이티브로 설치하고, 슬랙 Socket Mode로 첫 연동을 완료함
[참고]
3-1. Hermes Agent 설치
•
Windows 네이티브 설치: PowerShell에서 한 줄로 완료
•
관리자 권한까지 푤요 없음, %LOCALAPPDATA%\hermes\ 에 설치됨
•
설치가 완료되면 ‘hermes' 를 검색해보기
# PowerShell에서 실행
iex (irm https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.ps1)
PowerShell
복사
•
참고로 uv, Python 3.11을 설치하고 저장소를 클론하여 모든 것을 설정해줌
•
관련 라이브러리를 한꺼번에 모두 설치해주는 모습, 설치가 완료되면 Quick setup으로 먼저 기본 세팅하고, 나중에 세부 조정하기
•
gemini API키를 연계할 목적이므로 15번만 선택하기
•
Base URL은 건드릴 필요없음
사용할 제미나이 모델을 선택 후
Base URL = Gemini API 서버 주소
기본값: https://generativeai.googleapis.com/v1beta
→ 일반 사용자는 바꿀 필요 없음
→ 기업용 프록시나 커스텀 엔드포인트 쓸 때만 변경
Bash
복사
•
로컬에서 실행할 예정이므로 여기서는 7번 선택
슬랙연동을 진행해야 하니 ‘messaging’선택
•
이후 슬랙과 구글챗을 순서대로 선택하기, 2번 enter, 17번 enter
•
설치 완료 후 새 터미널 열고 확인
hermes --version
PowerShell
복사
3-2. 슬랙 계정이 필요한 이유
[참고] Hermes Agent 공식 지원 메신저: Hermes 를 작동시키려면 메신져가 필요
학교망 기준: 슬랙이 유일한 방법
•
슬랙 하나로 학교·집·폰 모두 통일. 별도 웹 대시보드 불필요
메신저 | Hermes 지원 | 학교망 |
슬랙 | ||
디스코드 | ||
텔레그램 | ||
카카오톡 |
3-3. 슬랙 앱 생성 + Socket Mode 활성화
[1단계]슬랙 앱 생성 순서
•
참고로 슬랙의 워크스페이스에서 채널이 ‘공개’채널이여야 나중에 챗봇이 작동을 잘함
1. https://api.slack.com/apps 접속
2. Create New App → From a manifest
3. 앱 이름 입력 (예: hermes-bot)
4. 워크스페이스 선택 → Create App
Plain Text
복사
•
From a manifest: 설정 파일을 붙여넣으면 자동으로 세팅
•
From scratch: 하나하나 수동으로 설정
•
이후 App name과 워크 스페이스 선택
•
왼쪽의 Settings → Socket Mode → Enable Socket Mode
활성화
[2단계]Socket Mode 활성화방법
Settings → Socket Mode → Enable Socket Mode ✅
→ App-Level Token 생성
→ 이름 입력 (예: hermes-socket)
→ connections:write 권한 추가
Bash
복사
•
xapp- 로 시작하는 토큰을 복사하기 (SLACK_APP_TOKEN)
[3단계]Bot Token 발급과정
•
왼쪽에서 Features → OAuth & Permissions 선택 → Bot Token Scopes 추가
•
봇 토큰 범위 → OAuth 범위 추가 클릭해서 아래 5개 추가
•
페이지 위로 올라가서 Install to Workspace 버튼 클릭
•
여기서 만들어진 Bot User OAuth Token 복사
[4단계]Event Subscriptions활성화
•
Subscribe to Bot Events: app_mention 추가
•
message.channels 추가
•
마지막으로 Save Changes
3-4. 터미널에서 Hermes 설정 파일에 토큰 입력
•
마찬가지로 토큰키이므로 화면에 드러나지 않게 됨
•
토큰을 입력하면 설치된 헤르메스 폴더안의 config.yaml파일에 그 정보가 저장되는 방식
# %USERPROFILE%\.hermes\config.yaml
platforms:
slack:
enabled: true
bot_token: "xoxb-your-bot-token"
app_token: "xapp-your-app-token"
YAML
복사
•
설치 후 마지막에 PC부팅시 자동시작을 위해 y입력
gateway 실행하기
그뒤 대부분 y선택
•
최종적으로 Hermes Gateway설정이 완료되었다는 메시지를 보면 됨!
4. 에이전트 대화 확인
# Hermes 실행
hermes gateway start
Bash
복사
0.
슬랙 패키지 설치하기
•
헤르메스 에이전트가 설치된 폴더로 이동한 다음
•
파워셀에서 명령어 입력
pip install 'hermes-agent[slack]'
Bash
복사
•
이후 hesmesgateway 재시작
hermes gateway restart
Bash
복사
1.슬랙에서 채널 하나 선택 (또는 새 채널 생성)
2 .채널에 hermes-bot 초대
→ /invite @hermes-bot 입력
3.
채널에서 멘션
→ @hermes-bot 안녕
# 슬랙에서 봇 멘션
@hermes-bot 안녕
→ 응답 오면 연동 성공 ✅
Bash
복사
5. Ollama + Gemma 4 E2B 연동
5-1.Hermes config.yaml에 Ollama 연동 추가
•
해당 파일을 메모장으로 연뒤, providers: {} 부분을 찾아서 아래로 교체
•
요청이 어디로 가는지는 모델명이 아니라 providers 설정이 결정
providers:
ollama:
model: gemma4-gpu:latest
base_url: http://localhost:11434/v1
Bash
복사
•
저장 후 gateway 재시작
hermes gateway restart
Bash
복사
5-2.Ollama 연동 확인하기
•
슬랙에서 사용중인 모델 확인하기
@hermes-bot 안녕, 지금 어떤 모델 쓰고 있어?
Bash
복사
•
기본 모델을 Ollama로 변경하기
•
올라마 모델을 hermes에 인식시키기
hermes model
Bash
복사
•
설정이 바뀔때 마다 다음 명령어로 hermes 재실행
hermes gateway restart
Bash
복사
5-3.대화기록 확인
•
파워셀에서 다음 명령어 입력
hermes logs
Bash
복사
6. Gemini API 키 준비
Google AI Studio에서 API 키를 확인가능
API 키 확인
https://aistudio.google.com 접속
→ Get API Key → API 키 복사
Plain Text
복사
7. Hermes Agent fallback 설정
•
fallback은 PC on/off에 따른 모델 자동 변환
PC 켜져있을 때 (평상시)
├── 단순 → Gemma 4 E2B 로컬 (비용 0원)
├── 중간 → Gemini 3.1 Flash-Lite (무료 티어 소진 후 유료)
└── 복잡 → Gemini 3.5 Flash (무료 티어 소진 후 유료)
PC 꺼졌을 때 (재부팅 / 점검)
├── 로컬 모델 없음 → 자동 감지
├── 단순 → Gemini 3.1 Flash-Lite로 자동 대체
└── 복잡 → Gemini 3.5 Flash
Plain Text
복사
7-1.config.yaml에서 총 2군데 수정하기
7-2. gemini api_key 수정
gemini:
api_key: "YOUR_GEMINI_API_KEY"
Bash
복사
7-3.fallback_providers 설정(PC on/off상태일때의 모델 우선순위)
providers:
ollama:
model: gemma4-gpu:latest
base_url: http://localhost:11434/v1
gemini:
api_key: "YOUR_GEMINI_API_KEY"
fallback_providers:
- provider: gemini
model: gemini-3.1-flash-lite
- provider: gemini
model: gemini-3.5-flash
YAML
복사
7-3. 동작 방식
Hermes fallback_providers 설정 한 번으로 자동 전환됨. 별도 코드 불필요
7-4. 전환 테스트(PC on/off에 따른 모델 자동 변환 테스트)
•
로컬 모델을 자동으로 종료한뒤, 모델변환이 일어나는지 확인하기
•
Ollama를 강제로 중지시키고 질문하면 자동으로 Gemini로 전환되는지 확인할 수 있음
# Ollama 중지
taskkill /F /IM ollama.exe
Bash
복사
•
중지 후 슬랙에서
대한민국의 교육제도 장단점을 분석해줘
Bash
복사
•
응답이 오고난뒤, 파워셀에서 확인
model=gemini-3.1-flash-lite 로 찍혀있으면 2단계 정상 작동
hermes logs
Bash
복사
8. Hermes Agent 3단계 모델 라우팅 + fallback 설정
작업 난이도에 따라 로컬 모델 ‘3.1Flash-Lit’e 또는 ‘3.5 Flash’로 수동 전환되도록 설정
PC 켜져있을 때 (평상시)
├── 단순 → Gemma 4 E2B 로컬 (비용 0원)
├── 중간 → Gemini 3.1 Flash-Lite (무료 티어 소진 후 유료)
└── 복잡 → Gemini 3.5 Flash (무료 티어 소진 후 유료)
PC 꺼졌을 때 (재부팅 / 점검)
├── 로컬 모델 없음 → 자동 감지
├── 단순 → Gemini 3.1 Flash-Lite로 자동 대체
└── 복잡 → Gemini 3.5 Flash
Plain Text
복사
8-1. 핵심 원리
•
Hermes는 smart_model_routing 모드를 지원해서 짧고 단순한 턴은 저렴한 모델로, 복잡한 턴은 고성능 모델로 자동 라우팅할 수 있었으나, v0.13.0에서 제거됨
•
따라서 26년 5월 기준수동변환이 더 효율적이게 되버림
단순 → model=gemma4-gpu:latest
복잡 → model=gemini-3.1-flash-lite 또는 gemini-3.5-flash
8-2. 모델 별칭을 통한 모델 자동 변환
•
config.yaml 맨 아래에 추가하기
# 파일 맨 아래
model_aliases:
local:
model: gemma4-gpu:latest
provider: ollama
fast:
model: gemini-3.1-flash-lite
provider: gemini
powerful:
model: gemini-3.5-flash
provider: gemini
YAML
복사
•
이 후 슬랙에서 모델 전환 → 이후 답변확인하기
@hermes-bot /model fast
@hermes-bot /model powerful
YAML
복사
•
이렇게 스위치가 된 다음에 질문을 넣어야 함!
•
주의1: 모델 스위치와 질문을 같이하면 절대X
•
주의2: 잘못된 별칭을 부르면 안됨
9. 기타
9-1. hermes-bot의 이름을 나만의 별칭으로
[1단계]슬랙 봇 이름 변경
•
접속:https://api.slack.com/apps
→ hermes-bot 선택
→ Basic Information
→ App Name → 본인 원하는 애칭으로 변경
→ Save Changes
[2단계]추가로 Display Name도 변경
Features → App Home
→ App Display Name → "양사장"
→ Save
Bash
복사
9-2. 하드웨어 최소 사양
항목 | 최소 | 권장 |
CPU | 4코어 이상 | 8코어 이상 |
RAM | 16GB | 32GB |
GPU VRAM | 없어도 됨 (API만 사용 시) | 8GB (로컬 E2B 실행 시) |
저장공간 | 50GB 여유 | 100GB 이상 |
네트워크 | 유선랜 권장 | 유선랜 |
OS | Windows 10 이상 | Windows 11 |
GPU 없어도 Gemini API만으로 Hermes 운용 가능. 로컬 LLM은 선택사항임(gemma4:e2b)가 조금 성능이 부족해보이는 것도 사실임.
























































