GEODE . 문서
GitHub
GEODE 운영
How-to

작업 예약

자연어와 cron을 jitter와 함께 씁니다. 일일 리포트를 명령 한 줄로 예약합니다.

예약은 세션 안에서 합니다. 두 입구가 있습니다. 대화 중 자연어로 부탁하면 에이전트가 schedule_job 도구로 작업을 만들고, 직접 제어하려면 /schedule 슬래시 명령을 씁니다. 셸에서 geode "..." 형태의 원샷 예약은 지원하지 않습니다. 만들어진 작업은 serve 데몬이 발화합니다.

자연어로 예약

geode

> 평일 아침 9시마다 AI 뉴스 요약해서 알려줘

에이전트가 schedule_job 도구 (core/tools/definitions.json)를 호출해 일정 표현과 실행할 프롬프트를 분리해 등록합니다. 발화 시각이 되면 그 프롬프트가 새 에이전틱 실행으로 돌아갑니다.

/schedule로 직접 관리

일정 표현과 액션을 각각 따옴표로 감쌉니다. 액션이 없으면 작업이 만들어지지 않습니다. 발화해도 할 일이 없기 때문입니다 (core/cli/commands/schedule.py).

> /schedule                          # 작업 목록 + 템플릿
> /schedule create "daily at 9:00" "summarize today's AI news"
> /schedule status <id>
> /schedule disable <id>             # 잠시 끄기
> /schedule enable <id>
> /schedule run <id>                 # 지금 즉시 실행
> /schedule delete <id>

일정 표현은 NLScheduleParser(core/scheduler/nl_scheduler.py)가 LLM 호출 없이 규칙 기반으로 해석합니다.

패턴예시
간격"every 5 minutes", "every 2 hours", "every 30s"
cron형 자연어"daily at 9:00", "weekly on monday", "hourly", "every weekday at 14:00"
활동 시간대"every 5m during 09:00-22:00"
작업 이름 지정"run analysis every 5m" → 이름이 analysis

jitter와 실행 환경

같은 정각을 공유하는 작업이 한꺼번에 몰리지 않도록, 발화 시각에 작업 ID의 sha256에서 유도한 결정적 전방 오프셋이 더해집니다. 같은 작업은 항상 같은 오프셋, 다른 작업은 흩어집니다. 오프셋 상한은 간격의 10%와 15분 중 작은 값입니다 (core/scheduler/jitter.py). 발화된 작업은 SCHEDULER 모드 세션으로 돌아갑니다. wall-clock 300초 상한이 있고, 승인할 사용자가 없으므로 run_bash delegate_task는 차단됩니다 (core/server/supervised/services.py).

실패 모드

증상원인해법
예약 시각이 지나도 발화 안 됨serve 데몬이 꺼져 있음스케줄러는 데몬 안에서 돕니다. pgrep -f "geode serve"로 확인하고 geode를 다시 실행합니다.
작업이 만들어지지 않음액션 누락 또는 따옴표 없는 인자/schedule create "일정" "액션" 두 인자를 모두 따옴표로 감쌉니다.
정각보다 몇 분 늦게 발화의도된 jitter정상입니다. thundering herd 방지를 위한 결정적 오프셋입니다.
긴 작업이 도중에 끊김SCHEDULER 모드 300초 상한작업을 더 작게 쪼개거나, 긴 조사는 세션에서 직접 실행합니다.

다음