Hermes Agent 알려진 이슈
Hermes Issue #16726 — Dashboard API 401 버그
Dashboard SPA가 /api/ 요청 시 모든 엔드포인트에서 401 Unauthorized 반환.
원인: web_server.py auth middleware에서 request.headers.get("X-Hermes-Session-Token")로 헤더를 조회하지만, Starlette(FastAPI의 ASGI 계층)가 모든 HTTP 헤더를 소문자로 변환함. 실제 키는 x-hermes-session-token이므로 조회 실패.
# 버그 발생 코드 (web_server.py)
session_header = request.headers.get("X-Hermes-Session-Token", "")
# → Starlette가 소문자로 변환하므로 None 반환영향:
- Dashboard UI에서 gateway 상태를 못 불러와 “Gateway not running”으로 표시됨
- curl로
x-hermes-session-token(소문자) 헤더를 직접 보내면 정상 응답
참고: https://github.com/nousresearch/hermes-agent/issues/16726
초기 설정 제약
웹 UI(대시보드)만으로는 hermes setup 위저드를 실행할 수 없음.
- CLI/TUI에서
docker exec나docker run -it으로 직접 실행해야 함 - 대시보드의 Config/Keys 탭에서 대부분의 설정이 가능하나, 일부 OAuth 플로우는 CLI 필요
# 컨테이너 내 CLI 접근
docker exec -it hermes-dydp3k-gateway-1 bash
source /opt/hermes/.venv/bin/activate
hermes setup컨테이너 내 hermes PATH 문제
Docker 컨테이너 내부에서 hermes 명령어가 바로 실행되지 않음.
bash: hermes: command not found
원인: Hermes가 /opt/hermes/.venv/bin/에 Python 가상환경으로 설치되어 있지만, 이 경로가 컨테이너의 기본 PATH에 포함되지 않음.
해결:
# 방법 1: 가상환경 활성화
source /opt/hermes/.venv/bin/activate
# 방법 2: 전체 경로 직접 사용
/opt/hermes/.venv/bin/hermes <command>