cliver-core speaks two wire protocols:
| Protocol | Used by |
|---|---|
openai | OpenAI-compatible chat, images, embeddings, and rerank endpoints |
anthropic | Anthropic Messages endpoints |
A provider class is selected by an exact provider_name registry hit plus the protocol. Vendors
that speak a compatible protocol need no brand entry at all — pass base_url and the protocol
explicitly.
Presets
Section titled “Presets”cliver_core.presets provides ready-made, live-verified bindings:
| Preset | Purpose | Protocol |
|---|---|---|
deepseek() | Chat | OpenAI |
deepseek_anthropic() | Chat | Anthropic |
minimax_anthropic() | Chat | Anthropic |
glm() | Chat | OpenAI |
glm_anthropic() | Chat | Anthropic |
minimax_image() | Image | Anthropic leaf |
minimax_tts() | Text-to-speech | Anthropic leaf |
minimax_asr() | Speech-to-text | Anthropic leaf |
seedance() | Video | OpenAI |
from cliver_core import AgentCore, ModelBindings, presets
agent = AgentCore(ModelBindings(llm=presets.deepseek()))Each factory returns a fresh binding. An explicit api_key= wins; otherwise the brand’s
conventional environment variable is read at call time — DEEPSEEK_API_KEY,
MINIMAX_API_KEY, GLM_API_KEY (or ZHIPUAI_API_KEY), and SEEDANCE_API_KEY. Every preset
also accepts base_url= and **params defaults.
Media presets pin their endpoint path explicitly on the binding (minimax_image →
/image_generation, minimax_tts → /t2a_v2, minimax_asr → /speech_to_text,
seedance → /contents/generations/tasks). Pass path=None to defer to the brand map or
supply another path to override.
Custom Endpoints
Section titled “Custom Endpoints”from cliver_core import ModelBinding
llm = ModelBinding.llm( model="my-model", api_key="...", base_url="http://localhost:11434/v1",)Because no provider_name matches, the OpenAI-protocol class is used with the exact
base_url you give.