Skip to content
Tracon

SkillSettings

Namespace Tracon · Assembly Tracon.Abstractions.dll

Settings for how an agent uses the skills it names in AgentDefinition.SkillNames.

public sealed record SkillSettings : IEquatable<SkillSettings>
Inheritance
object ← SkillSettings
Implements
IEquatable<SkillSettings>
Inherited Members
object.GetType(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
var definition = new AgentDefinition
{
Name = "support",
Model = new ModelBinding { Provider = "openai", Model = "gpt-5.4-mini" },
SkillNames = ["house-style"],
Skills = new SkillSettings { DisableReadApproval = true },
};

Microsoft Agent Framework wraps all three skill tools for approval by default. This record lets a definition turn the approval off for the two tools that only read text. The third tool, run_skill_script, runs code in a process or in a sandbox and keeps its approval: there is deliberately no member that turns that off. A standing approval rule that an administrator writes for the tool can still approve a call.

An agent that is exposed over A2A or MCP, or that runs without a session, has nobody to answer an approval request. It needs SkillSettings.DisableReadApproval, or the first load_skill call ends the run.

public SkillSettings()

Gets a value that makes load_skill and read_skill_resource run without asking for approval. run_skill_script keeps its approval.

public bool DisableReadApproval { get; init; }

bool

Skill text reaches the model as instructions. Turn this on only for skills that a tenant administrator writes, because the text is then a prompt-injection surface that no person reviews at run time.

public override bool Equals(object? obj)

obj object?

bool

public bool Equals(SkillSettings? other)

other SkillSettings?

bool

public override int GetHashCode()

int

public override string ToString()

string

operator ==(SkillSettings?, SkillSettings?)

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

left SkillSettings?

right SkillSettings?

bool

operator !=(SkillSettings?, SkillSettings?)

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

left SkillSettings?

right SkillSettings?

bool