extension-ai--tool-providerslisted
Install: claude install-skill systempromptio/systemprompt-template
# Extension: AI & Tool Providers
Provider traits enable custom LLM integrations, tool implementations, and MCP server management. Traits live in `crates/shared/provider-contracts/src/`.
---
## 1. LlmProvider
Custom LLM provider integration for AI generation.
### Trait
```rust
#[async_trait]
pub trait LlmProvider: Send + Sync {
fn provider_id(&self) -> &'static str;
async fn generate(&self, request: ChatRequest) -> Result<ChatResponse>;
async fn stream(
&self,
request: ChatRequest,
) -> Result<Pin<Box<dyn Stream<Item = Result<StreamChunk>> + Send>>>;
}
```
### Registration
```rust
impl Extension for MyExtension {
fn llm_providers(&self) -> Vec<Arc<dyn LlmProvider>> {
vec![Arc::new(CustomLlmProvider::new())]
}
}
```
### AI Configuration Hierarchy
Priority: Tool > Agent > Global.
| Level | Source | Scope |
|-------|--------|-------|
| Global | `services/ai/config.yaml` | All requests |
| Agent | `services/agents/*.yaml` metadata | Per-agent |
| Tool | `tool_model_overrides` | Per-tool-call |
---
## 2. ToolProvider
Custom tool implementations for agent use.
### Trait
```rust
#[async_trait]
pub trait ToolProvider: Send + Sync {
fn provider_id(&self) -> &'static str;
fn available_tools(&self) -> Vec<ToolDefinition>;
async fn execute_tool(&self, request: ToolCallRequest) -> Result<ToolCallResult>;
}
```
### Registration
```rust
impl Extension for MyExtension {
fn tool_providers(&self) -> Vec<Arc<dyn To