{"service":"wever-agent-limit-checks-v1","category":"Agent Limits","family":"Agent Limits","page":"https://weverlabs.com/agent-limits/","tools":{"wever_limit-substrate-check":{"path":"/api/limit-substrate-check","kind":"check","receipt_type":"wever.limit-substrate-check.v1","schema":{"type":"object","additionalProperties":false,"required":["limits"],"properties":{"agent":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"The agent whose limits these are."},"limits":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"The limit, such as 50 USDC per payment."},"kind":{"enum":["per_payment","per_period","per_counterparty","total_budget","action_count","rate","action_class"],"description":"The kind of ceiling."},"amount":{"anyOf":[{"type":"number","minimum":0,"maximum":1000000000000000},{"type":"string","minLength":1,"maxLength":100,"pattern":"\\S"}],"description":"The ceiling, as an amount or count."},"enforced_at":{"type":"array","minItems":0,"maxItems":12,"items":{"enum":["code","gateway","platform","wallet_policy","credential_scope","system_prompt","tool_description","conversation","model_judgment"]},"description":"Every place the limit is enforced or stated: code, gateway, platform, wallet policy or credential scope outside the agent, or a system prompt, tool description, conversation or the model’s own judgment."},"counter":{"enum":["enforcing_layer","shared_ledger","agent_reported","none"],"description":"What keeps the running total the limit is checked against."},"agent_can_change":{"type":"boolean","description":"The agent can rewrite, raise or switch off the enforcing layer through a tool, file or configuration it can reach."},"on_failure":{"enum":["closed","open"],"description":"What the enforcing layer does when it is down or cannot decide: refuse or let the action through."}}},"description":"Each limit with where it is enforced."},"label":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\S","description":"Optional name recorded in the report."}}},"reads":"material in the call","elements":["limits","walls","suggestions","findings","fixes"],"verdicts":["limits_are_suggestions","walls_with_gaps","substrate_unverified","limits_enforced_outside_agent"]},"wever_limit-scope-check":{"path":"/api/limit-scope-check","kind":"check","receipt_type":"wever.limit-scope-check.v1","schema":{"type":"object","additionalProperties":false,"required":["limits"],"properties":{"limits":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"The limit, such as daily spend or per-payment cap."},"amount":{"anyOf":[{"type":"number","minimum":0,"maximum":1000000000000000},{"type":"string","minLength":1,"maxLength":100,"pattern":"\\S"}],"description":"The ceiling, such as 500 USDC."},"scope":{"enum":["global","per_agent","per_task","per_merchant","per_task_and_merchant"],"description":"What the limit applies to: everything, one agent, one task, one merchant or one task with one merchant."},"tasks":{"type":"array","minItems":0,"maxItems":100,"items":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"description":"Tasks the limit applies to, by name."},"merchants":{"type":"array","minItems":0,"maxItems":100,"items":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"description":"Merchants or counterparties the limit applies to, by name."}}},"description":"Each limit with what it applies to."},"work":{"type":"array","minItems":0,"maxItems":200,"items":{"type":"object","additionalProperties":false,"required":["task"],"properties":{"task":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"The kind of job, such as data purchase or travel booking."},"merchant":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"The merchant or counterparty it pays."},"typical_amount":{"anyOf":[{"type":"number","minimum":0,"maximum":1000000000000000},{"type":"string","minLength":1,"maxLength":100,"pattern":"\\S"}],"description":"A normal amount for this job."},"largest_amount":{"anyOf":[{"type":"number","minimum":0,"maximum":1000000000000000},{"type":"string","minLength":1,"maxLength":100,"pattern":"\\S"}],"description":"The largest legitimate amount for this job."}}},"description":"The jobs the agent does, with what each normally spends."},"label":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\S","description":"Optional name recorded in the report."}}},"reads":"material in the call","elements":["limits","work","fit","findings","fixes"],"verdicts":["one_cap_for_all_work","scope_misfit","scope_unverified","scoped_to_work"]},"wever_limit-change-check":{"path":"/api/limit-change-check","kind":"check","receipt_type":"wever.limit-change-check.v1","schema":{"type":"object","additionalProperties":false,"required":["paths"],"properties":{"agent":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"The agent whose limits these are."},"paths":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"object","additionalProperties":false,"required":["action","who"],"properties":{"action":{"enum":["raise","loosen","suspend","lower","tighten"],"description":"What the path does to a limit."},"who":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"Who can take it, by name or role."},"who_kind":{"enum":["owner","admin","agent","other_agent","automated","anyone"]},"via":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"Where the change is made, such as an admin console, a config file or a tool."},"approval":{"enum":["before_effect","after_effect","none"],"description":"When a second party approves the change."},"approver":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"recorded":{"enum":["before_effect","after_effect","not_recorded"],"description":"When the change is written to a record."}}},"description":"Each way a limit can be raised, loosened, suspended, lowered or tightened."},"history":{"type":"array","minItems":0,"maxItems":500,"items":{"type":"object","additionalProperties":false,"required":["limit","action"],"properties":{"limit":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"action":{"enum":["raise","loosen","suspend","lower","tighten"]},"by":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"approved_by":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"effective_at":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"When the change took effect."},"recorded_at":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"When the change was recorded."},"approved_at":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"}}},"description":"Past limit changes as recorded."},"label":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\S","description":"Optional name recorded in the report."}}},"reads":"material in the call","elements":["paths","history","findings","fixes"],"verdicts":["agent_controls_limits","change_gaps","change_unverified","changes_owned"]},"wever_threshold-review-check":{"path":"/api/threshold-review-check","kind":"check","receipt_type":"wever.threshold-review-check.v1","schema":{"type":"object","additionalProperties":false,"required":["thresholds"],"properties":{"as_of":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"The date the review history runs to."},"thresholds":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"value":{"anyOf":[{"type":"number","minimum":0,"maximum":1000000000000000},{"type":"string","minLength":1,"maxLength":100,"pattern":"\\S"}],"description":"The threshold, such as 200 USDC."},"set_at":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"When it was set."},"owner":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"Who owns its review."},"cadence":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"How often it is reviewed, such as quarterly, monthly or 90 days, or none."},"reviews":{"type":"array","minItems":0,"maxItems":50,"items":{"type":"object","additionalProperties":false,"required":["at"],"properties":{"at":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"by":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"decision":{"enum":["kept","changed","retired"],"description":"What the review decided."},"data":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"What the review looked at, such as 90 days of breaches."},"rationale":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"Why it decided that."}}},"description":"Each review held, in any order."}}},"description":"Each threshold with its review history."},"changes":{"type":"array","minItems":0,"maxItems":100,"items":{"type":"object","additionalProperties":false,"required":["what","at"],"properties":{"what":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"What changed, such as a model upgrade or a new merchant."},"at":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"}}},"description":"Changes to the agent or its work since thresholds were set."},"label":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\S","description":"Optional name recorded in the report."}}},"reads":"material in the call","elements":["thresholds","last_reviews","findings","fixes"],"verdicts":["thresholds_fossilized","review_gaps","review_unverified","reviewed_on_schedule"]},"wever_breach-path-check":{"path":"/api/breach-path-check","kind":"check","receipt_type":"wever.breach-path-check.v1","schema":{"type":"object","additionalProperties":false,"required":["limits"],"properties":{"limits":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"on_breach":{"enum":["stop","escalate","queue","continue"],"description":"What hitting the limit does to the work: stop it, escalate it, queue it or let it continue."},"escalate_to":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"Who the breach goes to."},"escalate_to_kind":{"enum":["named_person","role","channel","agent"]},"response_time":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"How long the recipient has to answer, such as 30 minutes."},"on_silence":{"enum":["deny","allow","keep_waiting"],"description":"What happens when the recipient does not answer in time."},"queue_owner":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"Who clears queued work."},"defined_at":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"When the breach path was written down."},"first_breach_at":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"When the limit was first hit."}}},"description":"Each limit with its breach behavior."},"label":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\S","description":"Optional name recorded in the report."}}},"reads":"material in the call","elements":["limits","paths","findings","fixes"],"verdicts":["wall_not_held","breach_path_gaps","breach_path_unverified","breach_paths_defined"]},"wever_shared-cap-check":{"path":"/api/shared-cap-check","kind":"check","receipt_type":"wever.shared-cap-check.v1","schema":{"type":"object","additionalProperties":false,"required":["cap","agents"],"properties":{"cap":{"type":"object","additionalProperties":false,"required":["name","amount"],"properties":{"name":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"kind":{"enum":["wallet","budget","quota"],"description":"One wallet, budget or quota."},"amount":{"anyOf":[{"type":"number","minimum":0,"maximum":1000000000000000},{"type":"string","minLength":1,"maxLength":100,"pattern":"\\S"}],"description":"The cap."},"period":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"Such as per day."}}},"ledger":{"type":"object","additionalProperties":false,"required":[],"properties":{"location":{"enum":["one_place","per_agent","none"],"description":"Where spending against the cap is counted."},"updates":{"enum":["real_time","batched","end_of_period"],"description":"When a spend reaches that count."},"reserves_before_spend":{"type":"boolean","description":"Each spend is checked and reserved against the shared count in one step before money moves."}}},"agents":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"tracks":{"enum":["shared_ledger","own_estimate","none"],"description":"What the agent reads its remaining room from."},"in_flight":{"anyOf":[{"type":"number","minimum":0,"maximum":1000000000000000},{"type":"string","minLength":1,"maxLength":100,"pattern":"\\S"}],"description":"The most it can spend before its view of the total refreshes."}}},"description":"Each agent or task drawing on the cap."},"observed":{"type":"array","minItems":0,"maxItems":1000,"items":{"type":"object","additionalProperties":false,"required":["amount"],"properties":{"agent":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"amount":{"anyOf":[{"type":"number","minimum":0,"maximum":1000000000000000},{"type":"string","minLength":1,"maxLength":100,"pattern":"\\S"}]},"at":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"}}},"description":"Spending recorded against the cap in one period."},"label":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\S","description":"Optional name recorded in the report."}}},"reads":"material in the call","elements":["cap","ledger","agents","exposure","findings","fixes"],"verdicts":["cap_overshot","cap_can_overshoot","accounting_unverified","accounted_in_one_place"]},"wever_limit-visibility-check":{"path":"/api/limit-visibility-check","kind":"check","receipt_type":"wever.limit-visibility-check.v1","schema":{"type":"object","additionalProperties":false,"required":["limits"],"properties":{"limits":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"agent_sees":{"enum":["limit_and_headroom","limit_only","nothing"],"description":"What the agent can read about this limit."},"agent_sees_when":{"enum":["before_acting","on_refusal","after_acting"]},"owner_sees":{"enum":["limit_and_headroom","limit_only","nothing"],"description":"What the owner can read about this limit."},"owner_sees_when":{"enum":["before_money_moves","after_settlement","periodic_report","on_breach"]},"headroom_source":{"enum":["live","cached","estimated"],"description":"Where remaining headroom comes from: the live count, a cached copy or an estimate."},"warns_at":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"When anyone is warned, such as 80% used."}}},"description":"Each limit with what the agent and the owner can each observe."},"label":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\S","description":"Optional name recorded in the report."}}},"reads":"material in the call","elements":["limits","agent_view","owner_view","findings","fixes"],"verdicts":["limits_learned_by_hitting","visibility_gaps","visibility_unverified","visible_before_acting"]},"wever_limit-evidence-check":{"path":"/api/limit-evidence-check","kind":"check","receipt_type":"wever.limit-evidence-check.v1","schema":{"type":"object","additionalProperties":false,"required":["events"],"properties":{"limits":{"type":"array","minItems":0,"maxItems":100,"items":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"description":"The limits the system has, by name."},"events":{"type":"array","minItems":1,"maxItems":1000,"items":{"type":"object","additionalProperties":false,"required":["id"],"properties":{"id":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"kind":{"enum":["block","escalation","queue","near_miss","override"],"description":"A block, an escalation, a queued action, a near miss or an override."},"limit":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"Which limit."},"attempted":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"What was attempted, such as a 900 USDC payment to a merchant."},"amount":{"anyOf":[{"type":"number","minimum":0,"maximum":1000000000000000},{"type":"string","minLength":1,"maxLength":100,"pattern":"\\S"}]},"at":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"When."},"response":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S","description":"What the system did."},"told":{"type":"array","minItems":0,"maxItems":20,"items":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"description":"Who was told."},"written_by":{"enum":["enforcing_layer","agent","person"],"description":"Who wrote the record."}}},"description":"Each recorded limit event."},"label":{"type":"string","minLength":1,"maxLength":200,"pattern":"\\S","description":"Optional name recorded in the report."}}},"reads":"material in the call","elements":["events","coverage","gaps","fixes"],"verdicts":["events_unreconstructable","evidence_gaps","evidence_unverified","events_reconstructable"]}},"free_tools":{"endpoint":"https://weverlabs.com/mcp-free","output":"unsigned; the final line names the main /mcp tools","tools":{"wever_limit-scope-sample":{"samples":"wever_limit-scope-check","reads":"up to 10 limits with what each applies to","returns":"for each limit, whether it is scoped per task, per merchant or both, or is one global cap"},"wever_limit-snapshot":{"reads":"an agent’s stated limits","returns":"each limit with its amount or threshold and its scope, as one plain list"}}},"limits":{"all_supplied_text":"512 KB per call","report":"1 MB","max_request_bytes":3211264,"limits":100,"layers":12,"work":200,"names":100,"paths":50,"history":500,"thresholds":100,"reviews":50,"changes":100,"agents":50,"observed":1000,"events":1000},"material":"Each tool reads only the material in the call: an agent’s limits with every place each is enforced and the running total it is checked against, a limit set beside the work it governs, the paths that raise, loosen, suspend or tighten a limit with the changes recorded, thresholds with their review history, limits with their breach behavior, one cap shared by several agents with how spending against it is counted, what the agent and the owner can each see of each limit, or the records of limit events. Every status, match and verdict is decided from that material; the report makes no network request or fetch, calls no provider, reads no chain, changes no limit, and moves no money, writes nothing outside the report, contacts no agent or counterparty and changes no configuration.","basis":"This report reads only the limits, scopes, change paths, reviews, breach paths, shared caps, views and limit events in the material in the call, and decides every status, match and verdict from them.","related":{"enforcement_layer":"wever_enforcement-layer-check","budget_controls":"wever_budget-controls-check","exposure_cap":"wever_exposure-cap-check","action_threshold":"wever_action-threshold-check","escalation_threshold":"wever_escalation-threshold-check","spending_policy":"wever_spending-policy-check","approval_policy":"wever_approval-policy-check","payout_change":"wever_payout-change-check","agent_budget_guard":"wever_agent-budget-guard","firewall_order":"wever_firewall-order-check","incident_ownership":"wever_incident-ownership-check","incident_evidence":"wever_incident-evidence-check","purchase_record":"wever_purchase-record-check"},"pricing":{"network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","pricesAtomic":{"/api/limit-substrate-check":"100000","/api/limit-scope-check":"100000","/api/limit-change-check":"100000","/api/threshold-review-check":"100000","/api/breach-path-check":"100000","/api/shared-cap-check":"100000","/api/limit-visibility-check":"100000","/api/limit-evidence-check":"100000"},"x402Version":2,"scheme":"exact","freeTier":{"calls":10,"windowDays":30,"scope":"all_paid_endpoints","walletProofMaxAgeSeconds":300}},"wallet_proof":"Sign the exact JSON arguments and the tool route with X-Wever-Wallet-Proof. Retry an unchanged payment or wallet-proof request to recover its stored report.","signing":{"issuer":"https://weverlabs.com/api/agent-limits-contract","key_id":"wever-trust-20261001","public_jwk":{"crv":"Ed25519","x":"PG6bYTJfqh-Y7YEMzxNVhMsFkrO1XnX7djPUvNi9g_U","kty":"OKP"},"algorithm":"Ed25519","receipt_types":{"limit-substrate-check":"wever.limit-substrate-check.v1","limit-scope-check":"wever.limit-scope-check.v1","limit-change-check":"wever.limit-change-check.v1","threshold-review-check":"wever.threshold-review-check.v1","breach-path-check":"wever.breach-path-check.v1","shared-cap-check":"wever.shared-cap-check.v1","limit-visibility-check":"wever.limit-visibility-check.v1","limit-evidence-check":"wever.limit-evidence-check.v1"},"jwt_type":"wever-agent-limits+jwt","digest":"SHA-256 of UTF-8 JSON.stringify(report), preserving returned property order. Verify the JWS signature and the report_sha256 and subject_sha256 claims."}}