← ClaudeAtlas

extension-ai--tool-providerslisted

LlmProvider, ToolProvider trait implementations and MCP server integration
systempromptio/systemprompt-template · ★ 14 · AI & Automation · score 70
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