This would be an inserter with one circuit network input and one output. It will only pick something up if there is a nonzero signal for that item type on the input wire, and when it drops something, it puts a signal on the output wire corresponding to what it dropped (item type and quantity), for a single tick.
Actually, I think it would work better as a change to the smart inserter: Just add a new checkbox to the smart inserter GUI, called "filter by circuit network". If this option is not selected, the smart inserter behaves exactly as it currently does. If it is selected, then every other part of the GUI becomes disabled, and the inserter will pick up only and all items that are present on the circuit network input with a positive value.
I think this is the best way to do it because
- It's intuitive; it seems like smart inserters should already be able to do this.
- There is no need to add a new kind of inserter.
- The change to smart inserters won't break existing factories (the new option is off by default).