Skip to main content

CapabilityProvider

Trait CapabilityProvider 

Source
pub trait CapabilityProvider: Send + Sync {
    // Required methods
    fn invocables(&self) -> Vec<Arc<dyn Invocable>>;
    fn resources(&self) -> Vec<Arc<dyn ResourceProvider>>;
    fn prompts(&self) -> Vec<Arc<dyn PromptProvider>>;
}
Expand description

A bundle of capabilities from a single source.

CapabilityProvider groups Invocables, ResourceProviders, and PromptProviders that originate from the same backend – for example, a single MCP server or a built-in tool collection. The agentkit loop collects providers and merges their contents into the unified tool list presented to the model.

§Example

use std::sync::Arc;
use agentkit_capabilities::{
    CapabilityProvider, Invocable, PromptProvider, ResourceProvider,
};

struct EmptyProvider;

impl CapabilityProvider for EmptyProvider {
    fn invocables(&self) -> Vec<Arc<dyn Invocable>> {
        vec![]
    }

    fn resources(&self) -> Vec<Arc<dyn ResourceProvider>> {
        vec![]
    }

    fn prompts(&self) -> Vec<Arc<dyn PromptProvider>> {
        vec![]
    }
}

Required Methods§

Source

fn invocables(&self) -> Vec<Arc<dyn Invocable>>

Returns all invocable capabilities offered by this provider.

Source

fn resources(&self) -> Vec<Arc<dyn ResourceProvider>>

Returns all resource providers offered by this provider.

Source

fn prompts(&self) -> Vec<Arc<dyn PromptProvider>>

Returns all prompt providers offered by this provider.

Implementors§