Configuration d'Agent Alerts
Concevez l'automatisation, configurez le webhook hébergé et déléguez les envois à l'exécution via $agent-alerts-execution. N'envoyez rien pendant la configuration sauf si l'utilisateur demande un test de validation (smoke test).
Commencez ici
Ouvrez ou dirigez l'utilisateur vers :
https://www.andreas.ink/agent
Suivez le flux de connexion actuel de la page avec Agent Alerts sur l'iPhone. Cela crée un token de publication unique pour l'exécution. Ne demandez pas à l'utilisateur de coller ce token dans la conversation.
Configurer le webhook
- Nommez l'exécution et terminez le flux de connexion sur la page de configuration publique.
- Choisissez l'emplacement du token pour l'exécution :
- Runtime hébergé : stockez le token unique dans le gestionnaire de secrets de ce runtime sous
AGENTALERTS_AGENT_TOKEN. - Mac local : stockez exactement une ligne,
AGENTALERTS_AGENT_TOKEN=<token>, dans le fichier~/.config/agent-alerts/token.envapprouvé par l'utilisateur et définissez son mode à0600.
- Runtime hébergé : stockez le token unique dans le gestionnaire de secrets de ce runtime sous
- Demandez à l'utilisateur de saisir le token directement dans le coffre de secrets choisi, en dehors de la conversation IA. Ne lui demandez jamais de le coller dans la conversation agent.
- Utilisez le point de terminaison intégré dans
../agent-alerts-execution/scripts/send_webhook.sh. DéfinissezAGENTALERTS_WEBHOOK_URLuniquement lorsque la page de configuration fournit un point de terminaison HTTPS différent. - Autorisez les connexions HTTPS sortantes uniquement vers ce point de terminaison.
- Autorisez le chemin absolu exact vers
send_webhook.shpour les exécutions sans surveillance. N'accordez pas un accès shell large.
Ne placez jamais le token dans une invite, une URL, une chaîne de requête, un journal, un fichier source, un fichier de paramètres suivi, un historique de shell ou un argument de commande.
Préparer et valider un test
Copiez ../agent-alerts-execution/assets/compact-webhook-payload.json vers un fichier payload modifiable et remplacez ses valeurs d'exemple. Utilisez une clé d'idempotence stable et unique pour l'événement.
Validez le payload :
../agent-alerts-execution/scripts/send_webhook.sh --check payload.json
Validez le payload, la source du token, les permissions et le point de terminaison sans envoyer :
../agent-alerts-execution/scripts/send_webhook.sh --check-config payload.json
Ensuite, envoyez un seul test non sensible (smoke test) :
../agent-alerts-execution/scripts/send_webhook.sh payload.json
Pour une automatisation sans surveillance, répétez --check-config et l'envoi de test à partir du véritable runner enregistré. Les deux doivent se terminer sans invite d'approbation. Si le runner ne peut pas exécuter l'outil exact ou atteindre le point de terminaison, arrêtez avec AGENTALERTS_SCRIPT_NOT_AUTHORIZED.
Concevoir l'alerte
Définissez :
- Signal, source de données et déclencheur.
- Correspondances
good,warningetcritical. - Conditions de saut, heures de silence et exclusions.
- Un
activity_idstable ou un identifiant de notification. - Surfaces :
live_activity,widgetet/ounotification. - Texte de l'action et une URL cible sécurisée ou un lien profond d'application.
- Un planificateur durable lorsque l'alerte s'exécute plus tard ou de manière répétée.
Agent Alerts fournit les mises à jour ; il ne maintient pas une session agent active. Une exécution future ou récurrente est incomplète tant que le planificateur reste enregistré après la fermeture de la session en cours. Sinon, retournez AGENTALERTS_SCHEDULER_NOT_DURABLE.
Contrat du payload
Utilisez le corps de webhook compact pour les alertes ordinaires :
{
"title": "Build terminé",
"summary": "Tous les tests réussis.",
"status": "good",
"activity_id": "build-monitor",
"source_name": "Codex",
"surfaces": ["live_activity", "notification"],
"idempotency_key": "build-monitor-2026-07-29T18-30-00Z"
}
Le webhook nécessite :
Authorization: Bearer <AGENTALERTS_AGENT_TOKEN>
Content-Type: application/json
Idempotency-Key: <même valeur que idempotency_key>
L'outil fournit ces en-têtes sans exposer le token dans les arguments du processus. Utilisez toujours l'outil ; ne recréez pas la requête manuellement.
Les envois compacts par défaut créent une activité upsertée nommée webhook, une livraison en production, et live_activity plus notification lorsque ces champs sont omis. Définissez-les explicitement lorsque l'automatisation nécessite un résultat différent.
Pour les widgets, l'état du Control Widget, les dispositions de builder ou d'autres champs avancés, utilisez le contrat complet du webhook en snake_case avec un objet payload imbriqué. Ne mélangez pas un objet payload complet avec les champs compacts title, summary, status, source_name ou deep_link.
Règles de copie et de livraison
Gardez le texte visible complet et dans ces limites :
| Champ | Caractères maximum |
|---|---|
source_name | 14 |
title | 32 |
summary | 96 |
Ne comptez pas sur la troncature et n'ajoutez pas de points de suspension.
live_activitymet à jour le Dynamic Island ou l'écran verrouillé.widgetnécessite son identifiant de widget, un petit instantané non secret et le rechargement activé.notificationnécessite un identifiant de fil stable pour le regroupement.- L'état du Control Widget doit être true pour les états actifs d'avertissement ou critiques et false pour les états clairs ou résolus.
Délégation à l'exécution
Écrivez une instruction d'exécution exacte :
Utilisez $agent-alerts-execution. Évaluez d'abord la condition de saut configurée.
Si un envoi est nécessaire, écrivez le JSON préparé d'Agent Alerts dans le chemin
approuvé du payload, puis invoquez le chemin autorisé absolu de send_webhook.sh
avec ce fichier. Lisez le token uniquement depuis AGENTALERTS_AGENT_TOKEN ou le
fichier token.env approuvé. Rapportez le statut retourné et les comptes de cible,
de succès et d'échec sans imprimer de secrets.
La configuration est complète uniquement lorsque le vrai runner valide la configuration et envoie sans interaction, le planificateur est durable si nécessaire, et le résultat est rapporté sans exagérer la livraison visible par l'appareil.