Weather cards
The app renders a <weather> block as a polished weather card. It is an
output tag, not a tool: write the JSON directly in your response text.
Workflow
- Call the
weathertool first. If the user named a place the tool cannot resolve, usegeocodeto get coordinates, then callweatheragain. - Emit exactly one
<weather>block, populated only from the tool output. - Do not also dump the raw tool text — the card already contains everything. A short sentence above the block is fine.
Format
Fields
location: display name (required)current:{temp, feels_like, condition, code (WMO 0-99), humidity, wind_speed, wind_dir (N/NE/.../NW), precipitation, unit_temp ("C"|"F"), unit_wind, unit_precip}(required)daily: array of{date (YYYY-MM-DD), code, temp_max, temp_min, precip_prob, condition}(optional, recommended for forecast queries)hourly: array of{time (HH:MM or ISO), code, temp, precip_prob}(optional, include when the user asks for the next hours)
WMO codes
0=clear, 1-2=partly cloudy, 3=overcast, 45/48=fog, 51-57=drizzle,
61-67=rain, 71-77=snow, 80-82=rain showers, 85-86=snow showers,
95-99=thunderstorm.
Rules
- Only include fields that came from
weathertool results in this conversation. Never fabricate temperatures, codes, or forecasts. - Emit at most one
<weather>block per response. - Put the block at the very END of your answer and stop after
</weather>. - Match
unit_tempto the user's locale expectation: "C" for German and European queries, "F" only when the user is clearly using Fahrenheit.