virtual-insanity
← 리포트 목록

Hermes 신규 collector cron 등록 검증

2026-04-16 new [hermes, cron, dart, edgar, twitter, fundamental, verify]

결론

DART / EDGAR / Twitter collector를 Hermes shell-job으로 정식 등록했고, 세 job 모두 수동 실행 1회 검증을 통과했다.

  • DART: 06:00 KST
  • EDGAR: 06:10 KST
  • Twitter: 06:20 KST
  • 모두 cwd=/Users/ron/.hermes/workspace
  • 2026-04-17 다음 실행 시각 확정

A/C가 만든 dart_edgar_disclosure_collector.py를 확인한 뒤, DART와 EDGAR를 따로 스케줄링할 수 있도록 --source {all,dart,edgar} 옵션만 최소 추가했다.

등록된 active job

job id schedule cwd command next_run manual run
ocFUND-dart-disclosure-collector 0 6 * * * /Users/ron/.hermes/workspace dart_edgar_disclosure_collector.py --source dart --days 1 2026-04-17T06:00:00+09:00 OK
ocFUND-edgar-disclosure-collector 10 6 * * * /Users/ron/.hermes/workspace dart_edgar_disclosure_collector.py --source edgar --days 1 2026-04-17T06:10:00+09:00 OK
ocTC-twitter-collector 20 6 * * * /Users/ron/.hermes/workspace python3.13 twitter_collector.py --sync-following 2026-04-17T06:20:00+09:00 OK

수동 실행 결과

job last_run_at status 산출물
DART 2026-04-16T10:12:53.667978+09:00 ok memory/dart/latest.json, status ok, 466건
EDGAR 2026-04-16T10:13:13.032998+09:00 ok memory/edgar/latest.json, status ok, 10건
Twitter 2026-04-16T10:32:56.905514+09:00 ok memory/twitter-collector/reports/report-2026-04-16-1032.md, 146명 / 421개 트윗

산출물 샘플

DART 최신:

{
  "status": "ok",
  "generated_at": "2026-04-16T10:12:51+09:00",
  "item_count": 466,
  "sample": "20260416 루멘스 조회공시요구(현저한시황변동)에대한답변(중요정보없음)"
}

EDGAR 최신:

{
  "status": "ok",
  "generated_at": "2026-04-16T10:13:04+09:00",
  "item_count": 10,
  "sample": "2026-04-15 STNG 6-K Scorpio Tankers"
}

Twitter 최신:

2026-04-16 10:32 KST
수집: 146명 | 421개 트윗
주요 키워드: 경제, 투자, 미국, 세금, 협력, 전쟁, 주식 ...

변경 파일

  • /Users/ron/.hermes/workspace/scripts/pipeline/dart_edgar_disclosure_collector.py
  • --source all|dart|edgar 옵션 추가
  • DART만 실행 시 memory/dart/latest.json만 갱신
  • EDGAR만 실행 시 memory/edgar/latest.json만 갱신
  • /Users/ron/.hermes/cron/jobs.json
  • DART/EDGAR split job 추가
  • Twitter job을 06:20 KST로 정렬
  • 기존 combined DART+EDGAR 06:20 job은 split job으로 대체되어 pause 처리

백업

  • /Users/ron/.hermes/cron/jobs.json.bak-new-cron-registration-20260416-100037
  • /Users/ron/.hermes/cron/jobs.json.bak-new-cron-registration-reconcile-20260416-101228
  • /Users/ron/.hermes/cron/jobs.json.bak-new-cron-registration-finaltwitter-20260416-103318
  • /Users/ron/.hermes/workspace/scripts/pipeline/dart_edgar_disclosure_collector.py.bak-cron-registration-20260416-101101

정리한 중복 job

삭제하지 않고 pause 처리했다.

job id 처리 이유
ocFUND-dart-edgar-disclosure-collector paused DART 06:00 / EDGAR 06:10 split job으로 대체
fundamental-dart-financials-collector paused 초기 후보였으나 요청 대상은 disclosure collector였음
fundamental-edgar-financials-collector paused 초기 후보였으나 요청 대상은 disclosure collector였음
fundamental-twitter-collector paused python3.13 기반 ocTC-twitter-collector로 대체

운영 상태 메모

  • launchctl print gui/501/ai.hermes.gateway: state = running, pid = 45054
  • gateway.log: Cron ticker started (interval=60s) 확인
  • /Users/ron/.hermes/cron/.tick.lock: 2026-04-16 10:34:45 KST 갱신 확인
  • 단, hermes cron status CLI는 여전히 Gateway is not running으로 표시하고 127.0.0.1:18789/v1/health는 connection refused였다. launchd gateway/ticker는 살아 있으나 HTTP API health 판정은 별도 잔존 이슈로 보인다.

검증 커맨드 요약

python3 -m py_compile /Users/ron/.hermes/workspace/scripts/pipeline/dart_edgar_disclosure_collector.py
cd /Users/ron/.hermes/hermes-agent
venv/bin/python -m hermes_cli.main cron run ocFUND-dart-disclosure-collector && venv/bin/python -m hermes_cli.main cron tick
venv/bin/python -m hermes_cli.main cron run ocFUND-edgar-disclosure-collector && venv/bin/python -m hermes_cli.main cron tick
venv/bin/python -m hermes_cli.main cron run ocTC-twitter-collector && venv/bin/python -m hermes_cli.main cron tick
venv/bin/python -m hermes_cli.main cron list

자체평가

  • 정확성: 4.6/5 — 요청한 3개 collector 등록, 수동 실행, next_run 확인 완료. 다만 Hermes CLI health 표시는 별도 이슈로 남음.
  • 완성도: 4.6/5 — active job은 의도대로 정리됨. 중복 후보는 삭제 대신 pause 처리.
  • 검증: 4.7/5 — 세 job 모두 Hermes tick 수동 실행으로 last_status=ok 확인, 산출물 확인.
  • 최소 변경: 4.4/5 — DART/EDGAR split을 위해 collector에 source 옵션만 추가. 초기 후보 job 정리 과정이 있어 감점.

종합: 4.6/5