Skip to main content

Agent Capabilities

Overview

Agent capabilities define what an AI agent is permitted to do within the Ascend governance platform. Capabilities include action types, resource access, data classification restrictions, and operational constraints. Properly configured capabilities ensure agents operate within security boundaries while maintaining the flexibility to perform their intended functions.

Key Capabilities

  • Action Type Restrictions: Define which action types an agent can perform
  • Resource Access Control: Specify allowed and blocked resources
  • Data Classification Enforcement: Control access based on data sensitivity
  • Rate Limiting: Constrain action throughput
  • Budget Controls: Monitor and limit operational costs
  • Time Windows: Restrict operational hours
  • Anomaly Detection: Identify unusual behavior patterns

How It Works

Capability Evaluation Flow

┌─────────────────────────────────────────────────────────────────────────────┐
│ CAPABILITY EVALUATION PIPELINE │
└─────────────────────────────────────────────────────────────────────────────┘

Action Submitted

v
┌─────────────────┐
│ 1. Agent Active │──── FAIL ────> Action Rejected (Agent Suspended)
│ Check │
└────────┬────────┘
│ PASS
v
┌─────────────────┐
│ 2. Action Type │──── FAIL ────> Action Rejected (Action Not Allowed)
│ Allowed? │
└────────┬────────┘
│ PASS
v
┌─────────────────┐
│ 3. Resource │──── FAIL ────> Action Rejected (Resource Blocked)
│ Permitted? │
└────────┬────────┘
│ PASS
v
┌─────────────────┐
│ 4. Data Class │──── FAIL ────> Action Rejected (Classification Blocked)
│ Allowed? │
└────────┬────────┘
│ PASS
v
┌─────────────────┐
│ 5. Rate Limit │──── FAIL ────> Action Rejected (Rate Limited)
│ OK? │
└────────┬────────┘
│ PASS
v
┌─────────────────┐
│ 6. Budget │──── FAIL ────> Action Rejected (Budget Exceeded)
│ Available? │
└────────┬────────┘
│ PASS
v
┌─────────────────┐
│ 7. Time Window │──── FAIL ────> Action Rejected (Outside Hours)
│ Active? │
└────────┬────────┘
│ PASS
v
┌─────────────────┐
│ 8. Risk Score │
│ Calculation │────────────────> Policy Evaluation
└─────────────────┘

Action Type Categories

CategoryExamplesDefault Risk
Read Operationsquery, read, list, describe, getLow (10-25)
Write Operationscreate, update, modify, put, postMedium (40-60)
Delete Operationsdelete, remove, destroy, drop, truncateHigh (70-90)
Execute Operationsexecute, run, invoke, callMedium-High (50-75)
Admin Operationsadmin, configure, manage, grant, revokeCritical (80-95)

Resource Classification

Resources are evaluated against three lists in order:

  1. Blocked Resources (highest priority): Explicit deny - action immediately rejected
  2. Allowed Resources: Explicit allow - action proceeds to next check
  3. Default Behavior: If not in either list, depends on configuration (default: allow)
Resource Evaluation:
┌─────────────────┐
│ Is resource in │──── YES ────> DENY (immediate)
│ blocked_list? │
└────────┬────────┘
│ NO
v
┌─────────────────┐
│ Is resource in │──── YES ────> ALLOW (proceed)
│ allowed_list? │
└────────┬────────┘
│ NO
v
┌─────────────────┐
│ Default policy? │──── DENY ────> DENY
│ │──── ALLOW ───> ALLOW (proceed)
└─────────────────┘

Configuration

Action Type Configuration

# Define allowed action types for an agent
allowed_action_types = [
# Read operations
"query",
"read",
"list",
"describe",

# Limited write operations
"create",
"update",

# Specific business operations
"invoice_process",
"ticket_route",
"lead_score"
]

Resource Configuration

# Allowed resources (explicit allow list)
allowed_resources = [
"invoice_database",
"vendor_api",
"approval_workflow",
"reporting_service"
]

# Blocked resources (explicit deny list - takes precedence)
blocked_resources = [
"credentials_vault",
"payment_gateway",
"employee_pii",
"production_admin",
"audit_logs_write"
]

Data Classification Configuration

# Allowed data classifications
allowed_data_classifications = [
"public",
"internal",
"confidential-business"
]

# Blocked data classifications (takes precedence)
blocked_data_classifications = [
"pii",
"financial",
"secret",
"top-secret",
"hipaa-phi"
]

Rate Limit Configuration

ParameterTypeDescriptionExample
max_actions_per_minuteintegerMaximum actions per minute100
max_actions_per_hourintegerMaximum actions per hour2000
max_actions_per_dayintegerMaximum actions per day10000

Budget Configuration

ParameterTypeDescriptionExample
max_daily_budget_usdfloatDaily spending limit500.00
budget_alert_threshold_percentintegerAlert at this % usage80
auto_suspend_on_budget_exceededbooleanAuto-suspend when exceededtrue

Time Window Configuration

ParameterTypeDescriptionExample
time_window_enabledbooleanEnable time restrictionstrue
time_window_startstringStart time (HH:MM)"09:00"
time_window_endstringEnd time (HH:MM)"17:00"
time_window_timezonestringTimezone"America/New_York"
time_window_daysarrayAllowed days (1=Mon)[1,2,3,4,5]

Anomaly Detection Configuration

ParameterTypeDescriptionExample
anomaly_detection_enabledbooleanEnable anomaly detectiontrue
baseline_actions_per_hourfloatNormal action rate150.0
baseline_error_ratefloatNormal error rate0.02
baseline_avg_risk_scorefloatNormal risk score35.0
anomaly_threshold_percentfloatAlert on % deviation50.0

Usage Examples

Configure Full Capabilities (Python SDK)

from ascend import AscendClient

client = AscendClient(api_key="your-api-key")

# Update agent with comprehensive capability configuration
agent = client.agents.update(
agent_id="finance-invoice-processor",

# Action type restrictions
allowed_action_types=[
"invoice_read",
"invoice_create",
"invoice_update",
"invoice_submit",
"vendor_lookup",
"approval_request"
],

# Resource access control
allowed_resources=[
"invoice_db",
"vendor_api",
"approval_workflow",
"email_notification"
],
blocked_resources=[
"payment_gateway",
"bank_api",
"employee_pii",
"salary_data",
"credentials_vault"
],

# Data classification
allowed_data_classifications=["public", "internal", "business-confidential"],
blocked_data_classifications=["pii", "financial-regulated", "secret"],

version_notes="Updated capabilities for Q1 2026"
)

Configure Rate Limits (cURL)

curl -X PUT https://api.ascend.security/api/registry/agents/my-agent/rate-limits \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"max_actions_per_minute": 50,
"max_actions_per_hour": 1000,
"max_actions_per_day": 5000
}'

Configure Budget Controls (cURL)

curl -X PUT https://api.ascend.security/api/registry/agents/my-agent/budget \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"max_daily_budget_usd": 250.00,
"budget_alert_threshold_percent": 75,
"auto_suspend_on_exceeded": true
}'

Configure Time Windows (cURL)

curl -X PUT https://api.ascend.security/api/registry/agents/my-agent/time-window \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"enabled": true,
"start_time": "08:00",
"end_time": "18:00",
"timezone": "America/New_York",
"allowed_days": [1, 2, 3, 4, 5]
}'

Configure Data Classifications (cURL)

curl -X PUT https://api.ascend.security/api/registry/agents/my-agent/data-classifications \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"allowed_classifications": ["public", "internal"],
"blocked_classifications": ["pii", "financial", "secret", "hipaa"]
}'

Get Agent Usage Statistics

curl -X GET https://api.ascend.security/api/registry/agents/my-agent/usage \
-H "Authorization: Bearer YOUR_API_KEY"

# Response:
# {
# "agent_id": "my-agent",
# "status": "active",
# "rate_limits": {
# "per_minute": {"limit": 50, "current": 12, "remaining": 38},
# "per_hour": {"limit": 1000, "current": 245, "remaining": 755},
# "per_day": {"limit": 5000, "current": 1823, "remaining": 3177}
# },
# "budget": {
# "max_daily_usd": 250.00,
# "current_spend_usd": 87.50,
# "remaining_usd": 162.50,
# "alert_sent": false
# },
# "anomaly_detection": {
# "enabled": true,
# "last_check": "2026-01-20T14:00:00Z",
# "count_24h": 0
# },
# "health": {
# "status": "online",
# "last_heartbeat": "2026-01-20T14:30:00Z",
# "error_rate_percent": 0.5
# }
# }

Set Anomaly Baselines

# After agent behavior stabilizes, set baselines
curl -X POST https://api.ascend.security/api/registry/agents/my-agent/set-baselines \
-H "Authorization: Bearer YOUR_API_KEY"

# Response:
# {
# "success": true,
# "agent_id": "my-agent",
# "baselines": {
# "actions_per_hour": 150.0,
# "error_rate": 0.02,
# "avg_risk_score": 35.0,
# "threshold_percent": 50.0
# }
# }

Check for Anomalies

curl -X GET https://api.ascend.security/api/registry/agents/my-agent/anomalies \
-H "Authorization: Bearer YOUR_API_KEY"

# Response (when anomaly detected):
# {
# "agent_id": "my-agent",
# "anomaly_detection": {
# "enabled": true,
# "has_anomaly": true,
# "severity": "high",
# "anomalies": [
# {
# "type": "action_rate_spike",
# "baseline": 150.0,
# "current": 450.0,
# "deviation_percent": 200.0,
# "message": "Action rate 3x above baseline"
# }
# ],
# "count_24h": 3
# }
# }

Best Practices

Action Type Guidelines

Principle of Least Privilege: Only grant action types that are absolutely necessary.

# GOOD - Specific, minimal permissions
allowed_action_types = [
"invoice_read",
"invoice_create",
"invoice_update"
]

# BAD - Overly broad permissions
allowed_action_types = [
"read",
"write",
"delete",
"execute"
]

Resource Access Guidelines

Default Deny Pattern: Use allowed_resources as a whitelist, not blocked_resources as a blacklist.

# PREFERRED - Explicit allow list (default deny)
allowed_resources = [
"specific_database_1",
"specific_api_2",
"specific_service_3"
]
blocked_resources = [] # Empty - not in allowed = blocked

# LESS PREFERRED - Block list only (default allow)
allowed_resources = [] # Empty = allow all not blocked
blocked_resources = [
"sensitive_resource_1",
"sensitive_resource_2"
]
# Risk: New sensitive resources may not be blocked

Rate Limiting Guidelines

Agent TypeRecommended per_minuteRecommended per_hour
Low-volume batch10100
Standard API601000
High-throughput2005000
Streaming50010000

Warning Thresholds: Set alerts at 80% of limits to catch issues before hard blocks.

Budget Guidelines

  1. Start Conservative: Begin with lower budgets and increase based on actual usage
  2. Alert Early: Set alert thresholds at 60-75% to allow time to react
  3. Auto-Suspend Critical: Enable auto-suspend for production agents
  4. Review Weekly: Check budget utilization trends weekly

Time Window Guidelines

Use CaseRecommended Window
Business operations08:00-18:00 local, Mon-Fri
Global operations24/7 (no restrictions)
Maintenance windowsSpecific hours on weekends
High-risk operationsReduced hours with monitoring

Anomaly Detection Guidelines

  1. Wait for Stability: Set baselines only after 2+ weeks of normal operation
  2. Start Lenient: Begin with 50% deviation threshold, tighten as needed
  3. Multiple Metrics: Monitor action rate, error rate, AND risk score
  4. Alert, Don't Block: Use anomalies for alerting, not automatic blocking (initially)

Security Recommendations

  1. Block Sensitive Resources Explicitly: Always list credentials, PII, and payment systems
  2. Limit Delete Operations: Most agents should not have delete permissions
  3. Audit Admin Actions: Any admin-level action types require special scrutiny
  4. Data Classification First: Implement data classification restrictions before going live
  5. Review Quarterly: Audit capabilities quarterly and remove unused permissions

Compliance

Capability management supports compliance with:

  • SOC 2 CC6.1: Logical access controls
  • SOC 2 CC6.2: Access authorization
  • SOC 2 CC7.1: Security incident management
  • PCI-DSS 7.1: Restrict access by business need
  • PCI-DSS 7.2: Access control systems
  • NIST 800-53 AC-3: Access enforcement
  • NIST 800-53 AC-6: Least privilege
  • NIST 800-53 SI-4: Information system monitoring
  • HIPAA 164.312(a): Access control
  • GDPR Article 25: Data protection by design