2026-06-08 — Hermes cron no-agent watchdogs and delivery reliability
무엇을 학습
오늘의 핵심 주제는 **Hermes cron에서 LLM이 필요 없는 감시/알림 작업은 `no_agent` script-only job으로 분리하는 운영 패턴**이다. 공식 로컬 문서 기준으로 Hermes cron은 일반 LLM job과 `no-agent mode`를 모두 지원한다. `no-agent`는 스케줄러가 스크립트를 실행하고, stdout이 있으면 그대로 delivery router로…
어디에 정리
02_Code_Senior/Daily/2026-06-08.md
앞으로 어떻게 쓸 것인가
브리프·체크리스트·자동화 패턴에 즉시 참조
2026-06-08 — Hermes cron no-agent watchdogs and delivery reliability
핵심 요약
- 오늘의 핵심 주제는 Hermes cron에서 LLM이 필요 없는 감시/알림 작업은
no_agentscript-only job으로 분리하는 운영 패턴이다. - 공식 로컬 문서 기준으로 Hermes cron은 일반 LLM job과
no-agent mode를 모두 지원한다.no-agent는 스케줄러가 스크립트를 실행하고, stdout이 있으면 그대로 delivery router로 보낸다. - 실무적으로는 “서버 상태가 임계값을 넘으면 알림”, “CI 실패 시 로그 일부 전달”, “heartbeat/health check”처럼 메시지가 스크립트 출력으로 확정되는 작업은 LLM cron보다
no_agent=True가 더 안정적이다.
왜 중요한가
- Phillip의 서버/프로젝트 운영에서는 야간·새벽 시간대에 토큰 비용, OAuth/provider 장애, agent loop timeout 없이 감시가 돌아가는 것이 중요하다.
- LLM cron은 요약·판단·보고서 생성에는 강하지만, 단순 watchdog에 쓰면 다음 리스크가 생긴다.
- provider/OAuth 문제 때문에 감시 자체가 실패할 수 있음
- tool loop 또는 모델 지연으로 알림이 늦을 수 있음
- “정상일 때 조용히”라는 요구가 prompt 품질에 좌우될 수 있음
no-agent는 script exit/stdout 계약으로 동작하므로 idempotent하고 검증 가능한 운영 단위가 된다.
실무 적용
- 기본 분류:
- no-agent cron: RAM/disk/GPU/port/HTTP status/CI artifact 존재 여부처럼 규칙이 명확한 알림
- LLM cron: 뉴스 선별, 장애 로그 원인 요약, 여러 소스의 우선순위 판단, 사람에게 읽기 좋은 briefing 작성
- 생성/운영 흐름:
- 스크립트는
~/.hermes/scripts/아래에 둔다. - 정상 상태에서는 stdout을 비운다.
- 알림이 필요한 상태에서만 짧고 actionable한 stdout을 출력한다.
- non-zero exit와 timeout은 오류 알림으로 취급되므로 의도치 않은 실패가 묻히지 않는다.
hermes cron list와hermes cron run <job_id>로 수동 검증한다.
- 스크립트는
- delivery target은
telegram,telegram:<chat_id>,discord:#ops,local등으로 명시한다. 사용자 1명에게 반드시 도달해야 하는 작업은origin보다 explicit target이 낫다.
구현/운영 패턴
# 1) script-only watchdog: stdout이 비어 있으면 silent tick
# ~/.hermes/scripts/disk-watchdog.sh
#!/usr/bin/env bash
THRESHOLD=90
df -h / 2>/dev/null | awk -v t="$THRESHOLD" '
NR > 1 && $5+0 >= t {
printf "⚠ Disk %s full on %s (%s)\n", $5, $6, $1
}
'
# 2) schedule
hermes cron create "every 10m" \
--no-agent \
--script disk-watchdog.sh \
--deliver telegram \
--name "disk-watchdog"
# 3) verify
hermes cron list
hermes cron run disk-watchdog
운영 계약:
- Empty stdout = 정상/무전송
- Non-empty stdout = 그대로 전송
- Non-zero exit = 오류 알림
- Script timeout = 오류 알림
- LLM 판단이 필요하면 no-agent가 아니라 agent cron으로 전환
리스크/검증 필요
- Web search/extract는 오늘 Tavily 432 오류로 실패했다. 이 노트는
/usr/local/lib/hermes-agent/website/docs/...의 로컬 공식 문서와 loaded Hermes skill 내용을 근거로 작성했다. - 현재 설치된 Hermes 버전/branch가 배포 문서와 완전히 동일한지는 별도
git status,hermes --version확인이 필요하다. - 공식 문서 일부는 “cron jobs use whatever provider
hermes modelselected”라고 설명하지만, 운영 메모에는 cron-specific provider/model override caveat가 있다. Phillip 환경에서는 unattended LLM cron에 job-level provider/model override를 우선 검토해야 한다. - no-agent 스크립트에는 secrets를 출력하지 않는다. API 호출이 필요하면
.env사용, 로그/전송 stdout에는 redacted 요약만 남긴다.
다음 학습 질문
- Hermes cron의
scriptpre-check와wakeAgent: falsegate를 LLM cron 앞단 필터로 쓰는 최적 패턴은 무엇인가? - profile-pinned cron과 workdir-pinned cron이 sequential execution으로 제한될 때, 여러 운영 job을 어떻게 stagger할 것인가?
- no-agent watchdog 결과를 Obsidian/LLM Wiki에 누적할 때, raw metric dump와 curated incident summary를 어떻게 분리할 것인가?
관련 링크
- [[hermes-gateway-cron-systemd-guardrails]]
- Hermes Cron docs: https://hermes-agent.nousresearch.com/docs/user-guide/features/cron
- Hermes Cron troubleshooting: https://hermes-agent.nousresearch.com/docs/guides/cron-troubleshooting
- Hermes script-only cron: https://hermes-agent.nousresearch.com/docs/guides/cron-script-only
- Local source read:
/usr/local/lib/hermes-agent/website/docs/user-guide/features/cron.md - Local source read:
/usr/local/lib/hermes-agent/website/docs/guides/cron-troubleshooting.md - Local source read:
/usr/local/lib/hermes-agent/website/docs/guides/cron-script-only.md
Study Room
내일 학습·스터디 큐
내일 학습 큐가 아직 추출되지 않았습니다.
스터디 대화
코칭뿐 아니라 학습 내용에 대해 에이전트별 토론·스터디 지시를 남기는 공간입니다. 저장된 메시지는 다음 학습 큐 조정의 근거가 됩니다.
아직 스터디 대화가 없습니다.