For the complete documentation index, see llms.txt. This page is also available as Markdown.

Setting Your Constraints

This is the foundation of the Vishwa model. Before the agent can move a cent, the fund owner seals a constraint policy into the control layer. The agent never sees the full policy - it only ever gets allowed or denied.

Express limits in plain English

set my limits: only trade on Polymarket, max $20 per trade,
$100 per day, buy and sell contracts only - no transfers

Under the hood this becomes a signed constraint policy sealed inside the TEE:

{
  "authorized_agents": [{
    "id": "agent:vishwa-cli",
    "allowed_operations": ["buy_contracts", "sell_contracts"],
    "per_operation_limits": {
      "buy_contracts": {
        "per_tx_usd": 20,
        "daily_usd": 100,
        "monthly_usd": 1000,
        "approved_venues": ["polymarket"],
        "max_slippage": 0.02
      }
    }
  }],
  "global_constraints": {
    "daily_limit_usd": 100,
    "rate_limiting": { "max_operations_per_minute": 5 }
  }
}

What each field controls

Constraint
What it enforces

allowed_operations

Which actions the agent may take (e.g. buy/sell only - never transfer out)

approved_venues

The allow-list of execution venues (e.g. Polymarket)

per_tx_usd / daily_usd / monthly_usd

Spend caps per trade, per day, per month

max_slippage

How far the fill price may drift from the live market

rate_limiting

Max operations per minute - blocks runaway loops

What happens after sealing

Every subsequent action is checked against this policy automatically. A buy that would exceed per_tx_usd, hit an un-approved venue, or fill outside max_slippage is denied before it ever signs. The agent simply reports that it cannot proceed.

Note: in the current release, these guardrails are configured as predefined examples rather than set through a user-facing command. The plain-English and JSON examples above illustrate the control-layer policy model.

Last updated