Skip to content

cliver-core speaks two wire protocols:

ProtocolUsed by
openaiOpenAI-compatible chat, images, embeddings, and rerank endpoints
anthropicAnthropic 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.

cliver_core.presets provides ready-made, live-verified bindings:

PresetPurposeProtocol
deepseek()ChatOpenAI
deepseek_anthropic()ChatAnthropic
minimax_anthropic()ChatAnthropic
glm()ChatOpenAI
glm_anthropic()ChatAnthropic
minimax_image()ImageAnthropic leaf
minimax_tts()Text-to-speechAnthropic leaf
minimax_asr()Speech-to-textAnthropic leaf
seedance()VideoOpenAI
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.

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.