Router Basic

Run RampRouter directly and through a model string in sync, async, and streaming modes.

basic.py
"""
Router Basic
============

Cookbook example for `ramp/basic.py`.
"""

import asyncio

from agno.agent import Agent
from agno.models.ramp import RampRouter

# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------

agent = Agent(
    model=RampRouter(id="gpt-5.6-luna"),
    markdown=True,
)

# The same model can be selected with a model string
agent_from_string = Agent(
    model="ramp:gpt-5.6-luna",
    markdown=True,
)

# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    # --- Sync ---
    agent.print_response("write a two sentence horror story")

    # --- Sync + Streaming ---
    agent.print_response("write a two sentence horror story", stream=True)

    # --- Async ---
    asyncio.run(agent_from_string.aprint_response("write a two sentence horror story"))

    # --- Async + Streaming ---
    asyncio.run(
        agent_from_string.aprint_response(
            "write a two sentence horror story", stream=True
        )
    )

Run the Example

Set up your virtual environment

uv venv --python 3.12
source .venv/bin/activate

Install dependencies

uv pip install -U agno openai

Export your API keys

export RAMP_ROUTER_API_KEY="your_ramp_router_api_key_here"

Select models available to your key

Choose exact callable IDs from the authenticated GET https://api.router.com/v1/models catalog, following Router's model selection guide. Select candidates with the tool or structured-output capabilities required by this example. Access is specific to your API key.

Update id or the models list in the saved file as needed. In the basic example, also update the model string: keep its ramp: provider prefix and put the selected callable ID after it. Do not pass both id and models.

Run the example

Save the code above as basic.py, then run:

python basic.py

Full source: cookbook/90_models/ramp/basic.py