pub struct Tool {
pub symbol: Symbol,
pub description: String,
pub args_shape: ShapeRef,
pub result_shape: Option<ShapeRef>,
pub category: Symbol,
pub capabilities: Vec<CapabilityName>,
pub function: Value,
/* private fields */
}Expand description
A callable tool an agent can invoke, with shape-checked arguments and results, a category, and required capabilities.
Fields§
§symbol: SymbolThe tool’s name.
description: StringHuman-readable description of what the tool does.
args_shape: ShapeRefShape the argument list is checked against before invocation.
result_shape: Option<ShapeRef>Optional shape the result is checked against after invocation.
category: SymbolCategory grouping this tool with related tools.
capabilities: Vec<CapabilityName>Capabilities required to invoke the tool.
function: ValueThe underlying callable that implements the tool.
Implementations§
Trait Implementations§
Source§impl Callable for Tool
impl Callable for Tool
Source§fn call(&self, cx: &mut Cx, args: Args) -> Result<Value>
fn call(&self, cx: &mut Cx, args: Args) -> Result<Value>
Invoke the callable with already-evaluated, checked
Args.Source§fn browse_args_shape(&self, _cx: &mut Cx) -> Result<Option<Value>, Error>
fn browse_args_shape(&self, _cx: &mut Cx) -> Result<Option<Value>, Error>
Optional shape describing the accepted argument list, for browsing.
Source§impl Component for Tool
impl Component for Tool
Source§fn kind(&self) -> ComponentKind
fn kind(&self) -> ComponentKind
Returns the kind of component this is.
Source§fn capabilities(&self) -> &[CapabilityName]
fn capabilities(&self) -> &[CapabilityName]
Returns the capabilities this component requires or grants.
Source§impl EvalSite for Tool
impl EvalSite for Tool
Source§fn address(&self) -> &ServerAddress
fn address(&self) -> &ServerAddress
Returns the address this site answers at.
Source§fn answer(&self, cx: &mut Cx, frame: ServerFrame) -> Result<ServerFrame>
fn answer(&self, cx: &mut Cx, frame: ServerFrame) -> Result<ServerFrame>
Answers
frame, returning the reply frame.Source§fn answer_with_timeout(
&self,
cx: &mut Cx,
frame: ServerFrame,
_timeout: Option<Duration>,
) -> Result<ServerFrame, Error>
fn answer_with_timeout( &self, cx: &mut Cx, frame: ServerFrame, _timeout: Option<Duration>, ) -> Result<ServerFrame, Error>
Answers
frame with an optional deadline. Defaults to EvalSite::answer.Source§fn close_connection(&self, _cx: &mut Cx) -> Result<(), Error>
fn close_connection(&self, _cx: &mut Cx) -> Result<(), Error>
Closes any connection backing the site. Defaults to a no-op.
Source§fn stream(
&self,
cx: &mut Cx,
frame: ServerFrame,
sink: &mut dyn StreamSink,
) -> Result<(), Error>
fn stream( &self, cx: &mut Cx, frame: ServerFrame, sink: &mut dyn StreamSink, ) -> Result<(), Error>
Streams the answer to
frame into sink. The default path answers once
and emits a single chunk followed by end.Source§fn as_eval_fabric(&self) -> Option<&dyn EvalFabric>
fn as_eval_fabric(&self) -> Option<&dyn EvalFabric>
Returns this site as an
EvalFabric when it backs one. Defaults to None.Source§impl Object for Tool
impl Object for Tool
Source§fn display(&self, _cx: &mut Cx) -> Result<String>
fn display(&self, _cx: &mut Cx) -> Result<String>
Render the object as a human-readable display string.
Source§fn header(&self) -> &ObjectHeader
fn header(&self) -> &ObjectHeader
Identity and trust header for the object; defaults to the shared
anonymous header.
Source§fn op(&self, _key: &OpKey) -> Option<&dyn Op>
fn op(&self, _key: &OpKey) -> Option<&dyn Op>
Resolve the operation registered under
key, if any.Source§impl ObjectCompat for Tool
impl ObjectCompat for Tool
Source§fn class(&self, cx: &mut Cx) -> Result<ClassRef>
fn class(&self, cx: &mut Cx) -> Result<ClassRef>
Class object this value belongs to; defaults to nil.
Source§fn as_expr(&self, cx: &mut Cx) -> Result<Expr>
fn as_expr(&self, cx: &mut Cx) -> Result<Expr>
Expression form of the object; defaults to an opaque extension node.
Source§fn as_table(&self, cx: &mut Cx) -> Result<Value>
fn as_table(&self, cx: &mut Cx) -> Result<Value>
Project the object into a table value; the default exposes its display.
Source§fn as_callable(&self) -> Option<&dyn Callable>
fn as_callable(&self) -> Option<&dyn Callable>
Callable view, if the object can be invoked.
Source§fn as_object_encoder(&self) -> Option<&dyn ObjectEncode>
fn as_object_encoder(&self) -> Option<&dyn ObjectEncode>
Object-encoder view, if the object encodes other objects.
Source§fn as_read_constructor(&self) -> Option<&dyn ReadConstructor>
fn as_read_constructor(&self) -> Option<&dyn ReadConstructor>
Read-constructor view, if the object decodes data forms.
Source§fn as_number_domain(&self) -> Option<&(dyn NumberDomain + 'static)>
fn as_number_domain(&self) -> Option<&(dyn NumberDomain + 'static)>
Number-domain view, if the object is a number domain.
Source§fn as_number_value(&self) -> Option<&dyn NumberValue>
fn as_number_value(&self) -> Option<&dyn NumberValue>
Number-value view, if the object is a domain number.
Source§fn as_eval_fabric(&self) -> Option<&dyn EvalFabric>
fn as_eval_fabric(&self) -> Option<&dyn EvalFabric>
Eval-fabric view, if the object is a distributed eval surface.
Source§fn as_sequence(&self) -> Option<&dyn Sequence>
fn as_sequence(&self) -> Option<&dyn Sequence>
Sequence view, if the object is a sequence.
Source§fn as_list(&self) -> Option<&(dyn ListValue + 'static)>
fn as_list(&self) -> Option<&(dyn ListValue + 'static)>
List view, if the object is a list value.
Source§fn as_table_impl(&self) -> Option<&(dyn Table + 'static)>
fn as_table_impl(&self) -> Option<&(dyn Table + 'static)>
Table-implementation view, if the object is a table.
Source§fn as_dir(&self) -> Option<&(dyn Dir + 'static)>
fn as_dir(&self) -> Option<&(dyn Dir + 'static)>
Directory view, if the object is a directory.
Auto Trait Implementations§
impl !RefUnwindSafe for Tool
impl !UnwindSafe for Tool
impl Freeze for Tool
impl Send for Tool
impl Sync for Tool
impl Unpin for Tool
impl UnsafeUnpin for Tool
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