Scrydon
Ontology

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

ToolPurpose
Get Ontology ObjectFetch a single typed Object by id.
Traverse Ontology LinksGiven an instance and a link type, return the connected instances.
Run Ontology ActionDispatch 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.

Input:
  fromType: "RegulatedEntity"
  fromId:   "e1a2b3c4-0001"
  linkType: "supervisedBy"
  page:     1
  pageSize: 50
Output:
  instances: [ { id, … } ]
  nextPage:  2  // or null when exhausted

Each 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 citation

Multi-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 regulators

Action 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 reassignment

What the agent doesn't see

  • Raw column names. The agent operates on typed properties (riskClassification), not on risk_class columns.
  • 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.
On this page

On this page