OpenAI-compatible models
Use any OpenAI-compatible endpoint with Kern agents.
Many providers support the OpenAI API format. Use the OpenAILike model to access them by replacing the base_url.
Example
1from os import getenv2from kern.agent import Agent3from kern.models.openai.like import OpenAILike45agent = Agent(6 model=OpenAILike(7 id="mistralai/Mixtral-8x7B-Instruct-v0.1",8 api_key=getenv("TOGETHER_API_KEY"),9 base_url="https://api.together.xyz/v1",10 )11)1213# Print the response in the terminal14agent.print_response("Share a 2 sentence horror story.")Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
id | str | "not-provided" | The id of the model to use |
name | str | "OpenAILike" | The name of the model |
provider | str | "OpenAILike" | The provider of the model |
api_key | Optional[str] | "not-provided" | The API key for authentication |
base_url | Optional[str] | None | The base URL for the API service |
collect_metrics_on_completion | bool | False | Collect token metrics only from the final streaming chunk (for providers with cumulative token counts) |
OpenAILike extends the OpenAI-compatible interface and supports all parameters from OpenAIChat. Simply change the base_url and api_key to point to your preferred OpenAI-compatible service.
Responses API
For providers that implement the Open Responses API specification, use OpenResponses:
1from kern.agent import Agent2from kern.models.openai import OpenResponses34agent = Agent(5 model=OpenResponses(6 id="your-model-id",7 base_url="https://your-provider.com/v1",8 api_key="your-api-key",9 ),10)1112agent.print_response("Share a 2 sentence horror story.")The Responses API is stateless by default. Each request is independent with no previous_response_id chaining.
For specific providers, use the dedicated classes:
- OllamaResponses for Ollama (v0.13.3+)
- OpenRouterResponses for OpenRouter
See OpenResponses reference for full parameters.