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.

Promotion requirements

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
  }'
Resetting to defaults

Call client.thresholds.reset() to revert all overrides to platform defaults. This is useful if custom thresholds cause unexpected behavior during testing.

Next steps