Skip to content
Tracon

AgentDescriptor

Namespace Tracon · Assembly Tracon.Abstractions.dll

A summary view of an agent listed in the catalog. It carries everything the user interface needs to draw the agent list, without having to build the agent. A source must not mutate a descriptor or its nested collections after returning it.

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

Gets the names of the other agents this agent may call.

public IReadOnlyList<string> CallableAgentNames { get; init; }

IReadOnlyList<string>

Names only: the catalog lists who calls whom, and the call graph is built from the names. The version a call is pinned to is read from the definition (AgentDefinition.CallableAgents). An agent registered in code with a factory carries no declarative definition; the list is empty for such an agent. That means the graph can be incomplete, which is why the static cycle check is not enough on its own.

Gets the short description.

public string? Description { get; init; }

string?

Gets the name shown in the user interface.

public string? DisplayName { get; init; }

string?

Gets the names of the agent extensions this agent is compiled with, in call order.

public IReadOnlyList<string> ExtensionNames { get; init; }

IReadOnlyList<string>

Gets the bound model. It can be unknown for code agents.

public ModelBinding? Model { get; init; }

ModelBinding?

Gets the unique name of the agent.

public required string Name { get; init; }

string

Gets the origin of the definition.

public required AgentDefinitionOrigin Origin { get; init; }

AgentDefinitionOrigin

Gets the names of the skills this agent may load at run time.

public IReadOnlyList<string> SkillNames { get; init; }

IReadOnlyList<string>

Gets how this agent uses its skills. The external-surface check reads it: an agent whose skill read approval is on cannot be exposed over A2A or MCP.

public SkillSettings? Skills { get; init; }

SkillSettings?

Gets the name of the source that supplies this agent, for example code or database. Several sources can share the same AgentDescriptor.Origin value.

public required string SourceName { get; init; }

string

Gets the names of the tools this agent may use.

public IReadOnlyList<string> ToolNames { get; init; }

IReadOnlyList<string>

Gets the time of the last change (UTC).

public DateTimeOffset? UpdatedAt { get; init; }

DateTimeOffset?

Gets whether the harness capabilities are enabled.

public bool UsesHarness { get; init; }

bool

Gets the definition version. It is always 1 for code agents.

public int Version { get; init; }

int

Gets the session workspace settings. The external-surface check reads them: an agent whose workspace can change a file, or asks for approval to read one, cannot be exposed over A2A or MCP.

public WorkspaceSettings? Workspace { get; init; }

WorkspaceSettings?

public override bool Equals(object? obj)

obj object?

bool

public bool Equals(AgentDescriptor? other)

other AgentDescriptor?

bool

public override int GetHashCode()

int

public override string ToString()

string

operator ==(AgentDescriptor?, AgentDescriptor?)

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

left AgentDescriptor?

right AgentDescriptor?

bool

operator !=(AgentDescriptor?, AgentDescriptor?)

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

left AgentDescriptor?

right AgentDescriptor?

bool