실제 설치 환경: macOS (Apple Silicon, MacBook Pro), hermes-agent v0.18.2
이 문서는 실제 설치 세션의 터미널 로그와 설정 마법사 화면을 그대로 기록했습니다.
각 단계마다 [화면/로그 원문] → [선택한 값] → [선택 이유] 순으로 정리했습니다.
코드 참조용으로 소스를 로컬에 클론했다.
(설치 자체는 이 클론과 무관하게 설치 스크립트가 ~/.hermes/hermes-agent에 별도 클론을 만든다.)
(base) all_test % git clone https://github.com/NousResearch/hermes-agent.git
Cloning into 'hermes-agent'...
remote: Enumerating objects: 165429, done.
remote: Counting objects: 100% (77/77), done.
remote: Compressing objects: 100% (34/34), done.
remote: Total 165429 (delta 51), reused 45 (delta 43), pack-reused 165352 (from 2)
Receiving objects: 100% (165429/165429), 488.93 MiB | 7.38 MiB/s, done.
Resolving deltas: 100% (110255/110255), done.
(base) all_test % cd hermes-agent
공식 원라이너로 설치를 시작한다.
(base) hermes-agent % curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
┌─────────────────────────────────────────────────────────┐
│ ⚕ Hermes Agent Installer │
├─────────────────────────────────────────────────────────┤
│ An open source AI agent by Nous Research. │
└─────────────────────────────────────────────────────────┘
✓ Detected: macos (macos)
→ Installing managed uv into /Users/xxxxx/.hermes/bin ...
✓ Managed uv installed (uv 0.11.29 (901092ee1 2026-07-15 aarch64-apple-darwin))
→ Checking Python 3.11...
→ Python 3.11 not found, installing via uv...
Installed Python 3.11.15 in 3.90s
+ cpython-3.11.15-macos-aarch64-none (python3.11)
✓ Python installed: Python 3.11.15
→ Checking Git...
✓ Git 2.39.5 found
→ Checking Node.js (for browser tools)...
✓ Node.js v25.6.1 found
→ Checking internet connectivity for package install and web tools...
✓ Internet connectivity looks good
→ Checking ripgrep (fast file search)...
→ Checking ffmpeg (TTS voice messages)...
✓ ffmpeg 8.1.1 found
→ Installing ripgrep via Homebrew...
==> Auto-updating Homebrew...
(... Homebrew 카탈로그 자동 업데이트 출력 — New Formulae / New Casks 목록 다수 ...)
==> Would install 1 formula:
ripgrep
==> Would upgrade 1 dependency for ripgrep:
pcre2
==> Installing ripgrep dependency: pcre2
🍺 /opt/homebrew/Cellar/pcre2/10.47_1: 244 files, 7.2MB
==> Installing ripgrep
🍺 /opt/homebrew/Cellar/ripgrep/15.2.0: 14 files, 6.8MB
✓ ripgrep installed
해설: 설치 스크립트가 자체적으로 확인·설치한 것 — 관리형 uv(
~/.hermes/bin), Python 3.11.15(uv 관리, 시스템 Python과 무관), ripgrep(Homebrew). Git·Node.js·ffmpeg는 기존 설치를 감지해 재사용했다.
→ Installing to /Users/xxxxx/.hermes/hermes-agent...
→ Trying SSH clone...
→ SSH failed, trying HTTPS...
Cloning into '/Users/xxxxx/.hermes/hermes-agent'...
✓ Cloned via HTTPS
✓ Repository ready
→ Creating virtual environment with Python 3.11...
Using CPython 3.11.15
Creating virtual environment at: venv
✓ Virtual environment ready (Python 3.11)
→ Installing dependencies...
→ Trying tier: hash-verified (uv.lock) ...
→ (this resolves + downloads the curated [all] set — first run on a
→ fresh venv can take 1-5 minutes; uv prints progress below)
Resolved 233 packages in 3ms
Installed 95 packages in 107ms
+ hermes-agent==0.18.2 (from file:///Users/xxxxx/.hermes/hermes-agent)
+ openai==2.24.0
+ fastapi==0.133.1
+ mcp==1.26.0
+ croniter==6.0.0
(... 총 95개 패키지 — uv.lock 해시 검증 설치 ...)
✓ Main package installed (hash-verified via uv.lock)
✓ All dependencies installed
해설: 의존성은
uv.lock기준 해시 검증(hash-verified) 설치 — 공급망 공격 대비책이 실제 동작함을 확인. 전부~/.hermes/hermes-agent/venv안에 격리된다.
→ Installing Node.js dependencies (browser tools)...
✅ Browser tools ready. Run: python run_agent.py --help
✓ Node.js dependencies installed
→ Installing browser engine (Playwright Chromium)...
Downloading Chrome for Testing 149.0.7827.55 (playwright chromium v1228)
Chrome for Testing 149.0.7827.55 downloaded to /Users/xxxxx/Library/Caches/ms-playwright/chromium-1228
Chrome Headless Shell 149.0.7827.55 downloaded to /Users/xxxxx/Library/Caches/ms-playwright/chromium_headless_shell-1228
✓ Browser engine setup complete
→ Installing TUI dependencies...
✓ TUI dependencies installed
→ Setting up hermes command...
✓ Installed hermes launcher → ~/.local/bin/hermes
→ ~/.local/bin already on PATH
✓ hermes command ready
→ Setting up configuration files...
✓ Created ~/.hermes/.env from template
✓ Created ~/.hermes/config.yaml from template
✓ Created ~/.hermes/SOUL.md (edit to customize personality)
✓ Configuration directory ready: ~/.hermes/
→ Syncing bundled skills to ~/.hermes/skills/ ...
+ apple-reminders
+ imessage
+ arxiv
+ test-driven-development
+ systematic-debugging
+ github-pr-workflow
+ codebase-inspection
+ ocr-and-documents
+ google-workspace
+ computer-use
(... 이하 생략 ...)
Done: 73 new, 0 updated, 0 unchanged. 73 total bundled.
✓ Skills synced to ~/.hermes/skills/
해설:
hermes명령은~/.local/bin/hermes런처로 설치됨 (이번 환경은 PATH에 이미 있어 셸 설정 수정 없음)- 설정 파일 3종 생성:
config.yaml(설정),.env(시크릿),SOUL.md(페르소나)- 번들 스킬 73개가
~/.hermes/skills/에 동기화됨 — OCR, GitHub 워크플로, 디버깅, 구글 워크스페이스 등- Playwright Chromium이
~/Library/Caches/ms-playwright에 다운로드됨 (삭제 시 별도 정리 대상 — 11장 참조)
설치 직후 설정 마법사가 자동 실행된다.
┌─────────────────────────────────────────────────────────┐
│ ⚕ Hermes Agent Setup Wizard │
├─────────────────────────────────────────────────────────┤
│ Let's configure your Hermes Agent installation. │
│ Press Ctrl+C at any time to exit. │
└─────────────────────────────────────────────────────────┘
◆ Configuration Location
Config file: /Users/xxxxx/.hermes/config.yaml
Secrets file: /Users/xxxxx/.hermes/.env
Data folder: /Users/xxxxx/.hermes
Install dir: /Users/xxxxx/.hermes/hermes-agent
첫 선택 화면:
How would you like to set up Hermes?
↑↓ navigate ENTER/SPACE select ESC cancel
→ (●) Quick Setup (Nous Portal) — free OAuth login, no API keys, model + tools (recommended)
(○) Full setup — configure every provider, tool & option yourself (bring your own keys)
(○) Blank Slate — everything off except the bare minimum; opt in to each capability
✅ 선택: Full setup
| 선택지 | 판단 |
|---|---|
| Quick Setup (Nous Portal) | Nous 클라우드 OAuth 구독 방식 — 외부 SaaS 종속 발생, 사내 PoC 목적과 불일치 → 제외 |
| Full setup | 프로바이더를 직접 지정 (로컬 Ollama → 추후 AWS Bedrock 전환) → 선택 |
| Blank Slate | 도구 전부 꺼짐 — 도구·메모리 테스트 불가 → 제외 |
◆ Inference Provider
Choose how to connect to your main chat model.
Guide: https://hermes-agent.nousresearch.com/docs/integrations/providers
Current model: anthropic/claude-opus-4.6
Active provider: AWS Bedrock
프로바이더 선택 화면 (전체 목록):
Select provider:
↑↓ navigate ENTER/SPACE select ESC cancel
(○) Nous Portal (Everything your agent needs, 300+ models with bundled tool use)
(○) Fireworks AI (OpenAI-compatible direct model API)
(○) OpenRouter (Pay-per-use API aggregator)
(○) Mixture of Agents (named presets; aggregator acts after reference models)
(○) NovitaAI (Cloud: Model API, Agent Sandbox, GPU Cloud)
(○) LM Studio (Local desktop app with built-in model server)
(○) Anthropic (Claude models via API key or Claude Code)
(○) OpenAI ▸ (Codex CLI or direct OpenAI API)
(○) Qwen Cloud / DashScope (Qwen + multi-provider)
(○) xAI Grok ▸ (Direct API or SuperGrok / Premium+ OAuth)
(○) Xiaomi MiMo (MiMo-V2.5 and V2 models: pro, omni, flash)
(○) Tencent TokenHub (Hy3 Preview via tokenhub.tencentmaas.com)
(○) NVIDIA NIM (Nemotron models via build.nvidia.com or local NIM)
(○) GitHub Copilot ▸ (GitHub token API or copilot --acp process)
(○) Hugging Face Inference Providers
(○) Google AI Studio (Native Gemini API)
(○) Google Vertex AI (Gemini via GCP; OAuth2 service account or ADC, GCP billing/quotas)
(○) DeepSeek (V3, R1, coder, direct API)
(○) Z.AI / GLM (Zhipu direct API)
(○) Kimi / Moonshot ▸ (Coding Plan, Moonshot global & China endpoints)
(○) StepFun Step Plan (Agent / coding models via Step Plan API)
(○) MiniMax ▸ (Global, OAuth Coding Plan & China endpoints)
(○) Ollama Cloud (Cloud-hosted open models, ollama.com)
(○) Arcee AI (Trinity models, direct API)
(○) GMI Cloud (Multi-model direct API)
(○) Kilo Code (Kilo Gateway API)
(○) OpenCode ▸ (Zen pay-as-you-go or Go subscription)
(●) AWS Bedrock (Claude, Nova, Llama, DeepSeek; IAM or API key) ← currently active
(○) Azure Foundry (OpenAI-style or Anthropic-style endpoint, your Azure AI deployment)
(○) Qwen OAuth (Reuses local Qwen CLI login)
(○) Alibaba Cloud Coding Plan (Dedicated coding tier)
(○) custom (direct API)
(○) DeepInfra — 100+ open models, pay-per-use
(○) Upstage (Solar API)
(○) Custom endpoint (enter URL manually)
(○) Configure auxiliary models...
(○) Leave unchanged
✅ 선택: Custom endpoint (enter URL manually)
| 헷갈리기 쉬운 선택지 | 판단 |
|---|---|
| AWS Bedrock (currently active) | 현재 IAM 유저에 bedrock:InvokeModel 권한 없음 (AccessDenied 확인) → 권한 확보 후 전환 예정 |
| Ollama Cloud | ollama.com 클라우드 서비스 (API 키 필요) — 로컬 Ollama가 아님 → 제외 |
| LM Studio | LM Studio 앱 전용 — 현재 Ollama 사용 중 → 제외 |
| Custom endpoint (enter URL manually) | 로컬 Ollama는 코드상 custom 프로바이더로 동작 (plugins/model-providers/custom/ — "Custom / Ollama (local) provider profile") → 선택 |
AWS IAM User에 권한이 없는 이유? : 권한이 빠진 계정을 사용하고 있어서
사전 확인: 별도 터미널에서 로컬 Ollama 가동 여부를 확인해두었다.
% curl http://localhost:11434 Ollama is running
Custom OpenAI-compatible endpoint configuration:
API base URL [e.g. https://api.example.com/v1]: http://localhost:11434/v1
API key [optional]:
Verified endpoint via http://localhost:11434/v1/models (3 model(s) visible)
Select API compatibility mode:
1. Auto-detect [current]
Use Hermes URL heuristics; best for standard OpenAI-compatible endpoints.
2. Chat Completions
Use /chat/completions for standard OpenAI-compatible servers.
3. Responses / Codex
Use /responses for Codex-compatible tool-calling backends.
4. Anthropic Messages
Use /v1/messages for Anthropic-compatible endpoints.
Choice [1-4, Enter to keep current/detected]: qwen3.6:35b-a3b
Invalid API mode choice: qwen3.6:35b-a3b. Falling back to auto-detect.
API mode: auto-detect
Available models:
1. qwen3.6:35b-a3b
2. gemma4:31b
3. nomic-embed-text:latest
Select model [1-3] or type name: 1
Context length in tokens [leave blank for auto-detect]:
Display name [Local (localhost:11434)]:
Default model set to: qwen3.6:35b-a3b (via http://localhost:11434/v1)
💾 Saved to custom providers as "Local (localhost:11434)" (edit in config.yaml)
입력값 정리:
| 프롬프트 | 입력 | 이유 |
|---|---|---|
| API base URL | http://localhost:11434/v1 | 로컬 Ollama의 OpenAI 호환 엔드포인트. 끝의 /v1 필수 |
| API key | (빈값, Enter) | 로컬 Ollama는 인증 없음 |
| API compatibility mode | Enter → Auto-detect | 표준 OpenAI 호환 서버는 auto-detect가 정답. ※ 실수로 모델명을 입력했으나 auto-detect로 폴백되어 결과적으로 정상 |
| Select model | 1 (qwen3.6:35b-a3b) | 보유 모델 중 툴콜(도구 호출) 가능한 모델. gemma4는 대안, nomic-embed-text는 임베딩 전용이라 대화 불가 |
| Context length | (빈값, Enter) | 자동 감지 사용. 컨텍스트 부족 증상 시 config.yaml에 ollama_num_ctx: 32768 추가 가능 |
| Display name | (빈값, Enter) | 기본값 Local (localhost:11434) — 표시용 이름표라 동작 무관 |
결과: 엔드포인트 검증 성공(모델 3개 인식), 기본 모델
qwen3.6:35b-a3b확정,config.yaml의 custom providers에 자동 저장되어 이후 메뉴에 이름으로 표시된다.
에이전트가 셸 명령·코드를 어디서 실행할지 결정하는 단계.
◆ Terminal Backend
Choose where Hermes runs shell commands and code.
This affects tool execution, file access, and isolation.
Select terminal backend:
↑↓ navigate ENTER/SPACE select ESC cancel
(○) Local - run directly on this machine (default)
(○) Docker - isolated container with configurable resources
(○) Modal - serverless cloud sandbox
(○) SSH - run on a remote machine
(○) Daytona - persistent cloud development environment
→ (●) Keep current (local)
✅ 선택: Keep current (local)
Skipped (keeping current)
Keeping current backend: local
✓ Applied recommended defaults:
Max iterations: 150
Tool progress: all
Compression threshold: 0.50
Session reset: never (use /reset or compression)
Run `hermes setup agent` later to customize.
| 선택지 | 판단 |
|---|---|
| Local | 맥에서 직접 실행 + 실행 전 승인 프롬프트로 통제. PoC에 적합 → 선택 |
| Docker | 격리 컨테이너 실행 — 운영에서 협력사용 인스턴스에 적용할 보안 옵션 (추후 별도 검증 가치 있음) |
| Modal / SSH / Daytona | 원격·클라우드 실행 — 로컬 PoC 범위 밖 |
함께 적용된 권장 기본값: 최대 반복 150회, 도구 진행상황 전체 표시, 컨텍스트 압축 임계값 0.50, 세션 자동 리셋 없음.
Telegram·Slack 등 메신저에서 봇으로 대화하기 위한 게이트웨이 설정 단계.
◆ Messaging Platforms
Connect to messaging platforms to chat with Hermes from anywhere.
Toggle with Space, confirm with Enter.
Select platforms to configure:
↑↓ navigate SPACE toggle ENTER confirm ESC cancel
[ ] 🐳 DingTalk (not configured)
[ ] 🎮 Discord (not configured)
[ ] 📧 Email (not configured)
[ ] 🪽 Feishu / Lark (not configured)
[ ] 💬 Google Chat (not configured)
[ ] 🏠 Home Assistant (not configured)
[ ] 💬 IRC (not configured)
[ ] 💚 LINE (not configured)
[ ] 🔐 Matrix (not configured)
[ ] 🔔 ntfy (not configured)
[ ] 📱 iMessage via Photon (not configured)
[ ] 🔔 Raft (not configured)
[ ] 🔒 SimpleX Chat (not configured)
[ ] 💼 Slack (not configured)
[ ] 📱 SMS (Twilio) (not configured)
[ ] 💼 Microsoft Teams (not configured)
[ ] ✈️ Telegram (not configured)
[ ] 💼 WeCom (Enterprise WeChat) (not configured)
[ ] 💼 WeCom Callback (self-built apps) (not configured)
[ ] 💬 WhatsApp (not configured)
[ ] 💬 Mattermost (not configured)
[ ] 📡 Signal (not configured)
[ ] 💬 Weixin / WeChat (not configured)
[ ] 💬 BlueBubbles (iMessage) (not configured)
[ ] 🐧 QQ Bot (not configured)
[ ] 💎 Yuanbao (not configured)
✅ 선택: 없음 (아무것도 체크하지 않고 Enter)
No platforms selected. Run 'hermes setup gateway' later to configure.
이유: 전부 각 플랫폼의 봇 토큰이 필요하고 PoC 시나리오에 없음. 운영에서 쓸 OpenAI 호환 API 서버는 이 목록과 무관하게
.env의API_SERVER_ENABLED=true로 켠다. 추후 임직원 채널로 Teams 등을 검토하면hermes setup gateway로 재진입해 추가.
⚕ Hermes Tool Configuration
Enable or disable tools per platform.
Tools that need API keys will be configured when enabled.
Guide: https://hermes-agent.nousresearch.com/docs/user-guide/features/tools
Tools for 🖥️ CLI
↑↓ navigate SPACE toggle ENTER confirm ESC cancel
[✓] 🔍 Web Search & Scraping (web_search, web_extract)
[✓] 🌐 Browser Automation (navigate, click, type, scroll)
[✓] 💻 Terminal & Processes (terminal, process)
[✓] 📁 File Operations (read, write, patch, search)
[✓] ⚡ Code Execution (execute_code)
[✓] 👁️ Vision / Image Analysis (vision_analyze)
[ ] 🎬 Video Analysis (video_analyze (requires video-capable model))
[✓] 🎨 Image Generation (image_generate)
[ ] 🎬 Video Generation (video_generate (text/image/reference))
[ ] 🐦 X (Twitter) Search (x_search (requires xAI OAuth or XAI_API_KEY))
[✓] 🔊 Text-to-Speech (text_to_speech)
[✓] 📚 Skills (list, view, manage)
[✓] 📋 Task Planning (todo)
[✓] 💾 Memory (persistent memory across sessions)
[ ] 🧩 Context Engine (runtime tools from the active context engine)
[✓] 🔎 Session Search (search past conversations)
[✓] ❓ Clarifying Questions (clarify)
[✓] 👥 Task Delegation (delegate_task)
[✓] ⏰ Cron Jobs (create/list/update/pause/resume/run, with optional attached skills)
[ ] 🏠 Home Assistant (smart home device control) [no API key]
✅ 적용 원칙: PoC 핵심 도구는 유지, API 키 필요·모델 미지원 항목은 이후 프로바이더 단계에서 Skip 처리
| 구분 | 도구 | 판단 |
|---|---|---|
| 유지 (시나리오 1 핵심) | Terminal & Processes, File Operations, Code Execution | 도구 실행 + 승인 프롬프트 검증 대상 |
| 유지 (시나리오 2 핵심) | Skills, Memory, Session Search | 자기학습(스킬 생성·영구 메모리·세션 검색) 검증 대상 |
| 유지 (기본) | Task Planning, Clarifying Questions, Task Delegation, Cron Jobs | 키 불필요, 기본 기능 |
| 키 필요 → 프로바이더 단계에서 Skip | Web Search, Image Generation, TTS, Browser Automation | 검색·이미지 프로바이더 API 키 없음 |
| 모델 제약 | Vision | qwen3.6:35b-a3b는 텍스트 모델 (비전 모델 전환 시 활용 가능) |
| 기본 꺼짐 유지 | Video Analysis/Generation, X Search, Context Engine, Home Assistant | 해당 없음 |
확정 후 마법사가 프로바이더 설정이 필요한 6개 도구를 이어서 처리한다:
Configuring 6 tool(s):
• 🌐 Browser Automation
• 🖱️ Computer Use (macOS/Windows/Linux)
• 🎨 Image Generation
• 🔊 Text-to-Speech
• 👁️ Vision / Image Analysis
• 🔍 Web Search & Scraping
You can skip any tool you don't need right now.
--- 🌐 Browser Automation - Choose a provider ---
Choose a provider:
↑↓ navigate ENTER/SPACE select ESC cancel
→ (●) Local Browser [★ recommended · free] — Headless Chromium, no API key needed
(○) Nous Subscription (Browser Use cloud) [subscription] — Managed Browser Use billed to your subscription ★ via Nous Portal
(○) Camofox [free · local] — Anti-detection browser (Firefox/Camoufox)
(○) Browser Use [paid] — Cloud browser with remote execution
(○) Browserbase [paid] — Cloud browser with stealth and proxies
(○) Firecrawl [paid] — Cloud browser with remote execution
(○) Skip — keep defaults / configure later
Skipped Browser Automation
✅ 선택: Skip — PoC 범위 밖. 필요 시 무료인 Local Browser(헤드리스 Chromium)를 hermes setup tools에서 활성화 가능.
이 항목은 선택지 없이 cua-driver(백그라운드 데스크톱 제어 드라이버)를 자동 설치했다.
--- 🖱️ Computer Use (macOS/Windows/Linux) (cua-driver (background)) ---
Background computer-use via cua-driver — does NOT steal your cursor or focus. Works with any model.
Installing cua-driver (background computer-use)...
note: installing cua-driver via the Rust implementation.
==> using baked release: cua-driver-rs-v0.8.3
==> downloading https://github.com/trycua/cua/releases/download/cua-driver-rs-v0.8.3/cua-driver-rs-0.8.3-darwin-universal.tar.gz
==> extracting
==> installing /Applications/CuaDriver.app
==> symlinked /Users/xxxxx/.local/bin/cua-driver -> /Applications/CuaDriver.app/Contents/MacOS/cua-driver
==> stopping any running cua-driver daemons before swap
cua-driver-rs 0.8.3 installed.
✓ cua-driver installed.
IMPORTANT — grant macOS permissions now:
System Settings > Privacy & Security > Accessibility
System Settings > Privacy & Security > Screen Recording
Both must allow the terminal / Hermes process.
✓ cua-driver (background) - no configuration needed!
주의사항 2가지:
1./Applications/CuaDriver.app+~/.local/bin/cua-driver심링크가~/.hermes바깥에 설치됨 → 완전 삭제 시 별도 제거 필요 (11장 참조)
2. 실제로 컴퓨터 제어 기능을 쓰려면 macOS 권한(손쉬운 사용 + 화면 기록) 부여 필요. PoC에서는 안 쓰므로 권한을 부여하지 않아도 됨
3. 텔레메트리가 기본 활성 — 비활성화:~/.local/bin/cua-driver telemetry disable
--- 🎨 Image Generation - Choose a provider ---
Choose a provider:
↑↓ navigate ENTER/SPACE select ESC cancel
(●) Nous Subscription [subscription] — Managed FAL image generation billed to your subscription ★ via Nous Portal
(○) DeepInfra [paid] — FLUX, Qwen-Image, … — live catalog from api.deepinfra.com
(○) FAL.ai [paid] — Pick from flux-2-klein, flux-2-pro, gpt-image, nano-banana, etc. — text-to-image & image editing
(○) Krea [paid] — Krea 2 foundation model — Medium ($0.03), Large ($0.06), Medium Turbo ($0.015). Style transfer, moodboards
(○) Nous Portal (image) [subscription] — Reference-grounded image generation via Nous Portal (OpenRouter-backed)
(○) OpenAI [paid] — gpt-image-2 at low/medium/high quality tiers — text-to-image & image editing
(○) OpenAI (Codex auth) [free] — gpt-image-2 via ChatGPT/Codex OAuth — no API key required; supports text and image inputs
(○) OpenRouter (image) [paid] — Gemini Flash Image & more via OpenRouter; uses OPENROUTER_API_KEY
(○) xAI Grok Imagine (image) [paid] — grok-imagine-image - text-to-image & image editing; uses xAI Grok OAuth or XAI_API_KEY
→ (○) Skip — keep defaults / configure later
Skipped Image Generation
✅ 선택: Skip — 전부 유료/구독/외부 OAuth. PoC 범위 밖.
--- 🔊 Text-to-Speech - Choose a provider ---
Skipped Text-to-Speech
✅ 선택: Skip — PoC 시나리오에 없음. (기본 Edge TTS는 무료라 이후 필요 시 켜면 됨)
--- 🔍 Web Search & Extract - Select Search Provider ---
A free DuckDuckGo search skill is also included — skip this if you don't need a premium provider.
Select Search Provider:
↑↓ navigate ENTER/SPACE select ESC cancel
(●) Nous Subscription [subscription] — Managed Firecrawl billed to your subscription ★ via Nous Portal (login on select)
(○) Firecrawl Self-Hosted [free · self-hosted] — Run your own Firecrawl instance (Docker)
(○) Brave Search (Free) [free] — Free-tier API key — 2k queries/mo, search only.
(○) DuckDuckGo (ddgs) [free · no key · search only] — Search via the ddgs Python package — no API key (pair with any extract provider)
(○) Exa [paid] — Semantic + neural web search with content extraction.
(○) Firecrawl [paid · optional gateway] — Full search + extract; supports direct API and Nous tool-gateway routing.
(○) Parallel [paid] — Objective-tuned search + parallel page extraction.
(○) SearXNG [free · self-hosted] — Free, privacy-respecting metasearch. Point SEARXNG_URL at your instance.
(○) Tavily [paid] — Search + extract in one provider.
(○) xAI Web Search (Grok) [paid] — Agentic web search via Grok's web_search tool — uses xAI Grok OAuth or XAI_API_KEY.
→ (○) Skip — keep defaults / configure later
Skipped Web Search & Extract
✓ Saved 🖥️ CLI tool configuration
Previous config backed up to: /Users/xxxxx/.hermes/config.yaml.bak.20260718_170040
✅ 선택: Skip — 참고: DuckDuckGo(ddgs)는 키가 전혀 필요 없는 무료 옵션이라 나중에 웹검색이 필요하면 hermes tools에서 켜고 이걸 선택하면 됨. 사내 운영 시엔 자체 호스팅 SearXNG도 선택지.
설정 저장 시 기존 config가 자동 백업된다 (
config.yaml.bak.<타임스탬프>) — 잘못 바꿔도 복원 가능.
◆ Tool Availability Summary
6/9 tool categories available:
✓ Vision (image analysis)
✗ Web Search & Extract (missing EXA_API_KEY, PARALLEL_API_KEY, FIRECRAWL_API_KEY/FIRECRAWL_API_URL, TAVILY_API_KEY, or SEARXNG_URL)
✓ Browser Automation (Local browser)
✗ Image Generation (missing FAL_KEY or OPENAI_API_KEY)
✓ Text-to-Speech (Edge TTS)
✗ Skills Hub (GitHub) (missing GITHUB_TOKEN)
✓ Terminal/Commands
✓ Task Planning (todo)
✓ Skills (view, create, edit)
⚠ Some tools are disabled. Run 'hermes setup tools' to configure them,
⚠ or edit ~/.hermes/.env directly to add the missing API keys.
┌─────────────────────────────────────────────────────────┐
│ ✓ Setup Complete! │
└─────────────────────────────────────────────────────────┘
📁 All your files are in ~/.hermes/:
Settings: /Users/xxxxx/.hermes/config.yaml
API Keys: /Users/xxxxx/.hermes/.env
Data: /Users/xxxxx/.hermes/cron/, sessions/, logs/
📝 To edit your configuration:
hermes setup Re-run the full wizard
hermes setup model Change model/provider
hermes setup terminal Change terminal backend
hermes setup gateway Configure messaging
hermes setup tools Configure tool providers
hermes config View current settings
hermes config edit Open config in your editor
hermes config set <key> <value>
┌─────────────────────────────────────────────────────────┐
│ ✓ Installation Complete! │
└─────────────────────────────────────────────────────────┘
📁 Your files:
Config: /Users/xxxxx/.hermes/config.yaml
API Keys: /Users/xxxxx/.hermes/.env
Data: /Users/xxxxx/.hermes/cron/, sessions/, logs/
Code: /Users/xxxxx/.hermes/hermes-agent
🚀 Commands:
hermes Start chatting
hermes setup Configure API keys & settings
hermes config View/edit configuration
hermes config edit Open config in editor
hermes gateway install Install gateway service (messaging + cron)
hermes update Update to latest version
⚡ Reload your shell to use 'hermes' command:
source ~/.zshrc
| 항목 | 설정값 |
|---|---|
| 버전 | hermes-agent 0.18.2 |
| 모델 프로바이더 | Custom — Local (localhost:11434) (로컬 Ollama) |
| 기본 모델 | qwen3.6:35b-a3b |
| API 모드 | auto-detect |
| 터미널 백엔드 | local (승인 프롬프트 통제) |
| 에이전트 기본값 | Max iterations 150 / Tool progress all / 압축 임계값 0.50 / 자동 리셋 없음 |
| 메시징 플랫폼 | 없음 (추후 hermes setup gateway) |
| 활성 도구 | Terminal, File, Code Execution, Vision, Browser(Local), TTS(Edge), Skills, Todo, Memory, Session Search, Clarify, Delegation, Cron |
| 비활성 (키 없음) | Web Search, Image Generation, Skills Hub(GitHub) |
| 번들 스킬 | 73개 동기화됨 |
기본 모델이 qwen3.6:35b-a3b 인 이유?
Ollama에서 qwen3.6:35b-a3b 모델을 설치한 상태라서.
이번 실제 설치 로그로 확인된 모든 시스템 변경 사항. (삭제 계획 수립용)
| 경로 | 내용 | hermes uninstall로 제거 |
|---|---|---|
~/.hermes/ | 코드(hermes-agent/), venv, 관리형 uv(bin/), config.yaml, .env, SOUL.md, skills(73개), sessions, cron, logs | ✅ (--full 시) |
~/.local/bin/hermes | 실행 런처 | ✅ |
~/.zshrc 등 셸 설정 | 이번 환경은 ~/.local/bin이 이미 PATH에 있어 수정 없음 | (해당 없음) |
/opt/homebrew/Cellar/ripgrep, pcre2 | Homebrew로 설치된 의존성 | ❌ → brew uninstall ripgrep |
~/Library/Caches/ms-playwright/ | Playwright Chromium 2종 (Chrome for Testing 149) | ❌ → 폴더 삭제 |
/Applications/CuaDriver.app | Computer Use 드라이버 (cua-driver-rs 0.8.3) | ❌ → 앱 삭제 |
~/.local/bin/cua-driver | CuaDriver 심링크 | ❌ → 심링크 삭제 |
| uv 관리 Python 3.11.15 | uv가 관리하는 격리 인터프리터 | ~/.hermes 삭제로 함께 정리 (uv python 캐시 위치에 따라 uv python uninstall 3.11 병행) |
# 1. Hermes 본체 + 데이터 완전 삭제 (PATH 라인·런처·launchd 정리 포함)
hermes uninstall --yes --full
# 2. Hermes 외부에 설치된 부속물 정리
rm -f ~/.local/bin/cua-driver
rm -rf /Applications/CuaDriver.app
rm -rf ~/Library/Caches/ms-playwright
brew uninstall ripgrep # 다른 용도로 쓰지 않는 경우만
# 3. (Docker 테스트를 했다면)
docker rm -f open-webui hermes 2>/dev/null
docker rmi hermes-agent 2>/dev/null
셸 리로드 후 hermes doctor로 설치 상태를 전체 점검했습니다.
(base) hermes-agent % source ~/.zshrc
(base) hermes-agent % hermes doctor
┌─────────────────────────────────────────────────────────┐
│ 🩺 Hermes Doctor │
└─────────────────────────────────────────────────────────┘
◆ Security Advisories
✓ No active security advisories
◆ MCP Server Security
✓ No suspicious MCP stdio commands
◆ Python Environment
✓ Python 3.11.15
✓ Virtual environment active
✓ Version files consistent (0.18.2)
◆ SSL / CA Certificates
✓ SSL CA certificate bundle is valid
◆ Required Packages
✓ OpenAI SDK
✓ Rich (terminal UI)
✓ python-dotenv
✓ PyYAML
✓ HTTPX
✓ Croniter (cron expressions) (optional)
⚠ python-telegram-bot (optional, not installed)
⚠ discord.py (optional, not installed)
◆ Configuration Files
✓ ~/.hermes/.env file exists
✓ API key or custom endpoint configured
✓ ~/.hermes/config.yaml exists
✓ Config version up to date (v33)
◆ xAI Model Retirement (May 15, 2026)
✓ No retired xAI models in config
◆ Auth Providers
⚠ Nous Portal auth (not logged in)
⚠ OpenAI Codex auth (not logged in)
⚠ MiniMax OAuth (not logged in)
⚠ xAI OAuth (not logged in)
◆ Directory Structure
✓ ~/.hermes directory exists
✓ ~/.hermes/cron/ exists
✓ ~/.hermes/sessions/ exists
✓ ~/.hermes/logs/ exists
✓ ~/.hermes/skills/ exists
✓ ~/.hermes/memories/ exists
✓ ~/.hermes/SOUL.md exists (persona configured)
→ MEMORY.md not created yet (will be created when the agent first writes a memory)
→ USER.md not created yet (will be created when the agent first writes a memory)
→ ~/.hermes/state.db not created yet (will be created on first session)
◆ Command Installation
✓ Venv entry point exists (venv/bin/hermes)
✓ ~/.local/bin/hermes exists (non-symlink)
◆ External Tools
✓ git
✓ ripgrep (rg) (faster file search)
✓ docker (optional)
✓ Node.js
✓ agent-browser (Node.js) (browser automation)
✓ Playwright Chromium (browser engine)
✓ Browser tools (agent-browser) deps (no known vulnerabilities)
✓ web workspace deps (no known vulnerabilities)
✓ ui-tui workspace deps (no known vulnerabilities)
◆ API Connectivity
⚠ OpenRouter API (not configured)
⚠ AWS Bedrock (AccessDeniedException: An error occurred (AccessDeniedException) when calling
the ListFoundationModels operation: User: arn:aws:iam::xxxxxxxxxxxx:user/qa_document_review is not
authorized to perform: bedrock:ListFoundationModels because no identity-based policy allows the
bedrock:ListFoundationModels action)
◆ Tool Availability
✓ browser / clarify / code_execution / computer_use / cronjob / delegation / file / memory
✓ project / session_search / skills / terminal / todo / tts / video / vision
✓ kanban (runtime-gated; loaded only for dispatcher-spawned workers)
⚠ browser-cdp (system dependency not met)
⚠ discord, discord_admin (missing DISCORD_BOT_TOKEN)
⚠ feishu_doc / feishu_drive / hermes-yuanbao / homeassistant / image_gen / spotify / video_gen
(system dependency not met)
⚠ web (missing EXA_API_KEY, PARALLEL_API_KEY, TAVILY_API_KEY, FIRECRAWL_API_KEY, ...)
⚠ x_search (missing XAI_API_KEY)
◆ Skills Hub
⚠ Skills Hub directory not initialized (run: hermes skills list)
⚠ No GITHUB_TOKEN (60 req/hr rate limit — set in ~/.hermes/.env for better rates)
◆ Memory Provider
✓ Built-in memory active (no external provider configured — this is fine)
────────────────────────────────────────────────────────────
Found 2 issue(s) to address:
1. AWS Bedrock: AccessDeniedException — check IAM permissions for bedrock:ListFoundationModels
2. Run 'hermes setup' to configure missing API keys for full tool access
Tip: run 'hermes doctor --fix' to auto-fix what's possible.
핵심 항목 전부 정상.
경고 2건은 모두 예상된 것으로, PoC 진행에 지장 없습니다 :
| 지적 사항 | 판정 |
|---|---|
| AWS Bedrock AccessDeniedException | 예상된 상태 — 현재 IAM 유저에 Bedrock 권한 없음. 시나리오 6에서 권한 확보 후 전환 예정. (doctor가 Bedrock 연결까지 자동 점검해준다는 점 확인) |
| missing API keys (web/image_gen 등) | 의도적 Skip — 설정 마법사에서 키 필요 도구를 제외했으므로 정상 |
| Auth Providers 미로그인 4건 | 외부 OAuth (Nous/Codex/MiniMax/xAI) — 사용 안 하므로 정상 |
| MEMORY.md / state.db not created yet | 첫 세션·첫 메모리 기록 시 자동 생성 — 정상 |
(base) hermes-agent % hermes
╔════════════════════════════════════════════════════════╗
║ ⚕ NOUS HERMES - AI Agent Framework ║
║ Hermes Agent v0.18.2 (2026.7.7.2) · upstream 3d9be27 ║
╚════════════════════════════════════════════════════════╝
● qwen3.6:35b-a3b · 29 tools · toolsets: browser,
clarify, code_execution, computer_use, cronjob,
delegation, file, image_gen, kanban, memory,
session_search, skills, terminal, todo, tts, vision, web ·
provider: custom
Welcome to Hermes Agent! Type your message or /help for
commands.
✦ Tip: hermes mcp install <name> installs a catalog entry,
prompts for credentials, and lets you pick which of its
tools to enable.
⚠ tirith security scanner enabled but not available — command scanning will use pattern matching only
────────────────────────────────────────
● 안녕! 너는 어떤 도구를 쓸 수 있어?
Initializing agent...
────────────────────────────────────────
⚠️ Context file AGENTS.md TRUNCATED: 73937 chars exceeds limit of 62914 — trim the file, pin a larger context_file_max_chars, or use a larger-context model!
⚕ qwen3.6:35b-a3b · 0% · 12s
──────────────────────────────────────────────────────────
⚕ msg=interrupt · /queue · /bg · /steer · Ctrl+C cancel
| 항목 | 상태 |
|---|---|
| 배너 | v0.18.2, upstream 커밋 표시 → 정상 기동 |
| 모델 | qwen3.6:35b-a3b · provider: custom → 5장 설정 그대로 반영 |
| 도구 | 29개 로드 (browser, code_execution, file, memory, terminal, todo, skills, cronjob 등) |
| 진행 표시 | 0% · 12s — 컨텍스트 사용률 · 경과 시간. 로컬 23GB 모델은 최초 로드에 수십 초 걸릴 수 있음 (이후 응답부터 빨라짐) |
① Context file AGENTS.md TRUNCATED: 73937 chars exceeds limit of 62914
hermes를 hermes-agent 소스 체크아웃 폴더 안에서 실행했기 때문. Hermes는 현재 작업 폴더의 AGENTS.md를 프로젝트 컨텍스트로 자동 로드하는데, 이 리포의 AGENTS.md(개발자용, 74KB)가 한도(62,914자)를 넘어 잘림.mkdir -p ~/hermes-poc && cd ~/hermes-poc
hermesconfig.yaml에 context_file_max_chars를 크게 지정 — 단, 로컬 모델 컨텍스트를 크게 잡아먹으므로 비권장.② tirith security scanner enabled but not available — command scanning will use pattern matching only
brew install tirith. PoC에서는 폴백으로 충분.첫 질문("안녕! 너는 어떤 도구를 쓸 수 있어?")에 대한 실제 응답 전문:
╭─ ⚕ Hermes ──────────────────────────────────────────────────────────────────╮
안녕하세요! 저는 다목적 AI 코딩 에이전트이며, 다양한 분야의 스킬과 도구를 사용할 수 있습니다. 주로 다음과 같은 카테고리에서 작업할 수 있습니다:
💻 소프트웨어 개발 및 디버깅
- 코드 계획 (plan), TDD/RED-GREEN-REFACTOR, 3-에이전트 병렬 코드 정리 (simplify-code)
- Node.js(--inspect)/Python(debugpy/pdb) 디버깅, 시스템적 디버깅 및 스파이크 실험
- 코드 리뷰 자동화(보안 스캔, 품질 검증, 오프로)
🧠 로컬 LLM 추론 & MLOps
- llama.cpp 기반 로컬 GGUF 모델 실행(llm, hf_hub) 및 vLLM 서빙/양자화(vllm-srv)
- 이미지 분할(SAM / Segment Anything), 오디오 생성(AudioCraft / MusicGen) 등 모델 도메인
📝 메모 & 파일 처리
- 로컬 노트 관리(Obsidian), 텍스트 추출 및 OCR(pymupdf, marker-pdf), PDF 편집(nano-pdf)
- Airtable, Notion, PowerPoint, Google Workspace(Gmail, Docs, Sheets 등) 연동
🌐 연구 및 데이터 모니터링
- 학술 자료 검색(Arxiv), 블로그/RSS 피드 모니터링(Blogwatcher), LLM Wiki(Karpathy), Polymarket 시장 정보 조회
⌚ 소셜 미디어 및 크롤링 (xURL)
- X/Twitter 플랫폼 작업(DM, 게시/검색/미디어 등)
🏠 스마트 홈 및 기타
- Philips Hue 조명 제어(OpenHue CLI) 및 맵/지리적 데이터(OSRM, POI, 타임존)
- Yuanbao 그룹 관리(@mention 및 멤버 쿼리), Teams 미팅 요약 파이프라인 연동
특정 작업이 필요하시다면 알려주세요. 해당하는 도구를 찾아 바로 실행하겠습니다!
╰─────────────────────────────────────────────────────────────────────────────╯
⚕ qwen3.6:35b-a3b │ 16.4K/262.1K │ [█░░░░░░░░░] 6% │ 4m │ ⏲ 4m 17s │ ✓ 0s
| 상태바 항목 | 값 | 의미 |
|---|---|---|
16.4K/262.1K | 컨텍스트 사용량 | 시스템 프롬프트 + 도구 스키마 + AGENTS.md 등 입력이 약 16.4K 토큰 (한도 262.1K 자동 감지) |
6% | 컨텍스트 사용률 | 압축 임계값(0.50)까지 여유 충분 |
⏲ 4m 17s | 총 소요 시간 | 첫 턴 한정 지연 — 아래 원인 분석 참조 |
첫 턴이 4분 17초 걸린 원인 (로컬 모델 특성):
→ 두 번째 턴부터는 모델이 메모리에 상주하고 Ollama가 시스템 프롬프트 구간의 KV 캐시를 재사용하므로 크게 빨라진다.
개선 조치 (재실행 시 적용):
| 조치 | 효과 |
|---|---|
깨끗한 폴더에서 실행 (~/hermes-poc) | AGENTS.md ≈2만 토큰이 프롬프트에서 제거 |
hermes tools에서 미사용 도구 끄기 (browser, computer_use, tts, vision, image_gen, web) | 도구 스키마 분량 축소 |
ollama ps로 PROCESSOR 확인 | 100% GPU가 아니면(CPU 혼합) 메모리 부족 — 더 작은 모델 검토 |
응답 내용에 대한 해설: 에이전트가 도구(terminal, file 등 29개)가 아니라 번들 스킬 73개(Obsidian, Arxiv, OCR, Google Workspace 등)를 중심으로 자신을 소개했다. 스킬 카탈로그가 컨텍스트에 로드되어 있음을 보여주는 결과로, 도구·스킬이 모두 정상 인식된 것으로 판정. (Hue·Yuanbao 등은 스킬이 존재한다는 것이지 지금 실행 환경에서 동작한다는 뜻은 아님 — 해당 외부 서비스 미연결 상태)
판정: 시나리오 1-1 (기본 대화·정상 응답) 통과. 다음: 시나리오 1-2 — "현재 폴더 파일 목록 보여줘"로 도구 실행 + 승인 프롬프트 확인.
설치·설정·기동 검증이 끝났으므로 hermes-agent-guide.md의 테스트 시나리오를 진행한다:
ollama serve # Ollama 가동 확인 (별도 터미널)
mkdir -p ~/hermes-poc && cd ~/hermes-poc # 깨끗한 테스트 폴더 (13장 ① 경고 대응)
hermes # 시나리오 1 시작
| 시나리오 | 내용 | 사전조건 |
|---|---|---|
| 1 | 기본 대화 + 도구 실행 + 승인 프롬프트 | 완료된 현재 설정 그대로 |
| 2 | 메모리·스킬 자기학습 | 〃 |
| 3 | OpenAI 호환 API 서버 (API_SERVER_ENABLED=true) | .env 2줄 추가 |
| 4 | Open WebUI 웹 화면 연동 | Docker |
| 5 | Docker 이미지 빌드 (ECR 리허설) | Docker |
| 6 | AWS Bedrock 전환 (hermes setup model) | IAM bedrock:InvokeModel 권한 |
운영 아키텍처 관점 정리는 hermes-agent-infra.md 참조.