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 execdocker 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>