Cron
Run the agent on a schedule with a cron expression and a prompt.
The cron trigger runs the agent on a schedule rather than in response to an external event:
triggers:
- type: cron
schedule: "0 9 * * 1" # every Monday 09:00
prompt: Post a summary of open issues.configs:
agent-yaml:
content: |
handle: summary-bot
description: Posts a weekly summary of open issues.
model:
provider: openai-compatible
id: gpt-5.4-mini
purpose: |
Each run, summarize the open issues and deliver the summary.
triggers:
- type: cron
schedule: "0 9 * * 1" # every Monday 09:00
prompt: Post a summary of open issues.
services:
summary-bot:
image: ghcr.io/loopedautomation/agent:latest
configs:
- source: agent-yaml
target: /agent/agent.yaml
env_file: .env # the model's API key
volumes:
- summary-bot-data:/data
restart: unless-stopped
volumes:
summary-bot-data:Each tick runs the agent with prompt as input. Results are logged and recorded in the run history — a configurable result sink is planned; until then, when the result needs to go somewhere, have the agent deliver it itself through an allowlisted API or CLI (Permissions).
Every run reports its status, steps and tokens, and limits cap what an unattended schedule can spend.
Multiple triggers
triggers: is a list, and an agent can declare as many as it needs, including two of the same type. A daily prompt and a weekly prompt can live side by side:
triggers:
- type: cron
schedule: "0 9 * * *" # every day 09:00
prompt: Post a summary of yesterday's open issues.
- type: cron
schedule: "0 9 * * 1" # every Monday 09:00
prompt: Post a summary of the past week.This also works across types: the same agent can listen on Discord, serve a webhook and run a schedule at the same time. Whatever wakes it, the same purpose, permissions and run history apply, and conversation keys stay per source, so a Discord thread and a webhook caller never share memory.
Are you an AI? Visit llms.txt — these docs as plain markdown.