pub struct SkillsProvider { /* private fields */ }Expand description
A ContextProvider that attaches a set of Skills to an agent run
with progressive disclosure.
Holds its skills behind an Arc (so SkillsProvider itself is cheap to
Clone, e.g. into a session’s context_providers) and its set of
currently-loaded skill names behind an Arc<Mutex<_>>, shared with the
load_skill tool closure so that a call to the tool during a run is
visible to before_run on every subsequent run.
Implementations§
Source§impl SkillsProvider
impl SkillsProvider
Sourcepub fn new(skills: Vec<Skill>) -> SkillsProvider
pub fn new(skills: Vec<Skill>) -> SkillsProvider
Build a provider from a list of skills, keyed by Skill::name. If
two skills share a name, the later one in skills wins.
Trait Implementations§
Source§impl Clone for SkillsProvider
impl Clone for SkillsProvider
Source§fn clone(&self) -> SkillsProvider
fn clone(&self) -> SkillsProvider
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl ContextProvider for SkillsProvider
impl ContextProvider for SkillsProvider
Source§fn before_run<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 mut SessionContext,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SkillsProvider: 'async_trait,
fn before_run<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 mut SessionContext,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
SkillsProvider: 'async_trait,
Called before the model is invoked; mutate ctx to inject instructions,
messages, and/or tools. Read ctx.input_messages / ctx.session_id.
Source§fn after_run<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_request_messages: &'life1 [Message],
_response_messages: &'life2 [Message],
_error: Option<&'life3 Error>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Self: 'async_trait,
fn after_run<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_request_messages: &'life1 [Message],
_response_messages: &'life2 [Message],
_error: Option<&'life3 Error>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Self: 'async_trait,
Called after an invocation completes, on BOTH success and failure.
On success, error is None and response_messages holds the output.
On failure, error is Some and response_messages is empty.
Source§fn is_history_provider(&self) -> bool
fn is_history_provider(&self) -> bool
Whether this provider manages conversation history (a
HistoryProvider). Agent
and WorkflowAgent use this to
detect an already-attached history provider among a session’s
context_providers and avoid auto-attaching a redundant
InMemoryHistoryProvider.
Defaults to false; history providers override it to true.Auto Trait Implementations§
impl Freeze for SkillsProvider
impl RefUnwindSafe for SkillsProvider
impl Send for SkillsProvider
impl Sync for SkillsProvider
impl Unpin for SkillsProvider
impl UnsafeUnpin for SkillsProvider
impl UnwindSafe for SkillsProvider
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