본문으로 건너뛰기

시간표(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 스케줄러 행동

각 진드기에:

  1. ~/.hermes/cron/jobs.json에서 작업로드
  2. 현재 시간에 대한 next_run_at 확인
  3. 신선한 AIAgent 세션을 시작합니다
  4. 선택적으로 그 신선한 세션으로 하나 이상의 첨부된 스킬을 주사합니다
  5. 완료하기 위해 신속한 실행
  6. 마지막 응답을 전달하세요
  7. 업데이트는 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_responsefalse로 설정하세요

# ~/.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(&#123;"wakeAgent": False&#125;)) # skip this tick
sys.exit(0)
write_state("issue_count", latest)
print(json.dumps(&#123;"wakeAgent": True, "컨텍스트": &#123;"new_issues": latest - prev&#125;&#125;))
``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" || &#123; echo '&#123;"wakeAgent": false&#125;'; exit 0; &#125;
mtime=$(stat -c %Y "$FEED")
last=$(cat "$STATE" 2>/dev/null || echo 0)
if [ "$mtime" -le "$last" ]; then
echo '&#123;"wakeAgent": false&#125;'
else
echo "$mtime" > "$STATE"
echo '&#123;"wakeAgent": true&#125;'
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 '&#123;"wakeAgent": true&#125;'
else
echo '&#123;"wakeAgent": false&#125;'
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(&#123;"wakeAgent": False&#125;))
else:
print(json.dumps(&#123;"wakeAgent": True, "context": &#123;"new_rows": n&#125;&#125;))
````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에 저장됩니다.

작업은 저장할 수 있습니다 modelprovidernull. 그 필드가 omitted 때, Hermes는 글로벌 구성에서 실행시에 해결합니다. 그들은 per-job override가 설정될 때 작업 레코드에 만 나타납니다.

저장 사용 원자 파일 쓰기 그래서 중단 된 쓰기는 부분적으로 작성된 작업 파일을 남겨두지 않습니다.

자기 유지 프롬프트는 여전히 중요

Important {#chaining-jobs-contextfrom}

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는 막습니다.