Appearance
Providers
Skilleo orchestrates your provider accounts. Skilleo does not store customer API keys — you manage secrets; Skilleo stores only connection pointers (Secrets).
python
# Set keys in YOUR env / secret manager first, then register pointers:
client.providers.connect("openai")
client.providers.connect("anthropic")
client.providers.connect("gemini")
client.providers.connect("minimax")
client.providers.connect("elevenlabs")
client.providers.connect("aws")
client.providers.connect("runpod")Default secret_ref per provider: OPENAI_API_KEY, ANTHROPIC_API_KEY, RUNPOD_API_KEY, etc.
Routing policy
| Workload | Allowed connections | Rule |
|---|---|---|
llm.generate | openai, anthropic, gemini, minimax, aws, runpod | Use any connected LLM provider. Skilleo picks by optimize_for or you pin with options.provider. |
speech.generate, voice.clone | minimax, elevenlabs | Must connect MiniMax or ElevenLabs. No other voice backends. |
image.generate, GPU infra | runpod | RunPod only for GPU workloads. |
Default when multiple LLM backends exist: MiniMax (source.routing.default_provider). Voice defaults to MiniMax when both voice providers are connected. See Platform availability for the full capability and provider matrix.
By provider
| Connection | Billed by | Used for |
|---|---|---|
openai | OpenAI | llm.generate |
anthropic | Anthropic | llm.generate (Claude) |
gemini | llm.generate | |
minimax | MiniMax | llm.generate, speech.generate, voice.clone |
elevenlabs | ElevenLabs | speech.generate, voice.clone |
aws | AWS | llm.generate via Bedrock |
runpod | RunPod | GPU, image.generate, optional LLM via public endpoint |
Aliases at register time: claude → anthropic, google → gemini, bedrock → aws.
Examples
LLM — pick any connected provider
python
client.providers.connect("anthropic")
run = client.capabilities.run(
"llm.generate",
version="1",
input={"objective": "Summarize Kenya wildlife"},
options={"provider": "anthropic"},
)Voice — MiniMax or ElevenLabs only
python
client.providers.connect("elevenlabs")
run = client.capabilities.run(
"speech.generate",
version="1",
input={"text": "Earth stops spinning. Here is what happens next."},
options={"provider": "elevenlabs"},
)GPU — RunPod only
python
client.providers.connect("runpod")
run = client.capabilities.run(
"image.generate",
version="1",
input={"prompt": "a red cube"},
options={"endpoint_id": "ep_..."},
)Agent manifests
Declare which providers an app may use per capability:
yaml
requires:
llm.generate:
providers: [openai, anthropic, gemini, minimax, aws, runpod]
speech.generate:
providers: [minimax, elevenlabs]
image.generate:
providers: [runpod]Skilleo subscription is separate from all provider usage.