Scheduling & loops
ExoHuman has four ways to run work without someone typing in a chat:
| Tool | Runs | Timing | Set up by |
|---|---|---|---|
| Schedule | Repeatedly | Cron expression | People (Schedules tab), API, MCP, templates |
| Loop | Up to 100 times, one after another | Starting now | People (Loops tab, Workspace), API, MCP |
| Reminder | Once | A future moment | The agent itself (MCP) |
| Fan-out | N tasks in parallel | Now | Agents and API |
All of them are bounded by the agent’s execution timeout, guardrails and parallel capacity, and every run appears in the agent’s Tasks tab with status, duration, cost and model.
Schedules
Section titled “Schedules”Open the agent’s Schedules tab and click Create Schedule:
- Enter a name and a cron expression (5 fields —
0 9 * * 1-5is weekdays at 09:00). Presets: Daily 9 AM, Weekly Mon, Every 6h, Every 30m. The expression is validated as you type. - Choose a timezone (any IANA name such as
Europe/Madrid). - Write the message. Best practice is a single line that invokes one of the agent’s skills, for example
/daily-briefing, so the logic lives in the versioned skill. - Optionally set a model override, timeout (no longer than the agent’s), allowed tools, and retries (0–5 attempts, 30–600 s apart).
- Save, and enable the schedule.
Run now triggers a schedule immediately. Each schedule shows its history and analytics (success rate, duration, cost). Enabling, disabling and triggering are owner/admin actions; people an agent is shared with can view schedules.
If the platform restarts, schedules missed within the last hour are caught up once.
Delivering output to people
Section titled “Delivering output to people”A schedule can deliver its result to a person’s Workspace — for example a morning briefing that lands in their chat with the agent.
A loop runs the same task against one agent repeatedly, strictly in order — for example “process the next backlog item” × 20. Start it from the agent’s Loops tab (Run Loop) or from the Workspace rail:
| Setting | Range | Purpose |
|---|---|---|
| Message template | — | Supports {{run}} (run number) and {{previous_response}} (last 2,000 characters of the previous answer) |
| Max runs | 1–100 | Upper bound on iterations |
| Stop signal | text | End early when the answer contains it, e.g. [[DONE]] |
| Delay between runs | 0–3600 s | Pacing |
| Timeout per run | 10–7200 s | Cannot exceed the agent timeout |
| Max duration | seconds | Wall-clock deadline for the whole loop |
| Max cost | USD | Spend budget, checked between runs |
| No-progress threshold | default 3 | Stop after N identical answers in a row |
Stop is cooperative: the current run finishes, then the loop ends. A loop reports why it ended — run limit, stop signal, deadline, budget, no progress, failures or stopped by you.
Reminders
Section titled “Reminders”A running agent can schedule a one-shot future run of itself — “check this pull request in 2 hours” — with the set_reminder MCP tool (fire_at timestamp or delay_seconds). Reminders survive restarts. Limits: 25 pending and 100 created per day per agent. There is no UI; fired reminders appear in the agent’s Tasks.
Fan-out
Section titled “Fan-out”fan_out dispatches several independent tasks to an agent in parallel, waits for all of them and returns the aggregated results — useful for batch analysis. Concurrency is bounded by the agent’s parallel capacity.
API and MCP
Section titled “API and MCP”| Endpoint | Method | Purpose |
|---|---|---|
/api/agents/{name}/schedules | GET / POST | List or create schedules |
/api/agents/{name}/schedules/{id} | GET / PUT / DELETE | Manage a schedule |
/api/agents/{name}/schedules/{id}/enable · /disable | POST | Toggle |
/api/agents/{name}/schedules/{id}/trigger | POST | Run now |
/api/agents/{name}/schedules/{id}/executions | GET | History |
MCP tools: list_agent_schedules, create_agent_schedule, update_agent_schedule, delete_agent_schedule, toggle_agent_schedule, trigger_agent_schedule, get_schedule_executions. See Schedules API.
On ExoHuman Cloud, scheduled and looped runs are billed like any other run: per minute of the agent’s compute profile while it is running (Billing).