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>
Inheritance
object ← AgentDefinitionRequest
Implements
IEquatable<AgentDefinitionRequest>
Inherited Members
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()

The other agents this agent may call, each with the version of it that runs.

public IReadOnlyList<CallableAgentReference> CallableAgents { get; init; }

IReadOnlyList<CallableAgentReference>

Checked at the moment the call graph is saved: an unknown name, self-calling, and indirect cycles are rejected with 400 Bad Request. So is a version below 1, one the agent does not have, one on an agent defined in code, and a name that appears twice. Leave version out to run the agent’s current version.

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?

Names of agent extensions to compile the agent with, in call order. Extensions are defined only in code; only the name of an already registered extension may be given here. See AgentDefinition.ExtensionNames.

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

IReadOnlyList<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 the agent uses its skills. See AgentDefinition.Skills. If left empty, all three skill tools ask for approval.

public SkillSettings? Skills { get; init; }

SkillSettings?

How long this agent waits for the agents it calls. See AgentDefinition.SubAgents. Ignored when CallableAgents 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>

The session workspace of the agent: a file area that belongs to one conversation. See AgentDefinition.Workspace. If left empty, the agent has no workspace.

public WorkspaceSettings? Workspace { get; init; }

WorkspaceSettings?

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