Intervention humaine pour Eve
Votre agent Eve peut interroger une personne sur son téléphone.
Un fichier dans agent/channels envoie chaque demande d’approbation de votre agent Eve sur le téléphone de votre utilisateur.
Ce que propose Eve
approval: always(), never(), once()
Eve aborde bien ce point. Les outils acceptent un champ approval, et eve/tools/approval fournit always(), never() et once(). Le moteur vérifie la politique avant execute, au lieu de faire confiance au modèle pour appeler un outil de question. Un outil ask_question est aussi intégré.
// agent/tools/issue-refund.ts
import { defineTool } from "eve/tools"
import { always } from "eve/tools/approval"
import { z } from "zod"
export default defineTool({
description: "Refund an order",
inputSchema: z.object({ amount: z.number() }),
approval: always(),
execute: async ({ amount }) => refund(amount),
})Le point de blocage
- Les fonctions décident à l’avance. always() pose la question à chaque appel, ce qui habitue les personnes à approuver sans lire.
- La personne présente dans le canal configuré répond. Les fonctions intégrées ne peuvent pas interroger un utilisateur précis de votre produit.
- Une approbation reste un événement dans un canal. Aucun historique consultable ou exportable n’est constitué.
La solution
Pushary recueille la réponse de votre utilisateur.
Eve suspend le tour et affiche les approbations sous forme de boutons Slack. Le canal Pushary place la même demande sur le téléphone de votre utilisateur, attend sa réponse sans maintenir de connexion ouverte et l’enregistre.
pusharyChannel() traite chaque demande sur laquelle Eve se met en pause : tout outil doté d’un champ approval, ainsi que l’outil intégré ask_question. Votre utilisateur touche Approuver ou Refuser sur son téléphone, puis le tour reprend. Rien ne s’exécute pendant sa décision : une approbation peut attendre des heures.
npm i @pushary/eve// agent/channels/pushary.ts
import { pusharyChannel } from "@pushary/eve"
export default pusharyChannel()Ou posez une question explicitement depuis un outil
Le canal couvre les pauses déjà prévues par Eve. Pour poser une question qui n’arrêterait pas Eve, ajoutez deux fichiers d’outils. pusharyAskHuman() attend la réponse et pusharyConnectPhone() renvoie le lien de connexion. Le modèle choisit quand appeler l’outil de question : celui-ci ne peut donc pas bloquer un remboursement. Pour cela, placez pusharyApproval() dans le champ approval de l’outil de remboursement.
// agent/tools/ask-human.ts
import { pusharyAskHuman } from "@pushary/eve"
export default pusharyAskHuman()
// agent/tools/connect-phone.ts
import { pusharyConnectPhone } from "@pushary/eve"
export default pusharyConnectPhone()Fonctionnement
De l’installation à la première réponse
Connectez votre utilisateur une seule fois. Exigez son approbation à l’étape sensible. Pushary envoie la question, attend la réponse et l’enregistre.
- 01
Installez le package
Exécutez npm i @pushary/eve. Définissez PUSHARY_API_KEY et PUSHARY_WEBHOOK_SECRET, ainsi que PUSHARY_CALLBACK_ORIGIN si l’agent n’est pas sur Vercel.
- 02
Connectez votre utilisateur une seule fois
pusharyConnectPhone() renvoie un lien. Votre utilisateur l’ouvre une fois sur son téléphone avec l’application Pushary gratuite. Sans compte ni paiement.
- 03
Ajoutez le fichier du canal
Créez agent/channels/pushary.ts avec pusharyChannel() comme export par défaut. Protégez les outils sensibles avec le champ approval d’Eve et utilisez une authentification par utilisateur pour que chacun réponde pour sa session.
- 04
Agissez selon la réponse
La réponse est envoyée à la route de réponse, qui vérifie deux signatures et reprend le tour suspendu. Un non, une demande expirée ou l’absence de réponse empêche l’outil de s’exécuter.
Une question peut demander un oui ou un non, un choix dans une liste ou une réponse écrite. Chaque réponse est enregistrée.
Avant la mise en production
Les pièges à éviter avec Eve
- once() ne mémorise qu’un oui explicite
- Un refus, ou une poursuite sans réponse, laisse l’outil sans approbation enregistrée : l’appel suivant repose donc la question. Ce comportement sûr surprend ceux qui interprètent once() comme « demander une seule fois ». Il utilise aussi le seul nom de l’outil et ignore les clés d’approbation composées.
- Le canal exige une origine publique et échoue à l’exécution
- pusharyChannel construit une URL de rappel signée à partir de PUSHARY_CALLBACK_ORIGIN (ou VERCEL_PROJECT_PRODUCTION_URL) et vérifie les réponses avec PUSHARY_WEBHOOK_SECRET. Aucun des deux n’est contrôlé à la compilation : une valeur manquante produit un déploiement fonctionnel mais incapable de recevoir les réponses. Définissez les deux avant la mise en production.
- Une session partagée ne sait pas qui interroger
- L’outil de question et la politique d’approbation utilisent par défaut l’utilisateur connecté à la session. Une session partagée ou au niveau de l’application n’en a pas : ils lèvent donc une erreur plutôt que d’interroger la mauvaise personne. Passez votre propre identifiant utilisateur ou utilisez une authentification par utilisateur.
L’offre Partner
Votre agent interroge vos utilisateurs, pas seulement vous
Proposez votre agent à vos utilisateurs. Chacun approuve ses actions sensibles depuis son téléphone, sous votre marque.
Vos utilisateurs ne créent jamais de compte Pushary et ne nous paient rien.
Vos utilisateurs répondent sur leur propre téléphone
Connectez chaque utilisateur une seule fois avec un lien. Il installe l’application Pushary gratuite et répond depuis l’écran verrouillé, sans créer de compte.
Sans réponse, c’est non
Exécutez l’action uniquement après une approbation explicite. Une demande en attente, expirée ou annulée ne vaut jamais un oui. Pushary conserve chaque demande : votre code peut la reprendre après un redémarrage.
Joignez-les sur leur téléphone
L’application passe en premier, car elle seule affiche Approuver et Refuser sur l’écran verrouillé. Les notifications du navigateur viennent ensuite. Vous n’avez aucun système d’envoi à construire.
Chaque réponse est enregistrée
Chaque réponse est enregistrée avec son auteur et sa date. Vous pouvez effectuer des recherches et exporter les réponses. Avec une URL de rappel, chaque réponse est aussi envoyée à votre serveur par webhook signé.
FAQ
Les réponses à vos questions
Existe-t-il un package Pushary pour Eve ?
Que couvre le canal Pushary ?
Qui le canal interroge-t-il par défaut ?
Que se passe-t-il si personne ne répond à une confirmation Eve ?
Cela fonctionne-t-il si une session Eve reprend plus tard ?
Mes utilisateurs ont-ils besoin d’un compte ou de l’application Pushary ?
Laissez votre agent Eve demander avant d’agir.
Connectez un utilisateur une seule fois, posez une question en un appel et exécutez l’action uniquement après un oui. Chaque réponse est enregistrée.
Start freeOffre Partner, $99 par mois. Vos utilisateurs ne créent jamais de compte Pushary et ne nous paient rien.