|
| 1 | +# Outils de l'agent |
| 2 | + |
| 3 | +WebBrain sépare le **niveau du modèle** du **mode de conversation**. |
| 4 | + |
| 5 | +- **Niveau** (`compact`, `mid`, `full`) est un réglage par fournisseur. Il |
| 6 | + contrôle le nombre d'outils navigateur normaux que le modèle voit. |
| 7 | +- **Mode** (`ask`, `act`, `dev`) est choisi par conversation. Il contrôle le type |
| 8 | + de tâche que l'utilisateur autorise. |
| 9 | + |
| 10 | +| Mode | Ce qu'il autorise | |
| 11 | +|---|---| |
| 12 | +| **Ask** | Lecture seule. Pas de clic, de saisie, de navigation ni de téléchargement. | |
| 13 | +| **Act** | Les outils navigateur normaux du niveau sélectionné. | |
| 14 | +| **Dev** | Exige un fournisseur Mid ou Full. Ajoute une annexe source/style/debug, y compris une inspection DOM/frame plus profonde pour les exécutions Dev en Mid. Le mode Dev en Compact est bloqué avant l'envoi d'une requête au LLM. | |
| 15 | + |
| 16 | +| Niveau | Classe de modèle visée | Surface d'outils normaux | |
| 17 | +|---|---|---| |
| 18 | +| `compact` | très petits modèles locaux | Prompt le plus court et petit ensemble d'outils Act normaux. Pas de planification, d'iframe, de téléchargement de ressource ni de repli DOM/UI avancé. | |
| 19 | +| `mid` | modèles locaux capables | Outils de tâche courants : téléchargements, planification, outils iframe, vérification de formulaires. Sans les replis avancés réservés à Full. | |
| 20 | +| `full` | modèles frontière/cloud ou grands modèles locaux | Tout, y compris hover, drag-drop, frames et shadow DOM. | |
| 21 | + |
| 22 | +Les valeurs par défaut et les règles de résolution des niveaux sont documentées |
| 23 | +dans [fournisseurs et modèles](providers-and-models.md#niveaux-de-promptoutils-et-modes). |
| 24 | + |
| 25 | +## Matrice des outils |
| 26 | + |
| 27 | +Légende : **Oui** = disponible · **-** = indisponible · **C** = Chrome |
| 28 | +uniquement · **Dev** = module Dev (fournisseurs Mid/Full ; pas Compact). |
| 29 | + |
| 30 | +| Outil | Ask | Compact | Mid | Full | Dev | |
| 31 | +|-------|:---:|:-------:|:---:|:----:|:---:| |
| 32 | +| `get_accessibility_tree` | Oui | Oui | Oui | Oui | - | |
| 33 | +| `read_page` | Oui | Oui | Oui | Oui | - | |
| 34 | +| `read_pdf` | Oui | Non | Oui | Oui | - | |
| 35 | +| `list_webmcp_tools` | C | Non | C | C | - | |
| 36 | +| `execute_webmcp_tool` | Non | Non | C | C | - | |
| 37 | +| `read_page_source` | Non | Non | Non | Non | Oui | |
| 38 | +| `get_window_info` | Oui | Oui | Oui | Oui | - | |
| 39 | +| `get_interactive_elements` | Oui | Non | Oui | Oui | - | |
| 40 | +| `scroll` | Oui | Oui | Oui | Oui | - | |
| 41 | +| `extract_data` | Oui | Oui | Oui | Oui | - | |
| 42 | +| `inspect_element_styles` | Non | Non | Non | Non | Oui | |
| 43 | +| `wait_for_stable` | Oui | Non | Oui | Oui | - | |
| 44 | +| `get_selection` | Oui | Oui | Oui | Oui | - | |
| 45 | +| `done` | Oui | Oui | Oui | Oui | - | |
| 46 | +| `clarify` | Non | Oui | Oui | Oui | - | |
| 47 | +| `fetch_url` | Oui | Oui | Oui | Oui | - | |
| 48 | +| `research_url` | Oui | Non | Oui | Oui | - | |
| 49 | +| `list_downloads` | Oui | Non | Oui | Oui | - | |
| 50 | +| `click_ax` | Non | Oui | Oui | Oui | - | |
| 51 | +| `type_ax` | Non | Oui | Oui | Oui | - | |
| 52 | +| `set_field` | Non | Oui | Oui | Oui | - | |
| 53 | +| `resize_window` | Non | Non | Non | Oui | - | |
| 54 | +| `click` | Non | Oui | Oui | Oui | - | |
| 55 | +| `type_text` | Non | Oui | Oui | Oui | - | |
| 56 | +| `press_keys` | Non | Oui | Oui | Oui | - | |
| 57 | +| `navigate` | Non | Oui | Oui | Oui | - | |
| 58 | +| `wait_for_element` | Non | Oui | Oui | Oui | - | |
| 59 | +| `new_tab` | Non | Oui | Oui | Oui | - | |
| 60 | +| `scratchpad_write` | Non | Oui | Oui | Oui | - | |
| 61 | +| `progress_update` | Non | Oui | Oui | Oui | - | |
| 62 | +| `progress_read` | Non | Oui | Oui | Oui | - | |
| 63 | +| `download_social_media` | Non | Non | Oui | Oui | - | |
| 64 | +| `solve_captcha` | Non | Non | Oui | Oui | - | |
| 65 | +| `go_back` | Non | Non | Oui | Oui | - | |
| 66 | +| `go_forward` | Non | Non | Oui | Oui | - | |
| 67 | +| `schedule_resume` | Non | Non | Oui | Oui | - | |
| 68 | +| `schedule_task` | Non | Non | Oui | Oui | - | |
| 69 | +| `iframe_read` | Non | Non | Oui | Oui | - | |
| 70 | +| `iframe_click` | Non | Non | Oui | Oui | - | |
| 71 | +| `iframe_type` | Non | Non | Oui | Oui | - | |
| 72 | +| `read_downloaded_file` | Non | Non | Oui | Oui | - | |
| 73 | +| `download_files` | Non | Non | Oui | Oui | - | |
| 74 | +| `download_resource_from_page` | Non | Non | Oui | Oui | - | |
| 75 | +| `upload_file` | Non | Non | C | C | - | |
| 76 | +| `verify_form` | Non | Non | Oui | Oui | - | |
| 77 | +| `hover` | Non | Non | Non | Oui | - | |
| 78 | +| `drag_drop` | Non | Non | Non | Oui | - | |
| 79 | +| `get_shadow_dom` | Non | Non | Non | Oui | Oui | |
| 80 | +| `shadow_dom_query` | Non | Non | Non | C | C | |
| 81 | +| `get_frames` | Non | Non | Non | Oui | Oui | |
| 82 | +| `inject_css` | Non | Non | Non | Non | C | |
| 83 | +| `remove_injected_css` | Non | Non | Non | Non | C | |
| 84 | +| `patch_element` | Non | Non | Non | Non | C | |
| 85 | +| `revert_patch` | Non | Non | Non | Non | C | |
| 86 | +| `execute_js` | Non | Non | Non | Non | Oui | |
| 87 | +| `read_console` | Non | Non | Non | Non | C | |
| 88 | +| `inspect_network_requests` | Non | Non | Non | Non | C | |
| 89 | +| `inspect_event_listeners` | Non | Non | Non | Non | C | |
| 90 | +| `highlight_element` | Non | Non | Non | Non | C | |
| 91 | + |
| 92 | +> **Note Shadow DOM :** L'arbre d'accessibilité ne traverse que le light DOM. |
| 93 | +> Sur les pages riches en Web Components (Stripe, Salesforce, Shopify), utilisez |
| 94 | +> d'abord `get_interactive_elements` ; en Full Act ou Dev, utilisez |
| 95 | +> `get_shadow_dom` / `shadow_dom_query` pour des lectures ciblées. |
| 96 | +
|
| 97 | +## Outils absents du tableau |
| 98 | + |
| 99 | +**Outils de compétence.** Les compétences chargées peuvent ajouter des schémas |
| 100 | +d'outils pour l'exécution en cours. La compétence FreeSkillz.xyz intégrée, par |
| 101 | +exemple, peut exposer `read_youtube_transcript` ainsi que |
| 102 | +`resolve_public_media` / `download_public_media`. Ces outils ne sont pas codés en |
| 103 | +dur : avant le chargement de la compétence (ou si elle est retirée), ils sont |
| 104 | +absents. Le mode Ask filtre toujours les outils de mutation et de téléchargement, |
| 105 | +même lorsque la compétence propriétaire est chargée. Voir |
| 106 | +[compétences](skills.md). |
| 107 | + |
| 108 | +**WebMCP (expérimental, sur activation).** Les lignes `list_webmcp_tools` / |
| 109 | +`execute_webmcp_tool` ne s'appliquent que lorsque **WebMCP expérimental** est |
| 110 | +activé dans Paramètres → Général → Avancé. Le réglage est désactivé par défaut ; |
| 111 | +tant qu'il l'est, les outils et leurs consignes de prompt sont omis des requêtes |
| 112 | +au modèle. Les annotations WebMCP telles que `readOnly` sont des indications |
| 113 | +écrites par la page, pas une frontière de sécurité. Chaque invocation exige Act |
| 114 | +ou Dev, une confirmation fraîche à chaque appel, et la permission normale |
| 115 | +capacité × origine de la frame d'enregistrement. WebMCP nécessite actuellement |
| 116 | +un build/une configuration de page Chrome compatible ; Firefox n'expose pas ces |
| 117 | +outils. |
| 118 | + |
| 119 | +## Édition et diagnostics en mode Dev |
| 120 | + |
| 121 | +Les outils Dev ne sont exposés qu'en mode Dev, et le mode Dev est bloqué pour les |
| 122 | +fournisseurs de niveau Compact. Les outils d'édition réversible de Chrome |
| 123 | +renvoient des patch IDs : `inject_css` va avec `remove_injected_css`, et |
| 124 | +`patch_element` avec `revert_patch`. |
| 125 | + |
| 126 | +- **`inject_css` / `remove_injected_css`** appliquent et annulent du CSS |
| 127 | + temporaire par `patchId`. Chaque patch est unique et lié au document exact de |
| 128 | + la page, et ses métadonnées sont conservées en session storage pour qu'un |
| 129 | + redémarrage du service worker ne perde pas la poignée d'annulation. La |
| 130 | + navigation invalide l'ancienne poignée au lieu de la laisser affecter une page |
| 131 | + de remplacement. |
| 132 | +- **`patch_element` / `revert_patch`** effectuent des modifications structurées |
| 133 | + de styles inline, de classes et d'attributs avec des valeurs avant/après |
| 134 | + exactes. Les noms de styles et d'attributs HTML équivalents sont canonicalisés |
| 135 | + avant la création de l'enregistrement d'annulation, les opérations |
| 136 | + set/remove contradictoires sont rejetées, et les attributs d'URL exécutables |
| 137 | + rejettent les valeurs `javascript:` (y compris `action` de formulaire). |
| 138 | + `highlight_element` fournit une surcouche de cible temporaire transparente aux |
| 139 | + pointeurs ; comme elle insère du DOM vivant, elle utilise la permission de |
| 140 | + patch Dev temporaire. |
| 141 | +- **`execute_js`** exécute un corps de fonction JavaScript asynchrone dans le |
| 142 | + monde principal de la page. Chrome utilise CDP `Runtime.evaluate` avec une |
| 143 | + limite d'exécution de 15 secondes ; Firefox utilise son évaluateur de script de |
| 144 | + contenu MV2. L'outil est soumis à une permission d'hôte et reçoit une |
| 145 | + confirmation de soumission fraîche. |
| 146 | +- **`read_console`, `inspect_network_requests`, `inspect_event_listeners`** |
| 147 | + fournissent des diagnostics bornés sur Chrome. La capture démarre avant les |
| 148 | + exécutions Dev streamées ou non, et s'arrête quand l'onglet quitte le mode Dev |
| 149 | + ou que sa conversation est effacée ; quitter Dev vide tous les onglets ayant |
| 150 | + une capture active même si le panneau a changé d'onglet, retire les |
| 151 | + gestionnaires et les tampons, et désactive les domaines CDP correspondants. |
| 152 | + L'inspection des écouteurs ajoute et restaure brièvement un attribut de cible |
| 153 | + interne, suit les hôtes shadow ouverts lors de la collecte des ancêtres, et |
| 154 | + utilise donc la même permission d'hôte que les patchs Dev temporaires. Les |
| 155 | + en-têtes et corps réseau sont omis par défaut, les noms d'en-têtes sensibles |
| 156 | + (y compris les variantes courantes de clés d'API/d'abonnement) sont caviardés |
| 157 | + avant la mise en tampon, et la sortie de diagnostic issue de la page est |
| 158 | + traitée comme du contenu non fiable. |
| 159 | + |
| 160 | +## Voir aussi |
| 161 | + |
| 162 | +- [Ajouter un outil](adding-a-tool.md) — la checklist pour les outils nouveaux ou |
| 163 | + modifiés |
| 164 | +- [Arbre d'accessibilité et refs](accessibility-tree-and-refs.md) |
| 165 | +- [Modèle de sécurité](security-model.md) et |
| 166 | + [défense contre l'injection de prompt](prompt-injection-defense.md) |
0 commit comments