Skip to content
Blog

See every model call your agents make

Every call to the inference API is now kept for 30 days. Name the end user, group an agent's calls into a session, and get told when they fail.

The Runcrate team

When an agent makes forty model calls to answer one question, the bill tells you what it cost and nothing else. You want to know which calls were slow, which ones failed, which customer they were for, and which run they belonged to. That is now in the dashboard, the API and the MCP server, with nothing to install.

You find the calls in Models > Observability, each with its time to first token, speed, tokens and tool calls beside its outcome and cost. The prompt and the answer are never kept unless you turn that on for an environment.

Let your agent read it

The same log is in the API (GET /api/v1/requests) and in the MCP server (list_requests, get_request), with the same filters. Every failed call carries what happened, whether anything was billed, and the next step to take, so an agent can read its own failures and act on them:

Ask your agent

List the failed calls from my agent's last session and tell me what to change.

Name, group and tag calls

Three optional things you send with a call turn the log into answers about your own product:

You sendWhereWhat you get
End userOpenAI's user field, or Anthropic's metadata.user_idCalls, failures and spend per user
SessionThe X-Runcrate-Session headerOne agent run's calls together, in order
TagsThe X-Runcrate-Tags header, a JSON object of up to 8 pairsFilter by any pair, like feature=search
python
from openai import OpenAI
client = OpenAI(base_url="https://api.runcrate.ai/v1", api_key="rc_live_YOUR_API_KEY")
response = client.chat.completions.create(
model="deepseek-ai/DeepSeek-V3",
messages=[{"role": "user", "content": "Summarize this ticket"}],
user="customer-42",
extra_headers={
"X-Runcrate-Session": "run_7f3a",
"X-Runcrate-Tags": '{"feature":"support","tenant":"acme"}',
},
)

A session or tags that are not valid are ignored and named in the X-Runcrate-Ignored response header; the call itself always goes through.

Know before your users do

  • Alerts on failing calls. Pick a share for an environment (over 5, 10, 25 or 50% failed over 15 minutes) and owners and admins get an email, and your webhooks an inference.errors_high event.
  • Breakdowns. Below the calls, by model and by end user: calls, failures, typical time, speed and spend.
  • A CSV of the calls you are looking at, up to 100,000 rows.
  • Feedback scores on answers, from your code, an agent or the dashboard.
  • Your own tools. Send every call to Langfuse, Datadog, OpenTelemetry, PostHog or a webhook from Settings > Integrations.

Above about 1,000 calls a minute from one workspace, the log keeps one call in 20 for the rest of that minute, so its counts run low for that minute. Your bill and balance count every call.

Read the observability docs, or open Observability and look at the calls you made today.

Subscribe

Get the next post by email.

One email per post. Unsubscribe in one click.