Knowledge 목록으로
Source URL 유지 · Knowledge projection
Hermes Agent 웹 검색이 차단될 때 — SearXNG로 무료 무제한 검색 붙이기 (DGX GB10 + Tailscale Funnel) — 대표 이미지

Hermes Agent 웹 검색이 차단될 때 — SearXNG로 무료 무제한 검색 붙이기 (DGX GB10 + Tailscale Funnel)

2026년 4월 25일업데이트 2026년 9월 7일7
작성 DevSnack Lab원문·측정 조건·검수 범위는 본문에 기록
19
튜토리얼AI 에이전트Hermes Agent
SEO meta description: Hermes Agent 24가지 내장 도구와 활용법. 웹 검색, 파일 편집, 이미지 생성 등 실제 사용 예제.

왜 Hermes Agent 웹 검색이 막히는가

⚠️ 실제로 겪었던 이야기

며칠 전까지만 해도 Hermes Agent가 웹 검색을 하다가 "검색 결과를 가져올 수 없습니다"라는 메시지만 반복해서 뱉어내는 바람에 거의 3시간을 허비했다. Firecrawl의 무료 티어는 하루 500회로 금방 바닥나고, Tavily도 유료 전환을 요구했다. "에이전트한테 검색 한 번 시키는데 결제까지 해야 하나?" 싶어서 직접 해결하기로 마음먹었다. Reddit r/hermesagent에서 SearXNG 이야기를 보고 "이거다!" 싶었다. 직접 설치해보니 생각보다 간단했는데, Docker Compose 파일이 최신 버전과 맞지 않아서 한 번 꼬이긴 했다. 그래도 한 번 세팅해두니 그 이후로 검색 차단 문제는 완전히 해결되었다.

Hermes Agent는 Nous Research가 만든 오픈소스 자율형 AI 에이전트다. 47개 이상의 빌트인 도구 중 web_search로 웹 검색이 가능하지만, 실전에서 잘 막힌다.

Hermes의 web_search는 현재 Firecrawl · Tavily · Exa · Parallel 네 가지 백엔드만 지원한다. 전부 유료 API 키가 필요하고, 무료 티어도 금방 소진된다. 웹사이트들이 봇 트래픽을 적극 차단하기 때문에, 에이전트가 검색 결과를 열어보지 못하고 루프에 빠지는 경우가 많다.

2026년 4월 24일 r/hermesagent에서도 동일한 문제가 화제였고, 가장 많이 추천된 해결책이 SearXNG였다.


SearXNG란? — 무료 · 무제한 · 셀프호스팅 메타검색 엔진

SearXNG는 오픈소스 메타검색 엔진이다.

항목내용
비용완전 무료, MIT 라이선스
API 키불필요
검색 엔진Google · Bing · DuckDuckGo 등 70개+ 통합
설치Docker Compose
IP 차단셀프호스팅이므로 문제 없음
사용량 제한없음 (rate limiter 직접 제어)
Open WebUI공식 지원 검색 백엔드

Step 1 — SearXNG Docker 설치 (2026년 4월 기준 새 공식 방법)

ℹ️ 참고: 기존 searxng/searxng-docker 리포는 2026년 3월 28일 아카이브되었다. 이제는 SearXNG 메인 리포(searxng/searxng)의 container/ 폴더에서 Compose 템플릿을 직접 받아서 사용한다. 공식 문서 참고.

1-1. 폴더 생성 및 공식 템플릿 다운로드

# 작업 폴더 생성
mkdir -p [local path]
cd [local path]

# 공식 docker-compose.yml + .env.example 다운로드
curl -fsSL \
  -O https://raw.githubusercontent.com/searxng/searxng/master/container/docker-compose.yml \
  -O https://raw.githubusercontent.com/searxng/searxng/master/container/.env.example

# .env 파일 생성
cp .env.example .env
Hermes Agent SearXNG 설치 및 Tailscale Funnel 설정 과정 터미널 화면

▲ Searxng Terminal

1-2. 포트 설정

Open WebUI가 8080을 쓰고 있다면, SearXNG는 8888로 변경한다.

# .env 파일에 포트 및 바인딩 추가
echo "SEARXNG_PORT=8888" >> .env
echo "SEARXNG_HOST=0.0.0.0" >> .env

1-3. 첫 기동으로 settings.yml 자동 생성

docker compose up -d && sleep 15 && docker compose down

1-4. JSON 포맷 추가 (필수!)

sed -i 's/- html/- html\n    - json/' core-config/settings.yml
⚠️ 주의: settings.ymljson 포맷을 추가하지 않으면 Open WebUI와 MCP 모두에서 403 Forbidden 에러가 발생한다.

1-5. Limiter 비활성화 (로컬 전용)

cat > core-config/limiter.toml << 'EOF'
[botdetection.ip_limit]
link_token = false

[botdetection.ip_lists]
block_ip = []
pass_ip = []
EOF

1-6. settings.yml 추가 설정 확인

core-config/settings.yml을 열어서 다음 항목을 확인하거나 수정한다.

search:
  formats:
    - html
    - json          # ← 이게 있는지 확인

server:
  limiter: false    # ← rate limiter 끄기

redis:
  url: redis://searxng-valkey:6379/0   # ← 새 Compose에서는 컨테이너 이름이 searxng-valkey

1-7. 시작 및 확인

docker compose up -d

# JSON 응답 확인
curl "http://[internal endpoint]/search?q=test&format=json"

results 배열이 포함된 JSON이 출력되면 설치 완료다.


Step 2 — Hermes Agent에 SearXNG 연결 (MCP 방식)

Hermes Agent는 MCP를 네이티브 지원한다. SearXNG용 MCP 서버인 MCP-searxng를 연결하면, Hermes가 web_search 대신 SearXNG를 자율적으로 사용한다.

2-1. uvx로 간편 설정 (권장)

[local path]에 추가:

mcp_servers:
  searxng:
    command: "uvx"
    args: ["mcp-searxng"]
    env:
      SEARXNG_URL: "http://[internal endpoint]"

2-2. git clone 방식 (uvx가 없는 경우)

cd ~
git clone https://github.com/SecretiveShell/MCP-searxng.git
cd MCP-searxng
uv pip install -e .

[local path]:

mcp_servers:
  searxng:
    command: "uv"
    args:
      - "--project"
      - "/home/사용자/MCP-searxng/"
      - "run"
      - "/home/사용자/MCP-searxng/mcp-searxng/main.py"
    env:
      SEARXNG_URL: "http://[internal endpoint]"

2-3. 확인

hermes chat

Hermes 시작 시 mcp_searxng_search 도구가 자동 등록된다.


Step 3 — Open WebUI에서도 SearXNG 연동 (병행 추천)

Hermes의 MCP 경로와 별도로, Open WebUI 자체 Web Search에도 SearXNG를 붙이면 두 가지 독립적인 검색 경로가 생긴다.

경로동작트리거
MCP 경로Hermes Agent가 자율 판단해서 MCP SearXNG 호출에이전트 자동
Open WebUI 경로검색 결과를 프롬프트에 직접 주입사용자가 Web Search 토글 ON

Open WebUI 설정

  1. Open WebUI 로그인
  2. Admin PanelSettingsWeb Search
  3. Enable Web Search: ON
  4. Web Search Engine: searxng
  5. Searxng Query URL: http://host.docker.internal:8888/search?q=<query>
  6. Search Result Count: 5~10
  7. Save

Step 3.5 — Hermes Agent를 Open WebUI에 연결 (아직 안 했다면)

이미 연결되어 있다면 건너뛰어도 된다.

Hermes 쪽

[local path]에 추가:

API_SERVER_ENABLED=true
API_SERVER_KEY=my-secret-key-12345
API_SERVER_PORT=8642
tmux new -s hermes
hermes gateway

Open WebUI 쪽

  1. Admin SettingsConnectionsOpenAI
  2. + Add Connection
  3. URL: http://host.docker.internal:8642/v1 (끝에 /v1 필수)
  4. API Key: my-secret-key-12345
  5. 체크마크 → Save

Step 4 — Tailscale Funnel로 외부 접속

Tailscale Funnel이 이미 설치되어 있다면 한 줄이면 된다.

4-1. Funnel 활성화

# Open WebUI 포트에 맞춰서:
sudo tailscale funnel --bg https / http://localhost:3000

# 또는 8080이면:
sudo tailscale funnel --bg https / http://[internal endpoint]

4-2. URL 확인

tailscale funnel status

4-3. Funnel vs Serve

기능FunnelServe
접속 범위인터넷 전체tailnet 내 기기만
상대방 Tailscale불필요필요
HTTPS 자동
IP 노출안 됨안 됨
보안중간높음
대역폭제한 있음P2P 직접
포트443 / 8443 / 10000만제한 없음
# 혼자만 쓴다면 Serve가 더 안전
sudo tailscale serve --bg https / http://localhost:3000

4-4. Funnel 끄기

sudo tailscale funnel https / off
🔒 Funnel 사용 시: Open WebUI Admin Panel에서 회원가입(Sign Up)을 반드시 비활성화하라.

전체 아키텍처

[외부 브라우저 / 모바일]
        │
        ▼
[Tailscale Funnel]  https://my-dgx.xxx.ts.net
        │  암호화 터널 (TLS)
        ▼
┌─── NVIDIA DGX GB10 (128GB 통합 메모리) ────────────────┐
│                                                         │
│   Open WebUI (포트 3000/8080)                           │
│     ├── Hermes Agent API (포트 8642)                    │
│     │     ├── 47+ 빌트인 도구                           │
│     │     ├── MCP-SearXNG ──→ SearXNG (포트 8888)      │
│     │     └── 로컬 LLM (Ollama / vLLM)                 │
│     │                                                   │
│     └── Open WebUI Web Search ──→ SearXNG (포트 8888)  │
│                                                         │
│   SearXNG Docker (searxng-core:8888 + searxng-valkey)  │
│     └── Google · Bing · DuckDuckGo 등 70+ 메타검색     │
│                                                         │
└─────────────────────────────────────────────────────────┘

자주 발생하는 문제와 해결

증상원인해결
SearXNG 403 에러 settings.ymljson 포맷 누락 core-config/settings.yml- json 추가 후 재시작
MCP 도구가 Hermes에 안 잡힘 uvx 또는 uv 미설치 curl -LsSf https://astral.sh/uv/install.sh | sh
Hermes → SearXNG 연결 실패 Docker 네트워크 격리 SEARXNG_URLhttp://호스트IP:8888로 변경
Valkey 연결 에러 (SearXNG 로그) redis URL 호스트명 불일치 settings.ymlredis.urlredis://searxng-valkey:6379/0으로 수정
Tailscale Funnel 안 됨 MagicDNS 미활성화 Admin Console → DNS → MagicDNS ON
Funnel 포트 거부 허용 포트 아님 443, 8443, 10000만 가능
Open WebUI 모델 안 보임 URL에 /v1 누락 http://localhost:8642/v1
Hermes gateway 끊김 터미널 세션 종료 tmux 또는 systemd 서비스 등록

핵심 요약

Hermes Agent의 기본 web_search는 유료 API 의존 + 봇 차단에 취약하다. SearXNG를 셀프호스팅해서 MCP로 연결하면 무료·무제한·차단 없는 검색이 가능해진다. Open WebUI 레벨에서도 동시 연동하면 두 가지 경로로 활용할 수 있다. 외부 접속은 Tailscale Funnel 한 줄, 보안 강화는 Tailscale Serve로. 전체 스택 비용 0원.

📌 2026년 4월 기준: 기존 searxng/searxng-docker 리포는 아카이브되었다. 새 설치는 SearXNG 메인 리포의 container/ 폴더에서 Compose 템플릿을 받아서 사용한다. 캐시 DB도 Redis에서 Valkey로 변경되었다.

※ 이 글은 설명을 돕기 위한 실제 터미널 출력 화면과 설정 파일 예시를 포함하고 있습니다. 곧 스크린샷도 추가할 예정입니다.


참고 링크


이 글은 2026년 4월 25일 기준으로 작성되었습니다. searxng-docker 리포 아카이브(2026.03.28) 이후 변경된 새 공식 설치법을 반영했습니다.



📖 관련 글