Utilisation dans les workflows
Lisez des objets typés, parcourez des liens et déclenchez des actions depuis un workflow — les mêmes blocs que tout autre agent utilise.
Les workflows accèdent à l'ontologie via quatre outils, tous exposés par le produit scrydon:ontology. Ils apparaissent dans le sélecteur Outils de tout bloc Agent.
Les quatre outils
| Outil | Rôle |
|---|---|
Get Ontology Object | Récupérer un objet typé unique par son id. |
Traverse Ontology Links | Étant donné une instance et un type de lien, renvoyer les instances connectées. |
Run Ontology Action | Déclencher une action typée sur une instance. |
Search Ontology | Recherche hybride sur les instances d'Objets — une requête structurée et une recherche par mots-clés côte à côte. |
Chaque outil est typé — le LLM voit les types d'objets et les types de liens que votre organisation a définis, et peut les appeler par leur nom.
Comment les outils s'exécutent
Ces outils ne s'exécutent pas dans le bac à sable du workflow. Scrydon les exécute en interne, pour votre compte, après avoir autorisé l'appel, obtenu la confirmation que l'opération exige, résolu les références d'objets déclarées par le bloc et exécuté l'analyse DLP. Chaque appel atteint ensuite l'ontologie en portant votre identité — votre session utilisateur, ou l'habilitation d'exécution sous laquelle tourne une exécution planifiée — jamais une identité de service.
C'est ce qui rend les garanties listées en bas de page applicables plutôt que théoriques : l'ontologie autorise un principal, donc le masquage, les filtres de lignes et les droits d'action sont résolus par rapport à vous, et non par rapport au moteur de workflow. Une exécution incapable de présenter une identité vérifiée exacte ne se rabat pas sur une identité plus large — l'outil échoue avec principal_required et le workflow voit l'erreur.
Get Ontology Object
Input:
objectType: "RegulatedEntity"
objectId: "e1a2b3c4-0001"
Output:
id: "e1a2b3c4-0001"
classId: "RegulatedEntity" // v2 identifie un type d'objet par son nom d'API
className: "RegulatedEntity"
properties: { legalName, riskClassification, headquartersCountry, … }objectType et objectId sont tous deux obligatoires : un objet est adressé par son type d'objet et son id, jamais par l'id seul. Les propriétés que l'appelant n'a pas l'habilitation de voir sont masquées selon la stratégie de masquage de la colonne (redact, null, deny) avant de quitter l'ontologie ; une valeur masquée arrive donc masquée.
Traverse Ontology Links
Input:
objectType: "RegulatedEntity" // le type d'objet de l'instance de départ — obligatoire
objectId: "e1a2b3c4-0001"
linkType?: "supervisedBy" // omettre pour suivre tous les types de liens
depth?: 1 // 1–3, 1 par défaut
Output:
nodes: [ { objectType, objectId, properties, … } ]
edges: [ { linkId, linkType, sourceRef, targetRef, direction, … } ]objectType est obligatoire pour la même raison que sur Get Ontology Object : la lecture des voisins est indexée par (type d'objet, id). Dans le bloc Ontology, le sélecteur Object Type est affiché à la fois pour Get Ontology Object et Traverse Links ; un bloc Agent le fournit comme argument de l'outil. nodes et edges sont alignés par index — edges[i] est le lien qui relie l'instance de départ à nodes[i] — et l'instance de départ elle-même ne figure pas dans nodes. Chaque voisin est un objet entièrement typé (même projection que Get Object). Le masquage et les filtres de lignes s'appliquent.
Run Ontology Action
Input:
actionType: "AssignAsset"
subjectRef?: "asset-0001" // id de l'instance d'objet sujet
input?: { assetId, userId }
Output:
outboxId: "act_01J…" // l'id de l'action validée
status: "committed"
idempotent: false // true lorsqu'une exécution relancée a rejoué une validation antérieureLe déclenchement d'une action passe par le point de décision de politique. Une relance de la même exécution de workflow rejoue la validation antérieure au lieu de déclencher deux fois (idempotent: true). Les échecs reviennent sous forme d'erreurs typées sur lesquelles l'agent peut brancher.
Search Ontology
Input:
query: "regulators supervising Acme Holdings"
ontology?: "compliance" // omit to search every readable ontology
limit?: 20
Output:
results: [ { objectType, id, properties, matchedVia } ]
counts: { ontology, lexical, merged }
poolSize: 412
poolCapped: falseChaque résultat indique comment il a été trouvé (matchedVia) : par la requête structurée dérivée par le LLM, par la recherche par mots-clés, ou les deux. poolSize est le nombre de lignes gouvernées évaluées par la recherche ; lorsque poolCapped vaut true, la fenêtre évaluée a atteint le plafond du serveur, les décomptes sont donc approximatifs plutôt qu'exhaustifs. Le masquage et les filtres de lignes s'appliquent à chaque résultat.
Le bloc Agent
Dans un bloc Agent, attacher les outils scrydon:ontology donne à l'agent accès aux quatre. Le LLM voit les types d'objets et les types de liens comme partie intégrante du schéma d'outils ; il peut planifier des appels comme « trouver le régulateur qui supervise Acme Holdings » sans noms de tables codés en dur.
Sélectionner une instance d'objet
Lorsqu'un champ de workflow demande une instance d'objet, l'éditeur procède en deux étapes :
- Sélectionnez un type d'objet lié. Seuls les types connectés à une source de données active sont disponibles.
- Sélectionnez un objet de ce type dans la liste bornée de résultats.
L'éditeur enregistre une référence stable contenant exactement le type et l'identifiant de l'objet, par exemple { objectType: "RegulatedEntity", objectId: "e1a2b3c4-0001" }. Le libellé affiché est uniquement une donnée de présentation et n'est pas enregistré dans la référence.
Après un rechargement, l'éditeur affiche la première valeur non vide disponible parmi les propriétés name, displayName et label de l'objet. Si aucune n'est disponible — ou si l'objet se trouve en dehors de la première page de résultats — il affiche l'identifiant de l'objet. Ce repli ne modifie pas la référence enregistrée.
Patterns courants
Réponse ancrée dans la récupération
Utilisateur : "Quelle est la classification de risque de Neptune Capital ?"
Agent → Get Ontology Object(type=RegulatedEntity, lookup=Neptune Capital)
Agent → renvoie la classification de risque + citation de provenanceTraversée multi-sauts
Utilisateur : "Quels régulateurs supervisent les entités à haut risque en Belgique ?"
Agent → Rechercher RegulatedEntity (filtre : country=Belgium, risk=high)
Agent → Pour chacune : Traverser le lien "supervisedBy"
Agent → Agréger les régulateurs distinctsAction avec garde-fous
Utilisateur : "Assigner l'actif A-123 à Maya"
Agent → Run Ontology Action(AssignAsset, { assetId: A-123, userId: Maya })
Action → PreconditionFailed: asset-unassigned (l'actif est actuellement assigné à John)
Agent → signale l'échec, demande à l'utilisateur de confirmer la réassignationCe que l'agent ne voit pas
- Les noms de colonnes bruts. L'agent opère sur des propriétés typées (
riskClassification), pas sur des colonnesrisk_class. - Les données des autres tenants. L'autorisation est appliquée à chaque appel d'outil.
- Les valeurs masquées. Les propriétés que l'utilisateur appelant ne peut pas voir sont renvoyées masquées.
- Les actions que l'utilisateur appelant ne peut pas déclencher. Le schéma d'outils est filtré aux actions pour lesquelles l'appelant dispose d'autorisations.
Voir aussi
- Types d'objets — ce que l'agent lit.
- Types de liens — ce que la traversée parcourt.
- Types d'actions — ce que le dispatch exécute.
- Blocs → Agent — où les outils sont attachés.