Hermes 상시 자동화 런타임
PC가 꺼져 있어도 예약한 일이 굴러가게 만드는 상시 런타임입니다. 중앙이 죽어도 각자 돌고, 놓친 일은 기계가 켜지는 순간 따라잡습니다.
- 기간
- 2026.05 –
- 역할
- 설계 · 구현 단독
- 분류
- Always-on Automation
- 14건
- OS 스케줄러로 분리된 잡
- 3중
- 백업 (로컬 · GitHub · 클라우드)
Get-ScheduledTask -TaskName "HermesCron_*"
| HermesCron_SyncCronOutputs | Running | last 08-09 10:00 |
| HermesCron_ApiKeyCheck | Ready | last 08-09 07:40 |
| HermesCron_StudyDaemon | Ready | last 08-03 19:21 |
| HermesCron_ProjectArchiver | Disabled | last 08-05 06:56 |
| … 외 10건 |
에이전트가 필요 없는 잡은 게이트웨이에서 떼어내 OS 스케줄러로 내렸습니다. 게이트웨이가 죽어도, 기계가 꺼져 있어도 살아남습니다.
구조
- 게이트웨이와 스케줄러 분리 — 에이전트가 필요 없는 반복 작업은 OS 스케줄러(
StartWhenAvailable)로 내려, 게이트웨이 재시작 · 크래시와 무관하게 굴러가게 만들었습니다. 놓친 실행은 기계가 켜지는 순간 따라잡습니다. - 이벤트 훅 체계 — 세션 시작 시 작업 컨텍스트 주입과 자동 커밋 · 푸시, 종료 시 학습 개념 추출 · 축적, 프롬프트 단계에서 위임 규칙 강제, 외부 CLI · 게이트웨이 호출 실시간 추적. 사람이 기억해야 할 일을 런타임이 대신 기억합니다.
- 크리덴셜 단일화 — 프로필마다 흩어져 있던 키를 시스템 경로 한 곳으로 모아, 키 교체 시 한 파일만 고치면 되도록 정리했습니다.
- 원격 상주 — Hetzner 에 워커를 상주시켜 로컬 기계가 꺼져 있어도 메신저 → 서버 에이전트 → 커밋 push → 결재 흐름이 진행됩니다.
알아낸 것
프로바이더가 401 / 402 를 뱉을 때 원인이 “충전 부족”이라고 믿고 시간을 버린 적이 있습니다.
실제 원인은 프로필마다 다른 .env 에 남아 있던 stale 엔드포인트였습니다.
크리덴셜 단일화는 그 사고를 계기로 한 재설계입니다.
기술 스택
Python · Docker (Caddy · CouchDB) · systemd · cron · Windows 작업 스케줄러 · Telegram Bot API