Skip to content
Tracon

HarnessSettings

Namespace Tracon · Assembly Tracon.Abstractions.dll

Settings for the harness capabilities. It mirrors a safe subset of the HarnessAgentOptions structure of Microsoft Agent Framework.

public sealed record HarnessSettings : IEquatable<HarnessSettings>
Inheritance
object ← HarnessSettings
Implements
IEquatable<HarnessSettings>
Inherited Members
object.GetType(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

Shell access and background agents are deliberately absent from these settings. Those two capabilities open a code execution surface on the server and need a separate security review.

public HarnessSettings()

Gets a value that turns off the agent mode provider.

public bool DisableAgentModeProvider { get; init; }

bool

Gets a value that turns off the agent skills provider.

public bool DisableAgentSkillsProvider { get; init; }

bool

The provider is on only when the definition names skills (AgentDefinition.SkillNames), and it offers only those skills; it never reads skills from the server’s working directory. A definition that names skills and sets this value is refused when the agent is compiled.

Gets a value that turns off context compaction.

public bool DisableCompaction { get; init; }

bool

Gets a value that turns off file memory.

public bool DisableFileMemory { get; init; }

bool

File memory is off unless MemorySettings.EnableFileMemory turns it on; it then uses the registered AgentFileStore, never a directory of the server. A definition that sets both is refused when the agent is compiled.

Gets a value that turns off todo tracking.

public bool DisableTodoProvider { get; init; }

bool

Gets a value that turns off automatic tool approval. Once turned off, every tool call waits for an explicit approval.

public bool DisableToolAutoApproval { get; init; }

bool

Gets a value that turns off web search.

public bool DisableWebSearch { get; init; }

bool

Web search is off unless HarnessSettings.EnableWebSearch turns it on. A definition that sets both is refused when the agent is compiled.

Gets a value that turns on the model provider’s hosted web search.

public bool EnableWebSearch { get; init; }

bool

The search runs at the model provider and is billed by it. Not every provider surface offers it: the OpenAI Chat Completions surface accepts it only for search models and answers 400 otherwise, while the Responses surface (openai-responses) offers it to every model.

Gets the extra instructions passed to the harness.

public string? HarnessInstructions { get; init; }

string?

Gets the loop (run-until-done) settings. null, the default, leaves the loop off.

public LoopSettings? Loop { get; init; }

LoopSettings?

Not to be confused with MaximumIterationsPerRequest, which bounds the harness’s INNER tool-calling loop within a single invocation. LoopSettings bounds the OUTER loop that re-invokes the whole agent until a stop criterion is satisfied. See LoopSettings for the comparison in full.

Gets the token limit of the context window. Compaction starts once it is exceeded.

public int? MaxContextWindowTokens { get; init; }

int?

Gets the upper token limit produced in a single response.

public int? MaxOutputTokens { get; init; }

int?

Gets the upper number of iterations allowed within a single request.

public int? MaximumIterationsPerRequest { get; init; }

int?

public override bool Equals(object? obj)

obj object?

bool

public bool Equals(HarnessSettings? other)

other HarnessSettings?

bool

public override int GetHashCode()

int

public override string ToString()

string

operator ==(HarnessSettings?, HarnessSettings?)

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

left HarnessSettings?

right HarnessSettings?

bool

operator !=(HarnessSettings?, HarnessSettings?)

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

left HarnessSettings?

right HarnessSettings?

bool