Code
tool_use.py
import asyncio
import json
from agno.agent import Agent
from agno.models.mistral import MistralChat
from agno.tools import tool
@tool
def get_weather(city: str) -> str:
"""Get the current weather for a city.
Args:
city: The city name to get weather for.
"""
weather_data = {
"Paris": {"temp": 18, "condition": "cloudy", "humidity": 65},
"London": {"temp": 14, "condition": "rainy", "humidity": 80},
"Tokyo": {"temp": 22, "condition": "sunny", "humidity": 50},
"New York": {"temp": 20, "condition": "partly cloudy", "humidity": 55},
}
data = weather_data.get(city, {"temp": 20, "condition": "unknown", "humidity": 50})
return json.dumps(data)
agent = Agent(
model=MistralChat(id="mistral-large-latest"),
tools=[get_weather],
markdown=True,
)
if __name__ == "__main__":
# --- Sync ---
agent.print_response("What is the weather in Paris and Tokyo?")
# --- Async ---
asyncio.run(agent.aprint_response("What is the weather in London and New York?"))
Usage
1
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activate
uv venv --python 3.12
.venv\Scripts\activate
2
Set your API key
export MISTRAL_API_KEY=xxx
3
Install dependencies
uv pip install -U mistralai agno
4
Run Agent
Save the code above as
tool_use.py, then run:python tool_use.py