# Outils et capacités ## Aperçu Les outils sont les actions que vos agents peuvent effectuer pendant les conversations. Lorsqu'un agent a besoin de naviguer sur le web, d'exécuter une commande, de lire un fichier ou de contrôler un appareil, il utilise des outils. Neotask fournit un riche ensemble d'outils intégrés couvrant la gestion de fichiers, l'exécution de code, l'automatisation du navigateur, le contrôle des appareils, la messagerie, la recherche web et plus encore. ## Opérations sur les fichiers Les agents peuvent lire, écrire et modifier des fichiers dans leur espace de travail : - **Lire**, Lire le contenu d'un fichier - **Écrire**, Créer ou écraser des fichiers - **Modifier**, Effectuer des modifications ciblées sur des parties spécifiques d'un fichier - **Appliquer un patch**, Appliquer des diffs unifiés multi-hunk pour des modifications de fichiers complexes ## Exécution de code Les agents peuvent exécuter des commandes shell avec un isolement configurable : - **Exécution Gateway**, Exécuter des commandes directement sur la machine hébergeant le Gateway - **Exécution en bac à sable**, Exécuter des commandes dans des conteneurs Docker isolés avec des limites de ressources - **Exécution sur nœud**, Exécuter des commandes sur des appareils compagnons connectés (nœuds macOS, Linux) ### Fonctionnalités d'exécution - Délais d'expiration configurables (30 minutes par défaut) - Gestion des tâches en arrière-plan (lister, surveiller, arrêter, effacer) - Basculement automatique en arrière-plan pour les commandes de longue durée - Prise en charge TTY pour les programmes interactifs - Mode élevé pour les opérations privilégiées (hôte Gateway uniquement) ### Workflows d'approbation Les commandes sensibles peuvent nécessiter l'approbation de l'utilisateur avant l'exécution : - **Liste d'autorisation**, Seules les commandes préapprouvées s'exécutent - **Demande**, Les commandes inconnues demandent une approbation - **Complet**, Aucune restriction ## Automatisation du navigateur Les agents contrôlent un navigateur complet basé sur Chromium (Chrome, Brave ou Edge) : ### Actions - **Naviguer**, Ouvrir des URL et naviguer entre les pages - **Interagir**, Cliquer, taper, survoler, faire glisser, sélectionner, remplir des formulaires - **Capturer**, Prendre des captures d'écran, exporter des PDF - **Inspecter**, Faire une capture instantanée du DOM ou de l'arbre d'accessibilité - **Exécuter**, Exécuter du JavaScript dans le contexte de la page - **Télécharger**, Télécharger des fichiers vers des formulaires web - **Gérer**, Gérer les dialogues (alertes, confirmations), lire la sortie de la console ### Profils de navigateur Plusieurs profils de navigateur isolés pour séparer les comptes : - Chaque profil a ses propres cookies, stockage et historique - Ports CDP auto-assignés pour le contrôle programmatique - Prise en charge des navigateurs distants (connexion à des navigateurs sur d'autres machines) ## Canvas et A2UI Le système Agent-to-UI (A2UI) permet aux agents de rendre du contenu visuel interactif sur les appareils connectés : - **Présenter**, Afficher des pages web ou du contenu personnalisé sur le canvas d'un appareil - **Naviguer**, Contrôler ce qui est affiché dans la fenêtre canvas - **Évaluer**, Exécuter du JavaScript dans le contexte canvas - **Capturer**, Capturer ce qui est actuellement affiché - **Envoi A2UI**, Envoyer des mises à jour d'interface structurées (payloads JSONL) vers le canvas - **Réinitialisation A2UI**, Effacer l'état du canvas Le rendu canvas est disponible sur macOS (WebKit), iOS (SwiftUI), Android (Jetpack Compose) et web (WebChat). ## Capacités des appareils nœuds Via les applications compagnons connectées, les agents peuvent : ### Caméra - **Photographier**, Prendre des photos (caméra avant ou arrière) - **Enregistrer**, Enregistrer des clips vidéo avec durée et FPS configurables ### Écran - **Enregistrer**, Capturer des enregistrements d'écran avec durée et qualité configurables ### Localisation - **Obtenir**, Récupérer les coordonnées GPS avec sélection de précision ### Notifications - **Notifier**, Envoyer des notifications OS natives avec titre, corps et priorité ### Commandes système - **Exécuter**, Exécuter des commandes shell sur l'appareil nœud - **Vérifier**, Vérifier si une commande est disponible sur le nœud ## Messagerie Les agents peuvent envoyer et gérer des messages sur les canaux connectés : - **Envoyer**, Envoyer des messages à n'importe quel canal/destinataire connecté - **Modifier**, Modifier des messages précédemment envoyés - **Réagir**, Ajouter des réactions aux messages - **Fil**, Créer des fils et répondre dans ceux-ci - **Sondage**, Créer des sondages sur les plateformes prises en charge - **Voix**, Vérifier le statut des canaux vocaux (Discord) ## Web - **Rechercher**, Recherche web via l'API Brave Search - **Récupérer**, Récupérer des pages web et convertir le HTML en markdown/texte ## Mémoire et contexte - **Recherche en mémoire**, Recherche par similarité vectorielle sur les fichiers de mémoire de l'agent - **Obtenir la mémoire**, Récupérer des fichiers de mémoire spécifiques par nom ## Gestion des sessions - **Lister les sessions**, Voir les sessions actives entre les agents - **Historique de session**, Récupérer la transcription de n'importe quelle session - **Envoyer vers une session**, Envoyer des messages vers d'autres sessions d'agents - **Créer un sous-agent**, Démarrer des exécutions de sous-agents isolés - **Lister les agents**, Voir les agents disponibles ## Automatisation - **Cron**, Créer, modifier, exécuter et gérer des tâches planifiées - **Gateway**, Redémarrer le gateway, appliquer des modifications de configuration, exécuter des mises à jour ## Analyse d'images Les agents peuvent analyser des images en utilisant des modèles de vision configurés, décrire le contenu, extraire du texte, identifier des objets et répondre aux questions sur le contenu visuel. ## Groupes d'outils Les outils sont organisés en groupes pour une gestion facile des permissions : | Groupe | Outils | |--------|--------| | **runtime** | exec, bash, process | | **fs** | read, write, edit, apply_patch | | **sessions** | sessions_list, sessions_history, sessions_send, sessions_spawn, session_status | | **memory** | memory_search, memory_get | | **web** | web_search, web_fetch | | **ui** | browser, canvas | | **automation** | cron, gateway | | **messaging** | message | | **nodes** | nodes |