Skip to content
Tracon

EvalCase

Namespace Tracon · Assembly Tracon.Abstractions.dll

A single test case inside an EvalSuite.

public sealed record EvalCase : IEquatable<EvalCase>

objectEvalCase

IEquatable<EvalCase>

object.GetType(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

public EvalCase()

Text given to the model as extra context.

public string? Context { get; init; }

string?

The expected output. Referenced by the containsExpected check.

public string? ExpectedOutput { get; init; }

string?

The tool names this case is expected to exercise, recorded for reference.

public IReadOnlyList<string> ExpectedTools { get; init; }

IReadOnlyList<string>

Not read by any check. The toolCalled check takes its tool names from its own tools field in the suite’s checks definition, so filling this in does not assert anything and leaving it empty does not weaken a check. It exists so a case can carry what it was written to cover.

The case identifier.

public Guid Id { get; init; }

Guid

Values for the target agent’s AgentDefinition.Parameters schema. null for an agent that declares no parameters.

public IReadOnlyDictionary<string, string>? Parameters { get; init; }

IReadOnlyDictionary<string, string>?

Evaluating a parameterized agent without this field would run every case against unresolved {{name}} placeholders left literally in the instructions text - the same missing-parameter check that POST /api/agents/{name}/run applies also runs here, and a case missing a required value fails outright rather than running with a broken prompt.

The promotion time. null when hand-written.

public DateTimeOffset? PromotedAt { get; init; }

DateTimeOffset?

The query text sent to the agent.

public required string Query { get; init; }

string

The sequence number within the suite (starts at 0).

public required int Seq { get; init; }

int

The reason for promotion. null when hand-written.

public EvalCaseSource? SourceKind { get; init; }

EvalCaseSource?

The run the case was generated from. null when hand-written.

public Guid? SourceRunId { get; init; }

Guid?

The identifier of the suite this case belongs to.

public required Guid SuiteId { get; init; }

Guid

public override bool Equals(object? obj)

obj object?

bool

public bool Equals(EvalCase? other)

other EvalCase?

bool

public override int GetHashCode()

int

public override string ToString()

string

public static bool operator ==(EvalCase? left, EvalCase? right)

left EvalCase?

right EvalCase?

bool

public static bool operator !=(EvalCase? left, EvalCase? right)

left EvalCase?

right EvalCase?

bool