# TraconWorkspaceOptions

> 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.traconworkspaceoptions/
> Summary: TraconWorkspaceOptions: Limits of the session workspace (WorkspaceSettings).

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

Limits of the session workspace ([WorkspaceSettings](/api/tracon.workspacesettings/)).

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

## Examples

```json
"Tracon": {
  "Workspace": { "MaxFileBytes": 524288, "MaxSessionBytes": 10485760 }
}
```

## Remarks

Read from the `Tracon:Workspace` configuration section. A write that would pass a limit
is refused, and the agent reads "workspace quota reached" as the result of the tool call; the
run goes on. The limits are measured against the files as the store keeps them: a SQL Server
store keeps text as UTF-16, so it reaches a limit with half as many ASCII characters as another
store does.

A file counts its content and also a fixed 1 KiB for its row in the limit of a session and of a tenant, so a model
that writes thousands of empty files reaches the limit instead of filling the table. The limits are soft: two writes
that run at the same moment can pass a limit together by the size of one file; the next write is refused.

## Constructors

### <a id="Tracon_TraconWorkspaceOptions__ctor"></a> TraconWorkspaceOptions\(\)

```csharp
public TraconWorkspaceOptions()
```

## Fields

### <a id="Tracon_TraconWorkspaceOptions_SectionName"></a> SectionName

The configuration section name.

```csharp
public const string SectionName = "Tracon:Workspace"
```

#### Field Value

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

### <a id="Tracon_TraconWorkspaceOptions_MaxFileBytes"></a> MaxFileBytes

Gets or sets the most bytes (UTF-8) one file may hold. Defaults to 256 KiB.

```csharp
public long MaxFileBytes { get; set; }
```

#### Property Value

 [long](https://learn.microsoft.com/dotnet/api/system.int64)

### <a id="Tracon_TraconWorkspaceOptions_MaxSessionBytes"></a> MaxSessionBytes

Gets or sets the most bytes all the files of one session may hold. Defaults to 5 MiB.

```csharp
public long MaxSessionBytes { get; set; }
```

#### Property Value

 [long](https://learn.microsoft.com/dotnet/api/system.int64)

### <a id="Tracon_TraconWorkspaceOptions_MaxTenantBytes"></a> MaxTenantBytes

Gets or sets the most bytes all the workspaces of one tenant may hold. Defaults to 500 MiB.

```csharp
public long MaxTenantBytes { get; set; }
```

#### Property Value

 [long](https://learn.microsoft.com/dotnet/api/system.int64)
