Start here. This is the direct spoken answer to practice first.
Overview
A provider SDK is an infrastructure detail, but a universal lowest-common-denominator interface is also a trap.
I keep provider SDK types behind an infrastructure adapter and expose task-oriented application operations such as classify, extract, or generate a supported answer. The boundary accepts application inputs and returns typed outcomes including success, refusal, incomplete output, validation failure, throttling, and timeout. Provider request IDs, usage, and finish details remain available for diagnostics without leaking through every caller.