Skip to content

Glossary ​

Typeshift reuses Microsoft.Extensions.AI's words wherever it can: a run returns a ChatResponse, and an IChatClient serves a model. The terms below are Typeshift's own, or mean something narrower here.

TermMeaning
AgentA partial class deriving from Agent that bundles chat options, instructions, tools and their settings for one job. See Agents.
Agent hostAgentHost<TAgent>, which runs one agent with the services of the scope it was resolved from. See Using an agent.
Approval requestThe ToolApprovalRequestContent a run ends with when it needs approval. You answer it in the conversation's next run. See Approval and modes.
Approval ruleAn IToolApprovalRule that approves, rejects or abstains on a tool call before your app is asked.
Chat client providerThe IChatClientProvider your app registers with WithChatClientProvider<T>(), which returns the IChatClient for a provider and a model.
Code defaultsThe values a settings record's parameterless constructor sets, the lowest layer.
CompactionShrinking the history a model call sees once it nears a token limit. See Compaction.
ConfigurableA settings member or an option that stored settings or a run may change, marked in code with Configurable(...) or WithConfigurableSettings<T>(). Everything else keeps the value the code sets.
Context providerAn IContextProvider that adds instructions, messages or tools to every run of the agents that use it.
ConversationThe entries a run stores under a conversation id: inputs, model responses, tool results and run endings. See Conversations.
DeclarationThe chain of calls in a toolset's or agent's constructor, such as AddTool(...).ReadOnly(). The generator reads it at compile time, and at runtime it only records values.
DiagnosticA TSHnnn error or warning the analyzer reports for a mistake in a toolset, an agent or the setup. See Diagnostics.
Generated memberA member the source generator writes into or next to your toolsets and agents. See Generated members.
HandoffA tool, handoff_to_{name}, declared with UseHandoff<T>(), that hands the conversation to another agent. See Multiple agents.
HostShort for agent host, AgentHost<TAgent>. The application that uses Typeshift is "your app".
Id typeThe type of every settings id and conversation id in a build: Guid unless TypeshiftIdType names another.
KindThe stable name a store keeps a document under. An agent's settings kind is its class name, or the name WithStorageKind("...") sets.
LayerOne source of settings: the code defaults, the agent's code, the stored settings or the run. A higher layer overrides a lower one, and a conversation's mode sits between the stored settings and the run.
MiddlewareAn IRunMiddleware around every run, or an IToolMiddleware around every tool call.
ModeDefault, Plan or Auto, which decides what a run offers the model and what happens to tools that require approval. See The three modes.
ModuleThe registration the generator writes for each assembly that declares toolsets or agents. AddTypeshift() registers the modules of the project and its references.
OverridesThe generated {Tool}Overrides record, a tool's configurable settings with each one nullable. Null keeps the layer below.
Provider id typeThe type of every provider id in a build, such as the provider in WithModel(provider, model): string unless TypeshiftProviderIdType names another. See Models and providers.
Raw pathResolving a run's options and creating its IChatClient yourself, for when your app needs the client. See Running agents.
RunOne call of RunAsync, RunAsync<T>, RunStreamingAsync, ResumeAsync, ResumeStreamingAsync or the raw path's client: the model calls and tool calls until the model answers.
Run optionsHow a run's tool loop goes, with its mode, its limits and compaction. Set with WithRunOptions().
Schema versionThe number in a stored document's JSON, "$schemaVersion", that names the shape of the record that wrote it: 1 unless the agent's WithSchemaVersion(n) raises it. Reading a newer one fails. See The stored JSON.
SettingsAn agent's generated Settings record, with exactly the values that may change at runtime. Stored under a settings id, or passed for one run.
Settings idThe id your app stores an agent's Settings under, such as one per customer, team or user.
Settings recordThe record a tool receives its settings in, declared with WithSettings<T>() or WithConfigurableSettings<T>(). The model never sees it.
StampA hidden attribute the generator writes so that other assemblies can read a toolset's tools or a project's module.
Standing approvalAn approval for every later call of a tool in a conversation, given with ApproveForConversation().
SteeringInput a user sends while a run works, which you hand to that run with ConversationTracker.TrySteer. See Steering.
StoreWhat your app registers with WithStore<T>() to keep settings (ISettingsStore), conversations (IConversationStore) or both (ITypeshiftStore). See Settings and stores.
Sub-agentAnother agent offered as a tool with UseAgent<T>(). It works in a context of its own and answers with text.
ToolA static method that a toolset or an agent declares with AddTool, offered to the model as a generated AIFunction.
Tool listToolList<TToolset>, the type Include and Exclude pick tools from. The generated {Toolset}ToolList gives it one property per tool.
ToolsetA partial class deriving from Toolset that declares the tools of one domain. See Toolsets.
VersionThe number that marks a stored document's current state; each save gives the document a new one. A save passes the version it loaded, so it fails when another save came first. Not the schema version. See Save with a version.

Released under the MIT License.