본문 바로가기

IT/AI 자동화

헤르메스(hermes agent) AI Agent 웹 검색 기능 활성화 하는 방법(Web search)

도커로 헤르메스를 구성했고 구성방법에 대해서는 이전 포스트를 참고

2026.05.31 - [IT/AI 자동화] - 헤르메스(hermes agent) 도커 설치 방법! 1. 최초 설정 마법사 (feat. 맥미니 + 클로드)

2026.05.31 - [IT/AI 자동화] - 헤르메스(hermes agent) 도커 설치 방법! 2. 도커컴포즈 작성 및 실행 (feat. 맥미니 + 클로드)

헤르메스를 도커형태로 구축했기 때문에 터미널에 다음과 같이 명령어를 입력해 보자
(헤르메스 닥터) docker % docker exec hermes hermes doctor

┌─────────────────────────────────────────────────────────┐
│                 🩺 Hermes Doctor                        │
└─────────────────────────────────────────────────────────┘

◆ Security Advisories
  ✓ No active security advisories

◆ Python Environment
  ✓ Python 3.13.5
  ✓ Virtual environment active
  ✓ Version files consistent (0.15.1)

◆ Required Packages
  ✓ OpenAI SDK
  ✓ Rich (terminal UI)
  ✓ python-dotenv
  ✓ PyYAML
  ✓ HTTPX
  ✓ Croniter (cron expressions) (optional)
  ✓ python-telegram-bot (optional)
  ✓ discord.py (optional)

◆ Configuration Files
  ✓ ~/./.env file exists
  ✓ API key or custom endpoint configured
  ✓ ~/./config.yaml exists
  ✓ Config version up to date (v24)

◆ 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)
    → No Codex credentials stored. Run `hermes auth` to authenticate.
    → codex CLI not installed (optional — only required to import tokens from an existing Codex CLI login)
  ⚠ Google Gemini OAuth (not logged in)
  ⚠ MiniMax OAuth (not logged in)
  ⚠ xAI OAuth (not logged in)
    → No xAI OAuth credentials stored. Select xAI Grok OAuth (SuperGrok / Premium+) in `hermes model`.

◆ Directory Structure
  ✓ ~/. directory exists
  ✓ ~/./cron/ exists
  ✓ ~/./sessions/ exists
  ✓ ~/./logs/ exists
  ✓ ~/./skills/ exists
  ✓ ~/./memories/ exists
  ✓ ~/./SOUL.md exists (persona configured)
  ✓ ~/./memories/ directory exists
  ✓ MEMORY.md exists (552 chars)
  ✓ USER.md exists (1349 chars)
  ✓ ~/./state.db exists (14 sessions)

◆ s6 Supervision
  ✓ main-hermes: up
    → dashboard: down (expected if not enabled via env)
  ✓ Per-profile gateways: 1/1 supervised up (default)

◆ Command Installation
  ✓ Venv entry point exists (.venv/bin/hermes)
  ✓ ~/.local/bin/hermes → correct target

◆ External Tools
  ✓ git
  ✓ ripgrep (rg) (faster file search)
    → Running inside a container — using local terminal backend (docker-in-docker is not configured by default)
  ✓ docker (optional)
  ✓ Node.js
  ✓ agent-browser (Node.js) (browser automation)
  ✓ Playwright Chromium (browser engine)
  ✓ Browser tools (agent-browser) deps (no known vulnerabilities)

◆ API Connectivity
  ⚠ OpenRouter API (not configured)                                   
  ✓ Anthropic API
  ✓ gemini              

◆ Tool Availability
  ✓ browser
  ✓ clarify
  ✓ code_execution
  ✓ cronjob
  ✓ terminal
  ✓ delegation
  ✓ file
  ✓ memory
  ✓ session_search
  ✓ skills
  ✓ todo
  ✓ tts
  ✓ vision
  ✓ video
  ✓ kanban (runtime-gated; loaded only for dispatcher-spawned workers)
  ⚠ browser-cdp (system dependency not met)
  ⚠ computer_use (system dependency not met)
  ⚠ discord (missing DISCORD_BOT_TOKEN)
  ⚠ discord_admin (missing DISCORD_BOT_TOKEN)
  ⚠ feishu_doc (system dependency not met)
  ⚠ feishu_drive (system dependency not met)
  ⚠ homeassistant (system dependency not met)
  ⚠ image_gen (system dependency not met)
  ⚠ moa (missing OPENROUTER_API_KEY)
  ⚠ messaging (system dependency not met)
  ⚠ video_gen (system dependency not met)
  ⚠ web (missing EXA_API_KEY, PARALLEL_API_KEY, TAVILY_API_KEY, FIRECRAWL_API_KEY, FIRECRAWL_API_URL, FIRECRAWL_GATEWAY_URL, TOOL_GATEWAY_DOMAIN, TOOL_GATEWAY_SCHEME, TOOL_GATEWAY_USER_TOKEN)
  ⚠ x_search (missing XAI_API_KEY)
  ⚠ hermes-yuanbao (system dependency not met)
  ⚠ spotify (system dependency not met)

◆ Skills Hub
  ⚠ Skills Hub directory not initialized (run: hermes skills list)
  ⚠ No GITHUB_TOKEN (60 req/hr rate limit — set in ~/./.env for better rates)

◆ Memory Provider
  ✓ Built-in memory active (no external provider configured — this is fine)

────────────────────────────────────────────────────────────
  Found 1 issue(s) to address:

  1. Run 'hermes setup' to configure missing API keys for full tool access

  Tip: run 'hermes doctor --fix' to auto-fix what's possible.

◆ Tool Availability 항목에 보면
  ⚠ web (missing EXA_API_KEY, PARALLEL_API_KEY, TAVILY_API_KEY, FIRECRAWL_API_KEY, FIRECRAWL_API_URL, FIRECRAWL_GATEWAY_URL, TOOL_GATEWAY_DOMAIN, TOOL_GATEWAY_SCHEME, TOOL_GATEWAY_USER_TOKEN)

웹 검색이 활성화 되지 않았다고 나온다.
그렇기 때문에 내 헤르메스는 웹검색을 할 수 없는 바보라는 소리..

자 이제 활성화를 해서 신문물을 접하게 해주자
일반적으로 많이 사용하는 tavily(https://app.tavily.com/home)에 들어가서 로그인을 해주면
바로 API를 뽑아주는데 복사!

tavily API 키 이미지

복사한 API키를 터미널에 다음과 같이 입력하면 된다.

docker % docker exec -it hermes sh -c 'echo "TAVILY_API_KEY=복사한API키입력" >> /opt/data/.env'

확인은 어떻게 하느냐? 다시 doctor를 실행하면

docker exec hermes hermes doctor

web이 활성화 된 것을 볼 수 있다.

◆ Tool Availability
  ✓ browser
  ✓ clarify
  ✓ code_execution
  ✓ cronjob
  ✓ terminal
  ✓ delegation
  ✓ file
  ✓ memory
  ✓ session_search
  ✓ skills
  ✓ todo
  ✓ tts
  ✓ vision
  ✓ video
  ✓ web
  ✓ kanban (runtime-gated; loaded only for dispatcher-spawned workers)

테스트 해보는 방법

docker exec -it hermes hermes chat -q "오늘 비트코인  가격을 웹에서 검색해서 알려줘"

Query: 오늘 비트코인 가격을 웹에서 검색해서 알려줘
Initializing agent...
────────────────────────────────────────

  ┊ 🔍 preparing web_search…
  ┊ 🔍 search    오늘 비트코인 가격  1.3s

╭─ ⚕ Hermes ───────────────────────────────────────────────────────────────────╮
    현재 비트코인 가격은 Investing.com 기준으로 약 $69,682.9이며, 알파스퀘어에서는 102,091,000 KRW로 확인됩니다. MetaMask에 따르면 24시간 변동률은 -3.33%로, 최근 $75,000 수준 아래로 하락했습니다.
╰──────────────────────────────────────────────────────────────────────────────╯

한번 웹검색을 했더니 USAGE가 1로 올라갔고 한번 더 물어보니까 USAGE가 2가 됐다
무료로 1000번까지 사용할 수 있는 개념인거 같다. 충분함

Tvily API Platform 캡쳐 이미지

그런데 작은 문제가 생겼다.
터미널에서는 웹검색을 잘 하는데 텔레그램에 붙여놓은 헤르메스봇은

"웹검색 기능 활성화 된거지?"라는 질문에 웹 검색 기능이 활성화 된 것이 아니라고 한다...
해결방법은!?

> 나:
웹검색 기능 활성화 된거지?

> 헤르메스봇:
아니요, 웹 검색 기능이 활성화된 것이 아닙니다.

이전에 제가 web_search 도구가 없다고 보고했고, browser_navigate 도구마저 "Chrome not found" 오류로 사용할 수 없음을 확인했습니다.

> 나:
Tavily 키를 발급받아서 검색을 실행했는데 무슨소리야

> 헤르메스봇:
귀하께서 Tavily 키를 발급받아 검색을 실행하셨다는 말씀은 이해했습니다. 하지만 이는 귀하의 환경에서 이루어진 작업이며, 저에게 직접 웹 검색 기능이 연동되어 활성화되었다는 의미는 아닙니다.

> 나:
web_search 도구를 호출해서 [검색어]를 검색해줘. 도구 이름은 web_search이고 너에게 등록되어 있어.

> 헤르메스봇:
알겠습니다. 귀하의 지시에 따라 web_search 도구를 호출하여 "AI 모델 단가 비교"를 검색하겠습니다. 제 환경에 web_search 도구가 등록되어 있다고 말씀하셨으니, 다시 시도해 보겠습니다.

> 헤르메스봇:
🔍 web_search: "AI 모델 단가 비교"

그냥 텔레그램의 헤르메스봇에 /renew 명령어로 초기화 해주자

Tool 설정 후 renew가 진리..

이렇게 헤르메스와 조금씩 친해져간다.