Skip to content
Tracon

AgentDetailResponse

Namespace Tracon · Assembly Tracon.AspNetCore.dll

Detailed view of a single agent.

public sealed record AgentDetailResponse : IEquatable<AgentDetailResponse>

objectAgentDetailResponse

IEquatable<AgentDetailResponse>

object.GetType(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

The catalog shows agents defined both in code and in the database. Those defined in code cannot be edited: on a name collision, code wins, so a definition written to the database would never resolve. AgentDetailResponse.IsEditable lets the UI know this in advance. A code-defined agent still exposes its instructions where they can be read without ambiguity — see Definition and FactoryInstructions — even though it cannot be edited here.

public AgentDetailResponse()

The agent’s definition. null only for a code agent built from a factory (AddAgent(name, factory)), which carries no AgentDefinition at all. A code agent declared with AddAgent(AgentDefinition) returns its in-memory definition here despite never being written to the database.

public AgentDefinition? Definition { get; init; }

AgentDefinition?

Catalog summary.

public required AgentDescriptor Descriptor { get; init; }

AgentDescriptor

Best-effort instructions read directly from the resolved agent when Definition is null because the agent is built from a factory (AddAgent(name, factory)) and its concrete type exposes them (currently only Microsoft.Agents.AI.ChatClientAgent). null when Definition is populated instead (read Definition.Instructions there), when the factory’s concrete type does not expose instructions, or when invoking the factory to check failed — this field is diagnostic only and never blocks the response.

public string? FactoryInstructions { get; init; }

string?

Whether this agent can be modified through the management API.

public required bool IsEditable { get; init; }

bool

public override bool Equals(object? obj)

obj object?

bool

public bool Equals(AgentDetailResponse? other)

other AgentDetailResponse?

bool

public override int GetHashCode()

int

public override string ToString()

string

operator ==(AgentDetailResponse?, AgentDetailResponse?)

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

left AgentDetailResponse?

right AgentDetailResponse?

bool

operator !=(AgentDetailResponse?, AgentDetailResponse?)

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

left AgentDetailResponse?

right AgentDetailResponse?

bool