Skip to main content

AgentCustomization

Struct AgentCustomization 

Source
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: String

Session-unique opaque identifier. Used by every action that targets a specific customization. Minted by whoever publishes the customization (typically the agent host).

§uri: Uri

Source 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: String

Human-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

Source§

fn clone(&self) -> AgentCustomization

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AgentCustomization

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for AgentCustomization

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for AgentCustomization

Source§

fn eq(&self, other: &AgentCustomization) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for AgentCustomization

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for AgentCustomization

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.