Skip to content
Tracon

WorkspaceSettings

Namespace Tracon · Assembly Tracon.Abstractions.dll

Settings for the session workspace of an agent: a file area that belongs to one conversation, where the agent lists, reads, searches, writes, edits and deletes files.

public sealed record WorkspaceSettings : IEquatable<WorkspaceSettings>
Inheritance
object ← WorkspaceSettings
Implements
IEquatable<WorkspaceSettings>
Inherited Members
object.GetType(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
var definition = new AgentDefinition
{
Name = "drafter",
Model = new ModelBinding { Provider = "openai", Model = "gpt-5.4-mini" },
Workspace = new WorkspaceSettings { Enabled = true },
};

The workspace is private to one session of one agent. Another session does not see its files, and it is not the agent’s file memory (MemorySettings.EnableFileMemory): file memory lives as long as the agent, a workspace lives as long as its session. When the session goes, whichever way (DELETE /api/sessions/{id}, an erasure of its data subject, or its retention period), its files go with it. A run that has no session has no workspace and gets no file tools.

Microsoft Agent Framework supplies the eight file_access_* tools. Tracon runs them through the same tool chain as a tool registered in code: the authorization handler, argument validation, the timeout, and the approval step. Every tool that changes a file asks for approval, always; there is deliberately no member that turns that off. The size of a file, of one session’s workspace and of one tenant’s workspaces is limited by Tracon:Workspace (TraconWorkspaceOptions).

An agent that is exposed over A2A or MCP has nobody to answer an approval request. The host refuses to expose a workspace that can change a file or that asks for approval to read one: set WorkspaceSettings.ReadOnly and WorkspaceSettings.DisableReadApproval together, or leave the agent off the allow list.

public WorkspaceSettings()

Gets a value that makes the tools that read run without asking for approval. The tools that change a file keep their approval.

public bool DisableReadApproval { get; init; }

bool

What the agent wrote earlier in the session reaches the model again when it reads. Turn this on when nobody should be asked about a read; the content is then a prompt-injection surface that no person reviews at run time.

Gets a value that gives the agent a workspace in every session that has a record. Defaults to false.

public bool Enabled { get; init; }

bool

Gets a value that offers only the tools that read: file_access_read, file_access_read_lines, file_access_ls and file_access_grep. The tools that write, replace and delete are not offered at all.

public bool ReadOnly { get; init; }

bool

public override bool Equals(object? obj)

obj object?

bool

public bool Equals(WorkspaceSettings? other)

other WorkspaceSettings?

bool

public override int GetHashCode()

int

public override string ToString()

string

operator ==(WorkspaceSettings?, WorkspaceSettings?)

Section titled “ operator ==(WorkspaceSettings?, WorkspaceSettings?)”
public static bool operator ==(WorkspaceSettings? left, WorkspaceSettings? right)

left WorkspaceSettings?

right WorkspaceSettings?

bool

operator !=(WorkspaceSettings?, WorkspaceSettings?)

Section titled “ operator !=(WorkspaceSettings?, WorkspaceSettings?)”
public static bool operator !=(WorkspaceSettings? left, WorkspaceSettings? right)

left WorkspaceSettings?

right WorkspaceSettings?

bool