If you want to assert that the two lists are identical, don’t complicate things with Hamcrest:
assertEquals(expectedList, actual.getList());
If you really intend to perform an order-insensitive comparison, you can call the containsInAnyOrder varargs method and provide values directly:
assertThat(actual.getList(), containsInAnyOrder("item1", "item2"));
(Assuming that your list is of String, rather than Agent, for this example.)
If you really want to call that same method with the contents of a List:
assertThat(actual.getList(), containsInAnyOrder(expectedList.toArray(new String[expectedList.size()]));
Without this, you’re calling the method with a single argument and creating a Matcher that expects to match an Iterable where each element is a List. This can’t be used to match a List.
That is, you can’t match a List<Agent> with a Matcher<Iterable<List<Agent>>, which is what your code is attempting.