UPDATE: Script method to do this is in the comments below.
---
ORIGINAL POST:
We often add groups of new agents and update existing ones, with various tags and other user options. An option to do so via bulk import/export CSV files would be amazing. Right now it's a messy combination of API calls and the bulk import option (https://support.zendesk.com/hc/en-us/articles/203661996-Bulk-importing-users-#topic_svw_jdl_dc) that doesn't have an equivalent export option so updating existing info is painful.
The User XML export option for this a bit overkill since I don't need our >100,000 end users' info - just the agents. For quickly updating a batch of users it takes too long to get the XML export (I'm still waiting on a report I requested >30 minutes ago). The format also doesn't match the CSV bulk import template.
It would also be great to have this available via a direct link as opposed to an emailed file.


There is nothing like it in Explore, I am sorry to say. Explore returns data based on datasets and those datasets are connected to objects/events, so unless object exists or an event has occurred - no data will be returned.
Explore can filter for user types, but only in regards to ticket requesters. If an agent has never been a requester of a ticket - you will not be able to get required data.
I would advise to use Search API to get the list of agents in JSON format (see here: https://developer.zendesk.com/rest_api/docs/support/search) and then you could utilise any tool available, that would convert JSON to CSV or Excel. There are plenty of free options available online.
Basic search query would look like this: subdomain.zendesk.com/api/v2/search.json?query=type:user%20role:agent
You can simply copy/paste it to your browser's address bar, adding your subdomain.