Skip to content
Tracon

AgentDefinitionRequest

Namespace Tracon · Assembly Tracon.AspNetCore.dll

Request to create or update an agent definition.

public sealed record AgentDefinitionRequest : IEquatable<AgentDefinitionRequest>

objectAgentDefinitionRequest

IEquatable<AgentDefinitionRequest>

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

Does not bind directly to AgentDefinition. The definition’s Origin, Version, TenantId, and UpdatedAt fields belong to the server; letting the client set these would break version history and tenant isolation.

public AgentDefinitionRequest()

Names of other agents this agent may call.

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

IReadOnlyList<string>

Checked at the moment the call graph is saved: an unknown name, self-calling, and indirect cycles are rejected with 400 Bad Request.

Context compaction settings. If left empty, no compaction is applied.

public CompactionSettings? Compaction { get; init; }

CompactionSettings?

Short description.

public string? Description { get; init; }

string?

Name shown in the UI.

public string? DisplayName { get; init; }

string?

Harness settings. If left empty, a plain chat agent is compiled.

public HarnessSettings? Harness { get; init; }

HarnessSettings?

System instructions.

public string? Instructions { get; init; }

string?

Culture-keyed instructions. See AgentDefinition.InstructionsByCulture.

public IReadOnlyDictionary<string, string>? InstructionsByCulture { get; init; }

IReadOnlyDictionary<string, string>?

MCP resources added to the run context, each of the form "{server}:{uri}". See AgentDefinition.McpResourceUris.

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

IReadOnlyList<string>

Memory provider settings. If left empty, no memory provider is added.

public MemorySettings? Memory { get; init; }

MemorySettings?

Free-form, application-specific metadata. See AgentDefinition.Metadata.

public IReadOnlyDictionary<string, JsonElement> Metadata { get; init; }

IReadOnlyDictionary<string, JsonElement>

Owned by the application, not the server: unlike Origin, Version, TenantId and UpdatedAt, this travels on the request so that an update does not erase it. Tracon itself never reads these keys.

Model binding: provider, model, and sampling settings.

public required ModelBinding Model { get; init; }

ModelBinding

Agent name. Unique within the catalog.

public required string Name { get; init; }

string

The parameter schema. See AgentDefinition.Parameters.

public IReadOnlyList<AgentParameter> Parameters { get; init; }

IReadOnlyList<AgentParameter>

The referenced shared instructions block. See AgentDefinition.SharedInstructionsName.

public string? SharedInstructionsName { get; init; }

string?

Names of skills that can be loaded at runtime.

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

IReadOnlyList<string>

How long this agent waits for the agents it calls. See AgentDefinition.SubAgents. Ignored when AgentDefinitionRequest.CallableAgentNames is empty.

public SubAgentSettings? SubAgents { get; init; }

SubAgentSettings?

Names of tools to use. Tools are defined only in code; only the name of an already registered tool may be given here.

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

IReadOnlyList<string>

public override bool Equals(object? obj)

obj object?

bool

public bool Equals(AgentDefinitionRequest? other)

other AgentDefinitionRequest?

bool

public override int GetHashCode()

int

Converts the request into a persistable definition.

public AgentDefinition ToDefinition()

AgentDefinition

A definition ready to be written to the database.

public override string ToString()

string

operator ==(AgentDefinitionRequest?, AgentDefinitionRequest?)

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

left AgentDefinitionRequest?

right AgentDefinitionRequest?

bool

operator !=(AgentDefinitionRequest?, AgentDefinitionRequest?)

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

left AgentDefinitionRequest?

right AgentDefinitionRequest?

bool