Automatisations
Créer une automatisation personnelle planifiée depuis une conversation Cortex, par une seule opération gouvernée
action.automations.create crée une automatisation personnelle qui s’exécute selon
un horaire, cherche sur le web et publie un message dans le chat Cortex de son
propriétaire. Cortex l’appelle pour une personne dans un chat privé, après que
cette personne a approuvé une carte. Le point de vue de la personne est décrit dans
Créer une automatisation depuis le chat.
L’opération n’est disponible que dans un tour Cortex en cours, exécuté en tant que personne, dans l’espace de travail personnel de cette personne. Un appel venant d’ailleurs est refusé. Les Agents de workflow n’ont jamais l’outil, et une extension n’atteint l’opération que lorsqu’elle s’exécute pour un tour Cortex.
const { automationId, schedule, status } = await platform.action.automations.create({
name: 'Daily political news digest',
instruction: "Summarise today's political news.",
schedule: { every: 'day', at: '08:00' },
tools: ['web_search'],
})| Opération | HTTP | Ce qu’elle fait |
|---|---|---|
action.automations.create | POST /api/platform/v1/action/automations/create | Crée et déploie une automatisation personnelle. Requiert workflows:write. La plateforme ne réessaie jamais l’appel à votre place. |
Entrée
| Champ | Type | Signification |
|---|---|---|
name | chaîne, de 1 à 80 caractères | Le nom de l’automatisation. |
instruction | chaîne, de 1 à 500 caractères | Ce que l’automatisation fait à chaque exécution. |
schedule.every | day, weekday ou week | La fréquence. Rien ne s’exécute plus d’une fois par jour. |
schedule.at | HH:MM, format 24 heures | L’heure, dans le fuseau horaire de la personne. |
schedule.on | mon à sun | Le jour. Obligatoire pour week, refusé sinon. |
tools | ["web_search"] | Exactement un outil. |
@scrydon/sdk/platform exporte ces limites sous les noms AUTOMATION_NAME_MAX_CHARS,
AUTOMATION_INSTRUCTION_MAX_CHARS et AUTOMATION_TIME_PATTERN, pour que vous
puissiez vérifier une entrée avant de l’envoyer.
L’entrée ne contient ni espace de travail, ni organisation, ni utilisateur, ni expression cron, ni fuseau horaire, ni modèle. La plateforme prend l’espace de travail et la personne depuis l’exécution, le fuseau horaire depuis les préférences de la personne (puis celui de l’organisation, puis UTC), et le modèle depuis le modèle par défaut de l’organisation à chaque exécution. Les champs inconnus sont refusés.
Résultat
automationId, name, workspace (toujours personal), schedule (le
cronExpression compilé, le timeZone et une description telle que every day at 08:00 (Europe/Brussels)) et status : created, ou existing lorsque le même
appel approuvé est rejoué et retrouve l’automatisation qu’il a déjà créée.
Erreurs
Un refus place en tête de son message un code stable sur lequel vous pouvez vous appuyer.
| Code | Signification |
|---|---|
PERSONAL_WORKSPACE_REQUIRED | L’appel ne s’est pas exécuté dans l’espace de travail personnel de l’appelant. |
WEB_SEARCH_NOT_CONFIGURED | Aucune extension de recherche web n’est installée ou activée. Un administrateur la configure dans Paramètres → Plateforme → Extensions. |
DEFAULT_MODEL_NOT_CONFIGURED | L’organisation n’a pas de modèle par défaut. Un administrateur en définit un dans Paramètres → Plateforme → Extensions → Models & defaults. |
INVALID_REQUEST | L’entrée n’a pas passé la validation. |
Un appel qui ne vient pas d’un tour Cortex, ou qui ne s’exécute pas en tant que
personne, est refusé avec FORBIDDEN.