GCP 인 액션: GCE, Hermes Agent, 그리고 Telegram을 활용한 지속적인 AI 어시스턴트 구축
Source: Dev.to
소개
LINE Bot의 Vertex AI 마이그레이션을 해결한 후, AI 어시스턴트가 보다 능동적이고 장기 기억을 가질 수 있을지 궁금해졌습니다. 저는 NousResearch의 오픈소스 Hermes Agent를 사용했습니다.
일반적인 챗봇과 달리 Hermes는 “숨쉬는 운영 체제”처럼 설계되었습니다: 셸 명령을 실행하고, Python 스크립트를 작성하며, 장기 기억을 관리하고, 다양한 게이트웨이(텔레그램, 디스코드)를 통해 지속적으로 연결됩니다.
24시간 내내 실행되도록 **Google Compute Engine (GCE)**에 배포했습니다. 이 가이드는 처음부터 배포 과정을 문서화하고 최신 Gemini 2.5 Flash 모델을 설정할 때 마주친 함정들을 정리합니다.
전제 조건
| 매개변수 | 설명 |
|---|---|
PROJECT_ID | Google Cloud 프로젝트 ID |
LOCATION | global |
GOOGLE_API_KEY | Google AI Studio의 API 키 |
| Machine type | e2-medium (도구 사용 권장) |
| OS image | Ubuntu 22.04 LTS |
VM 만들기
gcloud compute instances create hermes-agent-vm \
--project=YOUR_PROJECT_ID \
--zone=us-central1-a \
--machine-type=e2-medium \
--image-family=ubuntu-2204-lts \
--image-project=ubuntu-os-cloud \
--boot-disk-size=30GB \
--metadata=startup-script='#!/bin/bash
apt-get update
apt-get install -y git curl python3-pip python3-venv nodejs npm
'
Hermes Agent 설치
인스턴스에 SSH 접속
gcloud compute ssh hermes-agent-vm --zone=us-central1-a
원클릭 설치 프로그램 실행
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
source ~/.bashrc
Hermes 구성
모델 구성
~/.hermes/config.yaml 파일을 만들거나 편집하고 명시적으로 google/ 접두사 없이 Gemini 2.5 Flash 모델을 지정하세요, 예:
provider:
name: gemini
model: gemini-2.5-flash
# auxiliary models (titles, summarization, etc.)
auxiliary:
title: gemini-2.5-flash
summary: gemini-2.5-flash
API 키
API 키와 필요한 환경 변수를 ~/.hermes/.env에 저장하세요:
GOOGLE_API_KEY=YOUR_GOOGLE_API_KEY
지속성을 위한 Systemd 설정
/etc/systemd/system/hermes.service에 Systemd 서비스 파일을 생성합니다:
[Unit]
Description=Hermes Agent Gateway
After=network.target
[Service]
Type=simple
User=root
Environment=HOME=/root
Environment=PYTHONUNBUFFERED=1
ExecStartPre=/usr/bin/pkill -9 -f hermes || true
ExecStart=/usr/local/lib/hermes-agent/venv/bin/hermes gateway run
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
서비스를 활성화하고 시작합니다:
sudo systemctl daemon-reload
sudo systemctl enable hermes
sudo systemctl restart hermes
일반적인 문제 해결
| 증상 | 원인 | 해결 방법 |
|---|---|---|
| 에이전트가 메시지를 읽지만 응답하지 않음 | 모델 식별자 gemini-3-flash-preview(더 이상 사용되지 않음)으로 설정됨 | config.yaml에서 모든 모델 참조를 gemini-2.5-flash로 변경하거나 auxiliary_client.py를 패치하십시오 |
| “404 Model Not Found” 오류 | google/ 접두사 사용(예: google/gemini-2.5-flash) | 짧은 이름 gemini-2.5-flash를 사용하십시오 |
| 서비스 시작 시 “Gateway already running (PID …)” | 이전 Hermes 프로세스가 아직 실행 중임 | Systemd 유닛의 ExecStartPre 라인이 새 프로세스를 시작하기 전에 남아 있는 프로세스를 종료합니다 |
| 로그에 보조 기능(제목 생성 등) 오류가 표시됨 | 기본 보조 모델 식별자가 오래됨 | 위와 같이 config.yaml에 보조 모델을 명시적으로 설정하십시오 |
결론
위 단계들을 따라 하면 전용 Hermes Agent가 GCE에서 안정적으로 실행되며 언제든지 텔레그램을 통해 접근할 수 있습니다. 이 에이전트는 정보를 가져오고, 스크립트를 실행하며, 클라우드 VM에서 장기 메모리를 유지합니다.
핵심 요점
- 모델 식별자는 빠르게 변경됩니다; 항상 공식 문서나 MCP 도구를 통해 정확한 이름을 확인하십시오.
- 짧은 모델 이름(
gemini-2.5-flash)을 사용하면 라우팅 오류를 방지할 수 있습니다. - Systemd는 에이전트가 SSH 연결 끊김을 견디고, 실패 시 자동으로 재시작되도록 보장합니다.
24시간 AI 디지털 복제본을 원한다면, 이 SOP를 따라 자체 지속 가능한 Hermes Agent를 설정하십시오.