At my coach's urging, I have been playing heads up battles against University of Alberta poker bot, Sparbot. It's the dumbest of their algorithms, playing a heads up hold'em game that's perfectly balanced without taking into account any opponent tendencies. I'm playing it with it's configurable parameter set to "passive".
When I say "balanced", I mean it's bluffing bad cards enough, and slowplaying good card enough, that in theory you don't ever know what it has. However if you play a conservative game and don't bluff a lot, and get a decent set of hands, I find that the balancing it does to it's game is a money loser. Countless times I've called it down with a decent hand to find that it was bluffing and congratulations, you've confused me a little. Now let me get back to stacking your (virtual) chips.
The same is true for slowplaying good hands, where you want to extract value but it doesn't for "balance" reasons. When I get to draw for free against a better hand to a potentially better hand, and then make my hand, it's costing itself money, both in expected and real value.
Though my 16 sessions so far probably aren't statistically significant, there's a clear trend to them which I'm going to let my cognitive bias tell me means I'm getting better at playing this opponent.
As a refresher, I'm playing 300 hand sessions against Sparbot. At the end of each session I record my results, which gives a positive or negative "small bets per hand" for the session, either positive or negative, depending on if I made or lost money from my original buyin. I'm not taking a rake out of the pot, since it's very hard to make a profit against the rake. (I'd never make money, just lose less)
The blue line is a running average. My opponent's algorithm has a slider setting for "passive" to "aggressive". Sparbot is set to passive for this experiment.