Open WebUI를 기본 인터페이스로 유지하고, Hermes Agent를 AI 에이전트 런타임으로 붙인 뒤, n8n을 실제 자동화 실행 엔진으로 사용하는 구성을 고민해 봅니다.
그 이유는 상용llm 채팅앱의 결과가 가장 좋긴하지만 어느 회사의 채팅앱을 사용하느냐에 따라 내 이전 질문을 백업하거나 그 맥락을 잃어버릴 수 있는 불편함이 있습니다.
내 질문과 기억을 오랫동안 보존하기 위해서 옵시디언 같은 마크다운 편집기를 추천하는 이들도 있고, 저는 오랫동안 ChatBox라는 오픈소스 채팅앱에 API를 연결해서 사용해 왔습니다.
그러다가 최근 linux server에서 open webui를 사용해 보면서 이전과 다른 인터페이스와 다양한 RAG관련 사항이 늘어나면서 충분히 나만의 LLM챗봇으로 사용할 수 있을 것이라는 판단이 생겨 시도해 보려 합니다.
찾아본 결과 추천 구조는 다음과 같습니다.
사용자
↓
Open WebUI
↓
Hermes Agent
↓
n8n
↓
서버 명령 실행 / Docker 관리 / 자동화 워크플로우 / 알림
Open WebUI는 사용자가 대화하는 화면으로 두고, Hermes Agent는 사용자의 요청을 해석하고 필요한 도구를 선택하는 역할을 맡긴다. 그리고 n8n은 실제 명령 실행, API 호출, 백업, 알림, 조건 분기 같은 자동화 작업을 담당하게 하는 방식이다. 에르메스 에이전트를 붙여둘까 n8n과 직접 연결을 할지는 아직 미지수다.
왜 이 구성이 시도해 보려는가?
Open WebUI, Hermes Agent, n8n은 각각 역할이 다르다.
| 구성 요소 | 역할 | 장점 |
|---|---|---|
| Open WebUI | 사용자 인터페이스 | 채팅 UI, 대화 관리, 모델 연결이 편리함 |
| Hermes Agent | AI 에이전트 런타임 | 요청 해석, 작업 계획, 도구 사용, 파일/터미널/웹 작업 가능 |
| n8n | 자동화 실행 엔진 | Webhook, API 연동, 스케줄링, 조건 분기, 실행 로그 관리에 강함 |
하나의 도구가 모든 것을 담당하게 만들 수도 있지만, 그렇게 하면 보안과 유지보수 측면에서 불리해질 수 있다.
특히 AI Agent에게 서버 명령 실행 권한을 직접 많이 주는 것은 위험할 수 있다.
따라서 Hermes Agent는 판단과 계획을 담당하고, 실제 실행은 n8n의 제한된 워크플로우를 통해 수행하는 것이 더 안전하다.
** 하반기에는 OpenClaw를 MS에서 Scout이라는 이름으로 보안을 강화한 상용버전으로 출시한다는데, 나같은 개인사용자에게는 Hermes가 더 가벼운 환경이 아닐까 생각한다.
비교해 본 구성안
1. Open WebUI + n8n
Open WebUI → n8n Webhook → n8n Workflow 실행
가장 단순한 구성이다.
예를 들어 Open WebUI에서 다음처럼 요청한다.
deskmini 서버의 디스크 사용량 확인해줘.
그러면 Open WebUI가 n8n Webhook을 호출하고, n8n이 df -h 같은 명령을 실행한 뒤 결과를 돌려주는 방식이다.
장점
- 구성이 단순하다.
- 안정적이다.
- 보안 통제가 쉽다.
- 허용된 작업만 실행시키기 좋다.
단점
- 복잡한 자연어 요청을 유연하게 처리하기 어렵다.
- AI Agent처럼 여러 단계를 스스로 판단하는 능력은 약하다.
- n8n 워크플로우를 미리 많이 만들어야 한다.
이 방식은 기본형으로 좋지만, AI Agent다운 유연함은 부족하다.
2. Open WebUI + Hermes Agent
Open WebUI → Hermes Agent → 터미널 / 파일 / 웹 검색 / 도구 실행
Open WebUI를 Hermes Agent의 채팅 프론트엔드로 사용하는 방식이다.
Hermes Agent는 OpenAI-compatible API 서버 형태로 동작할 수 있으므로, Open WebUI에서 일반 OpenAI 호환 모델처럼 연결할 수 있다.
장점
- Open WebUI를 그대로 사용할 수 있다.
- Hermes Agent가 실제 에이전트처럼 동작한다.
- 파일 작업, 터미널 접근, 웹 검색, 메모리 기능 등을 활용할 수 있다.
- 자연어 요청을 작업 단위로 분해하기 좋다.
단점
- Hermes Agent에 터미널 권한을 주면 위험할 수 있다.
- 잘못된 명령 실행 가능성이 있다.
- 실행 기록, 승인 절차, 권한 통제는 n8n보다 약할 수 있다.
이 방식은 AI Agent를 체감하기 좋지만, 서버 관리용으로는 보안 설계가 중요하다.
3. Open WebUI + Hermes Agent + n8n
Open WebUI → Hermes Agent → n8n → 실제 작업 실행
가장 추천하는 구성이다.
사용자는 Open WebUI에서 자연어로 요청한다.
deskmini 상태 확인하고, 디스크 사용량이 85% 넘으면 정리 워크플로우 실행해줘.
그러면 Hermes Agent가 요청을 해석하고, n8n의 Webhook을 호출한다.
n8n은 정해진 워크플로우에 따라 서버 상태를 확인하고, 필요한 경우 정리 작업을 실행한다.
장점
- Open WebUI를 그대로 사용할 수 있다.
- Hermes Agent가 요청을 해석하고 작업을 계획한다.
- n8n이 실제 실행을 담당하므로 안전하게 통제할 수 있다.
- 실행 로그와 자동화 이력을 관리하기 쉽다.
- 나중에 백업, 알림, Docker 관리, API 연동 등으로 확장하기 좋다.
단점
- 초기 구성이 조금 복잡하다.
- Hermes Agent와 n8n 사이의 호출 규칙을 설계해야 한다.
- 어떤 작업을 Agent가 직접 하고, 어떤 작업을 n8n에 맡길지 기준이 필요하다.
현재 홈서버나 개인 서버 자동화를 구성한다면 이 방식이 가장 균형이 좋다.
권장 아키텍처
최종적으로 구현해 보려는 구조는 다음과 같다.
Open WebUI
↓
Hermes Agent
↓
n8n Webhook
↓
n8n Workflow
↓
Docker / 서버 명령 / 백업 / 알림 / API 호출
각 역할은 다음처럼 나눈다.
Open WebUI:
- 기본 채팅 인터페이스
- 사용자 접근
- 대화 기록 관리
- 모델 또는 에이전트 선택
Hermes Agent: (Option)
- 사용자 요청 해석
- 작업 계획 수립
- 필요한 도구 선택
- 결과 요약
- n8n 호출
n8n:
- 실제 명령 실행
- Webhook 제공
- 조건 분기
- 승인 절차
- 자동화 로그 기록
- 스케줄링
실행 단계
1단계: Open WebUI와 n8n을 먼저 연결한다
먼저 가장 단순한 구조부터 만든다.
Open WebUI → n8n Webhook → 결과 반환
n8n에서 Webhook Workflow를 만든다.
예시 Webhook:
POST /webhook/deskmini-command
입력 예시는 다음과 같다.
{
"token": "secret-token",
"action": "system_status",
"args": {}
}
응답 예시는 다음과 같다.
{
"ok": true,
"result": {
"disk": "디스크 사용량 결과",
"memory": "메모리 사용량 결과",
"docker": "Docker 컨테이너 상태"
}
}
2단계: n8n에 허용된 action만 만든다
AI가 임의의 명령어를 실행하게 하면 위험하다.
따라서 n8n에서는 미리 허용된 action만 처리하게 해야 한다.
처음에는 조회성 작업부터 시작하는 것이 좋다.
system_status
disk_usage
memory_usage
uptime
docker_ps
openwebui_logs
n8n_logs
backup_status
예를 들어 disk_usage action이 들어오면 n8n은 정해진 명령만 실행한다.
df -h /
memory_usage는 다음처럼 처리할 수 있다.
free -h
docker_ps는 다음처럼 처리할 수 있다.
docker ps
3단계: Hermes Agent를 Open WebUI에 연결한다
Hermes Agent가 OpenAI-compatible API 서버로 동작한다면, Open WebUI에서 일반 OpenAI 호환 API처럼 추가할 수 있다.
예시 구조:
Open WebUI → Hermes Agent API
API 주소 예시는 다음과 비슷할 수 있다.
http://hermes-agent:8642/v1
또는 같은 서버에서 호스트 기준으로 접근한다면 다음과 같을 수 있다.
http://localhost:8642/v1
Docker 환경에서는 네트워크 구성에 따라 주소가 달라질 수 있다.
정확한 주소는 컨테이너 이름, Docker 네트워크, 포트 매핑 상태에 따라 달라지므로 실제 환경에서 확인해야 한다.
4단계: Hermes Agent가 n8n Webhook을 호출하게 한다
Hermes Agent가 직접 서버 명령을 실행하기보다는, n8n Webhook을 호출하도록 구성한다.
예시 흐름:
사용자: deskmini 상태 확인해줘.
↓
Hermes Agent: system_status action 필요하다고 판단
↓
n8n Webhook 호출
↓
n8n이 서버 상태 확인
↓
Hermes Agent가 결과 요약
↓
Open WebUI에 응답
이 방식의 핵심은 Hermes Agent가 직접 아무 명령이나 실행하지 않도록 하는 것이다.
5단계: 위험 작업은 승인 절차를 추가한다
다음 작업들은 바로 실행하면 위험할 수 있다.
restart_openwebui
restart_n8n
cleanup_docker
delete_old_backups
upgrade_containers
reboot_server
이런 작업은 반드시 사용자 확인을 받은 뒤 실행해야 한다.
예시:
사용자: open-webui 재시작해줘.
Hermes Agent:
open-webui 컨테이너를 재시작하면 접속이 잠시 끊길 수 있습니다.
정말 실행할까요?
사용자: 승인.
Hermes Agent → n8n restart_openwebui 호출
예시 사용 시나리오
서버 상태 확인
사용자:
deskmini 상태 확인해줘.
처리 흐름:
Open WebUI
→ Hermes Agent
→ n8n system_status 호출
→ n8n이 디스크, 메모리, Docker 상태 확인
→ Hermes Agent가 결과 요약
응답 예시:
deskmini 상태는 대체로 정상입니다.
디스크 사용량은 62%, 메모리는 48% 사용 중입니다.
Open WebUI와 n8n 컨테이너도 정상 실행 중입니다.
로그 분석
사용자:
open-webui 최근 로그 보고 에러 있는지 확인해줘.
처리 흐름:
Hermes Agent
→ n8n openwebui_logs 호출
→ 로그 수집
→ Hermes Agent가 에러 패턴 분석
→ 결과 요약
조건부 자동화 실행
사용자:
디스크가 85% 넘으면 정리 워크플로우 실행해줘.
처리 흐름:
Hermes Agent
→ n8n disk_usage 호출
→ 사용량 확인
→ 85% 초과 여부 판단
→ 필요하면 cleanup workflow 실행
→ 위험 작업이면 사용자 승인 요청
주의사항
1. AI Agent에게 전체 터미널 권한을 주지 않는다
가장 위험한 구조는 다음과 같다.
사용자 자연어
↓
AI가 bash 명령 생성
↓
서버에서 그대로 실행
이 방식은 피하는 것이 좋다.
대신 다음 구조를 사용한다.
사용자 자연어
↓
Hermes Agent가 action 선택
↓
n8n이 허용된 action인지 확인
↓
정해진 명령만 실행
2. Docker socket 마운트는 신중히 사용한다
Docker 컨테이너에서 호스트의 Docker를 제어하려면 보통 다음과 같은 마운트를 사용한다.
/var/run/docker.sock:/var/run/docker.sock
하지만 이 설정은 매우 강력한 권한을 제공한다.
사실상 호스트 root 권한에 가까운 위험이 생길 수 있다.
처음에는 Docker 제어보다는 로그 조회, 상태 확인 같은 읽기 작업부터 시작하는 것이 좋다.
3. n8n Webhook에는 인증을 넣는다
Webhook URL이 외부에 노출되면 위험하다.
반드시 secret token을 검증하거나, 내부 네트워크에서만 접근하도록 제한해야 한다.
예시 payload:
{
"token": "긴_랜덤_비밀값",
"action": "system_status"
}
n8n에서는 token이 맞지 않으면 실행하지 않도록 한다.
4. 삭제, 정리, 재시작 작업은 확인 후 실행한다
다음과 같은 작업은 자동 실행하지 않는 것이 좋다.
rm -rf
docker system prune -a
docker volume rm
chmod -R
chown -R
shutdown
reboot
이런 작업은 최소한 2단계 승인 절차를 둬야 한다.
최종 권장안
가장 추천하는 방식은 다음과 같다.
Open WebUI는 기본 인터페이스로 유지
Hermes Agent는 AI 에이전트 런타임으로 사용
n8n은 실제 자동화 실행 엔진으로 사용
최종 구조:
Open WebUI
↓
Hermes Agent
↓
n8n
↓
deskmini / Docker / 백업 / 알림 / API 자동화
이 구성이 좋은 이유는 명확하다.
- Open WebUI의 편한 채팅 인터페이스를 그대로 사용할 수 있다.
- Hermes Agent의 자연어 이해와 작업 계획 능력을 활용할 수 있다.
- n8n으로 실제 실행 권한을 안전하게 통제할 수 있다.
- 서버 관리, 백업, 알림, 로그 분석 등으로 확장하기 쉽다.
- Open WebUI를 대체하는 것보다 유지보수가 쉽다.
따라서 처음에는 다음 순서로 진행하는 것이 좋다.
1. Open WebUI와 n8n Webhook 연동
2. n8n에 허용 action 목록 구성
3. Hermes Agent를 Open WebUI에 연결
4. Hermes Agent가 n8n을 호출하도록 설정
5. 조회성 작업부터 테스트
6. 위험 작업은 승인 절차 추가
7. 필요하면 MCP나 n8n API 연동으로 확장
기대치
나만의 에이전트를 만들어 볼 수 있기를!!
0 댓글