departures
Abfahrten oder Ankünfte für EINE Haltestelle — als Daten, für Ergebnisse, die du weiterverarbeitest. Steht show_departures in deinem Werkzeug-Satz, ist das der Vordereingang für die Frage eines Menschen. Für „wann fährt von X", „letzte Stadtbahn von X" kommt die Auskunft aus diesen Werkzeugen, nicht aus dem Allgemeinwissen; für eine A→B-Frage aus connections. Pflicht ist eine konkrete Stop-id aus einer vorhergehenden Ortsauflösung (z.B. 'de:03241:57'); ein Haltestellen-NAME in id ist ein Argument-Fehler, keine leere Tafel. Optional: time und is_arrival_time; modes; direction (Halt-Name, in dessen Richtung gefahren wird) bzw. für eine weiche Angabe target_bearing mit bearing_tolerance; arrival_departure; für „letzte Fahrt des Tages" time_range_seconds zusammen mit last_of_window; und für den Umfang verbosity, limit sowie render_payload. modes und direction schränken hart ein. Eine leere Tafel ist keine Auskunft: blieb sie mit ['tram'] („Straßenbahn") leer, mit ['tram','subway'] nachfassen — sonst ohne den Filter. Anleitung: get_usage_guide mit tool='departures' — die Fenster-Kette für „letzte Fahrt", die Echtzeit-, Ausfall- und Zitier-Felder. Anti-Fab: Linien, Richtungen, Zeiten, Gleise, Verspätung und Ausfall ausschließlich aus dem Output dieses Aufrufs.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Stop id to read the board of, as a DHID (`"de:03241:57"`). Resolve the stop first — a name here is an argument error. | |
| time | No | ISO 8601 timestamp (e.g. `"2026-06-15T08:30:00Z"`). Omit for now. Resolve a spoken time with the time tool rather than computing one. | |
| limit | No | Maximum number of departures, at least 1. Default 5, values above 15 are served as 15. | |
| modes | No | Transport-mode filter; the board then shows nothing else. Entries: `"bus"`, `"tram"`, `"subway"`, `"train"`/`"rail"`, `"ferry"`, `"transit"`; several combine. Another entry — a street mode, a misspelling — is an argument error, not a dropped filter: a board lists scheduled services. Omitted or empty = all modes. A Stadtbahn or light-rail mention needs BOTH labels — `["tram","subway"]`: which of the two such a network carries depends on the dataset rather than on the vehicle. Set the filter only when the user really asks for a vehicle type; the guide has the rest of the vocabulary and the traps. | |
| format | No | Answer serialisation: `"toon"` (default) or `"json"` — the detail is in `get_usage_guide`. **An agent leaves this out.** | |
| extended | No | `true` keeps the map data in the text: every stop's coordinate, the whole course of each run, and a polyline where the board carries one — for an application that DRAWS the board. It multiplies the answer. A chat client leaves it off. | |
| direction | No | Name of a stop the user wants to head TOWARD („Richtung Wettbergen") — not a routing destination. The board keeps only departures heading that way, whether the named stop is the terminus or a stop downstream of the queried one. Matching is case-insensitive and area-prefix-tolerant. | |
| verbosity | No | How much of each departure comes back: `"compact"` (default — everything an answer is cited from) or `"full"` (adds the onward stops of the run, and with them the per-stop cancellation marker). A third word is an argument error, not the default. | |
| last_of_window | No | Which end of a `time_range_seconds` window to read: omitted or `false` the FIRST departures, `true` the LAST ones (the end-of-service question). An answer carrying `window_truncated: true` beside its board did NOT reach the window's end — its last entry is then not the last departure. Without a window it has no effect. | |
| render_payload | No | `true` appends the same board again as raw JSON, addressed to the user rather than to the model — for an application that draws a departure board. A chat client leaves this off: it is the whole answer twice. | |
| target_bearing | No | Target bearing in degrees (0=N, 90=E, 180=S, 270=W) for a SOFT direction („Richtung Norden", „Richtung Stadt") instead of a stop name. The board keeps only departures whose course lies within `bearing_tolerance` of it. Mutually exclusive with `direction`. | |
| is_arrival_time | No | `true` reads `time` as an ARRIVAL time — the same as `arrival_departure = "arrivals"`. | |
| arrival_departure | No | `"arrivals"` (when vehicles reach `id`) or `"departures"` (default) — a third value is an argument error. Wins over `is_arrival_time` when both are set. | |
| bearing_tolerance | No | Angular tolerance in degrees for `target_bearing`. Default ±60°. | |
| time_range_seconds | No | Time WINDOW in seconds, starting at `time`. Together with `last_of_window` this answers „letzte Fahrt": pick it so the window ENDS after end of service (from the evening on, `28800` = 8 h rather than 4 h). Omit for a normal next-N lookup. |