GET /v1/tools lists them at runtime — see the API reference.
They exist because most real work around a model is not inference. A pipeline that captions a
video needs the audio extracted before a speech model ever sees it, and paying inference prices
for ffmpeg would be absurd.
Calling one
Every tool takes the same envelope — anid, and the input and params that tool declares: