Skip to main content

ContextLoader

Struct ContextLoader 

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

Composable loader that gathers context Items from multiple ContextSource implementations.

Sources are loaded in the order they were added and the resulting items are concatenated into a single Vec<Item>. These items carry ItemKind::Context and can be prepended to the transcript before the user message.

§Example

use agentkit_context::{AgentsMd, ContextLoader};

let items = ContextLoader::new()
    .with_source(AgentsMd::discover("."))
    .load()
    .await?;

println!("loaded {} context items", items.len());

Implementations§

Source§

impl ContextLoader

Source

pub fn new() -> Self

Create an empty loader with no sources.

Source

pub fn with_source(self, source: impl ContextSource + 'static) -> Self

Add a ContextSource to this loader.

Sources are loaded in the order they are added. This method consumes and returns self so calls can be chained.

Source

pub async fn load(&self) -> Result<Vec<Item>, ContextError>

Load all registered sources and return a combined list of context Items.

§Errors

Returns the first ContextError encountered while loading. Sources that appear before the failing source will have already been loaded.

Trait Implementations§

Source§

impl Default for ContextLoader

Source§

fn default() -> ContextLoader

Returns the “default value” for a type. 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.