-record(call_provider, { messages :: list(pig@ai@message:message()), tools :: list(pig@ai@tool_definition:tool_definition()), on_response :: fun(({ok, pig@ai@provider:inference_result()} | {error, pig@ai@error:ai_error()}) -> any()) }).