pub struct BasicToolExecutor { /* private fields */ }Expand description
The default ToolExecutor that looks up tools in a ToolRegistry,
checks permissions via Tool::proposed_requests, and invokes the tool.
§Example
use agentkit_tools_core::{BasicToolExecutor, ToolRegistry};
let registry = ToolRegistry::new();
let executor = BasicToolExecutor::new(registry);
// Pass `executor` to the agent loop.Implementations§
Trait Implementations§
Source§impl ToolExecutor for BasicToolExecutor
impl ToolExecutor for BasicToolExecutor
Source§fn execute<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request: ToolRequest,
ctx: &'life1 mut ToolContext<'life2>,
) -> Pin<Box<dyn Future<Output = ToolExecutionOutcome> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn execute<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request: ToolRequest,
ctx: &'life1 mut ToolContext<'life2>,
) -> Pin<Box<dyn Future<Output = ToolExecutionOutcome> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Looks up the tool, evaluates permissions, and invokes it.
Source§fn execute_approved<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
request: ToolRequest,
approved_request: &'life1 ApprovalRequest,
ctx: &'life2 mut ToolContext<'life3>,
) -> Pin<Box<dyn Future<Output = ToolExecutionOutcome> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn execute_approved<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
request: ToolRequest,
approved_request: &'life1 ApprovalRequest,
ctx: &'life2 mut ToolContext<'life3>,
) -> Pin<Box<dyn Future<Output = ToolExecutionOutcome> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Re-executes a tool call that was previously interrupted for approval. Read more
Source§fn execute_owned<'life0, 'async_trait>(
&'life0 self,
request: ToolRequest,
ctx: OwnedToolContext,
) -> Pin<Box<dyn Future<Output = ToolExecutionOutcome> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn execute_owned<'life0, 'async_trait>(
&'life0 self,
request: ToolRequest,
ctx: OwnedToolContext,
) -> Pin<Box<dyn Future<Output = ToolExecutionOutcome> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Looks up the tool, evaluates permissions, and invokes it using an
owned execution context.
Source§fn execute_approved_owned<'life0, 'life1, 'async_trait>(
&'life0 self,
request: ToolRequest,
approved_request: &'life1 ApprovalRequest,
ctx: OwnedToolContext,
) -> Pin<Box<dyn Future<Output = ToolExecutionOutcome> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn execute_approved_owned<'life0, 'life1, 'async_trait>(
&'life0 self,
request: ToolRequest,
approved_request: &'life1 ApprovalRequest,
ctx: OwnedToolContext,
) -> Pin<Box<dyn Future<Output = ToolExecutionOutcome> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Re-executes a tool call that was previously interrupted for approval
using an owned execution context.
Auto Trait Implementations§
impl Freeze for BasicToolExecutor
impl !RefUnwindSafe for BasicToolExecutor
impl Send for BasicToolExecutor
impl Sync for BasicToolExecutor
impl Unpin for BasicToolExecutor
impl UnsafeUnpin for BasicToolExecutor
impl !UnwindSafe for BasicToolExecutor
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