First of all, as we all know, in particular TPL did not focus on problems best expressed with agent-based models or those based on message-passing paradigms. TPL Dataflow is focused on providing building blocks for message passing and parallelizing CPU- and I/O-intensive applications with high-throughput and low-latency.
Secondly, you can actually use Rx in Task Dataflow. Rx is predominantly focused on coordination and composition of event streams with a LINQ-based API, providing a rich set of combinators for manipulating IObservable<T>s of data. You can let data flow blocks to be exposed as both observable and observers, therefore enabling direct integration of Rx library.
The implementation is extremely flexible and give the developers a lot of options. TPL Dataflow is comprised of "dataflow blocks," data structures that buffer, process, and propagate data. They can be either sources, targets, or both, in which case they're referred to as propagators, e.g.
ActionBlock, BufferBlock, BoadcastBlock, WriteOnceBlock, TransformBlock, BatchBlock, JoinBlock, and BatchedJoinBlock.