Skip to content
Tracon

TraconFinishReasons

Namespace Tracon · Assembly Tracon.Abstractions.dll

Finish reasons Tracon reads beyond the ones AI.ChatFinishReason defines.

public static class TraconFinishReasons
Inheritance
object ← TraconFinishReasons
Inherited Members
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

A model provider reports one of these on its AI.ChatResponse (or on the last streamed AI.ChatResponseUpdate) the same way it reports ChatFinishReason.Length. Tracon reads them in the same shared ring that reads the standard reasons, so every provider that reports one gets the same behaviour.

Gets the finish reason of an answer the model stopped because the conversation and the answer filled its context window.

public static ChatFinishReason ContextWindowExceeded { get; }

ChatFinishReason

Tracon treats it as a cut-off answer, like ChatFinishReason.Length: a structured (JSON) response fails its run with TraconOutputTruncatedException (RunErrorClass.OutputTruncated), and a plain-text answer completes with a RunEventCustomTypes.OutputTruncated run event whose payload cause is context_window.

It is a separate reason because the remedy is different. A larger ModelBinding.MaxOutputTokens does not fit in a full window; a shorter conversation (context compaction) or a model with a larger window does. The error message and the event say so.

Tracon.Anthropic reports it for Anthropic’s model_context_window_exceeded stop reason.