Skip to main content

Find out why a customer’s reply was slow

Section: DOC-IS-evaluation-reading#read-traces-and-scores.

A customer reports that the assistant took too long to answer. Find that reply, identify the recorded model or tool step involved, and save the evidence needed to fix or reproduce the problem.

Before you start: have evaluation enabled, an authorized backend credential, and the conversation/source-message identity or a profile and time window for the report. Restrict who can inspect the trace: configured redaction can make its text incomplete, and does not guarantee that all confidential information is removed. Show contentRedacted results as redacted.

These examples use the cursor API. Confirm it is available for your account; older deployments use page. Use the exact schema for your deployment. Replace the sample identifiers and times with those from the reported interaction.

Find the reply the customer reported​

Section: DOC-IS-evaluation-reading#find-traces.

If your application saved the conversation and source user message, skip to the detail read. Otherwise, search the affected profile and time window:

curl -X POST https://api.travila.ai/api/v1/evals/list-traces \
-H "X-API-Key: sk_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"profileId": "nutrition_coach",
"fromTime": "2026-08-01T00:00:00Z",
"toTime": "2026-08-14T00:00:00Z",
"pageSize": 25
}'

Reference: List traces · Request fields.

Match the returned conversation, user and timestamp to the report and keep its trace ID. Use the recorded error counts and latency to choose a candidate, then confirm its identity before diagnosing it. Missing telemetry is a gap to investigate, not proof that the turn succeeded or never ran.

Narrow the profile and time window when you need fewer candidates. See supported trace filters before adding search criteria.

Locate the slow or failed step​

Section: DOC-IS-evaluation-reading#open-one-trace.

Open the selected trace using its ID or the conversation and source user message:

curl -X POST https://api.travila.ai/api/v1/evals/get-trace \
-H "X-API-Key: sk_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"conversationId": "conv_123",
"sourceUserMessageId": "msg_abc"
}'

Reference: Get a trace · Request fields.

Use the saved source user message or trace identity, following the trace address contract.

Inspect the returned observations for the relevant model, memory or tool step. Compare its timing and status with what the customer saw. Separate a slow tool request from the model's own generation time before choosing a fix. The get-trace reference defines the detail response.

If an expected step is missing, continue with observation search and retain the known coverage limits from the detail contract.

Read judgments about that same reply​

Section: DOC-IS-evaluation-reading#read-scores.

Read the conversation's scores and select those attached to the trace you are investigating:

curl -X POST https://api.travila.ai/api/v1/evals/list-scores \
-H "X-API-Key: sk_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"conversationId": "conv_123",
"dataType": "SCORE_DATA_TYPE_NUMERIC",
"pageSize": 50
}'

Reference: List scores · Request fields.

An illustrative reviewer result looks like:

{
"scores": [
{
"scoreId": "scr_7788",
"name": "helpfulness",
"dataType": "SCORE_DATA_TYPE_NUMERIC",
"numericValue": 4,
"source": "SCORE_SOURCE_HUMAN",
"authorUserId": "reviewer_9",
"configId": "cfg_help",
"traceId": "trc_a1b2c3",
"createdAt": "2026-08-12T16:20:00Z",
"comment": "Answered, but buried the actual number."
}
],
"cursorPage": {
"limit": 50
},
"filterNarrowed": true
}

Reference: List scores · Response fields.

Match the trace ID and score source. A reviewer saying that the answer buried the useful number explains a different problem from a tool timeout; preserve both observations when both apply. Keep customer sentiment, expert review and automated measurements separate using the review guide.

Collect all continuation pages before comparing judgments. The score filter contract explains narrowed pages and the current zero-bound limitation.

You finish the investigation with the reported turn, a specific observed delay or failure, relevant judgments, and any missing context. Save that permitted evidence for a review or regression case. Copy source input explicitly when creating a case; a trace address does not automatically capture it.

Check whether the same tool keeps failing​

Section: DOC-IS-evaluation-reading#observations-across-traces.

If the affected step is a tool call, look for similar errors in other permitted traces. This query selects error observations:

curl -X POST https://api.travila.ai/api/v1/evals/list-observations \
-H "X-API-Key: sk_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"filters": [
{
"column": "level",
"operator": "=",
"type": "EVAL_FILTER_TYPE_STRING",
"stringValue": "ERROR"
}
],
"pageSize": 50
}'

Reference: List observations · Request fields.

{
"observations": [
{
"observationId": "obs_9",
"traceId": "trc_a1b2c3",
"parentObservationId": "obs_2",
"name": "get_weather",
"level": "OBSERVATION_LEVEL_ERROR",
"statusMessage": "upstream timeout",
"latencySeconds": 30
}
],
"cursorPage": {
"limit": 50
},
"contentRedacted": true
}

Reference: List observations · Response fields.

In this illustrative result, the weather tool reports an upstream timeout after 30 seconds. Open the related trace and inspect the connection and retry outcome; do not assume the model alone caused the delay. parentObservationId links the tool step to the generation that requested it.

Compare the same tool and relevant time window, keeping incomplete coverage visible. The observation reference supplies the exact filters and result fields.

Investigate a complaint that spans several turns​

Section: DOC-IS-evaluation-reading#sessions.

When one turn looks normal but the customer describes a poor overall interaction, list sessions for the intended user and time window. Open the relevant session, then inspect its traces using the steps above.

Deduplicate collected sessions and keep incomplete coverage visible; see session summary limits.

Decide whether the incident reflects a broader trend​

Section: DOC-IS-evaluation-reading#the-overview-dashboard.

Use the evaluation overview to compare the affected profile's latency and scores with broader activity. Keep each measure’s population, time window and full configuration explicit before attributing a difference to one change. The overview reference explains sampling and configuration identity.

Narrow a follow-up investigation​

Section: DOC-IS-evaluation-reading#structured-filters.

When the profile/time query is too broad, use a supported column predicate from the trace reference. Match the value field to the predicate's declared type.

For a single slow step, query observations or analyze an explicitly collected dataset. See supported aggregate filters.

Recover incomplete or interrupted result collection​

Section: DOC-IS-evaluation-reading#version-and-pagination-boundary.

Continue through every returned cursor while keeping the original filters and time window. Preserve collected identities and known coverage when interrupted; follow the cursor contract to resume safely.

Document ID: DOC-IS-evaluation-reading. Section identities and revisions.