Using in workflows
Read typed Objects, traverse links, and dispatch actions from a workflow — the same blocks any other agent uses.
Workflows use the ontology through three tools, all exposed by the scrydon:ontology product. They show up in the Tools picker of any Agent block.
The three tools
| Tool | Purpose |
|---|---|
Get Ontology Object | Fetch a single typed Object by id. |
Traverse Ontology Links | Given an instance and a link type, return the connected instances. |
Run Ontology Action | Dispatch a typed action against an instance. |
Each tool is typed — the LLM sees the object types and link types your organisation has defined, and it can call them by name.
Get Ontology Object
Input:
type: "RegulatedEntity"
id: "e1a2b3c4-0001"
Output:
instance: { id, legalName, riskClassification, headquartersCountry, … }
provenance: { bindingId, materializedAt, dlpLabels }Properties the caller doesn't have clearance to see are masked according to the column's mask strategy (redact, null, deny). The output also carries the source-row provenance so the agent can cite where the answer came from.
Traverse Ontology Links
Input:
fromType: "RegulatedEntity"
fromId: "e1a2b3c4-0001"
linkType: "supervisedBy"
page: 1
pageSize: 50
Output:
instances: [ { id, … } ]
nextPage: 2 // or null when exhaustedEach connected instance is a fully typed Object (same projection as Get Object). Masking and row filters apply.
Run Ontology Action
Input:
type: "AssignAsset"
input: { assetId, userId }
idempotencyKey?: "..."
Output:
result: { assetId, ownerId, assignedAt }
// or error: { kind: "PreconditionFailed", rule: "asset-unassigned", … }Action dispatch passes through the policy decision point. Failures come back as typed errors the agent can branch on.
The Agent block
In an Agent block, attaching the scrydon:ontology tools gives the agent access to all three. The LLM sees the object types and link types as part of the tool schema; it can plan calls like "find the regulator that supervises Acme Holdings" without hardcoded table names.
Common patterns
Retrieval-grounded answer
User: "What's the risk classification of Neptune Capital?"
Agent → Get Ontology Object(type=RegulatedEntity, lookup=Neptune Capital)
Agent → returns risk classification + provenance citationMulti-hop traversal
User: "Which regulators supervise high-risk entities in Belgium?"
Agent → Search RegulatedEntity (filter: country=Belgium, risk=high)
Agent → For each: Traverse "supervisedBy" link
Agent → Aggregate distinct regulatorsAction with guardrails
User: "Assign asset A-123 to Maya"
Agent → Run Ontology Action(AssignAsset, { assetId: A-123, userId: Maya })
Action → PreconditionFailed: asset-unassigned (asset is currently assigned to John)
Agent → reports the failure, asks the user to confirm reassignmentWhat the agent doesn't see
- Raw column names. The agent operates on typed properties (
riskClassification), not onrisk_classcolumns. - Other tenants' data. Authorisation is enforced at every tool call.
- Masked values. Properties the calling user can't see come back masked.
- Actions the calling user can't dispatch. The tool schema is filtered to the actions the caller has grants for.
Related
- Object types — what the agent reads.
- Link types — what traversal walks.
- Action types — what dispatch executes.
- Blocks → Agent — where the tools are attached.