Isi-APP Docs fonctionnelles
Toutes les docs
Markdown brut
Outils IA — Packs Core et Project
Actif ai functional Revu le 2026-07-13 ai/ai-tool-calling-lot-bc.md

Outils IA — Packs Core et Project

À quoi ça sert

Cette fonctionnalité permet aux assistants IA d'ISI-APP d'aller chercher eux-mêmes des informations dans l'application (projets, backlogs, tâches, contexte utilisateur) au lieu de se contenter de générer du texte. Concrètement, quand un utilisateur pose une question à un assistant IA configuré avec ces packs, l'IA peut interroger la base de données en temps réel pour fournir une réponse précise et à jour.

Deux packs d'outils sont disponibles :

  • Pack core — outils transverses sans pré-requis : récupérer le contexte de l'utilisateur courant, résoudre un nom en identifiant.
  • Pack project — outils dédiés au module Projets : lister/consulter projets, backlogs, tâches projet, sous-tâches de checklist, et migrer les backlogs non terminés d'un sprint vers le suivant.

Outils disponibles

Pack core (toujours activable)

Outil Rôle
me Donne à l'IA le contexte de l'utilisateur courant (qui je suis, mon entité, mes droits)
resolve Convertit un nom (« le projet Alpha », « Marie Dupont ») en identifiant exploitable par les autres outils

Pack project (nécessite le module projet activé)

Outil Rôle
projects Lister ou consulter les projets accessibles à l'utilisateur
backlogs Lister ou consulter les backlogs (user stories / demandes), même en mode multi-projets
project_tasks Lister les tâches de projet (ComTask)
backlog_tasks Lister les sous-tâches d'une checklist de backlog
migrate_sprint_backlogs Migrer les backlogs non terminés d'un sprint vers le sprint suivant (écriture, avec confirmation)

Comment l'utiliser (côté admin)

Les packs s'activent dans la configuration d'un assistant IA (interface /admin/ai, formulaire d'assistant, section Outils IA disponibles). Cocher un pack le rend disponible pour cet assistant ; les utilisateurs qui l'utilisent verront alors l'IA aller chercher la réponse dans le module concerné.

Si un assistant n'a aucun pack coché, il fonctionne en mode chat classique (génération de texte uniquement).

Comportements visibles pour l'utilisateur

  • Pagination : les listes renvoyées par l'IA sont paginées par lots de 10 résultats. Si l'utilisateur veut la suite, il suffit de demander « la suite » ou « les 10 suivants ».
  • Sécurité multi-tenant : l'IA ne voit jamais que les données de l'entité de l'utilisateur courant. Les projets confidentiels (blsecret) et les ACL ressources sont respectés sans exception.
  • Filtre « mes tâches » : sémantique métier ISI — une tâche que j'ai créée sans l'affecter à quelqu'un est considérée comme « ma tâche ». Le filtre mine=true couvre ce cas (les tâches affectées + les tâches que j'ai créées sans affectation). Le filtre « tâches de X » utilise un autre mécanisme (assigned_to).
  • Tâches vs backlogs : ce sont deux concepts distincts en ISI-APP. Un backlog est une user story / demande, une tâche projet est un travail concret à réaliser. Aucun lien formel n'existe entre les deux en base — l'IA traite les deux séparément.

Points d'attention

  • Module ACL requis : un assistant peut avoir le pack project coché, mais si le tenant n'a pas le module projet activé, le pack est filtré automatiquement et n'est jamais exposé à l'IA. Pas de fuite de capacités.
  • Confirmation avant migration de sprint : migrate_sprint_backlogs est le premier outil d'écriture du pack project. L'IA ne migre jamais de backlogs directement : elle présente un aperçu (nombre de backlogs concernés, sprint source et cible détectés automatiquement) et attend une confirmation explicite de l'utilisateur avant d'appliquer le changement. Seuls les backlogs non clos (hors statuts Real, Valid, Refus) sont déplacés.
  • Migrer seulement ses propres backlogs : le paramètre mine=true de migrate_sprint_backlogs restreint l'aperçu (et donc la migration) aux backlogs dont l'utilisateur courant est responsable. Si l'utilisateur demande « seulement les miens » après un premier aperçu complet, l'IA doit relancer l'outil avec mine=true plutôt que de reproposer le même aperçu.
  • Résolution automatique du sprint : seul le projet est à préciser. Sans autre indication, l'outil cible le sprint en cours (aujourd'hui). Si l'utilisateur cite une autre période (« le sprint de juillet », « celui du 07/26 »), l'IA transmet le mois/l'année et l'outil retrouve le sprint par son nom (convention MM/YY). L'utilisateur n'a jamais besoin de connaître un identifiant technique de sprint.
  • Modèles « mini » : avec trop de packs activés, certains modèles IA bas de gamme peuvent halluciner ou prétendre ne pas avoir accès à un outil pourtant disponible. Limiter le nombre de packs aux besoins réels de l'assistant.
  • Diagnostic : la commande php artisan ai:diagnose-tools <assistant_id> <user_id> permet de vérifier exactement ce qu'un assistant donné expose à un utilisateur donné (utile pour comprendre un cas où l'IA dit « je n'ai pas accès à X »).

Cas d'usage typiques

  • « Liste-moi mes 5 derniers projets en cours »
  • « Quelles sont mes tâches en retard ? »
  • « Quel est le statut du backlog #1234 ? »
  • « Montre-moi les sous-tâches de ce backlog »
  • « Migre les backlogs non terminés du sprint en cours vers le sprint suivant »

Doc technique : .claude/technical-docs/ai/ai-tool-calling-lot-bc.md