Skip to main content

AddToolInputExamplesMiddleware

Struct AddToolInputExamplesMiddleware 

Source
pub struct AddToolInputExamplesMiddleware { /* private fields */ }
Expand description

Middleware that serializes tool.input_examples (if any) and appends them to the tool’s description field.

Default layout mirrors @ai-sdk/ai/src/middleware/add-tool-input-examples-middleware.ts: "{description}\n\n{prefix}\n{example_1}\n{example_2}..." where prefix defaults to "Input Examples:" and each example is JSON.stringify(example.input) (no enumeration prefix). Override with Self::with_prefix to customise the header line or Self::with_formatter to take full control.

Implementations§

Source§

impl AddToolInputExamplesMiddleware

Source

pub fn new() -> Self

Build with the upstream-aligned defaults.

The default prefix is "Input Examples:" and the default remove is true, matching upstream add-tool-input-examples-middleware.ts so the rewritten tool no longer carries the now-redundant input_examples field on the wire.

Source

pub fn with_prefix(self, prefix: impl Into<String>) -> Self

Override the header line prepended before the serialized examples. Mirrors upstream prefix option (default "Input Examples:").

Source

pub fn with_formatter<F>(self, formatter: F) -> Self
where F: Fn(&ToolInputExample, usize) -> String + Send + Sync + 'static,

Override how each example is rendered. The formatter receives the example and its zero-based index, mirroring upstream (example, index) => string (@ai-sdk/ai/src/middleware/add-tool-input-examples-middleware.ts:46).

Source

pub fn with_remove(self, remove: bool) -> Self

Toggle whether input_examples is cleared after being appended.

Mirrors upstream remove?: boolean option (default true). When true, the rewritten function tool drops its input_examples so the downstream provider does not re-serialize them on the wire after they have already been folded into description. Set to false to keep the structured field alongside the textual description.

Trait Implementations§

Source§

impl Debug for AddToolInputExamplesMiddleware

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for AddToolInputExamplesMiddleware

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl LanguageModelMiddleware for AddToolInputExamplesMiddleware

Source§

fn transform_params<'life0, 'life1, 'async_trait>( &'life0 self, _kind: CallKind, params: CallOptions, _inner: &'life1 dyn LanguageModel, ) -> Pin<Box<dyn Future<Output = Result<CallOptions>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Transform the call options before they reach the inner model. Read more
Source§

fn override_provider(&self, _inner: &dyn LanguageModel) -> Option<String>

Override the provider id exposed by the wrapped model. Read more
Source§

fn override_model_id(&self, _inner: &dyn LanguageModel) -> Option<String>

Override the model id exposed by the wrapped model. Read more
Source§

fn override_supported_urls<'life0, 'life1, 'async_trait>( &'life0 self, _inner: &'life1 dyn LanguageModel, ) -> Pin<Box<dyn Future<Output = Option<SupportedUrls>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Override the supported-URL map exposed by the wrapped model. Read more
Source§

fn wrap_generate<'life0, 'life1, 'async_trait>( &'life0 self, next: &'life1 dyn LanguageModel, params: CallOptions, ) -> Pin<Box<dyn Future<Output = Result<GenerateResult>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Wrap a non-streaming generation. Read more
Source§

fn wrap_stream<'life0, 'life1, 'async_trait>( &'life0 self, next: &'life1 dyn LanguageModel, params: CallOptions, ) -> Pin<Box<dyn Future<Output = Result<StreamResult>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Wrap a streaming generation. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.