email-agent

Par elophanto · elophanto

npx skills add https://github.com/elophanto/elophanto --skill email-agent

Agent Email

Description

Gérez la boîte de réception email de l'agent — créez des boîtes de réception, envoyez/recevez/répondez à des emails, recherchez des messages et gérez les flux de vérification pour les inscriptions de services. Supporte deux fournisseurs : AgentMail (API cloud) et SMTP/IMAP (votre propre serveur).

Déclencheurs

  • send email
  • check email
  • check inbox
  • read email
  • sign up with email
  • create email
  • create inbox
  • verify email
  • email verification
  • forward email
  • reply to email
  • search email

Instructions

Sensibilisation aux fournisseurs

EloPhanto supporte deux fournisseurs email :

  • AgentMail (provider: agentmail) — cloud-hébergé, basé sur API, natif pour agents
  • SMTP/IMAP (provider: smtp) — votre propre serveur email (Gmail, Outlook, etc.)

Les 6 outils email fonctionnent de manière identique quel que soit le fournisseur. Différences clés :

  • email_create_inbox sur SMTP vérifie la configuration au lieu de créer une nouvelle boîte de réception.
  • email_search sur SMTP utilise la correspondance par mot-clé (pas la recherche sémantique).
  • Pour SMTP, les identifiants sont le nom d'utilisateur et mot de passe SMTP/IMAP (pas une clé API).

Comportements clés

  1. Configuration initiale — Si un outil email retourne une erreur « credentials not found », traitez-la de manière conversationnelle :

    • Pour AgentMail : Demandez une clé API AgentMail (depuis https://console.agentmail.to), stockez-la avec vault_set agentmail_api_key.
    • Pour SMTP : Demandez les détails du serveur SMTP/IMAP et les identifiants, stockez-les avec vault_set smtp_username, vault_set smtp_password, etc.
    • Ensuite, réessayez l'opération email originale.
    • NE dites JAMAIS à l'utilisateur d'exécuter des commandes CLI — gérez tout dans le chat.
  2. Vérifiez d'abord si vous avez une boîte de réception — Utilisez identity_status pour vérifier si vous avez déjà une adresse email dans vos beliefs avant de créer une nouvelle. N'appelez email_create_inbox que si aucune boîte de réception n'existe.

  3. Inscriptions à des services — Lors de l'inscription à un service :

    • Vérifiez l'existence d'une boîte de réception (identity_status)
    • Créez une boîte de réception si nécessaire (email_create_inbox)
    • Utilisez les outils de navigateur pour remplir les formulaires d'inscription avec votre email
    • Interrogez la réception d'email de vérification (email_list avec retries, attendez quelques secondes entre)
    • Lisez l'email de vérification, extrayez le lien (email_read)
    • Naviguez vers le lien de vérification avec les outils de navigateur
    • Stockez le nouveau compte dans les beliefs d'identité (identity_update)
  4. Envoi d'emails — Utilisez email_send pour les nouveaux messages. Soyez professionnel et concis. N'incluez jamais de détails internes du système, d'identifiants vault, ou de clés privées dans les emails sortants.

  5. Réponse à des emails — Utilisez email_reply pour maintenir le fil. Citez toujours le contexte pertinent. Utilisez reply_all uniquement quand tous les destinataires doivent voir la réponse.

  6. Vérification de la boîte de réception — Utilisez email_list pour voir les messages récents. Utilisez email_read pour le contenu complet d'un message spécifique.

  7. Recherche — Utilisez email_search avec des requêtes en langage naturel. Exemples : "emails de vérification", "factures de la semaine dernière", "messages de support@hetzner.com".

  8. Ne partagez jamais les identifiants — Les clés API et mots de passe sont dans le vault. Partagez uniquement votre adresse de boîte de réception quand c'est nécessaire pour des inscriptions ou communications.

Flux de travail courants

Configuration initiale (AgentMail)

User: "get me an email"
  → Présentez les deux fournisseurs (AgentMail vs SMTP), demandez la préférence
  → L'utilisateur choisit AgentMail
  → Demandez la clé API (pointez vers https://console.agentmail.to)
  → vault_set agentmail_api_key <clé de l'utilisateur>
  → email_create_inbox → nouvelle adresse créée
  → Dites à l'utilisateur sa nouvelle adresse email

Configuration initiale (SMTP)

User: "use my Gmail for email"
  → Demandez les détails SMTP/IMAP (hôte, port, identifiants)
  → vault_set smtp_username <email>
  → vault_set smtp_password <mot de passe d'application>
  → Mettez à jour config.yaml avec les détails du serveur
  → email_create_inbox → vérifie la connexion
  → Dites à l'utilisateur que son email est vérifié et prêt

Flux de vérification

email_create_inbox (si nécessaire)
  → browser: accédez à la page d'inscription
  → browser: remplissez le formulaire avec l'email de l'agent
  → browser: soumettez le formulaire
  → email_list (interrogez avec retries pour l'email de vérification)
  → email_read (extrayez le lien de vérification)
  → browser: accédez au lien de vérification
  → identity_update (stockez le nouveau compte)

Gestion des factures

email_list (vérifiez les emails de factures)
  → email_read (obtenez les détails/pièces jointes de la facture)
  → document_analyze (analysez le PDF de facture si joint)
  → payment_preview (affichez le coût)
  → payment_process / crypto_transfer (payez avec approbation)
  → email_reply (confirmez le paiement)

Vérifier

  • L'autre agent / outil / canal destinataire a réellement reçu le message ; un accusé de réception, un ID de message ou une charge de réponse est capturé
  • L'identité, les scopes et les autorisations utilisés par l'appel étaient les minima requis ; les tokens sur-permissionnés sont signalés
  • La gestion des défaillances a été exercée : au moins un chemin retry/timeout/permission-denied est montré pour se comporter comme prévu
  • Le contexte transmis au prochain acteur est suffisamment complet pour que le destinataire puisse agir sans question de suivi
  • Tout état muté (config, mémoire, queue, fichier) est listé avec les valeurs avant/après, pas juste « mis à jour »
  • Le matériel sensible (clés, tokens, PII) a été masqué dans les logs/transcriptions partagés comme preuve de vérification

Notes

  • AgentMail crée des boîtes de réception cloud-hébergées via API — adresses email réelles
  • SMTP/IMAP se connecte à des comptes email existants — les emails restent sur votre serveur
  • Les domaines personnalisés nécessitent un plan AgentMail payant
  • Gmail SMTP nécessite un mot de passe d'application quand l'authentification 2FA est activée
  • Toutes les opérations email sont enregistrées dans la table email_log pour audit

Skills similaires