Know exactly what your agents did
Autonomous systems calling real APIs need better than 'it worked on my machine'. Every invocation through the gateway is traced, attributable to a named key, and replayable.
TIME TOOL KEY LAT STATUS
12:04:31 zendesk.ticket.search support-bot 187ms ok
12:04:32 zendesk.ticket.read support-bot 94ms ok
12:04:34 shopify.order.get support-bot 210ms ok
12:04:36 stripe.refund.create support-bot - denied ← out of scope
12:04:36 slack.message.post support-bot 92ms ok
12:05:02 zendesk.ticket.update support-bot 134ms ok
12:05:19 snowflake.query.run analytics-bot 1.8s ok truncated 41KB→4KB
12:05:44 salesforce.opportunity.search revops-bot - error upstream 503, retried 2×Four questions you can finally answer
These are the ones that come up the first time an agent does something surprising in production.
What did it call?
A chronological trace of every tool invocation with arguments, filterable by agent, key, connector, tool or outcome.
Why was it slow?
Gateway overhead and upstream latency are reported separately, so you can tell a slow API from a slow agent.
What was blocked?
Denied calls are logged as loudly as successful ones. An out-of-scope attempt is a signal worth seeing.
Can I reproduce it?
Replay any logged call with the same arguments to separate an agent bug from an upstream failure.
It does not have to live in our dashboard
Traces are OpenTelemetry-shaped and logs stream out, so agent activity lands next to the rest of your telemetry.
OpenTelemetry traces
Spans per tool call with gateway and upstream timing, exported to any OTLP collector.
Log streaming
Structured JSON to Datadog, S3, or an HTTPS endpoint you control.
SIEM export
Audit-grade records with configurable retention for compliance review.
Usage metering
Per-key, per-connector call counts and error rates for cost attribution.
Observability questions
What is captured for each call?
Timestamp, calling key and agent label, connector and tool, input arguments, upstream status, gateway and upstream latency, response size, and whether the response was truncated or cached.
Are arguments stored in full?
By default arguments are stored with configurable redaction rules for fields you mark sensitive. You can also disable argument capture entirely per connector while keeping the rest of the trace.
Can I replay a call?
Yes. Any logged call can be re-issued from the dashboard against the same connector with the same arguments, which is usually the fastest way to tell an agent bug from an upstream one.
Does this integrate with our existing tooling?
Traces export in OpenTelemetry format, and logs stream to Datadog, S3 or an HTTPS endpoint. Enterprise plans add direct SIEM connectors and configurable retention.
Give every agent one endpoint
Connect your apps once, mint a scoped key, and point Claude, Codex, Cursor or your own runtime at a single MCP server.
No credit card required · Free tier available · Self-host on request