Aller au contenu

Outils

À quoi ça sert. Les outils (tools) sont les actions qu’un agent peut réellement effectuer : lire un fichier, chercher dans un index, ouvrir un navigateur, envoyer un brouillon d’e-mail. Cette page est le catalogue en direct de tout ce qui est enregistré sur cette instance. L’affectation se fait toujours dans l’onglet Configuration de l’agent ; ici, vous examinez le nom, la catégorie, le risque et si un appel attend une approbation.

Chemin : /tools. Barre latérale : Outils. Sous-titre : Outils enregistrés disponibles pour l’exécution des agents.

  • Vous voulez savoir quels outils existent avant de mettre leurs identifiants sur un agent.
  • Un appel a été bloqué et il vous faut le niveau de risque et savoir s’il nécessite une approbation.
  • Vous branchez MCP ou une Connexion et voulez voir les outils découverts à côté des outils intégrés.
  • Il vous faut le schéma d’entrée d’un outil que l’agent appelle mal sans arrêt.
  1. Ouvrez Outils dans la barre latérale (/tools).
  2. Cherchez par nom ou description, ou filtrez par catégorie et niveau de risque.
  3. Dépliez Afficher le schéma sur une carte quand il vous faut la forme JSON de l’entrée.
  4. Mettez l’identifiant de l’outil dans l’onglet Configuration de l’agent, dans Outils (séparés par des virgules). Voir Configurer.
  5. Les appels dangereux passent toujours le portail de sécurité à l’exécution — une ligne du catalogue n’accorde aucun droit.

L’en-tête compte les outils et combien nécessitent une approbation. Chaque carte affiche un identifiant en chasse fixe, une courte description, un badge de catégorie, un badge de risque (green risque, yellow risque ou red risque) et un bouclier ambré quand une approbation est requise.

NotionSignification
Nom de l’outilIdentifiant stable utilisé dans la configuration de l’agent et les journaux
DescriptionCe que fait l’outil (affiché dans le catalogue)
CatégorieRegroupement du registre : memory, knowledge, search, documents, board, shell, browser, conversation, communication, research, agent, custom (les outils MCP et de connexion apportent les leurs)
Niveau de risquegreen / yellow / red — le low / medium / high du portail de sécurité
approbation requiseL’exécuteur ne lance pas l’appel tant qu’un humain ne l’a pas approuvé
Schéma d’entréeJSON Schema des arguments ; Afficher le schéma / Masquer le schéma
AutorisationsCASL sur l’API plus le portail de sécurité à chaque appel. Un modèle ne peut lancer qu’un outil proposé à son agent : tout autre nom est refusé (‘<tool>’ is not in this agent’s toolset), sans demande d’approbation, chez tous les fournisseurs — voir Configurer — Outils
SandboxCertains outils s’exécutent dans des environnements restreints

Vide : Aucun outil enregistré pour le moment. Le chargement (Chargement des outils…) et les erreurs de chargement (Échec du chargement des outils : …) s’affichent en texte sur la page, pas comme un écran vide.

Les outils adossés à MCP se configurent sous Serveurs MCP, les identifiants des systèmes externes sous Connexions.

Journal d'exécution des outils

Chaque appel d’outil est inscrit au journal d’exécution des outils : le nom canonique de l’outil, son entrée, sa sortie ou son texte d’erreur, la durée, ainsi que la conversation, l’agent et l’exécution supervisée auxquels il appartient.

  • Les appels que lance l’exécuteur d’EYAS — chez les fournisseurs d’API, et les outils EYAS qu’une CLI appelle par le pont EYAS — sont journalisés par l’exécuteur, une fois chacun.
  • Les outils qu’une CLI a lancés dans sa propre boucle — Claude Code, Grok CLI et Kimi Code CLI, comme leur shell ou leurs lectures de fichiers — reçoivent aussi une ligne, sous le nom canonique (le Bash de Claude Code est journalisé comme run_command). EYAS ne les a pas lancés, il ne fait que les enregistrer : ils ont déjà tourné sous les contrôles d’autorisation d’EYAS pour cette CLI.
  • Ces lignes sont la preuve d’outils à laquelle le critique de complétude mesure une exécution, et elles alimentent les rapports d’Auto-apprentissage et d’efficacité — de la même façon chez tous les fournisseurs.
  • Le journal n’est pas de la mémoire : rien n’en passe dans la mémoire d’EYAS. Seul memory.l0.captureToolResults décide si la sortie des outils est enregistrée en mémoire — voir Mémoire.

La colonne Outils de Observabilité — Utilisation compte les mêmes appels par trace.

Filtres du catalogue

ContrôleSignification
RechercheRechercher des outils… — correspond au nom ou à la description
Toutes les catégoriesRestreindre à une catégorie du registre
Tous les niveaux de risqueRestreindre à un niveau de risque

Groupes d'outils intégrés (sélection)

Surface de code (indépendante du modèle)

Des outils de système de fichiers de premier ordre pour que chaque modèle (Grok, Claude API, Kimi, local, …) puisse modifier du code sans dépendre des outils intégrés du SDK Claude Code :

OutilRôleRisque
read_fileLire un fichier texte (décalage/limite de lignes)green
write_fileCréer/écraser un fichieryellow
edit_fileRemplacement exact de chaîne (modification ciblée)yellow
grepRecherche de contenu dans le workspacegreen
globTrouver des fichiers par motifgreen
git_status / git_diffAides de relecture en lecture seulegreen
run_commandExécution de programme sans shell (approbation)red

Les chemins sont confinés aux dossiers de travail de la conversation (ou au worktree de l’agent) — une conversation sans dossiers propres travaille dans son propre workspace EYAS. Il n’y a pas de repli sur le répertoire du processus EYAS. Les chemins sensibles (.env, master.key, .ssh, …) sont refusés, tout comme la mémoire hors d’EYAS — la mémoire d’autres outils, les coffres Obsidian, le dossier de données d’EYAS lui-même et le workspace d’une autre conversation —, en lecture comme en écriture (Sécurité et confidentialité — Mémoire hors d’EYAS). Un dossier qui exposerait de la mémoire ou des identifiants ne peut même pas être enregistré comme dossier de travail (Conversations — Dossiers). Dans un dossier qui ne fait que contenir un tel emplacement — un dépôt contenant le data/ d’EYAS, ~/Documents avec un coffre —, grep et glob ne descendent jamais dans les sous-dossiers protégés (le dossier de données d’EYAS, un coffre Obsidian imbriqué, la mémoire d’un autre outil, un home de CLI, le workspace d’une autre conversation) : une recherche n’en renvoie donc jamais de résultats. Un lien symbolique dans le dossier de travail qui pointe à l’extérieur est refusé, même quand sa cible n’existe pas encore (cela couvre les chemins de read_file, write_file, edit_file et browser_upload). Préférez edit_file à la réécriture de fichiers entiers.

git en lecture seule sans clic. Si l’agent appelle run_command (ou un Bash de CLI) avec une liste d’arguments qui est sans ambiguïté git status ou git diff — sans métacaractères de shell, sans -C / --git-dir / --no-index, sans chemin absolu —, le portail de sécurité la remappe sur git_status / git_diff et l’autorise. Vous n’avez pas de demande d’approbation. git commit, git add, ls et toute commande avec métacaractères restent rouges ou sont refusés. Les outils dédiés git_status / git_diff sont verts.

Verify before done : configurez agent.verifyCommands en YAML (p. ex. bun test) pour lancer des vérifications déterministes après une exécution ; en cas d’échec, l’agent est rouvert avec le résumé de l’erreur.

Hooks : chaque appel d’outil passe par les hooks PreToolUse / PostToolUse du ToolExecutor (universels, pas seulement Claude). Les outils intégrés de Claude Code passent en plus le contrôle de la politique mémoire d’EYAS avant de s’exécuter.

Les modèles CLI utilisent leurs propres outils de fichiers. Claude Code, Grok et Kimi ne se voient pas proposer cette surface de code (run_command, read_file, write_file, edit_file, grep, glob, git_status, git_diff) par le pont EYAS, car ils ont les leurs : ils les exécutent dans les dossiers du tour, sous le portail de sécurité, la politique des chemins mémoire et — pour le shell de Claude Code et les outils de Grok — le sandbox de fichiers du noyau. Tous les autres outils EYAS leur parviennent.

Recherche et grounding

OutilRôle
list_search_sourcesLister les sources (libellé, version, édition, famille, chemins, statut) avant d’inventer des faits
get_search_contextMontrer quelles sources sont épinglées pour cette conversation
set_search_contextÉpingler ou retirer des sources (sourceIds, labels, version, edition, ou clear: true)
search_indexedRecherche hybride FTS + vectorielle avec citations ; respecte l’épinglage de la conversation/du projet ; sourceIds / labels / version / edition en option

Quand plusieurs sources odoo-family sont prêtes et que rien n’est épinglé, les outils renvoient needsPin au lieu de mélanger les versions. Voir Recherche — épinglage multi-version.

Mémoire

OutilRôle
memory_searchChercher dans la mémoire d’EYAS — résumés, faits, notes du coffre, transcriptions importées —, jamais dans celle de la CLI hôte. En lecture seule et verrouillé par EYAS sur le projet de la conversation, son type et la mémoire globale ; un argument scope ou de projet est ignoré. Renvoie des identifiants à ouvrir avec memory_expand.
memory_expandOuvrir un résultat par identifiant (vt:, gs:, en:, … — issu de memory_search ou d’une ligne de mémoire permanente), dans le même verrou de projet
search_memoryAlias de memory_search, avec le même verrou de projet
save_memoryRetiré — n’écrit rien. EYAS enregistre la mémoire automatiquement ; les agents n’écrivent jamais la mémoire eux-mêmes

memory_search et memory_expand sont toujours disponibles, quoi que dise la liste Tools d’un agent, et ce sont les seuls outils de mémoire qu’un modèle reçoit, sur tous les hôtes — fournisseurs d’API, Claude Code, Grok, Kimi, et OpenCode dans une tâche opencode_run. Les trois outils de recherche/ouverture partagent un budget de 3 appels par réponse chez tous les fournisseurs. Un appelant hors d’une conversation EYAS — un client MCP externe, ou une session OpenCode qu’EYAS n’a pas démarrée pour une tâche — ne lit que la mémoire globale, 3 appels par tranche de 90 secondes. memory_block_read et memory_block_write sont retirés : ce qui était stocké dans des blocs a été copié une fois dans la mémoire d’EYAS et se retrouve avec memory_search ; un agent dont la liste les nomme encore ne les reçoit tout simplement plus. Les résultats des outils de mémoire sont masqués par la politique de confidentialité sur tous les transports (fournisseurs d’API, ponts des CLI, clients MCP externes, OpenCode). Voir Mémoire.

Navigateur

Playwright headless (browser_*) utilise le même Chromium que la chaîne d’impression des designs. Préférez les index numérotés de browser_snapshot au CSS. Les index et le snapshotId expirent à la navigation ou au retour arrière — refaites un snapshot. Les cookies persistent dans un profil propre à EYAS (data/browser/profile, ou EYAS_BROWSER_USER_DATA_DIR) — jamais le profil Chrome quotidien (Chrome 136+ bloque le CDP sur le profil Default). Les téléchargements arrivent dans Documents.

OutilRôle
browser_navigateOuvrir une URL ; la protection SSRF bloque les hôtes privés/de métadonnées
browser_snapshotArbre d’accessibilité + liste interactive numérotée + snapshotId
browser_click / browser_fill / browser_hover / browser_selectAgir par index ou CSS
browser_tabslist / open / switch / close (impossible de fermer le dernier onglet)
browser_back / browser_waitRetour dans l’historique ; attendre un sélecteur, une URL, un chargement ou un délai
browser_dialogArmer accepter/refuser pour le prochain alert/confirm/prompt
browser_uploadChamp de fichier — chemins du workspace ou identifiants de Documents
browser_evaluateJavaScript dans la page (pas Node) ; résultat JSON plafonné
browser_downloadProchain téléchargement → Documents, lié à la conversation
browser_storageEnregistrer/charger le storageState de Playwright (cookies + origines)
browser_replay / browser_action_cacheRejouer un locator enregistré (sans LLM). JSON dans le projet ou le coffre. Jamais de valeurs saisies
browser_totpTOTP depuis Secrets / Trousseau macOS → browser_fill. Jaune. La graine n’est jamais renvoyée
browser_screenshot / browser_get_content / browser_closeCapture, texte, fin du processus (le profil reste sur le disque)
agent_browser_status / agent_browser_runSidecar agent-browser recommandé (références @e1, Apache-2.0) — Browser Use
browser_use_status / browser_use_execAncien sidecar CLI Python (Browser Use)
opencode_status / opencode_runSidecar facultatif du moteur de code OpenCode (OpenCode). Status est vert ; run est rouge + approbation. opencode_run ne s’exécute qu’à l’intérieur d’une conversation. Dans la tâche, OpenCode peut lire la mémoire d’EYAS avec les mêmes memory_search / memory_expand en lecture seule, verrouillés sur le projet de la conversation et partageant le budget de 3 appels du tour appelant ; il ne peut pas écrire la mémoire d’EYAS.

Les outils navigateur d’EYAS, agent_browser_*, browser_use_* et opencode_* parviennent aussi aux modèles CLI (Claude Code, Grok, Kimi) par le pont EYAS, sous le même portail, les mêmes approbations et la même portée d’outils que pour les modèles d’API.

Studio (module facultatif)

Des moteurs locaux, pas Médias. Voir Studio.

OutilRôle
hyperframes_*Composition HTML → MP4 déterministe (Hyperframes)
videouse_*Rushes + EDL → MP4 (Video Use)

Le polissage de captures d’écran n’est pas un outil Studio. Recordly est un compagnon AGPL sous Extensions — pas d’outils recordly_*.

E-mail (brouillon → approbation → envoi)

OutilRôle
email_create_draftCréer un brouillon local
email_approve_draftMarquer le brouillon comme approuvé
email_send_draftEnvoyer seulement s’il est approuvé

Odoo (module facultatif)

Instance en direct (JSON-RPC) :

OutilRôle
odoo_search_tasksChercher des tickets/tâches (surtout en lecture)
odoo_get_taskRécupérer une tâche
odoo_message_postPublier un message dans le chatter
odoo_write_taskÉcriture contrôlée

Index de sources local (chaîne de développement) :

OutilRôle
odoo_search_modelTrouver _name / _inherit dans le Python local
odoo_search_fieldTrouver les affectations fields.*
odoo_search_xml_idTrouver des identifiants d’enregistrements XML

Les racines se résolvent depuis : épinglage de la conversation/du projet → Sources de recherche (family: odoo) → EYAS_ODOO_SOURCES_JSON / EYAS_ODOO_SOURCE_PATHS. Filtres d’outil facultatifs : label, labels, sourceIds, version, edition. Citations : [source:odoo-src:label:file:line].

Skill : coding/odoo/odoo-dev-chain. Identifiants en direct via Connexions (type Odoo). Plusieurs versions dans l’interface : Recherche · Projets · onglet Sources de la conversation.

Inventaire des connexions

OutilRôle
connections_list / connections_catalogInventaire + catalogue
connections_testContrôle de santé
connections_proposeProposer une connexion à l’approbation humaine

Médias (module facultatif)

Connectez Magnific, Higgsfield, fal ou HeyGen sous Médias. Les agents reçoivent cinq outils partagés, pas un par modèle de fournisseur. Vidéo de présentateur / talking head : épinglez provider: heygen.

OutilRôleRisque
media_generateLancer image / vidéo / audio / upscale / retouche / 3Dyellow
media_waitInterroger jusqu’à la fin du jobyellow
media_catalogLister les modèles d’un typegreen
media_balanceCrédits restantsgreen
media_historyJobs récentsgreen

Les fichiers terminés entrent dans Documents et sont joints au tour qui les a produits.

Autres groupes enregistrés

Ils apparaissent dans le catalogue quand leur module est activé : outils board, conversation, document, knowledge, research, schedule, channel envoyer/lister, A2A delegate, et en option Google Docs.

Routage d’agents (enregistré par le module agent, non dupliqué dans ce catalogue) :

OutilRôleRisque
run_specialistLancer un spécialiste activé et attendre le résumé. Alias : delegate_to_agent. Le seul moyen de lancer des spécialistes chez tous les fournisseurs — l’outil de sous-agents propre à Claude Code n’est pas proposé.green
handoff_to_colleagueOuvrir le fil d’accueil d’un autre collègue et y lancer tout de suite une exécution, avec le brief comme objectif ; refusé tant que ce fil est occupé.green
assign_taskCarte de tableau asynchrone pour un agent activé.green
propose_teamCarte pour des rôles manquants, un travail d’envergure ou une demande d’équipe explicite.yellow
propose_agent_creationProposer un nouveau modèle de spécialiste.yellow

Voir Équipes et délégation.

Parité CLI MCP

Quand des agents tournent sur Grok CLI ou Kimi Code CLI, EYAS injecte un pont MCP stdio pour que ces hôtes partagent les mêmes outils ToolExecutor que les sessions in-process / Claude Code — outils de mémoire compris. Chaque tour a son propre secret, lié côté serveur à cette conversation, cet agent, ce projet, ces dossiers et cette portée d’outils, et les appels relayés passent toujours par le portail de sécurité. Sur les deux ponts — le serveur MCP EYAS in-process de Claude Code et le pont Grok/Kimi —, une CLI reçoit exactement la liste Tools de l’agent plus memory_search / memory_expand (tous les outils si la liste est vide), aucun outil de délégation dans une conversation Solo, et pas les outils pour lesquels l’équivalent propre de la CLI est autorisé (read_file, grep, glob toujours ; write_file, edit_file tant que la liste autorise l’écriture ; run_command, git_status, git_diff tant qu’elle autorise le shell). La même liste limite aussi les outils d’écriture, de shell et web propres de la CLI (voir Agents — Outils). Un appel à tout autre outil est refusé et s’affiche comme Refusé. EYAS teste le pont à chaque démarrage et journalise un avertissement quand Grok/Kimi n’atteignent pas les outils EYAS. Chaque hôte nomme les outils à sa façon (Grok : use_tool avec eyas__<nom>). Voir MCP.