# TraconToolOptions

> 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.tracontooloptions/
> Summary: TraconToolOptions: Defines tool execution options.

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

Defines tool execution options.

```csharp
public sealed class TraconToolOptions
```

<dl class="api-relations"><dt>Inheritance</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object">object</a> ← <a href="/api/tracon.tracontooloptions/">TraconToolOptions</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_TraconToolOptions__ctor"></a> TraconToolOptions\(\)

```csharp
public TraconToolOptions()
```

## Properties

### <a id="Tracon_TraconToolOptions_AllowUnverifiedToolRegistry"></a> AllowUnverifiedToolRegistry

Gets or sets whether a consumer-provided registry may bypass Tracon's tool pipeline.

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

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

The default is [false](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool).

### <a id="Tracon_TraconToolOptions_ApprovalPresentationTimeout"></a> ApprovalPresentationTimeout

Gets or sets the longest an [IToolApprovalPresenter](/api/tracon.itoolapprovalpresenter/) may run before an
approval request is published without its presentation.

```csharp
public TimeSpan ApprovalPresentationTimeout { get; set; }
```

#### Property Value

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

2 seconds: unlike [TraconToolOptions.DefaultTimeout](/api/tracon.tracontooloptions/#Tracon_TraconToolOptions_DefaultTimeout), this runs on the path that
publishes [RunStatus.AwaitingApproval](/api/tracon.runstatus/) — the presenter is expected to
do a single fast, read-only lookup (a point read by primary key), not real work.
A slow presenter never blocks the approval itself; it only loses its own
presentation, so a short default costs nothing but a resolved entity name.

Must be from one millisecond to about 49.7 days; any other value fails at startup.

### <a id="Tracon_TraconToolOptions_DefaultMaxOutputBytes"></a> DefaultMaxOutputBytes

Gets or sets the default byte limit for a tool result. [null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null) means
unlimited, which is the default: an upgrade never silently cuts output.

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

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

Used when a tool's own registration does not set
[ToolDescriptor.MaxOutputBytes](/api/tracon.tooldescriptor/#Tracon_ToolDescriptor_MaxOutputBytes). Bounding output inside the
tool's own body is always better; this is the installation-wide last
defence for the day that bound is forgotten.

### <a id="Tracon_TraconToolOptions_DefaultTimeout"></a> DefaultTimeout

Gets or sets the longest duration one tool call may run when its own
registration does not set [ToolDescriptor.Timeout](/api/tracon.tooldescriptor/#Tracon_ToolDescriptor_Timeout).

```csharp
public TimeSpan DefaultTimeout { get; set; }
```

#### Property Value

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

30 seconds matches the skill-script default
([TraconSkillScriptOptions.Timeout](/api/tracon.traconskillscriptoptions/#Tracon_TraconSkillScriptOptions_Timeout)); this value was
not measured against production traffic and should be revisited after
the first real run.

Must be from one millisecond to about 49.7 days; any other value fails at startup.
