Cognitive Trust Scoring
Real-time behavioral assessment that determines how much autonomy an AI agent should have for financial transactions.
Overview
Cognitive Trust Scoring (CTS) is a continuous evaluation system that monitors agent behavior across multiple dimensions. Unlike static permission models, CTS adapts in real time — agents that behave consistently and within expectations earn greater autonomy, while agents showing erratic or suspicious patterns face increasing restrictions.
CTS is calculated on every authorization request and stored as a rolling metric for each agent. The score ranges from 0.0 to 1.0, with higher values indicating greater trustworthiness.
How it works
Each authorization request triggers a CTS evaluation that considers the agent's full behavioral history. The system analyzes five weighted dimensions and produces a composite score that maps to a trust zone. The zone then determines the agent's cognitive limits — the maximum spending multiplier applied to mandate constraints.
The 5 dimensions
| Dimension | What it measures | Weight |
|---|---|---|
| Context Coherence | Whether the agent's stated intent matches its transaction patterns and historical context | 20% |
| Reasoning Quality | Logical consistency of the agent's intent_context explanations across transactions | 20% |
| Mandate Compliance | How well the agent stays within established mandate boundaries without triggering limits | 25% |
| Behavioral Consistency | Stability of spending patterns, merchant choices, and timing compared to the agent's own history | 20% |
| Temporal Stability | Long-term reliability — agents that maintain good behavior over extended periods score higher | 15% |
CTS Zones
The composite CTS score maps to one of four zones, each with distinct behavioral implications:
| Zone | Score Range | Meaning |
|---|---|---|
| GREEN | 0.75 — 1.00 |
Agent is behaving well within expected parameters. Full autonomy within mandate limits. Eligible for trust promotion. |
| AMBER | 0.50 — 0.74 |
Minor behavioral deviations detected. Agent still operational but with reduced cognitive limits. Not eligible for trust promotion. |
| RED | 0.25 — 0.49 |
Significant behavioral anomalies. Agent faces severe spending restrictions. Triggers cts.red webhook event. Step-up challenges likely. |
| CRITICAL | 0.00 — 0.24 |
Agent behavior is fundamentally compromised. Most transactions declined. Triggers cts.critical webhook. Session termination imminent. |
Zone effects
Each zone applies a cognitive limit multiplier to the agent's mandate constraints. This multiplier effectively reduces (or maintains) the maximum amount the agent can spend per transaction relative to its configured mandate.
| Zone | Multiplier | Effect |
|---|---|---|
| GREEN | 1.0 |
Full mandate limit available. Agent can spend up to configured maximums. |
| AMBER | 0.7 |
Effective limit reduced to 70% of mandate. A $500 mandate becomes effectively $350. |
| RED | 0.4 |
Effective limit reduced to 40% of mandate. A $500 mandate becomes effectively $200. |
| CRITICAL | 0.1 |
Effective limit reduced to 10% of mandate. A $500 mandate becomes effectively $50. |
Trust promotion eligibility
Agents can be promoted to higher trust tiers (verified, trusted) only while in the GREEN zone. Promotion requires sustained good behavior over a minimum number of successful transactions and time period. If an agent drops below GREEN, all promotion progress is frozen until the score recovers.
Default thresholds: Verified requires 50+ successful transactions over 72+ hours with less than 5% decline rate. Trusted requires 200+ successful transactions over 168+ hours with less than 2% decline rate.
Reading CTS from the API
Retrieve the current CTS and behavioral metrics for any agent using the metrics endpoint:
metrics = client.agents.metrics(agent_id="agent_abc123") print(f"Trust Score: {metrics.trust_score}") # 0.82 print(f"Trust Zone: {metrics.trust_zone}") # "GREEN" print(f"Cognitive Multiplier: {metrics.cognitive_limit_multiplier}") print(f"Promotion Tier: {metrics.promotion_tier}") # "verified" print(f"Successful Txns: {metrics.successful_txns}") # 127 print(f"Decline Rate: {metrics.decline_rate}") # 0.02
const metrics = await client.agents.metrics("agent_abc123"); console.log(`Trust Score: ${metrics.trust_score}`); // 0.82 console.log(`Trust Zone: ${metrics.trust_zone}`); // "GREEN" console.log(`Cognitive Multiplier: ${metrics.cognitive_limit_multiplier}`); console.log(`Promotion Tier: ${metrics.promotion_tier}`); // "verified" console.log(`Successful Txns: ${metrics.successful_txns}`); // 127 console.log(`Decline Rate: ${metrics.decline_rate}`); // 0.02
curl https://mandateai-elwri.ondigitalocean.app/api/v1/agents/agent_abc123/metrics \
-H "X-API-Key: mdt_test_your_key_here"
Example response:
{
"agent_id": "agent_abc123",
"trust_score": 0.82,
"trust_zone": "GREEN",
"cognitive_limit_multiplier": 1.0,
"promotion_tier": "verified",
"successful_txns": 127,
"total_txns": 130,
"decline_rate": 0.023,
"first_seen": "2026-01-15T08:30:00Z",
"dimensions": {
"context_coherence": 0.88,
"reasoning_quality": 0.79,
"mandate_compliance": 0.91,
"behavioral_consistency": 0.76,
"temporal_stability": 0.84
}
}
Configuring thresholds
You can customize CTS zone boundaries and multipliers for your organization using the thresholds endpoint. Changes take effect immediately for all subsequent authorization requests.
# Customize zone boundaries and multipliers result = client.thresholds.update( cts_green_threshold=0.80, # Stricter GREEN entry (default 0.75) cts_amber_threshold=0.55, # Adjust AMBER boundary cts_red_threshold=0.30, # Adjust RED boundary cts_green_multiplier=1.0, # Keep full limit in GREEN cts_amber_multiplier=0.6, # Stricter AMBER reduction cts_red_multiplier=0.3, # Stricter RED reduction cts_critical_multiplier=0.05, # Nearly zero in CRITICAL ) # View current resolved thresholds current = client.thresholds.get() print(current)
// Customize zone boundaries and multipliers const result = await client.thresholds.update({ cts_green_threshold: 0.80, // Stricter GREEN entry (default 0.75) cts_amber_threshold: 0.55, // Adjust AMBER boundary cts_red_threshold: 0.30, // Adjust RED boundary cts_green_multiplier: 1.0, // Keep full limit in GREEN cts_amber_multiplier: 0.6, // Stricter AMBER reduction cts_red_multiplier: 0.3, // Stricter RED reduction cts_critical_multiplier: 0.05, // Nearly zero in CRITICAL }); // View current resolved thresholds const current = await client.thresholds.get(); console.log(current);
curl -X PUT https://mandateai-elwri.ondigitalocean.app/api/v1/thresholds \ -H "X-API-Key: mdt_test_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "cts_green_threshold": 0.80, "cts_amber_threshold": 0.55, "cts_red_threshold": 0.30, "cts_green_multiplier": 1.0, "cts_amber_multiplier": 0.6, "cts_red_multiplier": 0.3, "cts_critical_multiplier": 0.05 }'
Call client.thresholds.reset() to revert all overrides to platform defaults. This is useful if custom thresholds cause unexpected behavior during testing.