Agir
Les Mains permettent à l'agent de cliquer, saisir du texte, appuyer sur un bouton, glisser et piloter les fenêtres. C'est ce que vous bornez, avec le plafond.
Ce que vous demandez
« Ouvre le menu Fichier. »
« Remplis le champ Nom avec "Dupont", puis valide. »
Avant d'agir : le plafond
Le plafond est réglé à L0 par défaut : l'agent ne peut qu'observer. Pour qu'il agisse, montez le curseur du panneau (L1 à L3) : voir Plafond et exclusions.
Un agent bien conduit appelle d'abord main_ceiling. L'outil rend le plafond actif, et gated_above liste les outils refusés à ce niveau : l'agent annonce d'emblée ce qu'il ne pourra pas faire, au lieu d'être refusé en cours de route. Il ne peut pas relever le plafond : c'est à vous de le faire.
| Niveau | Ce qu'il permet | Outils |
|---|---|---|
| L1 | Actions réversibles : focus, fenêtres, navigation | main_navigate, main_hover, main_activate, main_window_* |
| L2 | Clics, saisie, glisser, touches | main_click, main_type, main_drag, main_key |
| L3 | Les boutons qui engagent | main_press |
| L4 | Tout, sans confirmation action par action | main_mouse_*, main_key_down, main_key_up |
Ce que fait l'agent
- Il regarde : Regarder l'écran ou Lire une interface, pour obtenir une position fiable.
- Il agit, en déclarant son
intent: une phrase qui dit ce qu'il veut faire, consignée au journal d'audit. Les outils qui s'engagent portent aussireversible, que l'agent doit renseigner honnêtement. - Il vérifie : un nouveau regard confirme le résultat.
Pour cliquer, l'agent passe de préférence role et label (relevés avec touche_probe) : Daimon peut ainsi vérifier la réversibilité de la cible. Pour saisir, il clique d'abord dans le champ, car main_type ne choisit pas la cible. Le texte saisi n'est jamais écrit dans le journal d'audit.
Pour viser, l'agent donne soit des points globaux (ceux que renvoie vue_find), soit, avec space="image" et un display, des pixels d'une capture que Daimon convertit lui-même.
Ce que vous obtenez
Chaque outil d'action répond sous l'une de ces trois formes :
| Réponse | Sens |
|---|---|
{"status": "done", …} | L'action a été exécutée |
{"status": "refused", "reason": "…"} | L'action est refusée : plafond, garde, confirmation humaine non obtenue |
{"status": "error", "reason": "…"} | L'action n'a pas pu s'exécuter |
Les confirmations
Jusqu'à L3, une action que Daimon juge irréversible, ou que l'agent déclare telle, s'arrête sur une boîte de confirmation. Vous répondez ; sans réponse, elle refuse d'elle-même au bout de 30 secondes, et l'agent reçoit refused.
À L4, il n'y a plus de confirmation action par action. Ce niveau demande votre consentement explicite, depuis le panneau ou le terminal ; aucun outil ne permet à l'agent de l'engager.
Si l'appel est refusé ou échoue
| Cas | Ce que l'agent doit faire |
|---|---|
refused au-dessus du plafond | Dire que l'action dépasse le plafond, et demander à la personne de le relever si elle le souhaite |
refused, confirmation non obtenue | Ne pas insister : la personne a refusé ou n'a pas répondu |
done sans aucun effet | Sans l'autorisation Accessibilité, main_type, main_key, main_hover et main_navigate répondent done sans rien faire : appeler daimon_doctor |
| Attente de 30 secondes | Sans Accessibilité, main_click, main_press et main_drag attendent une confirmation : appeler daimon_doctor |
invalid_arguments | Par exemple space="image" sans display : corriger l'argument |
motor_unavailable | Les Mains ne sont pas disponibles sur cet hôte |
Détail complet : Mains.
Suite : Montrer ce qui se passe.