pub struct UseSkillTool {
pub registry: Arc<RwLock<SkillRegistry>>,
}Expand description
Tool that loads a skill’s instruction template into the conversation context.
This is the LLM-facing equivalent of the user typing /skill-name args.
The skill content is returned as the tool result, which the LLM reads and
then follows using its regular tools — no sub-agent needed.
Fields§
§registry: Arc<RwLock<SkillRegistry>>Trait Implementations§
Source§impl Tool for UseSkillTool
impl Tool for UseSkillTool
fn definition(&self) -> ToolDef
fn approval(&self, _args: &str) -> ApprovalRequirement
fn execute<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
args: &'life1 str,
_ctx: &'life2 ToolContext,
) -> Pin<Box<dyn Future<Output = Result<ToolResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn approval_with_context( &self, args: &str, _ctx: &ToolContext, ) -> ApprovalRequirement
Source§fn validate_args(&self, _args: &str) -> Result<(), String>
fn validate_args(&self, _args: &str) -> Result<(), String>
Pre-flight syntactic check on raw tool-call arguments. The runner
calls this before approval and before execute, so a parse
failure short-circuits to a tool-result error and the model
receives a structured retry hint without bothering the user. Read more
Auto Trait Implementations§
impl Freeze for UseSkillTool
impl RefUnwindSafe for UseSkillTool
impl Send for UseSkillTool
impl Sync for UseSkillTool
impl Unpin for UseSkillTool
impl UnsafeUnpin for UseSkillTool
impl UnwindSafe for UseSkillTool
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> 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 more