Skip to main content

Overview#

The Completeness evaluator classifies whether an assistant completed every active request the user made over the course of a conversation. It measures finished work — a delivered answer, a delivered artifact (including every required component), or an action whose success is visible in the record — not whether a request was merely acknowledged.

A conversation can finish its main task and still be incomplete when a secondary request is dropped. For example, if the user asks the assistant to reset a password and update a billing address, and the assistant only resets the password, the conversation is incomplete.

Info

Completeness does not judge correctness, quality, or whether completion was appropriate. A delivered answer can still be complete if it is factually wrong. A refusal, a clarifying question, or a report of a blocker is not completion. Withdrawn requests are listed but excluded from the decision.

Supported Levels#

LevelSupportedNotes
SpanYesApply when a span contains the full conversation, including tool calls and results.
TraceYesUseful when each trace is one conversation or agent run.
SessionYesEvaluate the whole session when intentions span multiple traces.

Relevant span kinds: AGENT, CHAIN, and LLM spans that preserve multi-turn conversation history and tool activity.

Input Requirements#

FieldTypeDescription
conversationstringFull conversation record to judge, including turns, tool calls, and tool results.

Include early-turn requests. For agent traces, include tool calls and tool results in conversation so action success can be verified. If tools are omitted, the judge falls back to the visible dialogue.

Output Interpretation#

PropertyValueDescription
label"complete" or "incomplete"Classification result
score1.0 or 0.01.0 means every non-withdrawn intention was completed
explanationstringJudge reasoning, including an INTENTIONS: list
direction"maximize"Higher aggregate scores are better

Usage Examples#

Using Input Mapping#

Map your trace or dataset fields into the evaluator’s conversation field.

See Input Mapping for additional mapping options.

Viewing and Modifying the Prompt#

The default prompt is maintained in the classification evaluator config. Adapt it when your application has domain-specific notions of what counts as an intention.

Configuration#

For model and provider options, see Configuring the LLM. Judge model choice changes accuracy on this evaluator; see Benchmarks for a comparison of gpt-4o-mini, gpt-5.6, and claude-sonnet-4-6.

Using with Phoenix#

Benchmarks#

The default prompt was scored on a 45-example categorized synthetic suite. Every model used the same prompt. Runs were local with PHOENIX_TEST_TRACKING=false. See completeness.eval.ts for the example set.

ModelnAccuracyMacro precisionMacro recallMacro F1Misses
gpt-4o-mini450.840.830.840.847
gpt-5.6451.001.001.001.000
claude-sonnet-4-6450.910.940.880.904

On this suite, gpt-5.6 matched gold on every example. The other models mainly missed cases that mix completeness with correctness, tool evidence, or multi-part asks:

  • Correctness vs completeness. Gold treats a delivered answer as complete even when it is wrong. claude-sonnet-4-6 missed on these cases.
  • Claims without tool evidence. Gold treats the visible reply as sufficient when no matching tool record exists. gpt-4o-mini and claude-sonnet-4-6 missed here.
  • Partial delivery. gpt-4o-mini labeled several multi-part and partial-tool cases complete.
Disagreements (10 of 45)

Predicted labels where at least one model missed gold or the models disagreed with each other. Bold means the judge disagreed with gold.

CaseGoldgpt-4o-minigpt-5.6claude-sonnet-4-6
[answered_despite_missing_context #0]completecompletecompleteincomplete
[answered_despite_missing_context #1]completecompletecompleteincomplete
[wrong_but_delivered #0]completecompletecompleteincomplete
[wrong_but_delivered #1]completeincompletecompletecomplete
[withdrawn_intention #0]completeincompletecompletecomplete
[claimed_but_not_done #1]incompletecompleteincompleteincomplete
[claimed_without_tools #0]completeincompletecompleteincomplete
[multipart_cases #1]incompletecompleteincompleteincomplete
[multipart_cases #5]incompletecompleteincompleteincomplete
[tool_partial #0]incompletecompleteincompleteincomplete

API Reference#