Astreus

Planificateur

Exécution simple basée sur le temps avec une configuration minimale Découvrez les schémas de configuration, les API et les exemples pratiques nécessaires...

Exécution simple basée sur le temps avec une configuration minimale

Vue d'ensemble

Le scheduler d'Astreus offre une exécution simple basée sur le temps pour les tâches et les graphes en utilisant des chaînes de planification intuitives. Aucune configuration complexe n'est nécessaire - ajoutez simplement un champ schedule et c'est terminé !

Planification de tâches de base

Planifiez des tâches individuelles avec une syntaxe simple :

import { Agent } from '@astreus-ai/astreus';

const agent = await Agent.create({
  name: 'SchedulerAgent',
  model: 'gpt-4o'
});

// Create a scheduled task - scheduler starts automatically when needed
const scheduledTask = await agent.createTask({
  prompt: 'Generate monthly report for December',
  schedule: 'once@2024-12-25@09:00'
});

// Create a recurring task
const dailyTask = await agent.createTask({
  prompt: 'Daily health check and status report',
  schedule: 'daily@08:00'
});

// Execute the task - scheduler will handle the scheduling automatically
await agent.executeTask(scheduledTask.id);

Configuration de la planification

Utilisez des chaînes de planification simples pour une configuration facile :

// Supported schedule formats:
'daily@07:00'                    // Daily at 7 AM
'weekly@monday@09:00'            // Weekly on Monday at 9 AM
'monthly@1@10:00'                // Monthly on 1st day at 10 AM
'hourly'                         // Every hour (default time)
'@15:30'                         // Once today at 3:30 PM
'once@2024-12-25@10:00'          // Once on specific date and time

// Delay-based schedules:
'after:5s'                       // Run after 5 seconds
'after:30m'                      // Run after 30 minutes
'after:2h'                       // Run after 2 hours

// Examples:
await agent.createTask({
  prompt: 'Morning briefing',
  schedule: 'daily@08:00'
});

await agent.createTask({
  prompt: 'Weekly report',
  schedule: 'weekly@friday@17:00'
});

Planification de Graph avec dépendances

Planifiez des graphes avec une résolution intelligente des dépendances :

import { Graph } from '@astreus-ai/astreus';

const graph = new Graph({
  name: 'Morning Workflow',
  defaultAgentId: agent.id
}, agent);

// Node A: Data collection at 6 AM
const nodeA = graph.addTaskNode({
  name: 'Data Collection',
  prompt: 'Collect overnight data from all sources',
  schedule: 'once@2024-12-20@06:00'
});

// Node B: Processing (depends on A completing first)
const nodeB = graph.addTaskNode({
  name: 'Data Processing',
  prompt: 'Process collected data and generate insights',
  schedule: 'once@2024-12-20@07:00',
  dependsOn: ['Data Collection'] // Must wait for A
});

// Node C: Report generation at 8 AM
const nodeC = graph.addTaskNode({
  name: 'Report Generation',
  prompt: 'Generate morning executive report',
  schedule: 'once@2024-12-20@08:00',
  dependsOn: ['Data Processing']
});

// Execute - scheduler starts automatically for scheduled nodes
await graph.run();

// Result: A runs at 06:00, B waits and runs after A (~06:05), C runs at 08:00

Motifs récurrents

Créez des plannings récurrents sophistiqués :

1

Plannings quotidiens

// Every day at 8 AM
{
  type: 'recurring',
  executeAt: new Date('2024-12-20T08:00:00Z'),
  recurrence: {
    pattern: 'daily',
    interval: 1,
    maxExecutions: 365 // Stop after 1 year
  }
}

// Every 3 days
{
  type: 'recurring',
  executeAt: new Date('2024-12-20T08:00:00Z'),
  recurrence: {
    pattern: 'daily',
    interval: 3
  }
}
2

Plannings hebdomadaires

// Every Monday at 9 AM
{
  type: 'recurring',
  executeAt: new Date('2024-12-23T09:00:00Z'), // Monday
  recurrence: {
    pattern: 'weekly',
    interval: 1,
    daysOfWeek: [1] // Monday
  }
}

// Every Monday and Friday
{
  type: 'recurring',
  executeAt: new Date('2024-12-23T09:00:00Z'),
  recurrence: {
    pattern: 'weekly',
    interval: 1,
    daysOfWeek: [1, 5] // Monday and Friday
  }
}
3

Plannings mensuels et annuels

// 15th of every month
{
  type: 'recurring',
  executeAt: new Date('2024-12-15T10:00:00Z'),
  recurrence: {
    pattern: 'monthly',
    interval: 1,
    dayOfMonth: 15
  }
}

// Every January 1st
{
  type: 'recurring',
  executeAt: new Date('2025-01-01T00:00:00Z'),
  recurrence: {
    pattern: 'yearly',
    interval: 1,
    monthOfYear: 1
  }
}

Logique de résolution des dépendances

Le scheduler résout intelligemment les conflits entre les plannings et les dépendances :

ScénarioComportement
Nœud planifié avant sa dépendanceAttend que la dépendance se termine
Nœud planifié après sa dépendanceS'exécute à l'heure planifiée
Dépendances multiplesAttend TOUTES les dépendances
Dépendances circulairesUne erreur est levée pendant la validation
Nœuds mixtes planifiés/immédiatsFonctionnent ensemble de manière transparente

Le scheduler fournit une base robuste pour construire des workflows IA automatisés basés sur le temps qui respectent les dépendances et évoluent avec vos besoins.

Dernière mise à jour : 6 juillet 2026