Skip to main content
System tools provide high-level orchestration capabilities including scheduled tasks, task management, and inter-agent messaging.

cron

Manage scheduled recurring tasks (cron jobs). Create jobs that run at specified intervals or on strict wall-clock schedules.
action
string
required
The operation to perform:
  • "create": Create a new cron job
  • "list": List all active cron jobs
  • "delete": Remove a cron job

Create Parameters

id
string
For create: A short unique ID (e.g., “check-email”, “daily-summary”). Must be 1-50 characters, alphanumeric with hyphens and underscores only.
prompt
string
For create: The instruction to execute on each run. Maximum 10,000 characters. This is the task description given to a fresh channel process.
cron_expr
string
For create: Strict wall-clock cron expression using 5-field syntax (minute hour day month weekday).Examples:
  • "0 9 * * *" - Daily at 09:00
  • "0 */2 * * *" - Every 2 hours
  • "30 14 * * 1-5" - Weekdays at 14:30
  • "0 0 1 * *" - First day of each month at midnight
When provided, this takes precedence over interval_secs.
interval_secs
integer
For create: Seconds between runs. Minimum 60 seconds. Examples:
  • 3600 - Every hour
  • 86400 - Every day
  • 604800 - Every week
Ignored if cron_expr is provided.
delivery_target
string
For create: Where to send results, in “adapter:target” format.Examples:
  • "discord:dm:123456789" - Discord direct message
  • "discord:987654321" - Discord channel
  • "telegram:user:123456" - Telegram user
  • "slack:C12345678" - Slack channel
Defaults to the current conversation if omitted (when available).
active_start_hour
integer
For create: Hour (0-23) when the job becomes active. Use with active_end_hour to create an active time window.
active_end_hour
integer
For create: Hour (0-23) when the job becomes inactive. Jobs only run within the active window.
timeout_secs
integer
default:120
For create: Maximum seconds to wait for the job to complete before timing out.Recommendations:
  • Quick checks: 60-120 seconds
  • Research tasks: 300-600 seconds
  • Heavy processing: 600+ seconds
run_once
boolean
default:false
For create: If true, run this job once and auto-disable after the first execution attempt. Useful for scheduled one-time reminders.

Delete Parameters

delete_id
string
For delete: The ID of the cron job to remove. Alternative to using id.

Response

success
boolean
Whether the operation succeeded
message
string
Status message describing the result
jobs
array
For list action: Array of cron job entries. Each entry includes:
  • id (string): Job identifier
  • prompt (string): The task instruction
  • cron_expr (string, optional): Cron schedule expression
  • interval_secs (integer): Interval in seconds
  • delivery_target (string): Where results are sent
  • run_once (boolean): Whether this is a one-time job
  • active_hours (string, optional): Active time window in “HH:MM-HH:MM” format

Example: Daily summary at 6 PM

{
  "action": "create",
  "id": "daily-summary",
  "prompt": "Review today's conversations and activity. Create a brief summary highlighting key decisions, open questions, and action items. Keep it under 200 words.",
  "cron_expr": "0 18 * * *",
  "delivery_target": "discord:dm:123456789",
  "timeout_secs": 180
}

Example: Hourly check during work hours

{
  "action": "create",
  "id": "work-hour-check",
  "prompt": "Check for any urgent tasks or messages that need attention. Reply only if there's something actionable.",
  "interval_secs": 3600,
  "delivery_target": "slack:C12345678",
  "active_start_hour": 9,
  "active_end_hour": 17,
  "timeout_secs": 60
}

Example: One-time reminder

{
  "action": "create",
  "id": "meeting-reminder",
  "prompt": "Reminder: Team standup in 15 minutes. Join the #general channel.",
  "cron_expr": "45 9 15 3 *",
  "delivery_target": "discord:dm:123456789",
  "run_once": true,
  "timeout_secs": 30
}

Example: List all jobs

{
  "action": "list"
}

Example: Delete a job

{
  "action": "delete",
  "delete_id": "daily-summary"
}
Circuit breaker: Cron jobs that fail 3 consecutive times are automatically disabled to prevent resource exhaustion.
Timezone handling: Active hours and cron expressions use the timezone configured in the scheduler (typically system local time or UTC). The list action shows which timezone is in use.

tasks

List and filter tasks from the task store. Available to branches for task awareness and planning.
status
string
Optional status filter. Valid values:
  • pending: Not yet started
  • in_progress: Currently being worked on
  • completed: Finished successfully
  • failed: Encountered an error
  • cancelled: Manually cancelled
priority
string
Optional priority filter. Valid values:
  • low: Low priority
  • normal: Normal priority
  • high: High priority
  • urgent: Urgent, needs immediate attention
limit
integer
default:20
Maximum number of tasks to return (1-500)
success
boolean
Whether the query succeeded
count
integer
Number of tasks returned
tasks
array
Array of task objects. Each task includes:
  • id (string): Task UUID
  • title (string): Task title
  • description (string): Detailed description
  • status (string): Current status
  • priority (string): Task priority
  • created_at (string): ISO 8601 timestamp
  • updated_at (string): ISO 8601 timestamp
  • assigned_to (string, optional): Agent or worker assigned
  • metadata (object, optional): Additional task-specific data

Example: List pending high-priority tasks

{
  "status": "pending",
  "priority": "high",
  "limit": 10
}

Example: List all recent tasks

{
  "limit": 50
}
The tasks tool is read-only. Task creation and updates happen through other mechanisms (workers, cron jobs, external APIs).

send_agent_message

Send a message to another agent through the communication graph. Validates that a link exists and the direction permits messaging.
Current status: This tool is a stub. It validates the link and ends the turn, but cross-agent task delegation is not yet implemented. Messages are validated but not delivered.
target
string
required
Target agent’s ID or display name. The tool resolves names case-insensitively.
message
string
required
The message content to send to the target agent
success
boolean
Whether the message was validated (not yet whether it was delivered)
target_agent
string
The resolved target agent name
message
string
Status message (currently always indicates validation only)

Example

{
  "target": "research-agent",
  "message": "Please compile a summary of recent developments in AI safety research, focusing on papers from the last 3 months."
}
Communication graph: Agent links define which agents can communicate and in which directions. Links can be:
  • bidirectional: Both agents can initiate messages
  • one_way: Only the from_agent can initiate messages
The tool validates link existence and direction before accepting messages.
Future implementation: This will create a task in the target agent’s task store rather than sending a direct message. The task system is the intended mechanism for cross-agent delegation.

worker_inspect

Inspect the current state of a running worker process. Returns status, task description, and recent activity.
worker_id
string
required
The UUID of the worker to inspect
worker_id
string
The worker’s UUID
state
string
Current worker state: Running, WaitingForInput, Done, or Failed
task
string
The worker’s assigned task description
status
string
Most recent status update from the worker
started_at
string
Timestamp when the worker was created

Example

{
  "worker_id": "550e8400-e29b-41d4-a716-446655440000"
}

Build docs developers (and LLMs) love