Using the Console

Decision Stream

Live AgentOps authorisations. Every Allow, Deny, Failed, and Expired decision lands here with its rail, agent, amount, and reason — this is where you find out what your agents are actually doing.

Reading a row

  • Outcome — ALLOW or DENY. A DENY means nothing was signed.
  • Reason — plain English, e.g. “spend cap exceeded”. This is the field to read first when an agent is stuck.
  • Agent — which agent asked. Name your agents well and this column does the triage for you.
  • Railcasper-x402, cspr-trade, or casper-deploy.
  • Amount — what was requested, in CSPR.

Decision states

  • Signed — allowed and signed; a payment header was issued.
  • Held — allowed, waiting on settlement evidence from the facilitator.
  • Anchoring / anchored — the decision hash is being, or has been, committed on-chain to the GuardRegistry.
  • Failed — the request could not be completed. Nothing was spent.
  • Expired — the authorization window elapsed before use.

Debugging with the stream

Most integration problems are visible here within seconds:

  • Nothing appears at all — your agent is not reaching AgentOps. Check the base URL and that the key is being sent as a bearer token.
  • DENY on the first call — usually no budget assigned, no policy configured, or the rail is not permitted.
  • DENY after working fine — spend cap or velocity limit reached for the epoch.
  • Unexpected duplicates — your agent is generating a new idempotency key on retry. Reuse the key for the same logical request.

NOTE

Programmatic access to a single decision is available too: getDecision(id) in the SDK, or the casper_guard_decision_status MCP tool.

For a permanent, exportable record rather than a live view, go to Audit Export & Disputes.