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§
Sourcefn invocables(&self) -> Vec<Arc<dyn Invocable>>
fn invocables(&self) -> Vec<Arc<dyn Invocable>>
Returns all invocable capabilities offered by this provider.
Sourcefn resources(&self) -> Vec<Arc<dyn ResourceProvider>>
fn resources(&self) -> Vec<Arc<dyn ResourceProvider>>
Returns all resource providers offered by this provider.
Sourcefn prompts(&self) -> Vec<Arc<dyn PromptProvider>>
fn prompts(&self) -> Vec<Arc<dyn PromptProvider>>
Returns all prompt providers offered by this provider.