Digital Intelligence Actor Classification
Understand how Digital Intelligence identifies whether a session was driven by a person, a script, or an AI agent in RiskOS™ evaluations.
This is a GA preview of a Premier Feature: temporarily available for testing and evaluation
Actor Classification is a Premier feature. It is temporarily available to customers for testing and evaluation. Availability, behavior, and packaging may change before general availability. Contact your Socure account team to learn more.
Actor Classification
When the Digital Intelligence enrichment runs in a RiskOS™ workflow, the Evaluation response contains an actorClassification object. This object tells you whether automation was detected in the session, whether that automation looks like a script or an AI agent, and, when we can tell, who or what is behind it.
The object is returned at data_enrichments[].response.digitalIntelligence.actorClassification, alongside the device, behavioral, and velocityMetrics objects.
{
"data_enrichments": [
{
"enrichment_name": "Socure Digital Intelligence",
// ...
"response": {
"digitalIntelligence": {
// ...
// highlight-start
"actorClassification": {
"summary": {
"isAutomated": true,
"isAgentic": true
},
"agentAutomationDetails": {
"type": "personal_agent",
"name": "muse",
"indicator": "device"
}
}
// highlight-end
}
}
}
]
}How actor classification works
Actor classification looks at the device data and the on-page behavior (typing, clicks, field fills, and timing) collected by the Digital Intelligence SDK for the di_session_token. Each evaluation is classified on its own, so a session can receive different results across evaluations. For example, a person may start a session and an AI agent may take over later.
Classification answers three questions:
-
Is the session automated? (
isAutomated) -
If it is automated, is it driven by an AI agent or by a script? (
isAgentic) -
When it can be shown, which agent or which script operator is behind it? (
agentAutomationDetails,scriptAutomationDetails)
Note:
Actor classification is available for web sessions using Digital Intelligence Web SDK version 2.9.0 or later. Sessions from mobile apps, older SDK versions, or pages with no recorded interaction return an
inconclusivenessReasoninstead of a classification.
Fields
Empty fields are omitted from the response.
-
summary:isAutomated:trueif software, not a person, drove the session.falsemeans no automation was detected. It does not prove a person was present.isAgentic: Only set whenisAutomatedistrue.true: an AI agent drove the session, meaning software that reads the page and decides what to do next, usually on a person's behalf.false: a script drove the session, meaning software that follows fixed steps.- Empty: automation was detected, but the evidence fits a script and an agent equally.
scriptAutomationRisk: Only set whenisAgenticisfalse.low: we know who runs the script and confirmed it from the network it came from, such as an account aggregator or a known search crawler. This is usually expected traffic.medium: a script we can't name or confirm. Whether it is wanted is your decision.high: the script claims to be a known crawler but comes from a network that crawler doesn't use. Someone is pretending.
-
scriptAutomationDetails: Present whenisAgenticisfalseor empty.type:account_aggregator,accessibility_reader,ads_crawler,search_crawler, orunknown.name: the operator, when identified. For example:plaid,mx,yodlee,googlebot,bingbot,google_read_aloud.indicator: how the operator was identified.isp,isp+device,ua+asn: confirmed by the operator's own network.asn+device: inferred from a known network and device setup.device: the device setup matches, but the network doesn't confirm it.ua_only: the network contradicts the claimed identity.
-
agentAutomationDetails: Present whenisAgenticistrueor empty.type:personal_agent: a known consumer AI agent acting for its user.vision_agent: an agent that works from screenshots and types and clicks like a person at a computer.dom_agent: an agent that reads the page's code and fills fields directly.unknown: the kind of agent couldn't be determined.
name: the personal agent, when identified:muse,instinct,grok, orgrok_bot.indicator:device(the device matches a known agent),device_partial(part of a known agent's device setup matched), orbehavior(classified by how it types, clicks, and pauses).
-
inconclusivenessReason: Present only whensummaryis empty.
code | message | Meaning |
|---|---|---|
IC_001 | Platform Not Available | Not a web session. Actor classification covers web only. |
IC_002 | Old SDK Version | The SDK is older than 2.9.0, so the needed data isn't collected. |
IC_003 | Insufficient Behavioral Data | The page recorded no typing, clicking, or field activity, and nothing else identified automation. This is not evidence of a bot. |
IC_004 | Other | The session couldn't be classified, for a reason not covered by the codes above. |
Note:
Agent and operator names describe what we observed. Use them alongside the other signals in your RiskOS™ workflow rather than as the only basis for a decision. A missing result (
isAutomated: falseor an inconclusive response) does not confirm a person is present.
Examples
Not automated
No automation was detected in the session.
"actorClassification": {
"summary": {
"isAutomated": false
}
}Known account aggregator
A script ran the session, and we confirmed from its network that it is MX, an account aggregator. The risk is low because this is usually expected traffic.
"actorClassification": {
"summary": {
"isAutomated": true,
"isAgentic": false,
"scriptAutomationRisk": "low"
},
"scriptAutomationDetails": {
"type": "account_aggregator",
"name": "mx",
"indicator": "isp+device"
}
}Unknown script
A script ran the session, but we couldn't identify who runs it. The risk is medium.
"actorClassification": {
"summary": {
"isAutomated": true,
"isAgentic": false,
"scriptAutomationRisk": "medium"
},
"scriptAutomationDetails": { "type": "unknown" }
}AI agent identified by behavior
An AI agent ran the session. We couldn't name it, but its typing and timing match an agent that fills fields directly through the page.
"actorClassification": {
"summary": {
"isAutomated": true,
"isAgentic": true
},
"agentAutomationDetails": { "type": "dom_agent", "indicator": "behavior" }
}Inconclusive
The session used an SDK older than 2.9.0, so no classification could be made.
"actorClassification": {
"inconclusivenessReason": { "code": "IC_002", "message": "Old SDK Version" }
}Updated about 24 hours ago

