Search
Duplicate

[My Agent]5.온라인 Agent(with Hermes)

목차(클릭하세요)
오픈클로, Hermes 모두 사용가능하지만, 오픈클로는 뭔가 꺼림직… Hermes로 온라인 Agent사용하기의 모든 것 PC 한 대에 Hermes Agent + Ollama 을 올려, 슬랙 하나로 어디서든 3단계 모델 라우팅 AI 에이전트를 무료에 가깝게 운용함
[참고자료]
hermes-agent
NousResearch

0.참고자료

1. 최종 아키텍처

1-1. 전체 구조도

hermes Agents의 가장 큰 장점: 작업마다 적합한 모델을 따로 설정하여 스위칭 할 수 있음!
슬랙 (학교 ✅ / 집 ✅ / 스마트폰 ✅) ↓ 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)가 조금 성능이 부족해보이는 것도 사실임.