Cerebras
Use Cerebras high-speed inference with Agno agents.
Cerebras Inference provides high-speed, low-latency AI model inference powered by Cerebras Wafer-Scale Engines and CS-3 systems. Agno integrates directly with the Cerebras Python SDK.
Prerequisites
To use Cerebras with Agno, you need to:
-
Install the required packages:
uv pip install -U cerebras-cloud-sdk agno -
Set your API key: The Cerebras SDK expects your API key to be available as an environment variable:
export CEREBRAS_API_KEY=your_api_key_here
Basic Usage
Use a Cerebras model with Agno:
from agno.agent import Agent
from agno.models.cerebras import Cerebras
agent = Agent(
model=Cerebras(id="gpt-oss-120b"),
markdown=True,
)
# Print the response in the terminal
agent.print_response("write a two sentence horror story")Supported Models
The example uses gpt-oss-120b. See the Cerebras model catalog for available public models and dedicated endpoint options.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
id | str | "gpt-oss-120b" | The ID of the Cerebras model to use |
name | str | "Cerebras" | The name of the model |
provider | str | "Cerebras" | The provider of the model |
parallel_tool_calls | Optional[bool] | None | Whether to run tool calls in parallel (automatically set to False for llama-4-scout) |
max_completion_tokens | Optional[int] | None | Maximum number of completion tokens to generate |
repetition_penalty | Optional[float] | None | Penalty for repeating tokens (higher values reduce repetition) |
temperature | Optional[float] | None | Controls randomness in the model's output (0.0 to 2.0) |
top_p | Optional[float] | None | Controls diversity via nucleus sampling (0.0 to 1.0) |
top_k | Optional[int] | None | Controls diversity via top-k sampling |
strict_output | bool | True | Controls schema adherence for structured outputs |
extra_headers | Optional[Any] | None | Additional headers to include in requests |
extra_query | Optional[Any] | None | Additional query parameters to include in requests |
extra_body | Optional[Any] | None | Additional body parameters to include in requests |
request_params | Optional[Dict[str, Any]] | None | Additional parameters to include in the request |
api_key | Optional[str] | None | The API key for authenticating with Cerebras (defaults to CEREBRAS_API_KEY env var) |
base_url | Optional[Union[str, httpx.URL]] | None | The base URL for the Cerebras API |
timeout | Optional[float] | None | Request timeout in seconds |
max_retries | Optional[int] | None | Maximum number of retries for failed requests |
default_headers | Optional[Any] | None | Default headers to include in all requests |
default_query | Optional[Any] | None | Default query parameters to include in all requests |
http_client | Optional[Union[httpx.Client, httpx.AsyncClient]] | None | HTTP client instance for making requests |
client_params | Optional[Dict[str, Any]] | None | Additional parameters for client configuration |
client | Optional[CerebrasClient] | None | A pre-configured instance of the Cerebras client |
async_client | Optional[AsyncCerebrasClient] | None | A pre-configured instance of the async Cerebras client |
Cerebras is a subclass of the Model class and has access to the same params.
Structured Outputs
The Cerebras model supports structured outputs using JSON schema:
from agno.agent import Agent
from agno.models.cerebras import Cerebras
from pydantic import BaseModel
from typing import List
class MovieScript(BaseModel):
setting: str
characters: List[str]
plot: str
agent = Agent(
model=Cerebras(id="gpt-oss-120b"),
output_schema=MovieScript,
)