pub struct AgentCustomization {
pub id: String,
pub uri: Uri,
pub name: String,
pub icons: Option<Vec<Icon>>,
pub range: Option<TextRange>,
pub meta: Option<JsonObject>,
pub enabled: Option<bool>,
pub description: Option<String>,
pub model: Option<String>,
pub tools: Option<Vec<String>>,
pub disable_model_invocation: Option<bool>,
pub disable_user_invocation: Option<bool>,
}Expand description
A custom agent contributed by a plugin or directory.
Mirrors the Open Plugins agent format: a markdown file with YAML frontmatter, where the body is the agent’s system prompt.
Fields§
§id: StringSession-unique opaque identifier. Used by every action that targets a specific customization. Minted by whoever publishes the customization (typically the agent host).
uri: UriSource URI for this customization. A plugin URL, a file URI, or a directory URI.
For declarations that live inside a larger file — e.g. an MCP
server declared inline in a plugins.json manifest — uri points
to the containing file and {@link CustomizationBase.range | range}
narrows it to the declaration’s span.
name: StringHuman-readable name.
icons: Option<Vec<Icon>>Icons for UI display.
range: Option<TextRange>Optional span within {@link CustomizationBase.uri | uri} when this
customization is a subset of a larger file (for example, one entry
in an inline mcpServers block of a plugins.json manifest).
Absent when the customization covers the whole resource.
meta: Option<JsonObject>Additional provider-specific metadata for this customization.
Mirrors the MCP _meta convention. Optional and opaque to the
protocol; producers and consumers agree on its contents
out-of-band.
enabled: Option<bool>Whether this child is individually enabled. Absent means enabled, so a producer only needs to set it to surface a child that exists but is turned off on its own.
This flag is independent of the parent container’s: the effective
enabled state of a child is
container.enabled && (child.enabled ?? true), so a disabled container
disables every child regardless of each child’s own flag.
A child is turned on or off by id with
{@link SessionCustomizationToggledAction | session/customizationToggled}.
description: Option<String>Short description of what the agent specializes in and when to
invoke it. Sourced from the agent file’s frontmatter description.
model: Option<String>Model the agent is pinned to, sourced from the agent file’s
frontmatter model. Absent means the agent inherits the session’s
default model.
tools: Option<Vec<String>>Allowlist of tool names the agent is scoped to, sourced from the
agent file’s frontmatter tools. A non-empty list restricts the
agent to exactly those tools. Absent — or an empty list — imposes no
restriction beyond the session default: the agent may use any
available tool. Producers express “no restriction” by omitting the
field rather than sending an empty array, so an empty list carries no
meaning distinct from absence.
disable_model_invocation: Option<bool>When true, the agent will not auto-delegate to this custom agent
as a sub-agent; it can only be selected by the user. Absent or
false means the agent may delegate to it.
disable_user_invocation: Option<bool>When true, the user cannot select this custom agent (for example,
in a picker); it remains available for the agent to auto-delegate
to. Absent or false means the user may select it.
Trait Implementations§
Source§impl Clone for AgentCustomization
impl Clone for AgentCustomization
Source§fn clone(&self) -> AgentCustomization
fn clone(&self) -> AgentCustomization
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AgentCustomization
impl Debug for AgentCustomization
Source§impl<'de> Deserialize<'de> for AgentCustomization
impl<'de> Deserialize<'de> for AgentCustomization
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for AgentCustomization
impl PartialEq for AgentCustomization
Source§fn eq(&self, other: &AgentCustomization) -> bool
fn eq(&self, other: &AgentCustomization) -> bool
self and other values to be equal, and is used by ==.