Public preview — Deze API is in public preview. Endpoints, schemas en limieten kunnen wijzigen vóór general availability.
API
Tools
Ingebouwde tools, auto-approval voor API-callers en hoe tool calls verschijnen in de stream.
EU GPT levert een vaste set server-side tools. Het model bepaalt wanneer ze gebruikt worden; het platform voert ze uit; de resultaten worden transparant terug-gevoerd in het gesprek.
Je registreert geen tools per request. Je geeft geen tool-schemas door. De tool-catalogus is de catalogus.
De ingebouwde tools#
| Tool | Wat het doet | Typisch gebruik |
|---|---|---|
web_search | DuckDuckGo-zoekopdracht via ddgs. Geeft titels, snippets, URL’s terug. | ”Wat is het laatste over …”, “Vind nieuws over …”. |
web_fetch | Haalt een URL op en extraheert de leesbare inhoud. | ”Lees dit artikel en vat het samen.” |
calculator | Veilige math-expression-evaluatie. Hallucineert nooit rekenkunde. | Alles met cijfers — totalen, percentages, conversies. |
current_datetime | Geeft de huidige datum en tijd terug (optioneel in een timezone). | ”Welke dag is het?”, relatieve tijdsverwijzingen. |
Auto-approval voor API-callers#
In de web-UI vragen gevoelige tools (web search, web fetch) de gebruiker om expliciete approval voor uitvoering. In de API wordt die gate standaard omzeild — calls worden uitgevoerd zonder roundtrip via je applicatie.
De auto-approved set is:
web_search
web_fetch
calculator
current_datetime
Dit ruilt caller-controle in voor simpliciteit. Het is de juiste default omdat API-integraties geen interactieve prompts kunnen tonen.
Hoe tool calls verschijnen in de stream#
Tools draaien op de server, maar hun uitvoering is zichtbaar in de gestreamde events zodat je UI kan tonen wat er gebeurt.
De event-sequence voor een web-search-dan-antwoord-beurt ziet er zo uit:
response.created
response.output_item.added (function_call, name="web_search")
response.output_item.done (status="completed", output=[search hits])
response.content_part.added (text content begins)
response.output_text.delta (model text answering, possibly citing)
response.output_text.delta …
response.output_text.done
response.completed
Het output_item.added / output_item.done-paar draagt de tool-call-shape:
{
"type": "response.output_item.done",
"item": {
"type": "function_call",
"name": "web_search",
"arguments": "{\"query\":\"GDPR penalties 2025\"}",
"output": "[…search results JSON…]",
"status": "completed"
}
}
Als je een chat-UI rendert: toon een “searching the web…”-indicator op output_item.added voor een function call en vervang die door het aantal resultaten op output_item.done.
Tool-fouten#
Als een tool faalt (bv. de web fetch krijgt een 500, de calculator krijgt onzin), zal het output_item.done-event status: "failed" hebben en zal het output-veld een gestructureerde foutbeschrijving bevatten. Het model gaat hier meestal soepel mee om — het zal retryen met een ander argument of antwoorden zonder de tool — maar je wilt misschien “search failed, answering from training data”-hints aan je gebruikers tonen.
Sequentiële en parallelle tool calls#
Het model kan meerdere tools per beurt aanroepen, en parallelle calls worden gelijktijdig uitgevoerd. Je ziet interleaved output_item.added-events vóórdat één ervan voltooit. Sorteer resolutie op sequence_number als je ze moet correleren.
Custom tools#
Custom tools (je eigen functies) zijn vandaag geen onderdeel van de publieke API. De web-UI biedt een “agent builder” voor organisatie-gescopede agents met custom tools, en een programmatic equivalent volgt. De shape zal die van Chat Completions’ tools[]-parameter spiegelen wanneer het komt.