pub struct SubagentDefinition {
pub name: String,
pub description: String,
pub prompt: String,
pub source_type: SubagentSourceType,
pub tools: Vec<String>,
pub model: Option<String>,
pub model_type: Option<ModelType>,
pub skills: Vec<String>,
}Fields§
§name: String§description: String§prompt: String§source_type: SubagentSourceType§tools: Vec<String>§model: Option<String>§model_type: Option<ModelType>§skills: Vec<String>Implementations§
Source§impl SubagentDefinition
impl SubagentDefinition
pub fn new( name: impl Into<String>, description: impl Into<String>, prompt: impl Into<String>, ) -> Self
pub fn with_source_type(self, source_type: SubagentSourceType) -> Self
pub fn with_tools( self, tools: impl IntoIterator<Item = impl Into<String>>, ) -> Self
pub fn with_model(self, model: impl Into<String>) -> Self
pub fn with_model_type(self, model_type: ModelType) -> Self
pub fn with_skills( self, skills: impl IntoIterator<Item = impl Into<String>>, ) -> Self
Sourcepub fn resolve_model<'a>(&'a self, config: &'a ModelConfig) -> &'a str
pub fn resolve_model<'a>(&'a self, config: &'a ModelConfig) -> &'a str
Resolve the model to use for this subagent.
Supports both direct model IDs and aliases:
"opus"→ resolves to reasoning model (e.g., claude-opus-4-5)"sonnet"→ resolves to primary model (e.g., claude-sonnet-4-5)"haiku"→ resolves to small model (e.g., claude-haiku-4-5)- Direct model ID → passed through unchanged
Falls back to model_type if model is not set.
Trait Implementations§
Source§impl Clone for SubagentDefinition
impl Clone for SubagentDefinition
Source§fn clone(&self) -> SubagentDefinition
fn clone(&self) -> SubagentDefinition
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SubagentDefinition
impl Debug for SubagentDefinition
Source§impl<'de> Deserialize<'de> for SubagentDefinition
impl<'de> Deserialize<'de> for SubagentDefinition
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl DocumentLoader<SubagentDefinition> for SubagentLoader
Available on crate feature cli-integration only.
impl DocumentLoader<SubagentDefinition> for SubagentLoader
Available on crate feature
cli-integration only.Source§fn parse_content(
&self,
content: &str,
path: Option<&Path>,
) -> Result<SubagentDefinition>
fn parse_content( &self, content: &str, path: Option<&Path>, ) -> Result<SubagentDefinition>
Parse content into the target type.
Source§fn doc_type_name(&self) -> &'static str
fn doc_type_name(&self) -> &'static str
Document type name for error messages (e.g., “skill”, “subagent”, “output style”).
Source§fn load_file<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<T>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load_file<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<T>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Load an item from a file path.
Source§fn load_directory<'life0, 'life1, 'async_trait>(
&'life0 self,
dir: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<Vec<T>>> + Send + 'async_trait>>where
T: 'static,
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load_directory<'life0, 'life1, 'async_trait>(
&'life0 self,
dir: &'life1 Path,
) -> Pin<Box<dyn Future<Output = Result<Vec<T>>> + Send + 'async_trait>>where
T: 'static,
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Load all items from a directory.
Source§fn load_inline(&self, content: &str) -> Result<T>
fn load_inline(&self, content: &str) -> Result<T>
Load from inline content.
Source§impl RegistryItem for SubagentDefinition
impl RegistryItem for SubagentDefinition
fn source_type(&self) -> SourceType
Source§impl Serialize for SubagentDefinition
impl Serialize for SubagentDefinition
Source§impl ToolRestricted for SubagentDefinition
impl ToolRestricted for SubagentDefinition
fn allowed_tools(&self) -> &[String]
fn has_tool_restrictions(&self) -> bool
fn is_tool_allowed(&self, tool_name: &str) -> bool
Auto Trait Implementations§
impl Freeze for SubagentDefinition
impl RefUnwindSafe for SubagentDefinition
impl Send for SubagentDefinition
impl Sync for SubagentDefinition
impl Unpin for SubagentDefinition
impl UnwindSafe for SubagentDefinition
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<D> DeserializeWith<JsonFormat> for Dwhere
D: DeserializeOwned,
impl<D> DeserializeWith<JsonFormat> for Dwhere
D: DeserializeOwned,
Source§fn deserialize_with(body: ResponseBody) -> Result<D, Error>
fn deserialize_with(body: ResponseBody) -> Result<D, Error>
Deserialize the response body using the specified format. Read more
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreCreates a shared type from an unshared type.