pub struct Agent {
pub id: String,
pub name: String,
pub title: String,
pub icon: String,
pub persona: AgentPersona,
pub capabilities: Vec<String>,
pub workflows: Vec<String>,
pub delegates_to: Vec<String>,
pub builtin: bool,
}Expand description
A specialized AI agent with defined persona and capabilities
Fields§
§id: StringUnique identifier for the agent
name: StringDisplay name
title: StringProfessional title
icon: StringIcon/emoji for the agent
persona: AgentPersonaAgent’s persona definition
capabilities: Vec<String>List of capabilities this agent has
workflows: Vec<String>Workflows this agent can execute
delegates_to: Vec<String>Other agents this agent can delegate to
builtin: boolWhether this is a built-in agent
Implementations§
Source§impl Agent
impl Agent
Sourcepub fn new(
id: impl Into<String>,
name: impl Into<String>,
title: impl Into<String>,
icon: impl Into<String>,
persona: AgentPersona,
) -> Self
pub fn new( id: impl Into<String>, name: impl Into<String>, title: impl Into<String>, icon: impl Into<String>, persona: AgentPersona, ) -> Self
Create a new agent with the given parameters
Sourcepub fn with_capability(self, capability: impl Into<String>) -> Self
pub fn with_capability(self, capability: impl Into<String>) -> Self
Add a capability to this agent
Sourcepub fn with_capabilities(self, capabilities: Vec<String>) -> Self
pub fn with_capabilities(self, capabilities: Vec<String>) -> Self
Add multiple capabilities
Sourcepub fn with_workflow(self, workflow: impl Into<String>) -> Self
pub fn with_workflow(self, workflow: impl Into<String>) -> Self
Add a workflow this agent can execute
Sourcepub fn with_workflows(self, workflows: Vec<String>) -> Self
pub fn with_workflows(self, workflows: Vec<String>) -> Self
Add multiple workflows
Sourcepub fn with_delegate(self, delegate: impl Into<String>) -> Self
pub fn with_delegate(self, delegate: impl Into<String>) -> Self
Add an agent this agent can delegate to
Sourcepub fn as_builtin(self) -> Self
pub fn as_builtin(self) -> Self
Mark as built-in agent
Sourcepub fn has_capability(&self, capability: &str) -> bool
pub fn has_capability(&self, capability: &str) -> bool
Check if this agent has a specific capability
Sourcepub fn can_delegate_to(&self, agent_id: &str) -> bool
pub fn can_delegate_to(&self, agent_id: &str) -> bool
Check if this agent can delegate to another agent
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Agent
impl<'de> Deserialize<'de> for Agent
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
Auto Trait Implementations§
impl Freeze for Agent
impl RefUnwindSafe for Agent
impl Send for Agent
impl Sync for Agent
impl Unpin for Agent
impl UnsafeUnpin for Agent
impl UnwindSafe for Agent
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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 moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.