# TraconRunRecordingOptions

> Tracon documentation. Tracon is a .NET package family that adds a control
> plane on Microsoft Agent Framework, published as NuGet packages that run
> inside your own ASP.NET Core application.
>
> Page: https://tracon.dev/api/tracon.traconrunrecordingoptions/
> Summary: TraconRunRecordingOptions: Defines how much detail run recording retains.

<div class="api-provenance">Namespace Tracon · Assembly <code>Tracon.Core.dll</code></div>

Defines how much detail run recording retains.

```csharp
public sealed class TraconRunRecordingOptions
```

<dl class="api-relations"><dt>Inheritance</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object">object</a> ← <a href="/api/tracon.traconrunrecordingoptions/">TraconRunRecordingOptions</a></dd><dt>Inherited Members</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a></dd></dl>

## Constructors

### <a id="Tracon_TraconRunRecordingOptions__ctor"></a> TraconRunRecordingOptions\(\)

```csharp
public TraconRunRecordingOptions()
```

## Properties

### <a id="Tracon_TraconRunRecordingOptions_Enabled"></a> Enabled

Gets or sets whether run recording is enabled. When disabled, no event is written.

```csharp
public bool Enabled { get; set; }
```

#### Property Value

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="Tracon_TraconRunRecordingOptions_MaxPayloadLength"></a> MaxPayloadLength

Gets or sets the upper character limit for one event payload. Excess
payloads are truncated and receive a trailing marker.

```csharp
public int MaxPayloadLength { get; set; }
```

#### Property Value

 [int](https://learn.microsoft.com/dotnet/api/system.int32)

### <a id="Tracon_TraconRunRecordingOptions_RecordMessageDeltas"></a> RecordMessageDeltas

Gets or sets whether every text chunk in streaming runs is written as a
separate event. When disabled, only completed messages are recorded and
event volume decreases substantially.

```csharp
public bool RecordMessageDeltas { get; set; }
```

#### Property Value

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="Tracon_TraconRunRecordingOptions_RecordReasoningDeltas"></a> RecordReasoningDeltas

Gets or sets whether a reasoning (thinking) delta from the model is written as a
[RunEventType.ReasoningDelta](/api/tracon.runeventtype/) event.

```csharp
public bool RecordReasoningDeltas { get; set; }
```

#### Property Value

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

#### Remarks

Defaults to [false](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool), unlike [TraconRunRecordingOptions.RecordMessageDeltas](/api/tracon.traconrunrecordingoptions/#Tracon_TraconRunRecordingOptions_RecordMessageDeltas), for
three reasons: reasoning output can run far longer than the answer and its recorded
volume was not measured; intermediate reasoning can repeat user data in forms the
final answer never shows; and some providers restrict storing raw reasoning text,
a restriction that has not been verified. Turning it on is a one-line change and
does not conflict with the retention policy — reasoning shares
[TraconRunRecordingOptions.RecordMessageDeltas](/api/tracon.traconrunrecordingoptions/#Tracon_TraconRunRecordingOptions_RecordMessageDeltas)'s retention bucket, it is not tracked separately.

### <a id="Tracon_TraconRunRecordingOptions_RecordRunInput"></a> RecordRunInput

Gets or sets whether run input is written to `run_inputs`.
Replay does not work when disabled.

```csharp
public bool RecordRunInput { get; set; }
```

#### Property Value

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

#### Remarks

This defaults to **enabled** and is not a "zero
surprise" exception. Input does not introduce a new data class: the same
messages already exist in `conversation_items` for a session run,
and [TraconRunRecordingOptions.RecordToolPayloads](/api/tracon.traconrunrecordingoptions/#Tracon_TraconRunRecordingOptions_RecordToolPayloads) currently defaults to
[true](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool). If disabled, replay would be dead for every
existing run.

Input is not truncated. [TraconRunRecordingOptions.MaxPayloadLength](/api/tracon.traconrunrecordingoptions/#Tracon_TraconRunRecordingOptions_MaxPayloadLength) applies to event
payloads; a truncated input would silently produce incorrect replay.
Growth is bounded by the `run_inputs` retention target.

### <a id="Tracon_TraconRunRecordingOptions_RecordToolPayloads"></a> RecordToolPayloads

Gets or sets whether tool arguments and results are recorded.

```csharp
public bool RecordToolPayloads { get; set; }
```

#### Property Value

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

#### Remarks

Tool arguments can contain personal data. A data-retention policy can
disable this flag.
