시간표(Cron)
anchor alias
시간표(Cron)
자연적인 언어 또는 cron 표식을 자동적으로 실행하는 일정 작업. Hermes는 별도의 스케줄/list/remove 도구 대신 작업 스타일 작업으로 단일 cronjob 도구를 통해 cron 관리를 노출합니다.
cron은 지금 할 수 있습니다.
Cron 작업 수:
- 1 샷 또는 재발견 작업
- 일시 중지, 이력서, 편집, 트리거, 그리고 작업을 제거
- 0, 1, 또는 작업에 여러 스킬을 첨부
- 원본 채팅, 로컬 파일, 또는 플랫폼 타겟으로 다시 결과를 전달하세요.
- 정상적인 정적 도구 목록과 함께 신선한 에이전트 세션에서 실행
- 실행 **노 시약 모드 ** — 일정에 스크립트, 그것의 stdout 전달 verbatim, 0 LLM 참여 (no-agent mode 아래))
이 모든 것은 cronjob 도구를 통해 Hermes 자체에 사용할 수 있으므로 일반 언어로 요청하여 작업을 만들고, 일시 중지, 편집 및 제거 할 수 있습니다.
Cron-run 세션은 반복적으로 더 많은 cron 작업을 만들 수 없습니다. Hermes disables cron 관리 도구 내부 cron 실행을 방지 런웨이 스케줄링 루프.
자주 묻는 질문
/cron와 채팅
/cron add 30m "Remind me to check the build"
/cron add "every 2h" "Check server status"
/cron add "every 1h" "Summarize new feed items" --skill blogwatcher
/cron add "every 1h" "Use both skills and combine the result" --skill blogwatcher --skill maps
독립 CLI에서
hermes cron create "every 2h" "Check server status"
hermes cron create "every 1h" "Summarize new feed items" --skill blogwatcher
hermes cron create "every 1h" "Use both skills and combine the result" \
--skill blogwatcher \
--skill maps \
--name "Skill combo"
자연의 대화
Hermes를 일반적으로 묻는:
Every morning at 9am, check Hacker News for AI news and send me a summary on Telegram.
Hermes는 unified cronjob 도구를 내부적으로 사용합니다.
Skill-backed cron 작업
cron 작업은 신속한 실행 전에 하나 이상의 스킬을로드 할 수 있습니다.
단일 기술
cronjob(
action="create",
skill="blogwatcher",
prompt="Check the configured feeds and summarize anything new.",
schedule="0 9 * * *",
name="Morning feeds",
)
다수 기술
스킬은 순서로 적재됩니다. 프롬프트는 그 스킬의 상단에 계층화 된 작업 지시가됩니다.
cronjob(
action="create",
skills=["blogwatcher", "maps"],
prompt="Look for new local events and interesting nearby places, then combine them into one short brief.",
schedule="every 6h",
name="Local brief",
)
전체 기술 텍스트를 크론 프롬프트 자체로 채우지 않고 재사용 가능한 워크플로우를 상속하기 위해 예정된 에이전트를 원할 때 유용합니다.
프로젝트 디렉토리에 작업 실행
Cron 작업 기본적으로 모든 repo에서 detached 실행하기 - 아니 AGENTS.md, CLAUDE.md, 또는 .cursorrules로드, 그리고 터미널 / 파일 / 코드-exec 도구는 어떤 작업 디렉토리에서 시작된 게이트웨이에서 실행. --workdir (CLI) 또는 workdir= (tool call) 을 변경합니다
# Standalone CLI (schedule and prompt are positional)
hermes cron create "every 1d at 09:00" \
"Audit open PRs, summarize CI health, and post to #eng" \
--workdir /home/me/projects/acme
````python
# From a chat, via the cronjob tool
cronjob(
action="create",
schedule="every 1d at 09:00",
workdir="/home/me/projects/acme",
prompt="Audit open PRs, summarize CI health, and post to #eng",
)
``workdir`이 설정된 경우:
- `AGENTS.md`, `CLAUDE.md`, 그리고 `.cursorrules`는 시스템 프롬프트에 주입되어 있습니다 (통합적인 CLI로 동일한 검색 순서)
- `terminal`, `read_file`, `write_file`, `patch`, `search_files` 및 `execute_code` 디렉토리를 모두 사용하여 작업 디렉토리(`TERMINAL_CWD`)
- 이 경로는 존재하지 않는 절대 디렉토리이어야 합니다. - 상대 경로 및 누락 된 디렉토리는 생성 / 업데이트 시간에 거부됩니다
- `--workdir ""` (또는 `workdir=""` 를 통해 도구)를 수정하여 이전 동작을 삭제합니다
:::note[Serialization]
`workdir` 작업은 병렬 풀에없는 스케줄러 진드기에 순차적으로 실행됩니다. 이것은 deliberate입니다 — `TERMINAL_CWD`는 process-global이므로 두 개의 workdir 작업이 동시에 서로의 cwd를 손상시킬 것입니다. Workdir-less 작업은 이전에 병렬로 실행됩니다.
:::
## 편집 작업 \{#editing-jobs}
당신은 삭제하고 변경하려면 작업을 다시 만들 필요가 없습니다.
### 설명 \{#chat}
```bash
/cron edit <job_id> --schedule "every 4h"
/cron edit <job_id> --prompt "Use the revised task"
/cron edit <job_id> --skill blogwatcher --skill maps
/cron edit <job_id> --remove-skill blogwatcher
/cron edit <job_id> --clear-skills
독립 CLI
hermes cron edit <job_id> --schedule "every 4h"
hermes cron edit <job_id> --prompt "Use the revised task"
hermes cron edit <job_id> --skill blogwatcher --skill maps
hermes cron edit <job_id> --add-skill maps
hermes cron edit <job_id> --remove-skill blogwatcher
hermes cron edit <job_id> --clear-skills
참고:
- 반복
--skill작업의 첨부된 스킬 목록을 대체 --add-skill대체하지 않고 기존 목록에 추가--remove-skill는 특정 첨부 스킬을 제거합니다--clear-skills모든 첨부된 스킬을 제거합니다
Lifecycle 활동
Cron 작업은 이제 단지 생성 / 복구보다 전체 수명주기가 있습니다.
설명
/cron list
/cron pause <job_id>
/cron resume <job_id>
/cron run <job_id>
/cron remove <job_id>
독립 CLI
hermes cron list
hermes cron pause <job_id>
hermes cron resume <job_id>
hermes cron run <job_id>
hermes cron remove <job_id>
hermes cron status
hermes cron tick
그들은 무엇을:
pause- 작업을 유지하지만 일정을 중지resume— 작업을 재 활성화하고 다음의 미래 실행을 계산run- 다음 스케줄러 진드기에 작업을 트리거remove- 완전히 삭제
어떻게 작동하나요
**Cron 실행은 게이트웨이 데몬에 의해 처리됩니다. ** 게이트웨이는 60초마다 스케줄러를 틱하고, 고립된 에이전트 세션에서 발생하는 작업들을 실행합니다.
hermes gateway install # Install as a user service
sudo hermes gateway install --system # Linux: boot-time system service for servers
hermes gateway # Or run in foreground
hermes cron list
hermes cron status
Gateway 스케줄러 행동
각 진드기에:
~/.hermes/cron/jobs.json에서 작업로드- 현재 시간에 대한
next_run_at확인 - 신선한
AIAgent세션을 시작합니다 - 선택적으로 그 신선한 세션으로 하나 이상의 첨부된 스킬을 주사합니다
- 완료하기 위해 신속한 실행
- 마지막 응답을 전달하세요
- 업데이트는 metadata 및 다음 예정 시간
~/.hermes/cron/.tick.lock의 파일 잠금은 동일한 작업 배치를 두 배로 실행하는 스케줄러 진드기를 방지합니다.
배송 옵션
스케줄링 작업을 할 때 출력이 진행되는지를 지정합니다
| 옵션 정보 | 설명 | 설명 |
|---|---|---|
"origin" | 직업이 만든 곳 | 메시징 플랫폼의 기본 |
"local" | 로컬 파일에 저장 (~/.hermes/cron/output/) | CLI에 기본값 |
"telegram" | Telegram 홈 채널 | 사용 TELEGRAM_HOME_CHANNEL |
"telegram:123456" | ID로 특정 전보 채팅 | 연락처 |
"telegram:-100123:17585" | 특정 Telegram 주제 | chat_id:thread_id 형식 |
"discord" | Discord 홈 채널 | 사용 DISCORD_HOME_CHANNEL |
"discord:#engineering" | 특정 Discord 채널 | 채널 이름 |
"slack" | Slack 홈 채널 | |
"whatsapp" | WhatsApp 홈 | |
"signal" | 주요 특징 | |
"matrix" | 매트 홈 룸 | |
"mattermost" | Mattermost 홈 채널 | |
"email" | 설명 | |
"sms" | Twilio를 통해 SMS | |
"homeassistant" | 홈 보조 | |
"dingtalk" | DingTalk 소개 | |
"feishu" | Feishu / 라크 | |
"wecom" | 사이트맵 | |
"weixin" | 웨이신 (WeChat) | |
"bluebubbles" | BlueBubbles (iMessage) (이 메시지) | |
"qqbot" | QQ Bot (텐센트 QQ) | |
"all" | 모든 연결된 홈 채널에서 팬 | 화재 시간에 해결 |
"telegram,discord" | 채널의 특정 설정에 팬 | Comma 제출 목록 |
"origin,all" | Originplus에 전달 | 모든 토큰 |
에이전트의 최종 응답은 자동으로 전달됩니다. cron 프롬프트에서 send_message를 호출 할 필요가 없습니다.
루팅 의도 (all)
all 는 이름에 의해 전달하지 않고 구성 된 모든 메시징 채널에 하나의 cron 작업을 배송 할 수 있습니다. 그것은 화재 시간에 해결, 그래서 당신은 전보를 유선하기 전에 생성 된 작업은 __HER_TOKEN_00001__를 설정 한 후 다음 진드기에 전보를 선택합니다.
Semantics: all는 구성된 홈 채널을 가진 모든 플랫폼에 확장합니다. Zero는 괜찮습니다; 단순히 배달 대상을 생산하고 배달 실패 업스트림으로 기록됩니다.
all는 명시된 대상으로 구성합니다. origin,all는 원래 채팅 plus로 전달되며, 다른 연결된 홈 채널은 (platform, chat_id, thread_id)에 의해 해독됩니다.
응답 래핑
기본적으로 전달된 cron 출력은 헤더와 footer로 감싸이므로 수신자는 예정된 작업에서 왔습니다
Cronjob Response: Morning feeds
-------------
<agent output here>
Note: The agent cannot see this message, and therefore cannot respond to it.
래퍼없이 원료 출력을 전달하려면 cron.wrap_response를 false로 설정하세요
# ~/.hermes/config.yaml
cron:
wrap_response: false
공급 능력
에이전트의 최종 응답이 [SILENT]로 시작되면 배달이 완전히 억제됩니다. 출력은 여전히 감사를 위해 로컬로 저장됩니다 (~/.hermes/cron/output/에서), 그러나 메시지는 배달 목표에 보내지 않습니다.
이것은 뭔가 잘못 될 때보고해야한다 작업 모니터링에 유용합니다:
Check if nginx is running. If everything is healthy, respond with only [SILENT].
Otherwise, report the issue.
실패 작업은 항상 [SILENT] 마커에 관계없이 배달합니다. 성공적인 실행은 침묵 할 수 있습니다.
스크립트 timeout
Pre-run 스크립트 (script 매개 변수를 통해 지정)에는 120 초의 기본 타임아웃이 있습니다. 스크립트가 더 이상 필요하다면 — 예를 들어, bot-like 타이밍 패턴을 방지하는 임의 지연이 포함될 수 있습니다
# ~/.hermes/config.yaml
cron:
script_timeout_seconds: 300 # 5 minutes
또는 HERMES_CRON_SCRIPT_TIMEOUT 환경 변수를 설정합니다. 해결책 순서는: env var → 구성. yaml → 120s 과태.
시약 모드 (script-only job)
LLM 이유가 필요하지 않은 재발견 작업 - 클래식 워치 독, 디스크 / 메모리 알림, 심베트, CI 핑 - 만들기 시간에 no_agent=True을 전달합니다. 스케줄러는 일정에 스크립트를 실행하고 직접 stdout을 제공, 전적으로 에이전트를 건너:
hermes cron create "every 5m" \
--no-agent \
--script memory-watchdog.sh \
--deliver telegram \
--name "memory-watchdog"
정액:
- 스크립트 stdout (trimmed) → 메시지로 동사 배달.
- Empty stdout → 침묵하는 진드기, 납품 없음. 이것은 watchdog 패턴입니다: "만 뭔가 잘못 될 때 무언가를 말한다".
- Non-zero Exit 또는 timeout → 오류 경고가 전달되므로 깨진 watchdog은 조용히 실패 할 수 없습니다.
{"wakeAgent": false}마지막 선에서 → 침묵하는 진드기 (사메 게이트 LLM 작업 사용).- 토큰 없음, 모델 없음, 제공자 낙하 없음 - 작업은 방해 층을 결코 만지지 않습니다.
.sh / .bash 파일은 /bin/bash에서 실행됩니다. 현재 파이썬 해석기 (sys.executable)의 다른 점. 스크립트는 ~/.hermes/scripts/ (이전 스크립트 게이트로 동일한 샌드박스 규칙)에 있어야 합니다.
에이전트는 당신을 위해 이러한 설정
cronjob 도구의 스키마가 no_agent를 직접 헤르메스에 노출하므로 채팅에서 워치를 설명할 수 있으며, 에이전트 와이어를 합시다
Ping me on Telegram if RAM is over 85%, every 5 minutes.
Hermes는 ~/.hermes/scripts/를 통해 write_file에 체크 스크립트를 작성하고 다음 호출합니다
cronjob(action="create", schedule="every 5m",
script="memory-watchdog.sh", no_agent=True,
deliver="telegram", name="memory-watchdog")
그것은 no_agent=True 자동으로 메시지 내용이 스크립트 (watchdogs, 임계값 alerts, heartbeats)에 의해 완전히 결정 될 때. 동일한 도구는 에이전트 일시 중지, 이력서, 편집 및 작업 제거 - 그래서 전체 수명주기는 CLI를 터치하지 않고 채팅 구동됩니다.
Script-Only Cron Jobs guide를 참조해 주세요.
context_from로 작업
Cron 작업은 이전 실행의 메모리 없이 격리된 세션에서 실행됩니다. 하지만 때로는 하나의 작업의 출력은 정확히 다음 작업이 필요한 것입니다. context_from 매개 변수 와이어는 자동으로 연결됩니다. 작업 B의 프롬프트는 작업 A의 가장 최근 출력이 실행 시간에 컨텍스트로 사전 처리됩니다.
# Job 1: Collect raw data
cronjob(
action="create",
prompt="Fetch the top 10 AI/ML stories from Hacker News. Save them to ~/.hermes/data/briefs/raw.md in markdown format with title, URL, and score.",
schedule="0 7 * * *",
name="AI News Collector",
)
# Job 2: Triage — receives Job 1's output as context
# Get Job 1's ID from: cronjob(action="list")
cronjob(
action="create",
prompt="Read ~/.hermes/data/briefs/raw.md. Score each story 1–10 for engagement potential and novelty. Output the top 5 to ~/.hermes/data/briefs/ranked.md.",
schedule="30 7 * * *",
context_from="<job1_id>",
name="AI News Triage",
)
# Job 3: Ship — receives Job 2's output as context
cronjob(
action="create",
prompt="Read ~/.hermes/data/briefs/ranked.md. Write 3 tweet drafts (hook + body + hashtags). Deliver to telegram:7976161601.",
schedule="0 8 * * *",
context_from="<job2_id>",
name="AI News Brief",
)
일부:
- 작업 2 화재 때, Hermes는
~/.hermes/cron/output/{job1_id}/*.md에서 가장 최근의 출력을 읽습니다 - 그 출력은 작업 2의 프롬프트에 자동으로 prepended
- Job 2는 "읽는이 파일"을 hardcode 할 필요가 없습니다 - 그것은 컨텍스트로 콘텐츠를받습니다
- 사슬은 어떤 길이일 수 있습니다: 일 1 → 일 2 → 일 3 →...
** 어떤 context_from는 다음과 같습니다.**
| 지원하다 | 설명 |
|---|---|
| 단일 작업 ID (문자) | context_from="a1b2c3d4" |
| 다수 일 ID (표) | context_from=["job_a", "job_b"] |
산출은 목록으로 만들어진 순서에서 concatenated.
사용할 때:
- Multi-stage 파이프라인 (collect → filter → format → deliver)
- N의 작업이 단계에 따라 달라집니다 N-1의 출력
- Fan-out/fan-in 패턴 어느 일 집계 결과에서 여러 다른 사람
제공자 회복
Cron 작업은 구성 된 fallback 제공 업체 및 자격 풀 회전을 상속합니다. 기본 API 키가 rate-limited 또는 제공자가 오류를 반환하면 cron 에이전트는 할 수 있습니다
- **변경 제공자로 돌아 가기 **
fallback_providers(또는 레거시fallback_model)가 있는 경우 ** - credential Pool에서 다음의 자격에 따라 동일한 제공자를 위한
이것은 높은 주파수 또는 피크 시간에 실행하는 cron 작업이 더 탄력적입니다 - 단일 속도 제한 키는 전체 실행을 실패하지 않습니다.
일정표
에이전트의 최종 응답은 자동으로 전달됩니다. ****는 동일한 목적지에 대한 cron prompt의 send_message를 포함해야 합니다. cron이 호출하는 경우 send_message 을 정확한 대상에 스케줄러가 이미 전달 될 것입니다. Hermes는 중복 전송을 건너 최종 응답에 사용자 인터페이스 콘텐츠를 넣어 모델을 알려줍니다. send_message만 추가 또는 다른 대상에 사용하세요.
관계되는 지연 (one-shot)
30m → Run once in 30 minutes
2h → Run once in 2 hours
1d → Run once in 1 day
인터벌(recurring)
every 30m → Every 30 minutes
every 2h → Every 2 hours
every 1d → Every day
Cron 표현
0 9 * * * → Daily at 9:00 AM
0 9 * * 1-5 → Weekdays at 9:00 AM
0 */6 * * * → Every 6 hours
30 8 1 * * → First of every month at 8:30 AM
0 0 * * 0 → Every Sunday at midnight
ISO 타임스탬프
2026-03-15T09:00:00 → One-time at March 15, 2026 9:00 AM
반복 동작
| 일정 유형 | 기본 반복 | 채용 정보 |
|---|---|---|
원샷 (30m, 타임스탬프) | 1 | 한 번 실행 |
간격 (every 2h) | 지원하다 | 제거 할 때까지 실행 |
| Cron 표현 | 지원하다 | 제거 할 때까지 실행 |
당신은 그것을 재정의 할 수 있습니다:
cronjob(
action="create",
prompt="...",
schedule="every 2h",
repeat=5,
)
작업 관리
Agent-facing API는 하나의 도구입니다:
cronjob(action="create",...)
cronjob(action="list")
cronjob(action="update", job_id="...")
cronjob(action="pause", job_id="...")
cronjob(action="resume", job_id="...")
cronjob(action="run", job_id="...")
cronjob(action="remove", job_id="...")
``update`의 경우, `skills=`를 통과하여 모든 첨부 기술을 제거하십시오.
## cron 작업에 사용할 수 있는 도구 \{#toolsets-available-to-cron-jobs}
Cron은 채팅 플랫폼이 첨부되지 않는 신선한 에이전트 세션에서 각 작업을 실행합니다. 기본적으로 cron 에이전트가 **`cron` 플랫폼에 `hermes tools`**를 구성하는 도구입니다. — CLI 기본값이 아닌 모두 태양 아래.
```bash
hermes tools
# → pick the "cron" platform in the curses UI
# → toggle toolsets on/off just like you would for Telegram/Discord/etc.
꽉 per-job 제어는 enabled_toolsets 필드를 통해 사용할 수 있습니다. cronjob.create (또는 cronjob.update):
cronjob(action="create", name="weekly-news-summary",
schedule="every sunday 9am",
enabled_toolsets=["web", "file"], # just web + file, no terminal/browser/etc.
prompt="Summarize this week's AI news:...")
``enabled_toolsets`가 이기는 일에 설정될 때; 그렇지 않으면 `hermes tools` cron-platform config wins; 그렇지 않으면 Hermes는 내장 기본으로 돌아갑니다. 비용 제어에 대한이 문제: 운반 `moa`, `browser`, `delegation` 모든 작은 "fetch news" 작업은 모든 LLM 통화에서 도구 - schema 프롬프트.
### 완전히 에이전트을 건너 뛰기: `wakeAgent` \{#toolsets-available-to-cron-jobs}
cron 작업이 pre-check 스크립트를 첨부하면 (`script=`), 스크립트는 Hermes가 에이전트를 호출 할 때 실행 시간에 결정할 수 있습니다. 형태의 마지막 stdout 선을 Emit:
```text
{"wakeAgent": false}
````python
# pre-check script
import json, sys
latest = fetch_latest_issue_count()
prev = read_state("issue_count")
if latest == prev:
print(json.dumps({"wakeAgent": False})) # skip this tick
sys.exit(0)
write_state("issue_count", latest)
print(json.dumps({"wakeAgent": True, "컨텍스트": {"new_issues": latest - prev}}))
``wakeAgent`가 omitted일 때, 기본값은 `true`입니다. (일반적으로 에이전트를 사용).
#### 조리법: 저렴한 사전 실행 게이트 \{#skipping-the-agent-entirely-wakeagent}
`wakeAgent` 게이트는 예정된 작업이 모든 LLM 토큰을 소비해야하는지 결정하는 데 $ 0의 방법을 제공합니다. 3개의 본 덮개 최대 사용 케이스.
**File-change gate** - 마지막 성공적인 진드기 이후의 파일이 새로운 내용이 있을 때만 실행됩니다. 스케줄러는 각 작업의 `last_run_at`를 기록합니다. 파일의 매번 비교합니다.
```bash
#!/bin/bash
# ~/.hermes/scripts/feed-changed.sh
FEED="$HOME/data/feed.json"
STATE="$HOME/.hermes/scripts/.feed-changed.last"
test -f "$FEED" || { echo '{"wakeAgent": false}'; exit 0; }
mtime=$(stat -c %Y "$FEED")
last=$(cat "$STATE" 2>/dev/null || echo 0)
if [ "$mtime" -le "$last" ]; then
echo '{"wakeAgent": false}'
else
echo "$mtime" > "$STATE"
echo '{"wakeAgent": true}'
fi
````text
cronjob(action="create", name="process-feed",
schedule="every 30m",
script="feed-changed.sh",
prompt="A new ~/data/feed.json has landed. Summarize what changed.")
External-flag gate - 다른 프로세스가 읽음을 신호 할 때만 실행됩니다 (예: 배치 후크는 파일을 삭제, CI 작업은 주점의 값을 설정합니다).
#!/bin/bash
# ~/.hermes/scripts/flag-ready.sh
if test -f /tmp/new-data-ready; then
rm -f /tmp/new-data-ready
echo '{"wakeAgent": true}'
else
echo '{"wakeAgent": false}'
fi
````text
cronjob(action="create", name="nightly-analysis",
schedule="0 9 * * *",
script="flag-ready.sh",
prompt="Run the nightly analysis over today's batch.")
** SQL-count gate** - 자신의 데이터베이스에서 처리 할 수있는 새로운 행이있을 때만 실행됩니다. 스크립트는 context를 통해 에이전트를 통해 계산을 통과 할 수 있으므로 에이전트는 다시 채우지 않고 찾는 방법을 알고 있습니다.
#!/usr/bin/env python
# ~/.hermes/scripts/new-rows.py
import json, sqlite3
conn = sqlite3.connect("/home/me/data/app.db")
n = conn.execute(
"SELECT COUNT(*) FROM messages WHERE ts > strftime('%s','now','-2 hours')"
).fetchone()[0]
if n < 1:
print(json.dumps({"wakeAgent": False}))
else:
print(json.dumps({"wakeAgent": True, "context": {"new_rows": n}}))
````text
cronjob(action="create", name="summarize-new-msgs",
schedule="every 2h",
script="new-rows.py",
prompt="Summarize the new messages from the last 2 hours.")
같은 패턴은 스크립트에서 쿼리 할 수있는 모든 데이터 소스에 대한 작동 - Postgres, HTTP API, 당신의 자신의 상태 저장소 - SQL evaluator를 cron subsystem로 굽기없이.
Hermes's own ~/.hermes/state.db는 릴리스 사이에 변경되는 내부 스키마입니다. 사전 실행 게이트에서 쿼리하지 마십시오 - 자신의 데이터베이스에 포인트 또는 대신 피드.
신용:이 레시피 세트는 @iankar8의 탐험에 의해 초안되었습니다 #2654, 이는 평행 메커니즘으로 sql/file/command 트리거를 추가 제안. script + wakeAgent 게이트는 이미 $ 0의 모든 3 개의 케이스를 커버하므로 대신 문서로 착륙했습니다.
업무: context_from
cron 작업은 context_from의 이름 (또는 ID)을 나열하여 하나의 다른 작업의 가장 최근 성공적인 출력을 소비 할 수 있습니다
cronjob(action="create", name="daily-digest",
schedule="every day 7am",
컨텍스트_from=["ai-news-fetch", "github-prs-fetch"],
prompt="Write the daily digest using the outputs above.")
참고된 작업의 가장 최근 완료된 출력은 이 실행의 상황에 따라 프롬프트 위에 주입됩니다. 각 상류 입력은 유효한 직업 ID 또는 이름이어야 합니다 (cronjob action="list"를 보십시오). 참고: chaining은 *most 최근 완료 * 출력을 읽습니다. 동일한 진드기에 실행되는 업스트림 작업을 기다릴 수 없습니다.
작업 저장
작업은 ~/.hermes/cron/jobs.json에 저장됩니다. 작업에서 출력은 ~/.hermes/cron/output/{job_id}/{timestamp}.md에 저장됩니다.
작업은 저장할 수 있습니다 model 과 provider 로 null. 그 필드가 omitted 때, Hermes는 글로벌 구성에서 실행시에 해결합니다. 그들은 per-job override가 설정될 때 작업 레코드에 만 나타납니다.
저장 사용 원자 파일 쓰기 그래서 중단 된 쓰기는 부분적으로 작성된 작업 파일을 남겨두지 않습니다.
자기 유지 프롬프트는 여전히 중요
Cron 작업은 완전히 신선한 에이전트 세션에서 실행됩니다. 모든 에이전트가 첨부 된 기술에 의해 이미 제공되지 않은 필요는 포함해야합니다.
BAD: "Check on that server issue"
GOOD: "SSH into server 192.168.1.100 as user 'deploy', check if nginx is running with 'systemctl status nginx', and verify https://example.com returns HTTP 200."
보안 보안
계획된 작업 프롬프트는 생성 및 업데이트 시간에 신속한 주입 및 credential-exfiltration 패턴을 위해 스캔됩니다. 보이지 않는 Unicode 트릭, SSH backdoor 시도, 또는 명백한 secret-exfiltration payloads를 포함하는 Prompts는 막습니다.