# RunReplayRequest

> 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.runreplayrequest/
> Summary: RunReplayRequest: A replay request.

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

A replay request.

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

Replay **keeps the input, changes the conditions**. The input
messages and tenant cannot be changed: a different input is a new run, and
crossing the tenant boundary is a security violation.

## Constructors

### <a id="Tracon_RunReplayRequest__ctor"></a> RunReplayRequest\(\)

```csharp
public RunReplayRequest()
```

## Properties

### <a id="Tracon_RunReplayRequest_AgentVersion"></a> AgentVersion

The agent definition version to use. The currently active version if not given.

```csharp
public int? AgentVersion { get; init; }
```

#### Property Value

 [int](https://learn.microsoft.com/dotnet/api/system.int32)?

#### Remarks

Code-sourced agents have no version history; the request is rejected
if a value is given.

### <a id="Tracon_RunReplayRequest_ModelId"></a> ModelId

The model name to override with. The definition's own model is used if not given.

```csharp
public string? ModelId { get; init; }
```

#### Property Value

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

Only the model *name* is overridden; the provider and
credentials come from the definition. Changing the provider is a new definition.

### <a id="Tracon_RunReplayRequest_Parameters"></a> Parameters

Parameter values laid over the ones the source run was bound with.
Left empty, the replay runs with exactly the source run's values.

```csharp
public IReadOnlyDictionary<string, string>? Parameters { get; init; }
```

#### Property Value

 [IReadOnlyDictionary](https://learn.microsoft.com/dotnet/api/system.collections.generic.ireadonlydictionary\-2)<[string](https://learn.microsoft.com/dotnet/api/system.string), [string](https://learn.microsoft.com/dotnet/api/system.string)\>?

#### Remarks

A replay repeats a run, so it uses the source run's recorded values;
this field changes the ones it names and keeps the rest. The result is
checked against the schema of the version the replay runs
([RunReplayRequest.AgentVersion](/api/tracon.runreplayrequest/#Tracon_RunReplayRequest_AgentVersion)): a name that version does not declare is
refused, not dropped, so a typo cannot go unnoticed.

A run that recorded no values (input recording was off, or it predates
parameter recording) cannot be replayed when the agent declares
parameters: running it on the defaults would change the instructions.

### <a id="Tracon_RunReplayRequest_ToolMode"></a> ToolMode

The tool behavior. Defaults to [ReplayToolMode.ReplayTools](/api/tracon.replaytoolmode/).

```csharp
public ReplayToolMode ToolMode { get; init; }
```

#### Property Value

 [ReplayToolMode](/api/tracon.replaytoolmode/)

## Methods

### <a id="Tracon_RunReplayRequest_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_RunReplayRequest_Equals_Tracon_RunReplayRequest_"></a> Equals\(RunReplayRequest?\)

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

`other` [RunReplayRequest](/api/tracon.runreplayrequest/)?

#### Returns

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

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

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

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

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

### <a id="Tracon_RunReplayRequest_op_Equality_Tracon_RunReplayRequest_Tracon_RunReplayRequest_"></a> operator ==\(RunReplayRequest?, RunReplayRequest?\)

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

`left` [RunReplayRequest](/api/tracon.runreplayrequest/)?

`right` [RunReplayRequest](/api/tracon.runreplayrequest/)?

#### Returns

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

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

`left` [RunReplayRequest](/api/tracon.runreplayrequest/)?

`right` [RunReplayRequest](/api/tracon.runreplayrequest/)?

#### Returns

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