# RunRecordingDiagnostic

> 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.runrecordingdiagnostic/
> Summary: RunRecordingDiagnostic: What a run actually records, as configured.

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

What a run actually records, as configured.

```csharp
public sealed record RunRecordingDiagnostic : IEquatable<RunRecordingDiagnostic>
```

<dl class="api-relations"><dt>Inheritance</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object">object</a> ← <a href="/api/tracon.runrecordingdiagnostic/">RunRecordingDiagnostic</a></dd><dt>Implements</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.iequatable-1">IEquatable&lt;RunRecordingDiagnostic&gt;</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>

## Remarks

These settings decide which run events exist at all, and an event that was
never recorded is indistinguishable from one the model never produced.
Reading the effective value is the difference between "the model did not
think" and "reasoning recording is off" — a distinction that otherwise
costs real provider calls to establish. Carries no `secret`: every
member is a switch or a length.

## Constructors

### <a id="Tracon_RunRecordingDiagnostic__ctor"></a> RunRecordingDiagnostic\(\)

```csharp
public RunRecordingDiagnostic()
```

## Properties

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

Gets whether runs are recorded at all.

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

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

Gets the longest recorded payload, in characters. `0` means no trimming.

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

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

Gets whether assistant text is recorded as `MessageDelta` events.

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

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

Gets whether model reasoning is recorded as `ReasoningDelta` events.

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

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

Off by default, unlike [RunRecordingDiagnostic.RecordMessageDeltas](/api/tracon.runrecordingdiagnostic/#Tracon_RunRecordingDiagnostic_RecordMessageDeltas). A model that
returns reasoning content while this is off produces no event and no
warning — the stream carries the reasoning, the record does not.

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

Gets whether the input messages are stored so a run can be replayed.

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

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

Gets whether tool arguments and results are recorded.

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

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

### <a id="Tracon_RunRecordingDiagnostic_Equals_System_Object_"></a> Equals\(object?\)

```csharp
public override bool Equals(object? obj)
```

#### Parameters

`obj` [object](https://learn.microsoft.com/dotnet/api/system.object)?

#### Returns

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="Tracon_RunRecordingDiagnostic_Equals_Tracon_RunRecordingDiagnostic_"></a> Equals\(RunRecordingDiagnostic?\)

```csharp
public bool Equals(RunRecordingDiagnostic? other)
```

#### Parameters

`other` [RunRecordingDiagnostic](/api/tracon.runrecordingdiagnostic/)?

#### Returns

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

```csharp
public override int GetHashCode()
```

#### Returns

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

```csharp
public override string ToString()
```

#### Returns

 [string](https://learn.microsoft.com/dotnet/api/system.string)

## Operators

### <a id="Tracon_RunRecordingDiagnostic_op_Equality_Tracon_RunRecordingDiagnostic_Tracon_RunRecordingDiagnostic_"></a> operator ==\(RunRecordingDiagnostic?, RunRecordingDiagnostic?\)

```csharp
public static bool operator ==(RunRecordingDiagnostic? left, RunRecordingDiagnostic? right)
```

#### Parameters

`left` [RunRecordingDiagnostic](/api/tracon.runrecordingdiagnostic/)?

`right` [RunRecordingDiagnostic](/api/tracon.runrecordingdiagnostic/)?

#### Returns

 [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="Tracon_RunRecordingDiagnostic_op_Inequality_Tracon_RunRecordingDiagnostic_Tracon_RunRecordingDiagnostic_"></a> operator \!=\(RunRecordingDiagnostic?, RunRecordingDiagnostic?\)

```csharp
public static bool operator !=(RunRecordingDiagnostic? left, RunRecordingDiagnostic? right)
```

#### Parameters

`left` [RunRecordingDiagnostic](/api/tracon.runrecordingdiagnostic/)?

`right` [RunRecordingDiagnostic](/api/tracon.runrecordingdiagnostic/)?

#### Returns

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