If that's a "proper" replacement, then I think you want a queue, not an agent.
Btw I think your libraries did the job core.async tries to do a lot better :) and to this date I can't figure out why they didn't received the same amount of attention, so thanks for those!